From 591d35d240cc30fbd150d4229c188fa2fca6f999 Mon Sep 17 00:00:00 2001 From: tilk Date: Fri, 17 Jan 2025 11:46:19 +0000 Subject: [PATCH] Adapt transactron.lib.storage to amaranth.lib.data (#36) --- .doctrees/api.doctree | Bin 2243167 -> 2243167 bytes .doctrees/environment.pickle | Bin 2416112 -> 2416112 bytes .doctrees/transactron.lib.doctree | Bin 1026072 -> 1025387 bytes api.html | 2 +- development-environment.html | 2 +- genindex.html | 2 +- index.html | 2 +- modules.html | 2 +- py-modindex.html | 2 +- search.html | 2 +- searchindex.js | 2 +- transactions.html | 2 +- transactron.core.html | 2 +- transactron.html | 2 +- transactron.lib.html | 26 ++++++++++++++------------ transactron.testing.html | 2 +- transactron.utils.amaranth_ext.html | 2 +- transactron.utils.html | 2 +- 18 files changed, 28 insertions(+), 26 deletions(-) diff --git a/.doctrees/api.doctree b/.doctrees/api.doctree index 4402e3fc73c58248e94846b1941fb639487a7c99..7332a94af283937cd12ee69007bec915a78d1a7f 100644 GIT binary patch delta 301 zcmccrrGxQ45O3%-wGk{SO3W)xOfD(P&(kX{$;>I9(!-A|mXnz@rH4H?KczG$6)4Az zBsck&sWuyHW?o8a#pIc$%DT*n1({QNcwj0r^Yefj#8XnsQgiYPa#Qn4bW`)nGJzI> z*qhzV)-$p_ns6XQ@b%{3=0SYS49;E60dDO9Zj3<81jNih%mT!$K+Fcj>_E%`#GF9P z1;pGy%mc){K+Ffk{6H)K#DYL91jNEXECR%$Kr9Bt;y^3`#F9WP1;o-oEVDhpP4?as Ykmc=$+HycF55x*Uthn7!TS<=}0EGQ&jQ{`u delta 279 zcmYk#y9$C}00m&ovU_&F-y4mf!FmH{=?yF$elU$RXo!}e3%KbXJwZW3Pte*U6hV&= zEiIjfpy3-1=fJr=*VGLT8$QaKV@WflfjQQ-mP-2ei*GOG$M`_{3{(R^h-q7jHA%mQ_Ow01d28F{QGa`bR6M{IK%H)j9PKknmg31v*IHft9!ywKmxsg?-X_|R+ z#7;?NCTKa7I8|28m1S8@)%D(PrN8gq`epWo;6{`3Cvu=cao+H0-7_S$Q& zy`RJVLtML$r}}c&f$no>XV09IJ!S4}!_4q`bMx}&RIYJtjLXlPT)D=fz>qU9KNmEo zMl_xf7V2P^H!~-9K_%b%$a8&|i+8i^!o12g&Q`8G!%TGYp_rS@$NYR)>t?2}Dr(2L z|Da#d?1?9a$9{pgv2}0gmo~ipb(X%!_BO8P2K{o|+xXOX^u@Nf7kl5+m)PDu44kDm zS>NiykA~?>ZEtyB4AL7dZyptO&j$zT%WTA&O+WFW-AC~cy8CELd2x4dex=VOp4DjGv)7^RVgf_hQkT5R*}oXETKJtY!>L3*onhV7LSA zxN*316SJl!c9NzIOY`B?G0xH*Ruk*{`|#FD&ir`qcKm$04=+k~+k@Ze z-<;nY=7eGR@JE9?@!CjN=~aQ>8rgz39g+`^8vD<^|1h$XG+*?4cCfCg$H#c^iZ}

jt81UOeqopJ4NA%^UVUGOOaieVW*4Qa?Go!fu zh#vfh5zhQvy03JQ=o6LZ$cIhp^shqhVrB#%7bgt&mpl|yoF(sV4EM85_>IC=y;OIBfdNpx&a6)%E-4${6 z{Kat@7RUGGwUZq9>QpB=I%`z^rwM44+V6id39%_1kaw#?+tM`iW=j|=O6eGX^y z`PtjG6}U$GmGPl~13%L7d(+%_ z=V>~A{T0z3$L~Py^yw@4hG`+(^f!<7VUE08-j0c4@7Fun;g8t&^`4?7_I!P?Xo>w^ z-%Yf{Uauc0T4ImXj}$GjP3gyrmdM=tsiGzJcKuw@Dl>P}SK0Bf5(8f|C5&emj^H;| zyYq<69_ISO01Yp#%)iZ=sv2|V=vCw1-2SRD;F&3^Q9VCLH99;wP&LM{TA>;bR#<`tmiZ(QRFk zYSdQzBpbXozq$Fu`aFe=tsJWwJ2zN__9hEy|MT+|sqaQR#y>C^FvWBEOY_~$5t}15 zG+J@fOJ}uWbMlt`OuU-iwylzQy2>;!bKUlp^39ySV~c9&cEU`-xbrWwHC|&hGzt`F zzHirPzTVW{{N(PAnpVQI>bjX1@0p9H`N7^d1?IutQ1gZT6{4B>Rwxz5F$eR81FHl_ zkolNE-~Fls6%Ekr%&u>)7w_76^-lLk19{=#8o`_S)^S1maK0nw3g7ZFM;zN^ zdCNTMM=mooC%*KeyV>J|1r~JDV=o?Yta(*|=3qX2yh35knI~&3^ex{?I-OgnIhzwd zTxvn5?@;KiMhrwdy|Ssa_4N+sck5R*MN;iX=vZ(TS^NAMjZe8_Xtcncx$C9T)K;_jY}qCF z3~$P3S1)5+;>|qg>Tyde{`z@KEBwnNme%91YE_FDe%FR7wlF92uQy?f?7HP!D_h}r zM=flh{^rHAt~=7B%UVnGjN7nJ>eTJ@rmQO%iT#fm8V@^SK*s6Ff4wt${dqN|g?GDX z>(7gTZp%NqSFIV%i|-dOfe};e_wzzY#RQYVS#zKx*Dwpmf2ow%$6raTJw@+lEzA`U zH!0rlEZFLsn$A4+?-df8dD4O{`bKj!hyLSvfi-{n+g?e1YrmqJ_y18Y2}zI73rGe> ztu<9QXC5_~nwBq6HCSQ`G(P_egC%Lw_2yauKXOx!r>4+O>!{&P+Fx_RUaOLCH4t=D zwQ^f(U#r#xXYI0T4R_IAlr8@0Z>`sd>1qPpw1rxXNX79EG7raVG6@5S3>@z!(=TWu z_r^QR#2fD_vu?bTOu0ao(M5MHrGrT08I_&%X%5K26UCnl{K=K_GAi}E@sh1Cri4~n zfM%q;R$7EfI0iq?)&^0np^ zk*7JqgPqqySt3AK zSC#~@xGRfOMvV0&_oK>cPkPjqc`EeyKcO9UGYvTn`Y9nPWvoVu}*N^PMhom&EH%7ZbKm>^9@72TLK zST=WK(EwMwu_21{S&M<-bSI~Fnp=az3=u39ymb-QnJlqQoQ?{+Gk2O4qB%71Cv<0n z!C%px4O6mLH(23L&OMkrsDVA$U`2h-lY(=VjqXG}n5#lpHb!3o8l8UZ!Nw{dY!ova zN<|$tCtA{zIV$XCIxv8B6j*0^ucw@+vpv~RMcgjj){WwNvDOOlsv3r=mvqIEUMw9d z0(!Fvio9Q`a0}C%T$%*l>q-j<&Q#b1j=eXJIVhvw^rRcJF_v>(w6=8P8Rh_q$$i*J zfQ@}vvJ(8B(z_;$>8c`_8{O!l*|qvF;a#V=40{m=@AZNf=!3iaG982&`&wi8gksy! zm$mbrYsk#Wn=-eFu^+%5>D1|E> zDCjBXNb{d!p5R^cl=Rl=r`Qm@x%aom#8(z``?D^A83v0C%hmhXSOZC9h}2x@o{f$~Dco~+5DQTqV(9ZI7RZmh zZ6{>5q#=Wun=)vy7rC#6gWC*-gylB$FnB<$;-n$Wl|CAbHC{qj2P0)k{Rv9`4~L*1 z96=x&h9E>r=)e%fhU6Kmc-%zd3mVGWDeQQG?Wl}+b|`aJMojdo5<&e^tmZ{WhFV8C zNl8fW2?=+HvH*y88is`;#pftuN+yVfDViM>4P)&UX__KouKFs3ULhRf;mMT2nj2jk zta(^hPYERrXZ@5Ngp_;#KnoH>Ha5fqigp6SQ0MbWbhmeLW_M$IO zB6_n%Xufo3D5CfF2YjNzDsHrtU`Hb80-Cc-9~4S|%V|ODHwL8lc+|4`RbhO3;GoF3w6y%BxsxVu~IoYpv*9 zg63r1VWp1OC^dz7(vU>fLwS6ULR2JTC6>_PL~Kiv@pUiS+8<&jC28I+mOWY$-t?lg ztA!WEU?UO{?awA5L6y+jBy7wjbR~%m0%)7ehAT;Rmc)R$Z`a7q_q`}J6biBiAtWl2 z5xjSjO!(04{5(5|Jj zKrsE0Dt*^)6dS0RzG|@Ei}sF^3XhCpLlqSzz4Tr51k8NlSk0B9Mq~d&;ElGj-1VaJ zfiT;ch80jh+PW?tSXSYq(Q=Ko9b=uPzd@uZ1hBB|$S@Wmy=e^7DRuwwA}t5B!Wg(f z(h|pO4o$rMM`JHZme8@-UQ1};SR`dRAav3MRG zDnE-Qh~u!2XZU18&a<`{73EheZ~8rsg$OF0nuyUiM3tAf3WtKHSsO@S{WMApslBx~ zO)?@JmSkY#4a(5$8dhuYcs5!w1w;2BgdI|)nA7_4Y>XmwgzZ)6eP@c+fx2dDEgE_+ zPGgh6dpV6w28fy<-!@NRIVx`ZP;nX?N@pi)&W+Ye_Cz*AD458m0CZ1BWr4sfKzeZjs~!Z>sApB0d*uw*C~l7H44h zm9$Y5l*>ZIQNWG<$Urnm>{xHLG{YyM= zbkmU>!ZWd~rGRXU3z0_qD3Li-J)LzBs!{Jwx6Bp}C|5I){AC|KMa;BtvR_kB{vz-W?@el+2vwCmA16aWie2am1}V_9Y70+ zN4adg;+QxUhbj}%R5n~8zMhI4W}@!XSeintn})hY+I5I3o@T8nW}ep88l)z2osK%r zNE4?^XYHPjqne4dJT^{^<%Gq_sC0E?%40ng`a=s^)+k#|2s&H_>F9=@xi^ixdg+Tc zkR;$Q!R`qm*U)^(;+U_AyoK*&s@p!Mve;+6*=o;LHrHe-nA+ql7b3T0V9- zIgIPxbl!xcSy4XRRK5uAP06#y*jE<2PziKH-&k*1{LyE0J(Q_2!#m&$xpH4^;*iKP#E zZry;Gm$c>vEA1DHJ>3jQIwndqu>PvkKfLLF3|3@;0d>M*gEja*1_St93fVB_qqIWy z6cD@+nL>ud)j}D>?z2#0O7*UkVT3ofmTKOlD?yxz^({6|6M|M?{lc^7%*mZS7vHd( zM4Ok7TH?5UbEe0|nyX7r?&NvXY&;Y@TL#0X-C z-iIFSf;Y-nX|Ao}b8YEa5kBQOO?R(`e4!=Ch8fM?3`=!RuM`Q434KNlHY+G6Bhl zj?ZVVik_>asAvHjNG+eWrs@nIu?M%S zS__|UfnyuicILAv9Hkvod{pJJXAR_vOV_5WbgGZ4MPrIE5v~haYiJBz$VLmd+0)X6 zs1{9hc_Gg7CJI}`QUHvLaC>2*`bBJD9%A&x7A zZmC?%u}fv=asWj>E8-}Ws+XZy3@F1Dg;ae(Sq`ixO)tagUnYblWjHIC=zN)Uf0t!4 zffp^4qdt!})%PY9Ek}l(xg5Cx(X?FlIlElWXz&W_lDThLGB;K*ZwlOj1X;bpx@rAv znV}UpUP*Hvia^Aatza&6W2ffYXql$2WMidu>~|kJphtSLanaRvxFz~yB@SLv%41;| zZevzLW7|czp)gU}DmDsW&nni(Me;cMqO|kGtsu?fSU&hV;6N^`QKp)x+iLc-(&XZ+ z>bt$KVNRWQVe743%^bmUYPBW!n5VC}7Hr4wU(huyl9V;pOzKZJHo>)6BSLch8l15a zspTwLIXbsoro-3Et$VNQT3G@lt+kW@tecWAKRr`ewVXL}k&k4TLNn6n^$M9K?pCl= zW$cjW*dV1g(N~nW!Ht;fp2H|*LQL@$$3Ba02y$s~OYnNjHqFNQin6e!6V`@5b=T}Jof_20sY|%EDs=SBby0ub|agnxOe!9B@jrFFQB$t@gmZ; zG~_S7>eeIj1I^c#%Oqtt!suyKA^T1u8CDb^;cbY{II? z0D!QUeQT5paKhBlq|L0a()Ernb^n9~k1LdF4ysfEODm|`x+<6I=rbL`lh^%ec#>FQw%G`pJiX@$G7@VyN zEv5ZiaJ?Yu7Z6bk;jMkAv<}v2ETu79ac@yd`xJ0|ndRbb=F5npQhM)YEW=Xz<7FHg zq=;KK?VW&Mxs446IKK@?IZ3_`$M3*R;^VW(5&O={r41bGDnCOdI5VhQa<8CRn-hq@{ zO8GmGdP}Kx2OFz+o&3mD21$EA0dMsVOlsz}jPbL}|+Z zOmnnWb#g!*ETa3RL3GS(IA4|0{MT5f65SP_kza=B+FeL$0lSbsODS>}ju5hM4?pE9 zIl#C}np1;6f7m6buFGzuT9~n0&F5}w&sdl&?n}b=;6e@yeGk4=7^!Fvu91yYy9Zmc z{K-U;pIVOCO?7nrDo*i)K4ahi|x3ni4 zytLnpoleTFf?eWpbmvD6-?+bPs4d*yI^3fYta>(HYjBBJQFj1O|6~3pLM%;cc#ANmY43-$z5K9{d(d7ASVg z60?s^GW)9Uak7<1M(eTAnVq&+HhnlO+x&~x!j{3MEoc2`V-)-eig#1W1;kW0WQM|@ zu-aGWVBiPd#+GQTdIx33;}Tdi<{ex-n3iF_x4pxLP|Q-8^QE7=?K`MrysQcmc7*#8P96lUO@@i(0PEElBG{Gb0sb)LM_Ui$Vo`Q`tejHy9zL5%1f#k->;U+55QWZL-a|fjlM*yj@v#@c%hGZZ&AGM~JuDEg&ccb_2LTT+!TJsJ2n0tf!e>{o`#Yi2F;ls2P z(i>|mAJgCMDCT$FF%(8}I{NvmD_H}=P5y|2?j1w*Xr#X%V^0I5ypNNF6c9@fj$&`Z zZmpxU@8ibXNWZ_2B3}}RE8>g~aOg79-Va!Y!Y3;Hqfg-!@e>Uic^voMM#?eu=4{?XR}?lt7pfqeE#B>5OVV@I%xGl3|{|x=(#{u?a(wGiE3JG;UT7!VFo2_i$6`+$^u2g zvPdiPVhvZkWwiG!E`-a-?Hrp1u;3gk0QmNtls5W2Q@>f&AMjUoK}35vqR0&;t@8!e z3Y={(uuK5c1)R$9!<7qclG1w^u_!*9?7NEZu2~S1;up+W$$4nApc6%1!kpjx0>{`g`r`{!RZ_z5ieu&_6fR}7 z?-Fhn%IMxD`J_D#{t`wk99OT#)Fq9m zR16XLNU%kL!wOth;8z8Fu0V_Y+HtXooXKr$S|s&)6Y2|%s5A>ApkfS6xgi5AqBor;BNp*OAp)&GL4k4wb}Mj7fm;BPvVOhYM9!IDn-)p!=hxVVtBt4>dmUPkWffSW zz>5mJt-xmhkuv9=Z6b$-*tAG$5C6tmbd9Lg{f5+%EI=6*D6m?A*AzG*LCrTeSPy0| ze#K?^PbTX1HLl@S(4wz#%dmn@e2wd%736ml#qkQtxryud74+IoN&D+f+*B>4&flO$ zUQUa@VY&9=_hoCG>Bct!0o3eU77YB8-=daTPIJGtl0Esk6<+kqx42@F>|WIN7A|^5 z-D0EcB!Y~$kc!XT!tri7b^4Ai0C@R3oS>1UzsJ_UoHD+Ljmznk?~%e}mo|LYhCu3Y zTcQhY<98m*>ELaoq2*-%1AEIP2B_bSm9wl;zYjqEkCuMFLcDH6m=)rn4N;>I@7NHB z6yiM_;)p^VwIPlv#BqU;zX3nd{t1)N`=P)HYxN%~mNPcQS%tV@Lwu|d7j1~o6ylN% zaakd**$~$i;wu~CYlZk0z@+rvQkdH|mLC-2t_^WdA%3zUepZNwHpJf);vY7|Zwm3q zhIp(H>`Cizn?30y9d9o&H0%x=Ab*_sFMpi~AAu&44}i!H0AgVQh{y*htEs!grZ;Q$ z#NbuSyFOren&D}V#}1D@9tS**cv|3TiN^_#Gaelt7d)Wc6dT+bQjxy?ePBqvb$PH delta 14494 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 diff --git a/.doctrees/transactron.lib.doctree b/.doctrees/transactron.lib.doctree index d9eb79d82956ec9f3a0ff91c80aaf2f867bbbc71..af9eb3c9119e82958d2a3e4a3881ca52235079a1 100644 GIT binary patch delta 34586 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 delta 34394 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 diff --git a/api.html b/api.html index 8c65877..6d5baee 100644 --- a/api.html +++ b/api.html @@ -169,7 +169,7 @@

transactron

© Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:45 2025-01-14. + Last updated on 11:46 2025-01-17.

diff --git a/development-environment.html b/development-environment.html index 0552a6f..900f04c 100644 --- a/development-environment.html +++ b/development-environment.html @@ -181,7 +181,7 @@

tprof.py

© Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:45 2025-01-14. + Last updated on 11:46 2025-01-17.

diff --git a/genindex.html b/genindex.html index 48f86b8..ffb9a76 100644 --- a/genindex.html +++ b/genindex.html @@ -1897,7 +1897,7 @@

W

© Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:45 2025-01-14. + Last updated on 11:46 2025-01-17.

diff --git a/index.html b/index.html index caadfb5..60aaa8e 100644 --- a/index.html +++ b/index.html @@ -129,7 +129,7 @@

Transactron

© Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:45 2025-01-14. + Last updated on 11:46 2025-01-17.

diff --git a/modules.html b/modules.html index 004b258..a6d488c 100644 --- a/modules.html +++ b/modules.html @@ -155,7 +155,7 @@

transactron

© Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:45 2025-01-14. + Last updated on 11:46 2025-01-17.

diff --git a/py-modindex.html b/py-modindex.html index 28e8910..f17ff94 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -343,7 +343,7 @@

Python Module Index

© Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:45 2025-01-14. + Last updated on 11:46 2025-01-17.

diff --git a/search.html b/search.html index 2c1ae62..d9a8b7d 100644 --- a/search.html +++ b/search.html @@ -91,7 +91,7 @@

© Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:45 2025-01-14. + Last updated on 11:46 2025-01-17.

diff --git a/searchindex.js b/searchindex.js index 0f43056..a160e19 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api", "development-environment", "index", "modules", "transactions", "transactron", "transactron.core", "transactron.lib", "transactron.testing", "transactron.utils", "transactron.utils.amaranth_ext"], "filenames": ["api.md", "development-environment.md", "index.md", "modules.rst", "transactions.md", "transactron.rst", "transactron.core.rst", "transactron.lib.rst", "transactron.testing.rst", "transactron.utils.rst", "transactron.utils.amaranth_ext.rst"], "titles": ["API", "Development environment", "Transactron", "transactron", "Documentation for Transactron", "transactron package", "transactron.core package", "transactron.lib package", "transactron.testing package", "transactron.utils package", "transactron.utils.amaranth_ext package"], "terms": {"packag": [0, 1, 2, 3], "subpackag": [0, 3], "core": [0, 3, 5, 7, 8, 9], "submodul": [0, 3], "bodi": [0, 3, 4, 5, 7, 8], "modul": [0, 1, 3, 4], "kei": [0, 3, 5, 7, 9], "manag": [0, 1, 3, 4, 5, 7, 9], "method": [0, 1, 2, 3, 5, 7, 8, 9, 10], "schedul": [0, 2, 3, 5, 7, 10], "sugar": [0, 3, 5, 10], "tmodul": [0, 3, 4, 5, 7], "transact": [0, 1, 2, 3, 5, 7, 10], "transaction_bas": [0, 3, 5], "content": [0, 3], "lib": [0, 3, 5, 6, 8, 9, 10], "adapt": [0, 3, 4, 5, 8], "alloc": [0, 3, 5], "button": [0, 3, 5], "connector": [0, 3, 5], "depend": [0, 3, 4, 5, 10], "fifo": [0, 3, 4, 5, 6], "log": [0, 1, 3, 5, 9], "metric": [0, 3, 5, 9], "reqr": [0, 3, 5], "simultan": [0, 3, 4, 5, 6], "storag": [0, 3, 5], "transform": [0, 3, 5], "test": [0, 2, 3, 5, 6, 7, 9, 10], "function": [0, 3, 4, 5, 6, 7, 9], "infrastructur": [0, 3, 5], "input_gener": [0, 3, 5], "method_mock": [0, 3, 5], "profil": [0, 1, 3], "testbenchio": [0, 3, 5], "tick_count": [0, 3, 5], "util": [0, 3, 5, 7], "assign": [0, 3, 4, 5, 6], "data_repr": [0, 3, 5], "debug_sign": [0, 3, 5, 6, 7, 8], "depcach": [0, 3, 5], "gen": [0, 3, 5], "idgen": [0, 3, 5], "transactron_help": [0, 3, 5], "graph": [0, 1, 3, 6], "trace": [0, 1, 3], "In": [1, 4, 5, 6, 7, 8, 9, 10], "order": [1, 2, 6, 7, 10], "prepar": [1, 5], "pleas": [1, 4], "follow": [1, 4, 7, 8, 9], "step": [1, 4], "below": [1, 7], "instal": 1, "python": [1, 4, 6, 7, 8, 9], "3": [1, 5, 6, 9], "11": 1, "interpret": [1, 7, 9], "pip": 1, "option": [1, 4, 5, 6, 7, 8, 9, 10], "creat": [1, 4, 6, 7, 8, 9, 10], "virtual": 1, "python3": 1, "m": [1, 4, 6, 7, 10], "venv": 1, "project": [1, 4, 6], "directori": 1, "activ": [1, 6, 7, 8, 10], "gener": [1, 5, 6, 7, 8, 9, 10], "bin": 1, "all": [1, 4, 5, 6, 7, 8, 9, 10], "requir": [1, 4, 5, 6], "librari": [1, 2, 7], "pip3": 1, "dev": 1, "precommit": 1, "hook": [1, 5, 7], "pre": 1, "commit": 1, "thi": [1, 4, 5, 6, 7, 8, 9, 10], "automat": [1, 8, 9, 10], "linter": 1, "befor": [1, 4, 6, 7], "ar": [1, 4, 5, 6, 7, 8, 9, 10], "pytest": 1, "thing": [1, 4, 7, 9], "know": 1, "To": [1, 7, 9], "speed": 1, "multipl": [1, 4, 6, 7, 8, 9, 10], "worker": 1, "thread": 1, "can": [1, 4, 5, 6, 7, 8, 9, 10], "n": [1, 6, 7, 10], "auto": 1, "onli": [1, 4, 5, 6, 7, 8, 9, 10], "some": [1, 4, 6, 7], "k": [1, 7], "express": [1, 4, 7], "format": [1, 4, 5, 6, 7, 9, 10], "i": [1, 4, 5, 6, 7, 8, 9, 10], "describ": [1, 5, 6, 7, 8], "doc": 1, "abl": [1, 7], "read": [1, 4, 6, 7, 9], "standard": [1, 7, 8, 10], "output": [1, 6, 7, 8, 10], "even": [1, 4, 6, 7], "success": [1, 8], "": [1, 4, 5, 6, 7, 9, 10], "custom": [1, 7, 10], "transactron": 1, "file": [1, 9], "readabl": [1, 7], "gtkwave": [1, 9], "The": [1, 2, 5, 6, 7, 8, 9, 10], "save": [1, 5, 7, 9], "__traces__": 1, "execut": [1, 4, 5, 6, 7, 8], "name": [1, 4, 5, 6, 7, 8, 9, 10], "__profiles__": 1, "filter": [1, 7], "allow": [1, 4, 6, 7, 8, 10], "contain": [1, 4, 6, 7, 9, 10], "number": [1, 5, 6, 7, 8, 9, 10], "which": [1, 4, 5, 6, 7, 8, 9, 10], "ci": 1, "also": [1, 4, 7, 8], "intend": [1, 6, 10], "local": 1, "thei": [1, 4, 6, 7], "check": [1, 6, 9], "code": [1, 4, 5, 7, 9], "type": [1, 6, 7, 8, 9, 10], "It": [1, 4, 5, 6, 7, 8, 9, 10], "should": [1, 4, 6, 7, 8, 9, 10], "subcommand": 1, "filenam": 1, "main": 1, "avail": [1, 7], "reformat": 1, "black": 1, "check_format": 1, "verifi": 1, "flake8": 1, "check_typ": 1, "pyright": 1, "same": [1, 4, 6, 7, 8, 9, 10], "when": [1, 4, 6, 7, 8, 9, 10], "confront": 1, "would": [1, 4, 7, 9], "messag": [1, 7], "from": [1, 4, 5, 6, 7, 8, 9, 10], "you": [1, 6, 7, 10], "mai": [1, 7, 9], "diff": 1, "wai": [1, 4, 6, 7, 9, 10], "displai": 1, "chang": [1, 4, 7, 8, 9, 10], "appli": [1, 5, 6, 8], "chose": 1, "help": [1, 7], "locat": [1, 5, 6, 7, 9], "issu": [1, 4, 7], "document": [1, 2], "sphinx": 1, "html": 1, "build": [1, 7], "process": [1, 7, 8], "present": [1, 4, 7, 9], "them": [1, 4, 6, 7, 9], "run_test": 1, "__profile__": 1, "profile_fil": 1, "json": [1, 9], "inform": [1, 5, 7, 9], "about": [1, 5, 7, 9], "default": [1, 4, 5, 6, 7, 9, 10], "For": [1, 4, 5, 6, 7, 9, 10], "one": [1, 4, 6, 7, 8, 9, 10], "mode": 1, "column": 1, "have": [1, 4, 6, 7, 8, 9, 10], "mean": [1, 6, 7], "question": [1, 4], "togeth": [1, 4, 6], "differenti": 1, "between": [1, 4, 6, 7, 8, 9, 10], "ident": [1, 7, 10], "differ": [1, 6, 7, 8, 9, 10], "sourc": [1, 5, 6, 7], "line": 1, "where": [1, 4, 6, 7, 8, 9], "wa": [1, 4, 5, 6, 7, 8, 9], "declar": [1, 4, 7, 8], "further": [1, 7], "disambigu": 1, "lock": [1, 4, 5, 7], "show": 1, "cycl": [1, 4, 5, 6, 7, 8], "caller": [1, 4, 5, 6, 7], "call": [1, 4, 5, 6, 7, 8, 9, 10], "fals": [1, 4, 5, 7, 9, 10], "condit": [1, 4, 5, 6, 7], "could": [1, 4, 7, 8], "forc": 1, "wait": [1, 6, 8], "anoth": [1, 4, 6, 7, 8], "conflict": [1, 2, 5, 6], "given": [1, 4, 5, 6, 7, 8, 9, 10], "produc": [1, 6], "each": [1, 4, 5, 6, 7, 8, 9, 10], "tree": [1, 5, 7], "counter": [1, 7], "root": [1, 5], "count": [1, 6, 7, 10], "an": [1, 4, 5, 6, 7, 8, 9, 10], "invert": 1, "leav": 1, "children": 1, "node": 1, "field": [1, 4, 5, 6, 7, 9], "how": [1, 6, 7], "mani": [1, 4, 5, 6, 7, 8, 9], "respons": [1, 6, 7], "other": [1, 4, 5, 6, 7, 10], "sort": [1, 7, 10], "select": [1, 7, 10], "row": 1, "regular": 1, "loc": 1, "develop": [2, 7], "environ": 2, "set": [2, 6, 7, 8, 9, 10], "up": [2, 7, 9], "run": [2, 4, 5, 6, 7, 8, 10], "us": [2, 4, 6, 7, 8, 9, 10], "script": 2, "lint": 2, "sh": 2, "build_doc": 2, "tprof": 2, "py": [2, 8], "introduct": 2, "basic": [2, 7], "usag": 2, "implement": [2, 7, 9, 10], "argument": [2, 6, 7, 8, 9, 10], "pass": [2, 6, 7, 8, 9], "convent": 2, "definit": [2, 6, 8], "return": [2, 6, 7, 9, 10], "valu": [2, 5, 6, 7, 8, 9, 10], "readi": [2, 5, 6, 7, 10], "signal": [2, 5, 6, 7, 8, 9, 10], "advanc": [2, 8], "concept": 2, "special": [2, 7], "combin": [2, 6, 7, 8, 9], "domain": [2, 6], "nest": [2, 7], "api": 2, "amaranth": [4, 5, 6, 7, 8, 9, 10], "connect": [4, 6, 7, 10], "complex": [4, 7, 10], "inspir": 4, "bluespec": 4, "program": 4, "languag": 4, "see": [4, 6, 7], "wiki": 4, "compil": 4, "idea": 4, "interfac": [4, 6, 7], "hardwar": [4, 7], "A": [4, 5, 6, 7, 8, 9], "state": [4, 6, 7, 8], "oper": [4, 6, 7, 10], "perform": [4, 6, 7, 8, 9, 10], "singl": [4, 6, 7, 8, 9], "clock": [4, 5, 6, 7, 8], "atom": 4, "either": [4, 6, 7, 8, 9, 10], "its": [4, 6, 7, 8, 9, 10], "entrieti": 4, "doe": [4, 10], "defin": [4, 6, 7, 8, 9, 10], "via": [4, 6, 7], "directli": [4, 6], "link": 4, "indirectli": [4, 6], "If": [4, 5, 6, 7, 8, 9, 10], "try": 4, "access": [4, 7, 8, 9], "coordin": 4, "system": [4, 9], "avoid": 4, "commun": 4, "both": [4, 6, 7, 9, 10], "direct": [4, 5, 6, 7], "back": 4, "structur": [4, 5, 6, 7, 9], "record": [4, 6, 7, 9, 10], "simplest": 4, "part": [4, 6, 7], "elaborat": [4, 5, 6, 7, 8, 9], "block": [4, 6, 7], "class": [4, 5, 6, 7, 8, 9, 10], "myth": 4, "def": [4, 6], "elabor": 4, "self": [4, 8], "platform": [4, 5], "includ": [4, 6, 7, 9, 10], "like": [4, 6, 7, 8], "d": [4, 6, 7, 9, 10], "comb": [4, 6, 10], "sig1": 4, "eq": [4, 6, 10], "expr1": 4, "sync": [4, 6], "sig2": 4, "expr2": 4, "result": [4, 7, 8, 9, 10], "arg_expr": 4, "work": [4, 6, 7, 8], "analog": 4, "multiplex": 4, "rememb": [4, 5], "statement": [4, 6, 9], "insid": [4, 6, 7], "alwai": [4, 6, 7, 8, 10], "onc": [4, 6, 7, 10], "As": [4, 7], "typic": [4, 6, 7], "constructor": [4, 6, 9], "myotherth": 4, "__init__": [4, 5, 6, 7, 8, 9, 10], "o": [4, 6, 7, 10], "paramet": [4, 6, 7, 8, 9, 10], "layout": [4, 6, 7, 8, 9], "my_method": [4, 6], "input_layout": 4, "output_layout": 4, "need": [4, 6, 7, 8, 10], "instead": [4, 5, 6, 7, 8, 10], "def_method": [4, 6], "_": [4, 6], "arg": [4, 5, 6, 7, 8, 9, 10], "other_method": 4, "ret_expr": 4, "techniqu": 4, "abov": 4, "conveni": [4, 6, 7], "syntax": [4, 6, 10], "just": [4, 7], "particular": 4, "unnam": 4, "usual": [4, 7, 8], "exampl": [4, 6, 7, 8, 10], "around": [4, 10], "entir": 4, "sometim": 4, "might": [4, 5, 7], "two": [4, 6, 7, 9], "altern": [4, 6, 7], "decid": [4, 8], "best": 4, "easi": [4, 7], "import": 4, "ask": 4, "yourself": 4, "someth": [4, 10], "independ": [4, 7], "so": [4, 5, 6, 7, 10], "mayb": 4, "Or": 4, "extern": [4, 6], "doubt": 4, "prefer": 4, "becaus": [4, 5, 6, 7, 8], "noth": 4, "els": [4, 6], "Such": [4, 7], "adaptertran": [4, 7], "though": 4, "case": [4, 6, 7, 8, 9, 10], "cleaner": 4, "suppos": 4, "we": [4, 7, 8], "input": [4, 6, 7, 8, 10], "foo": [4, 7], "1": [4, 5, 6, 7, 8, 9, 10], "bar": [4, 7], "32": [4, 7], "cleanest": 4, "recommend": 4, "keyword": [4, 6, 7, 8, 9], "foo_expr": 4, "bar_expr": 4, "dict": [4, 5, 6, 7, 8, 9, 10], "final": [4, 6], "rec": 4, "recurs": [4, 5, 7, 9], "take": [4, 6, 7, 8, 9], "layout2": 4, "foobar": 4, "baz": 4, "42": 4, "method2": [4, 7], "One": [4, 7, 10], "baz_expr": 4, "receiv": [4, 6, 7, 8], "method3": 4, "resourc": [4, 6], "request": [4, 5, 6, 7, 8, 10], "bit": [4, 6, 7, 9, 10], "expr": 4, "similar": [4, 6, 7, 10], "mechan": [4, 7], "intern": [4, 6, 7], "risk": [4, 7], "introduc": 4, "loop": [4, 6], "certain": 4, "occas": 4, "possibl": [4, 7, 8, 9], "relax": 4, "e": [4, 7, 8, 9, 10], "g": [4, 7, 8, 9, 10], "framework": 4, "design": [4, 5], "facilit": 4, "re": [4, 6], "provid": [4, 6, 7, 8, 9], "most": [4, 6, 7], "ones": [4, 10], "connecttran": [4, 7], "queue": [4, 7], "write": [4, 6, 7], "plain": [4, 6, 7], "These": 4, "veri": 4, "testbench": [4, 7, 8], "own": [4, 5, 6, 7], "variant": 4, "Its": 4, "role": 4, "improv": 4, "circuit": [4, 6, 7, 9], "omit": [4, 6, 7], "unneed": 4, "done": [4, 6, 7, 8], "ad": [4, 6, 7, 8, 9, 10], "addit": [4, 9], "combinatori": 4, "av_comb": [4, 6], "top_comb": [4, 6, 10], "under": [4, 5, 6], "avoidedif": [4, 6], "guard": [4, 6, 7, 8], "grant": [4, 5, 6, 7, 10], "therefor": 4, "don": [4, 6, 8], "t": [4, 6, 7, 8, 9], "induc": 4, "often": 4, "safe": [4, 9], "do": [4, 6, 7, 8, 10], "switch": [4, 6, 7, 10], "etc": [4, 8], "logic": 4, "belong": [4, 7], "aren": [4, 7], "actual": 4, "were": [4, 8], "manual": [4, 8, 10], "move": [4, 7], "top": [4, 6, 9], "level": [4, 6, 7, 8, 9], "caveat": 4, "normal": [4, 7, 8], "cannot": [4, 6, 7, 8], "exist": [4, 7, 9], "forward": [4, 6, 7], "place": [4, 6, 7], "handl": [4, 6], "make": [4, 5, 8], "consid": [4, 6, 7], "object": [4, 5, 7, 8, 9], "schedule_befor": [4, 6], "after": [4, 7, 10], "first": [4, 6, 7, 8, 9, 10], "first_t_or_m": 4, "other_t_or_m": 4, "lift": 4, "first_m": 4, "other_t": 4, "t1": 4, "t2": 4, "made": 4, "situat": [4, 6], "mutual": [4, 6, 7], "exclus": [4, 6, 7, 10], "similarli": [4, 7], "add_conflict": [4, 6], "ha": [4, 5, 6, 7, 10], "prioriti": [4, 6, 7, 10], "left": [4, 6, 7, 10], "right": [4, 6, 10], "undefin": [4, 6, 7], "add": [4, 6, 7, 8, 9, 10], "other_m": 4, "come": 4, "cost": 4, "increas": [4, 7], "size": [4, 7, 9], "delai": [4, 8], "featur": 4, "consider": 4, "parent": 4, "convers": 4, "true": [4, 5, 6, 7, 8, 9, 10], "doesn": 4, "limit": [4, 7], "impli": 4, "amaranth_ext": [5, 9], "shifter": [5, 9], "extract": 5, "base": [5, 6, 7, 8, 9, 10], "intflag": 5, "IN": 5, "inout": 5, "none": [5, 6, 7, 8, 9, 10], "0": [5, 6, 7, 8, 10], "out": [5, 6, 7, 10], "2": [5, 6, 7, 9], "__new__": 5, "protocol": [5, 6, 7], "kwarg": [5, 6, 7, 8, 9, 10], "str": [5, 6, 7, 8, 9, 10], "properti": [5, 6, 8], "owned_nam": 5, "owner": [5, 6], "ownershipgraph": 5, "dump": 5, "fp": 5, "liter": [5, 10], "dot": [5, 7], "elk": 5, "mermaid": 5, "dump_dot": 5, "int": [5, 6, 7, 8, 9, 10], "indent": [5, 7, 9], "dump_elk": 5, "dump_mermaid": 5, "get_hier_nam": 5, "obj": [5, 9], "get": [5, 6, 7, 8, 9, 10], "hierarch": 5, "rais": [5, 7, 8, 9], "keyerror": [5, 7, 9], "yet": 5, "get_nam": 5, "insert_edg": 5, "fr": 5, "insert_nod": 5, "mermaid_direct": 5, "prune": 5, "mark": 5, "empti": [5, 7, 10], "subgraph": 5, "remember_field": 5, "owner_id": 5, "methodsampl": 5, "runtim": [5, 7, 10], "control": [5, 7, 8, 10], "attribut": [5, 6, 7, 9, 10], "bool": [5, 6, 7, 8, 9, 10], "simul": [5, 6, 7, 8], "restor": 5, "analysi": 5, "tool": 5, "data": [5, 6, 7, 8, 9, 10], "refer": [5, 9], "uniqu": [5, 7], "id": 5, "transactions_and_method": 5, "profileinfo": 5, "index": [5, 6, 7, 10], "list": [5, 6, 7, 8, 9, 10], "cycleprofil": 5, "factori": [5, 7, 9], "analyze_method": 5, "runstatnod": 5, "analyze_transact": 5, "static": [5, 6, 7, 8, 9, 10], "decod": [5, 9, 10], "file_nam": [5, 9], "encod": [5, 7, 9, 10], "classmethod": [5, 7, 9], "from_dict": [5, 7, 9], "kv": [5, 7, 9], "union": [5, 7, 8, 9, 10], "float": [5, 7, 8, 9], "infer_miss": [5, 7, 9], "from_json": [5, 7, 9], "byte": [5, 7, 9], "bytearrai": [5, 7, 9], "parse_float": [5, 7, 9], "parse_int": [5, 7, 9], "parse_const": [5, 7, 9], "kw": [5, 7, 9], "schema": [5, 7, 9], "exclud": [5, 7, 9], "context": [5, 6, 7, 8, 9], "load_onli": [5, 7, 9], "dump_onli": [5, 7, 9], "partial": [5, 7, 9], "unknown": [5, 7, 9], "schemaf": [5, 7, 9], "to_dict": [5, 7, 9], "encode_json": [5, 7, 9], "to_json": [5, 7, 9], "skipkei": [5, 7, 9], "ensure_ascii": [5, 7, 9], "check_circular": [5, 7, 9], "allow_nan": [5, 7, 9], "separ": [5, 6, 7, 9], "tupl": [5, 6, 7, 8, 9, 10], "callabl": [5, 6, 7, 8, 9], "sort_kei": [5, 7, 9], "profiledata": [5, 9], "individu": 5, "method_par": 5, "transactions_by_method": 5, "transaction_conflict": 5, "transaction_manag": [5, 6, 8], "transactionmanag": [5, 6, 8], "src_loc": [5, 6, 7, 9], "srcloc": [5, 6, 7], "is_transact": 5, "profilesampl": 5, "transactionsampl": 5, "runstat": 5, "collect": [5, 6, 7, 8, 9, 10], "statist": 5, "disabl": [5, 7, 8], "did": [5, 8], "info": [5, 7], "summar": 5, "stat": 5, "runnabl": [5, 6], "tracingenabl": 5, "tracingfrag": 5, "fragment": [5, 6], "haselabor": [5, 6, 7, 8, 10], "origin": [5, 7], "lose": 5, "too": [5, 7], "difficult": 5, "exact": 5, "copi": 5, "relev": 5, "copyright": 5, "subfrag": 5, "hdl": [5, 6, 7, 8, 9, 10], "_ir": [5, 9], "tracingfragmenttransform": 5, "fragmenttransform": 5, "on_frag": 5, "tracinginst": 5, "instanc": [5, 6, 7, 9, 10], "adapterbodyparam": [6, 7, 8], "typeddict": 6, "notrequir": 6, "sequenc": [6, 7, 9, 10], "view": [6, 7, 9, 10], "structlayout": [6, 7, 8, 9], "_ast": [6, 7, 8, 9, 10], "enum": [6, 7, 8, 9, 10], "valuecast": [6, 7, 8, 9, 10], "abc": [6, 7, 8, 9, 10], "map": [6, 7, 8, 9, 10], "assignarg": [6, 9], "nonexclus": [6, 7], "single_cal": [6, 7], "transactionbas": 6, "unpack": [6, 7, 8], "bodyparam": 6, "iter": [6, 7, 8, 9, 10], "ctrl_path": 6, "ctrlpath": 6, "path": [6, 7], "def_count": 6, "classvar": 6, "def_ord": 6, "method_cal": 6, "defaultdict": 6, "method_us": 6, "peek": [6, 7], "stack": [6, 7, 9], "validate_argu": [6, 7, 8], "transactionmanagerkei": 6, "simplekei": [6, 7, 8, 9], "transactioncompon": 6, "transactionmodul": 6, "compon": [6, 7], "transactroncompon": 6, "wrapper": [6, 7], "support": [6, 7, 10], "wrap": [6, 10], "synthesi": 6, "port": [6, 7, 9, 10], "extend": [6, 10], "abstractcompon": 6, "dependency_manag": [6, 8], "dependencymanag": [6, 7, 8, 9], "new": [6, 7, 9, 10], "care": [6, 7], "never": 6, "cc_schedul": 6, "methodmap": [6, 7], "tbodi": 6, "_dsl": 6, "eager_deterministic_cc_schedul": 6, "_rec": [6, 7, 9, 10], "signalbundl": [6, 7, 9, 10], "print_info": 6, "cgr": 6, "porder": 6, "cc": 6, "method_map": 6, "visual_graph": 6, "store": [6, 7, 8, 9], "dependencycontext": [6, 9], "serv": [6, 7], "simultena": 6, "rest": 6, "must": [6, 7, 9, 10], "non": [6, 7, 8], "except": [6, 8, 9], "behavior": [6, 7, 9], "combination": 6, "transfer": [6, 7], "time": [6, 7, 8], "data_out": [6, 7], "data_in": [6, 7], "effect": [6, 7, 8], "current": 6, "methodstruct": [6, 7], "shape": [6, 7, 9, 10], "shapecast": [6, 7, 9, 10], "rang": [6, 7, 8, 9, 10], "forwardref": [6, 8, 9], "shapelik": [6, 7, 8, 9], "layoutlist": [6, 7, 8, 9], "hint": 6, "infer": 6, "variabl": [6, 10], "frame": [6, 7], "deep": [6, 7], "taken": [6, 7], "const": [6, 7, 8, 9], "d1": [6, 7], "d0": 6, "action": [6, 7, 9], "indic": [6, 7, 10], "By": [6, 7], "combinationi": 6, "valuelik": [6, 7, 8, 10], "whether": [6, 7, 10], "those": 6, "instanti": 6, "accept": [6, 7, 9], "third": [6, 7], "vector": [6, 7, 10], "whose": 6, "th": [6, 7, 10], "happen": [6, 8], "still": [6, 7], "error": [6, 7, 9], "thrown": 6, "my_sum_method": 6, "arg1": 6, "8": [6, 7], "arg2": 6, "sum": [6, 7], "16": 6, "layout_in": [6, 7], "layout_out": [6, 7], "construct": [6, 7], "blueprint": 6, "freshli": 6, "proxi": 6, "methoddir": 6, "gr": 6, "transactiongraph": 6, "transactiongraphcc": 6, "priorityord": 6, "eager": 6, "subsystem": [6, 10], "isn": 6, "fair": 6, "start": [6, 7, 10], "lowest": 6, "highest": [6, 10], "concurr": 6, "arbitr": [6, 10], "agent": [6, 10], "vertic": 6, "edg": [6, 7, 8], "linear": 6, "consist": 6, "constraint": 6, "trivial_roundrobin_cc_schedul": 6, "simpl": [6, 7, 9, 10], "round": [6, 9, 10], "robin": [6, 10], "mainli": 6, "purpos": [6, 7], "decor": [6, 8], "eleg": 6, "correspond": [6, 7, 8, 10], "dictionari": [6, 7], "go": 6, "detail": [6, 7], "lambda": [6, 8], "over": [6, 7, 8], "easili": [6, 7], "expect": 6, "least": [6, 8, 10], "equival": [6, 7, 8, 10], "len": [6, 7, 10], "form": [6, 7], "three": 6, "parametr": 6, "my_filter_read_method": 6, "ready_list": 6, "head": [6, 7], "modulelik": [6, 7, 10], "everi": [6, 7, 8], "reduc": 6, "amount": [6, 8, 10], "useless": 6, "multplex": 6, "due": [6, 7], "while": [6, 8], "unguard": 6, "length": [6, 7, 8, 9, 10], "keep": 6, "relat": [6, 7, 9], "synchron": [6, 7, 8], "cond": [6, 7], "pattern": 6, "elif": 6, "fsm": 6, "init": [6, 7], "next": [6, 8, 10], "noreturn": 6, "repres": [6, 7], "task": 6, "regularli": 6, "last": [6, 7, 10], "met": 6, "explicit": 6, "implicit": 6, "aris": 6, "pair": [6, 7, 10], "want": [6, 8, 10], "priorit": 6, "_t": 6, "end": [6, 7, 10], "regist": [6, 7, 9], "reason": 6, "common": [6, 7, 9], "memori": [6, 7], "independent_list": 6, "relationbas": 6, "without": [6, 7, 9], "simultaneous_altern": 6, "howev": [6, 7], "simultaneous_list": 6, "adapterbas": [7, 8], "mock": [7, 8], "en": [7, 8], "valid": [7, 8, 9, 10], "descript": [7, 9], "with_validate_argu": [7, 8], "update_arg": 7, "ifac": 7, "expos": [7, 9], "priorityencoderalloc": 7, "superscalar": 7, "identifi": 7, "dealloc": 7, "continu": [7, 8], "fresh": 7, "littl": 7, "free": 7, "entri": [7, 9, 10], "total": 7, "mask": [7, 10], "treat": 7, "reset": 7, "clickin": 7, "click": 7, "interact": 7, "fpga": 7, "On": 7, "rise": 7, "btn": 7, "enabl": [7, 8, 9], "dat": 7, "retriev": 7, "clickout": 7, "led": 7, "put": 7, "flow": 7, "revers": 7, "possibli": 7, "rev_layout": 7, "second": [7, 10], "vice": 7, "versa": 7, "compat": 7, "method1": 7, "respect": 7, "full": 7, "fulfil": 7, "depth": 7, "fifo_typ": 7, "syncfifo": 7, "fifotyp": 7, "conform": 7, "overflow": 7, "buffer": [7, 10], "No": 7, "until": [7, 8], "clear": [7, 9], "manytooneconnecttran": 7, "get_result": 7, "put_result": 7, "pipe": 7, "halfwai": 7, "locali": 7, "critic": [7, 8], "cut": 7, "comparison": 7, "clean": 7, "stableselectingnetwork": 7, "network": 7, "group": 7, "consecut": 7, "preserv": 7, "invalid": [7, 10], "divid": 7, "conquer": 7, "algorithm": 7, "alreadi": [7, 9, 10], "properli": 7, "v1": 7, "b": 7, "v2": 7, "c": [7, 8], "now": 7, "shift": [7, 10], "merg": 7, "v": 7, "thu": 7, "log_2": 7, "dependencykei": [7, 9], "u": [7, 9], "concret": [7, 9], "frozen": [7, 9], "lock_on_get": [7, 9], "specifi": [7, 9], "get_depend": [7, 9], "cach": [7, 9], "subsequ": [7, 9], "empty_valid": [7, 9], "ani": [7, 8, 9, 10], "caus": [7, 9], "abstract": [7, 9], "add_depend": [7, 9], "give": [7, 9], "kind": [7, 9], "track": [7, 9], "across": [7, 9], "multpl": [7, 9], "get_optional_depend": [7, 9], "gettabl": [7, 9], "otherwis": [7, 9, 10], "listkei": [7, 9], "dependeci": [7, 9], "more": [7, 8, 9, 10], "than": [7, 9, 10], "default_valu": [7, 9], "unifierkei": 7, "unifi": 7, "wish": 7, "basicfifo": 7, "element": 7, "front": 7, "delet": 7, "semaphor": 7, "max_count": 7, "widefifo": 7, "per": 7, "denot": 7, "maximum": 7, "insert": 7, "remov": 7, "arraylayout": 7, "less": [7, 10], "enough": 7, "slot": 7, "read_width": 7, "write_width": 7, "max": 7, "written": 7, "assum": [7, 9], "equal": [7, 10], "hardwarelogg": 7, "intuit": 7, "logger": 7, "softwar": 7, "anywher": 7, "parallel": 7, "natur": [7, 10], "trigger": [7, 8, 9], "shall": 7, "report": 7, "evalu": [7, 8], "print": 7, "dure": [7, 8], "arbitrari": 7, "exactli": 7, "string": [7, 8], "organ": 7, "namespac": 7, "hierarchi": 7, "period": 7, "much": 7, "frontend": 7, "upper": 7, "icach": 7, "bpu": 7, "sub": 7, "There": 7, "backend": 7, "fu": 7, "jumpbranch": 7, "assert": [7, 8, 10], "src_loc_at": 7, "find": 7, "bug": 7, "hard": 7, "detect": 7, "termin": 7, "turn": 7, "warn": 7, "board": 7, "debug": [7, 9], "sever": 7, "semant": 7, "server": 7, "pep": 7, "3101": 7, "look": 7, "fail": 7, "logkei": 7, "logrecord": 7, "loglevel": 7, "alia": 7, "logrecordinfo": [7, 9], "event": 7, "being": [7, 9, 10], "logger_nam": [7, 9], "format_str": [7, 9], "agnost": 7, "serial": 7, "outsid": 7, "templat": 7, "get_log_record": 7, "namespace_regexp": [7, 8], "bigger": 7, "minimum": 7, "regexp": 7, "get_trigger_bit": 7, "high": [7, 10], "whenev": 7, "fifolatencymeasur": 7, "measur": 7, "durat": 7, "latenc": 7, "finish": 7, "exponenti": 7, "histogram": 7, "fully_qualified_nam": 7, "slots_numb": 7, "max_lat": 7, "fulli": 7, "qualifi": 7, "human": 7, "width": [7, 9, 10], "bucket": 7, "metrics_en": 7, "previou": 7, "stop": 7, "oldest": 7, "hardwaremetricsmanag": 7, "compos": 7, "get_metr": 7, "hwmetric": 7, "get_register_valu": 7, "metric_nam": 7, "reg_nam": 7, "hold": 7, "load": [7, 9], "min": 7, "hwcounter": 7, "width_bit": 7, "incr": 7, "hwexphistogram": 7, "distribut": 7, "sampl": [7, 8], "through": 7, "observ": 7, "configur": 7, "5": [7, 8], "4": [7, 9], "inf": 7, "addition": 7, "bucket_count": 7, "sample_width": 7, "registers_width": 7, "max_valu": 7, "calcul": 7, "metricmodel": 7, "add_regist": 7, "reg": [7, 9], "hwmetricregist": 7, "inherit": 7, "initi": 7, "hwmetricsenabledkei": 7, "theirs": 7, "synthes": 7, "compris": 7, "dedic": 7, "specif": 7, "determin": [7, 9], "user": 7, "join": 7, "metricregistermodel": 7, "associ": 7, "fundament": 7, "singular": 7, "among": 7, "reman": 7, "brief": 7, "taggedcount": 7, "tag": 7, "At": 7, "dynam": [7, 10], "integ": [7, 8, 9], "neg": [7, 8, 9], "ok": 7, "hot": [7, 10], "optim": 7, "tag_width": 7, "one_hot": 7, "underli": 7, "taggedlatencymeasur": 7, "argumentstoresultszipp": 7, "zip": 7, "calle": 7, "asymmetri": 7, "long": 7, "correctli": 7, "rate": 7, "reach": [7, 10], "capac": 7, "topologi": 7, "peek_arg": 7, "write_arg": 7, "args_layout": 7, "write_result": 7, "results_layout": 7, "latest": 7, "client": 7, "somethig": 7, "deseri": 7, "proper": 7, "serialize_in": 7, "serialized_req_method": 7, "serialize_out": 7, "serialized_resp_method": 7, "port_count": 7, "resist": 7, "pipelin": 7, "nonblock": 7, "overlap": 7, "branch": 7, "boolean": 7, "catch": 7, "negat": [7, 9], "influenc": 7, "cond1": 7, "cond2": 7, "asyncmemorybank": 7, "asynchron": 7, "granular": 7, "addr": 7, "data_layout": [7, 9], "address": 7, "appropri": 7, "elem_count": [7, 8], "read_port": 7, "write_port": 7, "memory_typ": 7, "amaranth_typ": 7, "abstractmemoryconstructor": 7, "whole": 7, "split": 7, "contentaddressablememori": 7, "addres": 7, "short": 7, "cam": 7, "predefin": [7, 8], "fed": 7, "compar": 7, "hit": 7, "push": 7, "behaviour": 7, "nondestruct": 7, "updat": [7, 10], "address_layout": 7, "entries_numb": 7, "layoutlik": 7, "memorybank": 7, "read_req": 7, "read_resp": 7, "transpar": 7, "cattran": 7, "concaten": 7, "src1": 7, "src2": 7, "dst": 7, "collector": 7, "target": 7, "method_list": 7, "connectandmaptran": 7, "behav": 7, "modifi": 7, "i_fun": 7, "recorddict": 7, "o_fun": 7, "methodfilt": 7, "zero": [7, 10], "desir": 7, "use_condit": 7, "drawback": 7, "simultaneu": 7, "bidirect": 7, "i_transform": 7, "o_transform": 7, "unmodifi": 7, "methodproduct": 7, "product": 7, "comput": [7, 9], "methodtryproduct": 7, "tri": 7, "succeed": [7, 8], "data_const_to_dict": 8, "pysimsimul": 8, "max_cycl": 8, "100000": 8, "add_transaction_modul": 8, "traces_fil": 8, "clk_period": 8, "1e": 8, "06": 8, "indefinit": 8, "simpletestcircuit": 8, "_t_haselabor": 8, "dut": 8, "testcasewithsimul": 8, "add_mock": 8, "sim": 8, "val": [8, 9], "methodmock": 8, "fixture_initialize_testing_env": 8, "async": 8, "random_wait": 8, "simulatorcontext": 8, "max_cycle_cnt": 8, "min_cycle_cnt": 8, "random": 8, "random_wait_geom": 8, "prob": 8, "till": 8, "probabl": 8, "reinitialize_fixtur": 8, "run_simul": 8, "tick": 8, "cycle_cnt": 8, "opnop": 8, "generate_based_on_layout": 8, "searchstrategi": 8, "recordintdict": 8, "generate_method_input": 8, "generate_nops_in_list": 8, "max_nop": 8, "generate_list": 8, "generate_process_input": 8, "generate_shrinkable_list": 8, "trick": 8, "http": 8, "github": 8, "com": 8, "hypothesiswork": 8, "hypothesi": 8, "blob": 8, "6867da71beae0e4ed004b54b92ef7c74d0722815": 8, "src": 8, "l143": 8, "insert_nop": 8, "draw": 8, "drawfn": 8, "lst": 8, "make_logging_process": 8, "on_error": 8, "parse_logging_level": 8, "pars": 8, "represent": [8, 9, 10], "effect_process": 8, "output_process": 8, "validate_arguments_process": 8, "def_method_mock": 8, "tb_getter": 8, "handler": 8, "invok": 8, "discov": 8, "side": 8, "modif": 8, "sure": 8, "defer": 8, "sinc": 8, "eagerli": 8, "profiler_process": 8, "calltrigg": 8, "call_tri": 8, "problem": 8, "But": 8, "_call": 8, "tbio": 8, "kwdata": 8, "succe": 8, "ticktrigg": 8, "until_all_don": 8, "until_don": 8, "act": 8, "await": 8, "focu": 8, "call_do": 8, "call_init": 8, "call_result": 8, "get_call_result": 8, "testbenchcontext": 8, "get_don": 8, "get_output": 8, "sample_output": 8, "sample_outputs_don": 8, "sample_outputs_until_don": 8, "set_en": 8, "set_input": 8, "tickskei": 8, "make_tick_count_process": 8, "assigntyp": 9, "lh": 9, "rh": 9, "assignfield": 9, "lhs_strict": 9, "rhs_strict": 9, "mismatch": 9, "accord": 9, "explicitli": 9, "castabl": 9, "item": [9, 10], "subfield": 9, "valueerror": 9, "align_down_to_power_of_two": 9, "num": 9, "power": 9, "down": 9, "align": 9, "align_to_power_of_two": 9, "average_dict_of_list": 9, "bits_from_int": 9, "lower": 9, "int_to_sign": 9, "x": 9, "xlen": 9, "convert": 9, "u2": 9, "sign": 9, "layout_subset": 9, "make_hash": 9, "signed_to_int": 9, "auto_debug_sign": 9, "arrai": 9, "gtkw": 9, "dependentcach": 9, "itself": 9, "posit": [9, 10], "cl": 9, "generatedlog": 9, "verilog": 9, "trigger_loc": 9, "signalhandl": 9, "fields_loc": 9, "generationinfo": 9, "variou": 9, "metrics_loc": 9, "metricinfo": 9, "metadata": 9, "metricloc": 9, "transaction_signals_loc": 9, "transactionsignalsloc": 9, "method_signals_loc": 9, "methodsignalsloc": 9, "profile_data": 9, "generate_verilog": 9, "top_nam": 9, "idgener": 9, "async_mock_def_help": 9, "tb": 9, "func": 9, "dataclass_asdict": 9, "def_help": 9, "tp": 9, "extend_layout": 9, "from_method_layout": 9, "get_caller_class_nam": 9, "get_src_loc": 9, "longest_common_prefix": 9, "seq": 9, "make_layout": 9, "method_def_help": 9, "mock_def_help": 9, "silence_mustus": 9, "binari": 10, "low": 10, "graydecod": 10, "grai": 10, "grayencod": 10, "prioritydecod": 10, "priorityencod": 10, "signific": 10, "moduleconnector": 10, "anonym": 10, "multipriorityencod": 10, "extens": 10, "word": 10, "multi": 10, "input_width": 10, "outputs_count": 10, "indici": 10, "ascend": 10, "begin": 10, "build_tre": 10, "in_sig": 10, "start_idx": 10, "prio_encod": 10, "cnt": 10, "one_hot_sing": 10, "idx": 10, "prio": 10, "been": 10, "create_simpl": 10, "hardcod": 10, "onehotswitch": 10, "match": 10, "style": 10, "benefit": 10, "sig": 10, "onehotcas": 10, "0b01": 10, "0b10": 10, "onehotswitchdynam": 10, "signifi": 10, "ringmultipriorityencod": 10, "flexibl": 10, "circular": 10, "inclus": 10, "roundrobin": 10, "greater": 10, "restart": 10, "enableinsert": 10, "deassert": 10, "const_of": 10, "count_leading_zero": 10, "count_trailing_zero": 10, "cyclic_mask": 10, "wide": 10, "flatten_sign": 10, "flatten": 10, "mod_incr": 10, "mod": 10, "popcount": 10, "shape_of": 10, "generic_shift_left": 10, "value1": 10, "value2": 10, "offset": 10, "fill": 10, "space": 10, "shift_left": 10, "rotate_left": 10, "generic_shift_right": 10, "shift_right": 10, "rotate_right": 10, "generic_shift_vec_left": 10, "data1": 10, "_t_valuecast": 10, "data2": 10, "shift_vec_left": 10, "rotate_vec_left": 10, "generic_shift_vec_right": 10, "shift_vec_right": 10, "rotate_vec_right": 10, "rotat": 10, "placehold": 10}, "objects": {"": [[5, 0, 0, "-", "transactron"]], "transactron": [[6, 0, 0, "-", "core"], [5, 0, 0, "-", "graph"], [7, 0, 0, "-", "lib"], [5, 0, 0, "-", "profiler"], [8, 0, 0, "-", "testing"], [5, 0, 0, "-", "tracing"], [9, 0, 0, "-", "utils"]], "transactron.core": [[6, 0, 0, "-", "body"], [6, 0, 0, "-", "keys"], [6, 0, 0, "-", "manager"], [6, 0, 0, "-", "method"], [6, 0, 0, "-", "schedulers"], [6, 0, 0, "-", "sugar"], [6, 0, 0, "-", "tmodule"], [6, 0, 0, "-", "transaction"], [6, 0, 0, "-", "transaction_base"]], "transactron.core.body": [[6, 1, 1, "", "AdapterBodyParams"], [6, 1, 1, "", "Body"], [6, 1, 1, "", "BodyParams"]], "transactron.core.body.AdapterBodyParams": [[6, 2, 1, "", "combiner"], [6, 2, 1, "", "nonexclusive"], [6, 2, 1, "", "single_caller"]], "transactron.core.body.Body": [[6, 3, 1, "", "__init__"], [6, 3, 1, "", "context"], [6, 2, 1, "", "ctrl_path"], [6, 2, 1, "", "def_counter"], [6, 2, 1, "", "def_order"], [6, 3, 1, "", "get"], [6, 2, 1, "", "method_calls"], [6, 2, 1, "", "method_uses"], [6, 3, 1, "", "peek"], [6, 2, 1, "", "stack"]], "transactron.core.body.BodyParams": [[6, 2, 1, "", "combiner"], [6, 2, 1, "", "nonexclusive"], [6, 2, 1, "", "single_caller"], [6, 2, 1, "", "validate_arguments"]], "transactron.core.keys": [[6, 1, 1, "", "TransactionManagerKey"]], "transactron.core.keys.TransactionManagerKey": [[6, 3, 1, "", "__init__"]], "transactron.core.manager": [[6, 1, 1, "", "TransactionComponent"], [6, 1, 1, "", "TransactionManager"], [6, 1, 1, "", "TransactionModule"]], "transactron.core.manager.TransactionComponent": [[6, 3, 1, "", "__init__"]], "transactron.core.manager.TransactionManager": [[6, 3, 1, "", "__init__"], [6, 3, 1, "", "debug_signals"], [6, 3, 1, "", "print_info"], [6, 3, 1, "", "visual_graph"]], "transactron.core.manager.TransactionModule": [[6, 3, 1, "", "__init__"], [6, 3, 1, "", "context"]], "transactron.core.method": [[6, 1, 1, "", "Method"], [6, 1, 1, "", "MethodDir"], [6, 1, 1, "", "Methods"]], "transactron.core.method.Method": [[6, 3, 1, "", "__init__"], [6, 3, 1, "", "body"], [6, 3, 1, "", "debug_signals"], [6, 4, 1, "", "layout_in"], [6, 4, 1, "", "layout_out"], [6, 3, 1, "", "like"], [6, 3, 1, "", "proxy"]], "transactron.core.method.MethodDir": [[6, 2, 1, "", "PROVIDED"], [6, 2, 1, "", "REQUIRED"]], "transactron.core.method.Methods": [[6, 3, 1, "", "__init__"], [6, 3, 1, "", "debug_signals"], [6, 4, 1, "", "layout_in"], [6, 4, 1, "", "layout_out"]], "transactron.core.schedulers": [[6, 5, 1, "", "eager_deterministic_cc_scheduler"], [6, 5, 1, "", "trivial_roundrobin_cc_scheduler"]], "transactron.core.sugar": [[6, 5, 1, "", "def_method"], [6, 5, 1, "", "def_methods"]], "transactron.core.tmodule": [[6, 1, 1, "", "TModule"]], "transactron.core.tmodule.TModule": [[6, 3, 1, "", "AvoidedIf"], [6, 3, 1, "", "Case"], [6, 3, 1, "", "Default"], [6, 3, 1, "", "Elif"], [6, 3, 1, "", "Else"], [6, 3, 1, "", "FSM"], [6, 3, 1, "", "If"], [6, 3, 1, "", "State"], [6, 3, 1, "", "Switch"], [6, 3, 1, "", "__init__"], [6, 4, 1, "", "ctrl_path"], [6, 4, 1, "", "next"]], "transactron.core.transaction": [[6, 1, 1, "", "Transaction"]], "transactron.core.transaction.Transaction": [[6, 3, 1, "", "__init__"], [6, 3, 1, "", "body"], [6, 3, 1, "", "debug_signals"]], "transactron.core.transaction_base": [[6, 1, 1, "", "Priority"], [6, 1, 1, "", "TransactionBase"]], "transactron.core.transaction_base.Priority": [[6, 2, 1, "", "LEFT"], [6, 2, 1, "", "RIGHT"], [6, 2, 1, "", "UNDEFINED"]], "transactron.core.transaction_base.TransactionBase": [[6, 3, 1, "", "__init__"], [6, 3, 1, "", "add_conflict"], [6, 2, 1, "", "independent_list"], [6, 2, 1, "", "relations"], [6, 3, 1, "", "schedule_before"], [6, 3, 1, "", "simultaneous"], [6, 3, 1, "", "simultaneous_alternatives"], [6, 2, 1, "", "simultaneous_list"], [6, 2, 1, "", "src_loc"]], "transactron.graph": [[5, 1, 1, "", "Direction"], [5, 1, 1, "", "Owned"], [5, 1, 1, "", "OwnershipGraph"]], "transactron.graph.Direction": [[5, 2, 1, "", "IN"], [5, 2, 1, "", "INOUT"], [5, 2, 1, "", "NONE"], [5, 2, 1, "", "OUT"], [5, 3, 1, "", "__new__"]], "transactron.graph.Owned": [[5, 3, 1, "", "__init__"], [5, 2, 1, "", "name"], [5, 4, 1, "", "owned_name"], [5, 2, 1, "", "owner"]], "transactron.graph.OwnershipGraph": [[5, 3, 1, "", "__init__"], [5, 3, 1, "", "dump"], [5, 3, 1, "", "dump_dot"], [5, 3, 1, "", "dump_elk"], [5, 3, 1, "", "dump_mermaid"], [5, 3, 1, "", "get_hier_name"], [5, 3, 1, "", "get_name"], [5, 3, 1, "", "insert_edge"], [5, 3, 1, "", "insert_node"], [5, 2, 1, "", "mermaid_direction"], [5, 3, 1, "", "prune"], [5, 3, 1, "", "remember"], [5, 3, 1, "", "remember_field"]], "transactron.lib": [[7, 0, 0, "-", "adapters"], [7, 0, 0, "-", "allocators"], [7, 0, 0, "-", "buttons"], [7, 0, 0, "-", "connectors"], [7, 0, 0, "-", "dependencies"], [7, 0, 0, "-", "fifo"], [7, 0, 0, "-", "logging"], [7, 0, 0, "-", "metrics"], [7, 0, 0, "-", "reqres"], [7, 0, 0, "-", "simultaneous"], [7, 0, 0, "-", "storage"], [7, 0, 0, "-", "transformers"]], "transactron.lib.adapters": [[7, 1, 1, "", "Adapter"], [7, 1, 1, "", "AdapterBase"], [7, 1, 1, "", "AdapterTrans"]], "transactron.lib.adapters.Adapter": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "create"], [7, 3, 1, "", "set"], [7, 3, 1, "", "update_args"]], "transactron.lib.adapters.AdapterBase": [[7, 3, 1, "", "__init__"], [7, 2, 1, "", "data_in"], [7, 2, 1, "", "data_out"], [7, 3, 1, "", "debug_signals"], [7, 2, 1, "", "done"], [7, 2, 1, "", "en"]], "transactron.lib.adapters.AdapterTrans": [[7, 3, 1, "", "__init__"]], "transactron.lib.allocators": [[7, 1, 1, "", "PriorityEncoderAllocator"]], "transactron.lib.allocators.PriorityEncoderAllocator": [[7, 3, 1, "", "__init__"]], "transactron.lib.buttons": [[7, 1, 1, "", "ClickIn"], [7, 1, 1, "", "ClickOut"]], "transactron.lib.buttons.ClickIn": [[7, 3, 1, "", "__init__"]], "transactron.lib.buttons.ClickOut": [[7, 3, 1, "", "__init__"]], "transactron.lib.connectors": [[7, 1, 1, "", "Connect"], [7, 1, 1, "", "ConnectTrans"], [7, 1, 1, "", "FIFO"], [7, 1, 1, "", "Forwarder"], [7, 1, 1, "", "ManyToOneConnectTrans"], [7, 1, 1, "", "Pipe"], [7, 1, 1, "", "StableSelectingNetwork"]], "transactron.lib.connectors.Connect": [[7, 3, 1, "", "__init__"]], "transactron.lib.connectors.ConnectTrans": [[7, 3, 1, "", "__init__"]], "transactron.lib.connectors.FIFO": [[7, 3, 1, "", "__init__"]], "transactron.lib.connectors.Forwarder": [[7, 3, 1, "", "__init__"]], "transactron.lib.connectors.ManyToOneConnectTrans": [[7, 3, 1, "", "__init__"]], "transactron.lib.connectors.Pipe": [[7, 3, 1, "", "__init__"]], "transactron.lib.connectors.StableSelectingNetwork": [[7, 3, 1, "", "__init__"]], "transactron.lib.dependencies": [[7, 1, 1, "", "DependencyKey"], [7, 1, 1, "", "DependencyManager"], [7, 1, 1, "", "ListKey"], [7, 1, 1, "", "SimpleKey"], [7, 1, 1, "", "UnifierKey"]], "transactron.lib.dependencies.DependencyKey": [[7, 2, 1, "", "cache"], [7, 3, 1, "", "combine"], [7, 2, 1, "", "empty_valid"], [7, 2, 1, "", "lock_on_get"]], "transactron.lib.dependencies.DependencyManager": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "add_dependency"], [7, 3, 1, "", "get_dependency"], [7, 3, 1, "", "get_optional_dependency"]], "transactron.lib.dependencies.ListKey": [[7, 3, 1, "", "combine"], [7, 2, 1, "", "empty_valid"]], "transactron.lib.dependencies.SimpleKey": [[7, 3, 1, "", "combine"], [7, 2, 1, "", "default_value"]], "transactron.lib.dependencies.UnifierKey": [[7, 3, 1, "", "combine"], [7, 2, 1, "", "unifier"]], "transactron.lib.fifo": [[7, 1, 1, "", "BasicFifo"], [7, 1, 1, "", "Semaphore"], [7, 1, 1, "", "WideFifo"]], "transactron.lib.fifo.BasicFifo": [[7, 3, 1, "", "__init__"]], "transactron.lib.fifo.Semaphore": [[7, 3, 1, "", "__init__"]], "transactron.lib.fifo.WideFifo": [[7, 3, 1, "", "__init__"]], "transactron.lib.logging": [[7, 1, 1, "", "HardwareLogger"], [7, 1, 1, "", "LogKey"], [7, 2, 1, "", "LogLevel"], [7, 1, 1, "", "LogRecord"], [7, 1, 1, "", "LogRecordInfo"], [7, 5, 1, "", "get_log_records"], [7, 5, 1, "", "get_trigger_bit"]], "transactron.lib.logging.HardwareLogger": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "assertion"], [7, 3, 1, "", "debug"], [7, 3, 1, "", "error"], [7, 3, 1, "", "info"], [7, 3, 1, "", "log"], [7, 3, 1, "", "warning"]], "transactron.lib.logging.LogKey": [[7, 3, 1, "", "__init__"]], "transactron.lib.logging.LogRecord": [[7, 3, 1, "", "__init__"], [7, 2, 1, "", "fields"], [7, 2, 1, "", "trigger"]], "transactron.lib.logging.LogRecordInfo": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "format"], [7, 2, 1, "", "format_str"], [7, 3, 1, "", "from_dict"], [7, 3, 1, "", "from_json"], [7, 2, 1, "", "level"], [7, 2, 1, "", "location"], [7, 2, 1, "", "logger_name"], [7, 3, 1, "", "schema"], [7, 3, 1, "", "to_dict"], [7, 3, 1, "", "to_json"]], "transactron.lib.metrics": [[7, 1, 1, "", "FIFOLatencyMeasurer"], [7, 1, 1, "", "HardwareMetricsManager"], [7, 1, 1, "", "HwCounter"], [7, 1, 1, "", "HwExpHistogram"], [7, 1, 1, "", "HwMetric"], [7, 1, 1, "", "HwMetricsEnabledKey"], [7, 1, 1, "", "MetricModel"], [7, 1, 1, "", "MetricRegisterModel"], [7, 1, 1, "", "TaggedCounter"], [7, 1, 1, "", "TaggedLatencyMeasurer"]], "transactron.lib.metrics.FIFOLatencyMeasurer": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "metrics_enabled"], [7, 3, 1, "", "start"], [7, 3, 1, "", "stop"]], "transactron.lib.metrics.HardwareMetricsManager": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "debug_signals"], [7, 3, 1, "", "get_metrics"], [7, 3, 1, "", "get_register_value"]], "transactron.lib.metrics.HwCounter": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "incr"]], "transactron.lib.metrics.HwExpHistogram": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "add"]], "transactron.lib.metrics.HwMetric": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "add_registers"], [7, 3, 1, "", "metrics_enabled"]], "transactron.lib.metrics.HwMetricsEnabledKey": [[7, 3, 1, "", "__init__"], [7, 2, 1, "", "default_value"], [7, 2, 1, "", "empty_valid"], [7, 2, 1, "", "lock_on_get"]], "transactron.lib.metrics.MetricModel": [[7, 3, 1, "", "__init__"], [7, 2, 1, "", "description"], [7, 3, 1, "", "from_dict"], [7, 3, 1, "", "from_json"], [7, 2, 1, "", "fully_qualified_name"], [7, 2, 1, "", "regs"], [7, 3, 1, "", "schema"], [7, 3, 1, "", "to_dict"], [7, 3, 1, "", "to_json"]], "transactron.lib.metrics.MetricRegisterModel": [[7, 3, 1, "", "__init__"], [7, 2, 1, "", "description"], [7, 3, 1, "", "from_dict"], [7, 3, 1, "", "from_json"], [7, 2, 1, "", "name"], [7, 3, 1, "", "schema"], [7, 3, 1, "", "to_dict"], [7, 3, 1, "", "to_json"], [7, 2, 1, "", "width"]], "transactron.lib.metrics.TaggedCounter": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "incr"]], "transactron.lib.metrics.TaggedLatencyMeasurer": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "metrics_enabled"], [7, 3, 1, "", "start"], [7, 3, 1, "", "stop"]], "transactron.lib.reqres": [[7, 1, 1, "", "ArgumentsToResultsZipper"], [7, 1, 1, "", "Serializer"]], "transactron.lib.reqres.ArgumentsToResultsZipper": [[7, 3, 1, "", "__init__"]], "transactron.lib.reqres.Serializer": [[7, 3, 1, "", "__init__"]], "transactron.lib.simultaneous": [[7, 5, 1, "", "condition"]], "transactron.lib.storage": [[7, 1, 1, "", "AsyncMemoryBank"], [7, 1, 1, "", "ContentAddressableMemory"], [7, 1, 1, "", "MemoryBank"]], "transactron.lib.storage.AsyncMemoryBank": [[7, 3, 1, "", "__init__"]], "transactron.lib.storage.ContentAddressableMemory": [[7, 3, 1, "", "__init__"]], "transactron.lib.storage.MemoryBank": [[7, 3, 1, "", "__init__"]], "transactron.lib.transformers": [[7, 1, 1, "", "CatTrans"], [7, 1, 1, "", "Collector"], [7, 1, 1, "", "ConnectAndMapTrans"], [7, 1, 1, "", "MethodFilter"], [7, 1, 1, "", "MethodMap"], [7, 1, 1, "", "MethodProduct"], [7, 1, 1, "", "MethodTryProduct"], [7, 1, 1, "", "Transformer"], [7, 1, 1, "", "Unifier"]], "transactron.lib.transformers.CatTrans": [[7, 3, 1, "", "__init__"]], "transactron.lib.transformers.Collector": [[7, 3, 1, "", "__init__"]], "transactron.lib.transformers.ConnectAndMapTrans": [[7, 3, 1, "", "__init__"]], "transactron.lib.transformers.MethodFilter": [[7, 3, 1, "", "__init__"]], "transactron.lib.transformers.MethodMap": [[7, 3, 1, "", "__init__"]], "transactron.lib.transformers.MethodProduct": [[7, 3, 1, "", "__init__"]], "transactron.lib.transformers.MethodTryProduct": [[7, 3, 1, "", "__init__"]], "transactron.lib.transformers.Transformer": [[7, 2, 1, "", "method"], [7, 3, 1, "", "use"]], "transactron.lib.transformers.Unifier": [[7, 3, 1, "", "__init__"], [7, 2, 1, "", "method"]], "transactron.profiler": [[5, 1, 1, "", "MethodSamples"], [5, 1, 1, "", "Profile"], [5, 1, 1, "", "ProfileData"], [5, 1, 1, "", "ProfileInfo"], [5, 1, 1, "", "ProfileSamples"], [5, 1, 1, "", "RunStat"], [5, 1, 1, "", "RunStatNode"], [5, 1, 1, "", "TransactionSamples"]], "transactron.profiler.MethodSamples": [[5, 3, 1, "", "__init__"], [5, 2, 1, "", "run"]], "transactron.profiler.Profile": [[5, 3, 1, "", "__init__"], [5, 3, 1, "", "analyze_methods"], [5, 3, 1, "", "analyze_transactions"], [5, 2, 1, "", "cycles"], [5, 3, 1, "", "decode"], [5, 3, 1, "", "encode"], [5, 3, 1, "", "from_dict"], [5, 3, 1, "", "from_json"], [5, 3, 1, "", "schema"], [5, 3, 1, "", "to_dict"], [5, 3, 1, "", "to_json"], [5, 2, 1, "", "transactions_and_methods"]], "transactron.profiler.ProfileData": [[5, 3, 1, "", "__init__"], [5, 3, 1, "", "make"], [5, 2, 1, "", "method_parents"], [5, 2, 1, "", "transaction_conflicts"], [5, 2, 1, "", "transactions_and_methods"], [5, 2, 1, "", "transactions_by_method"]], "transactron.profiler.ProfileInfo": [[5, 3, 1, "", "__init__"], [5, 3, 1, "", "from_dict"], [5, 3, 1, "", "from_json"], [5, 2, 1, "", "is_transaction"], [5, 2, 1, "", "name"], [5, 3, 1, "", "schema"], [5, 2, 1, "", "src_loc"], [5, 3, 1, "", "to_dict"], [5, 3, 1, "", "to_json"]], "transactron.profiler.ProfileSamples": [[5, 3, 1, "", "__init__"], [5, 2, 1, "", "methods"], [5, 2, 1, "", "transactions"]], "transactron.profiler.RunStat": [[5, 3, 1, "", "__init__"], [5, 2, 1, "", "locked"], [5, 3, 1, "", "make"], [5, 2, 1, "", "name"], [5, 2, 1, "", "run"], [5, 2, 1, "", "src_loc"]], "transactron.profiler.RunStatNode": [[5, 3, 1, "", "__init__"], [5, 2, 1, "", "callers"], [5, 3, 1, "", "make"], [5, 2, 1, "", "stat"]], "transactron.profiler.TransactionSamples": [[5, 3, 1, "", "__init__"], [5, 2, 1, "", "grant"], [5, 2, 1, "", "request"], [5, 2, 1, "", "runnable"]], "transactron.testing": [[8, 0, 0, "-", "functions"], [8, 0, 0, "-", "infrastructure"], [8, 0, 0, "-", "input_generation"], [8, 0, 0, "-", "logging"], [8, 0, 0, "-", "method_mock"], [8, 0, 0, "-", "profiler"], [8, 0, 0, "-", "testbenchio"], [8, 0, 0, "-", "tick_count"]], "transactron.testing.functions": [[8, 5, 1, "", "data_const_to_dict"]], "transactron.testing.infrastructure": [[8, 1, 1, "", "PysimSimulator"], [8, 1, 1, "", "SimpleTestCircuit"], [8, 1, 1, "", "TestCaseWithSimulator"]], "transactron.testing.infrastructure.PysimSimulator": [[8, 3, 1, "", "__init__"], [8, 3, 1, "", "run"]], "transactron.testing.infrastructure.SimpleTestCircuit": [[8, 3, 1, "", "__init__"], [8, 3, 1, "", "debug_signals"]], "transactron.testing.infrastructure.TestCaseWithSimulator": [[8, 3, 1, "", "add_mock"], [8, 2, 1, "", "dependency_manager"], [8, 3, 1, "", "fixture_initialize_testing_env"], [8, 3, 1, "", "random_wait"], [8, 3, 1, "", "random_wait_geom"], [8, 3, 1, "", "reinitialize_fixtures"], [8, 3, 1, "", "run_simulation"], [8, 3, 1, "", "tick"]], "transactron.testing.input_generation": [[8, 1, 1, "", "OpNOP"], [8, 5, 1, "", "generate_based_on_layout"], [8, 5, 1, "", "generate_method_input"], [8, 5, 1, "", "generate_nops_in_list"], [8, 5, 1, "", "generate_process_input"], [8, 5, 1, "", "generate_shrinkable_list"], [8, 5, 1, "", "insert_nops"]], "transactron.testing.logging": [[8, 5, 1, "", "make_logging_process"], [8, 5, 1, "", "parse_logging_level"]], "transactron.testing.method_mock": [[8, 1, 1, "", "MethodMock"], [8, 5, 1, "", "def_method_mock"]], "transactron.testing.method_mock.MethodMock": [[8, 3, 1, "", "__init__"], [8, 3, 1, "", "effect"], [8, 3, 1, "", "effect_process"], [8, 3, 1, "", "output_process"], [8, 3, 1, "", "validate_arguments_process"]], "transactron.testing.profiler": [[8, 5, 1, "", "profiler_process"]], "transactron.testing.testbenchio": [[8, 1, 1, "", "CallTrigger"], [8, 1, 1, "", "TestbenchIO"]], "transactron.testing.testbenchio.CallTrigger": [[8, 3, 1, "", "__init__"], [8, 3, 1, "", "call"], [8, 3, 1, "", "sample"], [8, 3, 1, "", "until_all_done"], [8, 3, 1, "", "until_done"]], "transactron.testing.testbenchio.TestbenchIO": [[8, 3, 1, "", "__init__"], [8, 3, 1, "", "call"], [8, 3, 1, "", "call_do"], [8, 3, 1, "", "call_init"], [8, 3, 1, "", "call_result"], [8, 3, 1, "", "call_try"], [8, 3, 1, "", "disable"], [8, 4, 1, "", "done"], [8, 3, 1, "", "enable"], [8, 3, 1, "", "get_call_result"], [8, 3, 1, "", "get_done"], [8, 3, 1, "", "get_outputs"], [8, 4, 1, "", "outputs"], [8, 3, 1, "", "sample_outputs"], [8, 3, 1, "", "sample_outputs_done"], [8, 3, 1, "", "sample_outputs_until_done"], [8, 3, 1, "", "set_enable"], [8, 3, 1, "", "set_inputs"]], "transactron.testing.tick_count": [[8, 1, 1, "", "TicksKey"], [8, 5, 1, "", "make_tick_count_process"]], "transactron.testing.tick_count.TicksKey": [[8, 3, 1, "", "__init__"]], "transactron.tracing": [[5, 1, 1, "", "TracingEnabler"], [5, 1, 1, "", "TracingFragment"], [5, 1, 1, "", "TracingFragmentTransformer"], [5, 1, 1, "", "TracingInstance"]], "transactron.tracing.TracingFragment": [[5, 3, 1, "", "get"], [5, 3, 1, "", "prepare"], [5, 2, 1, "", "subfragments"]], "transactron.tracing.TracingFragmentTransformer": [[5, 3, 1, "", "on_fragment"]], "transactron.tracing.TracingInstance": [[5, 3, 1, "", "get"]], "transactron.utils": [[10, 0, 0, "-", "amaranth_ext"], [9, 0, 0, "-", "assign"], [9, 0, 0, "-", "data_repr"], [9, 0, 0, "-", "debug_signals"], [9, 0, 0, "-", "depcache"], [9, 0, 0, "-", "dependencies"], [9, 0, 0, "-", "gen"], [9, 0, 0, "-", "idgen"], [9, 0, 0, "-", "transactron_helpers"]], "transactron.utils.amaranth_ext": [[10, 0, 0, "-", "coding"], [10, 0, 0, "-", "elaboratables"], [10, 0, 0, "-", "functions"], [10, 0, 0, "-", "shifter"]], "transactron.utils.amaranth_ext.coding": [[10, 1, 1, "", "Decoder"], [10, 1, 1, "", "Encoder"], [10, 1, 1, "", "GrayDecoder"], [10, 1, 1, "", "GrayEncoder"], [10, 1, 1, "", "PriorityDecoder"], [10, 1, 1, "", "PriorityEncoder"]], "transactron.utils.amaranth_ext.coding.Decoder": [[10, 3, 1, "", "__init__"]], "transactron.utils.amaranth_ext.coding.Encoder": [[10, 3, 1, "", "__init__"]], "transactron.utils.amaranth_ext.coding.GrayDecoder": [[10, 3, 1, "", "__init__"]], "transactron.utils.amaranth_ext.coding.GrayEncoder": [[10, 3, 1, "", "__init__"]], "transactron.utils.amaranth_ext.coding.PriorityEncoder": [[10, 3, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables": [[10, 1, 1, "", "ModuleConnector"], [10, 1, 1, "", "MultiPriorityEncoder"], [10, 5, 1, "", "OneHotSwitch"], [10, 5, 1, "", "OneHotSwitchDynamic"], [10, 1, 1, "", "RingMultiPriorityEncoder"], [10, 1, 1, "", "RoundRobin"], [10, 1, 1, "", "Scheduler"]], "transactron.utils.amaranth_ext.elaboratables.ModuleConnector": [[10, 3, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables.MultiPriorityEncoder": [[10, 3, 1, "", "__init__"], [10, 3, 1, "", "build_tree"], [10, 3, 1, "", "create"], [10, 3, 1, "", "create_simple"]], "transactron.utils.amaranth_ext.elaboratables.RingMultiPriorityEncoder": [[10, 3, 1, "", "__init__"], [10, 3, 1, "", "create"], [10, 3, 1, "", "create_simple"]], "transactron.utils.amaranth_ext.elaboratables.RoundRobin": [[10, 3, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables.Scheduler": [[10, 3, 1, "", "__init__"]], "transactron.utils.amaranth_ext.functions": [[10, 5, 1, "", "const_of"], [10, 5, 1, "", "count_leading_zeros"], [10, 5, 1, "", "count_trailing_zeros"], [10, 5, 1, "", "cyclic_mask"], [10, 5, 1, "", "flatten_signals"], [10, 5, 1, "", "mod_incr"], [10, 5, 1, "", "popcount"], [10, 5, 1, "", "shape_of"]], "transactron.utils.amaranth_ext.shifter": [[10, 5, 1, "", "generic_shift_left"], [10, 5, 1, "", "generic_shift_right"], [10, 5, 1, "", "generic_shift_vec_left"], [10, 5, 1, "", "generic_shift_vec_right"], [10, 5, 1, "", "rotate_left"], [10, 5, 1, "", "rotate_right"], [10, 5, 1, "", "rotate_vec_left"], [10, 5, 1, "", "rotate_vec_right"], [10, 5, 1, "", "shift_left"], [10, 5, 1, "", "shift_right"], [10, 5, 1, "", "shift_vec_left"], [10, 5, 1, "", "shift_vec_right"]], "transactron.utils.assign": [[9, 1, 1, "", "AssignType"], [9, 5, 1, "", "assign"]], "transactron.utils.assign.AssignType": [[9, 2, 1, "", "ALL"], [9, 2, 1, "", "COMMON"], [9, 2, 1, "", "LHS"], [9, 2, 1, "", "RHS"]], "transactron.utils.data_repr": [[9, 5, 1, "", "align_down_to_power_of_two"], [9, 5, 1, "", "align_to_power_of_two"], [9, 5, 1, "", "average_dict_of_lists"], [9, 5, 1, "", "bits_from_int"], [9, 5, 1, "", "data_layout"], [9, 5, 1, "", "int_to_signed"], [9, 5, 1, "", "layout_subset"], [9, 5, 1, "", "make_hashable"], [9, 5, 1, "", "neg"], [9, 5, 1, "", "signed_to_int"]], "transactron.utils.debug_signals": [[9, 5, 1, "", "auto_debug_signals"]], "transactron.utils.depcache": [[9, 1, 1, "", "DependentCache"]], "transactron.utils.depcache.DependentCache": [[9, 3, 1, "", "__init__"], [9, 3, 1, "", "get"]], "transactron.utils.dependencies": [[9, 1, 1, "", "DependencyContext"], [9, 1, 1, "", "DependencyKey"], [9, 1, 1, "", "DependencyManager"], [9, 1, 1, "", "ListKey"], [9, 1, 1, "", "SimpleKey"]], "transactron.utils.dependencies.DependencyContext": [[9, 3, 1, "", "__init__"], [9, 3, 1, "", "get"], [9, 2, 1, "", "stack"]], "transactron.utils.dependencies.DependencyKey": [[9, 2, 1, "", "cache"], [9, 3, 1, "", "combine"], [9, 2, 1, "", "empty_valid"], [9, 2, 1, "", "lock_on_get"]], "transactron.utils.dependencies.DependencyManager": [[9, 3, 1, "", "__init__"], [9, 3, 1, "", "add_dependency"], [9, 3, 1, "", "get_dependency"], [9, 3, 1, "", "get_optional_dependency"]], "transactron.utils.dependencies.ListKey": [[9, 3, 1, "", "combine"], [9, 2, 1, "", "empty_valid"]], "transactron.utils.dependencies.SimpleKey": [[9, 3, 1, "", "combine"], [9, 2, 1, "", "default_value"]], "transactron.utils.gen": [[9, 1, 1, "", "GeneratedLog"], [9, 1, 1, "", "GenerationInfo"], [9, 1, 1, "", "MetricLocation"], [9, 5, 1, "", "generate_verilog"]], "transactron.utils.gen.GeneratedLog": [[9, 3, 1, "", "__init__"], [9, 2, 1, "", "fields_location"], [9, 3, 1, "", "from_dict"], [9, 3, 1, "", "from_json"], [9, 3, 1, "", "schema"], [9, 3, 1, "", "to_dict"], [9, 3, 1, "", "to_json"], [9, 2, 1, "", "trigger_location"]], "transactron.utils.gen.GenerationInfo": [[9, 3, 1, "", "__init__"], [9, 3, 1, "", "decode"], [9, 3, 1, "", "encode"], [9, 3, 1, "", "from_dict"], [9, 3, 1, "", "from_json"], [9, 2, 1, "", "logs"], [9, 2, 1, "", "method_signals_location"], [9, 2, 1, "", "metrics_location"], [9, 2, 1, "", "profile_data"], [9, 3, 1, "", "schema"], [9, 3, 1, "", "to_dict"], [9, 3, 1, "", "to_json"], [9, 2, 1, "", "transaction_signals_location"]], "transactron.utils.gen.MetricLocation": [[9, 3, 1, "", "__init__"], [9, 3, 1, "", "from_dict"], [9, 3, 1, "", "from_json"], [9, 2, 1, "", "regs"], [9, 3, 1, "", "schema"], [9, 3, 1, "", "to_dict"], [9, 3, 1, "", "to_json"]], "transactron.utils.idgen": [[9, 1, 1, "", "IdGenerator"]], "transactron.utils.idgen.IdGenerator": [[9, 3, 1, "", "__init__"]], "transactron.utils.transactron_helpers": [[9, 5, 1, "", "async_mock_def_helper"], [9, 5, 1, "", "dataclass_asdict"], [9, 5, 1, "", "def_helper"], [9, 5, 1, "", "extend_layout"], [9, 5, 1, "", "from_method_layout"], [9, 5, 1, "", "get_caller_class_name"], [9, 5, 1, "", "get_src_loc"], [9, 5, 1, "", "longest_common_prefix"], [9, 5, 1, "", "make_layout"], [9, 5, 1, "", "method_def_helper"], [9, 5, 1, "", "mock_def_helper"], [9, 5, 1, "", "silence_mustuse"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:property", "5": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"], "5": ["py", "function", "Python function"]}, "titleterms": {"api": 0, "transactron": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10], "develop": 1, "environ": 1, "set": 1, "up": 1, "run": 1, "test": [1, 8], "us": 1, "script": 1, "lint": 1, "sh": 1, "build_doc": 1, "tprof": 1, "py": 1, "document": 4, "introduct": 4, "basic": 4, "usag": 4, "implement": 4, "transact": [4, 6], "method": [4, 6], "argument": 4, "pass": 4, "convent": 4, "definit": 4, "return": 4, "valu": 4, "readi": 4, "signal": 4, "The": 4, "librari": 4, "advanc": 4, "concept": 4, "special": 4, "combin": 4, "domain": 4, "schedul": [4, 6], "order": 4, "conflict": 4, "nest": 4, "packag": [5, 6, 7, 8, 9, 10], "subpackag": [5, 9], "submodul": [5, 6, 7, 8, 9, 10], "graph": 5, "modul": [5, 6, 7, 8, 9, 10], "profil": [5, 8], "trace": 5, "content": [5, 6, 7, 8, 9, 10], "core": 6, "bodi": 6, "kei": 6, "manag": 6, "sugar": 6, "tmodul": 6, "transaction_bas": 6, "lib": 7, "adapt": 7, "alloc": 7, "button": 7, "connector": 7, "depend": [7, 9], "fifo": 7, "log": [7, 8], "metric": 7, "reqr": 7, "simultan": 7, "storag": 7, "transform": 7, "function": [8, 10], "infrastructur": 8, "input_gener": 8, "method_mock": 8, "testbenchio": 8, "tick_count": 8, "util": [9, 10], "assign": 9, "data_repr": 9, "debug_sign": 9, "depcach": 9, "gen": 9, "idgen": 9, "transactron_help": 9, "amaranth_ext": 10, "code": 10, "elaborat": 10, "shifter": 10}, "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.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["api", "development-environment", "index", "modules", "transactions", "transactron", "transactron.core", "transactron.lib", "transactron.testing", "transactron.utils", "transactron.utils.amaranth_ext"], "filenames": ["api.md", "development-environment.md", "index.md", "modules.rst", "transactions.md", "transactron.rst", "transactron.core.rst", "transactron.lib.rst", "transactron.testing.rst", "transactron.utils.rst", "transactron.utils.amaranth_ext.rst"], "titles": ["API", "Development environment", "Transactron", "transactron", "Documentation for Transactron", "transactron package", "transactron.core package", "transactron.lib package", "transactron.testing package", "transactron.utils package", "transactron.utils.amaranth_ext package"], "terms": {"packag": [0, 1, 2, 3], "subpackag": [0, 3], "core": [0, 3, 5, 7, 8, 9], "submodul": [0, 3], "bodi": [0, 3, 4, 5, 7, 8], "modul": [0, 1, 3, 4], "kei": [0, 3, 5, 7, 9], "manag": [0, 1, 3, 4, 5, 7, 9], "method": [0, 1, 2, 3, 5, 7, 8, 9, 10], "schedul": [0, 2, 3, 5, 7, 10], "sugar": [0, 3, 5, 10], "tmodul": [0, 3, 4, 5, 7], "transact": [0, 1, 2, 3, 5, 7, 10], "transaction_bas": [0, 3, 5], "content": [0, 3], "lib": [0, 3, 5, 6, 8, 9, 10], "adapt": [0, 3, 4, 5, 8], "alloc": [0, 3, 5], "button": [0, 3, 5], "connector": [0, 3, 5], "depend": [0, 3, 4, 5, 10], "fifo": [0, 3, 4, 5, 6], "log": [0, 1, 3, 5, 9], "metric": [0, 3, 5, 9], "reqr": [0, 3, 5], "simultan": [0, 3, 4, 5, 6], "storag": [0, 3, 5], "transform": [0, 3, 5], "test": [0, 2, 3, 5, 6, 7, 9, 10], "function": [0, 3, 4, 5, 6, 7, 9], "infrastructur": [0, 3, 5], "input_gener": [0, 3, 5], "method_mock": [0, 3, 5], "profil": [0, 1, 3], "testbenchio": [0, 3, 5], "tick_count": [0, 3, 5], "util": [0, 3, 5, 7], "assign": [0, 3, 4, 5, 6], "data_repr": [0, 3, 5], "debug_sign": [0, 3, 5, 6, 7, 8], "depcach": [0, 3, 5], "gen": [0, 3, 5], "idgen": [0, 3, 5], "transactron_help": [0, 3, 5], "graph": [0, 1, 3, 6], "trace": [0, 1, 3], "In": [1, 4, 5, 6, 7, 8, 9, 10], "order": [1, 2, 6, 7, 10], "prepar": [1, 5], "pleas": [1, 4], "follow": [1, 4, 7, 8, 9], "step": [1, 4], "below": [1, 7], "instal": 1, "python": [1, 4, 6, 7, 8, 9], "3": [1, 5, 6, 9], "11": 1, "interpret": [1, 7, 9], "pip": 1, "option": [1, 4, 5, 6, 7, 8, 9, 10], "creat": [1, 4, 6, 7, 8, 9, 10], "virtual": 1, "python3": 1, "m": [1, 4, 6, 7, 10], "venv": 1, "project": [1, 4, 6], "directori": 1, "activ": [1, 6, 7, 8, 10], "gener": [1, 5, 6, 7, 8, 9, 10], "bin": 1, "all": [1, 4, 5, 6, 7, 8, 9, 10], "requir": [1, 4, 5, 6], "librari": [1, 2, 7], "pip3": 1, "dev": 1, "precommit": 1, "hook": [1, 5, 7], "pre": 1, "commit": 1, "thi": [1, 4, 5, 6, 7, 8, 9, 10], "automat": [1, 8, 9, 10], "linter": 1, "befor": [1, 4, 6, 7], "ar": [1, 4, 5, 6, 7, 8, 9, 10], "pytest": 1, "thing": [1, 4, 7, 9], "know": 1, "To": [1, 7, 9], "speed": 1, "multipl": [1, 4, 6, 7, 8, 9, 10], "worker": 1, "thread": 1, "can": [1, 4, 5, 6, 7, 8, 9, 10], "n": [1, 6, 7, 10], "auto": 1, "onli": [1, 4, 5, 6, 7, 8, 9, 10], "some": [1, 4, 6, 7], "k": [1, 7], "express": [1, 4, 7], "format": [1, 4, 5, 6, 7, 9, 10], "i": [1, 4, 5, 6, 7, 8, 9, 10], "describ": [1, 5, 6, 7, 8], "doc": 1, "abl": [1, 7], "read": [1, 4, 6, 7, 9], "standard": [1, 7, 8, 10], "output": [1, 6, 7, 8, 10], "even": [1, 4, 6, 7], "success": [1, 8], "": [1, 4, 5, 6, 7, 9, 10], "custom": [1, 7, 10], "transactron": 1, "file": [1, 9], "readabl": [1, 7], "gtkwave": [1, 9], "The": [1, 2, 5, 6, 7, 8, 9, 10], "save": [1, 5, 7, 9], "__traces__": 1, "execut": [1, 4, 5, 6, 7, 8], "name": [1, 4, 5, 6, 7, 8, 9, 10], "__profiles__": 1, "filter": [1, 7], "allow": [1, 4, 6, 7, 8, 10], "contain": [1, 4, 6, 7, 9, 10], "number": [1, 5, 6, 7, 8, 9, 10], "which": [1, 4, 5, 6, 7, 8, 9, 10], "ci": 1, "also": [1, 4, 7, 8], "intend": [1, 6, 10], "local": 1, "thei": [1, 4, 6, 7], "check": [1, 6, 9], "code": [1, 4, 5, 7, 9], "type": [1, 6, 7, 8, 9, 10], "It": [1, 4, 5, 6, 7, 8, 9, 10], "should": [1, 4, 6, 7, 8, 9, 10], "subcommand": 1, "filenam": 1, "main": 1, "avail": [1, 7], "reformat": 1, "black": 1, "check_format": 1, "verifi": 1, "flake8": 1, "check_typ": 1, "pyright": 1, "same": [1, 4, 6, 7, 8, 9, 10], "when": [1, 4, 6, 7, 8, 9, 10], "confront": 1, "would": [1, 4, 7, 9], "messag": [1, 7], "from": [1, 4, 5, 6, 7, 8, 9, 10], "you": [1, 6, 7, 10], "mai": [1, 7, 9], "diff": 1, "wai": [1, 4, 6, 7, 9, 10], "displai": 1, "chang": [1, 4, 7, 8, 9, 10], "appli": [1, 5, 6, 8], "chose": 1, "help": [1, 7], "locat": [1, 5, 6, 7, 9], "issu": [1, 4, 7], "document": [1, 2], "sphinx": 1, "html": 1, "build": [1, 7], "process": [1, 7, 8], "present": [1, 4, 7, 9], "them": [1, 4, 6, 7, 9], "run_test": 1, "__profile__": 1, "profile_fil": 1, "json": [1, 9], "inform": [1, 5, 7, 9], "about": [1, 5, 7, 9], "default": [1, 4, 5, 6, 7, 9, 10], "For": [1, 4, 5, 6, 7, 9, 10], "one": [1, 4, 6, 7, 8, 9, 10], "mode": 1, "column": 1, "have": [1, 4, 6, 7, 8, 9, 10], "mean": [1, 6, 7], "question": [1, 4], "togeth": [1, 4, 6], "differenti": 1, "between": [1, 4, 6, 7, 8, 9, 10], "ident": [1, 7, 10], "differ": [1, 6, 7, 8, 9, 10], "sourc": [1, 5, 6, 7], "line": 1, "where": [1, 4, 6, 7, 8, 9], "wa": [1, 4, 5, 6, 7, 8, 9], "declar": [1, 4, 7, 8], "further": [1, 7], "disambigu": 1, "lock": [1, 4, 5, 7], "show": 1, "cycl": [1, 4, 5, 6, 7, 8], "caller": [1, 4, 5, 6, 7], "call": [1, 4, 5, 6, 7, 8, 9, 10], "fals": [1, 4, 5, 7, 9, 10], "condit": [1, 4, 5, 6, 7], "could": [1, 4, 7, 8], "forc": 1, "wait": [1, 6, 8], "anoth": [1, 4, 6, 7, 8], "conflict": [1, 2, 5, 6], "given": [1, 4, 5, 6, 7, 8, 9, 10], "produc": [1, 6], "each": [1, 4, 5, 6, 7, 8, 9, 10], "tree": [1, 5, 7], "counter": [1, 7], "root": [1, 5], "count": [1, 6, 7, 10], "an": [1, 4, 5, 6, 7, 8, 9, 10], "invert": 1, "leav": 1, "children": 1, "node": 1, "field": [1, 4, 5, 6, 7, 9], "how": [1, 6, 7], "mani": [1, 4, 5, 6, 7, 8, 9], "respons": [1, 6, 7], "other": [1, 4, 5, 6, 7, 10], "sort": [1, 7, 10], "select": [1, 7, 10], "row": 1, "regular": 1, "loc": 1, "develop": [2, 7], "environ": 2, "set": [2, 6, 7, 8, 9, 10], "up": [2, 7, 9], "run": [2, 4, 5, 6, 7, 8, 10], "us": [2, 4, 6, 7, 8, 9, 10], "script": 2, "lint": 2, "sh": 2, "build_doc": 2, "tprof": 2, "py": [2, 8], "introduct": 2, "basic": [2, 7], "usag": 2, "implement": [2, 7, 9, 10], "argument": [2, 6, 7, 8, 9, 10], "pass": [2, 6, 7, 8, 9], "convent": 2, "definit": [2, 6, 8], "return": [2, 6, 7, 9, 10], "valu": [2, 5, 6, 7, 8, 9, 10], "readi": [2, 5, 6, 7, 10], "signal": [2, 5, 6, 7, 8, 9, 10], "advanc": [2, 8], "concept": 2, "special": [2, 7], "combin": [2, 6, 7, 8, 9], "domain": [2, 6], "nest": [2, 7], "api": 2, "amaranth": [4, 5, 6, 7, 8, 9, 10], "connect": [4, 6, 7, 10], "complex": [4, 7, 10], "inspir": 4, "bluespec": 4, "program": 4, "languag": 4, "see": [4, 6, 7], "wiki": 4, "compil": 4, "idea": 4, "interfac": [4, 6, 7], "hardwar": [4, 7], "A": [4, 5, 6, 7, 8, 9], "state": [4, 6, 7, 8], "oper": [4, 6, 7, 10], "perform": [4, 6, 7, 8, 9, 10], "singl": [4, 6, 7, 8, 9], "clock": [4, 5, 6, 7, 8], "atom": 4, "either": [4, 6, 7, 8, 9, 10], "its": [4, 6, 7, 8, 9, 10], "entrieti": 4, "doe": [4, 10], "defin": [4, 6, 7, 8, 9, 10], "via": [4, 6, 7], "directli": [4, 6], "link": 4, "indirectli": [4, 6], "If": [4, 5, 6, 7, 8, 9, 10], "try": 4, "access": [4, 7, 8, 9], "coordin": 4, "system": [4, 9], "avoid": 4, "commun": 4, "both": [4, 6, 7, 9, 10], "direct": [4, 5, 6, 7], "back": 4, "structur": [4, 5, 6, 7, 9], "record": [4, 6, 7, 9, 10], "simplest": 4, "part": [4, 6, 7], "elaborat": [4, 5, 6, 7, 8, 9], "block": [4, 6, 7], "class": [4, 5, 6, 7, 8, 9, 10], "myth": 4, "def": [4, 6], "elabor": 4, "self": [4, 8], "platform": [4, 5], "includ": [4, 6, 7, 9, 10], "like": [4, 6, 7, 8], "d": [4, 6, 7, 9, 10], "comb": [4, 6, 10], "sig1": 4, "eq": [4, 6, 10], "expr1": 4, "sync": [4, 6], "sig2": 4, "expr2": 4, "result": [4, 7, 8, 9, 10], "arg_expr": 4, "work": [4, 6, 7, 8], "analog": 4, "multiplex": 4, "rememb": [4, 5], "statement": [4, 6, 9], "insid": [4, 6, 7], "alwai": [4, 6, 7, 8, 10], "onc": [4, 6, 7, 10], "As": [4, 7], "typic": [4, 6, 7], "constructor": [4, 6, 9], "myotherth": 4, "__init__": [4, 5, 6, 7, 8, 9, 10], "o": [4, 6, 7, 10], "paramet": [4, 6, 7, 8, 9, 10], "layout": [4, 6, 7, 8, 9], "my_method": [4, 6], "input_layout": 4, "output_layout": 4, "need": [4, 6, 7, 8, 10], "instead": [4, 5, 6, 7, 8, 10], "def_method": [4, 6], "_": [4, 6], "arg": [4, 5, 6, 7, 8, 9, 10], "other_method": 4, "ret_expr": 4, "techniqu": 4, "abov": 4, "conveni": [4, 6, 7], "syntax": [4, 6, 10], "just": [4, 7], "particular": 4, "unnam": 4, "usual": [4, 7, 8], "exampl": [4, 6, 7, 8, 10], "around": [4, 10], "entir": 4, "sometim": 4, "might": [4, 5, 7], "two": [4, 6, 7, 9], "altern": [4, 6, 7], "decid": [4, 8], "best": 4, "easi": [4, 7], "import": 4, "ask": 4, "yourself": 4, "someth": [4, 10], "independ": [4, 7], "so": [4, 5, 6, 7, 10], "mayb": 4, "Or": 4, "extern": [4, 6], "doubt": 4, "prefer": 4, "becaus": [4, 5, 6, 7, 8], "noth": 4, "els": [4, 6], "Such": [4, 7], "adaptertran": [4, 7], "though": 4, "case": [4, 6, 7, 8, 9, 10], "cleaner": 4, "suppos": 4, "we": [4, 7, 8], "input": [4, 6, 7, 8, 10], "foo": [4, 7], "1": [4, 5, 6, 7, 8, 9, 10], "bar": [4, 7], "32": [4, 7], "cleanest": 4, "recommend": 4, "keyword": [4, 6, 7, 8, 9], "foo_expr": 4, "bar_expr": 4, "dict": [4, 5, 6, 7, 8, 9, 10], "final": [4, 6], "rec": 4, "recurs": [4, 5, 7, 9], "take": [4, 6, 7, 8, 9], "layout2": 4, "foobar": 4, "baz": 4, "42": 4, "method2": [4, 7], "One": [4, 7, 10], "baz_expr": 4, "receiv": [4, 6, 7, 8], "method3": 4, "resourc": [4, 6], "request": [4, 5, 6, 7, 8, 10], "bit": [4, 6, 7, 9, 10], "expr": 4, "similar": [4, 6, 7, 10], "mechan": [4, 7], "intern": [4, 6, 7], "risk": [4, 7], "introduc": 4, "loop": [4, 6], "certain": 4, "occas": 4, "possibl": [4, 7, 8, 9], "relax": 4, "e": [4, 7, 8, 9, 10], "g": [4, 7, 8, 9, 10], "framework": 4, "design": [4, 5], "facilit": 4, "re": [4, 6], "provid": [4, 6, 7, 8, 9], "most": [4, 6, 7], "ones": [4, 10], "connecttran": [4, 7], "queue": [4, 7], "write": [4, 6, 7], "plain": [4, 6, 7], "These": 4, "veri": 4, "testbench": [4, 7, 8], "own": [4, 5, 6, 7], "variant": 4, "Its": 4, "role": 4, "improv": 4, "circuit": [4, 6, 7, 9], "omit": [4, 6, 7], "unneed": 4, "done": [4, 6, 7, 8], "ad": [4, 6, 7, 8, 9, 10], "addit": [4, 9], "combinatori": 4, "av_comb": [4, 6], "top_comb": [4, 6, 10], "under": [4, 5, 6], "avoidedif": [4, 6], "guard": [4, 6, 7, 8], "grant": [4, 5, 6, 7, 10], "therefor": 4, "don": [4, 6, 8], "t": [4, 6, 7, 8, 9], "induc": 4, "often": 4, "safe": [4, 9], "do": [4, 6, 7, 8, 10], "switch": [4, 6, 7, 10], "etc": [4, 8], "logic": [4, 7], "belong": [4, 7], "aren": [4, 7], "actual": 4, "were": [4, 8], "manual": [4, 8, 10], "move": [4, 7], "top": [4, 6, 9], "level": [4, 6, 7, 8, 9], "caveat": 4, "normal": [4, 7, 8], "cannot": [4, 6, 7, 8], "exist": [4, 7, 9], "forward": [4, 6, 7], "place": [4, 6, 7], "handl": [4, 6], "make": [4, 5, 8], "consid": [4, 6, 7], "object": [4, 5, 7, 8, 9], "schedule_befor": [4, 6], "after": [4, 7, 10], "first": [4, 6, 7, 8, 9, 10], "first_t_or_m": 4, "other_t_or_m": 4, "lift": 4, "first_m": 4, "other_t": 4, "t1": 4, "t2": 4, "made": 4, "situat": [4, 6], "mutual": [4, 6, 7], "exclus": [4, 6, 7, 10], "similarli": [4, 7], "add_conflict": [4, 6], "ha": [4, 5, 6, 7, 10], "prioriti": [4, 6, 7, 10], "left": [4, 6, 7, 10], "right": [4, 6, 10], "undefin": [4, 6, 7], "add": [4, 6, 7, 8, 9, 10], "other_m": 4, "come": 4, "cost": 4, "increas": [4, 7], "size": [4, 7, 9], "delai": [4, 8], "featur": 4, "consider": 4, "parent": 4, "convers": 4, "true": [4, 5, 6, 7, 8, 9, 10], "doesn": 4, "limit": [4, 7], "impli": 4, "amaranth_ext": [5, 9], "shifter": [5, 9], "extract": 5, "base": [5, 6, 7, 8, 9, 10], "intflag": 5, "IN": 5, "inout": 5, "none": [5, 6, 7, 8, 9, 10], "0": [5, 6, 7, 8, 10], "out": [5, 6, 7, 10], "2": [5, 6, 7, 9], "__new__": 5, "protocol": [5, 6, 7], "kwarg": [5, 6, 7, 8, 9, 10], "str": [5, 6, 7, 8, 9, 10], "properti": [5, 6, 8], "owned_nam": 5, "owner": [5, 6], "ownershipgraph": 5, "dump": 5, "fp": 5, "liter": [5, 10], "dot": [5, 7], "elk": 5, "mermaid": 5, "dump_dot": 5, "int": [5, 6, 7, 8, 9, 10], "indent": [5, 7, 9], "dump_elk": 5, "dump_mermaid": 5, "get_hier_nam": 5, "obj": [5, 9], "get": [5, 6, 7, 8, 9, 10], "hierarch": 5, "rais": [5, 7, 8, 9], "keyerror": [5, 7, 9], "yet": 5, "get_nam": 5, "insert_edg": 5, "fr": 5, "insert_nod": 5, "mermaid_direct": 5, "prune": 5, "mark": 5, "empti": [5, 7, 10], "subgraph": 5, "remember_field": 5, "owner_id": 5, "methodsampl": 5, "runtim": [5, 7, 10], "control": [5, 7, 8, 10], "attribut": [5, 6, 7, 9, 10], "bool": [5, 6, 7, 8, 9, 10], "simul": [5, 6, 7, 8], "restor": 5, "analysi": 5, "tool": 5, "data": [5, 6, 7, 8, 9, 10], "refer": [5, 9], "uniqu": [5, 7], "id": 5, "transactions_and_method": 5, "profileinfo": 5, "index": [5, 6, 7, 10], "list": [5, 6, 7, 8, 9, 10], "cycleprofil": 5, "factori": [5, 7, 9], "analyze_method": 5, "runstatnod": 5, "analyze_transact": 5, "static": [5, 6, 7, 8, 9, 10], "decod": [5, 9, 10], "file_nam": [5, 9], "encod": [5, 7, 9, 10], "classmethod": [5, 7, 9], "from_dict": [5, 7, 9], "kv": [5, 7, 9], "union": [5, 7, 8, 9, 10], "float": [5, 7, 8, 9], "infer_miss": [5, 7, 9], "from_json": [5, 7, 9], "byte": [5, 7, 9], "bytearrai": [5, 7, 9], "parse_float": [5, 7, 9], "parse_int": [5, 7, 9], "parse_const": [5, 7, 9], "kw": [5, 7, 9], "schema": [5, 7, 9], "exclud": [5, 7, 9], "context": [5, 6, 7, 8, 9], "load_onli": [5, 7, 9], "dump_onli": [5, 7, 9], "partial": [5, 7, 9], "unknown": [5, 7, 9], "schemaf": [5, 7, 9], "to_dict": [5, 7, 9], "encode_json": [5, 7, 9], "to_json": [5, 7, 9], "skipkei": [5, 7, 9], "ensure_ascii": [5, 7, 9], "check_circular": [5, 7, 9], "allow_nan": [5, 7, 9], "separ": [5, 6, 7, 9], "tupl": [5, 6, 7, 8, 9, 10], "callabl": [5, 6, 7, 8, 9], "sort_kei": [5, 7, 9], "profiledata": [5, 9], "individu": 5, "method_par": 5, "transactions_by_method": 5, "transaction_conflict": 5, "transaction_manag": [5, 6, 8], "transactionmanag": [5, 6, 8], "src_loc": [5, 6, 7, 9], "srcloc": [5, 6, 7], "is_transact": 5, "profilesampl": 5, "transactionsampl": 5, "runstat": 5, "collect": [5, 6, 7, 8, 9, 10], "statist": 5, "disabl": [5, 7, 8], "did": [5, 8], "info": [5, 7], "summar": 5, "stat": 5, "runnabl": [5, 6], "tracingenabl": 5, "tracingfrag": 5, "fragment": [5, 6], "haselabor": [5, 6, 7, 8, 10], "origin": [5, 7], "lose": 5, "too": [5, 7], "difficult": 5, "exact": 5, "copi": 5, "relev": 5, "copyright": 5, "subfrag": 5, "hdl": [5, 6, 7, 8, 9, 10], "_ir": [5, 9], "tracingfragmenttransform": 5, "fragmenttransform": 5, "on_frag": 5, "tracinginst": 5, "instanc": [5, 6, 7, 9, 10], "adapterbodyparam": [6, 7, 8], "typeddict": 6, "notrequir": 6, "sequenc": [6, 7, 9, 10], "view": [6, 7, 9, 10], "structlayout": [6, 7, 8, 9], "_ast": [6, 7, 8, 9, 10], "enum": [6, 7, 8, 9, 10], "valuecast": [6, 7, 8, 9, 10], "abc": [6, 7, 8, 9, 10], "map": [6, 7, 8, 9, 10], "assignarg": [6, 9], "nonexclus": [6, 7], "single_cal": [6, 7], "transactionbas": 6, "unpack": [6, 7, 8], "bodyparam": 6, "iter": [6, 7, 8, 9, 10], "ctrl_path": 6, "ctrlpath": 6, "path": [6, 7], "def_count": 6, "classvar": 6, "def_ord": 6, "method_cal": 6, "defaultdict": 6, "method_us": 6, "peek": [6, 7], "stack": [6, 7, 9], "validate_argu": [6, 7, 8], "transactionmanagerkei": 6, "simplekei": [6, 7, 8, 9], "transactioncompon": 6, "transactionmodul": 6, "compon": [6, 7], "transactroncompon": 6, "wrapper": [6, 7], "support": [6, 7, 10], "wrap": [6, 10], "synthesi": 6, "port": [6, 7, 9, 10], "extend": [6, 10], "abstractcompon": 6, "dependency_manag": [6, 8], "dependencymanag": [6, 7, 8, 9], "new": [6, 7, 9, 10], "care": [6, 7], "never": 6, "cc_schedul": 6, "methodmap": [6, 7], "tbodi": 6, "_dsl": 6, "eager_deterministic_cc_schedul": 6, "_rec": [6, 7, 9, 10], "signalbundl": [6, 7, 9, 10], "print_info": 6, "cgr": 6, "porder": 6, "cc": 6, "method_map": 6, "visual_graph": 6, "store": [6, 7, 8, 9], "dependencycontext": [6, 9], "serv": [6, 7], "simultena": 6, "rest": 6, "must": [6, 7, 9, 10], "non": [6, 7, 8], "except": [6, 8, 9], "behavior": [6, 7, 9], "combination": 6, "transfer": [6, 7], "time": [6, 7, 8], "data_out": [6, 7], "data_in": [6, 7], "effect": [6, 7, 8], "current": 6, "methodstruct": [6, 7], "shape": [6, 7, 9, 10], "shapecast": [6, 7, 9, 10], "rang": [6, 7, 8, 9, 10], "forwardref": [6, 7, 8, 9], "shapelik": [6, 7, 8, 9], "layoutlist": [6, 7, 8, 9], "hint": 6, "infer": 6, "variabl": [6, 10], "frame": [6, 7], "deep": [6, 7], "taken": [6, 7], "const": [6, 7, 8, 9], "d1": [6, 7], "d0": 6, "action": [6, 7, 9], "indic": [6, 7, 10], "By": [6, 7], "combinationi": 6, "valuelik": [6, 7, 8, 10], "whether": [6, 7, 10], "those": 6, "instanti": 6, "accept": [6, 7, 9], "third": [6, 7], "vector": [6, 7, 10], "whose": 6, "th": [6, 7, 10], "happen": [6, 8], "still": [6, 7], "error": [6, 7, 9], "thrown": 6, "my_sum_method": 6, "arg1": 6, "8": [6, 7], "arg2": 6, "sum": [6, 7], "16": 6, "layout_in": [6, 7], "layout_out": [6, 7], "construct": [6, 7], "blueprint": 6, "freshli": 6, "proxi": 6, "methoddir": 6, "gr": 6, "transactiongraph": 6, "transactiongraphcc": 6, "priorityord": 6, "eager": 6, "subsystem": [6, 10], "isn": 6, "fair": 6, "start": [6, 7, 10], "lowest": 6, "highest": [6, 10], "concurr": 6, "arbitr": [6, 10], "agent": [6, 10], "vertic": 6, "edg": [6, 7, 8], "linear": 6, "consist": 6, "constraint": 6, "trivial_roundrobin_cc_schedul": 6, "simpl": [6, 7, 9, 10], "round": [6, 9, 10], "robin": [6, 10], "mainli": 6, "purpos": [6, 7], "decor": [6, 8], "eleg": 6, "correspond": [6, 7, 8, 10], "dictionari": [6, 7], "go": 6, "detail": [6, 7], "lambda": [6, 8], "over": [6, 7, 8], "easili": [6, 7], "expect": 6, "least": [6, 8, 10], "equival": [6, 7, 8, 10], "len": [6, 7, 10], "form": [6, 7], "three": 6, "parametr": 6, "my_filter_read_method": 6, "ready_list": 6, "head": [6, 7], "modulelik": [6, 7, 10], "everi": [6, 7, 8], "reduc": 6, "amount": [6, 8, 10], "useless": 6, "multplex": 6, "due": [6, 7], "while": [6, 8], "unguard": 6, "length": [6, 7, 8, 9, 10], "keep": 6, "relat": [6, 7, 9], "synchron": [6, 7, 8], "cond": [6, 7], "pattern": 6, "elif": 6, "fsm": 6, "init": [6, 7], "next": [6, 8, 10], "noreturn": 6, "repres": [6, 7], "task": 6, "regularli": 6, "last": [6, 7, 10], "met": 6, "explicit": 6, "implicit": 6, "aris": 6, "pair": [6, 7, 10], "want": [6, 8, 10], "priorit": 6, "_t": 6, "end": [6, 7, 10], "regist": [6, 7, 9], "reason": 6, "common": [6, 7, 9], "memori": [6, 7], "independent_list": 6, "relationbas": 6, "without": [6, 7, 9], "simultaneous_altern": 6, "howev": [6, 7], "simultaneous_list": 6, "adapterbas": [7, 8], "mock": [7, 8], "en": [7, 8], "valid": [7, 8, 9, 10], "descript": [7, 9], "with_validate_argu": [7, 8], "update_arg": 7, "ifac": 7, "expos": [7, 9], "priorityencoderalloc": 7, "superscalar": 7, "identifi": 7, "dealloc": 7, "continu": [7, 8], "fresh": 7, "littl": 7, "free": 7, "entri": [7, 9, 10], "total": 7, "mask": [7, 10], "treat": 7, "reset": 7, "clickin": 7, "click": 7, "interact": 7, "fpga": 7, "On": 7, "rise": 7, "btn": 7, "enabl": [7, 8, 9], "dat": 7, "retriev": 7, "clickout": 7, "led": 7, "put": 7, "flow": 7, "revers": 7, "possibli": 7, "rev_layout": 7, "second": [7, 10], "vice": 7, "versa": 7, "compat": 7, "method1": 7, "respect": 7, "full": 7, "fulfil": 7, "depth": 7, "fifo_typ": 7, "syncfifo": 7, "fifotyp": 7, "conform": 7, "overflow": 7, "buffer": [7, 10], "No": 7, "until": [7, 8], "clear": [7, 9], "manytooneconnecttran": 7, "get_result": 7, "put_result": 7, "pipe": 7, "halfwai": 7, "locali": 7, "critic": [7, 8], "cut": 7, "comparison": 7, "clean": 7, "stableselectingnetwork": 7, "network": 7, "group": 7, "consecut": 7, "preserv": 7, "invalid": [7, 10], "divid": 7, "conquer": 7, "algorithm": 7, "alreadi": [7, 9, 10], "properli": 7, "v1": 7, "b": 7, "v2": 7, "c": [7, 8], "now": 7, "shift": [7, 10], "merg": 7, "v": 7, "thu": 7, "log_2": 7, "dependencykei": [7, 9], "u": [7, 9], "concret": [7, 9], "frozen": [7, 9], "lock_on_get": [7, 9], "specifi": [7, 9], "get_depend": [7, 9], "cach": [7, 9], "subsequ": [7, 9], "empty_valid": [7, 9], "ani": [7, 8, 9, 10], "caus": [7, 9], "abstract": [7, 9], "add_depend": [7, 9], "give": [7, 9], "kind": [7, 9], "track": [7, 9], "across": [7, 9], "multpl": [7, 9], "get_optional_depend": [7, 9], "gettabl": [7, 9], "otherwis": [7, 9, 10], "listkei": [7, 9], "dependeci": [7, 9], "more": [7, 8, 9, 10], "than": [7, 9, 10], "default_valu": [7, 9], "unifierkei": 7, "unifi": 7, "wish": 7, "basicfifo": 7, "element": 7, "front": 7, "delet": 7, "semaphor": 7, "max_count": 7, "widefifo": 7, "per": 7, "denot": 7, "maximum": 7, "insert": 7, "remov": 7, "arraylayout": 7, "less": [7, 10], "enough": 7, "slot": 7, "read_width": 7, "write_width": 7, "max": 7, "written": 7, "assum": [7, 9], "equal": [7, 10], "hardwarelogg": 7, "intuit": 7, "logger": 7, "softwar": 7, "anywher": 7, "parallel": 7, "natur": [7, 10], "trigger": [7, 8, 9], "shall": 7, "report": 7, "evalu": [7, 8], "print": 7, "dure": [7, 8], "arbitrari": 7, "exactli": 7, "string": [7, 8], "organ": 7, "namespac": 7, "hierarchi": 7, "period": 7, "much": 7, "frontend": 7, "upper": 7, "icach": 7, "bpu": 7, "sub": 7, "There": 7, "backend": 7, "fu": 7, "jumpbranch": 7, "assert": [7, 8, 10], "src_loc_at": 7, "find": 7, "bug": 7, "hard": 7, "detect": 7, "termin": 7, "turn": 7, "warn": 7, "board": 7, "debug": [7, 9], "sever": 7, "semant": 7, "server": 7, "pep": 7, "3101": 7, "look": 7, "fail": 7, "logkei": 7, "logrecord": 7, "loglevel": 7, "alia": 7, "logrecordinfo": [7, 9], "event": 7, "being": [7, 9, 10], "logger_nam": [7, 9], "format_str": [7, 9], "agnost": 7, "serial": 7, "outsid": 7, "templat": 7, "get_log_record": 7, "namespace_regexp": [7, 8], "bigger": 7, "minimum": 7, "regexp": 7, "get_trigger_bit": 7, "high": [7, 10], "whenev": 7, "fifolatencymeasur": 7, "measur": 7, "durat": 7, "latenc": 7, "finish": 7, "exponenti": 7, "histogram": 7, "fully_qualified_nam": 7, "slots_numb": 7, "max_lat": 7, "fulli": 7, "qualifi": 7, "human": 7, "width": [7, 9, 10], "bucket": 7, "metrics_en": 7, "previou": 7, "stop": 7, "oldest": 7, "hardwaremetricsmanag": 7, "compos": 7, "get_metr": 7, "hwmetric": 7, "get_register_valu": 7, "metric_nam": 7, "reg_nam": 7, "hold": 7, "load": [7, 9], "min": 7, "hwcounter": 7, "width_bit": 7, "incr": 7, "hwexphistogram": 7, "distribut": 7, "sampl": [7, 8], "through": 7, "observ": 7, "configur": 7, "5": [7, 8], "4": [7, 9], "inf": 7, "addition": 7, "bucket_count": 7, "sample_width": 7, "registers_width": 7, "max_valu": 7, "calcul": 7, "metricmodel": 7, "add_regist": 7, "reg": [7, 9], "hwmetricregist": 7, "inherit": 7, "initi": 7, "hwmetricsenabledkei": 7, "theirs": 7, "synthes": 7, "compris": 7, "dedic": 7, "specif": 7, "determin": [7, 9], "user": 7, "join": 7, "metricregistermodel": 7, "associ": 7, "fundament": 7, "singular": 7, "among": 7, "reman": 7, "brief": 7, "taggedcount": 7, "tag": 7, "At": 7, "dynam": [7, 10], "integ": [7, 8, 9], "neg": [7, 8, 9], "ok": 7, "hot": [7, 10], "optim": 7, "tag_width": 7, "one_hot": 7, "underli": 7, "taggedlatencymeasur": 7, "argumentstoresultszipp": 7, "zip": 7, "calle": 7, "asymmetri": 7, "long": 7, "correctli": 7, "rate": 7, "reach": [7, 10], "capac": 7, "topologi": 7, "peek_arg": 7, "write_arg": 7, "args_layout": 7, "write_result": 7, "results_layout": 7, "latest": 7, "client": 7, "somethig": 7, "deseri": 7, "proper": 7, "serialize_in": 7, "serialized_req_method": 7, "serialize_out": 7, "serialized_resp_method": 7, "port_count": 7, "resist": 7, "pipelin": 7, "nonblock": 7, "overlap": 7, "branch": 7, "boolean": 7, "catch": 7, "negat": [7, 9], "influenc": 7, "cond1": 7, "cond2": 7, "asyncmemorybank": 7, "asynchron": 7, "granular": 7, "addr": 7, "data_layout": [7, 9], "address": 7, "appropri": 7, "read_port": 7, "write_port": 7, "memory_typ": 7, "amaranth_typ": 7, "abstractmemoryconstructor": 7, "whole": 7, "split": 7, "accord": [7, 9], "contentaddressablememori": 7, "addres": 7, "short": 7, "cam": 7, "predefin": [7, 8], "fed": 7, "compar": 7, "hit": 7, "push": 7, "behaviour": 7, "nondestruct": 7, "updat": [7, 10], "address_layout": 7, "entries_numb": 7, "layoutlik": 7, "memorybank": 7, "read_req": 7, "read_resp": 7, "transpar": 7, "cattran": 7, "concaten": 7, "src1": 7, "src2": 7, "dst": 7, "collector": 7, "target": 7, "method_list": 7, "connectandmaptran": 7, "behav": 7, "modifi": 7, "i_fun": 7, "recorddict": 7, "o_fun": 7, "methodfilt": 7, "zero": [7, 10], "desir": 7, "use_condit": 7, "drawback": 7, "simultaneu": 7, "bidirect": 7, "i_transform": 7, "o_transform": 7, "unmodifi": 7, "methodproduct": 7, "product": 7, "comput": [7, 9], "methodtryproduct": 7, "tri": 7, "succeed": [7, 8], "data_const_to_dict": 8, "pysimsimul": 8, "max_cycl": 8, "100000": 8, "add_transaction_modul": 8, "traces_fil": 8, "clk_period": 8, "1e": 8, "06": 8, "indefinit": 8, "simpletestcircuit": 8, "_t_haselabor": 8, "dut": 8, "testcasewithsimul": 8, "add_mock": 8, "sim": 8, "val": [8, 9], "methodmock": 8, "fixture_initialize_testing_env": 8, "async": 8, "random_wait": 8, "simulatorcontext": 8, "max_cycle_cnt": 8, "min_cycle_cnt": 8, "random": 8, "random_wait_geom": 8, "prob": 8, "till": 8, "probabl": 8, "reinitialize_fixtur": 8, "run_simul": 8, "tick": 8, "cycle_cnt": 8, "opnop": 8, "generate_based_on_layout": 8, "searchstrategi": 8, "recordintdict": 8, "generate_method_input": 8, "generate_nops_in_list": 8, "max_nop": 8, "generate_list": 8, "generate_process_input": 8, "elem_count": 8, "generate_shrinkable_list": 8, "trick": 8, "http": 8, "github": 8, "com": 8, "hypothesiswork": 8, "hypothesi": 8, "blob": 8, "6867da71beae0e4ed004b54b92ef7c74d0722815": 8, "src": 8, "l143": 8, "insert_nop": 8, "draw": 8, "drawfn": 8, "lst": 8, "make_logging_process": 8, "on_error": 8, "parse_logging_level": 8, "pars": 8, "represent": [8, 9, 10], "effect_process": 8, "output_process": 8, "validate_arguments_process": 8, "def_method_mock": 8, "tb_getter": 8, "handler": 8, "invok": 8, "discov": 8, "side": 8, "modif": 8, "sure": 8, "defer": 8, "sinc": 8, "eagerli": 8, "profiler_process": 8, "calltrigg": 8, "call_tri": 8, "problem": 8, "But": 8, "_call": 8, "tbio": 8, "kwdata": 8, "succe": 8, "ticktrigg": 8, "until_all_don": 8, "until_don": 8, "act": 8, "await": 8, "focu": 8, "call_do": 8, "call_init": 8, "call_result": 8, "get_call_result": 8, "testbenchcontext": 8, "get_don": 8, "get_output": 8, "sample_output": 8, "sample_outputs_don": 8, "sample_outputs_until_don": 8, "set_en": 8, "set_input": 8, "tickskei": 8, "make_tick_count_process": 8, "assigntyp": 9, "lh": 9, "rh": 9, "assignfield": 9, "lhs_strict": 9, "rhs_strict": 9, "mismatch": 9, "explicitli": 9, "castabl": 9, "item": [9, 10], "subfield": 9, "valueerror": 9, "align_down_to_power_of_two": 9, "num": 9, "power": 9, "down": 9, "align": 9, "align_to_power_of_two": 9, "average_dict_of_list": 9, "bits_from_int": 9, "lower": 9, "int_to_sign": 9, "x": 9, "xlen": 9, "convert": 9, "u2": 9, "sign": 9, "layout_subset": 9, "make_hash": 9, "signed_to_int": 9, "auto_debug_sign": 9, "arrai": 9, "gtkw": 9, "dependentcach": 9, "itself": 9, "posit": [9, 10], "cl": 9, "generatedlog": 9, "verilog": 9, "trigger_loc": 9, "signalhandl": 9, "fields_loc": 9, "generationinfo": 9, "variou": 9, "metrics_loc": 9, "metricinfo": 9, "metadata": 9, "metricloc": 9, "transaction_signals_loc": 9, "transactionsignalsloc": 9, "method_signals_loc": 9, "methodsignalsloc": 9, "profile_data": 9, "generate_verilog": 9, "top_nam": 9, "idgener": 9, "async_mock_def_help": 9, "tb": 9, "func": 9, "dataclass_asdict": 9, "def_help": 9, "tp": 9, "extend_layout": 9, "from_method_layout": 9, "get_caller_class_nam": 9, "get_src_loc": 9, "longest_common_prefix": 9, "seq": 9, "make_layout": 9, "method_def_help": 9, "mock_def_help": 9, "silence_mustus": 9, "binari": 10, "low": 10, "graydecod": 10, "grai": 10, "grayencod": 10, "prioritydecod": 10, "priorityencod": 10, "signific": 10, "moduleconnector": 10, "anonym": 10, "multipriorityencod": 10, "extens": 10, "word": 10, "multi": 10, "input_width": 10, "outputs_count": 10, "indici": 10, "ascend": 10, "begin": 10, "build_tre": 10, "in_sig": 10, "start_idx": 10, "prio_encod": 10, "cnt": 10, "one_hot_sing": 10, "idx": 10, "prio": 10, "been": 10, "create_simpl": 10, "hardcod": 10, "onehotswitch": 10, "match": 10, "style": 10, "benefit": 10, "sig": 10, "onehotcas": 10, "0b01": 10, "0b10": 10, "onehotswitchdynam": 10, "signifi": 10, "ringmultipriorityencod": 10, "flexibl": 10, "circular": 10, "inclus": 10, "roundrobin": 10, "greater": 10, "restart": 10, "enableinsert": 10, "deassert": 10, "const_of": 10, "count_leading_zero": 10, "count_trailing_zero": 10, "cyclic_mask": 10, "wide": 10, "flatten_sign": 10, "flatten": 10, "mod_incr": 10, "mod": 10, "popcount": 10, "shape_of": 10, "generic_shift_left": 10, "value1": 10, "value2": 10, "offset": 10, "fill": 10, "space": 10, "shift_left": 10, "rotate_left": 10, "generic_shift_right": 10, "shift_right": 10, "rotate_right": 10, "generic_shift_vec_left": 10, "data1": 10, "_t_valuecast": 10, "data2": 10, "shift_vec_left": 10, "rotate_vec_left": 10, "generic_shift_vec_right": 10, "shift_vec_right": 10, "rotate_vec_right": 10, "rotat": 10, "placehold": 10}, "objects": {"": [[5, 0, 0, "-", "transactron"]], "transactron": [[6, 0, 0, "-", "core"], [5, 0, 0, "-", "graph"], [7, 0, 0, "-", "lib"], [5, 0, 0, "-", "profiler"], [8, 0, 0, "-", "testing"], [5, 0, 0, "-", "tracing"], [9, 0, 0, "-", "utils"]], "transactron.core": [[6, 0, 0, "-", "body"], [6, 0, 0, "-", "keys"], [6, 0, 0, "-", "manager"], [6, 0, 0, "-", "method"], [6, 0, 0, "-", "schedulers"], [6, 0, 0, "-", "sugar"], [6, 0, 0, "-", "tmodule"], [6, 0, 0, "-", "transaction"], [6, 0, 0, "-", "transaction_base"]], "transactron.core.body": [[6, 1, 1, "", "AdapterBodyParams"], [6, 1, 1, "", "Body"], [6, 1, 1, "", "BodyParams"]], "transactron.core.body.AdapterBodyParams": [[6, 2, 1, "", "combiner"], [6, 2, 1, "", "nonexclusive"], [6, 2, 1, "", "single_caller"]], "transactron.core.body.Body": [[6, 3, 1, "", "__init__"], [6, 3, 1, "", "context"], [6, 2, 1, "", "ctrl_path"], [6, 2, 1, "", "def_counter"], [6, 2, 1, "", "def_order"], [6, 3, 1, "", "get"], [6, 2, 1, "", "method_calls"], [6, 2, 1, "", "method_uses"], [6, 3, 1, "", "peek"], [6, 2, 1, "", "stack"]], "transactron.core.body.BodyParams": [[6, 2, 1, "", "combiner"], [6, 2, 1, "", "nonexclusive"], [6, 2, 1, "", "single_caller"], [6, 2, 1, "", "validate_arguments"]], "transactron.core.keys": [[6, 1, 1, "", "TransactionManagerKey"]], "transactron.core.keys.TransactionManagerKey": [[6, 3, 1, "", "__init__"]], "transactron.core.manager": [[6, 1, 1, "", "TransactionComponent"], [6, 1, 1, "", "TransactionManager"], [6, 1, 1, "", "TransactionModule"]], "transactron.core.manager.TransactionComponent": [[6, 3, 1, "", "__init__"]], "transactron.core.manager.TransactionManager": [[6, 3, 1, "", "__init__"], [6, 3, 1, "", "debug_signals"], [6, 3, 1, "", "print_info"], [6, 3, 1, "", "visual_graph"]], "transactron.core.manager.TransactionModule": [[6, 3, 1, "", "__init__"], [6, 3, 1, "", "context"]], "transactron.core.method": [[6, 1, 1, "", "Method"], [6, 1, 1, "", "MethodDir"], [6, 1, 1, "", "Methods"]], "transactron.core.method.Method": [[6, 3, 1, "", "__init__"], [6, 3, 1, "", "body"], [6, 3, 1, "", "debug_signals"], [6, 4, 1, "", "layout_in"], [6, 4, 1, "", "layout_out"], [6, 3, 1, "", "like"], [6, 3, 1, "", "proxy"]], "transactron.core.method.MethodDir": [[6, 2, 1, "", "PROVIDED"], [6, 2, 1, "", "REQUIRED"]], "transactron.core.method.Methods": [[6, 3, 1, "", "__init__"], [6, 3, 1, "", "debug_signals"], [6, 4, 1, "", "layout_in"], [6, 4, 1, "", "layout_out"]], "transactron.core.schedulers": [[6, 5, 1, "", "eager_deterministic_cc_scheduler"], [6, 5, 1, "", "trivial_roundrobin_cc_scheduler"]], "transactron.core.sugar": [[6, 5, 1, "", "def_method"], [6, 5, 1, "", "def_methods"]], "transactron.core.tmodule": [[6, 1, 1, "", "TModule"]], "transactron.core.tmodule.TModule": [[6, 3, 1, "", "AvoidedIf"], [6, 3, 1, "", "Case"], [6, 3, 1, "", "Default"], [6, 3, 1, "", "Elif"], [6, 3, 1, "", "Else"], [6, 3, 1, "", "FSM"], [6, 3, 1, "", "If"], [6, 3, 1, "", "State"], [6, 3, 1, "", "Switch"], [6, 3, 1, "", "__init__"], [6, 4, 1, "", "ctrl_path"], [6, 4, 1, "", "next"]], "transactron.core.transaction": [[6, 1, 1, "", "Transaction"]], "transactron.core.transaction.Transaction": [[6, 3, 1, "", "__init__"], [6, 3, 1, "", "body"], [6, 3, 1, "", "debug_signals"]], "transactron.core.transaction_base": [[6, 1, 1, "", "Priority"], [6, 1, 1, "", "TransactionBase"]], "transactron.core.transaction_base.Priority": [[6, 2, 1, "", "LEFT"], [6, 2, 1, "", "RIGHT"], [6, 2, 1, "", "UNDEFINED"]], "transactron.core.transaction_base.TransactionBase": [[6, 3, 1, "", "__init__"], [6, 3, 1, "", "add_conflict"], [6, 2, 1, "", "independent_list"], [6, 2, 1, "", "relations"], [6, 3, 1, "", "schedule_before"], [6, 3, 1, "", "simultaneous"], [6, 3, 1, "", "simultaneous_alternatives"], [6, 2, 1, "", "simultaneous_list"], [6, 2, 1, "", "src_loc"]], "transactron.graph": [[5, 1, 1, "", "Direction"], [5, 1, 1, "", "Owned"], [5, 1, 1, "", "OwnershipGraph"]], "transactron.graph.Direction": [[5, 2, 1, "", "IN"], [5, 2, 1, "", "INOUT"], [5, 2, 1, "", "NONE"], [5, 2, 1, "", "OUT"], [5, 3, 1, "", "__new__"]], "transactron.graph.Owned": [[5, 3, 1, "", "__init__"], [5, 2, 1, "", "name"], [5, 4, 1, "", "owned_name"], [5, 2, 1, "", "owner"]], "transactron.graph.OwnershipGraph": [[5, 3, 1, "", "__init__"], [5, 3, 1, "", "dump"], [5, 3, 1, "", "dump_dot"], [5, 3, 1, "", "dump_elk"], [5, 3, 1, "", "dump_mermaid"], [5, 3, 1, "", "get_hier_name"], [5, 3, 1, "", "get_name"], [5, 3, 1, "", "insert_edge"], [5, 3, 1, "", "insert_node"], [5, 2, 1, "", "mermaid_direction"], [5, 3, 1, "", "prune"], [5, 3, 1, "", "remember"], [5, 3, 1, "", "remember_field"]], "transactron.lib": [[7, 0, 0, "-", "adapters"], [7, 0, 0, "-", "allocators"], [7, 0, 0, "-", "buttons"], [7, 0, 0, "-", "connectors"], [7, 0, 0, "-", "dependencies"], [7, 0, 0, "-", "fifo"], [7, 0, 0, "-", "logging"], [7, 0, 0, "-", "metrics"], [7, 0, 0, "-", "reqres"], [7, 0, 0, "-", "simultaneous"], [7, 0, 0, "-", "storage"], [7, 0, 0, "-", "transformers"]], "transactron.lib.adapters": [[7, 1, 1, "", "Adapter"], [7, 1, 1, "", "AdapterBase"], [7, 1, 1, "", "AdapterTrans"]], "transactron.lib.adapters.Adapter": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "create"], [7, 3, 1, "", "set"], [7, 3, 1, "", "update_args"]], "transactron.lib.adapters.AdapterBase": [[7, 3, 1, "", "__init__"], [7, 2, 1, "", "data_in"], [7, 2, 1, "", "data_out"], [7, 3, 1, "", "debug_signals"], [7, 2, 1, "", "done"], [7, 2, 1, "", "en"]], "transactron.lib.adapters.AdapterTrans": [[7, 3, 1, "", "__init__"]], "transactron.lib.allocators": [[7, 1, 1, "", "PriorityEncoderAllocator"]], "transactron.lib.allocators.PriorityEncoderAllocator": [[7, 3, 1, "", "__init__"]], "transactron.lib.buttons": [[7, 1, 1, "", "ClickIn"], [7, 1, 1, "", "ClickOut"]], "transactron.lib.buttons.ClickIn": [[7, 3, 1, "", "__init__"]], "transactron.lib.buttons.ClickOut": [[7, 3, 1, "", "__init__"]], "transactron.lib.connectors": [[7, 1, 1, "", "Connect"], [7, 1, 1, "", "ConnectTrans"], [7, 1, 1, "", "FIFO"], [7, 1, 1, "", "Forwarder"], [7, 1, 1, "", "ManyToOneConnectTrans"], [7, 1, 1, "", "Pipe"], [7, 1, 1, "", "StableSelectingNetwork"]], "transactron.lib.connectors.Connect": [[7, 3, 1, "", "__init__"]], "transactron.lib.connectors.ConnectTrans": [[7, 3, 1, "", "__init__"]], "transactron.lib.connectors.FIFO": [[7, 3, 1, "", "__init__"]], "transactron.lib.connectors.Forwarder": [[7, 3, 1, "", "__init__"]], "transactron.lib.connectors.ManyToOneConnectTrans": [[7, 3, 1, "", "__init__"]], "transactron.lib.connectors.Pipe": [[7, 3, 1, "", "__init__"]], "transactron.lib.connectors.StableSelectingNetwork": [[7, 3, 1, "", "__init__"]], "transactron.lib.dependencies": [[7, 1, 1, "", "DependencyKey"], [7, 1, 1, "", "DependencyManager"], [7, 1, 1, "", "ListKey"], [7, 1, 1, "", "SimpleKey"], [7, 1, 1, "", "UnifierKey"]], "transactron.lib.dependencies.DependencyKey": [[7, 2, 1, "", "cache"], [7, 3, 1, "", "combine"], [7, 2, 1, "", "empty_valid"], [7, 2, 1, "", "lock_on_get"]], "transactron.lib.dependencies.DependencyManager": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "add_dependency"], [7, 3, 1, "", "get_dependency"], [7, 3, 1, "", "get_optional_dependency"]], "transactron.lib.dependencies.ListKey": [[7, 3, 1, "", "combine"], [7, 2, 1, "", "empty_valid"]], "transactron.lib.dependencies.SimpleKey": [[7, 3, 1, "", "combine"], [7, 2, 1, "", "default_value"]], "transactron.lib.dependencies.UnifierKey": [[7, 3, 1, "", "combine"], [7, 2, 1, "", "unifier"]], "transactron.lib.fifo": [[7, 1, 1, "", "BasicFifo"], [7, 1, 1, "", "Semaphore"], [7, 1, 1, "", "WideFifo"]], "transactron.lib.fifo.BasicFifo": [[7, 3, 1, "", "__init__"]], "transactron.lib.fifo.Semaphore": [[7, 3, 1, "", "__init__"]], "transactron.lib.fifo.WideFifo": [[7, 3, 1, "", "__init__"]], "transactron.lib.logging": [[7, 1, 1, "", "HardwareLogger"], [7, 1, 1, "", "LogKey"], [7, 2, 1, "", "LogLevel"], [7, 1, 1, "", "LogRecord"], [7, 1, 1, "", "LogRecordInfo"], [7, 5, 1, "", "get_log_records"], [7, 5, 1, "", "get_trigger_bit"]], "transactron.lib.logging.HardwareLogger": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "assertion"], [7, 3, 1, "", "debug"], [7, 3, 1, "", "error"], [7, 3, 1, "", "info"], [7, 3, 1, "", "log"], [7, 3, 1, "", "warning"]], "transactron.lib.logging.LogKey": [[7, 3, 1, "", "__init__"]], "transactron.lib.logging.LogRecord": [[7, 3, 1, "", "__init__"], [7, 2, 1, "", "fields"], [7, 2, 1, "", "trigger"]], "transactron.lib.logging.LogRecordInfo": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "format"], [7, 2, 1, "", "format_str"], [7, 3, 1, "", "from_dict"], [7, 3, 1, "", "from_json"], [7, 2, 1, "", "level"], [7, 2, 1, "", "location"], [7, 2, 1, "", "logger_name"], [7, 3, 1, "", "schema"], [7, 3, 1, "", "to_dict"], [7, 3, 1, "", "to_json"]], "transactron.lib.metrics": [[7, 1, 1, "", "FIFOLatencyMeasurer"], [7, 1, 1, "", "HardwareMetricsManager"], [7, 1, 1, "", "HwCounter"], [7, 1, 1, "", "HwExpHistogram"], [7, 1, 1, "", "HwMetric"], [7, 1, 1, "", "HwMetricsEnabledKey"], [7, 1, 1, "", "MetricModel"], [7, 1, 1, "", "MetricRegisterModel"], [7, 1, 1, "", "TaggedCounter"], [7, 1, 1, "", "TaggedLatencyMeasurer"]], "transactron.lib.metrics.FIFOLatencyMeasurer": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "metrics_enabled"], [7, 3, 1, "", "start"], [7, 3, 1, "", "stop"]], "transactron.lib.metrics.HardwareMetricsManager": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "debug_signals"], [7, 3, 1, "", "get_metrics"], [7, 3, 1, "", "get_register_value"]], "transactron.lib.metrics.HwCounter": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "incr"]], "transactron.lib.metrics.HwExpHistogram": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "add"]], "transactron.lib.metrics.HwMetric": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "add_registers"], [7, 3, 1, "", "metrics_enabled"]], "transactron.lib.metrics.HwMetricsEnabledKey": [[7, 3, 1, "", "__init__"], [7, 2, 1, "", "default_value"], [7, 2, 1, "", "empty_valid"], [7, 2, 1, "", "lock_on_get"]], "transactron.lib.metrics.MetricModel": [[7, 3, 1, "", "__init__"], [7, 2, 1, "", "description"], [7, 3, 1, "", "from_dict"], [7, 3, 1, "", "from_json"], [7, 2, 1, "", "fully_qualified_name"], [7, 2, 1, "", "regs"], [7, 3, 1, "", "schema"], [7, 3, 1, "", "to_dict"], [7, 3, 1, "", "to_json"]], "transactron.lib.metrics.MetricRegisterModel": [[7, 3, 1, "", "__init__"], [7, 2, 1, "", "description"], [7, 3, 1, "", "from_dict"], [7, 3, 1, "", "from_json"], [7, 2, 1, "", "name"], [7, 3, 1, "", "schema"], [7, 3, 1, "", "to_dict"], [7, 3, 1, "", "to_json"], [7, 2, 1, "", "width"]], "transactron.lib.metrics.TaggedCounter": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "incr"]], "transactron.lib.metrics.TaggedLatencyMeasurer": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "metrics_enabled"], [7, 3, 1, "", "start"], [7, 3, 1, "", "stop"]], "transactron.lib.reqres": [[7, 1, 1, "", "ArgumentsToResultsZipper"], [7, 1, 1, "", "Serializer"]], "transactron.lib.reqres.ArgumentsToResultsZipper": [[7, 3, 1, "", "__init__"]], "transactron.lib.reqres.Serializer": [[7, 3, 1, "", "__init__"]], "transactron.lib.simultaneous": [[7, 5, 1, "", "condition"]], "transactron.lib.storage": [[7, 1, 1, "", "AsyncMemoryBank"], [7, 1, 1, "", "ContentAddressableMemory"], [7, 1, 1, "", "MemoryBank"]], "transactron.lib.storage.AsyncMemoryBank": [[7, 3, 1, "", "__init__"]], "transactron.lib.storage.ContentAddressableMemory": [[7, 3, 1, "", "__init__"]], "transactron.lib.storage.MemoryBank": [[7, 3, 1, "", "__init__"]], "transactron.lib.transformers": [[7, 1, 1, "", "CatTrans"], [7, 1, 1, "", "Collector"], [7, 1, 1, "", "ConnectAndMapTrans"], [7, 1, 1, "", "MethodFilter"], [7, 1, 1, "", "MethodMap"], [7, 1, 1, "", "MethodProduct"], [7, 1, 1, "", "MethodTryProduct"], [7, 1, 1, "", "Transformer"], [7, 1, 1, "", "Unifier"]], "transactron.lib.transformers.CatTrans": [[7, 3, 1, "", "__init__"]], "transactron.lib.transformers.Collector": [[7, 3, 1, "", "__init__"]], "transactron.lib.transformers.ConnectAndMapTrans": [[7, 3, 1, "", "__init__"]], "transactron.lib.transformers.MethodFilter": [[7, 3, 1, "", "__init__"]], "transactron.lib.transformers.MethodMap": [[7, 3, 1, "", "__init__"]], "transactron.lib.transformers.MethodProduct": [[7, 3, 1, "", "__init__"]], "transactron.lib.transformers.MethodTryProduct": [[7, 3, 1, "", "__init__"]], "transactron.lib.transformers.Transformer": [[7, 2, 1, "", "method"], [7, 3, 1, "", "use"]], "transactron.lib.transformers.Unifier": [[7, 3, 1, "", "__init__"], [7, 2, 1, "", "method"]], "transactron.profiler": [[5, 1, 1, "", "MethodSamples"], [5, 1, 1, "", "Profile"], [5, 1, 1, "", "ProfileData"], [5, 1, 1, "", "ProfileInfo"], [5, 1, 1, "", "ProfileSamples"], [5, 1, 1, "", "RunStat"], [5, 1, 1, "", "RunStatNode"], [5, 1, 1, "", "TransactionSamples"]], "transactron.profiler.MethodSamples": [[5, 3, 1, "", "__init__"], [5, 2, 1, "", "run"]], "transactron.profiler.Profile": [[5, 3, 1, "", "__init__"], [5, 3, 1, "", "analyze_methods"], [5, 3, 1, "", "analyze_transactions"], [5, 2, 1, "", "cycles"], [5, 3, 1, "", "decode"], [5, 3, 1, "", "encode"], [5, 3, 1, "", "from_dict"], [5, 3, 1, "", "from_json"], [5, 3, 1, "", "schema"], [5, 3, 1, "", "to_dict"], [5, 3, 1, "", "to_json"], [5, 2, 1, "", "transactions_and_methods"]], "transactron.profiler.ProfileData": [[5, 3, 1, "", "__init__"], [5, 3, 1, "", "make"], [5, 2, 1, "", "method_parents"], [5, 2, 1, "", "transaction_conflicts"], [5, 2, 1, "", "transactions_and_methods"], [5, 2, 1, "", "transactions_by_method"]], "transactron.profiler.ProfileInfo": [[5, 3, 1, "", "__init__"], [5, 3, 1, "", "from_dict"], [5, 3, 1, "", "from_json"], [5, 2, 1, "", "is_transaction"], [5, 2, 1, "", "name"], [5, 3, 1, "", "schema"], [5, 2, 1, "", "src_loc"], [5, 3, 1, "", "to_dict"], [5, 3, 1, "", "to_json"]], "transactron.profiler.ProfileSamples": [[5, 3, 1, "", "__init__"], [5, 2, 1, "", "methods"], [5, 2, 1, "", "transactions"]], "transactron.profiler.RunStat": [[5, 3, 1, "", "__init__"], [5, 2, 1, "", "locked"], [5, 3, 1, "", "make"], [5, 2, 1, "", "name"], [5, 2, 1, "", "run"], [5, 2, 1, "", "src_loc"]], "transactron.profiler.RunStatNode": [[5, 3, 1, "", "__init__"], [5, 2, 1, "", "callers"], [5, 3, 1, "", "make"], [5, 2, 1, "", "stat"]], "transactron.profiler.TransactionSamples": [[5, 3, 1, "", "__init__"], [5, 2, 1, "", "grant"], [5, 2, 1, "", "request"], [5, 2, 1, "", "runnable"]], "transactron.testing": [[8, 0, 0, "-", "functions"], [8, 0, 0, "-", "infrastructure"], [8, 0, 0, "-", "input_generation"], [8, 0, 0, "-", "logging"], [8, 0, 0, "-", "method_mock"], [8, 0, 0, "-", "profiler"], [8, 0, 0, "-", "testbenchio"], [8, 0, 0, "-", "tick_count"]], "transactron.testing.functions": [[8, 5, 1, "", "data_const_to_dict"]], "transactron.testing.infrastructure": [[8, 1, 1, "", "PysimSimulator"], [8, 1, 1, "", "SimpleTestCircuit"], [8, 1, 1, "", "TestCaseWithSimulator"]], "transactron.testing.infrastructure.PysimSimulator": [[8, 3, 1, "", "__init__"], [8, 3, 1, "", "run"]], "transactron.testing.infrastructure.SimpleTestCircuit": [[8, 3, 1, "", "__init__"], [8, 3, 1, "", "debug_signals"]], "transactron.testing.infrastructure.TestCaseWithSimulator": [[8, 3, 1, "", "add_mock"], [8, 2, 1, "", "dependency_manager"], [8, 3, 1, "", "fixture_initialize_testing_env"], [8, 3, 1, "", "random_wait"], [8, 3, 1, "", "random_wait_geom"], [8, 3, 1, "", "reinitialize_fixtures"], [8, 3, 1, "", "run_simulation"], [8, 3, 1, "", "tick"]], "transactron.testing.input_generation": [[8, 1, 1, "", "OpNOP"], [8, 5, 1, "", "generate_based_on_layout"], [8, 5, 1, "", "generate_method_input"], [8, 5, 1, "", "generate_nops_in_list"], [8, 5, 1, "", "generate_process_input"], [8, 5, 1, "", "generate_shrinkable_list"], [8, 5, 1, "", "insert_nops"]], "transactron.testing.logging": [[8, 5, 1, "", "make_logging_process"], [8, 5, 1, "", "parse_logging_level"]], "transactron.testing.method_mock": [[8, 1, 1, "", "MethodMock"], [8, 5, 1, "", "def_method_mock"]], "transactron.testing.method_mock.MethodMock": [[8, 3, 1, "", "__init__"], [8, 3, 1, "", "effect"], [8, 3, 1, "", "effect_process"], [8, 3, 1, "", "output_process"], [8, 3, 1, "", "validate_arguments_process"]], "transactron.testing.profiler": [[8, 5, 1, "", "profiler_process"]], "transactron.testing.testbenchio": [[8, 1, 1, "", "CallTrigger"], [8, 1, 1, "", "TestbenchIO"]], "transactron.testing.testbenchio.CallTrigger": [[8, 3, 1, "", "__init__"], [8, 3, 1, "", "call"], [8, 3, 1, "", "sample"], [8, 3, 1, "", "until_all_done"], [8, 3, 1, "", "until_done"]], "transactron.testing.testbenchio.TestbenchIO": [[8, 3, 1, "", "__init__"], [8, 3, 1, "", "call"], [8, 3, 1, "", "call_do"], [8, 3, 1, "", "call_init"], [8, 3, 1, "", "call_result"], [8, 3, 1, "", "call_try"], [8, 3, 1, "", "disable"], [8, 4, 1, "", "done"], [8, 3, 1, "", "enable"], [8, 3, 1, "", "get_call_result"], [8, 3, 1, "", "get_done"], [8, 3, 1, "", "get_outputs"], [8, 4, 1, "", "outputs"], [8, 3, 1, "", "sample_outputs"], [8, 3, 1, "", "sample_outputs_done"], [8, 3, 1, "", "sample_outputs_until_done"], [8, 3, 1, "", "set_enable"], [8, 3, 1, "", "set_inputs"]], "transactron.testing.tick_count": [[8, 1, 1, "", "TicksKey"], [8, 5, 1, "", "make_tick_count_process"]], "transactron.testing.tick_count.TicksKey": [[8, 3, 1, "", "__init__"]], "transactron.tracing": [[5, 1, 1, "", "TracingEnabler"], [5, 1, 1, "", "TracingFragment"], [5, 1, 1, "", "TracingFragmentTransformer"], [5, 1, 1, "", "TracingInstance"]], "transactron.tracing.TracingFragment": [[5, 3, 1, "", "get"], [5, 3, 1, "", "prepare"], [5, 2, 1, "", "subfragments"]], "transactron.tracing.TracingFragmentTransformer": [[5, 3, 1, "", "on_fragment"]], "transactron.tracing.TracingInstance": [[5, 3, 1, "", "get"]], "transactron.utils": [[10, 0, 0, "-", "amaranth_ext"], [9, 0, 0, "-", "assign"], [9, 0, 0, "-", "data_repr"], [9, 0, 0, "-", "debug_signals"], [9, 0, 0, "-", "depcache"], [9, 0, 0, "-", "dependencies"], [9, 0, 0, "-", "gen"], [9, 0, 0, "-", "idgen"], [9, 0, 0, "-", "transactron_helpers"]], "transactron.utils.amaranth_ext": [[10, 0, 0, "-", "coding"], [10, 0, 0, "-", "elaboratables"], [10, 0, 0, "-", "functions"], [10, 0, 0, "-", "shifter"]], "transactron.utils.amaranth_ext.coding": [[10, 1, 1, "", "Decoder"], [10, 1, 1, "", "Encoder"], [10, 1, 1, "", "GrayDecoder"], [10, 1, 1, "", "GrayEncoder"], [10, 1, 1, "", "PriorityDecoder"], [10, 1, 1, "", "PriorityEncoder"]], "transactron.utils.amaranth_ext.coding.Decoder": [[10, 3, 1, "", "__init__"]], "transactron.utils.amaranth_ext.coding.Encoder": [[10, 3, 1, "", "__init__"]], "transactron.utils.amaranth_ext.coding.GrayDecoder": [[10, 3, 1, "", "__init__"]], "transactron.utils.amaranth_ext.coding.GrayEncoder": [[10, 3, 1, "", "__init__"]], "transactron.utils.amaranth_ext.coding.PriorityEncoder": [[10, 3, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables": [[10, 1, 1, "", "ModuleConnector"], [10, 1, 1, "", "MultiPriorityEncoder"], [10, 5, 1, "", "OneHotSwitch"], [10, 5, 1, "", "OneHotSwitchDynamic"], [10, 1, 1, "", "RingMultiPriorityEncoder"], [10, 1, 1, "", "RoundRobin"], [10, 1, 1, "", "Scheduler"]], "transactron.utils.amaranth_ext.elaboratables.ModuleConnector": [[10, 3, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables.MultiPriorityEncoder": [[10, 3, 1, "", "__init__"], [10, 3, 1, "", "build_tree"], [10, 3, 1, "", "create"], [10, 3, 1, "", "create_simple"]], "transactron.utils.amaranth_ext.elaboratables.RingMultiPriorityEncoder": [[10, 3, 1, "", "__init__"], [10, 3, 1, "", "create"], [10, 3, 1, "", "create_simple"]], "transactron.utils.amaranth_ext.elaboratables.RoundRobin": [[10, 3, 1, "", "__init__"]], "transactron.utils.amaranth_ext.elaboratables.Scheduler": [[10, 3, 1, "", "__init__"]], "transactron.utils.amaranth_ext.functions": [[10, 5, 1, "", "const_of"], [10, 5, 1, "", "count_leading_zeros"], [10, 5, 1, "", "count_trailing_zeros"], [10, 5, 1, "", "cyclic_mask"], [10, 5, 1, "", "flatten_signals"], [10, 5, 1, "", "mod_incr"], [10, 5, 1, "", "popcount"], [10, 5, 1, "", "shape_of"]], "transactron.utils.amaranth_ext.shifter": [[10, 5, 1, "", "generic_shift_left"], [10, 5, 1, "", "generic_shift_right"], [10, 5, 1, "", "generic_shift_vec_left"], [10, 5, 1, "", "generic_shift_vec_right"], [10, 5, 1, "", "rotate_left"], [10, 5, 1, "", "rotate_right"], [10, 5, 1, "", "rotate_vec_left"], [10, 5, 1, "", "rotate_vec_right"], [10, 5, 1, "", "shift_left"], [10, 5, 1, "", "shift_right"], [10, 5, 1, "", "shift_vec_left"], [10, 5, 1, "", "shift_vec_right"]], "transactron.utils.assign": [[9, 1, 1, "", "AssignType"], [9, 5, 1, "", "assign"]], "transactron.utils.assign.AssignType": [[9, 2, 1, "", "ALL"], [9, 2, 1, "", "COMMON"], [9, 2, 1, "", "LHS"], [9, 2, 1, "", "RHS"]], "transactron.utils.data_repr": [[9, 5, 1, "", "align_down_to_power_of_two"], [9, 5, 1, "", "align_to_power_of_two"], [9, 5, 1, "", "average_dict_of_lists"], [9, 5, 1, "", "bits_from_int"], [9, 5, 1, "", "data_layout"], [9, 5, 1, "", "int_to_signed"], [9, 5, 1, "", "layout_subset"], [9, 5, 1, "", "make_hashable"], [9, 5, 1, "", "neg"], [9, 5, 1, "", "signed_to_int"]], "transactron.utils.debug_signals": [[9, 5, 1, "", "auto_debug_signals"]], "transactron.utils.depcache": [[9, 1, 1, "", "DependentCache"]], "transactron.utils.depcache.DependentCache": [[9, 3, 1, "", "__init__"], [9, 3, 1, "", "get"]], "transactron.utils.dependencies": [[9, 1, 1, "", "DependencyContext"], [9, 1, 1, "", "DependencyKey"], [9, 1, 1, "", "DependencyManager"], [9, 1, 1, "", "ListKey"], [9, 1, 1, "", "SimpleKey"]], "transactron.utils.dependencies.DependencyContext": [[9, 3, 1, "", "__init__"], [9, 3, 1, "", "get"], [9, 2, 1, "", "stack"]], "transactron.utils.dependencies.DependencyKey": [[9, 2, 1, "", "cache"], [9, 3, 1, "", "combine"], [9, 2, 1, "", "empty_valid"], [9, 2, 1, "", "lock_on_get"]], "transactron.utils.dependencies.DependencyManager": [[9, 3, 1, "", "__init__"], [9, 3, 1, "", "add_dependency"], [9, 3, 1, "", "get_dependency"], [9, 3, 1, "", "get_optional_dependency"]], "transactron.utils.dependencies.ListKey": [[9, 3, 1, "", "combine"], [9, 2, 1, "", "empty_valid"]], "transactron.utils.dependencies.SimpleKey": [[9, 3, 1, "", "combine"], [9, 2, 1, "", "default_value"]], "transactron.utils.gen": [[9, 1, 1, "", "GeneratedLog"], [9, 1, 1, "", "GenerationInfo"], [9, 1, 1, "", "MetricLocation"], [9, 5, 1, "", "generate_verilog"]], "transactron.utils.gen.GeneratedLog": [[9, 3, 1, "", "__init__"], [9, 2, 1, "", "fields_location"], [9, 3, 1, "", "from_dict"], [9, 3, 1, "", "from_json"], [9, 3, 1, "", "schema"], [9, 3, 1, "", "to_dict"], [9, 3, 1, "", "to_json"], [9, 2, 1, "", "trigger_location"]], "transactron.utils.gen.GenerationInfo": [[9, 3, 1, "", "__init__"], [9, 3, 1, "", "decode"], [9, 3, 1, "", "encode"], [9, 3, 1, "", "from_dict"], [9, 3, 1, "", "from_json"], [9, 2, 1, "", "logs"], [9, 2, 1, "", "method_signals_location"], [9, 2, 1, "", "metrics_location"], [9, 2, 1, "", "profile_data"], [9, 3, 1, "", "schema"], [9, 3, 1, "", "to_dict"], [9, 3, 1, "", "to_json"], [9, 2, 1, "", "transaction_signals_location"]], "transactron.utils.gen.MetricLocation": [[9, 3, 1, "", "__init__"], [9, 3, 1, "", "from_dict"], [9, 3, 1, "", "from_json"], [9, 2, 1, "", "regs"], [9, 3, 1, "", "schema"], [9, 3, 1, "", "to_dict"], [9, 3, 1, "", "to_json"]], "transactron.utils.idgen": [[9, 1, 1, "", "IdGenerator"]], "transactron.utils.idgen.IdGenerator": [[9, 3, 1, "", "__init__"]], "transactron.utils.transactron_helpers": [[9, 5, 1, "", "async_mock_def_helper"], [9, 5, 1, "", "dataclass_asdict"], [9, 5, 1, "", "def_helper"], [9, 5, 1, "", "extend_layout"], [9, 5, 1, "", "from_method_layout"], [9, 5, 1, "", "get_caller_class_name"], [9, 5, 1, "", "get_src_loc"], [9, 5, 1, "", "longest_common_prefix"], [9, 5, 1, "", "make_layout"], [9, 5, 1, "", "method_def_helper"], [9, 5, 1, "", "mock_def_helper"], [9, 5, 1, "", "silence_mustuse"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:property", "5": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"], "5": ["py", "function", "Python function"]}, "titleterms": {"api": 0, "transactron": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10], "develop": 1, "environ": 1, "set": 1, "up": 1, "run": 1, "test": [1, 8], "us": 1, "script": 1, "lint": 1, "sh": 1, "build_doc": 1, "tprof": 1, "py": 1, "document": 4, "introduct": 4, "basic": 4, "usag": 4, "implement": 4, "transact": [4, 6], "method": [4, 6], "argument": 4, "pass": 4, "convent": 4, "definit": 4, "return": 4, "valu": 4, "readi": 4, "signal": 4, "The": 4, "librari": 4, "advanc": 4, "concept": 4, "special": 4, "combin": 4, "domain": 4, "schedul": [4, 6], "order": 4, "conflict": 4, "nest": 4, "packag": [5, 6, 7, 8, 9, 10], "subpackag": [5, 9], "submodul": [5, 6, 7, 8, 9, 10], "graph": 5, "modul": [5, 6, 7, 8, 9, 10], "profil": [5, 8], "trace": 5, "content": [5, 6, 7, 8, 9, 10], "core": 6, "bodi": 6, "kei": 6, "manag": 6, "sugar": 6, "tmodul": 6, "transaction_bas": 6, "lib": 7, "adapt": 7, "alloc": 7, "button": 7, "connector": 7, "depend": [7, 9], "fifo": 7, "log": [7, 8], "metric": 7, "reqr": 7, "simultan": 7, "storag": 7, "transform": 7, "function": [8, 10], "infrastructur": 8, "input_gener": 8, "method_mock": 8, "testbenchio": 8, "tick_count": 8, "util": [9, 10], "assign": 9, "data_repr": 9, "debug_sign": 9, "depcach": 9, "gen": 9, "idgen": 9, "transactron_help": 9, "amaranth_ext": 10, "code": 10, "elaborat": 10, "shifter": 10}, "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.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/transactions.html b/transactions.html index da8a27f..fc49225 100644 --- a/transactions.html +++ b/transactions.html @@ -400,7 +400,7 @@

Transaction and method nesting

© Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:45 2025-01-14. + Last updated on 11:46 2025-01-17.

diff --git a/transactron.core.html b/transactron.core.html index 511d7f6..b930eaf 100644 --- a/transactron.core.html +++ b/transactron.core.html @@ -1020,7 +1020,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:45 2025-01-14. + Last updated on 11:46 2025-01-17.

diff --git a/transactron.html b/transactron.html index 73c27ad..83551a7 100644 --- a/transactron.html +++ b/transactron.html @@ -752,7 +752,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:45 2025-01-14. + Last updated on 11:46 2025-01-17.

diff --git a/transactron.lib.html b/transactron.lib.html index 4b1bdcf..2091f49 100644 --- a/transactron.lib.html +++ b/transactron.lib.html @@ -1890,16 +1890,17 @@

Submodules
-__init__(*, data_layout: list[tuple[str, 'ShapeLike | LayoutList']], elem_count: int, granularity: ~typing.Optional[int] = None, read_ports: int = 1, write_ports: int = 1, memory_type: ~amaranth_types.memory.AbstractMemoryConstructor[int, ~amaranth.hdl._ast.Value] = <class 'amaranth.lib.memory.Memory'>, src_loc: int | tuple[str, int] = 0)
+__init__(*, shape: amaranth.hdl._ast.Shape | amaranth.hdl._ast.ShapeCastable | int | range | type[enum.Enum], depth: int, granularity: ~typing.Optional[int] = None, read_ports: int = 1, write_ports: int = 1, memory_type: ~amaranth_types.memory.AbstractMemoryConstructor[amaranth.hdl._ast.Shape | amaranth.hdl._ast.ShapeCastable | int | range | type[enum.Enum], ~amaranth.hdl._ast.Value] = <class 'amaranth.lib.memory.Memory'>, src_loc: int | tuple[str, int] = 0)
Parameters
-
data_layout: method layout

The format of structures stored in the Memory.

+
shape: ShapeLike

The format of structures stored in the Memory.

-
elem_count: int

Number of elements stored in Memory.

+
depth: int

Number of elements stored in Memory.

-
granularity: Optional[int]

Granularity of write, forwarded to Amaranth. If None the whole structure is always saved at once. -If not, the width of data_layout is split into granularity parts, which can be saved independently.

+
granularity: Optional[int]

Granularity of write. If None the whole structure is always saved at once. +If not, shape is split into granularity parts, which can be saved independently (according to +amaranth.lib.memory granularity logic).

read_ports: int

Number of read ports.

@@ -1947,7 +1948,7 @@

Submodules
-__init__(address_layout: amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, 'ShapeLike | LayoutList']], data_layout: amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, 'ShapeLike | LayoutList']], entries_number: int)
+__init__(address_layout: amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, amaranth.hdl._ast.Shape | amaranth.hdl._ast.ShapeCastable | int | range | type[enum.Enum] | list[tuple[str, ForwardRef('ShapeLike | LayoutList')]]]], data_layout: amaranth.lib.data.StructLayout | collections.abc.Iterable[tuple[str, amaranth.hdl._ast.Shape | amaranth.hdl._ast.ShapeCastable | int | range | type[enum.Enum] | list[tuple[str, ForwardRef('ShapeLike | LayoutList')]]]], entries_number: int)
Parameters
@@ -1989,16 +1990,17 @@

