diff --git a/.doctrees/api.doctree b/.doctrees/api.doctree index 537f7ad38..fafad35f5 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 dd93df40a..5f7aa3aba 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 02a8e60d9..332fe6816 100644 Binary files a/.doctrees/coreblocks.cache.doctree and b/.doctrees/coreblocks.cache.doctree differ diff --git a/.doctrees/coreblocks.doctree b/.doctrees/coreblocks.doctree index b53224572..2e23b6fd8 100644 Binary files a/.doctrees/coreblocks.doctree and b/.doctrees/coreblocks.doctree differ diff --git a/.doctrees/coreblocks.frontend.doctree b/.doctrees/coreblocks.frontend.doctree index 226925419..597170030 100644 Binary files a/.doctrees/coreblocks.frontend.doctree and b/.doctrees/coreblocks.frontend.doctree differ diff --git a/.doctrees/coreblocks.fu.doctree b/.doctrees/coreblocks.fu.doctree index 0e718d81a..653a075d1 100644 Binary files a/.doctrees/coreblocks.fu.doctree and b/.doctrees/coreblocks.fu.doctree differ diff --git a/.doctrees/coreblocks.fu.unsigned_multiplication.doctree b/.doctrees/coreblocks.fu.unsigned_multiplication.doctree index 5d532b542..ad964a8a9 100644 Binary files a/.doctrees/coreblocks.fu.unsigned_multiplication.doctree and b/.doctrees/coreblocks.fu.unsigned_multiplication.doctree differ diff --git a/.doctrees/coreblocks.lsu.doctree b/.doctrees/coreblocks.lsu.doctree index 45a79fd10..050b46dce 100644 Binary files a/.doctrees/coreblocks.lsu.doctree and b/.doctrees/coreblocks.lsu.doctree differ diff --git a/.doctrees/coreblocks.params.doctree b/.doctrees/coreblocks.params.doctree index f27f4e8be..498788efa 100644 Binary files a/.doctrees/coreblocks.params.doctree and b/.doctrees/coreblocks.params.doctree differ diff --git a/.doctrees/coreblocks.peripherals.doctree b/.doctrees/coreblocks.peripherals.doctree index c53518b0a..70b859ab2 100644 Binary files a/.doctrees/coreblocks.peripherals.doctree and b/.doctrees/coreblocks.peripherals.doctree differ diff --git a/.doctrees/coreblocks.scheduler.doctree b/.doctrees/coreblocks.scheduler.doctree index 8c838eabc..83de48216 100644 Binary files a/.doctrees/coreblocks.scheduler.doctree and b/.doctrees/coreblocks.scheduler.doctree differ diff --git a/.doctrees/coreblocks.stages.doctree b/.doctrees/coreblocks.stages.doctree index fe024da4e..2ebf5a319 100644 Binary files a/.doctrees/coreblocks.stages.doctree and b/.doctrees/coreblocks.stages.doctree differ diff --git a/.doctrees/coreblocks.structs_common.doctree b/.doctrees/coreblocks.structs_common.doctree index 630905a00..f22cd539c 100644 Binary files a/.doctrees/coreblocks.structs_common.doctree and b/.doctrees/coreblocks.structs_common.doctree differ diff --git a/.doctrees/current-graph.doctree b/.doctrees/current-graph.doctree index 5731e4315..2c3aa3bf6 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 8a0e5ec88..d621d6671 100644 Binary files a/.doctrees/environment.pickle and b/.doctrees/environment.pickle differ diff --git a/.doctrees/transactron.doctree b/.doctrees/transactron.doctree index 027446174..636b0b825 100644 Binary files a/.doctrees/transactron.doctree and b/.doctrees/transactron.doctree differ diff --git a/.doctrees/transactron.lib.doctree b/.doctrees/transactron.lib.doctree index 1b56a0a92..1b2644d96 100644 Binary files a/.doctrees/transactron.lib.doctree and b/.doctrees/transactron.lib.doctree differ diff --git a/.doctrees/transactron.testing.doctree b/.doctrees/transactron.testing.doctree index 1b3a77c85..5d173d482 100644 Binary files a/.doctrees/transactron.testing.doctree and b/.doctrees/transactron.testing.doctree differ diff --git a/.doctrees/transactron.utils.amaranth_ext.doctree b/.doctrees/transactron.utils.amaranth_ext.doctree index 207950f7e..e0fbc60d8 100644 Binary files a/.doctrees/transactron.utils.amaranth_ext.doctree and b/.doctrees/transactron.utils.amaranth_ext.doctree differ diff --git a/.doctrees/transactron.utils.doctree b/.doctrees/transactron.utils.doctree index 7813cbe64..96219c507 100644 Binary files a/.doctrees/transactron.utils.doctree and b/.doctrees/transactron.utils.doctree differ diff --git a/_sources/auto_graph.rst.txt b/_sources/auto_graph.rst.txt index 29177e46c..497fc261f 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_request["request"] - WishboneMaster_result["result"] WishboneMaster_WishboneMaster["WishboneMaster"] + WishboneMaster_result["result"] + WishboneMaster_request["request"] subgraph Forwarder["result Forwarder"] - Forwarder_read["read"] Forwarder_write["write"] + Forwarder_read["read"] end end subgraph WishboneMaster1["wb_master_data WishboneMaster"] @@ -20,13 +20,13 @@ WishboneMaster1_result["result"] WishboneMaster1_WishboneMaster["WishboneMaster"] subgraph Forwarder1["result Forwarder"] - Forwarder1_write["write"] Forwarder1_read["read"] + Forwarder1_write["write"] 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"] @@ -37,10 +37,10 @@ end end subgraph WishboneMasterAdapter1["bus_master_data_adapter WishboneMasterAdapter"] - WishboneMasterAdapter1_get_write_response["get_write_response"] WishboneMasterAdapter1_request_read["request_read"] WishboneMasterAdapter1_get_read_response["get_read_response"] WishboneMasterAdapter1_request_write["request_write"] + WishboneMasterAdapter1_get_write_response["get_write_response"] subgraph Serializer1["bus_serializer Serializer"] Serializer1_Serializer["Serializer"] Serializer1_Serializer1["Serializer"] @@ -53,8 +53,8 @@ end end subgraph CoreInstructionCounter["core_counter CoreInstructionCounter"] - CoreInstructionCounter_increment["increment"] CoreInstructionCounter_decrement["decrement"] + CoreInstructionCounter_increment["increment"] end subgraph FIFO["fifo_fetch FIFO"] FIFO_write["write"] @@ -67,12 +67,12 @@ 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_start_refill["start_refill"] SimpleCommonBusCacheRefiller_accept_refill["accept_refill"] subgraph Forwarder2["address_fwd Forwarder"] Forwarder2_read["read"] @@ -80,11 +80,11 @@ end end subgraph ICache["icache ICache"] + ICache_issue_req["issue_req"] ICache_ICache["ICache"] - ICache_accept_res["accept_res"] ICache_ICache1["ICache"] ICache_ICache2["ICache"] - ICache_issue_req["issue_req"] + ICache_accept_res["accept_res"] ICache_ICache3["ICache"] subgraph HwCounter["perf_loads HwCounter"] HwCounter__incr["_incr"] @@ -108,8 +108,8 @@ HwExpHistogram__add["_add"] end subgraph FIFO1["fifo FIFO"] - FIFO1_write["write"] FIFO1_read["read"] + FIFO1_write["write"] end end subgraph FIFO2["req_fifo FIFO"] @@ -117,8 +117,8 @@ FIFO2_write["write"] end subgraph Forwarder3["res_fwd Forwarder"] - Forwarder3_read["read"] Forwarder3_write["write"] + Forwarder3_read["read"] end end subgraph FRAT["FRAT FRAT"] @@ -129,17 +129,17 @@ RRAT_commit["commit"] end subgraph RegisterFile["RF RegisterFile"] - RegisterFile_write["write"] - RegisterFile_read2["read2"] RegisterFile_read1["read1"] + RegisterFile_read2["read2"] RegisterFile_free["free"] + RegisterFile_write["write"] end subgraph ReorderBuffer["ROB ReorderBuffer"] ReorderBuffer_retire["retire"] ReorderBuffer_peek["peek"] - ReorderBuffer_get_indices["get_indices"] ReorderBuffer_put["put"] ReorderBuffer_mark_done["mark_done"] + ReorderBuffer_get_indices["get_indices"] subgraph LatencyMeasurer1["perf_rob_wait_time LatencyMeasurer"] LatencyMeasurer1__stop["_stop"] LatencyMeasurer1__start["_start"] @@ -147,25 +147,25 @@ HwExpHistogram1__add["_add"] end subgraph FIFO3["fifo FIFO"] - FIFO3_read["read"] FIFO3_write["write"] + FIFO3_read["read"] end end end subgraph Fetch["fetch Fetch"] - Fetch_stall_exception["stall_exception"] + Fetch_resume["resume"] Fetch_Fetch["Fetch"] + Fetch_stall_exception["stall_exception"] Fetch_Fetch1["Fetch"] - Fetch_resume["resume"] subgraph BasicFifo3["fetch_target_queue BasicFifo"] - BasicFifo3_write["write"] BasicFifo3_read["read"] + BasicFifo3_write["write"] end end subgraph ExceptionCauseRegister["exception_cause_register ExceptionCauseRegister"] - ExceptionCauseRegister_report["report"] - ExceptionCauseRegister_clear["clear"] ExceptionCauseRegister_get["get"] + ExceptionCauseRegister_clear["clear"] + ExceptionCauseRegister_report["report"] subgraph BasicFifo4["fu_report_fifo BasicFifo"] BasicFifo4_read["read"] BasicFifo4_write["write"] @@ -178,8 +178,8 @@ subgraph Collector["result_collector Collector"] Collector_method["method"] subgraph Forwarder4["forwarder Forwarder"] - Forwarder4_write["write"] Forwarder4_read["read"] + Forwarder4_write["write"] end subgraph ManyToOneConnectTrans["connect ManyToOneConnectTrans"] subgraph ConnectTrans1["ManyToOneConnectTrans_input_0 ConnectTrans"] @@ -197,20 +197,20 @@ 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_select["select"] + RSFuncBlock_insert["insert"] subgraph RS["rs RS"] - RS_update["update"] - RS_insert["insert"] RS_RS["RS"] + RS_take["take"] RS_RS1["RS"] RS_RS2["RS"] - RS_select["select"] + RS_update["update"] RS_RS3["RS"] - RS_take["take"] + RS_insert["insert"] RS_RS4["RS"] + RS_select["select"] end subgraph AluFuncUnit["func_unit_0 AluFuncUnit"] AluFuncUnit_issue["issue"] @@ -224,22 +224,22 @@ WakeupSelect_WakeupSelect["WakeupSelect"] end subgraph ShiftFuncUnit["func_unit_1 ShiftFuncUnit"] - ShiftFuncUnit_issue["issue"] ShiftFuncUnit_accept["accept"] + ShiftFuncUnit_issue["issue"] subgraph FIFO5["fifo FIFO"] - FIFO5_read["read"] FIFO5_write["write"] + FIFO5_read["read"] end end subgraph WakeupSelect1["wakeup_select_1 WakeupSelect"] WakeupSelect1_WakeupSelect["WakeupSelect"] end subgraph JumpBranchFuncUnit["func_unit_2 JumpBranchFuncUnit"] - JumpBranchFuncUnit_accept["accept"] JumpBranchFuncUnit_issue["issue"] + JumpBranchFuncUnit_accept["accept"] subgraph FIFO6["fifo_branch_resolved FIFO"] - FIFO6_write["write"] FIFO6_read["read"] + FIFO6_write["write"] end subgraph HwCounter5["perf_jumps HwCounter"] HwCounter5__incr["_incr"] @@ -251,16 +251,16 @@ 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_accept["accept"] ExceptionFuncUnit_issue["issue"] + ExceptionFuncUnit_accept["accept"] subgraph FIFO8["fifo FIFO"] FIFO8_write["write"] FIFO8_read["read"] @@ -307,42 +307,42 @@ end end subgraph LSUDummy["rs_block_1 LSUDummy"] - LSUDummy_LSUDummy["LSUDummy"] - LSUDummy_precommit["precommit"] - LSUDummy_LSUDummy1["LSUDummy"] LSUDummy_get_result["get_result"] - LSUDummy_select["select"] - LSUDummy_LSUDummy2["LSUDummy"] LSUDummy_insert["insert"] + LSUDummy_LSUDummy["LSUDummy"] + LSUDummy_select["select"] + LSUDummy_LSUDummy1["LSUDummy"] LSUDummy_update["update"] + LSUDummy_LSUDummy2["LSUDummy"] + LSUDummy_precommit["precommit"] subgraph Forwarder6["forwarder Forwarder"] - Forwarder6_write["write"] Forwarder6_read["read"] + Forwarder6_write["write"] end subgraph LSURequester["requester LSURequester"] - LSURequester_accept["accept"] + LSURequester_issue_cond1["issue_cond1"] LSURequester_issue["issue"] - LSURequester_issue_cond2["issue_cond2"] LSURequester_accept_cond0["accept_cond0"] LSURequester_issue_cond0["issue_cond0"] - LSURequester_issue_cond1["issue_cond1"] + LSURequester_issue_cond2["issue_cond2"] LSURequester_accept_cond1["accept_cond1"] + LSURequester_accept["accept"] end end subgraph CSRUnit["rs_block_2 CSRUnit"] - CSRUnit_select["select"] CSRUnit_update["update"] - CSRUnit_CSRUnit["CSRUnit"] CSRUnit_precommit["precommit"] CSRUnit_get_result["get_result"] + CSRUnit_CSRUnit["CSRUnit"] CSRUnit_insert["insert"] CSRUnit_fetch_resume["fetch_resume"] + CSRUnit_select["select"] end subgraph MethodTryProduct["InstructionPrecommitKey_unifier MethodTryProduct"] MethodTryProduct_MethodTryProduct["MethodTryProduct"] - MethodTryProduct_method["method"] MethodTryProduct_MethodTryProduct1["MethodTryProduct"] MethodTryProduct_MethodTryProduct2["MethodTryProduct"] + MethodTryProduct_method["method"] end subgraph Collector2["FetchResumeKey_unifier Collector"] Collector2_method["method"] @@ -364,9 +364,9 @@ ResultAnnouncement_ResultAnnouncement["ResultAnnouncement"] end subgraph InterruptController["interrupt_controller InterruptController"] - InterruptController_report_interrupt["report_interrupt"] - InterruptController_mret["mret"] InterruptController_entry["entry"] + InterruptController_mret["mret"] + InterruptController_report_interrupt["report_interrupt"] end subgraph GenericCSRRegisters["csr_generic GenericCSRRegisters"] GenericCSRRegisters_GenericCSRRegisters["GenericCSRRegisters"] @@ -377,40 +377,40 @@ CSRRegister__fu_read["_fu_read"] end subgraph CSRRegister1["mtvec CSRRegister"] - CSRRegister1__fu_write["_fu_write"] CSRRegister1_read["read"] CSRRegister1__fu_read["_fu_read"] + CSRRegister1__fu_write["_fu_write"] end subgraph CSRRegister2["mepc CSRRegister"] - CSRRegister2__fu_write["_fu_write"] - CSRRegister2_write["write"] CSRRegister2_read["read"] CSRRegister2__fu_read["_fu_read"] + CSRRegister2_write["write"] + CSRRegister2__fu_write["_fu_write"] end end subgraph DoubleCounterCSR["csr_cycle DoubleCounterCSR"] DoubleCounterCSR_increment["increment"] subgraph CSRRegister3["register_low CSRRegister"] CSRRegister3_read["read"] - CSRRegister3__fu_read["_fu_read"] CSRRegister3_write["write"] + CSRRegister3__fu_read["_fu_read"] end subgraph CSRRegister4["register_high CSRRegister"] - CSRRegister4_write["write"] CSRRegister4__fu_read["_fu_read"] CSRRegister4_read["read"] + CSRRegister4_write["write"] end end subgraph DoubleCounterCSR1["csr_time DoubleCounterCSR"] DoubleCounterCSR1_increment["increment"] subgraph CSRRegister5["register_low CSRRegister"] - CSRRegister5_write["write"] CSRRegister5__fu_read["_fu_read"] CSRRegister5_read["read"] + CSRRegister5_write["write"] end subgraph CSRRegister6["register_high CSRRegister"] - CSRRegister6_write["write"] CSRRegister6_read["read"] + CSRRegister6_write["write"] CSRRegister6__fu_read["_fu_read"] end end @@ -441,15 +441,15 @@ Renaming_Renaming["Renaming"] end subgraph FIFO12["reg_alloc_out_buf FIFO"] - FIFO12_write["write"] FIFO12_read["read"] + FIFO12_write["write"] end subgraph ROBAllocation["rob_alloc ROBAllocation"] ROBAllocation_ROBAllocation["ROBAllocation"] end subgraph FIFO13["rs_select_out_buf FIFO"] - FIFO13_read["read"] FIFO13_write["write"] + FIFO13_read["read"] end subgraph RSSelection["rs_selector RSSelection"] RSSelection_RSSelection["RSSelection"] @@ -469,25 +469,25 @@ ConnectTrans11_ConnectTrans["ConnectTrans"] end subgraph Retirement["retirement Retirement"] + Retirement_core_state["core_state"] Retirement_Retirement["Retirement"] Retirement_Retirement1["Retirement"] Retirement_Retirement2["Retirement"] - Retirement_Retirement_cond0["Retirement_cond0"] - Retirement_core_state["core_state"] - Retirement_Retirement_cond1["Retirement_cond1"] Retirement_Retirement3["Retirement"] + Retirement_Retirement_cond1["Retirement_cond1"] Retirement_Retirement4["Retirement"] + Retirement_Retirement_cond0["Retirement_cond0"] subgraph DoubleCounterCSR2["instret_csr DoubleCounterCSR"] DoubleCounterCSR2_increment["increment"] subgraph CSRRegister7["register_low CSRRegister"] - CSRRegister7__fu_read["_fu_read"] - CSRRegister7_write["write"] CSRRegister7_read["read"] + CSRRegister7_write["write"] + CSRRegister7__fu_read["_fu_read"] end subgraph CSRRegister8["register_high CSRRegister"] + CSRRegister8_write["write"] CSRRegister8__fu_read["_fu_read"] CSRRegister8_read["read"] - CSRRegister8_write["write"] end end subgraph HwCounter9["perf_instr_ret HwCounter"] @@ -512,61 +512,61 @@ end end subgraph TransactionManager["transactionManager TransactionManager"] - TransactionManager_LSUDummy_issue_cond0["LSUDummy_issue_cond0"] - TransactionManager_LSUDummy_accept_cond1["LSUDummy_accept_cond1"] - TransactionManager_issue_cond2_LSUDummy["issue_cond2_LSUDummy"] - TransactionManager_LSUDummy_accept_cond0["LSUDummy_accept_cond0"] TransactionManager_Retirement_cond1_Retirement["Retirement_cond1_Retirement"] - TransactionManager_issue_cond1_LSUDummy["issue_cond1_LSUDummy"] - TransactionManager_Retirement_Retirement_cond0["Retirement_Retirement_cond0"] + TransactionManager_Retirement_cond0_Retirement["Retirement_cond0_Retirement"] + TransactionManager_LSUDummy_accept_cond0["LSUDummy_accept_cond0"] + TransactionManager_LSUDummy_accept_cond1["LSUDummy_accept_cond1"] + TransactionManager_LSUDummy_issue_cond1["LSUDummy_issue_cond1"] + TransactionManager_LSUDummy_issue_cond2["LSUDummy_issue_cond2"] + TransactionManager_LSUDummy_issue_cond0["LSUDummy_issue_cond0"] end end Core_InitFreeRFFifo --> BasicFifo2_write - Retirement_Retirement3 --> BasicFifo2_write - TransactionManager_Retirement_Retirement_cond0 --> BasicFifo2_write + Retirement_Retirement --> BasicFifo2_write + TransactionManager_Retirement_cond0_Retirement --> BasicFifo2_write TransactionManager_Retirement_cond1_Retirement --> 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_Serializer1 + SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> Serializer_Serializer SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> BasicFifo_write SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> WishboneMaster_request ICache_ICache2 <--> HwCounter4__incr - ICache_ICache1 <--> HwCounter3__incr - ICache_ICache1 <--> HwCounter2__incr - ICache_ICache1 <--> HwCounter1__incr - ICache_ICache1 --> Forwarder3_write - ICache_ICache3 --> SimpleCommonBusCacheRefiller_start_refill + ICache_ICache <--> HwCounter3__incr + ICache_ICache <--> HwCounter2__incr + ICache_ICache <--> HwCounter1__incr + ICache_ICache --> Forwarder3_write + ICache_ICache1 --> SimpleCommonBusCacheRefiller_start_refill + ICache_ICache1 --> Forwarder2_write ICache_ICache3 --> Forwarder2_write - ICache_ICache --> Forwarder2_write - SimpleCommonBusCacheRefiller_accept_refill --> ICache_ICache - WishboneMasterAdapter_get_read_response --> ICache_ICache - Serializer_Serializer --> ICache_ICache - BasicFifo_read --> ICache_ICache - WishboneMaster_result --> ICache_ICache - Forwarder_read --> ICache_ICache - 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 + 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_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 @@ -576,7 +576,7 @@ RegAllocation_RegAllocation --> FIFO10_write FIFO10_read --> Renaming_Renaming Renaming_Renaming --> FRAT_rename - Retirement_Retirement3 --> FRAT_rename + Retirement_Retirement --> FRAT_rename TransactionManager_Retirement_cond1_Retirement --> FRAT_rename Renaming_Renaming --> FIFO11_write FIFO11_read --> ROBAllocation_ROBAllocation @@ -584,17 +584,17 @@ ROBAllocation_ROBAllocation <--> LatencyMeasurer1__start ROBAllocation_ROBAllocation --> FIFO3_write ROBAllocation_ROBAllocation --> FIFO12_write - FIFO12_read --> RSSelection_RSSelection2 - RSSelection_RSSelection2 --> Forwarder8_write - Forwarder8_read --> RSSelection_RSSelection1 + FIFO12_read --> RSSelection_RSSelection1 + RSSelection_RSSelection1 --> Forwarder8_write Forwarder8_read --> RSSelection_RSSelection + Forwarder8_read --> RSSelection_RSSelection2 Forwarder8_read --> RSSelection_RSSelection3 - RSFuncBlock_select --> RSSelection_RSSelection1 - RS_select --> RSSelection_RSSelection1 - RSSelection_RSSelection1 --> FIFO13_write + RSFuncBlock_select --> RSSelection_RSSelection + RS_select --> RSSelection_RSSelection RSSelection_RSSelection --> FIFO13_write + RSSelection_RSSelection2 --> FIFO13_write RSSelection_RSSelection3 --> FIFO13_write - RSSelection_RSSelection <--> LSUDummy_select + RSSelection_RSSelection2 <--> LSUDummy_select RSSelection_RSSelection3 <--> CSRUnit_select FIFO13_read --> RSInsertion_RSInsertion RegisterFile_read1 --> RSInsertion_RSInsertion @@ -611,7 +611,7 @@ Collector2_method --> ConnectTrans11_ConnectTrans Forwarder7_read --> ConnectTrans11_ConnectTrans ConnectTrans11_ConnectTrans --> Fetch_resume - Retirement_Retirement --> Fetch_resume + Retirement_Retirement4 --> Fetch_resume Collector_method --> ResultAnnouncement_ResultAnnouncement Forwarder4_read --> ResultAnnouncement_ResultAnnouncement ResultAnnouncement_ResultAnnouncement --> ReorderBuffer_mark_done @@ -633,7 +633,7 @@ RS_RS3 --> WakeupSelect1_WakeupSelect WakeupSelect1_WakeupSelect --> ShiftFuncUnit_issue WakeupSelect1_WakeupSelect --> FIFO5_write - RS_RS4 --> WakeupSelect2_WakeupSelect + RS_RS1 --> WakeupSelect2_WakeupSelect WakeupSelect2_WakeupSelect --> JumpBranchFuncUnit_issue WakeupSelect2_WakeupSelect <--> HwCounter5__incr WakeupSelect2_WakeupSelect <--> HwCounter6__incr @@ -648,7 +648,7 @@ RS_RS2 --> WakeupSelect3_WakeupSelect WakeupSelect3_WakeupSelect --> ExceptionFuncUnit_issue WakeupSelect3_WakeupSelect --> FIFO8_write - RS_RS1 --> WakeupSelect4_WakeupSelect + RS_RS4 --> WakeupSelect4_WakeupSelect WakeupSelect4_WakeupSelect --> PrivilegedFuncUnit_issue ConnectTrans4_ConnectTrans --> Forwarder5_write ConnectTrans5_ConnectTrans --> Forwarder5_write @@ -666,12 +666,12 @@ PrivilegedFuncUnit_accept --> ConnectTrans8_ConnectTrans CSRRegister2_read --> ConnectTrans8_ConnectTrans ConnectTrans8_ConnectTrans --> BasicFifo5_write - LSUDummy_LSUDummy --> Forwarder6_write - TransactionManager_LSUDummy_accept_cond0 --> Forwarder6_write - TransactionManager_LSUDummy_issue_cond0 --> Forwarder6_write - TransactionManager_issue_cond2_LSUDummy --> Forwarder6_write + LSUDummy_LSUDummy1 --> Forwarder6_write TransactionManager_LSUDummy_accept_cond1 --> Forwarder6_write - TransactionManager_issue_cond1_LSUDummy --> Forwarder6_write + TransactionManager_LSUDummy_issue_cond1 --> Forwarder6_write + TransactionManager_LSUDummy_issue_cond0 --> Forwarder6_write + TransactionManager_LSUDummy_issue_cond2 --> Forwarder6_write + TransactionManager_LSUDummy_accept_cond0 --> Forwarder6_write CSRRegister__fu_read --> CSRUnit_CSRUnit CSRUnit_CSRUnit --> CSRRegister__fu_write CSRRegister1__fu_read --> CSRUnit_CSRUnit @@ -695,43 +695,43 @@ CSRUnit_get_result --> ConnectTrans3_ConnectTrans MethodTryProduct_MethodTryProduct1 --> PrivilegedFuncUnit_precommit MethodTryProduct_MethodTryProduct1 <--> InterruptController_mret - MethodTryProduct_MethodTryProduct2 --> LSUDummy_precommit - MethodTryProduct_MethodTryProduct --> CSRUnit_precommit + MethodTryProduct_MethodTryProduct --> LSUDummy_precommit + MethodTryProduct_MethodTryProduct2 --> CSRUnit_precommit ConnectTrans9_ConnectTrans --> Forwarder7_write ConnectTrans10_ConnectTrans --> Forwarder7_write BasicFifo5_read --> ConnectTrans9_ConnectTrans CSRUnit_fetch_resume --> ConnectTrans10_ConnectTrans ReorderBuffer_peek --> Retirement_Retirement1 - ReorderBuffer_peek --> Retirement_Retirement4 - ReorderBuffer_peek --> Retirement_Retirement3 - ReorderBuffer_peek --> TransactionManager_Retirement_Retirement_cond0 + ReorderBuffer_peek --> Retirement_Retirement2 + ReorderBuffer_peek --> Retirement_Retirement + ReorderBuffer_peek --> TransactionManager_Retirement_cond0_Retirement ReorderBuffer_peek --> TransactionManager_Retirement_cond1_Retirement Retirement_Retirement1 --> MethodTryProduct_method - ExceptionCauseRegister_get --> Retirement_Retirement4 - ExceptionCauseRegister_get --> TransactionManager_Retirement_Retirement_cond0 + ExceptionCauseRegister_get --> Retirement_Retirement2 + ExceptionCauseRegister_get --> TransactionManager_Retirement_cond0_Retirement ExceptionCauseRegister_get --> TransactionManager_Retirement_cond1_Retirement - Retirement_Retirement3 <--> ReorderBuffer_retire - TransactionManager_Retirement_Retirement_cond0 <--> ReorderBuffer_retire + Retirement_Retirement <--> ReorderBuffer_retire + TransactionManager_Retirement_cond0_Retirement <--> ReorderBuffer_retire TransactionManager_Retirement_cond1_Retirement <--> ReorderBuffer_retire - Retirement_Retirement3 <--> LatencyMeasurer1__stop - TransactionManager_Retirement_Retirement_cond0 <--> LatencyMeasurer1__stop + Retirement_Retirement <--> LatencyMeasurer1__stop + TransactionManager_Retirement_cond0_Retirement <--> LatencyMeasurer1__stop TransactionManager_Retirement_cond1_Retirement <--> LatencyMeasurer1__stop - FIFO3_read --> Retirement_Retirement3 - FIFO3_read --> TransactionManager_Retirement_Retirement_cond0 + FIFO3_read --> Retirement_Retirement + FIFO3_read --> TransactionManager_Retirement_cond0_Retirement FIFO3_read --> TransactionManager_Retirement_cond1_Retirement - Retirement_Retirement3 --> HwExpHistogram1__add - TransactionManager_Retirement_Retirement_cond0 --> HwExpHistogram1__add + Retirement_Retirement --> HwExpHistogram1__add + TransactionManager_Retirement_cond0_Retirement --> HwExpHistogram1__add TransactionManager_Retirement_cond1_Retirement --> HwExpHistogram1__add - CoreInstructionCounter_decrement --> Retirement_Retirement3 - CoreInstructionCounter_decrement --> TransactionManager_Retirement_Retirement_cond0 + CoreInstructionCounter_decrement --> Retirement_Retirement + CoreInstructionCounter_decrement --> TransactionManager_Retirement_cond0_Retirement CoreInstructionCounter_decrement --> TransactionManager_Retirement_cond1_Retirement - RRAT_peek --> Retirement_Retirement3 + RRAT_peek --> Retirement_Retirement RRAT_peek --> TransactionManager_Retirement_cond1_Retirement - Retirement_Retirement3 --> RegisterFile_free - TransactionManager_Retirement_Retirement_cond0 --> RegisterFile_free + Retirement_Retirement --> RegisterFile_free + TransactionManager_Retirement_cond0_Retirement --> RegisterFile_free TransactionManager_Retirement_cond1_Retirement --> RegisterFile_free - CSRRegister1_read --> Retirement_Retirement - Retirement_Retirement <--> ExceptionCauseRegister_clear + CSRRegister1_read --> Retirement_Retirement4 + Retirement_Retirement4 <--> ExceptionCauseRegister_clear GenericCSRRegisters_GenericCSRRegisters <--> DoubleCounterCSR_increment CSRRegister3_read --> GenericCSRRegisters_GenericCSRRegisters GenericCSRRegisters_GenericCSRRegisters --> CSRRegister3_write @@ -743,53 +743,53 @@ CSRRegister6_read --> GenericCSRRegisters_GenericCSRRegisters GenericCSRRegisters_GenericCSRRegisters --> CSRRegister6_write AdapterTrans2_AdapterTrans_report_interrupt <--> InterruptController_report_interrupt - TransactionManager_LSUDummy_accept_cond0 <--> LSUDummy_LSUDummy1 - TransactionManager_LSUDummy_accept_cond1 <--> LSUDummy_LSUDummy1 - LSURequester_accept --> TransactionManager_LSUDummy_accept_cond0 + 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_Retirement3 + TransactionManager_Retirement_cond1_Retirement <--> Retirement_Retirement3 + TransactionManager_Retirement_cond0_Retirement --> CSRRegister_write + TransactionManager_Retirement_cond1_Retirement --> CSRRegister_write + TransactionManager_Retirement_cond0_Retirement --> CSRRegister2_write + TransactionManager_Retirement_cond1_Retirement --> CSRRegister2_write + TransactionManager_Retirement_cond0_Retirement <--> InterruptController_entry + TransactionManager_Retirement_cond1_Retirement <--> InterruptController_entry + TransactionManager_LSUDummy_accept_cond1 <--> LSUDummy_LSUDummy2 + TransactionManager_LSUDummy_accept_cond0 <--> LSUDummy_LSUDummy2 LSURequester_accept --> TransactionManager_LSUDummy_accept_cond1 - TransactionManager_LSUDummy_accept_cond0 <--> LSURequester_accept_cond0 - WishboneMasterAdapter1_get_write_response --> TransactionManager_LSUDummy_accept_cond0 - Serializer1_Serializer --> TransactionManager_LSUDummy_accept_cond0 - BasicFifo1_read --> TransactionManager_LSUDummy_accept_cond0 + LSURequester_accept --> TransactionManager_LSUDummy_accept_cond0 + TransactionManager_LSUDummy_accept_cond1 <--> LSURequester_accept_cond1 + WishboneMasterAdapter1_get_read_response --> TransactionManager_LSUDummy_accept_cond1 + Serializer1_Serializer --> TransactionManager_LSUDummy_accept_cond1 BasicFifo1_read --> TransactionManager_LSUDummy_accept_cond1 - WishboneMaster1_result --> TransactionManager_LSUDummy_accept_cond0 + BasicFifo1_read --> TransactionManager_LSUDummy_accept_cond0 WishboneMaster1_result --> TransactionManager_LSUDummy_accept_cond1 - Forwarder1_read --> TransactionManager_LSUDummy_accept_cond0 + WishboneMaster1_result --> TransactionManager_LSUDummy_accept_cond0 Forwarder1_read --> TransactionManager_LSUDummy_accept_cond1 - TransactionManager_LSUDummy_issue_cond0 <--> LSUDummy_LSUDummy2 - TransactionManager_issue_cond2_LSUDummy <--> LSUDummy_LSUDummy2 - TransactionManager_issue_cond1_LSUDummy <--> LSUDummy_LSUDummy2 + Forwarder1_read --> TransactionManager_LSUDummy_accept_cond0 + TransactionManager_Retirement_cond1_Retirement <--> Retirement_Retirement_cond1 + TransactionManager_LSUDummy_issue_cond1 <--> LSUDummy_LSUDummy + TransactionManager_LSUDummy_issue_cond0 <--> LSUDummy_LSUDummy + TransactionManager_LSUDummy_issue_cond2 <--> LSUDummy_LSUDummy + TransactionManager_LSUDummy_issue_cond1 --> LSURequester_issue TransactionManager_LSUDummy_issue_cond0 --> LSURequester_issue - TransactionManager_issue_cond2_LSUDummy --> LSURequester_issue - TransactionManager_issue_cond1_LSUDummy --> LSURequester_issue - TransactionManager_LSUDummy_issue_cond0 <--> LSURequester_issue_cond0 - TransactionManager_LSUDummy_issue_cond0 --> WishboneMasterAdapter1_request_write - TransactionManager_LSUDummy_issue_cond0 --> Serializer1_Serializer2 + TransactionManager_LSUDummy_issue_cond2 --> LSURequester_issue + TransactionManager_LSUDummy_issue_cond1 <--> LSURequester_issue_cond1 + TransactionManager_LSUDummy_issue_cond1 --> WishboneMasterAdapter1_request_read + TransactionManager_LSUDummy_issue_cond1 --> Serializer1_Serializer2 + TransactionManager_LSUDummy_issue_cond1 --> BasicFifo1_write TransactionManager_LSUDummy_issue_cond0 --> BasicFifo1_write - TransactionManager_issue_cond1_LSUDummy --> BasicFifo1_write + TransactionManager_LSUDummy_issue_cond1 --> WishboneMaster1_request TransactionManager_LSUDummy_issue_cond0 --> WishboneMaster1_request - TransactionManager_issue_cond1_LSUDummy --> WishboneMaster1_request - TransactionManager_issue_cond2_LSUDummy <--> LSURequester_issue_cond2 - TransactionManager_Retirement_Retirement_cond0 <--> Retirement_Retirement2 - TransactionManager_Retirement_cond1_Retirement <--> Retirement_Retirement2 - TransactionManager_Retirement_Retirement_cond0 --> CSRRegister_write - TransactionManager_Retirement_cond1_Retirement --> CSRRegister_write - TransactionManager_Retirement_Retirement_cond0 --> CSRRegister2_write - TransactionManager_Retirement_cond1_Retirement --> CSRRegister2_write - TransactionManager_Retirement_Retirement_cond0 <--> InterruptController_entry - TransactionManager_Retirement_cond1_Retirement <--> 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_LSUDummy_accept_cond1 <--> LSURequester_accept_cond1 - WishboneMasterAdapter1_get_read_response --> TransactionManager_LSUDummy_accept_cond1 - Serializer1_Serializer1 --> TransactionManager_LSUDummy_accept_cond1 - TransactionManager_Retirement_cond1_Retirement <--> Retirement_Retirement_cond1 - TransactionManager_issue_cond1_LSUDummy <--> LSURequester_issue_cond1 - TransactionManager_issue_cond1_LSUDummy --> WishboneMasterAdapter1_request_read - TransactionManager_issue_cond1_LSUDummy --> Serializer1_Serializer3 + TransactionManager_LSUDummy_issue_cond0 <--> LSURequester_issue_cond0 + TransactionManager_LSUDummy_issue_cond0 --> WishboneMasterAdapter1_request_write + TransactionManager_LSUDummy_issue_cond0 --> Serializer1_Serializer1 + TransactionManager_LSUDummy_issue_cond2 <--> LSURequester_issue_cond2 + TransactionManager_LSUDummy_accept_cond0 <--> LSURequester_accept_cond0 + WishboneMasterAdapter1_get_write_response --> TransactionManager_LSUDummy_accept_cond0 + Serializer1_Serializer3 --> TransactionManager_LSUDummy_accept_cond0 diff --git a/api.html b/api.html index b4f5cab57..1632f131e 100644 --- a/api.html +++ b/api.html @@ -281,7 +281,7 @@

