<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta name="generator" content="pdf2htmlEX">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<link rel="stylesheet" href="https://static.pudn.com/base/css/base.min.css">
<link rel="stylesheet" href="https://static.pudn.com/base/css/fancy.min.css">
<link rel="stylesheet" href="https://static.pudn.com/prod/directory_preview_static/6262b4654f8811599ef26720/raw.css">
<script src="https://static.pudn.com/base/js/compatibility.min.js"></script>
<script src="https://static.pudn.com/base/js/pdf2htmlEX.min.js"></script>
<script>
try{
pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});
}catch(e){}
</script>
<title></title>
</head>
<body>
<div id="sidebar" style="display: none">
<div id="outline">
</div>
</div>
<div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/6262b4654f8811599ef26720/bg1.jpg"><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">8</div><div class="t m0 x1 h3 y2 ff1 fs1 fc0 sc0 ls0 ws0">Describing<span class="_ _0"> </span>Combinational</div><div class="t m0 x1 h3 y3 ff1 fs1 fc0 sc0 ls0 ws0">and<span class="_ _0"> </span>Sequential<span class="_ _0"> </span>Logic<span class="_ _0"> </span>using</div><div class="t m0 x1 h3 y4 ff1 fs1 fc0 sc0 ls0 ws0">Verilog<span class="_ _0"> </span>HDL</div><div class="t m0 x1 h4 y5 ff2 fs2 fc0 sc0 ls0 ws0">8.1<span class="_ _1"> </span>THE<span class="_ _2"> </span>DATA-FLOW<span class="_ _2"> </span>STYLE<span class="_ _2"> </span>OF<span class="_ _2"> </span>DESCRIPTION:</div><div class="t m0 x1 h4 y6 ff2 fs2 fc0 sc0 ls0 ws0">REVIEW<span class="_ _2"> </span>OF<span class="_ _2"> </span>THE<span class="_ _2"> </span>CONTINUOUS<span class="_ _2"> </span>ASSIGNMENT</div><div class="t m0 x1 h5 y7 ff3 fs3 fc0 sc0 ls0 ws0">W<span class="_ _3"></span>e<span class="_ _4"> </span>have<span class="_ _4"> </span>already<span class="_ _4"> </span>come<span class="_ _4"> </span>across<span class="_ _4"> </span>numerous<span class="_ _4"> </span>examples<span class="_ _4"> </span>in<span class="_ _4"> </span>the<span class="_ _4"> </span>pre<span class="_ _5"></span>vious<span class="_ _4"> </span>chapters<span class="_ _4"> </span>of<span class="_ _4"> </span>V<span class="_ _6"></span>erilog<span class="_ _4"> </span>designs</div><div class="t m0 x1 h5 y8 ff3 fs3 fc0 sc0 ls0 ws0">written<span class="_ _2"> </span>in<span class="_ _7"> </span>the<span class="_ _7"> </span>so-called<span class="_ _2"> </span>data-flow<span class="_ _7"> </span>style.<span class="_ _7"> </span>This<span class="_ _2"> </span>style<span class="_ _7"> </span>of<span class="_ _2"> </span>description<span class="_ _7"> </span>makes<span class="_ _2"> </span>use<span class="_ _2"> </span>of<span class="_ _7"> </span>the<span class="_ _7"> </span>para<span class="_"> </span>llel</div><div class="t m0 x1 h5 y9 ff3 fs3 fc0 sc0 ls0 ws0">statement<span class="_ _8"> </span>known<span class="_ _4"> </span>as<span class="_ _4"> </span>a<span class="_ _8"> </span><span class="ff4">continuo<span class="_ _9"></span>us<span class="_ _4"> </span>assignment.<span class="_ _8"> </span></span>Predom<span class="_ _9"></span>inantly<span class="_ _8"> </span>used<span class="_ _4"> </span>to<span class="_ _8"> </span>describe<span class="_ _8"> </span>combinational</div><div class="t m0 x1 h5 ya ff3 fs3 fc0 sc0 ls0 ws0">logic,<span class="_ _a"> </span>the<span class="_ _a"> </span>flo<span class="_ _5"></span>w<span class="_ _a"> </span>of<span class="_ _a"> </span>execution<span class="_ _a"> </span>of<span class="_ _a"> </span>continuous<span class="_ _b"> </span>assignment<span class="_ _a"> </span>statements<span class="_ _a"> </span>is<span class="_ _a"> </span>dictated<span class="_ _a"> </span>by<span class="_ _b"> </span>events<span class="_ _b"> </span>on<span class="_ _a"> </span>signals</div><div class="t m0 x1 h5 yb ff3 fs3 fc0 sc0 ls0 ws0">(usually<span class="_ _2"> </span><span class="ff5">wire</span>s)<span class="_ _c"> </span>appearing<span class="_ _2"> </span>within<span class="_ _c"> </span>the<span class="_ _2"> </span>expressions<span class="_ _2"> </span>on<span class="_ _2"> </span>the<span class="_ _c"> </span>left-<span class="_ _2"> </span>and<span class="_ _c"> </span>right-hand<span class="_ _2"> </span>sides<span class="_ _c"> </span>of<span class="_ _2"> </span>the</div><div class="t m0 x1 h5 yc ff3 fs3 fc0 sc0 ls0 ws0">continuous<span class="_ _a"> </span>assignm<span class="_"> </span>ents.<span class="_ _d"> </span>Such<span class="_ _a"> </span>statements<span class="_ _d"> </span>are<span class="_ _a"> </span>identified<span class="_ _a"> </span>by<span class="_ _a"> </span>the<span class="_ _d"> </span>keyword<span class="_ _b"> </span><span class="ff5">assig<span class="_ _9"></span>n</span>.<span class="_ _a"> </span>The<span class="_ _d"> </span>keyword</div><div class="t m0 x1 h5 yd ff3 fs3 fc0 sc0 ls0 ws0">is<span class="_ _4"> </span>follo<span class="_ _5"></span>wed<span class="_ _4"> </span>by<span class="_ _4"> </span>one<span class="_ _d"> </span>or<span class="_ _4"> </span>more<span class="_ _4"> </span>assignments<span class="_ _4"> </span>terminated<span class="_ _4"> </span>by<span class="_ _d"> </span>a<span class="_ _4"> </span>semicolon.</div><div class="t m0 x2 h5 ye ff3 fs3 fc0 sc0 ls0 ws0">All<span class="_ _a"> </span>of<span class="_ _a"> </span>the<span class="_ _d"> </span>following<span class="_ _b"> </span>examples<span class="_ _a"> </span>descr<span class="_ _9"></span>ibe<span class="_ _a"> </span>combinational<span class="_ _d"> </span>logic,<span class="_ _a"> </span>this<span class="_ _a"> </span>being<span class="_ _d"> </span>the<span class="_ _a"> </span>most<span class="_ _a"> </span>common<span class="_ _d"> </span>use</div><div class="t m0 x1 h5 yf ff3 fs3 fc0 sc0 ls0 ws0">of<span class="_ _4"> </span>the<span class="_ _d"> </span>continuo<span class="_ _9"></span>us<span class="_ _4"> </span>assignment<span class="_ _4"> </span>statement:</div><div class="t m0 x2 h6 y10 ff6 fs3 fc0 sc0 ls0 ws0">//some<span class="_ _7"> </span>continuo<span class="_ _9"></span>us<span class="_ _7"> </span>assignment<span class="_ _2"> </span>statements</div><div class="t m0 x3 h7 y11 ff5 fs3 fc0 sc0 ls0 ws0">assign<span class="_ _c"> </span><span class="ff7">A<span class="_ _2"> </span><span class="ff8">¼<span class="_ _7"> </span></span><span class="ls1">q[<span class="_ _e"></span><span class="ls0">0],<span class="_ _7"> </span>B<span class="_ _7"> </span><span class="ff8">¼<span class="_ _7"> </span></span><span class="ls1">q[<span class="_ _e"></span><span class="ls0">1],<span class="_ _7"> </span>C<span class="_ _2"> </span><span class="ff8">¼<span class="_ _7"> </span></span><span class="ls2">q[<span class="_ _f"></span><span class="ls0">2];</span></span></span></span></span></span></span></div><div class="t m0 x3 h7 y12 ff5 fs3 fc0 sc0 ls0 ws0">assign<span class="_ _c"> </span><span class="ff7">ou<span class="_ _9"></span>t<span class="_ _7"> </span><span class="ff8">¼<span class="_ _7"> </span></span>(<span class="ff8"></span>s1<span class="_ _7"> </span>&<span class="_ _7"> </span><span class="ff8"></span>s0<span class="_ _7"> </span>&<span class="_ _2"> </span>i0)<span class="_ _7"> </span><span class="ff8">j</span></span></div><div class="t m0 x4 h7 y13 ff7 fs3 fc0 sc0 ls0 ws0">(<span class="ff8"></span>s1<span class="_ _7"> </span>&<span class="_ _7"> </span>s0<span class="_ _7"> </span>&<span class="_ _7"> </span>i1)<span class="_ _2"> </span><span class="ff8">j</span></div><div class="t m0 x4 h7 y14 ff7 fs3 fc0 sc0 ls0 ws0">(s1<span class="_ _7"> </span>&<span class="_ _7"> </span><span class="ff8"></span>s0<span class="_ _7"> </span>&<span class="_ _7"> </span>i2)<span class="_ _2"> </span><span class="ff8">j</span></div><div class="t m0 x4 h6 y15 ff7 fs3 fc0 sc0 ls0 ws0">(s1<span class="_ _7"> </span>&<span class="_ _7"> </span>s0<span class="_ _7"> </span>&<span class="_ _7"> </span>i3);</div><div class="t m0 x3 h7 y16 ff5 fs3 fc0 sc0 ls0 ws0">assign<span class="_ _c"> </span><span class="ff7">#1<span class="_ _9"></span>5<span class="_ _7"> </span>{c_out,<span class="_ _7"> </span>sum}<span class="_ _2"> </span><span class="ff8">¼<span class="_ _7"> </span></span>a<span class="_ _7"> </span><span class="ff8">þ<span class="_ _7"> </span></span>b<span class="_ _7"> </span><span class="ff8">þ<span class="_ _7"> </span></span>c_in;</span></div><div class="t m0 x2 h5 y17 ff3 fs3 fc0 sc0 ls0 ws0">Th<span class="_ _5"></span>e<span class="_ _d"> </span>cont<span class="_ _5"></span>in<span class="_ _5"></span>uou<span class="_ _5"></span>s<span class="_ _d"> </span>ass<span class="_ _5"></span>ign<span class="_ _5"></span>ment<span class="_ _b"> </span>stat<span class="_ _5"></span>ement<span class="_ _b"> </span>for<span class="_ _5"></span>ms<span class="_ _d"> </span>a<span class="_ _a"> </span>stat<span class="_ _5"></span>ic<span class="_ _a"> </span>bind<span class="_ _5"></span>ing<span class="_ _a"> </span>bet<span class="_ _5"></span>ween<span class="_ _b"> </span>the<span class="_ _d"> </span><span class="ff5 ls3">wire<span class="_ _d"> </span></span>bei<span class="_ _5"></span>ng<span class="_ _a"> </span>assi<span class="_ _5"></span>gne<span class="_ _5"></span>d</div><div class="t m0 x1 h7 y18 ff3 fs3 fc0 sc0 ls4 ws0">on<span class="_ _d"> </span>the<span class="_ _d"> </span>left-hand<span class="_ _d"> </span>side<span class="_ _d"> </span>of<span class="_ _d"> </span>the<span class="_ _d"> </span><span class="ff8 ls0">¼<span class="_ _a"> </span><span class="ff3">oper<span class="_ _5"></span>ator<span class="_ _b"> </span>and<span class="_ _a"> </span>the<span class="_ _b"> </span>exp<span class="_ _5"></span>ress<span class="_ _5"></span>ion<span class="_ _b"> </span>on<span class="_ _a"> </span>the<span class="_ _b"> </span>right<span class="_ _5"></span>-ha<span class="_ _5"></span>nd<span class="_ _a"> </span>side<span class="_ _b"> </span>of<span class="_ _a"> </span>the<span class="_ _b"> </span>assi<span class="_ _5"></span>gnm<span class="_ _5"></span>ent</span></span></div><div class="t m0 x1 h5 y19 ff3 fs3 fc0 sc0 ls0 ws0">op<span class="_ _5"></span>erat<span class="_ _5"></span>or<span class="_ _3"></span>.<span class="_ _7"> </span>This<span class="_ _7"> </span>m<span class="_ _5"></span>eans<span class="_ _7"> </span>th<span class="_ _5"></span>at<span class="_ _7"> </span>the<span class="_ _7"> </span>as<span class="_ _5"></span>sign<span class="_ _5"></span>me<span class="_ _5"></span>nt<span class="_ _7"> </span>is<span class="_ _7"> </span>con<span class="_ _5"></span>tinu<span class="_ _5"></span>ous<span class="_ _5"></span>ly<span class="_ _7"> </span>act<span class="_ _5"></span>iv<span class="_ _3"></span>e<span class="_ _2"> </span>and<span class="_ _7"> </span>r<span class="_ _5"></span>eady<span class="_ _7"> </span>to<span class="_ _7"> </span>re<span class="_ _5"></span>spo<span class="_ _5"></span>nd<span class="_ _7"> </span>to<span class="_ _7"> </span>an<span class="_ _5"></span>y</div><div class="t m0 x1 h8 y1a ff9 fs4 fc0 sc0 ls0 ws0">FSM-based Digital Design using <span class="ls5">V</span>erilog HDL <span class="_ _10"></span><span class="ws1"> <span class="ffa ws0">Peter Minns and Ian Elliott</span></span></div><div class="t m0 x1 h9 y1b ffb fs4 fc0 sc0 ls0 ws0">#</div><div class="t m0 x5 h8 y1c ffb fs4 fc0 sc0 ls0 ws2"> <span class="ffa ws0">2008 John <span class="ls6">W</span>iley & Sons, Ltd. ISBN: 978-0-470-06070-4</span></div></div><div class="pi" data-data='{"ctm":[1.961965,0.000000,0.000000,1.961965,0.000000,0.000000]}'></div></div>
</body>
</html>
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/6262b4654f8811599ef26720/bg2.jpg"><div class="t m0 x6 h5 y1d ff3 fs3 fc0 sc0 ls0 ws0">cha<span class="_ _5"></span>nges<span class="_ _a"> </span>to<span class="_ _a"> </span>va<span class="_ _5"></span>riab<span class="_ _3"></span>les<span class="_ _d"> </span>app<span class="_ _5"></span>ear<span class="_ _5"></span>ing<span class="_ _a"> </span>in<span class="_ _d"> </span>the<span class="_ _a"> </span>rig<span class="_ _5"></span>ht-ha<span class="_ _3"></span>nd<span class="_ _d"> </span>side<span class="_ _a"> </span>exp<span class="_ _5"></span>res<span class="_ _5"></span>sio<span class="_ _5"></span>n<span class="_ _d"> </span>(the<span class="_ _a"> </span>inp<span class="_ _5"></span>uts<span class="_ _5"></span>).<span class="_ _d"> </span>Suc<span class="_ _5"></span>h<span class="_ _d"> </span>cha<span class="_ _5"></span>nge<span class="_ _5"></span>s<span class="_ _d"> </span>resu<span class="_ _5"></span>lt</div><div class="t m0 x6 h5 y1e ff3 fs3 fc0 sc0 ls7 ws0">in<span class="_ _8"> </span>th<span class="_ _9"></span>e<span class="_ _11"> </span>ev<span class="_"> </span>aluation<span class="_ _8"> </span>of<span class="_ _11"> </span>the<span class="_ _11"> </span>express<span class="_ _9"></span>ion<span class="_ _8"> </span>an<span class="_ _9"></span>d<span class="_ _8"> </span>u<span class="_ _9"></span>pdating<span class="_ _11"> </span>of<span class="_ _11"> </span>the<span class="_ _11"> </span>target<span class="_ _11"> </span><span class="ff5 ls3">wire<span class="_ _11"> </span></span><span class="ls0">(out<span class="_ _5"></span>put<span class="_ _5"></span>).<span class="_ _8"> </span>In<span class="_ _8"> </span>thi<span class="_ _5"></span>s<span class="_ _8"> </span>mann<span class="_ _5"></span>er<span class="_ _3"></span>,<span class="_ _11"> </span>a</span></div><div class="t m0 x6 h5 y1f ff3 fs3 fc0 sc0 ls0 ws0">con<span class="_ _5"></span>tin<span class="_ _5"></span>uous<span class="_ _d"> </span>assi<span class="_ _5"></span>gnm<span class="_ _5"></span>ent<span class="_ _4"> </span>is<span class="_ _4"> </span>alm<span class="_ _5"></span>ost<span class="_ _4"> </span>e<span class="_ _5"></span>xcl<span class="_ _5"></span>usi<span class="_ _5"></span>v<span class="_ _5"></span>ely<span class="_ _4"> </span>us<span class="_ _5"></span>ed<span class="_ _4"> </span>to<span class="_ _4"> </span>des<span class="_ _5"></span>cri<span class="_ _5"></span>be<span class="_ _4"> </span>comb<span class="_ _5"></span>ina<span class="_ _5"></span>tor<span class="_ _5"></span>ial<span class="_ _4"> </span>lo<span class="_ _5"></span>gic<span class="_ _5"></span>.</div><div class="t m0 x7 h5 y20 ff3 fs3 fc0 sc0 ls0 ws0">As<span class="_ _4"> </span>mentioned<span class="_ _4"> </span>previously<span class="_ _6"></span>,<span class="_ _4"> </span>a<span class="_ _4"> </span>V<span class="_ _6"></span>erilog<span class="_ _4"> </span>module<span class="_ _4"> </span>may<span class="_ _4"> </span>contain<span class="_ _4"> </span>any<span class="_ _4"> </span>number<span class="_ _d"> </span>of<span class="_ _4"> </span>cont<span class="_ _9"></span>inuous<span class="_ _4"> </span>assign-</div><div class="t m0 x6 h5 y21 ff3 fs3 fc0 sc0 ls0 ws0">ment<span class="_ _a"> </span>statements;<span class="_ _a"> </span>they<span class="_ _a"> </span>can<span class="_ _a"> </span>be<span class="_ _d"> </span>inserted<span class="_ _a"> </span>anywhere<span class="_ _a"> </span>between<span class="_ _d"> </span>the<span class="_ _a"> </span>module<span class="_ _a"> </span>header<span class="_ _a"> </span>and<span class="_ _d"> </span>internal<span class="_ _a"> </span><span class="ff5">wire</span>/</div><div class="t m0 x6 h5 y22 ff5 fs3 fc0 sc0 ls0 ws0">reg<span class="_ _4"> </span><span class="ff3">declarations<span class="_ _4"> </span>and<span class="_ _d"> </span>the<span class="_ _4"> </span></span>endmodule<span class="_ _4"> </span><span class="ff3">keyword.</span></div><div class="t m0 x7 h5 y23 ff3 fs3 fc0 sc0 ls0 ws0">The<span class="_ _7"> </span>exp<span class="_ _5"></span>ress<span class="_ _5"></span>io<span class="_ _5"></span>n<span class="_ _c"> </span>app<span class="_ _5"></span>eari<span class="_ _5"></span>ng<span class="_ _2"> </span>on<span class="_ _2"> </span>the<span class="_ _2"> </span>righ<span class="_ _5"></span>t-<span class="_ _5"></span>han<span class="_ _5"></span>d<span class="_ _c"> </span>side<span class="_ _7"> </span>of<span class="_ _c"> </span>the<span class="_ _2"> </span>as<span class="_ _5"></span>sig<span class="_ _5"></span>nme<span class="_ _5"></span>nt<span class="_ _2"> </span>oper<span class="_ _5"></span>ato<span class="_ _5"></span>r<span class="_ _c"> </span>may<span class="_ _2"> </span>co<span class="_ _5"></span>nta<span class="_ _5"></span>in</div><div class="t m0 x6 h5 y24 ff3 fs3 fc0 sc0 ls8 ws0">both<span class="_ _8"> </span><span class="ff5 ls9">reg</span><span class="lsa">-a<span class="_ _12"></span>n<span class="_ _12"></span>d<span class="ff5 ls3">wire</span><span class="lsb">-type<span class="_ _4"> </span>v<span class="_"> </span>ariables<span class="_ _4"> </span>and<span class="_ _8"> </span>make<span class="_ _8"> </span>use<span class="_ _8"> </span>of<span class="_ _8"> </span>any<span class="_ _4"> </span>of<span class="_ _8"> </span>the<span class="_ _8"> </span>V<span class="_ _6"></span>erilog<span class="_ _8"> </span>o<span class="_ _9"></span>perators<span class="_ _4"> </span>mention<span class="_ _9"></span>ed<span class="_ _4"> </span>in</span></span></div><div class="t m0 x6 h5 y25 ff3 fs3 fc0 sc0 lsc ws0">Chapter<span class="_ _8"> </span>7.</div><div class="t m0 x7 h5 y26 ff3 fs3 fc0 sc0 lsd ws0">The<span class="_ _4"> </span>so-called<span class="_ _4"> </span>target<span class="_ _d"> </span>of<span class="_ _4"> </span>the<span class="_ _4"> </span>assignment<span class="_ _d"> </span>(left<span class="_ _9"></span>-hand<span class="_ _4"> </span>side)<span class="_ _4"> </span>must<span class="_ _d"> </span>be<span class="_ _4"> </span>a<span class="_ _4"> </span><span class="ff5 ls9">wire</span><span class="lse">,<span class="_ _4"> </span>since<span class="_ _d"> </span>i<span class="_ _9"></span>t<span class="_ _4"> </span>is<span class="_ _d"> </span><span class="ff4 lsf">continuously</span></span></div><div class="t m0 x6 h5 y27 ff4 fs3 fc0 sc0 ls10 ws0">driven<span class="ff3 ls11">.<span class="_ _a"> </span>Both<span class="_ _d"> </span>single-bit<span class="_ _d"> </span>and<span class="_ _a"> </span>multi-bit<span class="_ _a"> </span>wires<span class="_ _d"> </span>may<span class="_ _a"> </span>be<span class="_ _d"> </span>the<span class="_ _a"> </span><span class="ls12">targets<span class="_ _a"> </span>of<span class="_ _d"> </span>continuous<span class="_ _a"> </span>assignment<span class="_ _d"> </span>statements.</span></span></div><div class="t m0 x7 h5 y28 ff3 fs3 fc0 sc0 ls0 ws0">It<span class="_ _d"> </span>is<span class="_ _4"> </span>possible,<span class="_ _d"> </span>although<span class="_ _4"> </span>not<span class="_ _d"> </span>common<span class="_ _4"> </span>practice,<span class="_ _4"> </span>to<span class="_ _d"> </span>use<span class="_ _4"> </span>the<span class="_ _d"> </span>continuous<span class="_ _4"> </span>assignment<span class="_ _d"> </span>statement<span class="_ _4"> </span>to</div><div class="t m0 x6 h5 y29 ff3 fs3 fc0 sc0 ls0 ws0">describe<span class="_ _4"> </span>sequential<span class="_ _4"> </span>logic,<span class="_ _4"> </span>in<span class="_ _d"> </span>the<span class="_ _4"> </span>form<span class="_ _4"> </span>of<span class="_ _d"> </span>a<span class="_ _4"> </span>level-sensiti<span class="_ _5"></span>ve<span class="_ _4"> </span>latch.</div><div class="t m0 x7 h5 y2a ff3 fs3 fc0 sc0 ls0 ws0">The<span class="_ _d"> </span>conditional<span class="_ _a"> </span>opera<span class="_ _9"></span>tor<span class="_ _d"> </span>(<span class="ff7 ls13">?:<span class="_ _13"></span></span>)<span class="_ _a"> </span>is<span class="_ _d"> </span>used<span class="_ _d"> </span>on<span class="_ _d"> </span>the<span class="_ _a"> </span>right-hand<span class="_ _d"> </span>side<span class="_ _d"> </span>of<span class="_ _d"> </span>the<span class="_ _a"> </span>assignm<span class="_ _9"></span>ent<span class="_ _d"> </span>on<span class="_ _a"> </span>line<span class="_ _d"> </span>2<span class="_ _d"> </span>of<span class="_ _d"> </span>the</div><div class="t m0 x6 h5 y2b ff3 fs3 fc0 sc0 ls0 ws0">listing<span class="_ _4"> </span>sho<span class="_ _5"></span>wn<span class="_ _4"> </span>in<span class="_ _4"> </span>Figure<span class="_ _4"> </span>8.1.<span class="_ _d"> </span>When<span class="_ _4"> </span><span class="ff7">en<span class="_ _4"> </span></span>is<span class="_ _4"> </span>true<span class="_ _4"> </span>(logic<span class="_ _4"> </span>1)<span class="_ _d"> </span>the<span class="_ _4"> </span>output<span class="_ _4"> </span><span class="ff7">q<span class="_ _4"> </span></span>is<span class="_ _4"> </span>assigned<span class="_ _d"> </span>the<span class="_ _4"> </span>v<span class="_ _5"></span>alue<span class="_ _4"> </span>of<span class="_ _4"> </span>the</div><div class="t m0 x6 h5 y2c ff3 fs3 fc0 sc0 ls0 ws0">input<span class="_ _d"> </span><span class="ff7">data<span class="_ _a"> </span><span class="ff4">continuo<span class="_ _9"></span>usly<span class="_ _3"></span><span class="ff3">.<span class="_ _d"> </span>When<span class="_ _d"> </span><span class="ff7">en<span class="_ _a"> </span></span>goes<span class="_ _d"> </span>to<span class="_ _d"> </span>logic<span class="_ _d"> </span>0,<span class="_ _a"> </span>the<span class="_ _d"> </span>output<span class="_ _d"> </span><span class="ff7">q<span class="_ _d"> </span></span>is<span class="_ _a"> </span>assigned<span class="_ _d"> </span>itself,<span class="_ _d"> </span>i.e.<span class="_ _d"> </span>feedback</span></span></span></div><div class="t m0 x6 h5 y2d ff3 fs3 fc0 sc0 ls0 ws0">maintains<span class="_ _4"> </span>the<span class="_ _d"> </span>value<span class="_ _4"> </span>of<span class="_ _d"> </span><span class="ff7">q</span>,<span class="_ _4"> </span>as<span class="_ _4"> </span>sho<span class="_ _5"></span>wn<span class="_ _4"> </span>in<span class="_ _4"> </span>the<span class="_ _d"> </span>logic<span class="_ _4"> </span>diagram<span class="_ _4"> </span>below<span class="_ _d"> </span>the<span class="_ _4"> </span>V<span class="_ _6"></span>erilog<span class="_ _4"> </span>listing.</div><div class="t m0 x7 h5 y2e ff3 fs3 fc0 sc0 ls0 ws0">It<span class="_ _d"> </span>should<span class="_ _d"> </span>be<span class="_ _d"> </span>noted<span class="_ _d"> </span>that<span class="_ _d"> </span>the<span class="_ _d"> </span>use<span class="_ _d"> </span>of<span class="_ _d"> </span>a<span class="_ _d"> </span>continuo<span class="_ _9"></span>us<span class="_ _d"> </span>assignment<span class="_ _d"> </span>to<span class="_ _d"> </span>crea<span class="_"> </span>te<span class="_ _d"> </span>a<span class="_ _4"> </span>le<span class="_ _5"></span>vel-sensitive<span class="_ _a"> </span>latch,<span class="_ _d"> </span>as</div><div class="t m0 x6 h5 y2f ff3 fs3 fc0 sc0 ls0 ws0">shown<span class="_ _4"> </span>in<span class="_ _4"> </span>Figure<span class="_ _4"> </span>8.1,<span class="_ _4"> </span>is<span class="_ _4"> </span>relatively<span class="_ _4"> </span>uncommon.<span class="_ _4"> </span>Most<span class="_ _4"> </span>logic<span class="_ _4"> </span>synthesis<span class="_ _4"> </span>softw<span class="_ _9"></span>are<span class="_ _4"> </span>tools<span class="_ _4"> </span>will<span class="_ _4"> </span>issue<span class="_ _4"> </span>a</div><div class="t m0 x6 h5 y30 ff3 fs3 fc0 sc0 ls0 ws0">warning<span class="_ _4"> </span>message<span class="_ _4"> </span>on<span class="_ _d"> </span>encounterin<span class="_ _9"></span>g<span class="_ _4"> </span>such<span class="_ _4"> </span>a<span class="_ _d"> </span>construct.</div><div class="t m0 x6 h4 y31 ff2 fs2 fc0 sc0 ls14 ws0">8.2<span class="_ _1"> </span>THE<span class="_ _2"> </span>BEHAVIOURAL<span class="_ _2"> </span>STYLE<span class="_ _2"> </span>OF<span class="_ _2"> </span>DESCRIPTION:</div><div class="t m0 x6 h4 y32 ff2 fs2 fc0 sc0 ls0 ws0">THE<span class="_ _2"> </span>SEQUENTIAL<span class="_ _2"> </span>BLOCK</div><div class="t m0 x6 h5 y33 ff3 fs3 fc0 sc0 ls0 ws0">The<span class="_ _7"> </span>V<span class="_ _6"></span>erilog<span class="_ _7"> </span>HDL<span class="_ _7"> </span><span class="ff4">sequential<span class="_ _7"> </span>block<span class="_ _7"> </span></span>defines<span class="_ _7"> </span>a<span class="_ _7"> </span>region<span class="_ _7"> </span>within<span class="_ _7"> </span>the<span class="_ _7"> </span>hardware<span class="_ _7"> </span>description<span class="_ _7"> </span>conta-</div><div class="t m0 x6 h5 y34 ff3 fs3 fc0 sc0 ls0 ws0">ining<span class="_ _4"> </span><span class="ff4">sequential<span class="_ _8"> </span>statements</span>;<span class="_ _8"> </span>these<span class="_ _8"> </span>statements<span class="_ _4"> </span>execute<span class="_ _4"> </span>in<span class="_ _8"> </span>the<span class="_ _8"> </span>order<span class="_ _4"> </span>they<span class="_ _4"> </span>are<span class="_ _4"> </span>wr<span class="_"> </span>itten,<span class="_ _8"> </span>in<span class="_ _8"> </span>just<span class="_ _4"> </span>the</div><div class="t m0 x8 ha y35 ffc fs5 fc0 sc0 ls0 ws0">1<span class="_ _14"> </span><span class="ffd">module</span> latch (<span class="ffd ls15">output</span> q, <span class="ffd ls16">input</span><span class="ls17 ws3"> data, en); </span></div><div class="t m0 x8 ha y36 ffc fs5 fc0 sc0 ls0 ws0">2<span class="_ _14"> </span><span class="ffd">assign</span><span class="ls18 ws4"> q = en ? data : q; </span></div><div class="t m0 x8 ha y37 ffc fs5 fc0 sc0 ls0 ws0">3<span class="_ _14"> </span><span class="ffd ls19">endmodule</span></div><div class="t m0 x9 hb y38 ffe fs6 fc0 sc0 ls1a ws0">MUX</div><div class="t m0 xa hc y39 fff fs7 fc0 sc0 ls0 ws0">1</div><div class="t m0 xa hc y3a fff fs7 fc0 sc0 ls0 ws0">0</div><div class="t m0 xb hd y3b fff fs6 fc0 sc0 ls0 ws0">q</div><div class="t m0 xc hd y3c fff fs6 fc0 sc0 ls1b ws0">en</div><div class="t m0 xd hd y3d fff fs6 fc0 sc0 ls1b ws0">data</div><div class="t m0 xe he y3e ff10 fs8 fc0 sc0 ls0 ws0">Figure<span class="_ _11"> </span>8.1<span class="_ _15"> </span><span class="ff3">Describing<span class="_ _d"> </span>a<span class="_ _d"> </span>level-sensitiv<span class="_ _5"></span>e<span class="_ _d"> </span>latch<span class="_ _4"> </span>using<span class="_ _d"> </span>a<span class="_ _d"> </span>continuous<span class="_ _d"> </span>assignment.</span></div><div class="t m0 x6 hf y3f ff1 fs8 fc0 sc0 ls0 ws0">198<span class="_ _16"> </span><span class="ff11">Describing<span class="_ _11"> </span>Combinational<span class="_ _7"> </span>and<span class="_ _8"> </span>Sequential<span class="_ _7"> </span>Logic<span class="_ _11"> </span>using<span class="_ _11"> </span>Verilog<span class="_ _7"> </span>HDL</span></div></div><div class="pi" data-data='{"ctm":[1.961965,0.000000,0.000000,1.961965,0.000000,0.000000]}'></div></div>
<div id="pf3" class="pf w0 h0" data-page-no="3"><div class="pc pc3 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/6262b4654f8811599ef26720/bg3.jpg"><div class="t m0 x1 h5 y40 ff3 fs3 fc0 sc0 ls0 ws0">same<span class="_ _2"> </span>way<span class="_ _c"> </span>as<span class="_ _c"> </span>a<span class="_ _c"> </span>con<span class="_ _5"></span>ventional<span class="_ _c"> </span>programming<span class="_ _c"> </span>language.<span class="_ _c"> </span>In<span class="_ _c"> </span>this<span class="_ _c"> </span>manner,<span class="_ _2"> </span>the<span class="_ _c"> </span>sequential<span class="_ _c"> </span>block</div><div class="t m0 x1 h5 y41 ff3 fs3 fc0 sc0 ls0 ws0">provides<span class="_ _d"> </span>a<span class="_ _4"> </span>mechanism<span class="_ _4"> </span>for<span class="_ _4"> </span>creating<span class="_ _d"> </span>hardware<span class="_ _4"> </span>descriptions<span class="_ _4"> </span>that<span class="_ _4"> </span>are<span class="_ _d"> </span><span class="ff4">behavioural<span class="_ _4"> </span></span>or<span class="_ _d"> </span><span class="ff4">algorithm<span class="_ _9"></span>ic</span>.</div><div class="t m0 x1 h5 y42 ff3 fs3 fc0 sc0 ls0 ws0">Such<span class="_ _7"> </span>a<span class="_ _7"> </span>style<span class="_ _7"> </span>lends<span class="_ _7"> </span>itself<span class="_ _7"> </span>ideally<span class="_ _7"> </span>to<span class="_ _7"> </span>the<span class="_ _7"> </span>description<span class="_ _7"> </span>of<span class="_ _7"> </span>synchronous<span class="_ _7"> </span>sequential<span class="_ _7"> </span>logic,<span class="_ _7"> </span>such<span class="_ _7"> </span>as</div><div class="t m0 x1 h5 y43 ff3 fs3 fc0 sc0 ls0 ws0">counters<span class="_ _7"> </span>and<span class="_ _11"> </span>FSMs;<span class="_ _7"> </span>ho<span class="_ _5"></span>wever<span class="_ _3"></span>,<span class="_ _7"> </span>sequential<span class="_ _7"> </span>blocks<span class="_ _11"> </span>can<span class="_ _11"> </span>also<span class="_ _7"> </span>be<span class="_ _11"> </span>used<span class="_ _7"> </span>to<span class="_ _11"> </span>describe<span class="_ _7"> </span>combinational</div><div class="t m0 x1 h5 y44 ff3 fs3 fc0 sc0 ls0 ws0">functions.</div><div class="t m0 x2 h5 y45 ff3 fs3 fc0 sc0 ls0 ws0">A<span class="_ _4"> </span>discussion<span class="_ _d"> </span>of<span class="_ _4"> </span>some<span class="_ _4"> </span>of<span class="_ _d"> </span>the<span class="_ _4"> </span>more<span class="_ _d"> </span>com<span class="_ _9"></span>monly<span class="_ _4"> </span>used<span class="_ _d"> </span>V<span class="_ _6"></span>erilog<span class="_ _4"> </span>sequential<span class="_ _4"> </span>statements<span class="_ _4"> </span>will<span class="_ _d"> </span>reveal</div><div class="t m0 x1 h5 y46 ff3 fs3 fc0 sc0 ls0 ws0">their<span class="_ _b"> </span>similarity<span class="_ _b"> </span>to<span class="_ _b"> </span>the<span class="_ _b"> </span>statements<span class="_ _b"> </span>u<span class="_ _9"></span>sed<span class="_ _b"> </span>in<span class="_ _b"> </span>the<span class="_ _b"> </span>C<span class="_ _b"> </span>language.<span class="_ _b"> </span>In<span class="_ _b"> </span>addition<span class="_ _b"> </span>to<span class="_ _b"> </span>the<span class="_ _b"> </span>two<span class="_ _b"> </span>types<span class="_ _b"> </span>of<span class="_ _b"> </span>seque<span class="_ _9"></span>ntial</div><div class="t m0 x1 h5 y47 ff3 fs3 fc0 sc0 ls0 ws0">block<span class="_ _4"> </span>described<span class="_ _d"> </span>below<span class="_ _3"></span>,<span class="_ _4"> </span>V<span class="_ _6"></span>erilog<span class="_ _d"> </span>HDL<span class="_ _4"> </span>makes<span class="_ _d"> </span>use<span class="_ _4"> </span>of<span class="_ _4"> </span>sequential<span class="_ _d"> </span>execution<span class="_ _d"> </span>in<span class="_ _4"> </span>the<span class="_ _4"> </span>so-called<span class="_ _d"> </span><span class="ff5">task</span></div><div class="t m0 x1 h5 y48 ff3 fs3 fc0 sc0 ls0 ws0">and<span class="_ _b"> </span><span class="ff5">function<span class="_ _a"> </span></span>elements<span class="_ _b"> </span>of<span class="_ _b"> </span>the<span class="_ _a"> </span>language.<span class="_ _b"> </span>These<span class="_ _a"> </span>elements<span class="_ _b"> </span>are<span class="_ _a"> </span>beyond<span class="_ _b"> </span>the<span class="_ _b"> </span>scope<span class="_ _a"> </span>of<span class="_ _b"> </span>this<span class="_ _b"> </span>book;<span class="_ _b"> </span>the</div><div class="t m0 x1 h5 y49 ff3 fs3 fc0 sc0 ls0 ws0">interested<span class="_ _4"> </span>reader<span class="_ _4"> </span>is<span class="_ _d"> </span>referr<span class="_ _9"></span>ed<span class="_ _4"> </span>to<span class="_ _d"> </span>Re<span class="_ _9"></span>ference<span class="_ _4"> </span>[1].</div><div class="t m0 x2 h5 y4a ff3 fs3 fc0 sc0 ls0 ws0">V<span class="_ _6"></span>erilog<span class="_ _4"> </span>HDL<span class="_ _d"> </span>provides<span class="_ _4"> </span>the<span class="_ _4"> </span>following<span class="_ _d"> </span>two<span class="_ _4"> </span>types<span class="_ _4"> </span>of<span class="_ _d"> </span>seque<span class="_ _9"></span>ntial<span class="_ _4"> </span>block:</div><div class="t m0 x1 h7 y4b ff8 fs3 fc0 sc0 ls0 ws0"><span class="_ _17"> </span><span class="ff3">The<span class="_ _d"> </span><span class="ff5">always<span class="_ _d"> </span></span>block.<span class="_ _4"> </span>This<span class="_ _d"> </span>contains<span class="_ _d"> </span>sequential<span class="_ _d"> </span>statemen<span class="_ _9"></span>ts<span class="_ _d"> </span>that<span class="_ _d"> </span>execute<span class="_ _d"> </span>repetitively<span class="_ _3"></span>,<span class="_ _d"> </span>usually<span class="_ _d"> </span>in</span></div><div class="t m0 x2 h5 y4c ff3 fs3 fc0 sc0 ls0 ws0">response<span class="_ _d"> </span>to<span class="_ _d"> </span>some<span class="_ _d"> </span>sort<span class="_ _d"> </span>of<span class="_ _d"> </span>trigge<span class="_ _9"></span>r<span class="_ _d"> </span>mechanism.<span class="_ _d"> </span>An<span class="_ _d"> </span><span class="ff5">al<span class="_ _9"></span>ways<span class="_ _d"> </span></span>block<span class="_ _d"> </span>acts<span class="_ _d"> </span>rather<span class="_ _d"> </span>like<span class="_ _4"> </span>a<span class="_ _a"> </span>continuous</div><div class="t m0 x2 h5 y4d ff3 fs3 fc0 sc0 ls0 ws0">loop<span class="_ _11"> </span>that<span class="_ _11"> </span>never<span class="_ _11"> </span>terminates.<span class="_ _7"> </span>This<span class="_ _8"> </span>type<span class="_ _7"> </span>of<span class="_ _11"> </span>block<span class="_ _11"> </span>can<span class="_ _7"> </span>be<span class="_ _8"> </span>used<span class="_ _7"> </span>to<span class="_ _11"> </span>describe<span class="_ _11"> </span>any<span class="_ _11"> </span>type<span class="_ _7"> </span>of<span class="_ _11"> </span>digital</div><div class="t m0 x2 h5 y4e ff3 fs3 fc0 sc0 ls0 ws0">hardware.</div><div class="t m0 x1 h7 y4f ff8 fs3 fc0 sc0 ls0 ws0"><span class="_ _17"> </span><span class="ff3 ls1c">The<span class="_ _4"> </span><span class="ff5 ls1d">initial<span class="_ _4"> </span></span><span class="ls1e">block.<span class="_ _d"> </span>This<span class="_ _4"> </span>contains<span class="_ _4"> </span>sequential<span class="_ _4"> </span>state<span class="ls1f">ments<span class="_ _4"> </span>that<span class="_ _4"> </span>e<span class="_ _5"></span>xecute<span class="_ _4"> </span>from<span class="_ _4"> </span>beginning<span class="_ _4"> </span>to</span></span></span></div><div class="t m0 x2 h5 y50 ff3 fs3 fc0 sc0 ls1d ws0">end<span class="_ _17"> </span><span class="ff4 ls20">once<span class="_ _17"> </span>only<span class="_ _3"></span><span class="ff3 ls1e">,<span class="_ _17"> </span>commencing<span class="_ _17"> </span>at<span class="_ _17"> </span>the<span class="_ _17"> </span>start<span class="_ _17"> </span>of<span class="_ _17"> </span>a<span class="_ _17"> </span>simulation<span class="_ _17"> </span>run<span class="_ _17"> </span>at<span class="_ _17"> </span>time<span class="_ _17"> </span>zero.<span class="_ _17"> </span>V<span class="_ _6"></span>erilog</span></span></div><div class="t m0 x2 h5 y51 ff5 fs3 fc0 sc0 ls1d ws0">initial<span class="_ _4"> </span><span class="ff3 ls0">blo<span class="_ _9"></span>ck<span class="_ _9"></span>s<span class="_ _4"> </span>are<span class="_ _4"> </span>u<span class="_ _9"></span>se<span class="_ _9"></span>d<span class="_ _4"> </span>alm<span class="_ _9"></span>os<span class="_ _9"></span>t<span class="_ _4"> </span>excl<span class="_ _9"></span>us<span class="_ _9"></span>ively<span class="_ _4"> </span>i<span class="_ _9"></span>n<span class="_ _4"> </span>sim<span class="_ _9"></span>ula<span class="_ _9"></span>ti<span class="_ _9"></span>on<span class="_ _4"> </span><span class="ff4">t<span class="_ _9"></span>es<span class="_"> </span>t<span class="_ _8"> </span>fixtu<span class="_ _9"></span>res</span><span class="ls21">,<span class="_ _4"> </span>usually<span class="_ _4"> </span>to<span class="_ _4"> </span>create</span></span></div><div class="t m0 x2 h5 y52 ff3 fs3 fc0 sc0 ls1e ws0">test<span class="_ _11"> </span>input<span class="_ _11"> </span>stimuli<span class="_ _8"> </span>a<span class="_"> </span>nd<span class="_ _11"> </span>control<span class="_ _11"> </span>the<span class="_ _11"> </span>duration<span class="_ _11"> </span>of<span class="_ _11"> </span>a<span class="_ _11"> </span>simulation<span class="_ _11"> </span>run.<span class="_ _11"> </span>This<span class="_ _11"> </span>type<span class="_ _11"> </span>o<span class="_"> </span>f<span class="_ _11"> </span>block<span class="_ _11"> </span>is<span class="_ _11"> </span>not</div><div class="t m0 x2 h5 y53 ff3 fs3 fc0 sc0 ls22 ws0">generally<span class="_ _11"> </span>used<span class="_ _7"> </span>to<span class="_ _8"> </span>describe<span class="_ _7"> </span>synthesizable<span class="_ _11"> </span>dig<span class="ls23">ital<span class="_ _11"> </span>hardware,<span class="_ _7"> </span>although<span class="_ _11"> </span>a<span class="_ _11"> </span>simulation<span class="_ _7"> </span>model</span></div><div class="t m0 x2 h5 y54 ff3 fs3 fc0 sc0 ls24 ws0">may<span class="_ _7"> </span>contain<span class="_ _11"> </span>an<span class="_ _7"> </span><span class="ff5 ls1d">initi<span class="_"> </span>al<span class="_ _7"> </span></span><span class="ls25">statement<span class="_ _7"> </span>to<span class="_ _7"> </span>perform<span class="_ _7"> </span>an<span class="_ _7"> </span>initialization<span class="_ _7"> </span>of<span class="_ _7"> </span>memory<span class="_ _11"> </span>or<span class="_ _7"> </span>to<span class="_ _7"> </span>load</span></div><div class="t m0 x2 h5 y55 ff3 fs3 fc0 sc0 ls26 ws0">delay<span class="_ _11"> </span>data.</div><div class="t m0 x2 h5 y56 ff3 fs3 fc0 sc0 ls27 ws0">The<span class="_ _18"> </span>two<span class="_ _18"> </span>types<span class="_ _18"> </span>of<span class="_ _18"> </span>sequential<span class="_ _18"> </span>block<span class="_ _18"> </span>described<span class="_ _18"> </span>above<span class="_ _18"> </span>are,<span class="_ _18"> </span>in<span class="_ _18"> </span>fact,<span class="_ _c"> </span><span class="ff4 ls28">parallel<span class="_ _18"> </span>statements<span class="_"> </span></span><span class="ls0">;</span></div><div class="t m0 x1 h5 y57 ff3 fs3 fc0 sc0 ls29 ws0">therefore,<span class="_ _4"> </span>a<span class="_ _8"> </span>module<span class="_ _8"> </span>can<span class="_ _8"> </span>contain<span class="_ _8"> </span>any<span class="_ _8"> </span><span class="ls1e">number<span class="_ _8"> </span>of<span class="_ _8"> </span>them.<span class="_ _8"> </span>The<span class="_ _8"> </span>order<span class="_ _11"> </span>in<span class="_ _8"> </span>which<span class="_ _8"> </span>the<span class="_ _8"> </span><span class="ff5 ls1d">always<span class="_ _8"> </span><span class="ff3">and</span></span></span></div><div class="t m0 x1 h5 y58 ff5 fs3 fc0 sc0 ls1d ws0">initial<span class="_ _8"> </span><span class="ff3 ls2a">blocks<span class="_ _8"> </span>appear<span class="_ _8"> </span>within<span class="_ _8"> </span>the<span class="_ _8"> </span>module<span class="_ _8"> </span>does<span class="_ _8"> </span>not<span class="_ _8"> </span>affect<span class="_ _4"> </span>the<span class="_ _8"> </span>way<span class="_ _8"> </span>in<span class="_ _8"> </span>which<span class="_ _8"> </span>they<span class="_ _4"> </span>execute.</span></div><div class="t m0 x1 h5 y59 ff3 fs3 fc0 sc0 ls2b ws0">In<span class="_ _2"> </span>this<span class="_ _2"> </span>sense,<span class="_ _2"> </span>a<span class="_ _c"> </span>sequential<span class="_ _2"> </span>block<span class="_ _2"> </span>is<span class="_ _c"> </span>similar<span class="_ _2"> </span>t<span class="_"> </span><span class="ls2c">o<span class="_ _2"> </span>a<span class="_ _c"> </span>continuous<span class="_ _2"> </span>assignment:<span class="_ _2"> </span>the<span class="_ _2"> </span>latter<span class="_ _c"> </span>uses<span class="_ _2"> </span>a</span></div><div class="t m0 x1 h5 y5a ff3 fs3 fc0 sc0 ls0 ws0">sin<span class="_ _9"></span>gl<span class="_ _9"></span>e<span class="_ _2"> </span>ex<span class="_ _9"></span>pr<span class="_ _9"></span>es<span class="_ _9"></span>sio<span class="_ _9"></span>n<span class="_ _c"> </span>to<span class="_ _c"> </span>as<span class="_ _9"></span>sig<span class="_ _9"></span>n<span class="_ _c"> </span>a<span class="_ _2"> </span>val<span class="_ _9"></span>ue<span class="_ _c"> </span>to<span class="_ _c"> </span>a<span class="_ _c"> </span>ta<span class="_ _9"></span>rge<span class="_ _9"></span>t<span class="_ _2"> </span>w<span class="_ _9"></span>he<span class="_ _9"></span>never<span class="_ _c"> </span>a<span class="_ _c"> </span>si<span class="_ _9"></span>gn<span class="_ _9"></span>al<span class="_ _c"> </span>on<span class="_ _c"> </span>t<span class="_"> </span>h<span class="_ _9"></span>e<span class="_ _c"> </span>rig<span class="_ _9"></span>ht<span class="_ _9"></span>-ha<span class="_ _9"></span>nd<span class="_ _c"> </span>s<span class="_ _9"></span>ide</div><div class="t m0 x1 h5 y5b ff3 fs3 fc0 sc0 ls29 ws0">undergoes<span class="_ _8"> </span>a<span class="_ _11"> </span>change,<span class="_ _11"> </span>whereas<span class="_ _8"> </span>the<span class="_ _11"> </span>former<span class="_ _11"> </span>executes<span class="_ _8"> </span>a<span class="_ _11"> </span>sequence<span class="_ _11"> </span>of<span class="_ _11"> </span>statements<span class="_ _11"> </span>in<span class="_ _7"> </span>resp<span class="_ _5"></span>onse<span class="_ _11"> </span>to</div><div class="t m0 x1 h5 y5c ff3 fs3 fc0 sc0 ls0 ws0">som<span class="_ _9"></span>e<span class="_ _7"> </span>sort<span class="_ _7"> </span>of<span class="_ _7"> </span>trig<span class="_ _9"></span>ge<span class="_"> </span>r<span class="_ _9"></span>in<span class="_ _9"></span>g<span class="_ _11"> </span>even<span class="_ _9"></span>t.</div><div class="t m0 x2 h5 y5d ff3 fs3 fc0 sc0 ls0 ws0">Figure<span class="_ _2"> </span>8.2<span class="_ _2"> </span>shows<span class="_ _2"> </span>the<span class="_ _c"> </span>syntax<span class="_ _2"> </span>of<span class="_ _2"> </span>the<span class="_ _c"> </span><span class="ff5">initial<span class="_ _2"> </span></span>seque<span class="_ _9"></span>ntial<span class="_ _2"> </span>block,<span class="_ _c"> </span>along<span class="_ _2"> </span>with<span class="_ _c"> </span>an<span class="_ _2"> </span>example</div><div class="t m0 x1 h5 y5e ff3 fs3 fc0 sc0 ls0 ws0">showing<span class="_ _d"> </span>how<span class="_ _4"> </span>the<span class="_ _d"> </span>construc<span class="_ _9"></span>t<span class="_ _4"> </span>can<span class="_ _d"> </span>be<span class="_ _4"> </span>used<span class="_ _4"> </span>to<span class="_ _4"> </span>generate<span class="_ _4"> </span>a<span class="_ _d"> </span>clock<span class="_ _4"> </span>signal.</div><div class="t m0 x2 h5 y5f ff3 fs3 fc0 sc0 ls0 ws0">As<span class="_ _4"> </span>can<span class="_ _d"> </span>be<span class="_ _4"> </span>seen<span class="_ _d"> </span>in<span class="_ _4"> </span>lines<span class="_ _d"> </span>3<span class="_ _4"> </span>to<span class="_ _4"> </span>8,<span class="_ _d"> </span>an<span class="_ _4"> </span><span class="ff5">initial<span class="_ _4"> </span></span>block<span class="_ _d"> </span>contains<span class="_ _4"> </span>a<span class="_ _d"> </span>seque<span class="_ _9"></span>nce<span class="_ _4"> </span>of<span class="_ _d"> </span>one<span class="_ _4"> </span>or<span class="_ _d"> </span>more<span class="_ _4"> </span>state-</div><div class="t m0 x1 h5 y60 ff3 fs3 fc0 sc0 ls0 ws0">ments<span class="_ _8"> </span>enclosed<span class="_ _11"> </span>within<span class="_ _8"> </span>a<span class="_ _11"> </span><span class="ff5">begin<span class="ff12 ls2d">...<span class="_ _19"></span><span class="ff5 ls0">end<span class="_ _8"> </span><span class="ff3">block.<span class="_ _11"> </span>Occasionally<span class="_ _3"></span>,<span class="_ _11"> </span>there<span class="_ _8"> </span>is<span class="_ _11"> </span>only<span class="_ _8"> </span>a<span class="_ _11"> </span>single<span class="_ _8"> </span>statemen<span class="_ _9"></span>t</span></span></span></span></div><div class="t m0 x1 h5 y61 ff3 fs3 fc0 sc0 ls0 ws0">enclosed<span class="_ _2"> </span>within<span class="_ _2"> </span>the<span class="_ _c"> </span>initial<span class="_ _2"> </span>block;<span class="_ _2"> </span>in<span class="_ _c"> </span>this<span class="_ _2"> </span>case,<span class="_ _2"> </span>it<span class="_ _c"> </span>is<span class="_ _2"> </span>permissible<span class="_ _2"> </span>to<span class="_ _c"> </span>omit<span class="_ _2"> </span>the<span class="_ _2"> </span><span class="ff5">begin<span class="ff12 ls2d">...<span class="_ _19"></span><span class="ff5 ls0">end</span></span></span></div><div class="t m0 x1 h5 y62 ff3 fs3 fc0 sc0 ls0 ws0">bracketing,<span class="_ _11"> </span>as<span class="_ _11"> </span>shown<span class="_ _11"> </span>in<span class="_ _11"> </span>lines<span class="_ _11"> </span>12<span class="_ _11"> </span>and<span class="_ _11"> </span>13.<span class="_ _7"> </span>It<span class="_ _8"> </span>is<span class="_ _11"> </span>recommend<span class="_ _9"></span>ed,<span class="_ _11"> </span>however<span class="_ _3"></span>,<span class="_ _11"> </span>that<span class="_ _11"> </span>the<span class="_ _11"> </span>brack<span class="_ _9"></span>eting<span class="_ _11"> </span>is</div><div class="t m0 x1 h5 y63 ff3 fs3 fc0 sc0 ls0 ws0">included,<span class="_ _a"> </span>regardless<span class="_ _a"> </span>of<span class="_ _a"> </span>the<span class="_ _a"> </span>number<span class="_ _a"> </span>of<span class="_ _a"> </span>sequential<span class="_ _a"> </span>statemen<span class="_ _9"></span>ts,<span class="_ _a"> </span>in<span class="_ _a"> </span>order<span class="_ _a"> </span>to<span class="_ _a"> </span>minimize<span class="_ _a"> </span>the<span class="_ _a"> </span>possibility</div><div class="t m0 x1 h5 y64 ff3 fs3 fc0 sc0 ls0 ws0">of<span class="_ _4"> </span>syntax<span class="_ _d"> </span>errors.</div><div class="t m0 x2 h5 y65 ff3 fs3 fc0 sc0 ls0 ws0">Figure<span class="_ _a"> </span>8.2<span class="_ _d"> </span>also<span class="_ _a"> </span>includes<span class="_ _d"> </span>an<span class="_ _a"> </span>example<span class="_ _a"> </span><span class="ff5">init<span class="_ _9"></span>ial<span class="_ _a"> </span></span>bloc<span class="_ _9"></span>k<span class="_ _a"> </span>(lines<span class="_ _d"> </span>14<span class="_ _a"> </span>to<span class="_ _a"> </span>21),<span class="_ _d"> </span>the<span class="_ _a"> </span>purpose<span class="_ _d"> </span>of<span class="_ _a"> </span>which<span class="_ _d"> </span>is</div><div class="t m0 x1 h5 y66 ff3 fs3 fc0 sc0 ls0 ws0">to<span class="_ _b"> </span>gener<span class="_ _9"></span>ate<span class="_ _b"> </span>a<span class="_ _a"> </span>repetitive<span class="_ _b"> </span>clock<span class="_ _a"> </span>signal.<span class="_ _a"> </span>A<span class="_ _a"> </span>local<span class="_ _a"> </span>parameter<span class="_ _a"> </span>named<span class="_ _a"> </span><span class="ff7">PERIOD<span class="_ _a"> </span></span>is<span class="_ _a"> </span>defined<span class="_ _b"> </span>in<span class="_ _a"> </span>line<span class="_ _a"> </span>14;<span class="_ _a"> </span>this</div><div class="t m0 x1 h5 y67 ff3 fs3 fc0 sc0 ls0 ws0">sets<span class="_ _4"> </span>the<span class="_ _4"> </span>time<span class="_ _4"> </span>period<span class="_ _4"> </span>of<span class="_ _4"> </span>the<span class="_ _4"> </span>clock<span class="_ _4"> </span>waveform<span class="_ _4"> </span>to<span class="_ _4"> </span>100<span class="_ _4"> </span>time-units.<span class="_ _4"> </span>The<span class="_ _4"> </span>execution<span class="_ _4"> </span>of<span class="_ _4"> </span>the<span class="_ _4"> </span><span class="ff5">initial</span></div><div class="t m0 x1 h5 y68 ff3 fs3 fc0 sc0 ls0 ws0">block<span class="_ _4"> </span>starts<span class="_ _4"> </span>at<span class="_ _4"> </span>time<span class="_ _4"> </span>zero<span class="_ _4"> </span>at<span class="_ _4"> </span>line<span class="_ _4"> </span>18,<span class="_ _8"> </span>where<span class="_ _4"> </span>the<span class="_ _4"> </span><span class="ff7">CLK<span class="_ _4"> </span></span>signal<span class="_ _4"> </span>is<span class="_ _4"> </span>initializ<span class="_"> </span>ed<span class="_ _8"> </span>to<span class="_ _4"> </span>logic<span class="_ _4"> </span>0;<span class="_ _4"> </span>note<span class="_ _4"> </span>that<span class="_ _4"> </span>the</div><div class="t m0 x1 h5 y69 ff3 fs3 fc0 sc0 ls0 ws0">signal<span class="_ _7"> </span><span class="ff7">CLK<span class="_ _7"> </span></span>must<span class="_ _7"> </span>be<span class="_ _7"> </span>declared<span class="_ _7"> </span>as<span class="_ _7"> </span>a<span class="_ _7"> </span><span class="ff5">reg</span>,<span class="_ _7"> </span>since<span class="_ _7"> </span>it<span class="_ _7"> </span>must<span class="_ _7"> </span>be<span class="_ _7"> </span>capab<span class="_ _9"></span>le<span class="_ _7"> </span>of<span class="_ _7"> </span>retaining<span class="_ _7"> </span>the<span class="_ _7"> </span>v<span class="_ _5"></span>alue<span class="_ _7"> </span>last</div><div class="t m0 x1 h5 y6a ff3 fs3 fc0 sc0 ls0 ws0">assigned<span class="_ _d"> </span>to<span class="_ _a"> </span>it<span class="_ _a"> </span>by<span class="_ _d"> </span>statements<span class="_ _d"> </span>within<span class="_ _a"> </span>the<span class="_ _d"> </span>sequential<span class="_ _d"> </span>block.<span class="_ _a"> </span>Also<span class="_ _d"> </span>note<span class="_ _7"> </span>that<span class="_ _d"> </span>the<span class="_ _a"> </span>initializ<span class="_"> </span>ation<span class="_ _d"> </span>of<span class="_ _d"> </span><span class="ff7">CLK</span></div><div class="t m0 xf hf y3f ff11 fs8 fc0 sc0 ls0 ws0">The<span class="_ _11"> </span>Behavioural<span class="_ _11"> </span>Style<span class="_ _7"> </span>of<span class="_ _11"> </span>Description:<span class="_ _11"> </span>the<span class="_ _7"> </span>Sequential<span class="_ _11"> </span>Block<span class="_ _16"> </span><span class="ff1">199</span></div></div><div class="pi" data-data='{"ctm":[1.961965,0.000000,0.000000,1.961965,0.000000,0.000000]}'></div></div>
<div id="pf4" class="pf w0 h0" data-page-no="4"><div class="pc pc4 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/6262b4654f8811599ef26720/bg4.jpg"><div class="t m0 x10 h5 y6b ff3 fs3 fc0 sc0 ls0 ws0">could<span class="_ _4"> </span>have<span class="_ _d"> </span>been<span class="_ _4"> </span>included<span class="_ _4"> </span>as<span class="_ _4"> </span>part<span class="_ _d"> </span>of<span class="_ _4"> </span>its<span class="_ _4"> </span>declaration<span class="_ _d"> </span>in<span class="_ _4"> </span>line<span class="_ _4"> </span>15,<span class="_ _4"> </span>as<span class="_ _d"> </span>shown<span class="_ _4"> </span>belo<span class="_ _5"></span>w:</div><div class="t m0 x7 h7 y6c ff7 fs3 fc0 sc0 ls0 ws0">15<span class="_ _7"> </span><span class="ff5">reg<span class="_ _7"> </span></span>CLK<span class="_ _7"> </span><span class="ff8">¼<span class="_ _7"> </span></span>1'b0;</div><div class="t m0 x7 h5 y6d ff3 fs3 fc0 sc0 ls2e ws0">Follo<span class="_ _5"></span>wing<span class="_ _2"> </span>initialization<span class="_ _7"> </span>of<span class="_ _2"> </span><span class="ff7 ls2f">CLK<span class="_ _2"> </span></span><span class="ls30">to<span class="_ _2"> </span>logic<span class="_ _2"> </span>0,<span class="_ _2"> </span>the<span class="_ _2"> </span>next<span class="_ _7"> </span>statements<span class="_ _2"> </span>to<span class="_ _2"> </span>execute<span class="_ _7"> </span>within<span class="_ _7"> </span>the</span></div><div class="t m0 x6 h5 y6e ff3 fs3 fc0 sc0 ls31 ws0">initial<span class="_ _1a"> </span>block<span class="_ _1a"> </span>are<span class="_ _1a"> </span>lines<span class="_ _1a"> </span>19<span class="_ _1a"> </span>and<span class="_ _1a"> </span>20<span class="_ _1a"> </span>of<span class="_ _1a"> </span>the<span class="_ _1a"> </span>listing<span class="_ _1a"> </span>in<span class="_ _1b"> </span>Figure<span class="_ _1a"> </span>8.2.<span class="_ _1a"> </span>These<span class="_ _1a"> </span>contain<span class="_ _1a"> </span>an</div><div class="t m0 x6 h5 y6f ff4 fs3 fc0 sc0 ls32 ws0">endless<span class="_ _18"> </span>loop<span class="_ _18"> </span><span class="ff3">statement<span class="_ _18"> </span>known<span class="_ _c"> </span>as<span class="_ _18"> </span>a<span class="_ _18"> </span><span class="ff5 ls2f">forever<span class="_ _18"> </span></span>loop,<span class="_ _18"> </span>having<span class="_ _18"> </span>the<span class="_ _c"> </span>general<span class="_ _18"> </span>syntax<span class="_ _18"> </span>shown</span></div><div class="t m0 x6 h5 y70 ff3 fs3 fc0 sc0 ls32 ws0">below:</div><div class="t m0 x11 h10 y71 ff5 fs3 fc0 sc0 ls0 ws0">forever</div><div class="t m0 x11 h10 y72 ff5 fs3 fc0 sc0 ls0 ws0">begin</div><div class="t m0 x2 h6 y73 ff6 fs3 fc0 sc0 ls0 ws0">//sequential<span class="_ _7"> </span>state<span class="_ _9"></span>ment<span class="_ _7"> </span>1</div><div class="t m0 x12 h11 y74 ffc fs9 fc0 sc0 ls0 ws0">1</div><div class="t m0 x13 h12 y75 ff13 fsa fc0 sc0 ls33 ws0">//general syntax of the initial sequential block</div><div class="t m0 x12 h11 y76 ffc fs9 fc0 sc0 ls0 ws0">2</div><div class="t m0 x13 h12 y77 ff13 fsa fc0 sc0 ls34 ws5">//containing more than one statement</div><div class="t m0 x12 h11 y78 ffc fs9 fc0 sc0 ls0 ws0">3</div><div class="t m0 x13 h13 y79 ffd fs9 fc0 sc0 ls35 ws0">initial</div><div class="t m0 x12 h11 y7a ffc fs9 fc0 sc0 ls0 ws0">4<span class="_ _1c"> </span><span class="ffd ls36">begin</span></div><div class="t m0 x12 h12 y7b ffc fsa fc0 sc0 ls0 ws0">5<span class="_ _1c"> </span><span class="ff13 ls34 ws5"> <span class="_ _18"> </span>//sequential st<span class="_ _9"></span>atement 1 </span></div><div class="t m0 x12 h12 y7c ffc fsa fc0 sc0 ls0 ws0">6<span class="_ _1c"> </span><span class="ff13 ls34 ws5"> <span class="_ _18"> </span>//sequential st<span class="_ _9"></span>atement 2 </span></div><div class="t m0 x12 h11 y7d ffc fs9 fc0 sc0 ls0 ws0">7</div><div class="t m0 x14 h13 y7e ffd fs9 fc0 sc0 ls36 ws0"> <span class="_ _d"> </span>... </div><div class="t m0 x12 h11 y7f ffc fs9 fc0 sc0 ls0 ws0">8<span class="_ _1c"> </span><span class="ffd">end</span></div><div class="t m0 x12 h11 y80 ffc fs9 fc0 sc0 ls0 ws0">9</div><div class="t m0 x12 h11 y81 ffc fs9 fc0 sc0 ls0 ws0">10</div><div class="t m0 x13 h12 y82 ff13 fsa fc0 sc0 ls33 ws0">//general syntax of the initial sequential block</div><div class="t m0 x12 h11 y83 ffc fs9 fc0 sc0 ls0 ws0">11<span class="_ _1d"> </span><span class="ff13 fsa ls33">//containing one statement (no need for begin...end)</span></div><div class="t m0 x12 h11 y84 ffc fs9 fc0 sc0 ls0 ws0">12</div><div class="t m0 x13 h13 y85 ffd fs9 fc0 sc0 ls35 ws0">initial</div><div class="t m0 x12 h12 y86 ffc fsa fc0 sc0 ls34 ws0">13</div><div class="t m0 x13 h12 y87 ff13 fsa fc0 sc0 ls34 ws5"> <span class="_ _18"> </span>//sequential st<span class="_ _9"></span>atement </div><div class="t m0 x12 h11 y88 ffc fs9 fc0 sc0 ls0 ws0">14</div><div class="t m0 x13 h13 y89 ffd fs9 fc0 sc0 ls37 ws0">localparam</div><div class="t m0 x15 h11 y88 ffc fs9 fc0 sc0 ls38 ws0"> PERIOD = 100; </div><div class="t m0 x16 h12 y8a ff13 fsa fc0 sc0 ls34 ws6">//clock period</div><div class="t m0 x12 h11 y8b ffc fs9 fc0 sc0 ls0 ws0">15<span class="_ _1d"> </span><span class="ffd">reg<span class="_"> </span></span><span class="ls39">CLK;</span></div><div class="t m0 x12 h11 y8c ffc fs9 fc0 sc0 ls0 ws0">16<span class="_ _1d"> </span><span class="ffd ls35">initial</span></div><div class="t m0 x12 h11 y8d ffc fs9 fc0 sc0 ls0 ws0">17</div><div class="t m0 x13 h13 y8e ffd fs9 fc0 sc0 ls36 ws0">begin</div><div class="t m0 x17 h11 y8d ffc fs9 fc0 sc0 ls35 ws7"> </div><div class="t m0 x12 h11 y8f ffc fs9 fc0 sc0 ls3a ws7">18<span class="_ _1d"> </span> <span class="_ _d"> </span>CLK = 1'b0; </div><div class="t m0 x12 h11 y90 ffc fs9 fc0 sc0 ls0 ws0">19<span class="_ _1d"> </span><span class="ffd ls36"> <span class="_ _d"> </span>forever</span></div><div class="t m0 x18 h11 y91 ff13 fsa fc0 sc0 ls34 ws0">//an endless loop!<span class="_ _1e"></span><span class="fs9 ls3b"> </span></div><div class="t m0 x12 h11 y92 ffc fs9 fc0 sc0 ls3c ws8">20<span class="_ _1d"> </span> <span class="_ _d"> </span> <span class="_"> </span>#(PERIOD/2) CLK = ~CLK; </div><div class="t m0 x12 h11 y93 ffc fs9 fc0 sc0 ls0 ws0">21<span class="_ _1d"> </span><span class="ffd">end</span></div><div class="t m0 x19 h14 y94 fff fsb fc0 sc0 ls3d ws0">CLK</div><div class="t m0 x1a h14 y95 fff fsb fc0 sc0 ls0 ws0">0<span class="_ _1f"></span>0<span class="_ _1f"></span>1<span class="_ _20"></span>0<span class="_ _1f"></span>5</div><div class="t m0 x1b h14 y96 fff fsb fc0 sc0 ls0 ws0">0</div><div class="t m0 x1c h10 y97 ff10 fs8 fc0 sc0 ls0 ws0">Figure<span class="_ _8"> </span>8.2<span class="_ _15"> </span><span class="ff3">Syntax<span class="_ _4"> </span>of<span class="_ _d"> </span>the<span class="_ _d"> </span><span class="ff5 fs3">initial<span class="_ _4"> </span></span>block<span class="_ _a"> </span>and<span class="_ _4"> </span>an<span class="_ _d"> </span>example.</span></div><div class="t m0 x6 hf y3f ff1 fs8 fc0 sc0 ls0 ws0">200<span class="_ _16"> </span><span class="ff11">Describing<span class="_ _11"> </span>Combinational<span class="_ _7"> </span>and<span class="_ _8"> </span>Sequential<span class="_ _7"> </span>Logic<span class="_ _11"> </span>using<span class="_ _11"> </span>Verilog<span class="_ _7"> </span>HDL</span></div></div><div class="pi" data-data='{"ctm":[1.961965,0.000000,0.000000,1.961965,0.000000,0.000000]}'></div></div>
<div id="pf5" class="pf w0 h0" data-page-no="5"><div class="pc pc5 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/6262b4654f8811599ef26720/bg5.jpg"><div class="t m0 x1d h6 y40 ff6 fs3 fc0 sc0 ls0 ws0">//sequential<span class="_ _7"> </span>state<span class="_ _9"></span>ment<span class="_ _7"> </span>2</div><div class="t m0 x1e h15 y98 ff12 fs3 fc0 sc0 ls2d ws0">...</div><div class="t m0 x1f h10 y99 ff5 fs3 fc0 sc0 ls0 ws0">end</div><div class="t m0 x2 h5 y9a ff3 fs3 fc0 sc0 ls0 ws0">In<span class="_ _18"> </span>common<span class="_ _18"> </span>with<span class="_ _c"> </span>the<span class="_ _18"> </span><span class="ff5">initi<span class="_"> </span>al<span class="_ _18"> </span></span>block<span class="_ _18"> </span>itself,<span class="_ _18"> </span>the<span class="_ _18"> </span><span class="ff5">forever<span class="_ _18"> </span></span>loop<span class="_ _18"> </span>may<span class="_ _18"> </span>contain<span class="_ _18"> </span>a<span class="_ _c"> </span>single</div><div class="t m0 x1 h5 y9b ff3 fs3 fc0 sc0 ls0 ws0">statement<span class="_ _4"> </span>or<span class="_ _8"> </span>a<span class="_ _4"> </span>number<span class="_ _4"> </span>of<span class="_ _8"> </span>statements<span class="_ _4"> </span>that<span class="_ _8"> </span>are<span class="_ _4"> </span>required<span class="_ _8"> </span>to<span class="_ _4"> </span>repeat<span class="_ _4"> </span>indefinitely;<span class="_ _8"> </span>in<span class="_ _4"> </span>the<span class="_ _4"> </span>latt<span class="_"> </span>er<span class="_ _8"> </span>case,</div><div class="t m0 x1 h5 y9c ff3 fs3 fc0 sc0 ls0 ws0">it<span class="_ _4"> </span>must<span class="_ _4"> </span>include<span class="_ _4"> </span>the<span class="_ _d"> </span><span class="ff5">begin<span class="ff12 ls2d">...<span class="_ _19"></span><span class="ff5 ls0">end<span class="_ _4"> </span><span class="ff3">bracketing<span class="_ _4"> </span>shown<span class="_ _d"> </span>above.<span class="_ _4"> </span>The<span class="_ _4"> </span>example<span class="_ _4"> </span>sho<span class="_ _5"></span>wn<span class="_ _4"> </span>in<span class="_ _4"> </span>Figure<span class="_ _d"> </span>8.2</span></span></span></span></div><div class="t m0 x1 h5 y9d ff3 fs3 fc0 sc0 ls0 ws0">contains<span class="_ _a"> </span>a<span class="_ _a"> </span>single<span class="_ _a"> </span><span class="ff4">delayed<span class="_ _d"> </span>sequential<span class="_ _a"> </span>assignment<span class="_ _a"> </span></span>statemen<span class="_ _9"></span>t<span class="_ _b"> </span>in<span class="_ _d"> </span>line<span class="_ _b"> </span>20<span class="_ _a"> </span>(the<span class="_ _d"> </span>use<span class="_ _b"> </span>of<span class="_ _d"> </span>the<span class="_ _b"> </span>hash<span class="_ _d"> </span>symbol</div><div class="t m0 x1 h5 y9e ff3 fs3 fc0 sc0 ls0 ws0">#<span class="_ _4"> </span>within<span class="_ _4"> </span>a<span class="_ _d"> </span>seque<span class="_ _9"></span>ntial<span class="_ _4"> </span>block<span class="_ _4"> </span>indicates<span class="_ _4"> </span>a<span class="_ _d"> </span>time<span class="_ _4"> </span>delay).<span class="_ _4"> </span>The<span class="_ _4"> </span>effect<span class="_ _d"> </span>of<span class="_ _4"> </span>this<span class="_ _4"> </span>statement<span class="_ _4"> </span>is<span class="_ _4"> </span>to<span class="_ _4"> </span>in<span class="_ _3"></span>vert<span class="_ _4"> </span>the</div><div class="t m0 x1 h5 y9f ff7 fs3 fc0 sc0 ls0 ws0">CLK<span class="_ _d"> </span><span class="ff3">signal<span class="_ _d"> </span>every<span class="_ _a"> </span>50<span class="_ _d"> </span>time-uni<span class="_ _9"></span>ts<span class="_ _d"> </span>repetitively;<span class="_ _a"> </span>this<span class="_ _4"> </span>results<span class="_ _a"> </span>in<span class="_ _d"> </span>the<span class="_ _d"> </span></span>CL<span class="_ _9"></span>K<span class="_ _d"> </span><span class="ff3">signal<span class="_ _d"> </span>having<span class="_ _d"> </span>the<span class="_ _d"> </span>waveform</span></div><div class="t m0 x1 h5 ya0 ff3 fs3 fc0 sc0 ls0 ws0">shown<span class="_ _d"> </span>at<span class="_ _4"> </span>the<span class="_ _4"> </span>bottom<span class="_ _4"> </span>of<span class="_ _d"> </span>Figure<span class="_ _4"> </span>8.2.</div><div class="t m0 x2 h5 ya1 ff3 fs3 fc0 sc0 ls0 ws0">As<span class="_ _11"> </span>it<span class="_ _11"> </span>stands,<span class="_ _11"> </span>the<span class="_ _11"> </span>V<span class="_ _6"></span>erilog<span class="_ _7"> </span>description<span class="_ _8"> </span>cont<span class="_ _9"></span>ained<span class="_ _11"> </span>in<span class="_ _11"> </span>lines<span class="_ _11"> </span>14<span class="_ _21"></span>–<span class="_ _9"></span>21<span class="_ _11"> </span>of<span class="_ _11"> </span>Figure<span class="_ _7"> </span>8.2<span class="_ _8"> </span>could<span class="_ _11"> </span>pres<span class="_ _9"></span>ent</div><div class="t m0 x1 h5 ya2 ff3 fs3 fc0 sc0 ls0 ws0">a<span class="_ _4"> </span>potential<span class="_ _8"> </span>problem<span class="_ _8"> </span>to<span class="_ _8"> </span>a<span class="_ _4"> </span>simul<span class="_"> </span>ator,<span class="_ _4"> </span>in<span class="_ _8"> </span>that<span class="_ _4"> </span>most<span class="_ _8"> </span>such<span class="_ _8"> </span>tools<span class="_ _8"> </span>have<span class="_ _4"> </span>a<span class="_ _4"> </span>comma<span class="_ _9"></span>nd<span class="_ _4"> </span>to<span class="_ _8"> </span>allow<span class="_ _4"> </span>the<span class="_ _8"> </span>sim-</div><div class="t m0 x1 h5 ya3 ff3 fs3 fc0 sc0 ls0 ws0">ulator<span class="_ _8"> </span>to<span class="_ _8"> </span>effectively<span class="_ _4"> </span><span class="ff4">run<span class="_ _11"> </span>forever<span class="_ _4"> </span></span>(e.g.<span class="_ _8"> </span>‘run<span class="_ _7"> </span>–<span class="_ _9"></span>all’<span class="_ _11"> </span>in<span class="_ _8"> </span>Modelsim</div><div class="t m1 x20 h16 ya4 ff14 fsc fc0 sc0 ls0 ws0">1</div><div class="t m0 x21 h5 ya5 ff3 fs3 fc0 sc0 ls0 ws0">).<span class="_ _8"> </span>The<span class="_ _8"> </span><span class="ff5">forever<span class="_ _11"> </span></span>loop<span class="_ _8"> </span>in<span class="_ _11"> </span>lines</div><div class="t m0 x1 h5 ya6 ff3 fs3 fc0 sc0 ls0 ws0">19<span class="_ _d"> </span>and<span class="_ _d"> </span>20<span class="_ _d"> </span>would<span class="_ _d"> </span>cause<span class="_ _d"> </span>a<span class="_ _d"> </span>simulator<span class="_ _d"> </span>to<span class="_ _d"> </span>run<span class="_ _d"> </span>inde<span class="_ _9"></span>finitely<span class="_ _3"></span>,<span class="_ _d"> </span>or<span class="_ _d"> </span>at<span class="_ _d"> </span>least<span class="_ _d"> </span>until<span class="_ _d"> </span>the<span class="_ _d"> </span>host<span class="_ _d"> </span>computer<span class="_ _d"> </span>ran<span class="_ _4"> </span>out</div><div class="t m0 x1 h5 ya7 ff3 fs3 fc0 sc0 ls0 ws0">of<span class="_ _4"> </span>memory<span class="_ _4"> </span>to<span class="_ _d"> </span>store<span class="_ _4"> </span>the<span class="_ _4"> </span>huge<span class="_ _d"> </span>amo<span class="_ _9"></span>unt<span class="_ _4"> </span>of<span class="_ _4"> </span>simulation<span class="_ _d"> </span>data<span class="_ _4"> </span>generated.</div><div class="t m0 x2 h5 ya8 ff3 fs3 fc0 sc0 ls0 ws0">There<span class="_ _4"> </span>are<span class="_ _d"> </span>two<span class="_ _4"> </span>methods<span class="_ _4"> </span>by<span class="_ _4"> </span>which<span class="_ _4"> </span>the<span class="_ _d"> </span>above<span class="_ _4"> </span>problem<span class="_ _4"> </span>can<span class="_ _d"> </span>be<span class="_ _4"> </span>solved:</div><div class="t m0 x1 h5 ya9 ff3 fs3 fc0 sc0 ls0 ws0">1.<span class="_ _22"> </span>Include<span class="_ _4"> </span>an<span class="_ _d"> </span>additional<span class="_ _4"> </span><span class="ff5">init<span class="_ _9"></span>ial<span class="_ _4"> </span></span>block<span class="_ _4"> </span>containing<span class="_ _d"> </span>a<span class="_ _4"> </span><span class="ff7">$stop<span class="_ _4"> </span></span>system<span class="_ _4"> </span>command.</div><div class="t m0 x1 h5 yaa ff3 fs3 fc0 sc0 ls0 ws0">2.<span class="_ _22"> </span>Replace<span class="_ _4"> </span>the<span class="_ _4"> </span><span class="ff5">forever<span class="_ _d"> </span></span>loop<span class="_ _4"> </span>with<span class="_ _4"> </span>a<span class="_ _4"> </span><span class="ff5">repeat<span class="_ _4"> </span></span>loop.</div><div class="t m0 x1 h5 yab ff3 fs3 fc0 sc0 ls0 ws0">The<span class="_ _4"> </span>first<span class="_ _d"> </span>solution<span class="_ _4"> </span>involv<span class="_ _5"></span>es<span class="_ _4"> </span>adding<span class="_ _4"> </span>the<span class="_ _d"> </span>following<span class="_ _4"> </span>statement:</div><div class="t m0 x1d h6 yac ff6 fs3 fc0 sc0 ls0 ws0">//n<span class="_ _7"> </span>is<span class="_ _7"> </span>the<span class="_ _7"> </span>no.<span class="_ _2"> </span>of<span class="_ _7"> </span>clock<span class="_ _7"> </span>pulses<span class="_ _7"> </span>requi<span class="_ _9"></span>red</div><div class="t m0 x1f h6 yad ff5 fs3 fc0 sc0 ls0 ws0">initial<span class="_ _c"> </span><span class="ff7">#(PER<span class="_ _9"></span>IOD*n)<span class="_ _7"> </span>$stop;</span></div><div class="t m0 x1 h5 yae ff3 fs3 fc0 sc0 ls0 ws0">The<span class="_ _4"> </span>above<span class="_ _4"> </span>statement<span class="_ _4"> </span>can<span class="_ _4"> </span>be<span class="_ _4"> </span>inserted<span class="_ _4"> </span>anywhere<span class="_ _4"> </span>after<span class="_ _8"> </span>line<span class="_ _4"> </span>14<span class="_ _4"> </span>within<span class="_ _4"> </span>the<span class="_ _4"> </span>modu<span class="_ _9"></span>le<span class="_ _4"> </span>containing<span class="_ _4"> </span>the</div><div class="t m0 x1 h5 yaf ff3 fs3 fc0 sc0 ls0 ws0">statements<span class="_ _4"> </span>sho<span class="_ _5"></span>wn<span class="_ _4"> </span>in<span class="_ _d"> </span>Figure<span class="_ _4"> </span>8.2.<span class="_ _d"> </span>The<span class="_ _4"> </span>ex<span class="_ _5"></span>ecution<span class="_ _4"> </span>of<span class="_ _d"> </span>the<span class="_ _4"> </span>initial<span class="_ _d"> </span>block<span class="_ _4"> </span>in<span class="_ _d"> </span>line<span class="_ _4"> </span>16<span class="_ _d"> </span>commences<span class="_ _4"> </span>at<span class="_ _d"> </span>the</div><div class="t m0 x1 h5 yb0 ff3 fs3 fc0 sc0 ls0 ws0">same<span class="_ _8"> </span>time<span class="_ _11"> </span>as<span class="_ _8"> </span>the<span class="_ _11"> </span>statement<span class="_ _11"> </span>shown<span class="_ _8"> </span>above<span class="_ _8"> </span>(0<span class="_ _8"> </span>s);<span class="_ _11"> </span>therefore,<span class="_ _8"> </span>the<span class="_ _11"> </span>delayed<span class="_ _11"> </span><span class="ff7">$stop<span class="_ _11"> </span></span>command<span class="_ _11"> </span>will</div><div class="t m0 x1 h5 yb1 ff3 fs3 fc0 sc0 ls0 ws0">execute<span class="_ _d"> </span>at<span class="_ _d"> </span>an<span class="_ _4"> </span>absolute<span class="_ _d"> </span>time<span class="_ _d"> </span>equal<span class="_ _4"> </span>to<span class="_ _d"> </span><span class="ff7">n*PERIOD<span class="_ _d"> </span></span>secon<span class="_ _9"></span>ds.<span class="_ _d"> </span>The<span class="_ _4"> </span>result<span class="_ _d"> </span>is<span class="_ _d"> </span>a<span class="_ _4"> </span>simulation<span class="_ _d"> </span>run<span class="_ _d"> </span>lasting</div><div class="t m0 x1 h5 yb2 ff3 fs3 fc0 sc0 ls0 ws0">exactly<span class="_ _8"> </span><span class="ff7">n<span class="_ _11"> </span></span>clock<span class="_ _11"> </span>periods.<span class="_ _11"> </span>It<span class="_ _11"> </span>should<span class="_ _11"> </span>be<span class="_ _8"> </span>note<span class="_ _9"></span>d<span class="_ _8"> </span>that,<span class="_ _11"> </span>in<span class="_ _11"> </span>order<span class="_ _11"> </span>for<span class="_ _11"> </span>the<span class="_ _8"> </span>above<span class="_ _8"> </span>sta<span class="_ _9"></span>tement<span class="_ _11"> </span>to<span class="_ _8"> </span>compile</div><div class="t m0 x1 h5 yb3 ff3 fs3 fc0 sc0 ls0 ws0">correctly<span class="_ _3"></span>,<span class="_ _a"> </span>the<span class="_ _13"> </span>variable<span class="_ _b"> </span><span class="ff7">n<span class="_ _b"> </span></span>would<span class="_ _a"> </span>have<span class="_ _b"> </span>to<span class="_ _b"> </span>be<span class="_ _b"> </span>replace<span class="_ _9"></span>d<span class="_ _b"> </span>by<span class="_ _b"> </span>an<span class="_ _a"> </span>actual<span class="_ _b"> </span>positive<span class="_ _b"> </span>number<span class="_ _b"> </span>or<span class="_ _b"> </span>would<span class="_ _a"> </span>have<span class="_ _b"> </span>to</div><div class="t m0 x1 h5 yb4 ff3 fs3 fc0 sc0 ls0 ws0">have<span class="_ _d"> </span>been<span class="_ _4"> </span>previously<span class="_ _4"> </span>declared<span class="_ _d"> </span>as<span class="_ _4"> </span>a<span class="_ _4"> </span>local<span class="_ _4"> </span>parameter<span class="_ _3"></span>.</div><div class="t m0 x2 h5 yb5 ff3 fs3 fc0 sc0 ls0 ws0">The<span class="_ _8"> </span>second<span class="_ _11"> </span>solution<span class="_ _11"> </span>in<span class="_ _5"></span>volves<span class="_ _8"> </span>modifying<span class="_ _11"> </span>the<span class="_ _8"> </span><span class="ff5">init<span class="_ _9"></span>ial<span class="_ _11"> </span></span>block<span class="_ _8"> </span>in<span class="_ _11"> </span>lines<span class="_ _8"> </span>16<span class="_ _21"></span>–<span class="_ _9"></span>21<span class="_ _11"> </span>of<span class="_ _8"> </span>the<span class="_ _11"> </span>listing</div><div class="t m0 x1 h5 yb6 ff3 fs3 fc0 sc0 ls0 ws0">given<span class="_ _d"> </span>in<span class="_ _4"> </span>Figure<span class="_ _4"> </span>8.2<span class="_ _d"> </span>to<span class="_ _4"> </span>that<span class="_ _4"> </span>shown<span class="_ _d"> </span>below:</div><div class="t m0 x2 h6 yb7 ff7 fs3 fc0 sc0 ls0 ws0">1<span class="_ _23"> </span><span class="ff5">initial</span></div><div class="t m0 x2 h6 yb8 ff7 fs3 fc0 sc0 ls0 ws0">2<span class="_ _23"> </span><span class="ff5">begin</span></div><div class="t m0 x2 h7 yb9 ff7 fs3 fc0 sc0 ls0 ws0">3<span class="_ _24"> </span>CLK<span class="_ _7"> </span><span class="ff8">¼<span class="_ _7"> </span></span>1'b0;</div><div class="t m0 x2 h6 yba ff7 fs3 fc0 sc0 ls0 ws0">4<span class="_ _25"> </span><span class="ff5">repeat<span class="_ _7"> </span></span>(n)<span class="_ _7"> </span><span class="ff6">//an<span class="_ _7"> </span><span class="ff15">fi<span class="_ _9"></span></span>nite<span class="_ _7"> </span>loop</span></div><div class="t m0 x2 h6 ybb ff7 fs3 fc0 sc0 ls0 ws0">5<span class="_ _23"> </span><span class="ff5">begin</span></div><div class="t m0 x2 h7 ybc ff7 fs3 fc0 sc0 ls0 ws0">6<span class="_ _24"> </span>#(PERIOD/2)<span class="_ _7"> </span>CLK<span class="_ _2"> </span><span class="ff8">¼<span class="_ _7"> </span></span>1'b1;</div><div class="t m0 x2 h7 ybd ff7 fs3 fc0 sc0 ls0 ws0">7<span class="_ _24"> </span>#(PERIOD/2)<span class="_ _7"> </span>CLK<span class="_ _2"> </span><span class="ff8">¼<span class="_ _7"> </span></span>1'b0;</div><div class="t m0 x2 h6 ybe ff7 fs3 fc0 sc0 ls0 ws0">8<span class="_ _23"> </span><span class="ff5">end</span></div><div class="t m0 xf hf y3f ff11 fs8 fc0 sc0 ls0 ws0">The<span class="_ _11"> </span>Behavioural<span class="_ _11"> </span>Style<span class="_ _7"> </span>of<span class="_ _11"> </span>Description:<span class="_ _11"> </span>the<span class="_ _7"> </span>Sequential<span class="_ _11"> </span>Block<span class="_ _16"> </span><span class="ff1">201</span></div></div><div class="pi" data-data='{"ctm":[1.961965,0.000000,0.000000,1.961965,0.000000,0.000000]}'></div></div>