diff --git a/.doctrees/api.doctree b/.doctrees/api.doctree index a57107503..da29cf1a2 100644 Binary files a/.doctrees/api.doctree and b/.doctrees/api.doctree differ diff --git a/.doctrees/auto_graph.doctree b/.doctrees/auto_graph.doctree index 711b36203..2a16c5f4b 100644 Binary files a/.doctrees/auto_graph.doctree and b/.doctrees/auto_graph.doctree differ diff --git a/.doctrees/coreblocks.cache.doctree b/.doctrees/coreblocks.cache.doctree index 2d501f1ea..e517a79ad 100644 Binary files a/.doctrees/coreblocks.cache.doctree and b/.doctrees/coreblocks.cache.doctree differ diff --git a/.doctrees/coreblocks.params.doctree b/.doctrees/coreblocks.params.doctree index 47500e28a..27fb7cf9c 100644 Binary files a/.doctrees/coreblocks.params.doctree and b/.doctrees/coreblocks.params.doctree differ diff --git a/.doctrees/current-graph.doctree b/.doctrees/current-graph.doctree index 8688866a0..3a5f64e1d 100644 Binary files a/.doctrees/current-graph.doctree and b/.doctrees/current-graph.doctree differ diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 01b62b1e1..9938f9fd5 100644 Binary files a/.doctrees/environment.pickle and b/.doctrees/environment.pickle differ diff --git a/_sources/auto_graph.rst.txt b/_sources/auto_graph.rst.txt index 39cd85ef8..348488966 100644 --- a/_sources/auto_graph.rst.txt +++ b/_sources/auto_graph.rst.txt @@ -7,12 +7,12 @@ Core_DiscardBranchVerify["DiscardBranchVerify"] Core_InitFreeRFFifo["InitFreeRFFifo"] subgraph WishboneMaster["wb_master_instr WishboneMaster"] - WishboneMaster_WishboneMaster["WishboneMaster"] - WishboneMaster_request["request"] WishboneMaster_result["result"] + WishboneMaster_request["request"] + WishboneMaster_WishboneMaster["WishboneMaster"] subgraph Forwarder["result Forwarder"] - Forwarder_read["read"] Forwarder_write["write"] + Forwarder_read["read"] end end subgraph WishboneMaster1["wb_master_data WishboneMaster"] @@ -25,40 +25,40 @@ end end subgraph WishboneMasterAdapter["bus_master_instr_adapter WishboneMasterAdapter"] - WishboneMasterAdapter_request_read["request_read"] WishboneMasterAdapter_get_read_response["get_read_response"] + WishboneMasterAdapter_request_read["request_read"] subgraph Serializer["bus_serializer Serializer"] Serializer_Serializer["Serializer"] Serializer_Serializer1["Serializer"] subgraph BasicFifo["pending_requests BasicFifo"] - BasicFifo_read["read"] BasicFifo_write["write"] + BasicFifo_read["read"] end end end subgraph WishboneMasterAdapter1["bus_master_data_adapter WishboneMasterAdapter"] + WishboneMasterAdapter1_request_read["request_read"] WishboneMasterAdapter1_request_write["request_write"] WishboneMasterAdapter1_get_read_response["get_read_response"] WishboneMasterAdapter1_get_write_response["get_write_response"] - WishboneMasterAdapter1_request_read["request_read"] subgraph Serializer1["bus_serializer Serializer"] Serializer1_Serializer["Serializer"] Serializer1_Serializer1["Serializer"] Serializer1_Serializer2["Serializer"] Serializer1_Serializer3["Serializer"] subgraph BasicFifo1["pending_requests BasicFifo"] - BasicFifo1_write["write"] BasicFifo1_read["read"] + BasicFifo1_write["write"] end end end subgraph CoreInstructionCounter["core_counter CoreInstructionCounter"] - CoreInstructionCounter_increment["increment"] CoreInstructionCounter_decrement["decrement"] + CoreInstructionCounter_increment["increment"] end subgraph FIFO["fifo_fetch FIFO"] - FIFO_read["read"] FIFO_write["write"] + FIFO_read["read"] end subgraph MethodMap["core_counter_increment_discard_map MethodMap"] MethodMap_method["method"] @@ -67,14 +67,15 @@ MethodProduct_method["method"] end subgraph BasicFifo2["free_rf_fifo BasicFifo"] - BasicFifo2_read["read"] BasicFifo2_write["write"] + BasicFifo2_read["read"] end subgraph SimpleCommonBusCacheRefiller["icache_refiller SimpleCommonBusCacheRefiller"] - SimpleCommonBusCacheRefiller_start_refill["start_refill"] - SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller["SimpleCommonBusCacheRefiller"] SimpleCommonBusCacheRefiller_accept_refill["accept_refill"] - subgraph Forwarder2["address_fwd Forwarder"] + SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller["SimpleCommonBusCacheRefiller"] + SimpleCommonBusCacheRefiller_start_refill["start_refill"] + SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1["SimpleCommonBusCacheRefiller"] + subgraph Forwarder2["resp_fwd Forwarder"] Forwarder2_read["read"] Forwarder2_write["write"] end @@ -82,10 +83,10 @@ subgraph ICache["icache ICache"] ICache_ICache["ICache"] ICache_ICache1["ICache"] - ICache_ICache2["ICache"] ICache_accept_res["accept_res"] - ICache_ICache3["ICache"] ICache_issue_req["issue_req"] + ICache_ICache2["ICache"] + ICache_ICache3["ICache"] subgraph HwCounter["perf_loads HwCounter"] HwCounter__incr["_incr"] end @@ -102,8 +103,8 @@ HwCounter4__incr["_incr"] end subgraph LatencyMeasurer["req_latency LatencyMeasurer"] - LatencyMeasurer__start["_start"] LatencyMeasurer__stop["_stop"] + LatencyMeasurer__start["_start"] subgraph HwExpHistogram["histogram HwExpHistogram"] HwExpHistogram__add["_add"] end @@ -117,16 +118,16 @@ FIFO2_read["read"] end subgraph Forwarder3["res_fwd Forwarder"] - Forwarder3_write["write"] Forwarder3_read["read"] + Forwarder3_write["write"] end end subgraph FRAT["FRAT FRAT"] FRAT_rename["rename"] end subgraph RRAT["RRAT RRAT"] - RRAT_peek["peek"] RRAT_commit["commit"] + RRAT_peek["peek"] end subgraph RegisterFile["RF RegisterFile"] RegisterFile_read1["read1"] @@ -135,14 +136,14 @@ RegisterFile_free["free"] end subgraph ReorderBuffer["ROB ReorderBuffer"] + ReorderBuffer_put["put"] + ReorderBuffer_get_indices["get_indices"] ReorderBuffer_mark_done["mark_done"] ReorderBuffer_peek["peek"] ReorderBuffer_retire["retire"] - ReorderBuffer_put["put"] - ReorderBuffer_get_indices["get_indices"] subgraph LatencyMeasurer1["perf_rob_wait_time LatencyMeasurer"] - LatencyMeasurer1__start["_start"] LatencyMeasurer1__stop["_stop"] + LatencyMeasurer1__start["_start"] subgraph HwExpHistogram1["histogram HwExpHistogram"] HwExpHistogram1__add["_add"] end @@ -154,8 +155,8 @@ end subgraph Fetch["fetch Fetch"] Fetch_Fetch["Fetch"] - Fetch_Fetch1["Fetch"] Fetch_resume["resume"] + Fetch_Fetch1["Fetch"] Fetch_stall_exception["stall_exception"] subgraph BasicFifo3["fetch_target_queue BasicFifo"] BasicFifo3_read["read"] @@ -163,12 +164,12 @@ end end subgraph ExceptionCauseRegister["exception_cause_register ExceptionCauseRegister"] + ExceptionCauseRegister_report["report"] ExceptionCauseRegister_get["get"] ExceptionCauseRegister_clear["clear"] - ExceptionCauseRegister_report["report"] subgraph BasicFifo4["fu_report_fifo BasicFifo"] - BasicFifo4_read["read"] BasicFifo4_write["write"] + BasicFifo4_read["read"] end subgraph ConnectTrans["report_connector ConnectTrans"] ConnectTrans_ConnectTrans["ConnectTrans"] @@ -178,8 +179,8 @@ subgraph Collector["result_collector Collector"] Collector_method["method"] subgraph Forwarder4["forwarder Forwarder"] - Forwarder4_read["read"] Forwarder4_write["write"] + Forwarder4_read["read"] end subgraph ManyToOneConnectTrans["connect ManyToOneConnectTrans"] subgraph ConnectTrans1["ManyToOneConnectTrans_input_0 ConnectTrans"] @@ -197,27 +198,27 @@ MethodProduct1_method["method"] end subgraph RSFuncBlock["rs_block_0 RSFuncBlock"] - RSFuncBlock_insert["insert"] RSFuncBlock_select["select"] RSFuncBlock_update["update"] RSFuncBlock_get_result["get_result"] + RSFuncBlock_insert["insert"] subgraph RS["rs RS"] - RS_update["update"] RS_RS["RS"] + RS_update["update"] + RS_take["take"] RS_RS1["RS"] - RS_select["select"] RS_RS2["RS"] + RS_select["select"] RS_RS3["RS"] - RS_take["take"] - RS_insert["insert"] RS_RS4["RS"] + RS_insert["insert"] end subgraph AluFuncUnit["func_unit_0 AluFuncUnit"] AluFuncUnit_accept["accept"] AluFuncUnit_issue["issue"] subgraph FIFO4["fifo FIFO"] - FIFO4_read["read"] FIFO4_write["write"] + FIFO4_read["read"] end end subgraph WakeupSelect["wakeup_select_0 WakeupSelect"] @@ -251,28 +252,28 @@ HwCounter7__incr["_incr"] end subgraph FIFO7["fifo_res FIFO"] - FIFO7_write["write"] FIFO7_read["read"] + FIFO7_write["write"] end end subgraph WakeupSelect2["wakeup_select_2 WakeupSelect"] WakeupSelect2_WakeupSelect["WakeupSelect"] end subgraph ExceptionFuncUnit["func_unit_3 ExceptionFuncUnit"] - ExceptionFuncUnit_issue["issue"] ExceptionFuncUnit_accept["accept"] + ExceptionFuncUnit_issue["issue"] subgraph FIFO8["fifo FIFO"] - FIFO8_write["write"] FIFO8_read["read"] + FIFO8_write["write"] end end subgraph WakeupSelect3["wakeup_select_3 WakeupSelect"] WakeupSelect3_WakeupSelect["WakeupSelect"] end subgraph PrivilegedFuncUnit["func_unit_4 PrivilegedFuncUnit"] + PrivilegedFuncUnit_issue["issue"] PrivilegedFuncUnit_accept["accept"] PrivilegedFuncUnit_precommit["precommit"] - PrivilegedFuncUnit_issue["issue"] subgraph BasicFifo5["fetch_resume_fifo BasicFifo"] BasicFifo5_write["write"] BasicFifo5_read["read"] @@ -307,36 +308,36 @@ end end subgraph LSUDummy["rs_block_1 LSUDummy"] - LSUDummy_select["select"] - LSUDummy_update["update"] LSUDummy_LSUDummy["LSUDummy"] LSUDummy_precommit["precommit"] LSUDummy_get_result["get_result"] LSUDummy_LSUDummy1["LSUDummy"] - LSUDummy_LSUDummy2["LSUDummy"] LSUDummy_insert["insert"] + LSUDummy_LSUDummy2["LSUDummy"] + LSUDummy_select["select"] + LSUDummy_update["update"] subgraph Forwarder6["forwarder Forwarder"] - Forwarder6_read["read"] Forwarder6_write["write"] + Forwarder6_read["read"] end subgraph LSURequester["requester LSURequester"] - LSURequester_issue["issue"] - LSURequester_accept_cond0["accept_cond0"] - LSURequester_issue_cond1["issue_cond1"] - LSURequester_accept["accept"] - LSURequester_issue_cond2["issue_cond2"] LSURequester_accept_cond1["accept_cond1"] LSURequester_issue_cond0["issue_cond0"] + LSURequester_accept_cond0["accept_cond0"] + LSURequester_issue_cond2["issue_cond2"] + LSURequester_issue["issue"] + LSURequester_accept["accept"] + LSURequester_issue_cond1["issue_cond1"] end end subgraph CSRUnit["rs_block_2 CSRUnit"] - CSRUnit_insert["insert"] - CSRUnit_CSRUnit["CSRUnit"] - CSRUnit_fetch_resume["fetch_resume"] CSRUnit_select["select"] CSRUnit_update["update"] CSRUnit_precommit["precommit"] CSRUnit_get_result["get_result"] + CSRUnit_CSRUnit["CSRUnit"] + CSRUnit_fetch_resume["fetch_resume"] + CSRUnit_insert["insert"] end subgraph MethodTryProduct["InstructionPrecommitKey_unifier MethodTryProduct"] MethodTryProduct_MethodTryProduct["MethodTryProduct"] @@ -347,8 +348,8 @@ subgraph Collector2["FetchResumeKey_unifier Collector"] Collector2_method["method"] subgraph Forwarder7["forwarder Forwarder"] - Forwarder7_write["write"] Forwarder7_read["read"] + Forwarder7_write["write"] end subgraph ManyToOneConnectTrans2["connect ManyToOneConnectTrans"] subgraph ConnectTrans9["ManyToOneConnectTrans_input_0 ConnectTrans"] @@ -364,9 +365,9 @@ ResultAnnouncement_ResultAnnouncement["ResultAnnouncement"] end subgraph InterruptController["interrupt_controller InterruptController"] - InterruptController_mret["mret"] InterruptController_report_interrupt["report_interrupt"] InterruptController_entry["entry"] + InterruptController_mret["mret"] end subgraph GenericCSRRegisters["csr_generic GenericCSRRegisters"] GenericCSRRegisters_GenericCSRRegisters["GenericCSRRegisters"] @@ -377,23 +378,23 @@ CSRRegister_write["write"] end subgraph CSRRegister1["mtvec CSRRegister"] - CSRRegister1__fu_write["_fu_write"] CSRRegister1__fu_read["_fu_read"] + CSRRegister1__fu_write["_fu_write"] CSRRegister1_read["read"] end subgraph CSRRegister2["mepc CSRRegister"] - CSRRegister2_write["write"] - CSRRegister2__fu_write["_fu_write"] - CSRRegister2__fu_read["_fu_read"] CSRRegister2_read["read"] + CSRRegister2__fu_read["_fu_read"] + CSRRegister2__fu_write["_fu_write"] + CSRRegister2_write["write"] end end subgraph DoubleCounterCSR["csr_cycle DoubleCounterCSR"] DoubleCounterCSR_increment["increment"] subgraph CSRRegister3["register_low CSRRegister"] - CSRRegister3__fu_read["_fu_read"] CSRRegister3_read["read"] CSRRegister3_write["write"] + CSRRegister3__fu_read["_fu_read"] end subgraph CSRRegister4["register_high CSRRegister"] CSRRegister4__fu_read["_fu_read"] @@ -427,22 +428,22 @@ end subgraph Scheduler["scheduler Scheduler"] subgraph FIFO10["alloc_rename_buf FIFO"] - FIFO10_read["read"] FIFO10_write["write"] + FIFO10_read["read"] end subgraph RegAllocation["reg_alloc RegAllocation"] RegAllocation_RegAllocation["RegAllocation"] end subgraph FIFO11["rename_out_buf FIFO"] - FIFO11_write["write"] FIFO11_read["read"] + FIFO11_write["write"] end subgraph Renaming["renaming Renaming"] Renaming_Renaming["Renaming"] end subgraph FIFO12["reg_alloc_out_buf FIFO"] - FIFO12_read["read"] FIFO12_write["write"] + FIFO12_read["read"] end subgraph ROBAllocation["rob_alloc ROBAllocation"] ROBAllocation_ROBAllocation["ROBAllocation"] @@ -469,20 +470,20 @@ ConnectTrans11_ConnectTrans["ConnectTrans"] end subgraph Retirement["retirement Retirement"] - Retirement_Retirement_cond0["Retirement_cond0"] - Retirement_core_state["core_state"] Retirement_Retirement["Retirement"] Retirement_Retirement1["Retirement"] + Retirement_core_state["core_state"] + Retirement_Retirement_cond0["Retirement_cond0"] + Retirement_Retirement_cond1["Retirement_cond1"] Retirement_Retirement2["Retirement"] Retirement_Retirement3["Retirement"] - Retirement_Retirement_cond1["Retirement_cond1"] Retirement_Retirement4["Retirement"] subgraph DoubleCounterCSR2["instret_csr DoubleCounterCSR"] DoubleCounterCSR2_increment["increment"] subgraph CSRRegister7["register_low CSRRegister"] - CSRRegister7__fu_read["_fu_read"] CSRRegister7_read["read"] CSRRegister7_write["write"] + CSRRegister7__fu_read["_fu_read"] end subgraph CSRRegister8["register_high CSRRegister"] CSRRegister8_read["read"] @@ -507,61 +508,60 @@ end end subgraph TransactionManager["transactionManager TransactionManager"] - TransactionManager_Retirement_cond0_Retirement["Retirement_cond0_Retirement"] - TransactionManager_LSUDummy_accept_cond0["LSUDummy_accept_cond0"] - TransactionManager_issue_cond0_LSUDummy["issue_cond0_LSUDummy"] - TransactionManager_LSUDummy_issue_cond2["LSUDummy_issue_cond2"] + TransactionManager_issue_cond2_LSUDummy["issue_cond2_LSUDummy"] + TransactionManager_accept_cond1_LSUDummy["accept_cond1_LSUDummy"] + TransactionManager_issue_cond1_LSUDummy["issue_cond1_LSUDummy"] + TransactionManager_accept_cond0_LSUDummy["accept_cond0_LSUDummy"] TransactionManager_Retirement_Retirement_cond1["Retirement_Retirement_cond1"] - TransactionManager_LSUDummy_issue_cond1["LSUDummy_issue_cond1"] - TransactionManager_LSUDummy_accept_cond1["LSUDummy_accept_cond1"] + TransactionManager_issue_cond0_LSUDummy["issue_cond0_LSUDummy"] + TransactionManager_Retirement_Retirement_cond0["Retirement_Retirement_cond0"] end end Core_InitFreeRFFifo --> BasicFifo2_write Retirement_Retirement --> BasicFifo2_write - TransactionManager_Retirement_cond0_Retirement --> BasicFifo2_write + TransactionManager_Retirement_Retirement_cond0 --> BasicFifo2_write TransactionManager_Retirement_Retirement_cond1 --> BasicFifo2_write FIFO6_read --> Core_DiscardBranchVerify WishboneMaster_WishboneMaster --> Forwarder_write WishboneMaster1_WishboneMaster --> Forwarder1_write - Forwarder2_read --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> WishboneMasterAdapter_request_read - SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> Serializer_Serializer + SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> Serializer_Serializer1 SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> BasicFifo_write SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> WishboneMaster_request + WishboneMasterAdapter_get_read_response --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 + Serializer_Serializer --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 + BasicFifo_read --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 + WishboneMaster_result --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 + Forwarder_read --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 + SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 --> Forwarder2_write ICache_ICache2 <--> HwCounter4__incr ICache_ICache1 <--> HwCounter3__incr ICache_ICache1 <--> HwCounter2__incr ICache_ICache1 <--> HwCounter1__incr ICache_ICache1 --> Forwarder3_write - ICache_ICache --> SimpleCommonBusCacheRefiller_start_refill - ICache_ICache --> Forwarder2_write - ICache_ICache3 --> Forwarder2_write - SimpleCommonBusCacheRefiller_accept_refill --> ICache_ICache3 - WishboneMasterAdapter_get_read_response --> ICache_ICache3 - Serializer_Serializer1 --> ICache_ICache3 - BasicFifo_read --> ICache_ICache3 - WishboneMaster_result --> ICache_ICache3 - Forwarder_read --> ICache_ICache3 - Fetch_Fetch1 --> ICache_issue_req - Fetch_Fetch1 <--> HwCounter__incr - Fetch_Fetch1 <--> LatencyMeasurer__start - Fetch_Fetch1 --> FIFO1_write - Fetch_Fetch1 --> FIFO2_write - Fetch_Fetch1 --> BasicFifo3_write - BasicFifo3_read --> Fetch_Fetch - ICache_accept_res --> Fetch_Fetch - FIFO2_read --> Fetch_Fetch - Fetch_Fetch <--> LatencyMeasurer__stop - FIFO1_read --> Fetch_Fetch - Fetch_Fetch --> HwExpHistogram__add - Forwarder3_read --> Fetch_Fetch - Fetch_Fetch --> MethodProduct_method + ICache_ICache3 --> SimpleCommonBusCacheRefiller_start_refill + SimpleCommonBusCacheRefiller_accept_refill --> ICache_ICache + Forwarder2_read --> ICache_ICache + Fetch_Fetch --> ICache_issue_req + Fetch_Fetch <--> HwCounter__incr + Fetch_Fetch <--> LatencyMeasurer__start + Fetch_Fetch --> FIFO1_write + Fetch_Fetch --> FIFO2_write + Fetch_Fetch --> BasicFifo3_write + BasicFifo3_read --> Fetch_Fetch1 + ICache_accept_res --> Fetch_Fetch1 + FIFO2_read --> Fetch_Fetch1 + Fetch_Fetch1 <--> LatencyMeasurer__stop + FIFO1_read --> Fetch_Fetch1 + Fetch_Fetch1 --> HwExpHistogram__add + Forwarder3_read --> Fetch_Fetch1 + Fetch_Fetch1 --> MethodProduct_method AdapterTrans_AdapterTrans_method --> MethodProduct_method - Fetch_Fetch --> FIFO_write + Fetch_Fetch1 --> FIFO_write AdapterTrans_AdapterTrans_method --> FIFO_write - Fetch_Fetch --> MethodMap_method + Fetch_Fetch1 --> MethodMap_method AdapterTrans_AdapterTrans_method --> MethodMap_method - Fetch_Fetch <--> CoreInstructionCounter_increment + Fetch_Fetch1 <--> CoreInstructionCounter_increment AdapterTrans_AdapterTrans_method <--> CoreInstructionCounter_increment FIFO_read --> DecodeStage_DecodeStage DecodeStage_DecodeStage <--> HwCounter8__incr @@ -579,17 +579,17 @@ ROBAllocation_ROBAllocation <--> LatencyMeasurer1__start ROBAllocation_ROBAllocation --> FIFO3_write ROBAllocation_ROBAllocation --> FIFO12_write - FIFO12_read --> RSSelection_RSSelection1 - RSSelection_RSSelection1 --> Forwarder8_write + FIFO12_read --> RSSelection_RSSelection2 + RSSelection_RSSelection2 --> Forwarder8_write + Forwarder8_read --> RSSelection_RSSelection1 Forwarder8_read --> RSSelection_RSSelection3 - Forwarder8_read --> RSSelection_RSSelection2 Forwarder8_read --> RSSelection_RSSelection - RSFuncBlock_select --> RSSelection_RSSelection3 - RS_select --> RSSelection_RSSelection3 + RSFuncBlock_select --> RSSelection_RSSelection1 + RS_select --> RSSelection_RSSelection1 + RSSelection_RSSelection1 --> FIFO13_write RSSelection_RSSelection3 --> FIFO13_write - RSSelection_RSSelection2 --> FIFO13_write RSSelection_RSSelection --> FIFO13_write - RSSelection_RSSelection2 <--> LSUDummy_select + RSSelection_RSSelection3 <--> LSUDummy_select RSSelection_RSSelection <--> CSRUnit_select FIFO13_read --> RSInsertion_RSInsertion RegisterFile_read1 --> RSInsertion_RSInsertion @@ -606,7 +606,7 @@ Collector2_method --> ConnectTrans11_ConnectTrans Forwarder7_read --> ConnectTrans11_ConnectTrans ConnectTrans11_ConnectTrans --> Fetch_resume - Retirement_Retirement4 --> Fetch_resume + Retirement_Retirement3 --> Fetch_resume Collector_method --> ResultAnnouncement_ResultAnnouncement Forwarder4_read --> ResultAnnouncement_ResultAnnouncement ResultAnnouncement_ResultAnnouncement --> ReorderBuffer_mark_done @@ -616,7 +616,7 @@ ResultAnnouncement_ResultAnnouncement --> RS_update ResultAnnouncement_ResultAnnouncement --> LSUDummy_update ResultAnnouncement_ResultAnnouncement --> CSRUnit_update - RS_RS2 --> WakeupSelect_WakeupSelect + RS_RS3 --> WakeupSelect_WakeupSelect RS_take --> WakeupSelect_WakeupSelect RS_take --> WakeupSelect1_WakeupSelect RS_take --> WakeupSelect2_WakeupSelect @@ -627,7 +627,7 @@ RS_RS4 --> WakeupSelect1_WakeupSelect WakeupSelect1_WakeupSelect --> ShiftFuncUnit_issue WakeupSelect1_WakeupSelect --> FIFO5_write - RS_RS3 --> WakeupSelect2_WakeupSelect + RS_RS2 --> WakeupSelect2_WakeupSelect WakeupSelect2_WakeupSelect --> JumpBranchFuncUnit_issue WakeupSelect2_WakeupSelect <--> HwCounter5__incr WakeupSelect2_WakeupSelect <--> HwCounter6__incr @@ -639,10 +639,10 @@ ConnectTrans3_ConnectTrans --> BasicFifo4_write WakeupSelect2_WakeupSelect --> FIFO7_write WakeupSelect2_WakeupSelect --> FIFO6_write - RS_RS --> WakeupSelect3_WakeupSelect + RS_RS1 --> WakeupSelect3_WakeupSelect WakeupSelect3_WakeupSelect --> ExceptionFuncUnit_issue WakeupSelect3_WakeupSelect --> FIFO8_write - RS_RS1 --> WakeupSelect4_WakeupSelect + RS_RS --> WakeupSelect4_WakeupSelect WakeupSelect4_WakeupSelect --> PrivilegedFuncUnit_issue ConnectTrans4_ConnectTrans --> Forwarder5_write ConnectTrans5_ConnectTrans --> Forwarder5_write @@ -661,11 +661,11 @@ CSRRegister2_read --> ConnectTrans8_ConnectTrans ConnectTrans8_ConnectTrans --> BasicFifo5_write LSUDummy_LSUDummy --> Forwarder6_write + TransactionManager_accept_cond1_LSUDummy --> Forwarder6_write TransactionManager_issue_cond0_LSUDummy --> Forwarder6_write - TransactionManager_LSUDummy_issue_cond1 --> Forwarder6_write - TransactionManager_LSUDummy_accept_cond0 --> Forwarder6_write - TransactionManager_LSUDummy_issue_cond2 --> Forwarder6_write - TransactionManager_LSUDummy_accept_cond1 --> Forwarder6_write + TransactionManager_issue_cond2_LSUDummy --> Forwarder6_write + TransactionManager_issue_cond1_LSUDummy --> Forwarder6_write + TransactionManager_accept_cond0_LSUDummy --> Forwarder6_write CSRRegister__fu_read --> CSRUnit_CSRUnit CSRUnit_CSRUnit --> CSRRegister__fu_write CSRRegister1__fu_read --> CSRUnit_CSRUnit @@ -695,37 +695,37 @@ ConnectTrans10_ConnectTrans --> Forwarder7_write BasicFifo5_read --> ConnectTrans9_ConnectTrans CSRUnit_fetch_resume --> ConnectTrans10_ConnectTrans - ReorderBuffer_peek --> Retirement_Retirement2 - ReorderBuffer_peek --> Retirement_Retirement3 + ReorderBuffer_peek --> Retirement_Retirement4 + ReorderBuffer_peek --> Retirement_Retirement1 ReorderBuffer_peek --> Retirement_Retirement - ReorderBuffer_peek --> TransactionManager_Retirement_cond0_Retirement + ReorderBuffer_peek --> TransactionManager_Retirement_Retirement_cond0 ReorderBuffer_peek --> TransactionManager_Retirement_Retirement_cond1 - Retirement_Retirement2 --> MethodTryProduct_method - ExceptionCauseRegister_get --> Retirement_Retirement3 - ExceptionCauseRegister_get --> TransactionManager_Retirement_cond0_Retirement + Retirement_Retirement4 --> MethodTryProduct_method + ExceptionCauseRegister_get --> Retirement_Retirement1 + ExceptionCauseRegister_get --> TransactionManager_Retirement_Retirement_cond0 ExceptionCauseRegister_get --> TransactionManager_Retirement_Retirement_cond1 Retirement_Retirement <--> ReorderBuffer_retire - TransactionManager_Retirement_cond0_Retirement <--> ReorderBuffer_retire + TransactionManager_Retirement_Retirement_cond0 <--> ReorderBuffer_retire TransactionManager_Retirement_Retirement_cond1 <--> ReorderBuffer_retire Retirement_Retirement <--> LatencyMeasurer1__stop - TransactionManager_Retirement_cond0_Retirement <--> LatencyMeasurer1__stop + TransactionManager_Retirement_Retirement_cond0 <--> LatencyMeasurer1__stop TransactionManager_Retirement_Retirement_cond1 <--> LatencyMeasurer1__stop FIFO3_read --> Retirement_Retirement - FIFO3_read --> TransactionManager_Retirement_cond0_Retirement + FIFO3_read --> TransactionManager_Retirement_Retirement_cond0 FIFO3_read --> TransactionManager_Retirement_Retirement_cond1 Retirement_Retirement --> HwExpHistogram1__add - TransactionManager_Retirement_cond0_Retirement --> HwExpHistogram1__add + TransactionManager_Retirement_Retirement_cond0 --> HwExpHistogram1__add TransactionManager_Retirement_Retirement_cond1 --> HwExpHistogram1__add CoreInstructionCounter_decrement --> Retirement_Retirement - CoreInstructionCounter_decrement --> TransactionManager_Retirement_cond0_Retirement + CoreInstructionCounter_decrement --> TransactionManager_Retirement_Retirement_cond0 CoreInstructionCounter_decrement --> TransactionManager_Retirement_Retirement_cond1 RRAT_peek --> Retirement_Retirement RRAT_peek --> TransactionManager_Retirement_Retirement_cond1 Retirement_Retirement --> RegisterFile_free - TransactionManager_Retirement_cond0_Retirement --> RegisterFile_free + TransactionManager_Retirement_Retirement_cond0 --> RegisterFile_free TransactionManager_Retirement_Retirement_cond1 --> RegisterFile_free - CSRRegister1_read --> Retirement_Retirement4 - Retirement_Retirement4 <--> ExceptionCauseRegister_clear + CSRRegister1_read --> Retirement_Retirement3 + Retirement_Retirement3 <--> ExceptionCauseRegister_clear GenericCSRRegisters_GenericCSRRegisters <--> DoubleCounterCSR_increment CSRRegister3_read --> GenericCSRRegisters_GenericCSRRegisters GenericCSRRegisters_GenericCSRRegisters --> CSRRegister3_write @@ -737,53 +737,53 @@ CSRRegister6_read --> GenericCSRRegisters_GenericCSRRegisters GenericCSRRegisters_GenericCSRRegisters --> CSRRegister6_write AdapterTrans1_AdapterTrans_report_interrupt <--> InterruptController_report_interrupt + TransactionManager_accept_cond1_LSUDummy <--> LSURequester_accept_cond1 + WishboneMasterAdapter1_get_read_response --> TransactionManager_accept_cond1_LSUDummy + Serializer1_Serializer2 --> TransactionManager_accept_cond1_LSUDummy + BasicFifo1_read --> TransactionManager_accept_cond1_LSUDummy + BasicFifo1_read --> TransactionManager_accept_cond0_LSUDummy + WishboneMaster1_result --> TransactionManager_accept_cond1_LSUDummy + WishboneMaster1_result --> TransactionManager_accept_cond0_LSUDummy + Forwarder1_read --> TransactionManager_accept_cond1_LSUDummy + Forwarder1_read --> TransactionManager_accept_cond0_LSUDummy + TransactionManager_accept_cond1_LSUDummy <--> LSUDummy_LSUDummy2 + TransactionManager_accept_cond0_LSUDummy <--> LSUDummy_LSUDummy2 + LSURequester_accept --> TransactionManager_accept_cond1_LSUDummy + LSURequester_accept --> TransactionManager_accept_cond0_LSUDummy TransactionManager_issue_cond0_LSUDummy <--> LSURequester_issue_cond0 TransactionManager_issue_cond0_LSUDummy --> WishboneMasterAdapter1_request_write - TransactionManager_issue_cond0_LSUDummy --> Serializer1_Serializer + TransactionManager_issue_cond0_LSUDummy --> Serializer1_Serializer1 TransactionManager_issue_cond0_LSUDummy --> BasicFifo1_write - TransactionManager_LSUDummy_issue_cond1 --> BasicFifo1_write + TransactionManager_issue_cond1_LSUDummy --> BasicFifo1_write TransactionManager_issue_cond0_LSUDummy --> WishboneMaster1_request - TransactionManager_LSUDummy_issue_cond1 --> WishboneMaster1_request + TransactionManager_issue_cond1_LSUDummy --> WishboneMaster1_request TransactionManager_issue_cond0_LSUDummy <--> LSUDummy_LSUDummy1 - TransactionManager_LSUDummy_issue_cond1 <--> LSUDummy_LSUDummy1 - TransactionManager_LSUDummy_issue_cond2 <--> LSUDummy_LSUDummy1 + TransactionManager_issue_cond2_LSUDummy <--> LSUDummy_LSUDummy1 + TransactionManager_issue_cond1_LSUDummy <--> LSUDummy_LSUDummy1 TransactionManager_issue_cond0_LSUDummy --> LSURequester_issue - TransactionManager_LSUDummy_issue_cond1 --> LSURequester_issue - TransactionManager_LSUDummy_issue_cond2 --> LSURequester_issue - TransactionManager_Retirement_cond0_Retirement <--> Retirement_Retirement_cond0 - TransactionManager_Retirement_cond0_Retirement --> RRAT_commit - TransactionManager_Retirement_cond0_Retirement <--> DoubleCounterCSR2_increment - CSRRegister7_read --> TransactionManager_Retirement_cond0_Retirement - TransactionManager_Retirement_cond0_Retirement --> CSRRegister7_write - CSRRegister8_read --> TransactionManager_Retirement_cond0_Retirement - TransactionManager_Retirement_cond0_Retirement --> CSRRegister8_write - TransactionManager_Retirement_cond0_Retirement <--> HwCounter9__incr - TransactionManager_Retirement_cond0_Retirement <--> Retirement_Retirement1 - TransactionManager_Retirement_Retirement_cond1 <--> Retirement_Retirement1 - TransactionManager_Retirement_cond0_Retirement --> CSRRegister_write + TransactionManager_issue_cond2_LSUDummy --> LSURequester_issue + TransactionManager_issue_cond1_LSUDummy --> LSURequester_issue + TransactionManager_issue_cond2_LSUDummy <--> LSURequester_issue_cond2 + TransactionManager_issue_cond1_LSUDummy <--> LSURequester_issue_cond1 + TransactionManager_issue_cond1_LSUDummy --> WishboneMasterAdapter1_request_read + TransactionManager_issue_cond1_LSUDummy --> Serializer1_Serializer + TransactionManager_Retirement_Retirement_cond0 <--> Retirement_Retirement2 + TransactionManager_Retirement_Retirement_cond1 <--> Retirement_Retirement2 + TransactionManager_Retirement_Retirement_cond0 --> CSRRegister_write TransactionManager_Retirement_Retirement_cond1 --> CSRRegister_write - TransactionManager_Retirement_cond0_Retirement --> CSRRegister2_write + TransactionManager_Retirement_Retirement_cond0 --> CSRRegister2_write TransactionManager_Retirement_Retirement_cond1 --> CSRRegister2_write - TransactionManager_Retirement_cond0_Retirement <--> InterruptController_entry + TransactionManager_Retirement_Retirement_cond0 <--> InterruptController_entry TransactionManager_Retirement_Retirement_cond1 <--> InterruptController_entry + TransactionManager_Retirement_Retirement_cond0 <--> Retirement_Retirement_cond0 + TransactionManager_Retirement_Retirement_cond0 --> RRAT_commit + TransactionManager_Retirement_Retirement_cond0 <--> DoubleCounterCSR2_increment + CSRRegister7_read --> TransactionManager_Retirement_Retirement_cond0 + TransactionManager_Retirement_Retirement_cond0 --> CSRRegister7_write + CSRRegister8_read --> TransactionManager_Retirement_Retirement_cond0 + TransactionManager_Retirement_Retirement_cond0 --> CSRRegister8_write + TransactionManager_Retirement_Retirement_cond0 <--> HwCounter9__incr + TransactionManager_accept_cond0_LSUDummy <--> LSURequester_accept_cond0 + WishboneMasterAdapter1_get_write_response --> TransactionManager_accept_cond0_LSUDummy + Serializer1_Serializer3 --> TransactionManager_accept_cond0_LSUDummy TransactionManager_Retirement_Retirement_cond1 <--> Retirement_Retirement_cond1 - TransactionManager_LSUDummy_issue_cond1 <--> LSURequester_issue_cond1 - TransactionManager_LSUDummy_issue_cond1 --> WishboneMasterAdapter1_request_read - TransactionManager_LSUDummy_issue_cond1 --> Serializer1_Serializer3 - TransactionManager_LSUDummy_accept_cond0 <--> LSUDummy_LSUDummy2 - TransactionManager_LSUDummy_accept_cond1 <--> LSUDummy_LSUDummy2 - LSURequester_accept --> TransactionManager_LSUDummy_accept_cond0 - LSURequester_accept --> TransactionManager_LSUDummy_accept_cond1 - TransactionManager_LSUDummy_accept_cond0 <--> LSURequester_accept_cond0 - WishboneMasterAdapter1_get_write_response --> TransactionManager_LSUDummy_accept_cond0 - Serializer1_Serializer1 --> TransactionManager_LSUDummy_accept_cond0 - BasicFifo1_read --> TransactionManager_LSUDummy_accept_cond0 - BasicFifo1_read --> TransactionManager_LSUDummy_accept_cond1 - WishboneMaster1_result --> TransactionManager_LSUDummy_accept_cond0 - WishboneMaster1_result --> TransactionManager_LSUDummy_accept_cond1 - Forwarder1_read --> TransactionManager_LSUDummy_accept_cond0 - Forwarder1_read --> TransactionManager_LSUDummy_accept_cond1 - TransactionManager_LSUDummy_issue_cond2 <--> LSURequester_issue_cond2 - TransactionManager_LSUDummy_accept_cond1 <--> LSURequester_accept_cond1 - WishboneMasterAdapter1_get_read_response --> TransactionManager_LSUDummy_accept_cond1 - Serializer1_Serializer2 --> TransactionManager_LSUDummy_accept_cond1 diff --git a/api.html b/api.html index 1ec2633bd..8ab3aed4b 100644 --- a/api.html +++ b/api.html @@ -259,7 +259,7 @@

transactron

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/assumptions.html b/assumptions.html index 5d9fa255d..46da0f858 100644 --- a/assumptions.html +++ b/assumptions.html @@ -104,7 +104,7 @@

List of assumptions made during development

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/auto_graph.html b/auto_graph.html index 8052d5f8d..bd241f8d2 100644 --- a/auto_graph.html +++ b/auto_graph.html @@ -86,12 +86,12 @@ Core_DiscardBranchVerify["DiscardBranchVerify"] Core_InitFreeRFFifo["InitFreeRFFifo"] subgraph WishboneMaster["wb_master_instr WishboneMaster"] - WishboneMaster_WishboneMaster["WishboneMaster"] - WishboneMaster_request["request"] WishboneMaster_result["result"] + WishboneMaster_request["request"] + WishboneMaster_WishboneMaster["WishboneMaster"] subgraph Forwarder["result Forwarder"] - Forwarder_read["read"] Forwarder_write["write"] + Forwarder_read["read"] end end subgraph WishboneMaster1["wb_master_data WishboneMaster"] @@ -104,40 +104,40 @@ end end subgraph WishboneMasterAdapter["bus_master_instr_adapter WishboneMasterAdapter"] - WishboneMasterAdapter_request_read["request_read"] WishboneMasterAdapter_get_read_response["get_read_response"] + WishboneMasterAdapter_request_read["request_read"] subgraph Serializer["bus_serializer Serializer"] Serializer_Serializer["Serializer"] Serializer_Serializer1["Serializer"] subgraph BasicFifo["pending_requests BasicFifo"] - BasicFifo_read["read"] BasicFifo_write["write"] + BasicFifo_read["read"] end end end subgraph WishboneMasterAdapter1["bus_master_data_adapter WishboneMasterAdapter"] + WishboneMasterAdapter1_request_read["request_read"] WishboneMasterAdapter1_request_write["request_write"] WishboneMasterAdapter1_get_read_response["get_read_response"] WishboneMasterAdapter1_get_write_response["get_write_response"] - WishboneMasterAdapter1_request_read["request_read"] subgraph Serializer1["bus_serializer Serializer"] Serializer1_Serializer["Serializer"] Serializer1_Serializer1["Serializer"] Serializer1_Serializer2["Serializer"] Serializer1_Serializer3["Serializer"] subgraph BasicFifo1["pending_requests BasicFifo"] - BasicFifo1_write["write"] BasicFifo1_read["read"] + BasicFifo1_write["write"] end end end subgraph CoreInstructionCounter["core_counter CoreInstructionCounter"] - CoreInstructionCounter_increment["increment"] CoreInstructionCounter_decrement["decrement"] + CoreInstructionCounter_increment["increment"] end subgraph FIFO["fifo_fetch FIFO"] - FIFO_read["read"] FIFO_write["write"] + FIFO_read["read"] end subgraph MethodMap["core_counter_increment_discard_map MethodMap"] MethodMap_method["method"] @@ -146,14 +146,15 @@ MethodProduct_method["method"] end subgraph BasicFifo2["free_rf_fifo BasicFifo"] - BasicFifo2_read["read"] BasicFifo2_write["write"] + BasicFifo2_read["read"] end subgraph SimpleCommonBusCacheRefiller["icache_refiller SimpleCommonBusCacheRefiller"] - SimpleCommonBusCacheRefiller_start_refill["start_refill"] - SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller["SimpleCommonBusCacheRefiller"] SimpleCommonBusCacheRefiller_accept_refill["accept_refill"] - subgraph Forwarder2["address_fwd Forwarder"] + SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller["SimpleCommonBusCacheRefiller"] + SimpleCommonBusCacheRefiller_start_refill["start_refill"] + SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1["SimpleCommonBusCacheRefiller"] + subgraph Forwarder2["resp_fwd Forwarder"] Forwarder2_read["read"] Forwarder2_write["write"] end @@ -161,10 +162,10 @@ subgraph ICache["icache ICache"] ICache_ICache["ICache"] ICache_ICache1["ICache"] - ICache_ICache2["ICache"] ICache_accept_res["accept_res"] - ICache_ICache3["ICache"] ICache_issue_req["issue_req"] + ICache_ICache2["ICache"] + ICache_ICache3["ICache"] subgraph HwCounter["perf_loads HwCounter"] HwCounter__incr["_incr"] end @@ -181,8 +182,8 @@ HwCounter4__incr["_incr"] end subgraph LatencyMeasurer["req_latency LatencyMeasurer"] - LatencyMeasurer__start["_start"] LatencyMeasurer__stop["_stop"] + LatencyMeasurer__start["_start"] subgraph HwExpHistogram["histogram HwExpHistogram"] HwExpHistogram__add["_add"] end @@ -196,16 +197,16 @@ FIFO2_read["read"] end subgraph Forwarder3["res_fwd Forwarder"] - Forwarder3_write["write"] Forwarder3_read["read"] + Forwarder3_write["write"] end end subgraph FRAT["FRAT FRAT"] FRAT_rename["rename"] end subgraph RRAT["RRAT RRAT"] - RRAT_peek["peek"] RRAT_commit["commit"] + RRAT_peek["peek"] end subgraph RegisterFile["RF RegisterFile"] RegisterFile_read1["read1"] @@ -214,14 +215,14 @@ RegisterFile_free["free"] end subgraph ReorderBuffer["ROB ReorderBuffer"] + ReorderBuffer_put["put"] + ReorderBuffer_get_indices["get_indices"] ReorderBuffer_mark_done["mark_done"] ReorderBuffer_peek["peek"] ReorderBuffer_retire["retire"] - ReorderBuffer_put["put"] - ReorderBuffer_get_indices["get_indices"] subgraph LatencyMeasurer1["perf_rob_wait_time LatencyMeasurer"] - LatencyMeasurer1__start["_start"] LatencyMeasurer1__stop["_stop"] + LatencyMeasurer1__start["_start"] subgraph HwExpHistogram1["histogram HwExpHistogram"] HwExpHistogram1__add["_add"] end @@ -233,8 +234,8 @@ end subgraph Fetch["fetch Fetch"] Fetch_Fetch["Fetch"] - Fetch_Fetch1["Fetch"] Fetch_resume["resume"] + Fetch_Fetch1["Fetch"] Fetch_stall_exception["stall_exception"] subgraph BasicFifo3["fetch_target_queue BasicFifo"] BasicFifo3_read["read"] @@ -242,12 +243,12 @@ end end subgraph ExceptionCauseRegister["exception_cause_register ExceptionCauseRegister"] + ExceptionCauseRegister_report["report"] ExceptionCauseRegister_get["get"] ExceptionCauseRegister_clear["clear"] - ExceptionCauseRegister_report["report"] subgraph BasicFifo4["fu_report_fifo BasicFifo"] - BasicFifo4_read["read"] BasicFifo4_write["write"] + BasicFifo4_read["read"] end subgraph ConnectTrans["report_connector ConnectTrans"] ConnectTrans_ConnectTrans["ConnectTrans"] @@ -257,8 +258,8 @@ subgraph Collector["result_collector Collector"] Collector_method["method"] subgraph Forwarder4["forwarder Forwarder"] - Forwarder4_read["read"] Forwarder4_write["write"] + Forwarder4_read["read"] end subgraph ManyToOneConnectTrans["connect ManyToOneConnectTrans"] subgraph ConnectTrans1["ManyToOneConnectTrans_input_0 ConnectTrans"] @@ -276,27 +277,27 @@ MethodProduct1_method["method"] end subgraph RSFuncBlock["rs_block_0 RSFuncBlock"] - RSFuncBlock_insert["insert"] RSFuncBlock_select["select"] RSFuncBlock_update["update"] RSFuncBlock_get_result["get_result"] + RSFuncBlock_insert["insert"] subgraph RS["rs RS"] - RS_update["update"] RS_RS["RS"] + RS_update["update"] + RS_take["take"] RS_RS1["RS"] - RS_select["select"] RS_RS2["RS"] + RS_select["select"] RS_RS3["RS"] - RS_take["take"] - RS_insert["insert"] RS_RS4["RS"] + RS_insert["insert"] end subgraph AluFuncUnit["func_unit_0 AluFuncUnit"] AluFuncUnit_accept["accept"] AluFuncUnit_issue["issue"] subgraph FIFO4["fifo FIFO"] - FIFO4_read["read"] FIFO4_write["write"] + FIFO4_read["read"] end end subgraph WakeupSelect["wakeup_select_0 WakeupSelect"] @@ -330,28 +331,28 @@ HwCounter7__incr["_incr"] end subgraph FIFO7["fifo_res FIFO"] - FIFO7_write["write"] FIFO7_read["read"] + FIFO7_write["write"] end end subgraph WakeupSelect2["wakeup_select_2 WakeupSelect"] WakeupSelect2_WakeupSelect["WakeupSelect"] end subgraph ExceptionFuncUnit["func_unit_3 ExceptionFuncUnit"] - ExceptionFuncUnit_issue["issue"] ExceptionFuncUnit_accept["accept"] + ExceptionFuncUnit_issue["issue"] subgraph FIFO8["fifo FIFO"] - FIFO8_write["write"] FIFO8_read["read"] + FIFO8_write["write"] end end subgraph WakeupSelect3["wakeup_select_3 WakeupSelect"] WakeupSelect3_WakeupSelect["WakeupSelect"] end subgraph PrivilegedFuncUnit["func_unit_4 PrivilegedFuncUnit"] + PrivilegedFuncUnit_issue["issue"] PrivilegedFuncUnit_accept["accept"] PrivilegedFuncUnit_precommit["precommit"] - PrivilegedFuncUnit_issue["issue"] subgraph BasicFifo5["fetch_resume_fifo BasicFifo"] BasicFifo5_write["write"] BasicFifo5_read["read"] @@ -386,36 +387,36 @@ end end subgraph LSUDummy["rs_block_1 LSUDummy"] - LSUDummy_select["select"] - LSUDummy_update["update"] LSUDummy_LSUDummy["LSUDummy"] LSUDummy_precommit["precommit"] LSUDummy_get_result["get_result"] LSUDummy_LSUDummy1["LSUDummy"] - LSUDummy_LSUDummy2["LSUDummy"] LSUDummy_insert["insert"] + LSUDummy_LSUDummy2["LSUDummy"] + LSUDummy_select["select"] + LSUDummy_update["update"] subgraph Forwarder6["forwarder Forwarder"] - Forwarder6_read["read"] Forwarder6_write["write"] + Forwarder6_read["read"] end subgraph LSURequester["requester LSURequester"] - LSURequester_issue["issue"] - LSURequester_accept_cond0["accept_cond0"] - LSURequester_issue_cond1["issue_cond1"] - LSURequester_accept["accept"] - LSURequester_issue_cond2["issue_cond2"] LSURequester_accept_cond1["accept_cond1"] LSURequester_issue_cond0["issue_cond0"] + LSURequester_accept_cond0["accept_cond0"] + LSURequester_issue_cond2["issue_cond2"] + LSURequester_issue["issue"] + LSURequester_accept["accept"] + LSURequester_issue_cond1["issue_cond1"] end end subgraph CSRUnit["rs_block_2 CSRUnit"] - CSRUnit_insert["insert"] - CSRUnit_CSRUnit["CSRUnit"] - CSRUnit_fetch_resume["fetch_resume"] CSRUnit_select["select"] CSRUnit_update["update"] CSRUnit_precommit["precommit"] CSRUnit_get_result["get_result"] + CSRUnit_CSRUnit["CSRUnit"] + CSRUnit_fetch_resume["fetch_resume"] + CSRUnit_insert["insert"] end subgraph MethodTryProduct["InstructionPrecommitKey_unifier MethodTryProduct"] MethodTryProduct_MethodTryProduct["MethodTryProduct"] @@ -426,8 +427,8 @@ subgraph Collector2["FetchResumeKey_unifier Collector"] Collector2_method["method"] subgraph Forwarder7["forwarder Forwarder"] - Forwarder7_write["write"] Forwarder7_read["read"] + Forwarder7_write["write"] end subgraph ManyToOneConnectTrans2["connect ManyToOneConnectTrans"] subgraph ConnectTrans9["ManyToOneConnectTrans_input_0 ConnectTrans"] @@ -443,9 +444,9 @@ ResultAnnouncement_ResultAnnouncement["ResultAnnouncement"] end subgraph InterruptController["interrupt_controller InterruptController"] - InterruptController_mret["mret"] InterruptController_report_interrupt["report_interrupt"] InterruptController_entry["entry"] + InterruptController_mret["mret"] end subgraph GenericCSRRegisters["csr_generic GenericCSRRegisters"] GenericCSRRegisters_GenericCSRRegisters["GenericCSRRegisters"] @@ -456,23 +457,23 @@ CSRRegister_write["write"] end subgraph CSRRegister1["mtvec CSRRegister"] - CSRRegister1__fu_write["_fu_write"] CSRRegister1__fu_read["_fu_read"] + CSRRegister1__fu_write["_fu_write"] CSRRegister1_read["read"] end subgraph CSRRegister2["mepc CSRRegister"] - CSRRegister2_write["write"] - CSRRegister2__fu_write["_fu_write"] - CSRRegister2__fu_read["_fu_read"] CSRRegister2_read["read"] + CSRRegister2__fu_read["_fu_read"] + CSRRegister2__fu_write["_fu_write"] + CSRRegister2_write["write"] end end subgraph DoubleCounterCSR["csr_cycle DoubleCounterCSR"] DoubleCounterCSR_increment["increment"] subgraph CSRRegister3["register_low CSRRegister"] - CSRRegister3__fu_read["_fu_read"] CSRRegister3_read["read"] CSRRegister3_write["write"] + CSRRegister3__fu_read["_fu_read"] end subgraph CSRRegister4["register_high CSRRegister"] CSRRegister4__fu_read["_fu_read"] @@ -506,22 +507,22 @@ end subgraph Scheduler["scheduler Scheduler"] subgraph FIFO10["alloc_rename_buf FIFO"] - FIFO10_read["read"] FIFO10_write["write"] + FIFO10_read["read"] end subgraph RegAllocation["reg_alloc RegAllocation"] RegAllocation_RegAllocation["RegAllocation"] end subgraph FIFO11["rename_out_buf FIFO"] - FIFO11_write["write"] FIFO11_read["read"] + FIFO11_write["write"] end subgraph Renaming["renaming Renaming"] Renaming_Renaming["Renaming"] end subgraph FIFO12["reg_alloc_out_buf FIFO"] - FIFO12_read["read"] FIFO12_write["write"] + FIFO12_read["read"] end subgraph ROBAllocation["rob_alloc ROBAllocation"] ROBAllocation_ROBAllocation["ROBAllocation"] @@ -548,20 +549,20 @@ ConnectTrans11_ConnectTrans["ConnectTrans"] end subgraph Retirement["retirement Retirement"] - Retirement_Retirement_cond0["Retirement_cond0"] - Retirement_core_state["core_state"] Retirement_Retirement["Retirement"] Retirement_Retirement1["Retirement"] + Retirement_core_state["core_state"] + Retirement_Retirement_cond0["Retirement_cond0"] + Retirement_Retirement_cond1["Retirement_cond1"] Retirement_Retirement2["Retirement"] Retirement_Retirement3["Retirement"] - Retirement_Retirement_cond1["Retirement_cond1"] Retirement_Retirement4["Retirement"] subgraph DoubleCounterCSR2["instret_csr DoubleCounterCSR"] DoubleCounterCSR2_increment["increment"] subgraph CSRRegister7["register_low CSRRegister"] - CSRRegister7__fu_read["_fu_read"] CSRRegister7_read["read"] CSRRegister7_write["write"] + CSRRegister7__fu_read["_fu_read"] end subgraph CSRRegister8["register_high CSRRegister"] CSRRegister8_read["read"] @@ -586,61 +587,60 @@ end end subgraph TransactionManager["transactionManager TransactionManager"] - TransactionManager_Retirement_cond0_Retirement["Retirement_cond0_Retirement"] - TransactionManager_LSUDummy_accept_cond0["LSUDummy_accept_cond0"] - TransactionManager_issue_cond0_LSUDummy["issue_cond0_LSUDummy"] - TransactionManager_LSUDummy_issue_cond2["LSUDummy_issue_cond2"] + TransactionManager_issue_cond2_LSUDummy["issue_cond2_LSUDummy"] + TransactionManager_accept_cond1_LSUDummy["accept_cond1_LSUDummy"] + TransactionManager_issue_cond1_LSUDummy["issue_cond1_LSUDummy"] + TransactionManager_accept_cond0_LSUDummy["accept_cond0_LSUDummy"] TransactionManager_Retirement_Retirement_cond1["Retirement_Retirement_cond1"] - TransactionManager_LSUDummy_issue_cond1["LSUDummy_issue_cond1"] - TransactionManager_LSUDummy_accept_cond1["LSUDummy_accept_cond1"] + TransactionManager_issue_cond0_LSUDummy["issue_cond0_LSUDummy"] + TransactionManager_Retirement_Retirement_cond0["Retirement_Retirement_cond0"] end end Core_InitFreeRFFifo --> BasicFifo2_write Retirement_Retirement --> BasicFifo2_write -TransactionManager_Retirement_cond0_Retirement --> BasicFifo2_write +TransactionManager_Retirement_Retirement_cond0 --> BasicFifo2_write TransactionManager_Retirement_Retirement_cond1 --> BasicFifo2_write FIFO6_read --> Core_DiscardBranchVerify WishboneMaster_WishboneMaster --> Forwarder_write WishboneMaster1_WishboneMaster --> Forwarder1_write -Forwarder2_read --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> WishboneMasterAdapter_request_read -SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> Serializer_Serializer +SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> Serializer_Serializer1 SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> BasicFifo_write SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> WishboneMaster_request +WishboneMasterAdapter_get_read_response --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 +Serializer_Serializer --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 +BasicFifo_read --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 +WishboneMaster_result --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 +Forwarder_read --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 +SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 --> Forwarder2_write ICache_ICache2 <--> HwCounter4__incr ICache_ICache1 <--> HwCounter3__incr ICache_ICache1 <--> HwCounter2__incr ICache_ICache1 <--> HwCounter1__incr ICache_ICache1 --> Forwarder3_write -ICache_ICache --> SimpleCommonBusCacheRefiller_start_refill -ICache_ICache --> Forwarder2_write -ICache_ICache3 --> Forwarder2_write -SimpleCommonBusCacheRefiller_accept_refill --> ICache_ICache3 -WishboneMasterAdapter_get_read_response --> ICache_ICache3 -Serializer_Serializer1 --> ICache_ICache3 -BasicFifo_read --> ICache_ICache3 -WishboneMaster_result --> ICache_ICache3 -Forwarder_read --> ICache_ICache3 -Fetch_Fetch1 --> ICache_issue_req -Fetch_Fetch1 <--> HwCounter__incr -Fetch_Fetch1 <--> LatencyMeasurer__start -Fetch_Fetch1 --> FIFO1_write -Fetch_Fetch1 --> FIFO2_write -Fetch_Fetch1 --> BasicFifo3_write -BasicFifo3_read --> Fetch_Fetch -ICache_accept_res --> Fetch_Fetch -FIFO2_read --> Fetch_Fetch -Fetch_Fetch <--> LatencyMeasurer__stop -FIFO1_read --> Fetch_Fetch -Fetch_Fetch --> HwExpHistogram__add -Forwarder3_read --> Fetch_Fetch -Fetch_Fetch --> MethodProduct_method +ICache_ICache3 --> SimpleCommonBusCacheRefiller_start_refill +SimpleCommonBusCacheRefiller_accept_refill --> ICache_ICache +Forwarder2_read --> ICache_ICache +Fetch_Fetch --> ICache_issue_req +Fetch_Fetch <--> HwCounter__incr +Fetch_Fetch <--> LatencyMeasurer__start +Fetch_Fetch --> FIFO1_write +Fetch_Fetch --> FIFO2_write +Fetch_Fetch --> BasicFifo3_write +BasicFifo3_read --> Fetch_Fetch1 +ICache_accept_res --> Fetch_Fetch1 +FIFO2_read --> Fetch_Fetch1 +Fetch_Fetch1 <--> LatencyMeasurer__stop +FIFO1_read --> Fetch_Fetch1 +Fetch_Fetch1 --> HwExpHistogram__add +Forwarder3_read --> Fetch_Fetch1 +Fetch_Fetch1 --> MethodProduct_method AdapterTrans_AdapterTrans_method --> MethodProduct_method -Fetch_Fetch --> FIFO_write +Fetch_Fetch1 --> FIFO_write AdapterTrans_AdapterTrans_method --> FIFO_write -Fetch_Fetch --> MethodMap_method +Fetch_Fetch1 --> MethodMap_method AdapterTrans_AdapterTrans_method --> MethodMap_method -Fetch_Fetch <--> CoreInstructionCounter_increment +Fetch_Fetch1 <--> CoreInstructionCounter_increment AdapterTrans_AdapterTrans_method <--> CoreInstructionCounter_increment FIFO_read --> DecodeStage_DecodeStage DecodeStage_DecodeStage <--> HwCounter8__incr @@ -658,17 +658,17 @@ ROBAllocation_ROBAllocation <--> LatencyMeasurer1__start ROBAllocation_ROBAllocation --> FIFO3_write ROBAllocation_ROBAllocation --> FIFO12_write -FIFO12_read --> RSSelection_RSSelection1 -RSSelection_RSSelection1 --> Forwarder8_write +FIFO12_read --> RSSelection_RSSelection2 +RSSelection_RSSelection2 --> Forwarder8_write +Forwarder8_read --> RSSelection_RSSelection1 Forwarder8_read --> RSSelection_RSSelection3 -Forwarder8_read --> RSSelection_RSSelection2 Forwarder8_read --> RSSelection_RSSelection -RSFuncBlock_select --> RSSelection_RSSelection3 -RS_select --> RSSelection_RSSelection3 +RSFuncBlock_select --> RSSelection_RSSelection1 +RS_select --> RSSelection_RSSelection1 +RSSelection_RSSelection1 --> FIFO13_write RSSelection_RSSelection3 --> FIFO13_write -RSSelection_RSSelection2 --> FIFO13_write RSSelection_RSSelection --> FIFO13_write -RSSelection_RSSelection2 <--> LSUDummy_select +RSSelection_RSSelection3 <--> LSUDummy_select RSSelection_RSSelection <--> CSRUnit_select FIFO13_read --> RSInsertion_RSInsertion RegisterFile_read1 --> RSInsertion_RSInsertion @@ -685,7 +685,7 @@ Collector2_method --> ConnectTrans11_ConnectTrans Forwarder7_read --> ConnectTrans11_ConnectTrans ConnectTrans11_ConnectTrans --> Fetch_resume -Retirement_Retirement4 --> Fetch_resume +Retirement_Retirement3 --> Fetch_resume Collector_method --> ResultAnnouncement_ResultAnnouncement Forwarder4_read --> ResultAnnouncement_ResultAnnouncement ResultAnnouncement_ResultAnnouncement --> ReorderBuffer_mark_done @@ -695,7 +695,7 @@ ResultAnnouncement_ResultAnnouncement --> RS_update ResultAnnouncement_ResultAnnouncement --> LSUDummy_update ResultAnnouncement_ResultAnnouncement --> CSRUnit_update -RS_RS2 --> WakeupSelect_WakeupSelect +RS_RS3 --> WakeupSelect_WakeupSelect RS_take --> WakeupSelect_WakeupSelect RS_take --> WakeupSelect1_WakeupSelect RS_take --> WakeupSelect2_WakeupSelect @@ -706,7 +706,7 @@ RS_RS4 --> WakeupSelect1_WakeupSelect WakeupSelect1_WakeupSelect --> ShiftFuncUnit_issue WakeupSelect1_WakeupSelect --> FIFO5_write -RS_RS3 --> WakeupSelect2_WakeupSelect +RS_RS2 --> WakeupSelect2_WakeupSelect WakeupSelect2_WakeupSelect --> JumpBranchFuncUnit_issue WakeupSelect2_WakeupSelect <--> HwCounter5__incr WakeupSelect2_WakeupSelect <--> HwCounter6__incr @@ -718,10 +718,10 @@ ConnectTrans3_ConnectTrans --> BasicFifo4_write WakeupSelect2_WakeupSelect --> FIFO7_write WakeupSelect2_WakeupSelect --> FIFO6_write -RS_RS --> WakeupSelect3_WakeupSelect +RS_RS1 --> WakeupSelect3_WakeupSelect WakeupSelect3_WakeupSelect --> ExceptionFuncUnit_issue WakeupSelect3_WakeupSelect --> FIFO8_write -RS_RS1 --> WakeupSelect4_WakeupSelect +RS_RS --> WakeupSelect4_WakeupSelect WakeupSelect4_WakeupSelect --> PrivilegedFuncUnit_issue ConnectTrans4_ConnectTrans --> Forwarder5_write ConnectTrans5_ConnectTrans --> Forwarder5_write @@ -740,11 +740,11 @@ CSRRegister2_read --> ConnectTrans8_ConnectTrans ConnectTrans8_ConnectTrans --> BasicFifo5_write LSUDummy_LSUDummy --> Forwarder6_write +TransactionManager_accept_cond1_LSUDummy --> Forwarder6_write TransactionManager_issue_cond0_LSUDummy --> Forwarder6_write -TransactionManager_LSUDummy_issue_cond1 --> Forwarder6_write -TransactionManager_LSUDummy_accept_cond0 --> Forwarder6_write -TransactionManager_LSUDummy_issue_cond2 --> Forwarder6_write -TransactionManager_LSUDummy_accept_cond1 --> Forwarder6_write +TransactionManager_issue_cond2_LSUDummy --> Forwarder6_write +TransactionManager_issue_cond1_LSUDummy --> Forwarder6_write +TransactionManager_accept_cond0_LSUDummy --> Forwarder6_write CSRRegister__fu_read --> CSRUnit_CSRUnit CSRUnit_CSRUnit --> CSRRegister__fu_write CSRRegister1__fu_read --> CSRUnit_CSRUnit @@ -774,37 +774,37 @@ ConnectTrans10_ConnectTrans --> Forwarder7_write BasicFifo5_read --> ConnectTrans9_ConnectTrans CSRUnit_fetch_resume --> ConnectTrans10_ConnectTrans -ReorderBuffer_peek --> Retirement_Retirement2 -ReorderBuffer_peek --> Retirement_Retirement3 +ReorderBuffer_peek --> Retirement_Retirement4 +ReorderBuffer_peek --> Retirement_Retirement1 ReorderBuffer_peek --> Retirement_Retirement -ReorderBuffer_peek --> TransactionManager_Retirement_cond0_Retirement +ReorderBuffer_peek --> TransactionManager_Retirement_Retirement_cond0 ReorderBuffer_peek --> TransactionManager_Retirement_Retirement_cond1 -Retirement_Retirement2 --> MethodTryProduct_method -ExceptionCauseRegister_get --> Retirement_Retirement3 -ExceptionCauseRegister_get --> TransactionManager_Retirement_cond0_Retirement +Retirement_Retirement4 --> MethodTryProduct_method +ExceptionCauseRegister_get --> Retirement_Retirement1 +ExceptionCauseRegister_get --> TransactionManager_Retirement_Retirement_cond0 ExceptionCauseRegister_get --> TransactionManager_Retirement_Retirement_cond1 Retirement_Retirement <--> ReorderBuffer_retire -TransactionManager_Retirement_cond0_Retirement <--> ReorderBuffer_retire +TransactionManager_Retirement_Retirement_cond0 <--> ReorderBuffer_retire TransactionManager_Retirement_Retirement_cond1 <--> ReorderBuffer_retire Retirement_Retirement <--> LatencyMeasurer1__stop -TransactionManager_Retirement_cond0_Retirement <--> LatencyMeasurer1__stop +TransactionManager_Retirement_Retirement_cond0 <--> LatencyMeasurer1__stop TransactionManager_Retirement_Retirement_cond1 <--> LatencyMeasurer1__stop FIFO3_read --> Retirement_Retirement -FIFO3_read --> TransactionManager_Retirement_cond0_Retirement +FIFO3_read --> TransactionManager_Retirement_Retirement_cond0 FIFO3_read --> TransactionManager_Retirement_Retirement_cond1 Retirement_Retirement --> HwExpHistogram1__add -TransactionManager_Retirement_cond0_Retirement --> HwExpHistogram1__add +TransactionManager_Retirement_Retirement_cond0 --> HwExpHistogram1__add TransactionManager_Retirement_Retirement_cond1 --> HwExpHistogram1__add CoreInstructionCounter_decrement --> Retirement_Retirement -CoreInstructionCounter_decrement --> TransactionManager_Retirement_cond0_Retirement +CoreInstructionCounter_decrement --> TransactionManager_Retirement_Retirement_cond0 CoreInstructionCounter_decrement --> TransactionManager_Retirement_Retirement_cond1 RRAT_peek --> Retirement_Retirement RRAT_peek --> TransactionManager_Retirement_Retirement_cond1 Retirement_Retirement --> RegisterFile_free -TransactionManager_Retirement_cond0_Retirement --> RegisterFile_free +TransactionManager_Retirement_Retirement_cond0 --> RegisterFile_free TransactionManager_Retirement_Retirement_cond1 --> RegisterFile_free -CSRRegister1_read --> Retirement_Retirement4 -Retirement_Retirement4 <--> ExceptionCauseRegister_clear +CSRRegister1_read --> Retirement_Retirement3 +Retirement_Retirement3 <--> ExceptionCauseRegister_clear GenericCSRRegisters_GenericCSRRegisters <--> DoubleCounterCSR_increment CSRRegister3_read --> GenericCSRRegisters_GenericCSRRegisters GenericCSRRegisters_GenericCSRRegisters --> CSRRegister3_write @@ -816,56 +816,56 @@ CSRRegister6_read --> GenericCSRRegisters_GenericCSRRegisters GenericCSRRegisters_GenericCSRRegisters --> CSRRegister6_write AdapterTrans1_AdapterTrans_report_interrupt <--> InterruptController_report_interrupt +TransactionManager_accept_cond1_LSUDummy <--> LSURequester_accept_cond1 +WishboneMasterAdapter1_get_read_response --> TransactionManager_accept_cond1_LSUDummy +Serializer1_Serializer2 --> TransactionManager_accept_cond1_LSUDummy +BasicFifo1_read --> TransactionManager_accept_cond1_LSUDummy +BasicFifo1_read --> TransactionManager_accept_cond0_LSUDummy +WishboneMaster1_result --> TransactionManager_accept_cond1_LSUDummy +WishboneMaster1_result --> TransactionManager_accept_cond0_LSUDummy +Forwarder1_read --> TransactionManager_accept_cond1_LSUDummy +Forwarder1_read --> TransactionManager_accept_cond0_LSUDummy +TransactionManager_accept_cond1_LSUDummy <--> LSUDummy_LSUDummy2 +TransactionManager_accept_cond0_LSUDummy <--> LSUDummy_LSUDummy2 +LSURequester_accept --> TransactionManager_accept_cond1_LSUDummy +LSURequester_accept --> TransactionManager_accept_cond0_LSUDummy TransactionManager_issue_cond0_LSUDummy <--> LSURequester_issue_cond0 TransactionManager_issue_cond0_LSUDummy --> WishboneMasterAdapter1_request_write -TransactionManager_issue_cond0_LSUDummy --> Serializer1_Serializer +TransactionManager_issue_cond0_LSUDummy --> Serializer1_Serializer1 TransactionManager_issue_cond0_LSUDummy --> BasicFifo1_write -TransactionManager_LSUDummy_issue_cond1 --> BasicFifo1_write +TransactionManager_issue_cond1_LSUDummy --> BasicFifo1_write TransactionManager_issue_cond0_LSUDummy --> WishboneMaster1_request -TransactionManager_LSUDummy_issue_cond1 --> WishboneMaster1_request +TransactionManager_issue_cond1_LSUDummy --> WishboneMaster1_request TransactionManager_issue_cond0_LSUDummy <--> LSUDummy_LSUDummy1 -TransactionManager_LSUDummy_issue_cond1 <--> LSUDummy_LSUDummy1 -TransactionManager_LSUDummy_issue_cond2 <--> LSUDummy_LSUDummy1 +TransactionManager_issue_cond2_LSUDummy <--> LSUDummy_LSUDummy1 +TransactionManager_issue_cond1_LSUDummy <--> LSUDummy_LSUDummy1 TransactionManager_issue_cond0_LSUDummy --> LSURequester_issue -TransactionManager_LSUDummy_issue_cond1 --> LSURequester_issue -TransactionManager_LSUDummy_issue_cond2 --> LSURequester_issue -TransactionManager_Retirement_cond0_Retirement <--> Retirement_Retirement_cond0 -TransactionManager_Retirement_cond0_Retirement --> RRAT_commit -TransactionManager_Retirement_cond0_Retirement <--> DoubleCounterCSR2_increment -CSRRegister7_read --> TransactionManager_Retirement_cond0_Retirement -TransactionManager_Retirement_cond0_Retirement --> CSRRegister7_write -CSRRegister8_read --> TransactionManager_Retirement_cond0_Retirement -TransactionManager_Retirement_cond0_Retirement --> CSRRegister8_write -TransactionManager_Retirement_cond0_Retirement <--> HwCounter9__incr -TransactionManager_Retirement_cond0_Retirement <--> Retirement_Retirement1 -TransactionManager_Retirement_Retirement_cond1 <--> Retirement_Retirement1 -TransactionManager_Retirement_cond0_Retirement --> CSRRegister_write +TransactionManager_issue_cond2_LSUDummy --> LSURequester_issue +TransactionManager_issue_cond1_LSUDummy --> LSURequester_issue +TransactionManager_issue_cond2_LSUDummy <--> LSURequester_issue_cond2 +TransactionManager_issue_cond1_LSUDummy <--> LSURequester_issue_cond1 +TransactionManager_issue_cond1_LSUDummy --> WishboneMasterAdapter1_request_read +TransactionManager_issue_cond1_LSUDummy --> Serializer1_Serializer +TransactionManager_Retirement_Retirement_cond0 <--> Retirement_Retirement2 +TransactionManager_Retirement_Retirement_cond1 <--> Retirement_Retirement2 +TransactionManager_Retirement_Retirement_cond0 --> CSRRegister_write TransactionManager_Retirement_Retirement_cond1 --> CSRRegister_write -TransactionManager_Retirement_cond0_Retirement --> CSRRegister2_write +TransactionManager_Retirement_Retirement_cond0 --> CSRRegister2_write TransactionManager_Retirement_Retirement_cond1 --> CSRRegister2_write -TransactionManager_Retirement_cond0_Retirement <--> InterruptController_entry +TransactionManager_Retirement_Retirement_cond0 <--> InterruptController_entry TransactionManager_Retirement_Retirement_cond1 <--> InterruptController_entry +TransactionManager_Retirement_Retirement_cond0 <--> Retirement_Retirement_cond0 +TransactionManager_Retirement_Retirement_cond0 --> RRAT_commit +TransactionManager_Retirement_Retirement_cond0 <--> DoubleCounterCSR2_increment +CSRRegister7_read --> TransactionManager_Retirement_Retirement_cond0 +TransactionManager_Retirement_Retirement_cond0 --> CSRRegister7_write +CSRRegister8_read --> TransactionManager_Retirement_Retirement_cond0 +TransactionManager_Retirement_Retirement_cond0 --> CSRRegister8_write +TransactionManager_Retirement_Retirement_cond0 <--> HwCounter9__incr +TransactionManager_accept_cond0_LSUDummy <--> LSURequester_accept_cond0 +WishboneMasterAdapter1_get_write_response --> TransactionManager_accept_cond0_LSUDummy +Serializer1_Serializer3 --> TransactionManager_accept_cond0_LSUDummy TransactionManager_Retirement_Retirement_cond1 <--> Retirement_Retirement_cond1 -TransactionManager_LSUDummy_issue_cond1 <--> LSURequester_issue_cond1 -TransactionManager_LSUDummy_issue_cond1 --> WishboneMasterAdapter1_request_read -TransactionManager_LSUDummy_issue_cond1 --> Serializer1_Serializer3 -TransactionManager_LSUDummy_accept_cond0 <--> LSUDummy_LSUDummy2 -TransactionManager_LSUDummy_accept_cond1 <--> LSUDummy_LSUDummy2 -LSURequester_accept --> TransactionManager_LSUDummy_accept_cond0 -LSURequester_accept --> TransactionManager_LSUDummy_accept_cond1 -TransactionManager_LSUDummy_accept_cond0 <--> LSURequester_accept_cond0 -WishboneMasterAdapter1_get_write_response --> TransactionManager_LSUDummy_accept_cond0 -Serializer1_Serializer1 --> TransactionManager_LSUDummy_accept_cond0 -BasicFifo1_read --> TransactionManager_LSUDummy_accept_cond0 -BasicFifo1_read --> TransactionManager_LSUDummy_accept_cond1 -WishboneMaster1_result --> TransactionManager_LSUDummy_accept_cond0 -WishboneMaster1_result --> TransactionManager_LSUDummy_accept_cond1 -Forwarder1_read --> TransactionManager_LSUDummy_accept_cond0 -Forwarder1_read --> TransactionManager_LSUDummy_accept_cond1 -TransactionManager_LSUDummy_issue_cond2 <--> LSURequester_issue_cond2 -TransactionManager_LSUDummy_accept_cond1 <--> LSURequester_accept_cond1 -WishboneMasterAdapter1_get_read_response --> TransactionManager_LSUDummy_accept_cond1 -Serializer1_Serializer2 --> TransactionManager_LSUDummy_accept_cond1 @@ -876,7 +876,7 @@

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/components/icache.html b/components/icache.html index ac317507a..4a49c5544 100644 --- a/components/icache.html +++ b/components/icache.html @@ -131,7 +131,7 @@

Address mapping example

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/coreblocks.backend.html b/coreblocks.backend.html index 06f0df0e7..97783cc64 100644 --- a/coreblocks.backend.html +++ b/coreblocks.backend.html @@ -165,7 +165,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/coreblocks.cache.html b/coreblocks.cache.html index 0ac546a51..b830418b3 100644 --- a/coreblocks.cache.html +++ b/coreblocks.cache.html @@ -98,10 +98,10 @@

Submodules
__init__(layouts: ICacheLayouts, params: ICacheParameters, refiller: CacheRefillerInterface) None
@@ -192,7 +192,7 @@

Submodules
start_refillMethod

A method that is used to start a refill for a given cache line.

-
accept_refillMethod

A method that is used to accept one word from the requested cache line.

+
accept_refillMethod

A method that is used to accept one fetch block from the requested cache line.

@@ -241,7 +241,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/coreblocks.core_structs.html b/coreblocks.core_structs.html index 0d9a38f8d..ec3cae5c2 100644 --- a/coreblocks.core_structs.html +++ b/coreblocks.core_structs.html @@ -157,7 +157,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/coreblocks.frontend.decoder.html b/coreblocks.frontend.decoder.html index e7dfe04c2..0bf181124 100644 --- a/coreblocks.frontend.decoder.html +++ b/coreblocks.frontend.decoder.html @@ -1721,7 +1721,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/coreblocks.frontend.fetch.html b/coreblocks.frontend.fetch.html index 9a495fcb5..15d16af82 100644 --- a/coreblocks.frontend.fetch.html +++ b/coreblocks.frontend.fetch.html @@ -161,7 +161,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/coreblocks.frontend.html b/coreblocks.frontend.html index 95cd0b698..cc3d008ad 100644 --- a/coreblocks.frontend.html +++ b/coreblocks.frontend.html @@ -125,7 +125,7 @@

Subpackages

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/coreblocks.func_blocks.fu.html b/coreblocks.func_blocks.fu.html index d9d9c50f6..269d7481f 100644 --- a/coreblocks.func_blocks.fu.html +++ b/coreblocks.func_blocks.fu.html @@ -867,7 +867,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/coreblocks.func_blocks.fu.unsigned_multiplication.html b/coreblocks.func_blocks.fu.unsigned_multiplication.html index 257d81169..49ae16f3b 100644 --- a/coreblocks.func_blocks.fu.unsigned_multiplication.html +++ b/coreblocks.func_blocks.fu.unsigned_multiplication.html @@ -238,7 +238,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/coreblocks.func_blocks.html b/coreblocks.func_blocks.html index 51741f02d..30f4c48f1 100644 --- a/coreblocks.func_blocks.html +++ b/coreblocks.func_blocks.html @@ -148,7 +148,7 @@

Subpackages

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/coreblocks.func_blocks.interface.html b/coreblocks.func_blocks.interface.html index b48dee4c0..f3cabe485 100644 --- a/coreblocks.func_blocks.interface.html +++ b/coreblocks.func_blocks.interface.html @@ -169,7 +169,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/coreblocks.func_blocks.lsu.html b/coreblocks.func_blocks.lsu.html index 1b052dee5..3fe2759f1 100644 --- a/coreblocks.func_blocks.lsu.html +++ b/coreblocks.func_blocks.lsu.html @@ -248,7 +248,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/coreblocks.html b/coreblocks.html index b42f87fc2..db9ee097d 100644 --- a/coreblocks.html +++ b/coreblocks.html @@ -255,7 +255,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/coreblocks.params.html b/coreblocks.params.html index 157f79dbe..693db6b54 100644 --- a/coreblocks.params.html +++ b/coreblocks.params.html @@ -120,7 +120,9 @@

Submodules
-__init__(*, xlen: int = 32, func_units_config: ~collections.abc.Collection[~coreblocks.params.fu_params.BlockComponentParams] = (RSBlockComponent(func_units=[<coreblocks.func_blocks.fu.alu.ALUComponent object>, <coreblocks.func_blocks.fu.shift_unit.ShiftUnitComponent object>, <coreblocks.func_blocks.fu.jumpbranch.JumpComponent object>, <coreblocks.func_blocks.fu.exception.ExceptionUnitComponent object>, <coreblocks.func_blocks.fu.priv.PrivilegedUnitComponent object>], rs_entries=4), <coreblocks.func_blocks.lsu.dummyLsu.LSUBlockComponent object>, <coreblocks.func_blocks.csr.csr.CSRBlockComponent object>), compressed: bool = False, embedded: bool = False, debug_signals: bool = True, phys_regs_bits: int = 6, rob_entries_bits: int = 7, start_pc: int = 0, icache_enable: bool = True, icache_ways: int = 2, icache_sets_bits: int = 7, icache_block_size_bits: int = 5, allow_partial_extensions: bool = False, _implied_extensions: ~coreblocks.params.isa_params.Extension = Extension.None, pma: list[coreblocks.func_blocks.lsu.pma.PMARegion] = <factory>) None
+__init__(*, xlen: int = 32, func_units_config: ~collections.abc.Collection[~coreblocks.params.fu_params.BlockComponentParams] = (RSBlockComponent(func_units=[<coreblocks.func_blocks.fu.alu.ALUComponent object>, <coreblocks.func_blocks.fu.shift_unit.ShiftUnitComponent object>, <coreblocks.func_blocks.fu.jumpbranch.JumpComponent object>, <coreblocks.func_blocks.fu.exception.ExceptionUnitComponent object>, <coreblocks.func_blocks.fu.priv.PrivilegedUnitComponent object>], rs_entries=4), <coreblocks.func_blocks.lsu.dummyLsu.LSUBlockComponent object>, <coreblocks.func_blocks.csr.csr.CSRBlockComponent object>), compressed: bool = False, embedded: bool = False, debug_signals: bool = True, phys_regs_bits: int = 6, rob_entries_bits: int = 7, start_pc: int = 0, icache_enable: bool = True, icache_ways: int = 2, icache_sets_bits: int = 7, icache_line_bytes_log: int = 5, fetch_block_bytes_log: int = 2, allow_partial_extensions: bool = False, _implied_extensions: ~coreblocks.params.isa_params.Extension = Extension.None, pma: list[coreblocks.func_blocks.lsu.pma.PMARegion] = <factory>) None
@@ -157,13 +159,13 @@

Submodules -
-func_units_config: Collection[BlockComponentParams] = (RSBlockComponent(func_units=[<coreblocks.func_blocks.fu.alu.ALUComponent object>, <coreblocks.func_blocks.fu.shift_unit.ShiftUnitComponent object>, <coreblocks.func_blocks.fu.jumpbranch.JumpComponent object>, <coreblocks.func_blocks.fu.exception.ExceptionUnitComponent object>, <coreblocks.func_blocks.fu.priv.PrivilegedUnitComponent object>], rs_entries=4), <coreblocks.func_blocks.lsu.dummyLsu.LSUBlockComponent object>, <coreblocks.func_blocks.csr.csr.CSRBlockComponent object>)
+
+fetch_block_bytes_log: int = 2

-
-icache_block_size_bits: int = 5
+
+func_units_config: Collection[BlockComponentParams] = (RSBlockComponent(func_units=[<coreblocks.func_blocks.fu.alu.ALUComponent object>, <coreblocks.func_blocks.fu.shift_unit.ShiftUnitComponent object>, <coreblocks.func_blocks.fu.jumpbranch.JumpComponent object>, <coreblocks.func_blocks.fu.exception.ExceptionUnitComponent object>, <coreblocks.func_blocks.fu.priv.PrivilegedUnitComponent object>], rs_entries=4), <coreblocks.func_blocks.lsu.dummyLsu.LSUBlockComponent object>, <coreblocks.func_blocks.csr.csr.CSRBlockComponent object>)
@@ -171,6 +173,11 @@

Submodulesicache_enable: bool = True

+
+
+icache_line_bytes_log: int = 5
+
+
icache_sets_bits: int = 7
@@ -291,7 +298,7 @@

Submodulesint

Log of the number of cache sets.

-
block_size_bitsint

Log of the size of a single cache block in bytes.

+
line_bytes_logint

Log of the size of a single cache line in bytes.

enablebool

Enable the instruction cache. If disabled, requestes are bypassed to the bus.

@@ -300,7 +307,7 @@

Submodules
-__init__(*, addr_width, word_width, num_of_ways, num_of_sets_bits, block_size_bits, enable=True)
+__init__(*, addr_width, word_width, fetch_block_bytes_log, num_of_ways, num_of_sets_bits, line_bytes_log, enable=True)

@@ -754,7 +761,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/coreblocks.peripherals.html b/coreblocks.peripherals.html index 4fcfee8e8..728532bee 100644 --- a/coreblocks.peripherals.html +++ b/coreblocks.peripherals.html @@ -746,7 +746,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/coreblocks.priv.csr.html b/coreblocks.priv.csr.html index 01a657398..af2333f5b 100644 --- a/coreblocks.priv.csr.html +++ b/coreblocks.priv.csr.html @@ -327,7 +327,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/coreblocks.priv.html b/coreblocks.priv.html index 7a8cd4f99..6b8207fad 100644 --- a/coreblocks.priv.html +++ b/coreblocks.priv.html @@ -123,7 +123,7 @@

Subpackages

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/coreblocks.priv.traps.html b/coreblocks.priv.traps.html index 06f5871d9..5faa0d2e3 100644 --- a/coreblocks.priv.traps.html +++ b/coreblocks.priv.traps.html @@ -171,7 +171,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/coreblocks.scheduler.html b/coreblocks.scheduler.html index 78d55ae6f..84a18b3cc 100644 --- a/coreblocks.scheduler.html +++ b/coreblocks.scheduler.html @@ -191,7 +191,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/current-graph.html b/current-graph.html index ba6956829..bc0e1328f 100644 --- a/current-graph.html +++ b/current-graph.html @@ -92,12 +92,12 @@

Full transaction-method graph

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/development-environment.html b/development-environment.html index c40b811d6..32e3ec008 100644 --- a/development-environment.html +++ b/development-environment.html @@ -209,7 +209,7 @@

tprof.py

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

diff --git a/genindex.html b/genindex.html index 9fce309da..abcead821 100644 --- a/genindex.html +++ b/genindex.html @@ -1593,6 +1593,8 @@

F

  • FenceTarget (class in coreblocks.frontend.decoder.isa)
  • Fetch (class in coreblocks.frontend.fetch.fetch) +
  • +
  • fetch_block_bytes_log (coreblocks.params.configurations.CoreConfiguration attribute)
  • fields (transactron.lib.logging.LogRecord attribute)
  • @@ -1865,10 +1867,10 @@

    I

  • ICache (class in coreblocks.cache.icache) -
  • -
  • icache_block_size_bits (coreblocks.params.configurations.CoreConfiguration attribute)
  • icache_enable (coreblocks.params.configurations.CoreConfiguration attribute) +
  • +
  • icache_line_bytes_log (coreblocks.params.configurations.CoreConfiguration attribute)
  • icache_sets_bits (coreblocks.params.configurations.CoreConfiguration attribute)
  • @@ -3755,7 +3757,7 @@

    Z

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/home.html b/home.html index 4acda82f8..787f9c3fc 100644 --- a/home.html +++ b/home.html @@ -129,7 +129,7 @@

    Documentation

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/index.html b/index.html index 4fb282ef5..9ce77deed 100644 --- a/index.html +++ b/index.html @@ -229,7 +229,7 @@

    Coreblocks

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/miscellany/exceptions-summary.html b/miscellany/exceptions-summary.html index f53ea3e05..cba86e40f 100644 --- a/miscellany/exceptions-summary.html +++ b/miscellany/exceptions-summary.html @@ -271,7 +271,7 @@

    Summary

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/modules-coreblocks.html b/modules-coreblocks.html index ff5d7ab16..4435944c8 100644 --- a/modules-coreblocks.html +++ b/modules-coreblocks.html @@ -168,7 +168,7 @@

    coreblocks

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/modules-transactron.html b/modules-transactron.html index 2faebcaf1..e5332c1c5 100644 --- a/modules-transactron.html +++ b/modules-transactron.html @@ -161,7 +161,7 @@

    transactron

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/objects.inv b/objects.inv index 2424575e4..b4da70600 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/problem-checklist.html b/problem-checklist.html index 38456e29c..293601f11 100644 --- a/problem-checklist.html +++ b/problem-checklist.html @@ -105,7 +105,7 @@

    Problem checklist

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/py-modindex.html b/py-modindex.html index eb9813b16..a5ea369db 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -668,7 +668,7 @@

    Python Module Index

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/scheduler/overview.html b/scheduler/overview.html index a448d98aa..6d978c3ff 100644 --- a/scheduler/overview.html +++ b/scheduler/overview.html @@ -146,7 +146,7 @@

    More detailed description of each block

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/search.html b/search.html index 055ef4c33..85936d231 100644 --- a/search.html +++ b/search.html @@ -101,7 +101,7 @@

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/searchindex.js b/searchindex.js index b0c412b51..af57c723e 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api", "assumptions", "auto_graph", "components/icache", "coreblocks", "coreblocks.backend", "coreblocks.cache", "coreblocks.core_structs", "coreblocks.frontend", "coreblocks.frontend.decoder", "coreblocks.frontend.fetch", "coreblocks.func_blocks", "coreblocks.func_blocks.fu", "coreblocks.func_blocks.fu.unsigned_multiplication", "coreblocks.func_blocks.interface", "coreblocks.func_blocks.lsu", "coreblocks.params", "coreblocks.peripherals", "coreblocks.priv", "coreblocks.priv.csr", "coreblocks.priv.traps", "coreblocks.scheduler", "current-graph", "development-environment", "home", "index", "miscellany/exceptions-summary", "modules-coreblocks", "modules-transactron", "problem-checklist", "scheduler/overview", "shared-structs/implementation/rs-impl", "shared-structs/rs", "synthesis/synthesis", "transactions", "transactron", "transactron.core", "transactron.lib", "transactron.testing", "transactron.utils", "transactron.utils.amaranth_ext"], "filenames": ["api.md", "assumptions.md", "auto_graph.rst", "components/icache.md", "coreblocks.rst", "coreblocks.backend.rst", "coreblocks.cache.rst", "coreblocks.core_structs.rst", "coreblocks.frontend.rst", "coreblocks.frontend.decoder.rst", "coreblocks.frontend.fetch.rst", "coreblocks.func_blocks.rst", "coreblocks.func_blocks.fu.rst", "coreblocks.func_blocks.fu.unsigned_multiplication.rst", "coreblocks.func_blocks.interface.rst", "coreblocks.func_blocks.lsu.rst", "coreblocks.params.rst", "coreblocks.peripherals.rst", "coreblocks.priv.rst", "coreblocks.priv.csr.rst", "coreblocks.priv.traps.rst", "coreblocks.scheduler.rst", "current-graph.md", "development-environment.md", "home.md", "index.md", "miscellany/exceptions-summary.md", "modules-coreblocks.rst", "modules-transactron.rst", "problem-checklist.md", "scheduler/overview.md", "shared-structs/implementation/rs-impl.md", "shared-structs/rs.md", "synthesis/synthesis.md", "transactions.md", "transactron.rst", "transactron.core.rst", "transactron.lib.rst", "transactron.testing.rst", "transactron.utils.rst", "transactron.utils.amaranth_ext.rst"], "titles": ["API", "List of assumptions made during development", "<no title>", "Instruction Cache", "coreblocks package", "coreblocks.backend package", "coreblocks.cache package", "coreblocks.core_structs package", "coreblocks.frontend package", "coreblocks.frontend.decoder package", "coreblocks.frontend.fetch package", "coreblocks.func_blocks package", "coreblocks.func_blocks.fu package", "coreblocks.func_blocks.fu.unsigned_multiplication package", "coreblocks.func_blocks.interface package", "coreblocks.func_blocks.lsu package", "coreblocks.params package", "coreblocks.peripherals package", "coreblocks.priv package", "coreblocks.priv.csr package", "coreblocks.priv.traps package", "coreblocks.scheduler package", "Full transaction-method graph", "Development environment", "Introduction", "Coreblocks", "Summary of papers about interrupts", "coreblocks", "transactron", "Problem checklist", "Scheduler overview", "Proposition of Reservation Station implementation", "Reservation Station", "Core verification", "Documentation for Coreblocks transaction framework", "transactron package", "transactron.core package", "transactron.lib package", "transactron.testing package", "transactron.utils package", "transactron.utils.amaranth_ext package"], "terms": {"packag": [0, 23, 25, 27, 28], "subpackag": [0, 27, 28], "backend": [0, 4, 27, 37], "submodul": [0, 8, 11, 18, 27, 28, 33], "annouc": [0, 4, 27], "modul": [0, 23, 27, 28, 33, 34], "retir": [0, 4, 15, 20, 27], "content": [0, 27, 28], "cach": [0, 4, 10, 16, 25, 27, 39], "icach": [0, 4, 10, 27, 37], "ifac": [0, 4, 27, 37], "refil": [0, 3, 4, 27], "core_struct": [0, 4, 27], "rat": [0, 1, 4, 21, 26, 27], "rf": [0, 1, 4, 5, 26, 27, 31, 32], "rob": [0, 1, 4, 5, 20, 21, 26, 27, 30, 31, 32], "frontend": [0, 4, 12, 15, 21, 27, 30, 37], "func_block": [0, 4, 16, 21, 27], "param": [0, 4, 6, 12, 17, 27], "configur": [0, 4, 17, 21, 27, 33, 37], "fu_param": [0, 4, 27], "genparam": [0, 4, 5, 7, 9, 10, 12, 13, 14, 15, 19, 20, 21, 27], "icache_param": [0, 4, 27], "instr": [0, 4, 9, 27], "isa_param": [0, 4, 27], "peripher": [0, 4, 27], "axi_lit": [0, 4, 27], "bus_adapt": [0, 4, 27], "wishbon": [0, 4, 27], "priv": [0, 4, 9, 11, 16, 27], "schedul": [0, 4, 25, 26, 27, 28, 35, 37, 40], "wakeup_select": [0, 4, 27], "core": [0, 5, 9, 12, 13, 16, 17, 19, 20, 21, 23, 25, 26, 27, 28, 35, 37, 39], "kei": [0, 19, 28, 35, 37, 39], "manag": [0, 12, 23, 25, 28, 35, 37, 39], "method": [0, 3, 5, 6, 9, 10, 12, 13, 14, 15, 17, 19, 20, 21, 23, 25, 28, 35, 37, 38, 39], "sugar": [0, 28, 35], "tmodul": [0, 17, 20, 28, 34, 35, 37], "transact": [0, 9, 16, 17, 19, 23, 25, 28, 31, 35, 37, 40], "transaction_bas": [0, 28, 35], "lib": [0, 28, 35, 36, 38, 39, 40], "adapt": [0, 17, 28, 34, 35, 38], "button": [0, 28, 35], "connector": [0, 28, 35], "depend": [0, 16, 19, 25, 28, 34, 35, 40], "fifo": [0, 5, 26, 28, 34, 35], "log": [0, 16, 17, 26, 28, 35, 39], "metric": [0, 16, 28, 35, 39], "reqr": [0, 28, 35], "simultan": [0, 19, 28, 34, 35, 36], "storag": [0, 28, 35], "transform": [0, 28, 35], "test": [0, 16, 23, 25, 28, 29, 35, 36, 37, 39, 40], "function": [0, 9, 12, 16, 21, 26, 28, 29, 34, 35, 36, 37, 39], "gtkw_extens": [0, 28, 35], "infrastructur": [0, 28, 35], "profil": [0, 23, 28], "testbenchio": [0, 28, 29, 35], "util": [0, 28, 29, 34, 35, 37], "assign": [0, 19, 28, 29, 34, 35, 36], "data_repr": [0, 28, 35], "debug_sign": [0, 5, 16, 28, 35, 36, 37, 38], "depcach": [0, 28, 35], "gen": [0, 9, 12, 13, 28, 35], "idgen": [0, 28, 35], "transactron_help": [0, 28, 35], "graph": [0, 23, 25, 28, 33, 36], "trace": [0, 23, 28, 38], "ha": [1, 6, 9, 10, 19, 21, 23, 26, 29, 31, 34, 35, 36, 37], "data": [1, 9, 10, 15, 17, 19, 20, 25, 32, 33, 35, 36, 37, 38, 39, 40], "forward": [1, 17, 34, 36, 37], "from": [1, 5, 6, 9, 15, 17, 19, 20, 21, 23, 24, 26, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40], "tomasulo": 1, "announc": [1, 5, 15], "bu": [1, 9, 15, 16, 17], "read": [1, 15, 17, 19, 23, 25, 29, 34, 37, 39], "x0": [1, 9], "rf0": 1, "return": [1, 3, 12, 15, 17, 20, 25, 26, 36, 37, 38, 39], "0": [1, 9, 12, 16, 17, 19, 21, 31, 32, 33, 35, 36, 37, 38], "write": [1, 6, 9, 17, 19, 26, 32, 34, 36, 37], "i": [1, 3, 5, 6, 9, 12, 13, 15, 16, 17, 19, 20, 21, 23, 24, 26, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40], "noop": 1, "separ": [1, 30, 35, 36, 37, 39], "r": [1, 5, 9, 15, 21, 23, 26, 30, 31, 32, 33], "each": [1, 10, 12, 16, 17, 19, 23, 25, 26, 31, 32, 34, 35, 36, 37, 38, 39], "fu": [1, 4, 5, 9, 11, 16, 20, 31, 32, 37], "writeback": 1, "stage": [1, 15, 20], "save": [1, 5, 16, 20, 23, 26, 31, 32, 35, 37, 39], "after": [1, 3, 6, 10, 17, 20, 26, 30, 33, 34, 37], "get": [1, 5, 9, 12, 13, 21, 23, 25, 35, 36, 37, 38, 39, 40], "output": [1, 5, 6, 15, 17, 23, 26, 31, 32, 36, 37, 40], "commit": [1, 23, 26, 33], "updat": [1, 14, 15, 19, 33, 40], "The": [3, 5, 6, 12, 17, 23, 24, 25, 26, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40], "should": [3, 5, 6, 9, 10, 17, 20, 21, 23, 24, 26, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40], "expos": [3, 37, 39], "three": [3, 9, 26, 33, 36], "issue_req": [3, 6], "thi": [3, 5, 6, 9, 12, 13, 15, 17, 19, 20, 21, 23, 26, 29, 31, 32, 33, 34, 35, 36, 37, 39, 40], "issu": [3, 6, 12, 13, 14, 21, 23, 34, 37], "an": [3, 5, 6, 15, 17, 21, 23, 24, 26, 29, 31, 33, 34, 35, 36, 37, 38, 39, 40], "lookup": [3, 6], "request": [3, 6, 12, 13, 15, 16, 17, 34, 35, 36, 37, 40], "accept_resp": 3, "result": [3, 5, 6, 9, 12, 13, 15, 17, 20, 26, 33, 34, 37, 39], "flush": [3, 6, 20, 26], "entir": [3, 33, 34], "oper": [3, 9, 12, 16, 26, 34, 36, 37, 40], "under": [3, 34, 35, 36], "follow": [3, 12, 21, 23, 31, 33, 34, 37, 39], "ar": [3, 5, 9, 15, 16, 17, 19, 23, 24, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40], "alwai": [3, 9, 19, 33, 34, 36, 37, 38], "multipl": [3, 12, 13, 16, 17, 21, 34, 36, 37, 39], "4": [3, 9, 12, 16, 37], "byte": [3, 16, 35, 37, 39], "risc": [3, 9, 16, 24, 33], "v": [3, 9, 16, 23, 24, 26, 31, 33, 37], "specif": [3, 9, 16, 17, 23, 26, 33, 37], "requir": [3, 19, 23, 26, 33, 34, 35, 36], "align": [3, 15, 39], "c": [3, 16, 26, 33, 37], "extens": [3, 9, 16, 33], "introduc": [3, 26, 34], "16": [3, 9, 16, 26, 36], "bit": [3, 6, 9, 12, 13, 16, 17, 19, 20, 26, 31, 32, 34, 37, 39, 40], "relax": [3, 34], "fetch": [3, 4, 5, 8, 9, 16, 20, 26], "unit": [3, 5, 9, 10, 12, 13, 16, 17, 21, 23, 30, 33], "handl": [3, 12, 20, 25, 34, 36], "case": [3, 5, 17, 21, 26, 29, 34, 36, 37, 39, 40], "fulli": [3, 15, 37], "pipelin": [3, 15, 17, 21, 26, 31, 37], "process": [3, 20, 23, 25, 33, 37, 38], "order": [3, 16, 20, 21, 23, 24, 25, 33, 36, 37], "As": [3, 26, 34, 37], "can": [3, 5, 15, 17, 19, 20, 23, 24, 26, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40], "invok": [3, 5, 9, 10, 21, 26, 31, 38], "independ": [3, 34, 37], "accept_r": [3, 6], "If": [3, 9, 16, 17, 19, 20, 26, 29, 31, 34, 35, 36, 37, 39], "space": [3, 26], "anoth": [3, 6, 23, 34, 36, 37], "simpli": 3, "block": [3, 13, 14, 16, 17, 21, 25, 26, 34, 36, 37], "latenc": [3, 26, 33, 37], "least": 3, "one": [3, 5, 6, 12, 17, 20, 23, 26, 30, 31, 32, 34, 36, 37, 38, 39, 40], "cycl": [3, 12, 13, 17, 19, 20, 23, 26, 30, 33, 34, 35, 36, 37, 38], "miss": [3, 26], "occur": [3, 6], "arbitrarili": 3, "long": [3, 32, 33, 37], "ensur": [3, 33], "ani": [3, 9, 17, 21, 26, 29, 37, 38, 39, 40], "refetch": 3, "howev": [3, 36, 37], "guarante": [3, 26], "have": [3, 5, 15, 17, 23, 26, 29, 33, 34, 36, 37, 38, 39, 40], "alreadi": [3, 5, 26, 37, 39], "been": 3, "still": [3, 26, 32, 36], "wait": [3, 5, 17, 20, 23, 26, 31, 32, 36, 38], "accept": [3, 6, 12, 13, 14, 33, 36, 37, 39], "inform": [3, 15, 21, 23, 35, 37, 39], "regard": 3, "error": [3, 6, 17, 36, 37, 39], "mean": [3, 21, 23, 32, 36, 37], "dure": [3, 15, 25, 30, 37, 38], "line": [3, 6, 16, 23, 25], "subsequ": 3, "access": [3, 16, 17, 19, 26, 34, 37, 38, 39], "trigger": [3, 19, 37, 39], "which": [3, 5, 6, 9, 10, 12, 15, 17, 21, 23, 24, 26, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40], "most": [3, 26, 34, 36, 37], "like": [3, 9, 26, 34, 36, 37], "For": [3, 16, 23, 31, 32, 34, 35, 37, 39, 40], "32": [3, 9, 12, 13, 16, 17, 26, 34, 37], "128": [3, 9, 16], "set": [3, 6, 9, 12, 15, 16, 19, 20, 21, 25, 31, 33, 36, 37, 39, 40], "size": [3, 16, 17, 26, 34, 37, 39], "equal": [3, 20, 37], "31": [3, 9], "15": [3, 9], "14": [3, 9], "13": [3, 9], "12": [3, 9], "11": [3, 9, 23, 33], "10": [3, 9, 26], "09": 3, "08": 3, "07": 3, "06": [3, 38], "05": 3, "04": 3, "03": 3, "02": 3, "01": 3, "00": 3, "tag": [3, 17, 26, 31, 32], "index": [3, 35, 36, 40], "offset": 3, "decod": [4, 8, 12, 15, 21, 35, 39], "decode_stag": [4, 8], "instr_decod": [4, 8], "instr_descript": [4, 8], "isa": [4, 8, 10, 16, 19], "optyp": [4, 8, 12, 15, 16, 21], "rvc": [4, 8, 10], "alu": [4, 11, 16], "div_unit": [4, 11], "except": [4, 5, 9, 11, 16, 18, 25, 29, 36, 38, 39], "jumpbranch": [4, 11, 16, 37], "mul_unit": [4, 11], "shift_unit": [4, 11, 16], "zbc": [4, 11, 16], "zb": [4, 11, 16], "interfac": [4, 6, 9, 11, 13, 15, 17, 21, 25, 33, 34, 36, 37], "func_blocks_unifi": [4, 11], "func_protocol": [4, 11, 21], "lsu": [4, 11, 16], "dummylsu": [4, 11, 16], "pma": [4, 11, 16], "csr": [4, 9, 16, 18], "csr_instanc": [4, 18], "csr_regist": [4, 18], "trap": [4, 18], "instr_count": [4, 18], "interrupt_control": [4, 18], "class": [4, 5, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 34, 35, 36, 37, 38, 39, 40], "base": [4, 5, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 26, 35, 36, 37, 38, 39, 40], "elaborat": [4, 5, 6, 7, 9, 10, 12, 13, 14, 15, 17, 19, 20, 21, 34, 35, 36, 37, 38, 39], "__init__": [4, 5, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 34, 35, 36, 37, 38, 39, 40], "gen_param": [4, 5, 7, 9, 10, 12, 13, 14, 15, 16, 19, 20, 21], "wb_instr_bu": 4, "wishboneinterfac": [4, 17], "wb_data_bu": 4, "resultannounc": 5, "simpl": [5, 6, 9, 10, 15, 21, 36, 37, 39, 40], "It": [5, 9, 10, 12, 13, 15, 17, 21, 23, 26, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40], "take": [5, 9, 17, 30, 31, 34, 36, 37, 38, 39], "execut": [5, 9, 12, 17, 21, 23, 25, 30, 32, 34, 35, 36, 37, 38], "instruct": [5, 6, 9, 10, 12, 15, 16, 19, 20, 21, 25, 26, 30, 31, 33], "send": [5, 9, 10, 16, 17, 21], "its": [5, 9, 19, 21, 26, 33, 34, 36, 37, 39, 40], "mark": [5, 25, 26, 35], "complet": [5, 17, 26], "store": [5, 9, 15, 16, 20, 26, 31, 32, 36, 37, 39], "valu": [5, 6, 9, 12, 15, 16, 17, 19, 20, 21, 25, 29, 31, 32, 35, 36, 37, 38, 39, 40], "also": [5, 23, 33, 34, 37, 38], "sent": [5, 17, 38], "get_result": [5, 14, 15, 37], "serial": [5, 15, 37], "so": [5, 17, 26, 33, 34, 35, 36, 37], "we": [5, 6, 15, 17, 26, 30, 31, 32, 33, 34, 37, 38], "more": [5, 23, 25, 26, 37, 39], "than": [5, 26, 37, 39], "connect": [5, 9, 17, 19, 26, 34, 36, 37], "manytooneconnecttran": [5, 37], "rob_mark_don": 5, "rs_updat": 5, "rf_write": 5, "paramet": [5, 6, 9, 10, 12, 13, 15, 16, 17, 19, 20, 21, 34, 36, 37, 38, 39, 40], "instanc": [5, 6, 9, 10, 15, 21, 33, 35, 36, 37, 38, 39], "us": [5, 6, 9, 10, 12, 13, 15, 16, 17, 19, 20, 21, 25, 26, 29, 33, 34, 36, 37, 38, 39, 40], "gener": [5, 6, 9, 10, 12, 13, 15, 16, 17, 19, 21, 23, 24, 26, 29, 33, 35, 36, 37, 38, 39], "next": [5, 6, 9, 10, 15, 21, 26, 36, 40], "readi": [5, 6, 15, 17, 19, 21, 25, 31, 35, 36, 37], "assum": [5, 12, 26, 37, 39], "differ": [5, 12, 17, 23, 24, 26, 29, 33, 36, 37, 39], "end": [5, 15, 26, 36, 37], "without": [5, 21, 26, 36, 37, 39], "pass": [5, 23, 25, 33, 36, 37, 38, 39], "finish": [5, 17, 20, 37], "rob_peek": 5, "rob_retir": 5, "r_rat_commit": 5, "r_rat_peek": 5, "free_rf_put": 5, "rf_free": 5, "precommit": [5, 15, 23], "exception_cause_get": 5, "exception_cause_clear": 5, "frat_renam": 5, "fetch_continu": 5, "instr_decr": 5, "trap_entri": 5, "cacheinterfac": [6, 10], "A": [6, 16, 17, 33, 34, 35, 36, 37, 39], "associ": [6, 16, 37], "replac": [6, 13, 16, 31], "polici": 6, "pseudo": 6, "random": [6, 38], "scheme": 6, "everi": [6, 12, 17, 23, 33, 36, 37], "time": [6, 17, 19, 26, 36, 37], "trash": 6, "select": [6, 9, 12, 14, 15, 17, 21, 23], "wai": [6, 12, 17, 23, 26, 33, 34, 36, 37, 39], "keep": [6, 36], "global": [6, 19, 26], "counter": [6, 16, 19, 20, 23, 37], "abstract": [6, 13, 16, 33, 37, 39], "awai": 6, "need": [6, 17, 23, 26, 31, 34, 36], "two": [6, 19, 26, 29, 33, 34, 36, 37, 38, 39], "refiller_start": 6, "call": [6, 19, 20, 21, 23, 29, 31, 34, 35, 36, 37, 38, 39], "whenev": [6, 37], "refiller_accept": 6, "word": [6, 16], "written": [6, 19, 32, 33, 37], "last": [6, 20, 21, 36, 37], "when": [6, 17, 20, 23, 26, 29, 31, 32, 34, 36, 37, 38, 39, 40], "either": [6, 17, 34, 36, 37, 38, 39, 40], "transfer": [6, 17, 36, 37], "over": [6, 19, 36, 37], "shouldn": [6, 33], "t": [6, 9, 15, 16, 23, 26, 29, 31, 33, 34, 36, 37, 38, 39], "until": [6, 26, 37], "start": [6, 12, 15, 17, 26, 36, 37], "layout": [6, 9, 10, 17, 21, 23, 29, 34, 36, 37, 39], "icachelayout": 6, "icacheparamet": [6, 16], "cacherefillerinterfac": 6, "none": [6, 7, 9, 10, 12, 15, 16, 19, 35, 36, 37, 38, 39, 40], "creat": [6, 13, 17, 23, 33, 34, 36, 37, 38, 39, 40], "input": [6, 9, 12, 17, 26, 31, 32, 34, 36, 37, 40], "start_refil": 6, "accept_refil": 6, "deserialize_addr": 6, "raw_addr": 6, "dict": [6, 17, 34, 35, 36, 37, 38, 39, 40], "str": [6, 16, 17, 35, 36, 37, 38, 39, 40], "amaranth": [6, 9, 12, 16, 17, 29, 33, 34, 35, 36, 37, 38, 39, 40], "hdl": [6, 9, 12, 16, 35, 36, 37, 38, 39, 40], "_ast": [6, 9, 12, 16, 36, 37, 38, 39, 40], "serialize_addr": 6, "addr": [6, 15, 17, 37], "view": [6, 12, 15, 36, 37, 38, 39, 40], "icachebypass": 6, "bus_mast": 6, "busmasterinterfac": [6, 15, 17], "haselabor": [6, 14, 17, 35, 36, 37, 38, 40], "protocol": [6, 14, 17, 35, 36, 37], "whole": [6, 24, 26, 37], "given": [6, 15, 23, 31, 34, 35, 36, 37, 38, 39, 40], "simplecommonbuscacherefil": 6, "frat": 7, "rrat": 7, "registerfil": 7, "reorderbuff": [7, 20], "decodestag": 9, "instanti": [9, 36], "instrdecod": 9, "make": [9, 12, 23, 24, 26, 29, 33, 34, 35, 38], "actual": [9, 23, 25, 34], "combinatori": [9, 34], "manner": [9, 17], "get_raw": 9, "push_decod": 9, "raw": 9, "previou": [9, 17, 26, 37], "step": [9, 10, 21, 23, 26, 33, 34], "e": [9, 16, 23, 26, 29, 34, 37, 39, 40], "g": [9, 16, 23, 26, 29, 34, 37, 39, 40], "fetchlayout": [9, 10], "describ": [9, 10, 21, 26, 33, 35, 36, 37, 38], "decodelayout": [9, 21], "perform": [9, 12, 13, 16, 21, 23, 33, 34, 36, 37, 39, 40], "elementari": 9, "compon": [9, 16, 17, 24, 36, 37], "opcod": [9, 16, 31, 32], "funct3": [9, 12, 16], "etc": [9, 16, 34], "via": [9, 34, 36], "attribut": [9, 12, 13, 15, 16, 17, 19, 20, 35, 36, 37, 39, 40], "signal": [9, 12, 15, 16, 17, 25, 29, 35, 36, 37, 38, 39, 40], "ilen": [9, 16], "out": [9, 12, 13, 17, 24, 25, 35, 36, 37, 40], "identifi": [9, 16, 31, 37], "funct3_v": 9, "1": [9, 12, 13, 16, 19, 21, 26, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40], "funct7": [9, 12, 16], "seven": 9, "funct7_v": 9, "funct12": 9, "twelv": 9, "funct12_v": 9, "rd": [9, 16], "reg_cnt_log": 9, "address": [9, 15, 16, 17, 19, 25, 26], "regist": [9, 16, 19, 21, 26, 30, 36, 37, 39], "rd_v": 9, "rs1": [9, 16], "hold": [9, 17, 37], "first": [9, 12, 21, 26, 31, 32, 33, 34, 37, 38, 39], "rs1_v": 9, "form": [9, 16, 19, 26, 33, 37], "rs2": [9, 16], "second": [9, 12, 21, 31, 32, 33, 37], "rs2_v": 9, "imm": [9, 16], "xlen": [9, 12, 16, 19, 39], "immedi": [9, 17], "provid": [9, 12, 16, 19, 21, 33, 34, 37, 38, 39], "were": [9, 26, 34], "succ": 9, "fencetarget": 9, "successor": 9, "fenc": [9, 16], "pred": 9, "predecessor": 9, "fm": 9, "fencefm": 9, "mode": [9, 16, 23, 26], "csr_alen": [9, 16], "control": [9, 16, 17, 33, 35, 36, 37, 40], "sourc": [9, 21, 23, 31, 35, 36, 37], "type": [9, 12, 23, 36, 37, 38, 39], "defin": [9, 15, 19, 34, 36, 37, 39, 40], "kind": [9, 12, 21, 37, 39], "illeg": 9, "wa": [9, 19, 20, 23, 26, 34, 35, 36, 37, 39], "success": [9, 17, 38], "do": [9, 26, 29, 34, 36], "fit": 9, "support": [9, 15, 16, 21, 23, 25, 36, 37], "constructor": [9, 34, 36, 39], "encod": [9, 16, 26, 35, 39, 40], "object": [9, 12, 15, 16, 17, 33, 34, 35, 37, 38, 39], "repres": [9, 19, 36, 37], "singl": [9, 12, 13, 16, 20, 21, 34, 36, 37, 39], "option": [9, 12, 16, 17, 19, 23, 34, 35, 36, 37, 38, 39, 40], "exist": [9, 34], "instr_type_overrid": 9, "instrtyp": 9, "specifi": [9, 16, 17, 19, 32, 37, 38, 39], "determin": [9, 26, 33, 37, 39], "instrust": 9, "almost": 9, "correct": [9, 15, 26, 31, 32, 33], "rd_zero": 9, "bool": [9, 15, 16, 19, 35, 36, 37, 38, 39, 40], "field": [9, 15, 16, 19, 23, 31, 32, 34, 35, 36, 37, 38, 39], "constant": 9, "zero": [9, 20, 31, 37, 40], "other": [9, 19, 23, 25, 34, 35, 36, 37, 40], "accordingli": 9, "default": [9, 17, 23, 34, 35, 36, 37, 39, 40], "fals": [9, 12, 15, 16, 23, 34, 35, 36, 37, 39, 40], "rs1_zero": 9, "exceptioncaus": 9, "intenum": [9, 12, 19], "breakpoint": 9, "3": [9, 12, 19, 23, 35, 36, 39], "environment_call_from_m": 9, "environment_call_from_": 9, "9": 9, "environment_call_from_u": 9, "8": [9, 12, 13, 16, 17, 36, 37], "illegal_instruct": 9, "2": [9, 12, 13, 16, 17, 19, 33, 35, 36, 37, 39], "instruction_access_fault": 9, "instruction_address_misalign": 9, "instruction_page_fault": 9, "load_access_fault": 9, "5": [9, 12, 16, 30, 37, 38], "load_address_misalign": 9, "load_page_fault": 9, "store_access_fault": 9, "7": [9, 16], "store_address_misalign": 9, "6": [9, 16, 26], "store_page_fault": 9, "__new__": [9, 12, 16, 19, 35], "tso": 9, "intflag": [9, 12, 16, 35], "dev_i": 9, "dev_o": 9, "mem_r": 9, "mem_w": 9, "clz": 9, "1536": 9, "cpop": 9, "1538": 9, "ctz": 9, "1537": 9, "ebreak": 9, "ecal": 9, "mret": [9, 12], "770": 9, "orcb": 9, "647": 9, "rev8_32": 9, "1688": 9, "rev8_64": 9, "1720": 9, "sextb": 9, "1540": 9, "sexth": 9, "1541": 9, "sret": 9, "258": 9, "wfi": 9, "261": 9, "zexth": 9, "add": [9, 34, 36, 37, 39], "AND": 9, "andn": 9, "b": [9, 16, 37], "bclr": [9, 12], "beq": 9, "bext": [9, 12], "bge": 9, "bgeu": 9, "binv": [9, 12], "blt": 9, "bltu": 9, "bne": 9, "bset": [9, 12], "clmul": [9, 12], "clmulh": [9, 12], "clmulr": [9, 12], "csrrc": 9, "csrrci": 9, "csrr": 9, "csrrsi": 9, "csrrw": 9, "csrrwi": 9, "d": [9, 16, 34, 36, 37, 39], "div": [9, 12], "divu": [9, 12], "divuw": 9, "divw": 9, "fencei": 9, "h": [9, 26], "hu": 9, "jalr": 9, "max": [9, 33], "maxu": 9, "min": [9, 37], "minu": 9, "mul": [9, 12], "mulh": [9, 12], "mulhsu": [9, 12], "mulhu": [9, 12], "mulw": 9, "OR": 9, "orn": 9, "rem": [9, 12], "remu": [9, 12], "remuw": 9, "remw": 9, "rev8": 9, "rol": 9, "ror": 9, "sh1add": 9, "sh2add": 9, "sh3add": 9, "sll": 9, "slt": 9, "sltu": 9, "sr": 9, "sub": [9, 37], "w": [9, 26], "xnor": 9, "xor": 9, "36": 9, "52": 9, "20": 9, "48": 9, "muldiv": 9, "sa": 9, "sfencevma": 9, "sl": 9, "enum": [9, 12, 16, 36, 37, 38, 39], "j": [9, 16], "": [9, 16, 17, 26, 34, 35, 36, 37, 39, 40], "u": [9, 26, 33, 37, 39], "auipc": 9, "branch": [9, 26, 33, 37], "24": 9, "jal": 9, "27": 9, "25": 9, "load": [9, 15, 26, 37, 39], "load_fp": 9, "lui": 9, "misc_mem": 9, "op": 9, "op32": 9, "op_imm": 9, "op_imm_32": 9, "store_fp": 9, "system": [9, 33, 34, 39], "28": [9, 26], "a0": 9, "a1": 9, "a2": 9, "a3": 9, "a4": 9, "a5": 9, "a6": 9, "a7": 9, "17": 9, "fp": [9, 35], "gp": [9, 12, 20], "ra": 9, "s0": 9, "s1": 9, "s10": 9, "26": 9, "s11": 9, "s2": 9, "18": 9, "s3": 9, "19": 9, "s4": 9, "s5": 9, "21": 9, "s6": 9, "22": 9, "s7": 9, "23": 9, "s8": 9, "s9": 9, "sp": 9, "t0": 9, "t1": [9, 34], "t2": [9, 34], "t3": 9, "t4": 9, "29": 9, "t5": 9, "30": [9, 26], "t6": 9, "tp": [9, 39], "x1": 9, "x10": 9, "x11": 9, "x12": 9, "x13": 9, "x14": 9, "x15": 9, "x16": 9, "x17": 9, "x18": 9, "x19": 9, "x2": 9, "x20": 9, "x21": 9, "x22": 9, "x23": 9, "x24": 9, "x25": 9, "x26": 9, "x27": 9, "x28": 9, "x29": 9, "x3": 9, "x30": 9, "x31": 9, "x4": 9, "x5": 9, "x6": 9, "x7": 9, "x8": 9, "x9": 9, "confus": 9, "address_gener": 9, "arithmet": 9, "bit_manipul": 9, "bit_rot": 9, "compar": [9, 25], "csr_imm": 9, "csr_reg": 9, "div_rem": 9, "34": 9, "intern": [9, 16, 25, 34, 36, 37], "caus": [9, 26, 37, 39], "befor": [9, 17, 20, 23, 29, 30, 34, 36, 37], "logic": [9, 26, 32, 33, 34], "33": 9, "shift": [9, 11, 12, 16, 37], "single_bit_manipul": 9, "unary_bit_manipulation_1": 9, "unary_bit_manipulation_2": 9, "unary_bit_manipulation_3": 9, "unary_bit_manipulation_4": 9, "unary_bit_manipulation_5": 9, "unknown": [9, 23, 35, 37, 39], "optypes_required_by_extens": 9, "resolve_impl": 9, "true": [9, 15, 16, 17, 34, 35, 36, 37, 38, 39, 40], "ignore_unsupport": 9, "instrdecompress": 9, "decompr_reg": 9, "rvc_reg": 9, "instr_mux": 9, "sel": [9, 17], "list": [9, 12, 16, 17, 19, 23, 25, 29, 33, 35, 36, 37, 38, 39, 40], "int": [9, 12, 13, 15, 16, 17, 19, 35, 36, 37, 38, 39, 40], "valuecast": [9, 16, 36, 37, 38, 39], "tupl": [9, 12, 17, 19, 21, 35, 36, 37, 39], "is_instr_compress": 9, "pc": [10, 25], "insid": [10, 33, 34, 36, 37], "increment": [10, 19, 20], "ilen_byt": 10, "cont": [10, 38], "unalignedfetch": 10, "work": [10, 21, 26, 29, 33, 34, 36, 37], "unalign": 10, "unsigned_multipl": [11, 12], "common": [11, 12, 17, 36, 37, 39], "fast_recurs": [11, 12], "sequenc": [11, 12, 21, 37], "alucompon": [12, 16], "functionalcomponentparam": [12, 16], "zba_en": 12, "zbb_enabl": 12, "get_modul": [12, 15, 16], "funcunit": [12, 14, 16], "get_optyp": [12, 15, 16], "alufuncunit": 12, "alu_fn": 12, "alufn": 12, "divcompon": 12, "ipc": [12, 33], "div_fn": 12, "divfn": 12, "decodermanag": 12, "fn": 12, "get_instruct": 12, "valid": [12, 17, 21, 31, 37, 39, 40], "implement": [12, 15, 17, 24, 25, 26, 30, 37, 39, 40], "format": [12, 23, 33, 34, 35, 36, 37, 39], "divunit": 12, "get_input": 12, "arg": [12, 17, 34, 35, 36, 37, 38, 39, 40], "exceptionfuncunit": 12, "unit_fn": 12, "exceptionunitfn": 12, "exceptionunitcompon": [12, 16], "jumpbranchfuncunit": 12, "jb_fn": 12, "jumpbranchfn": 12, "jumpcompon": [12, 16], "mulcompon": 12, "mul_unit_typ": 12, "multyp": 12, "dsp_width": [12, 13], "mul_fn": 12, "mulfn": 12, "hot": [12, 26, 40], "wire": 12, "recursive_mul": 12, "fastest": 12, "multipli": [12, 13], "onli": [12, 17, 19, 20, 26, 33, 34, 35, 36, 37, 38, 39], "costli": [12, 26], "term": 12, "resourc": [12, 20, 26, 33, 34, 36], "sequence_mul": 12, "dsp": [12, 13], "balanc": 12, "between": [12, 23, 26, 34, 36, 37, 39, 40], "cost": [12, 25, 34], "shift_mul": 12, "cheapest": 12, "russian": [12, 13], "peasant": [12, 13], "algorithm": [12, 13, 37], "mulunit": 12, "respons": [12, 17, 21, 23, 36, 37, 38], "unsign": [12, 13], "integ": [12, 16, 38, 39], "standard": [12, 26, 33, 37, 40], "funcunitlayout": [12, 21], "comput": [12, 13, 15, 20, 26, 37, 39], "mul_typ": 12, "privilegedfn": 12, "classmethod": [12, 35, 36, 37, 39], "privilegedfuncunit": 12, "privilegedunitcompon": [12, 16], "shiftfuncunit": 12, "shift_unit_fn": 12, "shiftunitfn": 12, "shiftunitcompon": [12, 16], "clmultipli": 12, "carri": [12, 16, 33], "less": [12, 16], "product": [12, 37], "i1": [12, 13], "n": [12, 13, 16, 37], "factor": 12, "i2": [12, 13], "reset": [12, 19, 25, 36], "new": [12, 15, 17, 20, 25, 26, 36, 37, 39, 40], "busi": 12, "while": [12, 36, 38], "progress": 12, "bit_width": 12, "recursion_depth": 12, "width": [12, 13, 16, 17, 19, 37, 39, 40], "depth": [12, 17, 33, 37], "recurs": [12, 13, 33, 34, 35, 37, 39], "parallel": [12, 37], "power": [12, 39], "iterative_modul": 12, "recursive_modul": 12, "zbccompon": 12, "zbc_fn": 12, "zbcfn": 12, "zbcunit": 12, "zbsfunction": 12, "in1": 12, "in2": 12, "zbscompon": 12, "zbsunit": 12, "zbs_fn": 12, "dspmulunit": 13, "clock": [13, 30, 33, 34, 35, 36, 37], "design": [13, 26, 34, 35], "synthesi": [13, 25], "tool": [13, 23, 33, 35], "o": [13, 26, 34, 36], "same": [13, 15, 23, 34, 36, 37, 39], "number": [13, 16, 17, 23, 26, 33, 35, 36, 37, 38, 39, 40], "mulbaseunsign": 13, "unsignedmulunitlayout": 13, "recursiveunsignedmul": 13, "see": [13, 29, 33, 34, 37], "fast": 13, "within": [13, 23], "sequentialunsignedmul": 13, "sequenti": [13, 17], "classic": [13, 26], "shiftunsignedmul": 13, "cheap": 13, "multi": 13, "funcblocksunifi": 14, "iter": [14, 16, 36, 37, 38, 39, 40], "blockcomponentparam": [14, 15, 16], "extra_methods_requir": 14, "unifierkei": [14, 37], "get_extra_method": 14, "item": [14, 39, 40], "funcblock": [14, 15, 16, 21], "insert": [14, 15, 21, 25, 26, 30, 31], "lsublockcompon": [15, 16], "get_rs_entry_count": [15, 16], "lsudummi": 15, "veri": [15, 26, 34], "all": [15, 16, 17, 20, 23, 25, 26, 29, 34, 35, 36, 37, 39, 40], "isn": [15, 33, 36], "compliant": [15, 33], "riscv": [15, 33], "spec": 15, "doesn": [15, 26, 29, 34, 37], "check": [15, 23, 26, 29, 31, 32, 33, 36, 39], "rang": [15, 36, 37, 38, 39, 40], "reserv": [15, 16, 25, 26], "place": [15, 17, 26, 31, 33, 34, 36, 37], "intruct": 15, "put": [15, 31, 33, 37], "receiv": [15, 17, 34, 36, 37], "calcul": [15, 37], "further": [15, 23, 37], "To": [15, 23, 26, 33, 37, 39], "processor": [15, 24, 25, 30], "master": [15, 17, 33], "pmacheck": 15, "physic": [15, 16, 21, 26], "memori": [15, 16, 17, 26, 36, 37], "checker": 15, "mai": [15, 23, 37, 38, 39], "part": [15, 19, 26, 30, 34, 36, 37], "combin": [15, 25, 29, 36, 37, 39], "circuit": [15, 33, 34, 36, 37, 39], "pmalayout": 15, "structlayout": [15, 36, 37, 39], "pmaregion": [15, 16], "contigu": [15, 16], "region": [15, 26], "includ": [15, 33, 34, 36, 37, 39, 40], "both": [15, 31, 34, 36, 37, 39], "begin": [15, 26], "mmio": 15, "indic": [15, 26, 32, 36, 37], "coreconfigur": 16, "func_units_config": 16, "collect": [16, 19, 24, 33, 35, 36, 37, 38, 39, 40], "station": [16, 25], "exampl": [16, 19, 23, 25, 31, 34, 36, 37, 40], "rsblockcompon": 16, "rs_entri": 16, "compress": 16, "enabl": [16, 37, 38, 39], "embed": 16, "reduc": [16, 26, 36], "debug": [16, 23, 37, 39], "hardwar": [16, 25, 30, 34, 37], "disabl": [16, 35, 37, 38], "them": [16, 23, 26, 33, 34, 36, 37, 39], "synthes": [16, 33, 37], "phys_regs_bit": 16, "file": [16, 23, 26, 33, 39], "rob_entries_bit": 16, "reorder": [16, 26, 37], "buffer": [16, 17, 26, 31, 37], "start_pc": 16, "initi": [16, 17, 25, 37, 38], "program": [16, 26, 33, 34], "icache_en": 16, "bypass": 16, "directli": [16, 34, 36], "icache_wai": 16, "icache_sets_bit": 16, "icache_block_size_bit": 16, "allow_partial_extens": 16, "allow": [16, 24, 26, 33, 34, 36, 37, 40], "partial": [16, 35, 37, 39], "_implied_extens": 16, "extenst": 16, "flag": 16, "definit": [16, 25, 36], "per": [16, 33], "segment": 16, "abc": [16, 36, 37, 38, 39, 40], "func_unit": 16, "csrblockcompon": 16, "factori": [16, 35, 37, 39], "kwarg": [16, 17, 35, 36, 37, 38, 39, 40], "optypes_support": 16, "dependentcach": [16, 39], "cfg": 16, "addr_width": [16, 17], "length": [16, 26, 36, 39], "word_width": 16, "machin": [16, 19], "num_of_wai": 16, "num_of_sets_bit": 16, "block_size_bit": 16, "btypeinstr": 16, "riscvinstr": 16, "static": [16, 35, 36, 39], "pack": 16, "ebreakinstr": 16, "itypeinstr": 16, "illegalinstr": 16, "jtypeinstr": 16, "rtypeinstr": 16, "stypeinstr": 16, "utypeinstr": 16, "avail": [16, 17, 19, 21, 23, 24, 33, 37], "atom": [16, 31, 34], "512": 16, "manipul": 16, "256": 16, "doubl": [16, 19, 26], "precis": [16, 26, 33], "float": [16, 35, 37, 38, 39], "point": [16, 26, 29, 33], "64": [16, 17], "f": [16, 21, 23, 33, 38], "98366": 16, "contain": [16, 23, 33, 34, 36, 37, 39], "basic": [16, 25, 33, 37], "full": [16, 23, 25, 26, 33, 37], "1024": 16, "dynam": [16, 26, 40], "languag": [16, 34], "l": [16, 23], "decim": 16, "m": [16, 17, 19, 20, 23, 26, 33, 34, 36, 37, 40], "divis": 16, "16384": 16, "user": [16, 19, 26, 33, 37], "level": [16, 17, 24, 26, 33, 34, 37, 38, 39], "interrupt": [16, 25], "p": [16, 23], "4096": 16, "simd": 16, "q": 16, "quad": 16, "2048": 16, "8192": 16, "vector": [16, 21, 25, 26, 37], "xintmachinemod": 16, "8589934592": 16, "categor": 16, "privilieg": 16, "xintsupervisor": 16, "17179869184": 16, "supervisor": [16, 19], "zam": 16, "2097152": 16, "misalign": 16, "zba": 16, "268435456": 16, "extend": [16, 29, 36], "zbb": 16, "536870912": 16, "1073741824": 16, "2147483648": 16, "zdinx": 16, "33554432": 16, "zfh": 16, "4194304": 16, "half": 16, "zfhmin": 16, "8388608": 16, "minim": 16, "zfinx": 16, "16777216": 16, "zhinx": 16, "67108864": 16, "zicntr": 16, "524288": 16, "timer": [16, 19], "zicsr": 16, "32768": 16, "statu": [16, 19, 38], "zifencei": 16, "65536": 16, "zihintntl": 16, "262144": 16, "non": [16, 31, 36, 37, 38], "tempor": 16, "local": [16, 20, 23], "hint": [16, 36], "zihintpaus": 16, "131072": 16, "paus": 16, "energi": 16, "zihpm": 16, "1048576": 16, "zmmul": 16, "134217728": 16, "ztso": 16, "4294967296": 16, "total": 16, "gather": 16, "numer": 16, "val": [16, 39], "correspond": [16, 31, 36, 40], "val_log": 16, "relev": [16, 35], "nativ": 16, "reg_cnt": 16, "maximum": [16, 33, 37], "bitwis": 16, "isa_str": 16, "string": [16, 37, 38], "pleas": [16, 23, 29, 34], "refer": [16, 35, 39], "gcc": 16, "arch": [16, 23, 33], "detail": [16, 20, 25, 37], "axiliteinterfac": 17, "abstractinterfac": 17, "abstractsignatur": 17, "read_address": 17, "axilitereadaddressinterfac": 17, "read_data": 17, "axilitereaddatainterfac": 17, "write_address": 17, "axilitewriteaddressinterfac": 17, "write_data": 17, "axilitewritedatainterfac": 17, "write_respons": 17, "axilitewriteresponseinterfac": 17, "axilitemast": 17, "axi": 17, "lite": 17, "axil_param": 17, "axiliteparamet": 17, "ra_request": 17, "channel": 17, "being": [17, 23, 37, 39, 40], "ra_request_layout": 17, "argument": [17, 21, 23, 25, 32, 33, 36, 37, 38, 39, 40], "rd_respons": 17, "availab": 17, "state": [17, 25, 26, 34, 36, 37, 38], "rd_response_layout": 17, "wa_request": 17, "wa_request_layout": 17, "wd_request": 17, "wd_request_layout": 17, "wr_respons": 17, "wr_response_layout": 17, "axil_mast": 17, "result_handl": 17, "start_request_transact": 17, "is_address_channel": 17, "state_machine_request": 17, "request_sign": 17, "data_width": 17, "must": [17, 36, 37, 39], "axilitesignatur": 17, "signatur": 17, "patamet": 17, "axilitemasteradapt": 17, "where": [17, 21, 23, 26, 31, 32, 34, 36, 37, 38, 39], "expect": 17, "busparametersinterfac": 17, "method_layout": 17, "commonbusmastermethodlayout": 17, "request_read": 17, "underli": 17, "request_read_layout": 17, "request_writ": 17, "request_write_layout": 17, "get_read_respons": 17, "action": [17, 19, 36, 37, 39], "read_response_layout": 17, "get_write_respons": 17, "write_response_layout": 17, "prefer": [17, 34], "gain": 17, "simplifi": 17, "interchang": 17, "buse": 17, "previous": 17, "wishbonemasteradapt": 17, "wishbonemast": 17, "pipelinedwishbonemast": 17, "wb_param": 17, "wishboneparamet": 17, "max_req": 17, "limit": [17, 34, 37], "pend": 17, "wb": 17, "request_layout": 17, "result_layout": 17, "requests_finish": 17, "generate_method_layout": 17, "wishbonearbit": 17, "arbit": 17, "slave": 17, "assert": [17, 37, 40], "cyc": 17, "grant": [17, 34, 35, 36, 37, 40], "round": [17, 36, 39, 40], "robin": [17, 36, 40], "num_slav": 17, "devic": 17, "slave_wb": 17, "intefac": 17, "num_mast": 17, "ack": 17, "adr": 17, "dat_r": 17, "dat_w": 17, "err": 17, "lock": [17, 23, 26, 34, 35, 37], "rst": 17, "rty": 17, "stall": [17, 26], "stb": 17, "name": [17, 23, 34, 35, 36, 37, 38, 39, 40], "wb_master": 17, "becom": 17, "wishbonemastermethodlayout": 17, "wishbonememoryslav": 17, "underneath": 17, "keyword": [17, 34, 36, 37, 38, 39], "thei": [17, 19, 23, 26, 30, 33, 34, 36, 37], "re": [17, 26, 29, 34, 36], "infer": [17, 36], "wishbonemux": 17, "muxer": 17, "multiplex": [17, 34], "ssel_tga": 17, "corespond": 17, "tga": 17, "note": [17, 19, 37], "stare": 17, "clear": [17, 31, 32, 37], "delai": [17, 34], "deassert": [17, 40], "master_wb": 17, "singal": 17, "granular": [17, 37], "smallest": 17, "port": [17, 36, 37, 39, 40], "capabl": 17, "wishbonesignatur": 17, "path": [17, 36, 37], "src_loc_at": [17, 37], "csraddress": 19, "3072": 19, "cycleh": 19, "3200": 19, "instret": 19, "3074": 19, "instreth": 19, "3202": 19, "mcaus": 19, "834": 19, "mepc": 19, "833": 19, "mtvec": 19, "773": 19, "3073": 19, "timeh": 19, "3201": 19, "doublecountercsr": 19, "group": [19, 37], "csrregist": 19, "At": 19, "overflow": [19, 37], "low_addr": 19, "high_addr": 19, "lower": [19, 39], "higher": 19, "synthetis": 19, "genericcsrregist": 19, "machinemodecsrregist": 19, "csrlistkei": 19, "listkei": [19, 37, 39], "dependencymanag": [19, 36, 37, 38, 39], "behaviour": [19, 33], "automat": [19, 23, 33, 39], "csrunit": 19, "bodi": [19, 34, 36, 37], "csr_val": 19, "els": [19, 26, 34, 36], "side": [19, 26, 31, 32], "effect": [19, 26, 31, 32, 36, 37], "_fu_read": 19, "_fu_writ": 19, "current": [19, 20, 21, 26, 36], "ignor": 19, "prioriti": [19, 20, 34, 36, 37], "csr_number": 19, "ro_bit": 19, "mask": [19, 37], "those": [19, 26, 36], "some": [19, 26, 29, 34, 36, 37], "upper": [19, 37], "0b11": 19, "discard": 19, "privilegelevel": 19, "csr_access_privileg": 19, "csr_addr": 19, "exceptioncauseregist": 20, "earliest": 20, "report": [20, 37], "rob_get_indic": 20, "fetch_stall_except": 20, "should_update_priorii": 20, "current_caus": 20, "new_caus": 20, "coreinstructioncount": 20, "count": [20, 23, 36, 37, 40], "leav": [20, 23], "decrement": 20, "interruptcontrol": 20, "prepar": [21, 23, 26, 35], "In": [21, 23, 24, 25, 32, 33, 34, 35, 36, 39], "alloc": [21, 30, 31, 32], "renam": [21, 30], "entri": [21, 26, 30, 31, 32, 37, 39], "stuck": 21, "get_instr": 21, "get_free_reg": 21, "rat_renam": 21, "rob_put": 21, "rf_read1": 21, "rf_read2": 21, "reservation_st": 21, "decoded_instr": 21, "id": [21, 31, 32, 35], "free": [21, 25, 26, 32], "ratlayout": 21, "rat_rename_in": 21, "rat_rename_out": 21, "roblayout": 21, "data_layout": [21, 37, 39], "rflayout": 21, "rf_read_out": 21, "rf_read_in": 21, "wakeupselect": 21, "wakeup": [21, 32], "firstli": 21, "get_readi": 21, "binari": [21, 33, 40], "th": [21, 37, 40], "posit": [21, 31, 32, 39], "row": [21, 23, 25], "taken": [21, 33, 36, 37], "take_row": 21, "rslayout": 21, "get_ready_list_out": 21, "take_out": 21, "push": 21, "down": [21, 39], "below": [23, 37], "instal": [23, 33], "python": [23, 34, 36, 37, 39], "interpret": [23, 37, 39], "pip": [23, 33], "virtual": 23, "python3": [23, 33], "venv": [23, 33], "project": [23, 24, 26], "directori": [23, 24, 33], "activ": [23, 33, 37, 38, 40], "bin": [23, 33], "librari": [23, 25, 37], "pip3": [23, 33], "dev": [23, 33], "txt": [23, 33], "riscv64": 23, "elf": 23, "binutil": 23, "your": [23, 29], "favourit": 23, "On": [23, 37], "debian": 23, "distro": 23, "hook": [23, 35], "pre": [23, 33], "run": [23, 33, 34, 35, 36, 37, 38, 40], "linter": 23, "ci": [23, 33], "intend": [23, 36], "By": [23, 36, 37], "test_transact": 23, "One": [23, 26, 34, 37, 40], "even": [23, 26, 34, 36, 37], "testschedul": 23, "Or": [23, 34], "test_singl": 23, "search": 23, "match": [23, 31, 32, 40], "queri": 23, "thank": 23, "uniqu": [23, 35, 37], "just": [23, 34, 37], "help": [23, 26, 37], "find": [23, 26, 37], "parameter": 23, "waveform": 23, "vcd": 23, "gtkw": [23, 39], "gtkwave": [23, 39], "__traces__": 23, "driven": 23, "transactron": [23, 25, 34], "__profile__": 23, "analyz": 23, "verbos": [23, 33], "runner": 23, "print": [23, 37], "code": [23, 24, 26, 29, 33, 34, 35, 37, 39, 40], "subcommand": 23, "filenam": 23, "main": [23, 26, 30, 33], "reformat": 23, "black": 23, "check_format": 23, "verifi": [23, 33], "flake8": 23, "check_typ": 23, "pyright": 23, "confront": 23, "would": [23, 26, 34, 37, 39], "messag": [23, 37], "you": [23, 29, 31, 33, 37], "diff": 23, "displai": 23, "chang": [23, 31, 34, 37, 38, 39, 40], "appli": [23, 26, 29, 35, 38], "chose": 23, "locat": [23, 24, 30, 35, 36, 37, 39], "visual": 23, "architectur": [23, 26, 33], "appropri": [23, 31, 37, 38], "prune": [23, 35], "remov": [23, 26], "disconnect": 23, "node": 23, "elk": [23, 35], "eclips": 23, "kernel": [23, 26], "dot": [23, 35, 37], "graphviz": 23, "mermaid": [23, 35], "document": [23, 25], "sphinx": 23, "html": [23, 24], "build": [23, 33, 37], "present": [23, 26, 34, 37, 39], "readabl": [23, 37], "profile_fil": 23, "json": [23, 33, 39], "about": [23, 25, 35, 37, 39], "column": 23, "question": [23, 34], "togeth": [23, 34, 36], "differenti": 23, "ident": [23, 37], "declar": [23, 34, 37, 38], "disambigu": 23, "show": 23, "caller": [23, 34, 35, 36, 37], "condit": [23, 34, 35, 36, 37], "could": [23, 34, 37], "forc": 23, "conflict": [23, 25, 35, 36], "produc": 23, "tree": [23, 35, 37], "root": [23, 35], "invert": 23, "children": 23, "how": [23, 26, 31, 33, 36, 37], "mani": [23, 26, 33, 34, 35, 36, 37, 39], "sort": [23, 37], "filter": [23, 37], "regular": 23, "express": [23, 34, 37], "loc": 23, "coreblock": [24, 29, 33], "go": [24, 26, 29, 36], "microarchitectur": 24, "focu": 24, "flexibl": [24, 30], "easili": [24, 37], "experi": 24, "doc": 24, "descript": [24, 25, 33, 37, 39], "overview": [24, 25, 26], "high": [24, 37, 40], "found": [24, 33], "version": [24, 33], "page": [24, 26, 33], "api": [24, 25], "kuznia": [24, 33], "rdzeni": [24, 33], "github": [24, 33], "io": [24, 33], "introduct": 25, "assumpt": [25, 26], "made": [25, 26, 34], "develop": [25, 37], "environ": 25, "up": [25, 32, 33, 37, 39], "script": [25, 33], "run_test": [25, 33], "py": [25, 33], "lint": 25, "sh": 25, "core_graph": 25, "build_doc": 25, "tprof": 25, "framework": [25, 31], "usag": 25, "convent": 25, "advanc": 25, "concept": 25, "special": [25, 37], "domain": [25, 29, 36], "nest": [25, 37], "schema": [25, 35, 37, 39], "structur": [25, 26, 31, 34, 35, 36, 37, 39], "proposit": [25, 26], "slot": [25, 37], "tabl": 25, "substitut": 25, "clean": 25, "extern": [25, 33, 34, 36], "problem": [25, 26], "checklist": 25, "verif": 25, "manual": [25, 34], "reproduct": 25, "benchmark": 25, "regress": 25, "map": [25, 26, 36, 37, 38, 39, 40], "summari": 25, "paper": 25, "old": 25, "softwar": [25, 37], "tlb": 25, "analysi": [25, 35], "strategi": 25, "igpu": 25, "specul": 25, "gpu": 25, "effici": 25, "journal": 26, "articl": 26, "look": [26, 37], "choic": 26, "primari": 26, "relat": [26, 36, 37, 39], "procedur": 26, "chosen": 26, "basi": 26, "improv": [26, 34], "pretti": 26, "1993": 26, "2001": 26, "much": [26, 37], "research": 26, "cpu": 26, "consid": [26, 34, 36, 37], "solv": 26, "instead": [26, 29, 34, 35, 36, 37, 38, 40], "try": [26, 29, 34], "due": [26, 36, 37], "characterist": 26, "easi": [26, 29, 34, 37], "our": [26, 30, 33], "decid": [26, 30, 34], "what": 26, "peopl": 26, "probabl": [26, 38], "lot": 26, "worth": 26, "walker": 26, "cragon": 26, "concurr": [26, 36], "ieee": 26, "vol": 26, "june": 26, "1995": 26, "moudgil": 26, "vassiliadi": 26, "micro": 26, "pp": 26, "58": 26, "67": 26, "februari": 26, "1996": 26, "These": [26, 33, 34], "survei": 26, "topic": 26, "cdc": 26, "6600": 26, "done": [26, 33, 34, 36, 37, 38], "jump": 26, "handler": [26, 38], "ibm360": 26, "stop": [26, 37], "crai": 26, "similar": [26, 33, 34, 37, 40], "here": [26, 31], "bigger": [26, 37], "torng": 26, "martin": 26, "dai": 26, "probe": 26, "idea": [26, 34], "author": 26, "window": 26, "iw": 26, "dispatch": [26, 30, 31, 32], "didn": 26, "context": [26, 35, 36, 37, 39], "copi": [26, 35], "restor": [26, 35], "restart": [26, 40], "few": 26, "big": 26, "overhead": 26, "origin": [26, 35, 37], "unfeas": 26, "becaus": [26, 34, 35, 36, 37], "job": 26, "addition": [26, 37], "But": 26, "mayb": [26, 34], "possibl": [26, 33, 34, 37, 39], "cooper": 26, "smaller": 26, "interest": 26, "propos": 26, "nrp": 26, "No": [26, 37], "itself": [26, 39], "don": [26, 29, 31, 34, 36], "wast": 26, "rememb": [26, 34, 35], "element": [26, 37], "left": [26, 34, 36, 37], "middl": [26, 30], "aamer": 26, "jaleel": 26, "bruce": 26, "jacob": 26, "cours": 26, "switch": [26, 31, 34, 36, 37, 40], "penalti": 26, "alpha": 26, "mip": 26, "concentr": 26, "properti": [26, 33, 36], "short": 26, "inlin": 26, "observ": [26, 37], "import": [26, 34], "enough": 26, "live": 26, "known": 26, "fly": 26, "swap": 26, "nop": 26, "reexecut": 26, "privileg": 26, "contrast": 26, "tendenc": 26, "longer": 26, "hard": [26, 37], "risk": [26, 34, 37], "linux": [26, 33], "purpos": [26, 36, 37], "addit": [26, 33, 34, 39], "hw": 26, "bore": 26, "treat": [26, 30], "mansur": 26, "samadzadeh": 26, "loai": 26, "garalnabi": 26, "checkpoint": 26, "repair": 26, "histori": 26, "futur": [26, 30, 31], "jaikrishnan": 26, "menon": 26, "marc": 26, "de": 26, "kruijf": 26, "karthikeyan": 26, "sankaralingam": 26, "2012": 26, "low": 26, "boundari": 26, "safe": [26, 34, 39], "rewritten": 26, "recompil": 26, "runtim": [26, 35], "subregion": 26, "small": 26, "overrid": 26, "barrier": 26, "warp": 26, "wrong": 26, "split": [26, 30, 37, 38], "prevent": 26, "ivan": 26, "tanas": 26, "isaac": 26, "gelado": 26, "jorda": 26, "eduard": 26, "ayguad": 26, "nacho": 26, "navarro": 26, "2017": 26, "analys": 26, "problemat": 26, "successfulli": 26, "kill": 26, "modif": 26, "usual": [26, 34, 37], "fail": [26, 37], "repli": 26, "modifi": [26, 37], "claim": 26, "operand": [26, 31, 32], "replai": 26, "queue": [26, 34, 37], "marker": 26, "jerom": 26, "hampton": 26, "2008": 26, "mention": 26, "alli": 26, "bailei": 26, "ab04": 26, "ag": 26, "rais": [26, 35, 37, 38, 39], "younger": 26, "repeat": 26, "commun": [26, 31, 34], "canon": 26, "eventu": 26, "aren": [26, 34, 37], "someth": [29, 34, 40], "puzzl": 29, "why": 29, "through": [29, 37], "sure": [29, 38], "yield": [29, 38], "notabl": 29, "settl": 29, "unexpect": 29, "ad": [29, 34, 36, 37, 38, 39, 40], "right": [29, 34, 36], "eq": [29, 34, 36], "record": [29, 34, 36, 37, 38, 39, 40], "statement": [29, 34, 36, 38, 39], "loop": [29, 34], "especi": 29, "simul": [29, 33, 35, 37, 38], "hang": 29, "spot": 29, "yourself": [29, 34], "fix": 29, "mistak": 29, "Its": [30, 34], "task": [30, 36], "rss": 30, "phase": 30, "choos": [30, 33], "potenti": 30, "merg": [30, 37], "optim": 30, "todo": 30, "want": [31, 33, 36, 38, 40], "feel": 31, "anyth": 31, "id_out": [31, 32], "id_rob": [31, 32], "id_rs1": [31, 32], "val_rs1": [31, 32], "id_rs2": [31, 32], "val_rs2": [31, 32], "fill": 31, "id_rsx": 31, "val_rsx": 31, "releas": 31, "comparison": 31, "null": [31, 32], "woken": 32, "invalid": [32, 37], "src1": [32, 37], "src2": [32, 37], "inst_readi": 32, "sever": [33, 37], "besid": 33, "synthesis": 33, "ecp5": 33, "fpga": [33, 37], "target": [33, 37], "realiti": 33, "cocotb": 33, "assembl": 33, "deliv": 33, "histor": 33, "dedic": [33, 37], "subpag": 33, "built": 33, "docker": 33, "publicli": 33, "subsect": 33, "recreat": 33, "command": [33, 38], "platform": [33, 34, 35], "amd64": 33, "synth": 33, "latest": [33, 37], "amaranthsynthecp5": 33, "dockerfil": 33, "complex": [33, 37], "although": 33, "educ": 33, "practic": 33, "frequenc": 33, "too": [33, 35], "met": [33, 36], "whether": [33, 36, 40], "cell": 33, "ram": 33, "dff": 33, "repo": 33, "sudo": 33, "pull": 33, "ghcr": 33, "rm": 33, "git": 33, "clone": 33, "http": 33, "com": 33, "cd": 33, "apt": 33, "upgrad": 33, "pythonhashse": 33, "config": 33, "parse_benchmark_info": 33, "cat": 33, "abov": [33, 34], "verilog": [33, 39], "yosi": 33, "nextpnr": 33, "bitstream": 33, "strength": 33, "modular": [33, 34], "littl": 33, "effort": 33, "gate": 33, "rout": 33, "prjtrelli": 33, "measur": [33, 37], "theori": 33, "increas": [33, 34, 37], "fmax": 33, "avoid": [33, 34], "pitfal": 33, "affect": 33, "throughput": [33, 37], "monitor": 33, "accuraci": 33, "embench": 33, "compil": [33, 34, 38], "gnu": 33, "toolchain": 33, "glibc": 33, "subset": 33, "exact": [33, 35], "onc": [33, 34, 36, 37, 40], "veril": 33, "featur": [33, 34], "stub": 33, "compat": [33, 37], "host": 33, "init": [33, 37], "mount": 33, "subdirectori": 33, "share": 33, "surviv": 33, "close": 33, "exit": 33, "gen_verilog": 33, "run_benchmark": 33, "inspir": 34, "bluespec": 34, "wiki": 34, "entrieti": 34, "doe": [34, 38, 40], "link": 34, "indirectli": [34, 36], "coordin": 34, "direct": [34, 35, 36, 37], "back": 34, "simplest": 34, "myth": 34, "def": [34, 36], "elabor": 34, "self": [34, 36, 38], "comb": [34, 36], "sig1": 34, "expr1": 34, "sync": [34, 36], "sig2": 34, "expr2": 34, "arg_expr": 34, "analog": 34, "typic": [34, 36, 37], "myotherth": 34, "my_method": 34, "input_layout": 34, "output_layout": 34, "def_method": [34, 36], "_": [34, 36], "other_method": 34, "ret_expr": 34, "techniqu": 34, "conveni": [34, 36, 37], "syntax": [34, 36], "particular": 34, "unnam": 34, "around": 34, "sometim": 34, "might": [34, 35, 37], "altern": [34, 36, 37], "best": 34, "ask": 34, "thing": [34, 37, 39], "doubt": 34, "noth": 34, "Such": [34, 38], "adaptertran": [34, 37], "though": 34, "cleaner": 34, "suppos": 34, "foo": [34, 37], "bar": [34, 37], "cleanest": 34, "recommend": 34, "foo_expr": 34, "bar_expr": 34, "final": 34, "rec": 34, "layout2": 34, "foobar": 34, "baz": 34, "42": 34, "method2": [34, 37], "baz_expr": 34, "method3": 34, "expr": 34, "mechan": [34, 37], "certain": 34, "occas": 34, "facilit": 34, "ones": 34, "connecttran": [34, 37], "plain": [34, 36, 37], "testbench": [34, 37], "own": [34, 35, 36], "variant": 34, "role": 34, "omit": [34, 36, 37], "unneed": 34, "av_comb": [34, 36], "top_comb": [34, 36], "avoidedif": [34, 36], "guard": [34, 36, 37], "therefor": 34, "induc": 34, "often": 34, "belong": [34, 37], "move": [34, 37], "top": [34, 39], "caveat": 34, "normal": [34, 37], "cannot": [34, 36, 37, 38], "schedule_befor": [34, 36], "first_t_or_m": 34, "other_t_or_m": 34, "lift": 34, "first_m": 34, "other_t": 34, "situat": [34, 36], "mutual": [34, 36, 37], "exclus": [34, 36, 37], "similarli": [34, 37], "add_conflict": [34, 36], "undefin": [34, 36], "other_m": 34, "come": 34, "consider": 34, "parent": 34, "convers": 34, "impli": 34, "amaranth_ext": [35, 39], "extract": 35, "IN": 35, "inout": 35, "owner": 35, "ownershipgraph": 35, "dump": 35, "liter": [35, 40], "dump_dot": 35, "indent": [35, 37, 39], "dump_elk": 35, "dump_mermaid": 35, "get_hier_nam": 35, "obj": 35, "hierarch": 35, "keyerror": [35, 37, 39], "yet": 35, "get_nam": 35, "insert_edg": 35, "fr": 35, "insert_nod": 35, "mermaid_direct": 35, "empti": [35, 37], "subgraph": 35, "remember_field": 35, "owner_id": 35, "methodsampl": 35, "transactions_and_method": 35, "profileinfo": 35, "cycleprofil": 35, "analyze_method": 35, "runstatnod": 35, "analyze_transact": 35, "file_nam": [35, 39], "from_dict": [35, 37, 39], "kv": [35, 37, 39], "union": [35, 36, 37, 38, 39], "infer_miss": [35, 37, 39], "from_json": [35, 37, 39], "bytearrai": [35, 37, 39], "parse_float": [35, 37, 39], "parse_int": [35, 37, 39], "parse_const": [35, 37, 39], "kw": [35, 37, 39], "exclud": [35, 37, 39], "load_onli": [35, 37, 39], "dump_onli": [35, 37, 39], "schemaf": [35, 37, 39], "to_dict": [35, 37, 39], "encode_json": [35, 37, 39], "to_json": [35, 37, 39], "skipkei": [35, 37, 39], "ensure_ascii": [35, 37, 39], "check_circular": [35, 37, 39], "allow_nan": [35, 37, 39], "callabl": [35, 36, 37, 38, 39], "sort_kei": [35, 37, 39], "profiledata": [35, 39], "individu": 35, "method_par": 35, "transactions_by_method": 35, "transaction_conflict": 35, "transaction_manag": [35, 36, 38], "transactionmanag": [35, 36, 38], "src_loc": [35, 36, 37, 39], "srcloc": [35, 36, 37], "is_transact": 35, "profilesampl": 35, "transactionsampl": 35, "runstat": 35, "statist": 35, "did": 35, "info": [35, 37], "summar": 35, "stat": 35, "runnabl": [35, 36], "tracingenabl": 35, "tracingfrag": 35, "fragment": [35, 36], "lose": 35, "difficult": 35, "copyright": 35, "subfrag": 35, "_ir": [35, 39], "tracingfragmenttransform": 35, "fragmenttransform": 35, "on_frag": 35, "tracinginst": 35, "transactionmanagerkei": 36, "simplekei": [36, 37, 39], "care": [36, 37], "never": 36, "cc_schedul": 36, "methodmap": [36, 37], "_dsl": 36, "eager_deterministic_cc_schedul": 36, "add_transact": 36, "_rec": [36, 37, 38, 39, 40], "signalbundl": [36, 37, 38, 39, 40], "print_info": 36, "cgr": 36, "porder": 36, "cc": 36, "method_map": 36, "visual_graph": 36, "transactionmodul": 36, "wrapper": [36, 37], "dependency_manag": [36, 38], "wrap": [36, 38], "dependencycontext": [36, 39], "transactionbas": 36, "serv": [36, 37], "simultena": 36, "rest": 36, "behavior": [36, 37, 39], "combination": 36, "data_out": [36, 37], "data_in": [36, 37], "methodstruct": [36, 37], "shape": [36, 39], "shapecast": [36, 39], "forwardref": [36, 38, 39], "shapelik": [36, 37, 39], "layoutlist": [36, 37, 39], "nonexclus": 36, "single_cal": [36, 37], "variabl": [36, 40], "happen": 36, "thrown": 36, "stack": [36, 37, 39], "frame": [36, 37], "deep": [36, 37], "const": [36, 37], "d1": [36, 37], "d0": 36, "validate_argu": 36, "combinationi": 36, "valuelik": [36, 37], "my_sum_method": 36, "arg1": 36, "arg2": 36, "sum": [36, 37], "layout_in": 36, "layout_out": 36, "construct": [36, 37], "blueprint": 36, "freshli": 36, "proxi": 36, "gr": 36, "transactiongraph": 36, "transactiongraphcc": 36, "priorityord": 36, "eager": 36, "subsystem": [36, 40], "fair": 36, "lowest": 36, "highest": [36, 40], "arbitr": [36, 40], "agent": [36, 40], "vertic": 36, "edg": [36, 37], "linear": 36, "consist": 36, "constraint": 36, "trivial_roundrobin_cc_schedul": 36, "mainli": 36, "decor": [36, 38], "eleg": 36, "dictionari": 36, "whose": 36, "modulelik": [36, 37, 40], "amount": [36, 38], "useless": 36, "multplex": 36, "unguard": 36, "synchron": [36, 37], "cond": [36, 37], "pattern": 36, "elif": 36, "fsm": 36, "ctrl_path": 36, "noreturn": 36, "regularli": 36, "explicit": 36, "implicit": 36, "aris": 36, "pair": [36, 37], "transactioncontext": 36, "priorit": 36, "reason": [36, 37], "transactionormethodbound": 36, "ctrlpath": 36, "def_count": 36, "classvar": 36, "def_ord": 36, "independent_list": 36, "method_cal": 36, "defaultdict": 36, "method_us": 36, "owned_nam": 36, "peek": 36, "relationbas": 36, "simultaneous_altern": 36, "simultaneous_list": 36, "adapterbas": [37, 38], "mock": [37, 38], "en": [37, 38], "clickin": 37, "click": 37, "interact": 37, "rise": 37, "btn": 37, "dat": 37, "retriev": 37, "clickout": 37, "led": 37, "flow": 37, "revers": 37, "possibli": 37, "rev_layout": 37, "vice": 37, "versa": 37, "method1": 37, "respect": 37, "fulfil": 37, "fifo_typ": 37, "syncfifo": 37, "fifotyp": 37, "conform": 37, "equival": 37, "put_result": 37, "stableselectingnetwork": 37, "network": 37, "consecut": 37, "preserv": 37, "divid": 37, "conquer": 37, "properli": 37, "v1": 37, "v2": 37, "now": [37, 38], "thu": 37, "log_2": 37, "dependencykei": [37, 39], "concret": [37, 39], "frozen": [37, 39], "lock_on_get": [37, 39], "get_depend": [37, 39], "empty_valid": [37, 39], "add_depend": [37, 39], "give": [37, 39], "track": [37, 39], "across": [37, 39], "multpl": [37, 39], "dependeci": [37, 39], "default_valu": [37, 39], "unifi": 37, "wish": 37, "custom": 37, "basicfifo": 37, "reiniti": 37, "semaphor": 37, "max_count": 37, "hardwarelogg": 37, "intuit": 37, "logger": 37, "anywher": 37, "natur": 37, "shall": 37, "evalu": [37, 38], "arbitrari": 37, "exactli": 37, "organ": 37, "namespac": 37, "hierarchi": 37, "period": 37, "bpu": 37, "There": 37, "bug": 37, "otherwis": [37, 40], "detect": 37, "termin": 37, "turn": 37, "warn": 37, "board": 37, "semant": 37, "server": 37, "pep": 37, "3101": 37, "logkei": 37, "logrecord": 37, "logrecordinfo": [37, 39], "event": 37, "logger_nam": [37, 39], "format_str": [37, 39], "agnost": 37, "outsid": 37, "loglevel": 37, "templat": 37, "get_log_record": 37, "namespace_regexp": [37, 38], "minimum": 37, "regexp": 37, "get_trigger_bit": 37, "hardwaremetricsmanag": 37, "compos": 37, "get_metr": 37, "hwmetric": 37, "get_register_valu": 37, "metric_nam": 37, "reg_nam": 37, "qualifi": 37, "histogram": 37, "bucket": 37, "hwcounter": 37, "fully_qualified_nam": 37, "width_bit": 37, "human": 37, "incr": 37, "hwexphistogram": 37, "exponenti": 37, "distribut": 37, "sampl": 37, "durat": 37, "inf": 37, "bucket_count": 37, "sample_width": 37, "registers_width": 37, "max_valu": 37, "abl": 37, "metricmodel": 37, "add_regist": 37, "reg": [37, 39], "hwmetricregist": 37, "inherit": 37, "metrics_en": 37, "hwmetricsenabledkei": 37, "theirs": 37, "latencymeasur": 37, "slots_numb": 37, "max_lat": 37, "oldest": 37, "compris": 37, "join": 37, "metricregistermodel": 37, "fundament": 37, "singular": 37, "among": 37, "reman": 37, "brief": 37, "argumentstoresultszipp": 37, "zip": 37, "cut": 37, "critic": 37, "calle": 37, "asymmetri": 37, "correctli": 37, "rate": 37, "reach": [37, 40], "capac": 37, "topologi": 37, "write_arg": 37, "args_layout": 37, "write_result": 37, "results_layout": 37, "client": 37, "somethig": 37, "deseri": 37, "proper": 37, "serialize_in": 37, "serialized_req_method": 37, "serialize_out": 37, "serialized_resp_method": 37, "port_count": 37, "len": 37, "resist": 37, "nonblock": 37, "overlap": 37, "boolean": 37, "catch": 37, "influenc": 37, "cond1": 37, "cond2": 37, "memorybank": 37, "read_req": 37, "read_resp": 37, "elem_count": 37, "safe_writ": 37, "optimis": 37, "eg": 37, "x": [37, 39], "later": 37, "cattran": 37, "concaten": 37, "third": 37, "dst": 37, "collector": 37, "method_list": 37, "connectandmaptran": 37, "behav": 37, "i_fun": 37, "recorddict": 37, "o_fun": 37, "methodfilt": 37, "desir": 37, "use_condit": 37, "drawback": 37, "simultaneu": 37, "bidirect": 37, "i_transform": 37, "o_transform": 37, "unmodifi": 37, "methodproduct": 37, "methodtryproduct": 37, "tri": 37, "succeed": 37, "get_output": 38, "coreblockscommand": 38, "recordintdict": 38, "set_input": 38, "recordvaluedict": 38, "write_vcd_ext": 38, "engin": 38, "vcd_file": 38, "gtkw_file": 38, "pysimsimul": 38, "max_cycl": 38, "100000": 38, "add_transaction_modul": 38, "traces_fil": 38, "clk_period": 38, "1e": 38, "add_sync_process": 38, "add_process": 38, "passiv": 38, "add_clock": 38, "simpletestcircuit": 38, "_t_haselabor": 38, "dut": 38, "syncprocesswrapp": 38, "testcasewithsimul": 38, "testcas": 38, "valueerror": [38, 39], "add_all_mock": 38, "sim": 38, "frame_loc": 38, "add_class_mock": 38, "add_local_mock": 38, "random_wait": 38, "max_cycle_cnt": 38, "min_cycle_cnt": 38, "random_wait_geom": 38, "prob": 38, "till": 38, "run_simul": 38, "tick": 38, "cycle_cnt": 38, "guard_nested_collect": 38, "_t_nested_collect": 38, "make_logging_process": 38, "on_error": 38, "parse_logging_level": 38, "pars": 38, "neg": [38, 39], "represent": [38, 39, 40], "predefin": 38, "profiler_process": 38, "def_method_mock": 38, "tb_getter": 38, "sched_prio": 38, "method_handle_loop": 38, "invoc": 38, "defer": 38, "sinc": 38, "eagerli": 38, "kwdata": 38, "call_do": 38, "call_init": 38, "call_result": 38, "call_tri": 38, "method_argu": 38, "method_handl": 38, "extra_settle_count": 38, "method_return": 38, "set_en": 38, "wait_until_don": 38, "assigntyp": 39, "rh": 39, "lh": 39, "assignarg": 39, "assignfield": 39, "lhs_strict": 39, "rhs_strict": 39, "mismatch": 39, "accord": 39, "explicitli": 39, "castabl": 39, "subfield": 39, "align_down_to_power_of_two": 39, "num": 39, "align_to_power_of_two": 39, "average_dict_of_list": 39, "bits_from_int": 39, "int_to_sign": 39, "convert": 39, "u2": 39, "sign": 39, "layout_subset": 39, "make_hash": 39, "negat": 39, "signed_to_int": 39, "auto_debug_sign": 39, "arrai": 39, "cl": 39, "generatedlog": 39, "trigger_loc": 39, "signalhandl": 39, "fields_loc": 39, "generationinfo": 39, "variou": 39, "metrics_loc": 39, "metricinfo": 39, "metadata": 39, "metricloc": 39, "transaction_signals_loc": 39, "transactionsignalsloc": 39, "method_signals_loc": 39, "methodsignalsloc": 39, "profile_data": 39, "generate_verilog": 39, "top_modul": 39, "top_nam": 39, "idgener": 39, "def_help": 39, "func": 39, "from_method_layout": 39, "get_caller_class_nam": 39, "get_src_loc": 39, "method_def_help": 39, "mock_def_help": 39, "tb": 39, "silence_mustus": 39, "moduleconnector": 40, "anonym": 40, "onehotswitch": 40, "style": 40, "benefit": 40, "sig": 40, "onehotcas": 40, "0b01": 40, "0b10": 40, "onehotswitchdynam": 40, "signifi": 40, "roundrobin": 40, "greater": 40, "enableinsert": 40, "count_leading_zero": 40, "count_trailing_zero": 40, "flatten_sign": 40, "flatten": 40, "mod_incr": 40, "mod": 40, "popcount": 40}, "objects": {"": [[4, 0, 0, "-", "coreblocks"], [35, 0, 0, "-", "transactron"]], "coreblocks": [[5, 0, 0, "-", "backend"], [6, 0, 0, "-", "cache"], [4, 0, 0, "-", "core"], [7, 0, 0, "-", "core_structs"], [8, 0, 0, "-", "frontend"], [11, 0, 0, "-", "func_blocks"], [16, 0, 0, "-", "params"], [17, 0, 0, "-", "peripherals"], [18, 0, 0, "-", "priv"], [21, 0, 0, "-", "scheduler"]], "coreblocks.backend": [[5, 0, 0, "-", "annoucement"], [5, 0, 0, "-", "retirement"]], "coreblocks.backend.annoucement": [[5, 1, 1, "", "ResultAnnouncement"]], "coreblocks.backend.annoucement.ResultAnnouncement": [[5, 2, 1, "", "__init__"], [5, 2, 1, "", "debug_signals"]], "coreblocks.backend.retirement": [[5, 1, 1, "", "Retirement"]], "coreblocks.backend.retirement.Retirement": [[5, 2, 1, "", "__init__"]], "coreblocks.cache": [[6, 0, 0, "-", "icache"], [6, 0, 0, "-", "iface"], [6, 0, 0, "-", "refiller"]], "coreblocks.cache.icache": [[6, 1, 1, "", "ICache"], [6, 1, 1, "", "ICacheBypass"]], "coreblocks.cache.icache.ICache": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "deserialize_addr"], [6, 2, 1, "", "serialize_addr"]], "coreblocks.cache.icache.ICacheBypass": [[6, 2, 1, "", "__init__"]], "coreblocks.cache.iface": [[6, 1, 1, "", "CacheInterface"], [6, 1, 1, "", "CacheRefillerInterface"]], "coreblocks.cache.iface.CacheInterface": [[6, 3, 1, "", "accept_res"], [6, 3, 1, "", "flush"], [6, 3, 1, "", "issue_req"]], "coreblocks.cache.iface.CacheRefillerInterface": [[6, 3, 1, "", "accept_refill"], [6, 3, 1, "", "start_refill"]], "coreblocks.cache.refiller": [[6, 1, 1, "", "SimpleCommonBusCacheRefiller"]], "coreblocks.cache.refiller.SimpleCommonBusCacheRefiller": [[6, 2, 1, "", "__init__"]], "coreblocks.core": [[4, 1, 1, "", "Core"]], "coreblocks.core.Core": [[4, 2, 1, "", "__init__"]], "coreblocks.core_structs": [[7, 0, 0, "-", "rat"], [7, 0, 0, "-", "rf"], [7, 0, 0, "-", "rob"]], "coreblocks.core_structs.rat": [[7, 1, 1, "", "FRAT"], [7, 1, 1, "", "RRAT"]], "coreblocks.core_structs.rat.FRAT": [[7, 2, 1, "", "__init__"]], "coreblocks.core_structs.rat.RRAT": [[7, 2, 1, "", "__init__"]], "coreblocks.core_structs.rf": [[7, 1, 1, "", "RegisterFile"]], "coreblocks.core_structs.rf.RegisterFile": [[7, 2, 1, "", "__init__"]], "coreblocks.core_structs.rob": [[7, 1, 1, "", "ReorderBuffer"]], "coreblocks.core_structs.rob.ReorderBuffer": [[7, 2, 1, "", "__init__"]], "coreblocks.frontend": [[9, 0, 0, "-", "decoder"], [10, 0, 0, "-", "fetch"]], "coreblocks.frontend.decoder": [[9, 0, 0, "-", "decode_stage"], [9, 0, 0, "-", "instr_decoder"], [9, 0, 0, "-", "instr_description"], [9, 0, 0, "-", "isa"], [9, 0, 0, "-", "optypes"], [9, 0, 0, "-", "rvc"]], "coreblocks.frontend.decoder.decode_stage": [[9, 1, 1, "", "DecodeStage"]], "coreblocks.frontend.decoder.decode_stage.DecodeStage": [[9, 2, 1, "", "__init__"]], "coreblocks.frontend.decoder.instr_decoder": [[9, 1, 1, "", "InstrDecoder"]], "coreblocks.frontend.decoder.instr_decoder.InstrDecoder": [[9, 2, 1, "", "__init__"]], "coreblocks.frontend.decoder.instr_description": [[9, 1, 1, "", "Encoding"]], "coreblocks.frontend.decoder.instr_description.Encoding": [[9, 2, 1, "", "__init__"], [9, 3, 1, "", "funct12"], [9, 3, 1, "", "funct3"], [9, 3, 1, "", "funct7"], [9, 3, 1, "", "instr_type_override"], [9, 3, 1, "", "opcode"], [9, 3, 1, "", "rd_zero"], [9, 3, 1, "", "rs1_zero"]], "coreblocks.frontend.decoder.isa": [[9, 1, 1, "", "ExceptionCause"], [9, 1, 1, "", "FenceFm"], [9, 1, 1, "", "FenceTarget"], [9, 1, 1, "", "Funct12"], [9, 1, 1, "", "Funct3"], [9, 1, 1, "", "Funct7"], [9, 1, 1, "", "InstrType"], [9, 1, 1, "", "Opcode"], [9, 1, 1, "", "Registers"]], "coreblocks.frontend.decoder.isa.ExceptionCause": [[9, 3, 1, "", "BREAKPOINT"], [9, 3, 1, "", "ENVIRONMENT_CALL_FROM_M"], [9, 3, 1, "", "ENVIRONMENT_CALL_FROM_S"], [9, 3, 1, "", "ENVIRONMENT_CALL_FROM_U"], [9, 3, 1, "", "ILLEGAL_INSTRUCTION"], [9, 3, 1, "", "INSTRUCTION_ACCESS_FAULT"], [9, 3, 1, "", "INSTRUCTION_ADDRESS_MISALIGNED"], [9, 3, 1, "", "INSTRUCTION_PAGE_FAULT"], [9, 3, 1, "", "LOAD_ACCESS_FAULT"], [9, 3, 1, "", "LOAD_ADDRESS_MISALIGNED"], [9, 3, 1, "", "LOAD_PAGE_FAULT"], [9, 3, 1, "", "STORE_ACCESS_FAULT"], [9, 3, 1, "", "STORE_ADDRESS_MISALIGNED"], [9, 3, 1, "", "STORE_PAGE_FAULT"], [9, 2, 1, "", "__new__"]], "coreblocks.frontend.decoder.isa.FenceFm": [[9, 3, 1, "", "NONE"], [9, 3, 1, "", "TSO"], [9, 2, 1, "", "__new__"]], "coreblocks.frontend.decoder.isa.FenceTarget": [[9, 3, 1, "", "DEV_I"], [9, 3, 1, "", "DEV_O"], [9, 3, 1, "", "MEM_R"], [9, 3, 1, "", "MEM_W"], [9, 2, 1, "", "__new__"]], "coreblocks.frontend.decoder.isa.Funct12": [[9, 3, 1, "", "CLZ"], [9, 3, 1, "", "CPOP"], [9, 3, 1, "", "CTZ"], [9, 3, 1, "", "EBREAK"], [9, 3, 1, "", "ECALL"], [9, 3, 1, "", "MRET"], [9, 3, 1, "", "ORCB"], [9, 3, 1, "", "REV8_32"], [9, 3, 1, "", "REV8_64"], [9, 3, 1, "", "SEXTB"], [9, 3, 1, "", "SEXTH"], [9, 3, 1, "", "SRET"], [9, 3, 1, "", "WFI"], [9, 3, 1, "", "ZEXTH"], [9, 2, 1, "", "__new__"]], "coreblocks.frontend.decoder.isa.Funct3": [[9, 3, 1, "", "ADD"], [9, 3, 1, "", "AND"], [9, 3, 1, "", "ANDN"], [9, 3, 1, "", "B"], [9, 3, 1, "", "BCLR"], [9, 3, 1, "", "BEQ"], [9, 3, 1, "", "BEXT"], [9, 3, 1, "", "BGE"], [9, 3, 1, "", "BGEU"], [9, 3, 1, "", "BINV"], [9, 3, 1, "", "BLT"], [9, 3, 1, "", "BLTU"], [9, 3, 1, "", "BNE"], [9, 3, 1, "", "BSET"], [9, 3, 1, "", "BU"], [9, 3, 1, "", "CLMUL"], [9, 3, 1, "", "CLMULH"], [9, 3, 1, "", "CLMULR"], [9, 3, 1, "", "CLZ"], [9, 3, 1, "", "CPOP"], [9, 3, 1, "", "CSRRC"], [9, 3, 1, "", "CSRRCI"], [9, 3, 1, "", "CSRRS"], [9, 3, 1, "", "CSRRSI"], [9, 3, 1, "", "CSRRW"], [9, 3, 1, "", "CSRRWI"], [9, 3, 1, "", "CTZ"], [9, 3, 1, "", "D"], [9, 3, 1, "", "DIV"], [9, 3, 1, "", "DIVU"], [9, 3, 1, "", "DIVUW"], [9, 3, 1, "", "DIVW"], [9, 3, 1, "", "FENCE"], [9, 3, 1, "", "FENCEI"], [9, 3, 1, "", "H"], [9, 3, 1, "", "HU"], [9, 3, 1, "", "JALR"], [9, 3, 1, "", "MAX"], [9, 3, 1, "", "MAXU"], [9, 3, 1, "", "MIN"], [9, 3, 1, "", "MINU"], [9, 3, 1, "", "MUL"], [9, 3, 1, "", "MULH"], [9, 3, 1, "", "MULHSU"], [9, 3, 1, "", "MULHU"], [9, 3, 1, "", "MULW"], [9, 3, 1, "", "OR"], [9, 3, 1, "", "ORCB"], [9, 3, 1, "", "ORN"], [9, 3, 1, "", "PRIV"], [9, 3, 1, "", "REM"], [9, 3, 1, "", "REMU"], [9, 3, 1, "", "REMUW"], [9, 3, 1, "", "REMW"], [9, 3, 1, "", "REV8"], [9, 3, 1, "", "ROL"], [9, 3, 1, "", "ROR"], [9, 3, 1, "", "SEXTB"], [9, 3, 1, "", "SEXTH"], [9, 3, 1, "", "SH1ADD"], [9, 3, 1, "", "SH2ADD"], [9, 3, 1, "", "SH3ADD"], [9, 3, 1, "", "SLL"], [9, 3, 1, "", "SLT"], [9, 3, 1, "", "SLTU"], [9, 3, 1, "", "SR"], [9, 3, 1, "", "SUB"], [9, 3, 1, "", "W"], [9, 3, 1, "", "XNOR"], [9, 3, 1, "", "XOR"], [9, 3, 1, "", "ZEXTH"], [9, 2, 1, "", "__new__"]], "coreblocks.frontend.decoder.isa.Funct7": [[9, 3, 1, "", "ADD"], [9, 3, 1, "", "AND"], [9, 3, 1, "", "ANDN"], [9, 3, 1, "", "BCLR"], [9, 3, 1, "", "BEXT"], [9, 3, 1, "", "BINV"], [9, 3, 1, "", "BSET"], [9, 3, 1, "", "CLMUL"], [9, 3, 1, "", "CLZ"], [9, 3, 1, "", "CPOP"], [9, 3, 1, "", "CTZ"], [9, 3, 1, "", "MAX"], [9, 3, 1, "", "MIN"], [9, 3, 1, "", "MULDIV"], [9, 3, 1, "", "OR"], [9, 3, 1, "", "ORCB"], [9, 3, 1, "", "ORN"], [9, 3, 1, "", "REV8"], [9, 3, 1, "", "ROL"], [9, 3, 1, "", "ROR"], [9, 3, 1, "", "SA"], [9, 3, 1, "", "SEXTB"], [9, 3, 1, "", "SEXTH"], [9, 3, 1, "", "SFENCEVMA"], [9, 3, 1, "", "SH1ADD"], [9, 3, 1, "", "SH2ADD"], [9, 3, 1, "", "SH3ADD"], [9, 3, 1, "", "SL"], [9, 3, 1, "", "SLT"], [9, 3, 1, "", "SUB"], [9, 3, 1, "", "XNOR"], [9, 3, 1, "", "XOR"], [9, 3, 1, "", "ZEXTH"], [9, 2, 1, "", "__new__"]], "coreblocks.frontend.decoder.isa.InstrType": [[9, 3, 1, "", "B"], [9, 3, 1, "", "I"], [9, 3, 1, "", "J"], [9, 3, 1, "", "R"], [9, 3, 1, "", "S"], [9, 3, 1, "", "U"]], "coreblocks.frontend.decoder.isa.Opcode": [[9, 3, 1, "", "AUIPC"], [9, 3, 1, "", "BRANCH"], [9, 3, 1, "", "JAL"], [9, 3, 1, "", "JALR"], [9, 3, 1, "", "LOAD"], [9, 3, 1, "", "LOAD_FP"], [9, 3, 1, "", "LUI"], [9, 3, 1, "", "MISC_MEM"], [9, 3, 1, "", "OP"], [9, 3, 1, "", "OP32"], [9, 3, 1, "", "OP_IMM"], [9, 3, 1, "", "OP_IMM_32"], [9, 3, 1, "", "STORE"], [9, 3, 1, "", "STORE_FP"], [9, 3, 1, "", "SYSTEM"], [9, 2, 1, "", "__new__"]], "coreblocks.frontend.decoder.isa.Registers": [[9, 3, 1, "", "A0"], [9, 3, 1, "", "A1"], [9, 3, 1, "", "A2"], [9, 3, 1, "", "A3"], [9, 3, 1, "", "A4"], [9, 3, 1, "", "A5"], [9, 3, 1, "", "A6"], [9, 3, 1, "", "A7"], [9, 3, 1, "", "FP"], [9, 3, 1, "", "GP"], [9, 3, 1, "", "RA"], [9, 3, 1, "", "S0"], [9, 3, 1, "", "S1"], [9, 3, 1, "", "S10"], [9, 3, 1, "", "S11"], [9, 3, 1, "", "S2"], [9, 3, 1, "", "S3"], [9, 3, 1, "", "S4"], [9, 3, 1, "", "S5"], [9, 3, 1, "", "S6"], [9, 3, 1, "", "S7"], [9, 3, 1, "", "S8"], [9, 3, 1, "", "S9"], [9, 3, 1, "", "SP"], [9, 3, 1, "", "T0"], [9, 3, 1, "", "T1"], [9, 3, 1, "", "T2"], [9, 3, 1, "", "T3"], [9, 3, 1, "", "T4"], [9, 3, 1, "", "T5"], [9, 3, 1, "", "T6"], [9, 3, 1, "", "TP"], [9, 3, 1, "", "X0"], [9, 3, 1, "", "X1"], [9, 3, 1, "", "X10"], [9, 3, 1, "", "X11"], [9, 3, 1, "", "X12"], [9, 3, 1, "", "X13"], [9, 3, 1, "", "X14"], [9, 3, 1, "", "X15"], [9, 3, 1, "", "X16"], [9, 3, 1, "", "X17"], [9, 3, 1, "", "X18"], [9, 3, 1, "", "X19"], [9, 3, 1, "", "X2"], [9, 3, 1, "", "X20"], [9, 3, 1, "", "X21"], [9, 3, 1, "", "X22"], [9, 3, 1, "", "X23"], [9, 3, 1, "", "X24"], [9, 3, 1, "", "X25"], [9, 3, 1, "", "X26"], [9, 3, 1, "", "X27"], [9, 3, 1, "", "X28"], [9, 3, 1, "", "X29"], [9, 3, 1, "", "X3"], [9, 3, 1, "", "X30"], [9, 3, 1, "", "X31"], [9, 3, 1, "", "X4"], [9, 3, 1, "", "X5"], [9, 3, 1, "", "X6"], [9, 3, 1, "", "X7"], [9, 3, 1, "", "X8"], [9, 3, 1, "", "X9"], [9, 3, 1, "", "ZERO"], [9, 2, 1, "", "__new__"]], "coreblocks.frontend.decoder.optypes": [[9, 1, 1, "", "OpType"], [9, 4, 1, "", "optypes_required_by_extensions"]], "coreblocks.frontend.decoder.optypes.OpType": [[9, 3, 1, "", "ADDRESS_GENERATION"], [9, 3, 1, "", "ARITHMETIC"], [9, 3, 1, "", "AUIPC"], [9, 3, 1, "", "BIT_MANIPULATION"], [9, 3, 1, "", "BIT_ROTATION"], [9, 3, 1, "", "BRANCH"], [9, 3, 1, "", "CLMUL"], [9, 3, 1, "", "COMPARE"], [9, 3, 1, "", "CSR_IMM"], [9, 3, 1, "", "CSR_REG"], [9, 3, 1, "", "DIV_REM"], [9, 3, 1, "", "EBREAK"], [9, 3, 1, "", "ECALL"], [9, 3, 1, "", "EXCEPTION"], [9, 3, 1, "", "FENCE"], [9, 3, 1, "", "FENCEI"], [9, 3, 1, "", "JAL"], [9, 3, 1, "", "JALR"], [9, 3, 1, "", "LOAD"], [9, 3, 1, "", "LOGIC"], [9, 3, 1, "", "MRET"], [9, 3, 1, "", "MUL"], [9, 3, 1, "", "SFENCEVMA"], [9, 3, 1, "", "SHIFT"], [9, 3, 1, "", "SINGLE_BIT_MANIPULATION"], [9, 3, 1, "", "SRET"], [9, 3, 1, "", "STORE"], [9, 3, 1, "", "UNARY_BIT_MANIPULATION_1"], [9, 3, 1, "", "UNARY_BIT_MANIPULATION_2"], [9, 3, 1, "", "UNARY_BIT_MANIPULATION_3"], [9, 3, 1, "", "UNARY_BIT_MANIPULATION_4"], [9, 3, 1, "", "UNARY_BIT_MANIPULATION_5"], [9, 3, 1, "", "UNKNOWN"], [9, 3, 1, "", "WFI"], [9, 2, 1, "", "__new__"]], "coreblocks.frontend.decoder.rvc": [[9, 1, 1, "", "InstrDecompress"], [9, 4, 1, "", "is_instr_compressed"]], "coreblocks.frontend.decoder.rvc.InstrDecompress": [[9, 2, 1, "", "__init__"], [9, 2, 1, "", "decompr_reg"], [9, 2, 1, "", "instr_mux"]], "coreblocks.frontend.fetch": [[10, 0, 0, "-", "fetch"]], "coreblocks.frontend.fetch.fetch": [[10, 1, 1, "", "Fetch"], [10, 1, 1, "", "UnalignedFetch"]], "coreblocks.frontend.fetch.fetch.Fetch": [[10, 2, 1, "", "__init__"]], "coreblocks.frontend.fetch.fetch.UnalignedFetch": [[10, 2, 1, "", "__init__"]], "coreblocks.func_blocks": [[12, 0, 0, "-", "fu"], [14, 0, 0, "-", "interface"], [15, 0, 0, "-", "lsu"]], "coreblocks.func_blocks.fu": [[12, 0, 0, "-", "alu"], [12, 0, 0, "-", "div_unit"], [12, 0, 0, "-", "exception"], [12, 0, 0, "-", "jumpbranch"], [12, 0, 0, "-", "mul_unit"], [12, 0, 0, "-", "priv"], [12, 0, 0, "-", "shift_unit"], [13, 0, 0, "-", "unsigned_multiplication"], [12, 0, 0, "-", "zbc"], [12, 0, 0, "-", "zbs"]], "coreblocks.func_blocks.fu.alu": [[12, 1, 1, "", "ALUComponent"], [12, 1, 1, "", "AluFuncUnit"]], "coreblocks.func_blocks.fu.alu.ALUComponent": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "get_module"], [12, 2, 1, "", "get_optypes"]], "coreblocks.func_blocks.fu.alu.AluFuncUnit": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.div_unit": [[12, 1, 1, "", "DivComponent"], [12, 1, 1, "", "DivFn"], [12, 1, 1, "", "DivUnit"], [12, 4, 1, "", "get_input"]], "coreblocks.func_blocks.fu.div_unit.DivComponent": [[12, 2, 1, "", "__init__"], [12, 3, 1, "", "div_fn"], [12, 2, 1, "", "get_module"], [12, 2, 1, "", "get_optypes"], [12, 3, 1, "", "ipc"]], "coreblocks.func_blocks.fu.div_unit.DivFn": [[12, 1, 1, "", "Fn"], [12, 2, 1, "", "get_instructions"]], "coreblocks.func_blocks.fu.div_unit.DivFn.Fn": [[12, 3, 1, "", "DIV"], [12, 3, 1, "", "DIVU"], [12, 3, 1, "", "REM"], [12, 3, 1, "", "REMU"], [12, 2, 1, "", "__new__"]], "coreblocks.func_blocks.fu.div_unit.DivUnit": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.exception": [[12, 1, 1, "", "ExceptionFuncUnit"], [12, 1, 1, "", "ExceptionUnitComponent"]], "coreblocks.func_blocks.fu.exception.ExceptionFuncUnit": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.exception.ExceptionUnitComponent": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "get_module"], [12, 2, 1, "", "get_optypes"]], "coreblocks.func_blocks.fu.jumpbranch": [[12, 1, 1, "", "JumpBranchFuncUnit"], [12, 1, 1, "", "JumpComponent"]], "coreblocks.func_blocks.fu.jumpbranch.JumpBranchFuncUnit": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.jumpbranch.JumpComponent": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "get_module"], [12, 2, 1, "", "get_optypes"]], "coreblocks.func_blocks.fu.mul_unit": [[12, 1, 1, "", "MulComponent"], [12, 1, 1, "", "MulFn"], [12, 1, 1, "", "MulType"], [12, 1, 1, "", "MulUnit"]], "coreblocks.func_blocks.fu.mul_unit.MulComponent": [[12, 2, 1, "", "__init__"], [12, 3, 1, "", "dsp_width"], [12, 2, 1, "", "get_module"], [12, 2, 1, "", "get_optypes"], [12, 3, 1, "", "mul_fn"], [12, 3, 1, "", "mul_unit_type"]], "coreblocks.func_blocks.fu.mul_unit.MulFn": [[12, 1, 1, "", "Fn"], [12, 2, 1, "", "get_instructions"]], "coreblocks.func_blocks.fu.mul_unit.MulFn.Fn": [[12, 3, 1, "", "MUL"], [12, 3, 1, "", "MULH"], [12, 3, 1, "", "MULHSU"], [12, 3, 1, "", "MULHU"], [12, 2, 1, "", "__new__"]], "coreblocks.func_blocks.fu.mul_unit.MulType": [[12, 3, 1, "", "RECURSIVE_MUL"], [12, 3, 1, "", "SEQUENCE_MUL"], [12, 3, 1, "", "SHIFT_MUL"], [12, 2, 1, "", "__new__"]], "coreblocks.func_blocks.fu.mul_unit.MulUnit": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.priv": [[12, 1, 1, "", "PrivilegedFn"], [12, 1, 1, "", "PrivilegedFuncUnit"], [12, 1, 1, "", "PrivilegedUnitComponent"]], "coreblocks.func_blocks.fu.priv.PrivilegedFn": [[12, 1, 1, "", "Fn"], [12, 2, 1, "", "get_instructions"]], "coreblocks.func_blocks.fu.priv.PrivilegedFn.Fn": [[12, 3, 1, "", "MRET"], [12, 2, 1, "", "__new__"]], "coreblocks.func_blocks.fu.priv.PrivilegedFuncUnit": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.priv.PrivilegedUnitComponent": [[12, 2, 1, "", "get_module"], [12, 2, 1, "", "get_optypes"]], "coreblocks.func_blocks.fu.shift_unit": [[12, 1, 1, "", "ShiftFuncUnit"], [12, 1, 1, "", "ShiftUnitComponent"]], "coreblocks.func_blocks.fu.shift_unit.ShiftFuncUnit": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.shift_unit.ShiftUnitComponent": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "get_module"], [12, 2, 1, "", "get_optypes"]], "coreblocks.func_blocks.fu.unsigned_multiplication": [[13, 0, 0, "-", "common"], [13, 0, 0, "-", "fast_recursive"], [13, 0, 0, "-", "sequence"], [13, 0, 0, "-", "shift"]], "coreblocks.func_blocks.fu.unsigned_multiplication.common": [[13, 1, 1, "", "DSPMulUnit"], [13, 1, 1, "", "MulBaseUnsigned"]], "coreblocks.func_blocks.fu.unsigned_multiplication.common.DSPMulUnit": [[13, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.unsigned_multiplication.common.MulBaseUnsigned": [[13, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.unsigned_multiplication.fast_recursive": [[13, 1, 1, "", "RecursiveUnsignedMul"]], "coreblocks.func_blocks.fu.unsigned_multiplication.fast_recursive.RecursiveUnsignedMul": [[13, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.unsigned_multiplication.sequence": [[13, 1, 1, "", "SequentialUnsignedMul"]], "coreblocks.func_blocks.fu.unsigned_multiplication.sequence.SequentialUnsignedMul": [[13, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.unsigned_multiplication.shift": [[13, 1, 1, "", "ShiftUnsignedMul"]], "coreblocks.func_blocks.fu.unsigned_multiplication.shift.ShiftUnsignedMul": [[13, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.zbc": [[12, 1, 1, "", "ClMultiplier"], [12, 1, 1, "", "ZbcComponent"], [12, 1, 1, "", "ZbcFn"], [12, 1, 1, "", "ZbcUnit"]], "coreblocks.func_blocks.fu.zbc.ClMultiplier": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "iterative_module"], [12, 2, 1, "", "recursive_module"]], "coreblocks.func_blocks.fu.zbc.ZbcComponent": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "get_module"], [12, 2, 1, "", "get_optypes"], [12, 3, 1, "", "recursion_depth"], [12, 3, 1, "", "zbc_fn"]], "coreblocks.func_blocks.fu.zbc.ZbcFn": [[12, 1, 1, "", "Fn"], [12, 2, 1, "", "get_instructions"]], "coreblocks.func_blocks.fu.zbc.ZbcFn.Fn": [[12, 3, 1, "", "CLMUL"], [12, 3, 1, "", "CLMULH"], [12, 3, 1, "", "CLMULR"], [12, 2, 1, "", "__new__"]], "coreblocks.func_blocks.fu.zbc.ZbcUnit": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.zbs": [[12, 1, 1, "", "Zbs"], [12, 1, 1, "", "ZbsComponent"], [12, 1, 1, "", "ZbsFunction"], [12, 1, 1, "", "ZbsUnit"]], "coreblocks.func_blocks.fu.zbs.Zbs": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.zbs.ZbsComponent": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "get_module"], [12, 2, 1, "", "get_optypes"]], "coreblocks.func_blocks.fu.zbs.ZbsFunction": [[12, 1, 1, "", "Fn"], [12, 2, 1, "", "get_instructions"]], "coreblocks.func_blocks.fu.zbs.ZbsFunction.Fn": [[12, 3, 1, "", "BCLR"], [12, 3, 1, "", "BEXT"], [12, 3, 1, "", "BINV"], [12, 3, 1, "", "BSET"], [12, 2, 1, "", "__new__"]], "coreblocks.func_blocks.fu.zbs.ZbsUnit": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.interface": [[14, 0, 0, "-", "func_blocks_unifier"], [14, 0, 0, "-", "func_protocols"]], "coreblocks.func_blocks.interface.func_blocks_unifier": [[14, 1, 1, "", "FuncBlocksUnifier"]], "coreblocks.func_blocks.interface.func_blocks_unifier.FuncBlocksUnifier": [[14, 2, 1, "", "__init__"], [14, 2, 1, "", "get_extra_method"]], "coreblocks.func_blocks.interface.func_protocols": [[14, 1, 1, "", "FuncBlock"], [14, 1, 1, "", "FuncUnit"]], "coreblocks.func_blocks.interface.func_protocols.FuncBlock": [[14, 3, 1, "", "get_result"], [14, 3, 1, "", "insert"], [14, 3, 1, "", "select"], [14, 3, 1, "", "update"]], "coreblocks.func_blocks.interface.func_protocols.FuncUnit": [[14, 3, 1, "", "accept"], [14, 3, 1, "", "issue"]], "coreblocks.func_blocks.lsu": [[15, 0, 0, "-", "dummyLsu"], [15, 0, 0, "-", "pma"]], "coreblocks.func_blocks.lsu.dummyLsu": [[15, 1, 1, "", "LSUBlockComponent"], [15, 1, 1, "", "LSUDummy"]], "coreblocks.func_blocks.lsu.dummyLsu.LSUBlockComponent": [[15, 2, 1, "", "get_module"], [15, 2, 1, "", "get_optypes"], [15, 2, 1, "", "get_rs_entry_count"]], "coreblocks.func_blocks.lsu.dummyLsu.LSUDummy": [[15, 2, 1, "", "__init__"]], "coreblocks.func_blocks.lsu.pma": [[15, 1, 1, "", "PMAChecker"], [15, 1, 1, "", "PMALayout"], [15, 1, 1, "", "PMARegion"]], "coreblocks.func_blocks.lsu.pma.PMAChecker": [[15, 2, 1, "", "__init__"]], "coreblocks.func_blocks.lsu.pma.PMALayout": [[15, 2, 1, "", "__init__"]], "coreblocks.func_blocks.lsu.pma.PMARegion": [[15, 2, 1, "", "__init__"], [15, 3, 1, "", "end"], [15, 3, 1, "", "mmio"], [15, 3, 1, "", "start"]], "coreblocks.params": [[16, 0, 0, "-", "configurations"], [16, 0, 0, "-", "fu_params"], [16, 0, 0, "-", "genparams"], [16, 0, 0, "-", "icache_params"], [16, 0, 0, "-", "instr"], [16, 0, 0, "-", "isa_params"]], "coreblocks.params.configurations": [[16, 1, 1, "", "CoreConfiguration"]], "coreblocks.params.configurations.CoreConfiguration": [[16, 2, 1, "", "__init__"], [16, 3, 1, "", "allow_partial_extensions"], [16, 3, 1, "", "compressed"], [16, 3, 1, "", "debug_signals"], [16, 3, 1, "", "embedded"], [16, 3, 1, "", "func_units_config"], [16, 3, 1, "", "icache_block_size_bits"], [16, 3, 1, "", "icache_enable"], [16, 3, 1, "", "icache_sets_bits"], [16, 3, 1, "", "icache_ways"], [16, 3, 1, "", "phys_regs_bits"], [16, 3, 1, "", "pma"], [16, 2, 1, "", "replace"], [16, 3, 1, "", "rob_entries_bits"], [16, 3, 1, "", "start_pc"], [16, 3, 1, "", "xlen"]], "coreblocks.params.fu_params": [[16, 1, 1, "", "BlockComponentParams"], [16, 1, 1, "", "FunctionalComponentParams"], [16, 4, 1, "", "optypes_supported"]], "coreblocks.params.fu_params.BlockComponentParams": [[16, 2, 1, "", "get_module"], [16, 2, 1, "", "get_optypes"], [16, 2, 1, "", "get_rs_entry_count"]], "coreblocks.params.fu_params.FunctionalComponentParams": [[16, 2, 1, "", "get_module"], [16, 2, 1, "", "get_optypes"]], "coreblocks.params.genparams": [[16, 1, 1, "", "GenParams"]], "coreblocks.params.genparams.GenParams": [[16, 2, 1, "", "__init__"]], "coreblocks.params.icache_params": [[16, 1, 1, "", "ICacheParameters"]], "coreblocks.params.icache_params.ICacheParameters": [[16, 2, 1, "", "__init__"]], "coreblocks.params.instr": [[16, 1, 1, "", "BTypeInstr"], [16, 1, 1, "", "EBreakInstr"], [16, 1, 1, "", "ITypeInstr"], [16, 1, 1, "", "IllegalInstr"], [16, 1, 1, "", "JTypeInstr"], [16, 1, 1, "", "RTypeInstr"], [16, 1, 1, "", "STypeInstr"], [16, 1, 1, "", "UTypeInstr"]], "coreblocks.params.instr.BTypeInstr": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "encode"], [16, 2, 1, "", "pack"]], "coreblocks.params.instr.EBreakInstr": [[16, 2, 1, "", "__init__"]], "coreblocks.params.instr.ITypeInstr": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "encode"], [16, 2, 1, "", "pack"]], "coreblocks.params.instr.IllegalInstr": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "encode"], [16, 2, 1, "", "pack"]], "coreblocks.params.instr.JTypeInstr": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "encode"], [16, 2, 1, "", "pack"]], "coreblocks.params.instr.RTypeInstr": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "encode"], [16, 2, 1, "", "pack"]], "coreblocks.params.instr.STypeInstr": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "encode"], [16, 2, 1, "", "pack"]], "coreblocks.params.instr.UTypeInstr": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "encode"], [16, 2, 1, "", "pack"]], "coreblocks.params.isa_params": [[16, 1, 1, "", "Extension"], [16, 1, 1, "", "ISA"]], "coreblocks.params.isa_params.Extension": [[16, 3, 1, "", "A"], [16, 3, 1, "", "B"], [16, 3, 1, "", "C"], [16, 3, 1, "", "D"], [16, 3, 1, "", "E"], [16, 3, 1, "", "F"], [16, 3, 1, "", "G"], [16, 3, 1, "", "I"], [16, 3, 1, "", "J"], [16, 3, 1, "", "L"], [16, 3, 1, "", "M"], [16, 3, 1, "", "N"], [16, 3, 1, "", "P"], [16, 3, 1, "", "Q"], [16, 3, 1, "", "T"], [16, 3, 1, "", "V"], [16, 3, 1, "", "XINTMACHINEMODE"], [16, 3, 1, "", "XINTSUPERVISOR"], [16, 3, 1, "", "ZAM"], [16, 3, 1, "", "ZBA"], [16, 3, 1, "", "ZBB"], [16, 3, 1, "", "ZBC"], [16, 3, 1, "", "ZBS"], [16, 3, 1, "", "ZDINX"], [16, 3, 1, "", "ZFH"], [16, 3, 1, "", "ZFHMIN"], [16, 3, 1, "", "ZFINX"], [16, 3, 1, "", "ZHINX"], [16, 3, 1, "", "ZICNTR"], [16, 3, 1, "", "ZICSR"], [16, 3, 1, "", "ZIFENCEI"], [16, 3, 1, "", "ZIHINTNTL"], [16, 3, 1, "", "ZIHINTPAUSE"], [16, 3, 1, "", "ZIHPM"], [16, 3, 1, "", "ZMMUL"], [16, 3, 1, "", "ZTSO"], [16, 2, 1, "", "__new__"]], "coreblocks.params.isa_params.ISA": [[16, 2, 1, "", "__init__"]], "coreblocks.peripherals": [[17, 0, 0, "-", "axi_lite"], [17, 0, 0, "-", "bus_adapter"], [17, 0, 0, "-", "wishbone"]], "coreblocks.peripherals.axi_lite": [[17, 1, 1, "", "AXILiteInterface"], [17, 1, 1, "", "AXILiteMaster"], [17, 1, 1, "", "AXILiteParameters"], [17, 1, 1, "", "AXILiteSignature"]], "coreblocks.peripherals.axi_lite.AXILiteInterface": [[17, 3, 1, "", "read_address"], [17, 3, 1, "", "read_data"], [17, 3, 1, "", "write_address"], [17, 3, 1, "", "write_data"], [17, 3, 1, "", "write_response"]], "coreblocks.peripherals.axi_lite.AXILiteMaster": [[17, 2, 1, "", "__init__"], [17, 3, 1, "", "axil_master"], [17, 2, 1, "", "result_handler"], [17, 2, 1, "", "start_request_transaction"], [17, 2, 1, "", "state_machine_request"]], "coreblocks.peripherals.axi_lite.AXILiteParameters": [[17, 2, 1, "", "__init__"]], "coreblocks.peripherals.axi_lite.AXILiteSignature": [[17, 2, 1, "", "__init__"]], "coreblocks.peripherals.bus_adapter": [[17, 1, 1, "", "AXILiteMasterAdapter"], [17, 1, 1, "", "BusMasterInterface"], [17, 1, 1, "", "WishboneMasterAdapter"]], "coreblocks.peripherals.bus_adapter.AXILiteMasterAdapter": [[17, 2, 1, "", "__init__"]], "coreblocks.peripherals.bus_adapter.BusMasterInterface": [[17, 3, 1, "", "get_read_response"], [17, 3, 1, "", "get_write_response"], [17, 3, 1, "", "params"], [17, 3, 1, "", "request_read"], [17, 3, 1, "", "request_write"]], "coreblocks.peripherals.bus_adapter.WishboneMasterAdapter": [[17, 2, 1, "", "__init__"]], "coreblocks.peripherals.wishbone": [[17, 1, 1, "", "PipelinedWishboneMaster"], [17, 1, 1, "", "WishboneArbiter"], [17, 1, 1, "", "WishboneInterface"], [17, 1, 1, "", "WishboneMaster"], [17, 1, 1, "", "WishboneMasterMethodLayout"], [17, 1, 1, "", "WishboneMemorySlave"], [17, 1, 1, "", "WishboneMuxer"], [17, 1, 1, "", "WishboneParameters"], [17, 1, 1, "", "WishboneSignature"]], "coreblocks.peripherals.wishbone.PipelinedWishboneMaster": [[17, 2, 1, "", "__init__"], [17, 2, 1, "", "generate_method_layouts"], [17, 3, 1, "", "wb"]], "coreblocks.peripherals.wishbone.WishboneArbiter": [[17, 2, 1, "", "__init__"], [17, 3, 1, "", "masters"], [17, 3, 1, "", "slave_wb"]], "coreblocks.peripherals.wishbone.WishboneInterface": [[17, 3, 1, "", "ack"], [17, 3, 1, "", "adr"], [17, 3, 1, "", "cyc"], [17, 3, 1, "", "dat_r"], [17, 3, 1, "", "dat_w"], [17, 3, 1, "", "err"], [17, 3, 1, "", "lock"], [17, 3, 1, "", "rst"], [17, 3, 1, "", "rty"], [17, 3, 1, "", "sel"], [17, 3, 1, "", "stall"], [17, 3, 1, "", "stb"], [17, 3, 1, "", "we"]], "coreblocks.peripherals.wishbone.WishboneMaster": [[17, 2, 1, "", "__init__"], [17, 3, 1, "", "wb_master"]], "coreblocks.peripherals.wishbone.WishboneMasterMethodLayout": [[17, 2, 1, "", "__init__"]], "coreblocks.peripherals.wishbone.WishboneMemorySlave": [[17, 2, 1, "", "__init__"], [17, 3, 1, "", "bus"]], "coreblocks.peripherals.wishbone.WishboneMuxer": [[17, 2, 1, "", "__init__"], [17, 3, 1, "", "master_wb"], [17, 3, 1, "", "slaves"]], "coreblocks.peripherals.wishbone.WishboneParameters": [[17, 2, 1, "", "__init__"]], "coreblocks.peripherals.wishbone.WishboneSignature": [[17, 2, 1, "", "__init__"], [17, 2, 1, "", "create"]], "coreblocks.priv": [[19, 0, 0, "-", "csr"], [20, 0, 0, "-", "traps"]], "coreblocks.priv.csr": [[19, 0, 0, "-", "csr_instances"], [19, 0, 0, "-", "csr_register"]], "coreblocks.priv.csr.csr_instances": [[19, 1, 1, "", "CSRAddress"], [19, 1, 1, "", "DoubleCounterCSR"], [19, 1, 1, "", "GenericCSRRegisters"], [19, 1, 1, "", "MachineModeCSRRegisters"]], "coreblocks.priv.csr.csr_instances.CSRAddress": [[19, 3, 1, "", "CYCLE"], [19, 3, 1, "", "CYCLEH"], [19, 3, 1, "", "INSTRET"], [19, 3, 1, "", "INSTRETH"], [19, 3, 1, "", "MCAUSE"], [19, 3, 1, "", "MEPC"], [19, 3, 1, "", "MTVEC"], [19, 3, 1, "", "TIME"], [19, 3, 1, "", "TIMEH"], [19, 2, 1, "", "__new__"]], "coreblocks.priv.csr.csr_instances.DoubleCounterCSR": [[19, 2, 1, "", "__init__"]], "coreblocks.priv.csr.csr_instances.GenericCSRRegisters": [[19, 2, 1, "", "__init__"]], "coreblocks.priv.csr.csr_instances.MachineModeCSRRegisters": [[19, 2, 1, "", "__init__"]], "coreblocks.priv.csr.csr_register": [[19, 1, 1, "", "CSRListKey"], [19, 1, 1, "", "CSRRegister"], [19, 1, 1, "", "PrivilegeLevel"], [19, 4, 1, "", "csr_access_privilege"]], "coreblocks.priv.csr.csr_register.CSRListKey": [[19, 2, 1, "", "__init__"]], "coreblocks.priv.csr.csr_register.CSRRegister": [[19, 2, 1, "", "__init__"]], "coreblocks.priv.csr.csr_register.PrivilegeLevel": [[19, 3, 1, "", "MACHINE"], [19, 3, 1, "", "SUPERVISOR"], [19, 3, 1, "", "USER"], [19, 2, 1, "", "__new__"]], "coreblocks.priv.traps": [[20, 0, 0, "-", "exception"], [20, 0, 0, "-", "instr_counter"], [20, 0, 0, "-", "interrupt_controller"]], "coreblocks.priv.traps.exception": [[20, 1, 1, "", "ExceptionCauseRegister"], [20, 4, 1, "", "should_update_prioriy"]], "coreblocks.priv.traps.exception.ExceptionCauseRegister": [[20, 2, 1, "", "__init__"]], "coreblocks.priv.traps.instr_counter": [[20, 1, 1, "", "CoreInstructionCounter"]], "coreblocks.priv.traps.instr_counter.CoreInstructionCounter": [[20, 2, 1, "", "__init__"]], "coreblocks.priv.traps.interrupt_controller": [[20, 1, 1, "", "InterruptController"]], "coreblocks.priv.traps.interrupt_controller.InterruptController": [[20, 2, 1, "", "__init__"]], "coreblocks.scheduler": [[21, 0, 0, "-", "scheduler"], [21, 0, 0, "-", "wakeup_select"]], "coreblocks.scheduler.scheduler": [[21, 1, 1, "", "Scheduler"]], "coreblocks.scheduler.scheduler.Scheduler": [[21, 2, 1, "", "__init__"]], "coreblocks.scheduler.wakeup_select": [[21, 1, 1, "", "WakeupSelect"]], "coreblocks.scheduler.wakeup_select.WakeupSelect": [[21, 2, 1, "", "__init__"]], "transactron": [[36, 0, 0, "-", "core"], [35, 0, 0, "-", "graph"], [37, 0, 0, "-", "lib"], [35, 0, 0, "-", "profiler"], [38, 0, 0, "-", "testing"], [35, 0, 0, "-", "tracing"], [39, 0, 0, "-", "utils"]], "transactron.core": [[36, 0, 0, "-", "keys"], [36, 0, 0, "-", "manager"], [36, 0, 0, "-", "method"], [36, 0, 0, "-", "schedulers"], [36, 0, 0, "-", "sugar"], [36, 0, 0, "-", "tmodule"], [36, 0, 0, "-", "transaction"], [36, 0, 0, "-", "transaction_base"]], "transactron.core.keys": [[36, 1, 1, "", "TransactionManagerKey"]], "transactron.core.keys.TransactionManagerKey": [[36, 2, 1, "", "__init__"]], "transactron.core.manager": [[36, 1, 1, "", "TransactionManager"], [36, 1, 1, "", "TransactionModule"]], "transactron.core.manager.TransactionManager": [[36, 2, 1, "", "__init__"], [36, 2, 1, "", "add_transaction"], [36, 2, 1, "", "debug_signals"], [36, 2, 1, "", "print_info"], [36, 2, 1, "", "visual_graph"]], "transactron.core.manager.TransactionModule": [[36, 2, 1, "", "__init__"], [36, 2, 1, "", "context"]], "transactron.core.method": [[36, 1, 1, "", "Method"]], "transactron.core.method.Method": [[36, 2, 1, "", "__init__"], [36, 2, 1, "", "body"], [36, 2, 1, "", "debug_signals"], [36, 5, 1, "", "layout_in"], [36, 5, 1, "", "layout_out"], [36, 2, 1, "", "like"], [36, 2, 1, "", "proxy"]], "transactron.core.schedulers": [[36, 4, 1, "", "eager_deterministic_cc_scheduler"], [36, 4, 1, "", "trivial_roundrobin_cc_scheduler"]], "transactron.core.sugar": [[36, 4, 1, "", "def_method"]], "transactron.core.tmodule": [[36, 1, 1, "", "TModule"]], "transactron.core.tmodule.TModule": [[36, 2, 1, "", "AvoidedIf"], [36, 2, 1, "", "Case"], [36, 2, 1, "", "Default"], [36, 2, 1, "", "Elif"], [36, 2, 1, "", "Else"], [36, 2, 1, "", "FSM"], [36, 2, 1, "", "If"], [36, 2, 1, "", "State"], [36, 2, 1, "", "Switch"], [36, 2, 1, "", "__init__"], [36, 5, 1, "", "ctrl_path"], [36, 5, 1, "", "next"]], "transactron.core.transaction": [[36, 1, 1, "", "Transaction"]], "transactron.core.transaction.Transaction": [[36, 2, 1, "", "__init__"], [36, 2, 1, "", "body"], [36, 2, 1, "", "debug_signals"]], "transactron.core.transaction_base": [[36, 1, 1, "", "Priority"], [36, 1, 1, "", "TransactionBase"]], "transactron.core.transaction_base.Priority": [[36, 3, 1, "", "LEFT"], [36, 3, 1, "", "RIGHT"], [36, 3, 1, "", "UNDEFINED"]], "transactron.core.transaction_base.TransactionBase": [[36, 2, 1, "", "__init__"], [36, 2, 1, "", "add_conflict"], [36, 2, 1, "", "context"], [36, 3, 1, "", "ctrl_path"], [36, 3, 1, "", "def_counter"], [36, 3, 1, "", "def_order"], [36, 3, 1, "", "defined"], [36, 2, 1, "", "get"], [36, 3, 1, "", "independent_list"], [36, 3, 1, "", "method_calls"], [36, 3, 1, "", "method_uses"], [36, 3, 1, "", "name"], [36, 5, 1, "", "owned_name"], [36, 2, 1, "", "peek"], [36, 3, 1, "", "relations"], [36, 2, 1, "", "schedule_before"], [36, 2, 1, "", "simultaneous"], [36, 2, 1, "", "simultaneous_alternatives"], [36, 3, 1, "", "simultaneous_list"], [36, 3, 1, "", "src_loc"], [36, 3, 1, "", "stack"]], "transactron.graph": [[35, 1, 1, "", "Direction"], [35, 1, 1, "", "Owned"], [35, 1, 1, "", "OwnershipGraph"]], "transactron.graph.Direction": [[35, 3, 1, "", "IN"], [35, 3, 1, "", "INOUT"], [35, 3, 1, "", "NONE"], [35, 3, 1, "", "OUT"], [35, 2, 1, "", "__new__"]], "transactron.graph.Owned": [[35, 2, 1, "", "__init__"], [35, 3, 1, "", "name"], [35, 3, 1, "", "owner"]], "transactron.graph.OwnershipGraph": [[35, 2, 1, "", "__init__"], [35, 2, 1, "", "dump"], [35, 2, 1, "", "dump_dot"], [35, 2, 1, "", "dump_elk"], [35, 2, 1, "", "dump_mermaid"], [35, 2, 1, "", "get_hier_name"], [35, 2, 1, "", "get_name"], [35, 2, 1, "", "insert_edge"], [35, 2, 1, "", "insert_node"], [35, 3, 1, "", "mermaid_direction"], [35, 2, 1, "", "prune"], [35, 2, 1, "", "remember"], [35, 2, 1, "", "remember_field"]], "transactron.lib": [[37, 0, 0, "-", "adapters"], [37, 0, 0, "-", "buttons"], [37, 0, 0, "-", "connectors"], [37, 0, 0, "-", "dependencies"], [37, 0, 0, "-", "fifo"], [37, 0, 0, "-", "logging"], [37, 0, 0, "-", "metrics"], [37, 0, 0, "-", "reqres"], [37, 0, 0, "-", "simultaneous"], [37, 0, 0, "-", "storage"], [37, 0, 0, "-", "transformers"]], "transactron.lib.adapters": [[37, 1, 1, "", "Adapter"], [37, 1, 1, "", "AdapterBase"], [37, 1, 1, "", "AdapterTrans"]], "transactron.lib.adapters.Adapter": [[37, 2, 1, "", "__init__"]], "transactron.lib.adapters.AdapterBase": [[37, 2, 1, "", "__init__"], [37, 3, 1, "", "data_in"], [37, 3, 1, "", "data_out"], [37, 2, 1, "", "debug_signals"]], "transactron.lib.adapters.AdapterTrans": [[37, 2, 1, "", "__init__"]], "transactron.lib.buttons": [[37, 1, 1, "", "ClickIn"], [37, 1, 1, "", "ClickOut"]], "transactron.lib.buttons.ClickIn": [[37, 2, 1, "", "__init__"]], "transactron.lib.buttons.ClickOut": [[37, 2, 1, "", "__init__"]], "transactron.lib.connectors": [[37, 1, 1, "", "Connect"], [37, 1, 1, "", "ConnectTrans"], [37, 1, 1, "", "FIFO"], [37, 1, 1, "", "Forwarder"], [37, 1, 1, "", "ManyToOneConnectTrans"], [37, 1, 1, "", "StableSelectingNetwork"]], "transactron.lib.connectors.Connect": [[37, 2, 1, "", "__init__"]], "transactron.lib.connectors.ConnectTrans": [[37, 2, 1, "", "__init__"]], "transactron.lib.connectors.FIFO": [[37, 2, 1, "", "__init__"]], "transactron.lib.connectors.Forwarder": [[37, 2, 1, "", "__init__"]], "transactron.lib.connectors.ManyToOneConnectTrans": [[37, 2, 1, "", "__init__"]], "transactron.lib.connectors.StableSelectingNetwork": [[37, 2, 1, "", "__init__"]], "transactron.lib.dependencies": [[37, 1, 1, "", "DependencyKey"], [37, 1, 1, "", "DependencyManager"], [37, 1, 1, "", "ListKey"], [37, 1, 1, "", "SimpleKey"], [37, 1, 1, "", "UnifierKey"]], "transactron.lib.dependencies.DependencyKey": [[37, 2, 1, "", "combine"], [37, 3, 1, "", "empty_valid"], [37, 3, 1, "", "lock_on_get"]], "transactron.lib.dependencies.DependencyManager": [[37, 2, 1, "", "__init__"], [37, 2, 1, "", "add_dependency"], [37, 2, 1, "", "get_dependency"]], "transactron.lib.dependencies.ListKey": [[37, 2, 1, "", "combine"], [37, 3, 1, "", "empty_valid"]], "transactron.lib.dependencies.SimpleKey": [[37, 2, 1, "", "combine"], [37, 3, 1, "", "default_value"]], "transactron.lib.dependencies.UnifierKey": [[37, 2, 1, "", "combine"], [37, 3, 1, "", "unifier"]], "transactron.lib.fifo": [[37, 1, 1, "", "BasicFifo"], [37, 1, 1, "", "Semaphore"]], "transactron.lib.fifo.BasicFifo": [[37, 2, 1, "", "__init__"]], "transactron.lib.fifo.Semaphore": [[37, 2, 1, "", "__init__"]], "transactron.lib.logging": [[37, 1, 1, "", "HardwareLogger"], [37, 1, 1, "", "LogKey"], [37, 1, 1, "", "LogRecord"], [37, 1, 1, "", "LogRecordInfo"], [37, 4, 1, "", "get_log_records"], [37, 4, 1, "", "get_trigger_bit"]], "transactron.lib.logging.HardwareLogger": [[37, 2, 1, "", "__init__"], [37, 2, 1, "", "assertion"], [37, 2, 1, "", "debug"], [37, 2, 1, "", "error"], [37, 2, 1, "", "info"], [37, 2, 1, "", "log"], [37, 2, 1, "", "warning"]], "transactron.lib.logging.LogKey": [[37, 2, 1, "", "__init__"]], "transactron.lib.logging.LogRecord": [[37, 2, 1, "", "__init__"], [37, 3, 1, "", "fields"], [37, 3, 1, "", "trigger"]], "transactron.lib.logging.LogRecordInfo": [[37, 2, 1, "", "__init__"], [37, 2, 1, "", "format"], [37, 3, 1, "", "format_str"], [37, 2, 1, "", "from_dict"], [37, 2, 1, "", "from_json"], [37, 3, 1, "", "level"], [37, 3, 1, "", "location"], [37, 3, 1, "", "logger_name"], [37, 2, 1, "", "schema"], [37, 2, 1, "", "to_dict"], [37, 2, 1, "", "to_json"]], "transactron.lib.metrics": [[37, 1, 1, "", "HardwareMetricsManager"], [37, 1, 1, "", "HwCounter"], [37, 1, 1, "", "HwExpHistogram"], [37, 1, 1, "", "HwMetric"], [37, 1, 1, "", "HwMetricsEnabledKey"], [37, 1, 1, "", "LatencyMeasurer"], [37, 1, 1, "", "MetricModel"], [37, 1, 1, "", "MetricRegisterModel"]], "transactron.lib.metrics.HardwareMetricsManager": [[37, 2, 1, "", "__init__"], [37, 2, 1, "", "debug_signals"], [37, 2, 1, "", "get_metrics"], [37, 2, 1, "", "get_register_value"]], "transactron.lib.metrics.HwCounter": [[37, 2, 1, "", "__init__"], [37, 2, 1, "", "incr"]], "transactron.lib.metrics.HwExpHistogram": [[37, 2, 1, "", "__init__"], [37, 2, 1, "", "add"]], "transactron.lib.metrics.HwMetric": [[37, 2, 1, "", "__init__"], [37, 2, 1, "", "add_registers"], [37, 2, 1, "", "metrics_enabled"]], "transactron.lib.metrics.HwMetricsEnabledKey": [[37, 2, 1, "", "__init__"], [37, 3, 1, "", "default_value"], [37, 3, 1, "", "empty_valid"], [37, 3, 1, "", "lock_on_get"]], "transactron.lib.metrics.LatencyMeasurer": [[37, 2, 1, "", "__init__"], [37, 2, 1, "", "metrics_enabled"], [37, 2, 1, "", "start"], [37, 2, 1, "", "stop"]], "transactron.lib.metrics.MetricModel": [[37, 2, 1, "", "__init__"], [37, 3, 1, "", "description"], [37, 2, 1, "", "from_dict"], [37, 2, 1, "", "from_json"], [37, 3, 1, "", "fully_qualified_name"], [37, 3, 1, "", "regs"], [37, 2, 1, "", "schema"], [37, 2, 1, "", "to_dict"], [37, 2, 1, "", "to_json"]], "transactron.lib.metrics.MetricRegisterModel": [[37, 2, 1, "", "__init__"], [37, 3, 1, "", "description"], [37, 2, 1, "", "from_dict"], [37, 2, 1, "", "from_json"], [37, 3, 1, "", "name"], [37, 2, 1, "", "schema"], [37, 2, 1, "", "to_dict"], [37, 2, 1, "", "to_json"], [37, 3, 1, "", "width"]], "transactron.lib.reqres": [[37, 1, 1, "", "ArgumentsToResultsZipper"], [37, 1, 1, "", "Serializer"]], "transactron.lib.reqres.ArgumentsToResultsZipper": [[37, 2, 1, "", "__init__"]], "transactron.lib.reqres.Serializer": [[37, 2, 1, "", "__init__"]], "transactron.lib.simultaneous": [[37, 4, 1, "", "condition"]], "transactron.lib.storage": [[37, 1, 1, "", "MemoryBank"]], "transactron.lib.storage.MemoryBank": [[37, 2, 1, "", "__init__"]], "transactron.lib.transformers": [[37, 1, 1, "", "CatTrans"], [37, 1, 1, "", "Collector"], [37, 1, 1, "", "ConnectAndMapTrans"], [37, 1, 1, "", "MethodFilter"], [37, 1, 1, "", "MethodMap"], [37, 1, 1, "", "MethodProduct"], [37, 1, 1, "", "MethodTryProduct"], [37, 1, 1, "", "Transformer"], [37, 1, 1, "", "Unifier"]], "transactron.lib.transformers.CatTrans": [[37, 2, 1, "", "__init__"]], "transactron.lib.transformers.Collector": [[37, 2, 1, "", "__init__"]], "transactron.lib.transformers.ConnectAndMapTrans": [[37, 2, 1, "", "__init__"]], "transactron.lib.transformers.MethodFilter": [[37, 2, 1, "", "__init__"]], "transactron.lib.transformers.MethodMap": [[37, 2, 1, "", "__init__"]], "transactron.lib.transformers.MethodProduct": [[37, 2, 1, "", "__init__"]], "transactron.lib.transformers.MethodTryProduct": [[37, 2, 1, "", "__init__"]], "transactron.lib.transformers.Transformer": [[37, 3, 1, "", "method"], [37, 2, 1, "", "use"]], "transactron.lib.transformers.Unifier": [[37, 2, 1, "", "__init__"], [37, 3, 1, "", "method"]], "transactron.profiler": [[35, 1, 1, "", "MethodSamples"], [35, 1, 1, "", "Profile"], [35, 1, 1, "", "ProfileData"], [35, 1, 1, "", "ProfileInfo"], [35, 1, 1, "", "ProfileSamples"], [35, 1, 1, "", "RunStat"], [35, 1, 1, "", "RunStatNode"], [35, 1, 1, "", "TransactionSamples"]], "transactron.profiler.MethodSamples": [[35, 2, 1, "", "__init__"], [35, 3, 1, "", "run"]], "transactron.profiler.Profile": [[35, 2, 1, "", "__init__"], [35, 2, 1, "", "analyze_methods"], [35, 2, 1, "", "analyze_transactions"], [35, 3, 1, "", "cycles"], [35, 2, 1, "", "decode"], [35, 2, 1, "", "encode"], [35, 2, 1, "", "from_dict"], [35, 2, 1, "", "from_json"], [35, 2, 1, "", "schema"], [35, 2, 1, "", "to_dict"], [35, 2, 1, "", "to_json"], [35, 3, 1, "", "transactions_and_methods"]], "transactron.profiler.ProfileData": [[35, 2, 1, "", "__init__"], [35, 2, 1, "", "make"], [35, 3, 1, "", "method_parents"], [35, 3, 1, "", "transaction_conflicts"], [35, 3, 1, "", "transactions_and_methods"], [35, 3, 1, "", "transactions_by_method"]], "transactron.profiler.ProfileInfo": [[35, 2, 1, "", "__init__"], [35, 2, 1, "", "from_dict"], [35, 2, 1, "", "from_json"], [35, 3, 1, "", "is_transaction"], [35, 3, 1, "", "name"], [35, 2, 1, "", "schema"], [35, 3, 1, "", "src_loc"], [35, 2, 1, "", "to_dict"], [35, 2, 1, "", "to_json"]], "transactron.profiler.ProfileSamples": [[35, 2, 1, "", "__init__"], [35, 3, 1, "", "methods"], [35, 3, 1, "", "transactions"]], "transactron.profiler.RunStat": [[35, 2, 1, "", "__init__"], [35, 3, 1, "", "locked"], [35, 2, 1, "", "make"], [35, 3, 1, "", "name"], [35, 3, 1, "", "run"], [35, 3, 1, "", "src_loc"]], "transactron.profiler.RunStatNode": [[35, 2, 1, "", "__init__"], [35, 3, 1, "", "callers"], [35, 2, 1, "", "make"], [35, 3, 1, "", "stat"]], "transactron.profiler.TransactionSamples": [[35, 2, 1, "", "__init__"], [35, 3, 1, "", "grant"], [35, 3, 1, "", "request"], [35, 3, 1, "", "runnable"]], "transactron.testing": [[38, 0, 0, "-", "functions"], [38, 0, 0, "-", "gtkw_extension"], [38, 0, 0, "-", "infrastructure"], [38, 0, 0, "-", "logging"], [38, 0, 0, "-", "profiler"], [38, 0, 0, "-", "sugar"], [38, 0, 0, "-", "testbenchio"]], "transactron.testing.functions": [[38, 4, 1, "", "get_outputs"], [38, 4, 1, "", "set_inputs"]], "transactron.testing.gtkw_extension": [[38, 4, 1, "", "write_vcd_ext"]], "transactron.testing.infrastructure": [[38, 1, 1, "", "CoreblocksCommand"], [38, 1, 1, "", "Now"], [38, 1, 1, "", "PysimSimulator"], [38, 1, 1, "", "SimpleTestCircuit"], [38, 1, 1, "", "SyncProcessWrapper"], [38, 1, 1, "", "TestCaseWithSimulator"], [38, 4, 1, "", "guard_nested_collection"]], "transactron.testing.infrastructure.PysimSimulator": [[38, 2, 1, "", "__init__"], [38, 2, 1, "", "add_sync_process"], [38, 2, 1, "", "run"]], "transactron.testing.infrastructure.SimpleTestCircuit": [[38, 2, 1, "", "__init__"], [38, 2, 1, "", "debug_signals"]], "transactron.testing.infrastructure.SyncProcessWrapper": [[38, 2, 1, "", "__init__"]], "transactron.testing.infrastructure.TestCaseWithSimulator": [[38, 2, 1, "", "__init__"], [38, 2, 1, "", "add_all_mocks"], [38, 2, 1, "", "add_class_mocks"], [38, 2, 1, "", "add_local_mocks"], [38, 3, 1, "", "dependency_manager"], [38, 2, 1, "", "random_wait"], [38, 2, 1, "", "random_wait_geom"], [38, 2, 1, "", "run_simulation"], [38, 2, 1, "", "tick"]], "transactron.testing.logging": [[38, 4, 1, "", "make_logging_process"], [38, 4, 1, "", "parse_logging_level"]], "transactron.testing.profiler": [[38, 4, 1, "", "profiler_process"]], "transactron.testing.sugar": [[38, 4, 1, "", "def_method_mock"]], "transactron.testing.testbenchio": [[38, 1, 1, "", "TestbenchIO"]], "transactron.testing.testbenchio.TestbenchIO": [[38, 2, 1, "", "__init__"], [38, 2, 1, "", "call"], [38, 2, 1, "", "call_do"], [38, 2, 1, "", "call_init"], [38, 2, 1, "", "call_result"], [38, 2, 1, "", "call_try"], [38, 2, 1, "", "debug_signals"], [38, 2, 1, "", "disable"], [38, 2, 1, "", "done"], [38, 2, 1, "", "enable"], [38, 2, 1, "", "get_outputs"], [38, 2, 1, "", "method_argument"], [38, 2, 1, "", "method_handle"], [38, 2, 1, "", "method_handle_loop"], [38, 2, 1, "", "method_return"], [38, 2, 1, "", "set_enable"], [38, 2, 1, "", "set_inputs"], [38, 2, 1, "", "wait_until_done"]], "transactron.tracing": [[35, 1, 1, "", "TracingEnabler"], [35, 1, 1, "", "TracingFragment"], [35, 1, 1, "", "TracingFragmentTransformer"], [35, 1, 1, "", "TracingInstance"]], "transactron.tracing.TracingFragment": [[35, 2, 1, "", "get"], [35, 2, 1, "", "prepare"], [35, 3, 1, "", "subfragments"]], "transactron.tracing.TracingFragmentTransformer": [[35, 2, 1, "", "on_fragment"]], "transactron.tracing.TracingInstance": [[35, 2, 1, "", "get"]], "transactron.utils": [[40, 0, 0, "-", "amaranth_ext"], [39, 0, 0, "-", "assign"], [39, 0, 0, "-", "data_repr"], [39, 0, 0, "-", "debug_signals"], [39, 0, 0, "-", "depcache"], [39, 0, 0, "-", "dependencies"], [39, 0, 0, "-", "gen"], [39, 0, 0, "-", "idgen"], [39, 0, 0, "-", "transactron_helpers"]], "transactron.utils.amaranth_ext": [[40, 0, 0, "-", "elaboratables"], [40, 0, 0, "-", "functions"]], "transactron.utils.amaranth_ext.elaboratables": [[40, 1, 1, "", "ModuleConnector"], [40, 4, 1, "", "OneHotSwitch"], [40, 4, 1, "", "OneHotSwitchDynamic"], [40, 1, 1, "", "RoundRobin"], [40, 1, 1, "", "Scheduler"]], "transactron.utils.amaranth_ext.elaboratables.ModuleConnector": [[40, 2, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables.RoundRobin": [[40, 2, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables.Scheduler": [[40, 2, 1, "", "__init__"]], "transactron.utils.amaranth_ext.functions": [[40, 4, 1, "", "count_leading_zeros"], [40, 4, 1, "", "count_trailing_zeros"], [40, 4, 1, "", "flatten_signals"], [40, 4, 1, "", "mod_incr"], [40, 4, 1, "", "popcount"]], "transactron.utils.assign": [[39, 1, 1, "", "AssignType"], [39, 4, 1, "", "assign"]], "transactron.utils.assign.AssignType": [[39, 3, 1, "", "ALL"], [39, 3, 1, "", "COMMON"], [39, 3, 1, "", "RHS"]], "transactron.utils.data_repr": [[39, 4, 1, "", "align_down_to_power_of_two"], [39, 4, 1, "", "align_to_power_of_two"], [39, 4, 1, "", "average_dict_of_lists"], [39, 4, 1, "", "bits_from_int"], [39, 4, 1, "", "data_layout"], [39, 4, 1, "", "int_to_signed"], [39, 4, 1, "", "layout_subset"], [39, 4, 1, "", "make_hashable"], [39, 4, 1, "", "neg"], [39, 4, 1, "", "signed_to_int"]], "transactron.utils.debug_signals": [[39, 4, 1, "", "auto_debug_signals"]], "transactron.utils.depcache": [[39, 1, 1, "", "DependentCache"]], "transactron.utils.depcache.DependentCache": [[39, 2, 1, "", "__init__"], [39, 2, 1, "", "get"]], "transactron.utils.dependencies": [[39, 1, 1, "", "DependencyContext"], [39, 1, 1, "", "DependencyKey"], [39, 1, 1, "", "DependencyManager"], [39, 1, 1, "", "ListKey"], [39, 1, 1, "", "SimpleKey"]], "transactron.utils.dependencies.DependencyContext": [[39, 2, 1, "", "__init__"], [39, 2, 1, "", "get"], [39, 3, 1, "", "stack"]], "transactron.utils.dependencies.DependencyKey": [[39, 2, 1, "", "combine"], [39, 3, 1, "", "empty_valid"], [39, 3, 1, "", "lock_on_get"]], "transactron.utils.dependencies.DependencyManager": [[39, 2, 1, "", "__init__"], [39, 2, 1, "", "add_dependency"], [39, 2, 1, "", "get_dependency"]], "transactron.utils.dependencies.ListKey": [[39, 2, 1, "", "combine"], [39, 3, 1, "", "empty_valid"]], "transactron.utils.dependencies.SimpleKey": [[39, 2, 1, "", "combine"], [39, 3, 1, "", "default_value"]], "transactron.utils.gen": [[39, 1, 1, "", "GeneratedLog"], [39, 1, 1, "", "GenerationInfo"], [39, 1, 1, "", "MetricLocation"], [39, 4, 1, "", "generate_verilog"]], "transactron.utils.gen.GeneratedLog": [[39, 2, 1, "", "__init__"], [39, 3, 1, "", "fields_location"], [39, 2, 1, "", "from_dict"], [39, 2, 1, "", "from_json"], [39, 2, 1, "", "schema"], [39, 2, 1, "", "to_dict"], [39, 2, 1, "", "to_json"], [39, 3, 1, "", "trigger_location"]], "transactron.utils.gen.GenerationInfo": [[39, 2, 1, "", "__init__"], [39, 2, 1, "", "decode"], [39, 2, 1, "", "encode"], [39, 2, 1, "", "from_dict"], [39, 2, 1, "", "from_json"], [39, 3, 1, "", "logs"], [39, 3, 1, "", "method_signals_location"], [39, 3, 1, "", "metrics_location"], [39, 3, 1, "", "profile_data"], [39, 2, 1, "", "schema"], [39, 2, 1, "", "to_dict"], [39, 2, 1, "", "to_json"], [39, 3, 1, "", "transaction_signals_location"]], "transactron.utils.gen.MetricLocation": [[39, 2, 1, "", "__init__"], [39, 2, 1, "", "from_dict"], [39, 2, 1, "", "from_json"], [39, 3, 1, "", "regs"], [39, 2, 1, "", "schema"], [39, 2, 1, "", "to_dict"], [39, 2, 1, "", "to_json"]], "transactron.utils.idgen": [[39, 1, 1, "", "IdGenerator"]], "transactron.utils.idgen.IdGenerator": [[39, 2, 1, "", "__init__"]], "transactron.utils.transactron_helpers": [[39, 4, 1, "", "def_helper"], [39, 4, 1, "", "from_method_layout"], [39, 4, 1, "", "get_caller_class_name"], [39, 4, 1, "", "get_src_loc"], [39, 4, 1, "", "method_def_helper"], [39, 4, 1, "", "mock_def_helper"], [39, 4, 1, "", "silence_mustuse"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:function", "5": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"], "5": ["py", "property", "Python property"]}, "titleterms": {"api": 0, "coreblock": [0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 25, 27, 34], "transactron": [0, 28, 35, 36, 37, 38, 39, 40], "list": 1, "assumpt": [1, 3], "made": 1, "dure": 1, "develop": [1, 23], "instruct": [3, 32], "cach": [3, 6], "interfac": [3, 14, 31, 32], "address": 3, "map": 3, "exampl": 3, "packag": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 35, 36, 37, 38, 39, 40], "subpackag": [4, 8, 11, 12, 18, 35, 39], "submodul": [4, 5, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 35, 36, 37, 38, 39, 40], "core": [4, 33, 36], "modul": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 35, 36, 37, 38, 39, 40], "content": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 35, 36, 37, 38, 39, 40], "backend": 5, "annouc": 5, "retir": 5, "icach": 6, "ifac": 6, "refil": 6, "core_struct": 7, "rat": 7, "rf": 7, "rob": 7, "frontend": [8, 9, 10], "decod": 9, "decode_stag": 9, "instr_decod": 9, "instr_descript": 9, "isa": 9, "optyp": 9, "rvc": 9, "fetch": 10, "func_block": [11, 12, 13, 14, 15], "fu": [12, 13], "alu": 12, "div_unit": 12, "except": [12, 20, 26], "jumpbranch": 12, "mul_unit": 12, "priv": [12, 18, 19, 20], "shift_unit": 12, "zbc": 12, "zb": 12, "unsigned_multipl": 13, "common": 13, "fast_recurs": 13, "sequenc": 13, "shift": 13, "func_blocks_unifi": 14, "func_protocol": 14, "lsu": 15, "dummylsu": 15, "pma": 15, "param": 16, "configur": 16, "fu_param": 16, "genparam": 16, "icache_param": 16, "instr": 16, "isa_param": 16, "peripher": 17, "axi_lit": 17, "bus_adapt": 17, "wishbon": 17, "csr": 19, "csr_instanc": 19, "csr_regist": 19, "trap": 20, "instr_count": 20, "interrupt_control": 20, "schedul": [21, 30, 34, 36], "wakeup_select": 21, "full": 22, "transact": [22, 34, 36], "method": [22, 31, 32, 34, 36], "graph": [22, 35], "environ": 23, "set": 23, "up": 23, "us": [23, 31, 32], "script": 23, "run_test": 23, "py": 23, "lint": 23, "sh": 23, "core_graph": 23, "build_doc": 23, "tprof": 23, "introduct": [24, 26, 34], "document": [24, 34], "summari": 26, "paper": 26, "about": 26, "interrupt": 26, "handl": 26, "old": 26, "pc": 26, "out": 26, "order": [26, 34], "execut": [26, 33], "processor": 26, "In": 26, "line": 26, "softwar": 26, "manag": [26, 36], "tlb": 26, "hardwar": 26, "cost": 26, "analysi": 26, "process": 26, "strategi": 26, "igpu": 26, "support": 26, "specul": 26, "gpu": 26, "effici": 26, "other": 26, "problem": 29, "checklist": 29, "overview": [30, 32], "descript": 30, "schema": 30, "structur": 30, "more": 30, "detail": 30, "each": 30, "block": 30, "proposit": 31, "reserv": [31, 32], "station": [31, 32], "implement": [31, 34], "intern": 31, "data": 31, "actual": 31, "slot": [31, 32], "tabl": 31, "compar": [31, 32], "substitut": [31, 32], "read": [31, 32], "row": [31, 32], "clean": [31, 32], "get": [31, 32], "free": 31, "mark": [31, 32], "extern": [31, 32], "all": [31, 32], "reset": 32, "initi": 32, "state": 32, "insert": 32, "new": 32, "readi": [32, 34], "vector": 32, "signal": [32, 34], "verif": 33, "synthesi": 33, "manual": 33, "reproduct": 33, "depend": [33, 37, 39], "benchmark": 33, "regress": 33, "test": [33, 38], "framework": 34, "basic": 34, "usag": 34, "argument": 34, "pass": 34, "convent": 34, "definit": 34, "return": 34, "valu": 34, "The": 34, "librari": 34, "advanc": 34, "concept": 34, "special": 34, "combin": 34, "domain": 34, "conflict": 34, "nest": 34, "profil": [35, 38], "trace": 35, "kei": 36, "sugar": [36, 38], "tmodul": 36, "transaction_bas": 36, "lib": 37, "adapt": 37, "button": 37, "connector": 37, "fifo": 37, "log": [37, 38], "metric": 37, "reqr": 37, "simultan": 37, "storag": 37, "transform": 37, "function": [38, 40], "gtkw_extens": 38, "infrastructur": 38, "testbenchio": 38, "util": [39, 40], "assign": 39, "data_repr": 39, "debug_sign": 39, "depcach": 39, "gen": 39, "idgen": 39, "transactron_help": 39, "amaranth_ext": 40, "elaborat": 40}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["api", "assumptions", "auto_graph", "components/icache", "coreblocks", "coreblocks.backend", "coreblocks.cache", "coreblocks.core_structs", "coreblocks.frontend", "coreblocks.frontend.decoder", "coreblocks.frontend.fetch", "coreblocks.func_blocks", "coreblocks.func_blocks.fu", "coreblocks.func_blocks.fu.unsigned_multiplication", "coreblocks.func_blocks.interface", "coreblocks.func_blocks.lsu", "coreblocks.params", "coreblocks.peripherals", "coreblocks.priv", "coreblocks.priv.csr", "coreblocks.priv.traps", "coreblocks.scheduler", "current-graph", "development-environment", "home", "index", "miscellany/exceptions-summary", "modules-coreblocks", "modules-transactron", "problem-checklist", "scheduler/overview", "shared-structs/implementation/rs-impl", "shared-structs/rs", "synthesis/synthesis", "transactions", "transactron", "transactron.core", "transactron.lib", "transactron.testing", "transactron.utils", "transactron.utils.amaranth_ext"], "filenames": ["api.md", "assumptions.md", "auto_graph.rst", "components/icache.md", "coreblocks.rst", "coreblocks.backend.rst", "coreblocks.cache.rst", "coreblocks.core_structs.rst", "coreblocks.frontend.rst", "coreblocks.frontend.decoder.rst", "coreblocks.frontend.fetch.rst", "coreblocks.func_blocks.rst", "coreblocks.func_blocks.fu.rst", "coreblocks.func_blocks.fu.unsigned_multiplication.rst", "coreblocks.func_blocks.interface.rst", "coreblocks.func_blocks.lsu.rst", "coreblocks.params.rst", "coreblocks.peripherals.rst", "coreblocks.priv.rst", "coreblocks.priv.csr.rst", "coreblocks.priv.traps.rst", "coreblocks.scheduler.rst", "current-graph.md", "development-environment.md", "home.md", "index.md", "miscellany/exceptions-summary.md", "modules-coreblocks.rst", "modules-transactron.rst", "problem-checklist.md", "scheduler/overview.md", "shared-structs/implementation/rs-impl.md", "shared-structs/rs.md", "synthesis/synthesis.md", "transactions.md", "transactron.rst", "transactron.core.rst", "transactron.lib.rst", "transactron.testing.rst", "transactron.utils.rst", "transactron.utils.amaranth_ext.rst"], "titles": ["API", "List of assumptions made during development", "<no title>", "Instruction Cache", "coreblocks package", "coreblocks.backend package", "coreblocks.cache package", "coreblocks.core_structs package", "coreblocks.frontend package", "coreblocks.frontend.decoder package", "coreblocks.frontend.fetch package", "coreblocks.func_blocks package", "coreblocks.func_blocks.fu package", "coreblocks.func_blocks.fu.unsigned_multiplication package", "coreblocks.func_blocks.interface package", "coreblocks.func_blocks.lsu package", "coreblocks.params package", "coreblocks.peripherals package", "coreblocks.priv package", "coreblocks.priv.csr package", "coreblocks.priv.traps package", "coreblocks.scheduler package", "Full transaction-method graph", "Development environment", "Introduction", "Coreblocks", "Summary of papers about interrupts", "coreblocks", "transactron", "Problem checklist", "Scheduler overview", "Proposition of Reservation Station implementation", "Reservation Station", "Core verification", "Documentation for Coreblocks transaction framework", "transactron package", "transactron.core package", "transactron.lib package", "transactron.testing package", "transactron.utils package", "transactron.utils.amaranth_ext package"], "terms": {"packag": [0, 23, 25, 27, 28], "subpackag": [0, 27, 28], "backend": [0, 4, 27, 37], "submodul": [0, 8, 11, 18, 27, 28, 33], "annouc": [0, 4, 27], "modul": [0, 23, 27, 28, 33, 34], "retir": [0, 4, 15, 20, 27], "content": [0, 27, 28], "cach": [0, 4, 10, 16, 25, 27, 39], "icach": [0, 4, 10, 27, 37], "ifac": [0, 4, 27, 37], "refil": [0, 3, 4, 27], "core_struct": [0, 4, 27], "rat": [0, 1, 4, 21, 26, 27], "rf": [0, 1, 4, 5, 26, 27, 31, 32], "rob": [0, 1, 4, 5, 20, 21, 26, 27, 30, 31, 32], "frontend": [0, 4, 12, 15, 21, 27, 30, 37], "func_block": [0, 4, 16, 21, 27], "param": [0, 4, 6, 12, 17, 27], "configur": [0, 4, 17, 21, 27, 33, 37], "fu_param": [0, 4, 27], "genparam": [0, 4, 5, 7, 9, 10, 12, 13, 14, 15, 19, 20, 21, 27], "icache_param": [0, 4, 27], "instr": [0, 4, 9, 27], "isa_param": [0, 4, 27], "peripher": [0, 4, 27], "axi_lit": [0, 4, 27], "bus_adapt": [0, 4, 27], "wishbon": [0, 4, 27], "priv": [0, 4, 9, 11, 16, 27], "schedul": [0, 4, 25, 26, 27, 28, 35, 37, 40], "wakeup_select": [0, 4, 27], "core": [0, 5, 9, 12, 13, 16, 17, 19, 20, 21, 23, 25, 26, 27, 28, 35, 37, 39], "kei": [0, 19, 28, 35, 37, 39], "manag": [0, 12, 23, 25, 28, 35, 37, 39], "method": [0, 3, 5, 6, 9, 10, 12, 13, 14, 15, 17, 19, 20, 21, 23, 25, 28, 35, 37, 38, 39], "sugar": [0, 28, 35], "tmodul": [0, 17, 20, 28, 34, 35, 37], "transact": [0, 9, 16, 17, 19, 23, 25, 28, 31, 35, 37, 40], "transaction_bas": [0, 28, 35], "lib": [0, 28, 35, 36, 38, 39, 40], "adapt": [0, 17, 28, 34, 35, 38], "button": [0, 28, 35], "connector": [0, 28, 35], "depend": [0, 16, 19, 25, 28, 34, 35, 40], "fifo": [0, 5, 26, 28, 34, 35], "log": [0, 16, 17, 26, 28, 35, 39], "metric": [0, 16, 28, 35, 39], "reqr": [0, 28, 35], "simultan": [0, 19, 28, 34, 35, 36], "storag": [0, 28, 35], "transform": [0, 28, 35], "test": [0, 16, 23, 25, 28, 29, 35, 36, 37, 39, 40], "function": [0, 9, 12, 16, 21, 26, 28, 29, 34, 35, 36, 37, 39], "gtkw_extens": [0, 28, 35], "infrastructur": [0, 28, 35], "profil": [0, 23, 28], "testbenchio": [0, 28, 29, 35], "util": [0, 28, 29, 34, 35, 37], "assign": [0, 19, 28, 29, 34, 35, 36], "data_repr": [0, 28, 35], "debug_sign": [0, 5, 16, 28, 35, 36, 37, 38], "depcach": [0, 28, 35], "gen": [0, 9, 12, 13, 28, 35], "idgen": [0, 28, 35], "transactron_help": [0, 28, 35], "graph": [0, 23, 25, 28, 33, 36], "trace": [0, 23, 28, 38], "ha": [1, 6, 9, 10, 19, 21, 23, 26, 29, 31, 34, 35, 36, 37], "data": [1, 9, 10, 15, 17, 19, 20, 25, 32, 33, 35, 36, 37, 38, 39, 40], "forward": [1, 17, 34, 36, 37], "from": [1, 5, 6, 9, 15, 17, 19, 20, 21, 23, 24, 26, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40], "tomasulo": 1, "announc": [1, 5, 15], "bu": [1, 9, 15, 16, 17], "read": [1, 15, 17, 19, 23, 25, 29, 34, 37, 39], "x0": [1, 9], "rf0": 1, "return": [1, 3, 12, 15, 17, 20, 25, 26, 36, 37, 38, 39], "0": [1, 9, 12, 16, 17, 19, 21, 31, 32, 33, 35, 36, 37, 38], "write": [1, 6, 9, 17, 19, 26, 32, 34, 36, 37], "i": [1, 3, 5, 6, 9, 12, 13, 15, 16, 17, 19, 20, 21, 23, 24, 26, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40], "noop": 1, "separ": [1, 30, 35, 36, 37, 39], "r": [1, 5, 9, 15, 21, 23, 26, 30, 31, 32, 33], "each": [1, 10, 12, 16, 17, 19, 23, 25, 26, 31, 32, 34, 35, 36, 37, 38, 39], "fu": [1, 4, 5, 9, 11, 16, 20, 31, 32, 37], "writeback": 1, "stage": [1, 15, 20], "save": [1, 5, 16, 20, 23, 26, 31, 32, 35, 37, 39], "after": [1, 3, 6, 10, 17, 20, 26, 30, 33, 34, 37], "get": [1, 5, 9, 12, 13, 21, 23, 25, 35, 36, 37, 38, 39, 40], "output": [1, 5, 6, 15, 17, 23, 26, 31, 32, 36, 37, 40], "commit": [1, 23, 26, 33], "updat": [1, 14, 15, 19, 33, 40], "The": [3, 5, 6, 12, 17, 23, 24, 25, 26, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40], "should": [3, 5, 6, 9, 10, 17, 20, 21, 23, 24, 26, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40], "expos": [3, 37, 39], "three": [3, 9, 26, 33, 36], "issue_req": [3, 6], "thi": [3, 5, 6, 9, 12, 13, 15, 17, 19, 20, 21, 23, 26, 29, 31, 32, 33, 34, 35, 36, 37, 39, 40], "issu": [3, 6, 12, 13, 14, 21, 23, 34, 37], "an": [3, 5, 6, 15, 17, 21, 23, 24, 26, 29, 31, 33, 34, 35, 36, 37, 38, 39, 40], "lookup": [3, 6], "request": [3, 6, 12, 13, 15, 16, 17, 34, 35, 36, 37, 40], "accept_resp": 3, "result": [3, 5, 6, 9, 12, 13, 15, 17, 20, 26, 33, 34, 37, 39], "flush": [3, 6, 20, 26], "entir": [3, 33, 34], "oper": [3, 9, 12, 16, 26, 34, 36, 37, 40], "under": [3, 34, 35, 36], "follow": [3, 12, 21, 23, 31, 33, 34, 37, 39], "ar": [3, 5, 9, 15, 16, 17, 19, 23, 24, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40], "alwai": [3, 9, 19, 33, 34, 36, 37, 38], "multipl": [3, 12, 13, 16, 17, 21, 34, 36, 37, 39], "4": [3, 9, 12, 16, 37], "byte": [3, 16, 35, 37, 39], "risc": [3, 9, 16, 24, 33], "v": [3, 9, 16, 23, 24, 26, 31, 33, 37], "specif": [3, 9, 16, 17, 23, 26, 33, 37], "requir": [3, 19, 23, 26, 33, 34, 35, 36], "align": [3, 15, 39], "c": [3, 16, 26, 33, 37], "extens": [3, 9, 16, 33], "introduc": [3, 26, 34], "16": [3, 9, 16, 26, 36], "bit": [3, 6, 9, 12, 13, 16, 17, 19, 20, 26, 31, 32, 34, 37, 39, 40], "relax": [3, 34], "fetch": [3, 4, 5, 6, 8, 9, 16, 20, 26], "unit": [3, 5, 9, 10, 12, 13, 16, 17, 21, 23, 30, 33], "handl": [3, 12, 20, 25, 34, 36], "case": [3, 5, 17, 21, 26, 29, 34, 36, 37, 39, 40], "fulli": [3, 15, 37], "pipelin": [3, 15, 17, 21, 26, 31, 37], "process": [3, 20, 23, 25, 33, 37, 38], "order": [3, 16, 20, 21, 23, 24, 25, 33, 36, 37], "As": [3, 26, 34, 37], "can": [3, 5, 15, 17, 19, 20, 23, 24, 26, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40], "invok": [3, 5, 9, 10, 21, 26, 31, 38], "independ": [3, 34, 37], "accept_r": [3, 6], "If": [3, 9, 16, 17, 19, 20, 26, 29, 31, 34, 35, 36, 37, 39], "space": [3, 26], "anoth": [3, 6, 23, 34, 36, 37], "simpli": 3, "block": [3, 6, 13, 14, 16, 17, 21, 25, 26, 34, 36, 37], "latenc": [3, 26, 33, 37], "least": 3, "one": [3, 5, 6, 12, 17, 20, 23, 26, 30, 31, 32, 34, 36, 37, 38, 39, 40], "cycl": [3, 12, 13, 17, 19, 20, 23, 26, 30, 33, 34, 35, 36, 37, 38], "miss": [3, 26], "occur": [3, 6], "arbitrarili": 3, "long": [3, 32, 33, 37], "ensur": [3, 33], "ani": [3, 9, 17, 21, 26, 29, 37, 38, 39, 40], "refetch": 3, "howev": [3, 36, 37], "guarante": [3, 26], "have": [3, 5, 15, 17, 23, 26, 29, 33, 34, 36, 37, 38, 39, 40], "alreadi": [3, 5, 26, 37, 39], "been": 3, "still": [3, 26, 32, 36], "wait": [3, 5, 17, 20, 23, 26, 31, 32, 36, 38], "accept": [3, 6, 12, 13, 14, 33, 36, 37, 39], "inform": [3, 15, 21, 23, 35, 37, 39], "regard": 3, "error": [3, 6, 17, 36, 37, 39], "mean": [3, 21, 23, 32, 36, 37], "dure": [3, 15, 25, 30, 37, 38], "line": [3, 6, 16, 23, 25], "subsequ": 3, "access": [3, 16, 17, 19, 26, 34, 37, 38, 39], "trigger": [3, 19, 37, 39], "which": [3, 5, 6, 9, 10, 12, 15, 17, 21, 23, 24, 26, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40], "most": [3, 26, 34, 36, 37], "like": [3, 9, 26, 34, 36, 37], "For": [3, 16, 23, 31, 32, 34, 35, 37, 39, 40], "32": [3, 9, 12, 13, 16, 17, 26, 34, 37], "128": [3, 9, 16], "set": [3, 6, 9, 12, 15, 16, 19, 20, 21, 25, 31, 33, 36, 37, 39, 40], "size": [3, 16, 17, 26, 34, 37, 39], "equal": [3, 20, 37], "31": [3, 9], "15": [3, 9], "14": [3, 9], "13": [3, 9], "12": [3, 9], "11": [3, 9, 23, 33], "10": [3, 9, 26], "09": 3, "08": 3, "07": 3, "06": [3, 38], "05": 3, "04": 3, "03": 3, "02": 3, "01": 3, "00": 3, "tag": [3, 17, 26, 31, 32], "index": [3, 35, 36, 40], "offset": 3, "decod": [4, 8, 12, 15, 21, 35, 39], "decode_stag": [4, 8], "instr_decod": [4, 8], "instr_descript": [4, 8], "isa": [4, 8, 10, 16, 19], "optyp": [4, 8, 12, 15, 16, 21], "rvc": [4, 8, 10], "alu": [4, 11, 16], "div_unit": [4, 11], "except": [4, 5, 9, 11, 16, 18, 25, 29, 36, 38, 39], "jumpbranch": [4, 11, 16, 37], "mul_unit": [4, 11], "shift_unit": [4, 11, 16], "zbc": [4, 11, 16], "zb": [4, 11, 16], "interfac": [4, 6, 9, 11, 13, 15, 17, 21, 25, 33, 34, 36, 37], "func_blocks_unifi": [4, 11], "func_protocol": [4, 11, 21], "lsu": [4, 11, 16], "dummylsu": [4, 11, 16], "pma": [4, 11, 16], "csr": [4, 9, 16, 18], "csr_instanc": [4, 18], "csr_regist": [4, 18], "trap": [4, 18], "instr_count": [4, 18], "interrupt_control": [4, 18], "class": [4, 5, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 34, 35, 36, 37, 38, 39, 40], "base": [4, 5, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 26, 35, 36, 37, 38, 39, 40], "elaborat": [4, 5, 6, 7, 9, 10, 12, 13, 14, 15, 17, 19, 20, 21, 34, 35, 36, 37, 38, 39], "__init__": [4, 5, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 34, 35, 36, 37, 38, 39, 40], "gen_param": [4, 5, 7, 9, 10, 12, 13, 14, 15, 16, 19, 20, 21], "wb_instr_bu": 4, "wishboneinterfac": [4, 17], "wb_data_bu": 4, "resultannounc": 5, "simpl": [5, 6, 9, 10, 15, 21, 36, 37, 39, 40], "It": [5, 9, 10, 12, 13, 15, 17, 21, 23, 26, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40], "take": [5, 9, 17, 30, 31, 34, 36, 37, 38, 39], "execut": [5, 9, 12, 17, 21, 23, 25, 30, 32, 34, 35, 36, 37, 38], "instruct": [5, 6, 9, 10, 12, 15, 16, 19, 20, 21, 25, 26, 30, 31, 33], "send": [5, 9, 10, 16, 17, 21], "its": [5, 9, 19, 21, 26, 33, 34, 36, 37, 39, 40], "mark": [5, 25, 26, 35], "complet": [5, 17, 26], "store": [5, 9, 15, 16, 20, 26, 31, 32, 36, 37, 39], "valu": [5, 6, 9, 12, 15, 16, 17, 19, 20, 21, 25, 29, 31, 32, 35, 36, 37, 38, 39, 40], "also": [5, 23, 33, 34, 37, 38], "sent": [5, 17, 38], "get_result": [5, 14, 15, 37], "serial": [5, 15, 37], "so": [5, 17, 26, 33, 34, 35, 36, 37], "we": [5, 6, 15, 17, 26, 30, 31, 32, 33, 34, 37, 38], "more": [5, 23, 25, 26, 37, 39], "than": [5, 26, 37, 39], "connect": [5, 9, 17, 19, 26, 34, 36, 37], "manytooneconnecttran": [5, 37], "rob_mark_don": 5, "rs_updat": 5, "rf_write": 5, "paramet": [5, 6, 9, 10, 12, 13, 15, 16, 17, 19, 20, 21, 34, 36, 37, 38, 39, 40], "instanc": [5, 6, 9, 10, 15, 21, 33, 35, 36, 37, 38, 39], "us": [5, 6, 9, 10, 12, 13, 15, 16, 17, 19, 20, 21, 25, 26, 29, 33, 34, 36, 37, 38, 39, 40], "gener": [5, 6, 9, 10, 12, 13, 15, 16, 17, 19, 21, 23, 24, 26, 29, 33, 35, 36, 37, 38, 39], "next": [5, 6, 9, 10, 15, 21, 26, 36, 40], "readi": [5, 6, 15, 17, 19, 21, 25, 31, 35, 36, 37], "assum": [5, 12, 26, 37, 39], "differ": [5, 12, 17, 23, 24, 26, 29, 33, 36, 37, 39], "end": [5, 15, 26, 36, 37], "without": [5, 21, 26, 36, 37, 39], "pass": [5, 23, 25, 33, 36, 37, 38, 39], "finish": [5, 17, 20, 37], "rob_peek": 5, "rob_retir": 5, "r_rat_commit": 5, "r_rat_peek": 5, "free_rf_put": 5, "rf_free": 5, "precommit": [5, 15, 23], "exception_cause_get": 5, "exception_cause_clear": 5, "frat_renam": 5, "fetch_continu": 5, "instr_decr": 5, "trap_entri": 5, "cacheinterfac": [6, 10], "A": [6, 16, 17, 33, 34, 35, 36, 37, 39], "associ": [6, 16, 37], "replac": [6, 13, 16, 31], "polici": 6, "pseudo": 6, "random": [6, 38], "scheme": 6, "everi": [6, 12, 17, 23, 33, 36, 37], "time": [6, 17, 19, 26, 36, 37], "trash": 6, "select": [6, 9, 12, 14, 15, 17, 21, 23], "wai": [6, 12, 17, 23, 26, 33, 34, 36, 37, 39], "keep": [6, 36], "global": [6, 19, 26], "counter": [6, 16, 19, 20, 23, 37], "abstract": [6, 13, 16, 33, 37, 39], "awai": 6, "need": [6, 17, 23, 26, 31, 34, 36], "two": [6, 19, 26, 29, 33, 34, 36, 37, 38, 39], "refiller_start": 6, "call": [6, 19, 20, 21, 23, 29, 31, 34, 35, 36, 37, 38, 39], "whenev": [6, 37], "refiller_accept": 6, "written": [6, 19, 32, 33, 37], "last": [6, 20, 21, 36, 37], "when": [6, 17, 20, 23, 26, 29, 31, 32, 34, 36, 37, 38, 39, 40], "either": [6, 17, 34, 36, 37, 38, 39, 40], "transfer": [6, 17, 36, 37], "over": [6, 19, 36, 37], "shouldn": [6, 33], "t": [6, 9, 15, 16, 23, 26, 29, 31, 33, 34, 36, 37, 38, 39], "until": [6, 26, 37], "start": [6, 12, 15, 17, 26, 36, 37], "layout": [6, 9, 10, 17, 21, 23, 29, 34, 36, 37, 39], "icachelayout": 6, "icacheparamet": [6, 16], "cacherefillerinterfac": 6, "none": [6, 7, 9, 10, 12, 15, 16, 19, 35, 36, 37, 38, 39, 40], "creat": [6, 13, 17, 23, 33, 34, 36, 37, 38, 39, 40], "input": [6, 9, 12, 17, 26, 31, 32, 34, 36, 37, 40], "start_refil": 6, "accept_refil": 6, "deserialize_addr": 6, "raw_addr": 6, "dict": [6, 17, 34, 35, 36, 37, 38, 39, 40], "str": [6, 16, 17, 35, 36, 37, 38, 39, 40], "amaranth": [6, 9, 12, 16, 17, 29, 33, 34, 35, 36, 37, 38, 39, 40], "hdl": [6, 9, 12, 16, 35, 36, 37, 38, 39, 40], "_ast": [6, 9, 12, 16, 36, 37, 38, 39, 40], "serialize_addr": 6, "addr": [6, 15, 17, 37], "view": [6, 12, 15, 36, 37, 38, 39, 40], "icachebypass": 6, "bus_mast": 6, "busmasterinterfac": [6, 15, 17], "haselabor": [6, 14, 17, 35, 36, 37, 38, 40], "protocol": [6, 14, 17, 35, 36, 37], "whole": [6, 24, 26, 37], "given": [6, 15, 23, 31, 34, 35, 36, 37, 38, 39, 40], "simplecommonbuscacherefil": 6, "frat": 7, "rrat": 7, "registerfil": 7, "reorderbuff": [7, 20], "decodestag": 9, "instanti": [9, 36], "instrdecod": 9, "make": [9, 12, 23, 24, 26, 29, 33, 34, 35, 38], "actual": [9, 23, 25, 34], "combinatori": [9, 34], "manner": [9, 17], "get_raw": 9, "push_decod": 9, "raw": 9, "previou": [9, 17, 26, 37], "step": [9, 10, 21, 23, 26, 33, 34], "e": [9, 16, 23, 26, 29, 34, 37, 39, 40], "g": [9, 16, 23, 26, 29, 34, 37, 39, 40], "fetchlayout": [9, 10], "describ": [9, 10, 21, 26, 33, 35, 36, 37, 38], "decodelayout": [9, 21], "perform": [9, 12, 13, 16, 21, 23, 33, 34, 36, 37, 39, 40], "elementari": 9, "compon": [9, 16, 17, 24, 36, 37], "opcod": [9, 16, 31, 32], "funct3": [9, 12, 16], "etc": [9, 16, 34], "via": [9, 34, 36], "attribut": [9, 12, 13, 15, 16, 17, 19, 20, 35, 36, 37, 39, 40], "signal": [9, 12, 15, 16, 17, 25, 29, 35, 36, 37, 38, 39, 40], "ilen": [9, 16], "out": [9, 12, 13, 17, 24, 25, 35, 36, 37, 40], "identifi": [9, 16, 31, 37], "funct3_v": 9, "1": [9, 12, 13, 16, 19, 21, 26, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40], "funct7": [9, 12, 16], "seven": 9, "funct7_v": 9, "funct12": 9, "twelv": 9, "funct12_v": 9, "rd": [9, 16], "reg_cnt_log": 9, "address": [9, 15, 16, 17, 19, 25, 26], "regist": [9, 16, 19, 21, 26, 30, 36, 37, 39], "rd_v": 9, "rs1": [9, 16], "hold": [9, 17, 37], "first": [9, 12, 21, 26, 31, 32, 33, 34, 37, 38, 39], "rs1_v": 9, "form": [9, 16, 19, 26, 33, 37], "rs2": [9, 16], "second": [9, 12, 21, 31, 32, 33, 37], "rs2_v": 9, "imm": [9, 16], "xlen": [9, 12, 16, 19, 39], "immedi": [9, 17], "provid": [9, 12, 16, 19, 21, 33, 34, 37, 38, 39], "were": [9, 26, 34], "succ": 9, "fencetarget": 9, "successor": 9, "fenc": [9, 16], "pred": 9, "predecessor": 9, "fm": 9, "fencefm": 9, "mode": [9, 16, 23, 26], "csr_alen": [9, 16], "control": [9, 16, 17, 33, 35, 36, 37, 40], "sourc": [9, 21, 23, 31, 35, 36, 37], "type": [9, 12, 23, 36, 37, 38, 39], "defin": [9, 15, 19, 34, 36, 37, 39, 40], "kind": [9, 12, 21, 37, 39], "illeg": 9, "wa": [9, 19, 20, 23, 26, 34, 35, 36, 37, 39], "success": [9, 17, 38], "do": [9, 26, 29, 34, 36], "fit": 9, "support": [9, 15, 16, 21, 23, 25, 36, 37], "constructor": [9, 34, 36, 39], "encod": [9, 16, 26, 35, 39, 40], "object": [9, 12, 15, 16, 17, 33, 34, 35, 37, 38, 39], "repres": [9, 19, 36, 37], "singl": [9, 12, 13, 16, 20, 21, 34, 36, 37, 39], "option": [9, 12, 16, 17, 19, 23, 34, 35, 36, 37, 38, 39, 40], "exist": [9, 34], "instr_type_overrid": 9, "instrtyp": 9, "specifi": [9, 16, 17, 19, 32, 37, 38, 39], "determin": [9, 26, 33, 37, 39], "instrust": 9, "almost": 9, "correct": [9, 15, 26, 31, 32, 33], "rd_zero": 9, "bool": [9, 15, 16, 19, 35, 36, 37, 38, 39, 40], "field": [9, 15, 16, 19, 23, 31, 32, 34, 35, 36, 37, 38, 39], "constant": 9, "zero": [9, 20, 31, 37, 40], "other": [9, 19, 23, 25, 34, 35, 36, 37, 40], "accordingli": 9, "default": [9, 17, 23, 34, 35, 36, 37, 39, 40], "fals": [9, 12, 15, 16, 23, 34, 35, 36, 37, 39, 40], "rs1_zero": 9, "exceptioncaus": 9, "intenum": [9, 12, 19], "breakpoint": 9, "3": [9, 12, 19, 23, 35, 36, 39], "environment_call_from_m": 9, "environment_call_from_": 9, "9": 9, "environment_call_from_u": 9, "8": [9, 12, 13, 16, 17, 36, 37], "illegal_instruct": 9, "2": [9, 12, 13, 16, 17, 19, 33, 35, 36, 37, 39], "instruction_access_fault": 9, "instruction_address_misalign": 9, "instruction_page_fault": 9, "load_access_fault": 9, "5": [9, 12, 16, 30, 37, 38], "load_address_misalign": 9, "load_page_fault": 9, "store_access_fault": 9, "7": [9, 16], "store_address_misalign": 9, "6": [9, 16, 26], "store_page_fault": 9, "__new__": [9, 12, 16, 19, 35], "tso": 9, "intflag": [9, 12, 16, 35], "dev_i": 9, "dev_o": 9, "mem_r": 9, "mem_w": 9, "clz": 9, "1536": 9, "cpop": 9, "1538": 9, "ctz": 9, "1537": 9, "ebreak": 9, "ecal": 9, "mret": [9, 12], "770": 9, "orcb": 9, "647": 9, "rev8_32": 9, "1688": 9, "rev8_64": 9, "1720": 9, "sextb": 9, "1540": 9, "sexth": 9, "1541": 9, "sret": 9, "258": 9, "wfi": 9, "261": 9, "zexth": 9, "add": [9, 34, 36, 37, 39], "AND": 9, "andn": 9, "b": [9, 16, 37], "bclr": [9, 12], "beq": 9, "bext": [9, 12], "bge": 9, "bgeu": 9, "binv": [9, 12], "blt": 9, "bltu": 9, "bne": 9, "bset": [9, 12], "clmul": [9, 12], "clmulh": [9, 12], "clmulr": [9, 12], "csrrc": 9, "csrrci": 9, "csrr": 9, "csrrsi": 9, "csrrw": 9, "csrrwi": 9, "d": [9, 16, 34, 36, 37, 39], "div": [9, 12], "divu": [9, 12], "divuw": 9, "divw": 9, "fencei": 9, "h": [9, 26], "hu": 9, "jalr": 9, "max": [9, 33], "maxu": 9, "min": [9, 37], "minu": 9, "mul": [9, 12], "mulh": [9, 12], "mulhsu": [9, 12], "mulhu": [9, 12], "mulw": 9, "OR": 9, "orn": 9, "rem": [9, 12], "remu": [9, 12], "remuw": 9, "remw": 9, "rev8": 9, "rol": 9, "ror": 9, "sh1add": 9, "sh2add": 9, "sh3add": 9, "sll": 9, "slt": 9, "sltu": 9, "sr": 9, "sub": [9, 37], "w": [9, 26], "xnor": 9, "xor": 9, "36": 9, "52": 9, "20": 9, "48": 9, "muldiv": 9, "sa": 9, "sfencevma": 9, "sl": 9, "enum": [9, 12, 16, 36, 37, 38, 39], "j": [9, 16], "": [9, 16, 17, 26, 34, 35, 36, 37, 39, 40], "u": [9, 26, 33, 37, 39], "auipc": 9, "branch": [9, 26, 33, 37], "24": 9, "jal": 9, "27": 9, "25": 9, "load": [9, 15, 26, 37, 39], "load_fp": 9, "lui": 9, "misc_mem": 9, "op": 9, "op32": 9, "op_imm": 9, "op_imm_32": 9, "store_fp": 9, "system": [9, 33, 34, 39], "28": [9, 26], "a0": 9, "a1": 9, "a2": 9, "a3": 9, "a4": 9, "a5": 9, "a6": 9, "a7": 9, "17": 9, "fp": [9, 35], "gp": [9, 12, 20], "ra": 9, "s0": 9, "s1": 9, "s10": 9, "26": 9, "s11": 9, "s2": 9, "18": 9, "s3": 9, "19": 9, "s4": 9, "s5": 9, "21": 9, "s6": 9, "22": 9, "s7": 9, "23": 9, "s8": 9, "s9": 9, "sp": 9, "t0": 9, "t1": [9, 34], "t2": [9, 34], "t3": 9, "t4": 9, "29": 9, "t5": 9, "30": [9, 26], "t6": 9, "tp": [9, 39], "x1": 9, "x10": 9, "x11": 9, "x12": 9, "x13": 9, "x14": 9, "x15": 9, "x16": 9, "x17": 9, "x18": 9, "x19": 9, "x2": 9, "x20": 9, "x21": 9, "x22": 9, "x23": 9, "x24": 9, "x25": 9, "x26": 9, "x27": 9, "x28": 9, "x29": 9, "x3": 9, "x30": 9, "x31": 9, "x4": 9, "x5": 9, "x6": 9, "x7": 9, "x8": 9, "x9": 9, "confus": 9, "address_gener": 9, "arithmet": 9, "bit_manipul": 9, "bit_rot": 9, "compar": [9, 25], "csr_imm": 9, "csr_reg": 9, "div_rem": 9, "34": 9, "intern": [9, 16, 25, 34, 36, 37], "caus": [9, 26, 37, 39], "befor": [9, 17, 20, 23, 29, 30, 34, 36, 37], "logic": [9, 26, 32, 33, 34], "33": 9, "shift": [9, 11, 12, 16, 37], "single_bit_manipul": 9, "unary_bit_manipulation_1": 9, "unary_bit_manipulation_2": 9, "unary_bit_manipulation_3": 9, "unary_bit_manipulation_4": 9, "unary_bit_manipulation_5": 9, "unknown": [9, 23, 35, 37, 39], "optypes_required_by_extens": 9, "resolve_impl": 9, "true": [9, 15, 16, 17, 34, 35, 36, 37, 38, 39, 40], "ignore_unsupport": 9, "instrdecompress": 9, "decompr_reg": 9, "rvc_reg": 9, "instr_mux": 9, "sel": [9, 17], "list": [9, 12, 16, 17, 19, 23, 25, 29, 33, 35, 36, 37, 38, 39, 40], "int": [9, 12, 13, 15, 16, 17, 19, 35, 36, 37, 38, 39, 40], "valuecast": [9, 16, 36, 37, 38, 39], "tupl": [9, 12, 17, 19, 21, 35, 36, 37, 39], "is_instr_compress": 9, "pc": [10, 25], "insid": [10, 33, 34, 36, 37], "increment": [10, 19, 20], "ilen_byt": 10, "cont": [10, 38], "unalignedfetch": 10, "work": [10, 21, 26, 29, 33, 34, 36, 37], "unalign": 10, "unsigned_multipl": [11, 12], "common": [11, 12, 17, 36, 37, 39], "fast_recurs": [11, 12], "sequenc": [11, 12, 21, 37], "alucompon": [12, 16], "functionalcomponentparam": [12, 16], "zba_en": 12, "zbb_enabl": 12, "get_modul": [12, 15, 16], "funcunit": [12, 14, 16], "get_optyp": [12, 15, 16], "alufuncunit": 12, "alu_fn": 12, "alufn": 12, "divcompon": 12, "ipc": [12, 33], "div_fn": 12, "divfn": 12, "decodermanag": 12, "fn": 12, "get_instruct": 12, "valid": [12, 17, 21, 31, 37, 39, 40], "implement": [12, 15, 17, 24, 25, 26, 30, 37, 39, 40], "format": [12, 23, 33, 34, 35, 36, 37, 39], "divunit": 12, "get_input": 12, "arg": [12, 17, 34, 35, 36, 37, 38, 39, 40], "exceptionfuncunit": 12, "unit_fn": 12, "exceptionunitfn": 12, "exceptionunitcompon": [12, 16], "jumpbranchfuncunit": 12, "jb_fn": 12, "jumpbranchfn": 12, "jumpcompon": [12, 16], "mulcompon": 12, "mul_unit_typ": 12, "multyp": 12, "dsp_width": [12, 13], "mul_fn": 12, "mulfn": 12, "hot": [12, 26, 40], "wire": 12, "recursive_mul": 12, "fastest": 12, "multipli": [12, 13], "onli": [12, 17, 19, 20, 26, 33, 34, 35, 36, 37, 38, 39], "costli": [12, 26], "term": 12, "resourc": [12, 20, 26, 33, 34, 36], "sequence_mul": 12, "dsp": [12, 13], "balanc": 12, "between": [12, 23, 26, 34, 36, 37, 39, 40], "cost": [12, 25, 34], "shift_mul": 12, "cheapest": 12, "russian": [12, 13], "peasant": [12, 13], "algorithm": [12, 13, 37], "mulunit": 12, "respons": [12, 17, 21, 23, 36, 37, 38], "unsign": [12, 13], "integ": [12, 16, 38, 39], "standard": [12, 26, 33, 37, 40], "funcunitlayout": [12, 21], "comput": [12, 13, 15, 20, 26, 37, 39], "mul_typ": 12, "privilegedfn": 12, "classmethod": [12, 35, 36, 37, 39], "privilegedfuncunit": 12, "privilegedunitcompon": [12, 16], "shiftfuncunit": 12, "shift_unit_fn": 12, "shiftunitfn": 12, "shiftunitcompon": [12, 16], "clmultipli": 12, "carri": [12, 16, 33], "less": [12, 16], "product": [12, 37], "i1": [12, 13], "n": [12, 13, 16, 37], "factor": 12, "i2": [12, 13], "reset": [12, 19, 25, 36], "new": [12, 15, 17, 20, 25, 26, 36, 37, 39, 40], "busi": 12, "while": [12, 36, 38], "progress": 12, "bit_width": 12, "recursion_depth": 12, "width": [12, 13, 16, 17, 19, 37, 39, 40], "depth": [12, 17, 33, 37], "recurs": [12, 13, 33, 34, 35, 37, 39], "parallel": [12, 37], "power": [12, 39], "iterative_modul": 12, "recursive_modul": 12, "zbccompon": 12, "zbc_fn": 12, "zbcfn": 12, "zbcunit": 12, "zbsfunction": 12, "in1": 12, "in2": 12, "zbscompon": 12, "zbsunit": 12, "zbs_fn": 12, "dspmulunit": 13, "clock": [13, 30, 33, 34, 35, 36, 37], "design": [13, 26, 34, 35], "synthesi": [13, 25], "tool": [13, 23, 33, 35], "o": [13, 26, 34, 36], "same": [13, 15, 23, 34, 36, 37, 39], "number": [13, 16, 17, 23, 26, 33, 35, 36, 37, 38, 39, 40], "mulbaseunsign": 13, "unsignedmulunitlayout": 13, "recursiveunsignedmul": 13, "see": [13, 29, 33, 34, 37], "fast": 13, "within": [13, 23], "sequentialunsignedmul": 13, "sequenti": [13, 17], "classic": [13, 26], "shiftunsignedmul": 13, "cheap": 13, "multi": 13, "funcblocksunifi": 14, "iter": [14, 16, 36, 37, 38, 39, 40], "blockcomponentparam": [14, 15, 16], "extra_methods_requir": 14, "unifierkei": [14, 37], "get_extra_method": 14, "item": [14, 39, 40], "funcblock": [14, 15, 16, 21], "insert": [14, 15, 21, 25, 26, 30, 31], "lsublockcompon": [15, 16], "get_rs_entry_count": [15, 16], "lsudummi": 15, "veri": [15, 26, 34], "all": [15, 16, 17, 20, 23, 25, 26, 29, 34, 35, 36, 37, 39, 40], "isn": [15, 33, 36], "compliant": [15, 33], "riscv": [15, 33], "spec": 15, "doesn": [15, 26, 29, 34, 37], "check": [15, 23, 26, 29, 31, 32, 33, 36, 39], "rang": [15, 36, 37, 38, 39, 40], "reserv": [15, 16, 25, 26], "place": [15, 17, 26, 31, 33, 34, 36, 37], "intruct": 15, "put": [15, 31, 33, 37], "receiv": [15, 17, 34, 36, 37], "calcul": [15, 37], "further": [15, 23, 37], "To": [15, 23, 26, 33, 37, 39], "processor": [15, 24, 25, 30], "master": [15, 17, 33], "pmacheck": 15, "physic": [15, 16, 21, 26], "memori": [15, 16, 17, 26, 36, 37], "checker": 15, "mai": [15, 23, 37, 38, 39], "part": [15, 19, 26, 30, 34, 36, 37], "combin": [15, 25, 29, 36, 37, 39], "circuit": [15, 33, 34, 36, 37, 39], "pmalayout": 15, "structlayout": [15, 36, 37, 39], "pmaregion": [15, 16], "contigu": [15, 16], "region": [15, 26], "includ": [15, 33, 34, 36, 37, 39, 40], "both": [15, 31, 34, 36, 37, 39], "begin": [15, 26], "mmio": 15, "indic": [15, 26, 32, 36, 37], "coreconfigur": 16, "func_units_config": 16, "collect": [16, 19, 24, 33, 35, 36, 37, 38, 39, 40], "station": [16, 25], "exampl": [16, 19, 23, 25, 31, 34, 36, 37, 40], "rsblockcompon": 16, "rs_entri": 16, "compress": 16, "enabl": [16, 37, 38, 39], "embed": 16, "reduc": [16, 26, 36], "debug": [16, 23, 37, 39], "hardwar": [16, 25, 30, 34, 37], "disabl": [16, 35, 37, 38], "them": [16, 23, 26, 33, 34, 36, 37, 39], "synthes": [16, 33, 37], "phys_regs_bit": 16, "file": [16, 23, 26, 33, 39], "rob_entries_bit": 16, "reorder": [16, 26, 37], "buffer": [16, 17, 26, 31, 37], "start_pc": 16, "initi": [16, 17, 25, 37, 38], "program": [16, 26, 33, 34], "icache_en": 16, "bypass": 16, "directli": [16, 34, 36], "icache_wai": 16, "icache_sets_bit": 16, "icache_line_bytes_log": 16, "fetch_block_bytes_log": 16, "allow_partial_extens": 16, "allow": [16, 24, 26, 33, 34, 36, 37, 40], "partial": [16, 35, 37, 39], "_implied_extens": 16, "extenst": 16, "flag": 16, "definit": [16, 25, 36], "per": [16, 33], "segment": 16, "abc": [16, 36, 37, 38, 39, 40], "func_unit": 16, "csrblockcompon": 16, "factori": [16, 35, 37, 39], "kwarg": [16, 17, 35, 36, 37, 38, 39, 40], "optypes_support": 16, "dependentcach": [16, 39], "cfg": 16, "addr_width": [16, 17], "length": [16, 26, 36, 39], "word_width": 16, "machin": [16, 19], "word": 16, "num_of_wai": 16, "num_of_sets_bit": 16, "line_bytes_log": 16, "btypeinstr": 16, "riscvinstr": 16, "static": [16, 35, 36, 39], "pack": 16, "ebreakinstr": 16, "itypeinstr": 16, "illegalinstr": 16, "jtypeinstr": 16, "rtypeinstr": 16, "stypeinstr": 16, "utypeinstr": 16, "avail": [16, 17, 19, 21, 23, 24, 33, 37], "atom": [16, 31, 34], "512": 16, "manipul": 16, "256": 16, "doubl": [16, 19, 26], "precis": [16, 26, 33], "float": [16, 35, 37, 38, 39], "point": [16, 26, 29, 33], "64": [16, 17], "f": [16, 21, 23, 33, 38], "98366": 16, "contain": [16, 23, 33, 34, 36, 37, 39], "basic": [16, 25, 33, 37], "full": [16, 23, 25, 26, 33, 37], "1024": 16, "dynam": [16, 26, 40], "languag": [16, 34], "l": [16, 23], "decim": 16, "m": [16, 17, 19, 20, 23, 26, 33, 34, 36, 37, 40], "divis": 16, "16384": 16, "user": [16, 19, 26, 33, 37], "level": [16, 17, 24, 26, 33, 34, 37, 38, 39], "interrupt": [16, 25], "p": [16, 23], "4096": 16, "simd": 16, "q": 16, "quad": 16, "2048": 16, "8192": 16, "vector": [16, 21, 25, 26, 37], "xintmachinemod": 16, "8589934592": 16, "categor": 16, "privilieg": 16, "xintsupervisor": 16, "17179869184": 16, "supervisor": [16, 19], "zam": 16, "2097152": 16, "misalign": 16, "zba": 16, "268435456": 16, "extend": [16, 29, 36], "zbb": 16, "536870912": 16, "1073741824": 16, "2147483648": 16, "zdinx": 16, "33554432": 16, "zfh": 16, "4194304": 16, "half": 16, "zfhmin": 16, "8388608": 16, "minim": 16, "zfinx": 16, "16777216": 16, "zhinx": 16, "67108864": 16, "zicntr": 16, "524288": 16, "timer": [16, 19], "zicsr": 16, "32768": 16, "statu": [16, 19, 38], "zifencei": 16, "65536": 16, "zihintntl": 16, "262144": 16, "non": [16, 31, 36, 37, 38], "tempor": 16, "local": [16, 20, 23], "hint": [16, 36], "zihintpaus": 16, "131072": 16, "paus": 16, "energi": 16, "zihpm": 16, "1048576": 16, "zmmul": 16, "134217728": 16, "ztso": 16, "4294967296": 16, "total": 16, "gather": 16, "numer": 16, "val": [16, 39], "correspond": [16, 31, 36, 40], "val_log": 16, "relev": [16, 35], "nativ": 16, "reg_cnt": 16, "maximum": [16, 33, 37], "bitwis": 16, "isa_str": 16, "string": [16, 37, 38], "pleas": [16, 23, 29, 34], "refer": [16, 35, 39], "gcc": 16, "arch": [16, 23, 33], "detail": [16, 20, 25, 37], "axiliteinterfac": 17, "abstractinterfac": 17, "abstractsignatur": 17, "read_address": 17, "axilitereadaddressinterfac": 17, "read_data": 17, "axilitereaddatainterfac": 17, "write_address": 17, "axilitewriteaddressinterfac": 17, "write_data": 17, "axilitewritedatainterfac": 17, "write_respons": 17, "axilitewriteresponseinterfac": 17, "axilitemast": 17, "axi": 17, "lite": 17, "axil_param": 17, "axiliteparamet": 17, "ra_request": 17, "channel": 17, "being": [17, 23, 37, 39, 40], "ra_request_layout": 17, "argument": [17, 21, 23, 25, 32, 33, 36, 37, 38, 39, 40], "rd_respons": 17, "availab": 17, "state": [17, 25, 26, 34, 36, 37, 38], "rd_response_layout": 17, "wa_request": 17, "wa_request_layout": 17, "wd_request": 17, "wd_request_layout": 17, "wr_respons": 17, "wr_response_layout": 17, "axil_mast": 17, "result_handl": 17, "start_request_transact": 17, "is_address_channel": 17, "state_machine_request": 17, "request_sign": 17, "data_width": 17, "must": [17, 36, 37, 39], "axilitesignatur": 17, "signatur": 17, "patamet": 17, "axilitemasteradapt": 17, "where": [17, 21, 23, 26, 31, 32, 34, 36, 37, 38, 39], "expect": 17, "busparametersinterfac": 17, "method_layout": 17, "commonbusmastermethodlayout": 17, "request_read": 17, "underli": 17, "request_read_layout": 17, "request_writ": 17, "request_write_layout": 17, "get_read_respons": 17, "action": [17, 19, 36, 37, 39], "read_response_layout": 17, "get_write_respons": 17, "write_response_layout": 17, "prefer": [17, 34], "gain": 17, "simplifi": 17, "interchang": 17, "buse": 17, "previous": 17, "wishbonemasteradapt": 17, "wishbonemast": 17, "pipelinedwishbonemast": 17, "wb_param": 17, "wishboneparamet": 17, "max_req": 17, "limit": [17, 34, 37], "pend": 17, "wb": 17, "request_layout": 17, "result_layout": 17, "requests_finish": 17, "generate_method_layout": 17, "wishbonearbit": 17, "arbit": 17, "slave": 17, "assert": [17, 37, 40], "cyc": 17, "grant": [17, 34, 35, 36, 37, 40], "round": [17, 36, 39, 40], "robin": [17, 36, 40], "num_slav": 17, "devic": 17, "slave_wb": 17, "intefac": 17, "num_mast": 17, "ack": 17, "adr": 17, "dat_r": 17, "dat_w": 17, "err": 17, "lock": [17, 23, 26, 34, 35, 37], "rst": 17, "rty": 17, "stall": [17, 26], "stb": 17, "name": [17, 23, 34, 35, 36, 37, 38, 39, 40], "wb_master": 17, "becom": 17, "wishbonemastermethodlayout": 17, "wishbonememoryslav": 17, "underneath": 17, "keyword": [17, 34, 36, 37, 38, 39], "thei": [17, 19, 23, 26, 30, 33, 34, 36, 37], "re": [17, 26, 29, 34, 36], "infer": [17, 36], "wishbonemux": 17, "muxer": 17, "multiplex": [17, 34], "ssel_tga": 17, "corespond": 17, "tga": 17, "note": [17, 19, 37], "stare": 17, "clear": [17, 31, 32, 37], "delai": [17, 34], "deassert": [17, 40], "master_wb": 17, "singal": 17, "granular": [17, 37], "smallest": 17, "port": [17, 36, 37, 39, 40], "capabl": 17, "wishbonesignatur": 17, "path": [17, 36, 37], "src_loc_at": [17, 37], "csraddress": 19, "3072": 19, "cycleh": 19, "3200": 19, "instret": 19, "3074": 19, "instreth": 19, "3202": 19, "mcaus": 19, "834": 19, "mepc": 19, "833": 19, "mtvec": 19, "773": 19, "3073": 19, "timeh": 19, "3201": 19, "doublecountercsr": 19, "group": [19, 37], "csrregist": 19, "At": 19, "overflow": [19, 37], "low_addr": 19, "high_addr": 19, "lower": [19, 39], "higher": 19, "synthetis": 19, "genericcsrregist": 19, "machinemodecsrregist": 19, "csrlistkei": 19, "listkei": [19, 37, 39], "dependencymanag": [19, 36, 37, 38, 39], "behaviour": [19, 33], "automat": [19, 23, 33, 39], "csrunit": 19, "bodi": [19, 34, 36, 37], "csr_val": 19, "els": [19, 26, 34, 36], "side": [19, 26, 31, 32], "effect": [19, 26, 31, 32, 36, 37], "_fu_read": 19, "_fu_writ": 19, "current": [19, 20, 21, 26, 36], "ignor": 19, "prioriti": [19, 20, 34, 36, 37], "csr_number": 19, "ro_bit": 19, "mask": [19, 37], "those": [19, 26, 36], "some": [19, 26, 29, 34, 36, 37], "upper": [19, 37], "0b11": 19, "discard": 19, "privilegelevel": 19, "csr_access_privileg": 19, "csr_addr": 19, "exceptioncauseregist": 20, "earliest": 20, "report": [20, 37], "rob_get_indic": 20, "fetch_stall_except": 20, "should_update_priorii": 20, "current_caus": 20, "new_caus": 20, "coreinstructioncount": 20, "count": [20, 23, 36, 37, 40], "leav": [20, 23], "decrement": 20, "interruptcontrol": 20, "prepar": [21, 23, 26, 35], "In": [21, 23, 24, 25, 32, 33, 34, 35, 36, 39], "alloc": [21, 30, 31, 32], "renam": [21, 30], "entri": [21, 26, 30, 31, 32, 37, 39], "stuck": 21, "get_instr": 21, "get_free_reg": 21, "rat_renam": 21, "rob_put": 21, "rf_read1": 21, "rf_read2": 21, "reservation_st": 21, "decoded_instr": 21, "id": [21, 31, 32, 35], "free": [21, 25, 26, 32], "ratlayout": 21, "rat_rename_in": 21, "rat_rename_out": 21, "roblayout": 21, "data_layout": [21, 37, 39], "rflayout": 21, "rf_read_out": 21, "rf_read_in": 21, "wakeupselect": 21, "wakeup": [21, 32], "firstli": 21, "get_readi": 21, "binari": [21, 33, 40], "th": [21, 37, 40], "posit": [21, 31, 32, 39], "row": [21, 23, 25], "taken": [21, 33, 36, 37], "take_row": 21, "rslayout": 21, "get_ready_list_out": 21, "take_out": 21, "push": 21, "down": [21, 39], "below": [23, 37], "instal": [23, 33], "python": [23, 34, 36, 37, 39], "interpret": [23, 37, 39], "pip": [23, 33], "virtual": 23, "python3": [23, 33], "venv": [23, 33], "project": [23, 24, 26], "directori": [23, 24, 33], "activ": [23, 33, 37, 38, 40], "bin": [23, 33], "librari": [23, 25, 37], "pip3": [23, 33], "dev": [23, 33], "txt": [23, 33], "riscv64": 23, "elf": 23, "binutil": 23, "your": [23, 29], "favourit": 23, "On": [23, 37], "debian": 23, "distro": 23, "hook": [23, 35], "pre": [23, 33], "run": [23, 33, 34, 35, 36, 37, 38, 40], "linter": 23, "ci": [23, 33], "intend": [23, 36], "By": [23, 36, 37], "test_transact": 23, "One": [23, 26, 34, 37, 40], "even": [23, 26, 34, 36, 37], "testschedul": 23, "Or": [23, 34], "test_singl": 23, "search": 23, "match": [23, 31, 32, 40], "queri": 23, "thank": 23, "uniqu": [23, 35, 37], "just": [23, 34, 37], "help": [23, 26, 37], "find": [23, 26, 37], "parameter": 23, "waveform": 23, "vcd": 23, "gtkw": [23, 39], "gtkwave": [23, 39], "__traces__": 23, "driven": 23, "transactron": [23, 25, 34], "__profile__": 23, "analyz": 23, "verbos": [23, 33], "runner": 23, "print": [23, 37], "code": [23, 24, 26, 29, 33, 34, 35, 37, 39, 40], "subcommand": 23, "filenam": 23, "main": [23, 26, 30, 33], "reformat": 23, "black": 23, "check_format": 23, "verifi": [23, 33], "flake8": 23, "check_typ": 23, "pyright": 23, "confront": 23, "would": [23, 26, 34, 37, 39], "messag": [23, 37], "you": [23, 29, 31, 33, 37], "diff": 23, "displai": 23, "chang": [23, 31, 34, 37, 38, 39, 40], "appli": [23, 26, 29, 35, 38], "chose": 23, "locat": [23, 24, 30, 35, 36, 37, 39], "visual": 23, "architectur": [23, 26, 33], "appropri": [23, 31, 37, 38], "prune": [23, 35], "remov": [23, 26], "disconnect": 23, "node": 23, "elk": [23, 35], "eclips": 23, "kernel": [23, 26], "dot": [23, 35, 37], "graphviz": 23, "mermaid": [23, 35], "document": [23, 25], "sphinx": 23, "html": [23, 24], "build": [23, 33, 37], "present": [23, 26, 34, 37, 39], "readabl": [23, 37], "profile_fil": 23, "json": [23, 33, 39], "about": [23, 25, 35, 37, 39], "column": 23, "question": [23, 34], "togeth": [23, 34, 36], "differenti": 23, "ident": [23, 37], "declar": [23, 34, 37, 38], "disambigu": 23, "show": 23, "caller": [23, 34, 35, 36, 37], "condit": [23, 34, 35, 36, 37], "could": [23, 34, 37], "forc": 23, "conflict": [23, 25, 35, 36], "produc": 23, "tree": [23, 35, 37], "root": [23, 35], "invert": 23, "children": 23, "how": [23, 26, 31, 33, 36, 37], "mani": [23, 26, 33, 34, 35, 36, 37, 39], "sort": [23, 37], "filter": [23, 37], "regular": 23, "express": [23, 34, 37], "loc": 23, "coreblock": [24, 29, 33], "go": [24, 26, 29, 36], "microarchitectur": 24, "focu": 24, "flexibl": [24, 30], "easili": [24, 37], "experi": 24, "doc": 24, "descript": [24, 25, 33, 37, 39], "overview": [24, 25, 26], "high": [24, 37, 40], "found": [24, 33], "version": [24, 33], "page": [24, 26, 33], "api": [24, 25], "kuznia": [24, 33], "rdzeni": [24, 33], "github": [24, 33], "io": [24, 33], "introduct": 25, "assumpt": [25, 26], "made": [25, 26, 34], "develop": [25, 37], "environ": 25, "up": [25, 32, 33, 37, 39], "script": [25, 33], "run_test": [25, 33], "py": [25, 33], "lint": 25, "sh": 25, "core_graph": 25, "build_doc": 25, "tprof": 25, "framework": [25, 31], "usag": 25, "convent": 25, "advanc": 25, "concept": 25, "special": [25, 37], "domain": [25, 29, 36], "nest": [25, 37], "schema": [25, 35, 37, 39], "structur": [25, 26, 31, 34, 35, 36, 37, 39], "proposit": [25, 26], "slot": [25, 37], "tabl": 25, "substitut": 25, "clean": 25, "extern": [25, 33, 34, 36], "problem": [25, 26], "checklist": 25, "verif": 25, "manual": [25, 34], "reproduct": 25, "benchmark": 25, "regress": 25, "map": [25, 26, 36, 37, 38, 39, 40], "summari": 25, "paper": 25, "old": 25, "softwar": [25, 37], "tlb": 25, "analysi": [25, 35], "strategi": 25, "igpu": 25, "specul": 25, "gpu": 25, "effici": 25, "journal": 26, "articl": 26, "look": [26, 37], "choic": 26, "primari": 26, "relat": [26, 36, 37, 39], "procedur": 26, "chosen": 26, "basi": 26, "improv": [26, 34], "pretti": 26, "1993": 26, "2001": 26, "much": [26, 37], "research": 26, "cpu": 26, "consid": [26, 34, 36, 37], "solv": 26, "instead": [26, 29, 34, 35, 36, 37, 38, 40], "try": [26, 29, 34], "due": [26, 36, 37], "characterist": 26, "easi": [26, 29, 34, 37], "our": [26, 30, 33], "decid": [26, 30, 34], "what": 26, "peopl": 26, "probabl": [26, 38], "lot": 26, "worth": 26, "walker": 26, "cragon": 26, "concurr": [26, 36], "ieee": 26, "vol": 26, "june": 26, "1995": 26, "moudgil": 26, "vassiliadi": 26, "micro": 26, "pp": 26, "58": 26, "67": 26, "februari": 26, "1996": 26, "These": [26, 33, 34], "survei": 26, "topic": 26, "cdc": 26, "6600": 26, "done": [26, 33, 34, 36, 37, 38], "jump": 26, "handler": [26, 38], "ibm360": 26, "stop": [26, 37], "crai": 26, "similar": [26, 33, 34, 37, 40], "here": [26, 31], "bigger": [26, 37], "torng": 26, "martin": 26, "dai": 26, "probe": 26, "idea": [26, 34], "author": 26, "window": 26, "iw": 26, "dispatch": [26, 30, 31, 32], "didn": 26, "context": [26, 35, 36, 37, 39], "copi": [26, 35], "restor": [26, 35], "restart": [26, 40], "few": 26, "big": 26, "overhead": 26, "origin": [26, 35, 37], "unfeas": 26, "becaus": [26, 34, 35, 36, 37], "job": 26, "addition": [26, 37], "But": 26, "mayb": [26, 34], "possibl": [26, 33, 34, 37, 39], "cooper": 26, "smaller": 26, "interest": 26, "propos": 26, "nrp": 26, "No": [26, 37], "itself": [26, 39], "don": [26, 29, 31, 34, 36], "wast": 26, "rememb": [26, 34, 35], "element": [26, 37], "left": [26, 34, 36, 37], "middl": [26, 30], "aamer": 26, "jaleel": 26, "bruce": 26, "jacob": 26, "cours": 26, "switch": [26, 31, 34, 36, 37, 40], "penalti": 26, "alpha": 26, "mip": 26, "concentr": 26, "properti": [26, 33, 36], "short": 26, "inlin": 26, "observ": [26, 37], "import": [26, 34], "enough": 26, "live": 26, "known": 26, "fly": 26, "swap": 26, "nop": 26, "reexecut": 26, "privileg": 26, "contrast": 26, "tendenc": 26, "longer": 26, "hard": [26, 37], "risk": [26, 34, 37], "linux": [26, 33], "purpos": [26, 36, 37], "addit": [26, 33, 34, 39], "hw": 26, "bore": 26, "treat": [26, 30], "mansur": 26, "samadzadeh": 26, "loai": 26, "garalnabi": 26, "checkpoint": 26, "repair": 26, "histori": 26, "futur": [26, 30, 31], "jaikrishnan": 26, "menon": 26, "marc": 26, "de": 26, "kruijf": 26, "karthikeyan": 26, "sankaralingam": 26, "2012": 26, "low": 26, "boundari": 26, "safe": [26, 34, 39], "rewritten": 26, "recompil": 26, "runtim": [26, 35], "subregion": 26, "small": 26, "overrid": 26, "barrier": 26, "warp": 26, "wrong": 26, "split": [26, 30, 37, 38], "prevent": 26, "ivan": 26, "tanas": 26, "isaac": 26, "gelado": 26, "jorda": 26, "eduard": 26, "ayguad": 26, "nacho": 26, "navarro": 26, "2017": 26, "analys": 26, "problemat": 26, "successfulli": 26, "kill": 26, "modif": 26, "usual": [26, 34, 37], "fail": [26, 37], "repli": 26, "modifi": [26, 37], "claim": 26, "operand": [26, 31, 32], "replai": 26, "queue": [26, 34, 37], "marker": 26, "jerom": 26, "hampton": 26, "2008": 26, "mention": 26, "alli": 26, "bailei": 26, "ab04": 26, "ag": 26, "rais": [26, 35, 37, 38, 39], "younger": 26, "repeat": 26, "commun": [26, 31, 34], "canon": 26, "eventu": 26, "aren": [26, 34, 37], "someth": [29, 34, 40], "puzzl": 29, "why": 29, "through": [29, 37], "sure": [29, 38], "yield": [29, 38], "notabl": 29, "settl": 29, "unexpect": 29, "ad": [29, 34, 36, 37, 38, 39, 40], "right": [29, 34, 36], "eq": [29, 34, 36], "record": [29, 34, 36, 37, 38, 39, 40], "statement": [29, 34, 36, 38, 39], "loop": [29, 34], "especi": 29, "simul": [29, 33, 35, 37, 38], "hang": 29, "spot": 29, "yourself": [29, 34], "fix": 29, "mistak": 29, "Its": [30, 34], "task": [30, 36], "rss": 30, "phase": 30, "choos": [30, 33], "potenti": 30, "merg": [30, 37], "optim": 30, "todo": 30, "want": [31, 33, 36, 38, 40], "feel": 31, "anyth": 31, "id_out": [31, 32], "id_rob": [31, 32], "id_rs1": [31, 32], "val_rs1": [31, 32], "id_rs2": [31, 32], "val_rs2": [31, 32], "fill": 31, "id_rsx": 31, "val_rsx": 31, "releas": 31, "comparison": 31, "null": [31, 32], "woken": 32, "invalid": [32, 37], "src1": [32, 37], "src2": [32, 37], "inst_readi": 32, "sever": [33, 37], "besid": 33, "synthesis": 33, "ecp5": 33, "fpga": [33, 37], "target": [33, 37], "realiti": 33, "cocotb": 33, "assembl": 33, "deliv": 33, "histor": 33, "dedic": [33, 37], "subpag": 33, "built": 33, "docker": 33, "publicli": 33, "subsect": 33, "recreat": 33, "command": [33, 38], "platform": [33, 34, 35], "amd64": 33, "synth": 33, "latest": [33, 37], "amaranthsynthecp5": 33, "dockerfil": 33, "complex": [33, 37], "although": 33, "educ": 33, "practic": 33, "frequenc": 33, "too": [33, 35], "met": [33, 36], "whether": [33, 36, 40], "cell": 33, "ram": 33, "dff": 33, "repo": 33, "sudo": 33, "pull": 33, "ghcr": 33, "rm": 33, "git": 33, "clone": 33, "http": 33, "com": 33, "cd": 33, "apt": 33, "upgrad": 33, "pythonhashse": 33, "config": 33, "parse_benchmark_info": 33, "cat": 33, "abov": [33, 34], "verilog": [33, 39], "yosi": 33, "nextpnr": 33, "bitstream": 33, "strength": 33, "modular": [33, 34], "littl": 33, "effort": 33, "gate": 33, "rout": 33, "prjtrelli": 33, "measur": [33, 37], "theori": 33, "increas": [33, 34, 37], "fmax": 33, "avoid": [33, 34], "pitfal": 33, "affect": 33, "throughput": [33, 37], "monitor": 33, "accuraci": 33, "embench": 33, "compil": [33, 34, 38], "gnu": 33, "toolchain": 33, "glibc": 33, "subset": 33, "exact": [33, 35], "onc": [33, 34, 36, 37, 40], "veril": 33, "featur": [33, 34], "stub": 33, "compat": [33, 37], "host": 33, "init": [33, 37], "mount": 33, "subdirectori": 33, "share": 33, "surviv": 33, "close": 33, "exit": 33, "gen_verilog": 33, "run_benchmark": 33, "inspir": 34, "bluespec": 34, "wiki": 34, "entrieti": 34, "doe": [34, 38, 40], "link": 34, "indirectli": [34, 36], "coordin": 34, "direct": [34, 35, 36, 37], "back": 34, "simplest": 34, "myth": 34, "def": [34, 36], "elabor": 34, "self": [34, 36, 38], "comb": [34, 36], "sig1": 34, "expr1": 34, "sync": [34, 36], "sig2": 34, "expr2": 34, "arg_expr": 34, "analog": 34, "typic": [34, 36, 37], "myotherth": 34, "my_method": 34, "input_layout": 34, "output_layout": 34, "def_method": [34, 36], "_": [34, 36], "other_method": 34, "ret_expr": 34, "techniqu": 34, "conveni": [34, 36, 37], "syntax": [34, 36], "particular": 34, "unnam": 34, "around": 34, "sometim": 34, "might": [34, 35, 37], "altern": [34, 36, 37], "best": 34, "ask": 34, "thing": [34, 37, 39], "doubt": 34, "noth": 34, "Such": [34, 38], "adaptertran": [34, 37], "though": 34, "cleaner": 34, "suppos": 34, "foo": [34, 37], "bar": [34, 37], "cleanest": 34, "recommend": 34, "foo_expr": 34, "bar_expr": 34, "final": 34, "rec": 34, "layout2": 34, "foobar": 34, "baz": 34, "42": 34, "method2": [34, 37], "baz_expr": 34, "method3": 34, "expr": 34, "mechan": [34, 37], "certain": 34, "occas": 34, "facilit": 34, "ones": 34, "connecttran": [34, 37], "plain": [34, 36, 37], "testbench": [34, 37], "own": [34, 35, 36], "variant": 34, "role": 34, "omit": [34, 36, 37], "unneed": 34, "av_comb": [34, 36], "top_comb": [34, 36], "avoidedif": [34, 36], "guard": [34, 36, 37], "therefor": 34, "induc": 34, "often": 34, "belong": [34, 37], "move": [34, 37], "top": [34, 39], "caveat": 34, "normal": [34, 37], "cannot": [34, 36, 37, 38], "schedule_befor": [34, 36], "first_t_or_m": 34, "other_t_or_m": 34, "lift": 34, "first_m": 34, "other_t": 34, "situat": [34, 36], "mutual": [34, 36, 37], "exclus": [34, 36, 37], "similarli": [34, 37], "add_conflict": [34, 36], "undefin": [34, 36], "other_m": 34, "come": 34, "consider": 34, "parent": 34, "convers": 34, "impli": 34, "amaranth_ext": [35, 39], "extract": 35, "IN": 35, "inout": 35, "owner": 35, "ownershipgraph": 35, "dump": 35, "liter": [35, 40], "dump_dot": 35, "indent": [35, 37, 39], "dump_elk": 35, "dump_mermaid": 35, "get_hier_nam": 35, "obj": 35, "hierarch": 35, "keyerror": [35, 37, 39], "yet": 35, "get_nam": 35, "insert_edg": 35, "fr": 35, "insert_nod": 35, "mermaid_direct": 35, "empti": [35, 37], "subgraph": 35, "remember_field": 35, "owner_id": 35, "methodsampl": 35, "transactions_and_method": 35, "profileinfo": 35, "cycleprofil": 35, "analyze_method": 35, "runstatnod": 35, "analyze_transact": 35, "file_nam": [35, 39], "from_dict": [35, 37, 39], "kv": [35, 37, 39], "union": [35, 36, 37, 38, 39], "infer_miss": [35, 37, 39], "from_json": [35, 37, 39], "bytearrai": [35, 37, 39], "parse_float": [35, 37, 39], "parse_int": [35, 37, 39], "parse_const": [35, 37, 39], "kw": [35, 37, 39], "exclud": [35, 37, 39], "load_onli": [35, 37, 39], "dump_onli": [35, 37, 39], "schemaf": [35, 37, 39], "to_dict": [35, 37, 39], "encode_json": [35, 37, 39], "to_json": [35, 37, 39], "skipkei": [35, 37, 39], "ensure_ascii": [35, 37, 39], "check_circular": [35, 37, 39], "allow_nan": [35, 37, 39], "callabl": [35, 36, 37, 38, 39], "sort_kei": [35, 37, 39], "profiledata": [35, 39], "individu": 35, "method_par": 35, "transactions_by_method": 35, "transaction_conflict": 35, "transaction_manag": [35, 36, 38], "transactionmanag": [35, 36, 38], "src_loc": [35, 36, 37, 39], "srcloc": [35, 36, 37], "is_transact": 35, "profilesampl": 35, "transactionsampl": 35, "runstat": 35, "statist": 35, "did": 35, "info": [35, 37], "summar": 35, "stat": 35, "runnabl": [35, 36], "tracingenabl": 35, "tracingfrag": 35, "fragment": [35, 36], "lose": 35, "difficult": 35, "copyright": 35, "subfrag": 35, "_ir": [35, 39], "tracingfragmenttransform": 35, "fragmenttransform": 35, "on_frag": 35, "tracinginst": 35, "transactionmanagerkei": 36, "simplekei": [36, 37, 39], "care": [36, 37], "never": 36, "cc_schedul": 36, "methodmap": [36, 37], "_dsl": 36, "eager_deterministic_cc_schedul": 36, "add_transact": 36, "_rec": [36, 37, 38, 39, 40], "signalbundl": [36, 37, 38, 39, 40], "print_info": 36, "cgr": 36, "porder": 36, "cc": 36, "method_map": 36, "visual_graph": 36, "transactionmodul": 36, "wrapper": [36, 37], "dependency_manag": [36, 38], "wrap": [36, 38], "dependencycontext": [36, 39], "transactionbas": 36, "serv": [36, 37], "simultena": 36, "rest": 36, "behavior": [36, 37, 39], "combination": 36, "data_out": [36, 37], "data_in": [36, 37], "methodstruct": [36, 37], "shape": [36, 39], "shapecast": [36, 39], "forwardref": [36, 38, 39], "shapelik": [36, 37, 39], "layoutlist": [36, 37, 39], "nonexclus": 36, "single_cal": [36, 37], "variabl": [36, 40], "happen": 36, "thrown": 36, "stack": [36, 37, 39], "frame": [36, 37], "deep": [36, 37], "const": [36, 37], "d1": [36, 37], "d0": 36, "validate_argu": 36, "combinationi": 36, "valuelik": [36, 37], "my_sum_method": 36, "arg1": 36, "arg2": 36, "sum": [36, 37], "layout_in": 36, "layout_out": 36, "construct": [36, 37], "blueprint": 36, "freshli": 36, "proxi": 36, "gr": 36, "transactiongraph": 36, "transactiongraphcc": 36, "priorityord": 36, "eager": 36, "subsystem": [36, 40], "fair": 36, "lowest": 36, "highest": [36, 40], "arbitr": [36, 40], "agent": [36, 40], "vertic": 36, "edg": [36, 37], "linear": 36, "consist": 36, "constraint": 36, "trivial_roundrobin_cc_schedul": 36, "mainli": 36, "decor": [36, 38], "eleg": 36, "dictionari": 36, "whose": 36, "modulelik": [36, 37, 40], "amount": [36, 38], "useless": 36, "multplex": 36, "unguard": 36, "synchron": [36, 37], "cond": [36, 37], "pattern": 36, "elif": 36, "fsm": 36, "ctrl_path": 36, "noreturn": 36, "regularli": 36, "explicit": 36, "implicit": 36, "aris": 36, "pair": [36, 37], "transactioncontext": 36, "priorit": 36, "reason": [36, 37], "transactionormethodbound": 36, "ctrlpath": 36, "def_count": 36, "classvar": 36, "def_ord": 36, "independent_list": 36, "method_cal": 36, "defaultdict": 36, "method_us": 36, "owned_nam": 36, "peek": 36, "relationbas": 36, "simultaneous_altern": 36, "simultaneous_list": 36, "adapterbas": [37, 38], "mock": [37, 38], "en": [37, 38], "clickin": 37, "click": 37, "interact": 37, "rise": 37, "btn": 37, "dat": 37, "retriev": 37, "clickout": 37, "led": 37, "flow": 37, "revers": 37, "possibli": 37, "rev_layout": 37, "vice": 37, "versa": 37, "method1": 37, "respect": 37, "fulfil": 37, "fifo_typ": 37, "syncfifo": 37, "fifotyp": 37, "conform": 37, "equival": 37, "put_result": 37, "stableselectingnetwork": 37, "network": 37, "consecut": 37, "preserv": 37, "divid": 37, "conquer": 37, "properli": 37, "v1": 37, "v2": 37, "now": [37, 38], "thu": 37, "log_2": 37, "dependencykei": [37, 39], "concret": [37, 39], "frozen": [37, 39], "lock_on_get": [37, 39], "get_depend": [37, 39], "empty_valid": [37, 39], "add_depend": [37, 39], "give": [37, 39], "track": [37, 39], "across": [37, 39], "multpl": [37, 39], "dependeci": [37, 39], "default_valu": [37, 39], "unifi": 37, "wish": 37, "custom": 37, "basicfifo": 37, "reiniti": 37, "semaphor": 37, "max_count": 37, "hardwarelogg": 37, "intuit": 37, "logger": 37, "anywher": 37, "natur": 37, "shall": 37, "evalu": [37, 38], "arbitrari": 37, "exactli": 37, "organ": 37, "namespac": 37, "hierarchi": 37, "period": 37, "bpu": 37, "There": 37, "bug": 37, "otherwis": [37, 40], "detect": 37, "termin": 37, "turn": 37, "warn": 37, "board": 37, "semant": 37, "server": 37, "pep": 37, "3101": 37, "logkei": 37, "logrecord": 37, "logrecordinfo": [37, 39], "event": 37, "logger_nam": [37, 39], "format_str": [37, 39], "agnost": 37, "outsid": 37, "loglevel": 37, "templat": 37, "get_log_record": 37, "namespace_regexp": [37, 38], "minimum": 37, "regexp": 37, "get_trigger_bit": 37, "hardwaremetricsmanag": 37, "compos": 37, "get_metr": 37, "hwmetric": 37, "get_register_valu": 37, "metric_nam": 37, "reg_nam": 37, "qualifi": 37, "histogram": 37, "bucket": 37, "hwcounter": 37, "fully_qualified_nam": 37, "width_bit": 37, "human": 37, "incr": 37, "hwexphistogram": 37, "exponenti": 37, "distribut": 37, "sampl": 37, "durat": 37, "inf": 37, "bucket_count": 37, "sample_width": 37, "registers_width": 37, "max_valu": 37, "abl": 37, "metricmodel": 37, "add_regist": 37, "reg": [37, 39], "hwmetricregist": 37, "inherit": 37, "metrics_en": 37, "hwmetricsenabledkei": 37, "theirs": 37, "latencymeasur": 37, "slots_numb": 37, "max_lat": 37, "oldest": 37, "compris": 37, "join": 37, "metricregistermodel": 37, "fundament": 37, "singular": 37, "among": 37, "reman": 37, "brief": 37, "argumentstoresultszipp": 37, "zip": 37, "cut": 37, "critic": 37, "calle": 37, "asymmetri": 37, "correctli": 37, "rate": 37, "reach": [37, 40], "capac": 37, "topologi": 37, "write_arg": 37, "args_layout": 37, "write_result": 37, "results_layout": 37, "client": 37, "somethig": 37, "deseri": 37, "proper": 37, "serialize_in": 37, "serialized_req_method": 37, "serialize_out": 37, "serialized_resp_method": 37, "port_count": 37, "len": 37, "resist": 37, "nonblock": 37, "overlap": 37, "boolean": 37, "catch": 37, "influenc": 37, "cond1": 37, "cond2": 37, "memorybank": 37, "read_req": 37, "read_resp": 37, "elem_count": 37, "safe_writ": 37, "optimis": 37, "eg": 37, "x": [37, 39], "later": 37, "cattran": 37, "concaten": 37, "third": 37, "dst": 37, "collector": 37, "method_list": 37, "connectandmaptran": 37, "behav": 37, "i_fun": 37, "recorddict": 37, "o_fun": 37, "methodfilt": 37, "desir": 37, "use_condit": 37, "drawback": 37, "simultaneu": 37, "bidirect": 37, "i_transform": 37, "o_transform": 37, "unmodifi": 37, "methodproduct": 37, "methodtryproduct": 37, "tri": 37, "succeed": 37, "get_output": 38, "coreblockscommand": 38, "recordintdict": 38, "set_input": 38, "recordvaluedict": 38, "write_vcd_ext": 38, "engin": 38, "vcd_file": 38, "gtkw_file": 38, "pysimsimul": 38, "max_cycl": 38, "100000": 38, "add_transaction_modul": 38, "traces_fil": 38, "clk_period": 38, "1e": 38, "add_sync_process": 38, "add_process": 38, "passiv": 38, "add_clock": 38, "simpletestcircuit": 38, "_t_haselabor": 38, "dut": 38, "syncprocesswrapp": 38, "testcasewithsimul": 38, "testcas": 38, "valueerror": [38, 39], "add_all_mock": 38, "sim": 38, "frame_loc": 38, "add_class_mock": 38, "add_local_mock": 38, "random_wait": 38, "max_cycle_cnt": 38, "min_cycle_cnt": 38, "random_wait_geom": 38, "prob": 38, "till": 38, "run_simul": 38, "tick": 38, "cycle_cnt": 38, "guard_nested_collect": 38, "_t_nested_collect": 38, "make_logging_process": 38, "on_error": 38, "parse_logging_level": 38, "pars": 38, "neg": [38, 39], "represent": [38, 39, 40], "predefin": 38, "profiler_process": 38, "def_method_mock": 38, "tb_getter": 38, "sched_prio": 38, "method_handle_loop": 38, "invoc": 38, "defer": 38, "sinc": 38, "eagerli": 38, "kwdata": 38, "call_do": 38, "call_init": 38, "call_result": 38, "call_tri": 38, "method_argu": 38, "method_handl": 38, "extra_settle_count": 38, "method_return": 38, "set_en": 38, "wait_until_don": 38, "assigntyp": 39, "rh": 39, "lh": 39, "assignarg": 39, "assignfield": 39, "lhs_strict": 39, "rhs_strict": 39, "mismatch": 39, "accord": 39, "explicitli": 39, "castabl": 39, "subfield": 39, "align_down_to_power_of_two": 39, "num": 39, "align_to_power_of_two": 39, "average_dict_of_list": 39, "bits_from_int": 39, "int_to_sign": 39, "convert": 39, "u2": 39, "sign": 39, "layout_subset": 39, "make_hash": 39, "negat": 39, "signed_to_int": 39, "auto_debug_sign": 39, "arrai": 39, "cl": 39, "generatedlog": 39, "trigger_loc": 39, "signalhandl": 39, "fields_loc": 39, "generationinfo": 39, "variou": 39, "metrics_loc": 39, "metricinfo": 39, "metadata": 39, "metricloc": 39, "transaction_signals_loc": 39, "transactionsignalsloc": 39, "method_signals_loc": 39, "methodsignalsloc": 39, "profile_data": 39, "generate_verilog": 39, "top_modul": 39, "top_nam": 39, "idgener": 39, "def_help": 39, "func": 39, "from_method_layout": 39, "get_caller_class_nam": 39, "get_src_loc": 39, "method_def_help": 39, "mock_def_help": 39, "tb": 39, "silence_mustus": 39, "moduleconnector": 40, "anonym": 40, "onehotswitch": 40, "style": 40, "benefit": 40, "sig": 40, "onehotcas": 40, "0b01": 40, "0b10": 40, "onehotswitchdynam": 40, "signifi": 40, "roundrobin": 40, "greater": 40, "enableinsert": 40, "count_leading_zero": 40, "count_trailing_zero": 40, "flatten_sign": 40, "flatten": 40, "mod_incr": 40, "mod": 40, "popcount": 40}, "objects": {"": [[4, 0, 0, "-", "coreblocks"], [35, 0, 0, "-", "transactron"]], "coreblocks": [[5, 0, 0, "-", "backend"], [6, 0, 0, "-", "cache"], [4, 0, 0, "-", "core"], [7, 0, 0, "-", "core_structs"], [8, 0, 0, "-", "frontend"], [11, 0, 0, "-", "func_blocks"], [16, 0, 0, "-", "params"], [17, 0, 0, "-", "peripherals"], [18, 0, 0, "-", "priv"], [21, 0, 0, "-", "scheduler"]], "coreblocks.backend": [[5, 0, 0, "-", "annoucement"], [5, 0, 0, "-", "retirement"]], "coreblocks.backend.annoucement": [[5, 1, 1, "", "ResultAnnouncement"]], "coreblocks.backend.annoucement.ResultAnnouncement": [[5, 2, 1, "", "__init__"], [5, 2, 1, "", "debug_signals"]], "coreblocks.backend.retirement": [[5, 1, 1, "", "Retirement"]], "coreblocks.backend.retirement.Retirement": [[5, 2, 1, "", "__init__"]], "coreblocks.cache": [[6, 0, 0, "-", "icache"], [6, 0, 0, "-", "iface"], [6, 0, 0, "-", "refiller"]], "coreblocks.cache.icache": [[6, 1, 1, "", "ICache"], [6, 1, 1, "", "ICacheBypass"]], "coreblocks.cache.icache.ICache": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "deserialize_addr"], [6, 2, 1, "", "serialize_addr"]], "coreblocks.cache.icache.ICacheBypass": [[6, 2, 1, "", "__init__"]], "coreblocks.cache.iface": [[6, 1, 1, "", "CacheInterface"], [6, 1, 1, "", "CacheRefillerInterface"]], "coreblocks.cache.iface.CacheInterface": [[6, 3, 1, "", "accept_res"], [6, 3, 1, "", "flush"], [6, 3, 1, "", "issue_req"]], "coreblocks.cache.iface.CacheRefillerInterface": [[6, 3, 1, "", "accept_refill"], [6, 3, 1, "", "start_refill"]], "coreblocks.cache.refiller": [[6, 1, 1, "", "SimpleCommonBusCacheRefiller"]], "coreblocks.cache.refiller.SimpleCommonBusCacheRefiller": [[6, 2, 1, "", "__init__"]], "coreblocks.core": [[4, 1, 1, "", "Core"]], "coreblocks.core.Core": [[4, 2, 1, "", "__init__"]], "coreblocks.core_structs": [[7, 0, 0, "-", "rat"], [7, 0, 0, "-", "rf"], [7, 0, 0, "-", "rob"]], "coreblocks.core_structs.rat": [[7, 1, 1, "", "FRAT"], [7, 1, 1, "", "RRAT"]], "coreblocks.core_structs.rat.FRAT": [[7, 2, 1, "", "__init__"]], "coreblocks.core_structs.rat.RRAT": [[7, 2, 1, "", "__init__"]], "coreblocks.core_structs.rf": [[7, 1, 1, "", "RegisterFile"]], "coreblocks.core_structs.rf.RegisterFile": [[7, 2, 1, "", "__init__"]], "coreblocks.core_structs.rob": [[7, 1, 1, "", "ReorderBuffer"]], "coreblocks.core_structs.rob.ReorderBuffer": [[7, 2, 1, "", "__init__"]], "coreblocks.frontend": [[9, 0, 0, "-", "decoder"], [10, 0, 0, "-", "fetch"]], "coreblocks.frontend.decoder": [[9, 0, 0, "-", "decode_stage"], [9, 0, 0, "-", "instr_decoder"], [9, 0, 0, "-", "instr_description"], [9, 0, 0, "-", "isa"], [9, 0, 0, "-", "optypes"], [9, 0, 0, "-", "rvc"]], "coreblocks.frontend.decoder.decode_stage": [[9, 1, 1, "", "DecodeStage"]], "coreblocks.frontend.decoder.decode_stage.DecodeStage": [[9, 2, 1, "", "__init__"]], "coreblocks.frontend.decoder.instr_decoder": [[9, 1, 1, "", "InstrDecoder"]], "coreblocks.frontend.decoder.instr_decoder.InstrDecoder": [[9, 2, 1, "", "__init__"]], "coreblocks.frontend.decoder.instr_description": [[9, 1, 1, "", "Encoding"]], "coreblocks.frontend.decoder.instr_description.Encoding": [[9, 2, 1, "", "__init__"], [9, 3, 1, "", "funct12"], [9, 3, 1, "", "funct3"], [9, 3, 1, "", "funct7"], [9, 3, 1, "", "instr_type_override"], [9, 3, 1, "", "opcode"], [9, 3, 1, "", "rd_zero"], [9, 3, 1, "", "rs1_zero"]], "coreblocks.frontend.decoder.isa": [[9, 1, 1, "", "ExceptionCause"], [9, 1, 1, "", "FenceFm"], [9, 1, 1, "", "FenceTarget"], [9, 1, 1, "", "Funct12"], [9, 1, 1, "", "Funct3"], [9, 1, 1, "", "Funct7"], [9, 1, 1, "", "InstrType"], [9, 1, 1, "", "Opcode"], [9, 1, 1, "", "Registers"]], "coreblocks.frontend.decoder.isa.ExceptionCause": [[9, 3, 1, "", "BREAKPOINT"], [9, 3, 1, "", "ENVIRONMENT_CALL_FROM_M"], [9, 3, 1, "", "ENVIRONMENT_CALL_FROM_S"], [9, 3, 1, "", "ENVIRONMENT_CALL_FROM_U"], [9, 3, 1, "", "ILLEGAL_INSTRUCTION"], [9, 3, 1, "", "INSTRUCTION_ACCESS_FAULT"], [9, 3, 1, "", "INSTRUCTION_ADDRESS_MISALIGNED"], [9, 3, 1, "", "INSTRUCTION_PAGE_FAULT"], [9, 3, 1, "", "LOAD_ACCESS_FAULT"], [9, 3, 1, "", "LOAD_ADDRESS_MISALIGNED"], [9, 3, 1, "", "LOAD_PAGE_FAULT"], [9, 3, 1, "", "STORE_ACCESS_FAULT"], [9, 3, 1, "", "STORE_ADDRESS_MISALIGNED"], [9, 3, 1, "", "STORE_PAGE_FAULT"], [9, 2, 1, "", "__new__"]], "coreblocks.frontend.decoder.isa.FenceFm": [[9, 3, 1, "", "NONE"], [9, 3, 1, "", "TSO"], [9, 2, 1, "", "__new__"]], "coreblocks.frontend.decoder.isa.FenceTarget": [[9, 3, 1, "", "DEV_I"], [9, 3, 1, "", "DEV_O"], [9, 3, 1, "", "MEM_R"], [9, 3, 1, "", "MEM_W"], [9, 2, 1, "", "__new__"]], "coreblocks.frontend.decoder.isa.Funct12": [[9, 3, 1, "", "CLZ"], [9, 3, 1, "", "CPOP"], [9, 3, 1, "", "CTZ"], [9, 3, 1, "", "EBREAK"], [9, 3, 1, "", "ECALL"], [9, 3, 1, "", "MRET"], [9, 3, 1, "", "ORCB"], [9, 3, 1, "", "REV8_32"], [9, 3, 1, "", "REV8_64"], [9, 3, 1, "", "SEXTB"], [9, 3, 1, "", "SEXTH"], [9, 3, 1, "", "SRET"], [9, 3, 1, "", "WFI"], [9, 3, 1, "", "ZEXTH"], [9, 2, 1, "", "__new__"]], "coreblocks.frontend.decoder.isa.Funct3": [[9, 3, 1, "", "ADD"], [9, 3, 1, "", "AND"], [9, 3, 1, "", "ANDN"], [9, 3, 1, "", "B"], [9, 3, 1, "", "BCLR"], [9, 3, 1, "", "BEQ"], [9, 3, 1, "", "BEXT"], [9, 3, 1, "", "BGE"], [9, 3, 1, "", "BGEU"], [9, 3, 1, "", "BINV"], [9, 3, 1, "", "BLT"], [9, 3, 1, "", "BLTU"], [9, 3, 1, "", "BNE"], [9, 3, 1, "", "BSET"], [9, 3, 1, "", "BU"], [9, 3, 1, "", "CLMUL"], [9, 3, 1, "", "CLMULH"], [9, 3, 1, "", "CLMULR"], [9, 3, 1, "", "CLZ"], [9, 3, 1, "", "CPOP"], [9, 3, 1, "", "CSRRC"], [9, 3, 1, "", "CSRRCI"], [9, 3, 1, "", "CSRRS"], [9, 3, 1, "", "CSRRSI"], [9, 3, 1, "", "CSRRW"], [9, 3, 1, "", "CSRRWI"], [9, 3, 1, "", "CTZ"], [9, 3, 1, "", "D"], [9, 3, 1, "", "DIV"], [9, 3, 1, "", "DIVU"], [9, 3, 1, "", "DIVUW"], [9, 3, 1, "", "DIVW"], [9, 3, 1, "", "FENCE"], [9, 3, 1, "", "FENCEI"], [9, 3, 1, "", "H"], [9, 3, 1, "", "HU"], [9, 3, 1, "", "JALR"], [9, 3, 1, "", "MAX"], [9, 3, 1, "", "MAXU"], [9, 3, 1, "", "MIN"], [9, 3, 1, "", "MINU"], [9, 3, 1, "", "MUL"], [9, 3, 1, "", "MULH"], [9, 3, 1, "", "MULHSU"], [9, 3, 1, "", "MULHU"], [9, 3, 1, "", "MULW"], [9, 3, 1, "", "OR"], [9, 3, 1, "", "ORCB"], [9, 3, 1, "", "ORN"], [9, 3, 1, "", "PRIV"], [9, 3, 1, "", "REM"], [9, 3, 1, "", "REMU"], [9, 3, 1, "", "REMUW"], [9, 3, 1, "", "REMW"], [9, 3, 1, "", "REV8"], [9, 3, 1, "", "ROL"], [9, 3, 1, "", "ROR"], [9, 3, 1, "", "SEXTB"], [9, 3, 1, "", "SEXTH"], [9, 3, 1, "", "SH1ADD"], [9, 3, 1, "", "SH2ADD"], [9, 3, 1, "", "SH3ADD"], [9, 3, 1, "", "SLL"], [9, 3, 1, "", "SLT"], [9, 3, 1, "", "SLTU"], [9, 3, 1, "", "SR"], [9, 3, 1, "", "SUB"], [9, 3, 1, "", "W"], [9, 3, 1, "", "XNOR"], [9, 3, 1, "", "XOR"], [9, 3, 1, "", "ZEXTH"], [9, 2, 1, "", "__new__"]], "coreblocks.frontend.decoder.isa.Funct7": [[9, 3, 1, "", "ADD"], [9, 3, 1, "", "AND"], [9, 3, 1, "", "ANDN"], [9, 3, 1, "", "BCLR"], [9, 3, 1, "", "BEXT"], [9, 3, 1, "", "BINV"], [9, 3, 1, "", "BSET"], [9, 3, 1, "", "CLMUL"], [9, 3, 1, "", "CLZ"], [9, 3, 1, "", "CPOP"], [9, 3, 1, "", "CTZ"], [9, 3, 1, "", "MAX"], [9, 3, 1, "", "MIN"], [9, 3, 1, "", "MULDIV"], [9, 3, 1, "", "OR"], [9, 3, 1, "", "ORCB"], [9, 3, 1, "", "ORN"], [9, 3, 1, "", "REV8"], [9, 3, 1, "", "ROL"], [9, 3, 1, "", "ROR"], [9, 3, 1, "", "SA"], [9, 3, 1, "", "SEXTB"], [9, 3, 1, "", "SEXTH"], [9, 3, 1, "", "SFENCEVMA"], [9, 3, 1, "", "SH1ADD"], [9, 3, 1, "", "SH2ADD"], [9, 3, 1, "", "SH3ADD"], [9, 3, 1, "", "SL"], [9, 3, 1, "", "SLT"], [9, 3, 1, "", "SUB"], [9, 3, 1, "", "XNOR"], [9, 3, 1, "", "XOR"], [9, 3, 1, "", "ZEXTH"], [9, 2, 1, "", "__new__"]], "coreblocks.frontend.decoder.isa.InstrType": [[9, 3, 1, "", "B"], [9, 3, 1, "", "I"], [9, 3, 1, "", "J"], [9, 3, 1, "", "R"], [9, 3, 1, "", "S"], [9, 3, 1, "", "U"]], "coreblocks.frontend.decoder.isa.Opcode": [[9, 3, 1, "", "AUIPC"], [9, 3, 1, "", "BRANCH"], [9, 3, 1, "", "JAL"], [9, 3, 1, "", "JALR"], [9, 3, 1, "", "LOAD"], [9, 3, 1, "", "LOAD_FP"], [9, 3, 1, "", "LUI"], [9, 3, 1, "", "MISC_MEM"], [9, 3, 1, "", "OP"], [9, 3, 1, "", "OP32"], [9, 3, 1, "", "OP_IMM"], [9, 3, 1, "", "OP_IMM_32"], [9, 3, 1, "", "STORE"], [9, 3, 1, "", "STORE_FP"], [9, 3, 1, "", "SYSTEM"], [9, 2, 1, "", "__new__"]], "coreblocks.frontend.decoder.isa.Registers": [[9, 3, 1, "", "A0"], [9, 3, 1, "", "A1"], [9, 3, 1, "", "A2"], [9, 3, 1, "", "A3"], [9, 3, 1, "", "A4"], [9, 3, 1, "", "A5"], [9, 3, 1, "", "A6"], [9, 3, 1, "", "A7"], [9, 3, 1, "", "FP"], [9, 3, 1, "", "GP"], [9, 3, 1, "", "RA"], [9, 3, 1, "", "S0"], [9, 3, 1, "", "S1"], [9, 3, 1, "", "S10"], [9, 3, 1, "", "S11"], [9, 3, 1, "", "S2"], [9, 3, 1, "", "S3"], [9, 3, 1, "", "S4"], [9, 3, 1, "", "S5"], [9, 3, 1, "", "S6"], [9, 3, 1, "", "S7"], [9, 3, 1, "", "S8"], [9, 3, 1, "", "S9"], [9, 3, 1, "", "SP"], [9, 3, 1, "", "T0"], [9, 3, 1, "", "T1"], [9, 3, 1, "", "T2"], [9, 3, 1, "", "T3"], [9, 3, 1, "", "T4"], [9, 3, 1, "", "T5"], [9, 3, 1, "", "T6"], [9, 3, 1, "", "TP"], [9, 3, 1, "", "X0"], [9, 3, 1, "", "X1"], [9, 3, 1, "", "X10"], [9, 3, 1, "", "X11"], [9, 3, 1, "", "X12"], [9, 3, 1, "", "X13"], [9, 3, 1, "", "X14"], [9, 3, 1, "", "X15"], [9, 3, 1, "", "X16"], [9, 3, 1, "", "X17"], [9, 3, 1, "", "X18"], [9, 3, 1, "", "X19"], [9, 3, 1, "", "X2"], [9, 3, 1, "", "X20"], [9, 3, 1, "", "X21"], [9, 3, 1, "", "X22"], [9, 3, 1, "", "X23"], [9, 3, 1, "", "X24"], [9, 3, 1, "", "X25"], [9, 3, 1, "", "X26"], [9, 3, 1, "", "X27"], [9, 3, 1, "", "X28"], [9, 3, 1, "", "X29"], [9, 3, 1, "", "X3"], [9, 3, 1, "", "X30"], [9, 3, 1, "", "X31"], [9, 3, 1, "", "X4"], [9, 3, 1, "", "X5"], [9, 3, 1, "", "X6"], [9, 3, 1, "", "X7"], [9, 3, 1, "", "X8"], [9, 3, 1, "", "X9"], [9, 3, 1, "", "ZERO"], [9, 2, 1, "", "__new__"]], "coreblocks.frontend.decoder.optypes": [[9, 1, 1, "", "OpType"], [9, 4, 1, "", "optypes_required_by_extensions"]], "coreblocks.frontend.decoder.optypes.OpType": [[9, 3, 1, "", "ADDRESS_GENERATION"], [9, 3, 1, "", "ARITHMETIC"], [9, 3, 1, "", "AUIPC"], [9, 3, 1, "", "BIT_MANIPULATION"], [9, 3, 1, "", "BIT_ROTATION"], [9, 3, 1, "", "BRANCH"], [9, 3, 1, "", "CLMUL"], [9, 3, 1, "", "COMPARE"], [9, 3, 1, "", "CSR_IMM"], [9, 3, 1, "", "CSR_REG"], [9, 3, 1, "", "DIV_REM"], [9, 3, 1, "", "EBREAK"], [9, 3, 1, "", "ECALL"], [9, 3, 1, "", "EXCEPTION"], [9, 3, 1, "", "FENCE"], [9, 3, 1, "", "FENCEI"], [9, 3, 1, "", "JAL"], [9, 3, 1, "", "JALR"], [9, 3, 1, "", "LOAD"], [9, 3, 1, "", "LOGIC"], [9, 3, 1, "", "MRET"], [9, 3, 1, "", "MUL"], [9, 3, 1, "", "SFENCEVMA"], [9, 3, 1, "", "SHIFT"], [9, 3, 1, "", "SINGLE_BIT_MANIPULATION"], [9, 3, 1, "", "SRET"], [9, 3, 1, "", "STORE"], [9, 3, 1, "", "UNARY_BIT_MANIPULATION_1"], [9, 3, 1, "", "UNARY_BIT_MANIPULATION_2"], [9, 3, 1, "", "UNARY_BIT_MANIPULATION_3"], [9, 3, 1, "", "UNARY_BIT_MANIPULATION_4"], [9, 3, 1, "", "UNARY_BIT_MANIPULATION_5"], [9, 3, 1, "", "UNKNOWN"], [9, 3, 1, "", "WFI"], [9, 2, 1, "", "__new__"]], "coreblocks.frontend.decoder.rvc": [[9, 1, 1, "", "InstrDecompress"], [9, 4, 1, "", "is_instr_compressed"]], "coreblocks.frontend.decoder.rvc.InstrDecompress": [[9, 2, 1, "", "__init__"], [9, 2, 1, "", "decompr_reg"], [9, 2, 1, "", "instr_mux"]], "coreblocks.frontend.fetch": [[10, 0, 0, "-", "fetch"]], "coreblocks.frontend.fetch.fetch": [[10, 1, 1, "", "Fetch"], [10, 1, 1, "", "UnalignedFetch"]], "coreblocks.frontend.fetch.fetch.Fetch": [[10, 2, 1, "", "__init__"]], "coreblocks.frontend.fetch.fetch.UnalignedFetch": [[10, 2, 1, "", "__init__"]], "coreblocks.func_blocks": [[12, 0, 0, "-", "fu"], [14, 0, 0, "-", "interface"], [15, 0, 0, "-", "lsu"]], "coreblocks.func_blocks.fu": [[12, 0, 0, "-", "alu"], [12, 0, 0, "-", "div_unit"], [12, 0, 0, "-", "exception"], [12, 0, 0, "-", "jumpbranch"], [12, 0, 0, "-", "mul_unit"], [12, 0, 0, "-", "priv"], [12, 0, 0, "-", "shift_unit"], [13, 0, 0, "-", "unsigned_multiplication"], [12, 0, 0, "-", "zbc"], [12, 0, 0, "-", "zbs"]], "coreblocks.func_blocks.fu.alu": [[12, 1, 1, "", "ALUComponent"], [12, 1, 1, "", "AluFuncUnit"]], "coreblocks.func_blocks.fu.alu.ALUComponent": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "get_module"], [12, 2, 1, "", "get_optypes"]], "coreblocks.func_blocks.fu.alu.AluFuncUnit": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.div_unit": [[12, 1, 1, "", "DivComponent"], [12, 1, 1, "", "DivFn"], [12, 1, 1, "", "DivUnit"], [12, 4, 1, "", "get_input"]], "coreblocks.func_blocks.fu.div_unit.DivComponent": [[12, 2, 1, "", "__init__"], [12, 3, 1, "", "div_fn"], [12, 2, 1, "", "get_module"], [12, 2, 1, "", "get_optypes"], [12, 3, 1, "", "ipc"]], "coreblocks.func_blocks.fu.div_unit.DivFn": [[12, 1, 1, "", "Fn"], [12, 2, 1, "", "get_instructions"]], "coreblocks.func_blocks.fu.div_unit.DivFn.Fn": [[12, 3, 1, "", "DIV"], [12, 3, 1, "", "DIVU"], [12, 3, 1, "", "REM"], [12, 3, 1, "", "REMU"], [12, 2, 1, "", "__new__"]], "coreblocks.func_blocks.fu.div_unit.DivUnit": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.exception": [[12, 1, 1, "", "ExceptionFuncUnit"], [12, 1, 1, "", "ExceptionUnitComponent"]], "coreblocks.func_blocks.fu.exception.ExceptionFuncUnit": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.exception.ExceptionUnitComponent": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "get_module"], [12, 2, 1, "", "get_optypes"]], "coreblocks.func_blocks.fu.jumpbranch": [[12, 1, 1, "", "JumpBranchFuncUnit"], [12, 1, 1, "", "JumpComponent"]], "coreblocks.func_blocks.fu.jumpbranch.JumpBranchFuncUnit": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.jumpbranch.JumpComponent": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "get_module"], [12, 2, 1, "", "get_optypes"]], "coreblocks.func_blocks.fu.mul_unit": [[12, 1, 1, "", "MulComponent"], [12, 1, 1, "", "MulFn"], [12, 1, 1, "", "MulType"], [12, 1, 1, "", "MulUnit"]], "coreblocks.func_blocks.fu.mul_unit.MulComponent": [[12, 2, 1, "", "__init__"], [12, 3, 1, "", "dsp_width"], [12, 2, 1, "", "get_module"], [12, 2, 1, "", "get_optypes"], [12, 3, 1, "", "mul_fn"], [12, 3, 1, "", "mul_unit_type"]], "coreblocks.func_blocks.fu.mul_unit.MulFn": [[12, 1, 1, "", "Fn"], [12, 2, 1, "", "get_instructions"]], "coreblocks.func_blocks.fu.mul_unit.MulFn.Fn": [[12, 3, 1, "", "MUL"], [12, 3, 1, "", "MULH"], [12, 3, 1, "", "MULHSU"], [12, 3, 1, "", "MULHU"], [12, 2, 1, "", "__new__"]], "coreblocks.func_blocks.fu.mul_unit.MulType": [[12, 3, 1, "", "RECURSIVE_MUL"], [12, 3, 1, "", "SEQUENCE_MUL"], [12, 3, 1, "", "SHIFT_MUL"], [12, 2, 1, "", "__new__"]], "coreblocks.func_blocks.fu.mul_unit.MulUnit": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.priv": [[12, 1, 1, "", "PrivilegedFn"], [12, 1, 1, "", "PrivilegedFuncUnit"], [12, 1, 1, "", "PrivilegedUnitComponent"]], "coreblocks.func_blocks.fu.priv.PrivilegedFn": [[12, 1, 1, "", "Fn"], [12, 2, 1, "", "get_instructions"]], "coreblocks.func_blocks.fu.priv.PrivilegedFn.Fn": [[12, 3, 1, "", "MRET"], [12, 2, 1, "", "__new__"]], "coreblocks.func_blocks.fu.priv.PrivilegedFuncUnit": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.priv.PrivilegedUnitComponent": [[12, 2, 1, "", "get_module"], [12, 2, 1, "", "get_optypes"]], "coreblocks.func_blocks.fu.shift_unit": [[12, 1, 1, "", "ShiftFuncUnit"], [12, 1, 1, "", "ShiftUnitComponent"]], "coreblocks.func_blocks.fu.shift_unit.ShiftFuncUnit": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.shift_unit.ShiftUnitComponent": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "get_module"], [12, 2, 1, "", "get_optypes"]], "coreblocks.func_blocks.fu.unsigned_multiplication": [[13, 0, 0, "-", "common"], [13, 0, 0, "-", "fast_recursive"], [13, 0, 0, "-", "sequence"], [13, 0, 0, "-", "shift"]], "coreblocks.func_blocks.fu.unsigned_multiplication.common": [[13, 1, 1, "", "DSPMulUnit"], [13, 1, 1, "", "MulBaseUnsigned"]], "coreblocks.func_blocks.fu.unsigned_multiplication.common.DSPMulUnit": [[13, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.unsigned_multiplication.common.MulBaseUnsigned": [[13, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.unsigned_multiplication.fast_recursive": [[13, 1, 1, "", "RecursiveUnsignedMul"]], "coreblocks.func_blocks.fu.unsigned_multiplication.fast_recursive.RecursiveUnsignedMul": [[13, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.unsigned_multiplication.sequence": [[13, 1, 1, "", "SequentialUnsignedMul"]], "coreblocks.func_blocks.fu.unsigned_multiplication.sequence.SequentialUnsignedMul": [[13, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.unsigned_multiplication.shift": [[13, 1, 1, "", "ShiftUnsignedMul"]], "coreblocks.func_blocks.fu.unsigned_multiplication.shift.ShiftUnsignedMul": [[13, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.zbc": [[12, 1, 1, "", "ClMultiplier"], [12, 1, 1, "", "ZbcComponent"], [12, 1, 1, "", "ZbcFn"], [12, 1, 1, "", "ZbcUnit"]], "coreblocks.func_blocks.fu.zbc.ClMultiplier": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "iterative_module"], [12, 2, 1, "", "recursive_module"]], "coreblocks.func_blocks.fu.zbc.ZbcComponent": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "get_module"], [12, 2, 1, "", "get_optypes"], [12, 3, 1, "", "recursion_depth"], [12, 3, 1, "", "zbc_fn"]], "coreblocks.func_blocks.fu.zbc.ZbcFn": [[12, 1, 1, "", "Fn"], [12, 2, 1, "", "get_instructions"]], "coreblocks.func_blocks.fu.zbc.ZbcFn.Fn": [[12, 3, 1, "", "CLMUL"], [12, 3, 1, "", "CLMULH"], [12, 3, 1, "", "CLMULR"], [12, 2, 1, "", "__new__"]], "coreblocks.func_blocks.fu.zbc.ZbcUnit": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.zbs": [[12, 1, 1, "", "Zbs"], [12, 1, 1, "", "ZbsComponent"], [12, 1, 1, "", "ZbsFunction"], [12, 1, 1, "", "ZbsUnit"]], "coreblocks.func_blocks.fu.zbs.Zbs": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.fu.zbs.ZbsComponent": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "get_module"], [12, 2, 1, "", "get_optypes"]], "coreblocks.func_blocks.fu.zbs.ZbsFunction": [[12, 1, 1, "", "Fn"], [12, 2, 1, "", "get_instructions"]], "coreblocks.func_blocks.fu.zbs.ZbsFunction.Fn": [[12, 3, 1, "", "BCLR"], [12, 3, 1, "", "BEXT"], [12, 3, 1, "", "BINV"], [12, 3, 1, "", "BSET"], [12, 2, 1, "", "__new__"]], "coreblocks.func_blocks.fu.zbs.ZbsUnit": [[12, 2, 1, "", "__init__"]], "coreblocks.func_blocks.interface": [[14, 0, 0, "-", "func_blocks_unifier"], [14, 0, 0, "-", "func_protocols"]], "coreblocks.func_blocks.interface.func_blocks_unifier": [[14, 1, 1, "", "FuncBlocksUnifier"]], "coreblocks.func_blocks.interface.func_blocks_unifier.FuncBlocksUnifier": [[14, 2, 1, "", "__init__"], [14, 2, 1, "", "get_extra_method"]], "coreblocks.func_blocks.interface.func_protocols": [[14, 1, 1, "", "FuncBlock"], [14, 1, 1, "", "FuncUnit"]], "coreblocks.func_blocks.interface.func_protocols.FuncBlock": [[14, 3, 1, "", "get_result"], [14, 3, 1, "", "insert"], [14, 3, 1, "", "select"], [14, 3, 1, "", "update"]], "coreblocks.func_blocks.interface.func_protocols.FuncUnit": [[14, 3, 1, "", "accept"], [14, 3, 1, "", "issue"]], "coreblocks.func_blocks.lsu": [[15, 0, 0, "-", "dummyLsu"], [15, 0, 0, "-", "pma"]], "coreblocks.func_blocks.lsu.dummyLsu": [[15, 1, 1, "", "LSUBlockComponent"], [15, 1, 1, "", "LSUDummy"]], "coreblocks.func_blocks.lsu.dummyLsu.LSUBlockComponent": [[15, 2, 1, "", "get_module"], [15, 2, 1, "", "get_optypes"], [15, 2, 1, "", "get_rs_entry_count"]], "coreblocks.func_blocks.lsu.dummyLsu.LSUDummy": [[15, 2, 1, "", "__init__"]], "coreblocks.func_blocks.lsu.pma": [[15, 1, 1, "", "PMAChecker"], [15, 1, 1, "", "PMALayout"], [15, 1, 1, "", "PMARegion"]], "coreblocks.func_blocks.lsu.pma.PMAChecker": [[15, 2, 1, "", "__init__"]], "coreblocks.func_blocks.lsu.pma.PMALayout": [[15, 2, 1, "", "__init__"]], "coreblocks.func_blocks.lsu.pma.PMARegion": [[15, 2, 1, "", "__init__"], [15, 3, 1, "", "end"], [15, 3, 1, "", "mmio"], [15, 3, 1, "", "start"]], "coreblocks.params": [[16, 0, 0, "-", "configurations"], [16, 0, 0, "-", "fu_params"], [16, 0, 0, "-", "genparams"], [16, 0, 0, "-", "icache_params"], [16, 0, 0, "-", "instr"], [16, 0, 0, "-", "isa_params"]], "coreblocks.params.configurations": [[16, 1, 1, "", "CoreConfiguration"]], "coreblocks.params.configurations.CoreConfiguration": [[16, 2, 1, "", "__init__"], [16, 3, 1, "", "allow_partial_extensions"], [16, 3, 1, "", "compressed"], [16, 3, 1, "", "debug_signals"], [16, 3, 1, "", "embedded"], [16, 3, 1, "", "fetch_block_bytes_log"], [16, 3, 1, "", "func_units_config"], [16, 3, 1, "", "icache_enable"], [16, 3, 1, "", "icache_line_bytes_log"], [16, 3, 1, "", "icache_sets_bits"], [16, 3, 1, "", "icache_ways"], [16, 3, 1, "", "phys_regs_bits"], [16, 3, 1, "", "pma"], [16, 2, 1, "", "replace"], [16, 3, 1, "", "rob_entries_bits"], [16, 3, 1, "", "start_pc"], [16, 3, 1, "", "xlen"]], "coreblocks.params.fu_params": [[16, 1, 1, "", "BlockComponentParams"], [16, 1, 1, "", "FunctionalComponentParams"], [16, 4, 1, "", "optypes_supported"]], "coreblocks.params.fu_params.BlockComponentParams": [[16, 2, 1, "", "get_module"], [16, 2, 1, "", "get_optypes"], [16, 2, 1, "", "get_rs_entry_count"]], "coreblocks.params.fu_params.FunctionalComponentParams": [[16, 2, 1, "", "get_module"], [16, 2, 1, "", "get_optypes"]], "coreblocks.params.genparams": [[16, 1, 1, "", "GenParams"]], "coreblocks.params.genparams.GenParams": [[16, 2, 1, "", "__init__"]], "coreblocks.params.icache_params": [[16, 1, 1, "", "ICacheParameters"]], "coreblocks.params.icache_params.ICacheParameters": [[16, 2, 1, "", "__init__"]], "coreblocks.params.instr": [[16, 1, 1, "", "BTypeInstr"], [16, 1, 1, "", "EBreakInstr"], [16, 1, 1, "", "ITypeInstr"], [16, 1, 1, "", "IllegalInstr"], [16, 1, 1, "", "JTypeInstr"], [16, 1, 1, "", "RTypeInstr"], [16, 1, 1, "", "STypeInstr"], [16, 1, 1, "", "UTypeInstr"]], "coreblocks.params.instr.BTypeInstr": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "encode"], [16, 2, 1, "", "pack"]], "coreblocks.params.instr.EBreakInstr": [[16, 2, 1, "", "__init__"]], "coreblocks.params.instr.ITypeInstr": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "encode"], [16, 2, 1, "", "pack"]], "coreblocks.params.instr.IllegalInstr": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "encode"], [16, 2, 1, "", "pack"]], "coreblocks.params.instr.JTypeInstr": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "encode"], [16, 2, 1, "", "pack"]], "coreblocks.params.instr.RTypeInstr": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "encode"], [16, 2, 1, "", "pack"]], "coreblocks.params.instr.STypeInstr": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "encode"], [16, 2, 1, "", "pack"]], "coreblocks.params.instr.UTypeInstr": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "encode"], [16, 2, 1, "", "pack"]], "coreblocks.params.isa_params": [[16, 1, 1, "", "Extension"], [16, 1, 1, "", "ISA"]], "coreblocks.params.isa_params.Extension": [[16, 3, 1, "", "A"], [16, 3, 1, "", "B"], [16, 3, 1, "", "C"], [16, 3, 1, "", "D"], [16, 3, 1, "", "E"], [16, 3, 1, "", "F"], [16, 3, 1, "", "G"], [16, 3, 1, "", "I"], [16, 3, 1, "", "J"], [16, 3, 1, "", "L"], [16, 3, 1, "", "M"], [16, 3, 1, "", "N"], [16, 3, 1, "", "P"], [16, 3, 1, "", "Q"], [16, 3, 1, "", "T"], [16, 3, 1, "", "V"], [16, 3, 1, "", "XINTMACHINEMODE"], [16, 3, 1, "", "XINTSUPERVISOR"], [16, 3, 1, "", "ZAM"], [16, 3, 1, "", "ZBA"], [16, 3, 1, "", "ZBB"], [16, 3, 1, "", "ZBC"], [16, 3, 1, "", "ZBS"], [16, 3, 1, "", "ZDINX"], [16, 3, 1, "", "ZFH"], [16, 3, 1, "", "ZFHMIN"], [16, 3, 1, "", "ZFINX"], [16, 3, 1, "", "ZHINX"], [16, 3, 1, "", "ZICNTR"], [16, 3, 1, "", "ZICSR"], [16, 3, 1, "", "ZIFENCEI"], [16, 3, 1, "", "ZIHINTNTL"], [16, 3, 1, "", "ZIHINTPAUSE"], [16, 3, 1, "", "ZIHPM"], [16, 3, 1, "", "ZMMUL"], [16, 3, 1, "", "ZTSO"], [16, 2, 1, "", "__new__"]], "coreblocks.params.isa_params.ISA": [[16, 2, 1, "", "__init__"]], "coreblocks.peripherals": [[17, 0, 0, "-", "axi_lite"], [17, 0, 0, "-", "bus_adapter"], [17, 0, 0, "-", "wishbone"]], "coreblocks.peripherals.axi_lite": [[17, 1, 1, "", "AXILiteInterface"], [17, 1, 1, "", "AXILiteMaster"], [17, 1, 1, "", "AXILiteParameters"], [17, 1, 1, "", "AXILiteSignature"]], "coreblocks.peripherals.axi_lite.AXILiteInterface": [[17, 3, 1, "", "read_address"], [17, 3, 1, "", "read_data"], [17, 3, 1, "", "write_address"], [17, 3, 1, "", "write_data"], [17, 3, 1, "", "write_response"]], "coreblocks.peripherals.axi_lite.AXILiteMaster": [[17, 2, 1, "", "__init__"], [17, 3, 1, "", "axil_master"], [17, 2, 1, "", "result_handler"], [17, 2, 1, "", "start_request_transaction"], [17, 2, 1, "", "state_machine_request"]], "coreblocks.peripherals.axi_lite.AXILiteParameters": [[17, 2, 1, "", "__init__"]], "coreblocks.peripherals.axi_lite.AXILiteSignature": [[17, 2, 1, "", "__init__"]], "coreblocks.peripherals.bus_adapter": [[17, 1, 1, "", "AXILiteMasterAdapter"], [17, 1, 1, "", "BusMasterInterface"], [17, 1, 1, "", "WishboneMasterAdapter"]], "coreblocks.peripherals.bus_adapter.AXILiteMasterAdapter": [[17, 2, 1, "", "__init__"]], "coreblocks.peripherals.bus_adapter.BusMasterInterface": [[17, 3, 1, "", "get_read_response"], [17, 3, 1, "", "get_write_response"], [17, 3, 1, "", "params"], [17, 3, 1, "", "request_read"], [17, 3, 1, "", "request_write"]], "coreblocks.peripherals.bus_adapter.WishboneMasterAdapter": [[17, 2, 1, "", "__init__"]], "coreblocks.peripherals.wishbone": [[17, 1, 1, "", "PipelinedWishboneMaster"], [17, 1, 1, "", "WishboneArbiter"], [17, 1, 1, "", "WishboneInterface"], [17, 1, 1, "", "WishboneMaster"], [17, 1, 1, "", "WishboneMasterMethodLayout"], [17, 1, 1, "", "WishboneMemorySlave"], [17, 1, 1, "", "WishboneMuxer"], [17, 1, 1, "", "WishboneParameters"], [17, 1, 1, "", "WishboneSignature"]], "coreblocks.peripherals.wishbone.PipelinedWishboneMaster": [[17, 2, 1, "", "__init__"], [17, 2, 1, "", "generate_method_layouts"], [17, 3, 1, "", "wb"]], "coreblocks.peripherals.wishbone.WishboneArbiter": [[17, 2, 1, "", "__init__"], [17, 3, 1, "", "masters"], [17, 3, 1, "", "slave_wb"]], "coreblocks.peripherals.wishbone.WishboneInterface": [[17, 3, 1, "", "ack"], [17, 3, 1, "", "adr"], [17, 3, 1, "", "cyc"], [17, 3, 1, "", "dat_r"], [17, 3, 1, "", "dat_w"], [17, 3, 1, "", "err"], [17, 3, 1, "", "lock"], [17, 3, 1, "", "rst"], [17, 3, 1, "", "rty"], [17, 3, 1, "", "sel"], [17, 3, 1, "", "stall"], [17, 3, 1, "", "stb"], [17, 3, 1, "", "we"]], "coreblocks.peripherals.wishbone.WishboneMaster": [[17, 2, 1, "", "__init__"], [17, 3, 1, "", "wb_master"]], "coreblocks.peripherals.wishbone.WishboneMasterMethodLayout": [[17, 2, 1, "", "__init__"]], "coreblocks.peripherals.wishbone.WishboneMemorySlave": [[17, 2, 1, "", "__init__"], [17, 3, 1, "", "bus"]], "coreblocks.peripherals.wishbone.WishboneMuxer": [[17, 2, 1, "", "__init__"], [17, 3, 1, "", "master_wb"], [17, 3, 1, "", "slaves"]], "coreblocks.peripherals.wishbone.WishboneParameters": [[17, 2, 1, "", "__init__"]], "coreblocks.peripherals.wishbone.WishboneSignature": [[17, 2, 1, "", "__init__"], [17, 2, 1, "", "create"]], "coreblocks.priv": [[19, 0, 0, "-", "csr"], [20, 0, 0, "-", "traps"]], "coreblocks.priv.csr": [[19, 0, 0, "-", "csr_instances"], [19, 0, 0, "-", "csr_register"]], "coreblocks.priv.csr.csr_instances": [[19, 1, 1, "", "CSRAddress"], [19, 1, 1, "", "DoubleCounterCSR"], [19, 1, 1, "", "GenericCSRRegisters"], [19, 1, 1, "", "MachineModeCSRRegisters"]], "coreblocks.priv.csr.csr_instances.CSRAddress": [[19, 3, 1, "", "CYCLE"], [19, 3, 1, "", "CYCLEH"], [19, 3, 1, "", "INSTRET"], [19, 3, 1, "", "INSTRETH"], [19, 3, 1, "", "MCAUSE"], [19, 3, 1, "", "MEPC"], [19, 3, 1, "", "MTVEC"], [19, 3, 1, "", "TIME"], [19, 3, 1, "", "TIMEH"], [19, 2, 1, "", "__new__"]], "coreblocks.priv.csr.csr_instances.DoubleCounterCSR": [[19, 2, 1, "", "__init__"]], "coreblocks.priv.csr.csr_instances.GenericCSRRegisters": [[19, 2, 1, "", "__init__"]], "coreblocks.priv.csr.csr_instances.MachineModeCSRRegisters": [[19, 2, 1, "", "__init__"]], "coreblocks.priv.csr.csr_register": [[19, 1, 1, "", "CSRListKey"], [19, 1, 1, "", "CSRRegister"], [19, 1, 1, "", "PrivilegeLevel"], [19, 4, 1, "", "csr_access_privilege"]], "coreblocks.priv.csr.csr_register.CSRListKey": [[19, 2, 1, "", "__init__"]], "coreblocks.priv.csr.csr_register.CSRRegister": [[19, 2, 1, "", "__init__"]], "coreblocks.priv.csr.csr_register.PrivilegeLevel": [[19, 3, 1, "", "MACHINE"], [19, 3, 1, "", "SUPERVISOR"], [19, 3, 1, "", "USER"], [19, 2, 1, "", "__new__"]], "coreblocks.priv.traps": [[20, 0, 0, "-", "exception"], [20, 0, 0, "-", "instr_counter"], [20, 0, 0, "-", "interrupt_controller"]], "coreblocks.priv.traps.exception": [[20, 1, 1, "", "ExceptionCauseRegister"], [20, 4, 1, "", "should_update_prioriy"]], "coreblocks.priv.traps.exception.ExceptionCauseRegister": [[20, 2, 1, "", "__init__"]], "coreblocks.priv.traps.instr_counter": [[20, 1, 1, "", "CoreInstructionCounter"]], "coreblocks.priv.traps.instr_counter.CoreInstructionCounter": [[20, 2, 1, "", "__init__"]], "coreblocks.priv.traps.interrupt_controller": [[20, 1, 1, "", "InterruptController"]], "coreblocks.priv.traps.interrupt_controller.InterruptController": [[20, 2, 1, "", "__init__"]], "coreblocks.scheduler": [[21, 0, 0, "-", "scheduler"], [21, 0, 0, "-", "wakeup_select"]], "coreblocks.scheduler.scheduler": [[21, 1, 1, "", "Scheduler"]], "coreblocks.scheduler.scheduler.Scheduler": [[21, 2, 1, "", "__init__"]], "coreblocks.scheduler.wakeup_select": [[21, 1, 1, "", "WakeupSelect"]], "coreblocks.scheduler.wakeup_select.WakeupSelect": [[21, 2, 1, "", "__init__"]], "transactron": [[36, 0, 0, "-", "core"], [35, 0, 0, "-", "graph"], [37, 0, 0, "-", "lib"], [35, 0, 0, "-", "profiler"], [38, 0, 0, "-", "testing"], [35, 0, 0, "-", "tracing"], [39, 0, 0, "-", "utils"]], "transactron.core": [[36, 0, 0, "-", "keys"], [36, 0, 0, "-", "manager"], [36, 0, 0, "-", "method"], [36, 0, 0, "-", "schedulers"], [36, 0, 0, "-", "sugar"], [36, 0, 0, "-", "tmodule"], [36, 0, 0, "-", "transaction"], [36, 0, 0, "-", "transaction_base"]], "transactron.core.keys": [[36, 1, 1, "", "TransactionManagerKey"]], "transactron.core.keys.TransactionManagerKey": [[36, 2, 1, "", "__init__"]], "transactron.core.manager": [[36, 1, 1, "", "TransactionManager"], [36, 1, 1, "", "TransactionModule"]], "transactron.core.manager.TransactionManager": [[36, 2, 1, "", "__init__"], [36, 2, 1, "", "add_transaction"], [36, 2, 1, "", "debug_signals"], [36, 2, 1, "", "print_info"], [36, 2, 1, "", "visual_graph"]], "transactron.core.manager.TransactionModule": [[36, 2, 1, "", "__init__"], [36, 2, 1, "", "context"]], "transactron.core.method": [[36, 1, 1, "", "Method"]], "transactron.core.method.Method": [[36, 2, 1, "", "__init__"], [36, 2, 1, "", "body"], [36, 2, 1, "", "debug_signals"], [36, 5, 1, "", "layout_in"], [36, 5, 1, "", "layout_out"], [36, 2, 1, "", "like"], [36, 2, 1, "", "proxy"]], "transactron.core.schedulers": [[36, 4, 1, "", "eager_deterministic_cc_scheduler"], [36, 4, 1, "", "trivial_roundrobin_cc_scheduler"]], "transactron.core.sugar": [[36, 4, 1, "", "def_method"]], "transactron.core.tmodule": [[36, 1, 1, "", "TModule"]], "transactron.core.tmodule.TModule": [[36, 2, 1, "", "AvoidedIf"], [36, 2, 1, "", "Case"], [36, 2, 1, "", "Default"], [36, 2, 1, "", "Elif"], [36, 2, 1, "", "Else"], [36, 2, 1, "", "FSM"], [36, 2, 1, "", "If"], [36, 2, 1, "", "State"], [36, 2, 1, "", "Switch"], [36, 2, 1, "", "__init__"], [36, 5, 1, "", "ctrl_path"], [36, 5, 1, "", "next"]], "transactron.core.transaction": [[36, 1, 1, "", "Transaction"]], "transactron.core.transaction.Transaction": [[36, 2, 1, "", "__init__"], [36, 2, 1, "", "body"], [36, 2, 1, "", "debug_signals"]], "transactron.core.transaction_base": [[36, 1, 1, "", "Priority"], [36, 1, 1, "", "TransactionBase"]], "transactron.core.transaction_base.Priority": [[36, 3, 1, "", "LEFT"], [36, 3, 1, "", "RIGHT"], [36, 3, 1, "", "UNDEFINED"]], "transactron.core.transaction_base.TransactionBase": [[36, 2, 1, "", "__init__"], [36, 2, 1, "", "add_conflict"], [36, 2, 1, "", "context"], [36, 3, 1, "", "ctrl_path"], [36, 3, 1, "", "def_counter"], [36, 3, 1, "", "def_order"], [36, 3, 1, "", "defined"], [36, 2, 1, "", "get"], [36, 3, 1, "", "independent_list"], [36, 3, 1, "", "method_calls"], [36, 3, 1, "", "method_uses"], [36, 3, 1, "", "name"], [36, 5, 1, "", "owned_name"], [36, 2, 1, "", "peek"], [36, 3, 1, "", "relations"], [36, 2, 1, "", "schedule_before"], [36, 2, 1, "", "simultaneous"], [36, 2, 1, "", "simultaneous_alternatives"], [36, 3, 1, "", "simultaneous_list"], [36, 3, 1, "", "src_loc"], [36, 3, 1, "", "stack"]], "transactron.graph": [[35, 1, 1, "", "Direction"], [35, 1, 1, "", "Owned"], [35, 1, 1, "", "OwnershipGraph"]], "transactron.graph.Direction": [[35, 3, 1, "", "IN"], [35, 3, 1, "", "INOUT"], [35, 3, 1, "", "NONE"], [35, 3, 1, "", "OUT"], [35, 2, 1, "", "__new__"]], "transactron.graph.Owned": [[35, 2, 1, "", "__init__"], [35, 3, 1, "", "name"], [35, 3, 1, "", "owner"]], "transactron.graph.OwnershipGraph": [[35, 2, 1, "", "__init__"], [35, 2, 1, "", "dump"], [35, 2, 1, "", "dump_dot"], [35, 2, 1, "", "dump_elk"], [35, 2, 1, "", "dump_mermaid"], [35, 2, 1, "", "get_hier_name"], [35, 2, 1, "", "get_name"], [35, 2, 1, "", "insert_edge"], [35, 2, 1, "", "insert_node"], [35, 3, 1, "", "mermaid_direction"], [35, 2, 1, "", "prune"], [35, 2, 1, "", "remember"], [35, 2, 1, "", "remember_field"]], "transactron.lib": [[37, 0, 0, "-", "adapters"], [37, 0, 0, "-", "buttons"], [37, 0, 0, "-", "connectors"], [37, 0, 0, "-", "dependencies"], [37, 0, 0, "-", "fifo"], [37, 0, 0, "-", "logging"], [37, 0, 0, "-", "metrics"], [37, 0, 0, "-", "reqres"], [37, 0, 0, "-", "simultaneous"], [37, 0, 0, "-", "storage"], [37, 0, 0, "-", "transformers"]], "transactron.lib.adapters": [[37, 1, 1, "", "Adapter"], [37, 1, 1, "", "AdapterBase"], [37, 1, 1, "", "AdapterTrans"]], "transactron.lib.adapters.Adapter": [[37, 2, 1, "", "__init__"]], "transactron.lib.adapters.AdapterBase": [[37, 2, 1, "", "__init__"], [37, 3, 1, "", "data_in"], [37, 3, 1, "", "data_out"], [37, 2, 1, "", "debug_signals"]], "transactron.lib.adapters.AdapterTrans": [[37, 2, 1, "", "__init__"]], "transactron.lib.buttons": [[37, 1, 1, "", "ClickIn"], [37, 1, 1, "", "ClickOut"]], "transactron.lib.buttons.ClickIn": [[37, 2, 1, "", "__init__"]], "transactron.lib.buttons.ClickOut": [[37, 2, 1, "", "__init__"]], "transactron.lib.connectors": [[37, 1, 1, "", "Connect"], [37, 1, 1, "", "ConnectTrans"], [37, 1, 1, "", "FIFO"], [37, 1, 1, "", "Forwarder"], [37, 1, 1, "", "ManyToOneConnectTrans"], [37, 1, 1, "", "StableSelectingNetwork"]], "transactron.lib.connectors.Connect": [[37, 2, 1, "", "__init__"]], "transactron.lib.connectors.ConnectTrans": [[37, 2, 1, "", "__init__"]], "transactron.lib.connectors.FIFO": [[37, 2, 1, "", "__init__"]], "transactron.lib.connectors.Forwarder": [[37, 2, 1, "", "__init__"]], "transactron.lib.connectors.ManyToOneConnectTrans": [[37, 2, 1, "", "__init__"]], "transactron.lib.connectors.StableSelectingNetwork": [[37, 2, 1, "", "__init__"]], "transactron.lib.dependencies": [[37, 1, 1, "", "DependencyKey"], [37, 1, 1, "", "DependencyManager"], [37, 1, 1, "", "ListKey"], [37, 1, 1, "", "SimpleKey"], [37, 1, 1, "", "UnifierKey"]], "transactron.lib.dependencies.DependencyKey": [[37, 2, 1, "", "combine"], [37, 3, 1, "", "empty_valid"], [37, 3, 1, "", "lock_on_get"]], "transactron.lib.dependencies.DependencyManager": [[37, 2, 1, "", "__init__"], [37, 2, 1, "", "add_dependency"], [37, 2, 1, "", "get_dependency"]], "transactron.lib.dependencies.ListKey": [[37, 2, 1, "", "combine"], [37, 3, 1, "", "empty_valid"]], "transactron.lib.dependencies.SimpleKey": [[37, 2, 1, "", "combine"], [37, 3, 1, "", "default_value"]], "transactron.lib.dependencies.UnifierKey": [[37, 2, 1, "", "combine"], [37, 3, 1, "", "unifier"]], "transactron.lib.fifo": [[37, 1, 1, "", "BasicFifo"], [37, 1, 1, "", "Semaphore"]], "transactron.lib.fifo.BasicFifo": [[37, 2, 1, "", "__init__"]], "transactron.lib.fifo.Semaphore": [[37, 2, 1, "", "__init__"]], "transactron.lib.logging": [[37, 1, 1, "", "HardwareLogger"], [37, 1, 1, "", "LogKey"], [37, 1, 1, "", "LogRecord"], [37, 1, 1, "", "LogRecordInfo"], [37, 4, 1, "", "get_log_records"], [37, 4, 1, "", "get_trigger_bit"]], "transactron.lib.logging.HardwareLogger": [[37, 2, 1, "", "__init__"], [37, 2, 1, "", "assertion"], [37, 2, 1, "", "debug"], [37, 2, 1, "", "error"], [37, 2, 1, "", "info"], [37, 2, 1, "", "log"], [37, 2, 1, "", "warning"]], "transactron.lib.logging.LogKey": [[37, 2, 1, "", "__init__"]], "transactron.lib.logging.LogRecord": [[37, 2, 1, "", "__init__"], [37, 3, 1, "", "fields"], [37, 3, 1, "", "trigger"]], "transactron.lib.logging.LogRecordInfo": [[37, 2, 1, "", "__init__"], [37, 2, 1, "", "format"], [37, 3, 1, "", "format_str"], [37, 2, 1, "", "from_dict"], [37, 2, 1, "", "from_json"], [37, 3, 1, "", "level"], [37, 3, 1, "", "location"], [37, 3, 1, "", "logger_name"], [37, 2, 1, "", "schema"], [37, 2, 1, "", "to_dict"], [37, 2, 1, "", "to_json"]], "transactron.lib.metrics": [[37, 1, 1, "", "HardwareMetricsManager"], [37, 1, 1, "", "HwCounter"], [37, 1, 1, "", "HwExpHistogram"], [37, 1, 1, "", "HwMetric"], [37, 1, 1, "", "HwMetricsEnabledKey"], [37, 1, 1, "", "LatencyMeasurer"], [37, 1, 1, "", "MetricModel"], [37, 1, 1, "", "MetricRegisterModel"]], "transactron.lib.metrics.HardwareMetricsManager": [[37, 2, 1, "", "__init__"], [37, 2, 1, "", "debug_signals"], [37, 2, 1, "", "get_metrics"], [37, 2, 1, "", "get_register_value"]], "transactron.lib.metrics.HwCounter": [[37, 2, 1, "", "__init__"], [37, 2, 1, "", "incr"]], "transactron.lib.metrics.HwExpHistogram": [[37, 2, 1, "", "__init__"], [37, 2, 1, "", "add"]], "transactron.lib.metrics.HwMetric": [[37, 2, 1, "", "__init__"], [37, 2, 1, "", "add_registers"], [37, 2, 1, "", "metrics_enabled"]], "transactron.lib.metrics.HwMetricsEnabledKey": [[37, 2, 1, "", "__init__"], [37, 3, 1, "", "default_value"], [37, 3, 1, "", "empty_valid"], [37, 3, 1, "", "lock_on_get"]], "transactron.lib.metrics.LatencyMeasurer": [[37, 2, 1, "", "__init__"], [37, 2, 1, "", "metrics_enabled"], [37, 2, 1, "", "start"], [37, 2, 1, "", "stop"]], "transactron.lib.metrics.MetricModel": [[37, 2, 1, "", "__init__"], [37, 3, 1, "", "description"], [37, 2, 1, "", "from_dict"], [37, 2, 1, "", "from_json"], [37, 3, 1, "", "fully_qualified_name"], [37, 3, 1, "", "regs"], [37, 2, 1, "", "schema"], [37, 2, 1, "", "to_dict"], [37, 2, 1, "", "to_json"]], "transactron.lib.metrics.MetricRegisterModel": [[37, 2, 1, "", "__init__"], [37, 3, 1, "", "description"], [37, 2, 1, "", "from_dict"], [37, 2, 1, "", "from_json"], [37, 3, 1, "", "name"], [37, 2, 1, "", "schema"], [37, 2, 1, "", "to_dict"], [37, 2, 1, "", "to_json"], [37, 3, 1, "", "width"]], "transactron.lib.reqres": [[37, 1, 1, "", "ArgumentsToResultsZipper"], [37, 1, 1, "", "Serializer"]], "transactron.lib.reqres.ArgumentsToResultsZipper": [[37, 2, 1, "", "__init__"]], "transactron.lib.reqres.Serializer": [[37, 2, 1, "", "__init__"]], "transactron.lib.simultaneous": [[37, 4, 1, "", "condition"]], "transactron.lib.storage": [[37, 1, 1, "", "MemoryBank"]], "transactron.lib.storage.MemoryBank": [[37, 2, 1, "", "__init__"]], "transactron.lib.transformers": [[37, 1, 1, "", "CatTrans"], [37, 1, 1, "", "Collector"], [37, 1, 1, "", "ConnectAndMapTrans"], [37, 1, 1, "", "MethodFilter"], [37, 1, 1, "", "MethodMap"], [37, 1, 1, "", "MethodProduct"], [37, 1, 1, "", "MethodTryProduct"], [37, 1, 1, "", "Transformer"], [37, 1, 1, "", "Unifier"]], "transactron.lib.transformers.CatTrans": [[37, 2, 1, "", "__init__"]], "transactron.lib.transformers.Collector": [[37, 2, 1, "", "__init__"]], "transactron.lib.transformers.ConnectAndMapTrans": [[37, 2, 1, "", "__init__"]], "transactron.lib.transformers.MethodFilter": [[37, 2, 1, "", "__init__"]], "transactron.lib.transformers.MethodMap": [[37, 2, 1, "", "__init__"]], "transactron.lib.transformers.MethodProduct": [[37, 2, 1, "", "__init__"]], "transactron.lib.transformers.MethodTryProduct": [[37, 2, 1, "", "__init__"]], "transactron.lib.transformers.Transformer": [[37, 3, 1, "", "method"], [37, 2, 1, "", "use"]], "transactron.lib.transformers.Unifier": [[37, 2, 1, "", "__init__"], [37, 3, 1, "", "method"]], "transactron.profiler": [[35, 1, 1, "", "MethodSamples"], [35, 1, 1, "", "Profile"], [35, 1, 1, "", "ProfileData"], [35, 1, 1, "", "ProfileInfo"], [35, 1, 1, "", "ProfileSamples"], [35, 1, 1, "", "RunStat"], [35, 1, 1, "", "RunStatNode"], [35, 1, 1, "", "TransactionSamples"]], "transactron.profiler.MethodSamples": [[35, 2, 1, "", "__init__"], [35, 3, 1, "", "run"]], "transactron.profiler.Profile": [[35, 2, 1, "", "__init__"], [35, 2, 1, "", "analyze_methods"], [35, 2, 1, "", "analyze_transactions"], [35, 3, 1, "", "cycles"], [35, 2, 1, "", "decode"], [35, 2, 1, "", "encode"], [35, 2, 1, "", "from_dict"], [35, 2, 1, "", "from_json"], [35, 2, 1, "", "schema"], [35, 2, 1, "", "to_dict"], [35, 2, 1, "", "to_json"], [35, 3, 1, "", "transactions_and_methods"]], "transactron.profiler.ProfileData": [[35, 2, 1, "", "__init__"], [35, 2, 1, "", "make"], [35, 3, 1, "", "method_parents"], [35, 3, 1, "", "transaction_conflicts"], [35, 3, 1, "", "transactions_and_methods"], [35, 3, 1, "", "transactions_by_method"]], "transactron.profiler.ProfileInfo": [[35, 2, 1, "", "__init__"], [35, 2, 1, "", "from_dict"], [35, 2, 1, "", "from_json"], [35, 3, 1, "", "is_transaction"], [35, 3, 1, "", "name"], [35, 2, 1, "", "schema"], [35, 3, 1, "", "src_loc"], [35, 2, 1, "", "to_dict"], [35, 2, 1, "", "to_json"]], "transactron.profiler.ProfileSamples": [[35, 2, 1, "", "__init__"], [35, 3, 1, "", "methods"], [35, 3, 1, "", "transactions"]], "transactron.profiler.RunStat": [[35, 2, 1, "", "__init__"], [35, 3, 1, "", "locked"], [35, 2, 1, "", "make"], [35, 3, 1, "", "name"], [35, 3, 1, "", "run"], [35, 3, 1, "", "src_loc"]], "transactron.profiler.RunStatNode": [[35, 2, 1, "", "__init__"], [35, 3, 1, "", "callers"], [35, 2, 1, "", "make"], [35, 3, 1, "", "stat"]], "transactron.profiler.TransactionSamples": [[35, 2, 1, "", "__init__"], [35, 3, 1, "", "grant"], [35, 3, 1, "", "request"], [35, 3, 1, "", "runnable"]], "transactron.testing": [[38, 0, 0, "-", "functions"], [38, 0, 0, "-", "gtkw_extension"], [38, 0, 0, "-", "infrastructure"], [38, 0, 0, "-", "logging"], [38, 0, 0, "-", "profiler"], [38, 0, 0, "-", "sugar"], [38, 0, 0, "-", "testbenchio"]], "transactron.testing.functions": [[38, 4, 1, "", "get_outputs"], [38, 4, 1, "", "set_inputs"]], "transactron.testing.gtkw_extension": [[38, 4, 1, "", "write_vcd_ext"]], "transactron.testing.infrastructure": [[38, 1, 1, "", "CoreblocksCommand"], [38, 1, 1, "", "Now"], [38, 1, 1, "", "PysimSimulator"], [38, 1, 1, "", "SimpleTestCircuit"], [38, 1, 1, "", "SyncProcessWrapper"], [38, 1, 1, "", "TestCaseWithSimulator"], [38, 4, 1, "", "guard_nested_collection"]], "transactron.testing.infrastructure.PysimSimulator": [[38, 2, 1, "", "__init__"], [38, 2, 1, "", "add_sync_process"], [38, 2, 1, "", "run"]], "transactron.testing.infrastructure.SimpleTestCircuit": [[38, 2, 1, "", "__init__"], [38, 2, 1, "", "debug_signals"]], "transactron.testing.infrastructure.SyncProcessWrapper": [[38, 2, 1, "", "__init__"]], "transactron.testing.infrastructure.TestCaseWithSimulator": [[38, 2, 1, "", "__init__"], [38, 2, 1, "", "add_all_mocks"], [38, 2, 1, "", "add_class_mocks"], [38, 2, 1, "", "add_local_mocks"], [38, 3, 1, "", "dependency_manager"], [38, 2, 1, "", "random_wait"], [38, 2, 1, "", "random_wait_geom"], [38, 2, 1, "", "run_simulation"], [38, 2, 1, "", "tick"]], "transactron.testing.logging": [[38, 4, 1, "", "make_logging_process"], [38, 4, 1, "", "parse_logging_level"]], "transactron.testing.profiler": [[38, 4, 1, "", "profiler_process"]], "transactron.testing.sugar": [[38, 4, 1, "", "def_method_mock"]], "transactron.testing.testbenchio": [[38, 1, 1, "", "TestbenchIO"]], "transactron.testing.testbenchio.TestbenchIO": [[38, 2, 1, "", "__init__"], [38, 2, 1, "", "call"], [38, 2, 1, "", "call_do"], [38, 2, 1, "", "call_init"], [38, 2, 1, "", "call_result"], [38, 2, 1, "", "call_try"], [38, 2, 1, "", "debug_signals"], [38, 2, 1, "", "disable"], [38, 2, 1, "", "done"], [38, 2, 1, "", "enable"], [38, 2, 1, "", "get_outputs"], [38, 2, 1, "", "method_argument"], [38, 2, 1, "", "method_handle"], [38, 2, 1, "", "method_handle_loop"], [38, 2, 1, "", "method_return"], [38, 2, 1, "", "set_enable"], [38, 2, 1, "", "set_inputs"], [38, 2, 1, "", "wait_until_done"]], "transactron.tracing": [[35, 1, 1, "", "TracingEnabler"], [35, 1, 1, "", "TracingFragment"], [35, 1, 1, "", "TracingFragmentTransformer"], [35, 1, 1, "", "TracingInstance"]], "transactron.tracing.TracingFragment": [[35, 2, 1, "", "get"], [35, 2, 1, "", "prepare"], [35, 3, 1, "", "subfragments"]], "transactron.tracing.TracingFragmentTransformer": [[35, 2, 1, "", "on_fragment"]], "transactron.tracing.TracingInstance": [[35, 2, 1, "", "get"]], "transactron.utils": [[40, 0, 0, "-", "amaranth_ext"], [39, 0, 0, "-", "assign"], [39, 0, 0, "-", "data_repr"], [39, 0, 0, "-", "debug_signals"], [39, 0, 0, "-", "depcache"], [39, 0, 0, "-", "dependencies"], [39, 0, 0, "-", "gen"], [39, 0, 0, "-", "idgen"], [39, 0, 0, "-", "transactron_helpers"]], "transactron.utils.amaranth_ext": [[40, 0, 0, "-", "elaboratables"], [40, 0, 0, "-", "functions"]], "transactron.utils.amaranth_ext.elaboratables": [[40, 1, 1, "", "ModuleConnector"], [40, 4, 1, "", "OneHotSwitch"], [40, 4, 1, "", "OneHotSwitchDynamic"], [40, 1, 1, "", "RoundRobin"], [40, 1, 1, "", "Scheduler"]], "transactron.utils.amaranth_ext.elaboratables.ModuleConnector": [[40, 2, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables.RoundRobin": [[40, 2, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables.Scheduler": [[40, 2, 1, "", "__init__"]], "transactron.utils.amaranth_ext.functions": [[40, 4, 1, "", "count_leading_zeros"], [40, 4, 1, "", "count_trailing_zeros"], [40, 4, 1, "", "flatten_signals"], [40, 4, 1, "", "mod_incr"], [40, 4, 1, "", "popcount"]], "transactron.utils.assign": [[39, 1, 1, "", "AssignType"], [39, 4, 1, "", "assign"]], "transactron.utils.assign.AssignType": [[39, 3, 1, "", "ALL"], [39, 3, 1, "", "COMMON"], [39, 3, 1, "", "RHS"]], "transactron.utils.data_repr": [[39, 4, 1, "", "align_down_to_power_of_two"], [39, 4, 1, "", "align_to_power_of_two"], [39, 4, 1, "", "average_dict_of_lists"], [39, 4, 1, "", "bits_from_int"], [39, 4, 1, "", "data_layout"], [39, 4, 1, "", "int_to_signed"], [39, 4, 1, "", "layout_subset"], [39, 4, 1, "", "make_hashable"], [39, 4, 1, "", "neg"], [39, 4, 1, "", "signed_to_int"]], "transactron.utils.debug_signals": [[39, 4, 1, "", "auto_debug_signals"]], "transactron.utils.depcache": [[39, 1, 1, "", "DependentCache"]], "transactron.utils.depcache.DependentCache": [[39, 2, 1, "", "__init__"], [39, 2, 1, "", "get"]], "transactron.utils.dependencies": [[39, 1, 1, "", "DependencyContext"], [39, 1, 1, "", "DependencyKey"], [39, 1, 1, "", "DependencyManager"], [39, 1, 1, "", "ListKey"], [39, 1, 1, "", "SimpleKey"]], "transactron.utils.dependencies.DependencyContext": [[39, 2, 1, "", "__init__"], [39, 2, 1, "", "get"], [39, 3, 1, "", "stack"]], "transactron.utils.dependencies.DependencyKey": [[39, 2, 1, "", "combine"], [39, 3, 1, "", "empty_valid"], [39, 3, 1, "", "lock_on_get"]], "transactron.utils.dependencies.DependencyManager": [[39, 2, 1, "", "__init__"], [39, 2, 1, "", "add_dependency"], [39, 2, 1, "", "get_dependency"]], "transactron.utils.dependencies.ListKey": [[39, 2, 1, "", "combine"], [39, 3, 1, "", "empty_valid"]], "transactron.utils.dependencies.SimpleKey": [[39, 2, 1, "", "combine"], [39, 3, 1, "", "default_value"]], "transactron.utils.gen": [[39, 1, 1, "", "GeneratedLog"], [39, 1, 1, "", "GenerationInfo"], [39, 1, 1, "", "MetricLocation"], [39, 4, 1, "", "generate_verilog"]], "transactron.utils.gen.GeneratedLog": [[39, 2, 1, "", "__init__"], [39, 3, 1, "", "fields_location"], [39, 2, 1, "", "from_dict"], [39, 2, 1, "", "from_json"], [39, 2, 1, "", "schema"], [39, 2, 1, "", "to_dict"], [39, 2, 1, "", "to_json"], [39, 3, 1, "", "trigger_location"]], "transactron.utils.gen.GenerationInfo": [[39, 2, 1, "", "__init__"], [39, 2, 1, "", "decode"], [39, 2, 1, "", "encode"], [39, 2, 1, "", "from_dict"], [39, 2, 1, "", "from_json"], [39, 3, 1, "", "logs"], [39, 3, 1, "", "method_signals_location"], [39, 3, 1, "", "metrics_location"], [39, 3, 1, "", "profile_data"], [39, 2, 1, "", "schema"], [39, 2, 1, "", "to_dict"], [39, 2, 1, "", "to_json"], [39, 3, 1, "", "transaction_signals_location"]], "transactron.utils.gen.MetricLocation": [[39, 2, 1, "", "__init__"], [39, 2, 1, "", "from_dict"], [39, 2, 1, "", "from_json"], [39, 3, 1, "", "regs"], [39, 2, 1, "", "schema"], [39, 2, 1, "", "to_dict"], [39, 2, 1, "", "to_json"]], "transactron.utils.idgen": [[39, 1, 1, "", "IdGenerator"]], "transactron.utils.idgen.IdGenerator": [[39, 2, 1, "", "__init__"]], "transactron.utils.transactron_helpers": [[39, 4, 1, "", "def_helper"], [39, 4, 1, "", "from_method_layout"], [39, 4, 1, "", "get_caller_class_name"], [39, 4, 1, "", "get_src_loc"], [39, 4, 1, "", "method_def_helper"], [39, 4, 1, "", "mock_def_helper"], [39, 4, 1, "", "silence_mustuse"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:function", "5": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"], "5": ["py", "property", "Python property"]}, "titleterms": {"api": 0, "coreblock": [0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 25, 27, 34], "transactron": [0, 28, 35, 36, 37, 38, 39, 40], "list": 1, "assumpt": [1, 3], "made": 1, "dure": 1, "develop": [1, 23], "instruct": [3, 32], "cach": [3, 6], "interfac": [3, 14, 31, 32], "address": 3, "map": 3, "exampl": 3, "packag": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 35, 36, 37, 38, 39, 40], "subpackag": [4, 8, 11, 12, 18, 35, 39], "submodul": [4, 5, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 35, 36, 37, 38, 39, 40], "core": [4, 33, 36], "modul": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 35, 36, 37, 38, 39, 40], "content": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 35, 36, 37, 38, 39, 40], "backend": 5, "annouc": 5, "retir": 5, "icach": 6, "ifac": 6, "refil": 6, "core_struct": 7, "rat": 7, "rf": 7, "rob": 7, "frontend": [8, 9, 10], "decod": 9, "decode_stag": 9, "instr_decod": 9, "instr_descript": 9, "isa": 9, "optyp": 9, "rvc": 9, "fetch": 10, "func_block": [11, 12, 13, 14, 15], "fu": [12, 13], "alu": 12, "div_unit": 12, "except": [12, 20, 26], "jumpbranch": 12, "mul_unit": 12, "priv": [12, 18, 19, 20], "shift_unit": 12, "zbc": 12, "zb": 12, "unsigned_multipl": 13, "common": 13, "fast_recurs": 13, "sequenc": 13, "shift": 13, "func_blocks_unifi": 14, "func_protocol": 14, "lsu": 15, "dummylsu": 15, "pma": 15, "param": 16, "configur": 16, "fu_param": 16, "genparam": 16, "icache_param": 16, "instr": 16, "isa_param": 16, "peripher": 17, "axi_lit": 17, "bus_adapt": 17, "wishbon": 17, "csr": 19, "csr_instanc": 19, "csr_regist": 19, "trap": 20, "instr_count": 20, "interrupt_control": 20, "schedul": [21, 30, 34, 36], "wakeup_select": 21, "full": 22, "transact": [22, 34, 36], "method": [22, 31, 32, 34, 36], "graph": [22, 35], "environ": 23, "set": 23, "up": 23, "us": [23, 31, 32], "script": 23, "run_test": 23, "py": 23, "lint": 23, "sh": 23, "core_graph": 23, "build_doc": 23, "tprof": 23, "introduct": [24, 26, 34], "document": [24, 34], "summari": 26, "paper": 26, "about": 26, "interrupt": 26, "handl": 26, "old": 26, "pc": 26, "out": 26, "order": [26, 34], "execut": [26, 33], "processor": 26, "In": 26, "line": 26, "softwar": 26, "manag": [26, 36], "tlb": 26, "hardwar": 26, "cost": 26, "analysi": 26, "process": 26, "strategi": 26, "igpu": 26, "support": 26, "specul": 26, "gpu": 26, "effici": 26, "other": 26, "problem": 29, "checklist": 29, "overview": [30, 32], "descript": 30, "schema": 30, "structur": 30, "more": 30, "detail": 30, "each": 30, "block": 30, "proposit": 31, "reserv": [31, 32], "station": [31, 32], "implement": [31, 34], "intern": 31, "data": 31, "actual": 31, "slot": [31, 32], "tabl": 31, "compar": [31, 32], "substitut": [31, 32], "read": [31, 32], "row": [31, 32], "clean": [31, 32], "get": [31, 32], "free": 31, "mark": [31, 32], "extern": [31, 32], "all": [31, 32], "reset": 32, "initi": 32, "state": 32, "insert": 32, "new": 32, "readi": [32, 34], "vector": 32, "signal": [32, 34], "verif": 33, "synthesi": 33, "manual": 33, "reproduct": 33, "depend": [33, 37, 39], "benchmark": 33, "regress": 33, "test": [33, 38], "framework": 34, "basic": 34, "usag": 34, "argument": 34, "pass": 34, "convent": 34, "definit": 34, "return": 34, "valu": 34, "The": 34, "librari": 34, "advanc": 34, "concept": 34, "special": 34, "combin": 34, "domain": 34, "conflict": 34, "nest": 34, "profil": [35, 38], "trace": 35, "kei": 36, "sugar": [36, 38], "tmodul": 36, "transaction_bas": 36, "lib": 37, "adapt": 37, "button": 37, "connector": 37, "fifo": 37, "log": [37, 38], "metric": 37, "reqr": 37, "simultan": 37, "storag": 37, "transform": 37, "function": [38, 40], "gtkw_extens": 38, "infrastructur": 38, "testbenchio": 38, "util": [39, 40], "assign": 39, "data_repr": 39, "debug_sign": 39, "depcach": 39, "gen": 39, "idgen": 39, "transactron_help": 39, "amaranth_ext": 40, "elaborat": 40}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/shared-structs/implementation/rs-impl.html b/shared-structs/implementation/rs-impl.html index 0fc9d768d..676993968 100644 --- a/shared-structs/implementation/rs-impl.html +++ b/shared-structs/implementation/rs-impl.html @@ -252,7 +252,7 @@

    Read and clean row

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/shared-structs/rs.html b/shared-structs/rs.html index 27e834bbf..1474588a2 100644 --- a/shared-structs/rs.html +++ b/shared-structs/rs.html @@ -222,7 +222,7 @@

    External interface signals

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/synthesis/synthesis.html b/synthesis/synthesis.html index f6a70d826..183c9787f 100644 --- a/synthesis/synthesis.html +++ b/synthesis/synthesis.html @@ -266,7 +266,7 @@

    Regression tests manual execution

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/transactions.html b/transactions.html index 62513abb7..3d6d1b07d 100644 --- a/transactions.html +++ b/transactions.html @@ -409,7 +409,7 @@

    Transaction and method nesting

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/transactron.core.html b/transactron.core.html index 7184e1124..496d6343c 100644 --- a/transactron.core.html +++ b/transactron.core.html @@ -860,7 +860,7 @@

    Submodules

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/transactron.html b/transactron.html index d4e49b336..484cc72a8 100644 --- a/transactron.html +++ b/transactron.html @@ -751,7 +751,7 @@

    Submodules

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/transactron.lib.html b/transactron.lib.html index 9019dee43..3f4e6aa62 100644 --- a/transactron.lib.html +++ b/transactron.lib.html @@ -1942,7 +1942,7 @@

    Submodules

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/transactron.testing.html b/transactron.testing.html index 8321c5136..33e39c736 100644 --- a/transactron.testing.html +++ b/transactron.testing.html @@ -408,7 +408,7 @@

    Submodules

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/transactron.utils.amaranth_ext.html b/transactron.utils.amaranth_ext.html index 400c36b61..02619f402 100644 --- a/transactron.utils.amaranth_ext.html +++ b/transactron.utils.amaranth_ext.html @@ -293,7 +293,7 @@

    Submodules

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.

    diff --git a/transactron.utils.html b/transactron.utils.html index cb379819d..1c961b76a 100644 --- a/transactron.utils.html +++ b/transactron.utils.html @@ -792,7 +792,7 @@

    Submodules

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 15:57 2024-03-27. + Last updated on 10:11 2024-03-31.