From d0ba48890413c6818edbb6c62449d219ef7b0c6a Mon Sep 17 00:00:00 2001 From: Alex Mykyta Date: Sun, 13 Feb 2022 17:25:31 -0800 Subject: [PATCH] Rework cpuif to support transaction pipelining. Add more docs. update simulator --- docs/architecture.rst | 40 ++- docs/cpuif/internal_protocol.rst | 228 ++++++++++++++++++ docs/diagrams/arch.png | Bin 0 -> 151692 bytes docs/diagrams/diagrams.odg | Bin 0 -> 14506 bytes docs/index.rst | 4 +- .../regblock/cpuif/passthrough/__init__.py | 2 + .../cpuif/passthrough/passthrough_tmpl.sv | 2 + peakrdl/regblock/exporter.py | 8 + peakrdl/regblock/module_tmpl.sv | 44 +++- test/README.md | 10 +- test/lib/cpuifs/apb3/apb3_intf_driver.sv | 14 +- .../cpuifs/axi4lite/axi4lite_intf_driver.sv | 30 ++- .../cpuifs/passthrough/passthrough_driver.sv | 83 ++++--- test/lib/cpuifs/passthrough/tb_inst.sv | 4 + test/lib/regblock_testcase.py | 6 +- .../lib/simulators/{modelsim.py => questa.py} | 17 +- test/requirements.txt | 2 +- test/test_pipelined_cpuif/__init__.py | 0 test/test_pipelined_cpuif/regblock.rdl | 8 + test/test_pipelined_cpuif/tb_template.sv | 50 ++++ test/test_pipelined_cpuif/testcase.py | 9 + 21 files changed, 493 insertions(+), 68 deletions(-) create mode 100644 docs/cpuif/internal_protocol.rst create mode 100644 docs/diagrams/arch.png create mode 100644 docs/diagrams/diagrams.odg rename test/lib/simulators/{modelsim.py => questa.py} (79%) create mode 100644 test/test_pipelined_cpuif/__init__.py create mode 100644 test/test_pipelined_cpuif/regblock.rdl create mode 100644 test/test_pipelined_cpuif/tb_template.sv create mode 100644 test/test_pipelined_cpuif/testcase.py diff --git a/docs/architecture.rst b/docs/architecture.rst index 2ea9ad7..7ccc45d 100644 --- a/docs/architecture.rst +++ b/docs/architecture.rst @@ -1,26 +1,54 @@ Register Block Architecture =========================== -TODO: Add full block diagram +The generated register block RTL is organized into several sections. +Each section is automatically generated based on the source register model and +is rendered into the output register block SystermVerilog RTL. + +.. figure:: diagrams/arch.png + +Although it is not completely necessary to know the inner workings of the +generated RTL, it can be helpful to understand the implications of various +exporter configuration options. CPU Interface ------------- +The CPU interface logic layer provides an abstraction between the +application-specific bus protocol and the internal register file logic. +This logic layer normalizes external CPU read & write transactions into a common +:ref:`cpuif_protocol` that is used to interact with the register file. -TODO: describe boundary signals. Timing diagrams Address Decode -------------- +A common address decode operation is generated which computes individual access +strobes for each software-accessible register in the design. +This operation is performed completely combinationally. -TODO: describe boundary signals. Timing diagrams Field Logic ----------- +This layer of the register block implements the storage elements and state-change +logic for every field in the design. Field state is updated based on address +decode strobes from software read/write actions, as well as events from the +hardware interface input struct. +This section also assigns any hardware interface outputs. -TODO: describe boundary signals. Timing diagrams Readback -------- +The readback layer aggregates and reduces all readable registers into a single +read response. During a read operation, the same address decode strobes are used +to select the active register that is being accessed. +This allows for a simple OR-reduction operation to be used to compute the read +data response. -TODO: describe boundary signals. Timing diagrams -Retiming options +For designs with a large number of software-readable registers, an optional +fanin re-timing stage can be enabled. This stage is automatically inserted at a +balanced point in the read-data reduction so that fanin and logic-levels are +optimally reduced. + +A second optional read response retiming register can be enabled in-line with the +path back to the CPU interface layer. This can be useful if the CPU interface protocol +used has a fully combinational response path, and needs to be retimed further. diff --git a/docs/cpuif/internal_protocol.rst b/docs/cpuif/internal_protocol.rst new file mode 100644 index 0000000..64c8448 --- /dev/null +++ b/docs/cpuif/internal_protocol.rst @@ -0,0 +1,228 @@ +.. _cpuif_protocol: + +Internal CPUIF Protocol +======================= + +Internally, the regblock generator uses a common CPU interface handshake +protocol. This strobe-based protocol is designed to add minimal overhead to the +regblock implementation, while also being flexible enough to support advanced +features of a variety of bus interface standards. + + +Signal Descriptions +------------------- + +Request +^^^^^^^ +cpuif_req + When asserted, a read or write transfer will be initiated. + Denotes that the following signals are valid: ``cpuif_addr``, + ``cpuif_req_is_wr``, and ``cpuif_wr_data``. + + A transfer will only initiate if the relevant stall signal is not asserted. + If stalled, the request shall be held until accepted. A request's parameters + (type, address, etc) shall remain static throughout the stall. + +cpuif_addr + Byte-address of the transfer. + +cpuif_req_is_wr + If ``1``, denotes that the current transfer is a write. Otherwise transfer is + a read. + +cpuif_wr_data + Data to be written for the write transfer. This signal is ignored for read + transfers. + +cpuif_req_stall_rd + If asserted, and the next pending request is a read operation, then the + transfer will not be accepted until this signal is deasserted. + +cpuif_req_stall_wr + If asserted, and the next pending request is a read operation, then the + transfer will not be accepted until this signal is deasserted. + + +Read Response +^^^^^^^^^^^^^ +cpuif_rd_ack + Single-cycle strobe indicating a read transfer has completed. + Qualifies that the following signals are valid: ``cpuif_rd_err`` and + ``cpuif_rd_data`` + +cpuif_rd_err + If set, indicates that the read transaction failed and the CPUIF logic + should return an error response if possible. + +cpuif_rd_data + Read data. The width of this is bus is determined by the size of the largest + register in the design. + +Write Response +^^^^^^^^^^^^^^ +cpuif_wr_ack + Single-cycle strobe indicating a write transfer has completed. + Qualifies that the ``cpuif_wr_err`` signal is valid. + +cpuif_wr_err + If set, indicates that the write transaction failed and the CPUIF logic + should return an error response if possible. + + +Transfers +--------- + +Transfers have the following characteristics: + +* Only one transfer can be initiated per clock-cycle. This is implicit as there + is only one set of request signals. +* The register block implementation shall guarantee that only one response can be + asserted in a given clock cycle. Only one ``cpuif_*_ack`` signal can be + asserted at a time. +* Responses shall arrive in the same order as their corresponding request was + dispatched. + + +Basic Transfer +^^^^^^^^^^^^^^ + +Depending on the configuration of the exported register block, transfers can be +fully combinational or they may require one or more clock cycles to complete. +Both are valid and CPU interface logic shall be designed to anticipate either. + +.. wavedrom:: + + { + signal: [ + {name: 'clk', wave: 'p....'}, + {name: 'cpuif_req', wave: '010..'}, + {name: 'cpuif_req_is_wr', wave: 'x2x..'}, + {name: 'cpuif_addr', wave: 'x2x..', data: ['A']}, + {}, + {name: 'cpuif_*_ack', wave: '010..'}, + {name: 'cpuif_*_err', wave: 'x2x..'}, + ], + foot: { + text: "Zero-latency transfer" + } + } + +.. wavedrom:: + + { + signal: [ + {name: 'clk', wave: 'p..|...'}, + {name: 'cpuif_req', wave: '010|...'}, + {name: 'cpuif_req_is_wr', wave: 'x2x|...'}, + {name: 'cpuif_addr', wave: 'x2x|...', data: ['A']}, + {}, + {name: 'cpuif_*_ack', wave: '0..|10.'}, + {name: 'cpuif_*_err', wave: 'x..|2x.'}, + ], + foot: { + text: "Transfer with non-zero latency" + } + } + + +Read & Write Transactions +------------------------- + +Waveforms below show the timing relationship of simple read/write transactions. +For brevity, only showing non-zero latency transfers. + +.. wavedrom:: + + { + signal: [ + {name: 'clk', wave: 'p..|...'}, + {name: 'cpuif_req', wave: '010|...'}, + {name: 'cpuif_req_is_wr', wave: 'x0x|...'}, + {name: 'cpuif_addr', wave: 'x3x|...', data: ['A']}, + {}, + {name: 'cpuif_rd_ack', wave: '0..|10.'}, + {name: 'cpuif_rd_err', wave: 'x..|0x.'}, + {name: 'cpuif_rd_data', wave: 'x..|5x.', data: ['D']}, + ], + foot: { + text: "Read Transaction" + } + } + + +.. wavedrom:: + + { + signal: [ + {name: 'clk', wave: 'p..|...'}, + {name: 'cpuif_req', wave: '010|...'}, + {name: 'cpuif_req_is_wr', wave: 'x1x|...'}, + {name: 'cpuif_addr', wave: 'x3x|...', data: ['A']}, + {name: 'cpuif_wr_data', wave: 'x5x|...', data: ['D']}, + {}, + {name: 'cpuif_wr_ack', wave: '0..|10.'}, + {name: 'cpuif_wr_err', wave: 'x..|0x.'}, + ], + foot: { + text: "Write Transaction" + } + } + + +Transaction Pipelining & Stalls +------------------------------- +If the CPU interface supports it, read and write operations can be pipelined. + +.. wavedrom:: + + { + signal: [ + {name: 'clk', wave: 'p......'}, + {name: 'cpuif_req', wave: '01..0..'}, + {name: 'cpuif_req_is_wr', wave: 'x0..x..'}, + {name: 'cpuif_addr', wave: 'x333x..', data: ['A1', 'A2', 'A3']}, + {}, + {name: 'cpuif_rd_ack', wave: '0.1..0.'}, + {name: 'cpuif_rd_err', wave: 'x.0..x.'}, + {name: 'cpuif_rd_data', wave: 'x.555x.', data: ['D1', 'D2', 'D3']}, + ] + } + +It is very likely that the transfer latency of a read transaction will not +be the same as a write for a given register block configuration. Typically read +operations will be more deeply pipelined. This latency asymmetry would create a +hazard for response collisions. + +In order to eliminate this hazard, additional stall signals are provided to delay +an incoming transfer request if necessary. When asserted, the CPU interface shall +hold the next pending request until the stall is cleared. + +For non-pipelined CPU interfaces that only allow one outstanding transaction at a time, +these can be safely ignored. + +In the following example, the regblock is configured such that: + +* A read transaction takes 1 clock cycle to complete +* A write transaction takes 0 clock cycles to complete + +.. wavedrom:: + + { + signal: [ + {name: 'clk', wave: 'p.......'}, + {name: 'cpuif_req', wave: '01.....0'}, + {name: 'cpuif_req_is_wr', wave: 'x1.0.1.x'}, + {name: 'cpuif_addr', wave: 'x33443.x', data: ['W1', 'W2', 'R1', 'R2', 'W3']}, + {name: 'cpuif_req_stall_wr', wave: '0...1.0.'}, + {}, + {name: 'cpuif_rd_ack', wave: '0...220.', data: ['R1', 'R2']}, + {name: 'cpuif_wr_ack', wave: '0220..20', data: ['W1', 'W2', 'W3']}, + + ] + } + +In the above waveform, observe that: + +* The ``R2`` read request is not affected by the assertion of the write stall, + since the write stall only applies to write requests. +* The ``W3`` write request is stalled for one cycle, and is accepted once the stall is cleared. diff --git a/docs/diagrams/arch.png b/docs/diagrams/arch.png new file mode 100644 index 0000000000000000000000000000000000000000..0aad955f20dc57e23e406459ceec4df2e8d36e42 GIT binary patch literal 151692 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

