From b32a67fa20157921bbda1cc64b787b79348ad2d3 Mon Sep 17 00:00:00 2001 From: Andrei Solodovnikov Date: Tue, 6 Feb 2024 16:11:07 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=20=D0=BF=D1=80=D0=B8=D1=81=D0=B2=D0=B0=D0=B8=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/SUMMARY.md | 1 - .../assignments/fig_03.drawio.svg | 2 +- .../assignments/fig_04.drawio.svg | 4 + .../assignments/{fig_04.png => fig_05.png} | Bin .../{fig_05.drawio.svg => fig_06.drawio.svg} | 0 .../assignments/fig_06.png | Bin 17488 -> 0 bytes .../assignments/fig_07.png | Bin 20312 -> 17488 bytes .../assignments/fig_08.png | Bin 15604 -> 20312 bytes .../assignments/fig_09.png | Bin 15331 -> 15604 bytes .../assignments/fig_10.png | Bin 16887 -> 15331 bytes .../assignments/fig_11.png | Bin 38410 -> 16887 bytes .../assignments/fig_12.png | Bin 14685 -> 38410 bytes .../assignments/fig_13.png | Bin 0 -> 14685 bytes .../{fig_13.drawio.svg => fig_14.drawio.svg} | 0 Basic Verilog structures/Assignments.md | 175 ++++++++++-------- 15 files changed, 98 insertions(+), 84 deletions(-) create mode 100644 .pic/Basic Verilog structures/assignments/fig_04.drawio.svg rename .pic/Basic Verilog structures/assignments/{fig_04.png => fig_05.png} (100%) rename .pic/Basic Verilog structures/assignments/{fig_05.drawio.svg => fig_06.drawio.svg} (100%) delete mode 100644 .pic/Basic Verilog structures/assignments/fig_06.png create mode 100644 .pic/Basic Verilog structures/assignments/fig_13.png rename .pic/Basic Verilog structures/assignments/{fig_13.drawio.svg => fig_14.drawio.svg} (100%) diff --git a/.github/SUMMARY.md b/.github/SUMMARY.md index e378e0b..f00a9d0 100644 --- a/.github/SUMMARY.md +++ b/.github/SUMMARY.md @@ -45,7 +45,6 @@ - [Защелки](Basic%20Verilog%20structures/Latches.md) - [О различиях между блокирующими и неблокирующими присваиваниями](Basic%20Verilog%20structures/Assignments.md) - [Контроллеры](Basic%20Verilog%20structures/Controllers.md) -- [Тестовое окружение](Basic%20Verilog%20structures/Testbench.md) --- diff --git a/.pic/Basic Verilog structures/assignments/fig_03.drawio.svg b/.pic/Basic Verilog structures/assignments/fig_03.drawio.svg index db8f9c5..eb3fe20 100644 --- a/.pic/Basic Verilog structures/assignments/fig_03.drawio.svg +++ b/.pic/Basic Verilog structures/assignments/fig_03.drawio.svg @@ -1,4 +1,4 @@ -
a
b
c
in
out
clk
\ No newline at end of file +
module blocking_assignment(
  input  logic a, b
  output logic c, d
);

// непрерывное присваивание
always_ff @(posedge clk) begin
  b = a;

  c = b;  // обновленное значение b

  d = c;  // обновленное значение с
end

endmodule
module nonblocking_assignment(
  input  logic a, b
  output logic c, d
);

// непрерывное присваивание
always_ff @(posedge clk) begin
  b <= a;

  c <= b;  // старое значение b

  d <= c;  // старое значение c
end

