Publicité

Chapter 6 testbench

12 Dec 2014
Publicité

Contenu connexe

Publicité
Publicité

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..
Publicité