transactron

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/assumptions.html b/assumptions.html index 820b0c878..e90fe2e23 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 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/auto_graph.html b/auto_graph.html index d6f5d5e69..94f37c369 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_request["request"] - WishboneMaster_result["result"] WishboneMaster_WishboneMaster["WishboneMaster"] + WishboneMaster_result["result"] + WishboneMaster_request["request"] subgraph Forwarder["result Forwarder"] - Forwarder_read["read"] Forwarder_write["write"] + Forwarder_read["read"] end end subgraph WishboneMaster1["wb_master_data WishboneMaster"] @@ -99,13 +99,13 @@ WishboneMaster1_result["result"] WishboneMaster1_WishboneMaster["WishboneMaster"] subgraph Forwarder1["result Forwarder"] - Forwarder1_write["write"] Forwarder1_read["read"] + Forwarder1_write["write"] 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"] @@ -116,10 +116,10 @@ end end subgraph WishboneMasterAdapter1["bus_master_data_adapter WishboneMasterAdapter"] - WishboneMasterAdapter1_get_write_response["get_write_response"] WishboneMasterAdapter1_request_read["request_read"] WishboneMasterAdapter1_get_read_response["get_read_response"] WishboneMasterAdapter1_request_write["request_write"] + WishboneMasterAdapter1_get_write_response["get_write_response"] subgraph Serializer1["bus_serializer Serializer"] Serializer1_Serializer["Serializer"] Serializer1_Serializer1["Serializer"] @@ -132,8 +132,8 @@ end end subgraph CoreInstructionCounter["core_counter CoreInstructionCounter"] - CoreInstructionCounter_increment["increment"] CoreInstructionCounter_decrement["decrement"] + CoreInstructionCounter_increment["increment"] end subgraph FIFO["fifo_fetch FIFO"] FIFO_write["write"] @@ -146,12 +146,12 @@ 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_start_refill["start_refill"] SimpleCommonBusCacheRefiller_accept_refill["accept_refill"] subgraph Forwarder2["address_fwd Forwarder"] Forwarder2_read["read"] @@ -159,11 +159,11 @@ end end subgraph ICache["icache ICache"] + ICache_issue_req["issue_req"] ICache_ICache["ICache"] - ICache_accept_res["accept_res"] ICache_ICache1["ICache"] ICache_ICache2["ICache"] - ICache_issue_req["issue_req"] + ICache_accept_res["accept_res"] ICache_ICache3["ICache"] subgraph HwCounter["perf_loads HwCounter"] HwCounter__incr["_incr"] @@ -187,8 +187,8 @@ HwExpHistogram__add["_add"] end subgraph FIFO1["fifo FIFO"] - FIFO1_write["write"] FIFO1_read["read"] + FIFO1_write["write"] end end subgraph FIFO2["req_fifo FIFO"] @@ -196,8 +196,8 @@ FIFO2_write["write"] end subgraph Forwarder3["res_fwd Forwarder"] - Forwarder3_read["read"] Forwarder3_write["write"] + Forwarder3_read["read"] end end subgraph FRAT["FRAT FRAT"] @@ -208,17 +208,17 @@ RRAT_commit["commit"] end subgraph RegisterFile["RF RegisterFile"] - RegisterFile_write["write"] - RegisterFile_read2["read2"] RegisterFile_read1["read1"] + RegisterFile_read2["read2"] RegisterFile_free["free"] + RegisterFile_write["write"] end subgraph ReorderBuffer["ROB ReorderBuffer"] ReorderBuffer_retire["retire"] ReorderBuffer_peek["peek"] - ReorderBuffer_get_indices["get_indices"] ReorderBuffer_put["put"] ReorderBuffer_mark_done["mark_done"] + ReorderBuffer_get_indices["get_indices"] subgraph LatencyMeasurer1["perf_rob_wait_time LatencyMeasurer"] LatencyMeasurer1__stop["_stop"] LatencyMeasurer1__start["_start"] @@ -226,25 +226,25 @@ HwExpHistogram1__add["_add"] end subgraph FIFO3["fifo FIFO"] - FIFO3_read["read"] FIFO3_write["write"] + FIFO3_read["read"] end end end subgraph Fetch["fetch Fetch"] - Fetch_stall_exception["stall_exception"] + Fetch_resume["resume"] Fetch_Fetch["Fetch"] + Fetch_stall_exception["stall_exception"] Fetch_Fetch1["Fetch"] - Fetch_resume["resume"] subgraph BasicFifo3["fetch_target_queue BasicFifo"] - BasicFifo3_write["write"] BasicFifo3_read["read"] + BasicFifo3_write["write"] end end subgraph ExceptionCauseRegister["exception_cause_register ExceptionCauseRegister"] - ExceptionCauseRegister_report["report"] - ExceptionCauseRegister_clear["clear"] ExceptionCauseRegister_get["get"] + ExceptionCauseRegister_clear["clear"] + ExceptionCauseRegister_report["report"] subgraph BasicFifo4["fu_report_fifo BasicFifo"] BasicFifo4_read["read"] BasicFifo4_write["write"] @@ -257,8 +257,8 @@ subgraph Collector["result_collector Collector"] Collector_method["method"] subgraph Forwarder4["forwarder Forwarder"] - Forwarder4_write["write"] Forwarder4_read["read"] + Forwarder4_write["write"] end subgraph ManyToOneConnectTrans["connect ManyToOneConnectTrans"] subgraph ConnectTrans1["ManyToOneConnectTrans_input_0 ConnectTrans"] @@ -276,20 +276,20 @@ 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_select["select"] + RSFuncBlock_insert["insert"] subgraph RS["rs RS"] - RS_update["update"] - RS_insert["insert"] RS_RS["RS"] + RS_take["take"] RS_RS1["RS"] RS_RS2["RS"] - RS_select["select"] + RS_update["update"] RS_RS3["RS"] - RS_take["take"] + RS_insert["insert"] RS_RS4["RS"] + RS_select["select"] end subgraph AluFuncUnit["func_unit_0 AluFuncUnit"] AluFuncUnit_issue["issue"] @@ -303,22 +303,22 @@ WakeupSelect_WakeupSelect["WakeupSelect"] end subgraph ShiftFuncUnit["func_unit_1 ShiftFuncUnit"] - ShiftFuncUnit_issue["issue"] ShiftFuncUnit_accept["accept"] + ShiftFuncUnit_issue["issue"] subgraph FIFO5["fifo FIFO"] - FIFO5_read["read"] FIFO5_write["write"] + FIFO5_read["read"] end end subgraph WakeupSelect1["wakeup_select_1 WakeupSelect"] WakeupSelect1_WakeupSelect["WakeupSelect"] end subgraph JumpBranchFuncUnit["func_unit_2 JumpBranchFuncUnit"] - JumpBranchFuncUnit_accept["accept"] JumpBranchFuncUnit_issue["issue"] + JumpBranchFuncUnit_accept["accept"] subgraph FIFO6["fifo_branch_resolved FIFO"] - FIFO6_write["write"] FIFO6_read["read"] + FIFO6_write["write"] end subgraph HwCounter5["perf_jumps HwCounter"] HwCounter5__incr["_incr"] @@ -330,16 +330,16 @@ 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_accept["accept"] ExceptionFuncUnit_issue["issue"] + ExceptionFuncUnit_accept["accept"] subgraph FIFO8["fifo FIFO"] FIFO8_write["write"] FIFO8_read["read"] @@ -386,42 +386,42 @@ end end subgraph LSUDummy["rs_block_1 LSUDummy"] - LSUDummy_LSUDummy["LSUDummy"] - LSUDummy_precommit["precommit"] - LSUDummy_LSUDummy1["LSUDummy"] LSUDummy_get_result["get_result"] - LSUDummy_select["select"] - LSUDummy_LSUDummy2["LSUDummy"] LSUDummy_insert["insert"] + LSUDummy_LSUDummy["LSUDummy"] + LSUDummy_select["select"] + LSUDummy_LSUDummy1["LSUDummy"] LSUDummy_update["update"] + LSUDummy_LSUDummy2["LSUDummy"] + LSUDummy_precommit["precommit"] subgraph Forwarder6["forwarder Forwarder"] - Forwarder6_write["write"] Forwarder6_read["read"] + Forwarder6_write["write"] end subgraph LSURequester["requester LSURequester"] - LSURequester_accept["accept"] + LSURequester_issue_cond1["issue_cond1"] LSURequester_issue["issue"] - LSURequester_issue_cond2["issue_cond2"] LSURequester_accept_cond0["accept_cond0"] LSURequester_issue_cond0["issue_cond0"] - LSURequester_issue_cond1["issue_cond1"] + LSURequester_issue_cond2["issue_cond2"] LSURequester_accept_cond1["accept_cond1"] + LSURequester_accept["accept"] end end subgraph CSRUnit["rs_block_2 CSRUnit"] - CSRUnit_select["select"] CSRUnit_update["update"] - CSRUnit_CSRUnit["CSRUnit"] CSRUnit_precommit["precommit"] CSRUnit_get_result["get_result"] + CSRUnit_CSRUnit["CSRUnit"] CSRUnit_insert["insert"] CSRUnit_fetch_resume["fetch_resume"] + CSRUnit_select["select"] end subgraph MethodTryProduct["InstructionPrecommitKey_unifier MethodTryProduct"] MethodTryProduct_MethodTryProduct["MethodTryProduct"] - MethodTryProduct_method["method"] MethodTryProduct_MethodTryProduct1["MethodTryProduct"] MethodTryProduct_MethodTryProduct2["MethodTryProduct"] + MethodTryProduct_method["method"] end subgraph Collector2["FetchResumeKey_unifier Collector"] Collector2_method["method"] @@ -443,9 +443,9 @@ ResultAnnouncement_ResultAnnouncement["ResultAnnouncement"] end subgraph InterruptController["interrupt_controller InterruptController"] - InterruptController_report_interrupt["report_interrupt"] - InterruptController_mret["mret"] InterruptController_entry["entry"] + InterruptController_mret["mret"] + InterruptController_report_interrupt["report_interrupt"] end subgraph GenericCSRRegisters["csr_generic GenericCSRRegisters"] GenericCSRRegisters_GenericCSRRegisters["GenericCSRRegisters"] @@ -456,40 +456,40 @@ CSRRegister__fu_read["_fu_read"] end subgraph CSRRegister1["mtvec CSRRegister"] - CSRRegister1__fu_write["_fu_write"] CSRRegister1_read["read"] CSRRegister1__fu_read["_fu_read"] + CSRRegister1__fu_write["_fu_write"] end subgraph CSRRegister2["mepc CSRRegister"] - CSRRegister2__fu_write["_fu_write"] - CSRRegister2_write["write"] CSRRegister2_read["read"] CSRRegister2__fu_read["_fu_read"] + CSRRegister2_write["write"] + CSRRegister2__fu_write["_fu_write"] end end subgraph DoubleCounterCSR["csr_cycle DoubleCounterCSR"] DoubleCounterCSR_increment["increment"] subgraph CSRRegister3["register_low CSRRegister"] CSRRegister3_read["read"] - CSRRegister3__fu_read["_fu_read"] CSRRegister3_write["write"] + CSRRegister3__fu_read["_fu_read"] end subgraph CSRRegister4["register_high CSRRegister"] - CSRRegister4_write["write"] CSRRegister4__fu_read["_fu_read"] CSRRegister4_read["read"] + CSRRegister4_write["write"] end end subgraph DoubleCounterCSR1["csr_time DoubleCounterCSR"] DoubleCounterCSR1_increment["increment"] subgraph CSRRegister5["register_low CSRRegister"] - CSRRegister5_write["write"] CSRRegister5__fu_read["_fu_read"] CSRRegister5_read["read"] + CSRRegister5_write["write"] end subgraph CSRRegister6["register_high CSRRegister"] - CSRRegister6_write["write"] CSRRegister6_read["read"] + CSRRegister6_write["write"] CSRRegister6__fu_read["_fu_read"] end end @@ -520,15 +520,15 @@ Renaming_Renaming["Renaming"] end subgraph FIFO12["reg_alloc_out_buf FIFO"] - FIFO12_write["write"] FIFO12_read["read"] + FIFO12_write["write"] end subgraph ROBAllocation["rob_alloc ROBAllocation"] ROBAllocation_ROBAllocation["ROBAllocation"] end subgraph FIFO13["rs_select_out_buf FIFO"] - FIFO13_read["read"] FIFO13_write["write"] + FIFO13_read["read"] end subgraph RSSelection["rs_selector RSSelection"] RSSelection_RSSelection["RSSelection"] @@ -548,25 +548,25 @@ ConnectTrans11_ConnectTrans["ConnectTrans"] end subgraph Retirement["retirement Retirement"] + Retirement_core_state["core_state"] Retirement_Retirement["Retirement"] Retirement_Retirement1["Retirement"] Retirement_Retirement2["Retirement"] - Retirement_Retirement_cond0["Retirement_cond0"] - Retirement_core_state["core_state"] - Retirement_Retirement_cond1["Retirement_cond1"] Retirement_Retirement3["Retirement"] + Retirement_Retirement_cond1["Retirement_cond1"] Retirement_Retirement4["Retirement"] + Retirement_Retirement_cond0["Retirement_cond0"] subgraph DoubleCounterCSR2["instret_csr DoubleCounterCSR"] DoubleCounterCSR2_increment["increment"] subgraph CSRRegister7["register_low CSRRegister"] - CSRRegister7__fu_read["_fu_read"] - CSRRegister7_write["write"] CSRRegister7_read["read"] + CSRRegister7_write["write"] + CSRRegister7__fu_read["_fu_read"] end subgraph CSRRegister8["register_high CSRRegister"] + CSRRegister8_write["write"] CSRRegister8__fu_read["_fu_read"] CSRRegister8_read["read"] - CSRRegister8_write["write"] end end subgraph HwCounter9["perf_instr_ret HwCounter"] @@ -591,61 +591,61 @@ end end subgraph TransactionManager["transactionManager TransactionManager"] - TransactionManager_LSUDummy_issue_cond0["LSUDummy_issue_cond0"] - TransactionManager_LSUDummy_accept_cond1["LSUDummy_accept_cond1"] - TransactionManager_issue_cond2_LSUDummy["issue_cond2_LSUDummy"] - TransactionManager_LSUDummy_accept_cond0["LSUDummy_accept_cond0"] TransactionManager_Retirement_cond1_Retirement["Retirement_cond1_Retirement"] - TransactionManager_issue_cond1_LSUDummy["issue_cond1_LSUDummy"] - TransactionManager_Retirement_Retirement_cond0["Retirement_Retirement_cond0"] + TransactionManager_Retirement_cond0_Retirement["Retirement_cond0_Retirement"] + TransactionManager_LSUDummy_accept_cond0["LSUDummy_accept_cond0"] + TransactionManager_LSUDummy_accept_cond1["LSUDummy_accept_cond1"] + TransactionManager_LSUDummy_issue_cond1["LSUDummy_issue_cond1"] + TransactionManager_LSUDummy_issue_cond2["LSUDummy_issue_cond2"] + TransactionManager_LSUDummy_issue_cond0["LSUDummy_issue_cond0"] end end Core_InitFreeRFFifo --> BasicFifo2_write -Retirement_Retirement3 --> BasicFifo2_write -TransactionManager_Retirement_Retirement_cond0 --> BasicFifo2_write +Retirement_Retirement --> BasicFifo2_write +TransactionManager_Retirement_cond0_Retirement --> BasicFifo2_write TransactionManager_Retirement_cond1_Retirement --> 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_Serializer1 +SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> Serializer_Serializer SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> BasicFifo_write SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> WishboneMaster_request ICache_ICache2 <--> HwCounter4__incr -ICache_ICache1 <--> HwCounter3__incr -ICache_ICache1 <--> HwCounter2__incr -ICache_ICache1 <--> HwCounter1__incr -ICache_ICache1 --> Forwarder3_write -ICache_ICache3 --> SimpleCommonBusCacheRefiller_start_refill +ICache_ICache <--> HwCounter3__incr +ICache_ICache <--> HwCounter2__incr +ICache_ICache <--> HwCounter1__incr +ICache_ICache --> Forwarder3_write +ICache_ICache1 --> SimpleCommonBusCacheRefiller_start_refill +ICache_ICache1 --> Forwarder2_write ICache_ICache3 --> Forwarder2_write -ICache_ICache --> Forwarder2_write -SimpleCommonBusCacheRefiller_accept_refill --> ICache_ICache -WishboneMasterAdapter_get_read_response --> ICache_ICache -Serializer_Serializer --> ICache_ICache -BasicFifo_read --> ICache_ICache -WishboneMaster_result --> ICache_ICache -Forwarder_read --> ICache_ICache -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 +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_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 @@ -655,7 +655,7 @@ RegAllocation_RegAllocation --> FIFO10_write FIFO10_read --> Renaming_Renaming Renaming_Renaming --> FRAT_rename -Retirement_Retirement3 --> FRAT_rename +Retirement_Retirement --> FRAT_rename TransactionManager_Retirement_cond1_Retirement --> FRAT_rename Renaming_Renaming --> FIFO11_write FIFO11_read --> ROBAllocation_ROBAllocation @@ -663,17 +663,17 @@ ROBAllocation_ROBAllocation <--> LatencyMeasurer1__start ROBAllocation_ROBAllocation --> FIFO3_write ROBAllocation_ROBAllocation --> FIFO12_write -FIFO12_read --> RSSelection_RSSelection2 -RSSelection_RSSelection2 --> Forwarder8_write -Forwarder8_read --> RSSelection_RSSelection1 +FIFO12_read --> RSSelection_RSSelection1 +RSSelection_RSSelection1 --> Forwarder8_write Forwarder8_read --> RSSelection_RSSelection +Forwarder8_read --> RSSelection_RSSelection2 Forwarder8_read --> RSSelection_RSSelection3 -RSFuncBlock_select --> RSSelection_RSSelection1 -RS_select --> RSSelection_RSSelection1 -RSSelection_RSSelection1 --> FIFO13_write +RSFuncBlock_select --> RSSelection_RSSelection +RS_select --> RSSelection_RSSelection RSSelection_RSSelection --> FIFO13_write +RSSelection_RSSelection2 --> FIFO13_write RSSelection_RSSelection3 --> FIFO13_write -RSSelection_RSSelection <--> LSUDummy_select +RSSelection_RSSelection2 <--> LSUDummy_select RSSelection_RSSelection3 <--> CSRUnit_select FIFO13_read --> RSInsertion_RSInsertion RegisterFile_read1 --> RSInsertion_RSInsertion @@ -690,7 +690,7 @@ Collector2_method --> ConnectTrans11_ConnectTrans Forwarder7_read --> ConnectTrans11_ConnectTrans ConnectTrans11_ConnectTrans --> Fetch_resume -Retirement_Retirement --> Fetch_resume +Retirement_Retirement4 --> Fetch_resume Collector_method --> ResultAnnouncement_ResultAnnouncement Forwarder4_read --> ResultAnnouncement_ResultAnnouncement ResultAnnouncement_ResultAnnouncement --> ReorderBuffer_mark_done @@ -712,7 +712,7 @@ RS_RS3 --> WakeupSelect1_WakeupSelect WakeupSelect1_WakeupSelect --> ShiftFuncUnit_issue WakeupSelect1_WakeupSelect --> FIFO5_write -RS_RS4 --> WakeupSelect2_WakeupSelect +RS_RS1 --> WakeupSelect2_WakeupSelect WakeupSelect2_WakeupSelect --> JumpBranchFuncUnit_issue WakeupSelect2_WakeupSelect <--> HwCounter5__incr WakeupSelect2_WakeupSelect <--> HwCounter6__incr @@ -727,7 +727,7 @@ RS_RS2 --> WakeupSelect3_WakeupSelect WakeupSelect3_WakeupSelect --> ExceptionFuncUnit_issue WakeupSelect3_WakeupSelect --> FIFO8_write -RS_RS1 --> WakeupSelect4_WakeupSelect +RS_RS4 --> WakeupSelect4_WakeupSelect WakeupSelect4_WakeupSelect --> PrivilegedFuncUnit_issue ConnectTrans4_ConnectTrans --> Forwarder5_write ConnectTrans5_ConnectTrans --> Forwarder5_write @@ -745,12 +745,12 @@ PrivilegedFuncUnit_accept --> ConnectTrans8_ConnectTrans CSRRegister2_read --> ConnectTrans8_ConnectTrans ConnectTrans8_ConnectTrans --> BasicFifo5_write -LSUDummy_LSUDummy --> Forwarder6_write -TransactionManager_LSUDummy_accept_cond0 --> Forwarder6_write -TransactionManager_LSUDummy_issue_cond0 --> Forwarder6_write -TransactionManager_issue_cond2_LSUDummy --> Forwarder6_write +LSUDummy_LSUDummy1 --> Forwarder6_write TransactionManager_LSUDummy_accept_cond1 --> Forwarder6_write -TransactionManager_issue_cond1_LSUDummy --> Forwarder6_write +TransactionManager_LSUDummy_issue_cond1 --> Forwarder6_write +TransactionManager_LSUDummy_issue_cond0 --> Forwarder6_write +TransactionManager_LSUDummy_issue_cond2 --> Forwarder6_write +TransactionManager_LSUDummy_accept_cond0 --> Forwarder6_write CSRRegister__fu_read --> CSRUnit_CSRUnit CSRUnit_CSRUnit --> CSRRegister__fu_write CSRRegister1__fu_read --> CSRUnit_CSRUnit @@ -774,43 +774,43 @@ CSRUnit_get_result --> ConnectTrans3_ConnectTrans MethodTryProduct_MethodTryProduct1 --> PrivilegedFuncUnit_precommit MethodTryProduct_MethodTryProduct1 <--> InterruptController_mret -MethodTryProduct_MethodTryProduct2 --> LSUDummy_precommit -MethodTryProduct_MethodTryProduct --> CSRUnit_precommit +MethodTryProduct_MethodTryProduct --> LSUDummy_precommit +MethodTryProduct_MethodTryProduct2 --> CSRUnit_precommit ConnectTrans9_ConnectTrans --> Forwarder7_write ConnectTrans10_ConnectTrans --> Forwarder7_write BasicFifo5_read --> ConnectTrans9_ConnectTrans CSRUnit_fetch_resume --> ConnectTrans10_ConnectTrans ReorderBuffer_peek --> Retirement_Retirement1 -ReorderBuffer_peek --> Retirement_Retirement4 -ReorderBuffer_peek --> Retirement_Retirement3 -ReorderBuffer_peek --> TransactionManager_Retirement_Retirement_cond0 +ReorderBuffer_peek --> Retirement_Retirement2 +ReorderBuffer_peek --> Retirement_Retirement +ReorderBuffer_peek --> TransactionManager_Retirement_cond0_Retirement ReorderBuffer_peek --> TransactionManager_Retirement_cond1_Retirement Retirement_Retirement1 --> MethodTryProduct_method -ExceptionCauseRegister_get --> Retirement_Retirement4 -ExceptionCauseRegister_get --> TransactionManager_Retirement_Retirement_cond0 +ExceptionCauseRegister_get --> Retirement_Retirement2 +ExceptionCauseRegister_get --> TransactionManager_Retirement_cond0_Retirement ExceptionCauseRegister_get --> TransactionManager_Retirement_cond1_Retirement -Retirement_Retirement3 <--> ReorderBuffer_retire -TransactionManager_Retirement_Retirement_cond0 <--> ReorderBuffer_retire +Retirement_Retirement <--> ReorderBuffer_retire +TransactionManager_Retirement_cond0_Retirement <--> ReorderBuffer_retire TransactionManager_Retirement_cond1_Retirement <--> ReorderBuffer_retire -Retirement_Retirement3 <--> LatencyMeasurer1__stop -TransactionManager_Retirement_Retirement_cond0 <--> LatencyMeasurer1__stop +Retirement_Retirement <--> LatencyMeasurer1__stop +TransactionManager_Retirement_cond0_Retirement <--> LatencyMeasurer1__stop TransactionManager_Retirement_cond1_Retirement <--> LatencyMeasurer1__stop -FIFO3_read --> Retirement_Retirement3 -FIFO3_read --> TransactionManager_Retirement_Retirement_cond0 +FIFO3_read --> Retirement_Retirement +FIFO3_read --> TransactionManager_Retirement_cond0_Retirement FIFO3_read --> TransactionManager_Retirement_cond1_Retirement -Retirement_Retirement3 --> HwExpHistogram1__add -TransactionManager_Retirement_Retirement_cond0 --> HwExpHistogram1__add +Retirement_Retirement --> HwExpHistogram1__add +TransactionManager_Retirement_cond0_Retirement --> HwExpHistogram1__add TransactionManager_Retirement_cond1_Retirement --> HwExpHistogram1__add -CoreInstructionCounter_decrement --> Retirement_Retirement3 -CoreInstructionCounter_decrement --> TransactionManager_Retirement_Retirement_cond0 +CoreInstructionCounter_decrement --> Retirement_Retirement +CoreInstructionCounter_decrement --> TransactionManager_Retirement_cond0_Retirement CoreInstructionCounter_decrement --> TransactionManager_Retirement_cond1_Retirement -RRAT_peek --> Retirement_Retirement3 +RRAT_peek --> Retirement_Retirement RRAT_peek --> TransactionManager_Retirement_cond1_Retirement -Retirement_Retirement3 --> RegisterFile_free -TransactionManager_Retirement_Retirement_cond0 --> RegisterFile_free +Retirement_Retirement --> RegisterFile_free +TransactionManager_Retirement_cond0_Retirement --> RegisterFile_free TransactionManager_Retirement_cond1_Retirement --> RegisterFile_free -CSRRegister1_read --> Retirement_Retirement -Retirement_Retirement <--> ExceptionCauseRegister_clear +CSRRegister1_read --> Retirement_Retirement4 +Retirement_Retirement4 <--> ExceptionCauseRegister_clear GenericCSRRegisters_GenericCSRRegisters <--> DoubleCounterCSR_increment CSRRegister3_read --> GenericCSRRegisters_GenericCSRRegisters GenericCSRRegisters_GenericCSRRegisters --> CSRRegister3_write @@ -822,56 +822,56 @@ CSRRegister6_read --> GenericCSRRegisters_GenericCSRRegisters GenericCSRRegisters_GenericCSRRegisters --> CSRRegister6_write AdapterTrans2_AdapterTrans_report_interrupt <--> InterruptController_report_interrupt -TransactionManager_LSUDummy_accept_cond0 <--> LSUDummy_LSUDummy1 -TransactionManager_LSUDummy_accept_cond1 <--> LSUDummy_LSUDummy1 -LSURequester_accept --> TransactionManager_LSUDummy_accept_cond0 +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_Retirement3 +TransactionManager_Retirement_cond1_Retirement <--> Retirement_Retirement3 +TransactionManager_Retirement_cond0_Retirement --> CSRRegister_write +TransactionManager_Retirement_cond1_Retirement --> CSRRegister_write +TransactionManager_Retirement_cond0_Retirement --> CSRRegister2_write +TransactionManager_Retirement_cond1_Retirement --> CSRRegister2_write +TransactionManager_Retirement_cond0_Retirement <--> InterruptController_entry +TransactionManager_Retirement_cond1_Retirement <--> InterruptController_entry +TransactionManager_LSUDummy_accept_cond1 <--> LSUDummy_LSUDummy2 +TransactionManager_LSUDummy_accept_cond0 <--> LSUDummy_LSUDummy2 LSURequester_accept --> TransactionManager_LSUDummy_accept_cond1 -TransactionManager_LSUDummy_accept_cond0 <--> LSURequester_accept_cond0 -WishboneMasterAdapter1_get_write_response --> TransactionManager_LSUDummy_accept_cond0 -Serializer1_Serializer --> TransactionManager_LSUDummy_accept_cond0 -BasicFifo1_read --> TransactionManager_LSUDummy_accept_cond0 +LSURequester_accept --> TransactionManager_LSUDummy_accept_cond0 +TransactionManager_LSUDummy_accept_cond1 <--> LSURequester_accept_cond1 +WishboneMasterAdapter1_get_read_response --> TransactionManager_LSUDummy_accept_cond1 +Serializer1_Serializer --> TransactionManager_LSUDummy_accept_cond1 BasicFifo1_read --> TransactionManager_LSUDummy_accept_cond1 -WishboneMaster1_result --> TransactionManager_LSUDummy_accept_cond0 +BasicFifo1_read --> TransactionManager_LSUDummy_accept_cond0 WishboneMaster1_result --> TransactionManager_LSUDummy_accept_cond1 -Forwarder1_read --> TransactionManager_LSUDummy_accept_cond0 +WishboneMaster1_result --> TransactionManager_LSUDummy_accept_cond0 Forwarder1_read --> TransactionManager_LSUDummy_accept_cond1 -TransactionManager_LSUDummy_issue_cond0 <--> LSUDummy_LSUDummy2 -TransactionManager_issue_cond2_LSUDummy <--> LSUDummy_LSUDummy2 -TransactionManager_issue_cond1_LSUDummy <--> LSUDummy_LSUDummy2 +Forwarder1_read --> TransactionManager_LSUDummy_accept_cond0 +TransactionManager_Retirement_cond1_Retirement <--> Retirement_Retirement_cond1 +TransactionManager_LSUDummy_issue_cond1 <--> LSUDummy_LSUDummy +TransactionManager_LSUDummy_issue_cond0 <--> LSUDummy_LSUDummy +TransactionManager_LSUDummy_issue_cond2 <--> LSUDummy_LSUDummy +TransactionManager_LSUDummy_issue_cond1 --> LSURequester_issue TransactionManager_LSUDummy_issue_cond0 --> LSURequester_issue -TransactionManager_issue_cond2_LSUDummy --> LSURequester_issue -TransactionManager_issue_cond1_LSUDummy --> LSURequester_issue -TransactionManager_LSUDummy_issue_cond0 <--> LSURequester_issue_cond0 -TransactionManager_LSUDummy_issue_cond0 --> WishboneMasterAdapter1_request_write -TransactionManager_LSUDummy_issue_cond0 --> Serializer1_Serializer2 +TransactionManager_LSUDummy_issue_cond2 --> LSURequester_issue +TransactionManager_LSUDummy_issue_cond1 <--> LSURequester_issue_cond1 +TransactionManager_LSUDummy_issue_cond1 --> WishboneMasterAdapter1_request_read +TransactionManager_LSUDummy_issue_cond1 --> Serializer1_Serializer2 +TransactionManager_LSUDummy_issue_cond1 --> BasicFifo1_write TransactionManager_LSUDummy_issue_cond0 --> BasicFifo1_write -TransactionManager_issue_cond1_LSUDummy --> BasicFifo1_write +TransactionManager_LSUDummy_issue_cond1 --> WishboneMaster1_request TransactionManager_LSUDummy_issue_cond0 --> WishboneMaster1_request -TransactionManager_issue_cond1_LSUDummy --> WishboneMaster1_request -TransactionManager_issue_cond2_LSUDummy <--> LSURequester_issue_cond2 -TransactionManager_Retirement_Retirement_cond0 <--> Retirement_Retirement2 -TransactionManager_Retirement_cond1_Retirement <--> Retirement_Retirement2 -TransactionManager_Retirement_Retirement_cond0 --> CSRRegister_write -TransactionManager_Retirement_cond1_Retirement --> CSRRegister_write -TransactionManager_Retirement_Retirement_cond0 --> CSRRegister2_write -TransactionManager_Retirement_cond1_Retirement --> CSRRegister2_write -TransactionManager_Retirement_Retirement_cond0 <--> InterruptController_entry -TransactionManager_Retirement_cond1_Retirement <--> 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_LSUDummy_accept_cond1 <--> LSURequester_accept_cond1 -WishboneMasterAdapter1_get_read_response --> TransactionManager_LSUDummy_accept_cond1 -Serializer1_Serializer1 --> TransactionManager_LSUDummy_accept_cond1 -TransactionManager_Retirement_cond1_Retirement <--> Retirement_Retirement_cond1 -TransactionManager_issue_cond1_LSUDummy <--> LSURequester_issue_cond1 -TransactionManager_issue_cond1_LSUDummy --> WishboneMasterAdapter1_request_read -TransactionManager_issue_cond1_LSUDummy --> Serializer1_Serializer3 +TransactionManager_LSUDummy_issue_cond0 <--> LSURequester_issue_cond0 +TransactionManager_LSUDummy_issue_cond0 --> WishboneMasterAdapter1_request_write +TransactionManager_LSUDummy_issue_cond0 --> Serializer1_Serializer1 +TransactionManager_LSUDummy_issue_cond2 <--> LSURequester_issue_cond2 +TransactionManager_LSUDummy_accept_cond0 <--> LSURequester_accept_cond0 +WishboneMasterAdapter1_get_write_response --> TransactionManager_LSUDummy_accept_cond0 +Serializer1_Serializer3 --> TransactionManager_LSUDummy_accept_cond0 @@ -882,7 +882,7 @@

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/components/icache.html b/components/icache.html index 2c50789ee..f2b0d3a15 100644 --- a/components/icache.html +++ b/components/icache.html @@ -131,7 +131,7 @@

Address mapping example

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/coreblocks.cache.html b/coreblocks.cache.html index fc16564af..acf3c8004 100644 --- a/coreblocks.cache.html +++ b/coreblocks.cache.html @@ -124,7 +124,7 @@

Submodules
-deserialize_addr(raw_addr: Value) dict[str, amaranth.hdl.ast.Value]
+deserialize_addr(raw_addr: Value) dict[str, amaranth.hdl._ast.Value]
@@ -241,7 +241,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/coreblocks.frontend.html b/coreblocks.frontend.html index 705937a20..3fb57cebd 100644 --- a/coreblocks.frontend.html +++ b/coreblocks.frontend.html @@ -340,7 +340,7 @@

Submodules
-instr_mux(sel: Value, inputs: list[amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable | tuple[amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable]]) tuple[amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable]
+instr_mux(sel: Value, inputs: list[amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable | tuple[amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable]]) tuple[amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable]

@@ -368,7 +368,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/coreblocks.fu.html b/coreblocks.fu.html index 6a354b540..5371f33e1 100644 --- a/coreblocks.fu.html +++ b/coreblocks.fu.html @@ -236,7 +236,7 @@

Submodules
-coreblocks.fu.div_unit.get_input(arg: Record) tuple[amaranth.hdl.ast.Value, amaranth.hdl.ast.Value]
+coreblocks.fu.div_unit.get_input(arg: Record) tuple[amaranth.hdl._ast.Value, amaranth.hdl._ast.Value]
@@ -965,7 +965,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/coreblocks.fu.unsigned_multiplication.html b/coreblocks.fu.unsigned_multiplication.html index 0ffaef62b..265990af8 100644 --- a/coreblocks.fu.unsigned_multiplication.html +++ b/coreblocks.fu.unsigned_multiplication.html @@ -237,7 +237,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/coreblocks.html b/coreblocks.html index b4caa05d4..67963c8c9 100644 --- a/coreblocks.html +++ b/coreblocks.html @@ -234,7 +234,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/coreblocks.lsu.html b/coreblocks.lsu.html index cbb68601a..c8710f148 100644 --- a/coreblocks.lsu.html +++ b/coreblocks.lsu.html @@ -236,7 +236,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/coreblocks.params.html b/coreblocks.params.html index b196673c9..09be8e8ba 100644 --- a/coreblocks.params.html +++ b/coreblocks.params.html @@ -314,7 +314,7 @@

SubmodulesRISCVInstr

-__init__(opcode: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, imm: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, funct3: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, rs1: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, rs2: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable)
+__init__(opcode: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, imm: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, funct3: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, rs1: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, rs2: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable)
@@ -341,7 +341,7 @@

SubmodulesRISCVInstr

-__init__(opcode: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, rd: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, funct3: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, rs1: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, imm: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable)
+__init__(opcode: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, rd: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, funct3: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, rs1: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, imm: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable)
@@ -373,7 +373,7 @@

SubmodulesRISCVInstr

-__init__(opcode: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, rd: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, imm: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable)
+__init__(opcode: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, rd: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, imm: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable)
@@ -389,7 +389,7 @@

SubmodulesRISCVInstr

-__init__(opcode: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, rd: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, funct3: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, rs1: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, rs2: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, funct7: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable)
+__init__(opcode: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, rd: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, funct3: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, rs1: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, rs2: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, funct7: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable)
@@ -405,7 +405,7 @@

SubmodulesRISCVInstr

-__init__(opcode: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, imm: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, funct3: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, rs1: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, rs2: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable)
+__init__(opcode: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, imm: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, funct3: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, rs1: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, rs2: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable)
@@ -421,7 +421,7 @@

SubmodulesRISCVInstr

-__init__(opcode: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, rd: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable, imm: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable)
+__init__(opcode: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, rd: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable, imm: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable)
@@ -2701,7 +2701,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/coreblocks.peripherals.html b/coreblocks.peripherals.html index ea1b480dc..60ca692af 100644 --- a/coreblocks.peripherals.html +++ b/coreblocks.peripherals.html @@ -598,7 +598,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/coreblocks.scheduler.html b/coreblocks.scheduler.html index d2a84c70e..fa33b8076 100644 --- a/coreblocks.scheduler.html +++ b/coreblocks.scheduler.html @@ -191,7 +191,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/coreblocks.stages.html b/coreblocks.stages.html index e3a4fc8dd..a61ced1a2 100644 --- a/coreblocks.stages.html +++ b/coreblocks.stages.html @@ -263,7 +263,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/coreblocks.structs_common.html b/coreblocks.structs_common.html index a21cc5e10..6fab03ea7 100644 --- a/coreblocks.structs_common.html +++ b/coreblocks.structs_common.html @@ -522,7 +522,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/coreblocks.utils.html b/coreblocks.utils.html index a61b73560..393cb7a0a 100644 --- a/coreblocks.utils.html +++ b/coreblocks.utils.html @@ -149,7 +149,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/current-graph.html b/current-graph.html index ec91adc1b..160968cf3 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 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/development-environment.html b/development-environment.html index 373472b3d..397322f8c 100644 --- a/development-environment.html +++ b/development-environment.html @@ -209,7 +209,7 @@

tprof.py

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/genindex.html b/genindex.html index 48a0f19b5..ee77323d7 100644 --- a/genindex.html +++ b/genindex.html @@ -3754,7 +3754,7 @@

Z

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/home.html b/home.html index 84f730a38..57feccdc4 100644 --- a/home.html +++ b/home.html @@ -129,7 +129,7 @@

Documentation

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/index.html b/index.html index 912db2708..fd5264b16 100644 --- a/index.html +++ b/index.html @@ -229,7 +229,7 @@

Coreblocks

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/miscellany/exceptions-summary.html b/miscellany/exceptions-summary.html index 37ebe736b..a11b9c72c 100644 --- a/miscellany/exceptions-summary.html +++ b/miscellany/exceptions-summary.html @@ -271,7 +271,7 @@

Summary

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/modules-coreblocks.html b/modules-coreblocks.html index 89d460b88..cf26944d7 100644 --- a/modules-coreblocks.html +++ b/modules-coreblocks.html @@ -203,7 +203,7 @@

coreblocks

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/modules-transactron.html b/modules-transactron.html index 46abd356f..b8a31464d 100644 --- a/modules-transactron.html +++ b/modules-transactron.html @@ -148,7 +148,7 @@

transactron

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/problem-checklist.html b/problem-checklist.html index 81379f282..59d0fa908 100644 --- a/problem-checklist.html +++ b/problem-checklist.html @@ -105,7 +105,7 @@

