Full transaction-method graph
flowchart TB
subgraph TransactionModule["TransactionModule"]
subgraph TestElaboratable["elaboratable TestElaboratable"]
subgraph Core["core Core"]
Core_InitFreeRFFifo["InitFreeRFFifo"]
subgraph WishboneMaster["wb_master_instr WishboneMaster"]
WishboneMaster_WishboneMaster["WishboneMaster"]
WishboneMaster_request["request"]
WishboneMaster_result["result"]
subgraph Forwarder["result Forwarder"]
Forwarder_read["read"]
Forwarder_write["write"]
end
end
subgraph WishboneMaster1["wb_master_data WishboneMaster"]
WishboneMaster1_result["result"]
WishboneMaster1_request["request"]
WishboneMaster1_WishboneMaster["WishboneMaster"]
subgraph Forwarder1["result Forwarder"]
Forwarder1_read["read"]
Forwarder1_write["write"]
end
end
subgraph FIFO["fifo_fetch FIFO"]
FIFO_read["read"]
FIFO_write["write"]
end
subgraph BasicFifo["free_rf_fifo BasicFifo"]
BasicFifo_write["write"]
BasicFifo_read["read"]
end
subgraph SimpleWBCacheRefiller["icache_refiller SimpleWBCacheRefiller"]
SimpleWBCacheRefiller_SimpleWBCacheRefiller["SimpleWBCacheRefiller"]
SimpleWBCacheRefiller_start_refill["start_refill"]
SimpleWBCacheRefiller_accept_refill["accept_refill"]
subgraph Forwarder2["address_fwd Forwarder"]
Forwarder2_write["write"]
Forwarder2_read["read"]
end
end
subgraph ICache["icache ICache"]
ICache_accept_res["accept_res"]
ICache_issue_req["issue_req"]
ICache_ICache["ICache"]
ICache_ICache1["ICache"]
ICache_ICache2["ICache"]
subgraph FIFO1["req_fifo FIFO"]
FIFO1_read["read"]
FIFO1_write["write"]
end
subgraph Forwarder3["res_fwd Forwarder"]
Forwarder3_write["write"]
Forwarder3_read["read"]
end
end
subgraph Fetch["fetch Fetch"]
Fetch_Fetch["Fetch"]
Fetch_verify_branch["verify_branch"]
Fetch_Fetch1["Fetch"]
subgraph BasicFifo1["fetch_target_queue BasicFifo"]
BasicFifo1_write["write"]
BasicFifo1_read["read"]
end
end
subgraph FRAT["FRAT FRAT"]
FRAT_rename["rename"]
end
subgraph RRAT["RRAT RRAT"]
RRAT_commit["commit"]
end
subgraph RegisterFile["RF RegisterFile"]
RegisterFile_read1["read1"]
RegisterFile_free["free"]
RegisterFile_read2["read2"]
RegisterFile_write["write"]
end
subgraph ReorderBuffer["ROB ReorderBuffer"]
ReorderBuffer_mark_done["mark_done"]
ReorderBuffer_peek["peek"]
ReorderBuffer_get_indices["get_indices"]
ReorderBuffer_put["put"]
ReorderBuffer_retire["retire"]
end
subgraph ExceptionCauseRegister["exception_cause_register ExceptionCauseRegister"]
ExceptionCauseRegister_report["report"]
ExceptionCauseRegister_get["get"]
end
subgraph FuncBlocksUnifier["func_blocks_unifier FuncBlocksUnifier"]
subgraph Collector["result_collector Collector"]
Collector_method["method"]
subgraph Forwarder4["forwarder Forwarder"]
Forwarder4_read["read"]
Forwarder4_write["write"]
end
subgraph ManyToOneConnectTrans["connect ManyToOneConnectTrans"]
subgraph ConnectTrans["ManyToOneConnectTrans_input_0 ConnectTrans"]
ConnectTrans_ConnectTrans["ConnectTrans"]
end
subgraph ConnectTrans1["ManyToOneConnectTrans_input_1 ConnectTrans"]
ConnectTrans1_ConnectTrans["ConnectTrans"]
end
end
end
subgraph MethodProduct["update_combiner MethodProduct"]
MethodProduct_method["method"]
end
subgraph RSFuncBlock["rs_block_0 RSFuncBlock"]
RSFuncBlock_update["update"]
RSFuncBlock_select["select"]
RSFuncBlock_get_result["get_result"]
RSFuncBlock_insert["insert"]
subgraph RS["rs RS"]
RS_update["update"]
RS_RS["RS"]
RS_RS1["RS"]
RS_take["take"]
RS_insert["insert"]
RS_select["select"]
RS_RS2["RS"]
RS_RS3["RS"]
end
subgraph AluFuncUnit["func_unit_0 AluFuncUnit"]
AluFuncUnit_accept["accept"]
AluFuncUnit_issue["issue"]
subgraph FIFO2["fifo FIFO"]
FIFO2_read["read"]
FIFO2_write["write"]
end
end
subgraph WakeupSelect["wakeup_select_0 WakeupSelect"]
WakeupSelect_WakeupSelect["WakeupSelect"]
end
subgraph ShiftFuncUnit["func_unit_1 ShiftFuncUnit"]
ShiftFuncUnit_issue["issue"]
ShiftFuncUnit_accept["accept"]
subgraph FIFO3["fifo FIFO"]
FIFO3_read["read"]
FIFO3_write["write"]
end
end
subgraph WakeupSelect1["wakeup_select_1 WakeupSelect"]
WakeupSelect1_WakeupSelect["WakeupSelect"]
end
subgraph JumpBranchFuncUnit["func_unit_2 JumpBranchFuncUnit"]
JumpBranchFuncUnit_branch_result["branch_result"]
JumpBranchFuncUnit_accept["accept"]
JumpBranchFuncUnit_issue["issue"]
subgraph FIFO4["fifo_res FIFO"]
FIFO4_write["write"]
FIFO4_read["read"]
end
subgraph FIFO5["fifo_branch FIFO"]
FIFO5_read["read"]
FIFO5_write["write"]
end
end
subgraph WakeupSelect2["wakeup_select_2 WakeupSelect"]
WakeupSelect2_WakeupSelect["WakeupSelect"]
end
subgraph ExceptionFuncUnit["func_unit_3 ExceptionFuncUnit"]
ExceptionFuncUnit_issue["issue"]
ExceptionFuncUnit_accept["accept"]
subgraph FIFO6["fifo FIFO"]
FIFO6_write["write"]
FIFO6_read["read"]
end
end
subgraph WakeupSelect3["wakeup_select_3 WakeupSelect"]
WakeupSelect3_WakeupSelect["WakeupSelect"]
end
subgraph Collector1["collector Collector"]
Collector1_method["method"]
subgraph Forwarder5["forwarder Forwarder"]
Forwarder5_write["write"]
Forwarder5_read["read"]
end
subgraph ManyToOneConnectTrans1["connect ManyToOneConnectTrans"]
subgraph ConnectTrans2["ManyToOneConnectTrans_input_0 ConnectTrans"]
ConnectTrans2_ConnectTrans["ConnectTrans"]
end
subgraph ConnectTrans3["ManyToOneConnectTrans_input_1 ConnectTrans"]
ConnectTrans3_ConnectTrans["ConnectTrans"]
end
subgraph ConnectTrans4["ManyToOneConnectTrans_input_2 ConnectTrans"]
ConnectTrans4_ConnectTrans["ConnectTrans"]
end
subgraph ConnectTrans5["ManyToOneConnectTrans_input_3 ConnectTrans"]
ConnectTrans5_ConnectTrans["ConnectTrans"]
end
end
end
end
subgraph LSUDummy["rs_block_1 LSUDummy"]
LSUDummy_update["update"]
LSUDummy_get_result["get_result"]
LSUDummy_insert["insert"]
LSUDummy_LSUDummy["LSUDummy"]
LSUDummy_precommit["precommit"]
LSUDummy_select["select"]
LSUDummy_LSUDummy1["LSUDummy"]
LSUDummy_LSUDummy2["LSUDummy"]
subgraph Forwarder6["forwarder Forwarder"]
Forwarder6_write["write"]
Forwarder6_read["read"]
end
subgraph LSURequesterWB["requester LSURequesterWB"]
LSURequesterWB_accept["accept"]
LSURequesterWB_issue["issue"]
end
end
end
subgraph ResultAnnouncement["announcement ResultAnnouncement"]
ResultAnnouncement_ResultAnnouncement["ResultAnnouncement"]
end
subgraph GenericCSRRegisters["csr_generic GenericCSRRegisters"]
GenericCSRRegisters_GenericCSRRegisters["GenericCSRRegisters"]
subgraph DoubleCounterCSR["csr_cycle DoubleCounterCSR"]
DoubleCounterCSR_increment["increment"]
subgraph CSRRegister["register_low CSRRegister"]
CSRRegister_read["read"]
CSRRegister_write["write"]
end
subgraph CSRRegister1["register_high CSRRegister"]
CSRRegister1_read["read"]
CSRRegister1_write["write"]
end
end
subgraph DoubleCounterCSR1["csr_time DoubleCounterCSR"]
DoubleCounterCSR1_increment["increment"]
subgraph CSRRegister2["register_low CSRRegister"]
CSRRegister2_write["write"]
CSRRegister2_read["read"]
end
subgraph CSRRegister3["register_high CSRRegister"]
CSRRegister3_write["write"]
CSRRegister3_read["read"]
end
end
subgraph CSRRegister4["mcause CSRRegister"]
CSRRegister4_write["write"]
end
end
subgraph FIFO7["fifo_decode FIFO"]
FIFO7_write["write"]
FIFO7_read["read"]
end
subgraph Decode["decode Decode"]
Decode_Decode["Decode"]
end
subgraph Scheduler["scheduler Scheduler"]
subgraph FIFO8["alloc_rename_buf FIFO"]
FIFO8_write["write"]
FIFO8_read["read"]
end
subgraph RegAllocation["reg_alloc RegAllocation"]
RegAllocation_RegAllocation["RegAllocation"]
end
subgraph FIFO9["rename_out_buf FIFO"]
FIFO9_read["read"]
FIFO9_write["write"]
end
subgraph Renaming["renaming Renaming"]
Renaming_Renaming["Renaming"]
end
subgraph FIFO10["reg_alloc_out_buf FIFO"]
FIFO10_write["write"]
FIFO10_read["read"]
end
subgraph ROBAllocation["rob_alloc ROBAllocation"]
ROBAllocation_ROBAllocation["ROBAllocation"]
end
subgraph FIFO11["rs_select_out_buf FIFO"]
FIFO11_read["read"]
FIFO11_write["write"]
end
subgraph RSSelection["rs_selector RSSelection"]
RSSelection_RSSelection["RSSelection"]
RSSelection_RSSelection1["RSSelection"]
RSSelection_RSSelection2["RSSelection"]
subgraph Forwarder7["forwarder Forwarder"]
Forwarder7_write["write"]
Forwarder7_read["read"]
end
end
subgraph RSInsertion["rs_insertion RSInsertion"]
RSInsertion_RSInsertion["RSInsertion"]
end
end
subgraph ConnectTrans6["verify_branch ConnectTrans"]
ConnectTrans6_ConnectTrans["ConnectTrans"]
end
subgraph Retirement["retirement Retirement"]
Retirement_Retirement["Retirement"]
Retirement_Retirement1["Retirement"]
Retirement_Retirement2["Retirement"]
subgraph DoubleCounterCSR2["instret_csr DoubleCounterCSR"]
DoubleCounterCSR2_increment["increment"]
subgraph CSRRegister5["register_low CSRRegister"]
CSRRegister5_write["write"]
CSRRegister5_read["read"]
end
subgraph CSRRegister6["register_high CSRRegister"]
CSRRegister6_read["read"]
CSRRegister6_write["write"]
end
end
subgraph Forwarder8["frat_fix Forwarder"]
Forwarder8_write["write"]
Forwarder8_read["read"]
end
end
end
subgraph TestbenchIO["io_in TestbenchIO"]
subgraph AdapterTrans["adapter AdapterTrans"]
AdapterTrans_AdapterTrans_write["AdapterTrans_write"]
end
end
subgraph TestbenchIO1["rf_write TestbenchIO"]
subgraph AdapterTrans1["adapter AdapterTrans"]
AdapterTrans1_AdapterTrans_write["AdapterTrans_write"]
end
end
end
end
Core_InitFreeRFFifo --> BasicFifo_write
Retirement_Retirement --> BasicFifo_write
WishboneMaster_WishboneMaster --> Forwarder_write
WishboneMaster1_WishboneMaster --> Forwarder1_write
Forwarder2_read --> SimpleWBCacheRefiller_SimpleWBCacheRefiller
SimpleWBCacheRefiller_SimpleWBCacheRefiller --> WishboneMaster_request
ICache_ICache1 --> Forwarder3_write
ICache_ICache2 --> SimpleWBCacheRefiller_start_refill
ICache_ICache2 --> Forwarder2_write
ICache_ICache --> Forwarder2_write
SimpleWBCacheRefiller_accept_refill --> ICache_ICache
WishboneMaster_result --> ICache_ICache
Forwarder_read --> ICache_ICache
Fetch_Fetch1 --> ICache_issue_req
Fetch_Fetch1 --> FIFO1_write
Fetch_Fetch1 --> BasicFifo1_write
BasicFifo1_read --> Fetch_Fetch
ICache_accept_res --> Fetch_Fetch
FIFO1_read --> Fetch_Fetch
Forwarder3_read --> Fetch_Fetch
Fetch_Fetch --> FIFO_write
AdapterTrans_AdapterTrans_write --> FIFO_write
FIFO_read --> Decode_Decode
Decode_Decode --> FIFO7_write
FIFO7_read --> RegAllocation_RegAllocation
BasicFifo_read --> RegAllocation_RegAllocation
RegAllocation_RegAllocation --> FIFO8_write
FIFO8_read --> Renaming_Renaming
Renaming_Renaming --> FRAT_rename
Retirement_Retirement2 --> FRAT_rename
Renaming_Renaming --> FIFO9_write
FIFO9_read --> ROBAllocation_ROBAllocation
ROBAllocation_ROBAllocation --> ReorderBuffer_put
ROBAllocation_ROBAllocation --> FIFO10_write
FIFO10_read --> RSSelection_RSSelection1
RSSelection_RSSelection1 --> Forwarder7_write
Forwarder7_read --> RSSelection_RSSelection
Forwarder7_read --> RSSelection_RSSelection2
RSFuncBlock_select --> RSSelection_RSSelection
RS_select --> RSSelection_RSSelection
RSSelection_RSSelection --> FIFO11_write
RSSelection_RSSelection2 --> FIFO11_write
RSSelection_RSSelection2 <--> LSUDummy_select
FIFO11_read --> RSInsertion_RSInsertion
RegisterFile_read1 --> RSInsertion_RSInsertion
RegisterFile_read2 --> RSInsertion_RSInsertion
RSInsertion_RSInsertion --> RSFuncBlock_insert
RSInsertion_RSInsertion --> RS_insert
RSInsertion_RSInsertion --> LSUDummy_insert
JumpBranchFuncUnit_branch_result --> ConnectTrans6_ConnectTrans
FIFO5_read --> ConnectTrans6_ConnectTrans
ConnectTrans6_ConnectTrans --> Fetch_verify_branch
Collector_method --> ResultAnnouncement_ResultAnnouncement
Forwarder4_read --> ResultAnnouncement_ResultAnnouncement
ResultAnnouncement_ResultAnnouncement --> ReorderBuffer_mark_done
ResultAnnouncement_ResultAnnouncement --> RegisterFile_write
AdapterTrans1_AdapterTrans_write --> RegisterFile_write
ResultAnnouncement_ResultAnnouncement --> MethodProduct_method
ResultAnnouncement_ResultAnnouncement --> RSFuncBlock_update
ResultAnnouncement_ResultAnnouncement --> RS_update
ResultAnnouncement_ResultAnnouncement --> LSUDummy_update
RS_RS1 --> WakeupSelect_WakeupSelect
RS_take --> WakeupSelect_WakeupSelect
RS_take --> WakeupSelect1_WakeupSelect
RS_take --> WakeupSelect2_WakeupSelect
RS_take --> WakeupSelect3_WakeupSelect
WakeupSelect_WakeupSelect --> AluFuncUnit_issue
WakeupSelect_WakeupSelect --> FIFO2_write
RS_RS --> WakeupSelect1_WakeupSelect
WakeupSelect1_WakeupSelect --> ShiftFuncUnit_issue
WakeupSelect1_WakeupSelect --> FIFO3_write
RS_RS3 --> WakeupSelect2_WakeupSelect
WakeupSelect2_WakeupSelect --> JumpBranchFuncUnit_issue
WakeupSelect2_WakeupSelect --> ExceptionCauseRegister_report
WakeupSelect3_WakeupSelect --> ExceptionCauseRegister_report
ConnectTrans1_ConnectTrans --> ExceptionCauseRegister_report
ReorderBuffer_get_indices --> WakeupSelect2_WakeupSelect
ReorderBuffer_get_indices --> WakeupSelect3_WakeupSelect
ReorderBuffer_get_indices --> ConnectTrans1_ConnectTrans
WakeupSelect2_WakeupSelect --> FIFO4_write
WakeupSelect2_WakeupSelect --> FIFO5_write
RS_RS2 --> WakeupSelect3_WakeupSelect
WakeupSelect3_WakeupSelect --> ExceptionFuncUnit_issue
WakeupSelect3_WakeupSelect --> FIFO6_write
ConnectTrans2_ConnectTrans --> Forwarder5_write
ConnectTrans3_ConnectTrans --> Forwarder5_write
ConnectTrans4_ConnectTrans --> Forwarder5_write
ConnectTrans5_ConnectTrans --> Forwarder5_write
AluFuncUnit_accept --> ConnectTrans2_ConnectTrans
FIFO2_read --> ConnectTrans2_ConnectTrans
ShiftFuncUnit_accept --> ConnectTrans3_ConnectTrans
FIFO3_read --> ConnectTrans3_ConnectTrans
JumpBranchFuncUnit_accept --> ConnectTrans4_ConnectTrans
FIFO4_read --> ConnectTrans4_ConnectTrans
ExceptionFuncUnit_accept --> ConnectTrans5_ConnectTrans
FIFO6_read --> ConnectTrans5_ConnectTrans
LSUDummy_LSUDummy --> LSURequesterWB_issue
LSUDummy_LSUDummy --> WishboneMaster1_request
LSUDummy_LSUDummy --> Forwarder6_write
LSUDummy_LSUDummy1 --> Forwarder6_write
LSUDummy_LSUDummy2 --> Forwarder6_write
LSURequesterWB_accept --> LSUDummy_LSUDummy2
WishboneMaster1_result --> LSUDummy_LSUDummy2
Forwarder1_read --> LSUDummy_LSUDummy2
ConnectTrans_ConnectTrans --> Forwarder4_write
ConnectTrans1_ConnectTrans --> Forwarder4_write
RSFuncBlock_get_result --> ConnectTrans_ConnectTrans
Collector1_method --> ConnectTrans_ConnectTrans
Forwarder5_read --> ConnectTrans_ConnectTrans
LSUDummy_get_result --> ConnectTrans1_ConnectTrans
Forwarder6_read --> ConnectTrans1_ConnectTrans
ReorderBuffer_peek --> Retirement_Retirement1
Retirement_Retirement1 --> LSUDummy_precommit
ReorderBuffer_retire --> Retirement_Retirement
ExceptionCauseRegister_get --> Retirement_Retirement
Retirement_Retirement --> CSRRegister4_write
Retirement_Retirement --> RRAT_commit
Retirement_Retirement <--> DoubleCounterCSR2_increment
CSRRegister5_read --> Retirement_Retirement
Retirement_Retirement --> CSRRegister5_write
CSRRegister6_read --> Retirement_Retirement
Retirement_Retirement --> CSRRegister6_write
Retirement_Retirement --> Forwarder8_write
Retirement_Retirement --> RegisterFile_free
Forwarder8_read --> Retirement_Retirement2
GenericCSRRegisters_GenericCSRRegisters <--> DoubleCounterCSR_increment
CSRRegister_read --> GenericCSRRegisters_GenericCSRRegisters
GenericCSRRegisters_GenericCSRRegisters --> CSRRegister_write
CSRRegister1_read --> GenericCSRRegisters_GenericCSRRegisters
GenericCSRRegisters_GenericCSRRegisters --> CSRRegister1_write
GenericCSRRegisters_GenericCSRRegisters <--> DoubleCounterCSR1_increment
CSRRegister2_read --> GenericCSRRegisters_GenericCSRRegisters
GenericCSRRegisters_GenericCSRRegisters --> CSRRegister2_write
CSRRegister3_read --> GenericCSRRegisters_GenericCSRRegisters
GenericCSRRegisters_GenericCSRRegisters --> CSRRegister3_write