bqNp@#}q9rMJ1Wl3RS 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

V5=|Gl-V4D5;FJL zmb~{y?;s|$0)ZsE$ zYw6Sj!~#!iQ55`jFn2UYqe`}YXl%7~$>PdVsJoZ$pU@lj?3}B)i3I*S__${jtAc{U!Fv5I+`&>&>n!U`t@8gvMvDDc z{{I6;%9i{O^=D1DwtK5}y)x9U$U?3~g-7SlBt7WI?B5|uMX9#JtdOj;N9NCXN=u?< z+mpKgchQQ-X#AUqpbu-x0I_utyMOlKCUr!U*0!)kWJCm?)66sU&aln<&TfA{#FM!~ zIS(C`lYRXVD#s5A+PBo@Mrl?glCmcm$N0=zSncBa)rgXz{g!iN?$;vT~S~IxhXk7{&h3 z3w}4nsw?Szr;9@(dhES6T7u^YicX;X?LCi+S=0~cnV8t<>FH0G)+$sr)xS!0h z=HY@i8+E@L=>XHA1d7zgchCbxW9udtUneC|oj*(0Z+Hnx$l{R$QceR8>Ci@eMm`9Z z<4rOjReSqFeDIpvwDBcqb$9XX2Z}=SiGmI(a$z(DAeMX&1f2+o+3@s()K>@FR=%6f zOcavvT2P5ZRSN7P_;Qhffx&8Xra3|ARXU(`Tm^Af0!4hLyVR$k(9i)86z2yB&=Ia! z<9@bkhqt!4oV|uU9qL8FxPIiESW$LGiO^Zyr3jbFZ?C~&&D{h?&gz2a{Cff=Z2(?U z3i=b{VUoq3EV6ubzz+rqVWu7H=>Q_uW$d2;k(DUxnEs8k$vn~$%|=2_p2wgR^Eu<( z-j#Gk$3$nQA%!u3hoU=R?B(#Gd4HCW923I`=cG<|$(bt+;L z5)go$bo)78C=3WA3_LI>h|RTq8FaN{1H2N@l%5FyMp1eIL%4Wu@534JDFCAMg*vFg zDrd_#_=xK_rdp7JjvXqs%%j)>_W@*q4-Wqe*}$KBGU#8F6Xpw`#6Ku#k`o+E*zofw zAYjCQ0Y`kB{|hx)!<@nZr>z^bDVcGr393bBDa9hdy9bDz!Rq*uqgx23>_G5ae33v?%EvLVlZe#(E2cGKvILy)U z>k}E7YwX}A{O_8hMqB}qq8Xpjo+7Rf7&!QGlb)U)6&3X~^fCc6l$}(2@Y2Z!W*z`H z>Z66#SXL0OSA6yA6`&hIl0{svo&}+!J_De|>gUHhfdHHXqX~+#H$01ork>$UCg7## z;M+HWy4|1zcTr!Vq3GFe0tR{jvj8ej58wvjaXHt8uGe_+eEE5%T!oPR2vEWa3qZ+k zfIjshL9U~1ejt7%ecJ^ItpET7ARsdXgKV}{%z+Vydf$%_GPy|?JKv(X_p5ES5jl)3%l+Aa4 zHde%A{R`-{tO&#b*e7^5V>0q@bjC*>6tls7ze2kJ5I4N!Ks#17JXWC2el~Z98wMPC z31vuFArGX$w*>0J_#6#TE(hOT4HVhwYZshIIz@MNsh{bABGcEJ;8i->6QNeeYHUDh zZcqfddM?4{EaFcPr5*~J1`7i9q@rJ8t6^c0O~G&d^aVKYq$_@`XLSI2iP~*~$XM;7iphh?9U5HWYH$lQ4d+u)4#m=^82>5lvETe z^ZB%0#^lfMwmFZJ7)6iA z0s$&^$sPr`bA+5=_jRI6AYP8&Chtye?UwtWqhu7tQ|$yZKKSVi*3q){nt?cG4hVf-vRu zvM7}36%gWw{&|{z?sD?(Z7QmK{Cw_5>R3Jo`_#?8&Ip}d^z6@r2miVW{O61G*Z-3& z{0Zj94l49S2+3n!xSk4dgjsr&x$oFuJ z>eu5peJjYBZ<4_e2aKG~&s_XZSEpk;>NKzHNrLU9Mw9A~pcN>bFXiBlY+*M(&3RR(XlnJo^Z7I@KHC-m*l%j8CG zG5#_QQy-!TaUJ9E-Cp=6+AqYqRP$LH(Y0W0XtVW<$JMr#r(s!X{tvjj*v!2>580g}f<3`Lq}~vQRBg2;RGY;9(d>=BTO*@X=b>1jq(3_@t`g?vt$HKWndIzR zzpi|~N8rEp0sr)}!prOCPc`v{iN1Rf*AW*SIHSeLdg-z_2S&J5dZklk@7PTYEU&>d zQLSu5=X~`NLeHFdwWO7X zDoZh>Xz)V){7aqTPa|F@UNF~{079iGuj8l~cfVS0udHG~Ak)~8;ElquuMMF3d+;nn zig=&-%>|BYy0`Tu9uFg>-(Rg-cDp1SqjOw==ASuKQRKNHJjeR0F0ukU?@pt$ zJ3s_wsE&KHEHL!;A*4c^&DGN^6Fwf}({ma4bD8P3a&h*jtkT&&!;%%~q{im?IfG$| zx2>-8%!Vs`X1}c$7R~LOy`?ZAG+!taAle(ZKTt_ev1%=`j%_TH>5=$tem^YRO19xS zutpZ1atd$UT*||!^$m*FMwF+oQuL|uZ^q5h`ZSn&VFMh=EfCtuN%^>^_=~n zppaS?ph+V^xqd}OMH6-PFLCOM13N<*xaTM&6y;+kcXW>`Ytywz8`UId(-BH6*=P)FofGN%E0 zU$;)C1mVID2n+aUK?BYz`ew1hJ@GAE+auKC3beT-;3*3$`*W+}SHo!Q7zw@OAb1?_ z6XzTvh_8+@wSU@2gi3#{XMX6~r|xQBmI!e@eo7sUO1dHIC>=*>J@@Jv9{PRFD3=*` zbQiLy(blO|Z1Jtk=7a;Nw_>@yq>*a&oaC;dF3Cd`>J!s+nBHTRQWzC->4w#ShxE?M z;rtcx-y8P6WtkKi^CVY8Rk0lQk*4zs`epFlvNxn`MMiIciv4xxAALD0blqJ=vd>HheSzJK1MyGS2 zk{|POcp1gNo72?)Z8isfH`0%P3CFBLjy4{NcnHBZyveX=QA8_U(aqz{BpMHQQ##J? zW;$E*@PP>PAlxFF#5~&U=~%iuDQ9nqd289iRvp5ELu%c+v^9pDc_m>lMnYI!Ufk$Z zxp)33J#~C3523BF+D`$Wc)=lrjbx~OpORD|`(ekSKY(b&Wpcs(SRlRNCZV@7tu5y} z4d!2U?J^0Q3%&;)h7rU)>bI2j3hFoH%iQNxSH!)Py-8~eI%e~Erce9ykBz$1mzysN z@b9njap;P{(5(6lUh$=(D*QV7fPUNKNDte<{WA;R~BEy5EKTluBbqSW;^S$xfwa+*k_ZGHh zZDbl&WDCto48_#7=+k=+*tB21n+j(Cw+3vm$rA>vMJ2<&`CeDWl9*nc418eV(Uo%F zdJ(%(&!_UJqs-Wm*l-3GIoe%pp2pHB{A26U?RyqmR{Mz;_!w99&^*3xL#ZUQ>px7B zoOYUoRBiDH&-PC3zs3FfP!*%Y`3%#^PZnO}Vs|oQ@9JrucQ?4FdMcUxpv=-7(*}FQ zIqo<9a%Q)51(>{jIg2%s*m0~Z0~;)K-`VlnC~Lh)d$IN z(Q>0y3_aK(-f?lKX|D7Tf+o=79VH2ETAZober-8n^ZzA0y-e5=Sdvx57A zCzw5W z%|649MA9bbHeXO$ST{bsQgmqul)T ztrY4BE3DHl`7ZMDNKClvF~iFS%_5rpDQ~ogmWr$y{MB~~4IS|hn9RgL@(A*xh8x-~ z$xG9)p&H5F37bLd6>KUFl3~Ddb3$TeXg-=nCbVQ0isefsEHG!y&4)&CNqg`7Y@S)c zd*GEq$O;M*7?6>*T8j=;O}@RV*$YSa^{ojCviza`)*SD?zYWdXJC?21uLL`5Y;Yl2n?QRZtn(`J1Lb!S!K$ZZ=S$( zo|nSB>U81wX6n#ZpSp5utq?gJvF%Uh?=>ok6`olX0}sVu+R+#+wrzICNvW?9S2GiB z#-eY8%h;lkx5>)3)@w;O_x6P^N7C-t{U*K(W$b(xL{CnqE1kd+COR!)Z0R#n^utzk zivl@xh^NyF?r5~#g8iX$<9G?0jLQ1NU3=MI0V ziFYTd-EV9-LgadvgWt?Uo=m%gXYQ`l>E=zzh_O>86~Bz~^x!Suljdum?>%55m^{kB z7pHaEySbF=YsJH$o34bM5iS6TW>uj1*6{$Mz|4vS_3YaCQ)=-9*5m{9(!=Q5Ut7=7 zA6(bJ3Yt@zm_8gwpbJvvvvH>^9!O;FXp@-QM0FwL@iIaTTj|ku&57syGuNGFU*#{h1UeI1b_lv`5e6T@I=Lo6z9#>1xGHx4I|V~R z#MDQ~Y;}8Irc34<>X=|tmGMH^Efbe*ThmqW+IMw}_qa`sKdGBl%0|dHUu%jMRdH@< zo%g5>wY*$(N8`>#ymk0ZmMb-`OIgcW&%$;kSUvA9-N9gabMR!6w-_0-+oq0~H8Zo& zUa-kwUleit^_W+M$2&@#4^>K2)^f_CT;d~Yy(I>>>JRh!C$l}-?Nt7GO4>7XpPAI1 zE>Fw=VfXXCiIX!#&p^IeeJ8FU9f=gpjisIa{`VSlEl85G=VlBK^l z5I>vWKt8y1#r$YodyS?2)bz7;>c&{b_4}gx95np1s*)Q%`BQJMO6DHbDK7~-J)Taikb9S|WHDySwq#nTQ+Fi5H|@e+__1wX;2~6uXL_We zuKtRP5XN+KwSU#m=Umy^#pBI>Lh22L7#{bfF*O=7hRP^(xSvudS3J;P$WvGx$A|KIz2tj0)zQDioAK4^8Wu6Taft|dtZR@23SMrI9ihjsg0{M-!`-Kmx2o)@<|NPkuz3EdEW7BZX zq5HnvBV~T;=t$WJ2cuwr-O1!OhK!dyVL%ZIC%8dIUe*QSBRvMyN!C5JX;c9- zqGiu8MY~Ci+MB*SX+N0vAMJMj3tqcro-9MFW(5qVc<4LzR6N$ml6hE$g9mGGP4xV9 zsO#UwG$5aEH!o$!i%9HhsSL%-UyP`e)4~{Xh0%MX-K@0)raSYqTs))8$s=E&GkjNbSL6!{TM(a86RGU&J{~fz)S{~0Eg*O^# znzvG*i`n9`2Se2QkOV?2@gVEmuW^{{QIjHoeiM>sv=b(0}N@qi< z55`(7`ghWvtqfY9oSST%Qi_kQeUDeXJQ;?TDzuiIV*Xk+?+H^L>D(K~=Kdi~y?MO- z&MV9S$>((bebT*OOlP5(j@}$VQ{bc-iiPepUuXj(1E;UXpgUYO^7MC}Y2KouNSVe~<7m-M@kXme z`RjHY`7lfkJM9CoZUr(2HKboBVa)~A$Ps$w2zFA5p((1OEJZZm%#@cC5MpAFnxF)a z0y1=tcwek(V6leGzT2*TklAhbGIbCF5kY$T)BIA9e0%W2bYm@-m%%BWycKI1;WlGD zAy>=2*J1s|q_q>_?6txF}Zo}WvdD@ zy&A^9pBLbiboWrtb+&YEVdtk>f2lN!tWF*>fXF)6cCos8tDavm#*n1CE@RhA=hyxt zo4jlZuAN?URhhXB5(>B$KZx-mmGhpxkG0MhZTg8=`ap|xzy)8g9Mr!UL*vdr=)5Lb z*q9d3Htn}~OhZIM4Kv6}e?$zcF0Q_1gw*2-?bQn5x$rDiXZ%K;0}^}7Lv|NZ+`7Ix z5H*g2)LF~$+dY?=&0x#53JV|hoMl$=S%kaVl0TG@px#UWfE}oLk_tdnSg(S&R#cDpSL#ktuo8&J8>Kyrze7!M{%`+_zzCfxvq>cWBsU@D#>A+vnRR zghN`yYHBa7c&GN|XUs2BZpNCZKA72}`^hRHLEO6{TQynF zzp^I$vZ{VTR_d(*aXZS~C+}3OKIMU2Hb_S3@itb_&$_`<9NM4Kxszo-@Ii?b+sovj z$%Dc$AL>6{WpGP9%@m_s*8Qy14HQT;_{);Kjoy3w*+y*8>+ZiSoSDm%sSRPJmF$=74}UOb zP!J_$M+Y&z>@pn8v#)X#E+8F}QA7-rB=b+Mq;Bu_-0I7E6D>#w)NRt;416x7kuQ$q z?W??35S`9zepc;m8eZEKNC?|-x@isS<jfFw^iJF2dnL@v20Py9tLi! z+-bnpa!`tUh;SY7#+(+aos8)6Q_Gk6_Ez*Z?p#`Rmv+A6DcjUgG&pjPMoT<)W?V$| zm?kM5UAOgWldB;~>SUjwo@_wQ9+r!z@N!0z0+GZbcddi?rH{hRyu z4K(kD<>Z=9pBoCB{_}^Jh6b)`hbQ3y#1BA6Q2$d6?+}~O z3Lt!t*C6rf6QKBMg)i8El6@d&1GXOa)yfKApHeP_A}cQLzCsTG1N$pqnQ~qwc);Wc z3lF+-lo)jDsemds!Gq7#VjgE)M1UazC@}5b2^SsR>vMS5(0>bjmcere@$Ew1Ub&UB z?gvsY2=TbjQ7DLzKX?G()t7y_8u*L#^z__6Lxd{*!BggdlA(CMn4*e`xfD3waa;ad%GLe7Nyb{$E=6v9rK z0E?Fi#zTQO-hhivzEM(8=q5ArNyA^FK7feumoTsELgEM4krBUU-%yU{t+=i$M&gLe z6-vc^ufG*!$v9{(Z3rlkMlbG!)_GLICw*URtqk_P-d#8@r%}ibwG(F5Oa$Or#4)jb z0)VGQr(S8`acg`d6!36*V69~$fAE(Zi}zfJ@t(^i=gDv9(5EMdc=-Ut_lN%;oshC* zrF84*p3LGr1(mi{*7RJ~FvkDmbyt^Zlj91FhJ}3g&o6 z7{Hx)2^X6-VS&I2ubw%~cq5wN{2SvE?c3_iz*Hx>b0_@RV`qYvnUDSB>+cK<8y3Uxqe?E6Dvw1gn|R^mHy-N*M6d=aJid1|ZqM)gn@iV;h=_il1bp~_ z1YvNdBThy}IZ)WOCsQHvBS6$;PaL?bJPZOiTN{kn<3O}p$ibpBr2rIxdj{T>DIQ)U zm=se|QRxS0Zt0Cxaj)$ze2Gwpak14fU_Sc$%K~iCaolBXe5`1NS`uymxT>Zv@IIu$ zW6OkVQz$a!ZvPb=qc#yNsLeZmKmc!-WzS8&wv!dv_$2!6fSHNJl3f&8EW{;k!0ggSvc^Di=?01YmjsNbykarI))vu#UPfC6$K1 zXc535?Q1vW#yqCah6iy5 zd74?K!ze6R*;0Knp8?Ztq@I|jOJ2Y&j5PaEkgHkCKw14k#hWF&AQe&9QOoTmgcNlFR{ddxS5Q0CwtDJvEx zGDTw#I!B$U8G)&&I4{0Aam4P>t-QN;}ie&=NBR^xmH!ueo?jP*jp0Uv@T-t?8ve8W574t2-WS7%cuE$50=MRJY~d zuYQ=~Kc3V_OymFkYx_@_J{~AN+bS<+W@TBePkskItwGCfpv$gbzi#pZ?7Q9dFW^6x z00;{x4Kqm^0o(g$(E3HOn19RK{I6j1zb=43)Bkr0K?yfLb_+JCDJ4b4h`}YCO(Ljd ztD3WAlp6c_^Ov7LpQ_^Lc_7t4(EK-H&=%WzthziRB7z>Yh3B7`-&q<|(?{9kmQDc4 ztpF53-ZM%a%vPaPCB^@8&e9&tsk2Q;5WK7eQTM`8`(2F0;H=ZW? zvMv6*vBi0t*X@nH3pr14Fs*!$@$mBOef%??k;)I4Xa{%rrpZX`OoP(_a3{NbvGTnSe5X!EAL;4Uqx8X6XOS? zW#AhD#}ukCwTQ(n?%S1_^fYS5XIeN(KKrh=S{LuBr)uiaD|P#=%+nqE#ou)tA{7on z+8w8IrXR#I8r?DJw*pS(+taV-<*$qstp$h`#?H~Vy0}6Mn$*}|QVuXf?Yh*7dU(;cG-Zs{TxM~?dh1Pw#0WE1^Jx#< zs;1topPvec%<&Lg>W*q6q9Kow=_-N$lP4W_D))@YNL5+Xg+Mk1$V%b5eEt_chw6Pm zz+a2jQ76i9nuapH;hOGyQ<+d!_l0T6L95j(oq3(@gL$4A2i6`9{M8%dIk=PMay{2| zON#mclQmS+!-G=pbr*kP&Yh3gUN34Xw9J9$(4>*C2y^-wQr1S0i%JVtm+atc&Bh6M zZ%MS3p@aBNvf$Olo+{BHgfaCNk-TN^So<+@hO|C1S|=jxYBVFBsM_cyAzQ@B%-t%6 zEZfAiG~W>ftje*9N;;5PN5{?!olT2koF97~m7K8qowvHCezrPa`Q4KwH({9|q)#%k z4;OwXp_t*5%^hGZ0Ap0ug?sJ~Q7_+qAhY^MU<%IQyvVN_^nfHjz(#MB!oMPB;uMn3 zJUB9KI8L{nKPhDUD4l`A$+OFMQJ+-u51huU>h*Rz4p^=|TyhWF%@%x%Xa3{z0MqE7!z`s5Q;$o$Mkj9PL{O z8~lw(>`F#_{NYzYKP?+F$pQ){WrV^&wc2ThC{1!M?$bVK@}m^R>F1G@T{k8h?KGA% zGAgOPf+YMUb~8wE=TL$2O1{Qm=-cf>jR_XtvZ$9CQ(KnU;)9Omi7J#@_XWYRoNG&4 zl8lcsLk~hvb!o?88dWt8jVaCC=Lysw&-{5EBuLg7F)c-xaaPKhK+1UYDw*ZTBf-sag__ksApXEsFHk5PHoy-Lv<^%c=gB+O&mbc|=$ z7+U}qR38o zjX((VtKk9}mxS(LM&g&NN_`2@`cdMvt&WI&+zRA~Ft9<+OmwWPCvQ3D;O635bdB?H ziJn@V)$$N&2FEN2ak(azxyoqG7%!rNN`3l-K? zdSCgqG474l%fE}gPODT|eJ{rgZ++A8+WbUY5;PQm4)jueo@K{2zmV9hwO#M9RK7n* z=4$@b!qg%`Ae21U*e`pY&!l*UDnmJ|1FmDbE6^V)Y2O|G=+O1?4lRdQMzW%wQ%Yo+ zMbDVz08i6o27ROTdkv7q91Hoou>G1nxCF36g*c%Hho38 z+Pu%l)e@1|9J~vVga}$PqPSF@{q%B)F;q!vBN(cT)KClDuk^bpqTU5>Yi7%nD%pl2 zFW4GUe(czlUbIGPm{D$@j~;(-a<$un8PSS??DqhAeT8x_tf6>!Ukb1NDozhQ&e0r| zAkOLI;@_iW{t_j-nMiv7hfC1`I{#xDUahf-ai-;}RMY2gdvs{| z&Q(2Clr34Pw?R*35T>OOLo&i+p_9lG7^DPdlYLqfBqQFtGYO6 z)%csQiW7{GNx^@zHq~8pm5@(7KLkti+`!a5w;T3QuX7_gIfi-9aodeKF# zZn(Fan4EZrBD+frF&4n~tZ)>grlyr38QQL_t?9HnH2?iNQAf?F{l!a5@2cU}C7M1W z8S@q=+Q3ljG=UEf@4DC=Ht~z@_N)TIeDnMv{&&)-`nyZWjagTx_F+exhVA&_wZmPG z_TQcdp1OLf;RD*x_Cn@phaYXqs@jS)B!;}RKPOT(Cna>`zCLjx``T{Cz?itd&7r~6 zSNHY_@t?4^REG}|G<&wH+#^>t(eUYVTOEVOi0Nz=wKg_u+j&J`bV^O(Q3w3y|F8{# zO?J=}_tu^oglry7c})-Q`NgXwAu#fog493GDdsi#LDd2+e$p~)9qq%b9n-rt6;?Td z^Tk;%!qGeO1MPYWvC!iAwuGJ4fou*IPl^6gyT}SpCz=t2L3RuLd1ANNc2G8#LI;hK z(kIdF15tE;tx09lKyb?b9~0NMrf6U#`v3Ts-6@+;u4+WIOdOxQz$32Dzq2aJ=i>>N zT_LtR$}d{Ie}L*KVJp95efra{Z<~)d#8-aa`ryw@Bz#G`ZQ1jHspgBF2Bf|bku+aD zOH(Co`RavSRH4-fBy?HNH=Wc+QolHd3WCr+daPAbdiVmGHDCv+*IO^fQ48nR*CkQw zDMHmfEmtiwt@?w7hnL#X;c75WB_OB0YiHI!_#d%dj8nDu-tF?B7EY^H?-!vdb=9GT ztAbBckM?D|5f0!>vC)OIodGt#l3dKX2~AO)Ea8U zZ{AWgd~XPPTxj@ZgEzE=skwC1m&j*0$4zB;>2(T-ZMNdo&!v6kmcJ}xpgVaX>Fw(6 z`bSllVNgcP_|;y!DMap$nqQW=vys-)pVPY6FcNUrVKZAn#TixD>0 z-ndVv(BtL2ZaQmc2X|=6?C8V@8A@ZT?pRNq*St2sa%G4nA`W$ zaIr@Mqwh&pHpg&`VVi(Kv}UuFBdgz&-zg3j zeOBBm`nDn^dlG#`SZy9wEe>T2J-WQOuNKSpeWnFJbI-yP;K2YW|ER3P&})9TV0d$6 z-s^Zuw69{(oRyON;fMZ*iEI#!SsOshtl6GGVR}kd^!eu7?Gbl;EbI~`YOoR_hOL%$ zS%;#0>Q#<8wjGaUb!^fKPmiD7I8Dlj^;0w1YUS5EwjV8XkEvsVpRADTCL0G9_B

    qZP`qF24Vf-MRRk+i9{ozeV_tlZ+r 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 Bbs7Kw literal 0 HcmV?d00001 diff --git a/docs/diagrams/diagrams.odg b/docs/diagrams/diagrams.odg new file mode 100644 index 0000000000000000000000000000000000000000..5d500fe10549edb8edbe84388643c7afbc67f459 GIT binary patch literal 14506 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 aVSJU90Q< min_write_latency %} + // Read latency > write latency. May need to delay next write that follows a read + logic [{{min_read_latency - min_write_latency - 1}}:0] cpuif_req_stall_sr; + always_ff {{get_always_ff_event(cpuif.reset)}} begin + if({{get_resetsignal(cpuif.reset)}}) begin + cpuif_req_stall_sr <= '0; + end else if(cpuif_req && !cpuif_req_is_wr) begin + cpuif_req_stall_sr <= '1; + end else begin + cpuif_req_stall_sr <= (cpuif_req_stall_sr >> 'd1); + end + end + assign cpuif_req_stall_rd = '0; + assign cpuif_req_stall_wr = cpuif_req_stall_sr[0]; +{%- else %} + // Write latency > read latency. May need to delay next read that follows a write + logic [{{min_write_latency - min_read_latency - 1}}:0] cpuif_req_stall_sr; + always_ff {{get_always_ff_event(cpuif.reset)}} begin + if({{get_resetsignal(cpuif.reset)}}) begin + cpuif_req_stall_sr <= '0; + end else if(cpuif_req && cpuif_req_is_wr) begin + cpuif_req_stall_sr <= '1; + end else begin + cpuif_req_stall_sr <= (cpuif_req_stall_sr >> 'd1); + end + end + assign cpuif_req_stall_rd = cpuif_req_stall_sr[0]; + assign cpuif_req_stall_wr = '0; +{%- endif %} + //-------------------------------------------------------------------------- // Address Decode //-------------------------------------------------------------------------- @@ -47,15 +83,15 @@ module {{module_name}} ( {{address_decode.get_implementation()|indent(8)}} end - // Writes are always granted with no error response - assign cpuif_wr_ack = cpuif_req & cpuif_req_is_wr; - assign cpuif_wr_err = '0; - // Pass down signals to next stage assign decoded_req = cpuif_req; assign decoded_req_is_wr = cpuif_req_is_wr; assign decoded_wr_data = cpuif_wr_data; + // Writes are always granted with no error response + assign cpuif_wr_ack = decoded_req & decoded_req_is_wr; + assign cpuif_wr_err = '0; + //-------------------------------------------------------------------------- // Field logic //-------------------------------------------------------------------------- diff --git a/test/README.md b/test/README.md index 02b8c07..6f01098 100644 --- a/test/README.md +++ b/test/README.md @@ -1,12 +1,14 @@ # Test Dependencies -## ModelSim +## Questa -Testcases require an installation of ModelSim/QuestaSim, and for `vlog` & `vsim` +Testcases require an installation of the Questa simulator, and for `vlog` & `vsim` commands to be visible via the PATH environment variable. -ModelSim - Intel FPGA Edition can be downloaded for free from https://fpgasoftware.intel.com/ and is sufficient to run unit tests. +*Questa - Intel FPGA Starter Edition* can be downloaded for free from +https://fpgasoftware.intel.com/ and is sufficient to run unit tests. You will need +to generate a free license file to unlock the software: https://licensing.intel.com/psg/s/sales-signup-evaluationlicenses ## Python Packages @@ -19,7 +21,7 @@ python3 -m pip install test/requirements.txt # Running tests Tests can be launched from the test directory using `pytest`. -Use `pytest -n auto` to run tests in parallel. +Use `pytest --workers auto` to run tests in parallel. To run all tests: ```bash diff --git a/test/lib/cpuifs/apb3/apb3_intf_driver.sv b/test/lib/cpuifs/apb3/apb3_intf_driver.sv index 97b449c..5533f27 100644 --- a/test/lib/cpuifs/apb3/apb3_intf_driver.sv +++ b/test/lib/cpuifs/apb3/apb3_intf_driver.sv @@ -40,7 +40,7 @@ interface apb3_intf_driver #( input PSLVERR; endclocking - task reset(); + task automatic reset(); cb.PSEL <= '0; cb.PENABLE <= '0; cb.PWRITE <= '0; @@ -48,7 +48,10 @@ interface apb3_intf_driver #( cb.PWDATA <= '0; endtask - task write(logic [ADDR_WIDTH-1:0] addr, logic [DATA_WIDTH-1:0] data); + semaphore txn_mutex = new(1); + + task automatic write(logic [ADDR_WIDTH-1:0] addr, logic [DATA_WIDTH-1:0] data); + txn_mutex.get(); ##0; // Initiate transfer @@ -66,9 +69,11 @@ interface apb3_intf_driver #( // Wait for response while(cb.PREADY !== 1'b1) @(cb); reset(); + txn_mutex.put(); endtask - task read(logic [ADDR_WIDTH-1:0] addr, output logic [DATA_WIDTH-1:0] data); + task automatic read(logic [ADDR_WIDTH-1:0] addr, output logic [DATA_WIDTH-1:0] data); + txn_mutex.get(); ##0; // Initiate transfer @@ -89,9 +94,10 @@ interface apb3_intf_driver #( assert(!$isunknown(cb.PSLVERR)) else $error("Read from 0x%0x returned X's on PSLVERR", addr); data = cb.PRDATA; reset(); + txn_mutex.put(); endtask - task assert_read(logic [ADDR_WIDTH-1:0] addr, logic [DATA_WIDTH-1:0] expected_data, logic [DATA_WIDTH-1:0] mask = '1); + task automatic assert_read(logic [ADDR_WIDTH-1:0] addr, logic [DATA_WIDTH-1:0] expected_data, logic [DATA_WIDTH-1:0] mask = '1); logic [DATA_WIDTH-1:0] data; read(addr, data); data &= mask; diff --git a/test/lib/cpuifs/axi4lite/axi4lite_intf_driver.sv b/test/lib/cpuifs/axi4lite/axi4lite_intf_driver.sv index 522b515..837f595 100644 --- a/test/lib/cpuifs/axi4lite/axi4lite_intf_driver.sv +++ b/test/lib/cpuifs/axi4lite/axi4lite_intf_driver.sv @@ -77,7 +77,7 @@ interface axi4lite_intf_driver #( input RRESP; endclocking - task reset(); + task automatic reset(); cb.AWVALID <= '0; cb.AWADDR <= '0; cb.AWPROT <= '0; @@ -95,13 +95,20 @@ interface axi4lite_intf_driver #( @cb; end - task write(logic [ADDR_WIDTH-1:0] addr, logic [DATA_WIDTH-1:0] data); + semaphore txn_aw_mutex = new(1); + semaphore txn_w_mutex = new(1); + semaphore txn_b_mutex = new(1); + semaphore txn_ar_mutex = new(1); + semaphore txn_r_mutex = new(1); + + task automatic write(logic [ADDR_WIDTH-1:0] addr, logic [DATA_WIDTH-1:0] data); bit w_before_aw; w_before_aw = $urandom_range(1,0); - ##0; fork begin + txn_aw_mutex.get(); + ##0; if(w_before_aw) repeat($urandom_range(2,0)) @cb; cb.AWVALID <= '1; cb.AWADDR <= addr; @@ -109,9 +116,12 @@ interface axi4lite_intf_driver #( @(cb); while(cb.AWREADY !== 1'b1) @(cb); cb.AWVALID <= '0; + txn_aw_mutex.put(); end begin + txn_w_mutex.get(); + ##0; if(!w_before_aw) repeat($urandom_range(2,0)) @cb; cb.WVALID <= '1; cb.WDATA <= data; @@ -120,39 +130,47 @@ interface axi4lite_intf_driver #( while(cb.WREADY !== 1'b1) @(cb); cb.WVALID <= '0; cb.WSTRB <= '0; + txn_w_mutex.put(); end begin + txn_b_mutex.get(); + @cb; while(cb.BREADY !== 1'b1 && cb.BVALID !== 1'b1) @(cb); assert(!$isunknown(cb.BRESP)) else $error("Read from 0x%0x returned X's on BRESP", addr); + txn_b_mutex.put(); end join endtask - task read(logic [ADDR_WIDTH-1:0] addr, output logic [DATA_WIDTH-1:0] data); - ##0; + task automatic read(logic [ADDR_WIDTH-1:0] addr, output logic [DATA_WIDTH-1:0] data); fork begin + txn_ar_mutex.get(); + ##0; cb.ARVALID <= '1; cb.ARADDR <= addr; cb.ARPROT <= '0; @(cb); while(cb.ARREADY !== 1'b1) @(cb); cb.ARVALID <= '0; + txn_ar_mutex.put(); end begin + txn_r_mutex.get(); @cb; while(!(cb.RREADY === 1'b1 && cb.RVALID === 1'b1)) @(cb); assert(!$isunknown(cb.RDATA)) else $error("Read from 0x%0x returned X's on RDATA", addr); assert(!$isunknown(cb.RRESP)) else $error("Read from 0x%0x returned X's on RRESP", addr); data = cb.RDATA; + txn_r_mutex.put(); end join endtask - task assert_read(logic [ADDR_WIDTH-1:0] addr, logic [DATA_WIDTH-1:0] expected_data, logic [DATA_WIDTH-1:0] mask = '1); + task automatic assert_read(logic [ADDR_WIDTH-1:0] addr, logic [DATA_WIDTH-1:0] expected_data, logic [DATA_WIDTH-1:0] mask = '1); logic [DATA_WIDTH-1:0] data; read(addr, data); data &= mask; diff --git a/test/lib/cpuifs/passthrough/passthrough_driver.sv b/test/lib/cpuifs/passthrough/passthrough_driver.sv index 8be5444..e0ee464 100644 --- a/test/lib/cpuifs/passthrough/passthrough_driver.sv +++ b/test/lib/cpuifs/passthrough/passthrough_driver.sv @@ -9,6 +9,8 @@ interface passthrough_driver #( output logic m_cpuif_req_is_wr, output logic [ADDR_WIDTH-1:0] m_cpuif_addr, output logic [DATA_WIDTH-1:0] m_cpuif_wr_data, + input wire m_cpuif_req_stall_wr, + input wire m_cpuif_req_stall_rd, input wire m_cpuif_rd_ack, input wire m_cpuif_rd_err, input wire [DATA_WIDTH-1:0] m_cpuif_rd_data, @@ -25,6 +27,8 @@ interface passthrough_driver #( output m_cpuif_req_is_wr; output m_cpuif_addr; output m_cpuif_wr_data; + input m_cpuif_req_stall_wr; + input m_cpuif_req_stall_rd; input m_cpuif_rd_ack; input m_cpuif_rd_err; input m_cpuif_rd_data; @@ -32,47 +36,70 @@ interface passthrough_driver #( input m_cpuif_wr_err; endclocking - task reset(); + task automatic reset(); cb.m_cpuif_req <= '0; cb.m_cpuif_req_is_wr <= '0; cb.m_cpuif_addr <= '0; cb.m_cpuif_wr_data <= '0; endtask - task write(logic [ADDR_WIDTH-1:0] addr, logic [DATA_WIDTH-1:0] data); - ##0; + semaphore txn_req_mutex = new(1); + semaphore txn_resp_mutex = new(1); - // Initiate transfer - cb.m_cpuif_req <= '1; - cb.m_cpuif_req_is_wr <= '1; - cb.m_cpuif_addr <= addr; - cb.m_cpuif_wr_data <= data; - @(cb); - reset(); + task automatic write(logic [ADDR_WIDTH-1:0] addr, logic [DATA_WIDTH-1:0] data); + fork + begin + // Initiate transfer + txn_req_mutex.get(); + ##0; + cb.m_cpuif_req <= '1; + cb.m_cpuif_req_is_wr <= '1; + cb.m_cpuif_addr <= addr; + cb.m_cpuif_wr_data <= data; + @(cb); + while(cb.m_cpuif_req_stall_wr !== 1'b0) @(cb); + reset(); + txn_req_mutex.put(); + end - // Wait for response - while(cb.m_cpuif_wr_ack !== 1'b1) @(cb); - reset(); + begin + // Wait for response + txn_resp_mutex.get(); + @cb; + while(cb.m_cpuif_wr_ack !== 1'b1) @(cb); + txn_resp_mutex.put(); + end + join endtask - task read(logic [ADDR_WIDTH-1:0] addr, output logic [DATA_WIDTH-1:0] data); - ##0; + task automatic read(logic [ADDR_WIDTH-1:0] addr, output logic [DATA_WIDTH-1:0] data); + fork + begin + // Initiate transfer + txn_req_mutex.get(); + ##0; + cb.m_cpuif_req <= '1; + cb.m_cpuif_req_is_wr <= '0; + cb.m_cpuif_addr <= addr; + @(cb); + while(cb.m_cpuif_req_stall_rd !== 1'b0) @(cb); + reset(); + txn_req_mutex.put(); + end - // Initiate transfer - cb.m_cpuif_req <= '1; - cb.m_cpuif_req_is_wr <= '0; - cb.m_cpuif_addr <= addr; - @(cb); - reset(); - - // Wait for response - while(cb.m_cpuif_rd_ack !== 1'b1) @(cb); - assert(!$isunknown(cb.m_cpuif_rd_data)) else $error("Read from 0x%0x returned X's on m_cpuif_rd_data", addr); - data = cb.m_cpuif_rd_data; - reset(); + begin + // Wait for response + txn_resp_mutex.get(); + @cb; + while(cb.m_cpuif_rd_ack !== 1'b1) @(cb); + assert(!$isunknown(cb.m_cpuif_rd_data)) else $error("Read from 0x%0x returned X's on m_cpuif_rd_data", addr); + data = cb.m_cpuif_rd_data; + txn_resp_mutex.put(); + end + join endtask - task assert_read(logic [ADDR_WIDTH-1:0] addr, logic [DATA_WIDTH-1:0] expected_data, logic [DATA_WIDTH-1:0] mask = '1); + task automatic assert_read(logic [ADDR_WIDTH-1:0] addr, logic [DATA_WIDTH-1:0] expected_data, logic [DATA_WIDTH-1:0] mask = '1); logic [DATA_WIDTH-1:0] data; read(addr, data); data &= mask; diff --git a/test/lib/cpuifs/passthrough/tb_inst.sv b/test/lib/cpuifs/passthrough/tb_inst.sv index a1fdc57..680b794 100644 --- a/test/lib/cpuifs/passthrough/tb_inst.sv +++ b/test/lib/cpuifs/passthrough/tb_inst.sv @@ -3,6 +3,8 @@ wire s_cpuif_req; wire s_cpuif_req_is_wr; wire [{{exporter.cpuif.addr_width-1}}:0] s_cpuif_addr; wire [{{exporter.cpuif.data_width-1}}:0] s_cpuif_wr_data; +wire s_cpuif_req_stall_wr; +wire s_cpuif_req_stall_rd; wire s_cpuif_rd_ack; wire s_cpuif_rd_err; wire [{{exporter.cpuif.data_width-1}}:0] s_cpuif_rd_data; @@ -18,6 +20,8 @@ passthrough_driver #( .m_cpuif_req_is_wr(s_cpuif_req_is_wr), .m_cpuif_addr(s_cpuif_addr), .m_cpuif_wr_data(s_cpuif_wr_data), + .m_cpuif_req_stall_wr(s_cpuif_req_stall_wr), + .m_cpuif_req_stall_rd(s_cpuif_req_stall_rd), .m_cpuif_rd_ack(s_cpuif_rd_ack), .m_cpuif_rd_err(s_cpuif_rd_err), .m_cpuif_rd_data(s_cpuif_rd_data), diff --git a/test/lib/regblock_testcase.py b/test/lib/regblock_testcase.py index ce9a7a5..6466b4b 100644 --- a/test/lib/regblock_testcase.py +++ b/test/lib/regblock_testcase.py @@ -16,7 +16,7 @@ from peakrdl.regblock import RegblockExporter from .cpuifs.base import CpuifTestMode from .cpuifs.apb3 import APB3 -from .simulators.modelsim import ModelSim +from .simulators.questa import Questa class RegblockTestCase(unittest.TestCase): @@ -40,9 +40,9 @@ class RegblockTestCase(unittest.TestCase): retime_read_response = False #: Abort test if it exceeds this number of clock cycles - timeout_clk_cycles = 1000 + timeout_clk_cycles = 5000 - simulator_cls = ModelSim + simulator_cls = Questa #: this gets auto-loaded via the _load_request autouse fixture request = None # type: pytest.FixtureRequest diff --git a/test/lib/simulators/modelsim.py b/test/lib/simulators/questa.py similarity index 79% rename from test/lib/simulators/modelsim.py rename to test/lib/simulators/questa.py index 0a6f4d2..ed896f5 100644 --- a/test/lib/simulators/modelsim.py +++ b/test/lib/simulators/questa.py @@ -4,27 +4,21 @@ import os from . import Simulator -class ModelSim(Simulator): +class Questa(Simulator): def compile(self) -> None: cmd = [ "vlog", "-sv", "-quiet", "-l", "build.log", "+incdir+%s" % os.path.join(os.path.dirname(__file__), ".."), - # Free version of ModelSim throws errors if generate/endgenerate - # blocks are not used. - # These have been made optional long ago. Modern versions of SystemVerilog do - # not require them and I prefer not to add them. - "-suppress", "2720", - - # Ignore noisy warning about vopt-time checking of always_comb/always_latch - "-suppress", "2583", + # Use strict LRM conformance + "-svinputport=net", # all warnings are errors "-warning", "error", - # except this one.. TODO: figure out if I can avoid this - "-suppress", "13314", + # Ignore noisy warning about vopt-time checking of always_comb/always_latch + "-suppress", "2583", ] # Add source files @@ -42,6 +36,7 @@ class ModelSim(Simulator): # call vsim cmd = [ "vsim", "-quiet", + "-voptargs=+acc", "-msgmode", "both", "-do", "set WildcardFilter [lsearch -not -all -inline $WildcardFilter Memory]", "-do", "log -r /*;", diff --git a/test/requirements.txt b/test/requirements.txt index 04be52b..b13cbff 100644 --- a/test/requirements.txt +++ b/test/requirements.txt @@ -1,4 +1,4 @@ pytest parameterized -pytest-xdist +pytest-parallel jinja2-simple-tags diff --git a/test/test_pipelined_cpuif/__init__.py b/test/test_pipelined_cpuif/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/test/test_pipelined_cpuif/regblock.rdl b/test/test_pipelined_cpuif/regblock.rdl new file mode 100644 index 0000000..a208e43 --- /dev/null +++ b/test/test_pipelined_cpuif/regblock.rdl @@ -0,0 +1,8 @@ +addrmap regblock { + default sw=rw; + default hw=r; + + reg { + field {} x[31:0] = 0; + } x[64] @ 0 += 4; +}; diff --git a/test/test_pipelined_cpuif/tb_template.sv b/test/test_pipelined_cpuif/tb_template.sv new file mode 100644 index 0000000..b9c349f --- /dev/null +++ b/test/test_pipelined_cpuif/tb_template.sv @@ -0,0 +1,50 @@ +{% extends "lib/tb_base.sv" %} + +{% block seq %} + {% sv_line_anchor %} + ##1; + cb.rst <= '0; + ##1; + + // Write all regs in parallel burst + for(int i=0; i<64; i++) begin + fork + automatic int i_fk = i; + begin + cpuif.write(i_fk*4, i_fk + 32'h12340000); + end + join_none + end + wait fork; + + // Verify HW value + @cb; + for(int i=0; i<64; i++) begin + assert(cb.hwif_out.x[i].x.value == i + 32'h12340000) + else $error("hwif_out.x[i] == 0x%0x. Expected 0x%0x", cb.hwif_out.x[i].x.value, i + 32'h12340000); + end + + // Read all regs in parallel burst + for(int i=0; i<64; i++) begin + fork + automatic int i_fk = i; + begin + cpuif.assert_read(i_fk*4, i_fk + 32'h12340000); + end + join_none + end + wait fork; + + // Mix read/writes + for(int i=0; i<64; i++) begin + fork + automatic int i_fk = i; + begin + cpuif.write(i_fk*4, i_fk + 32'h56780000); + cpuif.assert_read(i_fk*4, i_fk + 32'h56780000); + end + join_none + end + wait fork; + +{% endblock %} diff --git a/test/test_pipelined_cpuif/testcase.py b/test/test_pipelined_cpuif/testcase.py new file mode 100644 index 0000000..a0e39d0 --- /dev/null +++ b/test/test_pipelined_cpuif/testcase.py @@ -0,0 +1,9 @@ +from parameterized import parameterized_class + +from ..lib.regblock_testcase import RegblockTestCase +from ..lib.test_params import TEST_PARAMS + +@parameterized_class(TEST_PARAMS) +class Test(RegblockTestCase): + def test_dut(self): + self.run_test()