endmodule
\ No newline at end of file diff --git a/.pic/Basic Verilog structures/assignments/fig_04.drawio.svg b/.pic/Basic Verilog structures/assignments/fig_04.drawio.svg new file mode 100644 index 0000000..db8f9c5 --- /dev/null +++ b/.pic/Basic Verilog structures/assignments/fig_04.drawio.svg @@ -0,0 +1,4 @@ + + + +
a
b
c
in
out
clk
\ No newline at end of file diff --git a/.pic/Basic Verilog structures/assignments/fig_04.png b/.pic/Basic Verilog structures/assignments/fig_05.png similarity index 100% rename from .pic/Basic Verilog structures/assignments/fig_04.png rename to .pic/Basic Verilog structures/assignments/fig_05.png diff --git a/.pic/Basic Verilog structures/assignments/fig_05.drawio.svg b/.pic/Basic Verilog structures/assignments/fig_06.drawio.svg similarity index 100% rename from .pic/Basic Verilog structures/assignments/fig_05.drawio.svg rename to .pic/Basic Verilog structures/assignments/fig_06.drawio.svg diff --git a/.pic/Basic Verilog structures/assignments/fig_06.png b/.pic/Basic Verilog structures/assignments/fig_06.png deleted file mode 100644 index 93ff309639aecd2d65356ed458414c812919bec0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17488 zcmdtJcT`i|);<~qQIw)061s|l3J9ThEGQyfsv<=~hY;xyN>mgC1BevqMFgZqq_+Sn z3B5xgfuMvMnsky7xY74L-|s!=^ZfA}?5wrdT>F`GKC|oy13gXF<2=U! z0067jU5)zy00Wx-fB7*c`fu&TBiHDE4td?zya_1n;ai};VRXEqdjkL{i#f6P_z3+y z^OL&|yZ`{UufKi{VW1!F0DxOFS{gTu{jHYMUHdL+22573-!Aq1*debxQ#ftZ5mEH$ z%^BB?4&k+z_il4O2iq~$=s?EoqlK&^ui_a$ep!1dYjcsm^YWok>_?Ww8}D9Td`q}w z$0>A*`P+rk8=p-dUUR^1o6oflxr&jV&rHLZa$&ilX_DddtfJF+$4|e#UdkFl%}Cguuyuq2gkp;WetB z&w5n0xiU64N%7NGTr?jP{DkDso2gp`xfY3jvWgd*TGBhaXQOyt-bbD5p6qIkvVy?%&W!hmBzha9@S zI0xbRv-RZjb8W|ep(g1yC{K%MSYFs=X84@Uf%s@N8=KQTU7nmJpjtRMQ`lWV)J#p_ zPe+rEC0@aCbW}&)N36vP$@G`9K9d!%kf?-|c?rhPek(7{Bq_ZoPVgj-S53Qcg887X zyL?`D^2Gg*jh_() zg7RBOS42#Mm)$6>9|i?0?=OxTcYVEB3e0?Ds!ZDIu{9L;HQr}X9<~j5d%7@}AcuQU zsOqz?B)Dv0tW<;^sxHszRDNP(xGd+qII~i}TB=5F*H0-)3|y(z6n!BPM%NBgNi^V0 zGamvZe-UQ8oGjK6A)tHT`EZ*^&7*Xw2O-Ms#Ukq~r2EQ;O1fjE6{8Z`@m<2rTSNkc z`*ZrOcsoSYSXtTNvQgY@eAVsVM){KE6RRF|Y8>j&hcF8#WwTne!VGLZJx9#(Rai=k z(jAms#Au3ZuI%S!LB02L3ySjG2h=YSwKR=&hlj}iFnA`1j-6oqez?P&c2C=QPi zs#MAVMHn7*Qy<^+%~Z#rk;A}8OjkxfnHbn}uDf?D+uwWF#t7Iqu zJojZVXpNbhXh@B!EE~h%5(3lLg38nqx56otvpG^F{+aC|S|vihY(-A#=o-2D_%m{7 zk$1{hA^DbaX4zTxM=S`0gW4kk3|I zsn0au+Tw<@cY0Dtzrg3#0W_*BqKtY(fgX2*3VP3Qpnx||GCpVlG8h27B+;ngVCORM z-E?NP%y?lPJLe4~W(L|Fq&vO!iDBBk+XkEI*OLX|Mte0kl zJFC27kWzvigHpaFYTwbw?0C^btyr%8eLm*_U=8w)A;s#P89QX}zo zNjDcIjQCx41%&=EJKn7rLx2jOHO}O$Og)J9=<#tN4*BtSqVCF~VVMPA(L?*!sC`Ou zoEwtpkH?*jQr!?GWP9pRS$q?r8mwlmgK$IyXI{|*Vg7-LTyF4XYmk>gArD8MFlkFr zYUl-_*qE{oeVF>{M_!MI5v?1)s4Zb=WKGSr#DFimBdWQi&}s}i)XU=kFi-%*+O|_P zI?2wghsEqQ?O}F35 zQbWphHC3sz1(p)j!Qz)Rt^f0(V^|_+C zr6hXe44r7$Ai{sVKF@gLjmZ$uI)pqkocqq|VK5axDHrJCl)7yMlR9Kn(6ns8ZM~x2 z7!aB#)4cNjq1f5(YB3jYZh@QyQDy(2ELNo`Zf6lF#Jd*i+Y@-#>Qh295E^5{W=a=R z<)t}70!Vzk`x{)Gvgm38%+;s;(mRFO(G**p{zCf;om?oKggRI8TwB;AS;ze{gnLu^ zNa@BI`yD>0+@+wGNmlZCxIjK`8}Nq!nDy`3Z_!=*RGtAbro^FTGikCz(S{DGsiv&UO%|&rW(V%bXH?t#mg?=@`s&f;ptMNE}t$dFZ-+G=8HC5x@5vT zTzb+=0MriFnIjg=zsX&^(3@z9kY8R*3!QXMdaq$lRf2Aj2KJnZT#`X*IY~D6T)QG& z!B@3r6%6lypQh6mFo9Z-{2s@ird41Dm)j*tG<~!|^mQfFE`4o-f9dOvv3`gM{DSHbAY>YxSrRgz&u(@=vTx!VhN6~*y)=}HQu>YHG^ecr z>mbK10{g@R%b*p-a`_lg6eu~Hz2Sg1%wWCm=|lQqWN0YRp^bUEeq%E6$iK<=HfqhN zV|RZYdJq6svi2sgnjOpzuR2v7e4VNzO`8dVYQtl}0QG}r`NGbSeOz8h!Axd|SZ7kH z?HzUM4AM+}yBwkuvg~*89yZlpF6^TK<^eyva?xlALxdmfP~h~d+Sr!`^;O#+@_NT^ zdlUd<_!V+w8H089-|7e?H=6B{>Wg}V7F>r1dsT`C_23&8!>R8C`<)L~<_uBG(%PQ`7yJP-jP76c)7U>UyCWE3hwj9xdOqw z;D;c@T5B&H1?%pmJ=%&*g_icDE9b{322*&2IpdF0s>Ezo)^98U0AM;At{(*(Y5m_ApsS~szz<;cl!x9AIek4q3~wQB?|2-%FRHuDRne9&qa z$`==G*s`)zm;d&tqAp}JXD4}lfldHRJYcPyX7dNmKK;-PJ=4x~hGAQ*+e5u;Md@@? zd5#9RF>Ie^QzYMyc_2h*Ji|Q$kG$&k8HNw#2s2e!r&C?b9Ml#U@r5|cSEvcgnz?&@ zsGcL|%w4UIlq!Y}Y8IkjE(;Mvgtq%1c3WPK4uZ>!tc|v2o39w_Iz>#wHlETo;4hpS z6oRUXS}X4JO^uWDi!y_{hlgWO>&x9Po>vzopJwiVF)M0PO4zA&?&+&i`MjgCmBCI( z{vZvvP%limcLklqD{{Kz>gn?v(>$>}lc>uDaU@n9R9to)ukLFFP*AXXbeYNhyyN-XF?jz(C-F>a9yb{U&5Mjr&{ zv{!>7(%YphT8LD8wMNLsSVTkM((|vt2I@!Fdv^a#$WVkKd*?S7fWYrKzQav?`pfH}6uc$}|ok z!24ll|F+&F)HBK@WG&k5CAma>Zxshr->Ynr4IBWv0Gy9d2h1A8wc`Db-NLVn$POop|NyV}2bSa!Nf@a(FGFt7D5!&Tb8nXkbF~W-jZUMrRp&e`= z7V21u6UzvwnYj|H#Tr9+d9X@j{-iq=LqT#9;GYGRf{Q5SycUGB zM?~xIROo~52q;>7Q-D*YP@Lb{=R{pgj{7&Z6p-2k#gQ<2i{V0h7L zTD{Ho2hb2;e;{>o5|n=4kZ_&_(wRxvWTug)&d}c>Ac*C{_p;iL1{6*`-Z0iLBs110 zzfz8~fBa~(3Usw!OIG=s!YM%m-#G=WSU@(IFRt}`Ii@STCF1L=;%aDeY%UO}Ig}(+ zg?!yKxrdEhI!egglQqQD8NAa=rK+q=xVZ;Kboe^4EYZ4ZIG zmeqeDW1vRV_=YIUIOEDO_23kXUfRor({V0R*8N&=_b~#*BE~h1M@hKzro(&J$cTa{ zP+2r8cjKI(-2wKae_t)R2UIYrguTa)*;cr}hnok2$24_S&pITqAV}Y zvQ;MgZsZPEUZo@YDF`?WY}$ENR3zB6Of8Zhr{YMl<&Ire06Nr@OrI_|hPUmaHhQD| zP>&X)0|h=>?G>tj^bMIUp;QNje`aIw#~+ZN@00UPxN(V1`>B`)>x!8{c@$aP%b3TA z8~lam;~S3)@6qP^8N(lvgfRnYGI92`7g`bbLb zOgUg(t;wYQ7ucATnBtR;;%n6KoC^bYo|u8YdZXMDO&eED*)%A($`5Qf&4t4VB1w-wMZF z;KxsQ(*U%M6xeM`JJUbFXWhf^yWT9XpD7YHwrYH^o*#nkKVjvo?UUdB`K-6<_5IHv;r$g0eN!kIS-miMqADy#%}6IkA5PlHueef0MXIegbs5s=ZmoPSqtt3A zkzLN`ZOGlqIR-)Uhjvifcva9s%iyqm)02|Hv-pgIfQJ3E-?I_Uh!}#W_SUnVrY3OK z#krpJ!GOyW{2aIS5#;0V-%CFb-nbxuxu~J$npTkp9VqE$<5!-yC=kNiv8B|dtv{-X z@Wf$;c#b&_pux0YSKDjjvC*lcTubs$!B?)gFX>P4@arCMMmQlK^Cx(Du;-O_#)4*no z0KAZVUotaJl1^ ze}>vm@f{|2XAaapy18{yYevh=>4T(`HShX88pe)`4|7LVqDk25c`2Q&E}qZ6{%y{cx7i(yU0R+QJPLvRK2 zm!PP!mjao&y@}|GRaTHtyAG?QW2#-#HpDrY@o!EP`W{g>Y@tS79IozJP0qQ%$Wl~p zE4Fc0sHkh9$XzaORDWX1+L>)AM@w8k-XmYCS1!|iRhE4oTg8IBanz!7Jj&ym5wQ8> zzp+u96Ns`oY4rH`@mnM}%z#2RO~WNXkEi5pQ+*wZJf)9gi$An|L=rt1T198T%>SZ= zRf~o$53_w(@-K`PU%iC0peGD?NenlP@f%l7%+NK(vN)3mu~e& z>m()zVlIVuT{$IF6#3=~>$1rGPOpK{<7F33xkevu7tsOply>-ER}hv*7acr`lZlNn z#SU_rjrA@?ViNg@eA1uOk{--Bm#u5?93VWF%G+$KG&C7Oh>;zqce+3Kw^f4vFv7$BjtDk7UjKHr$l0SzB40tN| zKhrRv{STvd1P{tdMmq$@Dgbbjo?iJYwLWy5ey$C8Fs+YbnFY%9rJh0q|4z>5okFZJ zz5xl_L_d4^KbiOEZ@o!FW)0Nrnv>PeFL!U9lsWpt$|U-ugbhNZnFoA$7I;z;ZBXzf zD_!Ip*2x3veg&%_hh>T^ylkXmpr<{AYenvc=t2hc~ zxxs6;VtzisOQIwuxwodyxdo`N5eX7T?QcPyyjZF-=^0Fv^=w2Qw~@s`Lb-+e(JiJ({SXBjzR#F+W4e(Q4Qlb?L}olDwU1avs4;MF|^kqd#_@jJfvK79$_9$y%8{ zeuH?~ua7X@;pq6*eY?~3n{JU=)6$k%e*1D2{}n7m=Mq}H!g`iDJup2+Kk~xb%CwJ} z;MO;-bVu4;2>C^r{wc(Ku552fa@gV%gQTYmCcYFtR=g5vJM1bQRlS1|Ci4 zP~Sb6$3|T+F9~{OjwgGuEhWEgZ4VZQ)%UA!G&MrvlR6?(^995?cuh^0#;GL43@blx zXMU&jT1{-pQr_i&&sqmX?GJ)glOR^`%V#fiUr~N5JS<)wVwqow{U~NM3+WhK-r1}S zZt^BMb#7sy2vDy5_7TP#kL{y41&Cv{e!`Oyqo9{DMX6^IYZ~TYH(gM0^zKpk&)YCT zRW*opDD74Nx~B0#yU7WtK!{g@{KJ4-T=uQee(SGNugXNfWesaQtAf?O40X!XmlC8^ zChxB=DQE0oov?!X;0WIjrMo;v{N(ZU5eg$F$9`=VD(y7yerq!rgGN$(Y29|PX zK5@oq-d}{B`>0Oa9kZS+apXI5f&pB+Jt)u@;1GktJ;NR-jP@OBXwn7!&#LVo^!s-< z*y0N%1Y0%WD}LW|>gk10v+L|wpP#f_rJH~l?m{6uOLt+c%@}BJeeQ?jT#%UZSonl#C_7E)pr3T zi1Oup_U{$xo^(C-9G?zJ7V%z@%7o*;S>z>q#l;n|M`Wf)CTQUccuvEEqo4U61)ndC zn6Aj!SR9i7nG!#<7|c+*>`wdK8@BTc9*{3UqleqHo2#N;^xYMfMfbw@H|Uv_S!oAX zS-oq1o85SqGS}1S@6(@gkA13f1&JaM%KLlH1MCNb@Q=EnwJ%)zN&D~;7N^&p?Jl*% z2-ol9*wY6~RXuS7Q6BY8jRnIFH7gsT;p|1J*58F)bRg+i^@1tPD9mllRI+uDuIGur zVD+)dsO!8|>F4#uxA3ABLh~V&nYyTg&6+iul>Yp9u>BF@a{HoawUJ-G_>jK4;uRh{ z1Ow6s)#h_Ou3>h33>55~on)9|G@1Q1!*%Gxk<#`$nw-99$bomK2i_Ee|KNj5#Qv?> zX(3JXiIya~ebuF>>4JW?kf^9ts;L|XcV<;A!KZx5^aSTm{^fg`S-s7ylKz7J-Rd9r z`_&cAXACoZ?sJ-FFq7AyH>O^GIKO1LW|vg-VP z8S~nij^z`_o`3mbZWvA9+i#@VB%LJ8ykb~MPq~|ELiauQTaamzjOp2gY?d9*$AgC* zkiBjl-i^x=US`9U=3&vw+vQ5$`BquJvN9y{ml^^n7REUOEsnB!2@`em|j zPiMO*{;TP<5vAaX4I=yg%Nxr2ukfTovn%VSoU_0KRn)^Glb*+=AqW?^REWnaF|S14-7Ca$Mc`I6hqL##5l;A`A0 z$;l*DS;!X+&m3W0>o!In@W}p4>}8uLmXE-rRkdi< zqgG6=eicC%y!DD%Sdq6zJ~pQ*J_Z?dvj;g ziYI!mN+LiAkWAu#QXMBxunNHuk^EyS@2a;-tV<0AVV*DEWfKXu+_=)MiVRIR%HO}s zpI-Hos2~+p{j$FR|6QeruSl~w=5-Y(8i)q+Xag%YUexG{eiMA2rFd+o&{L)WWVKj* zU-`~Qxv*|Wy>8#~&tht!_Z)_(#Dm(Di%$w@OrWG_2~`KLsDCLcZm-8 z3yT9oYqJ5NTd$PTmr+$=`;y-wMr3+OeCX~>SF-dhC-Cr;ocJqsfDPMsD-*UMt~hR@ z&wjKABz}olGteAsh%Y#MLaJ}d!!iogBPBlkWPt{mcvQzfRfB6wRhhzPwC`0;-s5+5 zY_R;HL`s<4-fgaRb+dZFB=lq@Jt!77pN0p6=UO|=#ma11z$|wThx!V0Wb@obIxD6*z?W6(EBY}=|}%5 zv7}%SNQ@?jf%KUEV>f=K z@{e5t62k>xA7Mn^N%M5IVBC^(c5t?gx}AY@r8)Nmdh=>SSbW!~2M+||tx|1PT|UVS z*kvh;wo9U~*!1-!YZQUOTWoFMX-*!R~k4nVX@dOm=~-anPdRDuR1&WWw16oVb&Cirv$}V4d#KC*3C~c z{%I@dmCffYYfp@d&kbHN^-RSi1s7o=r@b+KOlsib`(HC3MXw@6;gCuQ2Q0t8z}w ze?Z5VZ6Nqz>=t)VDH$SIeikj4C?H#BDmL-XIvalYI9h@EPXKU>0Wsm3n3h%Ofzge< zLjW%TU32Mx&N^v>xKZ$@-K8%x{`j8;P!MaDeiOO3k&h8AN&ivlmnBuN8909WZFJ+NO+dVH)%sbE;Ib+0w00BAv zB>xle-b;y~Y|yuHVBD2F86a3v_)oXxJ9@VuKcjF3MO{Ik!D9+nYv%;gnZPXQKO$fp zXyLWjDiLCcJROJH%#~2gOJbyd7w{*v3;^?wp@E1)f7;Riwl9a!qZs!}g-=G}`YGK^ zICz#)pHueslM4$X?}nqhn(A!=63&X5%&8l!S@KvbvWXPUM2iplv27gs(*p4SW&(W5 z%#D?!i;8uTi<7EB?!u+4O&nvOS!iyou-9VU z@+*2j!cFH5hCi;-1`)yQUXu-eT5=_?!Y)bC$J9D1nHAZ*O*aR;veit97-!8T^TF-h zju_2?9f^OM>)!^7E+(^kbh%F1a{;)!fMa4&<%UA#-o>m-_P9xxhz1J*-c&4>#ANp1db zJXD`6LgG=4fhu`A&Y|<=wh={gS}1z^)U6HiimA|-6ugylX26i)Mfn&-f_sc#2fbCz zl$}W++*=?{#>cz!dyI1!4mm$`s{O=MdVTqSnVxxB^gHX20H1~2cczp3+tu9}Jh(i1 ze}*39Ol|FO=3u$?y__if@8wUUoH=JdgYR$_P+#fsXQ;4VS+2(HOdq*U_qg|t{0HPV zd59L!#>%?sx7vJObQiRoziHQij$^TN4NK*;-FSFlb@_2jf_m$esI-q@%TD;ZdBZ|6 zt*SFa>>iT$4Ft5UspPeSx#Lg&hby6`Lv$3i2pWn49HRW7!k7K`?Rb?Jtpmqyd8`jLQAPGF>!q&w7fbL`=k^A z{Db)nr?-ayn&~|d|1S|QdUwt9J}yFg??LCP;HwW*6tbDz=y_?sByhI=#JI$i(Qb!F z7L-tJ@7tSA3k%#}rIoEp%$JC=(XFNfcQq$6fo<^`6wtUPzp6XeSo8sY-17`+$A6BH zb!`9nk(hjus&4%U=q#ddV&S%|6ihwb7E6$qABag+>%C6CLc?X|M|Hm@Z00p=02?#C z9vlR|egf{AWnQAiZwj0_qiUKKQU_b(>@7ihpb=cGmVy;ZbQd$${%5Y;LLxp3OsfN$go$PsfJ}HU__6VH(R|4wLpb;_uN& zBz#UbxM9wcvl|d zFGBPbWFNcy9F+P@oMW5(a=HHEvrYQ4de`p%RE{6gb#GR$!v2vxPRL+4m0Fa zpASiAR$rvLPYz?R=abGaL!;ThMfA-K&n2fdX}um=j^dZVS`9v{Ygo2@Ve2?GIr|PG zwYA*}^3F(KcbymbKD!{WIKA*4J)06!2J^PKE!Hq6`0CPme0Q}E`I-4HX{7{X6n$s= zr4F(^0Qvw2G!i%Ou(kR#TNlWHN zb4x1a#BilstFa)o%elNHTM6G_yjq#BdmjU&;;~07t=|Q{$2gU5%gz|_@=3e)bXUdR zmHIiWLiRZPi-8|P`*$a`B+Xu4dC{Mw9XFCIlFs_HXYr(1%wY6rS>E!p#&d42=gDq7 zF9Hvg(g%8u(U@X{nL%Ea>RKSQx2`|yr|2uKZ}gjOJ>;+@s#f{!5G%HN^w!1E4-u#n z)e^DH$d@KjAay@}Azq09zR3|J1BPCY%v-12yhm=>dTCVzx6D~|r&6Lx^Fyi?wCp5v zoqz@bt2;X>?30>rZLxlcK`Z#uqA#N@7BB382=zduE^4v~f zhyHSSl$GG|j=4tnTgYGo*kI-hC;au@#;Zbsr`z#hWS523=Jm4C?q)(p&mN zrJD;|2IbFbd-L!P-B#TjcY3qKy3bZtcls{K|Juqom!<(hdBtQ;VxGuLl9E#?kxixP z0m%Jx2gHi2aTd$kDT>72rM@*^!&$tP0lQ5S@8}v#*M2r{^P0k!$yhQ;l<$MXR%xP> z*lypC*I=qo-mi=ciHG6@BO-Fkt*f*X+kZGqS)cPQsxte!uJwK9-NpS@Op&duc^!XnXqo_{P$-Xn3~L4q zKQh;jl<&5SU(SD4>nsx07eCAGjST4Xv$~@f^2}}S`u(UfF9Fe^YVi-;U;*jV^=v*( zK1gkN+SrFjLe=DNCCU*SdTdnOyDyPg!qpGl#Ort^XR!>aC@8y@k&Fk|(zVl+@TL`= zAx6S{B?^g&_@5 z-N?^2=Gtgw>tJWn@Es(3>vwwP`QBs_$X)PtRSbu`Lr>B@=M^W;cXPecX!lyq(S1lepY2*))c;eWB;67RUL?@10ET zJpfl>{r+C7LSks>wbY;mT5Jn`K)!9~jmyszg<|u`syAn=pQLTdYG%H4JG~0!yCCJCe8z8*c59|$hnKaJtMIjzHn?jI zIJaPmP$kR6pRGf2fU8{sgMW^0RbBbP(~mjQQ(kQu3#J|$9yGi2bC25-Uc6_X0;}v_ zyan2AoVh)OO;wL}MSRUOOdVd_B{o+YLQG-&gSC+$hX7@?f~||uyfm5*)0HCE?-(yF zkTVukJbMW1@qt~xiD~>epkePHEV`!E5P`a-OQ3I_t zM*ndA3Si=8X%x5p%)TIx_EDFg)zG`XwTNo3ijwZkkHt^8Hh{)sBcPvx3)RAQ7)5=xsA#U@spznJYQj;7R>vFK*%a~k&pyRoQYW8*KEJl=EctN zSAqt4g6C5ZLkb2c^OocF-8yLV5Y;~bXYWh;NHrBq-RrK+-Y>Hs##4Z%iE@CvsEI(<^wjbEc?kTnu)7715{Bc4 z>(vlJtyh*VfsM;9%;;;T`?h1KIXks7ewE$~-&2h{I0Nn=_xsaVu9zb+P2gzE*0If}6>a!+5|xOFmzl66(YyVxK0@ zq3aa|^Q~UCFP2C<)TDbw{k=1x_qC+`uitkcce**Jr%)Xm>^Cv+P0i!E9+S{QjLSKG zWP56urTyMLr=xellt7a@k8$5$ou-UHumQb?D8Q`*G{V$e9Pe!${euvLg}nX2ZRjnckPgY%vG<&9Q0-EVH+y6!VbsP{{|ERH-TPw3Q@BfL9Ck+8DXagcv zR_Q@|ox+&w&og~+-?-R+LOU$V*!C~6rtW?T(~W1AJN^fdXFaxjC5>{Mko)Ne+8^{prf@ob{u%t3t4!t=W{`X^TA5Bl8M@hqedm28gIesbQ z%rA88yZk$3?A_lj$>W2X0%wu=Gza~;9R}TGcBal*(caf2U!&~{qfGKmsdn(!x*yuN z!`7eK{+ZLCaYU35*2k=oD4&pCKF$_bb7y&r?u3Bdst{fEJMJUF?bl&u&$_YefrDpA z3RYnu{Gx%^dE314GQn0+uEJl(Gv39aJ7Z=TTK^PNxkZ4gM6-3qo0WtO`$4(SWCZOV zrowiiBUd(@N#mADw1TZW`0IJ5LmWC_jZVO&KiwSq3e7^|AM%<#J`6@nCys>oxGuiu zw1-XbOi#nWgg>!3e{sjWbwPY5|N#8|;ehBHVx5q?e;g0KXE_b-UXQhtnvVUP1_2X>t7xXAC%pcR?&)?Z`0W>+$7cV$ z>2x$t{)Kn z+8p@bA!Xd6g4n1uCRp|B0(_O|&UU<%(?(3f)078#zA$9xv*P-OLz`&p2KC|;kqS9I zn!rvY^!ciYfWE$)^Qo+An)i5JCJ%38=B+Z<)l}XEjBci5RuBQ1?V8iHiXUy5*M)W{ z$MjPb-)%KjACpJBWi%7?wN`K3=m)nh8c+SqHMQZiLC8OqD(;!vm)){KAH74{hcH!Tcq`ht77(rz81IX zhU)DokeXrYkoFxJG`}(LwE)`S@GS=;sXBU(&F-_mf|=02f|=yD8w;`R$@EnCY5zM= z)xzYXl%K~$ggSKswmHR&}qv+^hfpNp~dD}}9vOOUV? z$6@V0v*3@oni29uLf`A*N@SCPWv8jm)*3oZ4$o6q-mSf56^Og&gD7hX4mP0r)QZ3m za<0}!YLzXZ^4W1W-iV6~(4II!k$+JY1UJGtdP)x%RV(9c2^$y#%r~&LtScb1mN_72{F(3GB}5zaVYMM`{V*)f{0q+n(1R;rMzAEWgqZs7$ZBUtLune-)C}VA+R;xi8Kfb7s;*u3fyj;Q7;=Nt3+? zP{h<5&m5%(4z2qbp2^F)j%u0AmDAN#VS4NG(_eW2S2?kX(bdaS;kfU^|AHDdCohWD zHLdMle2;B_n_C4m-od@opyN)`89j=^M5Sc4dD)k}nfq1^cCKTwa-g9$8}*;B<{MaU z!oF)v)M`Fts#HJCq3zh@_D(GB>!2O#`jROG88#EA(aGKzbEa`CxxxvRvJ@yTp}hGp z4z|xyt8N-1rrU^{-^vE=5!PF}8--7oGvWdhBjCPwk-4@I5eM7wH2_w zs4LBFPj$9&$7u=4_$v_Fepqxc%s2Wd#8Q^|3*J0i`m-ox*H1;_(-;*SI3DmFax+dBZuMH zRhxWTuv6CL8~B6?+R-Z_jKZEa(iCCi{=h>-H!sv}h%n=Cx{UL9T@cBl_)Oa2tpdd| z@3{LR*YcV!a7@}z?8|$3b3LwZz6}A=(l}4A^%@C zp~js@g&Nn{hlixa+0vsoX6~Xkj|sWtZCG!sTj1bfOhA@W`ATKBT$>bA8eDre@QV?F z9=P6?3{hS7EMToH(a%I8KWpqZc7UFY11Y9Dx$QFe$`*bX#MoSnePeMneL)f2;0GC_ zEAV)g7b-iFe{Vot)}c=MtN_G~9N#A;5g(|(qP985g=dFGk`?@aKy1iP&GHPA3H>^Z zj6UQB-AYgNig745WH28ww}0`HySqBRW;m`i4>>yBw_rAxY8K8zeh`7zW`Lv7yq&0_IP<3ez&c;(QH_FI5<8D!EeFs5Z0e^JKZ|D zNi;R+R#chNcHNK3dlQN8?lyOM5hv1OjF4ZZw???7$9rnge;bG!1s}Lo&Rvmrm&xAH z`B;tkM=-OgDf=b@JFWY*R4U|B1;Ymrt?}xFg1hqn6zYLQm8ub-D}#;cJ*BIdC##r6 zx%QuIl6~ixEV9K&IJ4!4U(WVMjPZgSA1;Pm;j-RJkNXk!ugWVutNPD|fnQI6&@;9F qJ6!o)+xi2o{I3Jj6ut5&2Op2;vQU=@R=?VMwQlQal-{&?{{H~gdXCco diff --git a/.pic/Basic Verilog structures/assignments/fig_07.png b/.pic/Basic Verilog structures/assignments/fig_07.png index 3a95c0556578a79ffb378597072dd66ba7660547..93ff309639aecd2d65356ed458414c812919bec0 100644 GIT binary patch literal 17488 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 literal 20312 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 diff --git a/.pic/Basic Verilog structures/assignments/fig_08.png b/.pic/Basic Verilog structures/assignments/fig_08.png index c66be0199170c8c29a8c1bac6b26848af8d04765..3a95c0556578a79ffb378597072dd66ba7660547 100644 GIT binary patch literal 20312 zcmd^nc|6qX`?u;yUn;4jlKqql!`Q~IsH8$CS+ZuvkY#2tV;O79sjR8f!DMX_Wlfeb zmQfu;F(?w5L6H$cjBSkNxj!S-Ip6Q^d4A99dA*+JkEd5<%-rjBU+?RBU)OzoChD}g z$tJfD+ zXKe|#W~X#eI1J3i6^BH_f-pXyH6NdzVUUjt$_q`9Mxxz4u==v&l{K=`9SwjP9y&xSh00vEPkq*LmWAQpc`m(%nb--)rZDm<$ zUK4_szU*OWLTOvG)6&K`KeV(qOhpN$q5_vjXv0t{sw(P8RYhr46;(B56;)*wZ6y^= z9aT*oxVrSWKeAvtKUX)MGe?enn+*J>FMEMN@X=9L4h#&01**Yte(uU}ZEbC63{_Pn z&_W4M#1dSBl(2ZY)e(-M@hCqJAA$!CD-Dh4g2ed~^kurUBD}v;(x)R#F8@1Bb(8PlDYm9UCa3lUNn}XxiIqipY^+%!o^kt24SQOfaAbk`IaDqnr zd0^e8O)$vgveK?79XFgG#swUR2gb!6t?Yw!=S^g0reli56I?(?(q9-($ZAdQbMXCHI-c4RMALnSEL$3Rdcof5gf`NQWmKH3c_4*C@{u% zDeJguxWbWIXjLUJqN|dci@J&uQe73UWBtQ({NGORMJ8q)s@f)S1mPlH@K<>QcYI+$GpZkZ=9bQ&J`S~8iX() z1r&75IKOXzwM6@Vd*$t65P?cumitIue@4mq5QX=;1_}i!5jUp>tS!g_dy`| z>3F+f-GL~TT+wbWU`Sa5q&E)b1rEa*b-~30`_Cy>`a@H!j>-d?&T$VsSSj(_*gr2- znujeN7ZhYC^kwlb0ccm*Z*O}1htvG;$!%rOzzb+F9Tz_uF`2U2%c<1FLHT+sC@2f#Ft`RsJEezi-ABsO?YN@p18U0oEGr zhu4=y;jjT{KLXlS+RYD#k#_O%@%BKuKr&Dcz`B03hTl(Lnt+r3q3i$UeE&<~{r8~o ze_ePyJ^iMg|J0Y2-;b{N-~cITotz}n@bjr- z24UPO&SFmbA7QxOF>2WOD0Q(0S2I|3e}A)D-A+_2{M&!UOv~`U)LQ85xYc){&lH>V ziVw0R5Ab-A?Y=h{ngjIm;$C^yTIj{bizFfFrwShu2K{`-7fFGB@~xBpf73ukF(dfX zHk$u(crm1dl7OTZyPMc^t=Y?&Yj;@e{HsXH zv(r%&zGtzu4v99=6fvhDmm;r@f~(D&5KQUMYZVW`#daQCSx)2R33woz)g)B&C6X-S z%kOw`K<>wS&N+$i!e6;7^d$A?8ND8$uv-Xg65~li8xz2W=*Q`3qLMLv(`DE*zn|8B z3dbnJc=@tl-!mS;=>|`I4xUPFe_G31g78mEn5x^(n`F;VleCH3^Tw;&_Cp@0aItX2 zh6+CMlXU)TC+KLAfbpK{C5OFcdKQgo24TUYM2GO?G~K`**M+6VLWu&K_dKeKg|$w< ze~NBA*KwdHVDi%|yt(tz0&8Mn+j;3)hb+W9lK3x<7vom8{B*-@B)0a=ltY1MU%y;I z*+D^*8*kV5m-RhOF0g1P#!#L`Mp05n=O+3`BF>o=2afkN2(Sv^2+7R;!fK4vmn3c0 zwR`Kkg_qiw9jc~V#=JG0mm-#w4Yxl#qc!uo{@r-W630ELT^U;Z5o@hpnWc{!K?){Y%r6TeDf;v91`nb9U7X~&}6f|p7U@pbpn^L zptCOacT!{EpU!TU>60h16}3#gPjy!aNBT_@^;y?s)_2>42e-^`i!xv$O&d#i4ucv~mqBcl0UPCa1Wjb&Vz&HX3$M51+YWXHO`{V`eKpb% zEPL5n4t*=Wjr}?(-B#Z5*e{<{R|c#fP%eEOe8@ul&0x)zk~j*7XtOv?Za$5~?ic7z zT4G{o;}INVT0J$ix3wvPdmT}>S@yaG)%}2>0E#}xD$O81CJ9ASO5UNl5WPuF-HNW=Ha=Xv%^0_5P7tbUg;VIsFZ9G{WMB z`}``pTi0{}2*HzZ%lB_DtNylkQA2$>#v_H45`OFRZolh0@RqN;$++Hra+`8`hmH;~ zWp~CSDHln)SVwYviU#YLtD@911?Qu71_8&3ecINJ8=B-U5GQT*3rQ*1%5rlnhGH$6 z)w1jsM;WTH&aZGR-0?p5IIwTOOt<=-GrqOUZ|F*Rsm(ocQ(PN#cWP^&h7wr&={x?@TjHy6@kg#MAxG z@4&Bt+t4K*F06UdsH_11VBl{e<(NQ9xz0SPTwPMWyu?kKspwJzXC1;?n|p{p+N;i} zZ|WzWb&RE3Sdx9RVAQM;yHZaLgQQT6uO)CqM1osIcg2zS=TO-BJ;~N52a|parygXj zmHU;|>P$Ba(YC67`zY>SEmP(y6IgL$U<9FIJ4(I{`^YS*W4m=5{?UTYfI@6;neKk) zB`|DF>ZB7D1I)jWJgc==Q)uXtW(37Ni7jPBm#}-e2?_I;rLB{rZl- zqog9B)u4J{q?_=%FcX&9jA~()9k!wK+b;a&D8p)HDR)}c>@3yhv*R4D7)rYJ6dg}7 z-bgtNtjlpazx5>&qtL_IS1Z0Tw~ZiOmSY;yp0)1UQ4&UVoFu+a;uj_N7Ke*hx8b$9 zhfAu=6%=kQkLtpft@VQ|DJhEfS}75X^Zc_jTk&GEscvr= zif>IBikYHh4Cbw-kc@Q=>>yY|q=$cSG%*J$zZ`XFhNYBA!jF&m6H7 zOQboR{~dVc4%J$w)#g=I1J2Ab6~?GH%k?@Q`_kb?g>Twq`y>CP+Yt_VXX08=iRIP1|oOkyzozkT_xeTwZ~-HgCrGhz#p# z-WhuL%X0&(Z7pty?R8RRx;ZyS!UnF09CaOOdpLWRXQM#j+C^BCeK_S?WdMEK4&&WIM}_NcFfFS ztUdoLBvV8Ur>XCaiB$I!&U{A=b&^~J2+A!I!w^2}OQh%9p;Kx$>Ifh7?b6FSWp__J z_se9Pg*cwQPK4ILT<~LCh58HFpKv+3G8^PaJCQP&?9(^O{X2k7u=PN~V(KiA|ZoWTDu3uIy8g}i-G5YT$)+3^>{S2PwqsNMdQhL}f88`27ss|Ztm=$Ok@CsgW5jN+8qoJ-KiR#^%01JV zdvQ<%-@jm~9v8vz+=fqq6*s-xIpk$i8qZrfS!%W?Wc;mws#-3h!#Sc_O7MI_6y>{w z8x-)l^okmm~<`#0S-NsO3Oo@JcaICTy_&Ss{>jf!_ zr|^p>T~w@}zI!EHZso6%UvTDlo=}0u^p{NAJLX9yA2mDhJt3^RAxmc52yq>%3qZhg#N_ynSn92*W(N#0C@o>`B&QSR1EBfpu*|`OsZ2%-YBL zc$*9oLm1uxb`|;4uB>HPStHb2a0KCBB|s>l;?eu87^h1XcdO{a$x_GyK9GOH=ksf0L5Z!)}Ik4HpX68MPd;HHEQhM}}nL<3fy#%k?=+oTajVZ`gSM)8WkF z$O)OXCpgcJ6(tvpq~9i%-5yYbHRtw}p(y91s3^=3Lz;pG?6zw%_R*pQiY zFuQ!~Z+nHG5T&CZR9S?cZ8REFgd+^?Li6ZNg?OE=P$I4=HR<5&O7IE+xuTA#i64G@ zz|i5D>Q)%3*bN)MT?uK#7ugp*y6RfbZc# z7|ne(OC24lYVmrLZGc68;n|l!U)kXV;mm}x&7^5*NA!VT>o|$CMv79*Y|rJFL5$1? zW%Zu#7yA2D+Y;AV$@nMAy|DNeY&}WA-Fi)6uo!#aIy!M?8fee|=u`K-QV;zF@QRsH=9zCj>600m7sqED>4 z>X=<7b>70g`-TFdM{H*`fQ^%3&6ofihpnk)hDTD40S0=64!Lb^LXCr=@MFrt2Pa3H zymzKDMcBPw;dlHQ8!}Jtdajw&hqrnb+t^?{38I?bcuh>k>%9%lz(kF1OJe+bb$$}_ zXT&Dnkc+19*?0C4kAgm2`pYeIn{xyty}wINTsc0K-KC4@b-Q<>EBxL;qr^fRDpJe2 z$d0^tNHRJbu=#;g#iCb9mGc0nnWRcwuh8$8L@YuVY0#qo23u_GhEO&csgQ7fcVF4Er^pTMa&HmC}dye*W6E2aY(Uv%#)8o#)u%fn#Ha z^9+fZ6g;riA!2bleD2~V(~Vb2LjB;Bm7T4UrT$dRZyv>`TqV+&C6@!`P}rnHx?c3A z*)Nzskl6N7MF=5)EdD$ch=Z%12K9?)_%$zl6~=*pEN%s~iwzHu-Ag6nBKS5`Dh)Jz*kbC@9!lAw*ywz(2PM!DZ6{2!hqxXKI_?TkPzVb=P+!vY7DH%S4j+I zIN1GY4W!+@B zSz&c*&f(e?^d?8nQVskS0)a|_0~EoVN#YThU?bn@c8h{N@Iak^=QMx?D#ZJ^*~)+Z-ne{x*o@6Rt5<>)VtyhIEo?kO+_@LF7tbPd`C8G?OR=En+B_g z&}K$U*AMX=oMGT*uOtB30OosCY_Ymn@;VtCc4DGAka{m@?jtwmoY7cw8l&UN=sn}W z?E~!<9B%*Am`Sa}MadsT9&8>AYM$Jbg5W-H0A}jtEL}g~i?f&^=XQ%Sto*~}>G8kh z^*;9XSrrDqIcu*{yF)M@2QRI@AV?MQ>nD^sY{9Py-uHtK0iEn1g)lITXasfQ+#uaz zp|%}~+19Lh!|;W5aoPHQ zpI(!l9}`lzfJNN3_`z$XcwV&rM)ecb$k5Nm)!2G#32IqOZmesh25qI*1Ulm7$mdXRtPPXtyDFsGTp&LR{oY_{8--W56#<2+?7 z!-@t+hF+wOjI}HZ^Ae*M290ZGb@5@T)%`bgJyBQ#D|;0OzgIMxf-~nu-*bUwv){-x zBVq=yTG1d)2-2kr`@$(HGl$&VruSKcAP zC_6tlSHCO|76pQIxY!na{ce25!lx!L3q`ut;0qz;EqIy(6h-85pK}W}-C11R(sg%9 z`NDLD9_N(>Rsvu1^=kZfTyUGAQuA|OUl(TS<5ASzcLQ|XU4Uj(-U*SkSpl`o7J?R`l%t})De0g<#Xa#C7NtHzQ z)dcvjEYZU9Gj#MAe3sMFOJs4!lUhRK7blqE`($5dowrAb1T(y8=W89{Hm~_11)w<; zgK*=TIClTcm-lU2D_e3YBZahEMbva;#Mxd=DYJYjhxMj?pc;eo<#z<=gO;zb70=iR zRsup+k`nMvcXvS|S_CVD_A1SiWhM6@$CSu=c%|q+A&<;oj)wLMW&jccN_i!kGQoWz3(<30{KCul4HY28 z{Br}y0E*(lRgK_({zPCazJ3cqSjr%@nE~#X!kPyIr#`k>9U8+tU60s2Bw+$>_MlY)F~RWBl)@mI#ngQ9Z~jN-=9Ysh zxtrl)wakg;TXNT<7rD6HNCGz+=#Vt)hB~Xj^R<5XLQoNgQC13q4Y?b2_3ho8CniK} z>=T~LnRs6DO}fb-gyl5b^PmX?3^vx7iX6)_vrr75w&`^Uoz7kMEil|RaU_&cmb*LR zP5h&gC1W~2JTTO9NzS?b$Y)V}{Vu!>{BxaPS2@)T9=N=;m>?yt;L}#mx}~1x-d6wa z-)@{<+D{V`3)PS?X`bN#@sKPli?T4;7>%gU|6lh zPI@yn;VY2>f*r_qDX@|c*D+0t-CHCLZINRykYoNGj*fa0QAz33`avW4hG#>k9@GS| zUX4jvOtYWh2WO&kb8bjhyDv`mJuHLV$`-s$L|;5HULZerH~CCt{Z&G*<C` zHCpS!U8L`p!YpaVcG))0fJ;Ct_37=ha~D((fE3KO!w91i!oWS?%Ur=UmpsYhOnyFES`Tqj<-ZkwgX7j0hpOOk%%D z_hcD=<4(M#R$RhU=+##1$Z2ZzW*ptUT^ns$=}Ibg8F%6o7`hT$?h z!lr7>UwI4&u?s1aUQ)@k=Cux%P9BUBev9s`L&=in%xuLQ$DEOD25;0 zMX=;EQ#i%0zQCSMut_urJTX3v#dpCJ?+B=G&7s>zL|}qYVInxz*QHm1vEl-C=_oDKYxX0WBw5jxK+>U)ti2q2f5mF+HQPoH{1#QUI`H40A#h z1%tJz1!PAQ-}C{6O^K2(RsmUTe}${2w`ZC#!3QvTPfu73SLXGBL@9uT?n3?!Bn?Bv zO_vBFmf{|zEY%!b$RdR-PFoaKk9U=hbd|PMjbd~a#w#U>pRzl~dkvO3?lwJv-Toc3 zpFT@zRI+8}!Sari4M`=s~w_QRHRx_G|MXhRR zo-4ij%TuA|)LvQw{^Qlb7z$m3<>cQU7}#^--smv1-iFEyYIeHLxjmI5Y6B7-@IZfg ziMNUp86`M(^0!#e2#ZfMSQF)YD*N%VjE5crfS9c^5)z!n5;&v=76kB= z=+S2-X~me1q~uEAxf>~_b`y385x?9rm;EM;;^i$xl{0)7h)0wPz0*qEu}3`gI@l@;G8cVV6c?r>wQ%6;ekj>M5QMi&_-bWDYT$g33V4KaYqtT=yw-$=>| zg|d-m!BjuNZfk;DQHbmOTLS?}5ITUfTR{NG4nv%7#l|)7WnsH3N;`|)EyizePSq&8 zsQ}2}H=YJ%l6m$89teX6o^u0tu9A56V@6BBqa11$#E&aK!e^5rIL$rbF8X2fw!R;p zQIUY}GzarBD+6b{ehXhbqYPQ_9&N(s8>J7b2jhh&f<)rQC+1{Ws);1=nr&u+MiY2n zi17!4wU1o{;rw-oK?1gmP+_G%FS^kA_s3b>rJ#Xh!Lg5mJt(9`5)zv{RsYrY{n*MB zYCoos#J8<^EgAZ?cRR>S3B`c4bI@YaEg@L>UG|QRL;sq~l>Zez;hMQhee$E)uQ~$i z^8)uvUIi(HJBldiwy-j*0JTTGomQbNHDv?$v5FC?{OaY&MrAGba&L`6#!{o&^3rra z`*OrmW?xl=56iEI5aQd{C{K@Msbwsl^6jgQqBJQlwkkL6!J}FmW)`e0j?pFX^f()F zr?BbvlW-$m=v4Wdl)}1q{l<>*p!$)R+=BVB$7Sb_Tc}q3a+>F1&Ds@IbNam7Yx|FP z-M9y1&A=_ffK?>o3|nGDH8I_98)rK}f;qpr)GUDqRGwbDH-Wq5$9?4Rk+ih3^N|VG zL+ar!V!W`Tksg6iJ&*+fh?(EyDy0WBfi?B)d<09 z9ZtG%))FUUxw6l{FvNGFR^BQ2-L_lyxW#*Y52O}L)oM;J`HpTI{~I9?!DEUcRD%@4 zvtRr}SjX-zzBK8vWcoGYTY@KjIRi6^m;7p^`9LR*OlVSU--2f(lZ^t zWGLVxFY#S)T-uL>YOTc1^8<%)LMC0^2J`T1d*M>Oxy8H6JeUW!wg>96IS`rqdx@w; zdoH4{NLo^?L4lZSEe$+iqf(1Q<#J9kp?6w&iH2`pSZ24}K~%ZacX5@gr!Mz}jdQ8v zbomy#yJSX6IBT-6YA}_ON@kv6hV(h9-6!@6^pIyr8imB^TxWftGZ`rr?ZZ$U2ofCU ze}&IVjL+QxQF%$&{Wm3^zv}xw?h<;#!^(`cP*DU{lF)XLIYlj*e*%O2@nD*vo%oSf zj)d;aiw16iaM=s6-23|Z2o;m;V-Xj`dCE>v+n1uwGN;@vVYM- zJa=y0bzWo-)Pqm%PivNWae`6DU3-KP&=};H))lOv-xJ;XOZX(LG{j z25gb=UJ5>=qi84+l^~xU3+?en2vQ+^@&t40IyLCaafP7V%{d?gnMD%M?d*5IKP)W1 zI*2PAA;H%KnR;Zwxw0r5;*pmJYw{fE=!BIN2T1B1f*cR{^!=)#UyFoY{1Kc(pYgPm zZzVilaR`eWSNzLbXe+R%C+tGz-bbmTG!w-44aE3Ael@PCBEWIv}H zgwYqHRu>2aumx{cvrXn8HJm%!`!1+rL$z^NNLUt+&NA%q}A zo5lzNhrGBZB2csj!Vyqdd8vXsRv8lF*X3VOHQCSyT)0K(Z(Hyt>Ia&~n3ToT*`uWB z3n_(~r{3gv@*|@u;}Of$2Knv626HhZvj{7T{m7oVI(Oihjw%PA!EB+-569FjE(R1z z8Mr+KnW#I!9V@=gw?+WN%VQ|Oq=6(E5EMRb`-T38eOC7n`>elaSyfqm1nC0cN5Un) zBta1qM45nch=AN!twZt6s4K}2tMPK3iDZZ4MTmTZypRJcF1SknDzn1SXXg*`$MCXc z$xfHCl9-e%&l(4Kl2sh#cGl1ex*c4saWszSfhv1RrSKZ&uLJJ8k zCSX%b~PE(+Cp`a%0?%Udikxn_+Xidm$hJSZr>Hp~p3v4vHw? z*^O}{Nj)~DMhI_E=I#U5fPMq+$0|VO^f$BfO)CSX0iVchGR9i%iBl3A-eVXZx<~*> zD^Jaew>V55TQrVaSr5nqp60|{$ZP0+Iv@z@RKJ;|6`RQf1+$@|-oLyr@YS&HXXT>h zGMg)!jOOPmc8YhXIXXEk9i%xNP67cQ30Sl$NkaS{?N4Ha)f4}wfbLO+R<~5k#3JwB zF?n0E_psH?pDM--epHMZgr9NP?0d1aqB``tBv9HNqWCt!?)q`V04~4dKNd!;XZqDD zS%fZtd-~dTs7TD_#><~e#0re)7*T?AkdyE86y^QtGh^AJHoak`=O*7TdR4Y8Oh!yQ z4EDt+r)z@J_j+2WV%1Rc%r}6W?jX2BReNdku+Fo4in<{U)T{U|9Y{`WDK8d@r+{&g#;oJzK0r#>(foV5IaZtH z6g;#STzys2kGlh|50U?eA@sOTouU583k*=|+g{G8Wpot`gK5TZ=#H)4o~&Tx{Rfg) zEJXJRHz@wMRC})nfC@E(mhFN4lPNPrpuEAiMSr%_?J&Kx>GG;ieR|0}RqMAs0Ghr9 zm17m9ih1A+@83%q(ftb`S*6XO`GtNWPyL7upNhVPtu`$bT-M}-#+gI9kY=FHw<<1r7bB$ zOL3he@;ceLS<>DNn`PxfCoX?PdNGmB0+r8~)^VxT4U3w-hyS4{AWSS;8z2HlSg*+* z+3i9$w>z*$foKC~nQx@HyVc*2fbvhD1l(%-k}AP@fu|ts75C@|$CpDSl&8QDZQw(W zsn#5O0=32jK)@5Z`Jp*;n#O0f)f}4$1sIkoV)!bvh{d4Iu-~o#p*7?`sf>L1Q zrW_^_R6w#L*~dGyU*L7dvl1!+hK*n`u@qpS4A^Q@LYKb_n6(Elyr+Dcj!&v=IzE_{ z0x=+f%25RCT1lMI;&63$976@Fy7teX4+T-Y#QovFCbz7t2DDwZXWpmi8o-AD*GQfv zRn8>n_iRViN{*t9W74) zFjXbv4dy@3&-&L=E9%k3U4WJW+dGzu8pDGm9kQdqvAVel(X05kPAijw^$(-4RI#yx zQ9kxddq8icq5nFn;Ec=aD0RBw>D zGvsB2yJTes?wHo{uyZ#kmPW!hLfQdo6C@`<=z@?1AO{LOo9aPN;%JX;m_8nArW$N5Q-}@FSJ#TKI-C3UpnV%Rf&EeX9N%#H`P07F!YGKnb zcub1NTA{N{JjkLh43KvK0bblSR0~R*c^MTR%i}2>HrK z2UcP`h<1PTev1C|>Q8^LV+Qqcw|5OW;G6dHV%Qa1#iJU=k(4?pI0c;JN3Wtz#KMQ? zSL*VbLVCGQhTH%CF&|$7xZO8^20>drB!$#V7(Sh;#?)zp$L5}016PIf&{#=UAdCP9 zVf++af4%GN08el2zagow(?76qC0(7j?!-A)j8}0;K>-_?Q=bav&g>It(#k)bz7;!lAl- zjt<-~j5VlGNHmMSdHeGD-&^!-!OfpvAJK#q*H+iiY6@!cHKSTIoF(k1IVIH+jN{~^ zf<0D)yKpg26hE)c17+bWJ1*J^I8meO@KzZ)&#d1pf*E|x%fd*JW4z! z>w-g~2}|>m#QCe>iM}u>9BQGp z85~sCF98=tL5cUb)$fI5jDD+Ol=V4zJkZ`9ls^<%|0{WRQ~F*OE7z|w?`d3P>`i;B zIiDQRy?=J9i+)p7!1D%$3i!61!J|Fv`4m7p|ML}yHrAbh1l0Hll&ua;5Mx7FENWG&2M5m0bwKw-Kt@9%qO<|eceqYmho6u<-Hyf8|>UR znu2YsShEujYBYo)6zs~i%r+Ml5SH{#B}fq$r$N#pgwaM9Y|-tRAi$FzzScB4RvY)h zuE*)_E3m%Eax(?D!J;Ok?(ixrGI-d`2i(}MjC8Mu8peG`b(dqchdHOTOTm+ldPd(o z@T9C;j_mysTzoxmZj~&X7|(2fDNb?6Iv{v)-shvy6y*p`K6s9^=2a}A%$s6FzbXi= z>|BYdh^lo|R{f{QxZDa=vbkU$+;`psSFhPht@5|mehaoN8S(NUKo936&n|$xDLBQW zUfX2Yq7{xt{h;a3k0jMZZiBKlKIti}*x*bAB zOGj#A$2uoU)Nmmc=RR_}d&8KMBMcZs2&I z0;-FEWFJP>16r2E6Lhe3oOV8QS zl%h#;WFpUC!~i|Wx0Y2@h6#~|X{#M|ASWq9Rqv}^_wnR7vK!AH-LX&NkrzP2OS1h-!$Lr2 zr&WDF9Us7KOA^D0`L3bjlg@#DG4fCkIJd!udL~uJzkyUr{B+A?;WQs#34n_?2ueXC zK0X2{@b~^5#PWnT4O)R?N3uwBbDB*I^ic_T#uxf%w;W4#JBJ!`8>%BH4Y4$@97KjX zoC(aFHt?tP6!p5c`KPcnNhKZbUk>cbeylTIZcrq@_esTUrIo44~kUse!FK{`$B7;*naDE3PD?T;TX7p zS8(kQXh31C^e`b#w~xGRQdYoLPGYty1hD1W>W3OHN$_1f3@mwK0%Q&np@PRxYl_VD z91=+4vLCSE0o<^dE9aVXn=m_)MBkK|Rv9{GmqDE#f~>#diW;SW>cX{Hov@TeJD>vB zwilzkuAFP}YVAOsd6_@IGZ(*xZ#{6ew$?o8Xab`C+xBg)Rc_VQ z4N_uBUgHjY7oP+0tS+YmB(sjzSE(W-{>+O{pm0{~7oYcjkdOm`Z%CWj^4*|Mw=y*4 z(mJYGcaX4?4?t0=@MX<9eSDk$7x36%WWPrtcryJMsHL#AJ^-EJQ$ri4Y~zZB+!s&5$lu4>g9sEOZ-nih z2Glia5JiCvF7I0O-L5-{H59>)r#4)3t3fu-eOOg41Hi$osm`)T?Jg zNB;$$H5Bn>e7T)s4`eKYF!E@7x3w5s{Mro-l7W0r{D9Grsa%>L=}5m>GalA!BR)?D zOr-I?I;MDwfNsna(%OFYTmHamWtMjZ*hj@N)ezmykVpOi6wG)9AD+eTSiuTllVI1V z;8os%3$qkeL?5vtZ*ClX`v*wcocDp|*#>zf*;23~753PX&3G*8rJU3*6PC& z3;S$KQ*g^SXQuL_>3n>O8qoA-Al8i*0j2s2(vFxid(u8o2}aC6G`jnITh9BO_*ce( zNsn(AmOH*3UBmb61vqNsnLm=MT$MiW-p2kY9MLJvUp>4VZ%plek$Jq*6BK-7W%fD$ zOBXysDw|mE-#GiF2^S&)1o;&tu)v>-YXFR(7wbWu4EnhfN}J1l;+mT$YxM=S8(ep6 zexS#>)r^>o{EFE(!^o?|w)L#PohesicW52d`_wiW zIbaYjOP!>HTi4>A_5OV`P4NbXLnF7O=o@UY(03~+fcZK%VB$AO6{*}f)H8GZtIU1l z_FHWu-mdgCg6nj7+9aRlQfODt4a^GuM|k*0p|Lt`XHd z*?Djaaxw0;hEbj88+aiol-@f67D*j`fA|I%#TE$+-?7iTW!P8l#`(4|2@>2+HAG)f zmx37hG?4_Hok-WQmpouw(et<@t0)Rs?cJg|@&e}*8O1n&v%FR2v%e4^8+=U#Wc#5t z9qHBt;T6ODcV^BAqJ<>R?Jc92pl`-_atPYz1#s}^SqzbqO>w!P;5qavwmbYeNS(-BWdpt( zIIqQ!dg`#@J#kT3|R$3$EdOGE_Lk%;j(Ah z0-Q6dRoEiu>|6PWu?{r118~uNp{{TOIP&DpZ%dJ`J=&kgg9FWiY=?h-m{x!HPV640Ak<)G#7m|zVQS&1OM&~d84^)=yUH||9 literal 15604 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 diff --git a/.pic/Basic Verilog structures/assignments/fig_10.png b/.pic/Basic Verilog structures/assignments/fig_10.png index 4a35308a93397b87ce47cf49bef48b85865f6524..cbe0d918e2c89b92efbb2a2a45c00ccb154dc0d7 100644 GIT binary patch literal 15331 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 literal 16887 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 D9T)cw diff --git a/.pic/Basic Verilog structures/assignments/fig_11.png b/.pic/Basic Verilog structures/assignments/fig_11.png index a5c4b8e97416a3b226f97aeeccf40a59e1988790..4a35308a93397b87ce47cf49bef48b85865f6524 100644 GIT binary patch delta 12759 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 literal 38410 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 BEs6jD diff --git a/.pic/Basic Verilog structures/assignments/fig_12.png b/.pic/Basic Verilog structures/assignments/fig_12.png index c93ed4d53ad987a71b1d2e68dd90b26f1decc397..a5c4b8e97416a3b226f97aeeccf40a59e1988790 100644 GIT binary patch literal 38410 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 BEs6jD delta 10543 zcma)icT`i`)-R~wQ4kA=BF%!L(rXM-?1&18G$S1(fI<*RfJoVTJc>vYIe-uWrAvoU zB%#>ohTZ}M6i7m-n$YW88_&J(d*d79-TP0nNA@an&NbJZzxkVak+X&7c_jFzf$pxI zhjwytaqZH(dg&Gy*ValdE^fg;wt!!7>hm`WkLd98sH$ryDn~i;+wiC&G?W#i8u(BA z^EAtEE2V6&?sx{Ns3@nRq=uGLM5^AEL#mxY$~mYZRn=APRaDQYIYjyHIxVH7Xs7OQ z*FjxQ@r_KN*?0~7ZCcS=Ul_g;Vw+AA(|aY-N2yL8^fw{MEJ!{4Oq-J-`i)IKSXUjBM} z=|75g9Ncn}I z`=y)7TkWK$h(9H>4v!zEALo8`V?F52!@((8pA&I(dCp2;b5I02q1;P_(?o&FnWgu( z0e9GAD5K5|zRw}Hf={fl`=kM zCngXy<^rS!61^peKKb+(8gsyhQkk3v#KTJKrO3;dFS{b(wI5+HvI+{ZK`~#@j?bUP zNWS@Y#A$O+brvHz`RFg6R#r=6v~S-czqH*73pzHM9BH$4tU7TD1y7gii{p@O!|xX99?Nc;Q2Q8FuOW zc#cfQU=#i^d;sUVt1D`>2gS!OUm(TuK+bPv9q+mWMv>r%mdV}GBJ@P2u}JN}PI zCNGw)lLIXLGsZU8Jv>E|O;M4JqzBcwp&~zz-|D}^?l`vlNcJ@WLHwToyC(bKgWIKz zbcKDE-!J&<<3dqVuBK79jTKg*!0Pxl+3Kf@voUfy|JYb$99?c}*{L0)MH@!efg4eW z9cz6T#xl3EqR8`by&p&8ZO`08H0?NO6dSgci-bJY6eD*(I&h>m>{tT#VN;rHPtkMI zgQ7{shYa2=Tr}5q%!vfXB$rbs`_(mE7q$Ur^4a~0yD1A<_KN=mjgw5R3}28VAt1JkF>ZPwPB zPhUXr;(WNE>1TX4{e&qs1H3A34!B(3;wAjdKX;Mkc4+Qhu&S zrmTNzVTJO~_=eD}+q=U>ydwR@;X_H(^79?wCLy)UPZ&w9WnU2){JpH6LI2`hJ`Gr1 z*hgIfQgB~ep3|J=qUF?0d1pI(`(%5wqGo0x+c@`&a4o_D5!DR5MH<y<)BTuL(+O)TTgF(;J+`}beAB0=?k(PRhwW-2o_8X1_bkzKqXc&0LzyQm!$ z`$;M%>jtx;qJl>DkzU_oVr`w5Fg=FVsJWlLx+2GAfg`RO^#nVJGgu7w>NW4t`bew_ znBGd!lfX4orVbklu8wEt?^`0|YSs!xlNOJ15wOHJb+Y4B5-legb-Tcp8(NX%l2XWK zAnxlr(vRZf-}*YbIy<*Upz%Kr;vbEWPA0{MFAXiKgfJ!f(14EY-eW5?LjjH+7RQK%=?c+Q> zbL=Ii*UKd0%Oj<=^jI6=(&$SXO)1Srtd_tl>ONj~ zI^r=VStBW2YI$4amCm%14yXzVY~y(D@6K&q!k!qMPid7~iN8OCgy3eEMF zjCtNSL!EyXFLkSq4dDE$lO(#gQcf5;!2p0nE%2BftIa$hu#M*Gs$mY9nz|@hNoVl3 z0eI9(xe`82JFDUdwl>wsR7XNuB%{8$8z{!}l=aKy z7o>2kVNpA=M3P3aZ~m$~2?d2p1RR-gX{Df_GirV72=w=lVQZb5K$rOMr@g6%#=5e} zy@xr>7N>}0LRc6W#37)n!73)+UZdHvv>cUiNyr@CD7mqyJAaZy?RCa<%Etegd-!GW z__g>sRT%&75}m28zED~}O(RoNfLo=YUP*5t6PgPyHs3pb_V=+r`sKbcf4xwxuh_-d z*!YXYWrU~%B`hAg*gVWMU-fb5h(zPB9EOoH&9!&&$L@S#i;>|F1$&=l0%Z^7RfWCL z>sKfKb9>DJArh@eP3PK$ukVo_cusN`r-aWzF;@1VK99 z?FoQjAX|#)tWYDqrq?%3m{?defp>xw2rLO>kCf2mWpU3}wNqt7%~kM=fBha&a{oY6 zD}I6ILya9nCj$%#R>FGCD&6bcQz*_WP;ppjXQ4tH2x*&`n#DNj@Z}lPaYELjG*rA{ zo@ROTrXo@+uWI?;=G~R& z$~i#!BAs4>@AHfdYN&|Hzg|D^=TM%>Td`||52{aoe)f!aeme{>A7R3k)Ab35rvnM< zZl&%+&CNhe_~sbZhA6CGXm0(mvA#kT+^kqg$j08%sfDTjGQkBX;Oq0f(gtsA4PiW6 z5IsB>Akt@K(nWUn6cf-D_U2Rt?5B~CqeTIa&pk?#g|{NJeqE8d(t9;HXPoh5`w&*6 zW&Z-nt-o}lC!blj6I22pOKJWy(;^D~q}NAk+bj7FNHdow@>{YngJt>21qHF12OiKH zqgQWm0~^->INxty6e(gxQqZwcoSK@s#OCT^_N zz@X)Jp*_!TEf~qu_(@AiwS^7@Oy%4iWYk$5oeglAe|Y?B(niPalJUYn|CCpb58@Xo z@|m%gzyb}Fvp{K7@kcO((@ux7vab1u_D>nG{TlL*6<7+5p-JT^8Py0$om;sg$^e}9 z_1%&10JCoNP?9|o45Y!PahT@S-hv-XAOvLFSAG9;9oT%h5R@PvLus;G$}%&rR@omP zqHxh}Af%P&XY&0=Ba;%LKuObYJUmQURMBYXdt*%iIr(1~LU2IPY`=kc0-Ufz|r_jD9NwrAu(5-@N3|@V~I;-q|Qc8 zxfhKg8KKGUAkS3&>bA(QoF+8|?Vd>@^dFi095mHe;#F=L9UU#^0E@{53ddpG)k@iD zC^oik9Q{jvNojcMlkLkT%3DHiJH-rm_s>js1=-a>w=!Dky{@bj-3a#UEm##>{^-wl zF6$?I6P+ECTBJ8XvZR@8Ie(Y41G>bqN7Lp47q{&>`uPWc%QvXAh1JNVkH^b-IBj(XClo# zp|d-aw+q=EUx=Ca)nxP51zc-GV@ADfkJ7{@5*r26d464L#PE_t3UIpOj=RO4pP!4fs>E)KY^F%dXI*R5G2KC&ZiAaf~7+$#Z8#_C5l{*bX&#|~Zx zPSVW4nCUQL#?W~CXa3#oaY4e~gf5m?q{=Ic0m}F(Rrcgw;3Kkn8@{3Q`=0}Iyh)(B zz8j$or#I>yx+k&=X?m>N1sYcm$q-)(j@-T%dc{KHeiAa&fN%jMWcMl~a{|!;OP58U zyLiXE9?J1F(|X6!sc~^9F4q@O4>e$k%LBK!SAg>@*f;0%t=`n2>--7eh+f{_#Chdp z4VjX-3<90jHfXZ;gl;!;D_i?Mbn$9BL69m7T>kD!?=J!y0PjrQ%NedY21Py*V;dhe zTsGStHwH{OKh5~?HK@i)=<`pE*<(>}p>tX_HIOyS9%*gYF3UN_fzd*$eScxtt% zF?kc)*)Qh(zVj{#IeozwsBo~A!sa=}t}#qkgrK9_XrX8vaUOr-lgyww`X|(6v$g9V|(FJitO{Nx`YEyNSC8-E*F$p>DXR3XIz5TcY86_befjiqp zYPO3#91NzK7S%YtKSq@sLoa>%hBE|drL`(xB_?es@|bRKT6-IXU84Y&l9+<7-hH8R z4xD&or&{KS!GdxDq07!HLG-=A)%zI`tV8v}bQ0mXpiMCZ(7ks`fs36TKpFCARyao-B$>h7w3I__fZhZ0=t7gJwI zLD9tcdFdU>L2~e}sSp6su0Ay`9N1QP9{urtpeb<)YU;p*Hj&DQUVt`(d? z7iytu{=mWrpHN0{$VEse4V2`ceERh1lkK}DV$eO7UK9|-n;IJ>pw(Zd*=7NYKY~h1 zN;DsUlY;Stp3@UD3R*+Y&F|J;Jgh?O_44xiJlGCWbl_SuL9-k?Sb+yYxDJYtWO{4^ z&|z~gClaA+Zp#<5o>=LU%m)7!osEjsuLcPk&2R7{1Lf1IVg2qKpXPcZ#F3s4A|$LX zE9pKf@f|6!`_kChIQVcvPT(?(bU=POk)YB^IURZZ+O^RJrC}SSmy)X|r!iUv;CGq9 z!IBB8-+aaCs@o)8$Zg6`GH|i+#s1wJt4x(^*A+mz@w$DHIXe1xOw5b)4F+vH~Xo_ Uj5LTKN-%4AS@*h2=Gtf@){doVdu}Md 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 diff --git a/.pic/Basic Verilog structures/assignments/fig_13.png b/.pic/Basic Verilog structures/assignments/fig_13.png new file mode 100644 index 0000000000000000000000000000000000000000..c93ed4d53ad987a71b1d2e68dd90b26f1decc397 GIT binary patch literal 14685 zcmch-2UOGBwl9ngEQk$JqzWo3y~ad}g{sn|OD_qaA%PSi(riePBBCHfigf7^dMGwP zz|cDcloC2f@9?eQ-kyE#xc58vjW@<~X#6KxYp&VnZ_X7zEe(~!2hSX2U|=|`rmA?C zfniS>1H-Np`*(v+@G?tx7#I#bvcGv#OHt|09bPR7DRHPO?@crkjp5b8pb_>+xR9cZ zw3rwJgKBj~n62(>l~dItgy<>nT(Xc5{=@AV_^vVhrRKDhAI(>9s~}ayb{|tx-23{` z-hIrc4=X+K_q95E@nY-~LyWw!^=f@sO#S-sW{jj{MX}CwRKyYNF5c`Z z&Z#I1afVl~BwfozmcIXZsdZrqdX0hm=p$}1zaL4-57(gUd){+K$;y88I<(sY?jFzh z<8ggOz_#cyzWCMG<|^s~BmScYI!dW#w)mh9Bn& zKb<&bcRw!c$X0)?Z*5Jd9oOBvSb~#y4*MN^CS!|M|04=6;MN@*%&X#(?E=)GLwRFu ztGNqmwlJ`o;iHwItA15~f#Vs5sFR;3?6-Q7npqxwyTtGiTNF{6E-KTi?9EnQbTM`p z<4dO6Yh0rYH!T>29t%6}MtwZA^7Lr-VaMx2s=H-h9-jLoueJBqM@vU$-KVg|{gKx> ziWo|+i54-Uo{)dYpWYMt=m_GIVD?`9k7xE?H}qxJKFgTE@ZrY2muJ5|Pd_X0ZO@$d zjabKvjJKXkymz-#(B1v!W}B8=EAu9U>66Ush3}7zic1|9zUFm}$8zt5Pf~^~`cD@v zWROhcFI&I#uP|yno&RxT<*3O%$j6Z%8Y^eqPjNq8{UzwizH9%n_x%38ET5G*kBXjS z^;35JhDtd7LGjE>nFJHT z|3>Aa>u>o=&mZ@@rHG9?A|6x}Zm1-yS*rBzf+w%GYUDYlyQeRO;(T$>TU8$3d3gIm zXxq1fAuSB!>e1o|_o$744YOyL;{-n+^JDGezsuizN#gR{Jyy}w%l8FJ)TK1@?k>cQ z$~7s8m%fdB`_%ARCo1Pm&TXp`R&@iqPJ5h0XV1;von@Qt8JK4kQVJYU^h;p9tD%#r zgGkx07cqWq`0la}#|KCXNs2j8X|Qp?{(Rny{g=G+2mGJqD8?!VDF%LpACTvIpVkCj zP<+U~x!dF2miAqZW(|p3bFntWp_HN2*8#6HbYJV{=#pFCwyH3O{`{(H!D)#TkG>V3 zAf4!uKuXk9>wjtX`hAUIts~qYF7iz_#2YRR_kg?9Mu%~|G7Sq2$A;W~bM>r?DM~w9 z1TDxTYJS#B$@BW-REvzG$y)Cn^?sh$d17CE$3|bA>FsU*T>nh}2>(U@Fa8g12_-Tl z?oM=0Os?GvFTmtsyfGDXul%3*C*LZ+l~#K~uk^C9wEkkzcjnCMRrIrz@y2k*UbHmQ=}%+Z~II!i`hS9vR7Tr&3)M(ONU4azD>F&-kr`U6mgxu^(fr ze;m1~elycD@aIkb+z?U|cRVT{QgyFNyDB+=CqheIR-NVT0?}PUT5>p|AVTErhqvCu zwn+7CdnDTV(s~%QySL9hn2@!~bV%m~^NT}l6~^O+7Yqvw>(N#Y{@txb_EooPE`Lt# z^G8$iSPHk=Bhm48CoEem=6m(KWSR?Voa;5di1barqdsu+aEtcv*-U-v{YAt_Ugc|3 zWlpD4r{4hU58bJS??yGys^T_6P32d3^6ePG?l$V8@5Ek}pfAHx*s$L3z0Spli$Z%h zd()^fZgvlU$v%{|)Pyv|N9z#vAOh&=x!q=*S@C9?Wk!AWeG01)Hl7xj5my&KVx4XkR3-Ga`>TGHNEP&}UUiwDOJLRu zbM;@hu7vWcGT%aKem?IlV0tU*oWQvw3Ez^35&{zLC$c5ZwFor_B?`~>64b}E*4h`Q znInJQ^)xpv(On5k3ELC#Oz8iY?-h|Tov=~dMC-hG#P7O^@HW+;G4_7Fw zLm6zM?3RP5n{Ka{S*IhY6S>Qi@}J9}c_^G3J@xujX%A0cMY2|=Bl_oe0}=ClHb2%` z{|hXJ+$rm47V*6uUzh?}qOYtJU&&q3@bgrI*F3ybxKIya?AP_+zryNaSM)t^veokY z&!I1aD#)OB!ly(V1Y@A%ggnv{BW;t}>CPqVLcu`6iJ%ifw%j8I1YLZL7Sw6w>q9(p z(J;_M-7Nz-^{KlpG(0Y5S_-SHoH~mz~T56e`5w(gSZ}N#j%X-cjW3vcYAl1I%G@YGLWs{1129 zYPiC)Z86VJn>V(VmMRN)^t{riVx3uCZbTJF-8RiJ-I#tk9da8LzUC(62J>v*9J`Zc zg{Hv$>fi?Z4Gw1Q&!m}}PT!s~E@i_yBzd`Q4=w(fIKt%4_#9o-UxaU2r7d13e@ZJ% zM=kah6nTuXtZQ_bwveN4UbxAnK-}mRN5Xmu4U=Ze9`oyR{6yu zkgbW;%2j)+c+{V%|Kd@SkMw%CvO)<>7kCirmfWaQsaYAVFCXgB{_91R=#;z8*06o` z*!vOB1_9e5$t+LxZM;XpuYIdZ!|y(u%$NRjpLsI>c{AMDtiJq~M}C3f0&xYMpVel* zy+WRvxq183Z4%lQz1Qn?IlNSEzJA4YJ9l}G^d{j=e%ruuz_P7EwgR&!^V*fdu(BZ2 zthI#M4Qo*#Np=dtxU1l zp*DO9^1QOHFhIZojSN zP!Ta2QEv?XaoE#ru^|uTTj(^Cauz%?ZXiU`A(os}gM2s%e&O*n3od0hN!53hm zx)0)48h|5^TTWdAO}4 z{@c}9U4kQA^e!BW#$&AEO3vU!{=X%_;_kx#rNjTlcCh@WWLkq-0=X5_GoyT7<^vqR~h>J`JR^J=}#CA|fqv zh3*|-Jyci%IE}ctIIq5k6GMp?rhalA?>5GQar#vWzMtKwj#%ExPC4MU(Y4wk?m z_70Y|a8XB;?ao2!>M%7F7H0`Iswv9x0U<@~?QLKZRxeM##%;L>8~fGy}UCT zkHpD}(!&nCB#nOF)uO9`0)C z;E05qOaE8uzqit<|4ncw#$c-USimIVFS7sSl6NPpV3yYO6d}ilwRDC9k$-<^|KAw$ zf2XqF`(5ndfaHI1{(m~=?`2pt0_S3hfnT=;M*ll^YW*E?yb@9(lDroU>`^vo7wo0K zd9$_yN`Zr%Ey^eQFKzw1FgCzr{~?Z}CB_mYYB&Zf$7hX3Im0nHxD77?gLdGxbaX`8 zTU*j~AnJ^=`706rF+490&HFDm{~yo$kIMVsMZy1bUhj=#@G|KEl+-HJPc|D#0y{Sm0U^v6FHAH4a48Q>`3bQpjL zPFsnsF)#?6QB%CG>)Jgag}_I}0bn$hudPMyr(tOWMw9yq<{?&cxYy{Gut*tOR$ zZ^i}{>~{JPkX4ZQ;|8m@)k!XoH+QdZ+(``iaYA|@xBN>7-B|e;Z^#p#RNisk;q$v* z-P!Va_ponD$mK%Bu*m$nXT47_BB~fGIbTO99x1rL7oeG=nu0RB!2j1Ed%!DB@;^Mr z66uRe*ul$xd}N?9gJq2r@bdrn_z1-a7K|dm%YS^_VK7inPcI|VcYD8Ec>m0@t87O3 zAP!bnSNHUjg+za5LV}|ErNSOc7!#f3WFuvK%94}CXVe}r4H$|gay-CnH!96 z&!|6NG=`uX@}m${h%6bf-)gg~>V7SzQ#bG$Z|rfC9?H0}kGfOPL&wP90(@_yjK7n8 zQxSspQ_5&bm%po+y;R%N&B}IC#OJHM2MmWB26I9kRSrRH1lDp^#ypN(ZBm z&*OJ{?#;FEA32+Li{%92=)Y*ropv-Vs2vtPZt~-XyE;C==p0fn)KEus!?PlCQ>emw zWg$#h;V%WVk0XjLOj_l`F7q1>ws3X_6#4&f0R+P-Rn}LdKMqP;7^|6ndZW_d&X`}xW zkmTs4M8WXgF)~=%_p?#E9--)#>SCe3i;0P8pNXsg40iCYq7a^v3?*F!)H|>}*A9}6 zY|Eg8UW3eJZ6hOS7i_w8zJ9DFx#1mj{u2|ANvZ2B5naAImK-A^CG~4`4-VUommFgT z{L+-Ei^R4bC69vKAnkZ%#d2|hWv9Uqo<0!Fh;65Vz>!S*f$JZ?o*+xy2 z1WAU31Y#TL-7Y;EP#C&yx5(B-@mOE7LoOJjIOR9$y*8>3yLL4ZBpVw>{eBp(kff7+xuJTh8@iz>%WJ z5je(2IFdP}uBkEGx-GSOZFz>@ToHyF{ne_YDekZ*mN?Z*7om|N%q^ga@>pn!p$+A2 zPk)?$WA3#neFSz5B2YUrUu+_>*dbWhGqt=<`D=Ymz#gXdAa-nsI~Uy|(QJ(|Pi%~*WgTB7X2@2tzA0JZV<6&4 z@2Z8yyGp3(aYlyO7Q5DY7|w~N(I5|0;KO``$XHi6($20i7(w`Xn()Y|j5;#^;Y)+1 zLFg_JEL{{ux>Y`K&C{rt%=M$)=hULq&jm|WKiu^u+@4iYnRIm*jxK7B@8;4}kJns{fOcVU$HW_zNPNM2lgwK~(&Q5sp{VwVexVrFXQ`=|PdH09F*D$> zkyW-aWoHFo!5k3fkv1JKM$)~UTeeCD3^GQVH!~(UClW07kR$9sx`bv7&Q{yj8AP?)aR`Oh5F^^`t?saj(yut|1M--Li`dV#-%^ZmCu=xx zT>0f@#m~$IJI8v^9-<+3x>X^Q)p@T!X^%Q;ZDA~E^w#__n4op<{_aQDHk+t=>@-}E8A&dv?}Ek z%U&uH2{X{svllfLNM>vTSg4Vr95hY6DhUTC>%r2bjr05?=@_Yz@;p#G{<-hryZZW7 z<<}v^vr)qb2Xcdlz42cwx~&`NSOG^8k53p{h)V&XZqXl0q`a)3i^UA-;dO!B3=C4l z4eQJ=KYbT>nPovRjJv6vGMN>g>7BeIQ7(N8L$XEo`dyi0%sPQ_wg<6QXZk6A$)x_7 zV7wmJq6lF75vvQ9_vq0X|4Eu{j7LGyN}S&b6`k*xJ2CQ?&I_iQl{-5IL+*)xmznEL z8bw%ses%z3P&}4IT<}WqPO0Ont(&FGk&sK=^sI3A8+OG$36~#h&**tO)T=)nnTu!s zqHEoli-l=OC_zL`OLVtn+1S{)WnHu370e_6N*FFp)3QTn#}J$1mY>gCJ>6KTRzL*j z@`QdzYlubeE9?=@%8s8mqjTDdBbC7NT(dUNB}QHW+#Y8q>>DWvUs{!GHF5aEW4f*` zO(62!Pg37~8*NJ?ck<4UG}s2m5d#Cknt7s81t6m9j2%i7qNYm*@pu^^YI(L-RF*E5 zbamRHT7@EiEvTAx;xKaM@Q!iw-SVdn-Um#vwmR2V8g|_B?LiG=A}boDzbCs=aDQns`TLlfKnW=o%Z>f$vUG07W{~h!0p>F7Xcw0c0v4p>(Lx8MwU`u)`K~sO(2o&fafvVMe8rm zN8l4e#svXfHA_?zEiEyqTxR*&{hhs?Y*fyJQ=D>ZH*${EU(G_BnsSk!O_8BgUj)z+ zDEHWnX_tyu#q&V)T!l`et8a30R{*=@-(Ner&r_a@n9fzQotByW{QNoN5)&OuK0*aa zB&id5r#*=>4h87``g*`6J!Z74UWjhpsBbLV-dgWEvD288Kx;b-rk1CA3QsJ1eDysh zpz+Q^la5@o-wZ5zuyfswU|tcFxnUtv~U zc6PYzDaYa3Hyd|$0nK+76Faz4Ep!rY=~K{4>*n$!@9GD(3Q*Lw;*sdVCVGbwOS}&8 z2_CK+!H+g-Xfzn+SnWF^M@Q^b=91NzsvK(~s%-HdH1w*1!ZwKFpH6>o+HNt-AJ2L6 zL_{LehnYRsWyXvf2LzBv1r1Q?em^g~d{S!aE%$()DUCU|nk@co6V_2gNwJZjR4|Xi z-3)dKfJ3{x?{PbUO?NsdaZXVh0^rODRQ*P0_Rm!i`e|0>Kb~v>g%9L_PUB+$RcLo% zN{VW^)%ku31N9C>Kw@bo%Y7&$CfduBNALT-eIr6fxkIfVbYua%WPY1N&jYf}cOXxJ z|FytwypM|USW;H13?(7dIb=IOl)bt=(^nQvphZMRp5eBlv(Zh7do}zbOx2dK3Bnvl zS|vjjw$qETR2omP>|6_ZrhK;DIIC>Bq|WEaOboH-?Br*ksqTDivB{e^Z#b>#Trz;> zZ~(7bCiEseym}llE3zs+F!jme9ZEwh0 zvD6jVHKA}Mg|Q7OM6VbINlJ?Ci)}k0o*s~8T-eOy9 zc%ADvhG?X8bx|xEj;|fCi$;Y}F2fAB#MNzZd{m+6+Bo^c1+m0^_G#pnq-LOHQZW%+UO8CJ<47>eo4v@*5eS~xc6UMh5E)MGO<4`)!bXAKSLW>YenB%C zT;FZrAoVnqz5*?56hW|h?%v)U;lt)kY#ZYYk$h#`OBuf;H8*(-_=k|%wrjxBNnfCh zcTrU2`$5V;QmxvV`|O9Idi?G7UgI(^lDSs>LYR)d8bjcJ5tF3>YaS)g_6=If1f+$| zTPktb-Z|`Te>z5A?){iTr9GOo_AR^XObw2-)@#UA3T&Bue9`6mH$9EE>lc6;vCht< zC5bqgV17h0ahTfFr@Q%d*mCA>n*0N=o2p5~6J0{U*=;U5e_`1M@Mh|M`amUr$WzWa z9X`!9eWr*}pvR?YTG3aZN>kR)zfk&*Ihd3E}c1v9kl81rMbb0haQMI8K4VTDkPykBJMu~n&)i!y0lXXc78 zo~NdJ6{G1nqnjcD;}5TVDSFP&WJ1sV61~{mxIwqeXH;0u#g6c!+ZW!}S2<(T6^gt~ zS74J`xYiy{=MSwmCD7>`u0Vp*jg+~4m*y%plf=CE_EG~7c+wK#!Y9E#_8v;N`8xg? z*K#26f-WwMU&&C%`@vU_fs3EOlVnHa=DN(wwZ?eFK=hVC$KCYgFU&EWw<{5r=}c^HqRdr_0#e*lsy6>nA73Ys?r^Q3FNKrrFAKT^=mR7a4PqZNefnHXGX7>%}y(~Iq zw09Kozy<5+>A6;3*_?P=ZA6G}(*n@a)_hv4qn_)d!0tI7C#~f=g%4=wq+QVXx|wvJ zQ8gXaem0V5#|RDztw&5EXy82M$Py!>A54Iqqm43`a-GjsAkhtq=Yq`BPX7$qaJyw4DP0Ck-nN=|*Tp9#i`5-BYa<+e2G{NrOca{{)rvoOnQb&h~qeqHY2W``b+ zu#JY=HzxoM=@}TzUu*&R3YY;5@_=TO6Nwx|{f3v-Z`%ZK4b|c-$7C(8^=Fl@VQDQ! zfx+@~!X}0?&d3mFm`bun6oL}D2)c%OLppNbk@4`-T%BkgMII5m-Mcq1PU)T%PP5$s;jH}`rGcwDrd0WSL>pbL$_3M*Y-lPH%-k}d~4Zj zd*1sL_Ze7TOm`>~3+D>x=`oYPL1E27#;4uI86l@On2q0mM*@L4;z~*${`h$4tISL< zbO!C^)}lKmq{iZFTQf@NC+nP(CwB4ko3x4biRBo;muT!)yl%X?~SV#0VSW|5G zfoMW_Ky#Cw{cC}*yfBYjw=3V(!~8jCC@pM3o%rO57iV>p!nTN{3yCwv^BxqmJadeN z4sNv1-kJ&H?$@RJYlboQ1{L}~F_q}|AgusS-61c+u~9eSpirKq03>1r(BiuJ1*-eJ zy81j1CZO#2tpRJ`uBIhJbyT;{&t}2!OapVsS8EGZe(Uu_<=&^)SB+Cv!ppn?tA<6y zwA56-?Iak5?$@ z>B3u(x*Y3jp4Ph@g&-&Roe+q0>mTM6*yK6!renZGdx;J76&5up{gz1UvhT!VFeuQ8 zkQz&EdBMOk%5iWiPannurjYRP!{Ki0qfPM@TWb>ts#9=viG zyO8b)M$t#P3}KT9Jo6ph+*`IW4asrPX+DPMILRjDjm5=9xrew@M`}%7s20Vjut7fo zM4d;u%S>Mk7;4=oM-0+?w2$4?-qY(=hf#$+V4N@a^U^$+wGi7qmMQn|MSlj<%P(3QN97|Rcni^T^RNY#TO$p=y|)x*+o@FJiL z$(~XI37>pFWp-^sb9g8(d~BnmVoQ3uOv6#`Fu@S?x4?pr^2t#4h)G0T*U*_WXG)x> zgt%kPHwI)ToJpraJPLOtUtR9Sf|lyka!{T5ReU>I|B!qx7!1+xQ(F3fmd@V+26qh* zDZ{-@BpU@tKVYlDO}C|WjKp|ldSw-x@$M|8G=rsjvVhir<^7IK2avAyHAmXgVqRjS zfUA0LtT=666-l=I=2zd{X8*NkI0TX0!oGiR=gpl2@~#SXAyU`|3|l35TqakZwvmmP zvzABZra|?R26|pwmTSLMFsCZnL~oQwX>j%GQ$24I150}$O~?aa0%c`;G&uaC1_zFG z8cXZF+_OAQo(XbWR^m+C^L_jmsbd0O4eA{OZeF2;-mxBH7q@!m`VG-gUc*gqYjMT5 zhCGYhS25h?JI!oiW2E$h=ZQQ`$g`NP8MV-@7`YOofXGPUFFwnsTrNW(kWWf)x-a_uSW-&Lx1WyZ=1pZ#y>=ZaRQEH{7y^x5BC7h_NI{~) zJ20%__ueVK?BBE?WGZU5PZvKQZeDI(0b*d_1rv=%J6BOM(5d1N9}&NMbtelvUT`J_ z(1yqaY6)IOzHeixr{S9$#Ny+lv6|V9pV7IdE$o+g+{!&-c$|UTJkG;`Y173^m$a*| zhfdP`{SU6Beg@m9SH%};XeHj%;7^zptd(ffZn{`{Hcxb35bn-TRyg(_y4A*WfxQ)K| z=}b&-rX(gN4!kHbIbYyMLzj0s_7UVNqsF`QCq6x8>I$JVV0=RZL3sqqa<+j{91%3; zeC58?l2q;{_qn0=IuQ<$Wa)~{rJhM8I(0QX)`x|QEm_^kNqh|X29^2Y19UK;C48Sz z0W$M&9F(=2Fi$zrwMi$e(@t4kT^(Cz>-Sur`WC`(f9f`F9@N(1!j-J;xvp3u&qKTC zrB_{gotV~-&?kjm;PRtD3nFT=@@(ZGfxyLa#@SFVGUnm9S#j}&J8!iN463)ll`j?f z7yuy987r(@w{N-I$nQWJ@AW=q<~rFa?#xZUm#xDAsIWzMD#hxc;sHU~rA}&C5CQ}q z=H_8`32+m@KMAFalMId0Xkr2xY=aInONsri))|K{Ktzq^BnhIx)iuGa{u;zMAAm_o zmw7IiJEvm$vdqyF%JZUL1ahw;xErzl0DuA=6@w$|QJEPT_$zaj$^Bm26^1!)Cnj8a z2_vk<9wH^9d_gl;BC@d;6f)rF+$vxTZG|fIq3aC5%;Qs!uYLSZ$3iH8 zg}_Y_s(VE;<2Z%vl66LEl*er)_WG%fVNtK2PJ4kU8hJ!H?%<^}B%m0ySF|l4i#ZL7Cw3((C4o>E;z?+~sAPOB3qG z-y7tXvqqwOOs6@(2youj(;0X&_f@*eSzSnaK>(mcEQ70nrBQ9(0z!Ye937>6wlXVS zDF?%}`xk2R>|2&*`WyBz0f%^pgs7NG-K3z~iy8cXf|6`&W@<|9%(1SNQ5X!6p@V`{ ztG%9))}6Vf>F0qd^$KLp^uFBTC{0KKD8@H8h6EHsh?_M6GvaC@ z9UU_(%UzD4=uJV-k()4er=`{*avqJrL~T5c`Uw+R_$UqdYs(b0CUB0e{+ z7NShSEpi~3TES*Z@*8qB|0)Sw6co^Jm zE~Y%Z-K*K)4pjc!b)iXR7$GV&xi}m?lR$p;;6eZT%(kb);U-Q4PKd9StGl41DBT}GrIse_Dd&2MY9I=3_QH%hQ#g97?^0g|MVUKSDic) zpP%j9w+~F|jB;&iz*NB1gwDqpz%wQ+oL3qz^UuxIA9MrbM!Bp~4AQ7;@}!{t-rc*n z4*`J@-~vh}Ul80M=H=lqk;T+$D3&I>xzLhTw$u&o6N?LY=p_T_!PpE$Ywuw7z~d7< zY)gJ2wz1<{4@wnHg~f+=KYp~r)@^)o%eYi&M9bwxA;_%Xs!-FdA6mBZA|!2DnvhMX zpflv8DMVpU2KKgsVSjX(a5DlI#OiOXm zPr$Af02aU%I2R0OXT5fe!Zt;#nxQ3K_JwDY5OU8+z8zO(fZS4b%AZV?yVJiD&C zU`?Eoubu9sU}`aHYHCk-MCB#)Ap#XUUq41pB7DA_m4Jk-9svWiuXL4yDeVZVy30eNBtM==gV14Njs{Ne2J%~>zlnGXFJ6=b;yP2gq?^O=zTH~E%g8- z4=|B8>HxPnmySAxwsxZQUCya@bZNN%{-&#w64=jG8;Dfb0cRj&l+tnfE(Iwm7d>{2 z#Qv=rrBCwVV)3cJfqd>ll5tSF`C!7RS3O_ixi9UT+aGn=Lmm(fZPoq0l8ww?Evr%k zQmm+3tf)WsafC&!J#kN>{mAAA3sM_^O%DgEY!Zr=a#k=_W?eG0t%$H#xN@(-?P ci`%=zcE8As(m1IF$S|lWX((piuz2$S0sVfDYXATM literal 0 HcmV?d00001 diff --git a/.pic/Basic Verilog structures/assignments/fig_13.drawio.svg b/.pic/Basic Verilog structures/assignments/fig_14.drawio.svg similarity index 100% rename from .pic/Basic Verilog structures/assignments/fig_13.drawio.svg rename to .pic/Basic Verilog structures/assignments/fig_14.drawio.svg diff --git a/Basic Verilog structures/Assignments.md b/Basic Verilog structures/Assignments.md index d2c8a45..bf3544b 100644 --- a/Basic Verilog structures/Assignments.md +++ b/Basic Verilog structures/Assignments.md @@ -7,24 +7,43 @@ Давайте разберемся что это за присваивания и почему необходимо руководствоваться этими правилами. -Начать придется издалека. Несмотря на то, что SystemVerilog является **языком описания аппаратуры**, он так же является и языком для верификации описанной аппаратуры (слово `Verilog` является объединением двух слов: `verification` и `logic`). Для целей верификации в языке выделено целое подмножество конструкций, которые не могут быть использованы для описания аппаратуры — так называемое "_несинтезируемое подмножество языка SystemVerilog_". Разумеется, часть языка, которая может быть использована для описания аппаратуры ("_синтезируемое подмножество языка SystemVerilog_") тоже может использоваться в верификации (хотя бы для того, чтобы было что проверять, ведь проверяемая аппаратура описывается этими средствами). +Начать придется издалека. Несмотря на то, что SystemVerilog является **языком описания аппаратуры**, он так же является и языком для верификации описанной аппаратуры (слово `Verilog` является объединением двух слов: `verification` и `logic`). Для целей верификации в языке выделено целое подмножество конструкций, которые не могут быть использованы для описания аппаратуры — так называемое "_несинтезируемое подмножество языка SystemVerilog_". Разумеется, часть языка, которая может быть использована для описания аппаратуры ("_синтезируемое подмножество языка SystemVerilog_") тоже может использоваться в верификации. Давайте для начала разберемся в том, как будут использоваться операторы присваивания при программном моделировании (так называемой симуляции) — одним из инструментов верификации. Разобравшись в поведении операторов во время симуляции будет куда проще объяснить результат использования операторов при синтезе цифровой схемы. -Для начала введем пару сокращений для удобства дальнейшего повествования: +Введем пару сокращений для удобства дальнейшего повествования: -- под `LHS` (left hand side) мы будем подразумевать "выражение, **которому присваивают**"; -- под `RHS` (right hand side) мы будем подразумевать "выражение **которое присваивают**". +- под `LHS` (left hand side) мы будем подразумевать "выражение, **которому** присваивают"; +- под `RHS` (right hand side) мы будем подразумевать "выражение **которое** присваивают". В выражении `a = b+c`, `a` является `LHS`, `b+c` является `RHS`. -Существует два вида присваиваний: **непрерывное** и **процедурное**. + два вида присваиваний: **непрерывное** и **процедурное**. + +```SystemVerilog +module assignment_example( + input logic a, b + output logic c, d +); + +// непрерывное присваивание +assign c = a + b; + +// процедурное присваивание +always_comb begin + d = a + b; +end + +endmodule +``` + +_Листинг 1. Пример непрерывного и процедурного присваивания._ С непрерывным присваиванием вы знакомитесь в самом начале — это оператор `assign`. Непрерывное присваивание постоянно следит за `RHS` этого оператора, и каждый раз, когда любая часть этого выражения меняет своё значение, производит пересчёт значения `RHS`, а затем сразу же передает это значение `LHS`. Если мы произведем `assign a = b+c`, то каждый раз, когда будет меняться значение `b` или `c`, будет пересчитываться результат их суммы, который сразу же будет присвоен выражению `a`. **Непрерывное присваивание может быть использовано только вне программных блоков.** -Под "программными блоками" подразумеваются блоки `always` (всех типов) и `initial`. Есть и другие программные блоки, но в рамках данного курса лабораторных работ вы с ними не столкнетесь. Вообще говоря, синтаксис языка SystemVerilog допускает использование оператора `assign` внутри программного блока, однако в рамках данного курса не существует ни одной ситуации, когда это может потребоваться и со 100% вероятностью будет ошибочно. +Под "программными блоками" подразумеваются блоки `always` (всех типов) и `initial`. Есть и другие программные блоки, но в рамках данного курса лабораторных работ вы с ними не столкнетесь. Вообще говоря, синтаксис языка SystemVerilog допускает использование оператора `assign` внутри программного блока (так называемое "**процедурное непрерывное присваивание**")[[2, стр. 232]](https://ieeexplore.ieee.org/document/8299595), однако в рамках данного курса не существует ни одной ситуации, когда это может потребоваться и со 100% вероятностью будет ошибочно. В отличие от непрерывного присваивания, **процедурное присваивание может быть использовано только в программных блоках**. @@ -70,11 +89,15 @@ _Рисунок 2. Пример цепочки неблокирующих при 2. Затем вычисляется значение `RHS` второго присваивания. Поскольку `a` еще не присвоили значение `5`, результатом `RHS` становится текущее значение `a` — 3. Присваивание этого значения сигналу `b` **откладывается** на потом. 3. Аналогичным образом вычисляется `RHS` третьего присваивания (`2`). Присваивание этого значения также **откладывается** на потом. -Так называемое "**потом**" наступает когда завершается вычисление `RHS` всех неблокирующих присваиваний и завершение присвоений всех блокирующих присваиваний (однако "потом" все равно происходит в тот же момент времени, обратите внимание на значение времени на _рис. 2_). В стандарте SystemVerilog этот момент называется `NBA-region` (сокр. от "Non-Blocking Assignment region") [2, стр. 61]. Выполнение отложенных присваиваний происходит в том же порядке, в котором они шли в программном блоке. Подробнее о том как работает событийная симуляция (event based simulation) в SystemVerilog вы можете прочесть в стандарте [IEEE 1800-2017](https://ieeexplore.ieee.org/document/8299595) (раздел 4). Стандарт доступен бесплатно всем желающим по программе "IEEE GET Program". +Так называемое "**потом**" наступает когда завершается вычисление `RHS` всех неблокирующих присваиваний и завершение присвоений всех блокирующих присваиваний (однако "потом" все равно происходит в тот же момент времени, обратите внимание на значение времени на _рис. 2_). В стандарте SystemVerilog этот момент называется `NBA-region` (сокр. от "Non-Blocking Assignment region") [[2, стр. 61]](https://ieeexplore.ieee.org/document/8299595). Выполнение отложенных присваиваний происходит в том же порядке, в котором они шли в программном блоке. Подробнее о том как работает событийная симуляция (event based simulation) в SystemVerilog вы можете прочесть в стандарте [IEEE 1800-2017](https://ieeexplore.ieee.org/document/8299595) (раздел 4). Стандарт доступен бесплатно всем желающим по программе "IEEE GET Program". -Таким образом, если `LHS` блокирующего присваивания используется в качестве операнда `RHS` любого другого последующего присваивания, результат предыдущего выражения будет передан дальше **в тот же момент времени**, что очень похоже на "_последовательное вычисление_". +Таким образом, если `LHS` **блокирующего** присваивания используется в качестве операнда `RHS` любого другого последующего присваивания, это выражение будет иметь уже обновленное значение, что очень похоже на "_последовательное вычисление_". -С другой стороны `LHS` неблокирующего присваивания не может использоваться в качестве операнда `RHS` последующих присваиваний, что создает иллюзию "_параллельного вычисления_". +С другой стороны значение, присвоенное `LHS` значение с помощью **неблокирующего** присваивания не может использоваться в качестве операнда `RHS` последующих присваиваний, что создает иллюзию "_параллельного вычисления_" (см. _рис. 3_). + +![../.pic/Basic%20Verilog%20structures/assignments/fig_03.drawio.svg](../.pic/Basic%20Verilog%20structures/assignments/fig_03.drawio.svg) + +_Рисунок 3. Иллюстрация блокирующих и неблокирующих присваиваний._ Теперь, понимая как работают присваивания с точки зрения моделирования, посмотрим на то, во что могут синтезироваться подобные операторы. @@ -104,37 +127,37 @@ assign out = c; endmodule ``` -_Листинг 1. Пример описания модуля, использующего цепочку блокирующих присваиваний._ +_Листинг 2. Пример описания модуля, использующего цепочку блокирующих присваиваний._ Если вы уже знакомы с содержимым документа о том, [как описывать регистры](Registers.md), подумайте: какой будет результат синтеза у этой схемы? --- -Давайте "прочитаем" эту схему. Мы видим модуль, с входом `in`, выходом `out` и тактирующим синхроимпульсом `clk`. Так же мы видим три сигнала `a`,`b`,`c`, которые описываются в блоке `always_ff`, предназначенном для описания регистров. Значение `in` по цепочке этих регистров передается до регистра `c`, выход которого подключен к выходу `out`. +Давайте "прочитаем" эту схему. Мы видим модуль, с входом `in`, выходом `out` и тактирующим синхроимпульсом `clk`. Также мы видим три сигнала `a`,`b`,`c`, которые описываются в блоке `always_ff`, предназначенном для описания регистров. Значение `in` по цепочке этих регистров передается до регистра `c`, выход которого подключен к выходу `out`. -Похоже, что здесь был описан [**сдвиговый регистр**](https://ru.wikipedia.org/wiki/Регистр_(цифровая_техника)#Сдвигающие_(последовательные)_регистры), представленный на _рис. 3_. +Похоже, что здесь был описан [**сдвиговый регистр**](https://ru.wikipedia.org/wiki/Регистр_(цифровая_техника)#Сдвигающие_(последовательные)_регистры), представленный на _рис. 4_. -![../.pic/Basic%20Verilog%20structures/assignments/fig_03.drawio.svg](../.pic/Basic%20Verilog%20structures/assignments/fig_03.drawio.svg) +![../.pic/Basic%20Verilog%20structures/assignments/fig_04.drawio.svg](../.pic/Basic%20Verilog%20structures/assignments/fig_04.drawio.svg) -_Рисунок 3. Трехразрядный сдвиговый регистр._ +_Рисунок 4. Трехразрядный сдвиговый регистр._ Давайте откроем цифровую схему, сгенерированную Vivado и убедимся в наших выводах. -![../.pic/Basic%20Verilog%20structures/assignments/fig_04.png](../.pic/Basic%20Verilog%20structures/assignments/fig_04.png) +![../.pic/Basic%20Verilog%20structures/assignments/fig_05.png](../.pic/Basic%20Verilog%20structures/assignments/fig_05.png) -_Рисунок 4. Схема, сгенерированная Vivado по описанию из Листинга 1._ +_Рисунок 5. Схема, сгенерированная Vivado по описанию из Листинга 2._ Произошло что-то странное. Вместо трех регистров Vivado создал только один и судя по названию — это последний регистр `c`. Почему это произошло? Изучим внимательней поведение цепочки блокирующих присваиваний, представленное на _рис. 1_. -Каждое последующее присваивание ожидало, пока не выполнится предыдущее, таким образом, `RHS` первого присваивания (`5`) сразу же (без каких-либо задержек) распространился по всем регистрам. Моделируя _Листинг 1_ мы получим **поведение**, когда на вход каждого регистра будет подаваться сигнал `in`. +Каждое последующее присваивание ожидало, пока не выполнится предыдущее, таким образом, `RHS` первого присваивания (`5`) сразу же распространился по всем регистрам. Моделируя _Листинг 2_ мы получим **поведение**, когда на вход каждого регистра будет подаваться сигнал `in`. -Таким образом на самом деле, мы должны были изобразить нашу схему как на _рис. 5_. +Таким образом на самом деле, мы должны были изобразить нашу схему как на _рис. 6_. -![../.pic/Basic%20Verilog%20structures/assignments/fig_05.drawio.svg](../.pic/Basic%20Verilog%20structures/assignments/fig_05.drawio.svg) +![../.pic/Basic%20Verilog%20structures/assignments/fig_06.drawio.svg](../.pic/Basic%20Verilog%20structures/assignments/fig_06.drawio.svg) -_Рисунок 5. Схема, описанная Листингом 1._ +_Рисунок 6. Схема, описанная Листингом 2._ Но почему тогда на схеме Vivado не осталось регистров `a` и `b`? Посмотрим на них внимательней. Их выходы ни на что не влияют, они висят неподключенные. А значит эти регистры не имеют никакого смысла и если их убрать, ничего не изменится. @@ -149,11 +172,11 @@ Vivado обнаружил, что регистры `a` и `b` ни на что Если вы используете Vivado 2023.1 и новее, вы можете обнаруживать подобные предупреждения более удобным способом — посредством линтера, который можно вызвать из вкладки `RTL ANALYSIS` окна `Flow Navigator`. -![../.pic/Basic%20Verilog%20structures/assignments/fig_06.png](../.pic/Basic%20Verilog%20structures/assignments/fig_06.png) +![../.pic/Basic%20Verilog%20structures/assignments/fig_07.png](../.pic/Basic%20Verilog%20structures/assignments/fig_07.png) -_Рисунок 6. Пример вызова линтера._ +_Рисунок 7. Пример вызова линтера._ -Давайте заменим в _Листинге 1_ блокирующие присваивания на неблокирующие. Напоминаем, что оператор неблокирующего присваивания записывается как `<=`. +Давайте заменим в _Листинге 2_ блокирующие присваивания на неблокирующие. Напоминаем, что оператор неблокирующего присваивания записывается как `<=`. ```SystemVerilog module example_2( @@ -175,21 +198,21 @@ assign out = c; endmodule ``` -_Листинг 2. Пример описания модуля, использующего цепочку неблокирующих присваиваний._ +_Листинг 3. Пример описания модуля, использующего цепочку неблокирующих присваиваний._ Посмотрим, какую схему сгенерирует Vivado в этот раз. -![../.pic/Basic%20Verilog%20structures/assignments/fig_07.png](../.pic/Basic%20Verilog%20structures/assignments/fig_07.png) +![../.pic/Basic%20Verilog%20structures/assignments/fig_08.png](../.pic/Basic%20Verilog%20structures/assignments/fig_08.png) -_Рисунок 7. Схема, сгенерированная Vivado по описанию из Листинга 2._ +_Рисунок 8. Схема, сгенерированная Vivado по описанию из Листинга 3._ -Вряд ли полученный результат стал для вас неожиданным сюжетным поворотом, но давайте разберемся, почему в этот раз сгенерировалась схема, аналогичная представленной на _рис. 3_. +Вряд ли полученный результат стал для вас неожиданным сюжетным поворотом, но давайте разберемся, почему в этот раз сгенерировалась схема, аналогичная представленной на _рис. 4_. -Для этого обратимся к примеру, представленному на _рис. 2_. В данном примере **неблокирующем присваивании** сперва вычислялись значения всех `RHS` (запоминались значения выходов всех регистров) и только потом происходило присваивание новых значений. Подобное **поведение** аналогично поведению сдвиговых регистров. +Для этого обратимся к примеру, представленному на _рис. 2_. В данном примере **неблокирующего присваивания** сперва вычислялись значения всех `RHS` (запоминались значения выходов всех регистров) и только потом происходило присваивание новых значений. Подобное **поведение** аналогично поведению сдвиговых регистров. Слово "_поведение_" было выделено дважды неспроста. Описание схем, которое мы сделали называется "**поведенческим описанием схемы**". -Можно ли реализовать сдвиговый регистр, используя блокирующие присваивания? Конечно. Например, можно поменять порядок присваиваний как в _Листинге 3_. +Можно ли реализовать сдвиговый регистр, используя блокирующие присваивания? Конечно. Например, можно поменять порядок присваиваний как в _Листинге 4_. ```SystemVerilog module example_3( @@ -211,9 +234,9 @@ assign out = c; endmodule ``` -_Листинг 3. Цепочка блокирующих присваиваний в порядке обратном приведенному в Листинге 1._ +_Листинг 4. Цепочка блокирующих присваиваний в порядке обратном приведенному в Листинге 2._ -В этом случае, линтер не сообщит ни о каких ошибках, а Vivado сгенерирует схему, аналогичную _рис. 7_ +В этом случае, линтер не сообщит ни о каких ошибках, а Vivado сгенерирует схему, аналогичную _рис. 8_ Так произошло, поскольку мы разорвали зависимость значений `RHS` последующих присваиваний от значений `LHS` предыдущих (поведение, которое демонстрировала цепочка неблокирующих присваиваний с самого начала). Однако данное решение является скорее хаком, чем примером хорошего проектирования. По сути, мы просто подстроили код, описанный с помощью блокирующих присваиваний таким образом, чтоб он вел себя как код, использующий неблокирующие присваивания. @@ -247,29 +270,29 @@ assign out = c; endmodule ``` -_Листинг 4. Сдвиговый регистр, описанный через блокирующие присваивания в отдельных блоках always._ +_Листинг 5. Сдвиговый регистр, описанный через блокирующие присваивания в отдельных блоках always._ -Сгенерированная в Vivado схема будет аналогична _рис. 7_. Но давайте попробуем промоделировать работу этой схемы, подавая случайные воздействия на вход `in`. - -![../.pic/Basic%20Verilog%20structures/assignments/fig_08.png](../.pic/Basic%20Verilog%20structures/assignments/fig_08.png) - -_Рисунок 8. Симуляция модуля, описанного Листингом 4._ - -Выглядит как-то не по "сдвигово-регистерски". В чем же дело? - -Как уже упоминалось ранее, программные блоки (коими являются блоки `always`) исполняются во время моделирования независимо друг от друга в недетерминированном стандартом порядке. На практике это означает то, что сперва может исполниться второй блок, потом третий, а потом первый — либо в любом другом порядке. Разработчик не может рассчитывать на порядок блоков `always` при описании схемы. - -Конкретно в данной ситуации, симулятор воспроизвел блоки ровно в том порядке, в котором они были описаны. Сперва `a` получил значение `in`, потом `b` получил обновленное значение `a`, затем `c` получил обновленное значение `b`. - -Поскольку поведение недетерминировано, нельзя однозначно сказать, какую схему должен был воспроизвести синтезатор. В данной ситуации, он воспроизвел схему которую мы хотели получить, что, тем не менее, не помогло с моделированием. - -Если заменить порядок `always` подобно тому, как мы изменили порядок в _Листинге 3_, результат на временной диаграмме совпадет с поведением сдвигового регистра. +Сгенерированная в Vivado схема будет аналогична _рис. 8_. Но давайте попробуем промоделировать работу этой схемы, подавая случайные воздействия на вход `in`. ![../.pic/Basic%20Verilog%20structures/assignments/fig_09.png](../.pic/Basic%20Verilog%20structures/assignments/fig_09.png) -_Рисунок 9. Моделирование поведения сдвигового регистра._ +_Рисунок 9. Симуляция модуля, описанного Листингом 5._ -Однако, как уже объяснялось ранее, вы не можете рассчитывать на такой результат. Сегодня симулятор смоделировал поведение одним образом — завтра он смоделирует этот же код, в котором не изменилась ни одна строка, по-другому, и будет по прежнему работать в соответствии со стандартом. +Выглядит как-то не по "сдвигово-регистерски". В чем же дело? + +Как уже упоминалось ранее, программные блоки (коими являются блоки `always`) исполняются во время моделирования независимо друг от друга в недетерминированном стандартом порядке. На практике это означает то, что сперва может исполниться второй блок, потом третий, а потом первый — либо в любом другом порядке. Разработчик не может (и не должен) рассчитывать на порядок блоков `always` при описании схемы. + +Конкретно в данной ситуации, симулятор воспроизвел блоки ровно в том порядке, в котором они были описаны. Сперва `a` получил значение `in`, потом `b` получил обновленное значение `a`, затем `c` получил обновленное значение `b`. + +Поскольку поведение недетерминировано, нельзя однозначно сказать, какую схему должен был воспроизвести синтезатор. В данной ситуации, он воспроизвел схему которую мы хотели получить, но моделирование того же самого модуля демонстрирует поведение вовсе не этой схемы. + +Если заменить порядок `always` подобно тому, как мы изменили порядок в _Листинге 4_, результат на временной диаграмме совпадет с поведением сдвигового регистра. + +![../.pic/Basic%20Verilog%20structures/assignments/fig_10.png](../.pic/Basic%20Verilog%20structures/assignments/fig_10.png) + +_Рисунок 10. Моделирование поведения сдвигового регистра._ + +Однако, как уже объяснялось ранее, вы не можете рассчитывать на такой результат. Сегодня симулятор смоделировал поведение одним образом — завтра он смоделирует этот же код (в котором не изменилась ни одна строка) по-другому, и будет по прежнему работать в соответствии со стандартом. Для того, чтобы получить детерминированный результат, вам необходимо снова воспользоваться неблокирующим присваиванием, поскольку и в этом случае порядок исполнения блоков `always` не влияет на результат присваиваний — сначала вычисляются значения `RHS` всех неблокирующих присваиваний всех программных блоков, и только потом происходит присваивание этих значений `LHS`. @@ -292,17 +315,17 @@ end endmodule ``` -_Листинг 5. Пример цепочки блокирующих присваиваний с комбинационной логикой._ +_Листинг 6. Пример цепочки блокирующих присваиваний с комбинационной логикой._ -Остановитесь на минуту и подумайте, схему с каким поведением описывает _Листинг 5_? +Остановитесь на минуту и подумайте, схему с каким поведением описывает _Листинг 6_? --- Как вы могли догадаться, данный листинг описывает схему с одним регистром `d`, на вход которого подается результат комбинационной логики `c & (a | b)`, поскольку сперва в `temp` попадает результат `a | b` и только после этого вычисляется значение `c & temp`. -![../.pic/Basic%20Verilog%20structures/assignments/fig_10.png](../.pic/Basic%20Verilog%20structures/assignments/fig_10.png) +![../.pic/Basic%20Verilog%20structures/assignments/fig_11.png](../.pic/Basic%20Verilog%20structures/assignments/fig_11.png) -_Рисунок 10. Схема, сгенерированная Vivado по описанию из Листинга 5._ +_Рисунок 11. Схема, сгенерированная Vivado по описанию из Листинга 6._ Попробуйте догадаться о том, что произойдет, если снова заменить блокирующие присваивания на неблокирующие? @@ -310,9 +333,9 @@ _Рисунок 10. Схема, сгенерированная Vivado по оп Результат изменится следующим образом. -![../.pic/Basic%20Verilog%20structures/assignments/fig_11.png](../.pic/Basic%20Verilog%20structures/assignments/fig_11.png) +![../.pic/Basic%20Verilog%20structures/assignments/fig_12.png](../.pic/Basic%20Verilog%20structures/assignments/fig_12.png) -_Рисунок 11. Схема, сгенерированная Vivado по описанию из Листинга 5 после замены блокирующих присваиваний на неблокирующие._ +_Рисунок 12. Схема, сгенерированная Vivado по описанию из Листинга 6 после замены блокирующих присваиваний на неблокирующие._ Из прочтенного может сложиться впечатление, будто бы автор хочет показать, что блокирующее присваивание — это плохо, а неблокирующее — хорошо, однако это не так. Это просто два похожих инструмента, работающих разными способами, о которых должен знать профессионал, использующий эти инструменты. @@ -320,7 +343,7 @@ _Рисунок 11. Схема, сгенерированная Vivado по оп Рассмотрим предыдущий пример еще раз. Нельзя сказать, что одна схема лучше другой — это просто две разные схемы и то, какая из них вам нужна зависит только от вашей задачи. -Однако нельзя не заметить, что при использовании блокирующего присваивания, мы "теряли" регистры. +Однако нельзя не заметить, что при использовании блокирующего присваивания, мы "теряли" регистры. Более того, моделирование **неблокирующих** присваиваний ближе всего по поведению приближено к моделированию регистровой логики [[1, стр. 14]](http://www.sunburst-design.com/papers/CummingsSNUG2000SJ_NBA.pdf). Пока что мы рассматривали только синхронные схемы (схемы, работающие по тактовому синхроимпульсу). @@ -342,19 +365,19 @@ end endmodule ``` -_Листинг 6. Пример цепочки блокирующих присваиваний в комбинационной схеме._ +_Листинг 7. Пример цепочки блокирующих присваиваний в комбинационной схеме._ > Обратите внимание на то, что `always_ff` поменялся на `always_comb`. -Как вы думаете, какая схема будет сгенерирована по описанию, представленному _Листинга 6_, и что произойдет с этой схемой, если заменить в нем все блокирующие присваивания на неблокирующие? +Как вы думаете, какая схема будет сгенерирована по описанию, представленному _Листинга 7_, и что произойдет с этой схемой, если заменить в нем все блокирующие присваивания на неблокирующие? --- -Вас может это удивить, но в обоих случаях будет сгенерирована схема, представленная на _рис. 12_. +Вас может это удивить, но в обоих случаях будет сгенерирована схема, представленная на _рис. 13_. -![../.pic/Basic%20Verilog%20structures/assignments/fig_12.png](../.pic/Basic%20Verilog%20structures/assignments/fig_12.png) +![../.pic/Basic%20Verilog%20structures/assignments/fig_13.png](../.pic/Basic%20Verilog%20structures/assignments/fig_13.png) -_Рисунок 12. Схема, сгенерированная Vivado по описанию из Листинга 6._ +_Рисунок 13. Схема, сгенерированная Vivado по описанию из Листинга 7._ > Девочка остолбенела. У неё возникло отчётливое чувство какой-то ужасной несправедливости по отношению к ней. Гарри Поттер был грязным, отвратительным обманщиком и лжецом. Но во время игры все его ответы были верными. [Элиезер Юдковский / Гарри Поттер и методы рационального мышления] @@ -366,15 +389,15 @@ _Рисунок 12. Схема, сгенерированная Vivado по оп Теперь, когда мы стали использовать блок `always_comb`, правила игры изменились. Нет, принцип работы блокирующих и неблокирующих присваиваний остался тем же самым. Изменилось только то, сколько раз будет вызван данный блок. -Начнем со схемы, построенной по блокирующему присваиванию. В общем-то, тут у вас не должно было возникнуть вопросов, логика ровно та же, что была и при построении схемы по _Листингу 5_ (_рис. 10)_, только без выходного регистра. Что логично, ведь мы убрали тактирующий сигнал. +Начнем со схемы, построенной по описанию, использующему блокирующее присваивание. В общем-то, тут у вас не должно было возникнуть вопросов, логика ровно та же, что была и при построении схемы по _Листингу 6_ (_рис. 11)_, только без выходного регистра. Что логично, ведь мы убрали из описания тактирующий сигнал. Вопрос в том, почему это вдруг схема, построенная после замены блокирующих присваиваний на неблокирующие ведет себя точно так же? -Рассмотрим _рис. 13_. +Рассмотрим _рис. 14_. -![../.pic/Basic%20Verilog%20structures/assignments/fig_13.drawio.svg](../.pic/Basic%20Verilog%20structures/assignments/fig_13.drawio.svg) +![../.pic/Basic%20Verilog%20structures/assignments/fig_14.drawio.svg](../.pic/Basic%20Verilog%20structures/assignments/fig_14.drawio.svg) -_Рисунок 13. Моделирование цепочки присваиваний в комбинационном блоке `always`._ +_Рисунок 14. Моделирование цепочки присваиваний в комбинационном блоке `always`._ Комбинационный блок `always` начинает исполняться **каждый раз**, когда операнд любого `RHS` этого блока меняет своё значение. @@ -394,35 +417,23 @@ _Рисунок 13. Моделирование цепочки присваива > Получается что для комбинационной логики нет разницы между блокирующим и неблокирующим присваиванием, после переходных процессов результат будет одинаковым? -И да и нет. С точки зрения синтеза схемы так и есть. Однако есть нюанс в случае моделирования схемы. - -Особенность планировщика событий симуляции такова, что все `RHS` неблокирующих присваиваний будут вычислены после выполнения всех блокирующих присваиваний. - -Чем это может быть удобно? - -Давайте сделаем небольшое лирическое отступление и разберем часто используемую в мире разработки цифровых схем аббревиатуру `RTL`. Она расшифровывается как `Register Transfer Level` — уровень межрегистровых передач. Цифровую схему можно рассматривать на различных уровнях абстракции. Можно рассматривать с физического уровня: как набор проводников, транзисторов, а так же электронов и "дырок", бегающих по ним. Можно рассматривать схему на уровне логических вентилей (gate-level). Одним из таких уровней абстракции является уровень межрегистровых передач, когда мы делим схему на две части: регистры, и комбинационную логику их связующую. - -По каждому такту синхроимпульса, в регистры будет записываться новое значение, пришедшее от комбинационной логики, что приведет к изменению на выходе регистра и начнет цепочку изменений в комбинационной логике, соединяющей регистры. К следующему такту на концах комбинационной логики, являющихся входами регистров должны оказаться установившееся значения, которые будут записаны в регистры и все повторится снова. - -Было бы удобно разделить эти две части: обновление значений в регистрах и обновление значений в комбинационной логике таким образом, чтобы сперва обновлялась комбинационная логика, а потом уже обновлялось значение в регистрах. - -Именно этого можно добиться, если комбинационная логика будет описана посредством блокирующих присваиваний, которые будут выполнены до неблокирующих присваиваний, используемых при описании регистров. +И да и нет. С точки зрения синтеза схемы так и есть. Однако есть нюанс в случае моделирования схемы. Поведение комбинационной логики лучше моделирует блокирующее присваивание[[1, стр. 14]](http://www.sunburst-design.com/papers/CummingsSNUG2000SJ_NBA.pdf). Подведем итоги прочитанному: - Блокирующее присваивание блокирует выполнение остальных операций до завершения текущего присваивания. Оно подобно обычному присваиванию в парадигме программирования. -- Неблокирующее присваивание сперва вычисляет `RHS`, давая исполниться остальным операциям до самого присваивания. Причем в случае, если после неблокирующего присваивания выполняется блокирующее, от `LHS` которого зависело `RHS` неблокирующего присваивания — значение `RHS` будет обновлено (в упрощенном виде с некоторыми оговорками это предложение можно читать как: _"неблокирующие присваивания исполняются после выполнения всех блокирующих"_). +- Неблокирующее присваивание сперва вычисляет `RHS`, давая исполниться остальным операциям до самого присваивания. В связи с особенностями поведения блокирующего и неблокирующего присваивания, выведены следующие две максимы: - при описании последовательностной логики (регистров) используйте **неблокирующее** присваивание; - при описании комбинационной логики используйте **блокирующее** присваивание. -Кроме того, существуют следующие рекомендации и требования[1, стр. 5]: +Кроме того, существуют следующие рекомендации и требования[[1, стр. 5]](http://www.sunburst-design.com/papers/CummingsSNUG2000SJ_NBA.pdf): - _При описании как последовательностной логики, так и комбинационной в одном блоке `always` используйте неблокирующее присваивание._ -- _Не смешивайте в одном блоке блокирующие и неблокирующие присваивания_ — стандарт допускает подобное описание, но оно затрудняет его чтение. -- _Не смешивайте блокирующие и неблокирующие присваивания для одного и того же сигнала_ — стандарт это запрещает. +- _Не смешивайте в одном блоке блокирующие и неблокирующие присваивания_ — стандарт допускает подобное описание, но оно затрудняет его чтение. Представьте, что читая описание схемы, вам бы постоянно приходилось держать в голове какие присваивания уже произошли, а какие только произойдут, чтобы понять как эта схема работает. +- _Не смешивайте блокирующие и неблокирующие присваивания для одного и того же сигнала_ — стандарт это запрещает (для блоков `always_ff`, `always_comb`, `always_latch`). Использованная литература: