SlideShare a Scribd company logo
1 of 107
1 
CChhaapptteerr 66 
CCoommppoonneenntt TTeesstt 
aanndd VVeerriiffiiccaattiioonn 
MMooddiiffiieedd ffrroomm PPrrooff.. NNaavvaabbii’’ss LLeeccttuurreess
2 
CCoommppoonneenntt TTeesstt aanndd VVeerriiffiiccaattiioonn 
66..11 TTeessttbbeenncchh 
66..11..11 CCoommbbiinnaattiioonnaall cciirrccuuiitt tteessttiinngg 
66..11..22 SSeeqquueennttiiaall cciirrccuuiitt tteessttiinngg 
66..22 TTeessttbbeenncchh TTeecchhnniiqquueess 
66..22..11 TTeesstt ddaattaa 
66..22..22 SSiimmuullaattiioonn ccoonnttrrooll 
66..22..33 LLiimmiittiinngg ddaattaa sseettss 
66..22..44 AAppppllyyiinngg ssyynncchhrroonniizzeedd ddaattaa 
66..22..55 SSyynncchhrroonniizzeedd ddiissppllaayy ooff rreessuullttss 
66..22..66 AAnn iinntteerraaccttiivvee tteessttbbeenncchh 
66..22..77 RRaannddoomm ttiimmee iinntteerrvvaallss 
66..22..88 BBuuffffeerreedd ddaattaa aapppplliiccaattiioonn
3 
CCoommppoonneenntt TTeesstt aanndd VVeerriiffiiccaattiioonn 
66..33 DDeessiiggnn VVeerriiffiiccaattiioonn 
66..44 AAsssseerrttiioonn VVeerriiffiiccaattiioonn 
66..44..11 AAsssseerrttiioonn vveerriiffiiccaattiioonn bbeenneeffiittss 
66..44..22 OOppeenn vveerriiffiiccaattiioonn lliibbrraarryy 
66..44..33 UUssiinngg aasssseerrttiioonn mmoonniittoorrss 
66..44..44 AAsssseerrttiioonn tteemmppllaatteess 
66..55 TTeexxtt BBaasseedd TTeessttbbeenncchheess 
66..66 SSuummmmaarryy
4 
CCoommppoonneenntt TTeesstt aanndd VVeerriiffiiccaattiioonn 
 TThhiiss cchhaapptteerr sshhoowwss:: 
 HHooww VVeerriilloogg llaanngguuaaggee ccoonnssttrruuccttss ccaann bbee uusseedd ffoorr aapppplliiccaattiioonn ooff 
ddaattaa ttoo aa mmoodduullee uunnddeerr tteesstt ((MMUUTT)) 
 HHooww mmoodduullee rreessppoonnsseess ccaann bbee ddiissppllaayyeedd aanndd cchheecckkeedd 
 TThhee ffiirrsstt ppaarrtt:: DDaattaa aapppplliiccaattiioonn aanndd rreessppoonnssee mmoonniittoorriinngg 
 TThhee sseeccoonndd ppaarrtt:: TThhee uussee ooff aasssseerrttiioonn vveerriiffiiccaattiioonn ffoorr ggiivviinngg aa bbeetttteerr 
oobbsseerrvvaabbiilliittyy ttoo oouurr ddeessiiggnn mmoodduulleess
5 
TTeessttbbeenncchh 
 VVeerriilloogg ssiimmuullaattiioonn eennvviirroonnmmeennttss pprroovviiddee ttwwoo kkiinnddss ooff ddiissppllaayy ooff 
ssiimmuullaattiioonn rreessuullttss:: 
 GGrraapphhiiccaall 
 TTeexxttuuaall 
 SSoommee aallssoo pprroovviiddee ttoooollss ffoorr eeddiittiinngg iinnppuutt tteesstt ddaattaa ttoo aa ddeessiiggnn mmoodduullee 
tthhaatt iiss bbeeiinngg tteesstteedd.. 
 TThheessee ttoooollss aarree rreeffeerrrreedd ttoo aass WWaavveeffoorrmm EEddiittoorrss.. 
 WWaavveeffoorrmm eeddiittoorrss hhaavvee 22 pprroobblleemmss:: 
 UUssuuaallllyy aarree ggoooodd oonnllyy ffoorr ssmmaallll ddeessiiggnnss.. 
 EEaacchh ssiimmuullaattiioonn eennvviirroonnmmeenntt uusseess aa ddiiffffeerreenntt pprroocceedduurree ffoorr 
wwaavveeffoorrmm eeddiittiinngg.. 
 TThhiiss pprroobblleemm ccaann bbee ssoollvveedd bbyy uussee ooff VVeerriilloogg TTeessttbbeenncchheess..
6 
TTeessttbbeenncchh 
 AA VVeerriilloogg TTeessttbbeenncchh iiss:: 
 AA VVeerriilloogg mmoodduullee 
 IInnssttaannttiiaatteess MMoodduullee UUnnddeerr TTeesstt ((MMUUTT)).. 
 AApppplliieess ddaattaa ttoo MMUUTT.. 
 MMoonniittoorrss tthhee oouuttppuutt.. 
 AA mmoodduullee aanndd iittss tteessttbbeenncchh ffoorrmmss aa SSiimmuullaattiioonn MMoodduullee iinn wwhhiicchh MMUUTT 
iiss tteesstteedd ffoorr tthhee ssaammee ddaattaa rreeggaarrddlleessss ooff wwhhaatt ssiimmuullaattiioonn eennvviirroonnmmeenntt iiss 
uusseedd..
7 
TTeessttbbeenncchh 
TTeessttbbeenncchh 
CCoommbbiinnaattiioonnaall 
CCiirrccuuiitt 
TTeessttiinngg 
SSeeqquueennttiiaall 
CCiirrccuuiitt 
TTeessttiinngg
8 
CCoommbbiinnaattiioonnaall CCiirrccuuiitt TTeessttiinngg 
TTeessttbbeenncchh 
Combinational 
Testing 
SSeeqquueennttiiaall 
CCiirrccuuiitt 
TTeessttiinngg 
Combinational 
Circuit 
Testing
9 
CCoommbbiinnaattiioonnaall CCiirrccuuiitt TTeessttiinngg 
mmoodduullee aalluu__44bbiitt ((aa,, bb,, ff,, ooee,, yy,, pp,, oovv,, aa__ggtt__bb,, 
aa__eeqq__bb,, aa__lltt__bb));; 
iinnppuutt [[33::00]] aa,, bb;; 
iinnppuutt [[11::00]] ff;; 
iinnppuutt ooee;; 
oouuttppuutt [[33::00]] yy;; 
oouuttppuutt pp,, oovv,, aa__ggtt__bb,, aa__eeqq__bb,, aa__lltt__bb;; 
//// .. .. .. 
eennddmmoodduullee 
 aalluu__44bbiitt MMoodduullee DDeeccllaarraattiioonn 
DDaattaa IInnppuuttss 
FFuunnccttiioonn IInnppuutt 
DDaattaa OOuuttppuutt 
CCoommppaarree OOuuttppuuttss 
OOvveerrffllooww 
OOuuttppuutt 
PPaarriittyy 
OOuuttppuutt
10 
CCoommbbiinnaattiioonnaall CCiirrccuuiitt TTeessttiinngg 
mmoodduullee tteesstt__aalluu__44bbiitt;; 
rreegg [[33::00]] aa==44''bb11001111,, bb==44''bb00111100;; 
rreegg [[11::00]] ff==22''bb0000;; 
rreegg ooee==11;; 
wwiirree [[33::00]] yy;; 
wwiirree pp,, oovv,, aa__ggtt__bb,, aa__eeqq__bb,, aa__lltt__bb;; 
aalluu__44bbiitt ccuutt(( aa,, bb,, ff,, ooee,, yy,, pp,, oovv,, aa__ggtt__bb,, 
aa__eeqq__bb,, aa__lltt__bb ));; 
.............................................. 
.............................................. 
 TTeessttbbeenncchh ffoorr aalluu__44bbiitt 
VVaarriiaabblleess 
ccoonnnneeccttiinngg ttoo 
IInnppuuttss 
VVaarriiaabblleess 
ccoonnnneeccttiinngg ttoo 
OOuuttppuuttss 
TThhiiss iinnssttaannttiiaattiioonn aassssoocciiaatteess 
llooccaall rreeggss aanndd wwiirreess ttoo tthhee 
ppoorrttss ooff tthhee aalluu__44bbiitt mmoodduullee
11 
CCoommbbiinnaattiioonnaall CCiirrccuuiitt TTeessttiinngg 
AApppplliiccaattiioonn ooff ddaattaa ttoo 
tthhee bb ddaattaa iimmppuutt 
aanndd ooee oouuttppuutt--eennaabbllee 
.............................................. 
iinniittiiaall bbeeggiinn 
IInniittiiaall 
BBlloocckk 
WWaaiittss ffoorr 
8800nnss DDiissaabblleess tthhee 
##2200 bb==44''bb11001111;; 
##2200 bb==44''bb11111100;; 
##2200 bb==44''bb11111100;; 
##8800 ooee==11''bb00;; 
##2200 $$ffiinniisshh;; 
eenndd 
aallwwaayyss ##2233 ff == ff ++11;; 
eennddmmoodduullee 
EEvveerryy 2200 nnss 
AA nneeww vvaalluuee iiss 
aassssiiggnneedd ttoo bb 
TThhee $$ffiinniisshh ssttaatteemmeenntt 
iiss rreeaacchheedd aatt 116600 nnss.. 
AAtt tthhiiss ttiimmee aallll 
aaccttiivvee pprroocceedduurraall bblloocckkss 
ssttoopp aanndd ssiimmuullaattiioonn 
AALLUU OOuuttppuutt 
bbyy sseettttiinngg ooee ttoo 00 
AAfftteerr 2200nnss 
tthhee ssiimmuullaattiioonn 
iiss ffiinniisshheedd 
 TTeessttbbeenncchh ffoorr aalluu__44bbiitt ((CCoonnttiinnuueedd)) 
AApppplliiccaattiioonn AAlllloowwss 
ooff ddaattaa 
ttoo tthhee ff iinnppuutt.. 
ff iiss iinnccrreemmeenntt bbyy 11 
eevveerryy 2233 nnss.. 
tteerrmmiinnaatteess.. 
eeffffeeccttss ooff tthhee llaasstt 
iinnppuutt cchhaannggee ttoo bbee 
sshhoowwnn iinn 
ssiimmuullaattiioonn rreessuullttss
12 
CCoommbbiinnaattiioonnaall CCiirrccuuiitt TTeessttiinngg 
ff cchhaannggeess eevveerryy 2233nnss 
TThhrroouugghhoouutt ccaauussiinngg vvaarriioouuss 
tthhee 
AALLUU ssiimmuullaattiioonn ffuunnccttiioonnss 
aa 
rreemmaaiinnss ttoo bbee eexxaammiinneedd 
ccoonnssttaanntt 
 AALLUU SSiimmuullaattiioonn RReessuullttss 
AAtt 114400 nnss 
ooee cchhaannggeess ttoo 00 
ccaauussiinngg tthhee yy oouuttppuutt 
bbeeccoommee ZZ
13 
SSeeqquueennttiiaall CCiirrccuuiitt TTeessttiinngg 
TTeessttbbeenncchh 
CCoommbbiinnaattiioonnaall 
CCiirrccuuiitt 
TTeessttiinngg 
Sequential 
Circuit 
Testing 
Sequential 
Circuit 
Testing
14 
SSeeqquueennttiiaall CCiirrccuuiitt TTeessttiinngg 
 TTeessttiinngg sseeqquueennttiiaall cciirrccuuiittss iinnvvoollvveess ssyynncchhrroonniizzaattiioonn ooff CClloocckk wwiitthh ootthheerr 
ddaattaa iinnppuuttss..
15 
SSeeqquueennttiiaall CCiirrccuuiitt TTeessttiinngg 
mmoodduullee ##((ppaarraammeetteerr [[33::00]] ppoollyy==00)) mmiissrr ((iinnppuutt ccllkk,,rrsstt,, 
iinnppuutt [[33::00]] dd__iinn,, oouuttppuutt rreegg [[33::00]] dd__oouutt ));; 
aallwwaayyss @@(( ppoosseeddggee ccllkk )) 
iiff(( rrsstt )) 
dd__oouutt ==44''bb00000000;; 
eellssee 
dd__oouutt == dd__iinn ^^ (({{44{{dd__oouutt[[00]]}}}} && ppoollyy)) ^^ 
{{11''bb00,,dd__oouutt[[33::11]]}};; 
eennddmmoodduullee 
 mmiissrr SSeeqquueennttiiaall CCiirrccuuiitt 
TThhee cciirrccuuiitt hhaass aa ppoollyy ppaarraammeetteerr 
tthhaatt ddeetteerrmmiinneess iittss ssiiggnnaattuurree aanndd 
ddaattaa ccoommpprreessssiioonn.. 
WWiitthh eeaacchh cclloocckk aa nneeww ssiiggnnaattuurree 
wwiillll bbee ccaallccuullaatteedd wwiitthh tthhee nneeww 
ddaattaa aanndd eexxiissttiinngg mmiissrr rreeggiisstteerr 
ddaattaa..
16 
SSeeqquueennttiiaall CCiirrccuuiitt TTeessttiinngg 
mmoodduullee tteesstt__mmiissrr;; 
rreegg ccllkk==00,, rrsstt==00;; 
rreegg [[33::00]] dd__iinn;; 
wwiirree [[33::00]] dd__oouutt;; 
mmiissrr ##((44''bb11110000)) MMUUTT (( ccllkk,, rrsstt,, dd__iinn,, dd__oouutt ));; 
SSppeecciiffiiccaattiioonn ooff tthhee ppoollyy ppaarraammeetteerr 
...................................................... 
...................................................... 
 AA TTeessttbbeenncchh ffoorr mmiissrr
wwee uussuuaallllyy uussee pprriimmee nnuummbbeerrss 
ffoorr ttiimmiinngg ooff sseeqquueennttiiaall cciirrccuuiitt 
17 
SSeeqquueennttiiaall CCiirrccuuiitt TTeessttiinngg 
.................................................... 
iinniittiiaall bbeeggiinn 
##1133 rrsstt==11''bb11;; 
##1199 dd__iinn==44''bb11000000;; 
##3311 rrsstt==00''bb00;; 
##333300 $$ffiinniisshh;; 
eenndd 
IInn oorrddeerr ttoo rreedduuccee cchhaannccee 
ooff sseevveerraall iinnppuuttss cchhaannggiinngg 
dd__iinn ddaattaa iinnppuutt 
iiss iinniittiiaalliizzeedd 
ttoo 44’’bb11000000 
aallwwaayyss ##337 dd__iinn == dd__iinn ++ 33;; 
aallwwaayyss ##1111 ccllkk == ~~ccllkk;; 
eennddmmoodduullee 
 AA TTeessttbbeenncchh ffoorr mmiissrr ((CCoonnttiinnuueedd)) 
aatt tthhee ssaammee ttiimmee,, 
TThhee iinniittiiaall bblloocckk ggeenneerraatteess aa 
ppoossiittiivvee ppuullssee oonn rrsstt tthhaatt bbeeggiinnss aatt 
iinnppuuttss.. 
1133 nnss aanndd eennddss aatt 6633 nnss.. 
TThhee ttiimmiinngg iiss ssoo cchhoosseenn ttoo 
ccoovveerr aatt lleeaasstt oonnee ppoossiittiivvee 
cclloocckk eeddggee 
dd__iinn iinnppuutt iiss aassssiiggnneedd 
aa nneeww vvaalluuee 
eevveerryy 3377 nnss.. 
GGeenneerraattee ddaattaa oonn 
TToogggglleeddss_ eeiivnee araryynn d1d111 ccnnllsskk
18 
SSeeqquueennttiiaall CCiirrccuuiitt TTeessttiinngg 
 TTeessttiinngg mmiissrr
19 
TTeessttbbeenncchh TTeecchhnniiqquueess 
TTeessttbbeenncchh 
TTeecchhnniiqquueess 
TTeesstt 
DDaattaa 
SSiimmuullaattiioonn 
CCoonnttrrooll 
LLiimmiittiinngg 
DDaattaa SSeettss 
AAppppllyyiinngg 
SSyynncchhrroonniizzeedd DDaattaa 
SSyynncchhrroonniizzeedd 
DDiissppllaayy ooff RReessuullttss 
AAnn IInntteerraaccttiivvee 
TTeessttbbeenncchh 
RRaannddoomm TTiimmee 
IInntteerrvvaallss 
BBuuffffeerreedd 
DDaattaa AApppplliiccaattiioonn
20 
TTeessttbbeenncchh TTeecchhnniiqquueess 
mmoodduullee mmoooorree__ddeetteeccttoorr ((iinnppuutt xx,, rrsstt,, ccllkk,, oouuttppuutt zz ));; 
ppaarraammeetteerr [[11::00]] aa==00,, bb==11,, cc==22,, dd==33;; 
rreegg [[11::00]] ccuurrrreenntt;; 
aallwwaayyss @@(( ppoosseeddggee ccllkk )) 
iiff (( rrsstt )) ccuurrrreenntt <<== aa;; 
.................................................... 
.................................................... 
eennddmmoodduullee 
 110011 MMoooorree DDeetteeccttoorr ffoorr TTeesstt 
SSyynncchhrroonnoouuss RReesseett IInnppuutt
21 
TTeessttbbeenncchh TTeecchhnniiqquueess 
.................................................... 
iiff (( rrsstt )) ccuurrrreenntt == aa;; 
eellssee ccaassee (( ccuurrrreenntt )) 
aa :: ccuurrrreenntt <<== xx ?? bb :: aa ;; 
bb :: ccuurrrreenntt <<== xx ?? bb :: cc ;; 
cc :: ccuurrrreenntt <<== xx ?? dd :: aa ;; 
dd :: ccuurrrreenntt <<== xx ?? bb :: cc ;; 
ddeeffaauulltt :: ccuurrrreenntt <<== xx;; 
eennddccaassee 
aassssiiggnn zz == ((ccuurrrreenntt====dd)) ?? 11''bb11 :: 11''bb00;; 
eennddmmoodduullee 
 110011 MMoooorree DDeetteeccttoorr ffoorr TTeesstt ((CCoonnttiinnuueedd)) 
zz oouuttppuutt bbeeccoommeess 11 
iinn ssttaattee dd wwhheenn 
aa sseeqquueennccee ooff 110011 
iiss ddeetteecctteedd oonn xx
22 
TTeessttbbeenncchh 
TTeecchhnniiqquueess 
TTeesstt 
DDaattaa 
SSiimmuullaattiioonn 
CCoonnttrrooll 
LLiimmiittiinngg 
DDaattaa SSeettss 
AAppppllyyiinngg 
SSyynncchhrroonniizzeedd DDaattaa 
SSyynncchhrroonniizzeedd 
DDiissppllaayy ooff RReessuullttss 
AAnn IInntteerraaccttiivvee 
TTeessttbbeenncchh 
RRaannddoomm TTiimmee 
IInntteerrvvaallss 
BBuuffffeerreedd 
DDaattaa AApppplliiccaattiioonn 
Test 
Data 
TTeesstt DDaattaa
23 
TTeesstt DDaattaa 
mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; 
rreegg xx,, rreesseett,, cclloocckk;; 
wwiirree zz;; 
mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, rreesseett,, cclloocckk,, zz ));; 
........................................................ 
........................................................ 
eennddmmoodduullee 
 BBaassiicc DDaattaa GGeenneerraattiioonn
24 
IInniittiiaall BBlloocckk 
........................................................ 
........................................................ 
iinniittiiaall bbeeggiinn 
FFoorr iinniittiiaalliizziinngg tthhee rreegg vvaarriiaabblleess 
cclloocckk==11''bb00;; xx==11''bb00;; rreesseett==11''bb11;; 
eenndd 
iinniittiiaall ##2244 rreesseett==11''bb00;; 
aallwwaayyss ##55 cclloocckk==~~cclloocckk;; 
aallwwaayyss ##7 xx==~~xx;; 
eennddmmoodduullee 
TTeesstt DDaattaa 
TThhee wwaavveeffoorrmm ggeenneerraatteedd oonn xx 
mmaayy oorr mmaayy nnoott bbee aabbllee ttoo tteesstt 
oouurr mmaacchhiinnee ffoorr 
aa ccoorrrreecctt 110011 sseeqquueennccee.. 
GGeenneerraatteess aa ssiiggnnaall oonn xx 
wwiitthh aa ppeerriioodd ooff 1144nnss 
 BBaassiicc DDaattaa GGeenneerraattiioonn ((CCoonnttiinnuueedd)) 
FFoouurr 
PPrroocceedduurraall BBlloocckkss 
GGeenneerraatteess aa ssiiggnnaall wwiitthh aa 
ppeerriioodd ooff 1100nnss oonn cclloocckk 
VVaarriiaabblleess uusseedd iinn tthhee lleefftt--hhaanndd-- 
ssiiddeess iinn tthhee pprroocceedduurraall bblloocckkss 
PPeerriiooddss ooff cclloocckk aanndd xx ccaann bbee 
cchhaannggeedd ttoo mmaakkee tthhiiss hhaappppeenn 
aarree ddeeccllaarreedd aass rreegg
25 
SSiimmuullaattiioonn CCoonnttrrooll 
TTeessttbbeenncchh 
TTeecchhnniiqquueess 
TTeesstt 
DDaattaa 
Simulation 
Control 
SSiimmuullaattiioonn 
CCoonnttrrooll 
LLiimmiittiinngg 
DDaattaa SSeettss 
AAppppllyyiinngg 
SSyynncchhrroonniizzeedd DDaattaa 
SSyynncchhrroonniizzeedd 
DDiissppllaayy ooff RReessuullttss 
AAnn IInntteerraaccttiivvee 
TTeessttbbeenncchh 
RRaannddoomm TTiimmee 
IInntteerrvvaallss 
BBuuffffeerreedd 
DDaattaa AApppplliiccaattiioonn
26 
SSiimmuullaattiioonn CCoonnttrrooll 
mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; 
rreegg xx==00,, rreesseett==11,, cclloocckk==00;; 
wwiirree zz;; 
SSiimmuullaattiioonn CCoonnttrrooll TTaasskkss 
aarree $$ssttoopp aanndd $$ffiinniisshh 
mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, rreesseett,, cclloocckk,, zz ));; 
iinniittiiaall ##2244 rreesseett==11''bb00;; 
aallwwaayyss ##55 cclloocckk==~~cclloocckk;; 
aallwwaayyss ##7 xx==~~xx;; 
iinniittiiaall ##118899 $$ssttoopp;; 
eennddmmoodduullee 
 TTeessttbbeenncchh wwiitthh $$ssttoopp SSiimmuullaattiioonn CCoonnttrrooll 
AAnnootthheerr tteessttbbeenncchh ffoorr 
mmoooorree__ddeetteeccttoorr wwhhiicchh 
aaddddss aannootthheerr iinniittiiaall bblloocckk 
tthhaatt ssttooppss tthhee ssiimmuullaattiioonn 
aatt 118899 nnss.. 
TThhee ffiirrsstt ttiimmee tthhee ffllooww ooff 
aa pprroocceedduurraall bblloocckk 
rreeaacchheess $$ssttoopp aatt 118899 nnss,, 
ssiimmuullaattiioonn ssttooppss.. 
AA ssttooppppeedd ssiimmuullaattiioonn 
ccaann bbee rreessuummeedd..
27 
SSiimmuullaattiioonn CCoonnttrrooll 
mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; 
rreegg xx==00,, rreesseett==11,, cclloocckk==00;; 
wwiirree zz;; 
mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, rreesseett,, cclloocckk,, zz ));; 
........................................................ 
........................................................ 
eennddmmoodduullee 
 TTeessttbbeenncchh wwiitthh $$ffiinniisshh SSiimmuullaattiioonn CCoonnttrrooll 
AAnnootthheerr tteessttbbeenncchh ffoorr 
mmoooorree__ddeetteeccttoorr wwiitthh 
$$ffiinniisshh CCoonnttrrooll TTaasskk
28 
SSiimmuullaattiioonn CCoonnttrrooll 
TThhiiss tteessttbbeenncchh ccoommbbiinneess 
tthhee iinniittiiaall bblloocckkss ooff 
ddeeaaccttiivvaattiinngg rreesseett aanndd 
ssiimmuullaattiioonn ccoonnttrrooll iinnttoo 
........................................................ 
........................................................ 
iinniittiiaall bbeeggiinn 
##2244 rreesseett==11''bb00;; 
##116655 $$ffiinniisshh;; 
SSiimmuullaattiioonn tteerrmmiinnaatteess aatt 116655 nnss.. 
eenndd 
aallwwaayyss ##55 cclloocckk==~~cclloocckk;; 
aallwwaayyss ##77 xx==~~xx;; 
eennddmmoodduullee 
oonnee iinniittiiaall bblloocckk.. 
AA ffiinniisshheedd ssiimmuullaattiioonn 
ccaannnnoott bbee rreessuummeedd.. 
 TTeessttbbeenncchh wwiitthh $$ffiinniisshh SSiimmuullaattiioonn CCoonnttrrooll ((CCoonnttiinnuueedd))
29 
LLiimmiittiinngg DDaattaa SSeettss 
TTeessttbbeenncchh 
TTeecchhnniiqquueess 
TTeesstt 
DDaattaa 
SSiimmuullaattiioonn 
CCoonnttrrooll 
LLiimmiittiinngg 
DDaattaa SSeettss 
AAppppllyyiinngg 
SSyynncchhrroonniizzeedd DDaattaa 
SSyynncchhrroonniizzeedd 
DDiissppllaayy ooff RReessuullttss 
AAnn IInntteerraaccttiivvee 
TTeessttbbeenncchh 
RRaannddoomm TTiimmee 
IInntteerrvvaallss 
BBuuffffeerreedd 
DDaattaa AApppplliiccaattiioonn 
Limiting 
Data Sets
30 
LLiimmiittiinngg DDaattaa SSeettss 
;;mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr 
;;rreegg xx==00,, rreesseett==11,, cclloocckk==00 
;;wwiirree zz 
((;;mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, rreesseett,, cclloocckk,, zz 
;;iinniittiiaall ##2244 rreesseett==11''bb00 
;;iinniittiiaall rreeppeeaatt((1133(( ##55 cclloocckk==~~cclloocckk 
;;iinniittiiaall rreeppeeaatt((1100(( ##77 xx==$$rraannddoomm 
eennddmmoodduullee 
 TTeessttbbeenncchh UUssiinngg rreeppeeaatt ttoo LLiimmiitt DDaattaa SSeettss 
IInnsstteeaadd ooff sseettttiinngg 
ssiimmuullaattiioonn ttiimmee lliimmiitt,, 
aa tteessttbbeenncchh ccaann ppuutt aa lliimmiitt 
oonn tthhee nnuummbbeerr ooff ddaattaa 
ppuutt oonn iinnppuuttss ooff aa MMUUTT.. 
TThhiiss wwiillll aallssoo bbee aabbllee ttoo 
ssttoopp ssiimmuullaattiioonn ffrroomm 
rruunnnniinngg iinnddeeffiinniitteellyy.. 
CCaauussee cclloocckk ttoo ttooggggllee 
1133 ttiimmeess eevveerryy 55 nnss 
IInn llaarrggee cciirrccuuiittss,, rraannddoomm 
ddaattaa iiss mmoorree uusseeffuull 
ffoorr ddaattaa iinnppuuttss tthhaann ffoorr 
CCaauussee xx ttoo rreecceeiivvee 
rraannddoomm ddaattaa 
110 ttiimmeess eevveerryy 77 nnss 
GGeenneerraatteess rraannddoomm ddaattaa oonn tthhee xx 
iinnppuutt ooff tthhee cciirrccuuiitt.. 
ccoonnttrrooll ssiiggnnaallss..
31 
AAppppllyyiinngg SSyynncchhrroonniizzeedd DDaattaa 
TTeessttbbeenncchh 
TTeecchhnniiqquueess 
TTeesstt 
DDaattaa 
SSiimmuullaattiioonn 
CCoonnttrrooll 
LLiimmiittiinngg 
DDaattaa SSeettss 
AAppppllyyiinngg 
Applying 
SSyynncchhrroonniizzeedd DDaattaa 
SSyynncchhrroonniizzeedd 
DDiissppllaayy ooff RReessuullttss 
Synchronized Data 
AAnn IInntteerraaccttiivvee 
TTeessttbbeenncchh 
RRaannddoomm TTiimmee 
IInntteerrvvaallss 
BBuuffffeerreedd 
DDaattaa AApppplliiccaattiioonn
32 
AAppppllyyiinngg SSyynncchhrroonniizzeedd DDaattaa 
 WWhheerree sseevveerraall sseettss ooff ddaattaa aarree ttoo bbee aapppplliieedd:: 
 SSyynncchhrroonniizzaattiioonn ooff ddaattaa wwiitthh tthhee ssyysstteemm cclloocckk bbeeccoommeess ddiiffffiiccuulltt.. 
 CChhaannggiinngg tthhee cclloocckk ffrreeqquueennccyy wwoouulldd rreeqquuiirree cchhaannggiinngg tthhee ttiimmiinngg ooff 
aallll ddaattaa iinnppuuttss ooff tthhee mmoodduullee bbeeiinngg tteesstteedd..
mmaakkeess iitt ppoossssiibbllee ttoo uussee 
tthhiiss tteessttbbeenncchh ffoorr 
ssiimmuullaattiinngg ppoosstt--ssyynntthheessiiss 
ddeessiiggnnss aass wweellll aass 
bbeehhaavviioorraall ddeessccrriippttiioonnss 
TTeessttbbeenncchh DDeellaayyss:: 
SSeettuupp aanndd HHoolldd TTiimmee 
33 
AAppppllyyiinngg SSyynncchhrroonniizzeedd DDaattaa 
mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; 
rreegg xx==00,, rreesseett==11,, cclloocckk==00;; 
wwiirree zz;; 
TThhiiss 33nnss ddeellaayy 
mmoooorree__ddeetteeccttoorr uuuutt(( xx,, rreesseett,, cclloocckk,, zz ((;; 
iinniittiiaall ##2244 rreesseett==00;; 
iinniittiiaall rreeppeeaatt((1133(( ##55 cclloocckk==~~cclloocckk;; 
iinniittiiaall ffoorreevveerr @@((ppoosseeddggee cclloocckk(( ##33 xx==$$rraannddoomm;; 
eennddmmoodduullee 
 SSyynncchhrroonniizziinngg DDaattaa wwiitthh CClloocckk 
TThhiiss tteessttbbeenncchh uusseess aann 
eevveenntt ccoonnttrrooll ssttaatteemmeenntt ttoo 
ssyynncchhrroonniizzee ddaattaa aapppplliieedd 
TThhiiss lloooopp wwaaiitttstsoo ff ox r w wtthhiitteehh tthhee cclloocckk.. 
ppoossiittiivvee eeddggee ooff tthhee 
cclloocckk,, aanndd 33 nnss aafftteerr iitt,, aa 
nneeww rraannddoomm ddaattaa iiss 
ggeenneerraatteedd ffoorr xx.. 
GGuuaarraanntteeeess tthhaatt 
cchhaannggiinngg ooff ddaattaa aanndd 
cclloocckk ddoo nnoott ccooiinncciiddee..
SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss 
34 
TTeessttbbeenncchh 
TTeecchhnniiqquueess 
TTeesstt 
DDaattaa 
SSiimmuullaattiioonn 
CCoonnttrrooll 
LLiimmiittiinngg 
DDaattaa SSeettss 
AAppppllyyiinngg 
SSyynncchhrroonniizzeedd DDaattaa 
SSyynncchhrroonniizzeedd 
DDiissppllaayy ooff RReessuullttss 
AAnn IInntteerraaccttiivvee 
TTeessttbbeenncchh 
RRaannddoomm TTiimmee 
IInntteerrvvaallss 
BBuuffffeerreedd 
DDaattaa AApppplliiccaattiioonn 
Synchronized 
Display of Results
SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss 
35 
mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; 
rreegg xx==00,, rreesseett==11,, cclloocckk==00;; 
wwiirree zz;; 
mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, rreesseett,, cclloocckk,, zz ((;; 
iinniittiiaall ##2244 rreesseett==00;; 
iinniittiiaall rreeppeeaatt((1133(( ##55 cclloocckk==~~cclloocckk;; 
iinniittiiaall ffoorreevveerr @@((ppoosseeddggee cclloocckk(( ##33 xx==$$rraannddoomm;; 
iinniittiiaall ffoorreevveerr @@((ppoosseeddggee cclloocckk(( ##11 $$ddiissppllaayybb((zz((;; 
eennddmmoodduullee 
 TTeessttbbeenncchh DDiissppllaayyiinngg OOuuttppuutt 
TThhiiss tteessttbbeenncchh uusseess aann 
eevveenntt ccoonnttrrooll ssttaatteemmeenntt ffoorr 
ssyynncchhrroonniizzeedd oobbsseerrvvaattiioonn 
ooff MMUUTT oouuttppuuttss oorr 
iinntteerrnnaall ssiiggnnaallss.. 
11nnss aafftteerr tthhee ppoossiittiivvee eeddggee 
ooff tthhee cclloocckk,, wwhheenn tthhee cciirrccuuiitt 
oouuttppuutt iiss ssuuppppoosseedd ttoo hhaavvee 
iittss nneeww ssttaabbllee vvaalluuee,, tthhee zz 
oouuttppuutt iiss ddiissppllaayyeedd uussiinngg tthhee 
$$ddiissppllaayybb ttaasskk.. 
TThhiiss tteessttbbeenncchh iiss aallssoo uussaabbllee 
ffoorr tthhee ppoosstt--ssyynntthheessiiss 
ssiimmuullaattiioonn ooff mmoooorree__ddeetteeccttoorr
SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss 
TThhiiss tteessttbbeenncchh iiss ddeevveellooppeedd 
ffoorr oobbsseerrvviinngg ssttaatteess ooff 
36 
mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; 
rreegg xx==00,, rreesseett==11,, cclloocckk==00;; 
wwiirree zz;; 
mmoooorree__ddeetteeccttoorr 
mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, rreesseett,, cclloocckk,, zz ((;; 
........................................................ 
........................................................ 
eennddmmoodduullee 
 TTeessttbbeenncchh DDiissppllaayyss DDeessiiggnn VVaarriiaabblleess wwhheenn tthheeyy cchhaannggee
SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss 
37 
DDiissppllaayy ooccccuurrss wwhheenn aann 
eevveenntt ooccccuurrss oonn oonnee ooff tthhee 
vvaarriiaabblleess ooff tthhee ttaasskk’’ss 
........................................................ 
........................................................ 
iinniittiiaall ##2244 rreesseett==00;; 
aarrgguummeennttss.. 
iinniittiiaall rreeppeeaatt((1199(( ##55 cclloocckk==~~cclloocckk;; 
iinniittiiaall ffoorreevveerr @@((ppoosseeddggee cclloocckk(( ##33 xx==$$rraannddoomm;; 
iinniittiiaall $$mmoonniittoorr((""NNeeww ssttaattee iiss %%bb aanndd ooccccuurrss 
aatt %%tt"",, MMUUTT..ccuurrrreenntt,, $$ttiimmee((;; 
aallwwaayyss @@((zz(( $$ddiissppllaayy((""OOuuttppuutt cchhaannggeess aatt %%tt ttoo %%bb"",, 
$$ttiimmee,, zz((;; 
eennddmmoodduullee 
UUsseess $$mmoonniittoorr ttoo ddiissppllaayy 
ccuurrrreenntt rreeggiisstteerr 
UUsseess $$ddiissppllaayy ttoo ddiissppllaayy 
 TTeessttbbeenncchh DDiissppllaayyss DDeessiiggnn tthhee VVaarriiaabblleess oouuttppuutt 
wwhheenn tthheeyy cchhaannggee ((CCoonnttiinnuueedd)) 
ccuurrrreenntt ssttaattee aanndd zz oouuttppuutt 
aarree ddiissppllaayyeedd wwhheenn tthheeyy 
rreecceeiivvee nneeww vvaalluueess.. 
SSttaarrttss $$mmoonniittoorr ttaasskk 
iinn tthhee bbaacckkggrroouunndd 
EEvveenntt BBaasseedd 
SSeennssiittiivvee ttoo zz 
FFllooww BBaasseedd 
HHiieerraarrcchhiiaall 
NNaammiinngg 
IInn bbiinnaarryy 
ffoorrmmaatt 
WWiitthh tthhee 
ttiimmee uunniitt
SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss 
38 
NNeeww ssttaattee iiss xx aanndd ooccccuurrss aatt 00 
OOuuttppuutt cchhaannggeess aatt 5500 ttoo 00 
NNeeww ssttaattee iiss 00 aanndd ooccccuurrss aatt 5500 
NNeeww ssttaattee iiss 11 aanndd ooccccuurrss aatt 225500 
NNeeww ssttaattee iiss 22 aanndd ooccccuurrss aatt 885500 
OOuuttppuutt cchhaannggeess aatt 995500 ttoo 11 
NNeeww ssttaattee iiss 33 aanndd ooccccuurrss aatt 995500 
 TTeesstt RReessuullttss ooff TTeessttbbeenncchh ooff FFiigg.. 66..1144
39 
AAnn IInntteerraaccttiivvee TTeessttbbeenncchh 
TTeessttbbeenncchh 
TTeecchhnniiqquueess 
TTeesstt 
DDaattaa 
SSiimmuullaattiioonn 
CCoonnttrrooll 
LLiimmiittiinngg 
DDaattaa SSeettss 
AAppppllyyiinngg 
SSyynncchhrroonniizzeedd DDaattaa 
SSyynncchhrroonniizzeedd 
DDiissppllaayy ooff RReessuullttss 
AAnn IInntteerraaccttiivvee 
TTeessttbbeenncchh 
RRaannddoomm TTiimmee 
IInntteerrvvaallss 
An Interactive 
Testbench 
BBuuffffeerreedd 
DDaattaa AApppplliiccaattiioonn
40 
AAnn IInntteerraaccttiivvee TTeessttbbeenncchh 
mmoodduullee mmoooorree__ddeetteeccttoorr ((iinnppuutt xx,, ssttaarrtt,, rrsstt,, ccllkk,, 
oouuttppuutt zz ((;; 
ppaarraammeetteerr aa==00,, bb==11,, cc==22,, dd==33,, ee==44;; 
rreegg [[22::00]] ccuurrrreenntt;; 
aallwwaayyss @@(( ppoosseeddggee ccllkk (( 
........................................................ 
........................................................ 
........................................................ 
eennddmmoodduullee 
 MMoooorree SSeeqquueennccee DDeetteeccttoorr DDeetteeccttiinngg 1111011 
AA 1111011 MMoooorree ddeetteeccttoorr 
WWiitthh 55 ssttaatteess
41 
AAnn IInntteerraaccttiivvee TTeessttbbeenncchh 
iiff (( rrsstt (( ccuurrrreenntt <<== aa;; 
eellssee iiff (( ~~ssttaarrtt (( ccuurrrreenntt <<== aa;; 
eellssee ccaassee (( ccuurrrreenntt (( 
aa :: ccuurrrreenntt <<== xx ?? bb :: aa ;; 
bb :: ccuurrrreenntt <<== xx ?? cc :: aa ;; 
cc :: ccuurrrreenntt <<== xx ?? cc :: dd ;; 
dd :: ccuurrrreenntt <<== xx ?? ee :: aa ;; 
ee :: ccuurrrreenntt <<== xx ?? cc :: aa ;; 
ddeeffaauulltt:: ccuurrrreenntt <<== aa;; 
eennddccaassee 
aassssiiggnn zz == ((ccuurrrreenntt====ee((;; 
OOuuttppuutt bbeeccoommeess 11 iinn ssttaattee ee 
eennddmmoodduullee 
 MMoooorree SSeeqquueennccee DDeetteeccttoorr DDeetteeccttiinngg 1111011 ((CCoonnttiinnuueedd)) 
IIff ssttaarrtt bbeeccoommeess 0 
tthhee mmaacchhiinnee rreesseettss ttoo 
iinniittiiaall ssttaattee aa
42 
AAnn IInntteerraaccttiivvee TTeessttbbeenncchh 
mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; 
rreegg xx==00,, ssttaarrtt,, rreesseett==11,, cclloocckk==00;; 
wwiirree zz;; 
mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, ssttaarrtt,, rreesseett,, cclloocckk,, zz ((;; 
........................................................ 
........................................................ 
........................................................ 
eennddmmoodduullee 
 AAnn IInntteerraaccttiivvee TTeessttbbeenncchh
43 
AAnn IInntteerraaccttiivvee TTeessttbbeenncchh 
iinniittiiaall bbeeggiinn 
##2244 rreesseett==11''bb00;; ssttaarrtt==11''bb11;; 
wwaaiitt((zz====11''bb11((;; 
##1111 ssttaarrtt==11''bb00;; 
##1133 ssttaarrtt==11''bb11;; 
rreeppeeaatt((33(( bbeeggiinn 
##1111 ssttaarrtt==11''bb00;; 
##1133 ssttaarrtt==11''bb11;; 
wwaaiitt((zz====11''bb11((;; 
eenndd 
##5500 $$ssttoopp;; 
eenndd 
 AAnn IInntteerraaccttiivvee TTeessttbbeenncchh ((CCoonnttiinnuueedd)) 
TToo ggeett tthhee mmaacchhiinnee ssttaarrtteedd 
WWaaiittss ffoorr zz ttoo bbeeccoommee 11,, 
AAfftteerr iitt rreessttaarrttss tthhee mmaacchhiinnee 
RReeppeeaattss tthhee pprroocceessss ooff 
ssttaarrttiinngg tthhee mmaacchhiinnee aanndd 
wwaaiittiinngg ffoorr zz ttoo bbeeccoommee 11 
33 mmoorree ttiimmeess 
AAfftteerr 550 nnss ssiimmuullaattiioonn iiss ssttooppppeedd
44 
AAnn IInntteerraaccttiivvee TTeessttbbeenncchh 
........................................................ 
........................................................ 
........................................................ 
aallwwaayyss ##55 cclloocckk==~~cclloocckk;; 
aallwwaayyss ##77 xx==$$rraannddoomm;; 
eennddmmoodduullee 
 AAnn IInntteerraaccttiivvee TTeessttbbeenncchh ((CCoonnttiinnuueedd)) 
aallwwaayyss bblloocckkss ttoo ggeenneerraattee 
cclloocckk aanndd xx iinnppuutt
45 
AAnn IInntteerraaccttiivvee TTeessttbbeenncchh 
 WWaavveeffoorrmm RReessuulltteedd bbyy tthhee IInntteerraaccttiivvee TTeessttbbeenncchh
46 
AAnn IInntteerraaccttiivvee TTeessttbbeenncchh 
mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; 
rreegg xx==00,, ssttaarrtt,, rreesseett==11,, cclloocckk==00;; 
wwiirree zz;; 
mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, ssttaarrtt,, rreesseett,, cclloocckk,, zz ((;; 
iinniittiiaall bbeeggiinn 
##2244 rreesseett==11''bb00;; ssttaarrtt==11''bb11;; 
eenndd 
........................................................ 
eennddmmoodduullee 
 IInntteerraaccttiivvee TTeessttbbeenncchh UUssiinngg DDiissppllaayy TTaasskkss
47 
AAnn IInntteerraaccttiivvee TTeessttbbeenncchh 
WWhheenn ccuurrrreenntt bbeeccoommeess ee 
zz iiss ddiissppllaayyeedd 
........................................................ 
aallwwaayyss bbeeggiinn :: OOuuttppuutt__DDiissppllaayy 
HHiieerraarrcchhiiccaall NNaammiinngg 
DDiissppllaayyss aass ssoooonn aass pprrooggrraamm 
DDiissppllaayyss tthhee oolldd vvaalluuee ooff zz 
ffllooww rreeaacchheess iitt 
wwaaiitt((MMUUTT..ccuurrrreenntt ==== MMUUTT..ee((;; 
$$ddiissppllaayy ((""$$ddiissppllaayy ttaasskk sshhoowwss:: TThhee oouuttppuutt iiss 
%%bb"",, zz((;; 
TToo oobbsseerrvvee 
oouuttppuutt wwiitthhiinn 
$$ssttrroobbee ((""$$ssttrroobbee ttaasskk sshhoowwss:: TThhee oouuttppuutt iiss 
%%bb"",, zz((;; 
##22 $$ssttoopp;; 
aa ssttaattee 
AA ssiimmuullaattiioonn cclloocckk ccyyccllee 
WWaaiittss ffoorr aallll ssiimmuullaattiioonn eevveenntt 
ttoo ccoommpplleettee bbeeffoorree ddiissppllaayyiinngg 
eenndd 
aallwwaayyss ##55 cclloocckk==~~cclloocckk;; 
aallwwaayyss ##77 xx==$$rraannddoomm;; 
aafftteerr ee iiss ddeetteecctteedd,, 
zz bbeeccoommeess 11 aanndd iiss ddiissppllaayyeedd 
eennddmmoodduullee 
 IInntteerraaccttiivvee TTeessttbbeenncchh UUssiinngg DDiissppllaayy TTaasskkss ((CCoonnttiinnuueedd))
48 
RRaannddoomm TTiimmee IInntteerrvvaallss 
TTeessttbbeenncchh 
TTeecchhnniiqquueess 
TTeesstt 
DDaattaa 
SSiimmuullaattiioonn 
CCoonnttrrooll 
LLiimmiittiinngg 
DDaattaa SSeettss 
AAppppllyyiinngg 
SSyynncchhrroonniizzeedd DDaattaa 
SSyynncchhrroonniizzeedd 
DDiissppllaayy ooff RReessuullttss 
AAnn IInntteerraaccttiivvee 
TTeessttbbeenncchh 
RRaannddoomm TTiimmee 
IInntteerrvvaallss 
BBuuffffeerreedd 
DDaattaa AApppplliiccaattiioonn 
Random Time 
Intervals
49 
RRaannddoomm TTiimmee IInntteerrvvaallss 
mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; 
rreegg xx,, ssttaarrtt,, rreesseett,, cclloocckk;; 
wwiirree zz;; 
rreegg [[33::00]] tt;; 
mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, ssttaarrtt,, rreesseett,, cclloocckk,, zz ((;; 
........................................................ 
........................................................ 
eennddmmoodduullee 
 TTeessttbbeenncchh uussiinngg RRaannddoomm TTiimmee IInntteerrvvaallss 
TThhiiss tteessttbbeenncchh uusseess 
rraannddoomm wwaaiitt ttiimmeess ffoorr 
aassssiiggnniinngg vvaalluueess ttoo xx
WWaaiittss ffoorr 1133 ccoommpplleettee cclloocckk 
ppuullsseess bbeeffoorree iitt ddee--aasssseerrttss tthhee 
ssttaarrtt aanndd ffiinniisshheess tthhee ssiimmuullaattiioonn 
50 
iinniittiiaall bbeeggiinn::rruunnnniinngg 
NNoonnbblloocckkiinngg aassssiiggnnmmeennttss 
ccaauussee iinnttrraa--aassssiiggnnmmeenntt 
ddeellaayy vvaalluueess ttoo bbee rreeggaarrddeedd 
aass aabbssoolluuttee ttiimmiinngg vvaalluueess 
cclloocckk <<== 11''bb00;; xx <<== 11''bb00;; 
rreesseett <<== 11''bb11;; rreesseett <<== ##77 11''bb00;; 
ssttaarrtt <<== 11''bb00;; ssttaarrtt <<== ##1177 11''bb11;; 
rreeppeeaatt ((1133(( bbeeggiinn 
@@(( ppoosseeddggee cclloocckk ((;; 
@@(( nneeggeeddggee cclloocckk ((;; 
Waits until tthhee pprrooppaaggaattiioonn ooff aallll 
ssiiggnnaallss bbee ccoommpplleetteedd 
eenndd 
ssttaarrtt==11''bb00;; 
##55;; 
$$ffiinniisshh;; 
eenndd 
RRaannddoomm TTiimmee IInntteerrvvaallss 
 TTeessttbbeenncchh uussiinngg RRaannddoomm TTiimmee IInntteerrvvaallss ((CCoonnttiinnuueedd))
51 
RRaannddoomm TTiimmee IInntteerrvvaallss 
........................................................ 
........................................................ 
........................................................ 
TThhiiss bblloocckk ggeenneerraatteess ddaattaa oonn 
xx aass lloonngg aass tthhee $$ffiinniisshh 
ssttaatteemmeenntt iiss nnoott rreeaacchheedd 
aallwwaayyss ##55 cclloocckk==~~cclloocckk;; 
aallwwaayyss bbeeggiinn 
tt == $$rraannddoomm;; 
##((tt(( xx==$$rraannddoomm;; 
eenndd 
eennddmmoodduullee 
GGeenneerraatteess RRaannddoomm ddaattaa oonn tt 
UUsseess tt ttoo ddeellaayy aassssiiggnnmmeennttss 
ooff rraannddoomm vvaalluueess ttoo xx 
 TTeessttbbeenncchh uussiinngg RRaannddoomm TTiimmee IInntteerrvvaallss ((CCoonnttiinnuueedd))
52 
BBuuffffeerreedd DDaattaa AApppplliiccaattiioonn 
TTeessttbbeenncchh 
TTeecchhnniiqquueess 
TTeesstt 
DDaattaa 
SSiimmuullaattiioonn 
CCoonnttrrooll 
LLiimmiittiinngg 
DDaattaa SSeettss 
AAppppllyyiinngg 
SSyynncchhrroonniizzeedd DDaattaa 
SSyynncchhrroonniizzeedd 
DDiissppllaayy ooff RReessuullttss 
AAnn IInntteerraaccttiivvee 
TTeessttbbeenncchh 
RRaannddoomm TTiimmee 
IInntteerrvvaallss 
Buffered 
BBuuffffeerreedd 
Data Application 
DDaattaa AApppplliiccaattiioonn
53 
BBuuffffeerreedd DDaattaa AApppplliiccaattiioonn 
mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; 
rreegg xx==00,, rrsstt,, ssttaarrtt,, ccllkk==00;; 
wwiirree zz;; 
rreegg [[1188::00]] bbuuffffeerr;; 
mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, ssttaarrtt,, rrsstt,, ccllkk,, zz ((;; 
........................................................ 
........................................................ 
eennddmmoodduullee 
 TTeessttbbeenncchh AAppppllyyiinngg BBuuffffeerreedd DDaattaa 
TThhiiss tteessttbbeenncchh uusseess aa 
bbuuffffeerr ttoo hhoolldd ddaattaa ttoo 
bbee aapppplliieedd ttoo tthhee 
MMUUTT ddaattaa iinnppuutt
AAss ddaattaa iiss sshhiifftteedd,, bbuuffffeerr iiss rroottaatteedd iinn 
oorrddeerr ffoorr tthhee aapppplliieedd bbuuffffeerreedd ddaattaa ttoo 
54 
BBuuffffeerreedd DDaattaa AApppplliiccaattiioonn 
1199--bbiitt bbuuffffeerr iiss iinniittiiaalliizzeedd wwiitthh tteesstt ddaattaa 
........................................................ 
iinniittiiaall bbuuffffeerr == 1199''bb00000011110011110011111111000011000011;; 
iinniittiiaall bbeeggiinn 
rrsstt==11''bb11;; ssttaarrtt==11''bb00;; 
##2299 rrsstt==11''bb00;; 
##2299 ssttaarrtt==11''bb11;; 
##550000 $$ssttoopp;; 
SSttaarrtt aanndd ssttoopp ccoonnttrrooll ooff tthhee 
EEaacchh bbiitt ooff tthhee bbuuffffeerr iissss ttssaahhtteieiff ttmmeeddaa ccoohhuuiittnnee 
oonnttoo tthhee xx iinnppuutt ooff MMUUTT 
11nnss aafftteerr tthhee ppoossiittiivvee eeddggee ooff cclloocckk 
eenndd 
aallwwaayyss @@((ppoosseeddggee ccllkk(( ##11 {{xx,, bbuuffffeerr}} == {{bbuuffffeerr,,xx}};; 
aallwwaayyss ##55 ccllkk == ~~ccllkk;; 
eennddmmoodduullee 
bbee aabbllee ttoo rreeppeeaatt 
 TTeessttbbeenncchh AAppppllyyiinngg BBuuffffeerreedd DDaattaa ((CCoonnttiinnuueedd)) 
WWee aarree ssuurree aa ccoorrrreecctt 
sseeqquueennccee iiss aapppplliieedd ttoo 
oouurr MMUUTT aanndd ccaann 
mmoorree eeaassiillyy cchheecckk ffoorr 
eexxppeecctteedd rreessuullttss..
55 
DDeessiiggnn VVeerriiffiiccaattiioonn 
 FFoorrmmaall vveerriiffiiccaattiioonn:: 
 AA wwaayy ooff aauuttoommaattiinngg ddeessiiggnn vveerriiffiiccaattiioonn bbyy eelliimmiinnaattiinngg tteessttbbeenncchheess 
aanndd pprroobblleemmss aassssoocciiaatteedd wwiitthh tthheeiirr ddaattaa ggeenneerraattiioonn aanndd rreessppoonnssee 
oobbsseerrvvaattiioonn.. 
 TToooollss ddoo nnoott ppeerrffoorrmm ssiimmuullaattiioonn,, bbuutt ccoommee uupp wwiitthh aa YYeess//NNoo 
aannsswweerr ffoorr eevveerryy pprrooppeerrttyy tthhee ddeessiiggnn iiss bbeeiinngg cchheecckkeedd ffoorr.. 
 EElliimmiinnaattiinngg ddaattaa ggeenneerraattiioonn aanndd rreessppoonnssee oobbsseerrvvaattiioonn 
 AAsssseerrttiioonn vveerriiffiiccaattiioonn:: 
 RReedduuccee oorr eelliimmiinnaattee eeffffoorrttss nneeeeddeedd ffoorr aannaallyyzziinngg oouuttppuutt rreessppoonnsseess 
 WWhhiillee tthhee ddeessiiggnn iiss bbeeiinngg ssiimmuullaatteedd wwiitthh iittss tteessttbbeenncchh ddaattaa,, 
aasssseerrttiioonn mmoonniittoorrss ccoonnttiinnuuoouussllyy cchheecckk ffoorr ccoorrrreecctt ddeessiiggnn bbeehhaavviioorr.. 
 IInn ccoonnddiittiioonnss tthhaatt tthhee ddeessiiggnn iiss mmiissbbeehhaavviinngg,, tthhee mmoonniittoorr iiss ssaaiidd ttoo 
ffiirree ttoo aalleerrtt tthhee ddeessiiggnneerr ooff tthhee pprroobblleemm..
56 
AAsssseerrttiioonn VVeerriiffiiccaattiioonn 
AAsssseerrttiioonn 
VVeerriiffiiccaattiioonn 
AAsssseerrttiioonn 
VVeerriiffiiccaattiioonn 
BBeenneeffiittss 
OOppeenn 
VVeerriiffiiccaattiioonn 
LLiibbrraarryy 
UUssiinngg 
AAsssseerrttiioonn 
MMoonniittoorrss 
AAsssseerrttiioonn 
TTeemmppllaatteess
57 
AAsssseerrttiioonn VVeerriiffiiccaattiioonn 
 UUnnlliikkee ssiimmuullaattiioonn,, hheerree iinn-ccooddee mmoonniittoorrss iissssuuee aa mmeessssaaggee iiff ssoommeetthhiinngg 
hhaappppeennss tthhaatt iiss nnoott eexxppeecctteedd.. 
 IInn VVeerriilloogg,, mmoonniittoorrss aarree mmoodduulleess.. 
 TThhee pprreesseenntt sseett ooff aasssseerrttiioonn mmoonniittoorrss aarree aavvaaiillaabbllee iinn aa lliibbrraarryy rreeffeerrrreedd 
ttoo aass OOVVLL ((OOppeenn VVeerriiffiiccaattiioonn LLiibbrraarryy)) 
 FFoorr uussiinngg aasssseerrttiioonnss ddeessiiggnneerr ccoommppiilleess OOVVLL aanndd hhiiss oorr hheerr oowwnn 
aasssseerrttiioonn lliibbrraarryy iinnttoo aa ssiimmuullaattiioonn lliibbrraarryy.. 
 IIff aa ssiiggnnaall ddooeess nnoott hhaavvee aa vvaalluuee eexxppeecctteedd bbyy aa mmoonniittoorr,, tthhee aasssseerrttiioonn 
mmoonniittoorr ddiissppllaayyss aa mmeessssaaggee aanndd tthhee ttiimmee tthhaatt tthhee vviioollaattiioonn ooff tthhee 
pprrooppeerrttyy hhaass ooccccuurrrreedd..
58 
AAsssseerrttiioonn VVeerriiffiiccaattiioonn BBeenneeffiittss 
AAsssseerrttiioonn 
VVeerriiffiiccaattiioonn 
AAsssseerrttiioonn 
VVeerriiffiiccaattiioonn 
BBeenneeffiittss 
OOppeenn 
VVeerriiffiiccaattiioonn 
LLiibbrraarryy 
UUssiinngg 
AAsssseerrttiioonn 
MMoonniittoorrss 
AAsssseerrttiioonn 
TTeemmppllaatteess 
Assertion 
Verification 
Benefits
59 
AAsssseerrttiioonn VVeerriiffiiccaattiioonn BBeenneeffiittss 
 WWaayyss iinn wwhhiicchh aasssseerrttiioonn mmoonniittoorrss aarree hheellppffuull:: 
 DDeessiiggnneerr DDiisscciipplliinnee:: WWiitthh ppllaacciinngg aann aasssseerrttiioonn iinn aa ddeessiiggnn,, aa 
ddeessiiggnneerr iiss ddiisscciipplliinniinngg hhiimm//hheerr-sseellff ttoo llooookk iinnttoo tthhee ddeessiiggnn mmoorree 
ccaarreeffuullllyy aanndd eexxttrraacctt pprrooppeerrttiieess.. 
 OObbsseerrvvaabbiilliittyy:: AAsssseerrttiioonnss aadddd mmoonniittoorriinngg ppooiinnttss ttoo aa ddeessiiggnn tthhaatt 
mmaakkee iitt mmoorree oobbsseerrvvaabbllee.. 
 FFoorrmmaall VVeerriiffiiccaattiioonn RReeaaddyy:: HHaavviinngg iinnsseerrtteedd aasssseerrttiioonn mmoonniittoorrss ttoo aa 
ddeessiiggnn,, rreeaaddiieess iitt ffoorr vveerriiffiiccaattiioonn bbyy aa ffoorrmmaall vveerriiffiiccaattiioonn ttooooll.. 
 EExxeeccuuttaabbllee CCoommmmeennttss:: AAsssseerrttiioonn mmoonniittoorrss ccaann bbee rreeggaarrddeedd aass 
ccoommmmeennttss tthhaatt eexxppllaaiinn ssoommee ffeeaattuurreess oorr bbeehhaavviioorr ooff aa ddeessiiggnn.. 
 SSeellff CCoonnttaaiinneedd DDeessiiggnnss:: AA ddeessiiggnn wwiitthh aasssseerrttiioonn mmoonniittoorrss hhaass tthhee 
ddeessiiggnn ddeessccrriippttiioonn aanndd iittss tteesstt pprroocceedduurree aallll iinn oonnee VVeerriilloogg mmoodduullee..
60 
OOppeenn VVeerriiffiiccaattiioonn LLiibbrraarryy 
AAsssseerrttiioonn 
VVeerriiffiiccaattiioonn 
AAsssseerrttiioonn 
VVeerriiffiiccaattiioonn 
BBeenneeffiittss 
Open 
Verification 
Library 
OOppeenn 
VVeerriiffiiccaattiioonn 
LLiibbrraarryy 
UUssiinngg 
AAsssseerrttiioonn 
MMoonniittoorrss 
AAsssseerrttiioonn 
TTeemmppllaatteess
61 
OOppeenn VVeerriiffiiccaattiioonn LLiibbrraarryy 
 AAsssseerrttiioonnss
AAnn AAsssseerrttiioonn iiss ppllaacceedd 
iinn ccooddee lliikkee aa mmoodduullee 
62 
OOppeenn VVeerriiffiiccaattiioonn LLiibbrraarryy 
AAsssseerrtt__nnaammee 
##((ssttaattiicc--ppaarraammeetteerrss)) 
iinnssttaannccee--nnaammee 
 AAsssseerrttiioonn MMoodduullee IInnssttaannttiiaattiioonn 
iinnssttaannttiiaattiioonn.. 
((ddyynnaammiicc--aarrgguummeennttss));; 
AAsssseerrttiioonn mmoodduullee nnaammee 
ccoommeess ffiirrsstt.. FFoolllloowweedd bbyy ssttaattiicc__ppaarraammeetteerrss 
lliikkee vveeccttoorr ssiizzee aanndd ooppttiioonnss 
RReeffeerreennccee aanndd mmoonniittoorr ssiiggnnaallss 
aanndd ootthheerr ddyynnaammiicc aarrgguummeennttss 
AAnnyy UUnniiqquuee nnaammee iiss 
aalllloowweedd
63 
UUssiinngg AAsssseerrttiioonn MMoonniittoorrss 
AAsssseerrttiioonn 
VVeerriiffiiccaattiioonn 
AAsssseerrttiioonn 
VVeerriiffiiccaattiioonn 
BBeenneeffiittss 
OOppeenn 
VVeerriiffiiccaattiioonn 
LLiibbrraarryy 
UUssiinngg 
AAsssseerrttiioonn 
MMoonniittoorrss 
AAsssseerrttiioonn 
TTeemmppllaatteess 
Using 
Assertion 
Monitors
64 
UUssiinngg AAsssseerrttiioonn MMoonniittoorrss 
AAsssseerrttiioonn 
MMoonniittoorrss 
aasssseerrtt__aallwwaayyss aasssseerrtt__cchhaannggee 
aasssseerrtt__oonnee__hhoott aasssseerrtt__ 
ccyyccllee__sseeqquueennccee 
aasssseerrtt__nneexxtt
65 
aasssseerrtt__aallwwaayyss 
AAsssseerrttiioonn 
MMoonniittoorrss 
assert_always 
aasssseerrtt__aallwwaayyss aasssseerrtt__cchhaannggee 
aasssseerrtt__oonnee__hhoott aasssseerrtt__ 
ccyyccllee__sseeqquueennccee 
aasssseerrtt__nneexxtt
66 
aasssseerrtt__aallwwaayyss 
aasssseerrtt__aallwwaayyss 
##(( sseevveerriittyy__lleevveell,, pprrooppeerrttyy__ttyyppee,, 
mmssgg,, ccoovveerraaggee__lleevveell )) 
iinnssttaannccee__nnaammee (( ccllkk,, rreesseett__nn,, tteesstt__eexxpprr )) 
 GGeenneerraall FFoorrmmaatt ffoorr aasssseerrtt__aallwwaayyss AAsssseerrttiioonn MMoonniittoorr 
CCoonnttiinnuuoouussllyy cchheecckkss 
iittss tteesstt__eexxpprr ttoo mmaakkee 
ssuurree iitt iiss aallwwaayyss 
ttrruuee oonn tthhee eeddggee ooff tthhee 
ssppeecciiffiieedd cclloocckk ((ccllkk)) 
IIff tthhee tteesstt eexxpprreessssiioonn ffaaiillss,, 
tthhee aasssseerrttiioonn ffiirreess aanndd iittss 
ccoorrrreessppoonnddiinngg mmeessssaaggee 
((mmssgg)) iiss ddiissppllaayyeedd
67 
mmoodduullee BBCCDD__CCoouunntteerr ((iinnppuutt rrsstt,, ccllkk,, 
oouuttppuutt rreegg [[33::00]] ccnntt));; 
aallwwaayyss @@((ppoosseeddggee ccllkk)) bbeeggiinn 
iiff ((rrsstt |||| ccnntt >>== 1100)) ccnntt == 00;; 
eellssee ccnntt == ccnntt ++ 11;; 
eenndd 
aasssseerrtt__aallwwaayyss ##((11,, 00,, ""EErrrr:: NNoonn BBCCDD CCoouunntt““,, 00)) 
AAAA11 ((ccllkk,, 11''bb11,, ((ccnntt >>== 00)) &&&& ((ccnntt <<== 99))));; 
eennddmmoodduullee 
aasssseerrtt__aallwwaayyss 
 BBCCDD wwiitthh aasssseerrtt__aallwwaayyss 
TThhiiss ccoouunntteerr ccoouunnttss 
bbeettwweeeenn 00 aanndd 99 
TThhee aasssseerrttiioonn mmoonniittoorr 
hheerree uusseess sseevveerriittyy__lleevveell 11 
TThhee tteesstt eexxpprreessssiioonn:: 
TThhee mmoonniittoorr cchheecckkss tthhaatt oonn 
eevveerryy rriissiinngg eeddggee ooff ccllkk,, ccnntt 
mmuusstt bbee bbeettwweeeenn 00 aanndd 99 
IInnddiiccaatteess tthhaatt tthhee aasssseerrttiioonn iiss 
ttoo bbee mmoonniittoorreedd aatt aallll ttiimmeess
68 
aasssseerrtt__aallwwaayyss 
mmoodduullee BBCCDD__CCoouunntteerr__TTeesstteerr;; 
rreegg rr,, cc;; 
wwiirree [[33::00]] ccoouunntt;; 
BBCCDD__CCoouunntteerr UUUUTT ((rr,, cc,, ccoouunntt));; 
iinniittiiaall bbeeggiinn 
rr == 00;; cc == 00;; 
eenndd 
iinniittiiaall rreeppeeaatt ((220000)) ##1177 cc== ~~cc;; 
iinniittiiaall rreeppeeaatt ((0033)) ##880077 rr== ~~rr;; 
eennddmmoodduullee 
 BBCCDD CCoouunntteerr TTeessttbbeenncchh 
EEvveenn tthhoouugghh cchheecckkiinngg 
ssiimmuullaattiioonn rreessuullttss iiss 
ddoonnee iinn aa sseemmii-aauuttoommaattiicc 
ffaasshhiioonn,, tteesstt ddaattaa 
ggeenneerraattiioonn iiss ssttiillll ddoonnee 
mmaannuuaallllyy bbyy tthhee ddeessiiggnneerr
69 
aasssseerrtt__cchhaannggee 
AAsssseerrttiioonn 
MMoonniittoorrss 
assert_change 
aasssseerrtt__aallwwaayyss aasssseerrtt__cchhaannggee 
aasssseerrtt__oonnee__hhoott aasssseerrtt__ 
ccyyccllee__sseeqquueennccee 
aasssseerrtt__nneexxtt
70 
aasssseerrtt__cchhaannggee 
aasssseerrtt__cchhaannggee 
VVeerriiffiieess tthhaatt wwiitthhiinn aa 
ggiivveenn nnuummbbeerr ooff cclloocckkss 
aafftteerr tthhee ssttaarrtt eevveenntt,, tthhee 
tteesstt eexxpprreessssiioonn cchhaannggeess.. 
##(( sseevveerriittyy__lleevveell,, wwiiddtthh,, nnuumm__cckkss,, 
aaccttiioonn__oonn__nneeww__ssttaarrtt,, pprrooppeerrttyy__ttyyppee,, 
mmssgg,, ccoovveerraaggee__lleevveell )) 
iinnssttaannccee__nnaammee (( ccllkk,, rreesseett__nn,, ssttaarrtt__eevveenntt,, 
tteesstt__eexxpprr )) 
 GGeenneerraall FFoorrmmaatt ffoorr aasssseerrtt__cchhaannggee AAsssseerrttiioonn MMoonniittoorr
71 
mmoodduullee WWaallkkiinngg__OOnnee ((iinnppuutt rrsstt,, ccllkk,, oouuttppuutt rreegg [[77::00]] wwoo));; 
aallwwaayyss @@((nneeggeeddggee ccllkk)) bbeeggiinn 
iiff ((rrsstt)) wwoo <<== 88''bb1100000000000000;; 
eellssee wwoo <<== {{wwoo[[00]],, wwoo[[77::11]]}};; 
eenndd 
aasssseerrtt__cchhaannggee ##((11,, 11,, 77,, 00,, 00,, ""EErrrr:: BBiitt 00 iiss nnoott 
cchhaannggiinngg““,, 00)) 
AACC11 ((~~ccllkk,, ~~rrsstt,, ((rrsstt====00)),, wwoo[[00]]));; 
aasssseerrtt__oonnee__hhoott ##((11,, 88,, 00,, ""EErrrr:: MMuullttiippllee aaccttiivvee bbiittss““,, 
00)) 
AAOOHH ((~~ccllkk,, ~~rrsstt,, wwoo));; 
eennddmmoodduullee 
aasssseerrtt__cchhaannggee 
 WWaallkkiinngg OOnnee CCiirrccuuiitt wwiitthh AAsssseerrttiioonnss 
AA sshhiifftt rreeggiisstteerr tthhaatt wwaallkkss 
aa 11 wwiitthh eevveerryy cclloocckk.. 
AA 11 iiss llooaaddeedd iinnttoo tthhee lleefftt-mmoosstt 
bbiitt ooff wwoo wwiitthh tthhee rrsstt ssiiggnnaall
72 
........................................................ 
........................................................ 
aallwwaayyss @@((nneeggeeddggee ccllkk)) bbeeggiinn 
CChheecckk tthhaatt ffrroomm tthhee ttiimmee tthhaatt 
((rrsstt ==== 00)) aanndd wwhhiillee ((~~rrsstt)),, iitt 
ttaakkeess aatt mmoosstt 77 nneeggaattiivvee cclloocckk 
eeddggeess ffoorr wwoo[[00]] ttoo cchhaannggee.. 
iiff ((rrsstt)) wwoo <<== 88''bb1100000000000000;; 
eellssee wwoo <<== {{wwoo[[00]],, wwoo[[77::11]]}};; 
eenndd 
11 ffoorr tthhee lleennggtthh ooff tthhee 
tteesstt eexxpprreessssiioonn 
aasssseerrtt__cchhaannggee ##((11,, 11,, 77,, 00,, 00,, ""EErrrr:: BBiitt 00 iiss nnoott 
cchhaannggiinngg““,, 00)) 
AACC11 ((~~ccllkk,, ~~rrsstt,, ((rrsstt====00)),, wwoo[[00]]));; 
........................................................ 
 WWaallkkiinngg OOnnee CCiirrccuuiitt wwiitthh AAsssseerrttiioonnss 
77 ffoorr tthhee nnuummbbeerr ooff cclloocckkss 
tthhaatt cchhaannggee iiss ttoo ooccccuurr 
FFaalllliinngg eeddggee ooff ccllkk TTeesstt EExxpprreessssiioonn
73 
aasssseerrtt__cchhaannggee 
mmoodduullee WWaallkkiinngg__OOnnee__TTeesstteerr (());; 
rreegg rrsstt==00,, ccllkk==00;; 
wwiirree [[77::00]] wwaallkkiinngg;; 
WWaallkkiinngg__OOnnee MMUUTT ((rrsstt,, ccllkk,, wwaallkkiinngg));; 
iinniittiiaall rreeppeeaatt ((222233)) ##77 ccllkk== ~~ccllkk;; 
iinniittiiaall rreeppeeaatt ((1155)) ##110099 rrsstt== ~~rrsstt;; 
eennddmmoodduullee 
 WWaallkkiinngg__OOnnee TTeessttbbeenncchh 
IItt iiss tthhee rreessppoonnssiibbiilliittyy ooff 
tthhee tteessttbbeenncchh ddeevveellooppeerr ttoo 
mmaakkee ssuurree eennoouugghh ddaattaa iiss 
aapppplliieedd ttoo ccaauussee ddeessiiggnn 
eerrrroorrss ttoo ttrriiggggeerr aasssseerrttiioonn 
mmoonniittoorrss..
74 
aasssseerrtt__cchhaannggee 
WWhheenn rrsstt bbeeccoommeess 11,, 
tthhee ffaalllliinngg eeddggee ooff tthhee 
cclloocckk ppuuttss aa 11 iinnttoo wwoo[[77]] 
SSiiggnnaallss ccoonnnneecctteedd ttoo 
wwoo[[77]] ttoo wwoo[[00]] 
 WWaallkkiinngg-OOnnee TTeesstt RReessuullttss 
WWhheenn rrsstt bbeeccoommeess 00,, tthhiiss 
11 ssttaarrttss wwaallkkiinngg,, iitt ttaakkeess 77 
cclloocckk eeddggeess ffoorr tthhiiss 11 ttoo 
wwaallkk ttoo bbiitt 00 ooff wwoo..
75 
aasssseerrtt__oonnee__hhoott 
AAsssseerrttiioonn 
MMoonniittoorrss 
aasssseerrtt__aallwwaayyss aasssseerrtt__cchhaannggee 
aasssseerrtt__oonnee__hhoott aasssseerrtt__ 
ccyyccllee__sseeqquueennccee 
assert_one_hot 
aasssseerrtt__nneexxtt
76 
aasssseerrtt__oonnee__hhoott 
aasssseerrtt__oonnee__hhoott 
##(( sseevveerriittyy__lleevveell,, wwiiddtthh,, pprrooppeerrttyy__ttyyppee,, 
mmssgg,, ccoovveerraaggee__lleevveell )) 
iinnssttaannccee__nnaammee (( ccllkk,, rreesseett__nn,, tteesstt__eexxpprr )) 
 GGeenneerraall FFoorrmmaatt ffoorr aasssseerrtt__oonnee__hhoott AAsssseerrttiioonn MMoonniittoorr 
CChheecckkss tthhaatt wwhhiillee tthhee 
mmoonniittoorr iiss aaccttiivvee,, oonnllyy 
oonnee bbiitt ooff iittss nn-bbiitt tteesstt 
eexxpprreessssiioonn iiss 11..
77 
mmoodduullee WWaallkkiinngg__OOnnee ((iinnppuutt rrsstt,, ccllkk,, oouuttppuutt rreegg [[77::00]] wwoo));; 
aallwwaayyss @@((nneeggeeddggee ccllkk)) bbeeggiinn 
iiff ((rrsstt)) wwoo <<== 88''bb1100000000000000;; 
eellssee wwoo <<== {{wwoo[[00]],, wwoo[[77::11]]}};; 
eenndd 
aasssseerrtt__cchhaannggee ##((11,, 11,, 77,, 00,, 00,, ""EErrrr:: BBiitt 00 iiss nnoott 
cchhaannggiinngg““,, 00)) 
AACC11 ((~~ccllkk,, ~~rrsstt,, ((rrsstt====00)),, wwoo[[00]]));; 
aasssseerrtt__oonnee__hhoott ##((11,, 88,, 00,, ""EErrrr:: MMuullttiippllee aaccttiivvee bbiittss““,, 
00)) 
AAOOHH ((~~ccllkk,, ~~rrsstt,, wwoo));; 
eennddmmoodduullee 
aasssseerrtt__oonnee__hhoott 
 WWaallkkiinngg OOnnee CCiirrccuuiitt wwiitthh AAsssseerrttiioonnss
78 
aasssseerrtt__oonnee__hhoott 
........................................................ 
........................................................ 
aallwwaayyss @@((nneeggeeddggee ccllkk)) bbeeggiinn 
iiff ((rrsstt)) wwoo <<== 88''bb1100000000000000;; 
eellssee wwoo <<== {{wwoo[[00]],, wwoo[[77::11]]}};; 
eenndd 
TTeesstt eexxpprreessssiioonn wwiiddtthh 
........................................................ 
aasssseerrtt__oonnee__hhoott ##((11,, 88,, 00,, ""EErrrr:: MMuullttiippllee aaccttiivvee 
bbiittss““,, 00)) 
AAOOHH ((~~ccllkk,, ~~rrsstt,, wwoo));; 
 WWaallkkiinngg OOnnee CCiirrccuuiitt wwiitthh AAsssseerrttiioonnss 
TTeesstt eexxpprreessssiioonn 
MMaakkeess tthhee cchheecckkiinngg 
aaccttiivvee oonnllyy wwhheenn rrsstt iiss 00
79 
aasssseerrtt__oonnee__hhoott 
mmoodduullee ggrraayy__ccoouunntteerr ((iinnppuutt [[33::00]] dd__iinn,, iinnppuutt ccllkk,, 
rrsstt,, lldd,, oouuttppuutt rreegg [[33::00]] qq));; 
rreegg [[33::00]] mmeemm[[00::1155]];; 
rreegg [[33::00]] iimm__qq;; 
iinniittiiaall $$rreeaaddmmeemmbb((""mmeemm..ddaatt"",, mmeemm));; 
aallwwaayyss @@(( dd__iinn oorr lldd oorr qq )) bbeeggiinn:: ccoommbbiinnaattiioonnaall 
iiff(( lldd )) 
iimm__qq == dd__iinn;; 
eellssee 
iimm__qq == mmeemm[[qq]];; eenndd 
........................................................ 
 GGrraayy CCooddee CCoouunntteerr 
TThhee mmeemm..ddaatt ffiillee tthhaatt 
ccoonnttaaiinnss ccoonnsseeccuuttiivvee 
GGrraayy ccooddee nnuummbbeerrss iiss 
rreeaadd iinnttoo mmeemm.. 
WWiitthh eeaacchh cclloocckk,, tthhee nneexxtt 
GGrraayy ccoouunntt iiss llooookkeedd uupp 
ffrroomm mmeemm..
80 
aasssseerrtt__oonnee__hhoott 
........................................................ 
aallwwaayyss @@(( ppoosseeddggee ccllkk )) bbeeggiinn:: rreeggiisstteerr 
iiff(( rrsstt )) 
qq <<== 44''bb00000000;; 
eellssee 
qq <<== iimm__qq;; 
eenndd 
rreegg [[33::00]] oolldd;; aallwwaayyss @@((ppoosseeddggee ccllkk)) oolldd <<== qq;; 
aasssseerrtt__oonnee__hhoott ##((11,, 44,, 00,, ""EErrrr:: NNoott GGrraayy““,, 00)) 
AAOOHH ((~~ccllkk,, ~~rrsstt,, ((oolldd ^^ qq))));; 
eennddmmoodduullee 
 GGrraayy CCooddee CCoouunntteerr ((CCoonnttiinnuueedd)) 
IInn oorrddeerr ttoo cchheecckk ffoorr tthhee 
ccoorrrreecctt GGrraayy ccooddee sseeqquueenncciinngg,, 
ssoommee aauuxxiilliiaarryy llooggiicc hhaavvee bbeeeenn 
uusseedd ttoo pprreeppaarree tthhee tteesstt eexxpprreessssiioonn 
CCoonnsseeccuuttiivvee GGrraayy ccooddee 
nnuummbbeerrss aarree oonnllyy 
ddiiffffeerreenntt iinn oonnee bbiitt,, tthheeiirr 
XXOORR mmuusstt bbee oonnee-hhoott..
81 
aasssseerrtt__ccyyccllee__sseeqquueennccee 
AAsssseerrttiioonn 
MMoonniittoorrss 
aasssseerrtt__aallwwaayyss aasssseerrtt__cchhaannggee 
aasssseerrtt__oonnee__hhoott aasssseerrtt__ 
ccyyccllee__sseeqquueennccee 
aasssseerrtt__nneexxtt 
assert_ 
cycle_sequence
CChheecckkss ffoorr aa sseeqquueennccee ooff 
eevveennttss iinn aa ggiivveenn nnuummbbeerr 
ooff cclloocckkss.. 
iinnssttaannccee__nnaammee (( ccllkk,, rreesseett__nn,, eevveenntt__sseeqquueennccee)) 
LLiikkee ootthheerr aasssseerrttiioonn mmoonniittoorrss,, tthhiiss 
mmoonniittoorr hhaass aann eennaabblliinngg iinnppuutt tthhaatt 
iiss uussuuaallllyy ddrriivveenn bbyy tthhee iinnaaccttiivvee lleevveell 
82 
aasssseerrtt__ccyyccllee__sseeqquueennccee 
aasssseerrtt__ccyyccllee__sseeqquueennccee 
##(( sseevveerriittyy__lleevveell,, nnuumm__cckkss,, 
nneecceessssaarryy__ccoonnddiittiioonn,, 
pprrooppeerrttyy__ttyyppee,, 
mmssgg,, ccoovveerraaggee__lleevveell )) 
 GGeenneerraall FFoorrmmaatt ffoorr aasssseerrtt__ccyyccllee__sseeqquueennccee AAsssseerrttiioonn MMoonniittoorr 
ooff aa cciirrccuuiitt’’ss rreesseett iinnppuutt..
83 
aasssseerrtt__ccyyccllee__sseeqquueennccee 
 AA SSeeqquueenncciinngg SSttaattee MMaacchhiinnee 
AAfftteerr tthhee rreesseett ssttaattee,, 
tthhee mmaacchhiinnee sseeaarrcchheess ffoorr 
111100 sseeqquueennccee.. 
WWhheenn 111100 iiss 
rreecceeiivveedd tthhee nneexxtt 
22 cclloocckk ccyycclleess 
ttaakkee tthhee mmaacchhiinnee 
bbaacckk ttoo ssttaattee aa
84 
aasssseerrtt__ccyyccllee__sseeqquueennccee 
mmoodduullee SSeeqquueenncciinngg__MMaacchhiinnee ((iinnppuutt xx,, ssttaarrtt,, rrsstt,, ccllkk,, 
oouuttppuutt zz ));; 
ppaarraammeetteerr aa==00,, bb==11,, cc==22,, dd==33,, ee==44;; 
rreegg [[22::00]] ccuurrrreenntt;; 
........................................................ 
........................................................ 
 VVeerriilloogg CCooddee ooff SSeeqquueenncciinngg__MMaacchhiinnee
85 
aasssseerrtt__ccyyccllee__sseeqquueennccee 
........................................................ 
aallwwaayyss @@(( ppoosseeddggee ccllkk )) 
iiff (( rrsstt )) ccuurrrreenntt <<== aa;; 
eellssee iiff (( ~~ssttaarrtt )) ccuurrrreenntt <<== aa;; 
eellssee ccaassee (( ccuurrrreenntt )) 
aa :: ccuurrrreenntt <<== xx ?? bb :: aa ;; 
bb :: ccuurrrreenntt <<== xx ?? cc :: aa ;; 
cc :: ccuurrrreenntt <<== xx ?? cc :: dd ;; 
dd :: ccuurrrreenntt <<== ee ;; 
ee :: ccuurrrreenntt <<== aa ;; 
ddeeffaauulltt:: ccuurrrreenntt <<== aa;; 
eennddccaassee 
 VVeerriilloogg CCooddee ooff SSeeqquueenncciinngg__MMaacchhiinnee ((CCoonnttiinnuueedd))
TThhiiss mmoonniittoorr iiss sseettuupp 
ttoo cchheecckk iiff tthhee mmaacchhiinnee 
rreeaacchheess ssttaatteess dd aanndd tthheenn 
ssttaattee ee,, tthheenn tthhee nneexxtt 
cclloocckk wwiillll mmoovvee tthhee 
86 
aasssseerrtt__ccyyccllee__sseeqquueennccee 
FFoorr cchheecckkiinngg tthhaatt tthhee llaasstt ssttaattee 
ooff tthhee sseeqquueennccee iiss rreeaacchheedd iiff 
tthhee pprreevviioouuss ssttaatteess aarree rreeaacchheedd 
iinn tthhee ssppeecciiffiieedd sseeqquueennccee.. 
........................................................ 
aassssiiggnn zz == ((ccuurrrreenntt====ee));; 
aasssseerrtt__ccyyccllee__sseeqquueennccee 
NNuummbbeerr ooff ssttaatteess iinn sseeqquueennccee mmaacchhiinnee iinnttoo ssttaattee aa.. 
##((11,, 33,, 00,, 00,, ""EErrrr:: SSttaattee sseeqquueennccee nnoott 
ffoolllloowweedd““,, 00)) 
AACCSS ((ccllkk,, ~~rrsstt,, {{((ccuurrrreenntt====dd)),, 
((ccuurrrreenntt====ee)),, ((ccuurrrreenntt====aa))}}));; 
aasssseerrtt__nneexxtt ##((11,, 22,, 11,, 00,, 00,, ""EErrrr:: OOuuttppuutt ssttaattee 
TThhee sseeqquueennccee ooff ssttaatteess ttoo vveerriiffyy 
nnoott rreeaacchheedd““,, 00)) 
AANN11 ((ccllkk,, ~~rrsstt,, ((ccuurrrreenntt====cc &&&& xx====00)),, 
((zz====11))));; 
eennddmmoodduullee 
 VVeerriilloogg CCooddee ooff SSeeqquueenncciinngg__MMaacchhiinnee ((CCoonnttiinnuueedd))
87 
aasssseerrtt__ccyyccllee__sseeqquueennccee 
 SSeeqquueenncciinngg__MMaacchhiinnee SSttaattee TTrraannssiittiioonnss 
IIff tthhee mmaacchhiinnee eenntteerrss ssttaattee 
44 ((ee )),, tthheenn ssttaattee 00 ((aa )) iiss 
eenntteerreedd..
88 
aasssseerrtt__nneexxtt 
AAsssseerrttiioonn 
MMoonniittoorrss 
aasssseerrtt__aallwwaayyss aasssseerrtt__cchhaannggee 
aasssseerrtt__oonnee__hhoott aasssseerrtt__ 
ccyyccllee__sseeqquueennccee 
aaasssssseeerrrttt___nnneeexxxttt
89 
aasssseerrtt__nneexxtt 
aasssseerrtt__nneexxtt 
##(( sseevveerriittyy__lleevveell,, nnuumm__cckkss,, 
cchheecckk__oovveerrllaappppiinngg,, 
cchheecckk__mmiissssiinngg__ssttaarrtt,, pprrooppeerrttyy__ttyyppee,, 
mmssgg,, ccoovveerraaggee__lleevveell )) 
iinnssttaannccee__nnaammee (( ccllkk,, rreesseett__nn,, ssttaarrtt__eevveenntt,, 
tteesstt__eexxpprr)) 
 GGeenneerraall FFoorrmmaatt ffoorr aasssseerrtt__nneexxtt AAsssseerrttiioonn MMoonniittoorr 
VVeerriiffiieess tthhaatt ssttaarrttiinngg aanndd 
aann eennddiinngg eevveennttss ooccccuurr 
wwiitthh aa ssppeecciiffiieedd nnuummbbeerr 
ooff cclloocckkss iinn bbeettwweeeenn..
VVeerriiffyyiinngg tthhaatt tthheerree aarree 
ttwwoo cclloocckk ccyycclleess bbeettwweeeenn 
tthhee ttiimmee tthhaatt ccuurrrreenntt 
bbeeccoommeess cc wwhhiillee xx iiss 00,, 
aanndd tthhee ttiimmee tthhaatt zz 
90 
........................................................ 
aassssiiggnn zz == ((ccuurrrreenntt====ee));; 
aasssseerrtt__ccyyccllee__sseeqquueennccee 
##((11,, 33,, 00,, 00,, ""EErrrr:: SSttaattee sseeqquueennccee nnoott 
ffoolllloowweedd““,, 00)) 
NNuummbbeerr ooff cclloocckk 
ccyycclleess bbeettwweeeenn tthhee eevveennttss 
AACCSS ((ccllkk,, ~~rrsstt,, {{((ccuurrrreenntt====dd)),, 
((ccuurrrreenntt====ee)),, ((ccuurrrreenntt====aa))}}));; 
aasssseerrtt__nneexxtt ##((11,, 22,, 11,, 00,, 00,, ""EErrrr:: OOuuttppuutt ssttaattee 
nnoott rreeaacchheedd““,, 00)) 
AANN11 ((ccllkk,, ~~rrsstt,, ((ccuurrrreenntt====cc &&&& xx====00)),, 
((zz====11))));; 
eennddmmoodduullee 
aasssseerrtt__nneexxtt 
 VVeerriilloogg CCooddee ooff SSeeqquueenncciinngg__MMaacchhiinnee ((CCoonnttiinnuueedd)) 
bbeeccoommeess 11.. 
SSttaarrtt EExxpprreessssiioonn 
TTeesstt EExxpprreessssiioonn
91 
AAsssseerrttiioonn TTeemmppllaatteess 
AAsssseerrttiioonn 
VVeerriiffiiccaattiioonn 
AAsssseerrttiioonn 
VVeerriiffiiccaattiioonn 
BBeenneeffiittss 
OOppeenn 
VVeerriiffiiccaattiioonn 
LLiibbrraarryy 
UUssiinngg 
AAsssseerrttiioonn 
MMoonniittoorrss 
Assertion 
Templates 
AAsssseerrttiioonn 
TTeemmppllaatteess
92 
AAsssseerrttiioonn TTeemmppllaatteess 
 HHaarrddwwaarree ffeeaattuurreess ddeessiiggnneerrss mmaayy nneeeedd ttoo vveerriiffyy,, aanndd hhooww aasssseerrttiioonnss 
ccaann bbee uusseedd ffoorr tthheeiirr vveerriiffiiccaattiioonn
93 
AAsssseerrttiioonn TTeemmppllaatteess 
AAsssseerrttiioonn 
TTeemmppllaatteess 
RReesseett 
SSeeqquueennccee 
IInniittiiaall 
RReesseettttiinngg 
IImmpplliiccaattiioonn VVaalliidd SSttaatteess
94 
RReesseett SSeeqquueennccee 
AAsssseerrttiioonn 
TTeemmppllaatteess 
Reset 
Sequence 
RReesseett 
SSeeqquueennccee 
IInniittiiaall 
RReesseettttiinngg 
IImmpplliiccaattiioonn VVaalliidd SSttaatteess
95 
RReesseett SSeeqquueennccee 
mmoodduullee SSeeqquueenncciinngg__MMaacchhiinnee ((iinnppuutt xx,, ssttaarrtt,, rrsstt,, ccllkk,, 
oouuttppuutt zz ));; 
ppaarraammeetteerr aa==00,, bb==11,, cc==22,, dd==33,, ee==44;; 
//// .. .. .. 
aasssseerrtt__ccyyccllee__sseeqquueennccee 
##((11,, 44,, 00,, 00,, ""EErrrr::RReesseettttiinngg ddooeess nnoott ooccccuurr"")) 
AACCSS22 ((ccllkk,, ~~rrsstt,, {{((xx====00)),, ((xx====00)),, ((xx====00)),, 
((ccuurrrreenntt====aa))}}));; 
//// .. .. .. 
eennddmmoodduullee 
 AAsssseerrttiioonn RReesseett SSeeqquueennccee 
OOfftteenn ccoonnttrroolllleerrss hhaavvee aa 
rreesseettttiinngg sseeqquueennccee tthhaatt 
wwiitthh cceerrttaaiinn sseeqquueennccee ooff 
iinnppuuttss,, tthhee mmaacchhiinnee eennddss 
ooff wwhhaatt ssttaattee iitt iiss iinn.. 
VVeerriiffiieess tthhaatt iiff iinn tthhrreeee 
ccoonnsseeccuuttiivvee cclloocckkss,, xx iiss 00,, 
iinn tthhee ffoouurrtthh cclloocckk tthhee 
ccuurrrreenntt ssttaattee ooff tthhee 
mmaacchhiinnee bbeeccoommeess aa..
96 
IInniittiiaall RReesseettttiinngg 
AAsssseerrttiioonn 
TTeemmppllaatteess 
RReesseett 
SSeeqquueennccee 
Initial 
Resetting 
IInniittiiaall 
RReesseettttiinngg 
IImmpplliiccaattiioonn VVaalliidd SSttaatteess
97 
IInniittiiaall RReesseettttiinngg 
mmoodduullee mmeeaallyy__ddeetteeccttoorr ((iinnppuutt xx,, rrsstt,, ccllkk,, oouuttppuutt zz));; 
llooccaallppaarraamm [[11::00]] 
rreesseett == 00,, //// 00 == 00 00 
ggoott11 == 11,, //// 11 == 00 11 
ggoott1100 == 22;; //// 22 == 11 00 
rreegg [[11::00]] ccuurrrreenntt;; 
........................................................ 
........................................................ 
........................................................ 
eennddmmoodduullee 
 HHaarrdd--RReesseett AAsssseerrttiioonn 
FFoorr vveerriiffiiccaattiioonn ooff mmaannyy 
sseeqquueennttiiaall cciirrccuuiittss bbeeccoommeess 
nneecceessssaarryy ttoo cchheecckk ffoorr rreesseettttiinngg tthhee 
cciirrccuuiitt uussiinngg aa ssyynncchhrroonnoouuss oorr 
aassyynncchhrroonnoouuss rreesseett iinnppuutt.. 
AA MMeeaallyy MMaacchhiinnee
98 
IInniittiiaall RReesseettttiinngg 
........................................................ 
aallwwaayyss @@(( ppoosseeddggee ccllkk )) bbeeggiinn 
iiff ((rrsstt)) ccuurrrreenntt <<== rreesseett;; 
eellssee ccaassee (( ccuurrrreenntt )) 
rreesseett:: iiff(( xx====11’’bb11 )) ccuurrrreenntt <<== ggoott11;; 
eellssee ccuurrrreenntt <<== rreesseett;; 
ggoott11:: iiff(( xx====11’’bb00 )) ccuurrrreenntt <<== ggoott1100;; 
eellssee ccuurrrreenntt <<== ggoott11;; 
ggoott1100:: iiff(( xx====11’’bb11 )) ccuurrrreenntt <<== ggoott11;; 
eellssee ccuurrrreenntt <<== rreesseett;; 
ddeeffaauulltt:: ccuurrrreenntt <<== rreesseett;; 
eennddccaassee eenndd 
 HHaarrdd--RReesseett AAsssseerrttiioonn ((CCoonnttiinnuueedd))
99 
IInniittiiaall RReesseettttiinngg 
........................................................ 
........................................................ 
aassssiiggnn zz == (( ccuurrrreenntt====ggoott1100 &&&& xx====11’’bb11 )) ?? 11’’bb11 :: 
11’’bb00;; 
aasssseerrtt__nneexxtt 
##((11,, 11,, 11,, 00,, 00,, ““EErrrr:: MMaacchhiinnee ddooeess nnoott 
rreesseett pprrooppeerrllyy””,, 00)) 
AANN11 ((ccllkk,, 11’’bb11,, rrsstt,, ((ccuurrrreenntt====rreesseett))));; 
eennddmmoodduullee 
 HHaarrdd--RReesseett AAsssseerrttiioonn ((CCoonnttiinnuueedd)) 
AAsssseerrttiioonn MMoonniittoorr iiss 
aallwwaayyss aaccttiivvee.. 
CChheecckkss iiff rrsstt iiss 11 
tthheenn tthhee nneexxtt ccuurrrreenntt 
ssttaattee bbeeccoommeess rreesseett
100 
IImmpplliiccaattiioonn 
AAsssseerrttiioonn 
TTeemmppllaatteess 
RReesseett 
SSeeqquueennccee 
IInniittiiaall 
RReesseettttiinngg 
IImmpplliiccaattiioonn VVaalliidd SSttaatteess 
Implication
CChheecckkss oonn tthhee ssppeecciiffiieedd 
cclloocckk eeddggee ffoorr tthhee aanntteecceeddeenntt 
eexxpprreessssiioonn ttoo bbee ttrruuee.. IIff iitt iiss,, 
ccoonnsseeqquueennccee eexxpprreessssiioonn ttoo bbee 
ttrruuee.. IIff ssoo,, iitt wwiillll ssttaayy qquuiieett,, 
101 
IImmpplliiccaattiioonn 
aasssseerrtt__iimmpplliiccaattiioonn 
AA tthheenn uusseeffuull iitt cchheecckkss aasssseerrttiioonn ffoorr tthhee 
ffoorr 
cchheecckkiinngg eexxppeecctteedd 
eevveennttss,, oorr eevveennttss 
iimmpplliieedd bbyy ootthheerr eevveennttss 
ootthheerrwwiissee iitt wwiillll ffiirree.. 
##(( sseevveerriittyy__lleevveell,, pprrooppeerreettyy__ttyyppee,, 
mmssgg,, ccoovveerraaggee__lleevveell )) 
iinnssttaannccee__nnaammee (( ccllkk,, rreesseett__nn,, 
aanntteecceeddeenntt__eexxpprr,, 
ccoonnsseeqquueennccee__eexxpprr )) 
 GGeenneerraall FFoorrmmaatt ffoorr aasssseerrtt__iimmpplliiccaattiioonn AAsssseerrttiioonn MMoonniittoorr
102 
IImmpplliiccaattiioonn 
CChheecckkss tthhee oouuttppuutt vvaalluuee iinn tthhee 
ggoott1100 ssttaattee wwhhiillee xx iiss 11 
mmoodduullee mmeeaallyy__ddeetteeccttoorr22 ((iinnppuutt xx,, rrsstt,, ccllkk,, oouuttppuutt zz));; 
//// .. .. .. 
aasssseerrtt__iimmpplliiccaattiioonn 
##((11,, 00,, ““EErrrr:: OOuuttppuutt nnoott aasssseerrtteedd””,, 00)) 
AAII11 ((ccllkk,, 11’’bb11,, ((ccuurrrreenntt====ggoott1100 &&&& xx)),, 
((zz====11))));; 
//// .. .. .. 
eennddmmoodduullee 
 AAsssseerrttiinngg IImmpplliiccaattiioonn 
AAllwwaayyss AAccttiivvee
103 
VVaalliidd SSttaatteess 
AAsssseerrttiioonn 
TTeemmppllaatteess 
RReesseett 
SSeeqquueennccee 
IInniittiiaall 
RReesseettttiinngg 
IImmpplliiccaattiioonn VVVaaallliiiddd SSStttaaattteeesss
IInn tthhee sseeqquueennttiiaall cciirrccuuiitt tteessttiinngg iitt 
oofftteenn bbeeccoommeess nneecceessssaarryy ttoo cchheecckk 
ffoorr tthhee mmaacchhiinnee’’ss vvaalliidd ssttaatteess aanndd 
iissssuuee aa wwaarrnniinngg iiff tthhee mmaacchhiinnee 
104 
VVaalliidd SSttaatteess 
IIff tthhee ssttaatteess ooff tthhee mmaacchhiinnee 
bbeeiinngg tteesstteedd aarree ccoonnsseeccuuttiivvee 
bbiinnaarryy nnuummbbeerrss 
aasssseerrtt__nnoo__oovveerrffllooww 
eenntteerrss aann iinnvvaalliidd ssttaattee.. 
##(( sseevveerriittyy__lleevveell,, wwiiddtthh,, mmiinn,, mmaaxx,, 
pprrooppeerrttyy__ttyyppee,, 
mmssgg,, ccoovveerraaggee__lleevveell )) 
iinnssttaannccee__nnaammee (( ccllkk,, rreesseett__nn,, tteesstt__eexxpprr )) 
 GGeenneerraall FFoorrmmaatt ffoorr aasssseerrtt__nnoo__oovveerrffllooww AAsssseerrttiioonn MMoonniittoorr
105 
VVaalliidd SSttaatteess 
OOff tthhee ffoouurr ppoossssiibbllee ssttaatteess,, 
iitt iiss uussiinngg oonnllyy tthhrreeee:: 
rreesseett,, ggoott11,, ggoott1100.. 
TThhee rraannggee ooff vvaalluueess tthhee tteesstt 
eexxpprreessssiioonn ccaann ttaakkee.. 
mmoodduullee mmeeaallyy__ddeetteeccttoorr22 ((iinnppuutt xx,, rrsstt,, ccllkk,, oouuttppuutt zz));; 
((MMiinn aanndd MMaaxx)) 
//// .. .. .. 
aasssseerrtt__nnoo__oovveerrffllooww ##((11,, 22,, 00,, 22,, 00,, ““EErrrr:: IInnvvaalliidd 
ssttaattee””,, 00)) 
AANNVV11 ((ccllkk,, 11’’bb11,, ccuurrrreenntt));; 
//// .. .. .. 
eennddmmoodduullee 
 CChheecckkiinngg ffoorr IInnvvaalliidd SSttaatteess 
TThhee aasssseerrttiioonn ffiirreess,, iiff tthhee 
MMeeaallyy mmaacchhiinnee eevveerr 
eenntteerrss,, tthhee mmaacchhiinnee’’ss 
iinnvvaalliidd ssttaattee.. 
TThhee ssiizzee ooff vveeccttoorr bbeeiinngg tteesstteedd
106 
TTeexxtt BBaasseedd TTeessttbbeenncchheess 
 VVeerriilloogg hhaass aann eexxtteennssiivvee sseett ooff ttaasskkss ffoorr rreeaaddiinngg aanndd wwrriittiinngg eexxtteerrnnaall 
ffiilleess:: 
 OOppeenniinngg aanndd cclloossiinngg ffiilleess,, 
 PPoossiittiioonniinngg aa ppooiinntteerr iinn aa ffiillee,, 
 WWrriittiinngg oorr aappppeennddiinngg aa ffiillee 
 RReeaaddiinngg ffiilleess
107 
SSuummmmaarryy 
 TThhiiss cchhaapptteerr ddiissccuusssseedd:: 
 TThhee uussee ooff VVeerriilloogg ccoonnssttrruuccttss ffoorr ddeevveellooppiinngg tteessttbbeenncchheess 
 DDaattaa ggeenneerraattiioonn aanndd rreessppoonnssee aannaallyyssiiss bbyy uussee ooff VVeerriilloogg 
 HHooww aasssseerrttiioonn mmoonniittoorrss ccoouulldd bbee uusseedd ffoorr rreedduucciinngg eeffffoorrttss nneeeeddeedd 
ffoorr rreessppoonnssee aannaallyyssiiss ooff aa uunniitt--uunnddeerr--tteesstt.. 
 DDeevveellooppiinngg ggoooodd tteessttbbeenncchheess ffoorr ccoommpplleexx ddeessiiggnnss rreeqquuiirreess ddeessiiggnn 
oobbsseerrvvaabbiilliittyy ggiivveenn ttoo ddeessiiggnneerrss bbyy uussee ooff aasssseerrttiioonnss..

More Related Content

What's hot

Mathematical modelling
Mathematical modellingMathematical modelling
Mathematical modellingNandiniNandus
 
21 High-quality programming code construction part-ii
21 High-quality programming code construction part-ii21 High-quality programming code construction part-ii
21 High-quality programming code construction part-iimaznabili
 
Dielectrics lect28
Dielectrics lect28Dielectrics lect28
Dielectrics lect28Joao Tan
 
Command Channel Slides Week Between Sept. 26 to Oct. 2
Command Channel Slides Week Between Sept. 26 to Oct. 2Command Channel Slides Week Between Sept. 26 to Oct. 2
Command Channel Slides Week Between Sept. 26 to Oct. 2U.S. Army Garrison Japan
 
GastritisZaydoon
GastritisZaydoonGastritisZaydoon
GastritisZaydoonZay Doon
 
The anatomy of a dollar bill
The anatomy of a dollar billThe anatomy of a dollar bill
The anatomy of a dollar billSeadin Xhaferi
 
The solar system
The solar systemThe solar system
The solar systemRoberAld
 
CS201- Introduction to Programming- Lecture 10
CS201- Introduction to Programming- Lecture 10CS201- Introduction to Programming- Lecture 10
CS201- Introduction to Programming- Lecture 10Bilal Ahmed
 
multivariate data analysis
multivariate data analysismultivariate data analysis
multivariate data analysisDivya Padmanaban
 
18 Hash tables and sets
18 Hash tables and sets18 Hash tables and sets
18 Hash tables and setsmaznabili
 
1 pigmentation
1 pigmentation1 pigmentation
1 pigmentationAhmed Amer
 
Criminalistics questionnaires
Criminalistics questionnairesCriminalistics questionnaires
Criminalistics questionnairesAlexzur
 

What's hot (20)

Mathematical modelling
Mathematical modellingMathematical modelling
Mathematical modelling
 
Resumen termoquimica1
Resumen termoquimica1Resumen termoquimica1
Resumen termoquimica1
 
21 High-quality programming code construction part-ii
21 High-quality programming code construction part-ii21 High-quality programming code construction part-ii
21 High-quality programming code construction part-ii
 
Dielectrics lect28
Dielectrics lect28Dielectrics lect28
Dielectrics lect28
 
Command Channel Slides Week Between Sept. 26 to Oct. 2
Command Channel Slides Week Between Sept. 26 to Oct. 2Command Channel Slides Week Between Sept. 26 to Oct. 2
Command Channel Slides Week Between Sept. 26 to Oct. 2
 
GastritisZaydoon
GastritisZaydoonGastritisZaydoon
GastritisZaydoon
 
The anatomy of a dollar bill
The anatomy of a dollar billThe anatomy of a dollar bill
The anatomy of a dollar bill
 
The solar system
The solar systemThe solar system
The solar system
 
CS201- Introduction to Programming- Lecture 10
CS201- Introduction to Programming- Lecture 10CS201- Introduction to Programming- Lecture 10
CS201- Introduction to Programming- Lecture 10
 
Pineapple
PineapplePineapple
Pineapple
 
Morphemes
MorphemesMorphemes
Morphemes
 
Neural network
Neural networkNeural network
Neural network
 
Jesus in islam
Jesus in islamJesus in islam
Jesus in islam
 
multivariate data analysis
multivariate data analysismultivariate data analysis
multivariate data analysis
 
cardiac arrhythmias
cardiac arrhythmiascardiac arrhythmias
cardiac arrhythmias
 
Gelombang
GelombangGelombang
Gelombang
 
18 Hash tables and sets
18 Hash tables and sets18 Hash tables and sets
18 Hash tables and sets
 
1 pigmentation
1 pigmentation1 pigmentation
1 pigmentation
 
World com scandal
World com scandalWorld com scandal
World com scandal
 
Criminalistics questionnaires
Criminalistics questionnairesCriminalistics questionnaires
Criminalistics questionnaires
 

Viewers also liked

Viewers also liked (6)

Mcts chapter 1 (1)
Mcts chapter 1 (1)Mcts chapter 1 (1)
Mcts chapter 1 (1)
 
Embedded system
Embedded systemEmbedded system
Embedded system
 
Visual resume
Visual resume Visual resume
Visual resume
 
My visual resume
My visual resumeMy visual resume
My visual resume
 
DRobinson_Discussion4
DRobinson_Discussion4DRobinson_Discussion4
DRobinson_Discussion4
 
Reddit presentation
Reddit presentationReddit presentation
Reddit presentation
 

Similar to Chapter 6 testbench

Aqua Eagles Presentation August 25th 2014
Aqua Eagles Presentation August 25th 2014 Aqua Eagles Presentation August 25th 2014
Aqua Eagles Presentation August 25th 2014 amandaleaallen
 
Osteo osteomalacia ricket2
Osteo osteomalacia ricket2Osteo osteomalacia ricket2
Osteo osteomalacia ricket2padli ahmad
 
Upper tibial valgus osteotomy using a dynamic external fixator
Upper tibial valgus osteotomy using a dynamic external fixatorUpper tibial valgus osteotomy using a dynamic external fixator
Upper tibial valgus osteotomy using a dynamic external fixatorAlexander Bardis
 
Solving linear equations (chapter 2)
Solving linear equations (chapter 2)Solving linear equations (chapter 2)
Solving linear equations (chapter 2)Raza Zaidi
 
Impression materials review
Impression materials reviewImpression materials review
Impression materials reviewrazan reyadh
 
WHY THE SEATTLE MARKET & EB-5
WHY THE SEATTLE MARKET & EB-5WHY THE SEATTLE MARKET & EB-5
WHY THE SEATTLE MARKET & EB-5usasiapacific
 
Former Chapter 3
Former Chapter 3 Former Chapter 3
Former Chapter 3 Lizz Renee
 
Cursos Polilab - Degradação e estabilização de polímeros aula 02
Cursos Polilab - Degradação e estabilização de polímeros aula 02Cursos Polilab - Degradação e estabilização de polímeros aula 02
Cursos Polilab - Degradação e estabilização de polímeros aula 02Fernando Jose Novaes
 
Liver cirrhosis-hematemsis-peptic Ulcer Lecture
Liver cirrhosis-hematemsis-peptic Ulcer LectureLiver cirrhosis-hematemsis-peptic Ulcer Lecture
Liver cirrhosis-hematemsis-peptic Ulcer LectureNadine El-Hussieny
 
CheckFood - startup pitch-updated
CheckFood  - startup pitch-updatedCheckFood  - startup pitch-updated
CheckFood - startup pitch-updatedCristian Muraru
 
Treatment at Grace Walker Physical Therapy and Pain Center
Treatment at Grace Walker Physical Therapy and Pain CenterTreatment at Grace Walker Physical Therapy and Pain Center
Treatment at Grace Walker Physical Therapy and Pain CenterDoctor Grace Walker
 
Care of the aged in the community
Care of the aged in the communityCare of the aged in the community
Care of the aged in the communityMagaji Ismail
 
Skill development for assessing cognitive impairment in elderly 24 nov15
Skill development for assessing cognitive impairment in elderly 24 nov15Skill development for assessing cognitive impairment in elderly 24 nov15
Skill development for assessing cognitive impairment in elderly 24 nov15Dr. Rakesh Tripathi
 

Similar to Chapter 6 testbench (20)

Aqua Eagles Presentation August 25th 2014
Aqua Eagles Presentation August 25th 2014 Aqua Eagles Presentation August 25th 2014
Aqua Eagles Presentation August 25th 2014
 
1334006 mitali
1334006 mitali1334006 mitali
1334006 mitali
 
Osteo osteomalacia ricket2
Osteo osteomalacia ricket2Osteo osteomalacia ricket2
Osteo osteomalacia ricket2
 
Upper tibial valgus osteotomy using a dynamic external fixator
Upper tibial valgus osteotomy using a dynamic external fixatorUpper tibial valgus osteotomy using a dynamic external fixator
Upper tibial valgus osteotomy using a dynamic external fixator
 
Solving linear equations (chapter 2)
Solving linear equations (chapter 2)Solving linear equations (chapter 2)
Solving linear equations (chapter 2)
 
Impression materials review
Impression materials reviewImpression materials review
Impression materials review
 
Training methods
Training methodsTraining methods
Training methods
 
WHY THE SEATTLE MARKET & EB-5
WHY THE SEATTLE MARKET & EB-5WHY THE SEATTLE MARKET & EB-5
WHY THE SEATTLE MARKET & EB-5
 
Former Chapter 3
Former Chapter 3 Former Chapter 3
Former Chapter 3
 
Cursos Polilab - Degradação e estabilização de polímeros aula 02
Cursos Polilab - Degradação e estabilização de polímeros aula 02Cursos Polilab - Degradação e estabilização de polímeros aula 02
Cursos Polilab - Degradação e estabilização de polímeros aula 02
 
Apoptosis
ApoptosisApoptosis
Apoptosis
 
Estado de Salud
Estado de SaludEstado de Salud
Estado de Salud
 
Liver cirrhosis-hematemsis-peptic Ulcer Lecture
Liver cirrhosis-hematemsis-peptic Ulcer LectureLiver cirrhosis-hematemsis-peptic Ulcer Lecture
Liver cirrhosis-hematemsis-peptic Ulcer Lecture
 
Dry socket
Dry socketDry socket
Dry socket
 
CheckFood - startup pitch-updated
CheckFood  - startup pitch-updatedCheckFood  - startup pitch-updated
CheckFood - startup pitch-updated
 
Treatment at Grace Walker Physical Therapy and Pain Center
Treatment at Grace Walker Physical Therapy and Pain CenterTreatment at Grace Walker Physical Therapy and Pain Center
Treatment at Grace Walker Physical Therapy and Pain Center
 
One Health Model
One Health ModelOne Health Model
One Health Model
 
Care of the aged in the community
Care of the aged in the communityCare of the aged in the community
Care of the aged in the community
 
Marijuana Teachback
Marijuana TeachbackMarijuana Teachback
Marijuana Teachback
 
Skill development for assessing cognitive impairment in elderly 24 nov15
Skill development for assessing cognitive impairment in elderly 24 nov15Skill development for assessing cognitive impairment in elderly 24 nov15
Skill development for assessing cognitive impairment in elderly 24 nov15
 

Chapter 6 testbench

  • 1. 1 CChhaapptteerr 66 CCoommppoonneenntt TTeesstt aanndd VVeerriiffiiccaattiioonn MMooddiiffiieedd ffrroomm PPrrooff.. NNaavvaabbii’’ss LLeeccttuurreess
  • 2. 2 CCoommppoonneenntt TTeesstt aanndd VVeerriiffiiccaattiioonn 66..11 TTeessttbbeenncchh 66..11..11 CCoommbbiinnaattiioonnaall cciirrccuuiitt tteessttiinngg 66..11..22 SSeeqquueennttiiaall cciirrccuuiitt tteessttiinngg 66..22 TTeessttbbeenncchh TTeecchhnniiqquueess 66..22..11 TTeesstt ddaattaa 66..22..22 SSiimmuullaattiioonn ccoonnttrrooll 66..22..33 LLiimmiittiinngg ddaattaa sseettss 66..22..44 AAppppllyyiinngg ssyynncchhrroonniizzeedd ddaattaa 66..22..55 SSyynncchhrroonniizzeedd ddiissppllaayy ooff rreessuullttss 66..22..66 AAnn iinntteerraaccttiivvee tteessttbbeenncchh 66..22..77 RRaannddoomm ttiimmee iinntteerrvvaallss 66..22..88 BBuuffffeerreedd ddaattaa aapppplliiccaattiioonn
  • 3. 3 CCoommppoonneenntt TTeesstt aanndd VVeerriiffiiccaattiioonn 66..33 DDeessiiggnn VVeerriiffiiccaattiioonn 66..44 AAsssseerrttiioonn VVeerriiffiiccaattiioonn 66..44..11 AAsssseerrttiioonn vveerriiffiiccaattiioonn bbeenneeffiittss 66..44..22 OOppeenn vveerriiffiiccaattiioonn lliibbrraarryy 66..44..33 UUssiinngg aasssseerrttiioonn mmoonniittoorrss 66..44..44 AAsssseerrttiioonn tteemmppllaatteess 66..55 TTeexxtt BBaasseedd TTeessttbbeenncchheess 66..66 SSuummmmaarryy
  • 4. 4 CCoommppoonneenntt TTeesstt aanndd VVeerriiffiiccaattiioonn  TThhiiss cchhaapptteerr sshhoowwss::  HHooww VVeerriilloogg llaanngguuaaggee ccoonnssttrruuccttss ccaann bbee uusseedd ffoorr aapppplliiccaattiioonn ooff ddaattaa ttoo aa mmoodduullee uunnddeerr tteesstt ((MMUUTT))  HHooww mmoodduullee rreessppoonnsseess ccaann bbee ddiissppllaayyeedd aanndd cchheecckkeedd  TThhee ffiirrsstt ppaarrtt:: DDaattaa aapppplliiccaattiioonn aanndd rreessppoonnssee mmoonniittoorriinngg  TThhee sseeccoonndd ppaarrtt:: TThhee uussee ooff aasssseerrttiioonn vveerriiffiiccaattiioonn ffoorr ggiivviinngg aa bbeetttteerr oobbsseerrvvaabbiilliittyy ttoo oouurr ddeessiiggnn mmoodduulleess
  • 5. 5 TTeessttbbeenncchh  VVeerriilloogg ssiimmuullaattiioonn eennvviirroonnmmeennttss pprroovviiddee ttwwoo kkiinnddss ooff ddiissppllaayy ooff ssiimmuullaattiioonn rreessuullttss::  GGrraapphhiiccaall  TTeexxttuuaall  SSoommee aallssoo pprroovviiddee ttoooollss ffoorr eeddiittiinngg iinnppuutt tteesstt ddaattaa ttoo aa ddeessiiggnn mmoodduullee tthhaatt iiss bbeeiinngg tteesstteedd..  TThheessee ttoooollss aarree rreeffeerrrreedd ttoo aass WWaavveeffoorrmm EEddiittoorrss..  WWaavveeffoorrmm eeddiittoorrss hhaavvee 22 pprroobblleemmss::  UUssuuaallllyy aarree ggoooodd oonnllyy ffoorr ssmmaallll ddeessiiggnnss..  EEaacchh ssiimmuullaattiioonn eennvviirroonnmmeenntt uusseess aa ddiiffffeerreenntt pprroocceedduurree ffoorr wwaavveeffoorrmm eeddiittiinngg..  TThhiiss pprroobblleemm ccaann bbee ssoollvveedd bbyy uussee ooff VVeerriilloogg TTeessttbbeenncchheess..
  • 6. 6 TTeessttbbeenncchh  AA VVeerriilloogg TTeessttbbeenncchh iiss::  AA VVeerriilloogg mmoodduullee  IInnssttaannttiiaatteess MMoodduullee UUnnddeerr TTeesstt ((MMUUTT))..  AApppplliieess ddaattaa ttoo MMUUTT..  MMoonniittoorrss tthhee oouuttppuutt..  AA mmoodduullee aanndd iittss tteessttbbeenncchh ffoorrmmss aa SSiimmuullaattiioonn MMoodduullee iinn wwhhiicchh MMUUTT iiss tteesstteedd ffoorr tthhee ssaammee ddaattaa rreeggaarrddlleessss ooff wwhhaatt ssiimmuullaattiioonn eennvviirroonnmmeenntt iiss uusseedd..
  • 7. 7 TTeessttbbeenncchh TTeessttbbeenncchh CCoommbbiinnaattiioonnaall CCiirrccuuiitt TTeessttiinngg SSeeqquueennttiiaall CCiirrccuuiitt TTeessttiinngg
  • 8. 8 CCoommbbiinnaattiioonnaall CCiirrccuuiitt TTeessttiinngg TTeessttbbeenncchh Combinational Testing SSeeqquueennttiiaall CCiirrccuuiitt TTeessttiinngg Combinational Circuit Testing
  • 9. 9 CCoommbbiinnaattiioonnaall CCiirrccuuiitt TTeessttiinngg mmoodduullee aalluu__44bbiitt ((aa,, bb,, ff,, ooee,, yy,, pp,, oovv,, aa__ggtt__bb,, aa__eeqq__bb,, aa__lltt__bb));; iinnppuutt [[33::00]] aa,, bb;; iinnppuutt [[11::00]] ff;; iinnppuutt ooee;; oouuttppuutt [[33::00]] yy;; oouuttppuutt pp,, oovv,, aa__ggtt__bb,, aa__eeqq__bb,, aa__lltt__bb;; //// .. .. .. eennddmmoodduullee  aalluu__44bbiitt MMoodduullee DDeeccllaarraattiioonn DDaattaa IInnppuuttss FFuunnccttiioonn IInnppuutt DDaattaa OOuuttppuutt CCoommppaarree OOuuttppuuttss OOvveerrffllooww OOuuttppuutt PPaarriittyy OOuuttppuutt
  • 10. 10 CCoommbbiinnaattiioonnaall CCiirrccuuiitt TTeessttiinngg mmoodduullee tteesstt__aalluu__44bbiitt;; rreegg [[33::00]] aa==44''bb11001111,, bb==44''bb00111100;; rreegg [[11::00]] ff==22''bb0000;; rreegg ooee==11;; wwiirree [[33::00]] yy;; wwiirree pp,, oovv,, aa__ggtt__bb,, aa__eeqq__bb,, aa__lltt__bb;; aalluu__44bbiitt ccuutt(( aa,, bb,, ff,, ooee,, yy,, pp,, oovv,, aa__ggtt__bb,, aa__eeqq__bb,, aa__lltt__bb ));; .............................................. ..............................................  TTeessttbbeenncchh ffoorr aalluu__44bbiitt VVaarriiaabblleess ccoonnnneeccttiinngg ttoo IInnppuuttss VVaarriiaabblleess ccoonnnneeccttiinngg ttoo OOuuttppuuttss TThhiiss iinnssttaannttiiaattiioonn aassssoocciiaatteess llooccaall rreeggss aanndd wwiirreess ttoo tthhee ppoorrttss ooff tthhee aalluu__44bbiitt mmoodduullee
  • 11. 11 CCoommbbiinnaattiioonnaall CCiirrccuuiitt TTeessttiinngg AApppplliiccaattiioonn ooff ddaattaa ttoo tthhee bb ddaattaa iimmppuutt aanndd ooee oouuttppuutt--eennaabbllee .............................................. iinniittiiaall bbeeggiinn IInniittiiaall BBlloocckk WWaaiittss ffoorr 8800nnss DDiissaabblleess tthhee ##2200 bb==44''bb11001111;; ##2200 bb==44''bb11111100;; ##2200 bb==44''bb11111100;; ##8800 ooee==11''bb00;; ##2200 $$ffiinniisshh;; eenndd aallwwaayyss ##2233 ff == ff ++11;; eennddmmoodduullee EEvveerryy 2200 nnss AA nneeww vvaalluuee iiss aassssiiggnneedd ttoo bb TThhee $$ffiinniisshh ssttaatteemmeenntt iiss rreeaacchheedd aatt 116600 nnss.. AAtt tthhiiss ttiimmee aallll aaccttiivvee pprroocceedduurraall bblloocckkss ssttoopp aanndd ssiimmuullaattiioonn AALLUU OOuuttppuutt bbyy sseettttiinngg ooee ttoo 00 AAfftteerr 2200nnss tthhee ssiimmuullaattiioonn iiss ffiinniisshheedd  TTeessttbbeenncchh ffoorr aalluu__44bbiitt ((CCoonnttiinnuueedd)) AApppplliiccaattiioonn AAlllloowwss ooff ddaattaa ttoo tthhee ff iinnppuutt.. ff iiss iinnccrreemmeenntt bbyy 11 eevveerryy 2233 nnss.. tteerrmmiinnaatteess.. eeffffeeccttss ooff tthhee llaasstt iinnppuutt cchhaannggee ttoo bbee sshhoowwnn iinn ssiimmuullaattiioonn rreessuullttss
  • 12. 12 CCoommbbiinnaattiioonnaall CCiirrccuuiitt TTeessttiinngg ff cchhaannggeess eevveerryy 2233nnss TThhrroouugghhoouutt ccaauussiinngg vvaarriioouuss tthhee AALLUU ssiimmuullaattiioonn ffuunnccttiioonnss aa rreemmaaiinnss ttoo bbee eexxaammiinneedd ccoonnssttaanntt  AALLUU SSiimmuullaattiioonn RReessuullttss AAtt 114400 nnss ooee cchhaannggeess ttoo 00 ccaauussiinngg tthhee yy oouuttppuutt bbeeccoommee ZZ
  • 13. 13 SSeeqquueennttiiaall CCiirrccuuiitt TTeessttiinngg TTeessttbbeenncchh CCoommbbiinnaattiioonnaall CCiirrccuuiitt TTeessttiinngg Sequential Circuit Testing Sequential Circuit Testing
  • 14. 14 SSeeqquueennttiiaall CCiirrccuuiitt TTeessttiinngg  TTeessttiinngg sseeqquueennttiiaall cciirrccuuiittss iinnvvoollvveess ssyynncchhrroonniizzaattiioonn ooff CClloocckk wwiitthh ootthheerr ddaattaa iinnppuuttss..
  • 15. 15 SSeeqquueennttiiaall CCiirrccuuiitt TTeessttiinngg mmoodduullee ##((ppaarraammeetteerr [[33::00]] ppoollyy==00)) mmiissrr ((iinnppuutt ccllkk,,rrsstt,, iinnppuutt [[33::00]] dd__iinn,, oouuttppuutt rreegg [[33::00]] dd__oouutt ));; aallwwaayyss @@(( ppoosseeddggee ccllkk )) iiff(( rrsstt )) dd__oouutt ==44''bb00000000;; eellssee dd__oouutt == dd__iinn ^^ (({{44{{dd__oouutt[[00]]}}}} && ppoollyy)) ^^ {{11''bb00,,dd__oouutt[[33::11]]}};; eennddmmoodduullee  mmiissrr SSeeqquueennttiiaall CCiirrccuuiitt TThhee cciirrccuuiitt hhaass aa ppoollyy ppaarraammeetteerr tthhaatt ddeetteerrmmiinneess iittss ssiiggnnaattuurree aanndd ddaattaa ccoommpprreessssiioonn.. WWiitthh eeaacchh cclloocckk aa nneeww ssiiggnnaattuurree wwiillll bbee ccaallccuullaatteedd wwiitthh tthhee nneeww ddaattaa aanndd eexxiissttiinngg mmiissrr rreeggiisstteerr ddaattaa..
  • 16. 16 SSeeqquueennttiiaall CCiirrccuuiitt TTeessttiinngg mmoodduullee tteesstt__mmiissrr;; rreegg ccllkk==00,, rrsstt==00;; rreegg [[33::00]] dd__iinn;; wwiirree [[33::00]] dd__oouutt;; mmiissrr ##((44''bb11110000)) MMUUTT (( ccllkk,, rrsstt,, dd__iinn,, dd__oouutt ));; SSppeecciiffiiccaattiioonn ooff tthhee ppoollyy ppaarraammeetteerr ...................................................... ......................................................  AA TTeessttbbeenncchh ffoorr mmiissrr
  • 17. wwee uussuuaallllyy uussee pprriimmee nnuummbbeerrss ffoorr ttiimmiinngg ooff sseeqquueennttiiaall cciirrccuuiitt 17 SSeeqquueennttiiaall CCiirrccuuiitt TTeessttiinngg .................................................... iinniittiiaall bbeeggiinn ##1133 rrsstt==11''bb11;; ##1199 dd__iinn==44''bb11000000;; ##3311 rrsstt==00''bb00;; ##333300 $$ffiinniisshh;; eenndd IInn oorrddeerr ttoo rreedduuccee cchhaannccee ooff sseevveerraall iinnppuuttss cchhaannggiinngg dd__iinn ddaattaa iinnppuutt iiss iinniittiiaalliizzeedd ttoo 44’’bb11000000 aallwwaayyss ##337 dd__iinn == dd__iinn ++ 33;; aallwwaayyss ##1111 ccllkk == ~~ccllkk;; eennddmmoodduullee  AA TTeessttbbeenncchh ffoorr mmiissrr ((CCoonnttiinnuueedd)) aatt tthhee ssaammee ttiimmee,, TThhee iinniittiiaall bblloocckk ggeenneerraatteess aa ppoossiittiivvee ppuullssee oonn rrsstt tthhaatt bbeeggiinnss aatt iinnppuuttss.. 1133 nnss aanndd eennddss aatt 6633 nnss.. TThhee ttiimmiinngg iiss ssoo cchhoosseenn ttoo ccoovveerr aatt lleeaasstt oonnee ppoossiittiivvee cclloocckk eeddggee dd__iinn iinnppuutt iiss aassssiiggnneedd aa nneeww vvaalluuee eevveerryy 3377 nnss.. GGeenneerraattee ddaattaa oonn TToogggglleeddss_ eeiivnee araryynn d1d111 ccnnllsskk
  • 18. 18 SSeeqquueennttiiaall CCiirrccuuiitt TTeessttiinngg  TTeessttiinngg mmiissrr
  • 19. 19 TTeessttbbeenncchh TTeecchhnniiqquueess TTeessttbbeenncchh TTeecchhnniiqquueess TTeesstt DDaattaa SSiimmuullaattiioonn CCoonnttrrooll LLiimmiittiinngg DDaattaa SSeettss AAppppllyyiinngg SSyynncchhrroonniizzeedd DDaattaa SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss AAnn IInntteerraaccttiivvee TTeessttbbeenncchh RRaannddoomm TTiimmee IInntteerrvvaallss BBuuffffeerreedd DDaattaa AApppplliiccaattiioonn
  • 20. 20 TTeessttbbeenncchh TTeecchhnniiqquueess mmoodduullee mmoooorree__ddeetteeccttoorr ((iinnppuutt xx,, rrsstt,, ccllkk,, oouuttppuutt zz ));; ppaarraammeetteerr [[11::00]] aa==00,, bb==11,, cc==22,, dd==33;; rreegg [[11::00]] ccuurrrreenntt;; aallwwaayyss @@(( ppoosseeddggee ccllkk )) iiff (( rrsstt )) ccuurrrreenntt <<== aa;; .................................................... .................................................... eennddmmoodduullee  110011 MMoooorree DDeetteeccttoorr ffoorr TTeesstt SSyynncchhrroonnoouuss RReesseett IInnppuutt
  • 21. 21 TTeessttbbeenncchh TTeecchhnniiqquueess .................................................... iiff (( rrsstt )) ccuurrrreenntt == aa;; eellssee ccaassee (( ccuurrrreenntt )) aa :: ccuurrrreenntt <<== xx ?? bb :: aa ;; bb :: ccuurrrreenntt <<== xx ?? bb :: cc ;; cc :: ccuurrrreenntt <<== xx ?? dd :: aa ;; dd :: ccuurrrreenntt <<== xx ?? bb :: cc ;; ddeeffaauulltt :: ccuurrrreenntt <<== xx;; eennddccaassee aassssiiggnn zz == ((ccuurrrreenntt====dd)) ?? 11''bb11 :: 11''bb00;; eennddmmoodduullee  110011 MMoooorree DDeetteeccttoorr ffoorr TTeesstt ((CCoonnttiinnuueedd)) zz oouuttppuutt bbeeccoommeess 11 iinn ssttaattee dd wwhheenn aa sseeqquueennccee ooff 110011 iiss ddeetteecctteedd oonn xx
  • 22. 22 TTeessttbbeenncchh TTeecchhnniiqquueess TTeesstt DDaattaa SSiimmuullaattiioonn CCoonnttrrooll LLiimmiittiinngg DDaattaa SSeettss AAppppllyyiinngg SSyynncchhrroonniizzeedd DDaattaa SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss AAnn IInntteerraaccttiivvee TTeessttbbeenncchh RRaannddoomm TTiimmee IInntteerrvvaallss BBuuffffeerreedd DDaattaa AApppplliiccaattiioonn Test Data TTeesstt DDaattaa
  • 23. 23 TTeesstt DDaattaa mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; rreegg xx,, rreesseett,, cclloocckk;; wwiirree zz;; mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, rreesseett,, cclloocckk,, zz ));; ........................................................ ........................................................ eennddmmoodduullee  BBaassiicc DDaattaa GGeenneerraattiioonn
  • 24. 24 IInniittiiaall BBlloocckk ........................................................ ........................................................ iinniittiiaall bbeeggiinn FFoorr iinniittiiaalliizziinngg tthhee rreegg vvaarriiaabblleess cclloocckk==11''bb00;; xx==11''bb00;; rreesseett==11''bb11;; eenndd iinniittiiaall ##2244 rreesseett==11''bb00;; aallwwaayyss ##55 cclloocckk==~~cclloocckk;; aallwwaayyss ##7 xx==~~xx;; eennddmmoodduullee TTeesstt DDaattaa TThhee wwaavveeffoorrmm ggeenneerraatteedd oonn xx mmaayy oorr mmaayy nnoott bbee aabbllee ttoo tteesstt oouurr mmaacchhiinnee ffoorr aa ccoorrrreecctt 110011 sseeqquueennccee.. GGeenneerraatteess aa ssiiggnnaall oonn xx wwiitthh aa ppeerriioodd ooff 1144nnss  BBaassiicc DDaattaa GGeenneerraattiioonn ((CCoonnttiinnuueedd)) FFoouurr PPrroocceedduurraall BBlloocckkss GGeenneerraatteess aa ssiiggnnaall wwiitthh aa ppeerriioodd ooff 1100nnss oonn cclloocckk VVaarriiaabblleess uusseedd iinn tthhee lleefftt--hhaanndd-- ssiiddeess iinn tthhee pprroocceedduurraall bblloocckkss PPeerriiooddss ooff cclloocckk aanndd xx ccaann bbee cchhaannggeedd ttoo mmaakkee tthhiiss hhaappppeenn aarree ddeeccllaarreedd aass rreegg
  • 25. 25 SSiimmuullaattiioonn CCoonnttrrooll TTeessttbbeenncchh TTeecchhnniiqquueess TTeesstt DDaattaa Simulation Control SSiimmuullaattiioonn CCoonnttrrooll LLiimmiittiinngg DDaattaa SSeettss AAppppllyyiinngg SSyynncchhrroonniizzeedd DDaattaa SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss AAnn IInntteerraaccttiivvee TTeessttbbeenncchh RRaannddoomm TTiimmee IInntteerrvvaallss BBuuffffeerreedd DDaattaa AApppplliiccaattiioonn
  • 26. 26 SSiimmuullaattiioonn CCoonnttrrooll mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; rreegg xx==00,, rreesseett==11,, cclloocckk==00;; wwiirree zz;; SSiimmuullaattiioonn CCoonnttrrooll TTaasskkss aarree $$ssttoopp aanndd $$ffiinniisshh mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, rreesseett,, cclloocckk,, zz ));; iinniittiiaall ##2244 rreesseett==11''bb00;; aallwwaayyss ##55 cclloocckk==~~cclloocckk;; aallwwaayyss ##7 xx==~~xx;; iinniittiiaall ##118899 $$ssttoopp;; eennddmmoodduullee  TTeessttbbeenncchh wwiitthh $$ssttoopp SSiimmuullaattiioonn CCoonnttrrooll AAnnootthheerr tteessttbbeenncchh ffoorr mmoooorree__ddeetteeccttoorr wwhhiicchh aaddddss aannootthheerr iinniittiiaall bblloocckk tthhaatt ssttooppss tthhee ssiimmuullaattiioonn aatt 118899 nnss.. TThhee ffiirrsstt ttiimmee tthhee ffllooww ooff aa pprroocceedduurraall bblloocckk rreeaacchheess $$ssttoopp aatt 118899 nnss,, ssiimmuullaattiioonn ssttooppss.. AA ssttooppppeedd ssiimmuullaattiioonn ccaann bbee rreessuummeedd..
  • 27. 27 SSiimmuullaattiioonn CCoonnttrrooll mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; rreegg xx==00,, rreesseett==11,, cclloocckk==00;; wwiirree zz;; mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, rreesseett,, cclloocckk,, zz ));; ........................................................ ........................................................ eennddmmoodduullee  TTeessttbbeenncchh wwiitthh $$ffiinniisshh SSiimmuullaattiioonn CCoonnttrrooll AAnnootthheerr tteessttbbeenncchh ffoorr mmoooorree__ddeetteeccttoorr wwiitthh $$ffiinniisshh CCoonnttrrooll TTaasskk
  • 28. 28 SSiimmuullaattiioonn CCoonnttrrooll TThhiiss tteessttbbeenncchh ccoommbbiinneess tthhee iinniittiiaall bblloocckkss ooff ddeeaaccttiivvaattiinngg rreesseett aanndd ssiimmuullaattiioonn ccoonnttrrooll iinnttoo ........................................................ ........................................................ iinniittiiaall bbeeggiinn ##2244 rreesseett==11''bb00;; ##116655 $$ffiinniisshh;; SSiimmuullaattiioonn tteerrmmiinnaatteess aatt 116655 nnss.. eenndd aallwwaayyss ##55 cclloocckk==~~cclloocckk;; aallwwaayyss ##77 xx==~~xx;; eennddmmoodduullee oonnee iinniittiiaall bblloocckk.. AA ffiinniisshheedd ssiimmuullaattiioonn ccaannnnoott bbee rreessuummeedd..  TTeessttbbeenncchh wwiitthh $$ffiinniisshh SSiimmuullaattiioonn CCoonnttrrooll ((CCoonnttiinnuueedd))
  • 29. 29 LLiimmiittiinngg DDaattaa SSeettss TTeessttbbeenncchh TTeecchhnniiqquueess TTeesstt DDaattaa SSiimmuullaattiioonn CCoonnttrrooll LLiimmiittiinngg DDaattaa SSeettss AAppppllyyiinngg SSyynncchhrroonniizzeedd DDaattaa SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss AAnn IInntteerraaccttiivvee TTeessttbbeenncchh RRaannddoomm TTiimmee IInntteerrvvaallss BBuuffffeerreedd DDaattaa AApppplliiccaattiioonn Limiting Data Sets
  • 30. 30 LLiimmiittiinngg DDaattaa SSeettss ;;mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr ;;rreegg xx==00,, rreesseett==11,, cclloocckk==00 ;;wwiirree zz ((;;mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, rreesseett,, cclloocckk,, zz ;;iinniittiiaall ##2244 rreesseett==11''bb00 ;;iinniittiiaall rreeppeeaatt((1133(( ##55 cclloocckk==~~cclloocckk ;;iinniittiiaall rreeppeeaatt((1100(( ##77 xx==$$rraannddoomm eennddmmoodduullee  TTeessttbbeenncchh UUssiinngg rreeppeeaatt ttoo LLiimmiitt DDaattaa SSeettss IInnsstteeaadd ooff sseettttiinngg ssiimmuullaattiioonn ttiimmee lliimmiitt,, aa tteessttbbeenncchh ccaann ppuutt aa lliimmiitt oonn tthhee nnuummbbeerr ooff ddaattaa ppuutt oonn iinnppuuttss ooff aa MMUUTT.. TThhiiss wwiillll aallssoo bbee aabbllee ttoo ssttoopp ssiimmuullaattiioonn ffrroomm rruunnnniinngg iinnddeeffiinniitteellyy.. CCaauussee cclloocckk ttoo ttooggggllee 1133 ttiimmeess eevveerryy 55 nnss IInn llaarrggee cciirrccuuiittss,, rraannddoomm ddaattaa iiss mmoorree uusseeffuull ffoorr ddaattaa iinnppuuttss tthhaann ffoorr CCaauussee xx ttoo rreecceeiivvee rraannddoomm ddaattaa 110 ttiimmeess eevveerryy 77 nnss GGeenneerraatteess rraannddoomm ddaattaa oonn tthhee xx iinnppuutt ooff tthhee cciirrccuuiitt.. ccoonnttrrooll ssiiggnnaallss..
  • 31. 31 AAppppllyyiinngg SSyynncchhrroonniizzeedd DDaattaa TTeessttbbeenncchh TTeecchhnniiqquueess TTeesstt DDaattaa SSiimmuullaattiioonn CCoonnttrrooll LLiimmiittiinngg DDaattaa SSeettss AAppppllyyiinngg Applying SSyynncchhrroonniizzeedd DDaattaa SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss Synchronized Data AAnn IInntteerraaccttiivvee TTeessttbbeenncchh RRaannddoomm TTiimmee IInntteerrvvaallss BBuuffffeerreedd DDaattaa AApppplliiccaattiioonn
  • 32. 32 AAppppllyyiinngg SSyynncchhrroonniizzeedd DDaattaa  WWhheerree sseevveerraall sseettss ooff ddaattaa aarree ttoo bbee aapppplliieedd::  SSyynncchhrroonniizzaattiioonn ooff ddaattaa wwiitthh tthhee ssyysstteemm cclloocckk bbeeccoommeess ddiiffffiiccuulltt..  CChhaannggiinngg tthhee cclloocckk ffrreeqquueennccyy wwoouulldd rreeqquuiirree cchhaannggiinngg tthhee ttiimmiinngg ooff aallll ddaattaa iinnppuuttss ooff tthhee mmoodduullee bbeeiinngg tteesstteedd..
  • 33. mmaakkeess iitt ppoossssiibbllee ttoo uussee tthhiiss tteessttbbeenncchh ffoorr ssiimmuullaattiinngg ppoosstt--ssyynntthheessiiss ddeessiiggnnss aass wweellll aass bbeehhaavviioorraall ddeessccrriippttiioonnss TTeessttbbeenncchh DDeellaayyss:: SSeettuupp aanndd HHoolldd TTiimmee 33 AAppppllyyiinngg SSyynncchhrroonniizzeedd DDaattaa mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; rreegg xx==00,, rreesseett==11,, cclloocckk==00;; wwiirree zz;; TThhiiss 33nnss ddeellaayy mmoooorree__ddeetteeccttoorr uuuutt(( xx,, rreesseett,, cclloocckk,, zz ((;; iinniittiiaall ##2244 rreesseett==00;; iinniittiiaall rreeppeeaatt((1133(( ##55 cclloocckk==~~cclloocckk;; iinniittiiaall ffoorreevveerr @@((ppoosseeddggee cclloocckk(( ##33 xx==$$rraannddoomm;; eennddmmoodduullee  SSyynncchhrroonniizziinngg DDaattaa wwiitthh CClloocckk TThhiiss tteessttbbeenncchh uusseess aann eevveenntt ccoonnttrrooll ssttaatteemmeenntt ttoo ssyynncchhrroonniizzee ddaattaa aapppplliieedd TThhiiss lloooopp wwaaiitttstsoo ff ox r w wtthhiitteehh tthhee cclloocckk.. ppoossiittiivvee eeddggee ooff tthhee cclloocckk,, aanndd 33 nnss aafftteerr iitt,, aa nneeww rraannddoomm ddaattaa iiss ggeenneerraatteedd ffoorr xx.. GGuuaarraanntteeeess tthhaatt cchhaannggiinngg ooff ddaattaa aanndd cclloocckk ddoo nnoott ccooiinncciiddee..
  • 34. SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss 34 TTeessttbbeenncchh TTeecchhnniiqquueess TTeesstt DDaattaa SSiimmuullaattiioonn CCoonnttrrooll LLiimmiittiinngg DDaattaa SSeettss AAppppllyyiinngg SSyynncchhrroonniizzeedd DDaattaa SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss AAnn IInntteerraaccttiivvee TTeessttbbeenncchh RRaannddoomm TTiimmee IInntteerrvvaallss BBuuffffeerreedd DDaattaa AApppplliiccaattiioonn Synchronized Display of Results
  • 35. SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss 35 mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; rreegg xx==00,, rreesseett==11,, cclloocckk==00;; wwiirree zz;; mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, rreesseett,, cclloocckk,, zz ((;; iinniittiiaall ##2244 rreesseett==00;; iinniittiiaall rreeppeeaatt((1133(( ##55 cclloocckk==~~cclloocckk;; iinniittiiaall ffoorreevveerr @@((ppoosseeddggee cclloocckk(( ##33 xx==$$rraannddoomm;; iinniittiiaall ffoorreevveerr @@((ppoosseeddggee cclloocckk(( ##11 $$ddiissppllaayybb((zz((;; eennddmmoodduullee  TTeessttbbeenncchh DDiissppllaayyiinngg OOuuttppuutt TThhiiss tteessttbbeenncchh uusseess aann eevveenntt ccoonnttrrooll ssttaatteemmeenntt ffoorr ssyynncchhrroonniizzeedd oobbsseerrvvaattiioonn ooff MMUUTT oouuttppuuttss oorr iinntteerrnnaall ssiiggnnaallss.. 11nnss aafftteerr tthhee ppoossiittiivvee eeddggee ooff tthhee cclloocckk,, wwhheenn tthhee cciirrccuuiitt oouuttppuutt iiss ssuuppppoosseedd ttoo hhaavvee iittss nneeww ssttaabbllee vvaalluuee,, tthhee zz oouuttppuutt iiss ddiissppllaayyeedd uussiinngg tthhee $$ddiissppllaayybb ttaasskk.. TThhiiss tteessttbbeenncchh iiss aallssoo uussaabbllee ffoorr tthhee ppoosstt--ssyynntthheessiiss ssiimmuullaattiioonn ooff mmoooorree__ddeetteeccttoorr
  • 36. SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss TThhiiss tteessttbbeenncchh iiss ddeevveellooppeedd ffoorr oobbsseerrvviinngg ssttaatteess ooff 36 mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; rreegg xx==00,, rreesseett==11,, cclloocckk==00;; wwiirree zz;; mmoooorree__ddeetteeccttoorr mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, rreesseett,, cclloocckk,, zz ((;; ........................................................ ........................................................ eennddmmoodduullee  TTeessttbbeenncchh DDiissppllaayyss DDeessiiggnn VVaarriiaabblleess wwhheenn tthheeyy cchhaannggee
  • 37. SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss 37 DDiissppllaayy ooccccuurrss wwhheenn aann eevveenntt ooccccuurrss oonn oonnee ooff tthhee vvaarriiaabblleess ooff tthhee ttaasskk’’ss ........................................................ ........................................................ iinniittiiaall ##2244 rreesseett==00;; aarrgguummeennttss.. iinniittiiaall rreeppeeaatt((1199(( ##55 cclloocckk==~~cclloocckk;; iinniittiiaall ffoorreevveerr @@((ppoosseeddggee cclloocckk(( ##33 xx==$$rraannddoomm;; iinniittiiaall $$mmoonniittoorr((""NNeeww ssttaattee iiss %%bb aanndd ooccccuurrss aatt %%tt"",, MMUUTT..ccuurrrreenntt,, $$ttiimmee((;; aallwwaayyss @@((zz(( $$ddiissppllaayy((""OOuuttppuutt cchhaannggeess aatt %%tt ttoo %%bb"",, $$ttiimmee,, zz((;; eennddmmoodduullee UUsseess $$mmoonniittoorr ttoo ddiissppllaayy ccuurrrreenntt rreeggiisstteerr UUsseess $$ddiissppllaayy ttoo ddiissppllaayy  TTeessttbbeenncchh DDiissppllaayyss DDeessiiggnn tthhee VVaarriiaabblleess oouuttppuutt wwhheenn tthheeyy cchhaannggee ((CCoonnttiinnuueedd)) ccuurrrreenntt ssttaattee aanndd zz oouuttppuutt aarree ddiissppllaayyeedd wwhheenn tthheeyy rreecceeiivvee nneeww vvaalluueess.. SSttaarrttss $$mmoonniittoorr ttaasskk iinn tthhee bbaacckkggrroouunndd EEvveenntt BBaasseedd SSeennssiittiivvee ttoo zz FFllooww BBaasseedd HHiieerraarrcchhiiaall NNaammiinngg IInn bbiinnaarryy ffoorrmmaatt WWiitthh tthhee ttiimmee uunniitt
  • 38. SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss 38 NNeeww ssttaattee iiss xx aanndd ooccccuurrss aatt 00 OOuuttppuutt cchhaannggeess aatt 5500 ttoo 00 NNeeww ssttaattee iiss 00 aanndd ooccccuurrss aatt 5500 NNeeww ssttaattee iiss 11 aanndd ooccccuurrss aatt 225500 NNeeww ssttaattee iiss 22 aanndd ooccccuurrss aatt 885500 OOuuttppuutt cchhaannggeess aatt 995500 ttoo 11 NNeeww ssttaattee iiss 33 aanndd ooccccuurrss aatt 995500  TTeesstt RReessuullttss ooff TTeessttbbeenncchh ooff FFiigg.. 66..1144
  • 39. 39 AAnn IInntteerraaccttiivvee TTeessttbbeenncchh TTeessttbbeenncchh TTeecchhnniiqquueess TTeesstt DDaattaa SSiimmuullaattiioonn CCoonnttrrooll LLiimmiittiinngg DDaattaa SSeettss AAppppllyyiinngg SSyynncchhrroonniizzeedd DDaattaa SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss AAnn IInntteerraaccttiivvee TTeessttbbeenncchh RRaannddoomm TTiimmee IInntteerrvvaallss An Interactive Testbench BBuuffffeerreedd DDaattaa AApppplliiccaattiioonn
  • 40. 40 AAnn IInntteerraaccttiivvee TTeessttbbeenncchh mmoodduullee mmoooorree__ddeetteeccttoorr ((iinnppuutt xx,, ssttaarrtt,, rrsstt,, ccllkk,, oouuttppuutt zz ((;; ppaarraammeetteerr aa==00,, bb==11,, cc==22,, dd==33,, ee==44;; rreegg [[22::00]] ccuurrrreenntt;; aallwwaayyss @@(( ppoosseeddggee ccllkk (( ........................................................ ........................................................ ........................................................ eennddmmoodduullee  MMoooorree SSeeqquueennccee DDeetteeccttoorr DDeetteeccttiinngg 1111011 AA 1111011 MMoooorree ddeetteeccttoorr WWiitthh 55 ssttaatteess
  • 41. 41 AAnn IInntteerraaccttiivvee TTeessttbbeenncchh iiff (( rrsstt (( ccuurrrreenntt <<== aa;; eellssee iiff (( ~~ssttaarrtt (( ccuurrrreenntt <<== aa;; eellssee ccaassee (( ccuurrrreenntt (( aa :: ccuurrrreenntt <<== xx ?? bb :: aa ;; bb :: ccuurrrreenntt <<== xx ?? cc :: aa ;; cc :: ccuurrrreenntt <<== xx ?? cc :: dd ;; dd :: ccuurrrreenntt <<== xx ?? ee :: aa ;; ee :: ccuurrrreenntt <<== xx ?? cc :: aa ;; ddeeffaauulltt:: ccuurrrreenntt <<== aa;; eennddccaassee aassssiiggnn zz == ((ccuurrrreenntt====ee((;; OOuuttppuutt bbeeccoommeess 11 iinn ssttaattee ee eennddmmoodduullee  MMoooorree SSeeqquueennccee DDeetteeccttoorr DDeetteeccttiinngg 1111011 ((CCoonnttiinnuueedd)) IIff ssttaarrtt bbeeccoommeess 0 tthhee mmaacchhiinnee rreesseettss ttoo iinniittiiaall ssttaattee aa
  • 42. 42 AAnn IInntteerraaccttiivvee TTeessttbbeenncchh mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; rreegg xx==00,, ssttaarrtt,, rreesseett==11,, cclloocckk==00;; wwiirree zz;; mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, ssttaarrtt,, rreesseett,, cclloocckk,, zz ((;; ........................................................ ........................................................ ........................................................ eennddmmoodduullee  AAnn IInntteerraaccttiivvee TTeessttbbeenncchh
  • 43. 43 AAnn IInntteerraaccttiivvee TTeessttbbeenncchh iinniittiiaall bbeeggiinn ##2244 rreesseett==11''bb00;; ssttaarrtt==11''bb11;; wwaaiitt((zz====11''bb11((;; ##1111 ssttaarrtt==11''bb00;; ##1133 ssttaarrtt==11''bb11;; rreeppeeaatt((33(( bbeeggiinn ##1111 ssttaarrtt==11''bb00;; ##1133 ssttaarrtt==11''bb11;; wwaaiitt((zz====11''bb11((;; eenndd ##5500 $$ssttoopp;; eenndd  AAnn IInntteerraaccttiivvee TTeessttbbeenncchh ((CCoonnttiinnuueedd)) TToo ggeett tthhee mmaacchhiinnee ssttaarrtteedd WWaaiittss ffoorr zz ttoo bbeeccoommee 11,, AAfftteerr iitt rreessttaarrttss tthhee mmaacchhiinnee RReeppeeaattss tthhee pprroocceessss ooff ssttaarrttiinngg tthhee mmaacchhiinnee aanndd wwaaiittiinngg ffoorr zz ttoo bbeeccoommee 11 33 mmoorree ttiimmeess AAfftteerr 550 nnss ssiimmuullaattiioonn iiss ssttooppppeedd
  • 44. 44 AAnn IInntteerraaccttiivvee TTeessttbbeenncchh ........................................................ ........................................................ ........................................................ aallwwaayyss ##55 cclloocckk==~~cclloocckk;; aallwwaayyss ##77 xx==$$rraannddoomm;; eennddmmoodduullee  AAnn IInntteerraaccttiivvee TTeessttbbeenncchh ((CCoonnttiinnuueedd)) aallwwaayyss bblloocckkss ttoo ggeenneerraattee cclloocckk aanndd xx iinnppuutt
  • 45. 45 AAnn IInntteerraaccttiivvee TTeessttbbeenncchh  WWaavveeffoorrmm RReessuulltteedd bbyy tthhee IInntteerraaccttiivvee TTeessttbbeenncchh
  • 46. 46 AAnn IInntteerraaccttiivvee TTeessttbbeenncchh mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; rreegg xx==00,, ssttaarrtt,, rreesseett==11,, cclloocckk==00;; wwiirree zz;; mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, ssttaarrtt,, rreesseett,, cclloocckk,, zz ((;; iinniittiiaall bbeeggiinn ##2244 rreesseett==11''bb00;; ssttaarrtt==11''bb11;; eenndd ........................................................ eennddmmoodduullee  IInntteerraaccttiivvee TTeessttbbeenncchh UUssiinngg DDiissppllaayy TTaasskkss
  • 47. 47 AAnn IInntteerraaccttiivvee TTeessttbbeenncchh WWhheenn ccuurrrreenntt bbeeccoommeess ee zz iiss ddiissppllaayyeedd ........................................................ aallwwaayyss bbeeggiinn :: OOuuttppuutt__DDiissppllaayy HHiieerraarrcchhiiccaall NNaammiinngg DDiissppllaayyss aass ssoooonn aass pprrooggrraamm DDiissppllaayyss tthhee oolldd vvaalluuee ooff zz ffllooww rreeaacchheess iitt wwaaiitt((MMUUTT..ccuurrrreenntt ==== MMUUTT..ee((;; $$ddiissppllaayy ((""$$ddiissppllaayy ttaasskk sshhoowwss:: TThhee oouuttppuutt iiss %%bb"",, zz((;; TToo oobbsseerrvvee oouuttppuutt wwiitthhiinn $$ssttrroobbee ((""$$ssttrroobbee ttaasskk sshhoowwss:: TThhee oouuttppuutt iiss %%bb"",, zz((;; ##22 $$ssttoopp;; aa ssttaattee AA ssiimmuullaattiioonn cclloocckk ccyyccllee WWaaiittss ffoorr aallll ssiimmuullaattiioonn eevveenntt ttoo ccoommpplleettee bbeeffoorree ddiissppllaayyiinngg eenndd aallwwaayyss ##55 cclloocckk==~~cclloocckk;; aallwwaayyss ##77 xx==$$rraannddoomm;; aafftteerr ee iiss ddeetteecctteedd,, zz bbeeccoommeess 11 aanndd iiss ddiissppllaayyeedd eennddmmoodduullee  IInntteerraaccttiivvee TTeessttbbeenncchh UUssiinngg DDiissppllaayy TTaasskkss ((CCoonnttiinnuueedd))
  • 48. 48 RRaannddoomm TTiimmee IInntteerrvvaallss TTeessttbbeenncchh TTeecchhnniiqquueess TTeesstt DDaattaa SSiimmuullaattiioonn CCoonnttrrooll LLiimmiittiinngg DDaattaa SSeettss AAppppllyyiinngg SSyynncchhrroonniizzeedd DDaattaa SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss AAnn IInntteerraaccttiivvee TTeessttbbeenncchh RRaannddoomm TTiimmee IInntteerrvvaallss BBuuffffeerreedd DDaattaa AApppplliiccaattiioonn Random Time Intervals
  • 49. 49 RRaannddoomm TTiimmee IInntteerrvvaallss mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; rreegg xx,, ssttaarrtt,, rreesseett,, cclloocckk;; wwiirree zz;; rreegg [[33::00]] tt;; mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, ssttaarrtt,, rreesseett,, cclloocckk,, zz ((;; ........................................................ ........................................................ eennddmmoodduullee  TTeessttbbeenncchh uussiinngg RRaannddoomm TTiimmee IInntteerrvvaallss TThhiiss tteessttbbeenncchh uusseess rraannddoomm wwaaiitt ttiimmeess ffoorr aassssiiggnniinngg vvaalluueess ttoo xx
  • 50. WWaaiittss ffoorr 1133 ccoommpplleettee cclloocckk ppuullsseess bbeeffoorree iitt ddee--aasssseerrttss tthhee ssttaarrtt aanndd ffiinniisshheess tthhee ssiimmuullaattiioonn 50 iinniittiiaall bbeeggiinn::rruunnnniinngg NNoonnbblloocckkiinngg aassssiiggnnmmeennttss ccaauussee iinnttrraa--aassssiiggnnmmeenntt ddeellaayy vvaalluueess ttoo bbee rreeggaarrddeedd aass aabbssoolluuttee ttiimmiinngg vvaalluueess cclloocckk <<== 11''bb00;; xx <<== 11''bb00;; rreesseett <<== 11''bb11;; rreesseett <<== ##77 11''bb00;; ssttaarrtt <<== 11''bb00;; ssttaarrtt <<== ##1177 11''bb11;; rreeppeeaatt ((1133(( bbeeggiinn @@(( ppoosseeddggee cclloocckk ((;; @@(( nneeggeeddggee cclloocckk ((;; Waits until tthhee pprrooppaaggaattiioonn ooff aallll ssiiggnnaallss bbee ccoommpplleetteedd eenndd ssttaarrtt==11''bb00;; ##55;; $$ffiinniisshh;; eenndd RRaannddoomm TTiimmee IInntteerrvvaallss  TTeessttbbeenncchh uussiinngg RRaannddoomm TTiimmee IInntteerrvvaallss ((CCoonnttiinnuueedd))
  • 51. 51 RRaannddoomm TTiimmee IInntteerrvvaallss ........................................................ ........................................................ ........................................................ TThhiiss bblloocckk ggeenneerraatteess ddaattaa oonn xx aass lloonngg aass tthhee $$ffiinniisshh ssttaatteemmeenntt iiss nnoott rreeaacchheedd aallwwaayyss ##55 cclloocckk==~~cclloocckk;; aallwwaayyss bbeeggiinn tt == $$rraannddoomm;; ##((tt(( xx==$$rraannddoomm;; eenndd eennddmmoodduullee GGeenneerraatteess RRaannddoomm ddaattaa oonn tt UUsseess tt ttoo ddeellaayy aassssiiggnnmmeennttss ooff rraannddoomm vvaalluueess ttoo xx  TTeessttbbeenncchh uussiinngg RRaannddoomm TTiimmee IInntteerrvvaallss ((CCoonnttiinnuueedd))
  • 52. 52 BBuuffffeerreedd DDaattaa AApppplliiccaattiioonn TTeessttbbeenncchh TTeecchhnniiqquueess TTeesstt DDaattaa SSiimmuullaattiioonn CCoonnttrrooll LLiimmiittiinngg DDaattaa SSeettss AAppppllyyiinngg SSyynncchhrroonniizzeedd DDaattaa SSyynncchhrroonniizzeedd DDiissppllaayy ooff RReessuullttss AAnn IInntteerraaccttiivvee TTeessttbbeenncchh RRaannddoomm TTiimmee IInntteerrvvaallss Buffered BBuuffffeerreedd Data Application DDaattaa AApppplliiccaattiioonn
  • 53. 53 BBuuffffeerreedd DDaattaa AApppplliiccaattiioonn mmoodduullee tteesstt__mmoooorree__ddeetteeccttoorr;; rreegg xx==00,, rrsstt,, ssttaarrtt,, ccllkk==00;; wwiirree zz;; rreegg [[1188::00]] bbuuffffeerr;; mmoooorree__ddeetteeccttoorr MMUUTT (( xx,, ssttaarrtt,, rrsstt,, ccllkk,, zz ((;; ........................................................ ........................................................ eennddmmoodduullee  TTeessttbbeenncchh AAppppllyyiinngg BBuuffffeerreedd DDaattaa TThhiiss tteessttbbeenncchh uusseess aa bbuuffffeerr ttoo hhoolldd ddaattaa ttoo bbee aapppplliieedd ttoo tthhee MMUUTT ddaattaa iinnppuutt
  • 54. AAss ddaattaa iiss sshhiifftteedd,, bbuuffffeerr iiss rroottaatteedd iinn oorrddeerr ffoorr tthhee aapppplliieedd bbuuffffeerreedd ddaattaa ttoo 54 BBuuffffeerreedd DDaattaa AApppplliiccaattiioonn 1199--bbiitt bbuuffffeerr iiss iinniittiiaalliizzeedd wwiitthh tteesstt ddaattaa ........................................................ iinniittiiaall bbuuffffeerr == 1199''bb00000011110011110011111111000011000011;; iinniittiiaall bbeeggiinn rrsstt==11''bb11;; ssttaarrtt==11''bb00;; ##2299 rrsstt==11''bb00;; ##2299 ssttaarrtt==11''bb11;; ##550000 $$ssttoopp;; SSttaarrtt aanndd ssttoopp ccoonnttrrooll ooff tthhee EEaacchh bbiitt ooff tthhee bbuuffffeerr iissss ttssaahhtteieiff ttmmeeddaa ccoohhuuiittnnee oonnttoo tthhee xx iinnppuutt ooff MMUUTT 11nnss aafftteerr tthhee ppoossiittiivvee eeddggee ooff cclloocckk eenndd aallwwaayyss @@((ppoosseeddggee ccllkk(( ##11 {{xx,, bbuuffffeerr}} == {{bbuuffffeerr,,xx}};; aallwwaayyss ##55 ccllkk == ~~ccllkk;; eennddmmoodduullee bbee aabbllee ttoo rreeppeeaatt  TTeessttbbeenncchh AAppppllyyiinngg BBuuffffeerreedd DDaattaa ((CCoonnttiinnuueedd)) WWee aarree ssuurree aa ccoorrrreecctt sseeqquueennccee iiss aapppplliieedd ttoo oouurr MMUUTT aanndd ccaann mmoorree eeaassiillyy cchheecckk ffoorr eexxppeecctteedd rreessuullttss..
  • 55. 55 DDeessiiggnn VVeerriiffiiccaattiioonn  FFoorrmmaall vveerriiffiiccaattiioonn::  AA wwaayy ooff aauuttoommaattiinngg ddeessiiggnn vveerriiffiiccaattiioonn bbyy eelliimmiinnaattiinngg tteessttbbeenncchheess aanndd pprroobblleemmss aassssoocciiaatteedd wwiitthh tthheeiirr ddaattaa ggeenneerraattiioonn aanndd rreessppoonnssee oobbsseerrvvaattiioonn..  TToooollss ddoo nnoott ppeerrffoorrmm ssiimmuullaattiioonn,, bbuutt ccoommee uupp wwiitthh aa YYeess//NNoo aannsswweerr ffoorr eevveerryy pprrooppeerrttyy tthhee ddeessiiggnn iiss bbeeiinngg cchheecckkeedd ffoorr..  EElliimmiinnaattiinngg ddaattaa ggeenneerraattiioonn aanndd rreessppoonnssee oobbsseerrvvaattiioonn  AAsssseerrttiioonn vveerriiffiiccaattiioonn::  RReedduuccee oorr eelliimmiinnaattee eeffffoorrttss nneeeeddeedd ffoorr aannaallyyzziinngg oouuttppuutt rreessppoonnsseess  WWhhiillee tthhee ddeessiiggnn iiss bbeeiinngg ssiimmuullaatteedd wwiitthh iittss tteessttbbeenncchh ddaattaa,, aasssseerrttiioonn mmoonniittoorrss ccoonnttiinnuuoouussllyy cchheecckk ffoorr ccoorrrreecctt ddeessiiggnn bbeehhaavviioorr..  IInn ccoonnddiittiioonnss tthhaatt tthhee ddeessiiggnn iiss mmiissbbeehhaavviinngg,, tthhee mmoonniittoorr iiss ssaaiidd ttoo ffiirree ttoo aalleerrtt tthhee ddeessiiggnneerr ooff tthhee pprroobblleemm..
  • 56. 56 AAsssseerrttiioonn VVeerriiffiiccaattiioonn AAsssseerrttiioonn VVeerriiffiiccaattiioonn AAsssseerrttiioonn VVeerriiffiiccaattiioonn BBeenneeffiittss OOppeenn VVeerriiffiiccaattiioonn LLiibbrraarryy UUssiinngg AAsssseerrttiioonn MMoonniittoorrss AAsssseerrttiioonn TTeemmppllaatteess
  • 57. 57 AAsssseerrttiioonn VVeerriiffiiccaattiioonn  UUnnlliikkee ssiimmuullaattiioonn,, hheerree iinn-ccooddee mmoonniittoorrss iissssuuee aa mmeessssaaggee iiff ssoommeetthhiinngg hhaappppeennss tthhaatt iiss nnoott eexxppeecctteedd..  IInn VVeerriilloogg,, mmoonniittoorrss aarree mmoodduulleess..  TThhee pprreesseenntt sseett ooff aasssseerrttiioonn mmoonniittoorrss aarree aavvaaiillaabbllee iinn aa lliibbrraarryy rreeffeerrrreedd ttoo aass OOVVLL ((OOppeenn VVeerriiffiiccaattiioonn LLiibbrraarryy))  FFoorr uussiinngg aasssseerrttiioonnss ddeessiiggnneerr ccoommppiilleess OOVVLL aanndd hhiiss oorr hheerr oowwnn aasssseerrttiioonn lliibbrraarryy iinnttoo aa ssiimmuullaattiioonn lliibbrraarryy..  IIff aa ssiiggnnaall ddooeess nnoott hhaavvee aa vvaalluuee eexxppeecctteedd bbyy aa mmoonniittoorr,, tthhee aasssseerrttiioonn mmoonniittoorr ddiissppllaayyss aa mmeessssaaggee aanndd tthhee ttiimmee tthhaatt tthhee vviioollaattiioonn ooff tthhee pprrooppeerrttyy hhaass ooccccuurrrreedd..
  • 58. 58 AAsssseerrttiioonn VVeerriiffiiccaattiioonn BBeenneeffiittss AAsssseerrttiioonn VVeerriiffiiccaattiioonn AAsssseerrttiioonn VVeerriiffiiccaattiioonn BBeenneeffiittss OOppeenn VVeerriiffiiccaattiioonn LLiibbrraarryy UUssiinngg AAsssseerrttiioonn MMoonniittoorrss AAsssseerrttiioonn TTeemmppllaatteess Assertion Verification Benefits
  • 59. 59 AAsssseerrttiioonn VVeerriiffiiccaattiioonn BBeenneeffiittss  WWaayyss iinn wwhhiicchh aasssseerrttiioonn mmoonniittoorrss aarree hheellppffuull::  DDeessiiggnneerr DDiisscciipplliinnee:: WWiitthh ppllaacciinngg aann aasssseerrttiioonn iinn aa ddeessiiggnn,, aa ddeessiiggnneerr iiss ddiisscciipplliinniinngg hhiimm//hheerr-sseellff ttoo llooookk iinnttoo tthhee ddeessiiggnn mmoorree ccaarreeffuullllyy aanndd eexxttrraacctt pprrooppeerrttiieess..  OObbsseerrvvaabbiilliittyy:: AAsssseerrttiioonnss aadddd mmoonniittoorriinngg ppooiinnttss ttoo aa ddeessiiggnn tthhaatt mmaakkee iitt mmoorree oobbsseerrvvaabbllee..  FFoorrmmaall VVeerriiffiiccaattiioonn RReeaaddyy:: HHaavviinngg iinnsseerrtteedd aasssseerrttiioonn mmoonniittoorrss ttoo aa ddeessiiggnn,, rreeaaddiieess iitt ffoorr vveerriiffiiccaattiioonn bbyy aa ffoorrmmaall vveerriiffiiccaattiioonn ttooooll..  EExxeeccuuttaabbllee CCoommmmeennttss:: AAsssseerrttiioonn mmoonniittoorrss ccaann bbee rreeggaarrddeedd aass ccoommmmeennttss tthhaatt eexxppllaaiinn ssoommee ffeeaattuurreess oorr bbeehhaavviioorr ooff aa ddeessiiggnn..  SSeellff CCoonnttaaiinneedd DDeessiiggnnss:: AA ddeessiiggnn wwiitthh aasssseerrttiioonn mmoonniittoorrss hhaass tthhee ddeessiiggnn ddeessccrriippttiioonn aanndd iittss tteesstt pprroocceedduurree aallll iinn oonnee VVeerriilloogg mmoodduullee..
  • 60. 60 OOppeenn VVeerriiffiiccaattiioonn LLiibbrraarryy AAsssseerrttiioonn VVeerriiffiiccaattiioonn AAsssseerrttiioonn VVeerriiffiiccaattiioonn BBeenneeffiittss Open Verification Library OOppeenn VVeerriiffiiccaattiioonn LLiibbrraarryy UUssiinngg AAsssseerrttiioonn MMoonniittoorrss AAsssseerrttiioonn TTeemmppllaatteess
  • 61. 61 OOppeenn VVeerriiffiiccaattiioonn LLiibbrraarryy  AAsssseerrttiioonnss
  • 62. AAnn AAsssseerrttiioonn iiss ppllaacceedd iinn ccooddee lliikkee aa mmoodduullee 62 OOppeenn VVeerriiffiiccaattiioonn LLiibbrraarryy AAsssseerrtt__nnaammee ##((ssttaattiicc--ppaarraammeetteerrss)) iinnssttaannccee--nnaammee  AAsssseerrttiioonn MMoodduullee IInnssttaannttiiaattiioonn iinnssttaannttiiaattiioonn.. ((ddyynnaammiicc--aarrgguummeennttss));; AAsssseerrttiioonn mmoodduullee nnaammee ccoommeess ffiirrsstt.. FFoolllloowweedd bbyy ssttaattiicc__ppaarraammeetteerrss lliikkee vveeccttoorr ssiizzee aanndd ooppttiioonnss RReeffeerreennccee aanndd mmoonniittoorr ssiiggnnaallss aanndd ootthheerr ddyynnaammiicc aarrgguummeennttss AAnnyy UUnniiqquuee nnaammee iiss aalllloowweedd
  • 63. 63 UUssiinngg AAsssseerrttiioonn MMoonniittoorrss AAsssseerrttiioonn VVeerriiffiiccaattiioonn AAsssseerrttiioonn VVeerriiffiiccaattiioonn BBeenneeffiittss OOppeenn VVeerriiffiiccaattiioonn LLiibbrraarryy UUssiinngg AAsssseerrttiioonn MMoonniittoorrss AAsssseerrttiioonn TTeemmppllaatteess Using Assertion Monitors
  • 64. 64 UUssiinngg AAsssseerrttiioonn MMoonniittoorrss AAsssseerrttiioonn MMoonniittoorrss aasssseerrtt__aallwwaayyss aasssseerrtt__cchhaannggee aasssseerrtt__oonnee__hhoott aasssseerrtt__ ccyyccllee__sseeqquueennccee aasssseerrtt__nneexxtt
  • 65. 65 aasssseerrtt__aallwwaayyss AAsssseerrttiioonn MMoonniittoorrss assert_always aasssseerrtt__aallwwaayyss aasssseerrtt__cchhaannggee aasssseerrtt__oonnee__hhoott aasssseerrtt__ ccyyccllee__sseeqquueennccee aasssseerrtt__nneexxtt
  • 66. 66 aasssseerrtt__aallwwaayyss aasssseerrtt__aallwwaayyss ##(( sseevveerriittyy__lleevveell,, pprrooppeerrttyy__ttyyppee,, mmssgg,, ccoovveerraaggee__lleevveell )) iinnssttaannccee__nnaammee (( ccllkk,, rreesseett__nn,, tteesstt__eexxpprr ))  GGeenneerraall FFoorrmmaatt ffoorr aasssseerrtt__aallwwaayyss AAsssseerrttiioonn MMoonniittoorr CCoonnttiinnuuoouussllyy cchheecckkss iittss tteesstt__eexxpprr ttoo mmaakkee ssuurree iitt iiss aallwwaayyss ttrruuee oonn tthhee eeddggee ooff tthhee ssppeecciiffiieedd cclloocckk ((ccllkk)) IIff tthhee tteesstt eexxpprreessssiioonn ffaaiillss,, tthhee aasssseerrttiioonn ffiirreess aanndd iittss ccoorrrreessppoonnddiinngg mmeessssaaggee ((mmssgg)) iiss ddiissppllaayyeedd
  • 67. 67 mmoodduullee BBCCDD__CCoouunntteerr ((iinnppuutt rrsstt,, ccllkk,, oouuttppuutt rreegg [[33::00]] ccnntt));; aallwwaayyss @@((ppoosseeddggee ccllkk)) bbeeggiinn iiff ((rrsstt |||| ccnntt >>== 1100)) ccnntt == 00;; eellssee ccnntt == ccnntt ++ 11;; eenndd aasssseerrtt__aallwwaayyss ##((11,, 00,, ""EErrrr:: NNoonn BBCCDD CCoouunntt““,, 00)) AAAA11 ((ccllkk,, 11''bb11,, ((ccnntt >>== 00)) &&&& ((ccnntt <<== 99))));; eennddmmoodduullee aasssseerrtt__aallwwaayyss  BBCCDD wwiitthh aasssseerrtt__aallwwaayyss TThhiiss ccoouunntteerr ccoouunnttss bbeettwweeeenn 00 aanndd 99 TThhee aasssseerrttiioonn mmoonniittoorr hheerree uusseess sseevveerriittyy__lleevveell 11 TThhee tteesstt eexxpprreessssiioonn:: TThhee mmoonniittoorr cchheecckkss tthhaatt oonn eevveerryy rriissiinngg eeddggee ooff ccllkk,, ccnntt mmuusstt bbee bbeettwweeeenn 00 aanndd 99 IInnddiiccaatteess tthhaatt tthhee aasssseerrttiioonn iiss ttoo bbee mmoonniittoorreedd aatt aallll ttiimmeess
  • 68. 68 aasssseerrtt__aallwwaayyss mmoodduullee BBCCDD__CCoouunntteerr__TTeesstteerr;; rreegg rr,, cc;; wwiirree [[33::00]] ccoouunntt;; BBCCDD__CCoouunntteerr UUUUTT ((rr,, cc,, ccoouunntt));; iinniittiiaall bbeeggiinn rr == 00;; cc == 00;; eenndd iinniittiiaall rreeppeeaatt ((220000)) ##1177 cc== ~~cc;; iinniittiiaall rreeppeeaatt ((0033)) ##880077 rr== ~~rr;; eennddmmoodduullee  BBCCDD CCoouunntteerr TTeessttbbeenncchh EEvveenn tthhoouugghh cchheecckkiinngg ssiimmuullaattiioonn rreessuullttss iiss ddoonnee iinn aa sseemmii-aauuttoommaattiicc ffaasshhiioonn,, tteesstt ddaattaa ggeenneerraattiioonn iiss ssttiillll ddoonnee mmaannuuaallllyy bbyy tthhee ddeessiiggnneerr
  • 69. 69 aasssseerrtt__cchhaannggee AAsssseerrttiioonn MMoonniittoorrss assert_change aasssseerrtt__aallwwaayyss aasssseerrtt__cchhaannggee aasssseerrtt__oonnee__hhoott aasssseerrtt__ ccyyccllee__sseeqquueennccee aasssseerrtt__nneexxtt
  • 70. 70 aasssseerrtt__cchhaannggee aasssseerrtt__cchhaannggee VVeerriiffiieess tthhaatt wwiitthhiinn aa ggiivveenn nnuummbbeerr ooff cclloocckkss aafftteerr tthhee ssttaarrtt eevveenntt,, tthhee tteesstt eexxpprreessssiioonn cchhaannggeess.. ##(( sseevveerriittyy__lleevveell,, wwiiddtthh,, nnuumm__cckkss,, aaccttiioonn__oonn__nneeww__ssttaarrtt,, pprrooppeerrttyy__ttyyppee,, mmssgg,, ccoovveerraaggee__lleevveell )) iinnssttaannccee__nnaammee (( ccllkk,, rreesseett__nn,, ssttaarrtt__eevveenntt,, tteesstt__eexxpprr ))  GGeenneerraall FFoorrmmaatt ffoorr aasssseerrtt__cchhaannggee AAsssseerrttiioonn MMoonniittoorr
  • 71. 71 mmoodduullee WWaallkkiinngg__OOnnee ((iinnppuutt rrsstt,, ccllkk,, oouuttppuutt rreegg [[77::00]] wwoo));; aallwwaayyss @@((nneeggeeddggee ccllkk)) bbeeggiinn iiff ((rrsstt)) wwoo <<== 88''bb1100000000000000;; eellssee wwoo <<== {{wwoo[[00]],, wwoo[[77::11]]}};; eenndd aasssseerrtt__cchhaannggee ##((11,, 11,, 77,, 00,, 00,, ""EErrrr:: BBiitt 00 iiss nnoott cchhaannggiinngg““,, 00)) AACC11 ((~~ccllkk,, ~~rrsstt,, ((rrsstt====00)),, wwoo[[00]]));; aasssseerrtt__oonnee__hhoott ##((11,, 88,, 00,, ""EErrrr:: MMuullttiippllee aaccttiivvee bbiittss““,, 00)) AAOOHH ((~~ccllkk,, ~~rrsstt,, wwoo));; eennddmmoodduullee aasssseerrtt__cchhaannggee  WWaallkkiinngg OOnnee CCiirrccuuiitt wwiitthh AAsssseerrttiioonnss AA sshhiifftt rreeggiisstteerr tthhaatt wwaallkkss aa 11 wwiitthh eevveerryy cclloocckk.. AA 11 iiss llooaaddeedd iinnttoo tthhee lleefftt-mmoosstt bbiitt ooff wwoo wwiitthh tthhee rrsstt ssiiggnnaall
  • 72. 72 ........................................................ ........................................................ aallwwaayyss @@((nneeggeeddggee ccllkk)) bbeeggiinn CChheecckk tthhaatt ffrroomm tthhee ttiimmee tthhaatt ((rrsstt ==== 00)) aanndd wwhhiillee ((~~rrsstt)),, iitt ttaakkeess aatt mmoosstt 77 nneeggaattiivvee cclloocckk eeddggeess ffoorr wwoo[[00]] ttoo cchhaannggee.. iiff ((rrsstt)) wwoo <<== 88''bb1100000000000000;; eellssee wwoo <<== {{wwoo[[00]],, wwoo[[77::11]]}};; eenndd 11 ffoorr tthhee lleennggtthh ooff tthhee tteesstt eexxpprreessssiioonn aasssseerrtt__cchhaannggee ##((11,, 11,, 77,, 00,, 00,, ""EErrrr:: BBiitt 00 iiss nnoott cchhaannggiinngg““,, 00)) AACC11 ((~~ccllkk,, ~~rrsstt,, ((rrsstt====00)),, wwoo[[00]]));; ........................................................  WWaallkkiinngg OOnnee CCiirrccuuiitt wwiitthh AAsssseerrttiioonnss 77 ffoorr tthhee nnuummbbeerr ooff cclloocckkss tthhaatt cchhaannggee iiss ttoo ooccccuurr FFaalllliinngg eeddggee ooff ccllkk TTeesstt EExxpprreessssiioonn
  • 73. 73 aasssseerrtt__cchhaannggee mmoodduullee WWaallkkiinngg__OOnnee__TTeesstteerr (());; rreegg rrsstt==00,, ccllkk==00;; wwiirree [[77::00]] wwaallkkiinngg;; WWaallkkiinngg__OOnnee MMUUTT ((rrsstt,, ccllkk,, wwaallkkiinngg));; iinniittiiaall rreeppeeaatt ((222233)) ##77 ccllkk== ~~ccllkk;; iinniittiiaall rreeppeeaatt ((1155)) ##110099 rrsstt== ~~rrsstt;; eennddmmoodduullee  WWaallkkiinngg__OOnnee TTeessttbbeenncchh IItt iiss tthhee rreessppoonnssiibbiilliittyy ooff tthhee tteessttbbeenncchh ddeevveellooppeerr ttoo mmaakkee ssuurree eennoouugghh ddaattaa iiss aapppplliieedd ttoo ccaauussee ddeessiiggnn eerrrroorrss ttoo ttrriiggggeerr aasssseerrttiioonn mmoonniittoorrss..
  • 74. 74 aasssseerrtt__cchhaannggee WWhheenn rrsstt bbeeccoommeess 11,, tthhee ffaalllliinngg eeddggee ooff tthhee cclloocckk ppuuttss aa 11 iinnttoo wwoo[[77]] SSiiggnnaallss ccoonnnneecctteedd ttoo wwoo[[77]] ttoo wwoo[[00]]  WWaallkkiinngg-OOnnee TTeesstt RReessuullttss WWhheenn rrsstt bbeeccoommeess 00,, tthhiiss 11 ssttaarrttss wwaallkkiinngg,, iitt ttaakkeess 77 cclloocckk eeddggeess ffoorr tthhiiss 11 ttoo wwaallkk ttoo bbiitt 00 ooff wwoo..
  • 75. 75 aasssseerrtt__oonnee__hhoott AAsssseerrttiioonn MMoonniittoorrss aasssseerrtt__aallwwaayyss aasssseerrtt__cchhaannggee aasssseerrtt__oonnee__hhoott aasssseerrtt__ ccyyccllee__sseeqquueennccee assert_one_hot aasssseerrtt__nneexxtt
  • 76. 76 aasssseerrtt__oonnee__hhoott aasssseerrtt__oonnee__hhoott ##(( sseevveerriittyy__lleevveell,, wwiiddtthh,, pprrooppeerrttyy__ttyyppee,, mmssgg,, ccoovveerraaggee__lleevveell )) iinnssttaannccee__nnaammee (( ccllkk,, rreesseett__nn,, tteesstt__eexxpprr ))  GGeenneerraall FFoorrmmaatt ffoorr aasssseerrtt__oonnee__hhoott AAsssseerrttiioonn MMoonniittoorr CChheecckkss tthhaatt wwhhiillee tthhee mmoonniittoorr iiss aaccttiivvee,, oonnllyy oonnee bbiitt ooff iittss nn-bbiitt tteesstt eexxpprreessssiioonn iiss 11..
  • 77. 77 mmoodduullee WWaallkkiinngg__OOnnee ((iinnppuutt rrsstt,, ccllkk,, oouuttppuutt rreegg [[77::00]] wwoo));; aallwwaayyss @@((nneeggeeddggee ccllkk)) bbeeggiinn iiff ((rrsstt)) wwoo <<== 88''bb1100000000000000;; eellssee wwoo <<== {{wwoo[[00]],, wwoo[[77::11]]}};; eenndd aasssseerrtt__cchhaannggee ##((11,, 11,, 77,, 00,, 00,, ""EErrrr:: BBiitt 00 iiss nnoott cchhaannggiinngg““,, 00)) AACC11 ((~~ccllkk,, ~~rrsstt,, ((rrsstt====00)),, wwoo[[00]]));; aasssseerrtt__oonnee__hhoott ##((11,, 88,, 00,, ""EErrrr:: MMuullttiippllee aaccttiivvee bbiittss““,, 00)) AAOOHH ((~~ccllkk,, ~~rrsstt,, wwoo));; eennddmmoodduullee aasssseerrtt__oonnee__hhoott  WWaallkkiinngg OOnnee CCiirrccuuiitt wwiitthh AAsssseerrttiioonnss
  • 78. 78 aasssseerrtt__oonnee__hhoott ........................................................ ........................................................ aallwwaayyss @@((nneeggeeddggee ccllkk)) bbeeggiinn iiff ((rrsstt)) wwoo <<== 88''bb1100000000000000;; eellssee wwoo <<== {{wwoo[[00]],, wwoo[[77::11]]}};; eenndd TTeesstt eexxpprreessssiioonn wwiiddtthh ........................................................ aasssseerrtt__oonnee__hhoott ##((11,, 88,, 00,, ""EErrrr:: MMuullttiippllee aaccttiivvee bbiittss““,, 00)) AAOOHH ((~~ccllkk,, ~~rrsstt,, wwoo));;  WWaallkkiinngg OOnnee CCiirrccuuiitt wwiitthh AAsssseerrttiioonnss TTeesstt eexxpprreessssiioonn MMaakkeess tthhee cchheecckkiinngg aaccttiivvee oonnllyy wwhheenn rrsstt iiss 00
  • 79. 79 aasssseerrtt__oonnee__hhoott mmoodduullee ggrraayy__ccoouunntteerr ((iinnppuutt [[33::00]] dd__iinn,, iinnppuutt ccllkk,, rrsstt,, lldd,, oouuttppuutt rreegg [[33::00]] qq));; rreegg [[33::00]] mmeemm[[00::1155]];; rreegg [[33::00]] iimm__qq;; iinniittiiaall $$rreeaaddmmeemmbb((""mmeemm..ddaatt"",, mmeemm));; aallwwaayyss @@(( dd__iinn oorr lldd oorr qq )) bbeeggiinn:: ccoommbbiinnaattiioonnaall iiff(( lldd )) iimm__qq == dd__iinn;; eellssee iimm__qq == mmeemm[[qq]];; eenndd ........................................................  GGrraayy CCooddee CCoouunntteerr TThhee mmeemm..ddaatt ffiillee tthhaatt ccoonnttaaiinnss ccoonnsseeccuuttiivvee GGrraayy ccooddee nnuummbbeerrss iiss rreeaadd iinnttoo mmeemm.. WWiitthh eeaacchh cclloocckk,, tthhee nneexxtt GGrraayy ccoouunntt iiss llooookkeedd uupp ffrroomm mmeemm..
  • 80. 80 aasssseerrtt__oonnee__hhoott ........................................................ aallwwaayyss @@(( ppoosseeddggee ccllkk )) bbeeggiinn:: rreeggiisstteerr iiff(( rrsstt )) qq <<== 44''bb00000000;; eellssee qq <<== iimm__qq;; eenndd rreegg [[33::00]] oolldd;; aallwwaayyss @@((ppoosseeddggee ccllkk)) oolldd <<== qq;; aasssseerrtt__oonnee__hhoott ##((11,, 44,, 00,, ""EErrrr:: NNoott GGrraayy““,, 00)) AAOOHH ((~~ccllkk,, ~~rrsstt,, ((oolldd ^^ qq))));; eennddmmoodduullee  GGrraayy CCooddee CCoouunntteerr ((CCoonnttiinnuueedd)) IInn oorrddeerr ttoo cchheecckk ffoorr tthhee ccoorrrreecctt GGrraayy ccooddee sseeqquueenncciinngg,, ssoommee aauuxxiilliiaarryy llooggiicc hhaavvee bbeeeenn uusseedd ttoo pprreeppaarree tthhee tteesstt eexxpprreessssiioonn CCoonnsseeccuuttiivvee GGrraayy ccooddee nnuummbbeerrss aarree oonnllyy ddiiffffeerreenntt iinn oonnee bbiitt,, tthheeiirr XXOORR mmuusstt bbee oonnee-hhoott..
  • 81. 81 aasssseerrtt__ccyyccllee__sseeqquueennccee AAsssseerrttiioonn MMoonniittoorrss aasssseerrtt__aallwwaayyss aasssseerrtt__cchhaannggee aasssseerrtt__oonnee__hhoott aasssseerrtt__ ccyyccllee__sseeqquueennccee aasssseerrtt__nneexxtt assert_ cycle_sequence
  • 82. CChheecckkss ffoorr aa sseeqquueennccee ooff eevveennttss iinn aa ggiivveenn nnuummbbeerr ooff cclloocckkss.. iinnssttaannccee__nnaammee (( ccllkk,, rreesseett__nn,, eevveenntt__sseeqquueennccee)) LLiikkee ootthheerr aasssseerrttiioonn mmoonniittoorrss,, tthhiiss mmoonniittoorr hhaass aann eennaabblliinngg iinnppuutt tthhaatt iiss uussuuaallllyy ddrriivveenn bbyy tthhee iinnaaccttiivvee lleevveell 82 aasssseerrtt__ccyyccllee__sseeqquueennccee aasssseerrtt__ccyyccllee__sseeqquueennccee ##(( sseevveerriittyy__lleevveell,, nnuumm__cckkss,, nneecceessssaarryy__ccoonnddiittiioonn,, pprrooppeerrttyy__ttyyppee,, mmssgg,, ccoovveerraaggee__lleevveell ))  GGeenneerraall FFoorrmmaatt ffoorr aasssseerrtt__ccyyccllee__sseeqquueennccee AAsssseerrttiioonn MMoonniittoorr ooff aa cciirrccuuiitt’’ss rreesseett iinnppuutt..
  • 83. 83 aasssseerrtt__ccyyccllee__sseeqquueennccee  AA SSeeqquueenncciinngg SSttaattee MMaacchhiinnee AAfftteerr tthhee rreesseett ssttaattee,, tthhee mmaacchhiinnee sseeaarrcchheess ffoorr 111100 sseeqquueennccee.. WWhheenn 111100 iiss rreecceeiivveedd tthhee nneexxtt 22 cclloocckk ccyycclleess ttaakkee tthhee mmaacchhiinnee bbaacckk ttoo ssttaattee aa
  • 84. 84 aasssseerrtt__ccyyccllee__sseeqquueennccee mmoodduullee SSeeqquueenncciinngg__MMaacchhiinnee ((iinnppuutt xx,, ssttaarrtt,, rrsstt,, ccllkk,, oouuttppuutt zz ));; ppaarraammeetteerr aa==00,, bb==11,, cc==22,, dd==33,, ee==44;; rreegg [[22::00]] ccuurrrreenntt;; ........................................................ ........................................................  VVeerriilloogg CCooddee ooff SSeeqquueenncciinngg__MMaacchhiinnee
  • 85. 85 aasssseerrtt__ccyyccllee__sseeqquueennccee ........................................................ aallwwaayyss @@(( ppoosseeddggee ccllkk )) iiff (( rrsstt )) ccuurrrreenntt <<== aa;; eellssee iiff (( ~~ssttaarrtt )) ccuurrrreenntt <<== aa;; eellssee ccaassee (( ccuurrrreenntt )) aa :: ccuurrrreenntt <<== xx ?? bb :: aa ;; bb :: ccuurrrreenntt <<== xx ?? cc :: aa ;; cc :: ccuurrrreenntt <<== xx ?? cc :: dd ;; dd :: ccuurrrreenntt <<== ee ;; ee :: ccuurrrreenntt <<== aa ;; ddeeffaauulltt:: ccuurrrreenntt <<== aa;; eennddccaassee  VVeerriilloogg CCooddee ooff SSeeqquueenncciinngg__MMaacchhiinnee ((CCoonnttiinnuueedd))
  • 86. TThhiiss mmoonniittoorr iiss sseettuupp ttoo cchheecckk iiff tthhee mmaacchhiinnee rreeaacchheess ssttaatteess dd aanndd tthheenn ssttaattee ee,, tthheenn tthhee nneexxtt cclloocckk wwiillll mmoovvee tthhee 86 aasssseerrtt__ccyyccllee__sseeqquueennccee FFoorr cchheecckkiinngg tthhaatt tthhee llaasstt ssttaattee ooff tthhee sseeqquueennccee iiss rreeaacchheedd iiff tthhee pprreevviioouuss ssttaatteess aarree rreeaacchheedd iinn tthhee ssppeecciiffiieedd sseeqquueennccee.. ........................................................ aassssiiggnn zz == ((ccuurrrreenntt====ee));; aasssseerrtt__ccyyccllee__sseeqquueennccee NNuummbbeerr ooff ssttaatteess iinn sseeqquueennccee mmaacchhiinnee iinnttoo ssttaattee aa.. ##((11,, 33,, 00,, 00,, ""EErrrr:: SSttaattee sseeqquueennccee nnoott ffoolllloowweedd““,, 00)) AACCSS ((ccllkk,, ~~rrsstt,, {{((ccuurrrreenntt====dd)),, ((ccuurrrreenntt====ee)),, ((ccuurrrreenntt====aa))}}));; aasssseerrtt__nneexxtt ##((11,, 22,, 11,, 00,, 00,, ""EErrrr:: OOuuttppuutt ssttaattee TThhee sseeqquueennccee ooff ssttaatteess ttoo vveerriiffyy nnoott rreeaacchheedd““,, 00)) AANN11 ((ccllkk,, ~~rrsstt,, ((ccuurrrreenntt====cc &&&& xx====00)),, ((zz====11))));; eennddmmoodduullee  VVeerriilloogg CCooddee ooff SSeeqquueenncciinngg__MMaacchhiinnee ((CCoonnttiinnuueedd))
  • 87. 87 aasssseerrtt__ccyyccllee__sseeqquueennccee  SSeeqquueenncciinngg__MMaacchhiinnee SSttaattee TTrraannssiittiioonnss IIff tthhee mmaacchhiinnee eenntteerrss ssttaattee 44 ((ee )),, tthheenn ssttaattee 00 ((aa )) iiss eenntteerreedd..
  • 88. 88 aasssseerrtt__nneexxtt AAsssseerrttiioonn MMoonniittoorrss aasssseerrtt__aallwwaayyss aasssseerrtt__cchhaannggee aasssseerrtt__oonnee__hhoott aasssseerrtt__ ccyyccllee__sseeqquueennccee aaasssssseeerrrttt___nnneeexxxttt
  • 89. 89 aasssseerrtt__nneexxtt aasssseerrtt__nneexxtt ##(( sseevveerriittyy__lleevveell,, nnuumm__cckkss,, cchheecckk__oovveerrllaappppiinngg,, cchheecckk__mmiissssiinngg__ssttaarrtt,, pprrooppeerrttyy__ttyyppee,, mmssgg,, ccoovveerraaggee__lleevveell )) iinnssttaannccee__nnaammee (( ccllkk,, rreesseett__nn,, ssttaarrtt__eevveenntt,, tteesstt__eexxpprr))  GGeenneerraall FFoorrmmaatt ffoorr aasssseerrtt__nneexxtt AAsssseerrttiioonn MMoonniittoorr VVeerriiffiieess tthhaatt ssttaarrttiinngg aanndd aann eennddiinngg eevveennttss ooccccuurr wwiitthh aa ssppeecciiffiieedd nnuummbbeerr ooff cclloocckkss iinn bbeettwweeeenn..
  • 90. VVeerriiffyyiinngg tthhaatt tthheerree aarree ttwwoo cclloocckk ccyycclleess bbeettwweeeenn tthhee ttiimmee tthhaatt ccuurrrreenntt bbeeccoommeess cc wwhhiillee xx iiss 00,, aanndd tthhee ttiimmee tthhaatt zz 90 ........................................................ aassssiiggnn zz == ((ccuurrrreenntt====ee));; aasssseerrtt__ccyyccllee__sseeqquueennccee ##((11,, 33,, 00,, 00,, ""EErrrr:: SSttaattee sseeqquueennccee nnoott ffoolllloowweedd““,, 00)) NNuummbbeerr ooff cclloocckk ccyycclleess bbeettwweeeenn tthhee eevveennttss AACCSS ((ccllkk,, ~~rrsstt,, {{((ccuurrrreenntt====dd)),, ((ccuurrrreenntt====ee)),, ((ccuurrrreenntt====aa))}}));; aasssseerrtt__nneexxtt ##((11,, 22,, 11,, 00,, 00,, ""EErrrr:: OOuuttppuutt ssttaattee nnoott rreeaacchheedd““,, 00)) AANN11 ((ccllkk,, ~~rrsstt,, ((ccuurrrreenntt====cc &&&& xx====00)),, ((zz====11))));; eennddmmoodduullee aasssseerrtt__nneexxtt  VVeerriilloogg CCooddee ooff SSeeqquueenncciinngg__MMaacchhiinnee ((CCoonnttiinnuueedd)) bbeeccoommeess 11.. SSttaarrtt EExxpprreessssiioonn TTeesstt EExxpprreessssiioonn
  • 91. 91 AAsssseerrttiioonn TTeemmppllaatteess AAsssseerrttiioonn VVeerriiffiiccaattiioonn AAsssseerrttiioonn VVeerriiffiiccaattiioonn BBeenneeffiittss OOppeenn VVeerriiffiiccaattiioonn LLiibbrraarryy UUssiinngg AAsssseerrttiioonn MMoonniittoorrss Assertion Templates AAsssseerrttiioonn TTeemmppllaatteess
  • 92. 92 AAsssseerrttiioonn TTeemmppllaatteess  HHaarrddwwaarree ffeeaattuurreess ddeessiiggnneerrss mmaayy nneeeedd ttoo vveerriiffyy,, aanndd hhooww aasssseerrttiioonnss ccaann bbee uusseedd ffoorr tthheeiirr vveerriiffiiccaattiioonn
  • 93. 93 AAsssseerrttiioonn TTeemmppllaatteess AAsssseerrttiioonn TTeemmppllaatteess RReesseett SSeeqquueennccee IInniittiiaall RReesseettttiinngg IImmpplliiccaattiioonn VVaalliidd SSttaatteess
  • 94. 94 RReesseett SSeeqquueennccee AAsssseerrttiioonn TTeemmppllaatteess Reset Sequence RReesseett SSeeqquueennccee IInniittiiaall RReesseettttiinngg IImmpplliiccaattiioonn VVaalliidd SSttaatteess
  • 95. 95 RReesseett SSeeqquueennccee mmoodduullee SSeeqquueenncciinngg__MMaacchhiinnee ((iinnppuutt xx,, ssttaarrtt,, rrsstt,, ccllkk,, oouuttppuutt zz ));; ppaarraammeetteerr aa==00,, bb==11,, cc==22,, dd==33,, ee==44;; //// .. .. .. aasssseerrtt__ccyyccllee__sseeqquueennccee ##((11,, 44,, 00,, 00,, ""EErrrr::RReesseettttiinngg ddooeess nnoott ooccccuurr"")) AACCSS22 ((ccllkk,, ~~rrsstt,, {{((xx====00)),, ((xx====00)),, ((xx====00)),, ((ccuurrrreenntt====aa))}}));; //// .. .. .. eennddmmoodduullee  AAsssseerrttiioonn RReesseett SSeeqquueennccee OOfftteenn ccoonnttrroolllleerrss hhaavvee aa rreesseettttiinngg sseeqquueennccee tthhaatt wwiitthh cceerrttaaiinn sseeqquueennccee ooff iinnppuuttss,, tthhee mmaacchhiinnee eennddss ooff wwhhaatt ssttaattee iitt iiss iinn.. VVeerriiffiieess tthhaatt iiff iinn tthhrreeee ccoonnsseeccuuttiivvee cclloocckkss,, xx iiss 00,, iinn tthhee ffoouurrtthh cclloocckk tthhee ccuurrrreenntt ssttaattee ooff tthhee mmaacchhiinnee bbeeccoommeess aa..
  • 96. 96 IInniittiiaall RReesseettttiinngg AAsssseerrttiioonn TTeemmppllaatteess RReesseett SSeeqquueennccee Initial Resetting IInniittiiaall RReesseettttiinngg IImmpplliiccaattiioonn VVaalliidd SSttaatteess
  • 97. 97 IInniittiiaall RReesseettttiinngg mmoodduullee mmeeaallyy__ddeetteeccttoorr ((iinnppuutt xx,, rrsstt,, ccllkk,, oouuttppuutt zz));; llooccaallppaarraamm [[11::00]] rreesseett == 00,, //// 00 == 00 00 ggoott11 == 11,, //// 11 == 00 11 ggoott1100 == 22;; //// 22 == 11 00 rreegg [[11::00]] ccuurrrreenntt;; ........................................................ ........................................................ ........................................................ eennddmmoodduullee  HHaarrdd--RReesseett AAsssseerrttiioonn FFoorr vveerriiffiiccaattiioonn ooff mmaannyy sseeqquueennttiiaall cciirrccuuiittss bbeeccoommeess nneecceessssaarryy ttoo cchheecckk ffoorr rreesseettttiinngg tthhee cciirrccuuiitt uussiinngg aa ssyynncchhrroonnoouuss oorr aassyynncchhrroonnoouuss rreesseett iinnppuutt.. AA MMeeaallyy MMaacchhiinnee
  • 98. 98 IInniittiiaall RReesseettttiinngg ........................................................ aallwwaayyss @@(( ppoosseeddggee ccllkk )) bbeeggiinn iiff ((rrsstt)) ccuurrrreenntt <<== rreesseett;; eellssee ccaassee (( ccuurrrreenntt )) rreesseett:: iiff(( xx====11’’bb11 )) ccuurrrreenntt <<== ggoott11;; eellssee ccuurrrreenntt <<== rreesseett;; ggoott11:: iiff(( xx====11’’bb00 )) ccuurrrreenntt <<== ggoott1100;; eellssee ccuurrrreenntt <<== ggoott11;; ggoott1100:: iiff(( xx====11’’bb11 )) ccuurrrreenntt <<== ggoott11;; eellssee ccuurrrreenntt <<== rreesseett;; ddeeffaauulltt:: ccuurrrreenntt <<== rreesseett;; eennddccaassee eenndd  HHaarrdd--RReesseett AAsssseerrttiioonn ((CCoonnttiinnuueedd))
  • 99. 99 IInniittiiaall RReesseettttiinngg ........................................................ ........................................................ aassssiiggnn zz == (( ccuurrrreenntt====ggoott1100 &&&& xx====11’’bb11 )) ?? 11’’bb11 :: 11’’bb00;; aasssseerrtt__nneexxtt ##((11,, 11,, 11,, 00,, 00,, ““EErrrr:: MMaacchhiinnee ddooeess nnoott rreesseett pprrooppeerrllyy””,, 00)) AANN11 ((ccllkk,, 11’’bb11,, rrsstt,, ((ccuurrrreenntt====rreesseett))));; eennddmmoodduullee  HHaarrdd--RReesseett AAsssseerrttiioonn ((CCoonnttiinnuueedd)) AAsssseerrttiioonn MMoonniittoorr iiss aallwwaayyss aaccttiivvee.. CChheecckkss iiff rrsstt iiss 11 tthheenn tthhee nneexxtt ccuurrrreenntt ssttaattee bbeeccoommeess rreesseett
  • 100. 100 IImmpplliiccaattiioonn AAsssseerrttiioonn TTeemmppllaatteess RReesseett SSeeqquueennccee IInniittiiaall RReesseettttiinngg IImmpplliiccaattiioonn VVaalliidd SSttaatteess Implication
  • 101. CChheecckkss oonn tthhee ssppeecciiffiieedd cclloocckk eeddggee ffoorr tthhee aanntteecceeddeenntt eexxpprreessssiioonn ttoo bbee ttrruuee.. IIff iitt iiss,, ccoonnsseeqquueennccee eexxpprreessssiioonn ttoo bbee ttrruuee.. IIff ssoo,, iitt wwiillll ssttaayy qquuiieett,, 101 IImmpplliiccaattiioonn aasssseerrtt__iimmpplliiccaattiioonn AA tthheenn uusseeffuull iitt cchheecckkss aasssseerrttiioonn ffoorr tthhee ffoorr cchheecckkiinngg eexxppeecctteedd eevveennttss,, oorr eevveennttss iimmpplliieedd bbyy ootthheerr eevveennttss ootthheerrwwiissee iitt wwiillll ffiirree.. ##(( sseevveerriittyy__lleevveell,, pprrooppeerreettyy__ttyyppee,, mmssgg,, ccoovveerraaggee__lleevveell )) iinnssttaannccee__nnaammee (( ccllkk,, rreesseett__nn,, aanntteecceeddeenntt__eexxpprr,, ccoonnsseeqquueennccee__eexxpprr ))  GGeenneerraall FFoorrmmaatt ffoorr aasssseerrtt__iimmpplliiccaattiioonn AAsssseerrttiioonn MMoonniittoorr
  • 102. 102 IImmpplliiccaattiioonn CChheecckkss tthhee oouuttppuutt vvaalluuee iinn tthhee ggoott1100 ssttaattee wwhhiillee xx iiss 11 mmoodduullee mmeeaallyy__ddeetteeccttoorr22 ((iinnppuutt xx,, rrsstt,, ccllkk,, oouuttppuutt zz));; //// .. .. .. aasssseerrtt__iimmpplliiccaattiioonn ##((11,, 00,, ““EErrrr:: OOuuttppuutt nnoott aasssseerrtteedd””,, 00)) AAII11 ((ccllkk,, 11’’bb11,, ((ccuurrrreenntt====ggoott1100 &&&& xx)),, ((zz====11))));; //// .. .. .. eennddmmoodduullee  AAsssseerrttiinngg IImmpplliiccaattiioonn AAllwwaayyss AAccttiivvee
  • 103. 103 VVaalliidd SSttaatteess AAsssseerrttiioonn TTeemmppllaatteess RReesseett SSeeqquueennccee IInniittiiaall RReesseettttiinngg IImmpplliiccaattiioonn VVVaaallliiiddd SSStttaaattteeesss
  • 104. IInn tthhee sseeqquueennttiiaall cciirrccuuiitt tteessttiinngg iitt oofftteenn bbeeccoommeess nneecceessssaarryy ttoo cchheecckk ffoorr tthhee mmaacchhiinnee’’ss vvaalliidd ssttaatteess aanndd iissssuuee aa wwaarrnniinngg iiff tthhee mmaacchhiinnee 104 VVaalliidd SSttaatteess IIff tthhee ssttaatteess ooff tthhee mmaacchhiinnee bbeeiinngg tteesstteedd aarree ccoonnsseeccuuttiivvee bbiinnaarryy nnuummbbeerrss aasssseerrtt__nnoo__oovveerrffllooww eenntteerrss aann iinnvvaalliidd ssttaattee.. ##(( sseevveerriittyy__lleevveell,, wwiiddtthh,, mmiinn,, mmaaxx,, pprrooppeerrttyy__ttyyppee,, mmssgg,, ccoovveerraaggee__lleevveell )) iinnssttaannccee__nnaammee (( ccllkk,, rreesseett__nn,, tteesstt__eexxpprr ))  GGeenneerraall FFoorrmmaatt ffoorr aasssseerrtt__nnoo__oovveerrffllooww AAsssseerrttiioonn MMoonniittoorr
  • 105. 105 VVaalliidd SSttaatteess OOff tthhee ffoouurr ppoossssiibbllee ssttaatteess,, iitt iiss uussiinngg oonnllyy tthhrreeee:: rreesseett,, ggoott11,, ggoott1100.. TThhee rraannggee ooff vvaalluueess tthhee tteesstt eexxpprreessssiioonn ccaann ttaakkee.. mmoodduullee mmeeaallyy__ddeetteeccttoorr22 ((iinnppuutt xx,, rrsstt,, ccllkk,, oouuttppuutt zz));; ((MMiinn aanndd MMaaxx)) //// .. .. .. aasssseerrtt__nnoo__oovveerrffllooww ##((11,, 22,, 00,, 22,, 00,, ““EErrrr:: IInnvvaalliidd ssttaattee””,, 00)) AANNVV11 ((ccllkk,, 11’’bb11,, ccuurrrreenntt));; //// .. .. .. eennddmmoodduullee  CChheecckkiinngg ffoorr IInnvvaalliidd SSttaatteess TThhee aasssseerrttiioonn ffiirreess,, iiff tthhee MMeeaallyy mmaacchhiinnee eevveerr eenntteerrss,, tthhee mmaacchhiinnee’’ss iinnvvaalliidd ssttaattee.. TThhee ssiizzee ooff vveeccttoorr bbeeiinngg tteesstteedd
  • 106. 106 TTeexxtt BBaasseedd TTeessttbbeenncchheess  VVeerriilloogg hhaass aann eexxtteennssiivvee sseett ooff ttaasskkss ffoorr rreeaaddiinngg aanndd wwrriittiinngg eexxtteerrnnaall ffiilleess::  OOppeenniinngg aanndd cclloossiinngg ffiilleess,,  PPoossiittiioonniinngg aa ppooiinntteerr iinn aa ffiillee,,  WWrriittiinngg oorr aappppeennddiinngg aa ffiillee  RReeaaddiinngg ffiilleess
  • 107. 107 SSuummmmaarryy  TThhiiss cchhaapptteerr ddiissccuusssseedd::  TThhee uussee ooff VVeerriilloogg ccoonnssttrruuccttss ffoorr ddeevveellooppiinngg tteessttbbeenncchheess  DDaattaa ggeenneerraattiioonn aanndd rreessppoonnssee aannaallyyssiiss bbyy uussee ooff VVeerriilloogg  HHooww aasssseerrttiioonn mmoonniittoorrss ccoouulldd bbee uusseedd ffoorr rreedduucciinngg eeffffoorrttss nneeeeddeedd ffoorr rreessppoonnssee aannaallyyssiiss ooff aa uunniitt--uunnddeerr--tteesstt..  DDeevveellooppiinngg ggoooodd tteessttbbeenncchheess ffoorr ccoommpplleexx ddeessiiggnnss rreeqquuiirreess ddeessiiggnn oobbsseerrvvaabbiilliittyy ggiivveenn ttoo ddeessiiggnneerrss bbyy uussee ooff aasssseerrttiioonnss..