From 22689446ce613b2afdbec8bc16d70b56a5677f72 Mon Sep 17 00:00:00 2001 From: tilk Date: Wed, 10 Apr 2024 08:09:01 +0000 Subject: [PATCH] Drop `unittest` from `TestCaseWithSimulator` (#642) --- .doctrees/api.doctree | Bin 21256 -> 21256 bytes .doctrees/auto_graph.doctree | Bin 55039 -> 55041 bytes .doctrees/current-graph.doctree | Bin 56260 -> 56262 bytes .doctrees/environment.pickle | Bin 510534 -> 511759 bytes .doctrees/transactron.testing.doctree | Bin 269127 -> 275301 bytes _sources/auto_graph.rst.txt | 420 ++++++++--------- api.html | 2 +- assumptions.html | 2 +- auto_graph.html | 422 +++++++++--------- components/icache.html | 2 +- coreblocks.backend.html | 2 +- coreblocks.cache.html | 2 +- coreblocks.core_structs.html | 2 +- coreblocks.frontend.decoder.html | 2 +- coreblocks.frontend.fetch.html | 2 +- coreblocks.frontend.html | 2 +- coreblocks.func_blocks.fu.html | 2 +- coreblocks.func_blocks.fu.lsu.html | 2 +- ...unc_blocks.fu.unsigned_multiplication.html | 2 +- coreblocks.func_blocks.html | 2 +- coreblocks.func_blocks.interface.html | 2 +- coreblocks.html | 2 +- coreblocks.params.html | 2 +- coreblocks.peripherals.html | 2 +- coreblocks.priv.csr.html | 2 +- coreblocks.priv.html | 2 +- coreblocks.priv.traps.html | 2 +- coreblocks.scheduler.html | 2 +- current-graph.html | 422 +++++++++--------- development-environment.html | 2 +- genindex.html | 18 +- home.html | 2 +- index.html | 2 +- miscellany/exceptions-summary.html | 2 +- modules-coreblocks.html | 2 +- modules-transactron.html | 2 +- objects.inv | Bin 10686 -> 10734 bytes problem-checklist.html | 2 +- py-modindex.html | 2 +- scheduler/overview.html | 2 +- search.html | 2 +- searchindex.js | 2 +- shared-structs/implementation/rs-impl.html | 2 +- shared-structs/rs.html | 2 +- synthesis/synthesis.html | 2 +- transactions.html | 2 +- transactron.core.html | 2 +- transactron.html | 2 +- transactron.lib.html | 2 +- transactron.testing.html | 37 +- transactron.utils.amaranth_ext.html | 2 +- transactron.utils.html | 2 +- 52 files changed, 713 insertions(+), 688 deletions(-) diff --git a/.doctrees/api.doctree b/.doctrees/api.doctree index 208a0748653bf9e47b93aa52d73b78afbaaade0f..8e240dc3bfb08ed0e1ca3c338df5a9aad77af5af 100644 GIT binary patch delta 534 zcmZXRy-LJD5XU*t#zVdH<4zC!Zv5bK*m%itVBrI(y`p=Y!Gue)VRjQO#X>B$(ODls z8ymqV@FlDSAHdGSPB0Pi0(QfHX7>O8&0gJ?uI@{ZFI%Nedb4Ng(`nF0dv#^V6CoHq z$`eG0RPzK`>=|8F$Rf$OLJ^U0mJg=5K30IPqoSAl+NtuMP@6_*NO_D zAA5i-$oxhIjm-S-&*Y3g$&$I?<8fTiNkp7`)sJV5 zW)c}UT1lTP4L0|XM-XN)=%%^=eIek|=9NOu=G9cIUJOaYCHWv0Xlyi*(ZF=86R z1{$4lgH7$$EEm@F9lQY<`h76m>CF{jeFJEOJaf=oC8?6G25bt>9JnU0SasmUzXllt81%;fuTYO zT!ob%7 diff --git a/.doctrees/auto_graph.doctree b/.doctrees/auto_graph.doctree index c4444d3d29d7a53706b7b7f9e4915b3da39cedec..ad3f8f8f6d9c6a15f580cdc648747f93cb8aba2a 100644 GIT binary patch delta 2960 zcmZWpc~nzZ8b2=^CLtscA|VKbB}A4$5)fsPprZ^3%4%r^0S7^mRZ87TE6N$|s9?zN zI7d+tZC#EnC_Gs_B8yB>P}JJaX^+l~V5c4JoT@XY)9EbMx%VZA=gc4Xy?ejye&6@| z-S1@we^)18&>%eYV~b#dY3RChgh3mx3qd{+h^33Np0f_8xbA%cxm zfd_&ZBnkcSTqwZv95LL4I#{(P_OMXK!&gpvPNC3<@sU%IElf>yNS-r-+%Xw`B?{r< zWr)RiGU)~n@!K|;nEgiF!r;7g*0oNmpK;YVm%-8`#%*UGE^?={2O6FAwi<6(qXm%3 z3@DQMa;m8S0b*o6M8zJHZDe4S+vPMFp4`_~^h-FezWf6|~0n@A$+m z9BFPva8icalul@H6Jg3tOL9Y+yO>?3Oc$bKp9Ej4doZl_1k?tq8+H-nyk{KJH9AMt zQhei?hlV$GQ1Hb#rAdU^%dVrXn$iS2%3}9;#W3*p-UWrX4A16;V`yFg4e1guVmrL= zGPc7)T=Dhi!dCh&pl-$$evk*aAW-`VC;Va%>1V-xzbs7nDNyTYfXL6+CX*q?zZ_Hk zL7?5R`Y)nEk~%kj^&4ahNvbLE{_DMZ1_u$l6n zto%I>`Ye(|raKm9F2r9m<58742mj76V=yBgTQV!C?b@syM2tBjJ==;aSqU%$c80^ipccUTK3E8=XsI%RAnOn=? zLlR0tvSzND1RZ==9}<+UL=0Zw}bLDe-4_7Oq;(L19>`*zRT7Q zAiZD(6a^Mrfr33!@K}J`#W{8mi&N;!wXFXQgO?={oNQ-_Gj5dV32Z^|t&pIgbQ#ne z?0M`gk>U@f@!*%{VegobW=>hEHx@I!tw%9MD@&hFXqgn{kdcud#N_M@`?Rf2SGrM>qT9x8W97$X$BRpi^eD}is$ z^GDZNC1ZwbLp|T0{6x| zUGn_b6&IJ()D;$2SFJbVvoQ@G?q1DAVteBn9BedTxL1Vt8(rDY8;>xI1XFuraQ4^V zGA0=JCbE-zBKctU`5}O;l>OeJ>uT#HNhNi~8wNGMLaL2VBW>0_^`(t2?ZXoU0guBBiGNx!;8^85ZEHD9HOnIM%O1S-(9-&~X=> z?>Cc|(6UV>)W*{$b?Mct>*XJKs2PbSfPU6v#0R4q3Ti!7bFGTEUHh$`Ghj28O{o|t4np3b$^p>vVFS($dOA+u563umX+vhRbI0nT zV25OK=ocKgUk=5PimU_4e6uzl*3&A~46Jt8$gf6GsCi~B5(nqv`G61S;(0ZSxV*TU zNI7yfp9~Z-97iJ@tSK7y#=_zIcs}UPjgqQy5e&EH;^|E-;iWIG-F63V<>1h*MRc?v zVsZtHliZj=GtpBHSB+c94JXG}+1X3a4sHvfnJ_u{EknSBm&4-BL^83M2g%JSF6xzu z`Ba0mqpDX~^iLkf<*`7{?q6f(nLoLS&a)@i-@td*<2dh-4hfQP1alUa8)k5L51ng9WM22StJsV?7o7eF$vleF delta 2921 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 Awg3PC delta 2943 zcmY*bc~nzp7C(=WU=p&h1Q7^?En!Q@CW5Sb5Y#ElVQ~RVVig1x(5hoq3RH2S!=n69 z2ggHk^t8$x2g+k)u?mhL$Y#_tt!u3&_CY$?z{JXzq|bI z_a!%actbrr$7=rZzKPFlWAB$ooqhDM}=^f`J(!5CFC)VsF!K+ zmeLC&UIHO;dg_j`D>FP$uDo zlFO9oiIvFq(rJNj422hdff)3QMWWw(EM7x`fYz#P6ruyT+8_BZVs~`D;g7~(Db59a zgZdypWClqw5SR#SkQRpmWAIC04grv$FK7!sH3zY^%YzrQppC(w;iQ_wv#PbP;qf%% z_(`)AcQrvM2nmKRge3q>VaG$3K@`d{%CzlX2+Jr6LU%zHwitIqiQ+KT<>l22~391&1SPxeHS~yP-h! z#Dud>%m}0sxmxGLa59kOOh1i@5Fj@xbk^>h#I%I5(*sF6d3ZlQ9MdvyDi|7GQ679IQDzaWQ)t`Q}o( zpOXXKbup%L7xjL%nT*>VO~c_J?N7!<2MV*5d6kd9t0r?79$Tt8BX%ruJ}m9ux( zP!Q(L^}@DRXYU2utE#-WDTJ<@D|zne`_@GRL2gS)aQNm@ynDR>E;87VmWBzwZA|7n!y1~z*17Flm!qSUD}^yFD&0i-;K`;gDf>GL%IBaTms#vl>C5G@P6*oVKRZi5 z{#H%)1k%O38_4~&hXZ8h<>@=z{lysT_M9U3>H#<8Rv4h(r^8@{7TO903ika8U(*5% z9+04=LW7sY#>@;!o)*0OJ%z%mnG_|Mt}L8Qk-3{Ds{ZMK>Mn0AuaIE!fDCIZ2K;<5 z53)mA*!l(d^`Hx#eW-d4g8`{JuQ8Too# z=Y#Y{0rq?QL02y)nuL0PRg}YgRx*p2lV^ar>k>jJ##dUR}pu@F)}g;`eSm zJU#0|t4^PEMC=(?Y&|W*x--sXm15fmeEigwOk&2J`2#h}Th%yG|Ixtk#fg!uY2+g* zGS1FJ%h`PNw7KG|Ru+j?or`p2NTl?j&MOdiUP&3@dp;H&?IL`6e!bn6c_D~UE+V$n z3tA#A!0?4KyREuClIT0zy`gGX(jD!50r~9ijG-TQiYTbNbd(w6AE%(SON+0&9MRgf zltg>j<-s?qwAuueSv}!SFLW@A&=~504m#StMzL<5INI$6&u%Rmx_!vH0`1)j(%SV+ zzIf2BCt4?LYVss<7OMUdj66-}-Sxa&(+X@S}fa>ugmhXGA$veI`88>=8(bCJ!=HXsfJm^*6 zSYH4XeOmjP0lH5|yu0q;3qGPkti#^oh&U z4)%sd4@Z#>mJcTq62$mb@V=0Cv7thLGQ^r^1bgY|{;=W)WCZ+;s^>eyJ z{Q1_5zYHC>Oifc>=pQBj;p{hC<=7JDbX1NdvZ{My=GU^R8js=*kC`=3je9^nF#{;Y z&IvOExRX_BXF*#>g>9R diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 7276d12d40a355379aeb39a008ec3e6d19c1ec8f..1f66b35322df6505d2abc490ef22dc19f2e0cfe2 100644 GIT binary patch delta 54189 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 delta 53176 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 aj?usRU{~Ghe4d@EXPsZN^L6*g_w6sMBI8Z~ diff --git a/.doctrees/transactron.testing.doctree b/.doctrees/transactron.testing.doctree index fee39b5f40e2d560b20dc01586367bb5715d1936..8a4f6d06feb066e3a65ce08561f07f0364d1c862 100644 GIT binary patch literal 275301 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 literal 269127 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 BasicFifo2_write - Retirement_Retirement1 --> BasicFifo2_write - TransactionManager_Retirement_Retirement_cond1 --> BasicFifo2_write + Retirement_Retirement3 --> BasicFifo2_write TransactionManager_Retirement_Retirement_cond0 --> BasicFifo2_write + TransactionManager_Retirement_Retirement_cond1 --> BasicFifo2_write FIFO5_read --> Core_DiscardBranchVerify WishboneMaster_WishboneMaster --> Forwarder_write WishboneMaster1_WishboneMaster --> Forwarder1_write RegisterFile_perf --> HwExpHistogram2__add ReorderBuffer_perf --> HwExpHistogram4__add SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> WishboneMasterAdapter_request_read - SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> Serializer_Serializer1 + SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> Serializer_Serializer SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> BasicFifo_write SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> WishboneMaster_request WishboneMasterAdapter_get_read_response --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 - Serializer_Serializer --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 + Serializer_Serializer1 --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 BasicFifo_read --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 WishboneMaster_result --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 Forwarder_read --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 @@ -642,28 +642,28 @@ SimpleCommonBusCacheRefiller_accept_refill --> ICache_ICache1 Forwarder2_read --> ICache_ICache1 ICache_ICache1 <--> HwCounter3__incr - Fetch_Fetch1 --> ICache_issue_req - Fetch_Fetch1 <--> HwCounter__incr - Fetch_Fetch1 <--> FIFOLatencyMeasurer__start - Fetch_Fetch1 --> FIFO1_write - Fetch_Fetch1 --> ArgumentsToResultsZipper_write_args - Fetch_Fetch1 --> BasicFifo3_write - Fetch_Fetch1 --> BasicFifo4_write - BasicFifo4_read --> Fetch_Fetch - ICache_accept_res --> Fetch_Fetch - Fetch_Fetch <--> FIFOLatencyMeasurer__stop - FIFO1_read --> Fetch_Fetch - Fetch_Fetch --> HwExpHistogram__add - ArgumentsToResultsZipper_read --> Fetch_Fetch - BasicFifo3_read --> Fetch_Fetch - Forwarder3_read --> Fetch_Fetch - Fetch_Fetch --> MethodProduct_method + Fetch_Fetch --> ICache_issue_req + Fetch_Fetch <--> HwCounter__incr + Fetch_Fetch <--> FIFOLatencyMeasurer__start + Fetch_Fetch --> FIFO1_write + Fetch_Fetch --> ArgumentsToResultsZipper_write_args + Fetch_Fetch --> BasicFifo3_write + Fetch_Fetch --> BasicFifo4_write + BasicFifo4_read --> Fetch_Fetch1 + ICache_accept_res --> Fetch_Fetch1 + Fetch_Fetch1 <--> FIFOLatencyMeasurer__stop + FIFO1_read --> Fetch_Fetch1 + Fetch_Fetch1 --> HwExpHistogram__add + ArgumentsToResultsZipper_read --> Fetch_Fetch1 + BasicFifo3_read --> Fetch_Fetch1 + 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 <--> HwCounter6__incr @@ -673,7 +673,7 @@ RegAllocation_RegAllocation --> FIFO12_write FIFO12_read --> Renaming_Renaming Renaming_Renaming --> FRAT_rename - Retirement_Retirement1 --> FRAT_rename + Retirement_Retirement3 --> FRAT_rename TransactionManager_Retirement_Retirement_cond1 --> FRAT_rename Renaming_Renaming --> FIFO13_write FIFO13_read --> ROBAllocation_ROBAllocation @@ -681,19 +681,19 @@ ROBAllocation_ROBAllocation <--> FIFOLatencyMeasurer1__start ROBAllocation_ROBAllocation --> FIFO2_write ROBAllocation_ROBAllocation --> FIFO14_write - FIFO14_read --> RSSelection_RSSelection - RSSelection_RSSelection --> Forwarder9_write - Forwarder9_read --> RSSelection_RSSelection1 - Forwarder9_read --> RSSelection_RSSelection3 + FIFO14_read --> RSSelection_RSSelection1 + RSSelection_RSSelection1 --> Forwarder9_write Forwarder9_read --> RSSelection_RSSelection2 - RSFuncBlock_select --> RSSelection_RSSelection1 - RS_select --> RSSelection_RSSelection1 - RSSelection_RSSelection1 --> FIFO15_write - RSSelection_RSSelection3 --> FIFO15_write + Forwarder9_read --> RSSelection_RSSelection + Forwarder9_read --> RSSelection_RSSelection3 + RSFuncBlock_select --> RSSelection_RSSelection2 + RS_select --> RSSelection_RSSelection2 RSSelection_RSSelection2 --> FIFO15_write - RSFuncBlock1_select --> RSSelection_RSSelection3 - FifoRS_select --> RSSelection_RSSelection3 - RSSelection_RSSelection2 <--> CSRUnit_select + RSSelection_RSSelection --> FIFO15_write + RSSelection_RSSelection3 --> FIFO15_write + RSFuncBlock1_select --> RSSelection_RSSelection + FifoRS_select --> RSSelection_RSSelection + RSSelection_RSSelection3 <--> CSRUnit_select FIFO15_read --> RSInsertion_RSInsertion RegisterFile_read1 --> RSInsertion_RSInsertion RegisterFile_read2 --> RSInsertion_RSInsertion @@ -714,7 +714,7 @@ Collector3_method --> ConnectTrans12_ConnectTrans Forwarder8_read --> ConnectTrans12_ConnectTrans ConnectTrans12_ConnectTrans --> Fetch_resume - Retirement_Retirement3 --> Fetch_resume + Retirement_Retirement --> Fetch_resume Collector_method --> ResultAnnouncement_ResultAnnouncement Forwarder4_read --> ResultAnnouncement_ResultAnnouncement ResultAnnouncement_ResultAnnouncement --> ReorderBuffer_mark_done @@ -728,7 +728,7 @@ ResultAnnouncement_ResultAnnouncement --> FifoRS_update ResultAnnouncement_ResultAnnouncement --> CSRUnit_update RS_perf --> HwExpHistogram6__add - RS_RS --> WakeupSelect_WakeupSelect + RS_RS1 --> WakeupSelect_WakeupSelect RS_take --> WakeupSelect_WakeupSelect RS_take --> WakeupSelect1_WakeupSelect RS_take --> WakeupSelect2_WakeupSelect @@ -752,10 +752,10 @@ WakeupSelect_WakeupSelect --> AluFuncUnit_issue WakeupSelect_WakeupSelect --> TaggedCounter__incr WakeupSelect_WakeupSelect --> FIFO3_write - RS_RS3 --> WakeupSelect1_WakeupSelect + RS_RS4 --> WakeupSelect1_WakeupSelect WakeupSelect1_WakeupSelect --> ShiftFuncUnit_issue WakeupSelect1_WakeupSelect --> FIFO4_write - RS_RS1 --> WakeupSelect2_WakeupSelect + RS_RS3 --> WakeupSelect2_WakeupSelect WakeupSelect2_WakeupSelect --> JumpBranchFuncUnit_issue WakeupSelect2_WakeupSelect --> TaggedCounter1__incr WakeupSelect2_WakeupSelect <--> HwCounter5__incr @@ -763,12 +763,12 @@ WakeupSelect3_WakeupSelect --> BasicFifo5_write ConnectTrans8_ConnectTrans --> BasicFifo5_write ConnectTrans3_ConnectTrans --> BasicFifo5_write - TransactionManager_accept_cond1_ConnectTrans_accept_cond0 --> BasicFifo5_write TransactionManager_accept_cond0_ConnectTrans_accept_cond0 --> BasicFifo5_write - TransactionManager_accept_cond1_ConnectTrans --> BasicFifo5_write + TransactionManager_accept_cond0_accept_cond1_ConnectTrans --> BasicFifo5_write + TransactionManager_ConnectTrans_accept_cond1 --> BasicFifo5_write WakeupSelect2_WakeupSelect --> FIFO6_write WakeupSelect2_WakeupSelect --> FIFO5_write - RS_RS4 --> WakeupSelect3_WakeupSelect + RS_RS --> WakeupSelect3_WakeupSelect WakeupSelect3_WakeupSelect --> ExceptionFuncUnit_issue WakeupSelect3_WakeupSelect --> FIFO7_write RS_RS2 --> WakeupSelect4_WakeupSelect @@ -791,18 +791,18 @@ ConnectTrans8_ConnectTrans --> BasicFifo6_write FifoRS_perf --> HwExpHistogram8__add Forwarder6_read --> LSUDummy_LSUDummy - Forwarder6_read --> TransactionManager_LSUDummy_issue_cond0 - Forwarder6_read --> TransactionManager_issue_cond2_LSUDummy + Forwarder6_read --> TransactionManager_issue_cond0_LSUDummy + Forwarder6_read --> TransactionManager_LSUDummy_issue_cond2 Forwarder6_read --> TransactionManager_issue_cond1_LSUDummy LSUDummy_LSUDummy --> FIFO8_write WakeupSelect5_WakeupSelect --> FIFO8_write - TransactionManager_LSUDummy_issue_cond0 --> FIFO8_write - TransactionManager_issue_cond2_LSUDummy --> FIFO8_write + TransactionManager_issue_cond0_LSUDummy --> FIFO8_write + TransactionManager_LSUDummy_issue_cond2 --> FIFO8_write TransactionManager_issue_cond1_LSUDummy --> FIFO8_write LSUDummy_LSUDummy --> FIFO10_write WakeupSelect5_WakeupSelect --> FIFO10_write - TransactionManager_LSUDummy_issue_cond0 --> FIFO10_write - TransactionManager_issue_cond2_LSUDummy --> FIFO10_write + TransactionManager_issue_cond0_LSUDummy --> FIFO10_write + TransactionManager_LSUDummy_issue_cond2 --> FIFO10_write TransactionManager_issue_cond1_LSUDummy --> FIFO10_write FifoRS_FifoRS --> WakeupSelect5_WakeupSelect FifoRS_take --> WakeupSelect5_WakeupSelect @@ -835,52 +835,52 @@ 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 ConnectTrans10_ConnectTrans --> Forwarder8_write ConnectTrans11_ConnectTrans --> Forwarder8_write BasicFifo6_read --> ConnectTrans10_ConnectTrans CSRUnit_fetch_resume --> ConnectTrans11_ConnectTrans - ReorderBuffer_peek --> Retirement_Retirement2 - ReorderBuffer_peek --> Retirement_Retirement4 ReorderBuffer_peek --> Retirement_Retirement1 - ReorderBuffer_peek --> TransactionManager_Retirement_Retirement_cond1 + ReorderBuffer_peek --> Retirement_Retirement2 + ReorderBuffer_peek --> Retirement_Retirement3 ReorderBuffer_peek --> TransactionManager_Retirement_Retirement_cond0 - Retirement_Retirement2 --> MethodTryProduct_method - ExceptionCauseRegister_get --> Retirement_Retirement4 - ExceptionCauseRegister_get --> TransactionManager_Retirement_Retirement_cond1 + ReorderBuffer_peek --> TransactionManager_Retirement_Retirement_cond1 + Retirement_Retirement1 --> MethodTryProduct_method + ExceptionCauseRegister_get --> Retirement_Retirement2 ExceptionCauseRegister_get --> TransactionManager_Retirement_Retirement_cond0 - Retirement_Retirement1 <--> ReorderBuffer_retire - TransactionManager_Retirement_Retirement_cond1 <--> ReorderBuffer_retire + ExceptionCauseRegister_get --> TransactionManager_Retirement_Retirement_cond1 + Retirement_Retirement3 <--> ReorderBuffer_retire TransactionManager_Retirement_Retirement_cond0 <--> ReorderBuffer_retire - Retirement_Retirement1 <--> FIFOLatencyMeasurer1__stop - TransactionManager_Retirement_Retirement_cond1 <--> FIFOLatencyMeasurer1__stop + TransactionManager_Retirement_Retirement_cond1 <--> ReorderBuffer_retire + Retirement_Retirement3 <--> FIFOLatencyMeasurer1__stop TransactionManager_Retirement_Retirement_cond0 <--> FIFOLatencyMeasurer1__stop - FIFO2_read --> Retirement_Retirement1 - FIFO2_read --> TransactionManager_Retirement_Retirement_cond1 + TransactionManager_Retirement_Retirement_cond1 <--> FIFOLatencyMeasurer1__stop + FIFO2_read --> Retirement_Retirement3 FIFO2_read --> TransactionManager_Retirement_Retirement_cond0 - Retirement_Retirement1 --> HwExpHistogram3__add - TransactionManager_Retirement_Retirement_cond1 --> HwExpHistogram3__add + FIFO2_read --> TransactionManager_Retirement_Retirement_cond1 + Retirement_Retirement3 --> HwExpHistogram3__add TransactionManager_Retirement_Retirement_cond0 --> HwExpHistogram3__add - CoreInstructionCounter_decrement --> Retirement_Retirement1 - CoreInstructionCounter_decrement --> TransactionManager_Retirement_Retirement_cond1 + TransactionManager_Retirement_Retirement_cond1 --> HwExpHistogram3__add + CoreInstructionCounter_decrement --> Retirement_Retirement3 CoreInstructionCounter_decrement --> TransactionManager_Retirement_Retirement_cond0 - RRAT_peek --> Retirement_Retirement1 + CoreInstructionCounter_decrement --> TransactionManager_Retirement_Retirement_cond1 + RRAT_peek --> Retirement_Retirement3 RRAT_peek --> TransactionManager_Retirement_Retirement_cond1 - Retirement_Retirement1 --> RegisterFile_free - TransactionManager_Retirement_Retirement_cond1 --> RegisterFile_free + Retirement_Retirement3 --> RegisterFile_free TransactionManager_Retirement_Retirement_cond0 --> RegisterFile_free - Retirement_Retirement1 --> TaggedLatencyMeasurer__stop - TransactionManager_Retirement_Retirement_cond1 --> TaggedLatencyMeasurer__stop + TransactionManager_Retirement_Retirement_cond1 --> RegisterFile_free + Retirement_Retirement3 --> TaggedLatencyMeasurer__stop TransactionManager_Retirement_Retirement_cond0 --> TaggedLatencyMeasurer__stop - AsyncMemoryBank_read --> Retirement_Retirement1 - AsyncMemoryBank_read --> TransactionManager_Retirement_Retirement_cond1 + TransactionManager_Retirement_Retirement_cond1 --> TaggedLatencyMeasurer__stop + AsyncMemoryBank_read --> Retirement_Retirement3 AsyncMemoryBank_read --> TransactionManager_Retirement_Retirement_cond0 - Retirement_Retirement1 --> HwExpHistogram1__add - TransactionManager_Retirement_Retirement_cond1 --> HwExpHistogram1__add + AsyncMemoryBank_read --> TransactionManager_Retirement_Retirement_cond1 + Retirement_Retirement3 --> HwExpHistogram1__add TransactionManager_Retirement_Retirement_cond0 --> HwExpHistogram1__add - CSRRegister1_read --> Retirement_Retirement3 - Retirement_Retirement3 <--> ExceptionCauseRegister_clear + TransactionManager_Retirement_Retirement_cond1 --> HwExpHistogram1__add + CSRRegister1_read --> Retirement_Retirement + Retirement_Retirement <--> ExceptionCauseRegister_clear GenericCSRRegisters_GenericCSRRegisters <--> DoubleCounterCSR_increment CSRRegister3_read --> GenericCSRRegisters_GenericCSRRegisters GenericCSRRegisters_GenericCSRRegisters --> CSRRegister3_write @@ -892,35 +892,14 @@ CSRRegister6_read --> GenericCSRRegisters_GenericCSRRegisters GenericCSRRegisters_GenericCSRRegisters --> CSRRegister6_write AdapterTrans1_AdapterTrans_report_interrupt <--> InterruptController_report_interrupt - TransactionManager_LSUDummy_issue_cond0 <--> LSUDummy_LSUDummy1 - TransactionManager_issue_cond2_LSUDummy <--> LSUDummy_LSUDummy1 - TransactionManager_issue_cond1_LSUDummy <--> LSUDummy_LSUDummy1 - TransactionManager_LSUDummy_issue_cond0 --> LSURequester_issue - TransactionManager_issue_cond2_LSUDummy --> LSURequester_issue - TransactionManager_issue_cond1_LSUDummy --> LSURequester_issue - TransactionManager_LSUDummy_issue_cond0 --> FIFO9_write - TransactionManager_issue_cond2_LSUDummy --> FIFO9_write - TransactionManager_issue_cond1_LSUDummy --> FIFO9_write - TransactionManager_LSUDummy_issue_cond0 <--> LSURequester_issue_cond0 - TransactionManager_LSUDummy_issue_cond0 --> WishboneMasterAdapter1_request_write - TransactionManager_LSUDummy_issue_cond0 --> Serializer1_Serializer - TransactionManager_LSUDummy_issue_cond0 --> BasicFifo1_write - TransactionManager_issue_cond1_LSUDummy --> BasicFifo1_write - TransactionManager_LSUDummy_issue_cond0 --> WishboneMaster1_request - TransactionManager_issue_cond1_LSUDummy --> WishboneMaster1_request - TransactionManager_issue_cond2_LSUDummy <--> LSURequester_issue_cond2 - TransactionManager_issue_cond1_LSUDummy <--> LSURequester_issue_cond1 - TransactionManager_issue_cond1_LSUDummy --> WishboneMasterAdapter1_request_read - TransactionManager_issue_cond1_LSUDummy --> Serializer1_Serializer3 - TransactionManager_Retirement_Retirement_cond1 <--> Retirement_Retirement - TransactionManager_Retirement_Retirement_cond0 <--> Retirement_Retirement - TransactionManager_Retirement_Retirement_cond1 --> CSRRegister_write + TransactionManager_Retirement_Retirement_cond0 <--> Retirement_Retirement4 + TransactionManager_Retirement_Retirement_cond1 <--> Retirement_Retirement4 TransactionManager_Retirement_Retirement_cond0 --> CSRRegister_write - TransactionManager_Retirement_Retirement_cond1 --> CSRRegister2_write + TransactionManager_Retirement_Retirement_cond1 --> CSRRegister_write TransactionManager_Retirement_Retirement_cond0 --> CSRRegister2_write - TransactionManager_Retirement_Retirement_cond1 <--> InterruptController_entry + TransactionManager_Retirement_Retirement_cond1 --> CSRRegister2_write TransactionManager_Retirement_Retirement_cond0 <--> InterruptController_entry - TransactionManager_Retirement_Retirement_cond1 <--> Retirement_Retirement_cond1 + TransactionManager_Retirement_Retirement_cond1 <--> InterruptController_entry TransactionManager_Retirement_Retirement_cond0 <--> Retirement_Retirement_cond0 TransactionManager_Retirement_Retirement_cond0 --> RRAT_commit TransactionManager_Retirement_Retirement_cond0 <--> DoubleCounterCSR2_increment @@ -929,33 +908,54 @@ CSRRegister8_read --> TransactionManager_Retirement_Retirement_cond0 TransactionManager_Retirement_Retirement_cond0 --> CSRRegister8_write TransactionManager_Retirement_Retirement_cond0 <--> HwCounter7__incr - TransactionManager_accept_cond1_ConnectTrans_accept_cond0 <--> LSURequester_accept_cond1 - WishboneMasterAdapter1_get_read_response --> TransactionManager_accept_cond1_ConnectTrans_accept_cond0 - Serializer1_Serializer1 --> TransactionManager_accept_cond1_ConnectTrans_accept_cond0 - BasicFifo1_read --> TransactionManager_accept_cond1_ConnectTrans_accept_cond0 - BasicFifo1_read --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 - WishboneMaster1_result --> TransactionManager_accept_cond1_ConnectTrans_accept_cond0 - WishboneMaster1_result --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 - Forwarder1_read --> TransactionManager_accept_cond1_ConnectTrans_accept_cond0 - Forwarder1_read --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 - TransactionManager_accept_cond1_ConnectTrans_accept_cond0 <--> ConnectTrans9_ConnectTrans - TransactionManager_accept_cond0_ConnectTrans_accept_cond0 <--> ConnectTrans9_ConnectTrans - TransactionManager_accept_cond1_ConnectTrans <--> ConnectTrans9_ConnectTrans - TransactionManager_accept_cond1_ConnectTrans_accept_cond0 --> Forwarder7_write - TransactionManager_accept_cond0_ConnectTrans_accept_cond0 --> Forwarder7_write - TransactionManager_accept_cond1_ConnectTrans --> Forwarder7_write - LSUDummy_accept --> TransactionManager_accept_cond1_ConnectTrans_accept_cond0 - LSUDummy_accept --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 - LSUDummy_accept --> TransactionManager_accept_cond1_ConnectTrans - TransactionManager_accept_cond1_ConnectTrans_accept_cond0 <--> LSUDummy_accept_cond0 + TransactionManager_issue_cond0_LSUDummy <--> LSURequester_issue_cond0 + TransactionManager_issue_cond0_LSUDummy --> WishboneMasterAdapter1_request_write + TransactionManager_issue_cond0_LSUDummy --> Serializer1_Serializer3 + TransactionManager_issue_cond0_LSUDummy --> BasicFifo1_write + TransactionManager_issue_cond1_LSUDummy --> BasicFifo1_write + TransactionManager_issue_cond0_LSUDummy --> WishboneMaster1_request + TransactionManager_issue_cond1_LSUDummy --> WishboneMaster1_request + TransactionManager_issue_cond0_LSUDummy <--> LSUDummy_LSUDummy1 + TransactionManager_LSUDummy_issue_cond2 <--> LSUDummy_LSUDummy1 + TransactionManager_issue_cond1_LSUDummy <--> LSUDummy_LSUDummy1 + TransactionManager_issue_cond0_LSUDummy --> LSURequester_issue + TransactionManager_LSUDummy_issue_cond2 --> LSURequester_issue + TransactionManager_issue_cond1_LSUDummy --> LSURequester_issue + TransactionManager_issue_cond0_LSUDummy --> FIFO9_write + TransactionManager_LSUDummy_issue_cond2 --> FIFO9_write + TransactionManager_issue_cond1_LSUDummy --> FIFO9_write + TransactionManager_Retirement_Retirement_cond1 <--> Retirement_Retirement_cond1 + TransactionManager_LSUDummy_issue_cond2 <--> LSURequester_issue_cond2 + TransactionManager_issue_cond1_LSUDummy <--> LSURequester_issue_cond1 + TransactionManager_issue_cond1_LSUDummy --> WishboneMasterAdapter1_request_read + TransactionManager_issue_cond1_LSUDummy --> Serializer1_Serializer TransactionManager_accept_cond0_ConnectTrans_accept_cond0 <--> LSUDummy_accept_cond0 - LSURequester_accept --> TransactionManager_accept_cond1_ConnectTrans_accept_cond0 + TransactionManager_accept_cond0_accept_cond1_ConnectTrans <--> LSUDummy_accept_cond0 LSURequester_accept --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 - FIFO9_read --> TransactionManager_accept_cond1_ConnectTrans_accept_cond0 + LSURequester_accept --> TransactionManager_accept_cond0_accept_cond1_ConnectTrans FIFO9_read --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 + FIFO9_read --> TransactionManager_accept_cond0_accept_cond1_ConnectTrans + TransactionManager_accept_cond0_ConnectTrans_accept_cond0 <--> ConnectTrans9_ConnectTrans + TransactionManager_accept_cond0_accept_cond1_ConnectTrans <--> ConnectTrans9_ConnectTrans + TransactionManager_ConnectTrans_accept_cond1 <--> ConnectTrans9_ConnectTrans + TransactionManager_accept_cond0_ConnectTrans_accept_cond0 --> Forwarder7_write + TransactionManager_accept_cond0_accept_cond1_ConnectTrans --> Forwarder7_write + TransactionManager_ConnectTrans_accept_cond1 --> Forwarder7_write + LSUDummy_accept --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 + LSUDummy_accept --> TransactionManager_accept_cond0_accept_cond1_ConnectTrans + LSUDummy_accept --> TransactionManager_ConnectTrans_accept_cond1 TransactionManager_accept_cond0_ConnectTrans_accept_cond0 <--> LSURequester_accept_cond0 WishboneMasterAdapter1_get_write_response --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 - Serializer1_Serializer2 --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 - TransactionManager_accept_cond1_ConnectTrans <--> LSUDummy_accept_cond1 - FIFO8_read --> TransactionManager_accept_cond1_ConnectTrans - FIFO10_read --> TransactionManager_accept_cond1_ConnectTrans + Serializer1_Serializer1 --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 + BasicFifo1_read --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 + BasicFifo1_read --> TransactionManager_accept_cond0_accept_cond1_ConnectTrans + WishboneMaster1_result --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 + WishboneMaster1_result --> TransactionManager_accept_cond0_accept_cond1_ConnectTrans + Forwarder1_read --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 + Forwarder1_read --> TransactionManager_accept_cond0_accept_cond1_ConnectTrans + TransactionManager_accept_cond0_accept_cond1_ConnectTrans <--> LSURequester_accept_cond1 + WishboneMasterAdapter1_get_read_response --> TransactionManager_accept_cond0_accept_cond1_ConnectTrans + Serializer1_Serializer2 --> TransactionManager_accept_cond0_accept_cond1_ConnectTrans + TransactionManager_ConnectTrans_accept_cond1 <--> LSUDummy_accept_cond1 + FIFO8_read --> TransactionManager_ConnectTrans_accept_cond1 + FIFO10_read --> TransactionManager_ConnectTrans_accept_cond1 diff --git a/api.html b/api.html index 9695022e1..725879fd0 100644 --- a/api.html +++ b/api.html @@ -259,7 +259,7 @@

transactron

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/assumptions.html b/assumptions.html index 3dddfe39c..448ff7f9c 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 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/auto_graph.html b/auto_graph.html index ed8aa6bff..4088a14f5 100644 --- a/auto_graph.html +++ b/auto_graph.html @@ -86,21 +86,21 @@ Core_InitFreeRFFifo["InitFreeRFFifo"] Core_DiscardBranchVerify["DiscardBranchVerify"] subgraph WishboneMaster["wb_master_instr WishboneMaster"] - WishboneMaster_request["request"] WishboneMaster_WishboneMaster["WishboneMaster"] WishboneMaster_result["result"] + WishboneMaster_request["request"] subgraph Forwarder["result Forwarder"] Forwarder_read["read"] Forwarder_write["write"] end end subgraph WishboneMaster1["wb_master_data WishboneMaster"] + WishboneMaster1_request["request"] WishboneMaster1_result["result"] WishboneMaster1_WishboneMaster["WishboneMaster"] - WishboneMaster1_request["request"] subgraph Forwarder1["result Forwarder"] - Forwarder1_write["write"] Forwarder1_read["read"] + Forwarder1_write["write"] end end subgraph WishboneMasterAdapter["bus_master_instr_adapter WishboneMasterAdapter"] @@ -110,34 +110,34 @@ Serializer_Serializer["Serializer"] Serializer_Serializer1["Serializer"] subgraph BasicFifo["pending_requests BasicFifo"] - BasicFifo_read["read"] BasicFifo_write["write"] + BasicFifo_read["read"] end end end subgraph WishboneMasterAdapter1["bus_master_data_adapter WishboneMasterAdapter"] WishboneMasterAdapter1_request_write["request_write"] + WishboneMasterAdapter1_get_read_response["get_read_response"] WishboneMasterAdapter1_get_write_response["get_write_response"] WishboneMasterAdapter1_request_read["request_read"] - WishboneMasterAdapter1_get_read_response["get_read_response"] subgraph Serializer1["bus_serializer Serializer"] Serializer1_Serializer["Serializer"] Serializer1_Serializer1["Serializer"] Serializer1_Serializer2["Serializer"] Serializer1_Serializer3["Serializer"] subgraph BasicFifo1["pending_requests BasicFifo"] - BasicFifo1_read["read"] BasicFifo1_write["write"] + BasicFifo1_read["read"] end end end subgraph CoreInstructionCounter["core_counter CoreInstructionCounter"] - CoreInstructionCounter_decrement["decrement"] CoreInstructionCounter_increment["increment"] + CoreInstructionCounter_decrement["decrement"] end subgraph FIFO["fifo_fetch FIFO"] - FIFO_read["read"] FIFO_write["write"] + FIFO_read["read"] end subgraph MethodMap["core_counter_increment_discard_map MethodMap"] MethodMap_method["method"] @@ -146,25 +146,25 @@ 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_SimpleCommonBusCacheRefiller1["SimpleCommonBusCacheRefiller"] SimpleCommonBusCacheRefiller_accept_refill["accept_refill"] + SimpleCommonBusCacheRefiller_start_refill["start_refill"] subgraph Forwarder2["resp_fwd Forwarder"] Forwarder2_read["read"] Forwarder2_write["write"] end end subgraph ICache["icache ICache"] + ICache_MemRead["MemRead"] ICache_accept_res["accept_res"] ICache_ICache["ICache"] - ICache_MemRead["MemRead"] - ICache_ICache1["ICache"] ICache_issue_req["issue_req"] + ICache_ICache1["ICache"] subgraph HwCounter["perf_loads HwCounter"] HwCounter__incr["_incr"] end @@ -192,18 +192,18 @@ end end subgraph ArgumentsToResultsZipper["req_zipper ArgumentsToResultsZipper"] - ArgumentsToResultsZipper_peek_arg["peek_arg"] ArgumentsToResultsZipper_write_args["write_args"] ArgumentsToResultsZipper_read["read"] ArgumentsToResultsZipper_write_results["write_results"] + ArgumentsToResultsZipper_peek_arg["peek_arg"] subgraph BasicFifo3["fifo BasicFifo"] + BasicFifo3_peek["peek"] BasicFifo3_write["write"] BasicFifo3_read["read"] - BasicFifo3_peek["peek"] end subgraph Forwarder3["forwarder Forwarder"] - Forwarder3_write["write"] Forwarder3_read["read"] + Forwarder3_write["write"] end end end @@ -215,11 +215,11 @@ RRAT_peek["peek"] end subgraph RegisterFile["RF RegisterFile"] - RegisterFile_read2["read2"] - RegisterFile_perf["perf"] RegisterFile_free["free"] RegisterFile_read1["read1"] RegisterFile_write["write"] + RegisterFile_perf["perf"] + RegisterFile_read2["read2"] subgraph TaggedLatencyMeasurer["perf_rf_valid_time TaggedLatencyMeasurer"] TaggedLatencyMeasurer__start["_start"] TaggedLatencyMeasurer__stop["_stop"] @@ -227,8 +227,8 @@ HwExpHistogram1__add["_add"] end subgraph AsyncMemoryBank["slots AsyncMemoryBank"] - AsyncMemoryBank_read["read"] AsyncMemoryBank_write["write"] + AsyncMemoryBank_read["read"] end end subgraph HwExpHistogram2["perf_num_valid HwExpHistogram"] @@ -236,21 +236,21 @@ end end subgraph ReorderBuffer["ROB ReorderBuffer"] - ReorderBuffer_put["put"] - ReorderBuffer_get_indices["get_indices"] - ReorderBuffer_perf["perf"] ReorderBuffer_mark_done["mark_done"] + ReorderBuffer_get_indices["get_indices"] ReorderBuffer_peek["peek"] ReorderBuffer_retire["retire"] + ReorderBuffer_perf["perf"] + ReorderBuffer_put["put"] subgraph FIFOLatencyMeasurer1["perf_rob_wait_time FIFOLatencyMeasurer"] - FIFOLatencyMeasurer1__stop["_stop"] FIFOLatencyMeasurer1__start["_start"] + FIFOLatencyMeasurer1__stop["_stop"] subgraph HwExpHistogram3["histogram HwExpHistogram"] HwExpHistogram3__add["_add"] end subgraph FIFO2["fifo FIFO"] - FIFO2_read["read"] FIFO2_write["write"] + FIFO2_read["read"] end end subgraph HwExpHistogram4["perf_rob_size HwExpHistogram"] @@ -258,18 +258,18 @@ end end subgraph Fetch["fetch Fetch"] - Fetch_stall_exception["stall_exception"] Fetch_Fetch["Fetch"] - Fetch_resume["resume"] + Fetch_stall_exception["stall_exception"] Fetch_Fetch1["Fetch"] + Fetch_resume["resume"] subgraph BasicFifo4["fetch_target_queue BasicFifo"] - BasicFifo4_write["write"] BasicFifo4_read["read"] + BasicFifo4_write["write"] end end subgraph ExceptionCauseRegister["exception_cause_register ExceptionCauseRegister"] - ExceptionCauseRegister_clear["clear"] ExceptionCauseRegister_report["report"] + ExceptionCauseRegister_clear["clear"] ExceptionCauseRegister_get["get"] subgraph BasicFifo5["fu_report_fifo BasicFifo"] BasicFifo5_write["write"] @@ -283,8 +283,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"] @@ -302,30 +302,30 @@ MethodProduct1_method["method"] end subgraph RSFuncBlock["rs_block_0 RSFuncBlock"] + RSFuncBlock_update["update"] + RSFuncBlock_insert["insert"] RSFuncBlock_select["select"] RSFuncBlock_get_result["get_result"] - RSFuncBlock_insert["insert"] - RSFuncBlock_update["update"] subgraph RS["rs RS"] - RS_perf["perf"] - RS_RS["RS"] + RS_update["update"] RS_insert["insert"] RS_select["select"] - RS_update["update"] - RS_take["take"] + RS_RS["RS"] RS_RS1["RS"] + RS_perf["perf"] + RS_take["take"] RS_RS2["RS"] RS_RS3["RS"] RS_RS4["RS"] subgraph TaggedLatencyMeasurer1["perf_rs_wait_time TaggedLatencyMeasurer"] - TaggedLatencyMeasurer1__stop["_stop"] TaggedLatencyMeasurer1__start["_start"] + TaggedLatencyMeasurer1__stop["_stop"] subgraph HwExpHistogram5["histogram HwExpHistogram"] HwExpHistogram5__add["_add"] end subgraph AsyncMemoryBank1["slots AsyncMemoryBank"] - AsyncMemoryBank1_write["write"] AsyncMemoryBank1_read["read"] + AsyncMemoryBank1_write["write"] end end subgraph HwExpHistogram6["perf_num_full HwExpHistogram"] @@ -339,8 +339,8 @@ TaggedCounter__incr["_incr"] end subgraph FIFO3["fifo FIFO"] - FIFO3_write["write"] FIFO3_read["read"] + FIFO3_write["write"] end end subgraph WakeupSelect["wakeup_select_0 WakeupSelect"] @@ -371,8 +371,8 @@ HwCounter5__incr["_incr"] end subgraph FIFO6["fifo_res FIFO"] - FIFO6_read["read"] FIFO6_write["write"] + FIFO6_read["read"] end end subgraph WakeupSelect2["wakeup_select_2 WakeupSelect"] @@ -390,9 +390,9 @@ WakeupSelect3_WakeupSelect["WakeupSelect"] end subgraph PrivilegedFuncUnit["func_unit_4 PrivilegedFuncUnit"] - PrivilegedFuncUnit_issue["issue"] - PrivilegedFuncUnit_precommit["precommit"] PrivilegedFuncUnit_accept["accept"] + PrivilegedFuncUnit_precommit["precommit"] + PrivilegedFuncUnit_issue["issue"] subgraph BasicFifo6["fetch_resume_fifo BasicFifo"] BasicFifo6_read["read"] BasicFifo6_write["write"] @@ -404,8 +404,8 @@ subgraph Collector1["collector Collector"] Collector1_method["method"] subgraph Forwarder5["forwarder Forwarder"] - Forwarder5_write["write"] Forwarder5_read["read"] + Forwarder5_write["write"] end subgraph ManyToOneConnectTrans1["connect ManyToOneConnectTrans"] subgraph ConnectTrans4["ManyToOneConnectTrans_input_0 ConnectTrans"] @@ -429,18 +429,18 @@ subgraph RSFuncBlock1["rs_block_1 RSFuncBlock"] RSFuncBlock1_update["update"] RSFuncBlock1_select["select"] - RSFuncBlock1_insert["insert"] RSFuncBlock1_get_result["get_result"] + RSFuncBlock1_insert["insert"] subgraph FifoRS["rs FifoRS"] + FifoRS_select["select"] FifoRS_perf["perf"] - FifoRS_update["update"] + FifoRS_take["take"] FifoRS_FifoRS["FifoRS"] - FifoRS_select["select"] FifoRS_insert["insert"] - FifoRS_take["take"] + FifoRS_update["update"] subgraph TaggedLatencyMeasurer2["perf_rs_wait_time TaggedLatencyMeasurer"] - TaggedLatencyMeasurer2__stop["_stop"] TaggedLatencyMeasurer2__start["_start"] + TaggedLatencyMeasurer2__stop["_stop"] subgraph HwExpHistogram7["histogram HwExpHistogram"] HwExpHistogram7__add["_add"] end @@ -454,37 +454,37 @@ end end subgraph LSUDummy["func_unit_0 LSUDummy"] - LSUDummy_issue["issue"] - LSUDummy_LSUDummy["LSUDummy"] + LSUDummy_accept["accept"] LSUDummy_accept_cond0["accept_cond0"] + LSUDummy_precommit["precommit"] + LSUDummy_LSUDummy["LSUDummy"] + LSUDummy_issue["issue"] LSUDummy_LSUDummy1["LSUDummy"] LSUDummy_accept_cond1["accept_cond1"] - LSUDummy_precommit["precommit"] - LSUDummy_accept["accept"] subgraph LSURequester["requester LSURequester"] - LSURequester_issue_cond0["issue_cond0"] - LSURequester_accept_cond0["accept_cond0"] LSURequester_accept_cond1["accept_cond1"] LSURequester_issue_cond1["issue_cond1"] + LSURequester_issue_cond0["issue_cond0"] LSURequester_issue_cond2["issue_cond2"] LSURequester_issue["issue"] LSURequester_accept["accept"] + LSURequester_accept_cond0["accept_cond0"] end subgraph Forwarder6["requests Forwarder"] Forwarder6_write["write"] Forwarder6_read["read"] end subgraph FIFO8["results_noop FIFO"] - FIFO8_write["write"] FIFO8_read["read"] + FIFO8_write["write"] end subgraph FIFO9["issued FIFO"] FIFO9_read["read"] FIFO9_write["write"] end subgraph FIFO10["issued_noop FIFO"] - FIFO10_read["read"] FIFO10_write["write"] + FIFO10_read["read"] end end subgraph WakeupSelect5["wakeup_select_0 WakeupSelect"] @@ -493,8 +493,8 @@ subgraph Collector2["collector Collector"] Collector2_method["method"] subgraph Forwarder7["forwarder Forwarder"] - Forwarder7_write["write"] Forwarder7_read["read"] + Forwarder7_write["write"] end subgraph ManyToOneConnectTrans2["connect ManyToOneConnectTrans"] subgraph ConnectTrans9["ManyToOneConnectTrans_input_0 ConnectTrans"] @@ -504,18 +504,18 @@ end end subgraph CSRUnit["rs_block_2 CSRUnit"] - CSRUnit_insert["insert"] - CSRUnit_CSRUnit["CSRUnit"] - CSRUnit_fetch_resume["fetch_resume"] - CSRUnit_select["select"] - CSRUnit_update["update"] CSRUnit_precommit["precommit"] + CSRUnit_select["select"] + CSRUnit_CSRUnit["CSRUnit"] CSRUnit_get_result["get_result"] + CSRUnit_update["update"] + CSRUnit_fetch_resume["fetch_resume"] + CSRUnit_insert["insert"] end subgraph MethodTryProduct["InstructionPrecommitKey_unifier MethodTryProduct"] MethodTryProduct_MethodTryProduct["MethodTryProduct"] - MethodTryProduct_MethodTryProduct1["MethodTryProduct"] MethodTryProduct_method["method"] + MethodTryProduct_MethodTryProduct1["MethodTryProduct"] MethodTryProduct_MethodTryProduct2["MethodTryProduct"] end subgraph Collector3["FetchResumeKey_unifier Collector"] @@ -538,49 +538,49 @@ ResultAnnouncement_ResultAnnouncement["ResultAnnouncement"] end subgraph InterruptController["interrupt_controller InterruptController"] - InterruptController_report_interrupt["report_interrupt"] InterruptController_entry["entry"] InterruptController_mret["mret"] + InterruptController_report_interrupt["report_interrupt"] end subgraph GenericCSRRegisters["csr_generic GenericCSRRegisters"] GenericCSRRegisters_GenericCSRRegisters["GenericCSRRegisters"] subgraph MachineModeCSRRegisters["m_mode MachineModeCSRRegisters"] subgraph CSRRegister["mcause CSRRegister"] CSRRegister__fu_read["_fu_read"] - CSRRegister_write["write"] CSRRegister__fu_write["_fu_write"] + CSRRegister_write["write"] end subgraph CSRRegister1["mtvec CSRRegister"] - CSRRegister1__fu_write["_fu_write"] - CSRRegister1_read["read"] CSRRegister1__fu_read["_fu_read"] + CSRRegister1_read["read"] + CSRRegister1__fu_write["_fu_write"] end subgraph CSRRegister2["mepc CSRRegister"] - CSRRegister2__fu_read["_fu_read"] + CSRRegister2_write["write"] CSRRegister2__fu_write["_fu_write"] CSRRegister2_read["read"] - CSRRegister2_write["write"] + CSRRegister2__fu_read["_fu_read"] end end subgraph DoubleCounterCSR["csr_cycle DoubleCounterCSR"] DoubleCounterCSR_increment["increment"] subgraph CSRRegister3["register_low CSRRegister"] + CSRRegister3_write["write"] CSRRegister3__fu_read["_fu_read"] CSRRegister3_read["read"] - CSRRegister3_write["write"] end subgraph CSRRegister4["register_high CSRRegister"] - CSRRegister4_read["read"] CSRRegister4_write["write"] CSRRegister4__fu_read["_fu_read"] + CSRRegister4_read["read"] end end subgraph DoubleCounterCSR1["csr_time DoubleCounterCSR"] DoubleCounterCSR1_increment["increment"] subgraph CSRRegister5["register_low CSRRegister"] - CSRRegister5__fu_read["_fu_read"] CSRRegister5_read["read"] CSRRegister5_write["write"] + CSRRegister5__fu_read["_fu_read"] end subgraph CSRRegister6["register_high CSRRegister"] CSRRegister6_write["write"] @@ -622,8 +622,8 @@ ROBAllocation_ROBAllocation["ROBAllocation"] end subgraph FIFO15["rs_select_out_buf FIFO"] - FIFO15_read["read"] FIFO15_write["write"] + FIFO15_read["read"] end subgraph RSSelection["rs_selector RSSelection"] RSSelection_RSSelection["RSSelection"] @@ -631,8 +631,8 @@ RSSelection_RSSelection2["RSSelection"] RSSelection_RSSelection3["RSSelection"] subgraph Forwarder9["forwarder Forwarder"] - Forwarder9_read["read"] Forwarder9_write["write"] + Forwarder9_read["read"] end end subgraph RSInsertion["rs_insertion RSInsertion"] @@ -643,14 +643,14 @@ ConnectTrans12_ConnectTrans["ConnectTrans"] end subgraph Retirement["retirement Retirement"] - Retirement_Retirement_cond0["Retirement_cond0"] Retirement_Retirement["Retirement"] - Retirement_core_state["core_state"] Retirement_Retirement1["Retirement"] Retirement_Retirement2["Retirement"] Retirement_Retirement3["Retirement"] - Retirement_Retirement_cond1["Retirement_cond1"] Retirement_Retirement4["Retirement"] + Retirement_Retirement_cond0["Retirement_cond0"] + Retirement_Retirement_cond1["Retirement_cond1"] + Retirement_core_state["core_state"] subgraph DoubleCounterCSR2["instret_csr DoubleCounterCSR"] DoubleCounterCSR2_increment["increment"] subgraph CSRRegister7["register_low CSRRegister"] @@ -659,9 +659,9 @@ CSRRegister7_write["write"] end subgraph CSRRegister8["register_high CSRRegister"] - CSRRegister8_read["read"] CSRRegister8__fu_read["_fu_read"] CSRRegister8_write["write"] + CSRRegister8_read["read"] end end subgraph HwCounter7["perf_instr_ret HwCounter"] @@ -681,31 +681,31 @@ end end subgraph TransactionManager["transactionManager TransactionManager"] + TransactionManager_issue_cond0_LSUDummy["issue_cond0_LSUDummy"] + TransactionManager_LSUDummy_issue_cond2["LSUDummy_issue_cond2"] TransactionManager_Retirement_Retirement_cond0["Retirement_Retirement_cond0"] - TransactionManager_accept_cond1_ConnectTrans_accept_cond0["accept_cond1_ConnectTrans_accept_cond0"] - TransactionManager_accept_cond0_ConnectTrans_accept_cond0["accept_cond0_ConnectTrans_accept_cond0"] - TransactionManager_issue_cond1_LSUDummy["issue_cond1_LSUDummy"] - TransactionManager_LSUDummy_issue_cond0["LSUDummy_issue_cond0"] - TransactionManager_issue_cond2_LSUDummy["issue_cond2_LSUDummy"] TransactionManager_Retirement_Retirement_cond1["Retirement_Retirement_cond1"] - TransactionManager_accept_cond1_ConnectTrans["accept_cond1_ConnectTrans"] + TransactionManager_issue_cond1_LSUDummy["issue_cond1_LSUDummy"] + TransactionManager_ConnectTrans_accept_cond1["ConnectTrans_accept_cond1"] + TransactionManager_accept_cond0_ConnectTrans_accept_cond0["accept_cond0_ConnectTrans_accept_cond0"] + TransactionManager_accept_cond0_accept_cond1_ConnectTrans["accept_cond0_accept_cond1_ConnectTrans"] end end Core_InitFreeRFFifo --> BasicFifo2_write -Retirement_Retirement1 --> BasicFifo2_write -TransactionManager_Retirement_Retirement_cond1 --> BasicFifo2_write +Retirement_Retirement3 --> BasicFifo2_write TransactionManager_Retirement_Retirement_cond0 --> BasicFifo2_write +TransactionManager_Retirement_Retirement_cond1 --> BasicFifo2_write FIFO5_read --> Core_DiscardBranchVerify WishboneMaster_WishboneMaster --> Forwarder_write WishboneMaster1_WishboneMaster --> Forwarder1_write RegisterFile_perf --> HwExpHistogram2__add ReorderBuffer_perf --> HwExpHistogram4__add SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> WishboneMasterAdapter_request_read -SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> Serializer_Serializer1 +SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> Serializer_Serializer SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> BasicFifo_write SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> WishboneMaster_request WishboneMasterAdapter_get_read_response --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 -Serializer_Serializer --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 +Serializer_Serializer1 --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 BasicFifo_read --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 WishboneMaster_result --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 Forwarder_read --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller1 @@ -721,28 +721,28 @@ SimpleCommonBusCacheRefiller_accept_refill --> ICache_ICache1 Forwarder2_read --> ICache_ICache1 ICache_ICache1 <--> HwCounter3__incr -Fetch_Fetch1 --> ICache_issue_req -Fetch_Fetch1 <--> HwCounter__incr -Fetch_Fetch1 <--> FIFOLatencyMeasurer__start -Fetch_Fetch1 --> FIFO1_write -Fetch_Fetch1 --> ArgumentsToResultsZipper_write_args -Fetch_Fetch1 --> BasicFifo3_write -Fetch_Fetch1 --> BasicFifo4_write -BasicFifo4_read --> Fetch_Fetch -ICache_accept_res --> Fetch_Fetch -Fetch_Fetch <--> FIFOLatencyMeasurer__stop -FIFO1_read --> Fetch_Fetch -Fetch_Fetch --> HwExpHistogram__add -ArgumentsToResultsZipper_read --> Fetch_Fetch -BasicFifo3_read --> Fetch_Fetch -Forwarder3_read --> Fetch_Fetch -Fetch_Fetch --> MethodProduct_method +Fetch_Fetch --> ICache_issue_req +Fetch_Fetch <--> HwCounter__incr +Fetch_Fetch <--> FIFOLatencyMeasurer__start +Fetch_Fetch --> FIFO1_write +Fetch_Fetch --> ArgumentsToResultsZipper_write_args +Fetch_Fetch --> BasicFifo3_write +Fetch_Fetch --> BasicFifo4_write +BasicFifo4_read --> Fetch_Fetch1 +ICache_accept_res --> Fetch_Fetch1 +Fetch_Fetch1 <--> FIFOLatencyMeasurer__stop +FIFO1_read --> Fetch_Fetch1 +Fetch_Fetch1 --> HwExpHistogram__add +ArgumentsToResultsZipper_read --> Fetch_Fetch1 +BasicFifo3_read --> Fetch_Fetch1 +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 <--> HwCounter6__incr @@ -752,7 +752,7 @@ RegAllocation_RegAllocation --> FIFO12_write FIFO12_read --> Renaming_Renaming Renaming_Renaming --> FRAT_rename -Retirement_Retirement1 --> FRAT_rename +Retirement_Retirement3 --> FRAT_rename TransactionManager_Retirement_Retirement_cond1 --> FRAT_rename Renaming_Renaming --> FIFO13_write FIFO13_read --> ROBAllocation_ROBAllocation @@ -760,19 +760,19 @@ ROBAllocation_ROBAllocation <--> FIFOLatencyMeasurer1__start ROBAllocation_ROBAllocation --> FIFO2_write ROBAllocation_ROBAllocation --> FIFO14_write -FIFO14_read --> RSSelection_RSSelection -RSSelection_RSSelection --> Forwarder9_write -Forwarder9_read --> RSSelection_RSSelection1 -Forwarder9_read --> RSSelection_RSSelection3 +FIFO14_read --> RSSelection_RSSelection1 +RSSelection_RSSelection1 --> Forwarder9_write Forwarder9_read --> RSSelection_RSSelection2 -RSFuncBlock_select --> RSSelection_RSSelection1 -RS_select --> RSSelection_RSSelection1 -RSSelection_RSSelection1 --> FIFO15_write -RSSelection_RSSelection3 --> FIFO15_write +Forwarder9_read --> RSSelection_RSSelection +Forwarder9_read --> RSSelection_RSSelection3 +RSFuncBlock_select --> RSSelection_RSSelection2 +RS_select --> RSSelection_RSSelection2 RSSelection_RSSelection2 --> FIFO15_write -RSFuncBlock1_select --> RSSelection_RSSelection3 -FifoRS_select --> RSSelection_RSSelection3 -RSSelection_RSSelection2 <--> CSRUnit_select +RSSelection_RSSelection --> FIFO15_write +RSSelection_RSSelection3 --> FIFO15_write +RSFuncBlock1_select --> RSSelection_RSSelection +FifoRS_select --> RSSelection_RSSelection +RSSelection_RSSelection3 <--> CSRUnit_select FIFO15_read --> RSInsertion_RSInsertion RegisterFile_read1 --> RSInsertion_RSInsertion RegisterFile_read2 --> RSInsertion_RSInsertion @@ -793,7 +793,7 @@ Collector3_method --> ConnectTrans12_ConnectTrans Forwarder8_read --> ConnectTrans12_ConnectTrans ConnectTrans12_ConnectTrans --> Fetch_resume -Retirement_Retirement3 --> Fetch_resume +Retirement_Retirement --> Fetch_resume Collector_method --> ResultAnnouncement_ResultAnnouncement Forwarder4_read --> ResultAnnouncement_ResultAnnouncement ResultAnnouncement_ResultAnnouncement --> ReorderBuffer_mark_done @@ -807,7 +807,7 @@ ResultAnnouncement_ResultAnnouncement --> FifoRS_update ResultAnnouncement_ResultAnnouncement --> CSRUnit_update RS_perf --> HwExpHistogram6__add -RS_RS --> WakeupSelect_WakeupSelect +RS_RS1 --> WakeupSelect_WakeupSelect RS_take --> WakeupSelect_WakeupSelect RS_take --> WakeupSelect1_WakeupSelect RS_take --> WakeupSelect2_WakeupSelect @@ -831,10 +831,10 @@ WakeupSelect_WakeupSelect --> AluFuncUnit_issue WakeupSelect_WakeupSelect --> TaggedCounter__incr WakeupSelect_WakeupSelect --> FIFO3_write -RS_RS3 --> WakeupSelect1_WakeupSelect +RS_RS4 --> WakeupSelect1_WakeupSelect WakeupSelect1_WakeupSelect --> ShiftFuncUnit_issue WakeupSelect1_WakeupSelect --> FIFO4_write -RS_RS1 --> WakeupSelect2_WakeupSelect +RS_RS3 --> WakeupSelect2_WakeupSelect WakeupSelect2_WakeupSelect --> JumpBranchFuncUnit_issue WakeupSelect2_WakeupSelect --> TaggedCounter1__incr WakeupSelect2_WakeupSelect <--> HwCounter5__incr @@ -842,12 +842,12 @@ WakeupSelect3_WakeupSelect --> BasicFifo5_write ConnectTrans8_ConnectTrans --> BasicFifo5_write ConnectTrans3_ConnectTrans --> BasicFifo5_write -TransactionManager_accept_cond1_ConnectTrans_accept_cond0 --> BasicFifo5_write TransactionManager_accept_cond0_ConnectTrans_accept_cond0 --> BasicFifo5_write -TransactionManager_accept_cond1_ConnectTrans --> BasicFifo5_write +TransactionManager_accept_cond0_accept_cond1_ConnectTrans --> BasicFifo5_write +TransactionManager_ConnectTrans_accept_cond1 --> BasicFifo5_write WakeupSelect2_WakeupSelect --> FIFO6_write WakeupSelect2_WakeupSelect --> FIFO5_write -RS_RS4 --> WakeupSelect3_WakeupSelect +RS_RS --> WakeupSelect3_WakeupSelect WakeupSelect3_WakeupSelect --> ExceptionFuncUnit_issue WakeupSelect3_WakeupSelect --> FIFO7_write RS_RS2 --> WakeupSelect4_WakeupSelect @@ -870,18 +870,18 @@ ConnectTrans8_ConnectTrans --> BasicFifo6_write FifoRS_perf --> HwExpHistogram8__add Forwarder6_read --> LSUDummy_LSUDummy -Forwarder6_read --> TransactionManager_LSUDummy_issue_cond0 -Forwarder6_read --> TransactionManager_issue_cond2_LSUDummy +Forwarder6_read --> TransactionManager_issue_cond0_LSUDummy +Forwarder6_read --> TransactionManager_LSUDummy_issue_cond2 Forwarder6_read --> TransactionManager_issue_cond1_LSUDummy LSUDummy_LSUDummy --> FIFO8_write WakeupSelect5_WakeupSelect --> FIFO8_write -TransactionManager_LSUDummy_issue_cond0 --> FIFO8_write -TransactionManager_issue_cond2_LSUDummy --> FIFO8_write +TransactionManager_issue_cond0_LSUDummy --> FIFO8_write +TransactionManager_LSUDummy_issue_cond2 --> FIFO8_write TransactionManager_issue_cond1_LSUDummy --> FIFO8_write LSUDummy_LSUDummy --> FIFO10_write WakeupSelect5_WakeupSelect --> FIFO10_write -TransactionManager_LSUDummy_issue_cond0 --> FIFO10_write -TransactionManager_issue_cond2_LSUDummy --> FIFO10_write +TransactionManager_issue_cond0_LSUDummy --> FIFO10_write +TransactionManager_LSUDummy_issue_cond2 --> FIFO10_write TransactionManager_issue_cond1_LSUDummy --> FIFO10_write FifoRS_FifoRS --> WakeupSelect5_WakeupSelect FifoRS_take --> WakeupSelect5_WakeupSelect @@ -914,52 +914,52 @@ 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 ConnectTrans10_ConnectTrans --> Forwarder8_write ConnectTrans11_ConnectTrans --> Forwarder8_write BasicFifo6_read --> ConnectTrans10_ConnectTrans CSRUnit_fetch_resume --> ConnectTrans11_ConnectTrans -ReorderBuffer_peek --> Retirement_Retirement2 -ReorderBuffer_peek --> Retirement_Retirement4 ReorderBuffer_peek --> Retirement_Retirement1 -ReorderBuffer_peek --> TransactionManager_Retirement_Retirement_cond1 +ReorderBuffer_peek --> Retirement_Retirement2 +ReorderBuffer_peek --> Retirement_Retirement3 ReorderBuffer_peek --> TransactionManager_Retirement_Retirement_cond0 -Retirement_Retirement2 --> MethodTryProduct_method -ExceptionCauseRegister_get --> Retirement_Retirement4 -ExceptionCauseRegister_get --> TransactionManager_Retirement_Retirement_cond1 +ReorderBuffer_peek --> TransactionManager_Retirement_Retirement_cond1 +Retirement_Retirement1 --> MethodTryProduct_method +ExceptionCauseRegister_get --> Retirement_Retirement2 ExceptionCauseRegister_get --> TransactionManager_Retirement_Retirement_cond0 -Retirement_Retirement1 <--> ReorderBuffer_retire -TransactionManager_Retirement_Retirement_cond1 <--> ReorderBuffer_retire +ExceptionCauseRegister_get --> TransactionManager_Retirement_Retirement_cond1 +Retirement_Retirement3 <--> ReorderBuffer_retire TransactionManager_Retirement_Retirement_cond0 <--> ReorderBuffer_retire -Retirement_Retirement1 <--> FIFOLatencyMeasurer1__stop -TransactionManager_Retirement_Retirement_cond1 <--> FIFOLatencyMeasurer1__stop +TransactionManager_Retirement_Retirement_cond1 <--> ReorderBuffer_retire +Retirement_Retirement3 <--> FIFOLatencyMeasurer1__stop TransactionManager_Retirement_Retirement_cond0 <--> FIFOLatencyMeasurer1__stop -FIFO2_read --> Retirement_Retirement1 -FIFO2_read --> TransactionManager_Retirement_Retirement_cond1 +TransactionManager_Retirement_Retirement_cond1 <--> FIFOLatencyMeasurer1__stop +FIFO2_read --> Retirement_Retirement3 FIFO2_read --> TransactionManager_Retirement_Retirement_cond0 -Retirement_Retirement1 --> HwExpHistogram3__add -TransactionManager_Retirement_Retirement_cond1 --> HwExpHistogram3__add +FIFO2_read --> TransactionManager_Retirement_Retirement_cond1 +Retirement_Retirement3 --> HwExpHistogram3__add TransactionManager_Retirement_Retirement_cond0 --> HwExpHistogram3__add -CoreInstructionCounter_decrement --> Retirement_Retirement1 -CoreInstructionCounter_decrement --> TransactionManager_Retirement_Retirement_cond1 +TransactionManager_Retirement_Retirement_cond1 --> HwExpHistogram3__add +CoreInstructionCounter_decrement --> Retirement_Retirement3 CoreInstructionCounter_decrement --> TransactionManager_Retirement_Retirement_cond0 -RRAT_peek --> Retirement_Retirement1 +CoreInstructionCounter_decrement --> TransactionManager_Retirement_Retirement_cond1 +RRAT_peek --> Retirement_Retirement3 RRAT_peek --> TransactionManager_Retirement_Retirement_cond1 -Retirement_Retirement1 --> RegisterFile_free -TransactionManager_Retirement_Retirement_cond1 --> RegisterFile_free +Retirement_Retirement3 --> RegisterFile_free TransactionManager_Retirement_Retirement_cond0 --> RegisterFile_free -Retirement_Retirement1 --> TaggedLatencyMeasurer__stop -TransactionManager_Retirement_Retirement_cond1 --> TaggedLatencyMeasurer__stop +TransactionManager_Retirement_Retirement_cond1 --> RegisterFile_free +Retirement_Retirement3 --> TaggedLatencyMeasurer__stop TransactionManager_Retirement_Retirement_cond0 --> TaggedLatencyMeasurer__stop -AsyncMemoryBank_read --> Retirement_Retirement1 -AsyncMemoryBank_read --> TransactionManager_Retirement_Retirement_cond1 +TransactionManager_Retirement_Retirement_cond1 --> TaggedLatencyMeasurer__stop +AsyncMemoryBank_read --> Retirement_Retirement3 AsyncMemoryBank_read --> TransactionManager_Retirement_Retirement_cond0 -Retirement_Retirement1 --> HwExpHistogram1__add -TransactionManager_Retirement_Retirement_cond1 --> HwExpHistogram1__add +AsyncMemoryBank_read --> TransactionManager_Retirement_Retirement_cond1 +Retirement_Retirement3 --> HwExpHistogram1__add TransactionManager_Retirement_Retirement_cond0 --> HwExpHistogram1__add -CSRRegister1_read --> Retirement_Retirement3 -Retirement_Retirement3 <--> ExceptionCauseRegister_clear +TransactionManager_Retirement_Retirement_cond1 --> HwExpHistogram1__add +CSRRegister1_read --> Retirement_Retirement +Retirement_Retirement <--> ExceptionCauseRegister_clear GenericCSRRegisters_GenericCSRRegisters <--> DoubleCounterCSR_increment CSRRegister3_read --> GenericCSRRegisters_GenericCSRRegisters GenericCSRRegisters_GenericCSRRegisters --> CSRRegister3_write @@ -971,35 +971,14 @@ CSRRegister6_read --> GenericCSRRegisters_GenericCSRRegisters GenericCSRRegisters_GenericCSRRegisters --> CSRRegister6_write AdapterTrans1_AdapterTrans_report_interrupt <--> InterruptController_report_interrupt -TransactionManager_LSUDummy_issue_cond0 <--> LSUDummy_LSUDummy1 -TransactionManager_issue_cond2_LSUDummy <--> LSUDummy_LSUDummy1 -TransactionManager_issue_cond1_LSUDummy <--> LSUDummy_LSUDummy1 -TransactionManager_LSUDummy_issue_cond0 --> LSURequester_issue -TransactionManager_issue_cond2_LSUDummy --> LSURequester_issue -TransactionManager_issue_cond1_LSUDummy --> LSURequester_issue -TransactionManager_LSUDummy_issue_cond0 --> FIFO9_write -TransactionManager_issue_cond2_LSUDummy --> FIFO9_write -TransactionManager_issue_cond1_LSUDummy --> FIFO9_write -TransactionManager_LSUDummy_issue_cond0 <--> LSURequester_issue_cond0 -TransactionManager_LSUDummy_issue_cond0 --> WishboneMasterAdapter1_request_write -TransactionManager_LSUDummy_issue_cond0 --> Serializer1_Serializer -TransactionManager_LSUDummy_issue_cond0 --> BasicFifo1_write -TransactionManager_issue_cond1_LSUDummy --> BasicFifo1_write -TransactionManager_LSUDummy_issue_cond0 --> WishboneMaster1_request -TransactionManager_issue_cond1_LSUDummy --> WishboneMaster1_request -TransactionManager_issue_cond2_LSUDummy <--> LSURequester_issue_cond2 -TransactionManager_issue_cond1_LSUDummy <--> LSURequester_issue_cond1 -TransactionManager_issue_cond1_LSUDummy --> WishboneMasterAdapter1_request_read -TransactionManager_issue_cond1_LSUDummy --> Serializer1_Serializer3 -TransactionManager_Retirement_Retirement_cond1 <--> Retirement_Retirement -TransactionManager_Retirement_Retirement_cond0 <--> Retirement_Retirement -TransactionManager_Retirement_Retirement_cond1 --> CSRRegister_write +TransactionManager_Retirement_Retirement_cond0 <--> Retirement_Retirement4 +TransactionManager_Retirement_Retirement_cond1 <--> Retirement_Retirement4 TransactionManager_Retirement_Retirement_cond0 --> CSRRegister_write -TransactionManager_Retirement_Retirement_cond1 --> CSRRegister2_write +TransactionManager_Retirement_Retirement_cond1 --> CSRRegister_write TransactionManager_Retirement_Retirement_cond0 --> CSRRegister2_write -TransactionManager_Retirement_Retirement_cond1 <--> InterruptController_entry +TransactionManager_Retirement_Retirement_cond1 --> CSRRegister2_write TransactionManager_Retirement_Retirement_cond0 <--> InterruptController_entry -TransactionManager_Retirement_Retirement_cond1 <--> Retirement_Retirement_cond1 +TransactionManager_Retirement_Retirement_cond1 <--> InterruptController_entry TransactionManager_Retirement_Retirement_cond0 <--> Retirement_Retirement_cond0 TransactionManager_Retirement_Retirement_cond0 --> RRAT_commit TransactionManager_Retirement_Retirement_cond0 <--> DoubleCounterCSR2_increment @@ -1008,36 +987,57 @@ CSRRegister8_read --> TransactionManager_Retirement_Retirement_cond0 TransactionManager_Retirement_Retirement_cond0 --> CSRRegister8_write TransactionManager_Retirement_Retirement_cond0 <--> HwCounter7__incr -TransactionManager_accept_cond1_ConnectTrans_accept_cond0 <--> LSURequester_accept_cond1 -WishboneMasterAdapter1_get_read_response --> TransactionManager_accept_cond1_ConnectTrans_accept_cond0 -Serializer1_Serializer1 --> TransactionManager_accept_cond1_ConnectTrans_accept_cond0 -BasicFifo1_read --> TransactionManager_accept_cond1_ConnectTrans_accept_cond0 -BasicFifo1_read --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 -WishboneMaster1_result --> TransactionManager_accept_cond1_ConnectTrans_accept_cond0 -WishboneMaster1_result --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 -Forwarder1_read --> TransactionManager_accept_cond1_ConnectTrans_accept_cond0 -Forwarder1_read --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 -TransactionManager_accept_cond1_ConnectTrans_accept_cond0 <--> ConnectTrans9_ConnectTrans -TransactionManager_accept_cond0_ConnectTrans_accept_cond0 <--> ConnectTrans9_ConnectTrans -TransactionManager_accept_cond1_ConnectTrans <--> ConnectTrans9_ConnectTrans -TransactionManager_accept_cond1_ConnectTrans_accept_cond0 --> Forwarder7_write -TransactionManager_accept_cond0_ConnectTrans_accept_cond0 --> Forwarder7_write -TransactionManager_accept_cond1_ConnectTrans --> Forwarder7_write -LSUDummy_accept --> TransactionManager_accept_cond1_ConnectTrans_accept_cond0 -LSUDummy_accept --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 -LSUDummy_accept --> TransactionManager_accept_cond1_ConnectTrans -TransactionManager_accept_cond1_ConnectTrans_accept_cond0 <--> LSUDummy_accept_cond0 +TransactionManager_issue_cond0_LSUDummy <--> LSURequester_issue_cond0 +TransactionManager_issue_cond0_LSUDummy --> WishboneMasterAdapter1_request_write +TransactionManager_issue_cond0_LSUDummy --> Serializer1_Serializer3 +TransactionManager_issue_cond0_LSUDummy --> BasicFifo1_write +TransactionManager_issue_cond1_LSUDummy --> BasicFifo1_write +TransactionManager_issue_cond0_LSUDummy --> WishboneMaster1_request +TransactionManager_issue_cond1_LSUDummy --> WishboneMaster1_request +TransactionManager_issue_cond0_LSUDummy <--> LSUDummy_LSUDummy1 +TransactionManager_LSUDummy_issue_cond2 <--> LSUDummy_LSUDummy1 +TransactionManager_issue_cond1_LSUDummy <--> LSUDummy_LSUDummy1 +TransactionManager_issue_cond0_LSUDummy --> LSURequester_issue +TransactionManager_LSUDummy_issue_cond2 --> LSURequester_issue +TransactionManager_issue_cond1_LSUDummy --> LSURequester_issue +TransactionManager_issue_cond0_LSUDummy --> FIFO9_write +TransactionManager_LSUDummy_issue_cond2 --> FIFO9_write +TransactionManager_issue_cond1_LSUDummy --> FIFO9_write +TransactionManager_Retirement_Retirement_cond1 <--> Retirement_Retirement_cond1 +TransactionManager_LSUDummy_issue_cond2 <--> LSURequester_issue_cond2 +TransactionManager_issue_cond1_LSUDummy <--> LSURequester_issue_cond1 +TransactionManager_issue_cond1_LSUDummy --> WishboneMasterAdapter1_request_read +TransactionManager_issue_cond1_LSUDummy --> Serializer1_Serializer TransactionManager_accept_cond0_ConnectTrans_accept_cond0 <--> LSUDummy_accept_cond0 -LSURequester_accept --> TransactionManager_accept_cond1_ConnectTrans_accept_cond0 +TransactionManager_accept_cond0_accept_cond1_ConnectTrans <--> LSUDummy_accept_cond0 LSURequester_accept --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 -FIFO9_read --> TransactionManager_accept_cond1_ConnectTrans_accept_cond0 +LSURequester_accept --> TransactionManager_accept_cond0_accept_cond1_ConnectTrans FIFO9_read --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 +FIFO9_read --> TransactionManager_accept_cond0_accept_cond1_ConnectTrans +TransactionManager_accept_cond0_ConnectTrans_accept_cond0 <--> ConnectTrans9_ConnectTrans +TransactionManager_accept_cond0_accept_cond1_ConnectTrans <--> ConnectTrans9_ConnectTrans +TransactionManager_ConnectTrans_accept_cond1 <--> ConnectTrans9_ConnectTrans +TransactionManager_accept_cond0_ConnectTrans_accept_cond0 --> Forwarder7_write +TransactionManager_accept_cond0_accept_cond1_ConnectTrans --> Forwarder7_write +TransactionManager_ConnectTrans_accept_cond1 --> Forwarder7_write +LSUDummy_accept --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 +LSUDummy_accept --> TransactionManager_accept_cond0_accept_cond1_ConnectTrans +LSUDummy_accept --> TransactionManager_ConnectTrans_accept_cond1 TransactionManager_accept_cond0_ConnectTrans_accept_cond0 <--> LSURequester_accept_cond0 WishboneMasterAdapter1_get_write_response --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 -Serializer1_Serializer2 --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 -TransactionManager_accept_cond1_ConnectTrans <--> LSUDummy_accept_cond1 -FIFO8_read --> TransactionManager_accept_cond1_ConnectTrans -FIFO10_read --> TransactionManager_accept_cond1_ConnectTrans +Serializer1_Serializer1 --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 +BasicFifo1_read --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 +BasicFifo1_read --> TransactionManager_accept_cond0_accept_cond1_ConnectTrans +WishboneMaster1_result --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 +WishboneMaster1_result --> TransactionManager_accept_cond0_accept_cond1_ConnectTrans +Forwarder1_read --> TransactionManager_accept_cond0_ConnectTrans_accept_cond0 +Forwarder1_read --> TransactionManager_accept_cond0_accept_cond1_ConnectTrans +TransactionManager_accept_cond0_accept_cond1_ConnectTrans <--> LSURequester_accept_cond1 +WishboneMasterAdapter1_get_read_response --> TransactionManager_accept_cond0_accept_cond1_ConnectTrans +Serializer1_Serializer2 --> TransactionManager_accept_cond0_accept_cond1_ConnectTrans +TransactionManager_ConnectTrans_accept_cond1 <--> LSUDummy_accept_cond1 +FIFO8_read --> TransactionManager_ConnectTrans_accept_cond1 +FIFO10_read --> TransactionManager_ConnectTrans_accept_cond1 @@ -1048,7 +1048,7 @@

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/components/icache.html b/components/icache.html index 47e9df94e..8e91a0cfa 100644 --- a/components/icache.html +++ b/components/icache.html @@ -131,7 +131,7 @@

Address mapping example

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/coreblocks.backend.html b/coreblocks.backend.html index 40e7c4142..7b09cda8c 100644 --- a/coreblocks.backend.html +++ b/coreblocks.backend.html @@ -165,7 +165,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/coreblocks.cache.html b/coreblocks.cache.html index 1ddcb72a4..1d987985e 100644 --- a/coreblocks.cache.html +++ b/coreblocks.cache.html @@ -241,7 +241,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/coreblocks.core_structs.html b/coreblocks.core_structs.html index 805643b51..aa9def032 100644 --- a/coreblocks.core_structs.html +++ b/coreblocks.core_structs.html @@ -157,7 +157,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/coreblocks.frontend.decoder.html b/coreblocks.frontend.decoder.html index 9960654a0..d1b101da4 100644 --- a/coreblocks.frontend.decoder.html +++ b/coreblocks.frontend.decoder.html @@ -1726,7 +1726,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/coreblocks.frontend.fetch.html b/coreblocks.frontend.fetch.html index 5ac6ee347..5529a38d3 100644 --- a/coreblocks.frontend.fetch.html +++ b/coreblocks.frontend.fetch.html @@ -161,7 +161,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/coreblocks.frontend.html b/coreblocks.frontend.html index e7b659a0e..60130e524 100644 --- a/coreblocks.frontend.html +++ b/coreblocks.frontend.html @@ -125,7 +125,7 @@

Subpackages

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/coreblocks.func_blocks.fu.html b/coreblocks.func_blocks.fu.html index ac2d85c44..c7adc1746 100644 --- a/coreblocks.func_blocks.fu.html +++ b/coreblocks.func_blocks.fu.html @@ -874,7 +874,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/coreblocks.func_blocks.fu.lsu.html b/coreblocks.func_blocks.fu.lsu.html index c6dd56ad8..ef6574a48 100644 --- a/coreblocks.func_blocks.fu.lsu.html +++ b/coreblocks.func_blocks.fu.lsu.html @@ -231,7 +231,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/coreblocks.func_blocks.fu.unsigned_multiplication.html b/coreblocks.func_blocks.fu.unsigned_multiplication.html index 9b78bff72..8157f9542 100644 --- a/coreblocks.func_blocks.fu.unsigned_multiplication.html +++ b/coreblocks.func_blocks.fu.unsigned_multiplication.html @@ -238,7 +238,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/coreblocks.func_blocks.html b/coreblocks.func_blocks.html index 85e2cf4e1..96c0cff94 100644 --- a/coreblocks.func_blocks.html +++ b/coreblocks.func_blocks.html @@ -148,7 +148,7 @@

Subpackages

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/coreblocks.func_blocks.interface.html b/coreblocks.func_blocks.interface.html index cf829a67f..68f534350 100644 --- a/coreblocks.func_blocks.interface.html +++ b/coreblocks.func_blocks.interface.html @@ -169,7 +169,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/coreblocks.html b/coreblocks.html index 4581ed858..1e837a2a1 100644 --- a/coreblocks.html +++ b/coreblocks.html @@ -248,7 +248,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/coreblocks.params.html b/coreblocks.params.html index 56e039b03..6ea0e6f20 100644 --- a/coreblocks.params.html +++ b/coreblocks.params.html @@ -1171,7 +1171,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/coreblocks.peripherals.html b/coreblocks.peripherals.html index 0158d3208..d531b7ce3 100644 --- a/coreblocks.peripherals.html +++ b/coreblocks.peripherals.html @@ -746,7 +746,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/coreblocks.priv.csr.html b/coreblocks.priv.csr.html index ec01feae2..fbaadff73 100644 --- a/coreblocks.priv.csr.html +++ b/coreblocks.priv.csr.html @@ -327,7 +327,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/coreblocks.priv.html b/coreblocks.priv.html index b33ea048a..551895551 100644 --- a/coreblocks.priv.html +++ b/coreblocks.priv.html @@ -123,7 +123,7 @@

Subpackages

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/coreblocks.priv.traps.html b/coreblocks.priv.traps.html index 9e5b1f8fd..1af65ea42 100644 --- a/coreblocks.priv.traps.html +++ b/coreblocks.priv.traps.html @@ -171,7 +171,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

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

Submodules

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/current-graph.html b/current-graph.html index 7a8396e5a..f0a3d5b39 100644 --- a/current-graph.html +++ b/current-graph.html @@ -92,21 +92,21 @@

Full transaction-method graph

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/development-environment.html b/development-environment.html index e1f50481e..ca0741fde 100644 --- a/development-environment.html +++ b/development-environment.html @@ -209,7 +209,7 @@

tprof.py

© Copyright Kuźnia Rdzeni, 2024. - Last updated on 17:06 2024-04-09. + Last updated on 08:08 2024-04-10.

diff --git a/genindex.html b/genindex.html index 01c20fb9d..6358bd3c1 100644 --- a/genindex.html +++ b/genindex.html @@ -399,8 +399,6 @@

_

  • (transactron.testing.infrastructure.SimpleTestCircuit method)
  • (transactron.testing.infrastructure.SyncProcessWrapper method) -
  • -
  • (transactron.testing.infrastructure.TestCaseWithSimulator method)
  • (transactron.testing.testbenchio.TestbenchIO method)
  • @@ -786,6 +784,14 @@

    C

  • compressed (coreblocks.params.configurations.CoreConfiguration attribute)
  • condition() (in module transactron.lib.simultaneous) +
  • +
  • configure_dependency_context() (transactron.testing.infrastructure.TestCaseWithSimulator method) +
  • +
  • configure_logging() (transactron.testing.infrastructure.TestCaseWithSimulator method) +
  • +
  • configure_profiles() (transactron.testing.infrastructure.TestCaseWithSimulator method) +
  • +
  • configure_traces() (transactron.testing.infrastructure.TestCaseWithSimulator method)
  • Connect (class in transactron.lib.connectors)
  • @@ -1004,6 +1010,8 @@

    C

  • module
  • + +
    • coreblocks.func_blocks.fu.lsu @@ -1011,8 +1019,6 @@

      C

    • module
    - -