From f726fae8a0775cfc51dacfe64786a2ad8957c873 Mon Sep 17 00:00:00 2001 From: tilk Date: Wed, 20 Dec 2023 14:34:46 +0000 Subject: [PATCH] Extend simulation infrastructure with `Now()` (#509) --- .doctrees/api.doctree | Bin 20995 -> 20995 bytes .doctrees/auto_graph.doctree | Bin 33639 -> 33638 bytes .doctrees/current-graph.doctree | Bin 34860 -> 34859 bytes .doctrees/environment.pickle | Bin 369195 -> 369195 bytes _sources/auto_graph.rst.txt | 176 ++++++++++---------- api.html | 2 +- assumptions.html | 2 +- auto_graph.html | 178 ++++++++++----------- components/icache.html | 2 +- coreblocks.frontend.html | 2 +- coreblocks.fu.html | 2 +- coreblocks.fu.unsigned_multiplication.html | 2 +- coreblocks.html | 2 +- coreblocks.lsu.html | 2 +- coreblocks.params.html | 2 +- coreblocks.peripherals.html | 2 +- coreblocks.scheduler.html | 2 +- coreblocks.stages.html | 2 +- coreblocks.structs_common.html | 2 +- coreblocks.utils.html | 2 +- current-graph.html | 178 ++++++++++----------- development-environment.html | 2 +- genindex.html | 2 +- home.html | 2 +- index.html | 2 +- miscellany/exceptions-summary.html | 2 +- modules-coreblocks.html | 2 +- modules-transactron.html | 2 +- problem-checklist.html | 2 +- py-modindex.html | 2 +- scheduler/overview.html | 2 +- search.html | 2 +- shared-structs/implementation/rs-impl.html | 2 +- shared-structs/rs.html | 2 +- synthesis/synthesis.html | 2 +- transactions.html | 2 +- transactron.html | 2 +- transactron.lib.html | 2 +- transactron.utils.amaranth_ext.html | 2 +- transactron.utils.html | 2 +- 40 files changed, 299 insertions(+), 299 deletions(-) diff --git a/.doctrees/api.doctree b/.doctrees/api.doctree index 9c6b2bc59435b9c4cbdbdbcf4b7205b68a6190c5..13f7cda8207a04c8cb9fa0803929e72cd275537d 100644 GIT binary patch delta 450 zcmZvXy-EW?6om;G5EC_jBm@zZfT*yW&RvNw;4_GX$?PP%WOgRbor!i9se}O`Gp$`p z3njI-K7xhdL-+vVCgf)e%gg!Bx#x@~nb9Qk@_BX$Ard5TKnjH=GzD0_jkzEl%5fju zt}T~DElZf(rtm@}&jDQ#|=RaQa}CY_!@gV5?y z%xC|>S)*2$*N59pK1#xZq&`xTw->$~0#KXrKt`N_HBYTtK9}lfihkYvcop;OAD4=$ zIFP7Ez&v`@N`A@DBlJedV`3is)57jjn2n`TXL@!1oXNg_zfEsUzBNAizw>fP$~^sO HT~z-7dd9H$ delta 424 zcmZvYy-or_6oo?~4Sx!Rjm8i{Xp9Nav5>X#ISetw?!a!`o!QKtK|2fDDbzcUKxrZg zwY9YsuiztCI!i*>!uH(zopbJ8tqZGlVY3^Z`CQOh%>4%#fFuiw8}A&aZns*DSU{hQ zJ_&h3@zuS2ZX`TVF@^q-G5S;r!hrZva5jjenbFnbcraHcoLWT*L7D6?1W7}q>$#1T z2$F!&`65b2v6UL&hcrtRL%yVHd3!f`FBF~KN6o{E_l9ijH2-<+_RG6*{s11uqxk>; diff --git a/.doctrees/auto_graph.doctree b/.doctrees/auto_graph.doctree index 8da93ed0c1ab9957289812b16173b3c1d606939f..ed36a68a79ce9e23ff60b02705fb914f0a3615db 100644 GIT binary patch delta 1280 zcmYLIeN0N;Gc&)7_Z}S%~S!=?8eLHKBx;t^qE~) zF?%30iwGB9fUn4l-wSJ{a-J*-;wz_sx2Vlg+CkbZd*vv$*W;KiAJ=V7IAg1n0*CA& zNy(y-#hZ3NRZ$E_c^)zs=ysfzVZ&J|$-L!M;Yv}8JYC8$xKI{Fx-5Z}r&K6*x-gy3 z5`lNCamu#?`@B9Z_|*8@Ta6Q55f#2Vs?mc^FN;B+NEUp184UPcQrZH49sG4w66Zz# z7{-NKR13|}h#`C^2#AS1KHZUnMp21tLbflr!yJx@Utl`08=vQtV9}_CBS(cb(Lz=N z76!gxHhHFDf7N6T@$lvskQ2eM;$%1|5l@G<;hT_M>PJ`jD1)K~7iH4n$NJ1I@R*8d z@NC12;3L(NeU17vJ(`L%$#APNiuuOv@HV}T^)WT(8){BAhjF=y->QbZ)BGm`E|yJt zs%4lucH&U18dqWwgyI3PaShJK%AkvvWiAkt@rSVy&prm9n#GrKerwb+?Ld3NkM|SV zX*-ip;c!AykLAQ4xZ9dN_jPM#kj%v2W|!gcuB~}iqJ!ehOw&Ok7kB-TgQc!0X1nT$ zu6u;RM?L?)!HJ&oO6JFLiP;YVd$rA@EI8+;OC)Q zvOdHzQ0zBi*{a3dXdcufS|W_J%W-$ufa9YnoF6jc=&*$@Eot0;mV-ZS1viBYi?1@V-H{_RVZ)BV*{$7al(RCE({q}>#y(v@_7Fa3yC;99!7 zx`v+^J@DM{gaAX@E(KZvEZeHy|k_yQy#P(DuAz%!^f#yB1~=P{sUo$ By7B-3 delta 1244 zcmYLIdrVtZ7|*@8Exo<;4Ybgez9^-Xmfl_~P|EwY@z^GixgriS0Vy$=!rG#71`~st zX@vdUA26eHiDt$`T~07Ax&-H6E`~>3d}YCD%#0Zr)NKCYHa)#=?2mK4^L^)czTbDg z$F*7Z*I8CEqdYk{ueiiqJGa`$V3GA=jnkoz?SPy0V1JJZ>ueROI1iRPl-PbijU3L6 zZEYT1c6`O?$O0!ZxTA3G04^!KJAnPlBxVMAR5!Tsi_(JC43CS-V)^l!pdc-(Vh(3{ z30-`L%(lhfK%<~SkYOSQ=6ugtl~;%~QKzFc+(iPQ5igQb#oWJ>C>@q`Mu3w@X|^F;KP zsj(8Ge8JF(Py`cnW!3dyB_g3}yg~Iuu$g=l+RNZj*e@q+Us#Wlun*zt3Yl^_d<0`+ z6Dq|jTopw$M|}9GIR|INdKe>Kxgy&!4UR`X#V0u~IP=tS=BTh0vEhK!KvtyygK*S) zw^zh$MiDgUlh>j#1qx#SmuaRZ4`0?q$_sd;=(&-Vs_)&gDaVcIPo zq}sD~J2u)kaib$UIN6$6NqDz|#j(z8pQ_Q_St@6Xb`DwY{5}WY_Euw|x1Q+x#u&WY ze}CR4`%CW981QJTf!yvlaEwHB2lWin2^}gD`Ah^&i6|Bl7QB+s!k*CMY@&`8H88UI zxRo$5BJ=|;MkM0E6$M5AbSQ-Q&`JC=RDrLD%HbQXpf3A||737FqaxjhlPtIi6ShW5 z$<_$Z;Mt@R8+IK|CACnG>4-Si#bIg0gjbVk+#EIGrBNFRPkg4K&clayflsw#^JpQ) zQ~Rj2<8sQ!NVt^>(tTyJ2(4)wJq@Qz>HcE6N5=e-u9szZri@xsnE>72&OD@(G%bC- py`zsOr;d(JikP2v$guddkCU8n{61#G^V0*_-=2$^$@X+w^B+d=#mxW! diff --git a/.doctrees/current-graph.doctree b/.doctrees/current-graph.doctree index f822da5d4039f6d0449e96ed9bad6a3c51f1248e..9e152841c4abe286f5268a0e56239e1ca87d72b6 100644 GIT binary patch delta 1277 zcmYLIYfPI}7|z!lZE3%jLMQFl0%iSZJ7Dzdg_}@rv!%#=gDtcI!$Bc(S(sc3Y%XTW zE+&FJnLo%>Vq&s5LD=!n#5s+ckSt5kxF05%IHQRgjkshpbDDVi6}BJee9w2zd*0`H z-}9Ug79`geB(k&e%Q@?^1}XD1X^|dgV3F@ftAfQ{SqSgScx<&8&?Yaz4Y>`=1{sz$ zDx8Htb@VK2C78yr04`5;Q5z+SIPi-MKw1tbj7DreCYiyF|71ja0JyQ(-k1a<` z_mtmH@h(5v(4At?on{rq+0qK=MmCnxCedUVfZh43Vyq(S^#1Val zmBEWf{z+B&Mi*t|$%^r7DR{FBCbI@RCO?R&5@$>4@5@k!8zI#QkI| z6Lqv2RmjYBQwUZ{ zvhHvyks;LLUeQ4`3rftoi=cCR@V>j03UpzsNQEEW9?~pyGWfyc5VKzPlwz&CK%}hp zj$y}Jf)Bklc+FP^hflzlJ|6DpQgF*B$1z{>QchN?k?P-AEN(%m+J;u663Z$DM*JM< zDdrfgmLzj0+%!!wZ7WucMxrY%m*H%MKS8`$k%4eUws;rcR9s}R6mU=?9l8RE9`JZn zm5RRtXYgKCk+?omB_<+|s;VUzs|}#6wiqk5?_hLXiLxpm&eoNqv5w!XhU6T2$ly{i znKdKWPdCE&Cs>5`P$h1Jyto)j#lesr^C3I!A0C97F;Sm<2diooYU=qtn9a;Bn)gm*u!aal+5kM5MauyA-r_1YqhY zCG#Bv44g-wKEL~&dAqcFd>_=4(?|7EMj)?u=@^)!I$Vnw@p;6Lw<0X$Q6oN!DDZD2 z4MNnAVoNF&=U~x-Db8m_J@Xmp(cECg%DIaHQ`5uJ+Lta<}h3LqD4*MkS1Z z7h)x3G^S#3ZrFhC92S;gEiMeQWPR{?DW(R~zz$EMIA(xqkfVbow}w~MSc_Y6X(~t) zte?oluTw1|vY=zyLDA{yLNrfs_-dM?fA^;I=&X!4?Z%A91H0%>+)2^Hcs`wTXWCdn zU3a*>y+1Z|>gE1%0dK^!#Xu`Qoyn65ITaWk;vkvrqILDoxv)8B#A=NiuDFJ*&(3Q8 E2VrEnp#T5? delta 1241 zcmYLITTEP46wRHv^XA@pz_gtgFaviU9Uk*wcnQNW=uAOipcF7Lp#?!83>J&!*&;?0 z>4%oG(teOMoirvI1v_{?G=hn*50hf7j~JU&%cIMNR+c9wd62=9!hQf~Q3wZsTZ-|ulPbL5=)kb@FcJ$YM3wnsYzNPhPnG#n zxO0NIsfmkZlR10%h?8TT>w=jt#j6~LKRFkMIPaRk;RNqTlUu+Gya&4CBVx!yz82%! zNAw}>0X^B)PBTdA3vf!wBBAF{rngb@0<7z2P(Pu;i-sWdh7l0MulPRKg5_cktGT7w z3ld$PjX_lKBAugx*XW{*0@*ZvC52%2;Et&o#1z7k$%Ef()p*K$6f2ehUN$>XY4PAK za}p=1l~dmbmJgA!dNEq}LSxTG${s&mi6TNNNejIULarG8a)vQ*T8{Hp*V-W!*>bs+ zX!lb#Um2Et0sKN&_Pf(pj(2_4u=)eIT^=Pp{&ogG20Wr(Uk0>zJ>Wv7wnU_i1W)5` zun{+cRXA1Q$0rpo_?}R}Q4z+a3PCK$RJ|IS&^D^ocBBs}kygnu8M5HJPyTZN`1k_`?XjoD40$mR z{n3nnV&%9N_rMdcr&fk9;`B!G8Y&?6;_a9|RwT;uj#`CAdj5X~XeDs-n2&Z!5%xsC z4Fk=;;cQEGX0jDKLNYA{5!a6)VZUM8{mwm0jK9@`_Zs+_5%ulKX diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 278e0cb5024e28836b1ac3af74b2b8fa1c9c5c6a..95a0cfccc12a8899b984fa93a071e47d792a9aa6 100644 GIT binary patch delta 31578 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Йev0kq@KF?>x@d^HX90xDQali77r@e)Q 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 delta 31701 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 UVJR9iV+UL;mRT-rqv?kK1ND6qe*gdg diff --git a/_sources/auto_graph.rst.txt b/_sources/auto_graph.rst.txt index 49e78f24f..4be84b731 100644 --- a/_sources/auto_graph.rst.txt +++ b/_sources/auto_graph.rst.txt @@ -6,12 +6,12 @@ subgraph Core["core Core"] Core_InitFreeRFFifo["InitFreeRFFifo"] subgraph WishboneMaster["wb_master_instr WishboneMaster"] - WishboneMaster_request["request"] - WishboneMaster_WishboneMaster["WishboneMaster"] WishboneMaster_result["result"] + WishboneMaster_WishboneMaster["WishboneMaster"] + WishboneMaster_request["request"] subgraph Forwarder["result Forwarder"] - Forwarder_write["write"] Forwarder_read["read"] + Forwarder_write["write"] end end subgraph WishboneMaster1["wb_master_data WishboneMaster"] @@ -19,13 +19,13 @@ WishboneMaster1_request["request"] WishboneMaster1_result["result"] subgraph Forwarder1["result Forwarder"] - Forwarder1_read["read"] Forwarder1_write["write"] + Forwarder1_read["read"] end end subgraph CoreInstructionCounter["core_counter CoreInstructionCounter"] - CoreInstructionCounter_increment["increment"] CoreInstructionCounter_decrement["decrement"] + CoreInstructionCounter_increment["increment"] end subgraph FIFO["fifo_fetch FIFO"] FIFO_read["read"] @@ -43,26 +43,26 @@ end subgraph SimpleWBCacheRefiller["icache_refiller SimpleWBCacheRefiller"] SimpleWBCacheRefiller_SimpleWBCacheRefiller["SimpleWBCacheRefiller"] - SimpleWBCacheRefiller_accept_refill["accept_refill"] 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_issue_req["issue_req"] ICache_ICache["ICache"] ICache_ICache1["ICache"] - ICache_accept_res["accept_res"] ICache_ICache2["ICache"] - ICache_issue_req["issue_req"] + ICache_accept_res["accept_res"] subgraph FIFO1["req_fifo FIFO"] - FIFO1_read["read"] FIFO1_write["write"] + FIFO1_read["read"] end subgraph Forwarder3["res_fwd Forwarder"] - Forwarder3_read["read"] Forwarder3_write["write"] + Forwarder3_read["read"] end end subgraph FRAT["FRAT FRAT"] @@ -74,27 +74,27 @@ subgraph RegisterFile["RF RegisterFile"] RegisterFile_read2["read2"] RegisterFile_write["write"] - RegisterFile_read1["read1"] RegisterFile_free["free"] + RegisterFile_read1["read1"] end subgraph ReorderBuffer["ROB ReorderBuffer"] ReorderBuffer_retire["retire"] - ReorderBuffer_get_indices["get_indices"] ReorderBuffer_put["put"] ReorderBuffer_mark_done["mark_done"] + ReorderBuffer_get_indices["get_indices"] ReorderBuffer_peek["peek"] end subgraph ExceptionCauseRegister["exception_cause_register ExceptionCauseRegister"] ExceptionCauseRegister_report["report"] - ExceptionCauseRegister_get["get"] ExceptionCauseRegister_clear["clear"] + ExceptionCauseRegister_get["get"] end subgraph FuncBlocksUnifier["func_blocks_unifier FuncBlocksUnifier"] 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 ConnectTrans["ManyToOneConnectTrans_input_0 ConnectTrans"] @@ -112,27 +112,27 @@ MethodProduct1_method["method"] end subgraph RSFuncBlock["rs_block_0 RSFuncBlock"] - RSFuncBlock_insert["insert"] - RSFuncBlock_get_result["get_result"] - RSFuncBlock_select["select"] RSFuncBlock_update["update"] + RSFuncBlock_select["select"] + RSFuncBlock_get_result["get_result"] + RSFuncBlock_insert["insert"] subgraph RS["rs RS"] - RS_select["select"] RS_RS["RS"] - RS_RS1["RS"] RS_update["update"] RS_take["take"] - RS_RS2["RS"] RS_insert["insert"] + RS_RS1["RS"] + RS_RS2["RS"] + RS_select["select"] RS_RS3["RS"] RS_RS4["RS"] end subgraph AluFuncUnit["func_unit_0 AluFuncUnit"] - AluFuncUnit_issue["issue"] AluFuncUnit_accept["accept"] + AluFuncUnit_issue["issue"] subgraph FIFO2["fifo FIFO"] - FIFO2_write["write"] FIFO2_read["read"] + FIFO2_write["write"] end end subgraph WakeupSelect["wakeup_select_0 WakeupSelect"] @@ -150,12 +150,12 @@ WakeupSelect1_WakeupSelect["WakeupSelect"] end subgraph JumpBranchFuncUnit["func_unit_2 JumpBranchFuncUnit"] - JumpBranchFuncUnit_issue["issue"] - JumpBranchFuncUnit_accept["accept"] JumpBranchFuncUnit_branch_result["branch_result"] + JumpBranchFuncUnit_accept["accept"] + JumpBranchFuncUnit_issue["issue"] subgraph FIFO4["fifo_res FIFO"] - FIFO4_write["write"] FIFO4_read["read"] + FIFO4_write["write"] end subgraph FIFO5["fifo_branch FIFO"] FIFO5_write["write"] @@ -169,16 +169,16 @@ ExceptionFuncUnit_accept["accept"] ExceptionFuncUnit_issue["issue"] subgraph FIFO6["fifo FIFO"] - FIFO6_read["read"] FIFO6_write["write"] + FIFO6_read["read"] end end subgraph WakeupSelect3["wakeup_select_3 WakeupSelect"] WakeupSelect3_WakeupSelect["WakeupSelect"] end subgraph PrivilegedFuncUnit["func_unit_4 PrivilegedFuncUnit"] - PrivilegedFuncUnit_precommit["precommit"] PrivilegedFuncUnit_issue["issue"] + PrivilegedFuncUnit_precommit["precommit"] PrivilegedFuncUnit_accept["accept"] subgraph BasicFifo1["branch_resolved_fifo BasicFifo"] BasicFifo1_write["write"] @@ -214,43 +214,43 @@ end end subgraph LSUDummy["rs_block_1 LSUDummy"] + LSUDummy_get_result["get_result"] LSUDummy_LSUDummy["LSUDummy"] - LSUDummy_insert["insert"] - LSUDummy_select["select"] LSUDummy_LSUDummy1["LSUDummy"] + LSUDummy_insert["insert"] LSUDummy_precommit["precommit"] + LSUDummy_select["select"] LSUDummy_update["update"] - LSUDummy_get_result["get_result"] LSUDummy_LSUDummy2["LSUDummy"] subgraph Forwarder6["forwarder Forwarder"] Forwarder6_write["write"] Forwarder6_read["read"] end subgraph LSURequesterWB["requester LSURequesterWB"] - LSURequesterWB_accept["accept"] LSURequesterWB_issue["issue"] + LSURequesterWB_accept["accept"] end end subgraph CSRUnit["rs_block_2 CSRUnit"] CSRUnit_select["select"] - CSRUnit_fetch_continue["fetch_continue"] CSRUnit_precommit["precommit"] - CSRUnit_insert["insert"] - CSRUnit_CSRUnit["CSRUnit"] + CSRUnit_fetch_continue["fetch_continue"] CSRUnit_get_result["get_result"] + CSRUnit_insert["insert"] CSRUnit_update["update"] + CSRUnit_CSRUnit["CSRUnit"] end subgraph MethodTryProduct["InstructionPrecommitKey_unifier MethodTryProduct"] MethodTryProduct_MethodTryProduct["MethodTryProduct"] - MethodTryProduct_method["method"] MethodTryProduct_MethodTryProduct1["MethodTryProduct"] + MethodTryProduct_method["method"] MethodTryProduct_MethodTryProduct2["MethodTryProduct"] end subgraph Collector2["BranchResolvedKey_unifier Collector"] Collector2_method["method"] subgraph Forwarder7["forwarder Forwarder"] - Forwarder7_read["read"] Forwarder7_write["write"] + Forwarder7_read["read"] end subgraph ManyToOneConnectTrans2["connect ManyToOneConnectTrans"] subgraph ConnectTrans8["ManyToOneConnectTrans_input_0 ConnectTrans"] @@ -270,21 +270,21 @@ end subgraph InterruptController["interrupt_controller InterruptController"] InterruptController_mret["mret"] - InterruptController_entry["entry"] InterruptController_report_interrupt["report_interrupt"] + InterruptController_entry["entry"] end subgraph GenericCSRRegisters["csr_generic GenericCSRRegisters"] GenericCSRRegisters_GenericCSRRegisters["GenericCSRRegisters"] subgraph MachineModeCSRRegisters["m_mode MachineModeCSRRegisters"] subgraph CSRRegister["mcause CSRRegister"] CSRRegister__fu_read["_fu_read"] - CSRRegister__fu_write["_fu_write"] CSRRegister_write["write"] + CSRRegister__fu_write["_fu_write"] end subgraph CSRRegister1["mtvec CSRRegister"] CSRRegister1__fu_read["_fu_read"] - CSRRegister1_read["read"] CSRRegister1__fu_write["_fu_write"] + CSRRegister1_read["read"] end subgraph CSRRegister2["mepc CSRRegister"] CSRRegister2__fu_read["_fu_read"] @@ -296,14 +296,14 @@ subgraph DoubleCounterCSR["csr_cycle DoubleCounterCSR"] DoubleCounterCSR_increment["increment"] subgraph CSRRegister3["register_low CSRRegister"] - CSRRegister3_read["read"] 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_write["write"] + CSRRegister4_read["read"] end end subgraph DoubleCounterCSR1["csr_time DoubleCounterCSR"] @@ -314,33 +314,33 @@ CSRRegister5_read["read"] end subgraph CSRRegister6["register_high CSRRegister"] + CSRRegister6_write["write"] CSRRegister6__fu_read["_fu_read"] CSRRegister6_read["read"] - CSRRegister6_write["write"] end end end subgraph Fetch["fetch Fetch"] - Fetch_Fetch["Fetch"] Fetch_stall_exception["stall_exception"] - Fetch_Fetch1["Fetch"] Fetch_verify_branch["verify_branch"] + Fetch_Fetch["Fetch"] + Fetch_Fetch1["Fetch"] subgraph BasicFifo2["fetch_target_queue BasicFifo"] - BasicFifo2_write["write"] BasicFifo2_read["read"] + BasicFifo2_write["write"] end end subgraph FIFO7["fifo_decode FIFO"] - FIFO7_write["write"] FIFO7_read["read"] + FIFO7_write["write"] 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"] + FIFO8_write["write"] end subgraph RegAllocation["reg_alloc RegAllocation"] RegAllocation_RegAllocation["RegAllocation"] @@ -353,8 +353,8 @@ Renaming_Renaming["Renaming"] end subgraph FIFO10["reg_alloc_out_buf FIFO"] - FIFO10_read["read"] FIFO10_write["write"] + FIFO10_read["read"] end subgraph ROBAllocation["rob_alloc ROBAllocation"] ROBAllocation_ROBAllocation["ROBAllocation"] @@ -393,8 +393,8 @@ CSRRegister7_write["write"] end subgraph CSRRegister8["register_high CSRRegister"] - CSRRegister8_write["write"] CSRRegister8__fu_read["_fu_read"] + CSRRegister8_write["write"] CSRRegister8_read["read"] end end @@ -403,8 +403,8 @@ Forwarder9_read["read"] end subgraph Forwarder10["fetch_continue_fwd Forwarder"] - Forwarder10_write["write"] Forwarder10_read["read"] + Forwarder10_write["write"] end end end @@ -426,18 +426,18 @@ end end Core_InitFreeRFFifo --> BasicFifo_write - Retirement_Retirement3 --> BasicFifo_write + Retirement_Retirement1 --> BasicFifo_write WishboneMaster_WishboneMaster --> Forwarder_write WishboneMaster1_WishboneMaster --> Forwarder1_write Forwarder2_read --> SimpleWBCacheRefiller_SimpleWBCacheRefiller SimpleWBCacheRefiller_SimpleWBCacheRefiller --> WishboneMaster_request - ICache_ICache --> Forwarder3_write - ICache_ICache2 --> SimpleWBCacheRefiller_start_refill + ICache_ICache1 --> Forwarder3_write + ICache_ICache --> SimpleWBCacheRefiller_start_refill + ICache_ICache --> Forwarder2_write ICache_ICache2 --> Forwarder2_write - ICache_ICache1 --> Forwarder2_write - SimpleWBCacheRefiller_accept_refill --> ICache_ICache1 - WishboneMaster_result --> ICache_ICache1 - Forwarder_read --> ICache_ICache1 + SimpleWBCacheRefiller_accept_refill --> ICache_ICache2 + WishboneMaster_result --> ICache_ICache2 + Forwarder_read --> ICache_ICache2 Fetch_Fetch1 --> ICache_issue_req Fetch_Fetch1 --> FIFO1_write Fetch_Fetch1 --> BasicFifo2_write @@ -468,15 +468,15 @@ FIFO10_read --> RSSelection_RSSelection1 RSSelection_RSSelection1 --> Forwarder8_write Forwarder8_read --> RSSelection_RSSelection - Forwarder8_read --> RSSelection_RSSelection2 Forwarder8_read --> RSSelection_RSSelection3 + Forwarder8_read --> RSSelection_RSSelection2 RSFuncBlock_select --> RSSelection_RSSelection RS_select --> RSSelection_RSSelection RSSelection_RSSelection --> FIFO11_write - RSSelection_RSSelection2 --> FIFO11_write RSSelection_RSSelection3 --> FIFO11_write - RSSelection_RSSelection2 <--> LSUDummy_select - RSSelection_RSSelection3 <--> CSRUnit_select + RSSelection_RSSelection2 --> FIFO11_write + RSSelection_RSSelection3 <--> LSUDummy_select + RSSelection_RSSelection2 <--> CSRUnit_select FIFO11_read --> RSInsertion_RSInsertion RegisterFile_read1 --> RSInsertion_RSInsertion RegisterFile_read2 --> RSInsertion_RSInsertion @@ -487,7 +487,7 @@ Collector2_method --> ConnectTrans11_ConnectTrans Forwarder7_read --> ConnectTrans11_ConnectTrans ConnectTrans11_ConnectTrans --> Fetch_verify_branch - Retirement_Retirement1 --> Fetch_verify_branch + Retirement_Retirement2 --> Fetch_verify_branch Collector_method --> ResultAnnouncement_ResultAnnouncement Forwarder4_read --> ResultAnnouncement_ResultAnnouncement ResultAnnouncement_ResultAnnouncement --> ReorderBuffer_mark_done @@ -498,7 +498,7 @@ ResultAnnouncement_ResultAnnouncement --> RS_update ResultAnnouncement_ResultAnnouncement --> LSUDummy_update ResultAnnouncement_ResultAnnouncement --> CSRUnit_update - RS_RS4 --> WakeupSelect_WakeupSelect + RS_RS1 --> WakeupSelect_WakeupSelect RS_take --> WakeupSelect_WakeupSelect RS_take --> WakeupSelect1_WakeupSelect RS_take --> WakeupSelect2_WakeupSelect @@ -506,7 +506,7 @@ RS_take --> WakeupSelect4_WakeupSelect WakeupSelect_WakeupSelect --> AluFuncUnit_issue WakeupSelect_WakeupSelect --> FIFO2_write - RS_RS --> WakeupSelect1_WakeupSelect + RS_RS3 --> WakeupSelect1_WakeupSelect WakeupSelect1_WakeupSelect --> ShiftFuncUnit_issue WakeupSelect1_WakeupSelect --> FIFO3_write RS_RS2 --> WakeupSelect2_WakeupSelect @@ -523,10 +523,10 @@ ReorderBuffer_get_indices --> ConnectTrans2_ConnectTrans WakeupSelect2_WakeupSelect --> FIFO4_write WakeupSelect2_WakeupSelect --> FIFO5_write - RS_RS1 --> WakeupSelect3_WakeupSelect + RS_RS --> WakeupSelect3_WakeupSelect WakeupSelect3_WakeupSelect --> ExceptionFuncUnit_issue WakeupSelect3_WakeupSelect --> FIFO6_write - RS_RS3 --> WakeupSelect4_WakeupSelect + RS_RS4 --> WakeupSelect4_WakeupSelect WakeupSelect4_WakeupSelect --> PrivilegedFuncUnit_issue ConnectTrans3_ConnectTrans --> Forwarder5_write ConnectTrans4_ConnectTrans --> Forwarder5_write @@ -584,28 +584,28 @@ FIFO5_read --> ConnectTrans8_ConnectTrans BasicFifo1_read --> ConnectTrans9_ConnectTrans CSRUnit_fetch_continue --> ConnectTrans10_ConnectTrans - ReorderBuffer_peek --> Retirement_Retirement2 - Retirement_Retirement2 --> MethodTryProduct_method - ReorderBuffer_retire --> Retirement_Retirement3 - Retirement_Retirement3 <--> Fetch_stall_exception - ExceptionCauseRegister_get --> Retirement_Retirement3 - Retirement_Retirement3 --> CSRRegister_write - Retirement_Retirement3 --> CSRRegister2_write - Retirement_Retirement3 <--> InterruptController_entry - Retirement_Retirement3 --> RRAT_commit - Retirement_Retirement3 <--> DoubleCounterCSR2_increment - CSRRegister7_read --> Retirement_Retirement3 - Retirement_Retirement3 --> CSRRegister7_write - CSRRegister8_read --> Retirement_Retirement3 - Retirement_Retirement3 --> CSRRegister8_write - Retirement_Retirement3 --> Forwarder9_write - Retirement_Retirement3 --> RegisterFile_free - CoreInstructionCounter_decrement --> Retirement_Retirement3 - CSRRegister1_read --> Retirement_Retirement3 - Retirement_Retirement3 --> Forwarder10_write - Retirement_Retirement3 <--> ExceptionCauseRegister_clear + ReorderBuffer_peek --> Retirement_Retirement3 + Retirement_Retirement3 --> MethodTryProduct_method + ReorderBuffer_retire --> Retirement_Retirement1 + Retirement_Retirement1 <--> Fetch_stall_exception + ExceptionCauseRegister_get --> Retirement_Retirement1 + Retirement_Retirement1 --> CSRRegister_write + Retirement_Retirement1 --> CSRRegister2_write + Retirement_Retirement1 <--> InterruptController_entry + Retirement_Retirement1 --> RRAT_commit + Retirement_Retirement1 <--> DoubleCounterCSR2_increment + CSRRegister7_read --> Retirement_Retirement1 + Retirement_Retirement1 --> CSRRegister7_write + CSRRegister8_read --> Retirement_Retirement1 + Retirement_Retirement1 --> CSRRegister8_write + Retirement_Retirement1 --> Forwarder9_write + Retirement_Retirement1 --> RegisterFile_free + CoreInstructionCounter_decrement --> Retirement_Retirement1 + CSRRegister1_read --> Retirement_Retirement1 + Retirement_Retirement1 --> Forwarder10_write + Retirement_Retirement1 <--> ExceptionCauseRegister_clear Forwarder9_read --> Retirement_Retirement - Forwarder10_read --> Retirement_Retirement1 + Forwarder10_read --> Retirement_Retirement2 GenericCSRRegisters_GenericCSRRegisters <--> DoubleCounterCSR_increment CSRRegister3_read --> GenericCSRRegisters_GenericCSRRegisters GenericCSRRegisters_GenericCSRRegisters --> CSRRegister3_write diff --git a/api.html b/api.html index c38f94fe7..fe0e11610 100644 --- a/api.html +++ b/api.html @@ -254,7 +254,7 @@

transactron

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/assumptions.html b/assumptions.html index 7de2d1ca7..9383c7963 100644 --- a/assumptions.html +++ b/assumptions.html @@ -104,7 +104,7 @@

List of assumptions made during development

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/auto_graph.html b/auto_graph.html index 7ff9a3260..f082d899c 100644 --- a/auto_graph.html +++ b/auto_graph.html @@ -85,12 +85,12 @@ subgraph Core["core Core"] Core_InitFreeRFFifo["InitFreeRFFifo"] subgraph WishboneMaster["wb_master_instr WishboneMaster"] - WishboneMaster_request["request"] - WishboneMaster_WishboneMaster["WishboneMaster"] WishboneMaster_result["result"] + WishboneMaster_WishboneMaster["WishboneMaster"] + WishboneMaster_request["request"] subgraph Forwarder["result Forwarder"] - Forwarder_write["write"] Forwarder_read["read"] + Forwarder_write["write"] end end subgraph WishboneMaster1["wb_master_data WishboneMaster"] @@ -98,13 +98,13 @@ WishboneMaster1_request["request"] WishboneMaster1_result["result"] subgraph Forwarder1["result Forwarder"] - Forwarder1_read["read"] Forwarder1_write["write"] + Forwarder1_read["read"] end end subgraph CoreInstructionCounter["core_counter CoreInstructionCounter"] - CoreInstructionCounter_increment["increment"] CoreInstructionCounter_decrement["decrement"] + CoreInstructionCounter_increment["increment"] end subgraph FIFO["fifo_fetch FIFO"] FIFO_read["read"] @@ -122,26 +122,26 @@ end subgraph SimpleWBCacheRefiller["icache_refiller SimpleWBCacheRefiller"] SimpleWBCacheRefiller_SimpleWBCacheRefiller["SimpleWBCacheRefiller"] - SimpleWBCacheRefiller_accept_refill["accept_refill"] 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_issue_req["issue_req"] ICache_ICache["ICache"] ICache_ICache1["ICache"] - ICache_accept_res["accept_res"] ICache_ICache2["ICache"] - ICache_issue_req["issue_req"] + ICache_accept_res["accept_res"] subgraph FIFO1["req_fifo FIFO"] - FIFO1_read["read"] FIFO1_write["write"] + FIFO1_read["read"] end subgraph Forwarder3["res_fwd Forwarder"] - Forwarder3_read["read"] Forwarder3_write["write"] + Forwarder3_read["read"] end end subgraph FRAT["FRAT FRAT"] @@ -153,27 +153,27 @@ subgraph RegisterFile["RF RegisterFile"] RegisterFile_read2["read2"] RegisterFile_write["write"] - RegisterFile_read1["read1"] RegisterFile_free["free"] + RegisterFile_read1["read1"] end subgraph ReorderBuffer["ROB ReorderBuffer"] ReorderBuffer_retire["retire"] - ReorderBuffer_get_indices["get_indices"] ReorderBuffer_put["put"] ReorderBuffer_mark_done["mark_done"] + ReorderBuffer_get_indices["get_indices"] ReorderBuffer_peek["peek"] end subgraph ExceptionCauseRegister["exception_cause_register ExceptionCauseRegister"] ExceptionCauseRegister_report["report"] - ExceptionCauseRegister_get["get"] ExceptionCauseRegister_clear["clear"] + ExceptionCauseRegister_get["get"] end subgraph FuncBlocksUnifier["func_blocks_unifier FuncBlocksUnifier"] 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 ConnectTrans["ManyToOneConnectTrans_input_0 ConnectTrans"] @@ -191,27 +191,27 @@ MethodProduct1_method["method"] end subgraph RSFuncBlock["rs_block_0 RSFuncBlock"] - RSFuncBlock_insert["insert"] - RSFuncBlock_get_result["get_result"] - RSFuncBlock_select["select"] RSFuncBlock_update["update"] + RSFuncBlock_select["select"] + RSFuncBlock_get_result["get_result"] + RSFuncBlock_insert["insert"] subgraph RS["rs RS"] - RS_select["select"] RS_RS["RS"] - RS_RS1["RS"] RS_update["update"] RS_take["take"] - RS_RS2["RS"] RS_insert["insert"] + RS_RS1["RS"] + RS_RS2["RS"] + RS_select["select"] RS_RS3["RS"] RS_RS4["RS"] end subgraph AluFuncUnit["func_unit_0 AluFuncUnit"] - AluFuncUnit_issue["issue"] AluFuncUnit_accept["accept"] + AluFuncUnit_issue["issue"] subgraph FIFO2["fifo FIFO"] - FIFO2_write["write"] FIFO2_read["read"] + FIFO2_write["write"] end end subgraph WakeupSelect["wakeup_select_0 WakeupSelect"] @@ -229,12 +229,12 @@ WakeupSelect1_WakeupSelect["WakeupSelect"] end subgraph JumpBranchFuncUnit["func_unit_2 JumpBranchFuncUnit"] - JumpBranchFuncUnit_issue["issue"] - JumpBranchFuncUnit_accept["accept"] JumpBranchFuncUnit_branch_result["branch_result"] + JumpBranchFuncUnit_accept["accept"] + JumpBranchFuncUnit_issue["issue"] subgraph FIFO4["fifo_res FIFO"] - FIFO4_write["write"] FIFO4_read["read"] + FIFO4_write["write"] end subgraph FIFO5["fifo_branch FIFO"] FIFO5_write["write"] @@ -248,16 +248,16 @@ ExceptionFuncUnit_accept["accept"] ExceptionFuncUnit_issue["issue"] subgraph FIFO6["fifo FIFO"] - FIFO6_read["read"] FIFO6_write["write"] + FIFO6_read["read"] end end subgraph WakeupSelect3["wakeup_select_3 WakeupSelect"] WakeupSelect3_WakeupSelect["WakeupSelect"] end subgraph PrivilegedFuncUnit["func_unit_4 PrivilegedFuncUnit"] - PrivilegedFuncUnit_precommit["precommit"] PrivilegedFuncUnit_issue["issue"] + PrivilegedFuncUnit_precommit["precommit"] PrivilegedFuncUnit_accept["accept"] subgraph BasicFifo1["branch_resolved_fifo BasicFifo"] BasicFifo1_write["write"] @@ -293,43 +293,43 @@ end end subgraph LSUDummy["rs_block_1 LSUDummy"] + LSUDummy_get_result["get_result"] LSUDummy_LSUDummy["LSUDummy"] - LSUDummy_insert["insert"] - LSUDummy_select["select"] LSUDummy_LSUDummy1["LSUDummy"] + LSUDummy_insert["insert"] LSUDummy_precommit["precommit"] + LSUDummy_select["select"] LSUDummy_update["update"] - LSUDummy_get_result["get_result"] LSUDummy_LSUDummy2["LSUDummy"] subgraph Forwarder6["forwarder Forwarder"] Forwarder6_write["write"] Forwarder6_read["read"] end subgraph LSURequesterWB["requester LSURequesterWB"] - LSURequesterWB_accept["accept"] LSURequesterWB_issue["issue"] + LSURequesterWB_accept["accept"] end end subgraph CSRUnit["rs_block_2 CSRUnit"] CSRUnit_select["select"] - CSRUnit_fetch_continue["fetch_continue"] CSRUnit_precommit["precommit"] - CSRUnit_insert["insert"] - CSRUnit_CSRUnit["CSRUnit"] + CSRUnit_fetch_continue["fetch_continue"] CSRUnit_get_result["get_result"] + CSRUnit_insert["insert"] CSRUnit_update["update"] + CSRUnit_CSRUnit["CSRUnit"] end subgraph MethodTryProduct["InstructionPrecommitKey_unifier MethodTryProduct"] MethodTryProduct_MethodTryProduct["MethodTryProduct"] - MethodTryProduct_method["method"] MethodTryProduct_MethodTryProduct1["MethodTryProduct"] + MethodTryProduct_method["method"] MethodTryProduct_MethodTryProduct2["MethodTryProduct"] end subgraph Collector2["BranchResolvedKey_unifier Collector"] Collector2_method["method"] subgraph Forwarder7["forwarder Forwarder"] - Forwarder7_read["read"] Forwarder7_write["write"] + Forwarder7_read["read"] end subgraph ManyToOneConnectTrans2["connect ManyToOneConnectTrans"] subgraph ConnectTrans8["ManyToOneConnectTrans_input_0 ConnectTrans"] @@ -349,21 +349,21 @@ end subgraph InterruptController["interrupt_controller InterruptController"] InterruptController_mret["mret"] - InterruptController_entry["entry"] InterruptController_report_interrupt["report_interrupt"] + InterruptController_entry["entry"] end subgraph GenericCSRRegisters["csr_generic GenericCSRRegisters"] GenericCSRRegisters_GenericCSRRegisters["GenericCSRRegisters"] subgraph MachineModeCSRRegisters["m_mode MachineModeCSRRegisters"] subgraph CSRRegister["mcause CSRRegister"] CSRRegister__fu_read["_fu_read"] - CSRRegister__fu_write["_fu_write"] CSRRegister_write["write"] + CSRRegister__fu_write["_fu_write"] end subgraph CSRRegister1["mtvec CSRRegister"] CSRRegister1__fu_read["_fu_read"] - CSRRegister1_read["read"] CSRRegister1__fu_write["_fu_write"] + CSRRegister1_read["read"] end subgraph CSRRegister2["mepc CSRRegister"] CSRRegister2__fu_read["_fu_read"] @@ -375,14 +375,14 @@ subgraph DoubleCounterCSR["csr_cycle DoubleCounterCSR"] DoubleCounterCSR_increment["increment"] subgraph CSRRegister3["register_low CSRRegister"] - CSRRegister3_read["read"] 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_write["write"] + CSRRegister4_read["read"] end end subgraph DoubleCounterCSR1["csr_time DoubleCounterCSR"] @@ -393,33 +393,33 @@ CSRRegister5_read["read"] end subgraph CSRRegister6["register_high CSRRegister"] + CSRRegister6_write["write"] CSRRegister6__fu_read["_fu_read"] CSRRegister6_read["read"] - CSRRegister6_write["write"] end end end subgraph Fetch["fetch Fetch"] - Fetch_Fetch["Fetch"] Fetch_stall_exception["stall_exception"] - Fetch_Fetch1["Fetch"] Fetch_verify_branch["verify_branch"] + Fetch_Fetch["Fetch"] + Fetch_Fetch1["Fetch"] subgraph BasicFifo2["fetch_target_queue BasicFifo"] - BasicFifo2_write["write"] BasicFifo2_read["read"] + BasicFifo2_write["write"] end end subgraph FIFO7["fifo_decode FIFO"] - FIFO7_write["write"] FIFO7_read["read"] + FIFO7_write["write"] 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"] + FIFO8_write["write"] end subgraph RegAllocation["reg_alloc RegAllocation"] RegAllocation_RegAllocation["RegAllocation"] @@ -432,8 +432,8 @@ Renaming_Renaming["Renaming"] end subgraph FIFO10["reg_alloc_out_buf FIFO"] - FIFO10_read["read"] FIFO10_write["write"] + FIFO10_read["read"] end subgraph ROBAllocation["rob_alloc ROBAllocation"] ROBAllocation_ROBAllocation["ROBAllocation"] @@ -472,8 +472,8 @@ CSRRegister7_write["write"] end subgraph CSRRegister8["register_high CSRRegister"] - CSRRegister8_write["write"] CSRRegister8__fu_read["_fu_read"] + CSRRegister8_write["write"] CSRRegister8_read["read"] end end @@ -482,8 +482,8 @@ Forwarder9_read["read"] end subgraph Forwarder10["fetch_continue_fwd Forwarder"] - Forwarder10_write["write"] Forwarder10_read["read"] + Forwarder10_write["write"] end end end @@ -505,18 +505,18 @@ end end Core_InitFreeRFFifo --> BasicFifo_write -Retirement_Retirement3 --> BasicFifo_write +Retirement_Retirement1 --> BasicFifo_write WishboneMaster_WishboneMaster --> Forwarder_write WishboneMaster1_WishboneMaster --> Forwarder1_write Forwarder2_read --> SimpleWBCacheRefiller_SimpleWBCacheRefiller SimpleWBCacheRefiller_SimpleWBCacheRefiller --> WishboneMaster_request -ICache_ICache --> Forwarder3_write -ICache_ICache2 --> SimpleWBCacheRefiller_start_refill +ICache_ICache1 --> Forwarder3_write +ICache_ICache --> SimpleWBCacheRefiller_start_refill +ICache_ICache --> Forwarder2_write ICache_ICache2 --> Forwarder2_write -ICache_ICache1 --> Forwarder2_write -SimpleWBCacheRefiller_accept_refill --> ICache_ICache1 -WishboneMaster_result --> ICache_ICache1 -Forwarder_read --> ICache_ICache1 +SimpleWBCacheRefiller_accept_refill --> ICache_ICache2 +WishboneMaster_result --> ICache_ICache2 +Forwarder_read --> ICache_ICache2 Fetch_Fetch1 --> ICache_issue_req Fetch_Fetch1 --> FIFO1_write Fetch_Fetch1 --> BasicFifo2_write @@ -547,15 +547,15 @@ FIFO10_read --> RSSelection_RSSelection1 RSSelection_RSSelection1 --> Forwarder8_write Forwarder8_read --> RSSelection_RSSelection -Forwarder8_read --> RSSelection_RSSelection2 Forwarder8_read --> RSSelection_RSSelection3 +Forwarder8_read --> RSSelection_RSSelection2 RSFuncBlock_select --> RSSelection_RSSelection RS_select --> RSSelection_RSSelection RSSelection_RSSelection --> FIFO11_write -RSSelection_RSSelection2 --> FIFO11_write RSSelection_RSSelection3 --> FIFO11_write -RSSelection_RSSelection2 <--> LSUDummy_select -RSSelection_RSSelection3 <--> CSRUnit_select +RSSelection_RSSelection2 --> FIFO11_write +RSSelection_RSSelection3 <--> LSUDummy_select +RSSelection_RSSelection2 <--> CSRUnit_select FIFO11_read --> RSInsertion_RSInsertion RegisterFile_read1 --> RSInsertion_RSInsertion RegisterFile_read2 --> RSInsertion_RSInsertion @@ -566,7 +566,7 @@ Collector2_method --> ConnectTrans11_ConnectTrans Forwarder7_read --> ConnectTrans11_ConnectTrans ConnectTrans11_ConnectTrans --> Fetch_verify_branch -Retirement_Retirement1 --> Fetch_verify_branch +Retirement_Retirement2 --> Fetch_verify_branch Collector_method --> ResultAnnouncement_ResultAnnouncement Forwarder4_read --> ResultAnnouncement_ResultAnnouncement ResultAnnouncement_ResultAnnouncement --> ReorderBuffer_mark_done @@ -577,7 +577,7 @@ ResultAnnouncement_ResultAnnouncement --> RS_update ResultAnnouncement_ResultAnnouncement --> LSUDummy_update ResultAnnouncement_ResultAnnouncement --> CSRUnit_update -RS_RS4 --> WakeupSelect_WakeupSelect +RS_RS1 --> WakeupSelect_WakeupSelect RS_take --> WakeupSelect_WakeupSelect RS_take --> WakeupSelect1_WakeupSelect RS_take --> WakeupSelect2_WakeupSelect @@ -585,7 +585,7 @@ RS_take --> WakeupSelect4_WakeupSelect WakeupSelect_WakeupSelect --> AluFuncUnit_issue WakeupSelect_WakeupSelect --> FIFO2_write -RS_RS --> WakeupSelect1_WakeupSelect +RS_RS3 --> WakeupSelect1_WakeupSelect WakeupSelect1_WakeupSelect --> ShiftFuncUnit_issue WakeupSelect1_WakeupSelect --> FIFO3_write RS_RS2 --> WakeupSelect2_WakeupSelect @@ -602,10 +602,10 @@ ReorderBuffer_get_indices --> ConnectTrans2_ConnectTrans WakeupSelect2_WakeupSelect --> FIFO4_write WakeupSelect2_WakeupSelect --> FIFO5_write -RS_RS1 --> WakeupSelect3_WakeupSelect +RS_RS --> WakeupSelect3_WakeupSelect WakeupSelect3_WakeupSelect --> ExceptionFuncUnit_issue WakeupSelect3_WakeupSelect --> FIFO6_write -RS_RS3 --> WakeupSelect4_WakeupSelect +RS_RS4 --> WakeupSelect4_WakeupSelect WakeupSelect4_WakeupSelect --> PrivilegedFuncUnit_issue ConnectTrans3_ConnectTrans --> Forwarder5_write ConnectTrans4_ConnectTrans --> Forwarder5_write @@ -663,28 +663,28 @@ FIFO5_read --> ConnectTrans8_ConnectTrans BasicFifo1_read --> ConnectTrans9_ConnectTrans CSRUnit_fetch_continue --> ConnectTrans10_ConnectTrans -ReorderBuffer_peek --> Retirement_Retirement2 -Retirement_Retirement2 --> MethodTryProduct_method -ReorderBuffer_retire --> Retirement_Retirement3 -Retirement_Retirement3 <--> Fetch_stall_exception -ExceptionCauseRegister_get --> Retirement_Retirement3 -Retirement_Retirement3 --> CSRRegister_write -Retirement_Retirement3 --> CSRRegister2_write -Retirement_Retirement3 <--> InterruptController_entry -Retirement_Retirement3 --> RRAT_commit -Retirement_Retirement3 <--> DoubleCounterCSR2_increment -CSRRegister7_read --> Retirement_Retirement3 -Retirement_Retirement3 --> CSRRegister7_write -CSRRegister8_read --> Retirement_Retirement3 -Retirement_Retirement3 --> CSRRegister8_write -Retirement_Retirement3 --> Forwarder9_write -Retirement_Retirement3 --> RegisterFile_free -CoreInstructionCounter_decrement --> Retirement_Retirement3 -CSRRegister1_read --> Retirement_Retirement3 -Retirement_Retirement3 --> Forwarder10_write -Retirement_Retirement3 <--> ExceptionCauseRegister_clear +ReorderBuffer_peek --> Retirement_Retirement3 +Retirement_Retirement3 --> MethodTryProduct_method +ReorderBuffer_retire --> Retirement_Retirement1 +Retirement_Retirement1 <--> Fetch_stall_exception +ExceptionCauseRegister_get --> Retirement_Retirement1 +Retirement_Retirement1 --> CSRRegister_write +Retirement_Retirement1 --> CSRRegister2_write +Retirement_Retirement1 <--> InterruptController_entry +Retirement_Retirement1 --> RRAT_commit +Retirement_Retirement1 <--> DoubleCounterCSR2_increment +CSRRegister7_read --> Retirement_Retirement1 +Retirement_Retirement1 --> CSRRegister7_write +CSRRegister8_read --> Retirement_Retirement1 +Retirement_Retirement1 --> CSRRegister8_write +Retirement_Retirement1 --> Forwarder9_write +Retirement_Retirement1 --> RegisterFile_free +CoreInstructionCounter_decrement --> Retirement_Retirement1 +CSRRegister1_read --> Retirement_Retirement1 +Retirement_Retirement1 --> Forwarder10_write +Retirement_Retirement1 <--> ExceptionCauseRegister_clear Forwarder9_read --> Retirement_Retirement -Forwarder10_read --> Retirement_Retirement1 +Forwarder10_read --> Retirement_Retirement2 GenericCSRRegisters_GenericCSRRegisters <--> DoubleCounterCSR_increment CSRRegister3_read --> GenericCSRRegisters_GenericCSRRegisters GenericCSRRegisters_GenericCSRRegisters --> CSRRegister3_write @@ -706,7 +706,7 @@

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/components/icache.html b/components/icache.html index a371a524a..5f9414bf7 100644 --- a/components/icache.html +++ b/components/icache.html @@ -131,7 +131,7 @@

Address mapping example

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/coreblocks.frontend.html b/coreblocks.frontend.html index d5e3fff89..076f7c9b1 100644 --- a/coreblocks.frontend.html +++ b/coreblocks.frontend.html @@ -399,7 +399,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/coreblocks.fu.html b/coreblocks.fu.html index 0322c58c0..c3a38959b 100644 --- a/coreblocks.fu.html +++ b/coreblocks.fu.html @@ -965,7 +965,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/coreblocks.fu.unsigned_multiplication.html b/coreblocks.fu.unsigned_multiplication.html index e8b901218..ef39f48c9 100644 --- a/coreblocks.fu.unsigned_multiplication.html +++ b/coreblocks.fu.unsigned_multiplication.html @@ -237,7 +237,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/coreblocks.html b/coreblocks.html index bdd2b8dc0..6d84609af 100644 --- a/coreblocks.html +++ b/coreblocks.html @@ -226,7 +226,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/coreblocks.lsu.html b/coreblocks.lsu.html index 847ddd6fb..6545615a7 100644 --- a/coreblocks.lsu.html +++ b/coreblocks.lsu.html @@ -236,7 +236,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/coreblocks.params.html b/coreblocks.params.html index 487d5d53b..97a8b4a6c 100644 --- a/coreblocks.params.html +++ b/coreblocks.params.html @@ -2727,7 +2727,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/coreblocks.peripherals.html b/coreblocks.peripherals.html index cd69a4ec2..6e61fbceb 100644 --- a/coreblocks.peripherals.html +++ b/coreblocks.peripherals.html @@ -432,7 +432,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/coreblocks.scheduler.html b/coreblocks.scheduler.html index 83e6d4f81..4e0fc39a6 100644 --- a/coreblocks.scheduler.html +++ b/coreblocks.scheduler.html @@ -191,7 +191,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/coreblocks.stages.html b/coreblocks.stages.html index 33198ffa5..802721b83 100644 --- a/coreblocks.stages.html +++ b/coreblocks.stages.html @@ -263,7 +263,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/coreblocks.structs_common.html b/coreblocks.structs_common.html index e4bcb62c6..6efb3e58a 100644 --- a/coreblocks.structs_common.html +++ b/coreblocks.structs_common.html @@ -521,7 +521,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/coreblocks.utils.html b/coreblocks.utils.html index e2478ca08..09a099199 100644 --- a/coreblocks.utils.html +++ b/coreblocks.utils.html @@ -165,7 +165,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/current-graph.html b/current-graph.html index eefb32c94..a5ae35565 100644 --- a/current-graph.html +++ b/current-graph.html @@ -91,12 +91,12 @@

Full transaction-method graph

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/development-environment.html b/development-environment.html index 69dc09610..805c61cae 100644 --- a/development-environment.html +++ b/development-environment.html @@ -178,7 +178,7 @@

build_docs.sh

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/genindex.html b/genindex.html index 3cf390042..7f2b53034 100644 --- a/genindex.html +++ b/genindex.html @@ -3123,7 +3123,7 @@

Z

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/home.html b/home.html index 3956ce05b..e104e545d 100644 --- a/home.html +++ b/home.html @@ -129,7 +129,7 @@

Documentation

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/index.html b/index.html index 209d53d09..dcf12132c 100644 --- a/index.html +++ b/index.html @@ -228,7 +228,7 @@

Coreblocks

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/miscellany/exceptions-summary.html b/miscellany/exceptions-summary.html index 5b687d262..1df7d9744 100644 --- a/miscellany/exceptions-summary.html +++ b/miscellany/exceptions-summary.html @@ -271,7 +271,7 @@

Summary

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/modules-coreblocks.html b/modules-coreblocks.html index 270fa100b..8dd7f2c6f 100644 --- a/modules-coreblocks.html +++ b/modules-coreblocks.html @@ -195,7 +195,7 @@

coreblocks

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/modules-transactron.html b/modules-transactron.html index 5b7a6e896..79ebb87a9 100644 --- a/modules-transactron.html +++ b/modules-transactron.html @@ -129,7 +129,7 @@

transactron

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/problem-checklist.html b/problem-checklist.html index d1ef3f07c..0e0be6ba0 100644 --- a/problem-checklist.html +++ b/problem-checklist.html @@ -105,7 +105,7 @@

Problem checklist

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/py-modindex.html b/py-modindex.html index 296e16ca1..6c2b3f9e9 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -518,7 +518,7 @@

Python Module Index

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/scheduler/overview.html b/scheduler/overview.html index 000a8e194..94dc73e74 100644 --- a/scheduler/overview.html +++ b/scheduler/overview.html @@ -146,7 +146,7 @@

More detailed description of each block

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/search.html b/search.html index f537d8f58..c928c062e 100644 --- a/search.html +++ b/search.html @@ -101,7 +101,7 @@

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/shared-structs/implementation/rs-impl.html b/shared-structs/implementation/rs-impl.html index 4667add69..80b5386c7 100644 --- a/shared-structs/implementation/rs-impl.html +++ b/shared-structs/implementation/rs-impl.html @@ -252,7 +252,7 @@

Read and clean row

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/shared-structs/rs.html b/shared-structs/rs.html index 53a2bc1d0..844d158e5 100644 --- a/shared-structs/rs.html +++ b/shared-structs/rs.html @@ -222,7 +222,7 @@

External interface signals

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/synthesis/synthesis.html b/synthesis/synthesis.html index c4ef48f14..6b08ecd2d 100644 --- a/synthesis/synthesis.html +++ b/synthesis/synthesis.html @@ -266,7 +266,7 @@

Regression tests manual execution

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/transactions.html b/transactions.html index 3920c338d..5adbcb3be 100644 --- a/transactions.html +++ b/transactions.html @@ -409,7 +409,7 @@

Transaction and method nesting

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/transactron.html b/transactron.html index e8a016a01..a010128f2 100644 --- a/transactron.html +++ b/transactron.html @@ -1351,7 +1351,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/transactron.lib.html b/transactron.lib.html index 3ce331a23..5a8bcd0fb 100644 --- a/transactron.lib.html +++ b/transactron.lib.html @@ -997,7 +997,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/transactron.utils.amaranth_ext.html b/transactron.utils.amaranth_ext.html index 849e4161f..9ef580e84 100644 --- a/transactron.utils.amaranth_ext.html +++ b/transactron.utils.amaranth_ext.html @@ -255,7 +255,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.

diff --git a/transactron.utils.html b/transactron.utils.html index 728909e7f..aac2438d5 100644 --- a/transactron.utils.html +++ b/transactron.utils.html @@ -380,7 +380,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2023. - Last updated on 14:47 2023-12-18. + Last updated on 14:34 2023-12-20.