Problem checklist

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/py-modindex.html b/py-modindex.html index 0dd36f78a..25a79562d 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -613,7 +613,7 @@

Python Module Index

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/scheduler/overview.html b/scheduler/overview.html index d0ab2223d..1415569ec 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 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/search.html b/search.html index 8a2757781..23940dc65 100644 --- a/search.html +++ b/search.html @@ -101,7 +101,7 @@

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

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

diff --git a/shared-structs/rs.html b/shared-structs/rs.html index 7842f3a8a..a60e0de58 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 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/synthesis/synthesis.html b/synthesis/synthesis.html index 0ff9a7e96..efb7a5c69 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 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/transactions.html b/transactions.html index 15ca3f924..02599b875 100644 --- a/transactions.html +++ b/transactions.html @@ -409,7 +409,7 @@

Transaction and method nesting

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/transactron.html b/transactron.html index 156f84a66..6203bff52 100644 --- a/transactron.html +++ b/transactron.html @@ -187,7 +187,7 @@

Submodules
-__init__(*, name: Optional[str] = None, i: amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, amaranth.hdl.ast.Shape | amaranth.hdl.ast.ShapeCastable | int | range | type[enum.Enum] | list[tuple[str, ForwardRef('ShapeLike | LayoutList')]]]] = (), o: amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, amaranth.hdl.ast.Shape | amaranth.hdl.ast.ShapeCastable | int | range | type[enum.Enum] | list[tuple[str, ForwardRef('ShapeLike | LayoutList')]]]] = (), nonexclusive: bool = False, single_caller: bool = False, src_loc: int | tuple[str, int] = 0)
+__init__(*, name: Optional[str] = None, i: amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, amaranth.hdl._ast.Shape | amaranth.hdl._ast.ShapeCastable | int | range | type[enum.Enum] | list[tuple[str, ForwardRef('ShapeLike | LayoutList')]]]] = (), o: amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, amaranth.hdl._ast.Shape | amaranth.hdl._ast.ShapeCastable | int | range | type[enum.Enum] | list[tuple[str, ForwardRef('ShapeLike | LayoutList')]]]] = (), nonexclusive: bool = False, single_caller: bool = False, src_loc: int | tuple[str, int] = 0)
Parameters
@@ -217,7 +217,7 @@