Submodules
-__init__(*, data_layout: list[tuple[str, 'ShapeLike | LayoutList']], elem_count: int, granularity: ~typing.Optional[int] = None, transparent: bool = False, read_ports: int = 1, write_ports: int = 1, memory_type: ~amaranth_types.memory.AbstractMemoryConstructor[int, ~amaranth.hdl._ast.Value] = <class 'amaranth.lib.memory.Memory'>, src_loc: int | tuple[str, int] = 0)
+__init__(*, shape: amaranth.hdl._ast.Shape | amaranth.hdl._ast.ShapeCastable | int | range | type[enum.Enum], depth: int, granularity: ~typing.Optional[int] = None, transparent: bool = False, read_ports: int = 1, write_ports: int = 1, memory_type: ~amaranth_types.memory.AbstractMemoryConstructor[amaranth.hdl._ast.Shape | amaranth.hdl._ast.ShapeCastable | int | range | type[enum.Enum], ~amaranth.hdl._ast.Value] = <class 'amaranth.lib.memory.Memory'>, src_loc: int | tuple[str, int] = 0)
Parameters
-
data_layout: method layout

The format of structures stored in the Memory.

+
shape: ShapeLike

The format of structures stored in the Memory.

-
elem_count: int

Number of elements stored in Memory.

