From f70f80a8897b8d408c15b24bee73470dcdb53c2d Mon Sep 17 00:00:00 2001 From: tilk Date: Thu, 14 Mar 2024 11:29:00 +0000 Subject: [PATCH] Hardware Logging (#595) --- .doctrees/api.doctree | Bin 21036 -> 21036 bytes .doctrees/auto_graph.doctree | Bin 44184 -> 44185 bytes .doctrees/coreblocks.peripherals.doctree | Bin 219996 -> 221693 bytes .doctrees/current-graph.doctree | Bin 45405 -> 45406 bytes .doctrees/environment.pickle | Bin 455643 -> 460539 bytes .doctrees/transactron.lib.doctree | Bin 684906 -> 820861 bytes .doctrees/transactron.testing.doctree | Bin 265437 -> 269103 bytes .doctrees/transactron.utils.doctree | Bin 415260 -> 393990 bytes _sources/auto_graph.rst.txt | 342 ++++++++++---------- _sources/transactron.lib.rst.txt | 8 + _sources/transactron.testing.rst.txt | 16 +- _sources/transactron.utils.rst.txt | 8 - api.html | 6 +- assumptions.html | 2 +- auto_graph.html | 344 ++++++++++----------- components/icache.html | 2 +- coreblocks.cache.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 | 6 +- coreblocks.scheduler.html | 2 +- coreblocks.stages.html | 2 +- coreblocks.structs_common.html | 2 +- coreblocks.utils.html | 2 +- current-graph.html | 344 ++++++++++----------- development-environment.html | 2 +- genindex.html | 164 ++++++---- home.html | 2 +- index.html | 2 +- miscellany/exceptions-summary.html | 2 +- modules-coreblocks.html | 2 +- modules-transactron.html | 6 +- objects.inv | Bin 10787 -> 10938 bytes problem-checklist.html | 2 +- py-modindex.html | 20 +- 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.html | 6 +- transactron.lib.html | 275 +++++++++++++++- transactron.testing.html | 27 +- transactron.utils.amaranth_ext.html | 2 +- transactron.utils.html | 128 +++----- 51 files changed, 1014 insertions(+), 740 deletions(-) diff --git a/.doctrees/api.doctree b/.doctrees/api.doctree index 600caed301af46f3f2be88f67345069a7adb606a..2bc6574359961a88f39ae12d734827a7cb949bcb 100644 GIT binary patch delta 449 zcmY+Bu}%U(5QcLJG$1M-Inkgo7FrmNO6~}SK7ucxWH}aY!`|&>XAiN`#>$O}+3k%9 zofIY%78bsRjqw32eF5W95Y}!o^MC)JnVC+k>BM^ZXsS2gKP(4~<1S^v5L^&wfI-U* z2twRTDdr6}!hA&VrTX!!wTh`-NVLp_EW+xd<=8e{#UjK&ps}dbyLWV5PB`mQ9Mv-@ z7*Ya4%QeAK3@8ws#V#dXE%PMq;jxzMMofS*L`&Of^)o==xTj^&u+Xxw)M#n0mE;gd zk=kzUlvWl5VKJy1-zk@tl-o~rc&@&^eRbgPH63G;U`~<{b40WA6cIogC1UQO<*Fg0 zkg7A!*)5<{u+D&^B>cZlDhLI2?^V@TyP|%Zwb^a!*~-6uo<4Tear?yDR1coLd!?nyW zAX2-#WDEov_)-ZCT}vVDMOd#^{-OkDseSE4t*smqC?pkTLnqJqNd<<;o_8CUCCmnB z@_(BE0jPUX8ED0?hXN$ABjioB!o(5Q^BBSXtukfk`d1SYbM1h6u~osbfmHF(WJ zv>{X5Poe_h;!x5`S=Ds?Hfd^pENiwOOV)+0D^t2jp<1e?%DP3Hx@eoa?tGuQxkl4| z_*|azocBEMd7tli<{oGE9)}y?U78MaZ&TUfyLYfkRpSy>84(LG!;_$paXGvh772(AsukS=gQz&DdK z=u7-!4)j;#I4(GVTPYD37gOjT2)>(y&Snh?^0}~!3z+Eiym+32*Q6G_mzD>cv^gRc z;=VQokEEZ$Dd$5eFGj!I29NwHc7B!g>#{2PH}YXFMzi)1$tkGM(jjovj&(hkUd#G7 zg(o>0tbT)s_ejs=U{wx-pPR>Gx0N+`O{r#aXRaH~Dn0JyO7O#63(n`3<4?I?XRhhZ zj5J(SwV)uc7^!*bc&I93GV|vBio$ty5hm1pP?A&zM+1BLa#=Pd<}cc3>MXV z$j5^cD_$r$fgGJ5*L2sgR;nX1_;|MT9M0}%H~lt=rR8e`Xgi;V0^?H*{cWoi%1S*;|JWKII#RixLV?Wyu}y&wzhc=)7ag{P z_@hma0GErXtzuIS?X~Ys#%J|9tUCn=*PH1x&P)oo>UA4+rHu_z3ODx&;c-=wz7cm^ zWo(pkmmC6@1t03|l znDgj0e=0Y!D8TxaRD5#64rf@T?HU~DHg@>@qdg=3e*eJek;3h9M{E&PR}Rv8Rb-zC zf9TcXPLC$r)N%0H!>&{P{o_XpdrqD_6FCqY z#BASQF2U;A51+)kPt> za1qufYY@DUg*PV^n|4uL&_xy%kYA`E%6>VirdKYI*F<|R8{sMP>C7teyQyL#>+`7w z3YUX9C=F&1rZZ@OgUtRF%uh&{EM_wcJl18fU(}EiIi{P*w(xXaBAtLcsAdFTwkMJ{ z!8j`fU(Ut*r!vU>Erjwg7}`b4&V{(W3!!?l?|!H(@hk#v3u3GKldvU`_D|uyyT6DO@y$Y?uf7G3gC(p86LW#Ah<9NW?T7{Si{yiZ zmc=$SY+yV(=b~@3>@^$ZSD-2?g&?Xza8gJaVT$IEnSxmrZh!PUVb(M9g;HV=!j~;r zck*Nl`k04AFh;ZSa6X@XejYE8&jH_yHef31z`Ju9+aw`uE9Zy_e!9GuwAZiHux%X% zmR<0!Nbs%Y3Vgckz}w5U_}Sc+Lmw{*@OhLb&@Scu^((pT+o_vRXC9`+A`t>rf#z9t z;$_D##XUU7W~_<)O)!r6=b6ex<|Y`&49v#7A7__cK_)5YkKnJnsm`B^J(O`_o||h; zRIzK)f15k_e==XZyh~=cE;DYx-=pcMA%Enz=F(&4pavC)3NkS^!vH)Z^L`;J%qBO# z!FYYqLhAkdMK`gMW~qvdL$9iEgeySpQa+hQmx}RdA%n3ayJmoGF?(b7(W^!DCo9*J F{|o$JA^HFS delta 2315 zcmZ8hZA_cj71nEviOrX7uyODQ#ux)O27_yApaDA=(_~2;7$H%z4vIrsLI9H{OGsAA zqLnO*%!i*wm_PyvR@ZiI1ATu~YT7i?rcPSZv2|VAL|a0pWvcq6rd3r{k=ma7+61;A z_dVyHkLNk}+;iWl8=~k9k$5=yOn5^4XD(-A>0R99DsYDLMAD^*CTGAT@*}S|122o* z*e`kr{}%P(PJSVlHBtnU%otZ>)6%n8{!WsUgFiVR!(y=zpiC}Y6L1iFBo**TRd^|+ zgjQlD4*rb9B0{G0EN;yx@!q=4{G#+!5<1fJ1Q4S^jOug)W8i1fXGHjoyczFh>fx3< zBk3~SE?9?8<=-HxtigX37Az|y@F|OsrgUR~B<=b4l>=g!+H7E8-kc%~cT{89Cg!i_ z+~;tAydmg9=n38U_3SkPwRS*?w= z>Qz-Hp3}9$q&Fi&pN)@o7IwOT{x2Mw@;dQ_Ar+>)JQjL2L&{&yJI0|uKM#idnibnz z{!Ixk74OHfVi#(EE5lB25f(a9v7@8}H?4(2na4|B!7l3w6kAJhbyFeCwg6tT*>T>M zhFk}glFt9fc7tO&F4=2o4@a2`(K6eEeg;W*)ar!vKy?}~FPCwVXC+v$6(Pk@$5JAW zM#w5wQ~p6{j@pt)rIdf7;)5iC(U31ize|c*7h}b1E*ErFB@bBcy6peM5~+HWs&YGV z>ftQPuVQULyL$`ny5mW6?y8jpK2Tkn!r%6&IlSVj#5dj&40)wE?kP#!Iq%pg=P=}x zV6(3tOFpYW`$K~gry6`v_?+;N9P;@|%J6;zG0>e?HrC-~fBaNEelIRGZa}D!CerW3 zt;RND*I;|C4Bz>CG1v5=fH~Hrz`mwJ!MCti#!o$ZR*c!LF2R|%^+{nal-sg+@wN>d zUJu025(+dS)@;La;1J0gT-#1lM{gn&NX548@iS&V(n z@rvtr$oY|$yBuC@twK+09e=y^IEQH4YSyl{INIlJ!zeqo4!_?S_jT;7lo~^ zKPbPxs|KlE^!@`5{(4uM7+*$Z7$1@0R!=_CdrWwMp|h{RQ};XEW+YCBT7lfwF2o6Eg=aLY(1%n*aE~I47!*;ZCm(%e^MN-gl6z zgtgy{0Ifr`rfBIy8MxN3;+(kC{|J4(AvG5IbqIufEIIzKGBZ_?qRKMb?RCaY4UY$( z>}rpT3VavJryr(vpqReC0n+(>1HTpvrG0tW%F5xbzxWA9+`l@iq3_s{K8pO?5j$*0 zqZmDsg0GL7@yDYqUp;8&eS-zb2%b=2cF4ld4oNwb4lD7-GY9d)GfKX0xKM;AhLrec zRR*>Ur}JYczD-)`9U+XLr20p)5|`2h)k!PU=^`dZ9^;=s`9TtuaO`vgeaj|u@!@F; z|NZHW9A?7nVGFCchu{s{;i29Auz~fJGQD9?}a!Si6-+V3s&#EiK+w+zS^Ac~qr<_y;%=h*#heJXesz=RVhxlo&a7 z^oes?ES@t8?p2+6-aH>qic4nUW~+p_xMUXA;or@g1?#FF$2DTp9K&V1!8u`sB@W{w zG+^l4tHX^s2A{bmXzPV7|7ZE=0wZJqhKtrj(Q+!;wK5NAn6f7(Ar*g`RAbMSDlrXj zO&V!uU@uNoVZ_fbs&Ouwoe0jv>8K?U_;j?1#%g#{kG7a<1(+<0^I4daDli|@tg$Y| zv{1yd*H|8&cT#~p^Nm7I4e6iFH_-ng6*Vy(&P_7RQv7SufY5X*6|7-zZNQg>ucpcp zvNS<$z`_g<&-4abwRn5lkEf@7*f_HR$+ULG^aSpRSul8U<&>Yz>!?UI-n}Rsjr{M# Y%yglQG#gE4!}JUmr|kSEu}djG0;ObX#Q*>R diff --git a/.doctrees/coreblocks.peripherals.doctree b/.doctrees/coreblocks.peripherals.doctree index 0aec6e3f5c4f766ec691cae6219eebc73615587e..9f7c4852c8af9831518e62c193e98e7f078c4cf8 100644 GIT binary patch delta 10258 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 Ivo=Wl8}P)lxBvhE delta 9614 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 F^k4k3Bar|A delta 2309 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 iIH&KQue|;2Bc|~6CP~EbO5eV2Zb8S&^ z6*2~)*+%rU78dq5ZGdK@JD z#8icDKG=yKan-|hcH3wSQbR1y=pWS{YZDVxc-U7jQC8oi-NrY&blb^89!1O#O?A#} z#0YiQm4tE28W5xn6yStUbo!`8tK%Jo&TU&6AZhp&3m1lTCTlr0Jg1&abH!Q*Qp#WK z;0`MNI9uGFx`Urryj$DsR*Br|!$L&{m1a-OK!S@}f^N^9V>pyaO(0IN98{qUiXBKX zr=_61FSNa(bW_02xm>mg8G0iY{IgI$0hS<59e$#` zj-Lt1X#dn_#UhcTnPU@$R?vJwuGmV04y`dbi?I&yRHQOi3R!|Q6}1v{$UX&2)EPDn zQhr>HbfK$&OQt3%EJw%>Z&~85Mi!RudvB7jl#)|8_+EQ z?6h|2!U4}F1d9Wi!7qS>4g$>5eJn$Iu9Qlk-JWONo->BYwe@oVsKD^FZo}{q$Skil zn_K7|$c_nz4E=Ee(l9^z$+VRAi`YXE)o! zoAK;nA{qiJFr4aj^v#8N*$4qAZ8yRK@Y%4TRFh588v!+Ds3V+M>WQ4WvpK$@J*T}( z+lr)8kMyA#=`Oa%qzRj6dQE3?rS1(g8-ZWIS%8A#D=0C}{#JYICT)n3UO}mg#SL0F!3EqNjX3nI-QMGJ~-<;vA#G*z=_VL4d~ zxfU%)X`@@>vWJc%cf&Gj!q#{RBH9)wvr4}++wWZ5ep?5$5q?DbwX&Kp!J%e^nLd{& zQ7i$6)^xtMkq0SlRG25_A(h)!T_ojf+eB%ul6`0rs!_SbA;w^rIlAy*i_YDcQ=~jV zkR3}YQM~-AF5zeGuC7_IR-I|MhoV-9q6a0tepZ!bL1* zSSunS@`sCvR1OzUseL09!NbVFiq~9!!{?by7jk#?SSI8Sc6v(H6aVQXL+&8ibo`8l zd^CgGjG7B}tnx3!$3$FjUbxBA=mDqY+yr9WIA0`g#I`UyshpprgHJ@`j1?!toqh#_ zb=E+WfI?%Q%O9u{fYi)cnL|P%8hXxi6_?Ov2^d7gtPwJyQVYcCQzo$y^qe6&H!h`S zH#$^ki(beOGBWkEnTSm-c6v1Zr|lif{TtpKj3}vJz=_*XXZj&9Q2^h0;#Q_jTMCw% z<&WhEc|N>)oa*D!<;5}*G?366Y!##H%@ZD=@{`UxIULNb`-OxghVxg|5>>DfI7?S9 zOqesfXyI}B%8Pt#g;^O>Sh(Qgw3^tG3FPeAMo2wND5=^Xi`Q8weg$lsjQlzIF`Lrp ztZ%hXyi7{NY{|isVL?`I3mSKj2{_d8#V|V1majV99-SjTz#%loGQt5K&O>M}>a->0 z_!bAFh?yKE=vm{f{x)0dcJicI3hjYkyEJ4F~LZj_H>hz=Ytp2u^4+ z0rpSi9HC;?Ru{}! z+KM90pu5{dDc@TaI#>9CIg1YJ+l!&-&KrviQW9C%tD;d&pjckL1U2hlf?~wp=3rm5 z$f9jDC2c|v^)P~F>t<({PHWQoR@h$EP_~f@a1+jR=g6LrJDrc~`clVX9zz`yIZha!`Bs}GW3fg;Z zI*B;Csc!fPI=k&nx@2&qww+M;IqBl!qcWq=;tE|`wcCkqX3L1=Zb`_V!sN~UePFST z&8p-6x5jH;W<>`#GqRkpOy>SRFxi6H zR?T1L59l`FZf4YS^C7t|7BZT^9mJb!^vAvJMt_sKs&7%sE0Pe%+}{T&N08)FY5z(A zQ`ahHr4&K-s!Ef#_NX4|x*9Ny-fpF--GtQ^_xC}<5Nz~RX&WVYsfmO&*E|9-3+bSH zB4?yD?xs4PFG{8qW`uldi~N>e?d!C+)j3(Zg}0x%QxvpIU~>e?3b5bb*KJkW5cvg&S;YeA4&&L=X6iwg<>u-pA$DgxzWV{UhW9?< z-Xpj6kKcFSC)~UH!6CW&x0_#h>AvyZ52VL>Z<=4cfHuswI`kTcx~4g#{RGN_-h1nv z`tPUezn`N2-qC+Y`tMl({doQNhW`7>`tLLP?_~E z?bIZX+^UhnSgG;Xm@+VVE=%wUZkn_hplbiqT7FKJvyFw z@AJv3$^y4OmrQ&2d7)wNy?1o)o%im3gaxUuF1vTDcj3PKBBJ*xq7TxusEFou5=|Oj zP2w*KIffTPh8#aMr3OAaW#DX8D=Eb+J%jFWIPQ>yZv)7GCqfEs zmqIo=bX5gqi?Rv-Ju@L~B}xNQ*hxKLsVNl~ko7-^vOZo6UOzWRW?<<5QAB?gLk~$i z*du?Mhz-{}Vp?1dDqM+^1F+t z7PEzx?svE?%yv)I+v(7}8}#};)awnBESf43}+@E3D9a z5bCd(cC(qX0Gh1h-*6qxfrm+%yvGNA^mhgHOb~*a+T%hqF@XAqVtR5kS0-;JhgcF( zJwgw9zKLUs(Obd{opEpc3?M$p5zWjM)b0+c;Gu#zZ5!A2>udwo!wTy|;!;bLZ@g5{ z8K{mBmC<%DHoqU!$?tLewVJ5k3h--lp0}gFrt1POQ{uJX@6r2SKsv3&g9Zja;nb{M zwFIXW47Tf|OlFWmuLwqS?I>T;NV6R2NDid_zKSS`^J=KaIg~j!k4>{XUZ9)x={W$j z%#+MA4+(Ol#Ij*7av97C9m%lWy-l}vSj?+LX0-nU$T=nn=DWA$W?f*yL*kio1qfM% zI#w%2I8>`eca+{~wLqj>3JQasSw7(AQBJ1^3wotN7iG=B zx5v?}KyG>-3s?J!92~}@lcJV8`;bck^IgO7LT%`Q4=~DY1z?YNkgtq`&NHfJL>2(b z1EMryo;7|XG(jz<7Q^<(Gds*+r}F^GCV2-pi50N~NM&I;G=DM^5E4bhI;p0BCQJD) zE+rioOsXd2j9F5;M&$Q!WV7;=7g>t7pTVJDi9+v;?b)#oub)MPhObyIni56Tlw>}v zi9c6yg|1@x8mE_SevgZ9bvlj|9drfH|3W5^HNZMy?706W3W*J{kYbN%HX7SBHcx!| zR&{Bs7@;lptIOtgt_3QGwC`l1 zSvi;sMV9Kjxl}NrV^&L~a)q$(<%rg(;FQpnD1JYOv=V!IM1v>xKS*STH&|&O-t-TB8A8VfzvNGSs<8w%p z?Xlz68M((h!>oAa@-k@fo1z9*lFp25j}IwoId3q`seX19CgMJf9(0dNTnCAy{eDHb99FS1@dpvBJ0rCAH-X6&kiB)VIg<4uoYE zonkms&zEpOE7sV6Qt9z!%vRPg>Hv{l<&|6}zrA3#3D$oN6Aad6n7IJSm7Kkv%Lj`x zIZ&n1{!JX#O4x@tyF2Q}WUGfhNQ6c|v0_9@6f_mRn5#d`>|`Y_E)=;1k8oA2plaiR z;h_nqm}u5C!V4wKcY@1jwV)r=k^i0KuvV!g8&>j+GaT1iV0rr{R&&o1h2aubyr-{& z>h21?IMLnT?WXJadiwW-Vg`}ZihDM-Y~l-CX3M1*4!u=NXIHwn>FAC=b^>lNR~&E9 z*%}Xq4!j!26RdQ7b4#AqEakD1NiAFH5|_d%?IGp>Ig%ALMI_1H-ol}*aL%A2 zQ`13ry6=p(^_ugn4F$(WKx>p?i1ZKk9OkMBWR+?oAS)fXu1LYDUybQNLT0A{AI&JO z+MP)mRF~}(^J7J!VQD?U4S|xw`riN0P4qLSObY>aW zpMltp2cOC4StPURgSqN5cE!(8AlV_21J$nK?Besw0@YV>@$?JI0yVAq&KHY7EJQHX zq*(K13JYTm8;B6d8*#pp!?B2?;aJ4^8b#@kI0>QLlfItwegVV~h;ZLTUmMZJDsYT@ z(cS4(na~+rcqM(tFNfz(-;Ti=R6RyOJf3g(;Zlp~tP(3s!OjByb(339_SQ)&F~ zbLL9CkO=?@D0D4J}9rvew=Q!0#McQIY$CSYgf5^ej{L2QP zR}BIHf6VOYYY* zC3wyZ%L#1SQ>UmSq19pNTQ5dpb3=hh98_t? z4Bh>b;sM-8DCr?7HjfYHL}ZPuC4Gg0#>D@UVU@htbYWEgPK&-)ub%<4M@433+9hHZyPU>B#%Ym>xiXWt`HhiVJMd#7 zvbifXFETx^xNDqd*XZXII)b!|w1>#M7UeusW4-b!3r`!Lv3KbFFtQX`p z&@*)V8uYVy5&AXUb!baw$OOn2iQE|S%;oM#q=YWO{Ci!GhyeDKk|k@*^5Y4~xVGSm zf<`AW)8<^VYHTYf*Wl|MT=1|Qg3GD7=F#Ll%-IA}ATF=A)17~U#jh}n3lTOI+zIM3 z`&+rxLR8AjK(hTuaSrCLLuQuQOQG4v4TR1>H?D@rK)p%SMrSZH z_(+a~PF?yhv`0trhaO;7TihUWqIQ$p#@wb8!9`Wusj)5om+I1pqF-p(~J z7ld3``|2S&GoSecj$`h*1f1I3pwoVutMy4tEwjGuf{^w46fTd`%5~YwpT@*-S~*3K zrFk!x#%W~(i&^fbEYRX!DOMb0V1X-(ZZ{3m zwwC8d6dWtY2zhjui51jVuhbiBt1GqDjaId?yxdx7tgWtMH(BqdyHo{CfgUxznu_kEoYa+Z*q!8ej*DCXF z`}~H8oX`0~WWQm4OT;&qq1?`+@f{ZVT@hEP9S9a_ZmczGZj=1J2%XO-BWS-({!nBf z%zK@(JB;$jBCwR{@ zP$tM6fc$kikSc)uZ8;E(5`SL~qz01wV>yro0C~>_}CU^$RFfP8Q{kf#9T zL(73A=km0-zn~ll4)!l92ZE#GOUr?*gH2vu4&*HW@~UzmI0nDA97wWRP`Az-L=b1< z7sr!pl-_)>kfwz4*lJ?VZCQYcM@aoB`xUS6*?uGE`r$sS8BI0Fmo6^kCuhO_!*Ri!3a8C76!B3QzDE|l*C56K3`wG2Ch9T0%f<=Lb6R>H~Hft zjJeZ79OtetEUnbB*FPyDWox!zYj&|D5OoqXQB?%W)~#M$-N25qAR=Y!Rq^+nS zJC#Z@Bt%3UtgfwMBW;VSII^f1#kR){5ya8bF^FW1TihBxQ8wBG+PMxE*<%)QG>aA^ z1PJD9S6bMw_C<|yLZPz^%R;TxR$3T2ZXX8fD%j~jgmMH9(^gWmeY^t8=fvu4NqRx9 z?v?LQ)ZoOfHV=vEwAgjf<&#BSTs|T#6NUL3 z5hhz0Ows>NM9CKBDhl%tB20$ASZVEjr)Ugi>&yP32S>o?iU@uwjGL-;KYX5u;rCj? zz>x5K5yam%3IyBc!$p)#Q4r*XB8XoUT?2yr<|QJE-%W%{(#u2`e-mSTd!>lrkJn4s zIIj^Q{APWslHL-a-Q@Kmh~L##Dp)prlZfFLgfLK>2Stz!L9B}E!y-n8AoW!g;kA@?zlqlxIKh|`G5mt8H`3<>blcQK5WgVC8vq((NyP9AVm<(%K`x0P zekV~N*uJYGN~S0X@|IE{R~~~nzafHT7^BW?ryi|X74aw<3mL z5Vbf3@$BD;Abvp_R*LrTOJQJ&_8&wHf5S9!$=df#4SH z4>(;)5{%6sR1O5!DL$ke2-d$oOayT(tgr2x?=0)o|DP%PJiZmu29?Y8bzJ*-u_%Ef z97iZ~jml~j$A^y)VH_Pkf}yH0xaliI42PGc7}&P2E&-xW2!SN86G0q7Ba%cPGg`p? zOm7r%{8m}MjNRq|5yP>ABa(%VmsMM|cMX(!NCa{Ok_gD!pY^B+;cua}b!+d?F%iV? zack?X`Uq3+ELM4tx%uQ8&&F+0_;mMV}``CFDWn1Xy-n)Wp#~2Ff&`ES5x>0hFgo zqTqh0m69m9cW%8T%4yK3SrX+8pj;`5g2kw}mP4^R&_|U+S;W}gDu>d*CSs5(Rs}XO~359`Jc3QLqQRuOtfg zfG;YEf<53%OQK*8_==J!=r3Pg4&@s9%h#1eL4Wy15hXKzU$f%(x0HoJX}+y247%@k zl!Zb6{jRbw=)m7o76v`|`^v(g3;#e_7>wdSR2Bxq_>Yu@!8rb7B24DEe+}K{Cq$I& zzA%Fw^QX$fU|;yzvM{LBFO-GBzVORsVX!a!T3HzE3%^ko2K&Nqm4(5+@VjMUurK_6 zSs3gKe<;Fa_XTY4KNeB4`@%`=3x8S`2K&OFi!j+bq4WJ^Nfh+Gzb=V_uJ^YkQPA`L zz9b4d-anQ^LBD&>8L5iys12nv!RxgKo~!*p5yx>vH^q_4OdqVEu*~#we$VpL9qV%M z4<$0=7C7NXC`A%fh6lZ^dXI`zgYo`|mN`0uQL}ra*WSI12ObY*W7qG-yXGX zv0lZ*5-!CRVPv^p%jFUdM{B^^Gh6g{Cq0nR=%|Z}ZOPuiBokhcZ~)1&-OptcO1&C# zp)=aL+2{<%dmUS@H#50}YhwfuS*Az0Ov1gX65P1g-7y~1)k{l96&hRfa{%RJ>26H>SgP7CQklck*H zQo59P;Yw}vxPoPEBy6eF60Zz8Oy4J&zOJqxQOo*WaS>7MKQtk8%uIk2=>wxc4qW)6p;#YN6ZN-A2ilnPkG{d~PgR!Zj}8G#@8D zsO|0T0kl9vAu=Zt0;C6Yi`}kzSws~E1Rv@UCA}tM7E^zl1};$lBSp|+>Qh?LM^QgU zL>2nHNBvGbsDZp~5m`ulyvQB%iE171w?$mx?$K=AR`>~seM5vlS;%#F_{{>hCIySh z`kn||%zL|gcu~;4h*`|hy6mR?p@>?{9s2vNk-cZ=wumd_nI3nr9%?xdA&a@dpmU?u z-3HJ4coDXk1r+S<_AcPQL&PmC?y!ZhpFAnpeUSEDlYrfAZ4XBP`yLUtn9~k+TSKf7 ze8z-Ov3&MfB5J_~qlb(v|N7iX!0t24-V=#Z56)pQEB5EJfJy0kDJH zTY&c6BAQTTNK8j5hv?*!+9PiO$p-v>Za|Np*pLINIat>FK~Z0i3)idd zt(&3?|1i_mBO1WSy8bBF)iaSpK%Rg9xTvUbk7nGkPmTBX!O&bf6j=#rr^pqeH2wBBH;3|58TM9z?f!&m=kcjVf+4H-XT{V@(YE_NJR zB33>%)kB)BMDaHwpl8f8>;_LaYw`Y0MDzJrQ?H!t(A%L>i~fVcgIvZ_=4vo3xn=L0 zWeJV1BQ+(#o~tlGFt3skge=eVxI99cIdP6yo`Bww+dgRR(!OYj(9c(JEL3=gr$%Sg z9d!2SZF))54`-Tsh9?FkYy3j4aUsy1-SO~dw}-DJzeLpAwSFbnT6m%;ZfAx`bp)F4w^T3g_MpXIBWms`ugTc^E%h?^R;xcohkCsT@2NL( z_@REm_rRY1zG)K3!_IDJ%YIMvK@r)LMP8;i&~NlQ+biQ;BXtHdKddmJ&wFwz8BcbM zBMKO2Si%a2^a$$|Q5q{8!s(xgDp=cRNB2%JeFPUrdUZvEeq?H~wpydC#eOX7q=L*7 zdu-T7ePd~*wo%6eWM@P;VfJamv7=~bMI@oTZz0XqH(D!|)%yD7Wv=ZLBB(GJ3!sg) z4Gwrg1Qe!FHXuJVHzz`6o36TS->P2|k%aWc5~{kkvR-N6eXL7mv6>BbNbAxeuo^Xd zCup@K7G0UpvTwI~i-?uoh{84D8zNM8Bi7hW;a4T3_dWN%=iI0M@2)UPTCG{TR;{hG z{(fD8y_+o{zvl3xMWk%230EC{tOzAcCoC21GoxD~j<6Mj<1}F4*eMCb&W?6Pplow5 zuPs`Ubyq~n){R{r-xqfmtgkLE z*IM53_%X>!hfO<W$h%pj=yP7z7Sb1Zc)uT~mwW!koIY35TW3y$ju@186; zZiD^w$%3B(n}6nH!Eu}F=ZN6hqxa?2ORH;Ft!uDEtn9vSzd!H=B2KnU(%#N5R#=!j zdpc+2wXH$tZDX4AZnriMTAgR2hk$U0&6g?Q57FBKXz$;>_m1wp^WNPTv$X(d$*&|D zBOQmc%v4d`zu6hIcZWgynJ!J+M@g0Flb%atUyHObRS{@|%C-73VI<{~SP%{N4N7>J zs=!XuJb1di&{8{kXt4yqzgdB^B>!>KH2E2r1t~51w~FZJ3!~o|kaa})zg^@2)8$<9 zha8v!-zmahD5(Hhf4@(AilGI*TVw$f503^bZFQ0!0KZoOg1^A@J`;@1Yjsn8ze2^n z2_s21EcKM#)*hGl2So$Go50!N;Tl%!X1ljdMIf-p4|B;Eb2eaT-9Xnyb)4x8N39Vp zqzv17dnoYvQO>7Ym=C%69<8Kxd!3jc@c41g1LnORL#?+5?Y)k9?SgLCpHzt8EqObC z3MhNb&v04u2132%el#9nPx*N!YF-aa@MKAUiAxISPzu6~C}?dol&)EqRR=i;aj zv}p-V3Y)*D*sy_XDTjd^tilmMd)s^a19zx;60s8p>;o8G(lmRhr8|Dot97uH69XP4M@=>G)TDrEbrp&R`j?ZZo&X-)R;9~nJ4Saq0}a_Y?&o)8CV4OwqIwjKR9Tr zQ4hqv#Kd-`{aox6QkHj>%bVXr3~)--LFTt8T$Tm7DoR}L@iSHqw84y!I}ooZFj@Vp zhf!a{?&gSFSp~O1>L9>3ehznb{eIAyUOQ5knmf6--ykrfPBFYBd;s(y0 zt0ff^5O#+Nn>#!tfU>MzE^F?nmO^jQq}M9N?{eUm%d;EMv`=KlM9w@aJ&d=S1qkUW?(JV0k?x$<4O_lw4d&b>AaBMi3Ku! zJSt{Rs~qIPRSnkUSnpu^na!OCPFC}ixtbqgG3kt%5D0~VEDuTO_L^ybW%y#~6=Y+>d}nOMva8uYWdAXEcS##eFBP8Dx zF}{vj(yZP4U}VdEBUi{Qti^zIk}Gi=(CJ%HCrKESHfS`pm(V>lwBkm)p#kjMm~!Sq zf+P#WlePQ~uBADe=R?*OpdK^AUiV!Jn`L#y;g#R*_0?W!u*vsu(alUZpXdrZT9ya! z@8jTR_Mabo5N|%-qEL#B`U9LtapOez-45FRheX?(+wdJKERZ*AM+9^Hh=PN`-ONt2 zpk&wkF|PiL&4EvkV<5#(5QUNAybit|(ET^Vmb&|<-wU?V`!(L9M!ug$N=O7oHl@0c zMed6l>*ts)aG1)5(+frD(Hi*|xkb<+aza}Ut+9WFW1Gu0!yHx!*SAD})-3)LX920C z$YPlekQnzVX`uhiEDWin4~My$2K;RWeJ2yJZo!e>6PMhq1Fwrn}WMBm= zmFiM`wFc_`Pld^b7R<=9aGRIcYmF=QX8LHH7WaRN&>0Sh>IavbwFb!hzeUhucChxJ zX<`45!o|{BhCfndY(+=V_v1DLQU9-kw0EBQJ+h@2(YndoHvA{X~ODcrnKVPm+-De`=Oyt&({svNj8 zpiT~s@qmJb?9$w?=;_@ysyv!K#HG&JS%m8vLGVYJ;QpK{=_mrQEc-DoySbOvW1E$5 zQ{D>Q(?a%+lbK|epxyg8lYhaRQz!B}z-1j~xDF4v*|59ew4|pA!x&9G8FxY-Bv+?a z)g6AZ1)u>RV+O!k9)zPTWLf)jTzilAr96f=`(wI|VZ2YvN52E|6bgdSV3v+%ray^>{1SBSV^oEzL(2l|~`R(zLiVSnWj3 zcEBo|L~O(|&rEc%L)Fgk>A3}(T>(mmY2(TKEg)H`n_MZMtMrp?4!X-cjavB{y1z+k z^#|LX!Q6OfCtbSLI6bD9XPQLU5g?ST+1t2gzUIO~a)gS#!QE2_L#nz$Bi&)jcq$^A zTvp)iT!B|P-7c-=zv>??f{5l$Ax6E^x$rHNdAb z&CQ~l6C>I~ZC>xC;ohy_*i_AQGB+fRS#&8rNcZW7fWvi0E!}4x0xlfjLAuWo;mn*# zQr4^qX{kP6!9ZGV9%ywz(9T44<2(rT1)@M^;BumMhr@9axU^VbEP}nrc1#f9%ZSDZ znJVX$0F&uMGw zpHkE;JiWn<(5NpiCApG@_*oI+0XM|u)%n^26-JW>o;A!bh%m2YFdH;6G*;9!?JqMM z@Wzkmg39eaT_n0)Pf{C=@M{VIy8&;#7^2!v4;E_b-{91|7sk}{9k@bM1N;^TaI>%N zc2W4>EkEZH?&C<^A>uh4^a)VMi`^)Awi_1Bmdq z61~uT{2-;a;omEA2p&9sZ=|&H5b}@Q41ysI6gG}L=W*8ij&LtB5Zr^w2XZJLiVT%j z+CAEKl&BqHkKN?u9PptWfX4c)Hr%Te3^eTVd?<3;zLrZR z^#9atg^}wGOroP+iS*bfOLIS$#@mTPX($V&nvxY&-prwRRNwCGSo^88jUQ38c5#op zXGitA*0wq&y+@&SIO=Y-wzgVq*PzBcDq(Vu8mVEm|iVzT>Z3t^QM@v#wFqo~uWGTd0yF;fv!ITS%4jMwRfF_f> zSe^5QvDV-l^ymrzV7@Hs4r9GZ-zVvDSXvVS92yMhrqBIF7DyY+0*^AE50nK`df610 zxhWuZNL4YAw&_N1u*o%!k}Z!yX>Ip05&Fo|NS)o})S7m#kKssDnKsfg?NKair3nj4RbyBo^$U#C+Ed^ zBwP@Bu#uM=M~5rjI5!+U%Ha2|P+P2!z_-Oc4)c!;rd+31??Z$!eF~7BH z@7jCqwf4E^CgzXqd)C_Zt5vI3RjsO8Ra>Kpk=4`_1@}$i>u;mVh)No6c7+j~LYmY_ z!pkuQb1PD#<#bTGt;yQ>Bg#{BsKR}*5$q1-Jz9KGKN(o4AYnZ3B^XuHqL=na`-xj#&)Odnqn>i(0tic)SUj1OxJ+j91~`Yuegn{{*)<8lP~$YH@$JGkYn+PG}q zytP%XuK%uK`fG(;-n#z)9%KBu#yBIYOWBs%)V&5iDk`(GVZ6&Jxvl>P8 z=B7O1)g8E}2InTEiauwmXhT2UvtZE+X!H~#Fj0evupMV6a1}n z1IO)xPBTKoUo@fn8qLo1!o-&eV{oIP^tRFbJpsuXh?s1rtDBMRe&_3l4W(M^QyQwT z5wcX3PUb?>HwaI))4r{PA(gZFZ4+osKeJ#Uqi=jxmvQavIPLLK9Ay*s^j%Y?*|Ds? z_WOq;6o6C>{<8+^J9=17+4F=UjJ&V&5klB@{!=ZF?cwcnV`~KF+OO<*{)MoVHHl@M zbhC-zq6${7%)gqLw!62#*PvYlVFWKJUD?(hrnQyyvR0B^X%PyYs!T0S{F_-2vC89> z6TzrK=vP{h{s^j}zGjMHce0Tf?UW1t8xzBJU?Pl;(Lm?D&9axivg}Fwmq!zZXbZNN z5XwR6?K+-MK(fQPyNV>zIPPk}N{XXgNR~B^58p4KRFrNTXDXKg&Y)aH)rk%)g>ZSh zI7#0<5`wQ$5Wu0E=uSl^6jd2Xn~vJ4>2xP18(NfZr;Iad>SQ8FElQ?ib=o@RDl5Zb9j4RMNkwak zGBqP~ZqSKMI~q5Gb8e#4>9%H8sfx?F#Y!scChX=hr4g2YE2R{cFM5}eIGNq8-KL8y z^_2inecK&6vG6IAxo3B9cWV@};hjLS!f)=VH9utpIbTt@85Ba|#1yCNEVtuj^!FQxacVVh#NKaQjczeTj!WTHaq`guoFrzH~2CKIiMW%fjzH%s<;0#p9? zVA3&O!W&}1Crm)G+ng<+b!!)+eo>cM*sul3%_ABJ80E`^B8) zH`eQR6MKa$#n+K8Vb>zsCy}PG1se?qcKV@=(>|q2AeKyw5=6DHbb4EoXSF24kD(%A*QJ3Vux7mO!!mpqNfU|`JMA(VPNy=0u!ireB8YC@ zMz9O<&$n z6HNj&+lPvDCQu0Tk`hLBQx=9T(aTz*eyWC3H9gYY+rYI2Y)HE5{!K|I_Wx2;mH8^A=p)05(2-UBtuype-0is;s61%$n3tA}GTixl=gT-1LXU4Ec6Ra8< z=YmX|5~Em6O038+@_Z9njYS!1NICe7xR4OV$R@10Zw00BxRUNxmGstb=&I5pS|5#u zXtpgc);0C^IpWfU!Yjs~_+lj-f8^*C*O!65T%)T#%qK-VETpb8V-Z)XdJ-PJQBNrp zuATc-?TF^6YA3`n8_(-?v4rVlf@L+EHxQs|HlmmcbGSl*aOqy>6s0UN`WVVmIIOM* zmAd*jHIHH{>{P9=3;Nn{42L;Vu~+L-UlSjMWxF`TRGRW3gni+VFWn)V*4i4SHL)Y3 zbRWZ*#XUzCcVN7pyycclnm0=-!YWC`iAsC`hSQykbcvBntbRlZ3Yd6R#xGANJzr@= zDVDN}Q`?=_2CWHOieUtwwWbnBk+}dH2b996wxzg4OQB{RwdUkxVmphozYOUT`cv&O zOjFna#|zF^c^5EJ4%lW@0%Zv{id~Xzx+JRS$-pai=oo)uosWySLj$UQF$0j-m4vr> z<>7T0}EtP#t{vrdd3VWm`EdSV%KOm)j%S+ zUCqgK$8{|w7e0(?rZTl{R@Z4MM8pPl773jFh@frzuy5AzyObcA3Pv#;fGx|omPHI< zrYz|D5Qr|1{>!?Iod#2JdJHQlXIy{czaLsCwsHO+*oQZ#D-um>Q2p;>Zn)d7BA3pxMY!NXENEt57X6 zkSyr>3Q~os7)D0B`$*7K_1>e=GCN3`$3RYeN0WLt*_V8PaMDZieUZXWWE3A56m8;O z3rTq+^)k|rOBwD%%7izf>?%y-y%Fq$6Gm#P%1XYUgb>4qnyU6kv%BsG2v#mCT#|P4 zXTdc$t61g-HMj^;p@uLEIMs0Yil~!^H1wu9%1zMi@UAgquJW+XK@G58_(Q3S0J->& z5Q3;OHNYwWyOuttWl^53hN?8iW#|5hIl*kZp|u0YtDA_3s|($KN|j6X=dmzJ6uWSr z(Ngu%lfc6&iID734W-umW6^eVYZCyEsiG<8Bc0wZ)ZK zgsgnb?9Mc-oJ8R>mr|cTa_FqJ)Nh&4YB-BjvI}?KG{&cQmx~>IpVRhnf-MV%JSELefU_aDt9d%8trjw7y!0?KX~ z#}MX#os$Kc)j}2!u4*CTgsbiZq`Y=ZS)>J?JF2Rtr5ZJ})3?-+Jnq8{ddMul+TyH> zmLkha zoHB=$i8-d~_g#|0ruJlyj$U*|n(kAFoog#C+gbrv|g6`rN_rRGv0 z@G!p5ivIb=lw@Zs$y86O0Bl*_qGeHm2AxVB8(76gxfy@9mzBK^i4)3Jldxn$>@zh= z6*ac5r~K3F5^6O8^DZ1DkpTb~%FI5vCxcW^}xjF-w{oS7cElL-r3iro>~kr!sVNtHy+txOQRFk5wDRJ}?#x;>xb zw1iOGl~AfF+9%{tkjKOxvVm0dTCR?rS6XIlg&> zoAjuXObwUWNVariS~}&a8<->QX-mMe5>N#e^#!wKoYFEXA6>wXP!}Q((XsvxDDnE& zYyyWCE@8*QP#OfMoI*9N%Mz`CZ?*`$>vcI*ERFyRgB%1%SCz4UeTEpe<_~F!)F5I> zWNGV0Q(MP#@*>XFxBx6smYb0zG5m@%2Hi5Qg2a9WeVUa9T|Zd_YPhCUB8NGC6{l+vPD@_v+wF zz;)dGBLMFusf5=ey6_ClJ0511wu!-@X(_ogjjwy-RONWNBOAkmItww!94rf*LKixINTUu?{m?Ih;zrPV zw^Z8Wy?F19wehghvxub3kW^vXs(wUEJcz0_y150$@_$TcF^H;%QFRzksphW1Rh)@= z8l!$fY30%ZOhkj)YWb9wS@?<>O6MxXk)UfT-6^}#d`5{a_Uz_@YfJv9mi+Po6k|%x zyD_+i10Ui>*CZ_cF`dnhBg$sHhEOjfqsM>W8BxfBRiZEGjIKQF68Z2=+{Ps@NoV8z z66K}5q^*aY9eleIuH`#aOm!V!(Pi5C`^W@w?oGcT$|d@m&T0GM=hSPAcHEeg9`2vi z`3%w<+UAXWv;F!2m*Q!SKFF9h*+VGhXaoH>R@CuTC7K$i1^*U7r~M{zJU(jsVbqCe zZqFcf!s|1=oG4m_F1w+S5DHx}$G-1aq6n`)B}xIegLGm{5ktg!d(J`>%OMdW#$s`i zDkuM;ES+%9(+U0kjb_n)WC`lSXG^Y>W_Tp&Q)XDu*a(U_*g(N9SJWQjn1RilbM-hm{=$~9J11@5mk z?wsn0HPCJQ12SCqztf;1c3?JPv%R^a=!k{1fH_rIsnSW_+r-iyqcP`XRi$QpPK*H; zXh5-$He2ysxQM8xMH+HW)lZ>T)_i)Y#(kSLaAp~+TZ0)bhI<=A<{^zeCo2fCr{G=0 zH*K+kPteGw`#p=)4jF@099+QgCu#V@5xiZ-?gd6huX<_ zM1@V9c4WHc*Hbuso&*)+n27nwfGBL*wJVaHVa_EO<#UT==Pal#dw1{NyGNj%Z=ww( z*!~^E0&0T^C0qs}n4#j01ku;IbO?Np11@{>jt^_*5~NPls%Q_XbOr27PBvgnhZ>{U zX>K(S;X@0}iP7#MKLj)6WtKoI5Gi|&YUeWJ}(R$Y?cu# z<6?;9N52@Xt#l>)l|k@qmGyKX#q3}pWcZ%KK5o#UR;M3b5`@J74AQE+GF+6A9@9w1ltv+u?~(Y14?{hE*ifo`U(iruktjp+ z(dk38Lcc_qszr)m5Cw}xcsf)n2EVTmjxbxp2T3R_#IOzbYr3HQ8$pC7Kj*~yfAVm# zuHT;bg)J#ZR7ve5y2_*ct*qZH~&a$*wv8px9<>=G752gGs`H#cpRQH6>A;4 z7kSRa7puwr@aZJ04g5nB*q9+3brkNQjMCIdnD&oM(7_DS=v#h5aME4x-{nQsWc4mT zI|49eKrd)8v5lTtC()n?N&8p)i>4|wdK*MLqNaCQ!_dzOXOP}TV%WXSFLkjqT6GG| zZq=_G5uB=&S2bKlt4>MRPMjO!-s{(dq*`@`9jCwyJN}&(EW?gdSe6|hg|F2O)+jWX zQrR&YOoVpDc8qR-y|7U%X;sh-igv$%VA9KfBA(s>Rq*Li=>jf7%7hDOtj%(o!p_om zCqNwW%{8@@au()oXjVbk);*+^Ap+xF8KM@9*vQeTat&cYazr>mmdNnf4FulNb!bAd zCy_{L#TxTN3zFMhog-vNjWxbi7PMI0&nz#;X41AF)?QuMO!90J*UM@P-56ag!D-%> z`lJwJ<}6IH2bL{ys0Z3OH`IK(g=`G6mb4U_glVRUd)5))cJR4Ze9~jI-s^M|LCLI% zvn|}AgmeYggfOMIAWfpB8O@|vFCvboJ4I2cg>tPphT|_?S~v9uehY>1o-2V2Und)= z;I91+uQrX_G6SDar4ns6 ztz0ZoFcnVZHDzPmLlUNqP6VX&lQD#cjaF(l{#6#fF#y>*C`=$~8$t7tt1C=y#DX@4 zhz#g@vxHrg_;wZ6^EF3?*=n{};X=-9ElgvfKPjgGxDEhu<@c&%_lU{)D2(P_untj2`@wbd=1tu@b?;r>nOkS7H`3d`8m3PbGxxs=?#(f`OKBez+&@im zKO?x0rnpZE?%$@k&j{|{#oQj{`(45PMvD8q;QlzpeOYi{N^xHk+?9XmwZZwm{@kRl z-jd>;Be?5g?z>6mg5X|};%*V#52m=&g8T6l_x*zVbc*{?!F?gceL`@zZSv)1nU6j% zS>9HPdxqe?FU8#`xZg{0dxE=qv&{Dq!Og|oNz&xU1^4_E_w#~#X^Q)0!QGkSJ|(y# zDekj^dri!J4@vbs!EL9w|3`4|PjQ#5PwM%Bn0o^u4+-v%Q{3%>JAaGUB&Qt{+@Tcr zfZ)C{#qA32O)2i*2=4RSWxmI4NR}wSLvptWZfU3F=HHr3`~Onh2L<=HG50?m4VXU{ z+)Y<_Wad6AxV04bSAx6fN}0BKQBtaMaEeRkTx0G>VlD@W-YU3{q_}h@G*0`;6qn9t z#@yrf`|>g}owSI#D^pxLsStDDnBvk2f|z@Hic4|*F}I!KQfOt&?ZsSPaiAE=m>ZXOUP|STQ#ibybn7aV(Z|DQFRJ4H{bKjTZ(%NFoy)VV3b-I}Q z*%X&nOJeTlVlGcJXbB|dK9}OsWH09aBE_ZIfamt6{^ZJez2N9}r#nMag4Q~k8id47 zw?xEX5%yaqn|wo92ZZpYU_Mr8$~B^_4HjTswSv#G+%Qx9#}UF0mULQEmBtOYe;NyQ z<(Xh;bc7DzV?Kth2OMj}XFh47@ig8Jj>r1ojnkvNRDl=D;7pwt9P5^RYcs(yI~kg% zA>StW^Q!-ZNA(%}cgM`_Gh=tm1Pd@9a}q$_>Ae3nb#L{Xcx`PpkuX^7<~z9z+#e)x z=Xc7*_W0CH^~WHZV2g(Njod!Et3}E9lLVF!toi~21}pYW;}U^JPKbm89an5s3iZpYio*hIDs4Td_({#(yd*)7iOwc zq|ep;UkX-V4iJCsY7CO&T&RTW6ZM%dHx5>?pFze$5@fJus?(JBNm=aRq^+?L<`S5c z-@DpgK_CdoUTepM0jDe1&UwQlt_^$%~ zLh?0zl2eZ}$~EYvSwb{t8Y~X~cJGAp^aC90RciRgQFFZGrCP$YJkeM-_nY4dB|NQ< zgk1^^@WL(NpDdUAGZg8Bsb;O21~Yzmymn~k5QC&vit5(&a(U768G*%wxwR_jF)RQe4A}u`G)bb>zDKB zp|NK&%{J`*q%OKuq)ov*_D_1b1_$YNzIpn)jK1_v@^gNtJ6chKQ9 z>QRt1x7TI8m$J@ni?Yta--@zE!LA;lV0l26W8;Z+NCI}66J7dn4hEtIoSss?TN{h? zegSG??rDPyb~f_6kR@EQ&|Y(*V8c7TPv@Q|{4g(yYNE~W#UYuMkP7bb0 zD9*(L8s}uI2kQ&_3Un2%RWg81 zVcxl6mp2Mo$_>YPCkzz+FVb*@?wPeh%M%k7eEt!GS6sZP4f}GEohFKtpIf3Jzb(on zQ4VjBQGuw*MRKp1RqkeYii0)Sn&yYUg86$L84YvotPo+}9a`kE(a+%6u)ikLI15&T zP4jvlJC@@I$O)(MK@n%F*VAw?q#41`K8KL=2!y+qB8zwnbX^lcI0q}`Lp<{I=_0$bd?%b<&rq+rq3#O2k1d7}+O)H)&s8DW0-E0{m* z$Vm65jCAq!R-AO9n=jCPSHZ$z&ji5RZ2;WCi3w7+2Pwt zNj}UaP|N%l61%5NjHLjo=<{Ggb4(bV2NR3Zkj(qz%yPpnvs@}Olx4%fW#K*)U3}if zh_akZBr#aBlg1jnl;f9xzhz*2Tuz58#4R0#N?FzCjbPO#PHvT&TH3~e#Xw*VYPQzw zcJdr46K1|l(Sv1I2sHyOkz!75#*=)p3t)#z1ZblJcqqKPlL7CcVj z1ZKC=?O{d8Wp`o*H#l*NOU6SC9o!6)A?x!7&bo~#hkToEjpMQ{@V|ov`@zZ)3xMkf z1{_D+L?eN?FeU^Gw-7VJ9Ne%GoR*(xm&;u1p`=SBF<7#_+|AKTIjV1x`Qm|P#(d%c zV`HT!Pi7S6F{By6&~CiUd0^Eh$1fwV>jus%)o;l5&RryKJfsHdJTzK=i45<8!%7=m zkm`11mfU%USvoJwWr;#<9=K3c7o>K!U{;z`e;JuUGO!9p9 z4BPgqK5qo8?8cO%+~5Suxsj2N$gf9DV{IzCHZMmSgVRj) zCK`=aSgc@$F~Cq^R-5SFHF1y&{O@4F-q7`-#Alm{DgSOBCX102rb|O7`mb0vnv*A4 z!Ag>?n_Gvu57Xi6Qxasb&dh-B0hO&HT%tqc;A~d)c_Uc0O<8y@(NklQMYs!2-Ptzl zay)#aezTb$mTU3V(|n_R2+DGv3op@d@lMR(1}9=g7s+x+hUOb5gC@^3v!P;u*ZIH56Xiuk3iQWBj~&mMYLh1`nh^}qN*O98@iLHe9#0~B za)`JvCcveSq@lKVj^{{(da>a=Ka45!#cVX=Z0yEy@jCy@a7r)S{%6T`gnz`%0{p^Oi2R0ruLN)K z8FjD=K>*l<2v^3a2x~I(#nBk_r*!GDTk{SxTc+s2GJIJid^N|*;{eAN;Iz( zQoC{4B{yo|H%8e(fBp)?NNV`|3A1N;77LnQG52>oMi^uC>2mm%{A~+{Sd=6Mi}>5- z@F(d72;mP=MF8GwqjkDyW0RPnhEC3YAvk$wH2fr>DOT-IK z5E(>dVEeN?5w_!Doj6&Bum~${W^m$eK2Vdx!c#)_%ScV0#axAa({A5G$B5AOuMkCn*RHsj%mRwwz4iw7EJIA>*ZBb(nd~ zPiN~d@J#8~U4oWBSgiHRM#gUnGtPW1cvG0Qdn3m{>CFA7Y@*D`3&46dc59>Y&XsdW zGlHT0(aX8$WvEfL8;q1#S|4j;$0xLsMM+YyXk@CKi(UYLlBrlaSj3SY_~T7HcuRT}nY>*19XQg#V>N!^F5V&>uu#g?{a*@J)0!|qkW&IA7l9z# zq^+|>h0ASZ&AiPL=Cn-FgJr{ReUe(cdlh&mr<)4OI8noW0FlTGV*+OCo{6M|bkfA{ zJk51NbE3;|k!L8F57&ozSZ@WVj8Jq8){O9ioBX+U9>Lr((?di^quGdqZaC5=47a&` zrurPhNvhxHm=gS=Xq7Nz1-~fNB#bw~uNUbTMU+%u!e1b~>!cq7OpvQQ^d`DR53CB6Y5+YDIL3ODk3=x6$rmM>xVWlUW z=m;l!!YW5t?Fpwi!l|Bcnj@U)31>ON*`9EYBji1y;0Wgtfi`rj>mA`jPuSoH8;L-> zw$+Or;q64Ah5hQKjc6!1UjA< zLyqvUC;WvYeAE;E(h>g36F%VxpYnuHJHls)KvT!+|8RuA_JqeA;c-uR!V$iR$A=Eg zpU3}P+P`(2zw@tt#Sy;d314@Fr##^w9pRgv@GVDp#uJ`(gztL7_Z;B|M4;J4^@on| zBTsnV5q|0k|I-ovmnXd72rqiVOOEieC;Y+@{@oK^afDYr;WbD24H0M*s{Ymy{@@)E z;VAq?9f>E*cZ7wWaGWD7@r0$0Fysl#9bu&>oahKAd%`M5SnUa?IKru(aGE2W=?P~! z!r7j1jw9qfq2LJTdBS=}xX=?eIKoCxxR?nXkQp3<1)e%ZR`!C|b(^@|88Ma=lnDlY zamXci;MdJ?r;NvK&>$YvBjZ5_wD6#lSa{F@B|PZd4jyz+1`j%!f(IQ1!Gq2~;6Vo# z@SxKLcu+__9u%pL2X)kVQ1^@n^^SN@7l;RSe0bd99=E#(^)Vn)&w>Z_1$a;+!GjDB z52|-OC}JHC3LwXWqLA^R09!mL-u1efUN1PR(IPd3(Wl`dHW#V-x<)HM°>SF7Xr z@9bOo_esaio42Pr0m7c@B>z9f|5y0`D*wNKF>w#z@4Kos{7-rFqc@g}hwTOPD|O6B zItZo=V_WHH<4mv&-!a3Dxb-r=nsohEx>V@i8D#&TXU2kKOEtRe9bUyhpmr%7=uo59 zEYg?HK;+kg<;`{lH`U{l3=BVta7u_CEbQXaHh04bel2R_fH!;+zITs)*QYyOB1}{! zXM&UX7vE9erY{bHSRe;%CRn<=w2!W?Z<7y$S2;@x*gYP;Rvi&{SR5FIQ!zbr7h-rP z>e1gr?uy^|lS3%Nqer0#OT+7{>BBPJBEo$iBkFRxgd9;H2RfXB7AFC?sMoHIl1El2 z4Sb1SxWUBU767ksTzIJZ+2UUTKq!B9l&)OwSnbe?r)Pq1*RTgR6#ux&b1{U(8}m}oY; zjV3;Z#9kb4eIoZ|m~EFjqlls!tydbf{dDD55zriME0K#oQ~eGBECmsV?`xGhzNkbO zG5mmGNfnieY2&R{4>?X)PyH1%o;_5siI&R~Um vwbblke;%^ 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 diff --git a/.doctrees/transactron.lib.doctree b/.doctrees/transactron.lib.doctree index cb3b92ad06a00e9100572379a461d51b4efd89ad..ac7f091d7e0a789050ae401e3bda016fdca3a610 100644 GIT binary patch delta 120285 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

`=HZ%J+S0cQK`uI(!2Bfez0rr4FA^ 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 XG$zFY{pr7G5H$uWjjV3OFk*iLpE!!y delta 74037 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 TcCuL6u2m@33&J9QV9xv(OYBt@ literal 265437 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

$#zOE+B44*HuHj6i~Kmh%`ds0pfPH(`kqnpr1uU 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

8aiUV7fkaei0aa(Ha($)7 z>r#1j<$aa8o!Rmj#bC^tB`*^^lnp=y8XMmijH4AfRCZ=nTQr(a-b~}3zx3^d)XGjH zyV=9W4Bjoe+dacUT5bW+aQ$jAAFAA6`MSS>uDkWmV2=mb<01CAeg-{mVvi#zw#Z-2 z9=rj6&f0TeE=jJ)a)K?7=1XGA78o*uw?^OW*`S4iRALmK5`N(*cDbtpb8oLjrLJ ztIS*3ci<4;yqWffIB)vr7**nTllju<_glK4xO6^a?^&9SPyV zYp7C(u?N>=GnjTOu!pUpEP+!+$MRHkyj&_*Jf}K}q^f$X60&+5SXItok3Wz}?EjfP zEJ0{tJcwDh&>)JG1 z?_!T*H_+pF_ITwB=<#ay_|H@6@icqfc{)Ab#vYr`pvTMDE@h9;y^tRFu}Aeq^r*AP6X(<8SL{){kRDgC#{n;<$8z>~U=uwa zVvl!irpNo)#Fp)kv%T<>2Vo*4DF!DbJ*iO>~R-+T-KmRkv;Cdf*$v>$G*Ghv6wx6 z%N|d%$C9h)aWH#)f;~RV9w%K(kM->F>Feq7IrjL%E9r4Rdt7xBJ+5buhhIaF$JpcK z*VE%v_TZ+|u3PEtP3&P41(v``6t-s{3?l^0QWv`2?M+cw_b|M&!RJ{fiFL4|1vMtNUi@TpV^ev(IjD=678A>>@0F>aov` zM&?KM`0QLCzIVxI8=QF9fX`wJxZ~Yt-g$01b6+6$FVoWHqqHP zI)UW#l6}innufB84b4@=7dFjT>BIym`bDIpi8M_k$F?e(;%3_U4T+ N_lNWph%Phy{{eowXC?pu diff --git a/_sources/auto_graph.rst.txt b/_sources/auto_graph.rst.txt index 8914fae17..3e7ddc44c 100644 --- a/_sources/auto_graph.rst.txt +++ b/_sources/auto_graph.rst.txt @@ -4,15 +4,15 @@ subgraph TransactionModule["TransactionModule"] subgraph CoreTestElaboratable["elaboratable CoreTestElaboratable"] subgraph Core["core Core"] - Core_InitFreeRFFifo["InitFreeRFFifo"] Core_DiscardBranchVerify["DiscardBranchVerify"] + Core_InitFreeRFFifo["InitFreeRFFifo"] subgraph WishboneMaster["wb_master_instr WishboneMaster"] - WishboneMaster_WishboneMaster["WishboneMaster"] WishboneMaster_request["request"] + WishboneMaster_WishboneMaster["WishboneMaster"] WishboneMaster_result["result"] subgraph Forwarder["result Forwarder"] - Forwarder_read["read"] Forwarder_write["write"] + Forwarder_read["read"] end end subgraph WishboneMaster1["wb_master_data WishboneMaster"] @@ -20,13 +20,13 @@ WishboneMaster1_request["request"] WishboneMaster1_WishboneMaster["WishboneMaster"] subgraph Forwarder1["result Forwarder"] - Forwarder1_read["read"] Forwarder1_write["write"] + Forwarder1_read["read"] end end subgraph WishboneMasterAdapter["bus_master_instr_adapter WishboneMasterAdapter"] - WishboneMasterAdapter_request_read["request_read"] WishboneMasterAdapter_get_read_response["get_read_response"] + WishboneMasterAdapter_request_read["request_read"] subgraph Serializer["bus_serializer Serializer"] Serializer_Serializer["Serializer"] Serializer_Serializer1["Serializer"] @@ -37,9 +37,9 @@ end end subgraph WishboneMasterAdapter1["bus_master_data_adapter WishboneMasterAdapter"] + WishboneMasterAdapter1_get_write_response["get_write_response"] WishboneMasterAdapter1_request_read["request_read"] WishboneMasterAdapter1_get_read_response["get_read_response"] - WishboneMasterAdapter1_get_write_response["get_write_response"] WishboneMasterAdapter1_request_write["request_write"] subgraph Serializer1["bus_serializer Serializer"] Serializer1_Serializer["Serializer"] @@ -57,8 +57,8 @@ CoreInstructionCounter_increment["increment"] end subgraph FIFO["fifo_fetch FIFO"] - FIFO_write["write"] FIFO_read["read"] + FIFO_write["write"] end subgraph MethodMap["core_counter_increment_discard_map MethodMap"] MethodMap_method["method"] @@ -72,19 +72,19 @@ end subgraph SimpleCommonBusCacheRefiller["icache_refiller SimpleCommonBusCacheRefiller"] SimpleCommonBusCacheRefiller_start_refill["start_refill"] - SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller["SimpleCommonBusCacheRefiller"] SimpleCommonBusCacheRefiller_accept_refill["accept_refill"] + SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller["SimpleCommonBusCacheRefiller"] subgraph Forwarder2["address_fwd Forwarder"] Forwarder2_read["read"] Forwarder2_write["write"] end end subgraph ICache["icache ICache"] - ICache_accept_res["accept_res"] ICache_ICache["ICache"] - ICache_ICache1["ICache"] ICache_issue_req["issue_req"] + ICache_ICache1["ICache"] ICache_ICache2["ICache"] + ICache_accept_res["accept_res"] ICache_ICache3["ICache"] subgraph HwCounter["perf_loads HwCounter"] HwCounter__incr["_incr"] @@ -108,8 +108,8 @@ HwExpHistogram__add["_add"] end subgraph FIFO1["fifo FIFO"] - FIFO1_write["write"] FIFO1_read["read"] + FIFO1_write["write"] end end subgraph FIFO2["req_fifo FIFO"] @@ -125,24 +125,24 @@ FRAT_rename["rename"] end subgraph RRAT["RRAT RRAT"] - RRAT_peek["peek"] RRAT_commit["commit"] + RRAT_peek["peek"] end subgraph RegisterFile["RF RegisterFile"] RegisterFile_read2["read2"] - RegisterFile_write["write"] - RegisterFile_read1["read1"] RegisterFile_free["free"] + RegisterFile_read1["read1"] + RegisterFile_write["write"] end subgraph ReorderBuffer["ROB ReorderBuffer"] - ReorderBuffer_peek["peek"] + ReorderBuffer_mark_done["mark_done"] ReorderBuffer_retire["retire"] + ReorderBuffer_peek["peek"] ReorderBuffer_get_indices["get_indices"] ReorderBuffer_put["put"] - ReorderBuffer_mark_done["mark_done"] subgraph LatencyMeasurer1["perf_rob_wait_time LatencyMeasurer"] - LatencyMeasurer1__stop["_stop"] LatencyMeasurer1__start["_start"] + LatencyMeasurer1__stop["_stop"] subgraph HwExpHistogram1["histogram HwExpHistogram"] HwExpHistogram1__add["_add"] end @@ -154,9 +154,9 @@ end subgraph Fetch["fetch Fetch"] Fetch_Fetch["Fetch"] + Fetch_Fetch1["Fetch"] Fetch_resume["resume"] Fetch_stall_exception["stall_exception"] - Fetch_Fetch1["Fetch"] subgraph BasicFifo3["fetch_target_queue BasicFifo"] BasicFifo3_read["read"] BasicFifo3_write["write"] @@ -164,8 +164,8 @@ end subgraph ExceptionCauseRegister["exception_cause_register ExceptionCauseRegister"] ExceptionCauseRegister_report["report"] - ExceptionCauseRegister_get["get"] ExceptionCauseRegister_clear["clear"] + ExceptionCauseRegister_get["get"] subgraph BasicFifo4["fu_report_fifo BasicFifo"] BasicFifo4_read["read"] BasicFifo4_write["write"] @@ -197,24 +197,24 @@ MethodProduct1_method["method"] end subgraph RSFuncBlock["rs_block_0 RSFuncBlock"] + RSFuncBlock_insert["insert"] RSFuncBlock_select["select"] RSFuncBlock_update["update"] - RSFuncBlock_insert["insert"] RSFuncBlock_get_result["get_result"] subgraph RS["rs RS"] - RS_take["take"] RS_RS["RS"] RS_RS1["RS"] RS_select["select"] RS_RS2["RS"] + RS_update["update"] RS_RS3["RS"] RS_RS4["RS"] RS_insert["insert"] - RS_update["update"] + RS_take["take"] end subgraph AluFuncUnit["func_unit_0 AluFuncUnit"] - AluFuncUnit_accept["accept"] AluFuncUnit_issue["issue"] + AluFuncUnit_accept["accept"] subgraph FIFO4["fifo FIFO"] FIFO4_write["write"] FIFO4_read["read"] @@ -224,22 +224,22 @@ WakeupSelect_WakeupSelect["WakeupSelect"] end subgraph ShiftFuncUnit["func_unit_1 ShiftFuncUnit"] - ShiftFuncUnit_issue["issue"] ShiftFuncUnit_accept["accept"] + ShiftFuncUnit_issue["issue"] subgraph FIFO5["fifo FIFO"] - FIFO5_write["write"] FIFO5_read["read"] + FIFO5_write["write"] end end subgraph WakeupSelect1["wakeup_select_1 WakeupSelect"] WakeupSelect1_WakeupSelect["WakeupSelect"] end subgraph JumpBranchFuncUnit["func_unit_2 JumpBranchFuncUnit"] - JumpBranchFuncUnit_accept["accept"] JumpBranchFuncUnit_issue["issue"] + JumpBranchFuncUnit_accept["accept"] subgraph FIFO6["fifo_branch_resolved FIFO"] - FIFO6_write["write"] FIFO6_read["read"] + FIFO6_write["write"] end subgraph HwCounter5["perf_jumps HwCounter"] HwCounter5__incr["_incr"] @@ -259,11 +259,11 @@ WakeupSelect2_WakeupSelect["WakeupSelect"] end subgraph ExceptionFuncUnit["func_unit_3 ExceptionFuncUnit"] - ExceptionFuncUnit_accept["accept"] ExceptionFuncUnit_issue["issue"] + ExceptionFuncUnit_accept["accept"] subgraph FIFO8["fifo FIFO"] - FIFO8_read["read"] FIFO8_write["write"] + FIFO8_read["read"] end end subgraph WakeupSelect3["wakeup_select_3 WakeupSelect"] @@ -271,11 +271,11 @@ end subgraph PrivilegedFuncUnit["func_unit_4 PrivilegedFuncUnit"] PrivilegedFuncUnit_issue["issue"] - PrivilegedFuncUnit_precommit["precommit"] PrivilegedFuncUnit_accept["accept"] + PrivilegedFuncUnit_precommit["precommit"] subgraph BasicFifo5["fetch_resume_fifo BasicFifo"] - BasicFifo5_read["read"] BasicFifo5_write["write"] + BasicFifo5_read["read"] end end subgraph WakeupSelect4["wakeup_select_4 WakeupSelect"] @@ -307,42 +307,42 @@ end end subgraph LSUDummy["rs_block_1 LSUDummy"] + LSUDummy_update["update"] + LSUDummy_select["select"] LSUDummy_LSUDummy["LSUDummy"] LSUDummy_precommit["precommit"] LSUDummy_get_result["get_result"] LSUDummy_LSUDummy1["LSUDummy"] LSUDummy_LSUDummy2["LSUDummy"] - LSUDummy_select["select"] LSUDummy_insert["insert"] - LSUDummy_update["update"] subgraph Forwarder6["forwarder Forwarder"] Forwarder6_write["write"] Forwarder6_read["read"] end subgraph LSURequester["requester LSURequester"] - LSURequester_accept["accept"] - LSURequester_accept_cond0["accept_cond0"] + LSURequester_issue_cond0["issue_cond0"] LSURequester_issue_cond1["issue_cond1"] + LSURequester_issue_cond2["issue_cond2"] LSURequester_issue["issue"] - LSURequester_issue_cond0["issue_cond0"] + LSURequester_accept["accept"] LSURequester_accept_cond1["accept_cond1"] - LSURequester_issue_cond2["issue_cond2"] + LSURequester_accept_cond0["accept_cond0"] end end subgraph CSRUnit["rs_block_2 CSRUnit"] - CSRUnit_precommit["precommit"] - CSRUnit_get_result["get_result"] - CSRUnit_fetch_resume["fetch_resume"] CSRUnit_insert["insert"] - CSRUnit_CSRUnit["CSRUnit"] + CSRUnit_fetch_resume["fetch_resume"] CSRUnit_select["select"] CSRUnit_update["update"] + CSRUnit_CSRUnit["CSRUnit"] + CSRUnit_get_result["get_result"] + CSRUnit_precommit["precommit"] end subgraph MethodTryProduct["InstructionPrecommitKey_unifier MethodTryProduct"] + MethodTryProduct_method["method"] MethodTryProduct_MethodTryProduct["MethodTryProduct"] MethodTryProduct_MethodTryProduct1["MethodTryProduct"] MethodTryProduct_MethodTryProduct2["MethodTryProduct"] - MethodTryProduct_method["method"] end subgraph Collector2["FetchResumeKey_unifier Collector"] Collector2_method["method"] @@ -364,28 +364,28 @@ 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"] + CSRRegister__fu_read["_fu_read"] end subgraph CSRRegister1["mtvec CSRRegister"] + CSRRegister1__fu_read["_fu_read"] CSRRegister1__fu_write["_fu_write"] CSRRegister1_read["read"] - CSRRegister1__fu_read["_fu_read"] end subgraph CSRRegister2["mepc CSRRegister"] - CSRRegister2_read["read"] + CSRRegister2__fu_read["_fu_read"] CSRRegister2__fu_write["_fu_write"] CSRRegister2_write["write"] - CSRRegister2__fu_read["_fu_read"] + CSRRegister2_read["read"] end end subgraph DoubleCounterCSR["csr_cycle DoubleCounterCSR"] @@ -396,8 +396,8 @@ CSRRegister3__fu_read["_fu_read"] end subgraph CSRRegister4["register_high CSRRegister"] - CSRRegister4_read["read"] CSRRegister4__fu_read["_fu_read"] + CSRRegister4_read["read"] CSRRegister4_write["write"] end end @@ -405,13 +405,13 @@ DoubleCounterCSR1_increment["increment"] subgraph CSRRegister5["register_low CSRRegister"] CSRRegister5_write["write"] - CSRRegister5_read["read"] CSRRegister5__fu_read["_fu_read"] + CSRRegister5_read["read"] end subgraph CSRRegister6["register_high CSRRegister"] CSRRegister6_write["write"] - CSRRegister6__fu_read["_fu_read"] CSRRegister6_read["read"] + CSRRegister6__fu_read["_fu_read"] end end end @@ -427,8 +427,8 @@ end subgraph Scheduler["scheduler Scheduler"] subgraph FIFO10["alloc_rename_buf FIFO"] - FIFO10_write["write"] FIFO10_read["read"] + FIFO10_write["write"] end subgraph RegAllocation["reg_alloc RegAllocation"] RegAllocation_RegAllocation["RegAllocation"] @@ -470,19 +470,19 @@ end subgraph Retirement["retirement Retirement"] Retirement_Retirement["Retirement"] - Retirement_core_state["core_state"] Retirement_Retirement1["Retirement"] - Retirement_Retirement2["Retirement"] Retirement_Retirement_cond1["Retirement_cond1"] + Retirement_Retirement_cond0["Retirement_cond0"] + Retirement_core_state["core_state"] + Retirement_Retirement2["Retirement"] Retirement_Retirement3["Retirement"] Retirement_Retirement4["Retirement"] - Retirement_Retirement_cond0["Retirement_cond0"] subgraph DoubleCounterCSR2["instret_csr DoubleCounterCSR"] DoubleCounterCSR2_increment["increment"] subgraph CSRRegister7["register_low CSRRegister"] - CSRRegister7__fu_read["_fu_read"] - CSRRegister7_write["write"] CSRRegister7_read["read"] + CSRRegister7_write["write"] + CSRRegister7__fu_read["_fu_read"] end subgraph CSRRegister8["register_high CSRRegister"] CSRRegister8_read["read"] @@ -507,41 +507,41 @@ end end subgraph TransactionManager["transactionManager TransactionManager"] - TransactionManager_issue_cond2_LSUDummy["issue_cond2_LSUDummy"] - TransactionManager_Retirement_Retirement_cond0["Retirement_Retirement_cond0"] - TransactionManager_issue_cond0_LSUDummy["issue_cond0_LSUDummy"] TransactionManager_LSUDummy_accept_cond0["LSUDummy_accept_cond0"] - TransactionManager_LSUDummy_issue_cond1["LSUDummy_issue_cond1"] - TransactionManager_Retirement_Retirement_cond1["Retirement_Retirement_cond1"] + TransactionManager_Retirement_cond0_Retirement["Retirement_cond0_Retirement"] TransactionManager_LSUDummy_accept_cond1["LSUDummy_accept_cond1"] + TransactionManager_issue_cond1_LSUDummy["issue_cond1_LSUDummy"] + TransactionManager_Retirement_cond1_Retirement["Retirement_cond1_Retirement"] + TransactionManager_LSUDummy_issue_cond0["LSUDummy_issue_cond0"] + TransactionManager_issue_cond2_LSUDummy["issue_cond2_LSUDummy"] end end Core_InitFreeRFFifo --> BasicFifo2_write - Retirement_Retirement3 --> BasicFifo2_write - TransactionManager_Retirement_Retirement_cond0 --> BasicFifo2_write - TransactionManager_Retirement_Retirement_cond1 --> BasicFifo2_write + Retirement_Retirement2 --> BasicFifo2_write + TransactionManager_Retirement_cond1_Retirement --> BasicFifo2_write + TransactionManager_Retirement_cond0_Retirement --> BasicFifo2_write FIFO6_read --> Core_DiscardBranchVerify WishboneMaster_WishboneMaster --> Forwarder_write WishboneMaster1_WishboneMaster --> Forwarder1_write Forwarder2_read --> SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> WishboneMasterAdapter_request_read - SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> Serializer_Serializer1 + SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> Serializer_Serializer SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> BasicFifo_write SimpleCommonBusCacheRefiller_SimpleCommonBusCacheRefiller --> WishboneMaster_request - ICache_ICache2 <--> HwCounter4__incr - ICache_ICache <--> HwCounter3__incr - ICache_ICache <--> HwCounter2__incr - ICache_ICache <--> HwCounter1__incr - ICache_ICache --> Forwarder3_write - ICache_ICache3 --> SimpleCommonBusCacheRefiller_start_refill - ICache_ICache3 --> Forwarder2_write - ICache_ICache1 --> Forwarder2_write - SimpleCommonBusCacheRefiller_accept_refill --> ICache_ICache1 - WishboneMasterAdapter_get_read_response --> ICache_ICache1 - Serializer_Serializer --> ICache_ICache1 - BasicFifo_read --> ICache_ICache1 - WishboneMaster_result --> ICache_ICache1 - Forwarder_read --> ICache_ICache1 + ICache_ICache3 <--> HwCounter4__incr + ICache_ICache1 <--> HwCounter3__incr + ICache_ICache1 <--> HwCounter2__incr + ICache_ICache1 <--> HwCounter1__incr + ICache_ICache1 --> Forwarder3_write + ICache_ICache --> SimpleCommonBusCacheRefiller_start_refill + ICache_ICache --> Forwarder2_write + ICache_ICache2 --> Forwarder2_write + SimpleCommonBusCacheRefiller_accept_refill --> ICache_ICache2 + WishboneMasterAdapter_get_read_response --> ICache_ICache2 + Serializer_Serializer1 --> ICache_ICache2 + BasicFifo_read --> ICache_ICache2 + WishboneMaster_result --> ICache_ICache2 + Forwarder_read --> ICache_ICache2 Fetch_Fetch1 --> ICache_issue_req Fetch_Fetch1 <--> HwCounter__incr Fetch_Fetch1 <--> LatencyMeasurer__start @@ -571,26 +571,26 @@ RegAllocation_RegAllocation --> FIFO10_write FIFO10_read --> Renaming_Renaming Renaming_Renaming --> FRAT_rename - Retirement_Retirement3 --> FRAT_rename - TransactionManager_Retirement_Retirement_cond1 --> FRAT_rename + Retirement_Retirement2 --> FRAT_rename + TransactionManager_Retirement_cond1_Retirement --> FRAT_rename Renaming_Renaming --> FIFO11_write FIFO11_read --> ROBAllocation_ROBAllocation ROBAllocation_ROBAllocation --> ReorderBuffer_put ROBAllocation_ROBAllocation <--> LatencyMeasurer1__start ROBAllocation_ROBAllocation --> FIFO3_write ROBAllocation_ROBAllocation --> FIFO12_write - FIFO12_read --> RSSelection_RSSelection2 - RSSelection_RSSelection2 --> Forwarder8_write + FIFO12_read --> RSSelection_RSSelection1 + RSSelection_RSSelection1 --> Forwarder8_write Forwarder8_read --> RSSelection_RSSelection3 - Forwarder8_read --> RSSelection_RSSelection1 Forwarder8_read --> RSSelection_RSSelection + Forwarder8_read --> RSSelection_RSSelection2 RSFuncBlock_select --> RSSelection_RSSelection3 RS_select --> RSSelection_RSSelection3 RSSelection_RSSelection3 --> FIFO13_write - RSSelection_RSSelection1 --> FIFO13_write RSSelection_RSSelection --> FIFO13_write - RSSelection_RSSelection1 <--> LSUDummy_select - RSSelection_RSSelection <--> CSRUnit_select + RSSelection_RSSelection2 --> FIFO13_write + RSSelection_RSSelection <--> LSUDummy_select + RSSelection_RSSelection2 <--> CSRUnit_select FIFO13_read --> RSInsertion_RSInsertion RegisterFile_read1 --> RSInsertion_RSInsertion RegisterFile_read2 --> RSInsertion_RSInsertion @@ -616,7 +616,7 @@ ResultAnnouncement_ResultAnnouncement --> RS_update ResultAnnouncement_ResultAnnouncement --> LSUDummy_update ResultAnnouncement_ResultAnnouncement --> CSRUnit_update - RS_RS --> WakeupSelect_WakeupSelect + RS_RS4 --> WakeupSelect_WakeupSelect RS_take --> WakeupSelect_WakeupSelect RS_take --> WakeupSelect1_WakeupSelect RS_take --> WakeupSelect2_WakeupSelect @@ -624,10 +624,10 @@ RS_take --> WakeupSelect4_WakeupSelect WakeupSelect_WakeupSelect --> AluFuncUnit_issue WakeupSelect_WakeupSelect --> FIFO4_write - RS_RS2 --> WakeupSelect1_WakeupSelect + RS_RS3 --> WakeupSelect1_WakeupSelect WakeupSelect1_WakeupSelect --> ShiftFuncUnit_issue WakeupSelect1_WakeupSelect --> FIFO5_write - RS_RS3 --> WakeupSelect2_WakeupSelect + RS_RS2 --> WakeupSelect2_WakeupSelect WakeupSelect2_WakeupSelect --> JumpBranchFuncUnit_issue WakeupSelect2_WakeupSelect <--> HwCounter5__incr WakeupSelect2_WakeupSelect <--> HwCounter6__incr @@ -639,7 +639,7 @@ ConnectTrans3_ConnectTrans --> BasicFifo4_write WakeupSelect2_WakeupSelect --> FIFO7_write WakeupSelect2_WakeupSelect --> FIFO6_write - RS_RS4 --> WakeupSelect3_WakeupSelect + RS_RS --> WakeupSelect3_WakeupSelect WakeupSelect3_WakeupSelect --> ExceptionFuncUnit_issue WakeupSelect3_WakeupSelect --> FIFO8_write RS_RS1 --> WakeupSelect4_WakeupSelect @@ -661,11 +661,11 @@ CSRRegister2_read --> ConnectTrans8_ConnectTrans ConnectTrans8_ConnectTrans --> BasicFifo5_write LSUDummy_LSUDummy --> Forwarder6_write - TransactionManager_LSUDummy_issue_cond1 --> Forwarder6_write TransactionManager_issue_cond2_LSUDummy --> Forwarder6_write - TransactionManager_LSUDummy_accept_cond0 --> Forwarder6_write - TransactionManager_issue_cond0_LSUDummy --> Forwarder6_write TransactionManager_LSUDummy_accept_cond1 --> Forwarder6_write + TransactionManager_LSUDummy_accept_cond0 --> Forwarder6_write + TransactionManager_LSUDummy_issue_cond0 --> Forwarder6_write + TransactionManager_issue_cond1_LSUDummy --> Forwarder6_write CSRRegister__fu_read --> CSRUnit_CSRUnit CSRUnit_CSRUnit --> CSRRegister__fu_write CSRRegister1__fu_read --> CSRUnit_CSRUnit @@ -687,43 +687,43 @@ LSUDummy_get_result --> ConnectTrans2_ConnectTrans Forwarder6_read --> ConnectTrans2_ConnectTrans CSRUnit_get_result --> ConnectTrans3_ConnectTrans - MethodTryProduct_MethodTryProduct2 --> PrivilegedFuncUnit_precommit - MethodTryProduct_MethodTryProduct2 <--> InterruptController_mret - MethodTryProduct_MethodTryProduct --> LSUDummy_precommit + MethodTryProduct_MethodTryProduct --> PrivilegedFuncUnit_precommit + MethodTryProduct_MethodTryProduct <--> InterruptController_mret + MethodTryProduct_MethodTryProduct2 --> LSUDummy_precommit MethodTryProduct_MethodTryProduct1 --> CSRUnit_precommit ConnectTrans9_ConnectTrans --> Forwarder7_write ConnectTrans10_ConnectTrans --> Forwarder7_write BasicFifo5_read --> ConnectTrans9_ConnectTrans CSRUnit_fetch_resume --> ConnectTrans10_ConnectTrans - ReorderBuffer_peek --> Retirement_Retirement2 - ReorderBuffer_peek --> Retirement_Retirement4 ReorderBuffer_peek --> Retirement_Retirement3 - ReorderBuffer_peek --> TransactionManager_Retirement_Retirement_cond0 - ReorderBuffer_peek --> TransactionManager_Retirement_Retirement_cond1 - Retirement_Retirement2 --> MethodTryProduct_method - ExceptionCauseRegister_get --> Retirement_Retirement4 - ExceptionCauseRegister_get --> TransactionManager_Retirement_Retirement_cond0 - ExceptionCauseRegister_get --> TransactionManager_Retirement_Retirement_cond1 - Retirement_Retirement3 <--> ReorderBuffer_retire - TransactionManager_Retirement_Retirement_cond0 <--> ReorderBuffer_retire - TransactionManager_Retirement_Retirement_cond1 <--> ReorderBuffer_retire - Retirement_Retirement3 <--> LatencyMeasurer1__stop - TransactionManager_Retirement_Retirement_cond0 <--> LatencyMeasurer1__stop - TransactionManager_Retirement_Retirement_cond1 <--> LatencyMeasurer1__stop - FIFO3_read --> Retirement_Retirement3 - FIFO3_read --> TransactionManager_Retirement_Retirement_cond0 - FIFO3_read --> TransactionManager_Retirement_Retirement_cond1 - Retirement_Retirement3 --> HwExpHistogram1__add - TransactionManager_Retirement_Retirement_cond0 --> HwExpHistogram1__add - TransactionManager_Retirement_Retirement_cond1 --> HwExpHistogram1__add - CoreInstructionCounter_decrement --> Retirement_Retirement3 - CoreInstructionCounter_decrement --> TransactionManager_Retirement_Retirement_cond0 - CoreInstructionCounter_decrement --> TransactionManager_Retirement_Retirement_cond1 - RRAT_peek --> Retirement_Retirement3 - RRAT_peek --> TransactionManager_Retirement_Retirement_cond1 - Retirement_Retirement3 --> RegisterFile_free - TransactionManager_Retirement_Retirement_cond0 --> RegisterFile_free - TransactionManager_Retirement_Retirement_cond1 --> RegisterFile_free + ReorderBuffer_peek --> Retirement_Retirement1 + ReorderBuffer_peek --> Retirement_Retirement2 + ReorderBuffer_peek --> TransactionManager_Retirement_cond1_Retirement + ReorderBuffer_peek --> TransactionManager_Retirement_cond0_Retirement + Retirement_Retirement3 --> MethodTryProduct_method + ExceptionCauseRegister_get --> Retirement_Retirement1 + ExceptionCauseRegister_get --> TransactionManager_Retirement_cond1_Retirement + ExceptionCauseRegister_get --> TransactionManager_Retirement_cond0_Retirement + Retirement_Retirement2 <--> ReorderBuffer_retire + TransactionManager_Retirement_cond1_Retirement <--> ReorderBuffer_retire + TransactionManager_Retirement_cond0_Retirement <--> ReorderBuffer_retire + Retirement_Retirement2 <--> LatencyMeasurer1__stop + TransactionManager_Retirement_cond1_Retirement <--> LatencyMeasurer1__stop + TransactionManager_Retirement_cond0_Retirement <--> LatencyMeasurer1__stop + FIFO3_read --> Retirement_Retirement2 + FIFO3_read --> TransactionManager_Retirement_cond1_Retirement + FIFO3_read --> TransactionManager_Retirement_cond0_Retirement + Retirement_Retirement2 --> HwExpHistogram1__add + TransactionManager_Retirement_cond1_Retirement --> HwExpHistogram1__add + TransactionManager_Retirement_cond0_Retirement --> HwExpHistogram1__add + CoreInstructionCounter_decrement --> Retirement_Retirement2 + CoreInstructionCounter_decrement --> TransactionManager_Retirement_cond1_Retirement + CoreInstructionCounter_decrement --> TransactionManager_Retirement_cond0_Retirement + RRAT_peek --> Retirement_Retirement2 + RRAT_peek --> TransactionManager_Retirement_cond1_Retirement + Retirement_Retirement2 --> RegisterFile_free + TransactionManager_Retirement_cond1_Retirement --> RegisterFile_free + TransactionManager_Retirement_cond0_Retirement --> RegisterFile_free CSRRegister1_read --> Retirement_Retirement Retirement_Retirement <--> ExceptionCauseRegister_clear GenericCSRRegisters_GenericCSRRegisters <--> DoubleCounterCSR_increment @@ -737,53 +737,53 @@ CSRRegister6_read --> GenericCSRRegisters_GenericCSRRegisters GenericCSRRegisters_GenericCSRRegisters --> CSRRegister6_write AdapterTrans1_AdapterTrans_report_interrupt <--> InterruptController_report_interrupt - TransactionManager_Retirement_Retirement_cond0 <--> Retirement_Retirement1 - TransactionManager_Retirement_Retirement_cond1 <--> Retirement_Retirement1 - TransactionManager_Retirement_Retirement_cond0 --> CSRRegister_write - TransactionManager_Retirement_Retirement_cond1 --> CSRRegister_write - TransactionManager_Retirement_Retirement_cond0 --> CSRRegister2_write - TransactionManager_Retirement_Retirement_cond1 --> CSRRegister2_write - TransactionManager_Retirement_Retirement_cond0 <--> InterruptController_entry - TransactionManager_Retirement_Retirement_cond1 <--> InterruptController_entry - TransactionManager_Retirement_Retirement_cond0 <--> Retirement_Retirement_cond0 - TransactionManager_Retirement_Retirement_cond0 --> RRAT_commit - TransactionManager_Retirement_Retirement_cond0 <--> DoubleCounterCSR2_increment - CSRRegister7_read --> TransactionManager_Retirement_Retirement_cond0 - TransactionManager_Retirement_Retirement_cond0 --> CSRRegister7_write - CSRRegister8_read --> TransactionManager_Retirement_Retirement_cond0 - TransactionManager_Retirement_Retirement_cond0 --> CSRRegister8_write - TransactionManager_Retirement_Retirement_cond0 <--> HwCounter9__incr - TransactionManager_Retirement_Retirement_cond1 <--> Retirement_Retirement_cond1 - TransactionManager_LSUDummy_issue_cond1 <--> LSUDummy_LSUDummy2 - TransactionManager_issue_cond2_LSUDummy <--> LSUDummy_LSUDummy2 - TransactionManager_issue_cond0_LSUDummy <--> LSUDummy_LSUDummy2 - TransactionManager_LSUDummy_issue_cond1 --> LSURequester_issue - TransactionManager_issue_cond2_LSUDummy --> LSURequester_issue - TransactionManager_issue_cond0_LSUDummy --> LSURequester_issue - TransactionManager_LSUDummy_issue_cond1 <--> LSURequester_issue_cond1 - TransactionManager_LSUDummy_issue_cond1 --> WishboneMasterAdapter1_request_read - TransactionManager_LSUDummy_issue_cond1 --> Serializer1_Serializer - TransactionManager_LSUDummy_issue_cond1 --> BasicFifo1_write - TransactionManager_issue_cond0_LSUDummy --> BasicFifo1_write - TransactionManager_LSUDummy_issue_cond1 --> WishboneMaster1_request - TransactionManager_issue_cond0_LSUDummy --> WishboneMaster1_request TransactionManager_issue_cond2_LSUDummy <--> LSURequester_issue_cond2 - TransactionManager_LSUDummy_accept_cond0 <--> LSUDummy_LSUDummy1 - TransactionManager_LSUDummy_accept_cond1 <--> LSUDummy_LSUDummy1 - LSURequester_accept --> TransactionManager_LSUDummy_accept_cond0 + TransactionManager_issue_cond2_LSUDummy <--> LSUDummy_LSUDummy1 + TransactionManager_LSUDummy_issue_cond0 <--> LSUDummy_LSUDummy1 + TransactionManager_issue_cond1_LSUDummy <--> LSUDummy_LSUDummy1 + TransactionManager_issue_cond2_LSUDummy --> LSURequester_issue + TransactionManager_LSUDummy_issue_cond0 --> LSURequester_issue + TransactionManager_issue_cond1_LSUDummy --> LSURequester_issue + TransactionManager_LSUDummy_accept_cond1 <--> LSUDummy_LSUDummy2 + TransactionManager_LSUDummy_accept_cond0 <--> LSUDummy_LSUDummy2 LSURequester_accept --> TransactionManager_LSUDummy_accept_cond1 - TransactionManager_LSUDummy_accept_cond0 <--> LSURequester_accept_cond0 - WishboneMasterAdapter1_get_write_response --> TransactionManager_LSUDummy_accept_cond0 - Serializer1_Serializer3 --> TransactionManager_LSUDummy_accept_cond0 - BasicFifo1_read --> TransactionManager_LSUDummy_accept_cond0 + LSURequester_accept --> TransactionManager_LSUDummy_accept_cond0 + TransactionManager_LSUDummy_accept_cond1 <--> LSURequester_accept_cond1 + WishboneMasterAdapter1_get_read_response --> TransactionManager_LSUDummy_accept_cond1 + Serializer1_Serializer1 --> TransactionManager_LSUDummy_accept_cond1 BasicFifo1_read --> TransactionManager_LSUDummy_accept_cond1 - WishboneMaster1_result --> TransactionManager_LSUDummy_accept_cond0 + BasicFifo1_read --> TransactionManager_LSUDummy_accept_cond0 WishboneMaster1_result --> TransactionManager_LSUDummy_accept_cond1 - Forwarder1_read --> TransactionManager_LSUDummy_accept_cond0 + WishboneMaster1_result --> TransactionManager_LSUDummy_accept_cond0 Forwarder1_read --> TransactionManager_LSUDummy_accept_cond1 - TransactionManager_issue_cond0_LSUDummy <--> LSURequester_issue_cond0 - TransactionManager_issue_cond0_LSUDummy --> WishboneMasterAdapter1_request_write - TransactionManager_issue_cond0_LSUDummy --> Serializer1_Serializer1 - TransactionManager_LSUDummy_accept_cond1 <--> LSURequester_accept_cond1 - WishboneMasterAdapter1_get_read_response --> TransactionManager_LSUDummy_accept_cond1 - Serializer1_Serializer2 --> TransactionManager_LSUDummy_accept_cond1 + Forwarder1_read --> TransactionManager_LSUDummy_accept_cond0 + TransactionManager_LSUDummy_accept_cond0 <--> LSURequester_accept_cond0 + WishboneMasterAdapter1_get_write_response --> TransactionManager_LSUDummy_accept_cond0 + Serializer1_Serializer3 --> TransactionManager_LSUDummy_accept_cond0 + TransactionManager_Retirement_cond1_Retirement <--> Retirement_Retirement_cond1 + TransactionManager_Retirement_cond1_Retirement <--> Retirement_Retirement4 + TransactionManager_Retirement_cond0_Retirement <--> Retirement_Retirement4 + TransactionManager_Retirement_cond1_Retirement --> CSRRegister_write + TransactionManager_Retirement_cond0_Retirement --> CSRRegister_write + TransactionManager_Retirement_cond1_Retirement --> CSRRegister2_write + TransactionManager_Retirement_cond0_Retirement --> CSRRegister2_write + TransactionManager_Retirement_cond1_Retirement <--> InterruptController_entry + TransactionManager_Retirement_cond0_Retirement <--> InterruptController_entry + TransactionManager_Retirement_cond0_Retirement <--> Retirement_Retirement_cond0 + TransactionManager_Retirement_cond0_Retirement --> RRAT_commit + TransactionManager_Retirement_cond0_Retirement <--> DoubleCounterCSR2_increment + CSRRegister7_read --> TransactionManager_Retirement_cond0_Retirement + TransactionManager_Retirement_cond0_Retirement --> CSRRegister7_write + CSRRegister8_read --> TransactionManager_Retirement_cond0_Retirement + TransactionManager_Retirement_cond0_Retirement --> CSRRegister8_write + TransactionManager_Retirement_cond0_Retirement <--> HwCounter9__incr + TransactionManager_LSUDummy_issue_cond0 <--> LSURequester_issue_cond0 + TransactionManager_LSUDummy_issue_cond0 --> WishboneMasterAdapter1_request_write + TransactionManager_LSUDummy_issue_cond0 --> Serializer1_Serializer2 + 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_cond1_LSUDummy <--> LSURequester_issue_cond1 + TransactionManager_issue_cond1_LSUDummy --> WishboneMasterAdapter1_request_read + TransactionManager_issue_cond1_LSUDummy --> Serializer1_Serializer diff --git a/_sources/transactron.lib.rst.txt b/_sources/transactron.lib.rst.txt index 1e131e50f..6136a9de0 100644 --- a/_sources/transactron.lib.rst.txt +++ b/_sources/transactron.lib.rst.txt @@ -44,6 +44,14 @@ transactron.lib.fifo module :undoc-members: :show-inheritance: +transactron.lib.logging module +------------------------------ + +.. automodule:: transactron.lib.logging + :members: + :undoc-members: + :show-inheritance: + transactron.lib.metrics module ------------------------------ diff --git a/_sources/transactron.testing.rst.txt b/_sources/transactron.testing.rst.txt index 5fc1e426e..7fa085555 100644 --- a/_sources/transactron.testing.rst.txt +++ b/_sources/transactron.testing.rst.txt @@ -4,14 +4,6 @@ transactron.testing package Submodules ---------- -transactron.testing.assertion module ------------------------------------- - -.. automodule:: transactron.testing.assertion - :members: - :undoc-members: - :show-inheritance: - transactron.testing.functions module ------------------------------------ @@ -36,6 +28,14 @@ transactron.testing.infrastructure module :undoc-members: :show-inheritance: +transactron.testing.logging module +---------------------------------- + +.. automodule:: transactron.testing.logging + :members: + :undoc-members: + :show-inheritance: + transactron.testing.profiler module ----------------------------------- diff --git a/_sources/transactron.utils.rst.txt b/_sources/transactron.utils.rst.txt index 7761c4d15..d864a4557 100644 --- a/_sources/transactron.utils.rst.txt +++ b/_sources/transactron.utils.rst.txt @@ -12,14 +12,6 @@ Subpackages Submodules ---------- -transactron.utils.assertion module ----------------------------------- - -.. automodule:: transactron.utils.assertion - :members: - :undoc-members: - :show-inheritance: - transactron.utils.assign module ------------------------------- diff --git a/api.html b/api.html index 5a9044c0d..5b806fd80 100644 --- a/api.html +++ b/api.html @@ -220,6 +220,7 @@

transactrontransactron.lib.connectors module
  • transactron.lib.dependencies module
  • transactron.lib.fifo module
  • +
  • transactron.lib.logging module
  • transactron.lib.metrics module
  • transactron.lib.reqres module
  • transactron.lib.simultaneous module
  • @@ -230,10 +231,10 @@

    transactrontransactron.testing package
  • get_src_loc() (in module transactron.utils.transactron_helpers) +
  • +
  • get_trigger_bit() (in module transactron.lib.logging)
  • get_write_response (coreblocks.peripherals.bus_adapter.BusMasterInterface attribute)
  • @@ -1977,6 +1995,8 @@

    H

    - + + + + @@ -562,11 +567,6 @@

    Python Module Index

    - - -
    -
  • locked (transactron.profiler.RunStat attribute) +
  • +
  • log() (transactron.lib.logging.HardwareLogger method) +
  • +
  • logger_name (transactron.lib.logging.LogRecordInfo attribute)
  • LOGIC (coreblocks.params.optypes.OpType attribute) +
  • +
  • LogKey (class in transactron.lib.logging) +
  • +
  • LogRecord (class in transactron.lib.logging) +
  • +
  • LogRecordInfo (class in transactron.lib.logging) +
  • +
  • logs (transactron.utils.gen.GenerationInfo attribute)
  • LSUBlockComponent (class in coreblocks.lsu.dummyLsu)
  • @@ -2226,9 +2262,9 @@

    M

  • (transactron.profiler.RunStatNode static method)
  • -
  • make_assert_handler() (in module transactron.testing.assertion) -
  • make_hashable() (in module transactron.utils.data_repr) +
  • +
  • make_logging_process() (in module transactron.testing.logging)
  • ManyToOneConnectTrans (class in transactron.lib.connectors)
  • @@ -2475,6 +2511,8 @@

    M

  • transactron.lib.dependencies
  • transactron.lib.fifo +
  • +
  • transactron.lib.logging
  • transactron.lib.metrics
  • @@ -2489,14 +2527,14 @@

    M

  • transactron.profiler
  • transactron.testing -
  • -
  • transactron.testing.assertion
  • transactron.testing.functions
  • transactron.testing.gtkw_extension
  • transactron.testing.infrastructure +
  • +
  • transactron.testing.logging
  • transactron.testing.profiler
  • @@ -2513,8 +2551,6 @@

    M

  • transactron.utils.amaranth_ext.elaboratables
  • transactron.utils.amaranth_ext.functions -
  • -
  • transactron.utils.assertion
  • transactron.utils.assign
  • @@ -2720,6 +2756,8 @@

    P

  • params (coreblocks.peripherals.bus_adapter.BusMasterInterface attribute) +
  • +
  • parse_logging_level() (in module transactron.testing.logging)
  • pc (coreblocks.params.layouts.CommonLayoutFields attribute)
  • @@ -3027,16 +3065,18 @@

    S

  • SchedulerLayouts (class in coreblocks.params.layouts)
  • -
  • schema() (transactron.lib.metrics.MetricModel class method) +
  • schema() (transactron.lib.logging.LogRecordInfo class method)
  • -
  • to_dict() (transactron.lib.metrics.MetricModel method) +
  • to_dict() (transactron.lib.logging.LogRecordInfo method)
  • -
  • to_json() (transactron.lib.metrics.MetricModel method) +
  • to_json() (transactron.lib.logging.LogRecordInfo method)
  • Transformer (class in transactron.lib.transformers) +
  • +
  • trigger (transactron.lib.logging.LogRecord attribute) +
  • +
  • trigger_location (transactron.utils.gen.GeneratedLog attribute)
  • trivial_roundrobin_cc_scheduler() (in module transactron.core)
  • @@ -3701,6 +3747,8 @@

    W

  • wait_until_done() (transactron.testing.testbenchio.TestbenchIO method)
  • WakeupSelect (class in coreblocks.scheduler.wakeup_select) +
  • +
  • warning() (transactron.lib.logging.HardwareLogger method)
  • wb (coreblocks.peripherals.wishbone.PipelinedWishboneMaster attribute)
  • @@ -3717,11 +3765,11 @@

    W

  • width (transactron.lib.metrics.MetricRegisterModel attribute)
  • WishboneArbiter (class in coreblocks.peripherals.wishbone) -
  • -
  • WishboneInterface (class in coreblocks.peripherals.wishbone)
  •     transactron.lib.fifo
        + transactron.lib.logging +
        @@ -505,22 +510,22 @@

    Python Module Index

        - transactron.testing.assertion + transactron.testing.functions
        - transactron.testing.functions + transactron.testing.gtkw_extension
        - transactron.testing.gtkw_extension + transactron.testing.infrastructure
        - transactron.testing.infrastructure + transactron.testing.logging
        transactron.utils.amaranth_ext.functions
        - transactron.utils.assertion -
        @@ -618,7 +618,7 @@

    Python Module Index

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 09:48 2024-03-14. + Last updated on 11:28 2024-03-14.

    diff --git a/scheduler/overview.html b/scheduler/overview.html index 48429d785..0a2b0b6d7 100644 --- a/scheduler/overview.html +++ b/scheduler/overview.html @@ -146,7 +146,7 @@

    More detailed description of each block

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 09:48 2024-03-14. + Last updated on 11:28 2024-03-14.

    diff --git a/search.html b/search.html index 4a7055c1e..8915a7843 100644 --- a/search.html +++ b/search.html @@ -101,7 +101,7 @@

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 09:48 2024-03-14. + Last updated on 11:28 2024-03-14.

    diff --git a/searchindex.js b/searchindex.js index 9067cef2e..4898666f5 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api", "assumptions", "auto_graph", "components/icache", "coreblocks", "coreblocks.cache", "coreblocks.frontend", "coreblocks.fu", "coreblocks.fu.unsigned_multiplication", "coreblocks.lsu", "coreblocks.params", "coreblocks.peripherals", "coreblocks.scheduler", "coreblocks.stages", "coreblocks.structs_common", "coreblocks.utils", "current-graph", "development-environment", "home", "index", "miscellany/exceptions-summary", "modules-coreblocks", "modules-transactron", "problem-checklist", "scheduler/overview", "shared-structs/implementation/rs-impl", "shared-structs/rs", "synthesis/synthesis", "transactions", "transactron", "transactron.lib", "transactron.testing", "transactron.utils", "transactron.utils.amaranth_ext"], "filenames": ["api.md", "assumptions.md", "auto_graph.rst", "components/icache.md", "coreblocks.rst", "coreblocks.cache.rst", "coreblocks.frontend.rst", "coreblocks.fu.rst", "coreblocks.fu.unsigned_multiplication.rst", "coreblocks.lsu.rst", "coreblocks.params.rst", "coreblocks.peripherals.rst", "coreblocks.scheduler.rst", "coreblocks.stages.rst", "coreblocks.structs_common.rst", "coreblocks.utils.rst", "current-graph.md", "development-environment.md", "home.md", "index.md", "miscellany/exceptions-summary.md", "modules-coreblocks.rst", "modules-transactron.rst", "problem-checklist.md", "scheduler/overview.md", "shared-structs/implementation/rs-impl.md", "shared-structs/rs.md", "synthesis/synthesis.md", "transactions.md", "transactron.rst", "transactron.lib.rst", "transactron.testing.rst", "transactron.utils.rst", "transactron.utils.amaranth_ext.rst"], "titles": ["API", "List of assumptions made during development", "<no title>", "Instruction Cache", "coreblocks package", "coreblocks.cache package", "coreblocks.frontend package", "coreblocks.fu package", "coreblocks.fu.unsigned_multiplication package", "coreblocks.lsu package", "coreblocks.params package", "coreblocks.peripherals package", "coreblocks.scheduler package", "coreblocks.stages package", "coreblocks.structs_common package", "coreblocks.utils package", "Full transaction-method graph", "Development environment", "Introduction", "Coreblocks", "Summary of papers about interrupts", "coreblocks", "transactron", "Problem checklist", "Scheduler overview", "Proposition of Reservation Station implementation", "Reservation Station", "Core verification", "Documentation for Coreblocks transaction framework", "transactron package", "transactron.lib package", "transactron.testing package", "transactron.utils package", "transactron.utils.amaranth_ext package"], "terms": {"packag": [0, 17, 19, 21, 22], "subpackag": [0, 21, 22], "cach": [0, 4, 6, 10, 19, 21, 32], "submodul": [0, 21, 22, 27], "icach": [0, 4, 6, 21, 30], "modul": [0, 17, 21, 22, 27, 28], "ifac": [0, 4, 21, 30], "refil": [0, 3, 4, 10, 21], "content": [0, 21, 22], "frontend": [0, 4, 21, 24, 30], "decode_stag": [0, 4, 21], "fetch": [0, 3, 4, 10, 13, 14, 20, 21], "instr_decod": [0, 4, 21], "instr_descript": [0, 4, 21], "rvc": [0, 4, 10, 21], "fu": [0, 1, 4, 10, 13, 14, 21, 25, 26], "alu": [0, 4, 10, 21], "div_unit": [0, 4, 21], "except": [0, 4, 10, 13, 19, 21, 23, 29, 32], "fu_decod": [0, 4, 21], "jumpbranch": [0, 4, 10, 21], "mul_unit": [0, 4, 21], "priv": [0, 4, 10, 21], "shift_unit": [0, 4, 10, 21], "zbc": [0, 4, 10, 21], "zb": [0, 4, 10, 21], "lsu": [0, 4, 10, 21], "dummylsu": [0, 4, 10, 21], "pma": [0, 4, 10, 21], "param": [0, 4, 5, 7, 9, 11, 12, 13, 14, 21], "configur": [0, 4, 11, 12, 21, 27, 30], "fu_param": [0, 4, 21], "genparam": [0, 4, 6, 7, 8, 9, 12, 13, 14, 21], "icache_param": [0, 4, 21], "instr": [0, 4, 6, 21], "isa": [0, 4, 6, 14, 21], "kei": [0, 4, 14, 21, 29, 30, 32], "layout": [0, 4, 5, 6, 11, 12, 13, 17, 21, 23, 28, 29, 30, 32], "optyp": [0, 4, 6, 7, 9, 12, 13, 14, 21], "peripher": [0, 4, 21], "axi_lit": [0, 4, 21], "bus_adapt": [0, 4, 21], "wishbon": [0, 4, 21], "schedul": [0, 4, 10, 19, 20, 21, 29, 30, 33], "wakeup_select": [0, 4, 21], "stage": [0, 1, 4, 9, 14, 21], "backend": [0, 4, 21], "func_blocks_unifi": [0, 4, 21], "retir": [0, 4, 9, 10, 14, 21], "rs_func_block": [0, 4, 21], "structs_common": [0, 4, 10, 21], "csr": [0, 4, 6, 10, 21], "csr_gener": [0, 4, 21], "instr_count": [0, 4, 21], "interrupt_control": [0, 4, 21], "rat": [0, 1, 4, 10, 12, 20, 21], "rf": [0, 1, 4, 13, 20, 21, 25, 26], "rob": [0, 1, 4, 10, 12, 13, 20, 21, 24, 25, 26], "r": [0, 1, 4, 9, 10, 12, 13, 17, 20, 21, 24, 25, 26, 27], "util": [0, 4, 12, 13, 21, 22, 23, 28, 29, 30], "protocol": [0, 4, 5, 11, 12, 13, 21, 29, 30], "core": [0, 6, 7, 8, 10, 11, 12, 13, 14, 17, 19, 20, 21, 22, 30, 32], "lib": [0, 22, 29, 31, 32, 33], "adapt": [0, 11, 22, 28, 29, 31], "button": [0, 22, 29], "connector": [0, 22, 29], "depend": [0, 10, 14, 19, 22, 28, 29, 33], "fifo": [0, 13, 20, 22, 28, 29], "metric": [0, 10, 22, 29, 32], "reqr": [0, 22, 29], "simultan": [0, 14, 22, 28, 29], "storag": [0, 22, 29], "transform": [0, 22, 29], "test": [0, 10, 17, 19, 22, 23, 29, 30, 32, 33], "assert": [0, 11, 22, 29, 33], "function": [0, 6, 7, 10, 12, 13, 20, 22, 23, 28, 29, 30, 32], "gtkw_extens": [0, 22, 29], "infrastructur": [0, 22, 29], "profil": [0, 17, 22], "sugar": [0, 22, 29], "testbenchio": [0, 22, 23, 29], "assign": [0, 10, 14, 22, 23, 28, 29], "data_repr": [0, 22, 29], "debug_sign": [0, 10, 13, 22, 29, 30, 31], "depcach": [0, 22, 29], "gen": [0, 6, 7, 8, 22, 29], "idgen": [0, 22, 29], "transactron_help": [0, 22, 29], "graph": [0, 17, 19, 22, 27], "trace": [0, 17, 22, 31], "ha": [1, 5, 6, 10, 12, 14, 17, 20, 23, 25, 28, 29, 30], "data": [1, 6, 9, 10, 11, 14, 19, 26, 27, 29, 30, 31, 32, 33], "forward": [1, 11, 28, 29, 30], "from": [1, 5, 6, 7, 9, 11, 12, 13, 14, 17, 18, 20, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33], "tomasulo": 1, "announc": [1, 9, 13, 14], "bu": [1, 9, 10, 11], "read": [1, 9, 11, 14, 17, 19, 23, 28, 30, 32], "x0": [1, 10], "rf0": 1, "return": [1, 3, 7, 9, 11, 14, 19, 20, 29, 30, 31, 32], "0": [1, 6, 7, 10, 11, 12, 14, 25, 26, 27, 29, 30, 31, 32], "write": [1, 5, 6, 11, 14, 20, 26, 28, 30], "i": [1, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 20, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "noop": 1, "separ": [1, 24, 29, 30, 32], "each": [1, 6, 7, 10, 11, 14, 17, 19, 20, 25, 26, 28, 29, 30, 31, 32], "writeback": 1, "save": [1, 10, 13, 14, 17, 20, 25, 26, 29, 30, 32], "after": [1, 3, 5, 6, 10, 11, 14, 20, 24, 27, 28, 30], "get": [1, 6, 7, 8, 12, 13, 17, 19, 29, 30, 31, 32, 33], "output": [1, 5, 9, 11, 13, 14, 17, 20, 25, 26, 29, 30, 33], "commit": [1, 10, 14, 17, 20, 27], "updat": [1, 9, 13, 14, 15, 27, 33], "The": [3, 5, 7, 10, 11, 13, 17, 18, 19, 20, 24, 25, 26, 27, 29, 30, 32, 33], "should": [3, 5, 6, 11, 12, 13, 14, 17, 18, 20, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "expos": [3, 30, 32], "three": [3, 6, 20, 27, 29], "method": [3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 29, 30, 31, 32], "issue_req": [3, 5], "thi": [3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 20, 23, 25, 26, 27, 28, 29, 30, 32, 33], "issu": [3, 5, 7, 8, 12, 15, 17, 28, 30], "an": [3, 5, 9, 10, 11, 12, 13, 17, 18, 20, 23, 25, 27, 28, 29, 30, 31, 32, 33], "lookup": [3, 5], "request": [3, 5, 7, 8, 9, 10, 11, 28, 29, 30, 33], "accept_resp": 3, "result": [3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 20, 27, 28, 30, 32], "flush": [3, 5, 10, 14, 20], "entir": [3, 27, 28], "oper": [3, 6, 7, 10, 20, 28, 29, 30, 33], "under": [3, 28, 29], "follow": [3, 7, 10, 12, 17, 25, 27, 28, 30, 32], "ar": [3, 6, 9, 10, 11, 13, 14, 17, 18, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "alwai": [3, 6, 14, 27, 28, 29, 30, 31], "multipl": [3, 7, 8, 10, 11, 12, 13, 28, 29, 30, 32], "4": [3, 7, 10, 30], "byte": [3, 10, 29, 30, 32], "risc": [3, 6, 10, 18, 27], "v": [3, 6, 10, 17, 18, 20, 25, 27], "specif": [3, 6, 10, 11, 17, 20, 27, 30], "requir": [3, 14, 17, 20, 27, 28, 29], "align": [3, 9, 32], "c": [3, 10, 20, 27], "extens": [3, 10, 27], "introduc": [3, 20, 28], "16": [3, 10, 20, 29], "bit": [3, 5, 6, 7, 8, 10, 11, 14, 20, 25, 26, 28, 30, 32, 33], "relax": [3, 28], "unit": [3, 6, 7, 8, 10, 11, 12, 13, 14, 17, 24, 27], "handl": [3, 7, 14, 19, 28, 29], "case": [3, 11, 12, 13, 20, 23, 28, 29, 30, 32, 33], "fulli": [3, 9, 30], "pipelin": [3, 9, 11, 12, 14, 20, 25, 30], "process": [3, 14, 17, 19, 27, 30, 31], "order": [3, 10, 12, 14, 17, 18, 19, 27, 29, 30], "As": [3, 20, 28, 30], "can": [3, 9, 11, 13, 14, 17, 18, 20, 24, 25, 27, 28, 29, 30, 31, 32, 33], "invok": [3, 6, 12, 13, 20, 25, 31], "independ": [3, 28, 30], "accept_r": [3, 5], "If": [3, 6, 10, 11, 14, 20, 23, 25, 28, 29, 30, 32], "space": [3, 20], "anoth": [3, 5, 17, 28, 29, 30], "simpli": 3, "block": [3, 7, 8, 10, 11, 12, 13, 19, 20, 28, 29, 30], "latenc": [3, 20, 27, 30], "least": 3, "one": [3, 5, 7, 10, 11, 13, 14, 17, 20, 24, 25, 26, 28, 29, 30, 31, 32, 33], "cycl": [3, 7, 8, 11, 14, 17, 20, 24, 27, 28, 29, 30, 31], "miss": [3, 20], "occur": [3, 5], "arbitrarili": 3, "long": [3, 26, 27, 30], "ensur": [3, 27], "ani": [3, 6, 11, 12, 20, 23, 30, 31, 32, 33], "refetch": 3, "howev": [3, 30], "guarante": [3, 20], "have": [3, 9, 11, 13, 14, 17, 20, 23, 27, 28, 29, 30, 31, 32, 33], "alreadi": [3, 13, 20, 30, 32], "been": 3, "still": [3, 20, 26, 29], "wait": [3, 11, 13, 14, 17, 20, 25, 26, 29, 31], "accept": [3, 5, 7, 8, 14, 15, 27, 29, 30, 32], "inform": [3, 9, 12, 17, 29, 30, 32], "regard": 3, "error": [3, 5, 10, 11, 29, 30, 32], "mean": [3, 12, 17, 26, 29, 30], "dure": [3, 9, 19, 24, 30, 31], "line": [3, 5, 10, 17, 19], "subsequ": 3, "access": [3, 10, 11, 14, 20, 28, 30, 31, 32], "trigger": [3, 14], "which": [3, 5, 6, 7, 9, 10, 11, 12, 13, 17, 18, 20, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "most": [3, 20, 28, 29, 30], "like": [3, 6, 20, 28, 29, 30], "For": [3, 10, 17, 25, 26, 28, 29, 30, 32, 33], "32": [3, 7, 8, 10, 11, 20, 28, 30], "128": [3, 10], "set": [3, 5, 6, 7, 9, 10, 12, 13, 14, 19, 25, 27, 29, 30, 32, 33], "size": [3, 10, 11, 20, 28, 30, 32], "equal": [3, 14], "31": [3, 10], "15": [3, 10], "14": [3, 10], "13": [3, 10], "12": [3, 10], "11": [3, 10, 17, 27], "10": [3, 10, 20], "09": 3, "08": 3, "07": 3, "06": [3, 31], "05": 3, "04": 3, "03": 3, "02": 3, "01": 3, "00": 3, "tag": [3, 11, 20, 25, 26], "index": [3, 10, 29, 33], "offset": 3, "unsigned_multipl": [4, 7], "common": [4, 7, 11, 30, 32], "fast_recurs": [4, 7], "sequenc": [4, 7, 12, 30], "shift": [4, 7, 10], "class": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 28, 29, 30, 31, 32, 33], "base": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 20, 29, 30, 31, 32, 33], "elaborat": [4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 28, 29, 30, 31, 32], "__init__": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 28, 29, 30, 31, 32, 33], "gen_param": [4, 6, 7, 8, 9, 10, 12, 13, 14], "wb_instr_bu": 4, "wishboneinterfac": [4, 11], "wb_data_bu": 4, "cacheinterfac": [5, 6], "A": [5, 10, 11, 27, 28, 29, 30, 32], "simpl": [5, 6, 9, 12, 13, 29, 30, 32, 33], "associ": [5, 10, 30], "instruct": [5, 6, 7, 9, 10, 12, 13, 14, 19, 20, 24, 25, 27], "replac": [5, 8, 10, 25], "polici": 5, "pseudo": 5, "random": [5, 31], "scheme": 5, "everi": [5, 7, 11, 17, 27, 29, 30], "time": [5, 11, 14, 20, 29, 30], "trash": 5, "we": [5, 9, 11, 13, 20, 24, 25, 26, 27, 28, 31], "select": [5, 6, 7, 9, 11, 12, 13, 14, 15, 17], "next": [5, 6, 9, 12, 13, 14, 20, 29, 33], "wai": [5, 7, 11, 17, 20, 27, 28, 29, 30, 32], "keep": [5, 29], "global": [5, 14, 20], "counter": [5, 10, 14, 17, 30], "abstract": [5, 8, 10, 27, 30, 32], "awai": 5, "need": [5, 11, 17, 20, 25, 28, 29], "two": [5, 10, 14, 20, 23, 27, 28, 29, 30, 31, 32], "refiller_start": 5, "call": [5, 7, 12, 14, 17, 23, 25, 28, 29, 30, 31, 32], "whenev": 5, "refiller_accept": 5, "readi": [5, 9, 10, 11, 12, 13, 14, 19, 25, 29, 30], "word": [5, 10], "written": [5, 14, 26, 27, 30], "last": [5, 10, 12, 14, 29, 30], "when": [5, 11, 14, 17, 20, 23, 25, 26, 28, 29, 30, 31, 32, 33], "either": [5, 11, 28, 29, 30, 32, 33], "transfer": [5, 11, 29, 30], "over": [5, 14, 29, 30], "shouldn": [5, 27], "t": [5, 6, 9, 10, 17, 20, 23, 25, 27, 28, 29, 30, 31, 32], "until": [5, 20, 30], "start": [5, 7, 9, 10, 11, 20, 29, 30], "icachelayout": [5, 10], "icacheparamet": [5, 10], "cacherefillerinterfac": 5, "none": [5, 6, 7, 9, 10, 13, 14, 29, 30, 31, 32, 33], "paramet": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 28, 29, 30, 31, 32, 33], "instanc": [5, 6, 7, 9, 12, 13, 27, 29, 30, 31, 32], "us": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 19, 20, 23, 27, 28, 29, 30, 31, 32, 33], "creat": [5, 8, 11, 17, 27, 28, 29, 30, 31, 32, 33], "gener": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 20, 23, 27, 29, 30, 31, 32], "input": [5, 6, 7, 11, 13, 14, 20, 25, 26, 28, 29, 30, 33], "start_refil": 5, "accept_refil": 5, "deserialize_addr": 5, "raw_addr": 5, "valu": [5, 6, 7, 9, 10, 11, 12, 13, 14, 19, 23, 25, 26, 29, 30, 31, 32, 33], "dict": [5, 11, 28, 29, 30, 31, 32, 33], "str": [5, 10, 11, 29, 30, 31, 32, 33], "amaranth": [5, 6, 7, 10, 11, 23, 27, 28, 29, 30, 31, 32, 33], "hdl": [5, 6, 7, 10, 29, 30, 31, 32, 33], "_ast": [5, 6, 7, 10, 29, 30, 31, 32, 33], "serialize_addr": 5, "addr": [5, 9, 10, 11, 30], "view": [5, 7, 9, 29, 30, 31, 32, 33], "icachebypass": 5, "bus_mast": 5, "busmasterinterfac": [5, 9, 10, 11], "haselabor": [5, 11, 15, 29, 30, 31, 33], "interfac": [5, 6, 8, 9, 11, 12, 13, 14, 19, 27, 28, 29, 30], "whole": [5, 18, 20, 30], "given": [5, 7, 9, 10, 17, 25, 28, 29, 30, 31, 32, 33], "simplecommonbuscacherefil": 5, "decodestag": 6, "decod": [6, 7, 10, 12, 29, 32], "transact": [6, 10, 11, 14, 17, 19, 25, 29, 30, 33], "instanti": [6, 29], "instrdecod": 6, "make": [6, 7, 17, 18, 20, 23, 27, 28, 29, 31], "actual": [6, 17, 19, 28], "combinatori": [6, 28], "manner": [6, 11], "get_raw": 6, "push_decod": 6, "raw": 6, "previou": [6, 11, 20, 30], "step": [6, 12, 17, 20, 27, 28], "e": [6, 10, 17, 20, 23, 28, 30, 32, 33], "g": [6, 10, 17, 20, 23, 28, 30, 32, 33], "fetchlayout": [6, 10], "send": [6, 10, 11, 12, 13], "It": [6, 7, 8, 9, 11, 12, 13, 17, 20, 24, 25, 27, 28, 29, 30, 31, 32, 33], "describ": [6, 10, 12, 13, 20, 27, 29, 30, 31], "decodelayout": [6, 10, 12], "pc": [6, 10, 14, 19], "insid": [6, 27, 28, 29, 30], "increment": [6, 14], "ilen_byt": 6, "cont": [6, 31], "unalignedfetch": 6, "work": [6, 12, 20, 23, 27, 28, 29], "unalign": 6, "perform": [6, 7, 8, 10, 12, 14, 17, 27, 28, 29, 30, 32, 33], "elementari": 6, "compon": [6, 10, 11, 18, 29, 30], "opcod": [6, 10, 25, 26], "funct3": [6, 7, 10], "etc": [6, 10, 28], "connect": [6, 11, 13, 14, 20, 28, 29, 30], "via": [6, 28, 29], "its": [6, 12, 13, 14, 20, 27, 28, 29, 30, 32, 33], "attribut": [6, 7, 8, 9, 10, 11, 13, 14, 29, 30, 32, 33], "signal": [6, 7, 9, 10, 11, 19, 23, 29, 30, 31, 32, 33], "ilen": [6, 10], "out": [6, 7, 8, 11, 13, 18, 19, 29, 30, 33], "identifi": [6, 10, 25, 30, 32], "funct3_v": 6, "1": [6, 7, 8, 10, 12, 14, 20, 25, 26, 27, 28, 29, 30, 31, 32, 33], "funct7": [6, 7, 10], "seven": 6, "funct7_v": 6, "funct12": [6, 10], "twelv": 6, "funct12_v": 6, "rd": [6, 10], "reg_cnt_log": 6, "address": [6, 9, 10, 11, 14, 19, 20], "regist": [6, 10, 12, 14, 20, 24, 30, 32], "rd_v": 6, "rs1": [6, 10], "hold": [6, 11, 14, 30], "first": [6, 7, 10, 12, 20, 25, 26, 27, 28, 30, 31, 32], "rs1_v": 6, "take": [6, 11, 13, 24, 25, 28, 29, 30, 31, 32], "form": [6, 10, 14, 20, 27, 30], "rs2": [6, 10], "second": [6, 7, 10, 12, 25, 26, 27, 30], "rs2_v": 6, "imm": [6, 10], "xlen": [6, 7, 10, 14, 32], "immedi": [6, 10, 11], "provid": [6, 7, 10, 12, 14, 27, 28, 30, 31, 32], "were": [6, 20, 28], "succ": 6, "fencetarget": [6, 10], "successor": 6, "fenc": [6, 10], "pred": 6, "predecessor": 6, "fm": 6, "fencefm": [6, 10], "mode": [6, 10, 17, 20], "csr_alen": [6, 10], "control": [6, 10, 11, 14, 27, 29, 30, 33], "sourc": [6, 10, 12, 17, 25, 29, 30, 32], "type": [6, 7, 10, 17, 29, 30, 31, 32], "defin": [6, 9, 14, 28, 29, 30, 32, 33], "kind": [6, 7, 12, 30, 32], "illeg": 6, "wa": [6, 10, 14, 17, 20, 28, 29, 30, 32], "success": [6, 11, 31], "do": [6, 10, 20, 23, 28, 29], "fit": 6, "support": [6, 9, 10, 12, 17, 19, 29, 30], "constructor": [6, 28, 29, 32], "encod": [6, 20, 29, 32, 33], "object": [6, 7, 9, 10, 11, 27, 28, 29, 30, 31, 32], "repres": [6, 14, 29, 30], "singl": [6, 7, 8, 10, 12, 13, 14, 28, 29, 30, 32], "option": [6, 7, 10, 14, 17, 28, 29, 30, 31, 32, 33], "exist": [6, 28, 32], "instr_type_overrid": 6, "instrtyp": [6, 10], "specifi": [6, 10, 11, 14, 26, 30, 31, 32], "determin": [6, 20, 27, 30, 32], "instrust": 6, "almost": 6, "correct": [6, 9, 20, 25, 26, 27], "rd_zero": 6, "bool": [6, 7, 9, 10, 14, 29, 30, 31, 32, 33], "field": [6, 9, 10, 14, 17, 25, 26, 28, 29, 30, 31, 32], "constant": 6, "zero": [6, 10, 14, 25, 30, 33], "other": [6, 14, 17, 19, 28, 29, 30, 33], "accordingli": 6, "default": [6, 11, 17, 28, 29, 30, 32, 33], "fals": [6, 7, 9, 10, 17, 28, 29, 30, 32, 33], "rs1_zero": 6, "instrdecompress": 6, "decompr_reg": 6, "rvc_reg": 6, "instr_mux": 6, "sel": [6, 11], "list": [6, 7, 10, 11, 14, 17, 19, 23, 27, 29, 30, 31, 32, 33], "int": [6, 7, 8, 9, 10, 11, 13, 14, 29, 30, 31, 32, 33], "enum": [6, 7, 10, 29, 30, 31, 32], "valuecast": [6, 10, 29, 30, 31, 32], "tupl": [6, 7, 10, 11, 12, 13, 14, 29, 30, 32], "is_instr_compress": 6, "alucompon": [7, 10], "functionalcomponentparam": [7, 10, 13], "zba_en": 7, "zbb_enabl": 7, "get_modul": [7, 9, 10, 13, 14], "funcunit": [7, 10, 13, 15], "get_optyp": [7, 9, 10, 13, 14], "alufuncunit": 7, "alu_fn": 7, "alufn": 7, "divcompon": 7, "ipc": [7, 27], "3": [7, 10, 14, 17, 29, 32], "div_fn": 7, "divfn": 7, "decodermanag": 7, "fn": 7, "intflag": [7, 10, 29], "div": [7, 10], "divu": [7, 10], "2": [7, 8, 10, 11, 14, 27, 29, 30, 32], "rem": [7, 10], "remu": [7, 10], "8": [7, 8, 10, 11, 29, 30], "__new__": [7, 10, 14, 29], "get_instruct": 7, "valid": [7, 10, 11, 12, 25, 30, 32, 33], "implement": [7, 9, 11, 18, 19, 20, 24, 30, 32, 33], "format": [7, 17, 27, 28, 29, 30, 32], "divunit": 7, "get_input": 7, "arg": [7, 11, 28, 29, 30, 31, 32, 33], "exceptionfuncunit": 7, "unit_fn": 7, "exceptionunitfn": 7, "exceptionunitcompon": [7, 10], "respons": [7, 11, 12, 17, 29, 30, 31], "decode_fn": 7, "exec_fn": [7, 10], "op": [7, 10], "check_optyp": 7, "manag": [7, 17, 19, 29, 30, 32], "enumer": 7, "get_decod": 7, "auto": 7, "pass": [7, 13, 14, 17, 19, 27, 29, 30, 31, 32], "contructor": 7, "get_funct": 7, "get_op_typ": 7, "jumpbranchfuncunit": 7, "jb_fn": 7, "jumpbranchfn": 7, "jumpcompon": [7, 10], "mulcompon": 7, "mul_unit_typ": 7, "multyp": 7, "dsp_width": [7, 8], "mul_fn": 7, "mulfn": 7, "hot": [7, 20, 33], "wire": [7, 32], "5": [7, 10, 24, 30, 31], "differ": [7, 11, 13, 17, 18, 20, 23, 27, 29, 30, 32], "mul": [7, 10], "mulh": [7, 10], "mulhsu": [7, 10], "mulhu": [7, 10], "intenum": [7, 10, 14], "recursive_mul": 7, "fastest": 7, "multipli": [7, 8], "onli": [7, 11, 14, 20, 27, 28, 29, 30, 31, 32], "costli": [7, 20], "term": 7, "resourc": [7, 14, 20, 27, 28], "sequence_mul": 7, "dsp": [7, 8], "balanc": 7, "between": [7, 17, 20, 28, 29, 30, 32, 33], "cost": [7, 19, 28], "shift_mul": 7, "cheapest": 7, "russian": [7, 8], "peasant": [7, 8], "algorithm": [7, 8], "mulunit": 7, "unsign": [7, 8], "integ": [7, 10, 32], "standard": [7, 14, 20, 27, 33], "funcunitlayout": [7, 10, 12, 13], "comput": [7, 8, 9, 14, 20, 30, 32], "mul_typ": 7, "privilegedfn": 7, "mret": [7, 10], "classmethod": [7, 29, 30, 32], "privilegedfuncunit": 7, "gp": [7, 10, 14], "privilegedunitcompon": [7, 10], "shiftfuncunit": 7, "shift_unit_fn": 7, "shiftunitfn": 7, "shiftunitcompon": [7, 10], "clmultipli": 7, "carri": [7, 10, 27], "less": [7, 10], "product": [7, 30], "i1": [7, 8], "n": [7, 8, 10], "factor": 7, "i2": [7, 8], "reset": [7, 14, 19, 29], "new": [7, 9, 11, 14, 19, 20, 29, 30, 32, 33], "busi": 7, "while": [7, 29, 31], "progress": 7, "bit_width": 7, "recursion_depth": 7, "width": [7, 8, 10, 11, 14, 30, 32, 33], "depth": [7, 11, 27, 30], "recurs": [7, 8, 27, 28, 29, 32], "parallel": 7, "assum": [7, 13, 20, 30, 32], "power": [7, 32], "iterative_modul": 7, "recursive_modul": 7, "zbccompon": 7, "zbc_fn": 7, "zbcfn": 7, "clmul": [7, 10], "clmulh": [7, 10], "clmulr": [7, 10], "zbcunit": 7, "execut": [7, 10, 11, 12, 13, 17, 19, 24, 26, 28, 29, 30, 31], "zbsfunction": 7, "in1": 7, "in2": 7, "zbscompon": 7, "bclr": [7, 10], "bext": [7, 10], "binv": [7, 10], "bset": [7, 10], "zbsunit": 7, "zbs_fn": 7, "dspmulunit": 8, "clock": [8, 24, 27, 28, 29, 30], "design": [8, 20, 28, 29], "synthesi": [8, 19], "tool": [8, 17, 27, 29], "o": [8, 20, 28, 29], "same": [8, 9, 17, 28, 29, 30, 32], "number": [8, 10, 11, 13, 17, 20, 27, 29, 30, 31, 32, 33], "mulbaseunsign": 8, "unsignedmulunitlayout": [8, 10], "recursiveunsignedmul": 8, "see": [8, 23, 27, 28, 30], "fast": 8, "within": [8, 17], "sequentialunsignedmul": 8, "sequenti": [8, 11], "classic": [8, 20], "shiftunsignedmul": 8, "cheap": 8, "multi": 8, "lsublockcompon": [9, 10], "blockcomponentparam": [9, 10, 13, 14], "funcblock": [9, 10, 12, 13, 14, 15], "get_rs_entry_count": [9, 10, 13, 14], "lsudummi": 9, "veri": [9, 20, 28], "serial": [9, 13, 30], "all": [9, 10, 11, 14, 17, 19, 20, 23, 28, 29, 30, 32, 33], "store": [9, 10, 13, 14, 20, 25, 26, 29, 30, 32], "load": [9, 10, 20, 30, 32], "isn": [9, 27, 29], "compliant": [9, 27], "riscv": [9, 27], "spec": 9, "doesn": [9, 20, 23, 28, 30], "check": [9, 17, 20, 23, 25, 26, 27, 29, 32], "rang": [9, 29, 30, 31, 32, 33], "reserv": [9, 10, 14, 19, 20], "place": [9, 11, 14, 20, 25, 27, 28, 29, 30], "intruct": 9, "insert": [9, 12, 13, 14, 15, 19, 20, 24, 25], "put": [9, 14, 25, 27, 30], "receiv": [9, 11, 14, 28, 29, 30], "calcul": [9, 30], "end": [9, 10, 13, 20, 30, 32], "further": [9, 17, 30], "get_result": [9, 13, 14, 15, 30], "To": [9, 17, 20, 27, 30, 32], "precommit": [9, 13, 17], "processor": [9, 18, 19, 24], "master": [9, 11, 27], "pmacheck": 9, "physic": [9, 10, 12, 20], "memori": [9, 10, 11, 20, 30], "checker": 9, "mai": [9, 17, 30, 31, 32], "part": [9, 14, 20, 24, 28, 29, 30], "combin": [9, 13, 19, 23, 29, 30, 32], "circuit": [9, 27, 28, 29, 30, 32], "pmalayout": 9, "structlayout": [9, 29, 30, 32], "pmaregion": [9, 10], "contigu": [9, 10], "region": [9, 20], "includ": [9, 27, 28, 29, 30, 32, 33], "both": [9, 25, 28, 29, 30, 32], "begin": [9, 20], "mmio": 9, "true": [9, 10, 11, 28, 29, 30, 31, 32, 33], "indic": [9, 20, 26, 29], "coreconfigur": 10, "func_units_config": 10, "collect": [10, 13, 14, 18, 27, 29, 30, 31, 32, 33], "station": [10, 19], "exampl": [10, 14, 17, 19, 25, 28, 29, 30, 33], "rsblockcompon": [10, 13], "rs_entri": [10, 13, 14], "compress": 10, "enabl": [10, 30, 31, 32], "embed": 10, "reduc": [10, 20, 29], "debug": [10, 17, 32], "hardwar": [10, 19, 24, 28, 30, 32], "disabl": [10, 29, 30, 31], "them": [10, 17, 20, 27, 28, 29, 30, 32], "synthes": [10, 27, 30], "phys_regs_bit": 10, "file": [10, 17, 20, 27, 32], "rob_entries_bit": 10, "reorder": [10, 20, 30], "buffer": [10, 11, 20, 25, 30], "start_pc": 10, "initi": [10, 11, 19, 30, 31], "program": [10, 20, 27, 28], "icache_en": 10, "bypass": 10, "directli": [10, 28, 29], "icache_wai": 10, "icache_sets_bit": 10, "log": [10, 20], "icache_block_size_bit": 10, "allow_partial_extens": 10, "allow": [10, 18, 20, 27, 28, 29, 30, 33], "partial": [10, 29, 30, 32], "_implied_extens": 10, "extenst": 10, "flag": 10, "intern": [10, 19, 28, 29, 30], "definit": [10, 19, 29], "per": [10, 27], "segment": 10, "abc": [10, 29, 30, 31, 32, 33], "func_unit": [10, 13], "csrblockcompon": [10, 14], "6": [10, 20], "7": 10, "factori": [10, 29, 30, 32], "kwarg": [10, 11, 29, 30, 31, 32, 33], "optypes_support": 10, "iter": [10, 13, 14, 29, 30, 31, 32, 33], "dependentcach": [10, 32], "cfg": 10, "addr_width": [10, 11], "length": [10, 20, 29, 32], "word_width": 10, "machin": [10, 14], "num_of_wai": 10, "num_of_sets_bit": 10, "block_size_bit": 10, "btypeinstr": 10, "riscvinstr": 10, "pack": 10, "ebreakinstr": 10, "itypeinstr": 10, "illegalinstr": 10, "jtypeinstr": 10, "rtypeinstr": 10, "stypeinstr": 10, "utypeinstr": 10, "exceptioncaus": 10, "breakpoint": 10, "environment_call_from_m": 10, "environment_call_from_": 10, "9": 10, "environment_call_from_u": 10, "illegal_instruct": 10, "instruction_access_fault": 10, "instruction_address_misalign": 10, "instruction_page_fault": 10, "load_access_fault": 10, "load_address_misalign": 10, "load_page_fault": 10, "store_access_fault": 10, "store_address_misalign": 10, "store_page_fault": 10, "avail": [10, 11, 12, 14, 17, 18, 27, 30], "atom": [10, 25, 28], "b": 10, "512": 10, "manipul": 10, "256": 10, "d": [10, 28, 29, 32], "doubl": [10, 14, 20], "precis": [10, 20, 27], "float": [10, 29, 30, 31, 32], "point": [10, 20, 23, 27], "64": [10, 11], "f": [10, 12, 17, 27, 31], "98366": 10, "contain": [10, 17, 27, 28, 29, 30, 32], "basic": [10, 19, 27, 30], "full": [10, 17, 19, 20, 27, 30], "j": 10, "1024": 10, "dynam": [10, 20, 33], "languag": [10, 28], "l": [10, 17], "decim": 10, "m": [10, 11, 14, 17, 20, 27, 28, 29, 30, 32, 33], "divis": 10, "16384": 10, "user": [10, 14, 20, 27, 30], "level": [10, 11, 18, 20, 27, 28], "interrupt": [10, 19], "p": [10, 17], "4096": 10, "simd": 10, "q": 10, "quad": 10, "2048": 10, "8192": 10, "vector": [10, 12, 19, 20], "xintmachinemod": 10, "8589934592": 10, "categor": 10, "privilieg": 10, "xintsupervisor": 10, "17179869184": 10, "supervisor": [10, 14], "zam": 10, "2097152": 10, "misalign": 10, "zba": 10, "268435456": 10, "extend": [10, 23, 29], "zbb": 10, "536870912": 10, "1073741824": 10, "2147483648": 10, "zdinx": 10, "33554432": 10, "zfh": 10, "4194304": 10, "half": 10, "zfhmin": 10, "8388608": 10, "minim": 10, "zfinx": 10, "16777216": 10, "zhinx": 10, "67108864": 10, "zicntr": 10, "524288": 10, "timer": [10, 14], "zicsr": 10, "32768": 10, "statu": [10, 14, 31], "zifencei": 10, "65536": 10, "zihintntl": 10, "262144": 10, "non": [10, 25, 29, 30], "tempor": 10, "local": [10, 14, 17], "hint": [10, 29], "zihintpaus": 10, "131072": 10, "paus": 10, "energi": 10, "zihpm": 10, "1048576": 10, "zmmul": 10, "134217728": 10, "ztso": 10, "4294967296": 10, "total": 10, "tso": 10, "dev_i": 10, "dev_o": 10, "mem_r": 10, "mem_w": 10, "clz": 10, "1536": 10, "cpop": 10, "1538": 10, "ctz": 10, "1537": 10, "ebreak": 10, "ecal": 10, "770": 10, "orcb": 10, "647": 10, "rev8_32": 10, "1688": 10, "rev8_64": 10, "1720": 10, "sextb": 10, "1540": 10, "sexth": 10, "1541": 10, "sret": 10, "258": 10, "wfi": 10, "261": 10, "zexth": 10, "add": [10, 28, 29, 30, 32], "AND": 10, "andn": 10, "beq": 10, "bge": 10, "bgeu": 10, "blt": 10, "bltu": 10, "bne": 10, "csrrc": 10, "csrrci": 10, "csrr": 10, "csrrsi": 10, "csrrw": 10, "csrrwi": 10, "divuw": 10, "divw": 10, "fencei": 10, "h": [10, 20], "hu": 10, "jalr": 10, "max": [10, 27], "maxu": 10, "min": [10, 30], "minu": 10, "mulw": 10, "OR": 10, "orn": 10, "remuw": 10, "remw": 10, "rev8": 10, "rol": 10, "ror": 10, "sh1add": 10, "sh2add": 10, "sh3add": 10, "sll": 10, "slt": 10, "sltu": 10, "sr": 10, "sub": 10, "w": [10, 20], "xnor": 10, "xor": 10, "36": 10, "52": 10, "20": 10, "48": 10, "muldiv": 10, "sa": 10, "sfencevma": 10, "sl": 10, "gather": 10, "numer": 10, "val": [10, 32], "correspond": [10, 25, 29, 33], "val_log": 10, "relev": [10, 29], "nativ": 10, "reg_cnt": 10, "maximum": [10, 27, 30], "bitwis": 10, "isa_str": 10, "string": 10, "pleas": [10, 17, 23, 28], "refer": [10, 29, 32], "gcc": 10, "": [10, 11, 20, 28, 29, 30, 32, 33], "arch": [10, 17, 27], "detail": [10, 14, 19], "u": [10, 20, 27, 30, 32], "auipc": 10, "branch": [10, 20, 27, 30], "24": 10, "jal": 10, "27": 10, "25": 10, "load_fp": 10, "lui": 10, "misc_mem": 10, "op32": 10, "op_imm": 10, "op_imm_32": 10, "store_fp": 10, "system": [10, 27, 28, 32], "28": [10, 20], "a0": 10, "a1": 10, "a2": 10, "a3": 10, "a4": 10, "a5": 10, "a6": 10, "a7": 10, "17": 10, "fp": [10, 29], "ra": 10, "s0": 10, "s1": 10, "s10": 10, "26": 10, "s11": 10, "s2": 10, "18": 10, "s3": 10, "19": 10, "s4": 10, "s5": 10, "21": 10, "s6": 10, "22": 10, "s7": 10, "23": 10, "s8": 10, "s9": 10, "sp": 10, "t0": 10, "t1": [10, 28], "t2": [10, 28], "t3": 10, "t4": 10, "29": 10, "t5": 10, "30": [10, 20], "t6": 10, "tp": [10, 32], "x1": 10, "x10": 10, "x11": 10, "x12": 10, "x13": 10, "x14": 10, "x15": 10, "x16": 10, "x17": 10, "x18": 10, "x19": 10, "x2": 10, "x20": 10, "x21": 10, "x22": 10, "x23": 10, "x24": 10, "x25": 10, "x26": 10, "x27": 10, "x28": 10, "x29": 10, "x3": 10, "x30": 10, "x31": 10, "x4": 10, "x5": 10, "x6": 10, "x7": 10, "x8": 10, "x9": 10, "asyncinterruptinsertsignalkei": 10, "simplekei": [10, 29, 30, 32], "branchverifykei": 10, "commonbusdatakei": 10, "exceptionreportkei": 10, "fetchresumekei": 10, "unifierkei": [10, 13, 30], "unifi": [10, 30], "alia": 10, "collector": [10, 30], "genericcsrregisterskei": 10, "genericcsrregist": [10, 14], "instructionprecommitkei": 10, "methodtryproduct": [10, 30], "mretkei": 10, "csrlayout": 10, "commonlayoutfield": 10, "commonli": 10, "layoutlistfield": 10, "caus": [10, 20, 30, 32], "piec": 10, "rais": [10, 20, 29, 30, 31, 32], "exec_fn_layout": 10, "op_typ": 10, "reg_id": 10, "id": [10, 12, 25, 26, 29], "reg_val": 10, "some": [10, 14, 20, 23, 28, 29, 30, 32], "regs_l": 10, "logic": [10, 20, 26, 27, 28], "manual": [10, 19, 28], "thei": [10, 11, 14, 17, 20, 24, 27, 28, 29, 30], "regs_p": 10, "rl_dst": 10, "destin": 10, "operand": [10, 20, 25, 26], "rl_s1": 10, "rl_s2": 10, "rob_id": 10, "entri": [10, 12, 13, 20, 24, 25, 26, 30, 32], "rp_dst": 10, "rp_s1": 10, "rp_s2": 10, "s1_val": 10, "s2_val": 10, "side_fx": 10, "side": [10, 14, 20, 25, 26], "effect": [10, 14, 20, 25, 26, 29, 30], "fetcher": 10, "access_fault": 10, "fail": [10, 20, 32], "produc": [10, 17], "jumpbranchlayout": 10, "verify_branch": 10, "predictor": 10, "about": [10, 17, 19, 29, 30, 32], "lsulayout": 10, "ratlayout": [10, 12], "tabl": [10, 19], "old_rp_dst": 10, "previous": [10, 11], "rrat": [10, 14], "rflayout": [10, 12], "roblayout": [10, 12], "done": [10, 20, 27, 28, 29, 30, 31], "yet": [10, 29], "latest": [10, 27, 30], "rob_data": 10, "earliest": [10, 14], "rsinterfacelayout": 10, "rs_entries_bit": 10, "data_layout": [10, 12, 30, 32], "shapelik": [10, 29, 30, 32], "layoutlist": [10, 29, 30, 32], "rslayout": [10, 12], "ready_list": 10, "bitmask": 10, "run": [10, 17, 27, 28, 29, 30, 31, 33], "retirementlayout": 10, "current": [10, 12, 14, 20, 29], "schedulerlayout": 10, "regs_l_rob_in": 10, "befor": [10, 11, 14, 17, 23, 24, 28, 30], "alloc": [10, 12, 24, 25, 26], "regs_p_alloc_out": 10, "rs_entry_id": 10, "rs_select": 10, "confus": 10, "address_gener": 10, "arithmet": 10, "bit_manipul": 10, "bit_rot": 10, "compar": [10, 19], "csr_imm": [10, 14], "csr_reg": [10, 14], "div_rem": 10, "34": 10, "33": 10, "single_bit_manipul": 10, "unary_bit_manipulation_1": 10, "unary_bit_manipulation_2": 10, "unary_bit_manipulation_3": 10, "unary_bit_manipulation_4": 10, "unary_bit_manipulation_5": 10, "unknown": [10, 17, 29, 30, 32], "optypes_required_by_extens": 10, "resolve_impl": 10, "ignore_unsupport": 10, "axiliteinterfac": 11, "abstractinterfac": 11, "abstractsignatur": 11, "read_address": 11, "axilitereadaddressinterfac": 11, "read_data": 11, "axilitereaddatainterfac": 11, "write_address": 11, "axilitewriteaddressinterfac": 11, "write_data": 11, "axilitewritedatainterfac": 11, "write_respons": 11, "axilitewriteresponseinterfac": 11, "axilitemast": 11, "axi": 11, "lite": 11, "axil_param": 11, "axiliteparamet": 11, "ra_request": 11, "channel": 11, "being": [11, 17, 30, 32, 33], "ra_request_layout": 11, "argument": [11, 12, 17, 19, 26, 27, 29, 30, 31, 32, 33], "rd_respons": 11, "availab": 11, "state": [11, 19, 20, 28, 29, 30, 31], "rd_response_layout": 11, "wa_request": 11, "wa_request_layout": 11, "wd_request": 11, "wd_request_layout": 11, "wr_respons": 11, "wr_response_layout": 11, "axil_mast": 11, "result_handl": 11, "tmodul": [11, 14, 28, 29, 30], "start_request_transact": 11, "is_address_channel": 11, "state_machine_request": 11, "request_sign": 11, "data_width": 11, "must": [11, 29, 30, 32], "axilitesignatur": 11, "signatur": 11, "patamet": 11, "axilitemasteradapt": 11, "where": [11, 12, 17, 20, 25, 26, 28, 29, 30, 31, 32], "expect": 11, "busparametersinterfac": 11, "method_layout": 11, "commonbusmastermethodlayout": 11, "request_read": 11, "underli": 11, "request_read_layout": 11, "request_writ": 11, "request_write_layout": 11, "get_read_respons": 11, "action": [11, 14, 29, 30, 32], "read_response_layout": 11, "get_write_respons": 11, "write_response_layout": 11, "prefer": [11, 28], "gain": 11, "simplifi": 11, "interchang": 11, "buse": 11, "sent": [11, 13, 31], "wishbonemasteradapt": 11, "wishbonemast": 11, "pipelinedwishbonemast": 11, "wb_param": 11, "wishboneparamet": 11, "max_req": 11, "limit": [11, 28, 30], "pend": 11, "wb": 11, "request_layout": 11, "complet": [11, 13, 20], "result_layout": 11, "requests_finish": 11, "generate_method_layout": 11, "wishbonearbit": 11, "arbit": 11, "slave": 11, "cyc": 11, "grant": [11, 28, 29, 30, 33], "round": [11, 29, 32, 33], "robin": [11, 29, 33], "num_slav": 11, "devic": 11, "slave_wb": 11, "intefac": 11, "num_mast": 11, "ack": 11, "adr": 11, "dat_r": 11, "dat_w": 11, "err": 11, "lock": [11, 17, 20, 28, 29, 30], "rst": 11, "rty": 11, "stall": [11, 14, 20], "stb": 11, "wb_master": 11, "becom": 11, "wishbonemastermethodlayout": 11, "wishbonememoryslav": 11, "underneath": 11, "keyword": [11, 28, 29, 30, 31, 32], "re": [11, 20, 23, 28, 29], "infer": [11, 29], "wishbonemux": 11, "muxer": 11, "multiplex": [11, 28], "ssel_tga": 11, "corespond": 11, "tga": 11, "so": [11, 13, 20, 27, 28, 29, 30], "note": [11, 14, 30], "stare": 11, "finish": [11, 13, 14, 30], "clear": [11, 25, 26, 30], "delai": [11, 28], "deassert": [11, 33], "master_wb": 11, "singal": 11, "granular": [11, 30], "smallest": 11, "port": [11, 30, 32, 33], "capabl": 11, "wishbonesignatur": 11, "path": [11, 29, 30, 32], "src_loc_at": [11, 32], "prepar": [12, 17, 20, 29], "In": [12, 17, 18, 19, 26, 27, 28, 29, 32], "renam": [12, 24], "without": [12, 13, 20, 30, 32], "stuck": 12, "get_instr": 12, "get_free_reg": 12, "rat_renam": 12, "rob_put": 12, "rf_read1": 12, "rf_read2": 12, "reservation_st": 12, "decoded_instr": 12, "free": [12, 19, 20, 26], "rat_rename_in": 12, "rat_rename_out": 12, "rf_read_out": 12, "rf_read_in": 12, "wakeupselect": 12, "wakeup": [12, 26], "firstli": 12, "get_readi": 12, "binari": [12, 27, 33], "th": [12, 30, 33], "posit": [12, 25, 26, 32], "row": [12, 17, 19], "taken": [12, 27, 29, 30], "take_row": 12, "get_ready_list_out": 12, "take_out": 12, "push": 12, "down": [12, 32], "resultannounc": 13, "mark": [13, 19, 20, 29], "also": [13, 17, 27, 28, 30, 31, 32], "more": [13, 17, 19, 20, 30, 32], "than": [13, 20, 30, 32], "manytooneconnecttran": [13, 30], "rob_mark_don": 13, "rs_updat": 13, "rf_write": 13, "funcblocksunifi": 13, "extra_methods_requir": 13, "get_extra_method": 13, "item": [13, 32, 33], "rob_peek": 13, "rob_retir": 13, "r_rat_commit": 13, "r_rat_peek": 13, "free_rf_put": 13, "rf_free": 13, "exception_cause_get": 13, "exception_cause_clear": 13, "frat_renam": 13, "fetch_continu": [13, 14], "instr_decr": 13, "trap_entri": 13, "rsfuncblock": 13, "With": 13, "csrlistkei": 14, "listkei": [14, 30, 32], "csrregist": 14, "dependencymanag": [14, 29, 30, 31, 32], "behaviour": [14, 27], "automat": [14, 17, 27, 32], "csrunit": 14, "bodi": [14, 28, 29, 30], "csr_val": 14, "els": [14, 20, 28, 29], "_fu_read": 14, "_fu_writ": 14, "ignor": 14, "prioriti": [14, 28, 29, 30], "csr_number": 14, "ro_bit": 14, "mask": [14, 30], "those": [14, 20, 29], "upper": 14, "0b11": 14, "discard": 14, "regitst": 14, "unitl": 14, "resum": 14, "privilegelevel": 14, "csr_access_privileg": 14, "csr_addr": 14, "csraddress": 14, "3072": 14, "cycleh": 14, "3200": 14, "instret": 14, "3074": 14, "instreth": 14, "3202": 14, "mcaus": 14, "834": 14, "mepc": 14, "833": 14, "mtvec": 14, "773": 14, "3073": 14, "timeh": 14, "3201": 14, "doublecountercsr": 14, "group": 14, "At": 14, "overflow": [14, 30], "low_addr": 14, "high_addr": 14, "lower": [14, 32], "higher": 14, "synthetis": 14, "machinemodecsrregist": 14, "exceptioncauseregist": 14, "reorderbuff": 14, "report": 14, "rob_get_indic": 14, "fetch_stall_except": 14, "should_update_priorii": 14, "current_caus": 14, "new_caus": 14, "coreinstructioncount": 14, "count": [14, 17, 30, 33], "leav": [14, 17], "decrement": 14, "interruptcontrol": 14, "frat": 14, "registerfil": 14, "ready_for": 14, "below": [17, 32], "instal": [17, 27], "python": [17, 28, 29, 32], "interpret": [17, 30, 32], "pip": [17, 27], "virtual": 17, "python3": [17, 27], "venv": [17, 27], "project": [17, 18, 20], "directori": [17, 18, 27], "activ": [17, 27, 30, 31, 33], "bin": [17, 27], "librari": [17, 19, 30], "pip3": [17, 27], "dev": [17, 27], "txt": [17, 27], "riscv64": 17, "elf": 17, "binutil": 17, "your": [17, 23], "favourit": 17, "On": [17, 30], "debian": 17, "distro": 17, "hook": [17, 29], "pre": [17, 27], "linter": 17, "ci": [17, 27], "intend": [17, 29], "By": [17, 29, 30], "test_transact": 17, "One": [17, 20, 28, 30, 33], "even": [17, 20, 28, 29, 30], "testschedul": 17, "Or": [17, 28], "test_singl": 17, "search": 17, "name": [17, 28, 29, 30, 31, 32, 33], "match": [17, 25, 26, 33], "queri": 17, "thank": 17, "uniqu": [17, 29, 30], "just": [17, 28, 30], "help": [17, 20, 32], "find": [17, 20, 32], "parameter": 17, "waveform": 17, "vcd": 17, "gtkw": [17, 32], "gtkwave": [17, 32], "__traces__": 17, "driven": 17, "transactron": [17, 19, 28], "__profile__": 17, "analyz": 17, "verbos": [17, 27], "runner": 17, "print": 17, "code": [17, 18, 20, 23, 27, 28, 29, 30, 32, 33], "subcommand": 17, "filenam": 17, "main": [17, 20, 24, 27], "reformat": 17, "black": 17, "check_format": 17, "verifi": [17, 27], "flake8": 17, "check_typ": 17, "pyright": 17, "confront": 17, "would": [17, 20, 28, 30, 32], "messag": 17, "you": [17, 23, 25, 27], "diff": 17, "displai": 17, "chang": [17, 25, 28, 30, 31, 32, 33], "appli": [17, 20, 23, 29, 31], "chose": 17, "locat": [17, 18, 24, 29, 30, 32], "visual": 17, "architectur": [17, 20, 27], "appropri": [17, 25, 30, 31], "prune": [17, 29], "remov": [17, 20], "disconnect": 17, "node": 17, "elk": [17, 29], "eclips": 17, "kernel": [17, 20], "dot": [17, 29, 30], "graphviz": 17, "mermaid": [17, 29], "document": [17, 19], "sphinx": 17, "html": [17, 18], "build": [17, 27, 30], "present": [17, 20, 28, 30, 32], "readabl": [17, 30], "profile_fil": 17, "json": [17, 27, 32], "column": 17, "question": [17, 28], "togeth": [17, 28, 29, 32], "differenti": 17, "ident": [17, 30], "declar": [17, 28, 30, 31], "disambigu": 17, "show": 17, "caller": [17, 28, 29, 30], "condit": [17, 28, 29, 30], "could": [17, 28, 30], "forc": 17, "conflict": [17, 19, 29], "tree": [17, 29, 30], "root": [17, 29], "invert": 17, "children": 17, "how": [17, 20, 25, 27, 29, 30, 32], "mani": [17, 20, 27, 28, 29, 30, 32], "sort": 17, "filter": [17, 30], "regular": 17, "express": [17, 28, 32], "loc": 17, "coreblock": [18, 23, 27], "go": [18, 20, 23, 29], "microarchitectur": 18, "focu": 18, "flexibl": [18, 24], "easili": [18, 30], "experi": 18, "doc": 18, "descript": [18, 19, 27, 30, 32], "overview": [18, 19, 20], "high": [18, 33], "found": [18, 27], "version": [18, 27], "page": [18, 20, 27], "api": [18, 19], "kuznia": [18, 27], "rdzeni": [18, 27], "github": [18, 27], "io": [18, 27], "introduct": 19, "assumpt": [19, 20], "made": [19, 20, 28], "develop": 19, "environ": 19, "up": [19, 26, 27, 32], "script": [19, 27], "run_test": [19, 27], "py": [19, 27], "lint": 19, "sh": 19, "core_graph": 19, "build_doc": 19, "tprof": 19, "framework": [19, 25], "usag": 19, "convent": 19, "advanc": 19, "concept": 19, "special": 19, "domain": [19, 23, 29], "nest": [19, 30], "schema": [19, 29, 30, 32], "structur": [19, 20, 25, 28, 29, 30, 32], "proposit": [19, 20], "slot": [19, 30], "substitut": 19, "clean": 19, "extern": [19, 27, 28, 29], "problem": [19, 20], "checklist": 19, "verif": 19, "reproduct": 19, "benchmark": 19, "regress": 19, "map": [19, 20, 29, 30, 31, 32, 33], "summari": 19, "paper": 19, "old": 19, "softwar": 19, "tlb": 19, "analysi": [19, 29], "strategi": 19, "igpu": 19, "specul": 19, "gpu": 19, "effici": 19, "journal": 20, "articl": 20, "look": [20, 32], "choic": 20, "primari": 20, "relat": [20, 29, 30, 32], "procedur": 20, "chosen": 20, "basi": 20, "improv": [20, 28], "pretti": 20, "1993": 20, "2001": 20, "much": 20, "research": 20, "cpu": 20, "consid": [20, 28, 30], "solv": 20, "instead": [20, 23, 28, 29, 30, 31, 33], "try": [20, 23, 28], "due": [20, 29], "characterist": 20, "easi": [20, 23, 28, 30], "our": [20, 24, 27], "decid": [20, 24, 28], "what": 20, "peopl": 20, "probabl": [20, 31], "lot": 20, "worth": 20, "walker": 20, "cragon": 20, "concurr": [20, 29], "ieee": 20, "vol": 20, "june": 20, "1995": 20, "moudgil": 20, "vassiliadi": 20, "micro": 20, "pp": 20, "58": 20, "67": 20, "februari": 20, "1996": 20, "These": [20, 27, 28], "survei": 20, "topic": 20, "cdc": 20, "6600": 20, "jump": 20, "handler": [20, 31], "ibm360": 20, "stop": [20, 30], "crai": 20, "similar": [20, 27, 28, 30, 33], "here": [20, 25], "bigger": [20, 30], "torng": 20, "martin": 20, "dai": 20, "probe": 20, "idea": [20, 28], "author": 20, "window": 20, "iw": 20, "dispatch": [20, 24, 25, 26], "didn": 20, "context": [20, 29, 30, 32], "copi": [20, 29], "restor": [20, 29], "restart": [20, 33], "few": 20, "big": 20, "overhead": 20, "origin": [20, 29, 30], "unfeas": 20, "becaus": [20, 28, 29, 30], "job": 20, "addition": [20, 30], "But": 20, "mayb": [20, 28], "possibl": [20, 27, 28, 30, 32], "cooper": 20, "smaller": 20, "interest": 20, "propos": 20, "nrp": 20, "No": [20, 30], "itself": [20, 32], "don": [20, 23, 25, 28, 29], "wast": 20, "rememb": [20, 28, 29], "element": [20, 30], "left": [20, 28, 29], "middl": [20, 24], "aamer": 20, "jaleel": 20, "bruce": 20, "jacob": 20, "cours": 20, "switch": [20, 25, 28, 29, 30, 33], "penalti": 20, "alpha": 20, "mip": 20, "concentr": 20, "properti": [20, 27, 29], "short": 20, "inlin": 20, "observ": [20, 30], "import": [20, 28], "enough": 20, "live": 20, "known": 20, "fly": 20, "swap": 20, "nop": 20, "reexecut": 20, "privileg": 20, "contrast": 20, "tendenc": 20, "longer": 20, "hard": [20, 32], "risk": [20, 28, 30], "linux": [20, 27], "purpos": [20, 29, 30], "addit": [20, 27, 28, 32], "hw": 20, "bore": 20, "treat": [20, 24], "mansur": 20, "samadzadeh": 20, "loai": 20, "garalnabi": 20, "checkpoint": 20, "repair": 20, "histori": 20, "futur": [20, 24, 25], "jaikrishnan": 20, "menon": 20, "marc": 20, "de": 20, "kruijf": 20, "karthikeyan": 20, "sankaralingam": 20, "2012": 20, "low": 20, "boundari": 20, "safe": [20, 28, 32], "rewritten": 20, "recompil": 20, "runtim": [20, 29], "subregion": 20, "small": 20, "overrid": 20, "barrier": 20, "warp": 20, "wrong": 20, "split": [20, 24, 30, 31], "prevent": 20, "ivan": 20, "tanas": 20, "isaac": 20, "gelado": 20, "jorda": 20, "eduard": 20, "ayguad": 20, "nacho": 20, "navarro": 20, "2017": 20, "analys": 20, "problemat": 20, "successfulli": 20, "kill": 20, "modif": 20, "usual": [20, 28, 30], "repli": 20, "modifi": [20, 30], "claim": 20, "replai": 20, "queue": [20, 28, 30], "marker": 20, "jerom": 20, "hampton": 20, "2008": 20, "mention": 20, "alli": 20, "bailei": 20, "ab04": 20, "ag": 20, "younger": 20, "repeat": 20, "commun": [20, 25, 28], "canon": 20, "eventu": 20, "aren": [20, 28, 30], "someth": [23, 28, 33], "puzzl": 23, "why": 23, "through": [23, 30], "sure": [23, 31], "yield": [23, 31], "notabl": 23, "settl": 23, "unexpect": 23, "ad": [23, 28, 29, 30, 31, 32, 33], "right": [23, 28, 29], "eq": [23, 28, 29], "record": [23, 28, 29, 30, 31, 32, 33], "statement": [23, 28, 29, 31, 32], "loop": [23, 28], "especi": 23, "simul": [23, 27, 29, 30, 31, 32], "hang": 23, "spot": 23, "yourself": [23, 28], "fix": 23, "mistak": 23, "Its": [24, 28], "task": [24, 29], "rss": 24, "phase": 24, "choos": [24, 27], "potenti": 24, "merg": 24, "optim": 24, "todo": 24, "want": [25, 27, 29, 31, 33], "feel": 25, "anyth": 25, "id_out": [25, 26], "id_rob": [25, 26], "id_rs1": [25, 26], "val_rs1": [25, 26], "id_rs2": [25, 26], "val_rs2": [25, 26], "fill": 25, "id_rsx": 25, "val_rsx": 25, "releas": 25, "comparison": 25, "null": [25, 26], "woken": 26, "invalid": 26, "src1": [26, 30], "src2": [26, 30], "inst_readi": 26, "sever": 27, "besid": 27, "synthesis": 27, "ecp5": 27, "fpga": [27, 30], "target": [27, 30], "realiti": 27, "cocotb": 27, "assembl": 27, "deliv": 27, "histor": 27, "dedic": [27, 30], "subpag": 27, "built": 27, "docker": 27, "publicli": 27, "subsect": 27, "recreat": 27, "command": [27, 31], "platform": [27, 28, 29], "amd64": 27, "synth": 27, "amaranthsynthecp5": 27, "dockerfil": 27, "complex": [27, 30], "although": 27, "educ": 27, "practic": 27, "frequenc": 27, "too": [27, 29], "met": [27, 29], "whether": [27, 29, 33], "cell": 27, "ram": 27, "dff": 27, "repo": 27, "sudo": 27, "pull": 27, "ghcr": 27, "rm": 27, "git": 27, "clone": 27, "http": 27, "com": 27, "cd": 27, "apt": 27, "upgrad": 27, "pythonhashse": 27, "config": 27, "parse_benchmark_info": 27, "cat": 27, "abov": [27, 28], "verilog": [27, 32], "yosi": 27, "nextpnr": 27, "bitstream": 27, "strength": 27, "modular": [27, 28], "littl": 27, "effort": 27, "gate": 27, "rout": 27, "prjtrelli": 27, "measur": [27, 30], "theori": 27, "increas": [27, 28, 30], "fmax": 27, "avoid": [27, 28], "pitfal": 27, "affect": 27, "throughput": [27, 30], "monitor": 27, "accuraci": 27, "embench": 27, "compil": [27, 28, 31], "gnu": 27, "toolchain": 27, "glibc": 27, "subset": 27, "exact": [27, 29], "onc": [27, 28, 29, 30, 33], "veril": 27, "featur": [27, 28], "stub": 27, "compat": [27, 30], "host": 27, "init": [27, 30], "mount": 27, "subdirectori": 27, "share": 27, "surviv": 27, "close": 27, "exit": 27, "gen_verilog": 27, "run_benchmark": 27, "inspir": 28, "bluespec": 28, "wiki": 28, "entrieti": 28, "doe": [28, 31, 33], "link": 28, "indirectli": [28, 29], "coordin": 28, "direct": [28, 29, 30], "back": 28, "simplest": 28, "myth": 28, "def": [28, 29], "elabor": 28, "self": [28, 31], "comb": [28, 29], "sig1": 28, "expr1": 28, "sync": [28, 29], "sig2": 28, "expr2": 28, "arg_expr": 28, "analog": 28, "typic": [28, 29, 30], "myotherth": 28, "my_method": 28, "input_layout": 28, "output_layout": 28, "def_method": [28, 29], "_": [28, 29], "other_method": 28, "ret_expr": 28, "techniqu": 28, "conveni": [28, 29], "syntax": [28, 29], "particular": 28, "unnam": 28, "around": 28, "sometim": 28, "might": [28, 29, 32], "altern": [28, 29, 30], "best": 28, "ask": 28, "thing": [28, 30, 32], "doubt": 28, "noth": 28, "Such": [28, 31], "adaptertran": [28, 30], "though": 28, "cleaner": 28, "suppos": 28, "foo": [28, 30], "bar": [28, 30], "cleanest": 28, "recommend": 28, "foo_expr": 28, "bar_expr": 28, "final": 28, "rec": 28, "layout2": 28, "foobar": 28, "baz": 28, "42": 28, "method2": [28, 30], "baz_expr": 28, "method3": 28, "expr": 28, "mechan": [28, 30], "certain": 28, "occas": 28, "facilit": 28, "ones": 28, "connecttran": [28, 30], "plain": [28, 29, 30], "testbench": [28, 30], "own": [28, 29], "variant": 28, "role": 28, "omit": [28, 29, 30], "unneed": 28, "av_comb": [28, 29], "top_comb": [28, 29], "avoidedif": [28, 29], "guard": [28, 29, 30], "therefor": 28, "induc": 28, "often": 28, "belong": 28, "move": [28, 30], "top": [28, 32], "caveat": 28, "normal": 28, "cannot": [28, 29, 30], "schedule_befor": 28, "first_t_or_m": 28, "other_t_or_m": 28, "lift": 28, "first_m": 28, "other_t": 28, "situat": [28, 29], "mutual": [28, 30], "exclus": [28, 29, 30], "similarli": 28, "add_conflict": [28, 29], "undefin": [28, 29], "other_m": 28, "come": 28, "consider": 28, "parent": 28, "convers": 28, "impli": 28, "amaranth_ext": [29, 32], "transactionbas": 29, "serv": [29, 30], "simultena": 29, "transactionmanag": [29, 31], "rest": 29, "behavior": [29, 30, 32], "combination": 29, "data_out": [29, 30], "data_in": [29, 30], "methodstruct": [29, 30], "shape": [29, 32], "shapecast": [29, 32], "forwardref": [29, 31, 32], "nonexclus": 29, "single_cal": [29, 30], "src_loc": [29, 30, 32], "variabl": [29, 33], "happen": 29, "thrown": 29, "srcloc": [29, 30, 32], "stack": [29, 30, 32], "frame": [29, 30, 32], "deep": [29, 30], "const": [29, 30], "d1": [29, 30], "d0": 29, "validate_argu": 29, "callabl": [29, 30, 31, 32], "combinationi": 29, "valuelik": [29, 30], "my_sum_method": 29, "arg1": 29, "arg2": 29, "sum": [29, 30], "_rec": [29, 30, 31, 32, 33], "signalbundl": [29, 30, 31, 32, 33], "layout_in": 29, "layout_out": 29, "static": [29, 32], "construct": [29, 30], "blueprint": 29, "freshli": 29, "proxi": 29, "priorit": 29, "modulelik": [29, 30, 32, 33], "amount": [29, 31], "useless": 29, "multplex": 29, "unguard": 29, "synchron": [29, 30], "cond": [29, 30], "pattern": 29, "elif": 29, "fsm": 29, "ctrl_path": 29, "noreturn": 29, "regularli": 29, "explicit": 29, "implicit": 29, "aris": 29, "pair": [29, 30], "runnabl": 29, "transactioncontext": 29, "care": [29, 30], "never": 29, "cc_schedul": 29, "methodmap": [29, 30], "_dsl": 29, "eager_deterministic_cc_schedul": 29, "add_transact": 29, "print_info": 29, "cgr": 29, "porder": 29, "cc": 29, "method_map": 29, "visual_graph": 29, "fragment": 29, "transactionmanagerkei": 29, "transactionmodul": 29, "wrapper": 29, "dependency_manag": [29, 31], "transaction_manag": [29, 31], "wrap": [29, 31], "dependencycontext": [29, 32], "decor": [29, 31], "eleg": 29, "dictionari": 29, "whose": 29, "gr": 29, "eager": 29, "subsystem": [29, 33], "fair": 29, "lowest": 29, "highest": [29, 33], "arbitr": [29, 33], "agent": [29, 33], "transactiongraph": 29, "vertic": 29, "edg": [29, 30], "priorityord": 29, "linear": 29, "consist": [29, 32], "constraint": 29, "trivial_roundrobin_cc_schedul": 29, "mainli": 29, "extract": 29, "IN": 29, "inout": 29, "owner": 29, "ownershipgraph": 29, "dump": 29, "liter": [29, 33], "dump_dot": 29, "indent": [29, 30, 32], "dump_elk": 29, "dump_mermaid": 29, "get_hier_nam": 29, "obj": 29, "hierarch": 29, "keyerror": [29, 30, 32], "get_nam": 29, "insert_edg": 29, "fr": 29, "insert_nod": 29, "mermaid_direct": 29, "empti": [29, 30], "subgraph": 29, "remember_field": 29, "owner_id": 29, "methodsampl": 29, "transactions_and_method": 29, "profileinfo": 29, "cycleprofil": 29, "analyze_method": 29, "runstatnod": 29, "analyze_transact": 29, "file_nam": [29, 32], "from_dict": [29, 30, 32], "kv": [29, 30, 32], "union": [29, 30, 31, 32], "infer_miss": [29, 30, 32], "from_json": [29, 30, 32], "bytearrai": [29, 30, 32], "parse_float": [29, 30, 32], "parse_int": [29, 30, 32], "parse_const": [29, 30, 32], "kw": [29, 30, 32], "exclud": [29, 30, 32], "load_onli": [29, 30, 32], "dump_onli": [29, 30, 32], "schemaf": [29, 30, 32], "to_dict": [29, 30, 32], "encode_json": [29, 30, 32], "to_json": [29, 30, 32], "skipkei": [29, 30, 32], "ensure_ascii": [29, 30, 32], "check_circular": [29, 30, 32], "allow_nan": [29, 30, 32], "sort_kei": [29, 30, 32], "profiledata": [29, 32], "individu": 29, "method_par": 29, "transactions_by_method": 29, "transaction_conflict": 29, "is_transact": 29, "profilesampl": 29, "transactionsampl": 29, "runstat": 29, "statist": 29, "did": 29, "info": 29, "summar": 29, "stat": 29, "tracingenabl": 29, "tracingfrag": 29, "lose": 29, "difficult": 29, "copyright": 29, "subfrag": 29, "_ir": [29, 32], "tracingfragmenttransform": 29, "fragmenttransform": 29, "on_frag": 29, "tracinginst": 29, "adapterbas": [30, 31], "mock": [30, 31], "en": [30, 31], "clickin": 30, "click": 30, "interact": 30, "rise": 30, "btn": 30, "dat": 30, "retriev": 30, "clickout": 30, "led": [30, 32], "flow": 30, "revers": 30, "possibli": 30, "rev_layout": 30, "vice": 30, "versa": 30, "method1": 30, "respect": 30, "fulfil": 30, "fifo_typ": 30, "syncfifo": 30, "fifotyp": 30, "conform": 30, "equival": 30, "put_result": 30, "dependencykei": [30, 32], "concret": [30, 32], "frozen": [30, 32], "lock_on_get": [30, 32], "get_depend": [30, 32], "empty_valid": [30, 32], "add_depend": [30, 32], "give": [30, 32], "track": [30, 32], "across": [30, 32], "multpl": [30, 32], "dependeci": [30, 32], "default_valu": [30, 32], "wish": 30, "custom": 30, "basicfifo": 30, "reiniti": 30, "semaphor": 30, "max_count": 30, "hardwaremetricsmanag": 30, "compos": 30, "get_metr": 30, "hwmetric": 30, "get_register_valu": 30, "metric_nam": 30, "reg_nam": 30, "qualifi": 30, "histogram": 30, "bucket": 30, "hwcounter": 30, "fully_qualified_nam": 30, "width_bit": 30, "human": 30, "incr": 30, "hwexphistogram": 30, "exponenti": 30, "distribut": 30, "sampl": 30, "durat": 30, "inf": 30, "minimum": 30, "bucket_count": 30, "sample_width": 30, "registers_width": 30, "max_valu": 30, "abl": 30, "metricmodel": 30, "add_regist": 30, "reg": [30, 32], "hwmetricregist": 30, "inherit": 30, "metrics_en": 30, "hwmetricsenabledkei": 30, "theirs": 30, "latencymeasur": 30, "event": 30, "slots_numb": 30, "max_lat": 30, "turn": [30, 32], "oldest": 30, "compris": 30, "join": 30, "metricregistermodel": 30, "fundament": 30, "singular": 30, "among": [30, 32], "reman": 30, "brief": 30, "argumentstoresultszipp": 30, "zip": 30, "cut": 30, "critic": 30, "calle": 30, "asymmetri": 30, "correctli": 30, "rate": 30, "reach": [30, 33], "capac": 30, "topologi": 30, "write_arg": 30, "args_layout": 30, "write_result": 30, "results_layout": 30, "client": 30, "somethig": 30, "server": 30, "deseri": 30, "proper": 30, "serialize_in": 30, "serialized_req_method": 30, "serialize_out": 30, "serialized_resp_method": 30, "port_count": 30, "len": 30, "resist": 30, "nonblock": 30, "overlap": 30, "boolean": 30, "catch": 30, "reason": 30, "influenc": 30, "cond1": 30, "cond2": 30, "memorybank": 30, "read_req": 30, "read_resp": 30, "elem_count": 30, "safe_writ": 30, "optimis": 30, "eg": 30, "x": [30, 32], "later": 30, "cattran": 30, "concaten": 30, "third": 30, "dst": 30, "method_list": 30, "connectandmaptran": 30, "behav": 30, "i_fun": 30, "recorddict": 30, "o_fun": 30, "methodfilt": 30, "desir": 30, "use_condit": 30, "drawback": 30, "simultaneu": 30, "bidirect": 30, "i_transform": 30, "o_transform": 30, "unmodifi": 30, "methodproduct": 30, "arbitrari": 30, "tri": 30, "succeed": 30, "make_assert_handl": 31, "my_assert": 31, "get_output": 31, "coreblockscommand": 31, "recordintdict": 31, "set_input": 31, "recordvaluedict": 31, "write_vcd_ext": 31, "engin": 31, "vcd_file": 31, "gtkw_file": 31, "now": 31, "pysimsimul": 31, "max_cycl": 31, "100000": 31, "add_transaction_modul": 31, "traces_fil": 31, "clk_period": 31, "1e": 31, "add_sync_process": 31, "add_process": 31, "passiv": 31, "add_clock": 31, "simpletestcircuit": 31, "_t_haselabor": 31, "dut": 31, "syncprocesswrapp": 31, "testcasewithsimul": 31, "testcas": 31, "valueerror": [31, 32], "add_all_mock": 31, "sim": 31, "frame_loc": 31, "add_class_mock": 31, "add_local_mock": 31, "random_wait": 31, "max_cycle_cnt": 31, "min_cycle_cnt": 31, "random_wait_geom": 31, "prob": 31, "till": 31, "run_simul": 31, "tick": 31, "cycle_cnt": 31, "guard_nested_collect": 31, "_t_nested_collect": 31, "profiler_process": 31, "def_method_mock": 31, "tb_getter": 31, "sched_prio": 31, "method_handle_loop": 31, "invoc": 31, "defer": 31, "sinc": 31, "evalu": 31, "eagerli": 31, "kwdata": 31, "call_do": 31, "call_init": 31, "call_result": 31, "call_tri": 31, "method_argu": 31, "method_handl": 31, "extra_settle_count": 31, "method_return": 31, "set_en": 31, "wait_until_don": 31, "assertkei": 32, "assert_bit": 32, "bug": 32, "otherwis": [32, 33], "detect": 32, "termin": 32, "warn": 32, "board": 32, "assigntyp": 32, "rh": 32, "lh": 32, "assignarg": 32, "assignfield": 32, "lhs_strict": 32, "rhs_strict": 32, "mismatch": 32, "accord": 32, "explicitli": 32, "castabl": 32, "subfield": 32, "align_down_to_power_of_two": 32, "num": 32, "align_to_power_of_two": 32, "average_dict_of_list": 32, "bits_from_int": 32, "int_to_sign": 32, "convert": 32, "u2": 32, "represent": [32, 33], "sign": 32, "layout_subset": 32, "make_hash": 32, "neg": 32, "negat": 32, "signed_to_int": 32, "auto_debug_sign": 32, "arrai": 32, "cl": 32, "assertloc": 32, "denot": 32, "lead": 32, "generationinfo": 32, "variou": 32, "metrics_loc": 32, "metricinfo": 32, "metadata": 32, "metricloc": 32, "transaction_signals_loc": 32, "transactionsignalsloc": 32, "method_signals_loc": 32, "methodsignalsloc": 32, "profile_data": 32, "consit": 32, "generate_verilog": 32, "top_modul": 32, "top_nam": 32, "idgener": 32, "def_help": 32, "func": 32, "from_method_layout": 32, "get_caller_class_nam": 32, "get_src_loc": 32, "method_def_help": 32, "mock_def_help": 32, "tb": 32, "silence_mustus": 32, "moduleconnector": 33, "anonym": 33, "onehotswitch": 33, "style": 33, "benefit": 33, "sig": 33, "onehotcas": 33, "0b01": 33, "0b10": 33, "onehotswitchdynam": 33, "signifi": 33, "roundrobin": 33, "greater": 33, "enableinsert": 33, "count_leading_zero": 33, "count_trailing_zero": 33, "flatten_sign": 33, "flatten": 33, "mod_incr": 33, "mod": 33, "popcount": 33}, "objects": {"": [[4, 0, 0, "-", "coreblocks"], [29, 0, 0, "-", "transactron"]], "coreblocks": [[5, 0, 0, "-", "cache"], [4, 0, 0, "-", "core"], [6, 0, 0, "-", "frontend"], [7, 0, 0, "-", "fu"], [9, 0, 0, "-", "lsu"], [10, 0, 0, "-", "params"], [11, 0, 0, "-", "peripherals"], [12, 0, 0, "-", "scheduler"], [13, 0, 0, "-", "stages"], [14, 0, 0, "-", "structs_common"], [15, 0, 0, "-", "utils"]], "coreblocks.cache": [[5, 0, 0, "-", "icache"], [5, 0, 0, "-", "iface"], [5, 0, 0, "-", "refiller"]], "coreblocks.cache.icache": [[5, 1, 1, "", "ICache"], [5, 1, 1, "", "ICacheBypass"]], "coreblocks.cache.icache.ICache": [[5, 2, 1, "", "__init__"], [5, 2, 1, "", "deserialize_addr"], [5, 2, 1, "", "serialize_addr"]], "coreblocks.cache.icache.ICacheBypass": [[5, 2, 1, "", "__init__"]], "coreblocks.cache.iface": [[5, 1, 1, "", "CacheInterface"], [5, 1, 1, "", "CacheRefillerInterface"]], "coreblocks.cache.iface.CacheInterface": [[5, 3, 1, "", "accept_res"], [5, 3, 1, "", "flush"], [5, 3, 1, "", "issue_req"]], "coreblocks.cache.iface.CacheRefillerInterface": [[5, 3, 1, "", "accept_refill"], [5, 3, 1, "", "start_refill"]], "coreblocks.cache.refiller": [[5, 1, 1, "", "SimpleCommonBusCacheRefiller"]], "coreblocks.cache.refiller.SimpleCommonBusCacheRefiller": [[5, 2, 1, "", "__init__"]], "coreblocks.core": [[4, 1, 1, "", "Core"]], "coreblocks.core.Core": [[4, 2, 1, "", "__init__"]], "coreblocks.frontend": [[6, 0, 0, "-", "decode_stage"], [6, 0, 0, "-", "fetch"], [6, 0, 0, "-", "instr_decoder"], [6, 0, 0, "-", "instr_description"], [6, 0, 0, "-", "rvc"]], "coreblocks.frontend.decode_stage": [[6, 1, 1, "", "DecodeStage"]], "coreblocks.frontend.decode_stage.DecodeStage": [[6, 2, 1, "", "__init__"]], "coreblocks.frontend.fetch": [[6, 1, 1, "", "Fetch"], [6, 1, 1, "", "UnalignedFetch"]], "coreblocks.frontend.fetch.Fetch": [[6, 2, 1, "", "__init__"]], "coreblocks.frontend.fetch.UnalignedFetch": [[6, 2, 1, "", "__init__"]], "coreblocks.frontend.instr_decoder": [[6, 1, 1, "", "InstrDecoder"]], "coreblocks.frontend.instr_decoder.InstrDecoder": [[6, 2, 1, "", "__init__"]], "coreblocks.frontend.instr_description": [[6, 1, 1, "", "Encoding"]], "coreblocks.frontend.instr_description.Encoding": [[6, 2, 1, "", "__init__"], [6, 3, 1, "", "funct12"], [6, 3, 1, "", "funct3"], [6, 3, 1, "", "funct7"], [6, 3, 1, "", "instr_type_override"], [6, 3, 1, "", "opcode"], [6, 3, 1, "", "rd_zero"], [6, 3, 1, "", "rs1_zero"]], "coreblocks.frontend.rvc": [[6, 1, 1, "", "InstrDecompress"], [6, 4, 1, "", "is_instr_compressed"]], "coreblocks.frontend.rvc.InstrDecompress": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "decompr_reg"], [6, 2, 1, "", "instr_mux"]], "coreblocks.fu": [[7, 0, 0, "-", "alu"], [7, 0, 0, "-", "div_unit"], [7, 0, 0, "-", "exception"], [7, 0, 0, "-", "fu_decoder"], [7, 0, 0, "-", "jumpbranch"], [7, 0, 0, "-", "mul_unit"], [7, 0, 0, "-", "priv"], [7, 0, 0, "-", "shift_unit"], [8, 0, 0, "-", "unsigned_multiplication"], [7, 0, 0, "-", "zbc"], [7, 0, 0, "-", "zbs"]], "coreblocks.fu.alu": [[7, 1, 1, "", "ALUComponent"], [7, 1, 1, "", "AluFuncUnit"]], "coreblocks.fu.alu.ALUComponent": [[7, 2, 1, "", "__init__"], [7, 2, 1, "", "get_module"], [7, 2, 1, "", "get_optypes"]], "coreblocks.fu.alu.AluFuncUnit": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.div_unit": [[7, 1, 1, "", "DivComponent"], [7, 1, 1, "", "DivFn"], [7, 1, 1, "", "DivUnit"], [7, 4, 1, "", "get_input"]], "coreblocks.fu.div_unit.DivComponent": [[7, 2, 1, "", "__init__"], [7, 3, 1, "", "div_fn"], [7, 2, 1, "", "get_module"], [7, 2, 1, "", "get_optypes"], [7, 3, 1, "", "ipc"]], "coreblocks.fu.div_unit.DivFn": [[7, 1, 1, "", "Fn"], [7, 2, 1, "", "get_instructions"]], "coreblocks.fu.div_unit.DivFn.Fn": [[7, 3, 1, "", "DIV"], [7, 3, 1, "", "DIVU"], [7, 3, 1, "", "REM"], [7, 3, 1, "", "REMU"], [7, 2, 1, "", "__new__"]], "coreblocks.fu.div_unit.DivUnit": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.exception": [[7, 1, 1, "", "ExceptionFuncUnit"], [7, 1, 1, "", "ExceptionUnitComponent"]], "coreblocks.fu.exception.ExceptionFuncUnit": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.exception.ExceptionUnitComponent": [[7, 2, 1, "", "__init__"], [7, 2, 1, "", "get_module"], [7, 2, 1, "", "get_optypes"]], "coreblocks.fu.fu_decoder": [[7, 1, 1, "", "Decoder"], [7, 1, 1, "", "DecoderManager"]], "coreblocks.fu.fu_decoder.Decoder": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.fu_decoder.DecoderManager": [[7, 3, 1, "", "Fn"], [7, 2, 1, "", "get_decoder"], [7, 2, 1, "", "get_function"], [7, 2, 1, "", "get_instructions"], [7, 2, 1, "", "get_op_types"]], "coreblocks.fu.jumpbranch": [[7, 1, 1, "", "JumpBranchFuncUnit"], [7, 1, 1, "", "JumpComponent"]], "coreblocks.fu.jumpbranch.JumpBranchFuncUnit": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.jumpbranch.JumpComponent": [[7, 2, 1, "", "__init__"], [7, 2, 1, "", "get_module"], [7, 2, 1, "", "get_optypes"]], "coreblocks.fu.mul_unit": [[7, 1, 1, "", "MulComponent"], [7, 1, 1, "", "MulFn"], [7, 1, 1, "", "MulType"], [7, 1, 1, "", "MulUnit"]], "coreblocks.fu.mul_unit.MulComponent": [[7, 2, 1, "", "__init__"], [7, 3, 1, "", "dsp_width"], [7, 2, 1, "", "get_module"], [7, 2, 1, "", "get_optypes"], [7, 3, 1, "", "mul_fn"], [7, 3, 1, "", "mul_unit_type"]], "coreblocks.fu.mul_unit.MulFn": [[7, 1, 1, "", "Fn"], [7, 2, 1, "", "get_instructions"]], "coreblocks.fu.mul_unit.MulFn.Fn": [[7, 3, 1, "", "MUL"], [7, 3, 1, "", "MULH"], [7, 3, 1, "", "MULHSU"], [7, 3, 1, "", "MULHU"], [7, 2, 1, "", "__new__"]], "coreblocks.fu.mul_unit.MulType": [[7, 3, 1, "", "RECURSIVE_MUL"], [7, 3, 1, "", "SEQUENCE_MUL"], [7, 3, 1, "", "SHIFT_MUL"], [7, 2, 1, "", "__new__"]], "coreblocks.fu.mul_unit.MulUnit": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.priv": [[7, 1, 1, "", "PrivilegedFn"], [7, 1, 1, "", "PrivilegedFuncUnit"], [7, 1, 1, "", "PrivilegedUnitComponent"]], "coreblocks.fu.priv.PrivilegedFn": [[7, 1, 1, "", "Fn"], [7, 2, 1, "", "get_instructions"]], "coreblocks.fu.priv.PrivilegedFn.Fn": [[7, 3, 1, "", "MRET"], [7, 2, 1, "", "__new__"]], "coreblocks.fu.priv.PrivilegedFuncUnit": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.priv.PrivilegedUnitComponent": [[7, 2, 1, "", "get_module"], [7, 2, 1, "", "get_optypes"]], "coreblocks.fu.shift_unit": [[7, 1, 1, "", "ShiftFuncUnit"], [7, 1, 1, "", "ShiftUnitComponent"]], "coreblocks.fu.shift_unit.ShiftFuncUnit": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.shift_unit.ShiftUnitComponent": [[7, 2, 1, "", "__init__"], [7, 2, 1, "", "get_module"], [7, 2, 1, "", "get_optypes"]], "coreblocks.fu.unsigned_multiplication": [[8, 0, 0, "-", "common"], [8, 0, 0, "-", "fast_recursive"], [8, 0, 0, "-", "sequence"], [8, 0, 0, "-", "shift"]], "coreblocks.fu.unsigned_multiplication.common": [[8, 1, 1, "", "DSPMulUnit"], [8, 1, 1, "", "MulBaseUnsigned"]], "coreblocks.fu.unsigned_multiplication.common.DSPMulUnit": [[8, 2, 1, "", "__init__"]], "coreblocks.fu.unsigned_multiplication.common.MulBaseUnsigned": [[8, 2, 1, "", "__init__"]], "coreblocks.fu.unsigned_multiplication.fast_recursive": [[8, 1, 1, "", "RecursiveUnsignedMul"]], "coreblocks.fu.unsigned_multiplication.fast_recursive.RecursiveUnsignedMul": [[8, 2, 1, "", "__init__"]], "coreblocks.fu.unsigned_multiplication.sequence": [[8, 1, 1, "", "SequentialUnsignedMul"]], "coreblocks.fu.unsigned_multiplication.sequence.SequentialUnsignedMul": [[8, 2, 1, "", "__init__"]], "coreblocks.fu.unsigned_multiplication.shift": [[8, 1, 1, "", "ShiftUnsignedMul"]], "coreblocks.fu.unsigned_multiplication.shift.ShiftUnsignedMul": [[8, 2, 1, "", "__init__"]], "coreblocks.fu.zbc": [[7, 1, 1, "", "ClMultiplier"], [7, 1, 1, "", "ZbcComponent"], [7, 1, 1, "", "ZbcFn"], [7, 1, 1, "", "ZbcUnit"]], "coreblocks.fu.zbc.ClMultiplier": [[7, 2, 1, "", "__init__"], [7, 2, 1, "", "iterative_module"], [7, 2, 1, "", "recursive_module"]], "coreblocks.fu.zbc.ZbcComponent": [[7, 2, 1, "", "__init__"], [7, 2, 1, "", "get_module"], [7, 2, 1, "", "get_optypes"], [7, 3, 1, "", "recursion_depth"], [7, 3, 1, "", "zbc_fn"]], "coreblocks.fu.zbc.ZbcFn": [[7, 1, 1, "", "Fn"], [7, 2, 1, "", "get_instructions"]], "coreblocks.fu.zbc.ZbcFn.Fn": [[7, 3, 1, "", "CLMUL"], [7, 3, 1, "", "CLMULH"], [7, 3, 1, "", "CLMULR"], [7, 2, 1, "", "__new__"]], "coreblocks.fu.zbc.ZbcUnit": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.zbs": [[7, 1, 1, "", "Zbs"], [7, 1, 1, "", "ZbsComponent"], [7, 1, 1, "", "ZbsFunction"], [7, 1, 1, "", "ZbsUnit"]], "coreblocks.fu.zbs.Zbs": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.zbs.ZbsComponent": [[7, 2, 1, "", "__init__"], [7, 2, 1, "", "get_module"], [7, 2, 1, "", "get_optypes"]], "coreblocks.fu.zbs.ZbsFunction": [[7, 1, 1, "", "Fn"], [7, 2, 1, "", "get_instructions"]], "coreblocks.fu.zbs.ZbsFunction.Fn": [[7, 3, 1, "", "BCLR"], [7, 3, 1, "", "BEXT"], [7, 3, 1, "", "BINV"], [7, 3, 1, "", "BSET"], [7, 2, 1, "", "__new__"]], "coreblocks.fu.zbs.ZbsUnit": [[7, 2, 1, "", "__init__"]], "coreblocks.lsu": [[9, 0, 0, "-", "dummyLsu"], [9, 0, 0, "-", "pma"]], "coreblocks.lsu.dummyLsu": [[9, 1, 1, "", "LSUBlockComponent"], [9, 1, 1, "", "LSUDummy"]], "coreblocks.lsu.dummyLsu.LSUBlockComponent": [[9, 2, 1, "", "get_module"], [9, 2, 1, "", "get_optypes"], [9, 2, 1, "", "get_rs_entry_count"]], "coreblocks.lsu.dummyLsu.LSUDummy": [[9, 2, 1, "", "__init__"]], "coreblocks.lsu.pma": [[9, 1, 1, "", "PMAChecker"], [9, 1, 1, "", "PMALayout"], [9, 1, 1, "", "PMARegion"]], "coreblocks.lsu.pma.PMAChecker": [[9, 2, 1, "", "__init__"]], "coreblocks.lsu.pma.PMALayout": [[9, 2, 1, "", "__init__"]], "coreblocks.lsu.pma.PMARegion": [[9, 2, 1, "", "__init__"], [9, 3, 1, "", "end"], [9, 3, 1, "", "mmio"], [9, 3, 1, "", "start"]], "coreblocks.params": [[10, 0, 0, "-", "configurations"], [10, 0, 0, "-", "fu_params"], [10, 0, 0, "-", "genparams"], [10, 0, 0, "-", "icache_params"], [10, 0, 0, "-", "instr"], [10, 0, 0, "-", "isa"], [10, 0, 0, "-", "keys"], [10, 0, 0, "-", "layouts"], [10, 0, 0, "-", "optypes"]], "coreblocks.params.configurations": [[10, 1, 1, "", "CoreConfiguration"]], "coreblocks.params.configurations.CoreConfiguration": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "allow_partial_extensions"], [10, 3, 1, "", "compressed"], [10, 3, 1, "", "debug_signals"], [10, 3, 1, "", "embedded"], [10, 3, 1, "", "func_units_config"], [10, 3, 1, "", "icache_block_size_bits"], [10, 3, 1, "", "icache_enable"], [10, 3, 1, "", "icache_sets_bits"], [10, 3, 1, "", "icache_ways"], [10, 3, 1, "", "phys_regs_bits"], [10, 3, 1, "", "pma"], [10, 2, 1, "", "replace"], [10, 3, 1, "", "rob_entries_bits"], [10, 3, 1, "", "start_pc"], [10, 3, 1, "", "xlen"]], "coreblocks.params.fu_params": [[10, 1, 1, "", "BlockComponentParams"], [10, 1, 1, "", "FunctionalComponentParams"], [10, 4, 1, "", "optypes_supported"]], "coreblocks.params.fu_params.BlockComponentParams": [[10, 2, 1, "", "get_module"], [10, 2, 1, "", "get_optypes"], [10, 2, 1, "", "get_rs_entry_count"]], "coreblocks.params.fu_params.FunctionalComponentParams": [[10, 2, 1, "", "get_module"], [10, 2, 1, "", "get_optypes"]], "coreblocks.params.genparams": [[10, 1, 1, "", "GenParams"]], "coreblocks.params.genparams.GenParams": [[10, 2, 1, "", "__init__"]], "coreblocks.params.icache_params": [[10, 1, 1, "", "ICacheParameters"]], "coreblocks.params.icache_params.ICacheParameters": [[10, 2, 1, "", "__init__"]], "coreblocks.params.instr": [[10, 1, 1, "", "BTypeInstr"], [10, 1, 1, "", "EBreakInstr"], [10, 1, 1, "", "ITypeInstr"], [10, 1, 1, "", "IllegalInstr"], [10, 1, 1, "", "JTypeInstr"], [10, 1, 1, "", "RTypeInstr"], [10, 1, 1, "", "STypeInstr"], [10, 1, 1, "", "UTypeInstr"]], "coreblocks.params.instr.BTypeInstr": [[10, 2, 1, "", "__init__"], [10, 2, 1, "", "pack"]], "coreblocks.params.instr.EBreakInstr": [[10, 2, 1, "", "__init__"]], "coreblocks.params.instr.ITypeInstr": [[10, 2, 1, "", "__init__"], [10, 2, 1, "", "pack"]], "coreblocks.params.instr.IllegalInstr": [[10, 2, 1, "", "__init__"], [10, 2, 1, "", "pack"]], "coreblocks.params.instr.JTypeInstr": [[10, 2, 1, "", "__init__"], [10, 2, 1, "", "pack"]], "coreblocks.params.instr.RTypeInstr": [[10, 2, 1, "", "__init__"], [10, 2, 1, "", "pack"]], "coreblocks.params.instr.STypeInstr": [[10, 2, 1, "", "__init__"], [10, 2, 1, "", "pack"]], "coreblocks.params.instr.UTypeInstr": [[10, 2, 1, "", "__init__"], [10, 2, 1, "", "pack"]], "coreblocks.params.isa": [[10, 1, 1, "", "ExceptionCause"], [10, 1, 1, "", "Extension"], [10, 1, 1, "", "FenceFm"], [10, 1, 1, "", "FenceTarget"], [10, 1, 1, "", "Funct12"], [10, 1, 1, "", "Funct3"], [10, 1, 1, "", "Funct7"], [10, 1, 1, "", "ISA"], [10, 1, 1, "", "InstrType"], [10, 1, 1, "", "Opcode"], [10, 1, 1, "", "Registers"]], "coreblocks.params.isa.ExceptionCause": [[10, 3, 1, "", "BREAKPOINT"], [10, 3, 1, "", "ENVIRONMENT_CALL_FROM_M"], [10, 3, 1, "", "ENVIRONMENT_CALL_FROM_S"], [10, 3, 1, "", "ENVIRONMENT_CALL_FROM_U"], [10, 3, 1, "", "ILLEGAL_INSTRUCTION"], [10, 3, 1, "", "INSTRUCTION_ACCESS_FAULT"], [10, 3, 1, "", "INSTRUCTION_ADDRESS_MISALIGNED"], [10, 3, 1, "", "INSTRUCTION_PAGE_FAULT"], [10, 3, 1, "", "LOAD_ACCESS_FAULT"], [10, 3, 1, "", "LOAD_ADDRESS_MISALIGNED"], [10, 3, 1, "", "LOAD_PAGE_FAULT"], [10, 3, 1, "", "STORE_ACCESS_FAULT"], [10, 3, 1, "", "STORE_ADDRESS_MISALIGNED"], [10, 3, 1, "", "STORE_PAGE_FAULT"], [10, 2, 1, "", "__new__"]], "coreblocks.params.isa.Extension": [[10, 3, 1, "", "A"], [10, 3, 1, "", "B"], [10, 3, 1, "", "C"], [10, 3, 1, "", "D"], [10, 3, 1, "", "E"], [10, 3, 1, "", "F"], [10, 3, 1, "", "G"], [10, 3, 1, "", "I"], [10, 3, 1, "", "J"], [10, 3, 1, "", "L"], [10, 3, 1, "", "M"], [10, 3, 1, "", "N"], [10, 3, 1, "", "P"], [10, 3, 1, "", "Q"], [10, 3, 1, "", "T"], [10, 3, 1, "", "V"], [10, 3, 1, "", "XINTMACHINEMODE"], [10, 3, 1, "", "XINTSUPERVISOR"], [10, 3, 1, "", "ZAM"], [10, 3, 1, "", "ZBA"], [10, 3, 1, "", "ZBB"], [10, 3, 1, "", "ZBC"], [10, 3, 1, "", "ZBS"], [10, 3, 1, "", "ZDINX"], [10, 3, 1, "", "ZFH"], [10, 3, 1, "", "ZFHMIN"], [10, 3, 1, "", "ZFINX"], [10, 3, 1, "", "ZHINX"], [10, 3, 1, "", "ZICNTR"], [10, 3, 1, "", "ZICSR"], [10, 3, 1, "", "ZIFENCEI"], [10, 3, 1, "", "ZIHINTNTL"], [10, 3, 1, "", "ZIHINTPAUSE"], [10, 3, 1, "", "ZIHPM"], [10, 3, 1, "", "ZMMUL"], [10, 3, 1, "", "ZTSO"], [10, 2, 1, "", "__new__"]], "coreblocks.params.isa.FenceFm": [[10, 3, 1, "", "NONE"], [10, 3, 1, "", "TSO"], [10, 2, 1, "", "__new__"]], "coreblocks.params.isa.FenceTarget": [[10, 3, 1, "", "DEV_I"], [10, 3, 1, "", "DEV_O"], [10, 3, 1, "", "MEM_R"], [10, 3, 1, "", "MEM_W"], [10, 2, 1, "", "__new__"]], "coreblocks.params.isa.Funct12": [[10, 3, 1, "", "CLZ"], [10, 3, 1, "", "CPOP"], [10, 3, 1, "", "CTZ"], [10, 3, 1, "", "EBREAK"], [10, 3, 1, "", "ECALL"], [10, 3, 1, "", "MRET"], [10, 3, 1, "", "ORCB"], [10, 3, 1, "", "REV8_32"], [10, 3, 1, "", "REV8_64"], [10, 3, 1, "", "SEXTB"], [10, 3, 1, "", "SEXTH"], [10, 3, 1, "", "SRET"], [10, 3, 1, "", "WFI"], [10, 3, 1, "", "ZEXTH"], [10, 2, 1, "", "__new__"]], "coreblocks.params.isa.Funct3": [[10, 3, 1, "", "ADD"], [10, 3, 1, "", "AND"], [10, 3, 1, "", "ANDN"], [10, 3, 1, "", "B"], [10, 3, 1, "", "BCLR"], [10, 3, 1, "", "BEQ"], [10, 3, 1, "", "BEXT"], [10, 3, 1, "", "BGE"], [10, 3, 1, "", "BGEU"], [10, 3, 1, "", "BINV"], [10, 3, 1, "", "BLT"], [10, 3, 1, "", "BLTU"], [10, 3, 1, "", "BNE"], [10, 3, 1, "", "BSET"], [10, 3, 1, "", "BU"], [10, 3, 1, "", "CLMUL"], [10, 3, 1, "", "CLMULH"], [10, 3, 1, "", "CLMULR"], [10, 3, 1, "", "CLZ"], [10, 3, 1, "", "CPOP"], [10, 3, 1, "", "CSRRC"], [10, 3, 1, "", "CSRRCI"], [10, 3, 1, "", "CSRRS"], [10, 3, 1, "", "CSRRSI"], [10, 3, 1, "", "CSRRW"], [10, 3, 1, "", "CSRRWI"], [10, 3, 1, "", "CTZ"], [10, 3, 1, "", "D"], [10, 3, 1, "", "DIV"], [10, 3, 1, "", "DIVU"], [10, 3, 1, "", "DIVUW"], [10, 3, 1, "", "DIVW"], [10, 3, 1, "", "FENCE"], [10, 3, 1, "", "FENCEI"], [10, 3, 1, "", "H"], [10, 3, 1, "", "HU"], [10, 3, 1, "", "JALR"], [10, 3, 1, "", "MAX"], [10, 3, 1, "", "MAXU"], [10, 3, 1, "", "MIN"], [10, 3, 1, "", "MINU"], [10, 3, 1, "", "MUL"], [10, 3, 1, "", "MULH"], [10, 3, 1, "", "MULHSU"], [10, 3, 1, "", "MULHU"], [10, 3, 1, "", "MULW"], [10, 3, 1, "", "OR"], [10, 3, 1, "", "ORCB"], [10, 3, 1, "", "ORN"], [10, 3, 1, "", "PRIV"], [10, 3, 1, "", "REM"], [10, 3, 1, "", "REMU"], [10, 3, 1, "", "REMUW"], [10, 3, 1, "", "REMW"], [10, 3, 1, "", "REV8"], [10, 3, 1, "", "ROL"], [10, 3, 1, "", "ROR"], [10, 3, 1, "", "SEXTB"], [10, 3, 1, "", "SEXTH"], [10, 3, 1, "", "SH1ADD"], [10, 3, 1, "", "SH2ADD"], [10, 3, 1, "", "SH3ADD"], [10, 3, 1, "", "SLL"], [10, 3, 1, "", "SLT"], [10, 3, 1, "", "SLTU"], [10, 3, 1, "", "SR"], [10, 3, 1, "", "SUB"], [10, 3, 1, "", "W"], [10, 3, 1, "", "XNOR"], [10, 3, 1, "", "XOR"], [10, 3, 1, "", "ZEXTH"], [10, 2, 1, "", "__new__"]], "coreblocks.params.isa.Funct7": [[10, 3, 1, "", "ADD"], [10, 3, 1, "", "AND"], [10, 3, 1, "", "ANDN"], [10, 3, 1, "", "BCLR"], [10, 3, 1, "", "BEXT"], [10, 3, 1, "", "BINV"], [10, 3, 1, "", "BSET"], [10, 3, 1, "", "CLMUL"], [10, 3, 1, "", "CLZ"], [10, 3, 1, "", "CPOP"], [10, 3, 1, "", "CTZ"], [10, 3, 1, "", "MAX"], [10, 3, 1, "", "MIN"], [10, 3, 1, "", "MULDIV"], [10, 3, 1, "", "OR"], [10, 3, 1, "", "ORCB"], [10, 3, 1, "", "ORN"], [10, 3, 1, "", "REV8"], [10, 3, 1, "", "ROL"], [10, 3, 1, "", "ROR"], [10, 3, 1, "", "SA"], [10, 3, 1, "", "SEXTB"], [10, 3, 1, "", "SEXTH"], [10, 3, 1, "", "SFENCEVMA"], [10, 3, 1, "", "SH1ADD"], [10, 3, 1, "", "SH2ADD"], [10, 3, 1, "", "SH3ADD"], [10, 3, 1, "", "SL"], [10, 3, 1, "", "SLT"], [10, 3, 1, "", "SUB"], [10, 3, 1, "", "XNOR"], [10, 3, 1, "", "XOR"], [10, 3, 1, "", "ZEXTH"], [10, 2, 1, "", "__new__"]], "coreblocks.params.isa.ISA": [[10, 2, 1, "", "__init__"]], "coreblocks.params.isa.InstrType": [[10, 3, 1, "", "B"], [10, 3, 1, "", "I"], [10, 3, 1, "", "J"], [10, 3, 1, "", "R"], [10, 3, 1, "", "S"], [10, 3, 1, "", "U"]], "coreblocks.params.isa.Opcode": [[10, 3, 1, "", "AUIPC"], [10, 3, 1, "", "BRANCH"], [10, 3, 1, "", "JAL"], [10, 3, 1, "", "JALR"], [10, 3, 1, "", "LOAD"], [10, 3, 1, "", "LOAD_FP"], [10, 3, 1, "", "LUI"], [10, 3, 1, "", "MISC_MEM"], [10, 3, 1, "", "OP"], [10, 3, 1, "", "OP32"], [10, 3, 1, "", "OP_IMM"], [10, 3, 1, "", "OP_IMM_32"], [10, 3, 1, "", "STORE"], [10, 3, 1, "", "STORE_FP"], [10, 3, 1, "", "SYSTEM"], [10, 2, 1, "", "__new__"]], "coreblocks.params.isa.Registers": [[10, 3, 1, "", "A0"], [10, 3, 1, "", "A1"], [10, 3, 1, "", "A2"], [10, 3, 1, "", "A3"], [10, 3, 1, "", "A4"], [10, 3, 1, "", "A5"], [10, 3, 1, "", "A6"], [10, 3, 1, "", "A7"], [10, 3, 1, "", "FP"], [10, 3, 1, "", "GP"], [10, 3, 1, "", "RA"], [10, 3, 1, "", "S0"], [10, 3, 1, "", "S1"], [10, 3, 1, "", "S10"], [10, 3, 1, "", "S11"], [10, 3, 1, "", "S2"], [10, 3, 1, "", "S3"], [10, 3, 1, "", "S4"], [10, 3, 1, "", "S5"], [10, 3, 1, "", "S6"], [10, 3, 1, "", "S7"], [10, 3, 1, "", "S8"], [10, 3, 1, "", "S9"], [10, 3, 1, "", "SP"], [10, 3, 1, "", "T0"], [10, 3, 1, "", "T1"], [10, 3, 1, "", "T2"], [10, 3, 1, "", "T3"], [10, 3, 1, "", "T4"], [10, 3, 1, "", "T5"], [10, 3, 1, "", "T6"], [10, 3, 1, "", "TP"], [10, 3, 1, "", "X0"], [10, 3, 1, "", "X1"], [10, 3, 1, "", "X10"], [10, 3, 1, "", "X11"], [10, 3, 1, "", "X12"], [10, 3, 1, "", "X13"], [10, 3, 1, "", "X14"], [10, 3, 1, "", "X15"], [10, 3, 1, "", "X16"], [10, 3, 1, "", "X17"], [10, 3, 1, "", "X18"], [10, 3, 1, "", "X19"], [10, 3, 1, "", "X2"], [10, 3, 1, "", "X20"], [10, 3, 1, "", "X21"], [10, 3, 1, "", "X22"], [10, 3, 1, "", "X23"], [10, 3, 1, "", "X24"], [10, 3, 1, "", "X25"], [10, 3, 1, "", "X26"], [10, 3, 1, "", "X27"], [10, 3, 1, "", "X28"], [10, 3, 1, "", "X29"], [10, 3, 1, "", "X3"], [10, 3, 1, "", "X30"], [10, 3, 1, "", "X31"], [10, 3, 1, "", "X4"], [10, 3, 1, "", "X5"], [10, 3, 1, "", "X6"], [10, 3, 1, "", "X7"], [10, 3, 1, "", "X8"], [10, 3, 1, "", "X9"], [10, 3, 1, "", "ZERO"], [10, 2, 1, "", "__new__"]], "coreblocks.params.keys": [[10, 1, 1, "", "AsyncInterruptInsertSignalKey"], [10, 1, 1, "", "BranchVerifyKey"], [10, 1, 1, "", "CommonBusDataKey"], [10, 1, 1, "", "ExceptionReportKey"], [10, 1, 1, "", "FetchResumeKey"], [10, 1, 1, "", "GenericCSRRegistersKey"], [10, 1, 1, "", "InstructionPrecommitKey"], [10, 1, 1, "", "MretKey"]], "coreblocks.params.keys.AsyncInterruptInsertSignalKey": [[10, 2, 1, "", "__init__"]], "coreblocks.params.keys.BranchVerifyKey": [[10, 2, 1, "", "__init__"]], "coreblocks.params.keys.CommonBusDataKey": [[10, 2, 1, "", "__init__"]], "coreblocks.params.keys.ExceptionReportKey": [[10, 2, 1, "", "__init__"]], "coreblocks.params.keys.FetchResumeKey": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "unifier"]], "coreblocks.params.keys.GenericCSRRegistersKey": [[10, 2, 1, "", "__init__"]], "coreblocks.params.keys.InstructionPrecommitKey": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "unifier"]], "coreblocks.params.keys.MretKey": [[10, 2, 1, "", "__init__"]], "coreblocks.params.layouts": [[10, 1, 1, "", "CSRLayouts"], [10, 1, 1, "", "CommonLayoutFields"], [10, 1, 1, "", "DecodeLayouts"], [10, 1, 1, "", "FetchLayouts"], [10, 1, 1, "", "FuncUnitLayouts"], [10, 1, 1, "", "ICacheLayouts"], [10, 1, 1, "", "JumpBranchLayouts"], [10, 1, 1, "", "LSULayouts"], [10, 1, 1, "", "RATLayouts"], [10, 1, 1, "", "RFLayouts"], [10, 1, 1, "", "ROBLayouts"], [10, 1, 1, "", "RSInterfaceLayouts"], [10, 1, 1, "", "RSLayouts"], [10, 1, 1, "", "RetirementLayouts"], [10, 1, 1, "", "SchedulerLayouts"], [10, 1, 1, "", "UnsignedMulUnitLayouts"]], "coreblocks.params.layouts.CSRLayouts": [[10, 2, 1, "", "__init__"]], "coreblocks.params.layouts.CommonLayoutFields": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "addr"], [10, 3, 1, "", "cause"], [10, 3, 1, "", "csr"], [10, 3, 1, "", "data"], [10, 3, 1, "", "error"], [10, 3, 1, "", "exception"], [10, 3, 1, "", "exec_fn"], [10, 3, 1, "", "exec_fn_layout"], [10, 3, 1, "", "funct3"], [10, 3, 1, "", "funct7"], [10, 3, 1, "", "imm"], [10, 3, 1, "", "instr"], [10, 3, 1, "", "op_type"], [10, 3, 1, "", "pc"], [10, 3, 1, "", "reg_id"], [10, 3, 1, "", "reg_val"], [10, 3, 1, "", "regs_l"], [10, 3, 1, "", "regs_p"], [10, 3, 1, "", "rl_dst"], [10, 3, 1, "", "rl_s1"], [10, 3, 1, "", "rl_s2"], [10, 3, 1, "", "rob_id"], [10, 3, 1, "", "rp_dst"], [10, 3, 1, "", "rp_s1"], [10, 3, 1, "", "rp_s2"], [10, 3, 1, "", "s1_val"], [10, 3, 1, "", "s2_val"], [10, 3, 1, "", "side_fx"]], "coreblocks.params.layouts.DecodeLayouts": [[10, 2, 1, "", "__init__"]], "coreblocks.params.layouts.FetchLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "access_fault"], [10, 3, 1, "", "rvc"]], "coreblocks.params.layouts.FuncUnitLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "result"]], "coreblocks.params.layouts.ICacheLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "error"]], "coreblocks.params.layouts.JumpBranchLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "verify_branch"]], "coreblocks.params.layouts.LSULayouts": [[10, 2, 1, "", "__init__"]], "coreblocks.params.layouts.RATLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "old_rp_dst"]], "coreblocks.params.layouts.RFLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "valid"]], "coreblocks.params.layouts.ROBLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "done"], [10, 3, 1, "", "end"], [10, 3, 1, "", "rob_data"], [10, 3, 1, "", "start"]], "coreblocks.params.layouts.RSInterfaceLayouts": [[10, 2, 1, "", "__init__"]], "coreblocks.params.layouts.RSLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "ready_list"]], "coreblocks.params.layouts.RetirementLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "flushing"]], "coreblocks.params.layouts.SchedulerLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "regs_l_rob_in"], [10, 3, 1, "", "regs_p_alloc_out"], [10, 3, 1, "", "rs_entry_id"], [10, 3, 1, "", "rs_selected"]], "coreblocks.params.layouts.UnsignedMulUnitLayouts": [[10, 2, 1, "", "__init__"]], "coreblocks.params.optypes": [[10, 1, 1, "", "OpType"], [10, 4, 1, "", "optypes_required_by_extensions"]], "coreblocks.params.optypes.OpType": [[10, 3, 1, "", "ADDRESS_GENERATION"], [10, 3, 1, "", "ARITHMETIC"], [10, 3, 1, "", "AUIPC"], [10, 3, 1, "", "BIT_MANIPULATION"], [10, 3, 1, "", "BIT_ROTATION"], [10, 3, 1, "", "BRANCH"], [10, 3, 1, "", "CLMUL"], [10, 3, 1, "", "COMPARE"], [10, 3, 1, "", "CSR_IMM"], [10, 3, 1, "", "CSR_REG"], [10, 3, 1, "", "DIV_REM"], [10, 3, 1, "", "EBREAK"], [10, 3, 1, "", "ECALL"], [10, 3, 1, "", "EXCEPTION"], [10, 3, 1, "", "FENCE"], [10, 3, 1, "", "FENCEI"], [10, 3, 1, "", "JAL"], [10, 3, 1, "", "JALR"], [10, 3, 1, "", "LOAD"], [10, 3, 1, "", "LOGIC"], [10, 3, 1, "", "MRET"], [10, 3, 1, "", "MUL"], [10, 3, 1, "", "SFENCEVMA"], [10, 3, 1, "", "SHIFT"], [10, 3, 1, "", "SINGLE_BIT_MANIPULATION"], [10, 3, 1, "", "SRET"], [10, 3, 1, "", "STORE"], [10, 3, 1, "", "UNARY_BIT_MANIPULATION_1"], [10, 3, 1, "", "UNARY_BIT_MANIPULATION_2"], [10, 3, 1, "", "UNARY_BIT_MANIPULATION_3"], [10, 3, 1, "", "UNARY_BIT_MANIPULATION_4"], [10, 3, 1, "", "UNARY_BIT_MANIPULATION_5"], [10, 3, 1, "", "UNKNOWN"], [10, 3, 1, "", "WFI"], [10, 2, 1, "", "__new__"]], "coreblocks.peripherals": [[11, 0, 0, "-", "axi_lite"], [11, 0, 0, "-", "bus_adapter"], [11, 0, 0, "-", "wishbone"]], "coreblocks.peripherals.axi_lite": [[11, 1, 1, "", "AXILiteInterface"], [11, 1, 1, "", "AXILiteMaster"], [11, 1, 1, "", "AXILiteParameters"], [11, 1, 1, "", "AXILiteSignature"]], "coreblocks.peripherals.axi_lite.AXILiteInterface": [[11, 3, 1, "", "read_address"], [11, 3, 1, "", "read_data"], [11, 3, 1, "", "write_address"], [11, 3, 1, "", "write_data"], [11, 3, 1, "", "write_response"]], "coreblocks.peripherals.axi_lite.AXILiteMaster": [[11, 2, 1, "", "__init__"], [11, 3, 1, "", "axil_master"], [11, 2, 1, "", "result_handler"], [11, 2, 1, "", "start_request_transaction"], [11, 2, 1, "", "state_machine_request"]], "coreblocks.peripherals.axi_lite.AXILiteParameters": [[11, 2, 1, "", "__init__"]], "coreblocks.peripherals.axi_lite.AXILiteSignature": [[11, 2, 1, "", "__init__"]], "coreblocks.peripherals.bus_adapter": [[11, 1, 1, "", "AXILiteMasterAdapter"], [11, 1, 1, "", "BusMasterInterface"], [11, 1, 1, "", "WishboneMasterAdapter"]], "coreblocks.peripherals.bus_adapter.AXILiteMasterAdapter": [[11, 2, 1, "", "__init__"]], "coreblocks.peripherals.bus_adapter.BusMasterInterface": [[11, 3, 1, "", "get_read_response"], [11, 3, 1, "", "get_write_response"], [11, 3, 1, "", "params"], [11, 3, 1, "", "request_read"], [11, 3, 1, "", "request_write"]], "coreblocks.peripherals.bus_adapter.WishboneMasterAdapter": [[11, 2, 1, "", "__init__"]], "coreblocks.peripherals.wishbone": [[11, 1, 1, "", "PipelinedWishboneMaster"], [11, 1, 1, "", "WishboneArbiter"], [11, 1, 1, "", "WishboneInterface"], [11, 1, 1, "", "WishboneMaster"], [11, 1, 1, "", "WishboneMasterMethodLayout"], [11, 1, 1, "", "WishboneMemorySlave"], [11, 1, 1, "", "WishboneMuxer"], [11, 1, 1, "", "WishboneParameters"], [11, 1, 1, "", "WishboneSignature"]], "coreblocks.peripherals.wishbone.PipelinedWishboneMaster": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "generate_method_layouts"], [11, 3, 1, "", "wb"]], "coreblocks.peripherals.wishbone.WishboneArbiter": [[11, 2, 1, "", "__init__"], [11, 3, 1, "", "masters"], [11, 3, 1, "", "slave_wb"]], "coreblocks.peripherals.wishbone.WishboneInterface": [[11, 3, 1, "", "ack"], [11, 3, 1, "", "adr"], [11, 3, 1, "", "cyc"], [11, 3, 1, "", "dat_r"], [11, 3, 1, "", "dat_w"], [11, 3, 1, "", "err"], [11, 3, 1, "", "lock"], [11, 3, 1, "", "rst"], [11, 3, 1, "", "rty"], [11, 3, 1, "", "sel"], [11, 3, 1, "", "stall"], [11, 3, 1, "", "stb"], [11, 3, 1, "", "we"]], "coreblocks.peripherals.wishbone.WishboneMaster": [[11, 2, 1, "", "__init__"], [11, 3, 1, "", "wb_master"]], "coreblocks.peripherals.wishbone.WishboneMasterMethodLayout": [[11, 2, 1, "", "__init__"]], "coreblocks.peripherals.wishbone.WishboneMemorySlave": [[11, 2, 1, "", "__init__"], [11, 3, 1, "", "bus"]], "coreblocks.peripherals.wishbone.WishboneMuxer": [[11, 2, 1, "", "__init__"], [11, 3, 1, "", "master_wb"], [11, 3, 1, "", "slaves"]], "coreblocks.peripherals.wishbone.WishboneParameters": [[11, 2, 1, "", "__init__"]], "coreblocks.peripherals.wishbone.WishboneSignature": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "create"]], "coreblocks.scheduler": [[12, 0, 0, "-", "scheduler"], [12, 0, 0, "-", "wakeup_select"]], "coreblocks.scheduler.scheduler": [[12, 1, 1, "", "Scheduler"]], "coreblocks.scheduler.scheduler.Scheduler": [[12, 2, 1, "", "__init__"]], "coreblocks.scheduler.wakeup_select": [[12, 1, 1, "", "WakeupSelect"]], "coreblocks.scheduler.wakeup_select.WakeupSelect": [[12, 2, 1, "", "__init__"]], "coreblocks.stages": [[13, 0, 0, "-", "backend"], [13, 0, 0, "-", "func_blocks_unifier"], [13, 0, 0, "-", "retirement"], [13, 0, 0, "-", "rs_func_block"]], "coreblocks.stages.backend": [[13, 1, 1, "", "ResultAnnouncement"]], "coreblocks.stages.backend.ResultAnnouncement": [[13, 2, 1, "", "__init__"], [13, 2, 1, "", "debug_signals"]], "coreblocks.stages.func_blocks_unifier": [[13, 1, 1, "", "FuncBlocksUnifier"]], "coreblocks.stages.func_blocks_unifier.FuncBlocksUnifier": [[13, 2, 1, "", "__init__"], [13, 2, 1, "", "get_extra_method"]], "coreblocks.stages.retirement": [[13, 1, 1, "", "Retirement"]], "coreblocks.stages.retirement.Retirement": [[13, 2, 1, "", "__init__"]], "coreblocks.stages.rs_func_block": [[13, 1, 1, "", "RSBlockComponent"], [13, 1, 1, "", "RSFuncBlock"]], "coreblocks.stages.rs_func_block.RSBlockComponent": [[13, 2, 1, "", "__init__"], [13, 3, 1, "", "func_units"], [13, 2, 1, "", "get_module"], [13, 2, 1, "", "get_optypes"], [13, 2, 1, "", "get_rs_entry_count"], [13, 3, 1, "", "rs_entries"]], "coreblocks.stages.rs_func_block.RSFuncBlock": [[13, 2, 1, "", "__init__"]], "coreblocks.structs_common": [[14, 0, 0, "-", "csr"], [14, 0, 0, "-", "csr_generic"], [14, 0, 0, "-", "exception"], [14, 0, 0, "-", "instr_counter"], [14, 0, 0, "-", "interrupt_controller"], [14, 0, 0, "-", "rat"], [14, 0, 0, "-", "rf"], [14, 0, 0, "-", "rob"], [14, 0, 0, "-", "rs"]], "coreblocks.structs_common.csr": [[14, 1, 1, "", "CSRBlockComponent"], [14, 1, 1, "", "CSRListKey"], [14, 1, 1, "", "CSRRegister"], [14, 1, 1, "", "CSRUnit"], [14, 1, 1, "", "PrivilegeLevel"], [14, 4, 1, "", "csr_access_privilege"]], "coreblocks.structs_common.csr.CSRBlockComponent": [[14, 2, 1, "", "get_module"], [14, 2, 1, "", "get_optypes"], [14, 2, 1, "", "get_rs_entry_count"]], "coreblocks.structs_common.csr.CSRListKey": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.csr.CSRRegister": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.csr.CSRUnit": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.csr.PrivilegeLevel": [[14, 3, 1, "", "MACHINE"], [14, 3, 1, "", "SUPERVISOR"], [14, 3, 1, "", "USER"], [14, 2, 1, "", "__new__"]], "coreblocks.structs_common.csr_generic": [[14, 1, 1, "", "CSRAddress"], [14, 1, 1, "", "DoubleCounterCSR"], [14, 1, 1, "", "GenericCSRRegisters"], [14, 1, 1, "", "MachineModeCSRRegisters"]], "coreblocks.structs_common.csr_generic.CSRAddress": [[14, 3, 1, "", "CYCLE"], [14, 3, 1, "", "CYCLEH"], [14, 3, 1, "", "INSTRET"], [14, 3, 1, "", "INSTRETH"], [14, 3, 1, "", "MCAUSE"], [14, 3, 1, "", "MEPC"], [14, 3, 1, "", "MTVEC"], [14, 3, 1, "", "TIME"], [14, 3, 1, "", "TIMEH"], [14, 2, 1, "", "__new__"]], "coreblocks.structs_common.csr_generic.DoubleCounterCSR": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.csr_generic.GenericCSRRegisters": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.csr_generic.MachineModeCSRRegisters": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.exception": [[14, 1, 1, "", "ExceptionCauseRegister"], [14, 4, 1, "", "should_update_prioriy"]], "coreblocks.structs_common.exception.ExceptionCauseRegister": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.instr_counter": [[14, 1, 1, "", "CoreInstructionCounter"]], "coreblocks.structs_common.instr_counter.CoreInstructionCounter": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.interrupt_controller": [[14, 1, 1, "", "InterruptController"]], "coreblocks.structs_common.interrupt_controller.InterruptController": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.rat": [[14, 1, 1, "", "FRAT"], [14, 1, 1, "", "RRAT"]], "coreblocks.structs_common.rat.FRAT": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.rat.RRAT": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.rf": [[14, 1, 1, "", "RegisterFile"]], "coreblocks.structs_common.rf.RegisterFile": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.rob": [[14, 1, 1, "", "ReorderBuffer"]], "coreblocks.structs_common.rob.ReorderBuffer": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.rs": [[14, 1, 1, "", "RS"]], "coreblocks.structs_common.rs.RS": [[14, 2, 1, "", "__init__"]], "coreblocks.utils": [[15, 0, 0, "-", "protocols"]], "coreblocks.utils.protocols": [[15, 1, 1, "", "FuncBlock"], [15, 1, 1, "", "FuncUnit"]], "coreblocks.utils.protocols.FuncBlock": [[15, 3, 1, "", "get_result"], [15, 3, 1, "", "insert"], [15, 3, 1, "", "select"], [15, 3, 1, "", "update"]], "coreblocks.utils.protocols.FuncUnit": [[15, 3, 1, "", "accept"], [15, 3, 1, "", "issue"]], "transactron": [[29, 1, 1, "", "Method"], [29, 1, 1, "", "TModule"], [29, 1, 1, "", "Transaction"], [29, 1, 1, "", "TransactionManager"], [29, 1, 1, "", "TransactionModule"], [29, 0, 0, "-", "core"], [29, 4, 1, "", "def_method"], [29, 0, 0, "-", "graph"], [30, 0, 0, "-", "lib"], [29, 0, 0, "-", "profiler"], [31, 0, 0, "-", "testing"], [29, 0, 0, "-", "tracing"], [32, 0, 0, "-", "utils"]], "transactron.Method": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "body"], [29, 2, 1, "", "debug_signals"], [29, 5, 1, "", "layout_in"], [29, 5, 1, "", "layout_out"], [29, 2, 1, "", "like"], [29, 2, 1, "", "proxy"]], "transactron.TModule": [[29, 2, 1, "", "AvoidedIf"], [29, 2, 1, "", "Case"], [29, 2, 1, "", "Default"], [29, 2, 1, "", "Elif"], [29, 2, 1, "", "Else"], [29, 2, 1, "", "FSM"], [29, 2, 1, "", "If"], [29, 2, 1, "", "State"], [29, 2, 1, "", "Switch"], [29, 2, 1, "", "__init__"], [29, 5, 1, "", "ctrl_path"], [29, 5, 1, "", "next"]], "transactron.Transaction": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "body"], [29, 2, 1, "", "debug_signals"]], "transactron.TransactionManager": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "add_transaction"], [29, 2, 1, "", "debug_signals"], [29, 2, 1, "", "print_info"], [29, 2, 1, "", "visual_graph"]], "transactron.TransactionModule": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "context"]], "transactron.core": [[29, 1, 1, "", "Method"], [29, 1, 1, "", "Priority"], [29, 1, 1, "", "TModule"], [29, 1, 1, "", "Transaction"], [29, 1, 1, "", "TransactionManager"], [29, 1, 1, "", "TransactionManagerKey"], [29, 1, 1, "", "TransactionModule"], [29, 4, 1, "", "def_method"], [29, 4, 1, "", "eager_deterministic_cc_scheduler"], [29, 4, 1, "", "trivial_roundrobin_cc_scheduler"]], "transactron.core.Method": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "body"], [29, 2, 1, "", "debug_signals"], [29, 5, 1, "", "layout_in"], [29, 5, 1, "", "layout_out"], [29, 2, 1, "", "like"], [29, 2, 1, "", "proxy"]], "transactron.core.Priority": [[29, 3, 1, "", "LEFT"], [29, 3, 1, "", "RIGHT"], [29, 3, 1, "", "UNDEFINED"]], "transactron.core.TModule": [[29, 2, 1, "", "AvoidedIf"], [29, 2, 1, "", "Case"], [29, 2, 1, "", "Default"], [29, 2, 1, "", "Elif"], [29, 2, 1, "", "Else"], [29, 2, 1, "", "FSM"], [29, 2, 1, "", "If"], [29, 2, 1, "", "State"], [29, 2, 1, "", "Switch"], [29, 2, 1, "", "__init__"], [29, 5, 1, "", "ctrl_path"], [29, 5, 1, "", "next"]], "transactron.core.Transaction": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "body"], [29, 2, 1, "", "debug_signals"]], "transactron.core.TransactionManager": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "add_transaction"], [29, 2, 1, "", "debug_signals"], [29, 2, 1, "", "print_info"], [29, 2, 1, "", "visual_graph"]], "transactron.core.TransactionManagerKey": [[29, 2, 1, "", "__init__"]], "transactron.core.TransactionModule": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "context"]], "transactron.graph": [[29, 1, 1, "", "Direction"], [29, 1, 1, "", "Owned"], [29, 1, 1, "", "OwnershipGraph"]], "transactron.graph.Direction": [[29, 3, 1, "", "IN"], [29, 3, 1, "", "INOUT"], [29, 3, 1, "", "NONE"], [29, 3, 1, "", "OUT"], [29, 2, 1, "", "__new__"]], "transactron.graph.Owned": [[29, 2, 1, "", "__init__"], [29, 3, 1, "", "name"], [29, 3, 1, "", "owner"]], "transactron.graph.OwnershipGraph": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "dump"], [29, 2, 1, "", "dump_dot"], [29, 2, 1, "", "dump_elk"], [29, 2, 1, "", "dump_mermaid"], [29, 2, 1, "", "get_hier_name"], [29, 2, 1, "", "get_name"], [29, 2, 1, "", "insert_edge"], [29, 2, 1, "", "insert_node"], [29, 3, 1, "", "mermaid_direction"], [29, 2, 1, "", "prune"], [29, 2, 1, "", "remember"], [29, 2, 1, "", "remember_field"]], "transactron.lib": [[30, 0, 0, "-", "adapters"], [30, 0, 0, "-", "buttons"], [30, 0, 0, "-", "connectors"], [30, 0, 0, "-", "dependencies"], [30, 0, 0, "-", "fifo"], [30, 0, 0, "-", "metrics"], [30, 0, 0, "-", "reqres"], [30, 0, 0, "-", "simultaneous"], [30, 0, 0, "-", "storage"], [30, 0, 0, "-", "transformers"]], "transactron.lib.adapters": [[30, 1, 1, "", "Adapter"], [30, 1, 1, "", "AdapterBase"], [30, 1, 1, "", "AdapterTrans"]], "transactron.lib.adapters.Adapter": [[30, 2, 1, "", "__init__"]], "transactron.lib.adapters.AdapterBase": [[30, 2, 1, "", "__init__"], [30, 3, 1, "", "data_in"], [30, 3, 1, "", "data_out"], [30, 2, 1, "", "debug_signals"]], "transactron.lib.adapters.AdapterTrans": [[30, 2, 1, "", "__init__"]], "transactron.lib.buttons": [[30, 1, 1, "", "ClickIn"], [30, 1, 1, "", "ClickOut"]], "transactron.lib.buttons.ClickIn": [[30, 2, 1, "", "__init__"]], "transactron.lib.buttons.ClickOut": [[30, 2, 1, "", "__init__"]], "transactron.lib.connectors": [[30, 1, 1, "", "Connect"], [30, 1, 1, "", "ConnectTrans"], [30, 1, 1, "", "FIFO"], [30, 1, 1, "", "Forwarder"], [30, 1, 1, "", "ManyToOneConnectTrans"]], "transactron.lib.connectors.Connect": [[30, 2, 1, "", "__init__"]], "transactron.lib.connectors.ConnectTrans": [[30, 2, 1, "", "__init__"]], "transactron.lib.connectors.FIFO": [[30, 2, 1, "", "__init__"]], "transactron.lib.connectors.Forwarder": [[30, 2, 1, "", "__init__"]], "transactron.lib.connectors.ManyToOneConnectTrans": [[30, 2, 1, "", "__init__"]], "transactron.lib.dependencies": [[30, 1, 1, "", "DependencyKey"], [30, 1, 1, "", "DependencyManager"], [30, 1, 1, "", "ListKey"], [30, 1, 1, "", "SimpleKey"], [30, 1, 1, "", "UnifierKey"]], "transactron.lib.dependencies.DependencyKey": [[30, 2, 1, "", "combine"], [30, 3, 1, "", "empty_valid"], [30, 3, 1, "", "lock_on_get"]], "transactron.lib.dependencies.DependencyManager": [[30, 2, 1, "", "__init__"], [30, 2, 1, "", "add_dependency"], [30, 2, 1, "", "get_dependency"]], "transactron.lib.dependencies.ListKey": [[30, 2, 1, "", "combine"], [30, 3, 1, "", "empty_valid"]], "transactron.lib.dependencies.SimpleKey": [[30, 2, 1, "", "combine"], [30, 3, 1, "", "default_value"]], "transactron.lib.dependencies.UnifierKey": [[30, 2, 1, "", "combine"], [30, 3, 1, "", "unifier"]], "transactron.lib.fifo": [[30, 1, 1, "", "BasicFifo"], [30, 1, 1, "", "Semaphore"]], "transactron.lib.fifo.BasicFifo": [[30, 2, 1, "", "__init__"]], "transactron.lib.fifo.Semaphore": [[30, 2, 1, "", "__init__"]], "transactron.lib.metrics": [[30, 1, 1, "", "HardwareMetricsManager"], [30, 1, 1, "", "HwCounter"], [30, 1, 1, "", "HwExpHistogram"], [30, 1, 1, "", "HwMetric"], [30, 1, 1, "", "HwMetricsEnabledKey"], [30, 1, 1, "", "LatencyMeasurer"], [30, 1, 1, "", "MetricModel"], [30, 1, 1, "", "MetricRegisterModel"]], "transactron.lib.metrics.HardwareMetricsManager": [[30, 2, 1, "", "__init__"], [30, 2, 1, "", "debug_signals"], [30, 2, 1, "", "get_metrics"], [30, 2, 1, "", "get_register_value"]], "transactron.lib.metrics.HwCounter": [[30, 2, 1, "", "__init__"], [30, 2, 1, "", "incr"]], "transactron.lib.metrics.HwExpHistogram": [[30, 2, 1, "", "__init__"], [30, 2, 1, "", "add"]], "transactron.lib.metrics.HwMetric": [[30, 2, 1, "", "__init__"], [30, 2, 1, "", "add_registers"], [30, 2, 1, "", "metrics_enabled"]], "transactron.lib.metrics.HwMetricsEnabledKey": [[30, 2, 1, "", "__init__"], [30, 3, 1, "", "default_value"], [30, 3, 1, "", "empty_valid"], [30, 3, 1, "", "lock_on_get"]], "transactron.lib.metrics.LatencyMeasurer": [[30, 2, 1, "", "__init__"], [30, 2, 1, "", "metrics_enabled"], [30, 2, 1, "", "start"], [30, 2, 1, "", "stop"]], "transactron.lib.metrics.MetricModel": [[30, 2, 1, "", "__init__"], [30, 3, 1, "", "description"], [30, 2, 1, "", "from_dict"], [30, 2, 1, "", "from_json"], [30, 3, 1, "", "fully_qualified_name"], [30, 3, 1, "", "regs"], [30, 2, 1, "", "schema"], [30, 2, 1, "", "to_dict"], [30, 2, 1, "", "to_json"]], "transactron.lib.metrics.MetricRegisterModel": [[30, 2, 1, "", "__init__"], [30, 3, 1, "", "description"], [30, 2, 1, "", "from_dict"], [30, 2, 1, "", "from_json"], [30, 3, 1, "", "name"], [30, 2, 1, "", "schema"], [30, 2, 1, "", "to_dict"], [30, 2, 1, "", "to_json"], [30, 3, 1, "", "width"]], "transactron.lib.reqres": [[30, 1, 1, "", "ArgumentsToResultsZipper"], [30, 1, 1, "", "Serializer"]], "transactron.lib.reqres.ArgumentsToResultsZipper": [[30, 2, 1, "", "__init__"]], "transactron.lib.reqres.Serializer": [[30, 2, 1, "", "__init__"]], "transactron.lib.simultaneous": [[30, 4, 1, "", "condition"]], "transactron.lib.storage": [[30, 1, 1, "", "MemoryBank"]], "transactron.lib.storage.MemoryBank": [[30, 2, 1, "", "__init__"]], "transactron.lib.transformers": [[30, 1, 1, "", "CatTrans"], [30, 1, 1, "", "Collector"], [30, 1, 1, "", "ConnectAndMapTrans"], [30, 1, 1, "", "MethodFilter"], [30, 1, 1, "", "MethodMap"], [30, 1, 1, "", "MethodProduct"], [30, 1, 1, "", "MethodTryProduct"], [30, 1, 1, "", "Transformer"], [30, 1, 1, "", "Unifier"]], "transactron.lib.transformers.CatTrans": [[30, 2, 1, "", "__init__"]], "transactron.lib.transformers.Collector": [[30, 2, 1, "", "__init__"]], "transactron.lib.transformers.ConnectAndMapTrans": [[30, 2, 1, "", "__init__"]], "transactron.lib.transformers.MethodFilter": [[30, 2, 1, "", "__init__"]], "transactron.lib.transformers.MethodMap": [[30, 2, 1, "", "__init__"]], "transactron.lib.transformers.MethodProduct": [[30, 2, 1, "", "__init__"]], "transactron.lib.transformers.MethodTryProduct": [[30, 2, 1, "", "__init__"]], "transactron.lib.transformers.Transformer": [[30, 3, 1, "", "method"], [30, 2, 1, "", "use"]], "transactron.lib.transformers.Unifier": [[30, 2, 1, "", "__init__"], [30, 3, 1, "", "method"]], "transactron.profiler": [[29, 1, 1, "", "MethodSamples"], [29, 1, 1, "", "Profile"], [29, 1, 1, "", "ProfileData"], [29, 1, 1, "", "ProfileInfo"], [29, 1, 1, "", "ProfileSamples"], [29, 1, 1, "", "RunStat"], [29, 1, 1, "", "RunStatNode"], [29, 1, 1, "", "TransactionSamples"]], "transactron.profiler.MethodSamples": [[29, 2, 1, "", "__init__"], [29, 3, 1, "", "run"]], "transactron.profiler.Profile": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "analyze_methods"], [29, 2, 1, "", "analyze_transactions"], [29, 3, 1, "", "cycles"], [29, 2, 1, "", "decode"], [29, 2, 1, "", "encode"], [29, 2, 1, "", "from_dict"], [29, 2, 1, "", "from_json"], [29, 2, 1, "", "schema"], [29, 2, 1, "", "to_dict"], [29, 2, 1, "", "to_json"], [29, 3, 1, "", "transactions_and_methods"]], "transactron.profiler.ProfileData": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "make"], [29, 3, 1, "", "method_parents"], [29, 3, 1, "", "transaction_conflicts"], [29, 3, 1, "", "transactions_and_methods"], [29, 3, 1, "", "transactions_by_method"]], "transactron.profiler.ProfileInfo": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "from_dict"], [29, 2, 1, "", "from_json"], [29, 3, 1, "", "is_transaction"], [29, 3, 1, "", "name"], [29, 2, 1, "", "schema"], [29, 3, 1, "", "src_loc"], [29, 2, 1, "", "to_dict"], [29, 2, 1, "", "to_json"]], "transactron.profiler.ProfileSamples": [[29, 2, 1, "", "__init__"], [29, 3, 1, "", "methods"], [29, 3, 1, "", "transactions"]], "transactron.profiler.RunStat": [[29, 2, 1, "", "__init__"], [29, 3, 1, "", "locked"], [29, 2, 1, "", "make"], [29, 3, 1, "", "name"], [29, 3, 1, "", "run"], [29, 3, 1, "", "src_loc"]], "transactron.profiler.RunStatNode": [[29, 2, 1, "", "__init__"], [29, 3, 1, "", "callers"], [29, 2, 1, "", "make"], [29, 3, 1, "", "stat"]], "transactron.profiler.TransactionSamples": [[29, 2, 1, "", "__init__"], [29, 3, 1, "", "grant"], [29, 3, 1, "", "request"], [29, 3, 1, "", "runnable"]], "transactron.testing": [[31, 0, 0, "-", "assertion"], [31, 0, 0, "-", "functions"], [31, 0, 0, "-", "gtkw_extension"], [31, 0, 0, "-", "infrastructure"], [31, 0, 0, "-", "profiler"], [31, 0, 0, "-", "sugar"], [31, 0, 0, "-", "testbenchio"]], "transactron.testing.assertion": [[31, 4, 1, "", "make_assert_handler"]], "transactron.testing.functions": [[31, 4, 1, "", "get_outputs"], [31, 4, 1, "", "set_inputs"]], "transactron.testing.gtkw_extension": [[31, 4, 1, "", "write_vcd_ext"]], "transactron.testing.infrastructure": [[31, 1, 1, "", "CoreblocksCommand"], [31, 1, 1, "", "Now"], [31, 1, 1, "", "PysimSimulator"], [31, 1, 1, "", "SimpleTestCircuit"], [31, 1, 1, "", "SyncProcessWrapper"], [31, 1, 1, "", "TestCaseWithSimulator"], [31, 4, 1, "", "guard_nested_collection"]], "transactron.testing.infrastructure.PysimSimulator": [[31, 2, 1, "", "__init__"], [31, 2, 1, "", "add_sync_process"], [31, 2, 1, "", "run"]], "transactron.testing.infrastructure.SimpleTestCircuit": [[31, 2, 1, "", "__init__"], [31, 2, 1, "", "debug_signals"]], "transactron.testing.infrastructure.SyncProcessWrapper": [[31, 2, 1, "", "__init__"]], "transactron.testing.infrastructure.TestCaseWithSimulator": [[31, 2, 1, "", "__init__"], [31, 2, 1, "", "add_all_mocks"], [31, 2, 1, "", "add_class_mocks"], [31, 2, 1, "", "add_local_mocks"], [31, 3, 1, "", "dependency_manager"], [31, 2, 1, "", "random_wait"], [31, 2, 1, "", "random_wait_geom"], [31, 2, 1, "", "run_simulation"], [31, 2, 1, "", "tick"]], "transactron.testing.profiler": [[31, 4, 1, "", "profiler_process"]], "transactron.testing.sugar": [[31, 4, 1, "", "def_method_mock"]], "transactron.testing.testbenchio": [[31, 1, 1, "", "TestbenchIO"]], "transactron.testing.testbenchio.TestbenchIO": [[31, 2, 1, "", "__init__"], [31, 2, 1, "", "call"], [31, 2, 1, "", "call_do"], [31, 2, 1, "", "call_init"], [31, 2, 1, "", "call_result"], [31, 2, 1, "", "call_try"], [31, 2, 1, "", "debug_signals"], [31, 2, 1, "", "disable"], [31, 2, 1, "", "done"], [31, 2, 1, "", "enable"], [31, 2, 1, "", "get_outputs"], [31, 2, 1, "", "method_argument"], [31, 2, 1, "", "method_handle"], [31, 2, 1, "", "method_handle_loop"], [31, 2, 1, "", "method_return"], [31, 2, 1, "", "set_enable"], [31, 2, 1, "", "set_inputs"], [31, 2, 1, "", "wait_until_done"]], "transactron.tracing": [[29, 1, 1, "", "TracingEnabler"], [29, 1, 1, "", "TracingFragment"], [29, 1, 1, "", "TracingFragmentTransformer"], [29, 1, 1, "", "TracingInstance"]], "transactron.tracing.TracingFragment": [[29, 2, 1, "", "get"], [29, 2, 1, "", "prepare"], [29, 3, 1, "", "subfragments"]], "transactron.tracing.TracingFragmentTransformer": [[29, 2, 1, "", "on_fragment"]], "transactron.tracing.TracingInstance": [[29, 2, 1, "", "get"]], "transactron.utils": [[33, 0, 0, "-", "amaranth_ext"], [32, 0, 0, "-", "assertion"], [32, 0, 0, "-", "assign"], [32, 0, 0, "-", "data_repr"], [32, 0, 0, "-", "debug_signals"], [32, 0, 0, "-", "depcache"], [32, 0, 0, "-", "dependencies"], [32, 0, 0, "-", "gen"], [32, 0, 0, "-", "idgen"], [32, 0, 0, "-", "transactron_helpers"]], "transactron.utils.amaranth_ext": [[33, 0, 0, "-", "elaboratables"], [33, 0, 0, "-", "functions"]], "transactron.utils.amaranth_ext.elaboratables": [[33, 1, 1, "", "ModuleConnector"], [33, 4, 1, "", "OneHotSwitch"], [33, 4, 1, "", "OneHotSwitchDynamic"], [33, 1, 1, "", "RoundRobin"], [33, 1, 1, "", "Scheduler"]], "transactron.utils.amaranth_ext.elaboratables.ModuleConnector": [[33, 2, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables.RoundRobin": [[33, 2, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables.Scheduler": [[33, 2, 1, "", "__init__"]], "transactron.utils.amaranth_ext.functions": [[33, 4, 1, "", "count_leading_zeros"], [33, 4, 1, "", "count_trailing_zeros"], [33, 4, 1, "", "flatten_signals"], [33, 4, 1, "", "mod_incr"], [33, 4, 1, "", "popcount"]], "transactron.utils.assertion": [[32, 1, 1, "", "AssertKey"], [32, 4, 1, "", "assert_bit"], [32, 4, 1, "", "assert_bits"], [32, 4, 1, "", "assertion"]], "transactron.utils.assertion.AssertKey": [[32, 2, 1, "", "__init__"]], "transactron.utils.assign": [[32, 1, 1, "", "AssignType"], [32, 4, 1, "", "assign"]], "transactron.utils.assign.AssignType": [[32, 3, 1, "", "ALL"], [32, 3, 1, "", "COMMON"], [32, 3, 1, "", "RHS"]], "transactron.utils.data_repr": [[32, 4, 1, "", "align_down_to_power_of_two"], [32, 4, 1, "", "align_to_power_of_two"], [32, 4, 1, "", "average_dict_of_lists"], [32, 4, 1, "", "bits_from_int"], [32, 4, 1, "", "data_layout"], [32, 4, 1, "", "int_to_signed"], [32, 4, 1, "", "layout_subset"], [32, 4, 1, "", "make_hashable"], [32, 4, 1, "", "neg"], [32, 4, 1, "", "signed_to_int"]], "transactron.utils.debug_signals": [[32, 4, 1, "", "auto_debug_signals"]], "transactron.utils.depcache": [[32, 1, 1, "", "DependentCache"]], "transactron.utils.depcache.DependentCache": [[32, 2, 1, "", "__init__"], [32, 2, 1, "", "get"]], "transactron.utils.dependencies": [[32, 1, 1, "", "DependencyContext"], [32, 1, 1, "", "DependencyKey"], [32, 1, 1, "", "DependencyManager"], [32, 1, 1, "", "ListKey"], [32, 1, 1, "", "SimpleKey"]], "transactron.utils.dependencies.DependencyContext": [[32, 2, 1, "", "__init__"], [32, 2, 1, "", "get"], [32, 3, 1, "", "stack"]], "transactron.utils.dependencies.DependencyKey": [[32, 2, 1, "", "combine"], [32, 3, 1, "", "empty_valid"], [32, 3, 1, "", "lock_on_get"]], "transactron.utils.dependencies.DependencyManager": [[32, 2, 1, "", "__init__"], [32, 2, 1, "", "add_dependency"], [32, 2, 1, "", "get_dependency"]], "transactron.utils.dependencies.ListKey": [[32, 2, 1, "", "combine"], [32, 3, 1, "", "empty_valid"]], "transactron.utils.dependencies.SimpleKey": [[32, 2, 1, "", "combine"], [32, 3, 1, "", "default_value"]], "transactron.utils.gen": [[32, 1, 1, "", "AssertLocation"], [32, 1, 1, "", "GenerationInfo"], [32, 1, 1, "", "MetricLocation"], [32, 4, 1, "", "generate_verilog"]], "transactron.utils.gen.AssertLocation": [[32, 2, 1, "", "__init__"], [32, 2, 1, "", "from_dict"], [32, 2, 1, "", "from_json"], [32, 3, 1, "", "location"], [32, 2, 1, "", "schema"], [32, 3, 1, "", "src_loc"], [32, 2, 1, "", "to_dict"], [32, 2, 1, "", "to_json"]], "transactron.utils.gen.GenerationInfo": [[32, 2, 1, "", "__init__"], [32, 3, 1, "", "asserts"], [32, 2, 1, "", "decode"], [32, 2, 1, "", "encode"], [32, 2, 1, "", "from_dict"], [32, 2, 1, "", "from_json"], [32, 3, 1, "", "method_signals_location"], [32, 3, 1, "", "metrics_location"], [32, 3, 1, "", "profile_data"], [32, 2, 1, "", "schema"], [32, 2, 1, "", "to_dict"], [32, 2, 1, "", "to_json"], [32, 3, 1, "", "transaction_signals_location"]], "transactron.utils.gen.MetricLocation": [[32, 2, 1, "", "__init__"], [32, 2, 1, "", "from_dict"], [32, 2, 1, "", "from_json"], [32, 3, 1, "", "regs"], [32, 2, 1, "", "schema"], [32, 2, 1, "", "to_dict"], [32, 2, 1, "", "to_json"]], "transactron.utils.idgen": [[32, 1, 1, "", "IdGenerator"]], "transactron.utils.idgen.IdGenerator": [[32, 2, 1, "", "__init__"]], "transactron.utils.transactron_helpers": [[32, 4, 1, "", "def_helper"], [32, 4, 1, "", "from_method_layout"], [32, 4, 1, "", "get_caller_class_name"], [32, 4, 1, "", "get_src_loc"], [32, 4, 1, "", "method_def_helper"], [32, 4, 1, "", "mock_def_helper"], [32, 4, 1, "", "silence_mustuse"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:function", "5": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"], "5": ["py", "property", "Python property"]}, "titleterms": {"api": 0, "coreblock": [0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 21, 28], "transactron": [0, 22, 29, 30, 31, 32, 33], "list": 1, "assumpt": [1, 3], "made": 1, "dure": 1, "develop": [1, 17], "instruct": [3, 26], "cach": [3, 5], "interfac": [3, 25, 26], "address": 3, "map": 3, "exampl": 3, "packag": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 29, 30, 31, 32, 33], "subpackag": [4, 7, 29, 32], "submodul": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 29, 30, 31, 32, 33], "core": [4, 27, 29], "modul": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 29, 30, 31, 32, 33], "content": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 29, 30, 31, 32, 33], "icach": 5, "ifac": 5, "refil": 5, "frontend": 6, "decode_stag": 6, "fetch": 6, "instr_decod": 6, "instr_descript": 6, "rvc": 6, "fu": [7, 8], "alu": 7, "div_unit": 7, "except": [7, 14, 20], "fu_decod": 7, "jumpbranch": 7, "mul_unit": 7, "priv": 7, "shift_unit": 7, "zbc": 7, "zb": 7, "unsigned_multipl": 8, "common": 8, "fast_recurs": 8, "sequenc": 8, "shift": 8, "lsu": 9, "dummylsu": 9, "pma": 9, "param": 10, "configur": 10, "fu_param": 10, "genparam": 10, "icache_param": 10, "instr": 10, "isa": 10, "kei": 10, "layout": 10, "optyp": 10, "peripher": 11, "axi_lit": 11, "bus_adapt": 11, "wishbon": 11, "schedul": [12, 24, 28], "wakeup_select": 12, "stage": 13, "backend": 13, "func_blocks_unifi": 13, "retir": 13, "rs_func_block": 13, "structs_common": 14, "csr": 14, "csr_gener": 14, "instr_count": 14, "interrupt_control": 14, "rat": 14, "rf": 14, "rob": 14, "r": 14, "util": [15, 32, 33], "protocol": 15, "full": 16, "transact": [16, 28], "method": [16, 25, 26, 28], "graph": [16, 29], "environ": 17, "set": 17, "up": 17, "us": [17, 25, 26], "script": 17, "run_test": 17, "py": 17, "lint": 17, "sh": 17, "core_graph": 17, "build_doc": 17, "tprof": 17, "introduct": [18, 20, 28], "document": [18, 28], "summari": 20, "paper": 20, "about": 20, "interrupt": 20, "handl": 20, "old": 20, "pc": 20, "out": 20, "order": [20, 28], "execut": [20, 27], "processor": 20, "In": 20, "line": 20, "softwar": 20, "manag": 20, "tlb": 20, "hardwar": 20, "cost": 20, "analysi": 20, "process": 20, "strategi": 20, "igpu": 20, "support": 20, "specul": 20, "gpu": 20, "effici": 20, "other": 20, "problem": 23, "checklist": 23, "overview": [24, 26], "descript": 24, "schema": 24, "structur": 24, "more": 24, "detail": 24, "each": 24, "block": 24, "proposit": 25, "reserv": [25, 26], "station": [25, 26], "implement": [25, 28], "intern": 25, "data": 25, "actual": 25, "slot": [25, 26], "tabl": 25, "compar": [25, 26], "substitut": [25, 26], "read": [25, 26], "row": [25, 26], "clean": [25, 26], "get": [25, 26], "free": 25, "mark": [25, 26], "extern": [25, 26], "all": [25, 26], "reset": 26, "initi": 26, "state": 26, "insert": 26, "new": 26, "readi": [26, 28], "vector": 26, "signal": [26, 28], "verif": 27, "synthesi": 27, "manual": 27, "reproduct": 27, "depend": [27, 30, 32], "benchmark": 27, "regress": 27, "test": [27, 31], "framework": 28, "basic": 28, "usag": 28, "argument": 28, "pass": 28, "convent": 28, "definit": 28, "return": 28, "valu": 28, "The": 28, "librari": 28, "advanc": 28, "concept": 28, "special": 28, "combin": 28, "domain": 28, "conflict": 28, "nest": 28, "profil": [29, 31], "trace": 29, "lib": 30, "adapt": 30, "button": 30, "connector": 30, "fifo": 30, "metric": 30, "reqr": 30, "simultan": 30, "storag": 30, "transform": 30, "assert": [31, 32], "function": [31, 33], "gtkw_extens": 31, "infrastructur": 31, "sugar": 31, "testbenchio": 31, "assign": 32, "data_repr": 32, "debug_sign": 32, "depcach": 32, "gen": 32, "idgen": 32, "transactron_help": 32, "amaranth_ext": 33, "elaborat": 33}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["api", "assumptions", "auto_graph", "components/icache", "coreblocks", "coreblocks.cache", "coreblocks.frontend", "coreblocks.fu", "coreblocks.fu.unsigned_multiplication", "coreblocks.lsu", "coreblocks.params", "coreblocks.peripherals", "coreblocks.scheduler", "coreblocks.stages", "coreblocks.structs_common", "coreblocks.utils", "current-graph", "development-environment", "home", "index", "miscellany/exceptions-summary", "modules-coreblocks", "modules-transactron", "problem-checklist", "scheduler/overview", "shared-structs/implementation/rs-impl", "shared-structs/rs", "synthesis/synthesis", "transactions", "transactron", "transactron.lib", "transactron.testing", "transactron.utils", "transactron.utils.amaranth_ext"], "filenames": ["api.md", "assumptions.md", "auto_graph.rst", "components/icache.md", "coreblocks.rst", "coreblocks.cache.rst", "coreblocks.frontend.rst", "coreblocks.fu.rst", "coreblocks.fu.unsigned_multiplication.rst", "coreblocks.lsu.rst", "coreblocks.params.rst", "coreblocks.peripherals.rst", "coreblocks.scheduler.rst", "coreblocks.stages.rst", "coreblocks.structs_common.rst", "coreblocks.utils.rst", "current-graph.md", "development-environment.md", "home.md", "index.md", "miscellany/exceptions-summary.md", "modules-coreblocks.rst", "modules-transactron.rst", "problem-checklist.md", "scheduler/overview.md", "shared-structs/implementation/rs-impl.md", "shared-structs/rs.md", "synthesis/synthesis.md", "transactions.md", "transactron.rst", "transactron.lib.rst", "transactron.testing.rst", "transactron.utils.rst", "transactron.utils.amaranth_ext.rst"], "titles": ["API", "List of assumptions made during development", "<no title>", "Instruction Cache", "coreblocks package", "coreblocks.cache package", "coreblocks.frontend package", "coreblocks.fu package", "coreblocks.fu.unsigned_multiplication package", "coreblocks.lsu package", "coreblocks.params package", "coreblocks.peripherals package", "coreblocks.scheduler package", "coreblocks.stages package", "coreblocks.structs_common package", "coreblocks.utils package", "Full transaction-method graph", "Development environment", "Introduction", "Coreblocks", "Summary of papers about interrupts", "coreblocks", "transactron", "Problem checklist", "Scheduler overview", "Proposition of Reservation Station implementation", "Reservation Station", "Core verification", "Documentation for Coreblocks transaction framework", "transactron package", "transactron.lib package", "transactron.testing package", "transactron.utils package", "transactron.utils.amaranth_ext package"], "terms": {"packag": [0, 17, 19, 21, 22], "subpackag": [0, 21, 22], "cach": [0, 4, 6, 10, 19, 21, 32], "submodul": [0, 21, 22, 27], "icach": [0, 4, 6, 21, 30], "modul": [0, 17, 21, 22, 27, 28], "ifac": [0, 4, 21, 30], "refil": [0, 3, 4, 10, 21], "content": [0, 21, 22], "frontend": [0, 4, 21, 24, 30], "decode_stag": [0, 4, 21], "fetch": [0, 3, 4, 10, 13, 14, 20, 21], "instr_decod": [0, 4, 21], "instr_descript": [0, 4, 21], "rvc": [0, 4, 10, 21], "fu": [0, 1, 4, 10, 13, 14, 21, 25, 26, 30], "alu": [0, 4, 10, 21], "div_unit": [0, 4, 21], "except": [0, 4, 10, 13, 19, 21, 23, 29, 31, 32], "fu_decod": [0, 4, 21], "jumpbranch": [0, 4, 10, 21, 30], "mul_unit": [0, 4, 21], "priv": [0, 4, 10, 21], "shift_unit": [0, 4, 10, 21], "zbc": [0, 4, 10, 21], "zb": [0, 4, 10, 21], "lsu": [0, 4, 10, 21], "dummylsu": [0, 4, 10, 21], "pma": [0, 4, 10, 21], "param": [0, 4, 5, 7, 9, 11, 12, 13, 14, 21], "configur": [0, 4, 11, 12, 21, 27, 30], "fu_param": [0, 4, 21], "genparam": [0, 4, 6, 7, 8, 9, 12, 13, 14, 21], "icache_param": [0, 4, 21], "instr": [0, 4, 6, 21], "isa": [0, 4, 6, 14, 21], "kei": [0, 4, 14, 21, 29, 30, 32], "layout": [0, 4, 5, 6, 11, 12, 13, 17, 21, 23, 28, 29, 30, 32], "optyp": [0, 4, 6, 7, 9, 12, 13, 14, 21], "peripher": [0, 4, 21], "axi_lit": [0, 4, 21], "bus_adapt": [0, 4, 21], "wishbon": [0, 4, 21], "schedul": [0, 4, 10, 19, 20, 21, 29, 30, 33], "wakeup_select": [0, 4, 21], "stage": [0, 1, 4, 9, 14, 21], "backend": [0, 4, 21, 30], "func_blocks_unifi": [0, 4, 21], "retir": [0, 4, 9, 10, 14, 21], "rs_func_block": [0, 4, 21], "structs_common": [0, 4, 10, 21], "csr": [0, 4, 6, 10, 21], "csr_gener": [0, 4, 21], "instr_count": [0, 4, 21], "interrupt_control": [0, 4, 21], "rat": [0, 1, 4, 10, 12, 20, 21], "rf": [0, 1, 4, 13, 20, 21, 25, 26], "rob": [0, 1, 4, 10, 12, 13, 20, 21, 24, 25, 26], "r": [0, 1, 4, 9, 10, 12, 13, 17, 20, 21, 24, 25, 26, 27], "util": [0, 4, 12, 13, 21, 22, 23, 28, 29, 30], "protocol": [0, 4, 5, 11, 12, 13, 21, 29, 30], "core": [0, 6, 7, 8, 10, 11, 12, 13, 14, 17, 19, 20, 21, 22, 30, 32], "lib": [0, 22, 29, 31, 32, 33], "adapt": [0, 11, 22, 28, 29, 31], "button": [0, 22, 29], "connector": [0, 22, 29], "depend": [0, 10, 14, 19, 22, 28, 29, 33], "fifo": [0, 13, 20, 22, 28, 29], "log": [0, 10, 11, 20, 22, 29, 32], "metric": [0, 10, 22, 29, 32], "reqr": [0, 22, 29], "simultan": [0, 14, 22, 28, 29], "storag": [0, 22, 29], "transform": [0, 22, 29], "test": [0, 10, 17, 19, 22, 23, 29, 30, 32, 33], "function": [0, 6, 7, 10, 12, 13, 20, 22, 23, 28, 29, 30, 32], "gtkw_extens": [0, 22, 29], "infrastructur": [0, 22, 29], "profil": [0, 17, 22], "sugar": [0, 22, 29], "testbenchio": [0, 22, 23, 29], "assign": [0, 10, 14, 22, 23, 28, 29], "data_repr": [0, 22, 29], "debug_sign": [0, 10, 13, 22, 29, 30, 31], "depcach": [0, 22, 29], "gen": [0, 6, 7, 8, 22, 29], "idgen": [0, 22, 29], "transactron_help": [0, 22, 29], "graph": [0, 17, 19, 22, 27], "trace": [0, 17, 22, 31], "ha": [1, 5, 6, 10, 12, 14, 17, 20, 23, 25, 28, 29, 30], "data": [1, 6, 9, 10, 11, 14, 19, 26, 27, 29, 30, 31, 32, 33], "forward": [1, 11, 28, 29, 30], "from": [1, 5, 6, 7, 9, 11, 12, 13, 14, 17, 18, 20, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33], "tomasulo": 1, "announc": [1, 9, 13, 14], "bu": [1, 9, 10, 11], "read": [1, 9, 11, 14, 17, 19, 23, 28, 30, 32], "x0": [1, 10], "rf0": 1, "return": [1, 3, 7, 9, 11, 14, 19, 20, 29, 30, 31, 32], "0": [1, 6, 7, 10, 11, 12, 14, 25, 26, 27, 29, 30, 31], "write": [1, 5, 6, 11, 14, 20, 26, 28, 30], "i": [1, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 20, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "noop": 1, "separ": [1, 24, 29, 30, 32], "each": [1, 6, 7, 10, 11, 14, 17, 19, 20, 25, 26, 28, 29, 30, 31, 32], "writeback": 1, "save": [1, 10, 13, 14, 17, 20, 25, 26, 29, 30, 32], "after": [1, 3, 5, 6, 10, 11, 14, 20, 24, 27, 28, 30], "get": [1, 6, 7, 8, 12, 13, 17, 19, 29, 30, 31, 32, 33], "output": [1, 5, 9, 11, 13, 14, 17, 20, 25, 26, 29, 30, 33], "commit": [1, 10, 14, 17, 20, 27], "updat": [1, 9, 13, 14, 15, 27, 33], "The": [3, 5, 7, 10, 11, 13, 17, 18, 19, 20, 24, 25, 26, 27, 29, 30, 31, 32, 33], "should": [3, 5, 6, 11, 12, 13, 14, 17, 18, 20, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "expos": [3, 30, 32], "three": [3, 6, 20, 27, 29], "method": [3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 29, 30, 31, 32], "issue_req": [3, 5], "thi": [3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 20, 23, 25, 26, 27, 28, 29, 30, 32, 33], "issu": [3, 5, 7, 8, 12, 15, 17, 28, 30], "an": [3, 5, 9, 10, 11, 12, 13, 17, 18, 20, 23, 25, 27, 28, 29, 30, 31, 32, 33], "lookup": [3, 5], "request": [3, 5, 7, 8, 9, 10, 11, 28, 29, 30, 33], "accept_resp": 3, "result": [3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 20, 27, 28, 30, 32], "flush": [3, 5, 10, 14, 20], "entir": [3, 27, 28], "oper": [3, 6, 7, 10, 20, 28, 29, 30, 33], "under": [3, 28, 29], "follow": [3, 7, 10, 12, 17, 25, 27, 28, 30, 32], "ar": [3, 6, 9, 10, 11, 13, 14, 17, 18, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "alwai": [3, 6, 14, 27, 28, 29, 30, 31], "multipl": [3, 7, 8, 10, 11, 12, 13, 28, 29, 30, 32], "4": [3, 7, 10, 30], "byte": [3, 10, 29, 30, 32], "risc": [3, 6, 10, 18, 27], "v": [3, 6, 10, 17, 18, 20, 25, 27], "specif": [3, 6, 10, 11, 17, 20, 27, 30], "requir": [3, 14, 17, 20, 27, 28, 29], "align": [3, 9, 32], "c": [3, 10, 20, 27], "extens": [3, 10, 27], "introduc": [3, 20, 28], "16": [3, 10, 20, 29], "bit": [3, 5, 6, 7, 8, 10, 11, 14, 20, 25, 26, 28, 30, 32, 33], "relax": [3, 28], "unit": [3, 6, 7, 8, 10, 11, 12, 13, 14, 17, 24, 27], "handl": [3, 7, 14, 19, 28, 29], "case": [3, 11, 12, 13, 20, 23, 28, 29, 30, 32, 33], "fulli": [3, 9, 30], "pipelin": [3, 9, 11, 12, 14, 20, 25, 30], "process": [3, 14, 17, 19, 27, 30, 31], "order": [3, 10, 12, 14, 17, 18, 19, 27, 29, 30], "As": [3, 20, 28, 30], "can": [3, 9, 11, 13, 14, 17, 18, 20, 24, 25, 27, 28, 29, 30, 31, 32, 33], "invok": [3, 6, 12, 13, 20, 25, 31], "independ": [3, 28, 30], "accept_r": [3, 5], "If": [3, 6, 10, 11, 14, 20, 23, 25, 28, 29, 30, 32], "space": [3, 20], "anoth": [3, 5, 17, 28, 29, 30], "simpli": 3, "block": [3, 7, 8, 10, 11, 12, 13, 19, 20, 28, 29, 30], "latenc": [3, 20, 27, 30], "least": 3, "one": [3, 5, 7, 10, 11, 13, 14, 17, 20, 24, 25, 26, 28, 29, 30, 31, 32, 33], "cycl": [3, 7, 8, 11, 14, 17, 20, 24, 27, 28, 29, 30, 31], "miss": [3, 20], "occur": [3, 5], "arbitrarili": 3, "long": [3, 26, 27, 30], "ensur": [3, 27], "ani": [3, 6, 11, 12, 20, 23, 30, 31, 32, 33], "refetch": 3, "howev": [3, 30], "guarante": [3, 20], "have": [3, 9, 11, 13, 14, 17, 20, 23, 27, 28, 29, 30, 31, 32, 33], "alreadi": [3, 13, 20, 30, 32], "been": 3, "still": [3, 20, 26, 29], "wait": [3, 11, 13, 14, 17, 20, 25, 26, 29, 31], "accept": [3, 5, 7, 8, 14, 15, 27, 29, 30, 32], "inform": [3, 9, 12, 17, 29, 30, 32], "regard": 3, "error": [3, 5, 10, 11, 29, 30, 32], "mean": [3, 12, 17, 26, 29, 30], "dure": [3, 9, 19, 24, 30, 31], "line": [3, 5, 10, 17, 19], "subsequ": 3, "access": [3, 10, 11, 14, 20, 28, 30, 31, 32], "trigger": [3, 14, 30, 32], "which": [3, 5, 6, 7, 9, 10, 11, 12, 13, 17, 18, 20, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "most": [3, 20, 28, 29, 30], "like": [3, 6, 20, 28, 29, 30], "For": [3, 10, 17, 25, 26, 28, 29, 30, 32, 33], "32": [3, 7, 8, 10, 11, 20, 28, 30], "128": [3, 10], "set": [3, 5, 6, 7, 9, 10, 12, 13, 14, 19, 25, 27, 29, 30, 32, 33], "size": [3, 10, 11, 20, 28, 30, 32], "equal": [3, 14, 30], "31": [3, 10], "15": [3, 10], "14": [3, 10], "13": [3, 10], "12": [3, 10], "11": [3, 10, 17, 27], "10": [3, 10, 20], "09": 3, "08": 3, "07": 3, "06": [3, 31], "05": 3, "04": 3, "03": 3, "02": 3, "01": 3, "00": 3, "tag": [3, 11, 20, 25, 26], "index": [3, 10, 29, 33], "offset": 3, "unsigned_multipl": [4, 7], "common": [4, 7, 11, 30, 32], "fast_recurs": [4, 7], "sequenc": [4, 7, 12, 30], "shift": [4, 7, 10], "class": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 28, 29, 30, 31, 32, 33], "base": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 20, 29, 30, 31, 32, 33], "elaborat": [4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 28, 29, 30, 31, 32], "__init__": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 28, 29, 30, 31, 32, 33], "gen_param": [4, 6, 7, 8, 9, 10, 12, 13, 14], "wb_instr_bu": 4, "wishboneinterfac": [4, 11], "wb_data_bu": 4, "cacheinterfac": [5, 6], "A": [5, 10, 11, 27, 28, 29, 30, 32], "simpl": [5, 6, 9, 12, 13, 29, 30, 32, 33], "associ": [5, 10, 30], "instruct": [5, 6, 7, 9, 10, 12, 13, 14, 19, 20, 24, 25, 27], "replac": [5, 8, 10, 25], "polici": 5, "pseudo": 5, "random": [5, 31], "scheme": 5, "everi": [5, 7, 11, 17, 27, 29, 30], "time": [5, 11, 14, 20, 29, 30], "trash": 5, "we": [5, 9, 11, 13, 20, 24, 25, 26, 27, 28, 31], "select": [5, 6, 7, 9, 11, 12, 13, 14, 15, 17], "next": [5, 6, 9, 12, 13, 14, 20, 29, 33], "wai": [5, 7, 11, 17, 20, 27, 28, 29, 30, 32], "keep": [5, 29], "global": [5, 14, 20], "counter": [5, 10, 14, 17, 30], "abstract": [5, 8, 10, 27, 30, 32], "awai": 5, "need": [5, 11, 17, 20, 25, 28, 29], "two": [5, 10, 14, 20, 23, 27, 28, 29, 30, 31, 32], "refiller_start": 5, "call": [5, 7, 12, 14, 17, 23, 25, 28, 29, 30, 31, 32], "whenev": [5, 30], "refiller_accept": 5, "readi": [5, 9, 10, 11, 12, 13, 14, 19, 25, 29, 30], "word": [5, 10], "written": [5, 14, 26, 27, 30], "last": [5, 10, 12, 14, 29, 30], "when": [5, 11, 14, 17, 20, 23, 25, 26, 28, 29, 30, 31, 32, 33], "either": [5, 11, 28, 29, 30, 31, 32, 33], "transfer": [5, 11, 29, 30], "over": [5, 14, 29, 30], "shouldn": [5, 27], "t": [5, 6, 9, 10, 17, 20, 23, 25, 27, 28, 29, 30, 31, 32], "until": [5, 20, 30], "start": [5, 7, 9, 10, 11, 20, 29, 30], "icachelayout": [5, 10], "icacheparamet": [5, 10], "cacherefillerinterfac": 5, "none": [5, 6, 7, 9, 10, 13, 14, 29, 30, 31, 32, 33], "paramet": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 28, 29, 30, 31, 32, 33], "instanc": [5, 6, 7, 9, 12, 13, 27, 29, 30, 31, 32], "us": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 19, 20, 23, 27, 28, 29, 30, 31, 32, 33], "creat": [5, 8, 11, 17, 27, 28, 29, 30, 31, 32, 33], "gener": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 20, 23, 27, 29, 30, 31, 32], "input": [5, 6, 7, 11, 13, 14, 20, 25, 26, 28, 29, 30, 33], "start_refil": 5, "accept_refil": 5, "deserialize_addr": 5, "raw_addr": 5, "valu": [5, 6, 7, 9, 10, 11, 12, 13, 14, 19, 23, 25, 26, 29, 30, 31, 32, 33], "dict": [5, 11, 28, 29, 30, 31, 32, 33], "str": [5, 10, 11, 29, 30, 31, 32, 33], "amaranth": [5, 6, 7, 10, 11, 23, 27, 28, 29, 30, 31, 32, 33], "hdl": [5, 6, 7, 10, 29, 30, 31, 32, 33], "_ast": [5, 6, 7, 10, 29, 30, 31, 32, 33], "serialize_addr": 5, "addr": [5, 9, 10, 11, 30], "view": [5, 7, 9, 29, 30, 31, 32, 33], "icachebypass": 5, "bus_mast": 5, "busmasterinterfac": [5, 9, 10, 11], "haselabor": [5, 11, 15, 29, 30, 31, 33], "interfac": [5, 6, 8, 9, 11, 12, 13, 14, 19, 27, 28, 29, 30], "whole": [5, 18, 20, 30], "given": [5, 7, 9, 10, 17, 25, 28, 29, 30, 31, 32, 33], "simplecommonbuscacherefil": 5, "decodestag": 6, "decod": [6, 7, 10, 12, 29, 32], "transact": [6, 10, 11, 14, 17, 19, 25, 29, 30, 33], "instanti": [6, 29], "instrdecod": 6, "make": [6, 7, 17, 18, 20, 23, 27, 28, 29, 31], "actual": [6, 17, 19, 28], "combinatori": [6, 28], "manner": [6, 11], "get_raw": 6, "push_decod": 6, "raw": 6, "previou": [6, 11, 20, 30], "step": [6, 12, 17, 20, 27, 28], "e": [6, 10, 17, 20, 23, 28, 30, 32, 33], "g": [6, 10, 17, 20, 23, 28, 30, 32, 33], "fetchlayout": [6, 10], "send": [6, 10, 11, 12, 13], "It": [6, 7, 8, 9, 11, 12, 13, 17, 20, 24, 25, 27, 28, 29, 30, 31, 32, 33], "describ": [6, 10, 12, 13, 20, 27, 29, 30, 31], "decodelayout": [6, 10, 12], "pc": [6, 10, 14, 19], "insid": [6, 27, 28, 29, 30], "increment": [6, 14], "ilen_byt": 6, "cont": [6, 31], "unalignedfetch": 6, "work": [6, 12, 20, 23, 27, 28, 29, 30], "unalign": 6, "perform": [6, 7, 8, 10, 12, 14, 17, 27, 28, 29, 30, 32, 33], "elementari": 6, "compon": [6, 10, 11, 18, 29, 30], "opcod": [6, 10, 25, 26], "funct3": [6, 7, 10], "etc": [6, 10, 28], "connect": [6, 11, 13, 14, 20, 28, 29, 30], "via": [6, 28, 29], "its": [6, 12, 13, 14, 20, 27, 28, 29, 30, 32, 33], "attribut": [6, 7, 8, 9, 10, 11, 13, 14, 29, 30, 32, 33], "signal": [6, 7, 9, 10, 11, 19, 23, 29, 30, 31, 32, 33], "ilen": [6, 10], "out": [6, 7, 8, 11, 13, 18, 19, 29, 30, 33], "identifi": [6, 10, 25, 30], "funct3_v": 6, "1": [6, 7, 8, 10, 12, 14, 20, 25, 26, 27, 28, 29, 30, 31, 32, 33], "funct7": [6, 7, 10], "seven": 6, "funct7_v": 6, "funct12": [6, 10], "twelv": 6, "funct12_v": 6, "rd": [6, 10], "reg_cnt_log": 6, "address": [6, 9, 10, 11, 14, 19, 20], "regist": [6, 10, 12, 14, 20, 24, 30, 32], "rd_v": 6, "rs1": [6, 10], "hold": [6, 11, 14, 30], "first": [6, 7, 10, 12, 20, 25, 26, 27, 28, 30, 31, 32], "rs1_v": 6, "take": [6, 11, 13, 24, 25, 28, 29, 30, 31, 32], "form": [6, 10, 14, 20, 27, 30], "rs2": [6, 10], "second": [6, 7, 10, 12, 25, 26, 27, 30], "rs2_v": 6, "imm": [6, 10], "xlen": [6, 7, 10, 14, 32], "immedi": [6, 10, 11], "provid": [6, 7, 10, 12, 14, 27, 28, 30, 31, 32], "were": [6, 20, 28], "succ": 6, "fencetarget": [6, 10], "successor": 6, "fenc": [6, 10], "pred": 6, "predecessor": 6, "fm": 6, "fencefm": [6, 10], "mode": [6, 10, 17, 20], "csr_alen": [6, 10], "control": [6, 10, 11, 14, 27, 29, 30, 33], "sourc": [6, 10, 12, 17, 25, 29, 30], "type": [6, 7, 10, 17, 29, 30, 31, 32], "defin": [6, 9, 14, 28, 29, 30, 32, 33], "kind": [6, 7, 12, 30, 32], "illeg": 6, "wa": [6, 10, 14, 17, 20, 28, 29, 30, 32], "success": [6, 11, 31], "do": [6, 10, 20, 23, 28, 29], "fit": 6, "support": [6, 9, 10, 12, 17, 19, 29, 30], "constructor": [6, 28, 29, 32], "encod": [6, 20, 29, 32, 33], "object": [6, 7, 9, 10, 11, 27, 28, 29, 30, 31, 32], "repres": [6, 14, 29, 30], "singl": [6, 7, 8, 10, 12, 13, 14, 28, 29, 30, 32], "option": [6, 7, 10, 11, 14, 17, 28, 29, 30, 31, 32, 33], "exist": [6, 28], "instr_type_overrid": 6, "instrtyp": [6, 10], "specifi": [6, 10, 11, 14, 26, 30, 31, 32], "determin": [6, 20, 27, 30, 32], "instrust": 6, "almost": 6, "correct": [6, 9, 20, 25, 26, 27], "rd_zero": 6, "bool": [6, 7, 9, 10, 14, 29, 30, 31, 32, 33], "field": [6, 9, 10, 14, 17, 25, 26, 28, 29, 30, 31, 32], "constant": 6, "zero": [6, 10, 14, 25, 30, 33], "other": [6, 14, 17, 19, 28, 29, 30, 33], "accordingli": 6, "default": [6, 11, 17, 28, 29, 30, 32, 33], "fals": [6, 7, 9, 10, 17, 28, 29, 30, 32, 33], "rs1_zero": 6, "instrdecompress": 6, "decompr_reg": 6, "rvc_reg": 6, "instr_mux": 6, "sel": [6, 11], "list": [6, 7, 10, 11, 14, 17, 19, 23, 27, 29, 30, 31, 32, 33], "int": [6, 7, 8, 9, 10, 11, 13, 14, 29, 30, 31, 32, 33], "enum": [6, 7, 10, 29, 30, 31, 32], "valuecast": [6, 10, 29, 30, 31, 32], "tupl": [6, 7, 10, 11, 12, 13, 14, 29, 30, 32], "is_instr_compress": 6, "alucompon": [7, 10], "functionalcomponentparam": [7, 10, 13], "zba_en": 7, "zbb_enabl": 7, "get_modul": [7, 9, 10, 13, 14], "funcunit": [7, 10, 13, 15], "get_optyp": [7, 9, 10, 13, 14], "alufuncunit": 7, "alu_fn": 7, "alufn": 7, "divcompon": 7, "ipc": [7, 27], "3": [7, 10, 14, 17, 29, 32], "div_fn": 7, "divfn": 7, "decodermanag": 7, "fn": 7, "intflag": [7, 10, 29], "div": [7, 10], "divu": [7, 10], "2": [7, 8, 10, 11, 14, 27, 29, 30, 32], "rem": [7, 10], "remu": [7, 10], "8": [7, 8, 10, 11, 29, 30], "__new__": [7, 10, 14, 29], "get_instruct": 7, "valid": [7, 10, 11, 12, 25, 30, 32, 33], "implement": [7, 9, 11, 18, 19, 20, 24, 30, 32, 33], "format": [7, 17, 27, 28, 29, 30, 32], "divunit": 7, "get_input": 7, "arg": [7, 11, 28, 29, 30, 31, 32, 33], "exceptionfuncunit": 7, "unit_fn": 7, "exceptionunitfn": 7, "exceptionunitcompon": [7, 10], "respons": [7, 11, 12, 17, 29, 30, 31], "decode_fn": 7, "exec_fn": [7, 10], "op": [7, 10], "check_optyp": 7, "manag": [7, 17, 19, 29, 30, 32], "enumer": 7, "get_decod": 7, "auto": 7, "pass": [7, 13, 14, 17, 19, 27, 29, 30, 31, 32], "contructor": 7, "get_funct": 7, "get_op_typ": 7, "jumpbranchfuncunit": 7, "jb_fn": 7, "jumpbranchfn": 7, "jumpcompon": [7, 10], "mulcompon": 7, "mul_unit_typ": 7, "multyp": 7, "dsp_width": [7, 8], "mul_fn": 7, "mulfn": 7, "hot": [7, 20, 33], "wire": 7, "5": [7, 10, 24, 30, 31], "differ": [7, 11, 13, 17, 18, 20, 23, 27, 29, 30, 32], "mul": [7, 10], "mulh": [7, 10], "mulhsu": [7, 10], "mulhu": [7, 10], "intenum": [7, 10, 14], "recursive_mul": 7, "fastest": 7, "multipli": [7, 8], "onli": [7, 11, 14, 20, 27, 28, 29, 30, 31, 32], "costli": [7, 20], "term": 7, "resourc": [7, 14, 20, 27, 28], "sequence_mul": 7, "dsp": [7, 8], "balanc": 7, "between": [7, 17, 20, 28, 29, 30, 32, 33], "cost": [7, 19, 28], "shift_mul": 7, "cheapest": 7, "russian": [7, 8], "peasant": [7, 8], "algorithm": [7, 8], "mulunit": 7, "unsign": [7, 8], "integ": [7, 10, 31, 32], "standard": [7, 14, 20, 27, 30, 33], "funcunitlayout": [7, 10, 12, 13], "comput": [7, 8, 9, 14, 20, 30, 32], "mul_typ": 7, "privilegedfn": 7, "mret": [7, 10], "classmethod": [7, 29, 30, 32], "privilegedfuncunit": 7, "gp": [7, 10, 14], "privilegedunitcompon": [7, 10], "shiftfuncunit": 7, "shift_unit_fn": 7, "shiftunitfn": 7, "shiftunitcompon": [7, 10], "clmultipli": 7, "carri": [7, 10, 27], "less": [7, 10], "product": [7, 30], "i1": [7, 8], "n": [7, 8, 10], "factor": 7, "i2": [7, 8], "reset": [7, 14, 19, 29], "new": [7, 9, 11, 14, 19, 20, 29, 30, 32, 33], "busi": 7, "while": [7, 29, 31], "progress": 7, "bit_width": 7, "recursion_depth": 7, "width": [7, 8, 10, 11, 14, 30, 32, 33], "depth": [7, 11, 27, 30], "recurs": [7, 8, 27, 28, 29, 32], "parallel": [7, 30], "assum": [7, 13, 20, 30, 32], "power": [7, 32], "iterative_modul": 7, "recursive_modul": 7, "zbccompon": 7, "zbc_fn": 7, "zbcfn": 7, "clmul": [7, 10], "clmulh": [7, 10], "clmulr": [7, 10], "zbcunit": 7, "execut": [7, 10, 11, 12, 13, 17, 19, 24, 26, 28, 29, 30, 31], "zbsfunction": 7, "in1": 7, "in2": 7, "zbscompon": 7, "bclr": [7, 10], "bext": [7, 10], "binv": [7, 10], "bset": [7, 10], "zbsunit": 7, "zbs_fn": 7, "dspmulunit": 8, "clock": [8, 24, 27, 28, 29, 30], "design": [8, 20, 28, 29], "synthesi": [8, 19], "tool": [8, 17, 27, 29], "o": [8, 20, 28, 29], "same": [8, 9, 17, 28, 29, 30, 32], "number": [8, 10, 11, 13, 17, 20, 27, 29, 30, 31, 32, 33], "mulbaseunsign": 8, "unsignedmulunitlayout": [8, 10], "recursiveunsignedmul": 8, "see": [8, 23, 27, 28, 30], "fast": 8, "within": [8, 17], "sequentialunsignedmul": 8, "sequenti": [8, 11], "classic": [8, 20], "shiftunsignedmul": 8, "cheap": 8, "multi": 8, "lsublockcompon": [9, 10], "blockcomponentparam": [9, 10, 13, 14], "funcblock": [9, 10, 12, 13, 14, 15], "get_rs_entry_count": [9, 10, 13, 14], "lsudummi": 9, "veri": [9, 20, 28], "serial": [9, 13, 30], "all": [9, 10, 11, 14, 17, 19, 20, 23, 28, 29, 30, 32, 33], "store": [9, 10, 13, 14, 20, 25, 26, 29, 30, 32], "load": [9, 10, 20, 30, 32], "isn": [9, 27, 29], "compliant": [9, 27], "riscv": [9, 27], "spec": 9, "doesn": [9, 20, 23, 28, 30], "check": [9, 17, 20, 23, 25, 26, 27, 29, 32], "rang": [9, 29, 30, 31, 32, 33], "reserv": [9, 10, 14, 19, 20], "place": [9, 11, 14, 20, 25, 27, 28, 29, 30], "intruct": 9, "insert": [9, 12, 13, 14, 15, 19, 20, 24, 25], "put": [9, 14, 25, 27, 30], "receiv": [9, 11, 14, 28, 29, 30], "calcul": [9, 30], "end": [9, 10, 13, 20, 30], "further": [9, 17, 30], "get_result": [9, 13, 14, 15, 30], "To": [9, 17, 20, 27, 30, 32], "precommit": [9, 13, 17], "processor": [9, 18, 19, 24], "master": [9, 11, 27], "pmacheck": 9, "physic": [9, 10, 12, 20], "memori": [9, 10, 11, 20, 30], "checker": 9, "mai": [9, 17, 30, 31, 32], "part": [9, 14, 20, 24, 28, 29, 30], "combin": [9, 13, 19, 23, 29, 30, 32], "circuit": [9, 27, 28, 29, 30, 32], "pmalayout": 9, "structlayout": [9, 29, 30, 32], "pmaregion": [9, 10], "contigu": [9, 10], "region": [9, 20], "includ": [9, 27, 28, 29, 30, 32, 33], "both": [9, 25, 28, 29, 30, 32], "begin": [9, 20], "mmio": 9, "true": [9, 10, 11, 28, 29, 30, 31, 32, 33], "indic": [9, 20, 26, 29, 30], "coreconfigur": 10, "func_units_config": 10, "collect": [10, 13, 14, 18, 27, 29, 30, 31, 32, 33], "station": [10, 19], "exampl": [10, 14, 17, 19, 25, 28, 29, 30, 33], "rsblockcompon": [10, 13], "rs_entri": [10, 13, 14], "compress": 10, "enabl": [10, 30, 31, 32], "embed": 10, "reduc": [10, 20, 29], "debug": [10, 17, 30, 32], "hardwar": [10, 19, 24, 28, 30], "disabl": [10, 29, 30, 31], "them": [10, 17, 20, 27, 28, 29, 30, 32], "synthes": [10, 27, 30], "phys_regs_bit": 10, "file": [10, 17, 20, 27, 32], "rob_entries_bit": 10, "reorder": [10, 20, 30], "buffer": [10, 11, 20, 25, 30], "start_pc": 10, "initi": [10, 11, 19, 30, 31], "program": [10, 20, 27, 28], "icache_en": 10, "bypass": 10, "directli": [10, 28, 29], "icache_wai": 10, "icache_sets_bit": 10, "icache_block_size_bit": 10, "allow_partial_extens": 10, "allow": [10, 18, 20, 27, 28, 29, 30, 33], "partial": [10, 29, 30, 32], "_implied_extens": 10, "extenst": 10, "flag": 10, "intern": [10, 19, 28, 29, 30], "definit": [10, 19, 29], "per": [10, 27], "segment": 10, "abc": [10, 29, 30, 31, 32, 33], "func_unit": [10, 13], "csrblockcompon": [10, 14], "6": [10, 20], "7": 10, "factori": [10, 29, 30, 32], "kwarg": [10, 11, 29, 30, 31, 32, 33], "optypes_support": 10, "iter": [10, 13, 14, 29, 30, 31, 32, 33], "dependentcach": [10, 32], "cfg": 10, "addr_width": [10, 11], "length": [10, 20, 29, 32], "word_width": 10, "machin": [10, 14], "num_of_wai": 10, "num_of_sets_bit": 10, "block_size_bit": 10, "btypeinstr": 10, "riscvinstr": 10, "pack": 10, "ebreakinstr": 10, "itypeinstr": 10, "illegalinstr": 10, "jtypeinstr": 10, "rtypeinstr": 10, "stypeinstr": 10, "utypeinstr": 10, "exceptioncaus": 10, "breakpoint": 10, "environment_call_from_m": 10, "environment_call_from_": 10, "9": 10, "environment_call_from_u": 10, "illegal_instruct": 10, "instruction_access_fault": 10, "instruction_address_misalign": 10, "instruction_page_fault": 10, "load_access_fault": 10, "load_address_misalign": 10, "load_page_fault": 10, "store_access_fault": 10, "store_address_misalign": 10, "store_page_fault": 10, "avail": [10, 11, 12, 14, 17, 18, 27, 30], "atom": [10, 25, 28], "b": 10, "512": 10, "manipul": 10, "256": 10, "d": [10, 28, 29, 32], "doubl": [10, 14, 20], "precis": [10, 20, 27], "float": [10, 29, 30, 31, 32], "point": [10, 20, 23, 27], "64": [10, 11], "f": [10, 12, 17, 27, 31], "98366": 10, "contain": [10, 17, 27, 28, 29, 30, 32], "basic": [10, 19, 27, 30], "full": [10, 17, 19, 20, 27, 30], "j": 10, "1024": 10, "dynam": [10, 20, 33], "languag": [10, 28], "l": [10, 17], "decim": 10, "m": [10, 11, 14, 17, 20, 27, 28, 29, 30, 33], "divis": 10, "16384": 10, "user": [10, 14, 20, 27, 30], "level": [10, 11, 18, 20, 27, 28, 30, 31, 32], "interrupt": [10, 19], "p": [10, 17], "4096": 10, "simd": 10, "q": 10, "quad": 10, "2048": 10, "8192": 10, "vector": [10, 12, 19, 20], "xintmachinemod": 10, "8589934592": 10, "categor": 10, "privilieg": 10, "xintsupervisor": 10, "17179869184": 10, "supervisor": [10, 14], "zam": 10, "2097152": 10, "misalign": 10, "zba": 10, "268435456": 10, "extend": [10, 23, 29], "zbb": 10, "536870912": 10, "1073741824": 10, "2147483648": 10, "zdinx": 10, "33554432": 10, "zfh": 10, "4194304": 10, "half": 10, "zfhmin": 10, "8388608": 10, "minim": 10, "zfinx": 10, "16777216": 10, "zhinx": 10, "67108864": 10, "zicntr": 10, "524288": 10, "timer": [10, 14], "zicsr": 10, "32768": 10, "statu": [10, 14, 31], "zifencei": 10, "65536": 10, "zihintntl": 10, "262144": 10, "non": [10, 25, 29, 30, 31], "tempor": 10, "local": [10, 14, 17], "hint": [10, 29], "zihintpaus": 10, "131072": 10, "paus": 10, "energi": 10, "zihpm": 10, "1048576": 10, "zmmul": 10, "134217728": 10, "ztso": 10, "4294967296": 10, "total": 10, "tso": 10, "dev_i": 10, "dev_o": 10, "mem_r": 10, "mem_w": 10, "clz": 10, "1536": 10, "cpop": 10, "1538": 10, "ctz": 10, "1537": 10, "ebreak": 10, "ecal": 10, "770": 10, "orcb": 10, "647": 10, "rev8_32": 10, "1688": 10, "rev8_64": 10, "1720": 10, "sextb": 10, "1540": 10, "sexth": 10, "1541": 10, "sret": 10, "258": 10, "wfi": 10, "261": 10, "zexth": 10, "add": [10, 28, 29, 30, 32], "AND": 10, "andn": 10, "beq": 10, "bge": 10, "bgeu": 10, "blt": 10, "bltu": 10, "bne": 10, "csrrc": 10, "csrrci": 10, "csrr": 10, "csrrsi": 10, "csrrw": 10, "csrrwi": 10, "divuw": 10, "divw": 10, "fencei": 10, "h": [10, 20], "hu": 10, "jalr": 10, "max": [10, 27], "maxu": 10, "min": [10, 30], "minu": 10, "mulw": 10, "OR": 10, "orn": 10, "remuw": 10, "remw": 10, "rev8": 10, "rol": 10, "ror": 10, "sh1add": 10, "sh2add": 10, "sh3add": 10, "sll": 10, "slt": 10, "sltu": 10, "sr": 10, "sub": [10, 30], "w": [10, 20], "xnor": 10, "xor": 10, "36": 10, "52": 10, "20": 10, "48": 10, "muldiv": 10, "sa": 10, "sfencevma": 10, "sl": 10, "gather": 10, "numer": 10, "val": [10, 32], "correspond": [10, 25, 29, 33], "val_log": 10, "relev": [10, 29], "nativ": 10, "reg_cnt": 10, "maximum": [10, 27, 30], "bitwis": 10, "isa_str": 10, "string": [10, 30, 31], "pleas": [10, 17, 23, 28], "refer": [10, 29, 32], "gcc": 10, "": [10, 11, 20, 28, 29, 30, 32, 33], "arch": [10, 17, 27], "detail": [10, 14, 19, 30], "u": [10, 20, 27, 30, 32], "auipc": 10, "branch": [10, 20, 27, 30], "24": 10, "jal": 10, "27": 10, "25": 10, "load_fp": 10, "lui": 10, "misc_mem": 10, "op32": 10, "op_imm": 10, "op_imm_32": 10, "store_fp": 10, "system": [10, 27, 28, 32], "28": [10, 20], "a0": 10, "a1": 10, "a2": 10, "a3": 10, "a4": 10, "a5": 10, "a6": 10, "a7": 10, "17": 10, "fp": [10, 29], "ra": 10, "s0": 10, "s1": 10, "s10": 10, "26": 10, "s11": 10, "s2": 10, "18": 10, "s3": 10, "19": 10, "s4": 10, "s5": 10, "21": 10, "s6": 10, "22": 10, "s7": 10, "23": 10, "s8": 10, "s9": 10, "sp": 10, "t0": 10, "t1": [10, 28], "t2": [10, 28], "t3": 10, "t4": 10, "29": 10, "t5": 10, "30": [10, 20], "t6": 10, "tp": [10, 32], "x1": 10, "x10": 10, "x11": 10, "x12": 10, "x13": 10, "x14": 10, "x15": 10, "x16": 10, "x17": 10, "x18": 10, "x19": 10, "x2": 10, "x20": 10, "x21": 10, "x22": 10, "x23": 10, "x24": 10, "x25": 10, "x26": 10, "x27": 10, "x28": 10, "x29": 10, "x3": 10, "x30": 10, "x31": 10, "x4": 10, "x5": 10, "x6": 10, "x7": 10, "x8": 10, "x9": 10, "asyncinterruptinsertsignalkei": 10, "simplekei": [10, 29, 30, 32], "branchverifykei": 10, "commonbusdatakei": 10, "exceptionreportkei": 10, "fetchresumekei": 10, "unifierkei": [10, 13, 30], "unifi": [10, 30], "alia": 10, "collector": [10, 30], "genericcsrregisterskei": 10, "genericcsrregist": [10, 14], "instructionprecommitkei": 10, "methodtryproduct": [10, 30], "mretkei": 10, "csrlayout": 10, "commonlayoutfield": 10, "commonli": 10, "layoutlistfield": 10, "caus": [10, 20, 30, 32], "piec": 10, "rais": [10, 20, 29, 30, 31, 32], "exec_fn_layout": 10, "op_typ": 10, "reg_id": 10, "id": [10, 12, 25, 26, 29], "reg_val": 10, "some": [10, 14, 20, 23, 28, 29, 30], "regs_l": 10, "logic": [10, 20, 26, 27, 28], "manual": [10, 19, 28], "thei": [10, 11, 14, 17, 20, 24, 27, 28, 29, 30], "regs_p": 10, "rl_dst": 10, "destin": 10, "operand": [10, 20, 25, 26], "rl_s1": 10, "rl_s2": 10, "rob_id": 10, "entri": [10, 12, 13, 20, 24, 25, 26, 30, 32], "rp_dst": 10, "rp_s1": 10, "rp_s2": 10, "s1_val": 10, "s2_val": 10, "side_fx": 10, "side": [10, 14, 20, 25, 26], "effect": [10, 14, 20, 25, 26, 29, 30], "fetcher": 10, "access_fault": 10, "fail": [10, 20, 30], "produc": [10, 17], "jumpbranchlayout": 10, "verify_branch": 10, "predictor": 10, "about": [10, 17, 19, 29, 30, 32], "lsulayout": 10, "ratlayout": [10, 12], "tabl": [10, 19], "old_rp_dst": 10, "previous": [10, 11], "rrat": [10, 14], "rflayout": [10, 12], "roblayout": [10, 12], "done": [10, 20, 27, 28, 29, 30, 31], "yet": [10, 29], "latest": [10, 27, 30], "rob_data": 10, "earliest": [10, 14], "rsinterfacelayout": 10, "rs_entries_bit": 10, "data_layout": [10, 12, 30, 32], "shapelik": [10, 29, 30, 32], "layoutlist": [10, 29, 30, 32], "rslayout": [10, 12], "ready_list": 10, "bitmask": 10, "run": [10, 17, 27, 28, 29, 30, 31, 33], "retirementlayout": 10, "current": [10, 12, 14, 20, 29], "schedulerlayout": 10, "regs_l_rob_in": 10, "befor": [10, 11, 14, 17, 23, 24, 28, 30], "alloc": [10, 12, 24, 25, 26], "regs_p_alloc_out": 10, "rs_entry_id": 10, "rs_select": 10, "confus": 10, "address_gener": 10, "arithmet": 10, "bit_manipul": 10, "bit_rot": 10, "compar": [10, 19], "csr_imm": [10, 14], "csr_reg": [10, 14], "div_rem": 10, "34": 10, "33": 10, "single_bit_manipul": 10, "unary_bit_manipulation_1": 10, "unary_bit_manipulation_2": 10, "unary_bit_manipulation_3": 10, "unary_bit_manipulation_4": 10, "unary_bit_manipulation_5": 10, "unknown": [10, 17, 29, 30, 32], "optypes_required_by_extens": 10, "resolve_impl": 10, "ignore_unsupport": 10, "axiliteinterfac": 11, "abstractinterfac": 11, "abstractsignatur": 11, "read_address": 11, "axilitereadaddressinterfac": 11, "read_data": 11, "axilitereaddatainterfac": 11, "write_address": 11, "axilitewriteaddressinterfac": 11, "write_data": 11, "axilitewritedatainterfac": 11, "write_respons": 11, "axilitewriteresponseinterfac": 11, "axilitemast": 11, "axi": 11, "lite": 11, "axil_param": 11, "axiliteparamet": 11, "ra_request": 11, "channel": 11, "being": [11, 17, 30, 32, 33], "ra_request_layout": 11, "argument": [11, 12, 17, 19, 26, 27, 29, 30, 31, 32, 33], "rd_respons": 11, "availab": 11, "state": [11, 19, 20, 28, 29, 30, 31], "rd_response_layout": 11, "wa_request": 11, "wa_request_layout": 11, "wd_request": 11, "wd_request_layout": 11, "wr_respons": 11, "wr_response_layout": 11, "axil_mast": 11, "result_handl": 11, "tmodul": [11, 14, 28, 29, 30], "start_request_transact": 11, "is_address_channel": 11, "state_machine_request": 11, "request_sign": 11, "data_width": 11, "must": [11, 29, 30, 32], "axilitesignatur": 11, "signatur": 11, "patamet": 11, "axilitemasteradapt": 11, "where": [11, 12, 17, 20, 25, 26, 28, 29, 30, 31, 32], "expect": 11, "busparametersinterfac": 11, "method_layout": 11, "commonbusmastermethodlayout": 11, "request_read": 11, "underli": 11, "request_read_layout": 11, "request_writ": 11, "request_write_layout": 11, "get_read_respons": 11, "action": [11, 14, 29, 30, 32], "read_response_layout": 11, "get_write_respons": 11, "write_response_layout": 11, "prefer": [11, 28], "gain": 11, "simplifi": 11, "interchang": 11, "buse": 11, "sent": [11, 13, 31], "wishbonemasteradapt": 11, "wishbonemast": 11, "pipelinedwishbonemast": 11, "wb_param": 11, "wishboneparamet": 11, "max_req": 11, "limit": [11, 28, 30], "pend": 11, "wb": 11, "request_layout": 11, "complet": [11, 13, 20], "result_layout": 11, "requests_finish": 11, "generate_method_layout": 11, "wishbonearbit": 11, "arbit": 11, "slave": 11, "assert": [11, 30, 33], "cyc": 11, "grant": [11, 28, 29, 30, 33], "round": [11, 29, 32, 33], "robin": [11, 29, 33], "num_slav": 11, "devic": 11, "slave_wb": 11, "intefac": 11, "num_mast": 11, "ack": 11, "adr": 11, "dat_r": 11, "dat_w": 11, "err": 11, "lock": [11, 17, 20, 28, 29, 30], "rst": 11, "rty": 11, "stall": [11, 14, 20], "stb": 11, "name": [11, 17, 28, 29, 30, 31, 32, 33], "wb_master": 11, "becom": 11, "wishbonemastermethodlayout": 11, "wishbonememoryslav": 11, "underneath": 11, "keyword": [11, 28, 29, 30, 31, 32], "re": [11, 20, 23, 28, 29], "infer": [11, 29], "wishbonemux": 11, "muxer": 11, "multiplex": [11, 28], "ssel_tga": 11, "corespond": 11, "tga": 11, "so": [11, 13, 20, 27, 28, 29, 30], "note": [11, 14, 30], "stare": 11, "finish": [11, 13, 14, 30], "clear": [11, 25, 26, 30], "delai": [11, 28], "deassert": [11, 33], "master_wb": 11, "singal": 11, "granular": [11, 30], "smallest": 11, "port": [11, 30, 32, 33], "capabl": 11, "wishbonesignatur": 11, "path": [11, 29, 30], "src_loc_at": [11, 30], "prepar": [12, 17, 20, 29], "In": [12, 17, 18, 19, 26, 27, 28, 29, 32], "renam": [12, 24], "without": [12, 13, 20, 30, 32], "stuck": 12, "get_instr": 12, "get_free_reg": 12, "rat_renam": 12, "rob_put": 12, "rf_read1": 12, "rf_read2": 12, "reservation_st": 12, "decoded_instr": 12, "free": [12, 19, 20, 26], "rat_rename_in": 12, "rat_rename_out": 12, "rf_read_out": 12, "rf_read_in": 12, "wakeupselect": 12, "wakeup": [12, 26], "firstli": 12, "get_readi": 12, "binari": [12, 27, 33], "th": [12, 30, 33], "posit": [12, 25, 26, 32], "row": [12, 17, 19], "taken": [12, 27, 29, 30], "take_row": 12, "get_ready_list_out": 12, "take_out": 12, "push": 12, "down": [12, 32], "resultannounc": 13, "mark": [13, 19, 20, 29], "also": [13, 17, 27, 28, 30, 31], "more": [13, 17, 19, 20, 30, 32], "than": [13, 20, 30, 32], "manytooneconnecttran": [13, 30], "rob_mark_don": 13, "rs_updat": 13, "rf_write": 13, "funcblocksunifi": 13, "extra_methods_requir": 13, "get_extra_method": 13, "item": [13, 32, 33], "rob_peek": 13, "rob_retir": 13, "r_rat_commit": 13, "r_rat_peek": 13, "free_rf_put": 13, "rf_free": 13, "exception_cause_get": 13, "exception_cause_clear": 13, "frat_renam": 13, "fetch_continu": [13, 14], "instr_decr": 13, "trap_entri": 13, "rsfuncblock": 13, "With": 13, "csrlistkei": 14, "listkei": [14, 30, 32], "csrregist": 14, "dependencymanag": [14, 29, 30, 31, 32], "behaviour": [14, 27], "automat": [14, 17, 27, 32], "csrunit": 14, "bodi": [14, 28, 29, 30], "csr_val": 14, "els": [14, 20, 28, 29], "_fu_read": 14, "_fu_writ": 14, "ignor": 14, "prioriti": [14, 28, 29, 30], "csr_number": 14, "ro_bit": 14, "mask": [14, 30], "those": [14, 20, 29], "upper": [14, 30], "0b11": 14, "discard": 14, "regitst": 14, "unitl": 14, "resum": 14, "privilegelevel": 14, "csr_access_privileg": 14, "csr_addr": 14, "csraddress": 14, "3072": 14, "cycleh": 14, "3200": 14, "instret": 14, "3074": 14, "instreth": 14, "3202": 14, "mcaus": 14, "834": 14, "mepc": 14, "833": 14, "mtvec": 14, "773": 14, "3073": 14, "timeh": 14, "3201": 14, "doublecountercsr": 14, "group": 14, "At": 14, "overflow": [14, 30], "low_addr": 14, "high_addr": 14, "lower": [14, 32], "higher": 14, "synthetis": 14, "machinemodecsrregist": 14, "exceptioncauseregist": 14, "reorderbuff": 14, "report": [14, 30], "rob_get_indic": 14, "fetch_stall_except": 14, "should_update_priorii": 14, "current_caus": 14, "new_caus": 14, "coreinstructioncount": 14, "count": [14, 17, 30, 33], "leav": [14, 17], "decrement": 14, "interruptcontrol": 14, "frat": 14, "registerfil": 14, "ready_for": 14, "below": [17, 30], "instal": [17, 27], "python": [17, 28, 29, 30, 32], "interpret": [17, 30, 32], "pip": [17, 27], "virtual": 17, "python3": [17, 27], "venv": [17, 27], "project": [17, 18, 20], "directori": [17, 18, 27], "activ": [17, 27, 30, 31, 33], "bin": [17, 27], "librari": [17, 19, 30], "pip3": [17, 27], "dev": [17, 27], "txt": [17, 27], "riscv64": 17, "elf": 17, "binutil": 17, "your": [17, 23], "favourit": 17, "On": [17, 30], "debian": 17, "distro": 17, "hook": [17, 29], "pre": [17, 27], "linter": 17, "ci": [17, 27], "intend": [17, 29], "By": [17, 29, 30], "test_transact": 17, "One": [17, 20, 28, 30, 33], "even": [17, 20, 28, 29, 30], "testschedul": 17, "Or": [17, 28], "test_singl": 17, "search": 17, "match": [17, 25, 26, 33], "queri": 17, "thank": 17, "uniqu": [17, 29, 30], "just": [17, 28, 30], "help": [17, 20, 30], "find": [17, 20, 30], "parameter": 17, "waveform": 17, "vcd": 17, "gtkw": [17, 32], "gtkwave": [17, 32], "__traces__": 17, "driven": 17, "transactron": [17, 19, 28], "__profile__": 17, "analyz": 17, "verbos": [17, 27], "runner": 17, "print": [17, 30], "code": [17, 18, 20, 23, 27, 28, 29, 30, 32, 33], "subcommand": 17, "filenam": 17, "main": [17, 20, 24, 27], "reformat": 17, "black": 17, "check_format": 17, "verifi": [17, 27], "flake8": 17, "check_typ": 17, "pyright": 17, "confront": 17, "would": [17, 20, 28, 30, 32], "messag": [17, 30], "you": [17, 23, 25, 27, 30], "diff": 17, "displai": 17, "chang": [17, 25, 28, 30, 31, 32, 33], "appli": [17, 20, 23, 29, 31], "chose": 17, "locat": [17, 18, 24, 29, 30, 32], "visual": 17, "architectur": [17, 20, 27], "appropri": [17, 25, 30, 31], "prune": [17, 29], "remov": [17, 20], "disconnect": 17, "node": 17, "elk": [17, 29], "eclips": 17, "kernel": [17, 20], "dot": [17, 29, 30], "graphviz": 17, "mermaid": [17, 29], "document": [17, 19], "sphinx": 17, "html": [17, 18], "build": [17, 27, 30], "present": [17, 20, 28, 30, 32], "readabl": [17, 30], "profile_fil": 17, "json": [17, 27, 32], "column": 17, "question": [17, 28], "togeth": [17, 28, 29], "differenti": 17, "ident": [17, 30], "declar": [17, 28, 30, 31], "disambigu": 17, "show": 17, "caller": [17, 28, 29, 30], "condit": [17, 28, 29, 30], "could": [17, 28, 30], "forc": 17, "conflict": [17, 19, 29], "tree": [17, 29, 30], "root": [17, 29], "invert": 17, "children": 17, "how": [17, 20, 25, 27, 29, 30], "mani": [17, 20, 27, 28, 29, 30, 32], "sort": 17, "filter": [17, 30], "regular": 17, "express": [17, 28, 30], "loc": 17, "coreblock": [18, 23, 27], "go": [18, 20, 23, 29], "microarchitectur": 18, "focu": 18, "flexibl": [18, 24], "easili": [18, 30], "experi": 18, "doc": 18, "descript": [18, 19, 27, 30, 32], "overview": [18, 19, 20], "high": [18, 30, 33], "found": [18, 27], "version": [18, 27], "page": [18, 20, 27], "api": [18, 19], "kuznia": [18, 27], "rdzeni": [18, 27], "github": [18, 27], "io": [18, 27], "introduct": 19, "assumpt": [19, 20], "made": [19, 20, 28], "develop": [19, 30], "environ": 19, "up": [19, 26, 27, 30, 32], "script": [19, 27], "run_test": [19, 27], "py": [19, 27], "lint": 19, "sh": 19, "core_graph": 19, "build_doc": 19, "tprof": 19, "framework": [19, 25], "usag": 19, "convent": 19, "advanc": 19, "concept": 19, "special": [19, 30], "domain": [19, 23, 29], "nest": [19, 30], "schema": [19, 29, 30, 32], "structur": [19, 20, 25, 28, 29, 30, 32], "proposit": [19, 20], "slot": [19, 30], "substitut": 19, "clean": 19, "extern": [19, 27, 28, 29], "problem": [19, 20], "checklist": 19, "verif": 19, "reproduct": 19, "benchmark": 19, "regress": 19, "map": [19, 20, 29, 30, 31, 32, 33], "summari": 19, "paper": 19, "old": 19, "softwar": [19, 30], "tlb": 19, "analysi": [19, 29], "strategi": 19, "igpu": 19, "specul": 19, "gpu": 19, "effici": 19, "journal": 20, "articl": 20, "look": [20, 30], "choic": 20, "primari": 20, "relat": [20, 29, 30, 32], "procedur": 20, "chosen": 20, "basi": 20, "improv": [20, 28], "pretti": 20, "1993": 20, "2001": 20, "much": [20, 30], "research": 20, "cpu": 20, "consid": [20, 28, 30], "solv": 20, "instead": [20, 23, 28, 29, 30, 31, 33], "try": [20, 23, 28], "due": [20, 29, 30], "characterist": 20, "easi": [20, 23, 28, 30], "our": [20, 24, 27], "decid": [20, 24, 28], "what": 20, "peopl": 20, "probabl": [20, 31], "lot": 20, "worth": 20, "walker": 20, "cragon": 20, "concurr": [20, 29], "ieee": 20, "vol": 20, "june": 20, "1995": 20, "moudgil": 20, "vassiliadi": 20, "micro": 20, "pp": 20, "58": 20, "67": 20, "februari": 20, "1996": 20, "These": [20, 27, 28], "survei": 20, "topic": 20, "cdc": 20, "6600": 20, "jump": 20, "handler": [20, 31], "ibm360": 20, "stop": [20, 30], "crai": 20, "similar": [20, 27, 28, 30, 33], "here": [20, 25], "bigger": [20, 30], "torng": 20, "martin": 20, "dai": 20, "probe": 20, "idea": [20, 28], "author": 20, "window": 20, "iw": 20, "dispatch": [20, 24, 25, 26], "didn": 20, "context": [20, 29, 30, 32], "copi": [20, 29], "restor": [20, 29], "restart": [20, 33], "few": 20, "big": 20, "overhead": 20, "origin": [20, 29, 30], "unfeas": 20, "becaus": [20, 28, 29, 30], "job": 20, "addition": [20, 30], "But": 20, "mayb": [20, 28], "possibl": [20, 27, 28, 30, 32], "cooper": 20, "smaller": 20, "interest": 20, "propos": 20, "nrp": 20, "No": [20, 30], "itself": [20, 32], "don": [20, 23, 25, 28, 29], "wast": 20, "rememb": [20, 28, 29], "element": [20, 30], "left": [20, 28, 29], "middl": [20, 24], "aamer": 20, "jaleel": 20, "bruce": 20, "jacob": 20, "cours": 20, "switch": [20, 25, 28, 29, 30, 33], "penalti": 20, "alpha": 20, "mip": 20, "concentr": 20, "properti": [20, 27, 29], "short": 20, "inlin": 20, "observ": [20, 30], "import": [20, 28], "enough": 20, "live": 20, "known": 20, "fly": 20, "swap": 20, "nop": 20, "reexecut": 20, "privileg": 20, "contrast": 20, "tendenc": 20, "longer": 20, "hard": [20, 30], "risk": [20, 28, 30], "linux": [20, 27], "purpos": [20, 29, 30], "addit": [20, 27, 28, 32], "hw": 20, "bore": 20, "treat": [20, 24], "mansur": 20, "samadzadeh": 20, "loai": 20, "garalnabi": 20, "checkpoint": 20, "repair": 20, "histori": 20, "futur": [20, 24, 25], "jaikrishnan": 20, "menon": 20, "marc": 20, "de": 20, "kruijf": 20, "karthikeyan": 20, "sankaralingam": 20, "2012": 20, "low": 20, "boundari": 20, "safe": [20, 28, 32], "rewritten": 20, "recompil": 20, "runtim": [20, 29], "subregion": 20, "small": 20, "overrid": 20, "barrier": 20, "warp": 20, "wrong": 20, "split": [20, 24, 30, 31], "prevent": 20, "ivan": 20, "tanas": 20, "isaac": 20, "gelado": 20, "jorda": 20, "eduard": 20, "ayguad": 20, "nacho": 20, "navarro": 20, "2017": 20, "analys": 20, "problemat": 20, "successfulli": 20, "kill": 20, "modif": 20, "usual": [20, 28, 30], "repli": 20, "modifi": [20, 30], "claim": 20, "replai": 20, "queue": [20, 28, 30], "marker": 20, "jerom": 20, "hampton": 20, "2008": 20, "mention": 20, "alli": 20, "bailei": 20, "ab04": 20, "ag": 20, "younger": 20, "repeat": 20, "commun": [20, 25, 28], "canon": 20, "eventu": 20, "aren": [20, 28, 30], "someth": [23, 28, 33], "puzzl": 23, "why": 23, "through": [23, 30], "sure": [23, 31], "yield": [23, 31], "notabl": 23, "settl": 23, "unexpect": 23, "ad": [23, 28, 29, 30, 31, 32, 33], "right": [23, 28, 29], "eq": [23, 28, 29], "record": [23, 28, 29, 30, 31, 32, 33], "statement": [23, 28, 29, 31, 32], "loop": [23, 28], "especi": 23, "simul": [23, 27, 29, 30, 31], "hang": 23, "spot": 23, "yourself": [23, 28], "fix": 23, "mistak": 23, "Its": [24, 28], "task": [24, 29], "rss": 24, "phase": 24, "choos": [24, 27], "potenti": 24, "merg": 24, "optim": 24, "todo": 24, "want": [25, 27, 29, 31, 33], "feel": 25, "anyth": 25, "id_out": [25, 26], "id_rob": [25, 26], "id_rs1": [25, 26], "val_rs1": [25, 26], "id_rs2": [25, 26], "val_rs2": [25, 26], "fill": 25, "id_rsx": 25, "val_rsx": 25, "releas": 25, "comparison": 25, "null": [25, 26], "woken": 26, "invalid": 26, "src1": [26, 30], "src2": [26, 30], "inst_readi": 26, "sever": [27, 30], "besid": 27, "synthesis": 27, "ecp5": 27, "fpga": [27, 30], "target": [27, 30], "realiti": 27, "cocotb": 27, "assembl": 27, "deliv": 27, "histor": 27, "dedic": [27, 30], "subpag": 27, "built": 27, "docker": 27, "publicli": 27, "subsect": 27, "recreat": 27, "command": [27, 31], "platform": [27, 28, 29], "amd64": 27, "synth": 27, "amaranthsynthecp5": 27, "dockerfil": 27, "complex": [27, 30], "although": 27, "educ": 27, "practic": 27, "frequenc": 27, "too": [27, 29], "met": [27, 29], "whether": [27, 29, 33], "cell": 27, "ram": 27, "dff": 27, "repo": 27, "sudo": 27, "pull": 27, "ghcr": 27, "rm": 27, "git": 27, "clone": 27, "http": 27, "com": 27, "cd": 27, "apt": 27, "upgrad": 27, "pythonhashse": 27, "config": 27, "parse_benchmark_info": 27, "cat": 27, "abov": [27, 28], "verilog": [27, 32], "yosi": 27, "nextpnr": 27, "bitstream": 27, "strength": 27, "modular": [27, 28], "littl": 27, "effort": 27, "gate": 27, "rout": 27, "prjtrelli": 27, "measur": [27, 30], "theori": 27, "increas": [27, 28, 30], "fmax": 27, "avoid": [27, 28], "pitfal": 27, "affect": 27, "throughput": [27, 30], "monitor": 27, "accuraci": 27, "embench": 27, "compil": [27, 28, 31], "gnu": 27, "toolchain": 27, "glibc": 27, "subset": 27, "exact": [27, 29], "onc": [27, 28, 29, 30, 33], "veril": 27, "featur": [27, 28], "stub": 27, "compat": [27, 30], "host": 27, "init": [27, 30], "mount": 27, "subdirectori": 27, "share": 27, "surviv": 27, "close": 27, "exit": 27, "gen_verilog": 27, "run_benchmark": 27, "inspir": 28, "bluespec": 28, "wiki": 28, "entrieti": 28, "doe": [28, 31, 33], "link": 28, "indirectli": [28, 29], "coordin": 28, "direct": [28, 29, 30], "back": 28, "simplest": 28, "myth": 28, "def": [28, 29], "elabor": 28, "self": [28, 31], "comb": [28, 29], "sig1": 28, "expr1": 28, "sync": [28, 29], "sig2": 28, "expr2": 28, "arg_expr": 28, "analog": 28, "typic": [28, 29, 30], "myotherth": 28, "my_method": 28, "input_layout": 28, "output_layout": 28, "def_method": [28, 29], "_": [28, 29], "other_method": 28, "ret_expr": 28, "techniqu": 28, "conveni": [28, 29, 30], "syntax": [28, 29], "particular": 28, "unnam": 28, "around": 28, "sometim": 28, "might": [28, 29, 30], "altern": [28, 29, 30], "best": 28, "ask": 28, "thing": [28, 30, 32], "doubt": 28, "noth": 28, "Such": [28, 31], "adaptertran": [28, 30], "though": 28, "cleaner": 28, "suppos": 28, "foo": [28, 30], "bar": [28, 30], "cleanest": 28, "recommend": 28, "foo_expr": 28, "bar_expr": 28, "final": 28, "rec": 28, "layout2": 28, "foobar": 28, "baz": 28, "42": 28, "method2": [28, 30], "baz_expr": 28, "method3": 28, "expr": 28, "mechan": [28, 30], "certain": 28, "occas": 28, "facilit": 28, "ones": 28, "connecttran": [28, 30], "plain": [28, 29, 30], "testbench": [28, 30], "own": [28, 29], "variant": 28, "role": 28, "omit": [28, 29, 30], "unneed": 28, "av_comb": [28, 29], "top_comb": [28, 29], "avoidedif": [28, 29], "guard": [28, 29, 30], "therefor": 28, "induc": 28, "often": 28, "belong": [28, 30], "move": [28, 30], "top": [28, 32], "caveat": 28, "normal": [28, 30], "cannot": [28, 29, 30, 31], "schedule_befor": 28, "first_t_or_m": 28, "other_t_or_m": 28, "lift": 28, "first_m": 28, "other_t": 28, "situat": [28, 29], "mutual": [28, 30], "exclus": [28, 29, 30], "similarli": [28, 30], "add_conflict": [28, 29], "undefin": [28, 29], "other_m": 28, "come": 28, "consider": 28, "parent": 28, "convers": 28, "impli": 28, "amaranth_ext": [29, 32], "transactionbas": 29, "serv": [29, 30], "simultena": 29, "transactionmanag": [29, 31], "rest": 29, "behavior": [29, 30, 32], "combination": 29, "data_out": [29, 30], "data_in": [29, 30], "methodstruct": [29, 30], "shape": [29, 32], "shapecast": [29, 32], "forwardref": [29, 31, 32], "nonexclus": 29, "single_cal": [29, 30], "src_loc": [29, 30, 32], "variabl": [29, 33], "happen": 29, "thrown": 29, "srcloc": [29, 30], "stack": [29, 30, 32], "frame": [29, 30], "deep": [29, 30], "const": [29, 30], "d1": [29, 30], "d0": 29, "validate_argu": 29, "callabl": [29, 30, 31, 32], "combinationi": 29, "valuelik": [29, 30], "my_sum_method": 29, "arg1": 29, "arg2": 29, "sum": [29, 30], "_rec": [29, 30, 31, 32, 33], "signalbundl": [29, 30, 31, 32, 33], "layout_in": 29, "layout_out": 29, "static": [29, 32], "construct": [29, 30], "blueprint": 29, "freshli": 29, "proxi": 29, "priorit": 29, "modulelik": [29, 30, 33], "amount": [29, 31], "useless": 29, "multplex": 29, "unguard": 29, "synchron": [29, 30], "cond": [29, 30], "pattern": 29, "elif": 29, "fsm": 29, "ctrl_path": 29, "noreturn": 29, "regularli": 29, "explicit": 29, "implicit": 29, "aris": 29, "pair": [29, 30], "runnabl": 29, "transactioncontext": 29, "care": [29, 30], "never": 29, "cc_schedul": 29, "methodmap": [29, 30], "_dsl": 29, "eager_deterministic_cc_schedul": 29, "add_transact": 29, "print_info": 29, "cgr": 29, "porder": 29, "cc": 29, "method_map": 29, "visual_graph": 29, "fragment": 29, "transactionmanagerkei": 29, "transactionmodul": 29, "wrapper": [29, 30], "dependency_manag": [29, 31], "transaction_manag": [29, 31], "wrap": [29, 31], "dependencycontext": [29, 32], "decor": [29, 31], "eleg": 29, "dictionari": 29, "whose": 29, "gr": 29, "eager": 29, "subsystem": [29, 33], "fair": 29, "lowest": 29, "highest": [29, 33], "arbitr": [29, 33], "agent": [29, 33], "transactiongraph": 29, "vertic": 29, "edg": [29, 30], "priorityord": 29, "linear": 29, "consist": 29, "constraint": 29, "trivial_roundrobin_cc_schedul": 29, "mainli": 29, "extract": 29, "IN": 29, "inout": 29, "owner": 29, "ownershipgraph": 29, "dump": 29, "liter": [29, 33], "dump_dot": 29, "indent": [29, 30, 32], "dump_elk": 29, "dump_mermaid": 29, "get_hier_nam": 29, "obj": 29, "hierarch": 29, "keyerror": [29, 30, 32], "get_nam": 29, "insert_edg": 29, "fr": 29, "insert_nod": 29, "mermaid_direct": 29, "empti": [29, 30], "subgraph": 29, "remember_field": 29, "owner_id": 29, "methodsampl": 29, "transactions_and_method": 29, "profileinfo": 29, "cycleprofil": 29, "analyze_method": 29, "runstatnod": 29, "analyze_transact": 29, "file_nam": [29, 32], "from_dict": [29, 30, 32], "kv": [29, 30, 32], "union": [29, 30, 31, 32], "infer_miss": [29, 30, 32], "from_json": [29, 30, 32], "bytearrai": [29, 30, 32], "parse_float": [29, 30, 32], "parse_int": [29, 30, 32], "parse_const": [29, 30, 32], "kw": [29, 30, 32], "exclud": [29, 30, 32], "load_onli": [29, 30, 32], "dump_onli": [29, 30, 32], "schemaf": [29, 30, 32], "to_dict": [29, 30, 32], "encode_json": [29, 30, 32], "to_json": [29, 30, 32], "skipkei": [29, 30, 32], "ensure_ascii": [29, 30, 32], "check_circular": [29, 30, 32], "allow_nan": [29, 30, 32], "sort_kei": [29, 30, 32], "profiledata": [29, 32], "individu": 29, "method_par": 29, "transactions_by_method": 29, "transaction_conflict": 29, "is_transact": 29, "profilesampl": 29, "transactionsampl": 29, "runstat": 29, "statist": 29, "did": 29, "info": [29, 30], "summar": 29, "stat": 29, "tracingenabl": 29, "tracingfrag": 29, "lose": 29, "difficult": 29, "copyright": 29, "subfrag": 29, "_ir": [29, 32], "tracingfragmenttransform": 29, "fragmenttransform": 29, "on_frag": 29, "tracinginst": 29, "adapterbas": [30, 31], "mock": [30, 31], "en": [30, 31], "clickin": 30, "click": 30, "interact": 30, "rise": 30, "btn": 30, "dat": 30, "retriev": 30, "clickout": 30, "led": 30, "flow": 30, "revers": 30, "possibli": 30, "rev_layout": 30, "vice": 30, "versa": 30, "method1": 30, "respect": 30, "fulfil": 30, "fifo_typ": 30, "syncfifo": 30, "fifotyp": 30, "conform": 30, "equival": 30, "put_result": 30, "dependencykei": [30, 32], "concret": [30, 32], "frozen": [30, 32], "lock_on_get": [30, 32], "get_depend": [30, 32], "empty_valid": [30, 32], "add_depend": [30, 32], "give": [30, 32], "track": [30, 32], "across": [30, 32], "multpl": [30, 32], "dependeci": [30, 32], "default_valu": [30, 32], "wish": 30, "custom": 30, "basicfifo": 30, "reiniti": 30, "semaphor": 30, "max_count": 30, "hardwarelogg": 30, "intuit": 30, "logger": 30, "anywher": 30, "natur": 30, "shall": 30, "evalu": [30, 31], "arbitrari": 30, "exactli": 30, "organ": 30, "namespac": 30, "hierarchi": 30, "period": 30, "bpu": 30, "There": 30, "bug": 30, "otherwis": [30, 33], "detect": 30, "termin": 30, "turn": 30, "warn": 30, "board": 30, "semant": 30, "server": 30, "pep": 30, "3101": 30, "logkei": 30, "logrecord": 30, "logrecordinfo": [30, 32], "event": 30, "logger_nam": [30, 32], "format_str": [30, 32], "agnost": 30, "outsid": 30, "loglevel": 30, "templat": 30, "get_log_record": 30, "namespace_regexp": [30, 31], "minimum": 30, "regexp": 30, "get_trigger_bit": 30, "hardwaremetricsmanag": 30, "compos": 30, "get_metr": 30, "hwmetric": 30, "get_register_valu": 30, "metric_nam": 30, "reg_nam": 30, "qualifi": 30, "histogram": 30, "bucket": 30, "hwcounter": 30, "fully_qualified_nam": 30, "width_bit": 30, "human": 30, "incr": 30, "hwexphistogram": 30, "exponenti": 30, "distribut": 30, "sampl": 30, "durat": 30, "inf": 30, "bucket_count": 30, "sample_width": 30, "registers_width": 30, "max_valu": 30, "abl": 30, "metricmodel": 30, "add_regist": 30, "reg": [30, 32], "hwmetricregist": 30, "inherit": 30, "metrics_en": 30, "hwmetricsenabledkei": 30, "theirs": 30, "latencymeasur": 30, "slots_numb": 30, "max_lat": 30, "oldest": 30, "compris": 30, "join": 30, "metricregistermodel": 30, "fundament": 30, "singular": 30, "among": 30, "reman": 30, "brief": 30, "argumentstoresultszipp": 30, "zip": 30, "cut": 30, "critic": 30, "calle": 30, "asymmetri": 30, "correctli": 30, "rate": 30, "reach": [30, 33], "capac": 30, "topologi": 30, "write_arg": 30, "args_layout": 30, "write_result": 30, "results_layout": 30, "client": 30, "somethig": 30, "deseri": 30, "proper": 30, "serialize_in": 30, "serialized_req_method": 30, "serialize_out": 30, "serialized_resp_method": 30, "port_count": 30, "len": 30, "resist": 30, "nonblock": 30, "overlap": 30, "boolean": 30, "catch": 30, "reason": 30, "influenc": 30, "cond1": 30, "cond2": 30, "memorybank": 30, "read_req": 30, "read_resp": 30, "elem_count": 30, "safe_writ": 30, "optimis": 30, "eg": 30, "x": [30, 32], "later": 30, "cattran": 30, "concaten": 30, "third": 30, "dst": 30, "method_list": 30, "connectandmaptran": 30, "behav": 30, "i_fun": 30, "recorddict": 30, "o_fun": 30, "methodfilt": 30, "desir": 30, "use_condit": 30, "drawback": 30, "simultaneu": 30, "bidirect": 30, "i_transform": 30, "o_transform": 30, "unmodifi": 30, "methodproduct": 30, "tri": 30, "succeed": 30, "get_output": 31, "coreblockscommand": 31, "recordintdict": 31, "set_input": 31, "recordvaluedict": 31, "write_vcd_ext": 31, "engin": 31, "vcd_file": 31, "gtkw_file": 31, "now": 31, "pysimsimul": 31, "max_cycl": 31, "100000": 31, "add_transaction_modul": 31, "traces_fil": 31, "clk_period": 31, "1e": 31, "add_sync_process": 31, "add_process": 31, "passiv": 31, "add_clock": 31, "simpletestcircuit": 31, "_t_haselabor": 31, "dut": 31, "syncprocesswrapp": 31, "testcasewithsimul": 31, "testcas": 31, "valueerror": [31, 32], "add_all_mock": 31, "sim": 31, "frame_loc": 31, "add_class_mock": 31, "add_local_mock": 31, "random_wait": 31, "max_cycle_cnt": 31, "min_cycle_cnt": 31, "random_wait_geom": 31, "prob": 31, "till": 31, "run_simul": 31, "tick": 31, "cycle_cnt": 31, "guard_nested_collect": 31, "_t_nested_collect": 31, "make_logging_process": 31, "on_error": 31, "parse_logging_level": 31, "pars": 31, "neg": [31, 32], "represent": [31, 32, 33], "predefin": 31, "profiler_process": 31, "def_method_mock": 31, "tb_getter": 31, "sched_prio": 31, "method_handle_loop": 31, "invoc": 31, "defer": 31, "sinc": 31, "eagerli": 31, "kwdata": 31, "call_do": 31, "call_init": 31, "call_result": 31, "call_tri": 31, "method_argu": 31, "method_handl": 31, "extra_settle_count": 31, "method_return": 31, "set_en": 31, "wait_until_don": 31, "assigntyp": 32, "rh": 32, "lh": 32, "assignarg": 32, "assignfield": 32, "lhs_strict": 32, "rhs_strict": 32, "mismatch": 32, "accord": 32, "explicitli": 32, "castabl": 32, "subfield": 32, "align_down_to_power_of_two": 32, "num": 32, "align_to_power_of_two": 32, "average_dict_of_list": 32, "bits_from_int": 32, "int_to_sign": 32, "convert": 32, "u2": 32, "sign": 32, "layout_subset": 32, "make_hash": 32, "negat": 32, "signed_to_int": 32, "auto_debug_sign": 32, "arrai": 32, "cl": 32, "generatedlog": 32, "trigger_loc": 32, "signalhandl": 32, "fields_loc": 32, "generationinfo": 32, "variou": 32, "metrics_loc": 32, "metricinfo": 32, "metadata": 32, "metricloc": 32, "transaction_signals_loc": 32, "transactionsignalsloc": 32, "method_signals_loc": 32, "methodsignalsloc": 32, "profile_data": 32, "generate_verilog": 32, "top_modul": 32, "top_nam": 32, "idgener": 32, "def_help": 32, "func": 32, "from_method_layout": 32, "get_caller_class_nam": 32, "get_src_loc": 32, "method_def_help": 32, "mock_def_help": 32, "tb": 32, "silence_mustus": 32, "moduleconnector": 33, "anonym": 33, "onehotswitch": 33, "style": 33, "benefit": 33, "sig": 33, "onehotcas": 33, "0b01": 33, "0b10": 33, "onehotswitchdynam": 33, "signifi": 33, "roundrobin": 33, "greater": 33, "enableinsert": 33, "count_leading_zero": 33, "count_trailing_zero": 33, "flatten_sign": 33, "flatten": 33, "mod_incr": 33, "mod": 33, "popcount": 33}, "objects": {"": [[4, 0, 0, "-", "coreblocks"], [29, 0, 0, "-", "transactron"]], "coreblocks": [[5, 0, 0, "-", "cache"], [4, 0, 0, "-", "core"], [6, 0, 0, "-", "frontend"], [7, 0, 0, "-", "fu"], [9, 0, 0, "-", "lsu"], [10, 0, 0, "-", "params"], [11, 0, 0, "-", "peripherals"], [12, 0, 0, "-", "scheduler"], [13, 0, 0, "-", "stages"], [14, 0, 0, "-", "structs_common"], [15, 0, 0, "-", "utils"]], "coreblocks.cache": [[5, 0, 0, "-", "icache"], [5, 0, 0, "-", "iface"], [5, 0, 0, "-", "refiller"]], "coreblocks.cache.icache": [[5, 1, 1, "", "ICache"], [5, 1, 1, "", "ICacheBypass"]], "coreblocks.cache.icache.ICache": [[5, 2, 1, "", "__init__"], [5, 2, 1, "", "deserialize_addr"], [5, 2, 1, "", "serialize_addr"]], "coreblocks.cache.icache.ICacheBypass": [[5, 2, 1, "", "__init__"]], "coreblocks.cache.iface": [[5, 1, 1, "", "CacheInterface"], [5, 1, 1, "", "CacheRefillerInterface"]], "coreblocks.cache.iface.CacheInterface": [[5, 3, 1, "", "accept_res"], [5, 3, 1, "", "flush"], [5, 3, 1, "", "issue_req"]], "coreblocks.cache.iface.CacheRefillerInterface": [[5, 3, 1, "", "accept_refill"], [5, 3, 1, "", "start_refill"]], "coreblocks.cache.refiller": [[5, 1, 1, "", "SimpleCommonBusCacheRefiller"]], "coreblocks.cache.refiller.SimpleCommonBusCacheRefiller": [[5, 2, 1, "", "__init__"]], "coreblocks.core": [[4, 1, 1, "", "Core"]], "coreblocks.core.Core": [[4, 2, 1, "", "__init__"]], "coreblocks.frontend": [[6, 0, 0, "-", "decode_stage"], [6, 0, 0, "-", "fetch"], [6, 0, 0, "-", "instr_decoder"], [6, 0, 0, "-", "instr_description"], [6, 0, 0, "-", "rvc"]], "coreblocks.frontend.decode_stage": [[6, 1, 1, "", "DecodeStage"]], "coreblocks.frontend.decode_stage.DecodeStage": [[6, 2, 1, "", "__init__"]], "coreblocks.frontend.fetch": [[6, 1, 1, "", "Fetch"], [6, 1, 1, "", "UnalignedFetch"]], "coreblocks.frontend.fetch.Fetch": [[6, 2, 1, "", "__init__"]], "coreblocks.frontend.fetch.UnalignedFetch": [[6, 2, 1, "", "__init__"]], "coreblocks.frontend.instr_decoder": [[6, 1, 1, "", "InstrDecoder"]], "coreblocks.frontend.instr_decoder.InstrDecoder": [[6, 2, 1, "", "__init__"]], "coreblocks.frontend.instr_description": [[6, 1, 1, "", "Encoding"]], "coreblocks.frontend.instr_description.Encoding": [[6, 2, 1, "", "__init__"], [6, 3, 1, "", "funct12"], [6, 3, 1, "", "funct3"], [6, 3, 1, "", "funct7"], [6, 3, 1, "", "instr_type_override"], [6, 3, 1, "", "opcode"], [6, 3, 1, "", "rd_zero"], [6, 3, 1, "", "rs1_zero"]], "coreblocks.frontend.rvc": [[6, 1, 1, "", "InstrDecompress"], [6, 4, 1, "", "is_instr_compressed"]], "coreblocks.frontend.rvc.InstrDecompress": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "decompr_reg"], [6, 2, 1, "", "instr_mux"]], "coreblocks.fu": [[7, 0, 0, "-", "alu"], [7, 0, 0, "-", "div_unit"], [7, 0, 0, "-", "exception"], [7, 0, 0, "-", "fu_decoder"], [7, 0, 0, "-", "jumpbranch"], [7, 0, 0, "-", "mul_unit"], [7, 0, 0, "-", "priv"], [7, 0, 0, "-", "shift_unit"], [8, 0, 0, "-", "unsigned_multiplication"], [7, 0, 0, "-", "zbc"], [7, 0, 0, "-", "zbs"]], "coreblocks.fu.alu": [[7, 1, 1, "", "ALUComponent"], [7, 1, 1, "", "AluFuncUnit"]], "coreblocks.fu.alu.ALUComponent": [[7, 2, 1, "", "__init__"], [7, 2, 1, "", "get_module"], [7, 2, 1, "", "get_optypes"]], "coreblocks.fu.alu.AluFuncUnit": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.div_unit": [[7, 1, 1, "", "DivComponent"], [7, 1, 1, "", "DivFn"], [7, 1, 1, "", "DivUnit"], [7, 4, 1, "", "get_input"]], "coreblocks.fu.div_unit.DivComponent": [[7, 2, 1, "", "__init__"], [7, 3, 1, "", "div_fn"], [7, 2, 1, "", "get_module"], [7, 2, 1, "", "get_optypes"], [7, 3, 1, "", "ipc"]], "coreblocks.fu.div_unit.DivFn": [[7, 1, 1, "", "Fn"], [7, 2, 1, "", "get_instructions"]], "coreblocks.fu.div_unit.DivFn.Fn": [[7, 3, 1, "", "DIV"], [7, 3, 1, "", "DIVU"], [7, 3, 1, "", "REM"], [7, 3, 1, "", "REMU"], [7, 2, 1, "", "__new__"]], "coreblocks.fu.div_unit.DivUnit": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.exception": [[7, 1, 1, "", "ExceptionFuncUnit"], [7, 1, 1, "", "ExceptionUnitComponent"]], "coreblocks.fu.exception.ExceptionFuncUnit": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.exception.ExceptionUnitComponent": [[7, 2, 1, "", "__init__"], [7, 2, 1, "", "get_module"], [7, 2, 1, "", "get_optypes"]], "coreblocks.fu.fu_decoder": [[7, 1, 1, "", "Decoder"], [7, 1, 1, "", "DecoderManager"]], "coreblocks.fu.fu_decoder.Decoder": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.fu_decoder.DecoderManager": [[7, 3, 1, "", "Fn"], [7, 2, 1, "", "get_decoder"], [7, 2, 1, "", "get_function"], [7, 2, 1, "", "get_instructions"], [7, 2, 1, "", "get_op_types"]], "coreblocks.fu.jumpbranch": [[7, 1, 1, "", "JumpBranchFuncUnit"], [7, 1, 1, "", "JumpComponent"]], "coreblocks.fu.jumpbranch.JumpBranchFuncUnit": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.jumpbranch.JumpComponent": [[7, 2, 1, "", "__init__"], [7, 2, 1, "", "get_module"], [7, 2, 1, "", "get_optypes"]], "coreblocks.fu.mul_unit": [[7, 1, 1, "", "MulComponent"], [7, 1, 1, "", "MulFn"], [7, 1, 1, "", "MulType"], [7, 1, 1, "", "MulUnit"]], "coreblocks.fu.mul_unit.MulComponent": [[7, 2, 1, "", "__init__"], [7, 3, 1, "", "dsp_width"], [7, 2, 1, "", "get_module"], [7, 2, 1, "", "get_optypes"], [7, 3, 1, "", "mul_fn"], [7, 3, 1, "", "mul_unit_type"]], "coreblocks.fu.mul_unit.MulFn": [[7, 1, 1, "", "Fn"], [7, 2, 1, "", "get_instructions"]], "coreblocks.fu.mul_unit.MulFn.Fn": [[7, 3, 1, "", "MUL"], [7, 3, 1, "", "MULH"], [7, 3, 1, "", "MULHSU"], [7, 3, 1, "", "MULHU"], [7, 2, 1, "", "__new__"]], "coreblocks.fu.mul_unit.MulType": [[7, 3, 1, "", "RECURSIVE_MUL"], [7, 3, 1, "", "SEQUENCE_MUL"], [7, 3, 1, "", "SHIFT_MUL"], [7, 2, 1, "", "__new__"]], "coreblocks.fu.mul_unit.MulUnit": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.priv": [[7, 1, 1, "", "PrivilegedFn"], [7, 1, 1, "", "PrivilegedFuncUnit"], [7, 1, 1, "", "PrivilegedUnitComponent"]], "coreblocks.fu.priv.PrivilegedFn": [[7, 1, 1, "", "Fn"], [7, 2, 1, "", "get_instructions"]], "coreblocks.fu.priv.PrivilegedFn.Fn": [[7, 3, 1, "", "MRET"], [7, 2, 1, "", "__new__"]], "coreblocks.fu.priv.PrivilegedFuncUnit": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.priv.PrivilegedUnitComponent": [[7, 2, 1, "", "get_module"], [7, 2, 1, "", "get_optypes"]], "coreblocks.fu.shift_unit": [[7, 1, 1, "", "ShiftFuncUnit"], [7, 1, 1, "", "ShiftUnitComponent"]], "coreblocks.fu.shift_unit.ShiftFuncUnit": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.shift_unit.ShiftUnitComponent": [[7, 2, 1, "", "__init__"], [7, 2, 1, "", "get_module"], [7, 2, 1, "", "get_optypes"]], "coreblocks.fu.unsigned_multiplication": [[8, 0, 0, "-", "common"], [8, 0, 0, "-", "fast_recursive"], [8, 0, 0, "-", "sequence"], [8, 0, 0, "-", "shift"]], "coreblocks.fu.unsigned_multiplication.common": [[8, 1, 1, "", "DSPMulUnit"], [8, 1, 1, "", "MulBaseUnsigned"]], "coreblocks.fu.unsigned_multiplication.common.DSPMulUnit": [[8, 2, 1, "", "__init__"]], "coreblocks.fu.unsigned_multiplication.common.MulBaseUnsigned": [[8, 2, 1, "", "__init__"]], "coreblocks.fu.unsigned_multiplication.fast_recursive": [[8, 1, 1, "", "RecursiveUnsignedMul"]], "coreblocks.fu.unsigned_multiplication.fast_recursive.RecursiveUnsignedMul": [[8, 2, 1, "", "__init__"]], "coreblocks.fu.unsigned_multiplication.sequence": [[8, 1, 1, "", "SequentialUnsignedMul"]], "coreblocks.fu.unsigned_multiplication.sequence.SequentialUnsignedMul": [[8, 2, 1, "", "__init__"]], "coreblocks.fu.unsigned_multiplication.shift": [[8, 1, 1, "", "ShiftUnsignedMul"]], "coreblocks.fu.unsigned_multiplication.shift.ShiftUnsignedMul": [[8, 2, 1, "", "__init__"]], "coreblocks.fu.zbc": [[7, 1, 1, "", "ClMultiplier"], [7, 1, 1, "", "ZbcComponent"], [7, 1, 1, "", "ZbcFn"], [7, 1, 1, "", "ZbcUnit"]], "coreblocks.fu.zbc.ClMultiplier": [[7, 2, 1, "", "__init__"], [7, 2, 1, "", "iterative_module"], [7, 2, 1, "", "recursive_module"]], "coreblocks.fu.zbc.ZbcComponent": [[7, 2, 1, "", "__init__"], [7, 2, 1, "", "get_module"], [7, 2, 1, "", "get_optypes"], [7, 3, 1, "", "recursion_depth"], [7, 3, 1, "", "zbc_fn"]], "coreblocks.fu.zbc.ZbcFn": [[7, 1, 1, "", "Fn"], [7, 2, 1, "", "get_instructions"]], "coreblocks.fu.zbc.ZbcFn.Fn": [[7, 3, 1, "", "CLMUL"], [7, 3, 1, "", "CLMULH"], [7, 3, 1, "", "CLMULR"], [7, 2, 1, "", "__new__"]], "coreblocks.fu.zbc.ZbcUnit": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.zbs": [[7, 1, 1, "", "Zbs"], [7, 1, 1, "", "ZbsComponent"], [7, 1, 1, "", "ZbsFunction"], [7, 1, 1, "", "ZbsUnit"]], "coreblocks.fu.zbs.Zbs": [[7, 2, 1, "", "__init__"]], "coreblocks.fu.zbs.ZbsComponent": [[7, 2, 1, "", "__init__"], [7, 2, 1, "", "get_module"], [7, 2, 1, "", "get_optypes"]], "coreblocks.fu.zbs.ZbsFunction": [[7, 1, 1, "", "Fn"], [7, 2, 1, "", "get_instructions"]], "coreblocks.fu.zbs.ZbsFunction.Fn": [[7, 3, 1, "", "BCLR"], [7, 3, 1, "", "BEXT"], [7, 3, 1, "", "BINV"], [7, 3, 1, "", "BSET"], [7, 2, 1, "", "__new__"]], "coreblocks.fu.zbs.ZbsUnit": [[7, 2, 1, "", "__init__"]], "coreblocks.lsu": [[9, 0, 0, "-", "dummyLsu"], [9, 0, 0, "-", "pma"]], "coreblocks.lsu.dummyLsu": [[9, 1, 1, "", "LSUBlockComponent"], [9, 1, 1, "", "LSUDummy"]], "coreblocks.lsu.dummyLsu.LSUBlockComponent": [[9, 2, 1, "", "get_module"], [9, 2, 1, "", "get_optypes"], [9, 2, 1, "", "get_rs_entry_count"]], "coreblocks.lsu.dummyLsu.LSUDummy": [[9, 2, 1, "", "__init__"]], "coreblocks.lsu.pma": [[9, 1, 1, "", "PMAChecker"], [9, 1, 1, "", "PMALayout"], [9, 1, 1, "", "PMARegion"]], "coreblocks.lsu.pma.PMAChecker": [[9, 2, 1, "", "__init__"]], "coreblocks.lsu.pma.PMALayout": [[9, 2, 1, "", "__init__"]], "coreblocks.lsu.pma.PMARegion": [[9, 2, 1, "", "__init__"], [9, 3, 1, "", "end"], [9, 3, 1, "", "mmio"], [9, 3, 1, "", "start"]], "coreblocks.params": [[10, 0, 0, "-", "configurations"], [10, 0, 0, "-", "fu_params"], [10, 0, 0, "-", "genparams"], [10, 0, 0, "-", "icache_params"], [10, 0, 0, "-", "instr"], [10, 0, 0, "-", "isa"], [10, 0, 0, "-", "keys"], [10, 0, 0, "-", "layouts"], [10, 0, 0, "-", "optypes"]], "coreblocks.params.configurations": [[10, 1, 1, "", "CoreConfiguration"]], "coreblocks.params.configurations.CoreConfiguration": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "allow_partial_extensions"], [10, 3, 1, "", "compressed"], [10, 3, 1, "", "debug_signals"], [10, 3, 1, "", "embedded"], [10, 3, 1, "", "func_units_config"], [10, 3, 1, "", "icache_block_size_bits"], [10, 3, 1, "", "icache_enable"], [10, 3, 1, "", "icache_sets_bits"], [10, 3, 1, "", "icache_ways"], [10, 3, 1, "", "phys_regs_bits"], [10, 3, 1, "", "pma"], [10, 2, 1, "", "replace"], [10, 3, 1, "", "rob_entries_bits"], [10, 3, 1, "", "start_pc"], [10, 3, 1, "", "xlen"]], "coreblocks.params.fu_params": [[10, 1, 1, "", "BlockComponentParams"], [10, 1, 1, "", "FunctionalComponentParams"], [10, 4, 1, "", "optypes_supported"]], "coreblocks.params.fu_params.BlockComponentParams": [[10, 2, 1, "", "get_module"], [10, 2, 1, "", "get_optypes"], [10, 2, 1, "", "get_rs_entry_count"]], "coreblocks.params.fu_params.FunctionalComponentParams": [[10, 2, 1, "", "get_module"], [10, 2, 1, "", "get_optypes"]], "coreblocks.params.genparams": [[10, 1, 1, "", "GenParams"]], "coreblocks.params.genparams.GenParams": [[10, 2, 1, "", "__init__"]], "coreblocks.params.icache_params": [[10, 1, 1, "", "ICacheParameters"]], "coreblocks.params.icache_params.ICacheParameters": [[10, 2, 1, "", "__init__"]], "coreblocks.params.instr": [[10, 1, 1, "", "BTypeInstr"], [10, 1, 1, "", "EBreakInstr"], [10, 1, 1, "", "ITypeInstr"], [10, 1, 1, "", "IllegalInstr"], [10, 1, 1, "", "JTypeInstr"], [10, 1, 1, "", "RTypeInstr"], [10, 1, 1, "", "STypeInstr"], [10, 1, 1, "", "UTypeInstr"]], "coreblocks.params.instr.BTypeInstr": [[10, 2, 1, "", "__init__"], [10, 2, 1, "", "pack"]], "coreblocks.params.instr.EBreakInstr": [[10, 2, 1, "", "__init__"]], "coreblocks.params.instr.ITypeInstr": [[10, 2, 1, "", "__init__"], [10, 2, 1, "", "pack"]], "coreblocks.params.instr.IllegalInstr": [[10, 2, 1, "", "__init__"], [10, 2, 1, "", "pack"]], "coreblocks.params.instr.JTypeInstr": [[10, 2, 1, "", "__init__"], [10, 2, 1, "", "pack"]], "coreblocks.params.instr.RTypeInstr": [[10, 2, 1, "", "__init__"], [10, 2, 1, "", "pack"]], "coreblocks.params.instr.STypeInstr": [[10, 2, 1, "", "__init__"], [10, 2, 1, "", "pack"]], "coreblocks.params.instr.UTypeInstr": [[10, 2, 1, "", "__init__"], [10, 2, 1, "", "pack"]], "coreblocks.params.isa": [[10, 1, 1, "", "ExceptionCause"], [10, 1, 1, "", "Extension"], [10, 1, 1, "", "FenceFm"], [10, 1, 1, "", "FenceTarget"], [10, 1, 1, "", "Funct12"], [10, 1, 1, "", "Funct3"], [10, 1, 1, "", "Funct7"], [10, 1, 1, "", "ISA"], [10, 1, 1, "", "InstrType"], [10, 1, 1, "", "Opcode"], [10, 1, 1, "", "Registers"]], "coreblocks.params.isa.ExceptionCause": [[10, 3, 1, "", "BREAKPOINT"], [10, 3, 1, "", "ENVIRONMENT_CALL_FROM_M"], [10, 3, 1, "", "ENVIRONMENT_CALL_FROM_S"], [10, 3, 1, "", "ENVIRONMENT_CALL_FROM_U"], [10, 3, 1, "", "ILLEGAL_INSTRUCTION"], [10, 3, 1, "", "INSTRUCTION_ACCESS_FAULT"], [10, 3, 1, "", "INSTRUCTION_ADDRESS_MISALIGNED"], [10, 3, 1, "", "INSTRUCTION_PAGE_FAULT"], [10, 3, 1, "", "LOAD_ACCESS_FAULT"], [10, 3, 1, "", "LOAD_ADDRESS_MISALIGNED"], [10, 3, 1, "", "LOAD_PAGE_FAULT"], [10, 3, 1, "", "STORE_ACCESS_FAULT"], [10, 3, 1, "", "STORE_ADDRESS_MISALIGNED"], [10, 3, 1, "", "STORE_PAGE_FAULT"], [10, 2, 1, "", "__new__"]], "coreblocks.params.isa.Extension": [[10, 3, 1, "", "A"], [10, 3, 1, "", "B"], [10, 3, 1, "", "C"], [10, 3, 1, "", "D"], [10, 3, 1, "", "E"], [10, 3, 1, "", "F"], [10, 3, 1, "", "G"], [10, 3, 1, "", "I"], [10, 3, 1, "", "J"], [10, 3, 1, "", "L"], [10, 3, 1, "", "M"], [10, 3, 1, "", "N"], [10, 3, 1, "", "P"], [10, 3, 1, "", "Q"], [10, 3, 1, "", "T"], [10, 3, 1, "", "V"], [10, 3, 1, "", "XINTMACHINEMODE"], [10, 3, 1, "", "XINTSUPERVISOR"], [10, 3, 1, "", "ZAM"], [10, 3, 1, "", "ZBA"], [10, 3, 1, "", "ZBB"], [10, 3, 1, "", "ZBC"], [10, 3, 1, "", "ZBS"], [10, 3, 1, "", "ZDINX"], [10, 3, 1, "", "ZFH"], [10, 3, 1, "", "ZFHMIN"], [10, 3, 1, "", "ZFINX"], [10, 3, 1, "", "ZHINX"], [10, 3, 1, "", "ZICNTR"], [10, 3, 1, "", "ZICSR"], [10, 3, 1, "", "ZIFENCEI"], [10, 3, 1, "", "ZIHINTNTL"], [10, 3, 1, "", "ZIHINTPAUSE"], [10, 3, 1, "", "ZIHPM"], [10, 3, 1, "", "ZMMUL"], [10, 3, 1, "", "ZTSO"], [10, 2, 1, "", "__new__"]], "coreblocks.params.isa.FenceFm": [[10, 3, 1, "", "NONE"], [10, 3, 1, "", "TSO"], [10, 2, 1, "", "__new__"]], "coreblocks.params.isa.FenceTarget": [[10, 3, 1, "", "DEV_I"], [10, 3, 1, "", "DEV_O"], [10, 3, 1, "", "MEM_R"], [10, 3, 1, "", "MEM_W"], [10, 2, 1, "", "__new__"]], "coreblocks.params.isa.Funct12": [[10, 3, 1, "", "CLZ"], [10, 3, 1, "", "CPOP"], [10, 3, 1, "", "CTZ"], [10, 3, 1, "", "EBREAK"], [10, 3, 1, "", "ECALL"], [10, 3, 1, "", "MRET"], [10, 3, 1, "", "ORCB"], [10, 3, 1, "", "REV8_32"], [10, 3, 1, "", "REV8_64"], [10, 3, 1, "", "SEXTB"], [10, 3, 1, "", "SEXTH"], [10, 3, 1, "", "SRET"], [10, 3, 1, "", "WFI"], [10, 3, 1, "", "ZEXTH"], [10, 2, 1, "", "__new__"]], "coreblocks.params.isa.Funct3": [[10, 3, 1, "", "ADD"], [10, 3, 1, "", "AND"], [10, 3, 1, "", "ANDN"], [10, 3, 1, "", "B"], [10, 3, 1, "", "BCLR"], [10, 3, 1, "", "BEQ"], [10, 3, 1, "", "BEXT"], [10, 3, 1, "", "BGE"], [10, 3, 1, "", "BGEU"], [10, 3, 1, "", "BINV"], [10, 3, 1, "", "BLT"], [10, 3, 1, "", "BLTU"], [10, 3, 1, "", "BNE"], [10, 3, 1, "", "BSET"], [10, 3, 1, "", "BU"], [10, 3, 1, "", "CLMUL"], [10, 3, 1, "", "CLMULH"], [10, 3, 1, "", "CLMULR"], [10, 3, 1, "", "CLZ"], [10, 3, 1, "", "CPOP"], [10, 3, 1, "", "CSRRC"], [10, 3, 1, "", "CSRRCI"], [10, 3, 1, "", "CSRRS"], [10, 3, 1, "", "CSRRSI"], [10, 3, 1, "", "CSRRW"], [10, 3, 1, "", "CSRRWI"], [10, 3, 1, "", "CTZ"], [10, 3, 1, "", "D"], [10, 3, 1, "", "DIV"], [10, 3, 1, "", "DIVU"], [10, 3, 1, "", "DIVUW"], [10, 3, 1, "", "DIVW"], [10, 3, 1, "", "FENCE"], [10, 3, 1, "", "FENCEI"], [10, 3, 1, "", "H"], [10, 3, 1, "", "HU"], [10, 3, 1, "", "JALR"], [10, 3, 1, "", "MAX"], [10, 3, 1, "", "MAXU"], [10, 3, 1, "", "MIN"], [10, 3, 1, "", "MINU"], [10, 3, 1, "", "MUL"], [10, 3, 1, "", "MULH"], [10, 3, 1, "", "MULHSU"], [10, 3, 1, "", "MULHU"], [10, 3, 1, "", "MULW"], [10, 3, 1, "", "OR"], [10, 3, 1, "", "ORCB"], [10, 3, 1, "", "ORN"], [10, 3, 1, "", "PRIV"], [10, 3, 1, "", "REM"], [10, 3, 1, "", "REMU"], [10, 3, 1, "", "REMUW"], [10, 3, 1, "", "REMW"], [10, 3, 1, "", "REV8"], [10, 3, 1, "", "ROL"], [10, 3, 1, "", "ROR"], [10, 3, 1, "", "SEXTB"], [10, 3, 1, "", "SEXTH"], [10, 3, 1, "", "SH1ADD"], [10, 3, 1, "", "SH2ADD"], [10, 3, 1, "", "SH3ADD"], [10, 3, 1, "", "SLL"], [10, 3, 1, "", "SLT"], [10, 3, 1, "", "SLTU"], [10, 3, 1, "", "SR"], [10, 3, 1, "", "SUB"], [10, 3, 1, "", "W"], [10, 3, 1, "", "XNOR"], [10, 3, 1, "", "XOR"], [10, 3, 1, "", "ZEXTH"], [10, 2, 1, "", "__new__"]], "coreblocks.params.isa.Funct7": [[10, 3, 1, "", "ADD"], [10, 3, 1, "", "AND"], [10, 3, 1, "", "ANDN"], [10, 3, 1, "", "BCLR"], [10, 3, 1, "", "BEXT"], [10, 3, 1, "", "BINV"], [10, 3, 1, "", "BSET"], [10, 3, 1, "", "CLMUL"], [10, 3, 1, "", "CLZ"], [10, 3, 1, "", "CPOP"], [10, 3, 1, "", "CTZ"], [10, 3, 1, "", "MAX"], [10, 3, 1, "", "MIN"], [10, 3, 1, "", "MULDIV"], [10, 3, 1, "", "OR"], [10, 3, 1, "", "ORCB"], [10, 3, 1, "", "ORN"], [10, 3, 1, "", "REV8"], [10, 3, 1, "", "ROL"], [10, 3, 1, "", "ROR"], [10, 3, 1, "", "SA"], [10, 3, 1, "", "SEXTB"], [10, 3, 1, "", "SEXTH"], [10, 3, 1, "", "SFENCEVMA"], [10, 3, 1, "", "SH1ADD"], [10, 3, 1, "", "SH2ADD"], [10, 3, 1, "", "SH3ADD"], [10, 3, 1, "", "SL"], [10, 3, 1, "", "SLT"], [10, 3, 1, "", "SUB"], [10, 3, 1, "", "XNOR"], [10, 3, 1, "", "XOR"], [10, 3, 1, "", "ZEXTH"], [10, 2, 1, "", "__new__"]], "coreblocks.params.isa.ISA": [[10, 2, 1, "", "__init__"]], "coreblocks.params.isa.InstrType": [[10, 3, 1, "", "B"], [10, 3, 1, "", "I"], [10, 3, 1, "", "J"], [10, 3, 1, "", "R"], [10, 3, 1, "", "S"], [10, 3, 1, "", "U"]], "coreblocks.params.isa.Opcode": [[10, 3, 1, "", "AUIPC"], [10, 3, 1, "", "BRANCH"], [10, 3, 1, "", "JAL"], [10, 3, 1, "", "JALR"], [10, 3, 1, "", "LOAD"], [10, 3, 1, "", "LOAD_FP"], [10, 3, 1, "", "LUI"], [10, 3, 1, "", "MISC_MEM"], [10, 3, 1, "", "OP"], [10, 3, 1, "", "OP32"], [10, 3, 1, "", "OP_IMM"], [10, 3, 1, "", "OP_IMM_32"], [10, 3, 1, "", "STORE"], [10, 3, 1, "", "STORE_FP"], [10, 3, 1, "", "SYSTEM"], [10, 2, 1, "", "__new__"]], "coreblocks.params.isa.Registers": [[10, 3, 1, "", "A0"], [10, 3, 1, "", "A1"], [10, 3, 1, "", "A2"], [10, 3, 1, "", "A3"], [10, 3, 1, "", "A4"], [10, 3, 1, "", "A5"], [10, 3, 1, "", "A6"], [10, 3, 1, "", "A7"], [10, 3, 1, "", "FP"], [10, 3, 1, "", "GP"], [10, 3, 1, "", "RA"], [10, 3, 1, "", "S0"], [10, 3, 1, "", "S1"], [10, 3, 1, "", "S10"], [10, 3, 1, "", "S11"], [10, 3, 1, "", "S2"], [10, 3, 1, "", "S3"], [10, 3, 1, "", "S4"], [10, 3, 1, "", "S5"], [10, 3, 1, "", "S6"], [10, 3, 1, "", "S7"], [10, 3, 1, "", "S8"], [10, 3, 1, "", "S9"], [10, 3, 1, "", "SP"], [10, 3, 1, "", "T0"], [10, 3, 1, "", "T1"], [10, 3, 1, "", "T2"], [10, 3, 1, "", "T3"], [10, 3, 1, "", "T4"], [10, 3, 1, "", "T5"], [10, 3, 1, "", "T6"], [10, 3, 1, "", "TP"], [10, 3, 1, "", "X0"], [10, 3, 1, "", "X1"], [10, 3, 1, "", "X10"], [10, 3, 1, "", "X11"], [10, 3, 1, "", "X12"], [10, 3, 1, "", "X13"], [10, 3, 1, "", "X14"], [10, 3, 1, "", "X15"], [10, 3, 1, "", "X16"], [10, 3, 1, "", "X17"], [10, 3, 1, "", "X18"], [10, 3, 1, "", "X19"], [10, 3, 1, "", "X2"], [10, 3, 1, "", "X20"], [10, 3, 1, "", "X21"], [10, 3, 1, "", "X22"], [10, 3, 1, "", "X23"], [10, 3, 1, "", "X24"], [10, 3, 1, "", "X25"], [10, 3, 1, "", "X26"], [10, 3, 1, "", "X27"], [10, 3, 1, "", "X28"], [10, 3, 1, "", "X29"], [10, 3, 1, "", "X3"], [10, 3, 1, "", "X30"], [10, 3, 1, "", "X31"], [10, 3, 1, "", "X4"], [10, 3, 1, "", "X5"], [10, 3, 1, "", "X6"], [10, 3, 1, "", "X7"], [10, 3, 1, "", "X8"], [10, 3, 1, "", "X9"], [10, 3, 1, "", "ZERO"], [10, 2, 1, "", "__new__"]], "coreblocks.params.keys": [[10, 1, 1, "", "AsyncInterruptInsertSignalKey"], [10, 1, 1, "", "BranchVerifyKey"], [10, 1, 1, "", "CommonBusDataKey"], [10, 1, 1, "", "ExceptionReportKey"], [10, 1, 1, "", "FetchResumeKey"], [10, 1, 1, "", "GenericCSRRegistersKey"], [10, 1, 1, "", "InstructionPrecommitKey"], [10, 1, 1, "", "MretKey"]], "coreblocks.params.keys.AsyncInterruptInsertSignalKey": [[10, 2, 1, "", "__init__"]], "coreblocks.params.keys.BranchVerifyKey": [[10, 2, 1, "", "__init__"]], "coreblocks.params.keys.CommonBusDataKey": [[10, 2, 1, "", "__init__"]], "coreblocks.params.keys.ExceptionReportKey": [[10, 2, 1, "", "__init__"]], "coreblocks.params.keys.FetchResumeKey": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "unifier"]], "coreblocks.params.keys.GenericCSRRegistersKey": [[10, 2, 1, "", "__init__"]], "coreblocks.params.keys.InstructionPrecommitKey": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "unifier"]], "coreblocks.params.keys.MretKey": [[10, 2, 1, "", "__init__"]], "coreblocks.params.layouts": [[10, 1, 1, "", "CSRLayouts"], [10, 1, 1, "", "CommonLayoutFields"], [10, 1, 1, "", "DecodeLayouts"], [10, 1, 1, "", "FetchLayouts"], [10, 1, 1, "", "FuncUnitLayouts"], [10, 1, 1, "", "ICacheLayouts"], [10, 1, 1, "", "JumpBranchLayouts"], [10, 1, 1, "", "LSULayouts"], [10, 1, 1, "", "RATLayouts"], [10, 1, 1, "", "RFLayouts"], [10, 1, 1, "", "ROBLayouts"], [10, 1, 1, "", "RSInterfaceLayouts"], [10, 1, 1, "", "RSLayouts"], [10, 1, 1, "", "RetirementLayouts"], [10, 1, 1, "", "SchedulerLayouts"], [10, 1, 1, "", "UnsignedMulUnitLayouts"]], "coreblocks.params.layouts.CSRLayouts": [[10, 2, 1, "", "__init__"]], "coreblocks.params.layouts.CommonLayoutFields": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "addr"], [10, 3, 1, "", "cause"], [10, 3, 1, "", "csr"], [10, 3, 1, "", "data"], [10, 3, 1, "", "error"], [10, 3, 1, "", "exception"], [10, 3, 1, "", "exec_fn"], [10, 3, 1, "", "exec_fn_layout"], [10, 3, 1, "", "funct3"], [10, 3, 1, "", "funct7"], [10, 3, 1, "", "imm"], [10, 3, 1, "", "instr"], [10, 3, 1, "", "op_type"], [10, 3, 1, "", "pc"], [10, 3, 1, "", "reg_id"], [10, 3, 1, "", "reg_val"], [10, 3, 1, "", "regs_l"], [10, 3, 1, "", "regs_p"], [10, 3, 1, "", "rl_dst"], [10, 3, 1, "", "rl_s1"], [10, 3, 1, "", "rl_s2"], [10, 3, 1, "", "rob_id"], [10, 3, 1, "", "rp_dst"], [10, 3, 1, "", "rp_s1"], [10, 3, 1, "", "rp_s2"], [10, 3, 1, "", "s1_val"], [10, 3, 1, "", "s2_val"], [10, 3, 1, "", "side_fx"]], "coreblocks.params.layouts.DecodeLayouts": [[10, 2, 1, "", "__init__"]], "coreblocks.params.layouts.FetchLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "access_fault"], [10, 3, 1, "", "rvc"]], "coreblocks.params.layouts.FuncUnitLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "result"]], "coreblocks.params.layouts.ICacheLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "error"]], "coreblocks.params.layouts.JumpBranchLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "verify_branch"]], "coreblocks.params.layouts.LSULayouts": [[10, 2, 1, "", "__init__"]], "coreblocks.params.layouts.RATLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "old_rp_dst"]], "coreblocks.params.layouts.RFLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "valid"]], "coreblocks.params.layouts.ROBLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "done"], [10, 3, 1, "", "end"], [10, 3, 1, "", "rob_data"], [10, 3, 1, "", "start"]], "coreblocks.params.layouts.RSInterfaceLayouts": [[10, 2, 1, "", "__init__"]], "coreblocks.params.layouts.RSLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "ready_list"]], "coreblocks.params.layouts.RetirementLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "flushing"]], "coreblocks.params.layouts.SchedulerLayouts": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "regs_l_rob_in"], [10, 3, 1, "", "regs_p_alloc_out"], [10, 3, 1, "", "rs_entry_id"], [10, 3, 1, "", "rs_selected"]], "coreblocks.params.layouts.UnsignedMulUnitLayouts": [[10, 2, 1, "", "__init__"]], "coreblocks.params.optypes": [[10, 1, 1, "", "OpType"], [10, 4, 1, "", "optypes_required_by_extensions"]], "coreblocks.params.optypes.OpType": [[10, 3, 1, "", "ADDRESS_GENERATION"], [10, 3, 1, "", "ARITHMETIC"], [10, 3, 1, "", "AUIPC"], [10, 3, 1, "", "BIT_MANIPULATION"], [10, 3, 1, "", "BIT_ROTATION"], [10, 3, 1, "", "BRANCH"], [10, 3, 1, "", "CLMUL"], [10, 3, 1, "", "COMPARE"], [10, 3, 1, "", "CSR_IMM"], [10, 3, 1, "", "CSR_REG"], [10, 3, 1, "", "DIV_REM"], [10, 3, 1, "", "EBREAK"], [10, 3, 1, "", "ECALL"], [10, 3, 1, "", "EXCEPTION"], [10, 3, 1, "", "FENCE"], [10, 3, 1, "", "FENCEI"], [10, 3, 1, "", "JAL"], [10, 3, 1, "", "JALR"], [10, 3, 1, "", "LOAD"], [10, 3, 1, "", "LOGIC"], [10, 3, 1, "", "MRET"], [10, 3, 1, "", "MUL"], [10, 3, 1, "", "SFENCEVMA"], [10, 3, 1, "", "SHIFT"], [10, 3, 1, "", "SINGLE_BIT_MANIPULATION"], [10, 3, 1, "", "SRET"], [10, 3, 1, "", "STORE"], [10, 3, 1, "", "UNARY_BIT_MANIPULATION_1"], [10, 3, 1, "", "UNARY_BIT_MANIPULATION_2"], [10, 3, 1, "", "UNARY_BIT_MANIPULATION_3"], [10, 3, 1, "", "UNARY_BIT_MANIPULATION_4"], [10, 3, 1, "", "UNARY_BIT_MANIPULATION_5"], [10, 3, 1, "", "UNKNOWN"], [10, 3, 1, "", "WFI"], [10, 2, 1, "", "__new__"]], "coreblocks.peripherals": [[11, 0, 0, "-", "axi_lite"], [11, 0, 0, "-", "bus_adapter"], [11, 0, 0, "-", "wishbone"]], "coreblocks.peripherals.axi_lite": [[11, 1, 1, "", "AXILiteInterface"], [11, 1, 1, "", "AXILiteMaster"], [11, 1, 1, "", "AXILiteParameters"], [11, 1, 1, "", "AXILiteSignature"]], "coreblocks.peripherals.axi_lite.AXILiteInterface": [[11, 3, 1, "", "read_address"], [11, 3, 1, "", "read_data"], [11, 3, 1, "", "write_address"], [11, 3, 1, "", "write_data"], [11, 3, 1, "", "write_response"]], "coreblocks.peripherals.axi_lite.AXILiteMaster": [[11, 2, 1, "", "__init__"], [11, 3, 1, "", "axil_master"], [11, 2, 1, "", "result_handler"], [11, 2, 1, "", "start_request_transaction"], [11, 2, 1, "", "state_machine_request"]], "coreblocks.peripherals.axi_lite.AXILiteParameters": [[11, 2, 1, "", "__init__"]], "coreblocks.peripherals.axi_lite.AXILiteSignature": [[11, 2, 1, "", "__init__"]], "coreblocks.peripherals.bus_adapter": [[11, 1, 1, "", "AXILiteMasterAdapter"], [11, 1, 1, "", "BusMasterInterface"], [11, 1, 1, "", "WishboneMasterAdapter"]], "coreblocks.peripherals.bus_adapter.AXILiteMasterAdapter": [[11, 2, 1, "", "__init__"]], "coreblocks.peripherals.bus_adapter.BusMasterInterface": [[11, 3, 1, "", "get_read_response"], [11, 3, 1, "", "get_write_response"], [11, 3, 1, "", "params"], [11, 3, 1, "", "request_read"], [11, 3, 1, "", "request_write"]], "coreblocks.peripherals.bus_adapter.WishboneMasterAdapter": [[11, 2, 1, "", "__init__"]], "coreblocks.peripherals.wishbone": [[11, 1, 1, "", "PipelinedWishboneMaster"], [11, 1, 1, "", "WishboneArbiter"], [11, 1, 1, "", "WishboneInterface"], [11, 1, 1, "", "WishboneMaster"], [11, 1, 1, "", "WishboneMasterMethodLayout"], [11, 1, 1, "", "WishboneMemorySlave"], [11, 1, 1, "", "WishboneMuxer"], [11, 1, 1, "", "WishboneParameters"], [11, 1, 1, "", "WishboneSignature"]], "coreblocks.peripherals.wishbone.PipelinedWishboneMaster": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "generate_method_layouts"], [11, 3, 1, "", "wb"]], "coreblocks.peripherals.wishbone.WishboneArbiter": [[11, 2, 1, "", "__init__"], [11, 3, 1, "", "masters"], [11, 3, 1, "", "slave_wb"]], "coreblocks.peripherals.wishbone.WishboneInterface": [[11, 3, 1, "", "ack"], [11, 3, 1, "", "adr"], [11, 3, 1, "", "cyc"], [11, 3, 1, "", "dat_r"], [11, 3, 1, "", "dat_w"], [11, 3, 1, "", "err"], [11, 3, 1, "", "lock"], [11, 3, 1, "", "rst"], [11, 3, 1, "", "rty"], [11, 3, 1, "", "sel"], [11, 3, 1, "", "stall"], [11, 3, 1, "", "stb"], [11, 3, 1, "", "we"]], "coreblocks.peripherals.wishbone.WishboneMaster": [[11, 2, 1, "", "__init__"], [11, 3, 1, "", "wb_master"]], "coreblocks.peripherals.wishbone.WishboneMasterMethodLayout": [[11, 2, 1, "", "__init__"]], "coreblocks.peripherals.wishbone.WishboneMemorySlave": [[11, 2, 1, "", "__init__"], [11, 3, 1, "", "bus"]], "coreblocks.peripherals.wishbone.WishboneMuxer": [[11, 2, 1, "", "__init__"], [11, 3, 1, "", "master_wb"], [11, 3, 1, "", "slaves"]], "coreblocks.peripherals.wishbone.WishboneParameters": [[11, 2, 1, "", "__init__"]], "coreblocks.peripherals.wishbone.WishboneSignature": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "create"]], "coreblocks.scheduler": [[12, 0, 0, "-", "scheduler"], [12, 0, 0, "-", "wakeup_select"]], "coreblocks.scheduler.scheduler": [[12, 1, 1, "", "Scheduler"]], "coreblocks.scheduler.scheduler.Scheduler": [[12, 2, 1, "", "__init__"]], "coreblocks.scheduler.wakeup_select": [[12, 1, 1, "", "WakeupSelect"]], "coreblocks.scheduler.wakeup_select.WakeupSelect": [[12, 2, 1, "", "__init__"]], "coreblocks.stages": [[13, 0, 0, "-", "backend"], [13, 0, 0, "-", "func_blocks_unifier"], [13, 0, 0, "-", "retirement"], [13, 0, 0, "-", "rs_func_block"]], "coreblocks.stages.backend": [[13, 1, 1, "", "ResultAnnouncement"]], "coreblocks.stages.backend.ResultAnnouncement": [[13, 2, 1, "", "__init__"], [13, 2, 1, "", "debug_signals"]], "coreblocks.stages.func_blocks_unifier": [[13, 1, 1, "", "FuncBlocksUnifier"]], "coreblocks.stages.func_blocks_unifier.FuncBlocksUnifier": [[13, 2, 1, "", "__init__"], [13, 2, 1, "", "get_extra_method"]], "coreblocks.stages.retirement": [[13, 1, 1, "", "Retirement"]], "coreblocks.stages.retirement.Retirement": [[13, 2, 1, "", "__init__"]], "coreblocks.stages.rs_func_block": [[13, 1, 1, "", "RSBlockComponent"], [13, 1, 1, "", "RSFuncBlock"]], "coreblocks.stages.rs_func_block.RSBlockComponent": [[13, 2, 1, "", "__init__"], [13, 3, 1, "", "func_units"], [13, 2, 1, "", "get_module"], [13, 2, 1, "", "get_optypes"], [13, 2, 1, "", "get_rs_entry_count"], [13, 3, 1, "", "rs_entries"]], "coreblocks.stages.rs_func_block.RSFuncBlock": [[13, 2, 1, "", "__init__"]], "coreblocks.structs_common": [[14, 0, 0, "-", "csr"], [14, 0, 0, "-", "csr_generic"], [14, 0, 0, "-", "exception"], [14, 0, 0, "-", "instr_counter"], [14, 0, 0, "-", "interrupt_controller"], [14, 0, 0, "-", "rat"], [14, 0, 0, "-", "rf"], [14, 0, 0, "-", "rob"], [14, 0, 0, "-", "rs"]], "coreblocks.structs_common.csr": [[14, 1, 1, "", "CSRBlockComponent"], [14, 1, 1, "", "CSRListKey"], [14, 1, 1, "", "CSRRegister"], [14, 1, 1, "", "CSRUnit"], [14, 1, 1, "", "PrivilegeLevel"], [14, 4, 1, "", "csr_access_privilege"]], "coreblocks.structs_common.csr.CSRBlockComponent": [[14, 2, 1, "", "get_module"], [14, 2, 1, "", "get_optypes"], [14, 2, 1, "", "get_rs_entry_count"]], "coreblocks.structs_common.csr.CSRListKey": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.csr.CSRRegister": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.csr.CSRUnit": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.csr.PrivilegeLevel": [[14, 3, 1, "", "MACHINE"], [14, 3, 1, "", "SUPERVISOR"], [14, 3, 1, "", "USER"], [14, 2, 1, "", "__new__"]], "coreblocks.structs_common.csr_generic": [[14, 1, 1, "", "CSRAddress"], [14, 1, 1, "", "DoubleCounterCSR"], [14, 1, 1, "", "GenericCSRRegisters"], [14, 1, 1, "", "MachineModeCSRRegisters"]], "coreblocks.structs_common.csr_generic.CSRAddress": [[14, 3, 1, "", "CYCLE"], [14, 3, 1, "", "CYCLEH"], [14, 3, 1, "", "INSTRET"], [14, 3, 1, "", "INSTRETH"], [14, 3, 1, "", "MCAUSE"], [14, 3, 1, "", "MEPC"], [14, 3, 1, "", "MTVEC"], [14, 3, 1, "", "TIME"], [14, 3, 1, "", "TIMEH"], [14, 2, 1, "", "__new__"]], "coreblocks.structs_common.csr_generic.DoubleCounterCSR": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.csr_generic.GenericCSRRegisters": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.csr_generic.MachineModeCSRRegisters": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.exception": [[14, 1, 1, "", "ExceptionCauseRegister"], [14, 4, 1, "", "should_update_prioriy"]], "coreblocks.structs_common.exception.ExceptionCauseRegister": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.instr_counter": [[14, 1, 1, "", "CoreInstructionCounter"]], "coreblocks.structs_common.instr_counter.CoreInstructionCounter": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.interrupt_controller": [[14, 1, 1, "", "InterruptController"]], "coreblocks.structs_common.interrupt_controller.InterruptController": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.rat": [[14, 1, 1, "", "FRAT"], [14, 1, 1, "", "RRAT"]], "coreblocks.structs_common.rat.FRAT": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.rat.RRAT": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.rf": [[14, 1, 1, "", "RegisterFile"]], "coreblocks.structs_common.rf.RegisterFile": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.rob": [[14, 1, 1, "", "ReorderBuffer"]], "coreblocks.structs_common.rob.ReorderBuffer": [[14, 2, 1, "", "__init__"]], "coreblocks.structs_common.rs": [[14, 1, 1, "", "RS"]], "coreblocks.structs_common.rs.RS": [[14, 2, 1, "", "__init__"]], "coreblocks.utils": [[15, 0, 0, "-", "protocols"]], "coreblocks.utils.protocols": [[15, 1, 1, "", "FuncBlock"], [15, 1, 1, "", "FuncUnit"]], "coreblocks.utils.protocols.FuncBlock": [[15, 3, 1, "", "get_result"], [15, 3, 1, "", "insert"], [15, 3, 1, "", "select"], [15, 3, 1, "", "update"]], "coreblocks.utils.protocols.FuncUnit": [[15, 3, 1, "", "accept"], [15, 3, 1, "", "issue"]], "transactron": [[29, 1, 1, "", "Method"], [29, 1, 1, "", "TModule"], [29, 1, 1, "", "Transaction"], [29, 1, 1, "", "TransactionManager"], [29, 1, 1, "", "TransactionModule"], [29, 0, 0, "-", "core"], [29, 4, 1, "", "def_method"], [29, 0, 0, "-", "graph"], [30, 0, 0, "-", "lib"], [29, 0, 0, "-", "profiler"], [31, 0, 0, "-", "testing"], [29, 0, 0, "-", "tracing"], [32, 0, 0, "-", "utils"]], "transactron.Method": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "body"], [29, 2, 1, "", "debug_signals"], [29, 5, 1, "", "layout_in"], [29, 5, 1, "", "layout_out"], [29, 2, 1, "", "like"], [29, 2, 1, "", "proxy"]], "transactron.TModule": [[29, 2, 1, "", "AvoidedIf"], [29, 2, 1, "", "Case"], [29, 2, 1, "", "Default"], [29, 2, 1, "", "Elif"], [29, 2, 1, "", "Else"], [29, 2, 1, "", "FSM"], [29, 2, 1, "", "If"], [29, 2, 1, "", "State"], [29, 2, 1, "", "Switch"], [29, 2, 1, "", "__init__"], [29, 5, 1, "", "ctrl_path"], [29, 5, 1, "", "next"]], "transactron.Transaction": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "body"], [29, 2, 1, "", "debug_signals"]], "transactron.TransactionManager": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "add_transaction"], [29, 2, 1, "", "debug_signals"], [29, 2, 1, "", "print_info"], [29, 2, 1, "", "visual_graph"]], "transactron.TransactionModule": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "context"]], "transactron.core": [[29, 1, 1, "", "Method"], [29, 1, 1, "", "Priority"], [29, 1, 1, "", "TModule"], [29, 1, 1, "", "Transaction"], [29, 1, 1, "", "TransactionManager"], [29, 1, 1, "", "TransactionManagerKey"], [29, 1, 1, "", "TransactionModule"], [29, 4, 1, "", "def_method"], [29, 4, 1, "", "eager_deterministic_cc_scheduler"], [29, 4, 1, "", "trivial_roundrobin_cc_scheduler"]], "transactron.core.Method": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "body"], [29, 2, 1, "", "debug_signals"], [29, 5, 1, "", "layout_in"], [29, 5, 1, "", "layout_out"], [29, 2, 1, "", "like"], [29, 2, 1, "", "proxy"]], "transactron.core.Priority": [[29, 3, 1, "", "LEFT"], [29, 3, 1, "", "RIGHT"], [29, 3, 1, "", "UNDEFINED"]], "transactron.core.TModule": [[29, 2, 1, "", "AvoidedIf"], [29, 2, 1, "", "Case"], [29, 2, 1, "", "Default"], [29, 2, 1, "", "Elif"], [29, 2, 1, "", "Else"], [29, 2, 1, "", "FSM"], [29, 2, 1, "", "If"], [29, 2, 1, "", "State"], [29, 2, 1, "", "Switch"], [29, 2, 1, "", "__init__"], [29, 5, 1, "", "ctrl_path"], [29, 5, 1, "", "next"]], "transactron.core.Transaction": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "body"], [29, 2, 1, "", "debug_signals"]], "transactron.core.TransactionManager": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "add_transaction"], [29, 2, 1, "", "debug_signals"], [29, 2, 1, "", "print_info"], [29, 2, 1, "", "visual_graph"]], "transactron.core.TransactionManagerKey": [[29, 2, 1, "", "__init__"]], "transactron.core.TransactionModule": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "context"]], "transactron.graph": [[29, 1, 1, "", "Direction"], [29, 1, 1, "", "Owned"], [29, 1, 1, "", "OwnershipGraph"]], "transactron.graph.Direction": [[29, 3, 1, "", "IN"], [29, 3, 1, "", "INOUT"], [29, 3, 1, "", "NONE"], [29, 3, 1, "", "OUT"], [29, 2, 1, "", "__new__"]], "transactron.graph.Owned": [[29, 2, 1, "", "__init__"], [29, 3, 1, "", "name"], [29, 3, 1, "", "owner"]], "transactron.graph.OwnershipGraph": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "dump"], [29, 2, 1, "", "dump_dot"], [29, 2, 1, "", "dump_elk"], [29, 2, 1, "", "dump_mermaid"], [29, 2, 1, "", "get_hier_name"], [29, 2, 1, "", "get_name"], [29, 2, 1, "", "insert_edge"], [29, 2, 1, "", "insert_node"], [29, 3, 1, "", "mermaid_direction"], [29, 2, 1, "", "prune"], [29, 2, 1, "", "remember"], [29, 2, 1, "", "remember_field"]], "transactron.lib": [[30, 0, 0, "-", "adapters"], [30, 0, 0, "-", "buttons"], [30, 0, 0, "-", "connectors"], [30, 0, 0, "-", "dependencies"], [30, 0, 0, "-", "fifo"], [30, 0, 0, "-", "logging"], [30, 0, 0, "-", "metrics"], [30, 0, 0, "-", "reqres"], [30, 0, 0, "-", "simultaneous"], [30, 0, 0, "-", "storage"], [30, 0, 0, "-", "transformers"]], "transactron.lib.adapters": [[30, 1, 1, "", "Adapter"], [30, 1, 1, "", "AdapterBase"], [30, 1, 1, "", "AdapterTrans"]], "transactron.lib.adapters.Adapter": [[30, 2, 1, "", "__init__"]], "transactron.lib.adapters.AdapterBase": [[30, 2, 1, "", "__init__"], [30, 3, 1, "", "data_in"], [30, 3, 1, "", "data_out"], [30, 2, 1, "", "debug_signals"]], "transactron.lib.adapters.AdapterTrans": [[30, 2, 1, "", "__init__"]], "transactron.lib.buttons": [[30, 1, 1, "", "ClickIn"], [30, 1, 1, "", "ClickOut"]], "transactron.lib.buttons.ClickIn": [[30, 2, 1, "", "__init__"]], "transactron.lib.buttons.ClickOut": [[30, 2, 1, "", "__init__"]], "transactron.lib.connectors": [[30, 1, 1, "", "Connect"], [30, 1, 1, "", "ConnectTrans"], [30, 1, 1, "", "FIFO"], [30, 1, 1, "", "Forwarder"], [30, 1, 1, "", "ManyToOneConnectTrans"]], "transactron.lib.connectors.Connect": [[30, 2, 1, "", "__init__"]], "transactron.lib.connectors.ConnectTrans": [[30, 2, 1, "", "__init__"]], "transactron.lib.connectors.FIFO": [[30, 2, 1, "", "__init__"]], "transactron.lib.connectors.Forwarder": [[30, 2, 1, "", "__init__"]], "transactron.lib.connectors.ManyToOneConnectTrans": [[30, 2, 1, "", "__init__"]], "transactron.lib.dependencies": [[30, 1, 1, "", "DependencyKey"], [30, 1, 1, "", "DependencyManager"], [30, 1, 1, "", "ListKey"], [30, 1, 1, "", "SimpleKey"], [30, 1, 1, "", "UnifierKey"]], "transactron.lib.dependencies.DependencyKey": [[30, 2, 1, "", "combine"], [30, 3, 1, "", "empty_valid"], [30, 3, 1, "", "lock_on_get"]], "transactron.lib.dependencies.DependencyManager": [[30, 2, 1, "", "__init__"], [30, 2, 1, "", "add_dependency"], [30, 2, 1, "", "get_dependency"]], "transactron.lib.dependencies.ListKey": [[30, 2, 1, "", "combine"], [30, 3, 1, "", "empty_valid"]], "transactron.lib.dependencies.SimpleKey": [[30, 2, 1, "", "combine"], [30, 3, 1, "", "default_value"]], "transactron.lib.dependencies.UnifierKey": [[30, 2, 1, "", "combine"], [30, 3, 1, "", "unifier"]], "transactron.lib.fifo": [[30, 1, 1, "", "BasicFifo"], [30, 1, 1, "", "Semaphore"]], "transactron.lib.fifo.BasicFifo": [[30, 2, 1, "", "__init__"]], "transactron.lib.fifo.Semaphore": [[30, 2, 1, "", "__init__"]], "transactron.lib.logging": [[30, 1, 1, "", "HardwareLogger"], [30, 1, 1, "", "LogKey"], [30, 1, 1, "", "LogRecord"], [30, 1, 1, "", "LogRecordInfo"], [30, 4, 1, "", "get_log_records"], [30, 4, 1, "", "get_trigger_bit"]], "transactron.lib.logging.HardwareLogger": [[30, 2, 1, "", "__init__"], [30, 2, 1, "", "assertion"], [30, 2, 1, "", "debug"], [30, 2, 1, "", "error"], [30, 2, 1, "", "info"], [30, 2, 1, "", "log"], [30, 2, 1, "", "warning"]], "transactron.lib.logging.LogKey": [[30, 2, 1, "", "__init__"]], "transactron.lib.logging.LogRecord": [[30, 2, 1, "", "__init__"], [30, 3, 1, "", "fields"], [30, 3, 1, "", "trigger"]], "transactron.lib.logging.LogRecordInfo": [[30, 2, 1, "", "__init__"], [30, 2, 1, "", "format"], [30, 3, 1, "", "format_str"], [30, 2, 1, "", "from_dict"], [30, 2, 1, "", "from_json"], [30, 3, 1, "", "level"], [30, 3, 1, "", "location"], [30, 3, 1, "", "logger_name"], [30, 2, 1, "", "schema"], [30, 2, 1, "", "to_dict"], [30, 2, 1, "", "to_json"]], "transactron.lib.metrics": [[30, 1, 1, "", "HardwareMetricsManager"], [30, 1, 1, "", "HwCounter"], [30, 1, 1, "", "HwExpHistogram"], [30, 1, 1, "", "HwMetric"], [30, 1, 1, "", "HwMetricsEnabledKey"], [30, 1, 1, "", "LatencyMeasurer"], [30, 1, 1, "", "MetricModel"], [30, 1, 1, "", "MetricRegisterModel"]], "transactron.lib.metrics.HardwareMetricsManager": [[30, 2, 1, "", "__init__"], [30, 2, 1, "", "debug_signals"], [30, 2, 1, "", "get_metrics"], [30, 2, 1, "", "get_register_value"]], "transactron.lib.metrics.HwCounter": [[30, 2, 1, "", "__init__"], [30, 2, 1, "", "incr"]], "transactron.lib.metrics.HwExpHistogram": [[30, 2, 1, "", "__init__"], [30, 2, 1, "", "add"]], "transactron.lib.metrics.HwMetric": [[30, 2, 1, "", "__init__"], [30, 2, 1, "", "add_registers"], [30, 2, 1, "", "metrics_enabled"]], "transactron.lib.metrics.HwMetricsEnabledKey": [[30, 2, 1, "", "__init__"], [30, 3, 1, "", "default_value"], [30, 3, 1, "", "empty_valid"], [30, 3, 1, "", "lock_on_get"]], "transactron.lib.metrics.LatencyMeasurer": [[30, 2, 1, "", "__init__"], [30, 2, 1, "", "metrics_enabled"], [30, 2, 1, "", "start"], [30, 2, 1, "", "stop"]], "transactron.lib.metrics.MetricModel": [[30, 2, 1, "", "__init__"], [30, 3, 1, "", "description"], [30, 2, 1, "", "from_dict"], [30, 2, 1, "", "from_json"], [30, 3, 1, "", "fully_qualified_name"], [30, 3, 1, "", "regs"], [30, 2, 1, "", "schema"], [30, 2, 1, "", "to_dict"], [30, 2, 1, "", "to_json"]], "transactron.lib.metrics.MetricRegisterModel": [[30, 2, 1, "", "__init__"], [30, 3, 1, "", "description"], [30, 2, 1, "", "from_dict"], [30, 2, 1, "", "from_json"], [30, 3, 1, "", "name"], [30, 2, 1, "", "schema"], [30, 2, 1, "", "to_dict"], [30, 2, 1, "", "to_json"], [30, 3, 1, "", "width"]], "transactron.lib.reqres": [[30, 1, 1, "", "ArgumentsToResultsZipper"], [30, 1, 1, "", "Serializer"]], "transactron.lib.reqres.ArgumentsToResultsZipper": [[30, 2, 1, "", "__init__"]], "transactron.lib.reqres.Serializer": [[30, 2, 1, "", "__init__"]], "transactron.lib.simultaneous": [[30, 4, 1, "", "condition"]], "transactron.lib.storage": [[30, 1, 1, "", "MemoryBank"]], "transactron.lib.storage.MemoryBank": [[30, 2, 1, "", "__init__"]], "transactron.lib.transformers": [[30, 1, 1, "", "CatTrans"], [30, 1, 1, "", "Collector"], [30, 1, 1, "", "ConnectAndMapTrans"], [30, 1, 1, "", "MethodFilter"], [30, 1, 1, "", "MethodMap"], [30, 1, 1, "", "MethodProduct"], [30, 1, 1, "", "MethodTryProduct"], [30, 1, 1, "", "Transformer"], [30, 1, 1, "", "Unifier"]], "transactron.lib.transformers.CatTrans": [[30, 2, 1, "", "__init__"]], "transactron.lib.transformers.Collector": [[30, 2, 1, "", "__init__"]], "transactron.lib.transformers.ConnectAndMapTrans": [[30, 2, 1, "", "__init__"]], "transactron.lib.transformers.MethodFilter": [[30, 2, 1, "", "__init__"]], "transactron.lib.transformers.MethodMap": [[30, 2, 1, "", "__init__"]], "transactron.lib.transformers.MethodProduct": [[30, 2, 1, "", "__init__"]], "transactron.lib.transformers.MethodTryProduct": [[30, 2, 1, "", "__init__"]], "transactron.lib.transformers.Transformer": [[30, 3, 1, "", "method"], [30, 2, 1, "", "use"]], "transactron.lib.transformers.Unifier": [[30, 2, 1, "", "__init__"], [30, 3, 1, "", "method"]], "transactron.profiler": [[29, 1, 1, "", "MethodSamples"], [29, 1, 1, "", "Profile"], [29, 1, 1, "", "ProfileData"], [29, 1, 1, "", "ProfileInfo"], [29, 1, 1, "", "ProfileSamples"], [29, 1, 1, "", "RunStat"], [29, 1, 1, "", "RunStatNode"], [29, 1, 1, "", "TransactionSamples"]], "transactron.profiler.MethodSamples": [[29, 2, 1, "", "__init__"], [29, 3, 1, "", "run"]], "transactron.profiler.Profile": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "analyze_methods"], [29, 2, 1, "", "analyze_transactions"], [29, 3, 1, "", "cycles"], [29, 2, 1, "", "decode"], [29, 2, 1, "", "encode"], [29, 2, 1, "", "from_dict"], [29, 2, 1, "", "from_json"], [29, 2, 1, "", "schema"], [29, 2, 1, "", "to_dict"], [29, 2, 1, "", "to_json"], [29, 3, 1, "", "transactions_and_methods"]], "transactron.profiler.ProfileData": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "make"], [29, 3, 1, "", "method_parents"], [29, 3, 1, "", "transaction_conflicts"], [29, 3, 1, "", "transactions_and_methods"], [29, 3, 1, "", "transactions_by_method"]], "transactron.profiler.ProfileInfo": [[29, 2, 1, "", "__init__"], [29, 2, 1, "", "from_dict"], [29, 2, 1, "", "from_json"], [29, 3, 1, "", "is_transaction"], [29, 3, 1, "", "name"], [29, 2, 1, "", "schema"], [29, 3, 1, "", "src_loc"], [29, 2, 1, "", "to_dict"], [29, 2, 1, "", "to_json"]], "transactron.profiler.ProfileSamples": [[29, 2, 1, "", "__init__"], [29, 3, 1, "", "methods"], [29, 3, 1, "", "transactions"]], "transactron.profiler.RunStat": [[29, 2, 1, "", "__init__"], [29, 3, 1, "", "locked"], [29, 2, 1, "", "make"], [29, 3, 1, "", "name"], [29, 3, 1, "", "run"], [29, 3, 1, "", "src_loc"]], "transactron.profiler.RunStatNode": [[29, 2, 1, "", "__init__"], [29, 3, 1, "", "callers"], [29, 2, 1, "", "make"], [29, 3, 1, "", "stat"]], "transactron.profiler.TransactionSamples": [[29, 2, 1, "", "__init__"], [29, 3, 1, "", "grant"], [29, 3, 1, "", "request"], [29, 3, 1, "", "runnable"]], "transactron.testing": [[31, 0, 0, "-", "functions"], [31, 0, 0, "-", "gtkw_extension"], [31, 0, 0, "-", "infrastructure"], [31, 0, 0, "-", "logging"], [31, 0, 0, "-", "profiler"], [31, 0, 0, "-", "sugar"], [31, 0, 0, "-", "testbenchio"]], "transactron.testing.functions": [[31, 4, 1, "", "get_outputs"], [31, 4, 1, "", "set_inputs"]], "transactron.testing.gtkw_extension": [[31, 4, 1, "", "write_vcd_ext"]], "transactron.testing.infrastructure": [[31, 1, 1, "", "CoreblocksCommand"], [31, 1, 1, "", "Now"], [31, 1, 1, "", "PysimSimulator"], [31, 1, 1, "", "SimpleTestCircuit"], [31, 1, 1, "", "SyncProcessWrapper"], [31, 1, 1, "", "TestCaseWithSimulator"], [31, 4, 1, "", "guard_nested_collection"]], "transactron.testing.infrastructure.PysimSimulator": [[31, 2, 1, "", "__init__"], [31, 2, 1, "", "add_sync_process"], [31, 2, 1, "", "run"]], "transactron.testing.infrastructure.SimpleTestCircuit": [[31, 2, 1, "", "__init__"], [31, 2, 1, "", "debug_signals"]], "transactron.testing.infrastructure.SyncProcessWrapper": [[31, 2, 1, "", "__init__"]], "transactron.testing.infrastructure.TestCaseWithSimulator": [[31, 2, 1, "", "__init__"], [31, 2, 1, "", "add_all_mocks"], [31, 2, 1, "", "add_class_mocks"], [31, 2, 1, "", "add_local_mocks"], [31, 3, 1, "", "dependency_manager"], [31, 2, 1, "", "random_wait"], [31, 2, 1, "", "random_wait_geom"], [31, 2, 1, "", "run_simulation"], [31, 2, 1, "", "tick"]], "transactron.testing.logging": [[31, 4, 1, "", "make_logging_process"], [31, 4, 1, "", "parse_logging_level"]], "transactron.testing.profiler": [[31, 4, 1, "", "profiler_process"]], "transactron.testing.sugar": [[31, 4, 1, "", "def_method_mock"]], "transactron.testing.testbenchio": [[31, 1, 1, "", "TestbenchIO"]], "transactron.testing.testbenchio.TestbenchIO": [[31, 2, 1, "", "__init__"], [31, 2, 1, "", "call"], [31, 2, 1, "", "call_do"], [31, 2, 1, "", "call_init"], [31, 2, 1, "", "call_result"], [31, 2, 1, "", "call_try"], [31, 2, 1, "", "debug_signals"], [31, 2, 1, "", "disable"], [31, 2, 1, "", "done"], [31, 2, 1, "", "enable"], [31, 2, 1, "", "get_outputs"], [31, 2, 1, "", "method_argument"], [31, 2, 1, "", "method_handle"], [31, 2, 1, "", "method_handle_loop"], [31, 2, 1, "", "method_return"], [31, 2, 1, "", "set_enable"], [31, 2, 1, "", "set_inputs"], [31, 2, 1, "", "wait_until_done"]], "transactron.tracing": [[29, 1, 1, "", "TracingEnabler"], [29, 1, 1, "", "TracingFragment"], [29, 1, 1, "", "TracingFragmentTransformer"], [29, 1, 1, "", "TracingInstance"]], "transactron.tracing.TracingFragment": [[29, 2, 1, "", "get"], [29, 2, 1, "", "prepare"], [29, 3, 1, "", "subfragments"]], "transactron.tracing.TracingFragmentTransformer": [[29, 2, 1, "", "on_fragment"]], "transactron.tracing.TracingInstance": [[29, 2, 1, "", "get"]], "transactron.utils": [[33, 0, 0, "-", "amaranth_ext"], [32, 0, 0, "-", "assign"], [32, 0, 0, "-", "data_repr"], [32, 0, 0, "-", "debug_signals"], [32, 0, 0, "-", "depcache"], [32, 0, 0, "-", "dependencies"], [32, 0, 0, "-", "gen"], [32, 0, 0, "-", "idgen"], [32, 0, 0, "-", "transactron_helpers"]], "transactron.utils.amaranth_ext": [[33, 0, 0, "-", "elaboratables"], [33, 0, 0, "-", "functions"]], "transactron.utils.amaranth_ext.elaboratables": [[33, 1, 1, "", "ModuleConnector"], [33, 4, 1, "", "OneHotSwitch"], [33, 4, 1, "", "OneHotSwitchDynamic"], [33, 1, 1, "", "RoundRobin"], [33, 1, 1, "", "Scheduler"]], "transactron.utils.amaranth_ext.elaboratables.ModuleConnector": [[33, 2, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables.RoundRobin": [[33, 2, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables.Scheduler": [[33, 2, 1, "", "__init__"]], "transactron.utils.amaranth_ext.functions": [[33, 4, 1, "", "count_leading_zeros"], [33, 4, 1, "", "count_trailing_zeros"], [33, 4, 1, "", "flatten_signals"], [33, 4, 1, "", "mod_incr"], [33, 4, 1, "", "popcount"]], "transactron.utils.assign": [[32, 1, 1, "", "AssignType"], [32, 4, 1, "", "assign"]], "transactron.utils.assign.AssignType": [[32, 3, 1, "", "ALL"], [32, 3, 1, "", "COMMON"], [32, 3, 1, "", "RHS"]], "transactron.utils.data_repr": [[32, 4, 1, "", "align_down_to_power_of_two"], [32, 4, 1, "", "align_to_power_of_two"], [32, 4, 1, "", "average_dict_of_lists"], [32, 4, 1, "", "bits_from_int"], [32, 4, 1, "", "data_layout"], [32, 4, 1, "", "int_to_signed"], [32, 4, 1, "", "layout_subset"], [32, 4, 1, "", "make_hashable"], [32, 4, 1, "", "neg"], [32, 4, 1, "", "signed_to_int"]], "transactron.utils.debug_signals": [[32, 4, 1, "", "auto_debug_signals"]], "transactron.utils.depcache": [[32, 1, 1, "", "DependentCache"]], "transactron.utils.depcache.DependentCache": [[32, 2, 1, "", "__init__"], [32, 2, 1, "", "get"]], "transactron.utils.dependencies": [[32, 1, 1, "", "DependencyContext"], [32, 1, 1, "", "DependencyKey"], [32, 1, 1, "", "DependencyManager"], [32, 1, 1, "", "ListKey"], [32, 1, 1, "", "SimpleKey"]], "transactron.utils.dependencies.DependencyContext": [[32, 2, 1, "", "__init__"], [32, 2, 1, "", "get"], [32, 3, 1, "", "stack"]], "transactron.utils.dependencies.DependencyKey": [[32, 2, 1, "", "combine"], [32, 3, 1, "", "empty_valid"], [32, 3, 1, "", "lock_on_get"]], "transactron.utils.dependencies.DependencyManager": [[32, 2, 1, "", "__init__"], [32, 2, 1, "", "add_dependency"], [32, 2, 1, "", "get_dependency"]], "transactron.utils.dependencies.ListKey": [[32, 2, 1, "", "combine"], [32, 3, 1, "", "empty_valid"]], "transactron.utils.dependencies.SimpleKey": [[32, 2, 1, "", "combine"], [32, 3, 1, "", "default_value"]], "transactron.utils.gen": [[32, 1, 1, "", "GeneratedLog"], [32, 1, 1, "", "GenerationInfo"], [32, 1, 1, "", "MetricLocation"], [32, 4, 1, "", "generate_verilog"]], "transactron.utils.gen.GeneratedLog": [[32, 2, 1, "", "__init__"], [32, 3, 1, "", "fields_location"], [32, 2, 1, "", "from_dict"], [32, 2, 1, "", "from_json"], [32, 2, 1, "", "schema"], [32, 2, 1, "", "to_dict"], [32, 2, 1, "", "to_json"], [32, 3, 1, "", "trigger_location"]], "transactron.utils.gen.GenerationInfo": [[32, 2, 1, "", "__init__"], [32, 2, 1, "", "decode"], [32, 2, 1, "", "encode"], [32, 2, 1, "", "from_dict"], [32, 2, 1, "", "from_json"], [32, 3, 1, "", "logs"], [32, 3, 1, "", "method_signals_location"], [32, 3, 1, "", "metrics_location"], [32, 3, 1, "", "profile_data"], [32, 2, 1, "", "schema"], [32, 2, 1, "", "to_dict"], [32, 2, 1, "", "to_json"], [32, 3, 1, "", "transaction_signals_location"]], "transactron.utils.gen.MetricLocation": [[32, 2, 1, "", "__init__"], [32, 2, 1, "", "from_dict"], [32, 2, 1, "", "from_json"], [32, 3, 1, "", "regs"], [32, 2, 1, "", "schema"], [32, 2, 1, "", "to_dict"], [32, 2, 1, "", "to_json"]], "transactron.utils.idgen": [[32, 1, 1, "", "IdGenerator"]], "transactron.utils.idgen.IdGenerator": [[32, 2, 1, "", "__init__"]], "transactron.utils.transactron_helpers": [[32, 4, 1, "", "def_helper"], [32, 4, 1, "", "from_method_layout"], [32, 4, 1, "", "get_caller_class_name"], [32, 4, 1, "", "get_src_loc"], [32, 4, 1, "", "method_def_helper"], [32, 4, 1, "", "mock_def_helper"], [32, 4, 1, "", "silence_mustuse"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:function", "5": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"], "5": ["py", "property", "Python property"]}, "titleterms": {"api": 0, "coreblock": [0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 21, 28], "transactron": [0, 22, 29, 30, 31, 32, 33], "list": 1, "assumpt": [1, 3], "made": 1, "dure": 1, "develop": [1, 17], "instruct": [3, 26], "cach": [3, 5], "interfac": [3, 25, 26], "address": 3, "map": 3, "exampl": 3, "packag": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 29, 30, 31, 32, 33], "subpackag": [4, 7, 29, 32], "submodul": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 29, 30, 31, 32, 33], "core": [4, 27, 29], "modul": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 29, 30, 31, 32, 33], "content": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 29, 30, 31, 32, 33], "icach": 5, "ifac": 5, "refil": 5, "frontend": 6, "decode_stag": 6, "fetch": 6, "instr_decod": 6, "instr_descript": 6, "rvc": 6, "fu": [7, 8], "alu": 7, "div_unit": 7, "except": [7, 14, 20], "fu_decod": 7, "jumpbranch": 7, "mul_unit": 7, "priv": 7, "shift_unit": 7, "zbc": 7, "zb": 7, "unsigned_multipl": 8, "common": 8, "fast_recurs": 8, "sequenc": 8, "shift": 8, "lsu": 9, "dummylsu": 9, "pma": 9, "param": 10, "configur": 10, "fu_param": 10, "genparam": 10, "icache_param": 10, "instr": 10, "isa": 10, "kei": 10, "layout": 10, "optyp": 10, "peripher": 11, "axi_lit": 11, "bus_adapt": 11, "wishbon": 11, "schedul": [12, 24, 28], "wakeup_select": 12, "stage": 13, "backend": 13, "func_blocks_unifi": 13, "retir": 13, "rs_func_block": 13, "structs_common": 14, "csr": 14, "csr_gener": 14, "instr_count": 14, "interrupt_control": 14, "rat": 14, "rf": 14, "rob": 14, "r": 14, "util": [15, 32, 33], "protocol": 15, "full": 16, "transact": [16, 28], "method": [16, 25, 26, 28], "graph": [16, 29], "environ": 17, "set": 17, "up": 17, "us": [17, 25, 26], "script": 17, "run_test": 17, "py": 17, "lint": 17, "sh": 17, "core_graph": 17, "build_doc": 17, "tprof": 17, "introduct": [18, 20, 28], "document": [18, 28], "summari": 20, "paper": 20, "about": 20, "interrupt": 20, "handl": 20, "old": 20, "pc": 20, "out": 20, "order": [20, 28], "execut": [20, 27], "processor": 20, "In": 20, "line": 20, "softwar": 20, "manag": 20, "tlb": 20, "hardwar": 20, "cost": 20, "analysi": 20, "process": 20, "strategi": 20, "igpu": 20, "support": 20, "specul": 20, "gpu": 20, "effici": 20, "other": 20, "problem": 23, "checklist": 23, "overview": [24, 26], "descript": 24, "schema": 24, "structur": 24, "more": 24, "detail": 24, "each": 24, "block": 24, "proposit": 25, "reserv": [25, 26], "station": [25, 26], "implement": [25, 28], "intern": 25, "data": 25, "actual": 25, "slot": [25, 26], "tabl": 25, "compar": [25, 26], "substitut": [25, 26], "read": [25, 26], "row": [25, 26], "clean": [25, 26], "get": [25, 26], "free": 25, "mark": [25, 26], "extern": [25, 26], "all": [25, 26], "reset": 26, "initi": 26, "state": 26, "insert": 26, "new": 26, "readi": [26, 28], "vector": 26, "signal": [26, 28], "verif": 27, "synthesi": 27, "manual": 27, "reproduct": 27, "depend": [27, 30, 32], "benchmark": 27, "regress": 27, "test": [27, 31], "framework": 28, "basic": 28, "usag": 28, "argument": 28, "pass": 28, "convent": 28, "definit": 28, "return": 28, "valu": 28, "The": 28, "librari": 28, "advanc": 28, "concept": 28, "special": 28, "combin": 28, "domain": 28, "conflict": 28, "nest": 28, "profil": [29, 31], "trace": 29, "lib": 30, "adapt": 30, "button": 30, "connector": 30, "fifo": 30, "log": [30, 31], "metric": 30, "reqr": 30, "simultan": 30, "storag": 30, "transform": 30, "function": [31, 33], "gtkw_extens": 31, "infrastructur": 31, "sugar": 31, "testbenchio": 31, "assign": 32, "data_repr": 32, "debug_sign": 32, "depcach": 32, "gen": 32, "idgen": 32, "transactron_help": 32, "amaranth_ext": 33, "elaborat": 33}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/shared-structs/implementation/rs-impl.html b/shared-structs/implementation/rs-impl.html index 71695ebba..476b704ad 100644 --- a/shared-structs/implementation/rs-impl.html +++ b/shared-structs/implementation/rs-impl.html @@ -252,7 +252,7 @@

    Read and clean row

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 09:48 2024-03-14. + Last updated on 11:28 2024-03-14.

    diff --git a/shared-structs/rs.html b/shared-structs/rs.html index 5aec6e868..9b016d0f1 100644 --- a/shared-structs/rs.html +++ b/shared-structs/rs.html @@ -222,7 +222,7 @@

    External interface signals

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 09:48 2024-03-14. + Last updated on 11:28 2024-03-14.

    diff --git a/synthesis/synthesis.html b/synthesis/synthesis.html index 211789d72..05b533d67 100644 --- a/synthesis/synthesis.html +++ b/synthesis/synthesis.html @@ -266,7 +266,7 @@

    Regression tests manual execution

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 09:48 2024-03-14. + Last updated on 11:28 2024-03-14.

    diff --git a/transactions.html b/transactions.html index 191734064..b1131fafc 100644 --- a/transactions.html +++ b/transactions.html @@ -409,7 +409,7 @@

    Transaction and method nesting

    © Copyright Kuźnia Rdzeni, 2024. - Last updated on 09:48 2024-03-14. + Last updated on 11:28 2024-03-14.

    diff --git a/transactron.html b/transactron.html index 6cabac317..9869c1bcd 100644 --- a/transactron.html +++ b/transactron.html @@ -94,6 +94,7 @@

    Subpackagestransactron.lib.connectors module
  • transactron.lib.dependencies module
  • transactron.lib.fifo module
  • +
  • transactron.lib.logging module
  • transactron.lib.metrics module
  • transactron.lib.reqres module
  • transactron.lib.simultaneous module
  • @@ -104,10 +105,10 @@

    Subpackagestransactron.testing package