Submodules
-body(m: ~transactron.core.TModule, *, ready: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable = (const 1'd1), out: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable = (const 0'd0), validate_arguments: ~typing.Optional[~collections.abc.Callable[[...], amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable]] = None) Iterator[View[StructLayout]]
+body(m: ~transactron.core.TModule, *, ready: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable = (const 1'd1), out: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable = (const 0'd0), validate_arguments: ~typing.Optional[~collections.abc.Callable[[...], amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable]] = None) Iterator[View[StructLayout]]

Define method body

The body context manager can be used to define the actions performed by a Method when it’s run. Each assignment added to @@ -267,7 +267,7 @@

Submodules
-debug_signals() amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]
+debug_signals() amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]

@@ -373,7 +373,7 @@

Submodules
-AvoidedIf(cond: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable)
+AvoidedIf(cond: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable)

@@ -403,7 +403,7 @@

Submodules
-If(cond: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable)
+If(cond: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable)

@@ -413,7 +413,7 @@

Submodules
-Switch(test: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable)
+Switch(test: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable)

@@ -495,7 +495,7 @@

Submodules
-body(m: ~transactron.core.TModule, *, request: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable = (const 1'd1)) Iterator[Transaction]
+body(m: ~transactron.core.TModule, *, request: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable = (const 1'd1)) Iterator[Transaction]

Defines the Transaction body.

This context manager allows to conveniently define the actions performed by a Transaction when it’s granted. Each assignment @@ -519,7 +519,7 @@

Submodules
-debug_signals() amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]
+debug_signals() amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]

@@ -534,7 +534,7 @@

Submodules
-__init__(cc_scheduler: ~collections.abc.Callable[[~transactron.core.MethodMap, dict[transactron.core.Transaction, set[transactron.core.Transaction]], set[transactron.core.Transaction], dict[transactron.core.Transaction, int]], ~amaranth.hdl.dsl.Module] = <function eager_deterministic_cc_scheduler>)
+__init__(cc_scheduler: ~collections.abc.Callable[[~transactron.core.MethodMap, dict[transactron.core.Transaction, set[transactron.core.Transaction]], set[transactron.core.Transaction], dict[transactron.core.Transaction, int]], ~amaranth.hdl._dsl.Module] = <function eager_deterministic_cc_scheduler>)

@@ -544,7 +544,7 @@

Submodules
-debug_signals() amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]
+debug_signals() amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]

@@ -608,7 +608,7 @@

Submodules
-transactron.core.def_method(m: ~transactron.core.TModule, method: ~transactron.core.Method, ready: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable = (const 1'd1), validate_arguments: ~typing.Optional[~collections.abc.Callable[[...], amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable]] = None)
+transactron.core.def_method(m: ~transactron.core.TModule, method: ~transactron.core.Method, ready: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable = (const 1'd1), validate_arguments: ~typing.Optional[~collections.abc.Callable[[...], amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable]] = None)

Define a method.

This decorator allows to define transactional methods in an elegant way using Python’s def syntax. Internally, def_method @@ -1021,7 +1021,7 @@

Submodules
-subfragments: list[tuple[amaranth.hdl.ir.Elaboratable, str]]
+subfragments: list[tuple[amaranth.hdl._ir.Elaboratable, str]]

@@ -1096,7 +1096,7 @@

Submodules
-__init__(*, name: Optional[str] = None, i: amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, amaranth.hdl.ast.Shape | amaranth.hdl.ast.ShapeCastable | int | range | type[enum.Enum] | list[tuple[str, ForwardRef('ShapeLike | LayoutList')]]]] = (), o: amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, amaranth.hdl.ast.Shape | amaranth.hdl.ast.ShapeCastable | int | range | type[enum.Enum] | list[tuple[str, ForwardRef('ShapeLike | LayoutList')]]]] = (), nonexclusive: bool = False, single_caller: bool = False, src_loc: int | tuple[str, int] = 0)
+__init__(*, name: Optional[str] = None, i: amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, amaranth.hdl._ast.Shape | amaranth.hdl._ast.ShapeCastable | int | range | type[enum.Enum] | list[tuple[str, ForwardRef('ShapeLike | LayoutList')]]]] = (), o: amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, amaranth.hdl._ast.Shape | amaranth.hdl._ast.ShapeCastable | int | range | type[enum.Enum] | list[tuple[str, ForwardRef('ShapeLike | LayoutList')]]]] = (), nonexclusive: bool = False, single_caller: bool = False, src_loc: int | tuple[str, int] = 0)
Parameters
@@ -1126,7 +1126,7 @@

Submodules
-body(m: ~transactron.core.TModule, *, ready: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable = (const 1'd1), out: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable = (const 0'd0), validate_arguments: ~typing.Optional[~collections.abc.Callable[[...], amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable]] = None) Iterator[View[StructLayout]]
+body(m: ~transactron.core.TModule, *, ready: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable = (const 1'd1), out: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable = (const 0'd0), validate_arguments: ~typing.Optional[~collections.abc.Callable[[...], amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable]] = None) Iterator[View[StructLayout]]

Define method body

The body context manager can be used to define the actions performed by a Method when it’s run. Each assignment added to @@ -1176,7 +1176,7 @@

Submodules
-debug_signals() amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]
+debug_signals() amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]

@@ -1258,7 +1258,7 @@

Submodules
-AvoidedIf(cond: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable)
+AvoidedIf(cond: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable)

@@ -1288,7 +1288,7 @@

Submodules
-If(cond: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable)
+If(cond: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable)

@@ -1298,7 +1298,7 @@

Submodules
-Switch(test: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable)
+Switch(test: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable)

@@ -1380,7 +1380,7 @@

Submodules
-body(m: ~transactron.core.TModule, *, request: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable = (const 1'd1)) Iterator[Transaction]
+body(m: ~transactron.core.TModule, *, request: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable = (const 1'd1)) Iterator[Transaction]

Defines the Transaction body.

This context manager allows to conveniently define the actions performed by a Transaction when it’s granted. Each assignment @@ -1404,7 +1404,7 @@

Submodules
-debug_signals() amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]
+debug_signals() amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]

@@ -1419,7 +1419,7 @@

Submodules
-__init__(cc_scheduler: ~collections.abc.Callable[[~transactron.core.MethodMap, dict[transactron.core.Transaction, set[transactron.core.Transaction]], set[transactron.core.Transaction], dict[transactron.core.Transaction, int]], ~amaranth.hdl.dsl.Module] = <function eager_deterministic_cc_scheduler>)
+__init__(cc_scheduler: ~collections.abc.Callable[[~transactron.core.MethodMap, dict[transactron.core.Transaction, set[transactron.core.Transaction]], set[transactron.core.Transaction], dict[transactron.core.Transaction, int]], ~amaranth.hdl._dsl.Module] = <function eager_deterministic_cc_scheduler>)

@@ -1429,7 +1429,7 @@

Submodules
-debug_signals() amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]
+debug_signals() amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]