+
depth: int

Number of elements stored in Memory.

-
granularity: Optional[int]

Granularity of write, forwarded to Amaranth. If None the whole structure is always saved at once. -If not, the width of data_layout is split into granularity parts, which can be saved independently.

+
granularity: Optional[int]

Granularity of write. If None the whole structure is always saved at once. +If not, shape is split into granularity parts, which can be saved independently (according to +amaranth.lib.memory granularity logic).

transparent: bool

Read port transparency, false by default. When a read port is transparent, if a given memory address is read and written in the same clock cycle, the read returns the written value instead of the value @@ -2357,7 +2359,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:45 2025-01-14. + Last updated on 11:46 2025-01-17.

diff --git a/transactron.testing.html b/transactron.testing.html index 33d096d..c98bb69 100644 --- a/transactron.testing.html +++ b/transactron.testing.html @@ -528,7 +528,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:45 2025-01-14. + Last updated on 11:46 2025-01-17.

diff --git a/transactron.utils.amaranth_ext.html b/transactron.utils.amaranth_ext.html index f86ccd3..72b0194 100644 --- a/transactron.utils.amaranth_ext.html +++ b/transactron.utils.amaranth_ext.html @@ -994,7 +994,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:45 2025-01-14. + Last updated on 11:46 2025-01-17.

diff --git a/transactron.utils.html b/transactron.utils.html index fb61cab..9636d30 100644 --- a/transactron.utils.html +++ b/transactron.utils.html @@ -834,7 +834,7 @@

Submodules

© Copyright Kuźnia Rdzeni, 2025. - Last updated on 15:45 2025-01-14. + Last updated on 11:46 2025-01-17.