@@ -1482,7 +1482,7 @@

Submodules
-transactron.def_method(m: ~transactron.core.TModule, method: ~transactron.core.Method, ready: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable = (const 1'd1), validate_arguments: ~typing.Optional[~collections.abc.Callable[[...], amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable]] = None)
+transactron.def_method(m: ~transactron.core.TModule, method: ~transactron.core.Method, ready: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable = (const 1'd1), validate_arguments: ~typing.Optional[~collections.abc.Callable[[...], amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable]] = None)

Define a method.

This decorator allows to define transactional methods in an elegant way using Python’s def syntax. Internally, def_method @@ -1550,7 +1550,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/transactron.lib.html b/transactron.lib.html index e1a01353b..c7b8f304c 100644 --- a/transactron.lib.html +++ b/transactron.lib.html @@ -147,7 +147,7 @@

Submodules
-debug_signals() amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]
+debug_signals() amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]

@@ -696,7 +696,7 @@

Submodules
-debug_signals() amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]
+debug_signals() amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]

Returns tree-like SignalBundle composed of all metric registers.

@@ -751,7 +751,7 @@

Submodules
-incr(m: ~transactron.core.TModule, *, cond: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable = (const 1'd1))
+incr(m: ~transactron.core.TModule, *, cond: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable = (const 1'd1))

Increases the value of the counter by 1.

Should be called in the body of either a transaction or a method.

@@ -1380,7 +1380,7 @@

Submodules
-__init__(method1: Method, method2: Method, *, i_fun: Optional[Callable[[TModule, View[StructLayout]], amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable | collections.abc.Mapping[str, RecordDict]]] = None, o_fun: Optional[Callable[[TModule, View[StructLayout]], amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable | collections.abc.Mapping[str, RecordDict]]] = None, src_loc: int | tuple[str, int] = 0)
+__init__(method1: Method, method2: Method, *, i_fun: Optional[Callable[[TModule, View[StructLayout]], amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable | collections.abc.Mapping[str, RecordDict]]] = None, o_fun: Optional[Callable[[TModule, View[StructLayout]], amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable | collections.abc.Mapping[str, RecordDict]]] = None, src_loc: int | tuple[str, int] = 0)
Parameters
@@ -1426,7 +1426,7 @@

Submodules
-__init__(target: Method, condition: Callable[[TModule, View[StructLayout]], amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable], default: Optional[Union[Value, int, Enum, ValueCastable, Mapping[str, RecordDict]]] = None, *, use_condition: bool = False, src_loc: int | tuple[str, int] = 0)
+__init__(target: Method, condition: Callable[[TModule, View[StructLayout]], amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable], default: Optional[Union[Value, int, Enum, ValueCastable, Mapping[str, RecordDict]]] = None, *, use_condition: bool = False, src_loc: int | tuple[str, int] = 0)
Parameters
@@ -1471,7 +1471,7 @@

Submodules
-__init__(target: Method, *, i_transform: Optional[tuple[amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, 'ShapeLike | LayoutList']], collections.abc.Callable[[transactron.core.TModule, 'View[StructLayout]'], amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable | collections.abc.Mapping[str, 'RecordDict']]]] = None, o_transform: Optional[tuple[amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, 'ShapeLike | LayoutList']], collections.abc.Callable[[transactron.core.TModule, 'View[StructLayout]'], amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable | collections.abc.Mapping[str, 'RecordDict']]]] = None, src_loc: int | tuple[str, int] = 0)
+__init__(target: Method, *, i_transform: Optional[tuple[amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, 'ShapeLike | LayoutList']], collections.abc.Callable[[transactron.core.TModule, 'View[StructLayout]'], amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable | collections.abc.Mapping[str, 'RecordDict']]]] = None, o_transform: Optional[tuple[amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, 'ShapeLike | LayoutList']], collections.abc.Callable[[transactron.core.TModule, 'View[StructLayout]'], amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable | collections.abc.Mapping[str, 'RecordDict']]]] = None, src_loc: int | tuple[str, int] = 0)
Parameters
@@ -1501,7 +1501,7 @@

SubmodulesElaboratable, Unifier

-__init__(targets: list[transactron.core.Method], combiner: Optional[tuple[amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, 'ShapeLike | LayoutList']], collections.abc.Callable[[transactron.core.TModule, list['View[StructLayout]']], amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable | collections.abc.Mapping[str, 'RecordDict']]]] = None, *, src_loc: int | tuple[str, int] = 0)
+__init__(targets: list[transactron.core.Method], combiner: Optional[tuple[amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, 'ShapeLike | LayoutList']], collections.abc.Callable[[transactron.core.TModule, list['View[StructLayout]']], amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable | collections.abc.Mapping[str, 'RecordDict']]]] = None, *, src_loc: int | tuple[str, int] = 0)

Method product.

Takes arbitrary, non-zero number of target methods, and constructs a method which calls all of the target methods using the same @@ -1540,7 +1540,7 @@

SubmodulesElaboratable, Unifier

-__init__(targets: list[transactron.core.Method], combiner: Optional[tuple[amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, 'ShapeLike | LayoutList']], collections.abc.Callable[[transactron.core.TModule, list[tuple[amaranth.hdl.ast.Value, 'View[StructLayout]']]], amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable | collections.abc.Mapping[str, 'RecordDict']]]] = None, *, src_loc: int | tuple[str, int] = 0)
+__init__(targets: list[transactron.core.Method], combiner: Optional[tuple[amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, 'ShapeLike | LayoutList']], collections.abc.Callable[[transactron.core.TModule, list[tuple[amaranth.hdl._ast.Value, 'View[StructLayout]']]], amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable | collections.abc.Mapping[str, 'RecordDict']]]] = None, *, src_loc: int | tuple[str, int] = 0)

Method product with optional calling.

Takes arbitrary, non-zero number of target methods, and constructs a method which tries to call all of the target methods using the same @@ -1643,7 +1643,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/transactron.testing.html b/transactron.testing.html index 82bec45ad..02b05f850 100644 --- a/transactron.testing.html +++ b/transactron.testing.html @@ -306,7 +306,7 @@

Submodules
-call_init(data: Mapping[str, Union[Value, int, Enum, ValueCastable, RecordValueDict]] = {}, /, **kwdata: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable | collections.abc.Mapping[str, Union[amaranth.hdl.ast.Value, int, enum.Enum, amaranth.hdl.ast.ValueCastable, RecordValueDict]]) Generator[Optional[Union[Command, Value, Statement, CoreblocksCommand]], Any, None]
+call_init(data: Mapping[str, Union[Value, int, Enum, ValueCastable, RecordValueDict]] = {}, /, **kwdata: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable | collections.abc.Mapping[str, Union[amaranth.hdl._ast.Value, int, enum.Enum, amaranth.hdl._ast.ValueCastable, RecordValueDict]]) Generator[Optional[Union[Command, Value, Statement, CoreblocksCommand]], Any, None]

@@ -321,7 +321,7 @@

Submodules
-debug_signals() amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]
+debug_signals() amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]

@@ -399,7 +399,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/transactron.utils.amaranth_ext.html b/transactron.utils.amaranth_ext.html index a48179257..708388943 100644 --- a/transactron.utils.amaranth_ext.html +++ b/transactron.utils.amaranth_ext.html @@ -261,7 +261,7 @@

Submodules
-transactron.utils.amaranth_ext.functions.flatten_signals(signals: amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]) Iterable[Signal]
+transactron.utils.amaranth_ext.functions.flatten_signals(signals: amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]) Iterable[Signal]

Flattens input data, which can be either a signal, a record, a list (or a dict) of SignalBundle items.

@@ -293,7 +293,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.

diff --git a/transactron.utils.html b/transactron.utils.html index d1dafddca..20655f8ff 100644 --- a/transactron.utils.html +++ b/transactron.utils.html @@ -133,7 +133,7 @@

Submodules
-transactron.utils.assertion.assert_bits(dependencies: DependencyManager) list[tuple[amaranth.hdl.ast.Value, tuple[str, int]]]
+transactron.utils.assertion.assert_bits(dependencies: DependencyManager) list[tuple[amaranth.hdl._ast.Value, tuple[str, int]]]

Gets assertion bits.

This function returns all the assertion signals created by assertion, together with their source locations.

@@ -196,7 +196,7 @@

Submodules
-transactron.utils.assign.assign(lhs: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable | collections.abc.Mapping[str, amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable | collections.abc.Mapping[str, AssignArg]], rhs: amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable | collections.abc.Mapping[str, amaranth.hdl.ast.Value | int | enum.Enum | amaranth.hdl.ast.ValueCastable | collections.abc.Mapping[str, AssignArg]], *, fields: transactron.utils.assign.AssignType | collections.abc.Iterable[str] | collections.abc.Mapping[str, transactron.utils.assign.AssignType | collections.abc.Iterable[str] | collections.abc.Mapping[str, AssignFields]] = AssignType.RHS, lhs_strict=False, rhs_strict=False) Iterable[Assign]
+transactron.utils.assign.assign(lhs: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable | collections.abc.Mapping[str, AssignArg], rhs: amaranth.hdl._ast.Value | int | enum.Enum | amaranth.hdl._ast.ValueCastable | collections.abc.Mapping[str, AssignArg], *, fields: transactron.utils.assign.AssignType | collections.abc.Iterable[str] | collections.abc.Mapping[str, AssignFields] = AssignType.RHS, lhs_strict=False, rhs_strict=False) Iterable[Assign]

Safe structured assignment.

This function recursively generates assignment statements for field-containing structures. This includes: Amaranth Records, @@ -312,7 +312,7 @@

Submodules
-transactron.utils.data_repr.data_layout(val: amaranth.hdl.ast.Shape | amaranth.hdl.ast.ShapeCastable | int | range | type[enum.Enum]) amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, 'ShapeLike | LayoutList']]
+transactron.utils.data_repr.data_layout(val: amaranth.hdl._ast.Shape | amaranth.hdl._ast.ShapeCastable | int | range | type[enum.Enum]) amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, 'ShapeLike | LayoutList']]

@@ -396,7 +396,7 @@

Submodules

transactron.utils.debug_signals module

-transactron.utils.debug_signals.auto_debug_signals(thing) amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl.ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]
+transactron.utils.debug_signals.auto_debug_signals(thing) amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]] | collections.abc.Mapping[str, amaranth.hdl._ast.Signal | amaranth.hdl._rec.Record | amaranth.lib.data.View | collections.abc.Iterable[SignalBundle] | collections.abc.Mapping[str, SignalBundle]]

Automatic debug signal generation.

Exposes class attributes with debug signals (Amaranth Signals, Records, Arrays and Elaboratables, Methods, classes @@ -712,7 +712,7 @@

Submodules
-transactron.utils.gen.generate_verilog(top_module: Elaboratable, ports: list[amaranth.hdl.ast.Signal], top_name: str = 'top') tuple[str, transactron.utils.gen.GenerationInfo]
+transactron.utils.gen.generate_verilog(top_module: Elaboratable, ports: list[amaranth.hdl._ast.Signal], top_name: str = 'top') tuple[str, transactron.utils.gen.GenerationInfo]

@@ -725,12 +725,12 @@

Submodules
-transactron.utils.transactron_helpers.from_method_layout(layout: amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, amaranth.hdl.ast.Shape | amaranth.hdl.ast.ShapeCastable | int | range | type[enum.Enum] | list[tuple[str, ForwardRef('ShapeLike | LayoutList')]]]]) StructLayout
+transactron.utils.transactron_helpers.from_method_layout(layout: amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, amaranth.hdl._ast.Shape | amaranth.hdl._ast.ShapeCastable | int | range | type[enum.Enum] | list[tuple[str, ForwardRef('ShapeLike | LayoutList')]]]]) StructLayout

-transactron.utils.transactron_helpers.get_caller_class_name(default: Optional[str] = None) tuple[Optional[amaranth.hdl.ir.Elaboratable], str]
+transactron.utils.transactron_helpers.get_caller_class_name(default: Optional[str] = None) tuple[Optional[amaranth.hdl._ir.Elaboratable], str]
@@ -771,7 +771,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 14:11 2024-03-04. + Last updated on 11:12 2024-03-05.