%!PS-Adobe-2.0 %%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software %%Title: vis_user.dvi %%Pages: 45 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%DocumentFonts: Times-Roman Times-Bold Courier Times-Italic %%EndComments %DVIPSCommandLine: dvips vis_user.dvi -o vis_user.ps %DVIPSParameters: dpi=300, comments removed %DVIPSSource: TeX output 1996.04.17:1030 %%BeginProcSet: tex.pro /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} forall round exch round exch]setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ /nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ /sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ 128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]} if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V {}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail {dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ 4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end %%EndProcSet %%BeginProcSet: texps.pro TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2 index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict end definefont 3 -1 roll makefont /setfont load]cvx def}def /ObliqueSlant{dup sin S cos div neg}B /SlantFont{4 index mul add}def /ExtendFont{3 -1 roll mul exch}def /ReEncodeFont{/Encoding exch def}def end %%EndProcSet %%BeginProcSet: special.pro TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N /vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B /@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ /CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ 10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B /@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale true def end /@MacSetUp{userdict /md known{userdict /md get type /dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{itransform lineto} }{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N /txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp {pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict maxlength dict begin /magscale true def normalscale currentpoint TR /psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts /psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR /showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict begin /SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial {CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR }{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath }N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ /SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X /startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet TeXDict begin 40258437 52099154 1000 300 300 (vis_user.dvi) @start /Fa 80[19 53[17 4[10 1[15 3[19 4[10 19 2[17 1[17 19 19 51[12 45[{}12 37.500000 /Times-Italic rf /Fb 4 62 df<0040008001000300060004000C0018001800380030003000700060006000600060 00E000E000E000E000E000E000E000E000E000E000E000E0006000600060006000700030 0030003800180018000C000400060003000100008000400A2E7BA112>40 D<8000400020003000180008000C00060006000700030003000380018001800180018001 C001C001C001C001C001C001C001C001C001C001C001C001800180018001800380030003 000700060006000C000800180030002000400080000A2E7EA112>I<0003000000030000 000300000003000000030000000300000003000000030000000300000003000000030000 00030000000300000003000000030000FFFFFFFCFFFFFFFC000300000003000000030000 000300000003000000030000000300000003000000030000000300000003000000030000 0003000000030000000300001E207E9A23>43 D<7FFFFFF8FFFFFFFC0000000000000000 000000000000000000000000000000000000000000000000FFFFFFFC7FFFFFF81E0C7E90 23>61 D E /Fc 9 113 df<000200000200000400000400000400000400000800000800 00080000080000FE000391800E10C0181060382070702070602070E02070E04070E04060 E040E0E041C0608180308700189C0007F000010000010000010000010000020000020000 02000014217F9917>30 D<00010000010000020000020000020000020000040000040000 04000004003808304C08384E08388E08189C10189C10181C101038101038201038202070 20203020403840801841000E460003F80000800000800000800000800001000001000001 000015217E9919>32 D<000010000000300000007000000070000000F8000000B8000001 3800000238000002380000043800000C38000008380000103C0000101C0000201C000040 1C00007FFC0000801C0000801C0001001C0002001C0002000E0004000E000C000E001C00 0E00FF00FFC01A1A7F991D>65 D<03FFFFC0007001C0007000C00070004000E0004000E0 004000E0004000E0004001C0200001C0200001C0200001C0600003FFC0000380C0000380 400003804000070080000700010007000100070002000E0002000E0006000E0004000E00 0C001C003800FFFFF8001A1A7E991C>69 D<03FFFFC0007001C0007000C00070004000E0 004000E0004000E0004000E0004001C0200001C0200001C0200001C0600003FFC0000380 C0000380400003804000070080000700000007000000070000000E0000000E0000000E00 00000E0000001E000000FFE000001A1A7E9919>I<0007E040003C18C000E005C001C003 C003800180070001800E0001801C0001803C000100380001007800000078000000F00000 00F0000000F0000000F001FF80F0001C00F0001C00F0001C00F0001C0070003800300038 00380038001C0078000703900001FC10001A1A7E991E>I<7FE03FC00E000E000E000400 0E0004001C0008001C0008001C0008001C00080038001000380010003800100038001000 70002000700020007000200070002000E0004000E0004000E0004000E0008000E0008000 E001000060020000300400001818000007E000001A1A7E991A>85 D<01FF01FE003C00F0003C0040001C0080001C0100000E0200000E0400000F0800000710 000007A0000003C0000003C0000001C0000003C0000007E0000004E0000008F000001070 0000207800004038000080380001001C0002001C0004001E001E001E00FF007FC01F1A7F 9920>88 D<07078005984009E06009C07009C03009C07003807003807003807003806007 00E00700C00701C00703800E86000E7C000E00000E00001C00001C00001C00001C0000FF 00001417828F13>112 D E /Fd 60[20 69[20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1[20 1[20 1[20 1[20 20 20 20 20 20 1[20 20 20 20 20 2[20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1[20 20 20 20 33[{}86 33.333332 /Courier rf /Fe 169[22 8[27 18 76[{}3 29.999987 /Times-Roman rf /Ff 69[17 10[21 21 3[17 47[17 19 19 27 19 19 10 15 12 19 19 19 19 29 10 19 1[10 19 19 12 17 19 17 19 17 3[12 1[12 3[35 27 1[23 21 3[27 1[33 23 2[12 2[21 2[25 25 27 13[19 19 3[9 12 9 2[12 12 40[{}50 37.500000 /Times-Roman rf /Fg 204[12 12 12 49[{}3 25.000000 /Times-Roman rf /Fh 169[34 8[41 28 76[{}3 46.666649 /Times-Roman rf /Fi 80[23 23 52[20 20 30 20 23 13 18 18 23 23 23 23 33 13 20 1[13 23 23 13 20 23 20 23 23 6[25 3[28 2[23 28 1[28 1[30 4[15 33 1[28 28 1[30 4[31 1[31 13[11 15 11 44[{}42 45.833332 /Times-Italic rf /Fj 7 95 df<03F0000FFC001FFE003FFF007FFF807F FF80FFFFC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC07FFF807FFF803FFF001FFE000FFC0003 F00012127E9317>15 D<003FFFC000FFFFC003C00000070000000C000000180000003000 0000300000006000000060000000C0000000C0000000C0000000C0000000C0000000C000 0000C000000060000000600000003000000030000000180000000C0000000700000003C0 000000FFFFC0003FFFC00000000000000000000000000000000000000000000000000000 00007FFFFFC07FFFFFC01A247C9C23>18 D<000000060000000006000000000600000000 030000000003000000000380000000018000000000C00000000060000000007000000000 18FFFFFFFFFFFFFFFFFFFF00000000180000000070000000006000000000C00000000180 00000003800000000300000000030000000006000000000600000000060028187E962D> 33 D58 D<00020000060003F600061C000C 0C00180E00300F00301B00701B80601980603180603180E031C0E031C0E061C0E061C0E0 61C0E061C0E0C1C0E0C1C0E0C1C0E181C0E181C0E181C0E181C0E301C063018063018073 03807603803603003603001C06000C0C000E18000FF00018000018000018000012277EA2 17>I<00FF800003FFE0000F0078001C001C00300006006000030060000300C0000180C0 000180C0000180C0000180C0000180C0000180C0000180C0000180C0000180C0000180C0 000180C0000180C0000180C0000180C0000180C0000180C0000180C0000180C0000180C0 00018040000080191C7E9A1E>92 D<00080000001C0000001C0000003600000036000000 360000006300000063000000C1800000C180000180C0000180C000030060000300600003 00600006003000060030000C0018000C00180018000C0018000C00300006003000060030 0006006000030060000300C0000180C0000080191C7E9A1E>94 D E /Fk 81[28 52[25 1[36 25 28 17 19 22 1[28 25 28 41 14 28 1[14 28 25 17 22 28 22 28 25 10[36 1[33 28 36 1[30 39 36 47 33 2[19 2[30 1[36 36 33 36 6[17 4[25 25 25 25 25 2[12 17 45[{}46 50.000000 /Times-Bold rf /Fl 81[32 52[29 29 42 29 32 19 23 26 32 32 29 32 48 16 32 1[16 32 29 19 26 32 26 32 29 9[58 42 1[39 32 42 1[36 45 42 55 39 2[23 45 1[36 39 42 42 39 42 1[29 4[19 29 29 29 29 29 29 29 29 29 2[15 19 45[{}56 58.333336 /Times-Bold rf /Fm 134[27 27 27 27 27 27 27 27 1[27 27 27 27 27 27 1[27 27 27 27 27 27 27 27 27 1[27 1[27 1[27 1[27 4[27 27 27 2[27 27 1[27 2[27 27 27 27 27 27 27 27 27 2[27 27 27 27 27 8[27 27 27 27 27 27 1[27 27 27 3[27 2[27 33[{}58 45.833332 /Courier rf /Fn 135[42 3[28 1[37 1[46 1[46 4[23 46 2[37 46 2[42 29[60 1[60 11[42 42 42 42 42 49[{}17 83.333336 /Times-Bold rf /Fo 169[26 8[32 22 76[{}3 36.666618 /Times-Roman rf /Fp 41 122 df<00004000004000008000008000008000 0080000100000100000100000100000200000200001FC000E27003841806040C0C040E1C 0406380807300807700807700807E0100EE0100EE0100CE0101C60203870203030206018 21C00E470003F80000400000400000800000800000800000800001000001000001000018 297E9F1B>30 D<0000100000001000000010000000200000002000000020000000200000 004000000040000000400000004000000080000F008180118083C0218083E021C101E041 C100E043810060838100400702004007020040070200400E0200800E0400800E0401000E 0401000E0402000E080400060808000708300001C8C000007F0000001000000010000000 1000000020000000200000002000000020000000400000004000001B297E9F1E>32 D<04000180080003C0100003E0100001E0200000E0200000E02000004040040040400C00 40400C0040800C008080080080C0080180C0180300C0380600E07C0E00FFEFFC007FCFF8 003F87F0001E03C0001B1480931C>I<70F8F8F87005057C840D>58 D<001000001000001000001000003800003800003800003800E0380E3FBBF80FFFE003FF 8000FE00007C0000FE0001EF0001C7000383800301800600C00400400800201716809517 >63 D<000002000000060000000E0000000E0000001E0000001F0000002F0000006F0000 004F0000008F0000008F0000010F0000030F0000020F0000040F8000040F800008078000 180780001007800020078000200780007FFF800080078000800780010007C0010003C002 0003C0040003C0040003C00C0003C03C0007C0FF003FFC1E207E9F22>65 D<01FFFFE000001E003800001E000E00001E000700001E000700003C000380003C000380 003C0001C0003C0001C000780001C000780001C000780001C000780001C000F00003C000 F00003C000F00003C000F00003C001E000078001E000078001E000070001E0000F0003C0 000E0003C0001E0003C0001C0003C00038000780007000078000E000078001C000078007 00000F001C0000FFFFF00000221F7E9E26>68 D<01FFFFFF80001E000F00001E00030000 1E000300001E000100003C000100003C000100003C000100003C00010000780202000078 0200000078020000007806000000F00C000000FFFC000000F00C000000F00C000001E008 000001E008000001E008000001E000040003C000080003C000080003C000100003C00010 00078000200007800060000780004000078001C0000F0007C000FFFFFF8000211F7E9E22 >I<01FFFFFF001E001E001E0006001E0006001E0002003C0002003C0002003C0002003C 00020078000400780200007802000078020000F0040000F00C0000FFFC0000F00C0001E0 080001E0080001E0080001E0080003C0000003C0000003C0000003C00000078000000780 000007800000078000000F800000FFFC0000201F7E9E1D>I<00007F00800003C0C18000 0E00230000380017000070000F0000E0000F0001C0000600038000060007000006000F00 0006000E000004001E000004003C000000003C0000000078000000007800000000780000 00007800000000F000000000F0003FFE00F00000F000F00000F000700001E000700001E0 00700001E000700001E000380003C000380003C0001C0007C0000E0005C0000700198000 01C0608000007F80000021217F9F24>I<01FFF800001F0000001E0000001E0000001E00 00003C0000003C0000003C0000003C00000078000000780000007800000078000000F000 0000F0000000F0000000F0000001E0000001E0000001E0000001E0004003C0008003C000 8003C0018003C0010007800300078003000780060007800E000F007C00FFFFFC001A1F7E 9E1F>76 D<01FF001FF8001F0003C0001F800100001780010000178001000023C0020000 23C002000021E002000021E002000041F004000040F004000040F0040000407804000080 78080000807C080000803C080000803C080001001E100001001E100001000F100001000F 100002000FA000020007A000020007A000020003E000040003C000040003C000040001C0 000C0001C0001E00008000FFC0008000251F7E9E25>78 D<0000FF00000781C0001C00E0 003800700070003801C0001C03C0001C0380001E0700000E0F00000E1E00000E1E00000E 3C00000E3C00000E7800001E7800001E7800001E7800001EF000003CF000003CF0000038 F0000078F0000070700000F0700001E0780001C078000380380007001C000E001C001C00 0F0070000381C00000FF00001F217F9F23>I<01FFFF80001E00F0001E0038001E001C00 1E001C003C001E003C001E003C001E003C001E0078003C0078003C00780078007800F000 F001C000F0070000FFF80000F00E0001E0070001E0078001E0038001E003C003C0078003 C0078003C0078003C0078007800F0007800F0207800F0207800F040F800704FFF8030800 0001F01F207E9E23>82 D<0003F040000C08C0003005800060038000C0038001C0018001 8001000380010003800100038001000380000003C0000003E0000003FC000001FFC00000 FFF000007FF800001FF8000001FC0000007C0000003C0000001C0000001C0020001C0020 001C00200018006000380060003000600070007000E000E8018000C603000081FC00001A 217E9F1C>I<0FFFFFFC1E03C0381803C0181003C0082003C00820078008600780084007 800840078008800F0010000F0000000F0000000F0000001E0000001E0000001E0000001E 0000003C0000003C0000003C0000003C00000078000000780000007800000078000000F0 000000F0000000F0000000F0000001F000007FFFC0001E1F7F9E1B>I<7FFC07FE07C000 F00780004007800040078000400F0000800F0000800F0000800F0000801E0001001E0001 001E0001001E0001003C0002003C0002003C0002003C0002007800040078000400780004 0078000400F0000800F0000800F0000800F0001000700020007000200070004000380080 00180300000E0C000003F000001F207D9E1F>I<00FFF01FF8000FC00780000F80060000 078004000007C008000007C010000003C020000003E040000001E0C0000001F180000001 F300000000F200000000FC0000000078000000007C000000007C000000007C00000000BE 000000011E000000021F000000041F0000000C0F000000180F80000010078000002007C0 00004007C000008003C000010003E000070001E0001F0003F000FFC01FFE00251F7F9E26 >88 D<00F1800389C00707800E03801C03803C0380380700780700780700780700F00E00 F00E00F00E00F00E10F01C20F01C20703C20705C40308C400F078014147E9318>97 D<07803F8007000700070007000E000E000E000E001C001C001CF01D0C3A0E3C0E380F38 0F700F700F700F700FE01EE01EE01EE01CE03CE038607060E031C01F0010207E9F14>I< 007C0001C3000700800E07801E07801C07003C0200780000780000780000F00000F00000 F00000F00000F000007001007002003004001838000FC00011147E9314>I<0000780003 F80000700000700000700000700000E00000E00000E00000E00001C00001C000F1C00389 C00707800E03801C03803C0380380700780700780700780700F00E00F00E00F00E00F00E 10F01C20F01C20703C20705C40308C400F078015207E9F18>I<007C018207010E011C01 3C013802780C7BF07C00F000F000F000F000700070017002300418380FC010147E9315> I<00007C0000CE00019E00039E00030C000700000700000700000700000E00000E00000E 0000FFF0000E00000E00001C00001C00001C00001C00001C000038000038000038000038 0000380000700000700000700000700000700000E00000E00000E00000E00000C00001C0 00318000798000F300006200003C000017297E9F16>I<001E3000713800E0F001C07003 80700780700700E00F00E00F00E00F00E01E01C01E01C01E01C01E01C01E03801E03800E 07800E0B8006170001E700000700000700000E00000E00300E00781C00F038006070003F C000151D809316>I<01E0000FE00001C00001C00001C00001C000038000038000038000 038000070000070000071F000761800E80C00F00C00E00E00E00E01C01C01C01C01C01C0 1C01C0380380380380380380380704700708700E08700E10700610E006206003C016207E 9F1A>I<00E001E001E000C000000000000000000000000000000E001300238043804380 43808700070007000E000E001C001C001C20384038403840388019000E000B1F7E9E10> I<01E0000FE00001C00001C00001C00001C0000380000380000380000380000700000700 000701E00706100E08700E10F00E20F00E20601C40001D80001E00001FC0003870003838 00383800381C20703840703840703840701880E01880600F0014207E9F18>107 D<01C01FC0038003800380038007000700070007000E000E000E000E001C001C001C001C 0038003800380038007000700070007100E200E200E200E200640038000A207E9F0E>I< 1E07C07C00231861860023A032030043C034030043803803804380380380870070070007 00700700070070070007007007000E00E00E000E00E00E000E00E00E000E00E01C101C01 C01C201C01C038201C01C038401C01C0184038038018801801800F0024147E9328>I<1E 07802318C023A06043C0704380704380708700E00700E00700E00700E00E01C00E01C00E 01C00E03821C03841C07041C07081C03083803101801E017147E931B>I<007C0001C300 0301800E01C01E01C01C01E03C01E07801E07801E07801E0F003C0F003C0F003C0F00780 F00700700F00700E0030180018700007C00013147E9316>I<03C1E004621804741C0878 1C08701E08701E10E01E00E01E00E01E00E01E01C03C01C03C01C03C01C0380380780380 700380E003C1C0072380071E000700000700000E00000E00000E00000E00001C00001C00 00FFC000171D819317>I<00F0400388C00705800E03801C03803C038038070078070078 0700780700F00E00F00E00F00E00F00E00F01C00F01C00703C00705C0030B8000F380000 380000380000700000700000700000700000E00000E0000FFC00121D7E9314>I<1C1E00 2621004743804787804707804703008E00000E00000E00000E00001C00001C00001C0000 1C000038000038000038000038000070000030000011147E9315>I<00FC000303000600 800C01800C03800C03000E00000F80000FF80007FC0001FE00001F00000700700700F006 00F00600E004004008002030001FC00011147E9315>I<018001C0038003800380038007 000700FFF807000E000E000E000E001C001C001C001C0038003800380038107020702070 40708031001E000D1C7F9B10>I<0F00601180702180E021C0E041C0E04380E08381C007 01C00701C00701C00E03800E03800E03800E03840E07080C07080C07080E0F1006131003 E1E016147E931A>I<1E01C02303C02303E04381E04300E04700608700400E00400E0040 0E00401C00801C00801C00801C01001C01001C02001C04000C04000E180003E00013147E 9316>I<0F006070118070F02180E0F821C0E07841C0E0384380E0188381C0100701C010 0701C0100701C0100E0380200E0380200E0380200E0380400E0380400E0380800E078080 060781000709C20001F07C001D147E9321>I<1E00602300702300E04380E04300E04700 E08701C00E01C00E01C00E01C01C03801C03801C03801C03801C07001807001C07001C0F 000C3E0003CE00000E00000E00001C00F01800F03800E07000C0600041C0003F0000141D 7E9316>121 D E /Fq 55[15 13[20 8[23 1[25 25 3[20 47[20 23 23 33 23 23 13 18 15 23 23 23 23 36 13 23 13 13 23 23 15 20 23 20 23 20 3[15 1[15 28 33 33 43 33 33 28 25 30 1[25 33 33 41 28 33 1[15 33 33 25 28 33 30 30 33 1[20 1[26 26 13 13 23 23 23 23 23 23 23 23 23 23 13 11 15 11 1[23 15 15 15 4[19 34[{}82 45.833332 /Times-Roman rf /Fr 81[25 52[23 2[23 25 15 18 20 1[25 23 25 38 13 25 1[13 25 23 15 20 25 20 25 23 10[33 2[25 9[18 2[28 1[33 33 1[33 8[23 1[23 23 23 23 23 23 49[{}36 45.833332 /Times-Bold rf /Fs 81[58 52[52 3[58 35 40 46 1[58 52 58 86 29 2[29 58 52 35 46 58 46 58 52 10[75 2[58 9[40 2[63 1[75 75 69 66[{}27 104.166664 /Times-Bold rf /Ft 204[17 17 17 2[8 46[{}4 33.333332 /Times-Roman rf /Fu 138[29 2[19 1[29 29 6[29 2[26 14[42 1[36 32 9[19 1[42 20[29 50[{}12 58.333336 /Times-Roman rf /Fv 133[22 25 1[36 25 25 14 19 17 1[25 25 25 39 14 25 14 14 25 25 17 22 25 22 25 22 7[36 2[36 36 30 28 33 36 28 1[36 1[30 36 2[36 36 28 30 1[33 33 36 19[17 12 44[{}44 50.000000 /Times-Roman rf /Fw 138[42 1[32 28 3[42 1[23 6[37 3[37 10[60 60 1[46 5[74 3[28 33[28 39[{}13 83.333336 /Times-Roman rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 300dpi TeXDict begin %%EndSetup %%Page: 0 1 0 0 bop 609 371 a Fw(VIS)20 b(User')-5 b(s)21 b(Manual)357 518 y Fv(T)n(iziano)13 b(V)m(illa)124 b(Gitanjali)12 b(Swamy)123 b(Thomas)13 b(Shiple)748 1091 y Fu(The)h(VIS)h(Group)800 1224 y Fv(Adnan)d(Aziz)1039 1206 y Ft(1)766 1282 y Fv(Robert)g(Brayton) 1075 1264 y Ft(1)746 1340 y Fv(Stephen)g(Edwards)1093 1322 y Ft(1)786 1398 y Fv(Gary)g(Hachtel)1053 1380 y Ft(2)797 1456 y Fv(Sunil)g(Khatri)1043 1438 y Ft(1)771 1515 y Fv(Y)-6 b(uji)13 b(K)o(ukimoto)1069 1496 y Ft(1)763 1573 y Fv(Abelardo)f(P)o(ardo)1077 1555 y Ft(2)793 1631 y Fv(Shaz)h(Qadeer)1047 1613 y Ft(1)774 1689 y Fv(Rajee)o(v)g(Ranjan) 1065 1671 y Ft(1)596 1747 y Fv(Alberto)f(Sangio)o(v)o(anni-V)m (incentelli)1245 1729 y Ft(1)762 1805 y Fv(Shaker)f(Sarwary)1079 1787 y Ft(3)770 1863 y Fv(Thomas)i(Shiple)1071 1845 y Ft(1)770 1921 y Fv(F)o(abio)f(Somenzi)1070 1903 y Ft(2)752 1979 y Fv(Gitanjali)g(Swamy)1089 1961 y Ft(1)790 2038 y Fv(T)n(iziano)h(V)m(illa)1050 2019 y Ft(1)580 2228 y(1)598 2246 y Fv(Uni)o(v)o(ersity)f(of)g(California,)g(Berkele)o(y)597 2286 y Ft(2)616 2304 y Fv(Uni)o(v)o(ersity)g(of)f(Colorado,)i(Boulder) 609 2342 y Ft(3)628 2360 y Fv(No)o(w)f(at)g(Lattice)h(Semiconductor)p eop %%Page: 1 2 1 1 bop -31 343 a Fs(Contents)-31 612 y Fr(1)46 b(Intr)o(oduction)13 b(to)e(VIS)1444 b(3)38 668 y Fq(1.1)48 b(What)11 b(is)g(VIS)h(?)40 b Fp(:)22 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:) f(:)g(:)h(:)f(:)h(:)69 b Fq(3)38 724 y(1.2)48 b(History)18 b Fp(:)k(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:) h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69 b Fq(3)38 781 y(1.3)48 b(Ov)o(ervie)o(w)11 b(of)h(VIS)20 b Fp(:)j(:)f(:)h(:)f(:)g(:)h(:)f(:)g (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:) h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69 b Fq(4)143 837 y(1.3.1)55 b(VIS-v)12 b(Philosophy)33 b Fp(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69 b Fq(4)143 894 y(1.3.2)55 b(VIS-s)12 b(Philosophy)38 b Fp(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69 b Fq(4)-31 996 y Fr(2)46 b(Describing)12 b(Designs)f(f)o(or)g(VIS)1301 b(6)38 1052 y Fq(2.1)48 b(V)-5 b(erilog)11 b(HDL)22 b Fp(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:) f(:)g(:)h(:)f(:)h(:)69 b Fq(6)38 1109 y(2.2)48 b Fo(VL)p Fq(2)p Fo(MV)p Fq(:)17 b(from)11 b(V)-5 b(erilog)11 b(to)g(BLIF-MV)47 b Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69 b Fq(6)38 1165 y(2.3)48 b(Features)12 b(of)f(V)-5 b(erilog)11 b(Supported)g(by)g Fo(VL)p Fq(2)p Fo(MV)46 b Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69 b Fq(7)143 1222 y(2.3.1)55 b(Assignments)19 b Fp(:)k(:)f(:)g(:)h(:)f(:) g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69 b Fq(8)143 1278 y(2.3.2)55 b(Nondeterminism)19 b Fp(:)j(:)h(:)f(:)g(:)h (:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:) f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69 b Fq(8)143 1335 y(2.3.3)55 b(Symbolic)10 b(V)-5 b(ariables)43 b Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69 b Fq(8)38 1391 y(2.4)48 b(Implicit)10 b(vs.)16 b(Explicit)10 b(Clocking)32 b Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:) h(:)69 b Fq(9)38 1448 y(2.5)48 b(V)-5 b(erilog)11 b(for)g Fo(VL)p Fq(2)p Fo(MV)p Fq(:)18 b(Hints)10 b(and)h(T)n(raps)27 b Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69 b Fq(9)38 1504 y(2.6)48 b(BLIF-MV)39 b Fp(:)23 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(12)38 1561 y(2.7)i(BLIF)22 b Fp(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:) 46 b Fq(13)38 1617 y(2.8)i(Nondeterminism)9 b(and)i(Incomplete)g (Speci\256cation)i Fp(:)22 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:) f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(13)38 1673 y(2.9)i(Example:)15 b(a)d(T)n(raf)o(\256c)h(Light)d(Controller)32 b Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(13)-31 1776 y Fr(3)g(Intr)o(oduction)13 b(to)e(F)o(ormal)g(V)-5 b(eri\256cation)1117 b(18)38 1832 y Fq(3.1)48 b(Model)10 b(Checking)i(of)f(T)m(emporal)g(Logic)27 b Fp(:)22 b(:)h(:)f(:)g(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)h(:)f(:)h(:)46 b Fq(18)143 1888 y(3.1.1)55 b(Computation)10 b(T)n(ree)i(Logic)19 b Fp(:)k(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:) h(:)46 b Fq(18)143 1945 y(3.1.2)55 b(Speci\256cation)12 b(of)f(Properties)h(in)f(CTL)17 b Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(20)143 2001 y(3.1.3)55 b(F)o(airness)12 b(Constraints)27 b Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(21)38 2058 y(3.2)i(Properties)11 b(and)h(F)o(airness)g(Conditions) d(of)j(T)n(raf)o(\256c)h(Light)d(Controller)h(in)g(CTL)j Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(22)38 2114 y(3.3)i(Language)11 b(Containment)g Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(22)-31 2216 y Fr(4)g(F)o(ormal)10 b(V)-5 b(eri\256cation)13 b(in)f(VIS)1287 b(24)38 2273 y Fq(4.1)48 b(Representing)11 b(the)g(System)g(for)h(V)-5 b(eri\256cation)14 b Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(24)143 2329 y(4.1.1)55 b(Building)10 b(the)h(Flattened)h(Network)31 b Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(24)143 2386 y(4.1.2)55 b(Ordering)21 b Fp(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:) g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(25)143 2442 y(4.1.3)55 b(Computing)10 b(FSM)i(Information)36 b Fp(:)23 b(:)f(:)g(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:) h(:)f(:)h(:)46 b Fq(26)143 2499 y(4.1.4)55 b(Adv)o(anced)11 b(Ordering)39 b Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:) f(:)h(:)46 b Fq(26)38 2555 y(4.2)i(FSM)11 b(T)n(ra)o(v)o(ersal)i(and)e (Image)h(Computation)31 b Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(28)38 2612 y(4.3)i(Specifying)11 b(F)o(airness)h(Constraints)34 b Fp(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(29)38 2668 y(4.4)i(Language)11 b(Emptiness)20 b Fp(:)j(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:) h(:)46 b Fq(29)918 2835 y(1)p eop %%Page: 2 3 2 2 bop 38 11 a Fq(4.5)48 b(Model)10 b(Checking)i(Operations)27 b Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(31)143 68 y(4.5.1)55 b(Performing)11 b(Model)g(Checking)k Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(31)143 124 y(4.5.2)55 b(Deb)o(ugging)10 b(for)i(Model)f(Checking)27 b Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(33)143 181 y(4.5.3)55 b(Checking)11 b(In)n(v)o(ariants)33 b Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(34)143 237 y(4.5.4)55 b(Adv)o(anced)11 b(Model)g(Checking:)16 b(Abstraction)10 b(and)i(Reduction)j Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g (:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(34)38 294 y(4.6)i(Combinational)10 b(and)h(Sequential)g(Equi)o(v)o(alence)39 b Fp(:)23 b(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:) h(:)46 b Fq(36)38 350 y(4.7)i(Simulation)24 b Fp(:)f(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:) 46 b Fq(36)-31 452 y Fr(5)g(Synthesis)12 b(in)f(VIS)1486 b(38)38 509 y Fq(5.1)48 b(Writing)10 b(and)h(Reading)h(from)f(SIS)21 b Fp(:)h(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(38)38 565 y(5.2)i(Flo)o(w)11 b(of)g(Operations)g(for)h(Synthesis) 45 b Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(39)38 622 y(5.3)i(Example)10 b(of)i(Synthesis)e(of)i(T)n(raf)o (\256c)h(Light)d(Controller)43 b Fp(:)23 b(:)f(:)h(:)f(:)g(:)h(:)f(:)g (:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(39)-31 724 y Fr(A)36 b(Commands)11 b(in)h(VIS)1445 b(41)38 780 y Fq(A.1)38 b(List)10 b(of)i(Commands)e(in)h(VIS)38 b Fp(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(41)918 2835 y(2)p eop %%Page: 3 4 3 3 bop -31 323 a Fn(Chapter)20 b(1)-31 530 y Fs(Intr)n(oduction)k(to)i (VIS)-31 753 y Fq(This)13 b(document)f(introduces)g(VIS)i(\(V)-5 b(eri\256cation)14 b(Interacting)f(with)f(Synthesis\).)22 b(W)l(e)14 b(describe)f(what)g(VIS)h(is,)f(what)-31 809 y(it)e(can)i(do,)f(ho)o(w)f(to)h(write)g(limited)e(V)-5 b(erilog)11 b(code)h(for)g(its)g(input,)f(its)g(commands,)g(and)h(an)g (e)o(xtended)g(e)o(xample)g(for)g(the)-31 866 y(ne)o(w)j(user)m(.)29 b(F)o(or)16 b(more)f(details,)h(see)g(the)f(VIS)h(home)e(page)43 b Fm(http://ww)q(w-c)q(ad)q(.ee)q(cs)q(.be)q(rk)q(ele)q(y.)q(edu)q(/) -31 922 y(Respep/Re)q(se)q(arc)q(h/)q(vis)q(/do)q(c/)q(pac)q(ka)q(ges)q (/i)q(nde)q(x.)q(htm)q(l)p Fq(.)-31 1069 y Fl(1.1)58 b(What)15 b(is)g(VIS)f(?)-31 1172 y Fq(VIS)g(is)e(a)h(v)o (eri\256cation)g(and)g(synthesis)f(system)g(for)h(\256nite-state)f (hardware)i(systems,)e(which)h(is)f(being)g(de)o(v)o(eloped)h(at)-31 1229 y(Berkele)o(y)f(and)g(Boulder)m(.)17 b(It)11 b(impro)o(v)o(es)g (upon)g(\256rst)h(generation)f(tools)f(like)g(HSIS)j(and)e(SMV)h(by:)26 1323 y(1.)23 b(pro)o(viding)10 b(a)i(better)f(programming)f(en)n (vironment,)26 1417 y(2.)23 b(pro)o(viding)10 b(some)h(ne)o(w)g (capabilities,)g(and)26 1510 y(3.)23 b(impro)o(ving)10 b(performance)i(in)f(some)g(cases.)-31 1604 y(VIS)i(is)g(di)o(vided)e (into)h(three)h(parts:)19 b(a)13 b(common)e(front)i(end)g(for)g (reading)f(in)h(a)g(description)e(of)i(a)g(design,)g(v)o(eri\256cation) -31 1661 y(\(VIS-v\),)g(and)e(synthesis)f(\(VIS-s\).)-31 1807 y Fl(1.2)58 b(History)-31 1911 y Fq(Man)o(y)14 b(\256rst)g (generation)g(tools)f(for)h(automatic)g(formal)f(v)o(eri\256cation)i (were)g(based)f(on)f(two)h(theoretical)f(approaches.)-31 1967 y(The)f(\256rst)g(is)f(temporal)h(logic)f(model)g(checking,)h (where)g(the)g(properties)g(to)f(be)h(checked)g(are)h(e)o(xpressed)f (as)g(formulas)-31 2024 y(in)f(a)g(temporal)f(logic,)h(and)f(the)h (system)f(is)g(e)o(xpressed)h(as)g(a)g(\256nite)g(state)g(system.)k(In) c(particular)n(,)h(Computational)d(T)n(ree)-31 2080 y(Logic)k(\(CTL\))g (model)g(checking)g(is)f(a)i(technique)e(pioneered)h(by)g(Clarke)g(and) g(Emerson)g(to)f(v)o(erify)i(whether)f(a)g(\256nite)-31 2137 y(state)j(system)f(satis\256es)g(properties)h(e)o(xpressed)g(as)g (formulas)f(in)h(a)g(branching-time)f(temporal)g(logic)g(called)h(CTL.) -31 2193 y(SMV)-6 b(,)12 b(a)g(system)e(de)o(v)o(eloped)h(at)h(CMU,)f (belongs)g(to)g(this)f(class)h(of)h(tools.)40 2250 y(Certain)h (properties)f(are)i(not)e(e)o(xpressible)g(in)h(CTL,)g(b)o(ut)f(the)o (y)h(can)g(be)g(e)o(xpressed)g(as)g Fp(!)r Fq(-automata.)21 b(The)12 b(second)-31 2306 y(approach,)19 b(language)d(containment,)h (requires)g(the)g(description)e(of)i(the)f(system)g(and)g(properties)h (as)f Fp(!)r Fq(-automata,)-31 2363 y(and)e(v)o(eri\256es)h (correctness)f(by)g(checking)f(that)h(the)f(language)h(of)g(the)g (system)f(is)g(contained)g(in)h(the)g(language)f(of)h(the)-31 2419 y(property)m(.)j(Note)10 b(that)g(certain)h(types)f(of)g(CTL)h (properties)f(in)n(v)o(olving)f(e)o(xistential)h(quanti\256cation)f (are)j(not)d(e)o(xpressible)-31 2476 y(by)i Fp(!)r Fq(-automata.)17 b(COSP)l(AN,)12 b(a)g(system)e(de)o(v)o(eloped)i(at)f(Bell)h(Labs,)f (of)o(fers)h(language)f(containment.)40 2532 y(A)k(combination)g(of)g (both)g(approaches)i(is)e(of)o(fered)h(by)g(the)f(HSIS)i([6])f(system,) g(which)g(was)f(de)o(v)o(eloped)h(at)f(the)-31 2588 y(Uni)o(v)o(ersity) d(of)h(California,)h(Berkele)o(y)m(.)22 b(Our)13 b(e)o(xperience)h (with)e(v)o(eri\256cation)i(tools)d(\(in)i(particular)g(HSIS\))h(led)f (to)f(the)-31 2645 y(conclusion)i(that)h(sometimes,)g(the)f(simpler)g (and)i(more)e(limited)g(the)h(approach,)i(the)e(more)g(ef)o(\256cient)g (it)g(can)g(be.)28 b(A)-31 2701 y(number)13 b(of)g(design)f(decisions)g (that)g(we)h(made)g(for)g(HSIS)h(made)f(it)f(unacceptably)h(slo)o(w)f (for)h(some)g(lar)o(ge)g(e)o(xamples.)918 2835 y(3)p eop %%Page: 4 5 4 4 bop -31 11 a Fq(W)n(ith)13 b(these)g(problems)g(in)g(mind,)g(we)h (set)f(about)g(writing)g(a)g(tool)g(that)g(was)g(more)g(ef)o (\256cient,)i(easily)e(e)o(xtendible,)h(and)-31 68 y(of)o(fered)h(a)g (good)f(programming)f(en)n(vironment,)i(in)f(order)h(that)f(it)g(can)h (be)f(more)h(easily)f(upgraded)g(in)g(the)h(future)f(as)-31 124 y(more)d(ef)o(\256cient)h(algorithms)e(are)i(de)o(v)o(eloped.)40 181 y(VIS)e(also)f(has)g(the)h(capability)e(to)h(interface)h(with)f (SIS)h(to)f(optimize)f(logic)h(modules;)g(hence,)i(VIS)f(is)f(an)g (inte)o(grated)-31 237 y(system)k(for)i(hierarchical)g(synthesis,)f(as) g(well)g(as)h(v)o(eri\256cation.)26 b(W)l(e)15 b(plan)f(to)g(pursue)g (research)i(on)e(the)g(interaction)-31 294 y(between)7 b(v)o(eri\256cation)g(and)g(synthesis)g(in)g(the)g(future;)i(hence)e (the)g(name)g(VIS,)g(v)o(e)q(ri\256cation)g(interacting)g(with)g (synthesis.)-31 437 y Fl(1.3)58 b(Ov)o(er)o(view)15 b(of)g(VIS)-31 541 y Fq(Fig.)i(1.1)f(presents)g(of)g(an)g(o)o(v)o(ervie)o(w)h(of)f (VIS.)h(VIS)g(has)f(three)h(main)e(parts:)26 b(a)16 b(front-end)g(to)g (read)h(and)f(tra)o(v)o(erse)h(a)226 595 y 22376157 13873212 0 0 13748387 8617410 startTexFig 226 595 a %%BeginDocument: vis_block_src_fellows.eps /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {} def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -70.0 244.0 translate 1 -1 scale /clp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /l {lineto} bind def /m {moveto} bind def /n {newpath} bind def /s {stroke} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0.06000 0.06000 sc 7.500 slw % Polyline n 1800 2400 m 4575 2400 l 4575 4050 l 1800 4050 l clp gs col11 1.00 shd ef gr gs col-1 s gr % Ellipse n 1385 3393 195 142 0 360 DrawEllipse gs col14 1.00 shd ef gr gs col-1 s gr % Ellipse n 3086 2021 392 120 0 360 DrawEllipse gs col14 1.00 shd ef gr gs col-1 s gr /Times-Roman findfont 180.00 scalefont setfont 2858 2071 m gs 1 -1 sc (verilog) col-1 show gr % Polyline n 3074 2141 m 3074 2371 l gs col-1 s gr n 3104.00 2251.00 m 3074.00 2371.00 l 3044.00 2251.00 l gs col-1 s gr % Polyline n 1585 3390 m 1795 3390 l gs col-1 s gr n 1675.00 3360.00 m 1795.00 3390.00 l 1675.00 3420.00 l gs col-1 s gr /Times-Roman findfont 150.00 scalefont setfont 2217 2843 m gs 1 -1 sc (-traversal of hierarchy) col-1 show gr % Polyline n 3160 3003 m 3160 4050 l gs col-1 s gr % Polyline n 1800 3005 m 4575 3005 l gs col-1 s gr /Times-Roman findfont 180.00 scalefont setfont 2207 2660 m gs 1 -1 sc (Front end) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 1875 3285 m gs 1 -1 sc (Verification) col-1 show gr /Times-Roman findfont 150.00 scalefont setfont 3333 3855 m gs 1 -1 sc (-restruct. hierarchy) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 1910 2370 m gs 1 -1 sc (VIS) col-1 show gr /Times-Roman findfont 150.00 scalefont setfont 1917 3447 m gs 1 -1 sc (-model checking) col-1 show gr /Times-Roman findfont 150.00 scalefont setfont 1912 3657 m gs 1 -1 sc (-equivalence check.) col-1 show gr /Times-Roman findfont 150.00 scalefont setfont 1930 3860 m gs 1 -1 sc (-cycle-based simul.) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 1235 3446 m gs 1 -1 sc (CTL) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 3333 3295 m gs 1 -1 sc (Synthesis) col-1 show gr /Times-Roman findfont 150.00 scalefont setfont 3328 3695 m gs 1 -1 sc (-state encoding) col-1 show gr /Times-Roman findfont 150.00 scalefont setfont 3333 3495 m gs 1 -1 sc (-state minimization) col-1 show gr $F2psEnd restore %%EndDocument endTexFig 613 1572 a Fq(Figure)11 b(1.1:)17 b(Block)11 b(diagram)g(of)h(VIS.)-31 1673 y(hierarchical)j(system)e(described)h(in)g(BLIF-MV)-6 b(,)16 b(which)e(may)f(ha)o(v)o(e)i(been)g(compiled)e(from)h(a)h (high-le)o(v)o(el)e(language)-31 1729 y(like)7 b(V)-5 b(erilog;)7 b(a)g(v)o(eri\256cation)g(core,)j(VIS-v)m(,)f(to)e(perform) g(model)g(checking)g(of)g(F)o(air)g(CTL)g(and)g(test)g(language)g (emptiness;)-31 1785 y(and)12 b(a)f(path)g(to)g(SIS,)i(VIS-s,)f(to)f (optimize)g(parts)g(of)g(the)g(logic.)-31 1908 y Fk(1.3.1)51 b(VIS-v)12 b(Philosoph)o(y)-31 1995 y Fq(W)l(e)j(decided)f(to)f(of)o (fer)i(limited)d(b)o(ut)h(ef)o(\256cient)i(capabilities.)23 b(W)l(e)15 b(felt)e(that)h(in)f(the)h(future,)h(it)e(would)g(be)h(easy) g(to)f(add)-31 2051 y(more)f(features,)h(as)f(the)o(y)g(are)h (required,)g(using)e(a)h(well)g(de\256ned)g(programming)f(interface.)19 b(In)12 b(line)f(with)g(this)g Fr(keep)i(it)-31 2108 y(simple)e Fq(philosophy)m(,)f(VIS)i(pro)o(vides)f(the)g(follo)o(wing)f (v)o(eri\256cation)i(capabilities.)37 2187 y Fj(\017)23 b Fq(Only)16 b(CTL)h(formulas)f(can)i(be)f(checked.)33 b(Language)17 b(containment)e(may)i(be)g(handled)f(in)h(a)g(later)g (release.)83 2244 y(Ho)o(we)o(v)o(er)n(,)12 b(we)g(do)f(handle)g (language)g(emptiness)f(checks.)37 2332 y Fj(\017)23 b Fq(F)o(airness)14 b(constraints)f(must)f(be)i(of)g(B)t(\310)-19 b(uchi)13 b(type,)i(i.e.,)g(sets)e(of)h(states)f(that)g(must)g(be)h (visited)e(in\256nitely)h(often.)83 2388 y(Ho)o(we)o(v)o(er)n(,)c(the)f (internal)g(VIS)g(data)g(structures)g(do)g(ha)o(v)o(e)g(the)g (capability)f(to)h(support)f(more)g(complicated)h(fairness)83 2445 y(constraints.)-31 2567 y Fk(1.3.2)51 b(VIS-s)12 b(Philosoph)o(y)-31 2654 y Fq(VIS)j(can)h(interact)e(with)g(SIS)i(to)e (assist)g(the)h(task)f(of)h(v)o(eri\256cation)g(by)f(simplifying)f (parts)h(of)h(the)g(system.)26 b(Another)-31 2711 y(objecti)o(v)o(e)12 b(is)g(to)h(support)e(a)i(full-\257edged)g(hierarchical)g(synthesis)e (\257o)o(w)m(,)i(that)g(translates)f(a)h(V)-5 b(erilog)12 b(description)f(into)918 2835 y(4)p eop %%Page: 5 6 5 5 bop -31 11 a Fq(an)11 b(optimized)e(multi-le)o(v)o(el)g(circuit)h (at)g(the)h(gate)f(le)o(v)o(el.)16 b(Unlike)10 b(e)o(xisting)f(logic)h (optimization)e(systems)h(like)h(SIS,)i(VIS)-31 68 y(can)g(support)e (hierarchical)i(synthesis.)918 2835 y(5)p eop %%Page: 6 7 6 6 bop -31 323 a Fn(Chapter)20 b(2)-31 530 y Fs(Describing)26 b(Designs)g(f)m(or)g(VIS)-31 753 y Fq(Gi)o(v)o(en)18 b(the)h(special)f(needs)h(of)f(hardware)h(simulation,)g(v)o (eri\256cation,)i(and)d(synthesis,)h(specialized)g(languages)f(to)-31 809 y(describe)13 b(hardware)f(ha)o(v)o(e)h(been)g(de\256ned.)20 b(These)12 b(are)h(called)g(hardware)f(description)g(languages)g (\(HDLs\))g(and)g(the)o(y)-31 866 y(resemble)i(general-purpose)h (programming)e(languages.)26 b(Modern)14 b(HDLs)g(enable)g(the)g (designer)h(to)f(mix)f(dif)o(ferent)-31 922 y(le)o(v)o(els)e(of)h (design)e(abstraction.)-31 1069 y Fl(2.1)58 b(V)-6 b(erilog)15 b(HDL)-31 1172 y Fq(The)h(two)e(most)h(widely)g(used)g(languages)g(for) h(digital)e(design)h(are)h(V)-5 b(erilog,)17 b(based)e(on)g(C,)i(and)e (VHDL,)h(based)f(on)-31 1229 y(AD)n(A.)k(Currently)f(VIS)h(only)e (supports)g(V)-5 b(erilog,)20 b(b)o(ut)d(our)h(intermediate)g(format,)i (BLIF-MV)-6 b(,)19 b(was)f(designed)g(to)-31 1285 y(support)11 b(translation)f(from)h(man)o(y)g(languages.)40 1342 y(V)-5 b(erilog)7 b(allo)o(ws)g(mix)o(ed-le)o(v)o(el)g(descriptions)g(of)g (hardware)g(in)g(terms)g(of)g(static)g(st)o(ructures)g(and)g(dynamic)g (beha)o(viors.)-31 1398 y(Dynamic)g(beha)o(vior)g(is)g(described)g(by)g (means)g(of)g(high-le)o(v)o(el)g(constructs)g(as)g(found)g(in)g (general-purpose)g(programming)-31 1455 y(languages,)12 b(like)e(conditional,)g(control)h(of)h(loops,)e(and)i(process)f (fork-join.)40 1511 y(A)i(speci\256cation)h(in)f(V)-5 b(erilog)13 b(consists)f(of)i(one)g(or)f(more)h Fi(modules)p Fq(.)23 b(The)13 b Fi(top)g(le)o(vel)i(module)e Fq(speci\256es)h(a)f (closed)-31 1568 y(system)i(containing)g(both)g(test)h(data)g(and)g (hardware)h(models.)29 b(Component)16 b(modules)f(normally)g(ha)o(v)o (e)h(input)f(and)-31 1624 y(output)f Fi(ports)p Fq(.)26 b(Ev)o(ents)14 b(on)g(the)h(input)f(ports)g(cause)h(changes)g(on)f(the) h(outputs.)26 b(Ev)o(ents)14 b(can)h(be)g(either)g(changes)g(in)-31 1681 y(the)f(v)o(alues)f(of)h Fi(wir)n(e)g Fq(v)o(ariables)g(\(i.e.,)i (combinational)c(v)o(ariables\))h(or)h(in)g(the)f(v)o(alues)h(of)f Fi(r)n(e)n(g)i Fq(v)o(ariables)e(\(i.e.,)j(re)o(gister)-31 1737 y(v)o(ariables\),)k(or)e(can)h(be)f(e)o(xplicitly)f(generated)i (abstract)f(e)o(v)o(ents.)37 b(Modules)16 b(can)j(represent)f(pieces)h (of)f(hardware)-31 1793 y(ranging)13 b(from)h(simple)e(gates)i(to)f (complete)g(systems)g(\(e.g.,)j(microprocessors\),)e(and)f(the)o(y)h (can)g(be)g(speci\256ed)g(either)-31 1850 y Fi(behavior)o(ally)7 b Fq(or)h Fi(structur)o(ally)p Fq(,)f(or)g(by)h(a)g(combination)e(of)h (the)h(two.)14 b(A)8 b(beha)o(vioral)f(speci\256cation)h(de\256nes)g (the)f(beha)o(vior)-31 1906 y(of)15 b(a)h(module)e(using)g(programming) g(language)h(constructs.)27 b(A)15 b(structural)g(speci\256cation)g(e)o (xpresses)h(a)f(module)f(as)-31 1963 y(a)g(hierarchical)g (interconnection)e(of)i(submodules.)21 b(The)13 b(components)f(at)i (the)f(bottom)f(of)h(the)g(hierarchy)h(are)g(either)-31 2019 y(primiti)o(v)o(es)d(or)h(are)i(speci\256ed)e(beha)o(viorally)m(.) 20 b(V)-5 b(erilog)11 b(has)i(a)f(library)g(of)h(prede\256ned)g (primiti)o(v)o(es.)18 b(A)13 b(good)e(reference)-31 2076 y(for)h(V)-5 b(erilog)11 b(can)g(be)h(found)f(in)g([1].)-31 2222 y Fl(2.2)58 b Fh(VL)p Fu(2)p Fh(MV)p Fl(:)21 b(fr)o(om)15 b(V)-6 b(erilog)15 b(to)g(BLIF-MV)-31 2326 y Fq(VIS)d(operates)f(on)g (an)g(intermediate)f(format)h(called)g(BLIF-MV)-6 b(,)12 b(which)e(is)h(an)g(e)o(xtension)f(of)h(BLIF)l(,)i(the)e(intermediate) -31 2383 y(format)k(for)h(logic)f(synthesis)f(accepted)j(by)e(SIS)h (and)g(other)f(tools.)29 b(VIS)16 b(includes)f(a)g(stand-alone)g (compiler)g(from)-31 2439 y(V)-5 b(erilog)11 b(to)g(BLIF-MV)-6 b(,)13 b(called)e Fo(VL)p Fq(2)p Fo(MV)p Fq(.)40 2495 y(See)i([2])g(for)g(a)g(description)f(of)g(the)h(synthesizable)e (subset)h(of)h(V)-5 b(erilog)12 b(that)g(can)h(be)g(handled)f(by)h Fo(VL)p Fq(2)p Fo(MV)h Fq(and)e(of)-31 2552 y(the)g(e)o(xtensions)f(of) h(V)-5 b(erilog)12 b(that)f(are)i(also)f(supported)f(by)h Fo(VL)p Fq(2)p Fo(MV)p Fq(.)20 b(In)12 b(this)f(section)h(we)g(surv)o (e)o(y)h(the)f(ke)o(y)g(features)g(of)-31 2608 y(V)-5 b(erilog)11 b(for)h Fo(VL)p Fq(2)p Fo(MV)p Fq(.)19 b(Conceptually)m(,) 11 b(it)g(would)f(be)i(easy)g(to)f(pro)o(vide)g(a)h(translator)f(from)g (an)o(y)h(other)g(HDL)f(language,)-31 2665 y(like)g(VHDL)g(or)g (Esterel,)h(to)f(BLIF-MV)-6 b(.)918 2835 y(6)p eop %%Page: 7 8 7 7 bop 40 11 a Fq(The)15 b(relationship)f(between)i(a)f(beha)o(vioral) g(description)g(language)g(like)f(V)-5 b(erilog)15 b(and)h(a)f(machine) g(description)-31 68 y(language)f(like)e(BLIF-MV)i(is)f(similar)g(to)g (that)g(between)h(a)g(high-le)o(v)o(el)e(programming)h(language)g(and)h (an)f(assembly)-31 124 y(language.)29 b(Basic)16 b(constructs)e(of)h (BLIF-MV)h(are)h(module)d(declarations/instantiations,)g(input-output)f (relational)-31 181 y(tables)f(which)g(allo)o(w)f(descriptions)g(of)i (nondeterminism,)d(symbolic)h(wires,)i(and)f(latches.)19 b(In)12 b(BLIF-MV)-6 b(,)14 b(symbolic)-31 237 y(latches)j(are)h (implicitly)c(controlled)j(by)f(a)i(global)e(clock.)33 b(This)16 b Fi(cloc)o(k)i Fq(does)f(not)f(need)h(to)g(be)g(a)g(real)h (wire)f(in)f(the)-31 294 y(hardware)g(sense.)27 b(All)15 b(symbolic)e(latches)i(transit)f(instantaneously)f(to)i(the)g(ne)o(xt)g (state)f(indicated)h(by)g(the)f(rele)o(v)o(ant)-31 350 y(transition)d(tables.)18 b(At)11 b(each)i(clock)f(c)o(ycle,)h(each)g (table)e(continuously)f(updates)i(its)f(outputs)f(according)i(to)g(the) g(inputs)-31 407 y(it)g(sees)h(until)e(con)n(v)o(er)o(gence)j(is)e (reached.)641 390 y Ft(1)679 407 y Fq(In)h(the)f(v)o(ery)h(be)o (ginning)f(of)g(the)h(ne)o(xt)f(c)o(ycle,)i(all)e(latches)h (simultaneously)-31 463 y(update)k(their)g(present)g(state)g(outputs)f (according)h(to)g(their)g(ne)o(xt)g(state)g(inputs.)34 b(Then)17 b(again)g(tables)f(update)h(their)-31 519 y(outputs)10 b(accordingly)m(.)40 576 y Fo(VL)p Fq(2)p Fo(MV)18 b Fq(e)o(xtracts)f(a)g(set)g(of)g(interacting)f(\256nite)h(state)f (machines)h(\(FSMs\))g(that)f(preserv)o(e)i(the)f(beha)o(vior)f(of)h (the)-31 632 y(source)d(V)-5 b(erilog)12 b(program)h(de\256ned)h(in)f (terms)g(of)g(simulated)f(results.)21 b(Allocation)13 b(of)g(hardware)h(gates)e(to)h(operators)-31 689 y(in)g(V)-5 b(erilog)13 b(\(resource)h(binding\))e(is)g(based)i(on)f(the)g (assumption)e(of)i(unlimited)e(resources,)k(where)f(resources)f(are)h (all)-31 745 y(possible)f(gates)i(e)o(xpressible)f(in)g(one)g(table)h (in)f(BLIF-MV)-6 b(.)16 b(No)e(scheduling)f(and)i(optimization)d(are)k (performed,)g(so)-31 802 y(the)11 b(e)o(xtracted)h(FSMs)g(are)g(not)e (guaranteed)i(to)f(be)g(optimal)f(\(for)i(area,)h(speed,)e(and)h(so)f (on\).)16 b(In)c(order)f(to)g(optimize)f(the)-31 858 y(logic,)h(a)h(synthesis)e(program)h(like)f(SIS)j(can)f(be)f(in)n(v)o (oked)f(on)i(modules)e(of)h(the)g(system.)1391 842 y Ft(2)40 915 y Fq(A)e(design)f(in)g(a)i(synthesizable)e(subset)g(of)h(V) -5 b(erilog)8 b(consists)g(of)h(a)g(set)g(of)g(modules)e(\(either)i (hardware)h(or)f(software\).)-31 971 y(The)g(\256rst)h(module)e (encountered)h(is)g(re)o(garded)h(as)f(the)g(root)g(module.)15 b(All)9 b(modules)f(run)h(in)g(parallel)g(and)g(communicate)-31 1028 y(with)14 b(each)h(other)f(through)g(a)g(set)h(of)f(channels)g (\(set)h(of)f(wire)h(v)o(ariables)f(declared)h(in)f(the)g(modules)f(to) h(which)g(these)-31 1084 y(channels)j(belong\).)34 b(It)17 b(is)g(assumed)f(that)h(communication)e(through)i(channels)g(is)f (instantaneous.)33 b(W)n(ithin)17 b(each)-31 1140 y(module,)d(v)o (alues)f(on)h(channels)f(can)h(be)g(accessed)h(through)e(a)h(set)f(of)h (ports,)g(that)f(can)i(be)e(either)h(wires)g(or)g(re)o(gisters.)-31 1197 y(Through)e(wire)i(ports,)f(a)g(module)f(can)h(input)f(and)h (output)f(from)h(and)f(to)h(channels)g(instantaneously)m(,)f(while)g (through)-31 1253 y(re)o(gister)f(ports)f(it)g(takes)g(one)h(time)f (unit.)16 b(A)11 b(wire)f(port)h(has)f(no)h(storage)f(element)h (associated)f(with)g(it,)h(while)f(a)h(re)o(gister)-31 1310 y(port)g(has)g(one)h(storage)f(element)g(associated)g(with)g(it.) 40 1366 y(A)d(V)-5 b(erilog)8 b(module)f(contains)g(declarations,)i (module)f(instantiations,)e(continuous)h(assignments)g(and)h (procedural)-31 1423 y(blocks.)31 b(Continuous)14 b(assignments)h(be)o (gin)h(with)f(the)h(ke)o(yword)f Fm(assign)k Fq(and)d(are)h(always)e (acti)o(v)o(e;)j(the)o(y)f(can)f(be)-31 1479 y(thought)10 b(of)i(as)g(combinational)e(blocks.)17 b(Procedural)c(blocks)e(are)h (referred)i(to)d(as)h Fm(always)i Fq(statements;)c(statements)-31 1536 y(within)g(a)i(procedural)g(block)f(are)h(e)o(x)o(ecuted)g (sequentially)m(.)40 1592 y(Module)f(instances,)i(continuous)e (assignments,)h(and)g(procedural)h(blocks)f(within)f(a)i(module)e(run)i (concurrently)m(.)-31 1649 y(Ex)o(ecution)18 b(of)h(each)h(continuous)d (assignment,)j(basic)e(block)h(in)f(a)h(procedural)g(block)g(and)f (module)g(instance)h(is)-31 1705 y(assumed)11 b(to)f(be)h(atomic)g (within)f(each)h(instant.)16 b(If)c(there)f(is)g(more)f(than)h(one)g (procedural)h(block)e(in)h(the)g(same)g(module,)-31 1761 y(and)d(outputs)f(of)h(one)g(are)h(inputs)e(to)h(another)n(,)h(the)f (simulated)f(result)h(may)g(depend)g(on)g(ho)o(w)f(e)o(xpressions)h (from)g(dif)o(ferent)-31 1818 y(blocks)j(are)h(interlea)o(v)o(ed)g(by)f (the)g(simulator)m(.)40 1874 y Fo(VL)p Fq(2)p Fo(MV)i Fq(can)e(be)h(in)n(v)o(oked)e(as)i(a)f(stand-alone)g(tool)g(on)g(a)g(V) -5 b(erilog)11 b(\256le)h(to)f(produce)h(a)f(BLIF-MV)h(\256le.)18 b(This)10 b(can)i(be)-31 1931 y(read)g(in)e(VIS)i(with)e(the)g(command) g Fi(r)n(ead)p 624 1931 14 2 v 17 w(blif)p 703 1931 V 15 w(mv)p Fq(.)17 b(As)11 b(an)g(alternati)o(v)o(e,)g(the)g(command)f Fi(r)n(ead)p 1468 1931 V 16 w(verilog)g Fq(can)i(be)f(directly)-31 1987 y(used)g(to)g(read)h(in)f(a)h(V)-5 b(erilog)11 b(\256le.)17 b(This)11 b(in)n(v)o(okes)f Fo(VL)p Fq(2)p Fo(MV)j Fq(internally)m(.) -31 2134 y Fl(2.3)58 b(F)o(eatur)o(es)13 b(of)i(V)-6 b(erilog)15 b(Supported)h(by)f Fh(VL)p Fu(2)p Fh(MV)-31 2238 y Fo(VL)p Fq(2)p Fo(MV)i Fq(supports)d(a)i(synthesizable)f(subset) f(of)i(V)-5 b(erilog,)16 b(and)g(also)f(e)o(xtends)g(it)g(minimally)f (to)h(make)g(it)g(usable)g(for)-31 2294 y(formal)c(v)o(eri\256cation.) 18 b(W)l(e)12 b(surv)o(e)o(y)f(the)h(features)g(that)e(characterize)j (V)-5 b(erilog)11 b(as)h(supported)e(by)h Fo(VL)p Fq(2)p Fo(MV)p Fq(.)p -31 2335 768 2 v 22 2362 a Fg(1)36 2378 y Ff(Circuits)f(with)g(combinational)e(c)o(ycles)g(are)h(le)o(gal)g(in) h(BLIF-MV)-5 b(,)10 b(b)o(ut)f(currently)h(the)o(y)f(are)g(not)g (processed)d(by)j(VIS.)22 2409 y Fg(2)36 2424 y Fe(VL)p Ff(2)p Fe(MV)e Ff(can)f(also)h(e)o(xtract)h(quantitati)o(v)o(e)f (timing)h(information)g(from)g(a)g(timed)f(V)l(erilog)h(program,)g (producing)e(BLIF-MVT)m(,)i(based)e(on)h(timed)-31 2470 y(automata,)i(that)h(is)g(an)f(e)o(xtension)f(of)i(BLIF-MV)g(with)g (timing)g(constructs)e([3)q(].)15 b(Since)9 b(v)o(eri\256cation)g(with) h(quantitati)o(v)o(e)g(timing)g(is)f(not)h(handled)-31 2516 y(in)g(the)f(current)g(v)o(ersion)f(of)i(VIS,)g(this)f(feature)g (is)g(of)h(no)f(further)h(interest)f(here.)918 2835 y Fq(7)p eop %%Page: 8 9 8 8 bop -31 11 a Fk(2.3.1)51 b(Assignments)-31 99 y Fi(Continuous)10 b(assignments)f Fq(are)j(always)d(acti)o(v)o(e,)j(i.e.,)g(whene)o(v)o (er)g(an)o(y)f(input)f(changes,)i(the)e(output)g(is)g(updated)h (instan-)-31 155 y(taneously)m(.)17 b(Only)11 b Fm(wire)i Fq(v)o(ariables)e(can)h(be)g(used)g(at)f(the)h(left)f(hand)h(side)f(of) h(continuous)e(assignments.)16 b(Continuous)-31 212 y(assignments)10 b(describe)h(the)h(combinational)d(beha)o(vior)j(of)f(a)h(circuit.)40 268 y Fi(Pr)n(ocedur)o(al)18 b(assignments)g Fq(\()p Fm(=)i Fq(within)e(a)i(procedural)g(block\),)h(also)e(referred)i(to)e (as)h Fi(bloc)o(king)e(assignments)p Fq(,)-31 324 y(e)o(x)o(ecute)12 b(sequentially)d(within)g(a)h(procedural)h(block,)g(changing)e(the)i (content)e(of)i(state)f(v)o(ariables,)h(until)e(the)h(e)o(x)o(ecution) -31 381 y(is)h(blocked)g(by)h(a)g(pause.)17 b Fo(VL)p Fq(2)p Fo(MV)d Fq(compiles)c(procedural)i(blocks)f(based)h(on)f(the)h (assumption)e(that)h(each)h(basic)g(block)-31 437 y(will)g(be)i(e)o(x)o (ecuted)g(atomically)e(if)h(the)g(delay/e)o(v)o(ent)f(control)h(of)g (the)g(block)g(is)f(satis\256ed.)22 b Fo(VL)p Fq(2)p Fo(MV)15 b Fq(assumes)d(also)h(that)-31 494 y(e)o(x)o(ecution)i(of)f (procedural)g(assignments)f(takes)g(zero)i(hardware)g(time.)24 b(All)13 b(procedural)i(blocks)e(with)h(acti)o(v)o(e)g(e)o(v)o(ent)-31 550 y(controls)c(get)g(e)o(x)o(ecuted)h(concurrently)m(.)17 b(Notice)10 b(that)g(a)g(V)-5 b(erilog)10 b(simulator)f(does)h(not)g (treat)g(simple)f(blocks)h(as)g(atomic.)-31 607 y(If)16 b(there)f(is)g(more)g(than)f(one)h(procedural)h(block)e(sharing)h(the)g (same)g Fm(reg)h Fq(v)o(ariables,)g(caution)f(should)f(be)h(taken)g(to) -31 663 y(make)c(sure)h(that)e(the)i(desired)f(beha)o(vior)g(does)g (not)g(depend)g(on)g(a)h(speci\256c)g(interlea)o(ving)f(among)f (processes.)40 720 y(Procedural)i(assignments)d(update)i(v)o(ariables)g (instantaneously)m(,)f(meaning)g(that)h(the)o(y)g(change)h(the)f (left-hand)g(side)-31 776 y(v)o(ariable)i(so)f(that)g(the)h(statement)f (follo)o(wing)f(the)i(assignment)e(\(in)h(the)h(same)f(process,)i(or)f Fm(always)i Fq(statement\))d(can)-31 833 y(observ)o(e)h(the)f(v)o(alue) g(change.)20 b(On)12 b(the)g(other)g(hand,)h(other)f(processes)g(\(for) h(instance,)f(other)g Fm(always)j Fq(statements)c(or)-31 889 y(continuous)e(assignments\))f(cannot)i(see)h(the)f(change)g(until) f(the)h(ne)o(xt)g(clock)g(c)o(ycle.)17 b(Because)12 b(of)e(this,)g (race)h(conditions)-31 945 y(might)g(arise)h(among)f(multiple)f (procedural)i(assignments.)17 b Fi(Non-bloc)o(king)12 b(pr)n(ocedur)o(al)f(assignments)f Fq(\()p Fm(<=)p Fq(\))j(pro)o(vide) -31 1002 y(a)k(mechanism)f(that)g(defers)h(the)f(assignment)f(without)g (blocking)h(the)g(e)o(x)o(ecution)h(of)f(statements)g(in)g(a)h(block.) 31 b(On)-31 1058 y(encountering)16 b(a)h(non-blocking)e(assignment,)h (the)h(right)e(hand-side)h(of)h(the)f(assignment)f(is)h(e)o(v)o (aluated)g(according)-31 1115 y(to)f(the)g(most)e(recent)j(v)o(alues)f (of)g(the)g(referred)h(v)o(ariables.)28 b(Ho)o(we)o(v)o(er)n(,)17 b(without)c(changing)i(the)g(v)o(ariable)g(on)f(the)h(left)-31 1171 y(hand-side,)c(program)e(e)o(x)o(ecution)i(continues.)k(Then)10 b(v)o(ariables)g(are)h(updated)f(simultaneously)d(at)k(the)f(v)o(ery)g (be)o(ginning)-31 1228 y(of)i(the)h(ne)o(xt)f(time)f(slot.)19 b(F)o(or)13 b Fo(VL)p Fq(2)p Fo(MV)p Fq(,)h(non-blocking)d(procedural)i (assignments)d(should)h(ne)o(v)o(er)i(be)f(used,)h(since)f(the)o(y)-31 1284 y(might)e(introduce)h(unwanted)g(nondeterminism.)-31 1409 y Fk(2.3.2)51 b(Nondeterminism)-31 1496 y Fq(Non-blocking)11 b(assignments)f(also)i(pro)o(vide)g(a)g(way)g(to)f(introduce)h (nondeterminism)e(on)h Fm(reg)i Fq(v)o(ariables.)19 b(If)12 b(there)h(is)-31 1553 y(more)h(than)g(one)g(non-blocking)f(assignment)g (in)g(the)i(current)f(time)f(slot)h(assigning)e(to)i(the)g(same)g(re)o (gister)h(v)o(ariable,)-31 1609 y(then)f(the)g(v)o(alue)g(of)h(that)f (re)o(gister)g(v)o(ariable)h(in)f(the)g(ne)o(xt)g(clock)g(c)o(ycle)h (will)f(be)g(nondeterministically)e(chosen)i(from)-31 1666 y(those)d(assigned)g(v)o(alues.)16 b Fi(Even)c(though)e Fo(VL)p Fq(2)p Fo(MV)i Fi(accepts)g(this)e(way)i(of)f(specifying)f (nondeterminism,)g(in)h(VIS,)h(unlike)-31 1722 y(in)f(HSIS,)h(multiple) e(assignments)g(ar)n(e)h(not)g(consider)n(ed)g(le)n(gal)g (nondeterminism)p Fq(.)40 1779 y(Instead,)i(a)h(nondeterministic)d (construct,)i Fm($ND)p Fq(,)i(has)e(been)g(added)g(to)g(V)-5 b(erilog)12 b(to)h(specify)g(nondeterminism)d(on)-31 1835 y(wire)i(v)o(ariables)f(and)g(is)f(the)i(only)e(le)o(gal)h(way)g (to)g(introduce)f(nondeterminism)g(in)g(VIS.)j(F)o(or)f(e)o(xample,)f (to)g(require)h(that)-31 1892 y(the)f(output)g(at)g(a)h(particular)f (state)g(is)g(nondeterministically)e(GO)j(or)f(NOGO,)h(one)f(can)h (introduce)f(a)h(ne)o(w)f(v)o(ariable,)h Fp(r)q Fq(,)-31 1948 y(and)g(write)f(the)g(follo)o(wing)f(V)-5 b(erilog)11 b(fragment.)-31 2037 y Fd(assign)20 b(r=$ND{GO,NOGO};)-31 2077 y(.)-31 2116 y(.)-31 2156 y(always@\(posedge)f(clk\))h(begin)-31 2195 y(.)-31 2234 y(.)-31 2274 y(state)g(=)g(r;)-31 2313 y(.)-31 2353 y(.)-31 2392 y(end)-31 2517 y Fk(2.3.3)51 b(Symbolic)12 b(V)-5 b(ariables)-31 2604 y Fq(Sometimes)14 b(it)h(is)f(desirable)h(to)g(specify)g(and)g(e)o(xamine)g(the)g(v)o (alue)g(of)g(some)g(v)o(ariables)f(symbolically)m(,)h(rather)h(than)-31 2661 y(ha)o(ving)f(to)f(e)o(xplicitly)g(encode)i(them.)28 b Fo(VL)p Fq(2)p Fo(MV)16 b Fq(e)o(xtends)f(V)-5 b(erilog)15 b(to)g(allo)o(w)f(users)h(to)g(declare)h(symbolic)d(v)o(ariables)918 2835 y(8)p eop %%Page: 9 10 9 9 bop -31 11 a Fq(using)11 b(an)g(enumerated)h(type)f(mechanism)g (similar)f(to)h(the)h(one)f(a)o(v)o(ailable)h(in)f(the)g(C)h (programming)e(language.)18 b(As)11 b(an)-31 68 y(e)o(xample,)h(we)g (introduce)f(a)g(symbolic)f(type)h(named)g Fm(door)p Fq(:)-31 148 y Fd(typedef)20 b(enum)f({OPEN,OPENING,CLOSED,CLOSING})f (door;)-31 293 y Fl(2.4)58 b(Implicit)15 b(vs.)21 b(Explicit)15 b(Clocking)-31 397 y Fq(The)9 b(clocking)f(discipline)f(is)h (determined)g(by)g(the)h(de\256nition)f(of)g(the)h(V)-5 b(erilog)8 b(simulator)n(,)g(and)h(it)f(can)h(be)f(either)h(implicit) -31 453 y(or)j(e)o(xplicit.)k(Implicit)10 b(is)h(the)g(default.)16 b(Explicit)10 b(may)h(be)h(required)f(in)g(some)g(cases.)40 510 y(A)e(V)-5 b(erilog)8 b(simulator)f(is)i(an)g(e)o(v)o(ent-dri)o(v)o (en)g Fi(passive)f(sc)o(heduler)p Fq(.)16 b(A)9 b(simulator)e (schedules)h(e)o(v)o(ents)h(generated)g(from)-31 566 y(V)-5 b(erilog)15 b(modules)f(and)h(then)g(sends)f(them)h(to)g (modules)f(which)g(are)i(sensiti)o(v)o(e)f(to)f(these)h(e)o(v)o(ents.) 28 b(Statements)15 b(with)-31 623 y(sensitized)e(e)o(v)o(ents)g(\(acti) o(v)o(e)h(statements\))f(are)h(e)o(x)o(ecuted)g(and)g(in)f(turn)g(more) g(e)o(v)o(ents)h(are)g(generated,)h(which)e(are)i(then)-31 679 y(scheduled)e(by)f(the)h(simulator)m(.)21 b(The)13 b(simulator)e(itself)i(does)f(not)h(generate)h(an)o(y)f(e)o(v)o(ent,)h (b)o(ut)e(it)h(coordinates)f(between)-31 736 y(the)e(producers)h(and)f (consumers)g(of)g(e)o(v)o(ents.)17 b(Hence,)11 b(to)f(write)h(a)f (synchronous)g(system,)f(a)i(designer)f(needs)h(to)f(write)g(a)-31 792 y(small)g(clock)i(generator)n(,)g(i.e.,)h(an)e(e)o(v)o(ent)h (generator)f(which)g(creates)i(e)o(v)o(ents)e(in)g(time.)16 b(The)11 b(produced)g(e)o(v)o(ents)h(pro)o(v)o(oke)-31 849 y(a)j(chain)g(of)g(reactions)f(among)g(modules.)26 b(The)14 b(system)g(reaches)i(a)f(stable)f(state)g(when)h(there)g(are)g (no)g(more)f(e)o(v)o(ents)-31 905 y(other)h(than)f(the)g(clocking)g(e)o (v)o(ent.)26 b(The)15 b(ne)o(xt)f(clocking)g(e)o(v)o(ent)g(is)g(then)h (chosen)f(by)g(the)g(simulator)n(,)h(and)f(simulation)-31 961 y(time)e(is)f(adv)o(anced)i(according)f(to)g(the)g(time)f(stamp)h (of)g(the)g(ne)o(wly)f(scheduled)h(clocking)g(e)o(v)o(ent.)19 b(W)l(e)13 b(call)f(the)g(system)-31 1018 y Fi(implicitly)i(cloc)o(ked) i Fq(when)f(all)g(transitions)f(are)i(synchronized)f(by)g(an)h (implicit)d Fi(time)p Fq(.)29 b(F)o(or)16 b(an)g(implicitly)d(clocked) -31 1074 y(system)d(hardware)h(resources)g(will)e(not)h(be)h(allocated) f(for)h(a)g(synchronizing)f(v)o(ariable.)16 b(Also,)11 b(for)f(implicitly)f(clocked)-31 1131 y(designs,)16 b(one)g(symbolic)e (latch)i(\(or)g(state)f(v)o(ariable\))h(is)f(allocated)g(for)h(each)h Fm(reg)g Fq(v)o(ariable,)g(and)e(synchronization)-31 1187 y(v)o(ariables)c(are)h(dropped.)17 b(By)12 b(default,)f(implicit)e (clocking)i(semantics)g(is)f(assumed.)40 1244 y(On)j(the)g(other)g (hand,)i(for)e(some)g(designs,)g(the)h(operation)f(of)g(a)h(system)e (depends)h(e)o(xplicitly)f(on)h(se)o(v)o(eral)h(phases)-31 1300 y(\(rising)e(edge,)h(falling)e(edge,)i(1-le)o(v)o(el,)g(0-le)o(v)o (el\))g(of)f(one)g(or)h(more)f(synchronizing)f(signals)g(\(generally)h (referred)i(to)e(as)-31 1357 y Fi(cloc)o(ks)p Fq(\).)20 b(In)12 b(such)g(a)g(case)h(the)f(clock)g(signals)f(should)g(be)h (interpreted)g(literally)f(and)h(hardware)h(resources)f(should)f(be)-31 1413 y(allocated.)24 b(A)14 b(design)f(is)g(called)h Fi(e)o(xplicitly)f(cloc)o(ked)h Fq(if)g(synchronizing)e(signals)h(are)h (to)g(be)g(compiled)e(literally)h(into)-31 1470 y(hardware.)22 b(F)o(or)14 b(e)o(xplicitly)e(clocked)g(systems,)g(each)i Fm(reg)g Fq(v)o(ariable)f(is)f(modeled)h(by)f(a)h(symbolic)f(latch)h (along)f(with)-31 1526 y(some)i(e)o(xtra)h(logic)f(to)h(emulate)f(the)g (clocking)g(mechanism.)26 b(An)14 b(e)o(xample)h(of)g(e)o(xplicit)f (clocking)g(declared)h(by)f(the)-31 1582 y(user)d(is)g(the)g(follo)o (wing.)k(Suppose)c(that)g(a)h(system)e(is)g(composed)h(of)g(parallel)g (components)f(that)h(progress)g(dif)o(ferently)-31 1639 y(according)k(to)e(synchronization)g(signals)h(e)o(xchanged)h(among)e (them)h(by)g(means)g(of)g Fm(wait)i Fq(statements.)25 b(Then)14 b(it)g(is)-31 1695 y(necessary)e(to)f(declare)h(an)g(e)o (xplicit)e(clocking)h(signal:)-31 1775 y Fd(module)20 b(env;)-31 1815 y(reg)g(clk;)-31 1894 y(initial)g(clk=0;)-31 1973 y(always)g(#1)f(clk)h(=)g(!clk;)-31 2051 y(endmodule)40 2149 y Fq(This)15 b(code)h(generates)h(a)f(clocking)f(signal)g Fm(clk)j Fq(with)d(a)h(c)o(ycle)h(of)f(two)f(time)g(units)g(used)h(to)g (dri)o(v)o(e)g(the)g(whole)-31 2205 y(system)e(and)i(make)e(it)h (simulatable.)27 b(In)16 b(this)e(case)i Fo(VL)p Fq(2)p Fo(MV)h Fq(must)d(be)h(in)n(v)o(oked)g(with)f(the)h(options)f Fi(-c)i(-F)p Fq(,)g(meaning)-31 2261 y(e)o(xplicit)11 b(clocking)g(\()p Fi(-c)p Fq(\),)h(and)g(ignore)f(all)g(timing)e(\()p Fi(-F)p Fq(\).)-31 2407 y Fl(2.5)58 b(V)-6 b(erilog)15 b(f)o(or)f Fh(VL)p Fu(2)p Fh(MV)p Fl(:)21 b(Hints)15 b(and)h(T)l(raps)-31 2511 y Fq(In)c(this)e(section)h(a)g(list)g(of)g (hints)f(to)h(follo)o(w)m(,)g(and)h(traps)f(to)g(a)o(v)o(oid,)g(is)g (pro)o(vided)g(for)h(writing)e(V)-5 b(erilog)11 b(for)h(VIS.)26 2598 y(1.)23 b(Inside)13 b(an)h Fm(always)j Fq(block,)d(only)f (blocking)g(assignments)f(to)i Fm(reg)h Fq(v)o(ariables)f(are)h(allo)o (wed.)24 b(Therefore)14 b(do)83 2654 y(not)c(write)i(to)e(an)i (intermediate)e(v)o(ariable)h(\(that)g(is)g(a)h Fm(wire)h Fq(by)e(de\256nition\))f(inside)g(an)i Fm(always)i Fq(block)c(and)h(do) 83 2711 y(not)g(use)g(non-blocking)f(assignments)f(\()p Fm(<=)p Fq(\))k(e)o(v)o(er)m(.)918 2835 y(9)p eop %%Page: 10 11 10 10 bop 26 11 a Fq(2.)23 b(If)14 b(v)o(ariables)f(that)g(must)g(be)g (assigned)g(depend)h(on)f(each)h(other)n(,)h(assign)d(them)h(in)g (separate)i Fm(always)h Fq(blocks,)83 68 y(otherwise)11 b(the)g(beha)o(vior)g(may)g(depend)h(on)f(the)g(order)h(of)f(e)o(x)o (ecution.)26 162 y(3.)23 b(Inside)11 b(an)g Fm(always)i Fq(block,)f(blocking)e(assignments)f Fm(=)j Fq(are)g(sensiti)o(v)o(e)e (to)g(the)h(order)h(of)f(the)g(statements.)16 b(Thus)83 218 y(the)11 b(follo)o(wing)f(two)g(fragments)h(e)o(v)o(aluate)h(dif)o (ferently:)83 326 y Fd(state)19 b(=)h(1;)83 365 y(out)f(=)h(state;)83 473 y(out)f(=)h(state;)83 513 y(state)f(=)h(1;)83 638 y Fq(Since)11 b(we)f(do)g(not)g(allo)o(w)g(non-blocking)f(assignments)f (\(<=\))j(inside)e(an)i Fm(always)i Fq(block,)d(we)h(ha)o(v)o(e)g(to)f (analyze)83 694 y(the)h(order)h(of)f(e)o(v)o(aluation)g(to)g(be)g (certain)h(that)f(we)g(ha)o(v)o(e)h(the)g(desired)f(beha)o(vior)m(.)26 788 y(4.)23 b(It)11 b(is)g(not)g(le)o(gal)g(to)g(ha)o(v)o(e)h(a)g (block)f(of)g(assignments,)f(as)i(in:)83 896 y Fd(assign)19 b(begin)182 935 y(x)h(=)g(1;)182 975 y(y)g(=)g(2;)83 1014 y(end)83 1139 y Fq(Ho)o(we)o(v)o(er)n(,)12 b(it)f(is)g(le)o(gal)g (to)g(ha)o(v)o(e)h(a)g(block)f(of)g(assignments)f(for)h(an)h Fm(initial)i Fq(statement:)83 1247 y Fd(initial)19 b(begin)182 1287 y(x)h(=)g(1;)182 1326 y(y)g(=)g(2;)83 1365 y(end)26 1490 y Fq(5.)j(In)18 b Fm(always)i Fq(blocks,)f(at)f(the)g(ne)o(xt)f (clock,)j Fm(reg)f Fq(v)o(ariables)f(keep)g(their)f(pre)o(vious)g(v)o (alues)h(if)f(the)o(y)h(are)h(not)83 1547 y(e)o(xplicitly)10 b(assigned)h(to.)26 1641 y(6.)23 b(Introduce)12 b(nondeterminism)e (using)h(only)g Fm($ND)i Fq(assignments)e(to)g(wires.)19 b(Unlike)11 b(in)h(HSIS,)h(multiple)e(assign-)83 1697 y(ments)f(such)h(as:)83 1805 y Fd(always@\(posedge)19 b(clk\))g(begin)83 1844 y(state)g(<=)h(GO;)83 1884 y(state)f(<=)h(NOGO) g(;)83 1923 y(end)83 2048 y Fq(are)12 b(not)f(considered)g(le)o(gal)g (nondeterminism)e(in)i(VIS.)26 2142 y(7.)23 b Fo(VL)p Fq(2)p Fo(MV)15 b Fq(will)d(reject)i(a)g(V)-5 b(erilog)13 b(description)f(containing)h(an)g(unspeci\256ed)h(initial)e(state.)23 b(If)13 b(the)h(user)f(wants)g(a)83 2199 y(nondeterministic)e(initial)h (state,)i(it)e(should)g(be)i(speci\256ed)f(e)o(xplicitly)f(using)g(a)i Fm($ND)g Fq(construct,)g(for)f(e)o(xample:)83 2255 y Fd(initial)19 b(x)h(=)g($ND\(a,b,c\))p Fq(;)c(in)f(this)f(case,)j(a)e (nondeterministic)e(constant)i(will)f(be)h(created)h(with)f(a)g(name)g (as)83 2311 y Fd(x$initial_n23)p Fq(.)26 2405 y(8.)23 b Fm(for)12 b Fq(statements)f(are)h(supported)e(by)h Fo(VL)p Fq(2)p Fo(MV)p Fq(.)19 b(Here)12 b(is)f(an)g(e)o(xample:)83 2513 y Fd(always@\(posedge)19 b(clk\))g(begin)83 2553 y(//)h(randomly)f(push)h(floor)f(buttons)83 2592 y(for)g (\(i=0;i<=`floor-1;i=i+1\))g(begin)242 2632 y(if)h(\(random_up[i]\))f (up_floor_buttons[i]=ON;)242 2671 y(if)h(\(random_down[i]\))f (down_floor_buttons[i]=ON;)83 2710 y(end)906 2835 y Fq(10)p eop %%Page: 11 12 11 11 bop 83 11 a Fq(Note)11 b(that)g(\(unfortunately\))f(a)i Fm(for)g Fq(loop)f(can)h(only)e(be)h(used)g(inside)g(an)g Fm(always)j Fq(block.)i Fo(VL)p Fq(2)p Fo(MV)d Fq(by)e(default)83 68 y(macro-e)o(xpands)g(\(unrolls\))f(the)h(V)-5 b(erilog)11 b(code)g(before)g(processing)g(it.)16 b(Use)11 b(option)e Fi(-u)j Fq(to)e(suppress)g(unrolling.)26 162 y(9.)23 b(A)15 b Fm(wire)h Fq(can)f(be)g(a)g(v)o(ector)h(b)o(ut)e(not)g(an)h (array)m(.)28 b(Ho)o(we)o(v)o(er)n(,)17 b(a)e Fm(reg)h Fq(can)f(be)g(an)g(array:)24 b Fm(wire[1:10)q(])30 b(a;)83 218 y Fq(is)14 b(correct)i(b)o(ut)e Fm(wire)29 b(a[1:10];)18 b Fq(is)c(not.)27 b(As)14 b(an)h(e)o(xample)g(of)g(ho)o(w)f(things)g (dif)o(fer)h(for)g Fm(wire)h Fq(and)f Fm(reg)83 275 y Fq(v)o(ariables)c(consider:)83 382 y Fd(typedef)19 b(enum)h({UP,DOWN})f (dir;)83 422 y(wire[1:`elev])g(stop_next;)83 461 y(dir)g(reg)h (direction[1:`elev];)83 540 y(typedef)f(enum)h({on,)f(off,)h(interm})f (onoff;)83 665 y(onoff)g(reg)h(a[1:10])11 b Fq(is)g(correct,)h(b)o(ut)f Fd(onoff)20 b(wire)f(a[1:10])11 b Fq(and)h Fd(onoff)19 b(wire[1:10])g(a)12 b Fq(are)g(not)f(correct.)83 722 y(Also)g Fd(reg)20 b([1:`width])f(locations[1:`elev])10 b Fq(is)i(correct,)h(b)o(ut)e Fd(onoff)20 b(reg)f([1:`width])h (locations[1:`elev])83 778 y Fq(is)11 b(not)f(correct,)j(since)e(the)g (latter)h(are)g(a)g(two)e(dimensional)g(array)i(of)f(symbolic)f(type.)3 872 y(10.)23 b Fo(VL)p Fq(2)p Fo(MV)d Fq(puts)e(an)h(e)o(xtra)h(b)o(uf) o(fer)g(for)f Fm($ND)h Fq(constructs)e(when)h(the)g Fi(-Z)g Fq(option)f(is)h(used)f(,)k(while)c(by)h(default)83 928 y(it)f(does)g(not.)37 b(In)18 b(other)g(words,)i(by)e(default)f Fo(VL)p Fq(2)p Fo(MV)j Fq(connects)e(the)g(left-hand)h(side)f(v)o (ariable)g(directly)g(to)83 985 y(the)d(nondeterministic)e(table)i(for) g Fm($ND)p Fq(.)i(Notice)d(that)h(the)g(only)f(le)o(gal)h(usage)g(of)g Fm($ND)i Fq(when)e Fi(-Z)g Fq(is)g(not)f(used)83 1041 y(is:)34 b Fd(assign)19 b()h(=)f($ND\(...\))p Fq(;)24 b(where)e(the)e Fm(assign)j Fq(statement)c(is)h(a)h(continuous)e (assignment.)42 b(The)83 1098 y(generated)15 b(nondeterministic)e (table)i(will)f(use)h Fm()i Fq(as)e(the)g(output)f(v)o(ariable.)28 b(Instead)15 b(if)g(the)g Fi(-Z)g Fq(option)83 1154 y(is)j(turned)h (on,)i(one)e(can)g(use)g Fm($ND)h Fq(de\256nitions)e(in)g(e)o (xpressions)h(,)i(as)e(in:)31 b Fd(assign)19 b(a)h(=)g($ND\(0,1\))f(+)h (b)p Fq(,)h(or)83 1211 y Fd(assign)e(a)h(=)g(\(sel\))g(?)f($ND\(0,1\))h (:)g(b)p Ft(.)32 b Fq(In)16 b(this)g(case)h(intermediate)f(v)o (ariables)g(are)i(generated)f(for)g(the)f Fm($ND)83 1267 y Fq(construct.)j(W)l(e)13 b(recommend)f(only)f(using)h(the)g(default)f (v)o(alue)h(and)h(e)o(xplicitly)e(naming)g(the)h(nondeterministic)83 1323 y(v)o(alue,)h(since)f(this)f(will)g(become)i(a)f(pseudo-input)f (to)h(VIS)h(and)f(will)g(in)f(this)h(case)h(ha)o(v)o(e)g(a)f(name)g(gi) o(v)o(en)g(by)g(the)83 1380 y(user)m(.)3 1474 y(11.)23 b(In)10 b(VIS)h(we)g(insist)d(on)i(ha)o(ving)g(nondeterminism)e(only)h (for)i(single)e(output)g(constants.)16 b(A)10 b(BLIF-MV)h(table)f(like) 83 1582 y Fd(.table)19 b(->)h(x)83 1621 y(-)83 1746 y Fq(is)11 b(allo)o(wed)g(and)g(leads)g(to)g(a)h(pseudo-input.)j(Ho)o(we) o(v)o(er)d(a)g(table)f(like)83 1854 y Fd(.table)19 b(->)h(x<0>)g(x<1>) 83 1893 y(0)g(0)83 1933 y(0)g(1)83 1972 y(1)g(0)83 2097 y Fq(is)d(not)h(allo)o(wed.)36 b(The)18 b(reason)g(is)g(that)f(this)g (table)h(represents)g(a)h(relation)e(and)h(cannot)g(be)g(split)f(into)g (two)83 2154 y(independent,)11 b(nondeterministic,)f(single)g(output)g (tables,)i(since)f(replacing)g(it)g(with)83 2262 y Fd(.table)19 b(->)h(x<0>)83 2301 y(-)83 2341 y(.table)f(->)h(x<1>)83 2380 y(-)83 2505 y Fq(would)10 b(lead)h(to)g(the)h(possibility)c(of)23 b Fd(x)d(=)g(1)g(1)p Fq(.)83 2580 y(Such)12 b(a)g(situation)e(comes)h (up)g(naturally)g(when)g(we)h(want)f(a)h(v)o(ariable)g(to)f(ha)o(v)o(e) h(an)o(y)g(of)f(the)h(inte)o(gers)f(0,1,2.)18 b(But)83 2636 y(we)12 b(ha)o(v)o(e)g(to)g(assign)e(2)i(bits)f(to)g(hold)g(the)h (v)o(ariable,)g(and)g(we)g(want)f(to)g(be)h(able)g(to)f(increment)h(or) f(decrement)h(the)83 2693 y(v)o(ariable)f(later)h(on)f(\(so)g(it)g (must)f(be)i(an)f(inte)o(ger)n(,)h(rather)g(than)f(a)h(symbolic)e(v)o (ariable\):)906 2835 y(11)p eop %%Page: 12 13 12 12 bop 83 11 a Fd(wire[0:1])19 b(x;)83 51 y(assign)g(x)h(=)g ($ND\(0,1,2\);)83 176 y Fo(VL)p Fq(2)p Fo(MV)12 b Fq(generates)f (BLIF-MV)h(for)f(this)e(code)i(that)g(is)f(not)g(accepted)h(by)g(VIS.)h (An)e(a)o(wkward)h(way)g(around)f(this)83 232 y(is:)83 340 y Fd(assign)19 b(temp=$ND\(0,1,2,3\);)83 380 y(assign)g(location)h (=)f(\(temp==3\)?2:temp;)-31 526 y Fl(2.6)58 b(BLIF-MV)-31 630 y Fq(BLIF-MV)13 b(is)f(a)g(lo)o(w-le)o(v)o(el)g(language)g (designed)g(for)h(describing)e(hierarchical)i(symbolic)e(sequential)g (systems)g(with)-31 686 y(nondeterminism.)29 b(A)16 b(system)f(can)i (be)f(composed)f(of)h(interacting)g(sequential)f(subsystems,)h(each)h (of)f(which)g(can)-31 743 y(be)g(again)f(described)g(as)h(a)g (collection)e(of)i(communicating)d(sequential)i(subsystems.)27 b(This)15 b(makes)g(it)f(possible)h(to)-31 799 y(describe)c(systems)e (in)h(a)g(hierarchical)h(fashion.)16 b(The)10 b(internal)g(data)g (structure)h(of)f(SIS)h(does)g(not)e(support)h(hierarchical)-31 856 y(representations.)20 b(Hence,)15 b(e)o(v)o(en)e(though)e(BLIF)j (can)f(describe)g(hierarchy)m(,)h(BLIF)f(descriptions)f(are)h (\257attened)g(into)f(a)-31 912 y(single-le)o(v)o(el)h(representation)h (within)f(SIS.)i(In)f(VIS,)h(ho)o(we)o(v)o(er)n(,)h(the)e(original)f (hierarchy)h(speci\256ed)g(in)g(BLIF-MV)h(is)-31 969 y(preserv)o(ed)d(in)f(internal)g(data)h(structures)f(so)g(that)g(true)g (hierarchical)h(synthesis)e(and)h(v)o(eri\256cation)h(is)f(possible.)40 1025 y(BLIF-MV)f(also)g(allo)o(ws)f(nondeterministic)f(gates)870 1009 y Ft(3)899 1025 y Fq(and)i(hence)g(makes)f(it)h(possible)e(to)i (model)f(nondeterministic)-31 1082 y(systems.)16 b(F)o(or)c(instance,)g (a)g(design)f(in)g(its)f(early)i(stages)f(may)h(contain)e (nondeterminism,)g(as)i(man)o(y)f(aspects)h(may)f(not)-31 1138 y(be)i(yet)f(decided.)19 b(Lastly)m(,)12 b(BLIF-MV)h(supports)e (multi-v)o(alued)g(v)o(ariables,)h(which)g(can)h(be)f(used)g(to)g (simplify)e(system)-31 1194 y(descriptions.)40 1251 y(The)19 b(semantics)f(of)i(BLIF-MV)g(is)e(de\256ned)i(o)o(v)o(er)g(\257attened) g(networks,)g(using)e(a)i(combinational/sequential)-31 1307 y(concurrenc)o(y)11 b(model.)16 b(There)10 b(are)h(four)f(basic)g (primiti)o(v)o(es:)k Fi(variables)p Fq(,)c Fi(tables)f Fq(\(intuiti)o(v)o(ely)f(nondeterministic)g(gates\),)-31 1364 y Fi(wir)n(es)16 b Fq(and)g Fi(latc)o(hes)p Fq(.)30 b(A)16 b Fi(variable)g Fq(takes)f(v)o(alues)g(from)h(some)f(\256nite)h (domain.)30 b(A)16 b(relation)f(de\256ned)h(o)o(v)o(er)h(a)f(set)g(of) -31 1420 y(v)o(ariables)f(is)h(represented)g(using)e(a)i Fi(table)p Fq(.)29 b(The)16 b(v)o(ariables)f(of)h(a)f(table)h(are)g(di) o(vided)f(into)f(inputs)h(and)g(outputs.)28 b(A)-31 1477 y(particular)13 b(v)o(ariable)h(can)f(be)g(designated)g(as)g(an)h (output)d(in)i(at)g(most)f(one)i(table.)22 b(T)l(ables)13 b(are)h(inter)o(-connected)f(using)-31 1533 y Fi(wir)n(es)p Fq(.)21 b(If)14 b(a)f(table)f(is)g(deterministic)g(and)g(Boolean,)i(it) e(may)h(also)f(be)h(thought)e(of)i(as)g(a)g(logic)f(gate.)21 b(W)n(ires)13 b(may)f(only)-31 1590 y(take)d(v)o(alues)g(in)f(the)h (domain)g(of)g(the)g(corresponding)f(v)o(ariable.)16 b(A)10 b Fi(latc)o(h)e Fq(is)h(a)h(specialized)f(element)f(that)h(can)h (be)f(placed)-31 1646 y(on)j(a)h(wire.)20 b(The)12 b(latch)g(di)o (vides)f(the)i(wire)f(into)g(two)f(parts;)h(the)g(input)g(to)g(the)g (latch,)h(and)f(the)g(output)f(of)h(the)h(latch.)19 b(A)-31 1703 y(set)13 b(of)h(initial)e(v)o(alues)h(is)g(associated)g(to)g(e)o (v)o(ery)h(latch;)g(the)o(y)f(must)f(be)i(a)f(subset)g(of)g(the)h(set)f (of)g(v)o(alues)g(of)h(its)e(wire.)23 b(A)-31 1759 y(state)12 b(is)f(an)h(assignment)e(of)i(v)o(alues)f(to)h(the)f(latches)h(of)g(a)g (model,)f(where)i(a)f(v)o(alue)f(assigned)g(to)h(a)g(latch)f(must)g(be) h(in)f(its)-31 1815 y(domain.)20 b(An)12 b(initial)f(state)i(is)f(a)h (state)f(where)h(e)o(v)o(ery)h(latch)e(takes)g(a)h(v)o(alue)g(from)f (its)g(set)g(of)h(initial)e(v)o(alues.)20 b(Note)13 b(that)-31 1872 y(the)e(system)g(can)g(ha)o(v)o(e)h(more)g(than)f(one)g(initial)f (state)h(in)g(general.)40 1928 y(At)i(e)o(v)o(ery)i(time)e(point,)h (the)g(system)f(is)h(in)f(some)h(state,)h(where)f(each)h(latch)f(has)g (a)g(v)o(alue.)25 b(At)14 b(e)o(v)o(ery)g(clock)g(tick,)-31 1985 y(all)f(the)h(latches)f(update)g(their)g(v)o(alues.)23 b(These)14 b(v)o(alues)f(then)g(propagate)g(through)g(tables)g(until)f (all)h(the)g(wires)h(ha)o(v)o(e)g(a)-31 2041 y(consistent)8 b(set)g(of)h(v)o(alues.)15 b(If)10 b(a)f(latch)f(is)g(encountered)h (during)f(the)h(propagation,)f(i.e.,)i(an)f(output)f(of)h(a)g(table)f (is)g(an)h(input)-31 2098 y(of)k(an)g(latch,)g(the)f(propagation)f (process)i(through)f(that)g(latch)g(is)g(stopped.)20 b(Note)12 b(that)g(because)h(of)g(nondeterminism,)-31 2154 y(gi)o(v)o(en)e(a)g(single)e(state,)i(there)h(may)e(be)h(se)o(v)o (eral)g(consistent)e(sets)i(of)g(v)o(alues.)16 b(This)10 b(semantics)g(can)h(be)g(seen)g(as)f(a)h(simple)-31 2211 y(e)o(xtension)h(of)h(the)f(standard)h(semantics)f(of)g(synchronous)g (single-clocked)g(digital)f(circuits.)20 b(In)13 b(fact,)g(if)g(e)o(v)o (ery)g(table)-31 2267 y(is)h(deterministic)e(and)i(e)o(v)o(ery)h(latch) f(has)g(a)g(single)g(initial)e(state,)j(the)f(two)f(semantics)h(are)h (e)o(xactly)f(equal.)25 b(The)14 b(only)-31 2324 y(dif)o(ferences)e (are)g(in)f(the)h(interpretation)e(of)h(nondeterministic)f(tables)h (and)g(latches)g(with)g(multiple)f(initial)g(states.)40 2380 y(In)15 b(VIS)h(the)g(command)e Fi(r)n(ead)p 534 2380 14 2 v 17 w(blif)p 613 2380 V 15 w(mv)i Fq(reads)g(a)f(BLIF-MV)i (description)d(created)i(by)g Fo(VL)p Fq(2)p Fo(MV)p Fq(,)i(or)d(some)g(other)-31 2436 y(means,)j(and)e(then)f(sets)h(up)g (a)g(corresponding)f(internal)h(data)g(structure.)31 b(The)16 b Fi(write)p 1385 2436 V 16 w(blif)p 1463 2436 V 16 w(mv)g Fq(command)f(writes)h(a)-31 2493 y(BLIF-MV)i(description)f (to)g(a)g(\256le.)36 b(The)17 b(BLIF-MV)h(format)f(is)g(not)g(meant)g (to)g(be)g(read)h(or)g(written)f(directly)f(by)-31 2549 y(the)h(user)n(,)j(e)o(v)o(en)e(though)e(simple)g(e)o(xamples)i(in)f (BLIF-MV)h(may)f(e)o(xhibit)f(some)h(de)o(gree)i(of)e(clarity)m(.)35 b(In)17 b(the)h(VIS)-31 2606 y(documentation,)10 b(the)i(syntax)e(of)i (BLIF-MV)g(is)f(described)g(in)g(the)g(document)g(entitled)f (\252BLIF-MV\272.)p -31 2646 768 2 v 22 2674 a Fg(3)36 2690 y Ff(These)e(gates)g(generate)g(some)g(output)h(from)h(the)f(set)g (of)g(pre-speci\256ed)e(outputs.)906 2835 y Fq(12)p eop %%Page: 13 14 13 13 bop -31 11 a Fl(2.7)58 b(BLIF)-31 115 y Fq(BLIF)16 b(\(Berkele)o(y)g(Logic)e(Interchange)h(F)o(ormat\))g(is)f(an)h (intermediate)f(format)h(to)f(describe)h(sequential)f(circuits.)26 b(It)-31 172 y(has)12 b(been)h(de\256ned)f(as)g(an)h(entry)e(point)h (to)f(logic)h(optimizers)f(such)g(as)i(SIS,)g(the)f(synthesis)f(system) g(de)o(v)o(eloped)h(at)g(UC)-31 228 y(Berkele)o(y)m(.)17 b(A)10 b(BLIF)h(\256le)f(represents)h(a)f(sequential)f(circuit)h (either)f(as)h(an)h(interconnection)e(of)h(logic)f(gates)g(and)h (latches)-31 284 y(or)f(as)h(the)f(state)g(transition)f(table)h(of)g(a) h(\256nite)f(state)g(machine)g(\(FSM\))h(or)f(in)g(both)f(ways)h(\(an)h (FSM)f(and)g(a)h(corresponding)-31 341 y(gate-le)o(v)o(el)g (implementation\).)k(It)9 b(is)g(possible)f(to)h(ha)o(v)o(e)i(VIS)f (and)f(SIS)i(interact,)f(by)f(sending)g(to)g(SIS)h(a)g(binary)f (encoded)-31 397 y(and)h(deterministic)f(sequential)g(circuit)h(and)h (recei)o(ving)f(back)g(an)g(optimized)f(v)o(ersion)h(of)h(the)f(same.) 16 b(Notice)10 b(that)g(e)o(v)o(en)-31 454 y(though)g(SIS)h(can)g(also) g(handle)f(KISS)i(\256les)e(\(i.e.,)j(partially)c(encoded)i(and)g (partially)f(deterministic)f(FSMs\),)i(currently)-31 510 y(VIS)17 b(outputs)f(hardware)h(FSM)g(descriptions)e(\(i.e.,)20 b(a)d(netlist)e(describing)h(completely)g(encoded)h(and)f(completely) -31 567 y(deterministic)11 b(FSMs\),)i(for)f(SIS)h(input.)18 b(F)o(or)13 b(a)g(description)e(of)h(BLIF)h(and)f(SIS)h(we)g(refer)g (to)f(the)g(tutorial)f(paper)24 b([4)q(].)-31 623 y(A)12 b(BLIF)g(description)e(can)i(be)g(read)g(directly)f(into)f(VIS)i(by)f (the)g(command)g Fi(r)n(ead)p 1277 623 14 2 v 16 w(blif)p Fq(,)g(while)g Fi(write)p 1584 623 V 16 w(blif)g Fq(con)n(v)o(erts)g (the)-31 680 y(internal)g(VIS)g(data)h(structure)f(into)f(a)h(BLIF)h (\256le)g(readable)g(by)e(SIS.)j(The)e(synthesis)f(path)g(from)h(VIS)h (to)f(SIS)h(and)f(back)-31 736 y(and)h(related)f(commands)f(are)j (described)e(in)g(Chapter)h(5.)-31 883 y Fl(2.8)58 b(Nondeterminism)16 b(and)f(Incomplete)g(Speci\256cation)-31 986 y Fq(The)9 b(only)g(form)g(of)g(nondeterminism)e(supported)h(in)h(VIS)g(is)g(the)g (construct)g Fm($ND)h Fq(in)f(V)-5 b(erilog.)15 b(A)9 b(system)f(so)h(described)-31 1043 y(is)k(considered)g(internally)f(as) i(deterministic,)e(because)i(pseudo-input)e(v)o(ariables)h(are)h (introduced)e(to)h(\252control\272)g(this)-31 1099 y(form)g(of)g (nondeterminism.)19 b(Pseudo-input)12 b(v)o(ariables)h(are,)h(by)f (de\256nition,)g(those)f(v)o(ariables)h(introduced)f(by)h(a)g Fm($ND)-31 1156 y Fq(construct.)31 b(A)16 b(V)-5 b(erilog)16 b(nondeterministic)e(assignment,)i(like)g Fm(assign)29 b(rand_cho)q(ice)i(=)d($ND\(0,1\);)20 b Fq(is)-31 1212 y(translated)11 b(by)g Fo(VL)p Fq(2)p Fo(MV)i Fq(into)d(the)i(table:) -31 1301 y Fd(#)20 b(assign)f(rand_choice)40 b(=)19 b($NDset)h(\()g (0,1)f(\))-31 1341 y(.names)h(->)f(rand_choice)-31 1380 y(0)-31 1420 y(1)40 1526 y Fq(There)e(are)h(other)f(ways)f(of)h (introducing)f(nondeterminism)f(in)h(V)-5 b(erilog)17 b(that)f(are)i(supported)e(by)h Fo(VL)p Fq(2)p Fo(MV)h Fq(and)-31 1583 y(HSIS,)13 b(b)o(ut)e(are)h(not)f(supported)f(by)h (VIS.)40 1639 y Fo(VL)p Fq(2)p Fo(MV)k Fq(always)f(produces)g (completely)f(speci\256ed)h(BLIF-MV)h(tables.)25 b(Ho)o(we)o(v)o(er)n (,)16 b(a)f(BLIF-MV)g(\256le)f(not)g(pro-)-31 1695 y(duced)k(by)f Fo(VL)p Fq(2)p Fo(MV)i Fq(\(b)o(ut)e(by)g(another)h(tool)e(or)i (manually\))e(may)h(contain)g(incomplete)g(speci\256cation.)35 b(When)17 b(the)-31 1752 y(internal)f(data)g(structure)g(is)f(b)o (uilt,)i(each)f(table)g(is)g(checked)g(for)g(determinism)e(and)i (complete)g(speci\256cation)g(\(with)-31 1808 y(the)h(e)o(xception)g (of)h(the)f(pseudo-inputs\).)33 b(This)17 b(is)f(a)i(conserv)o(ati)o(v) o(e)f(test,)i(in)e(the)g(sense)g(that)g(one)g(or)g(more)h(tables)-31 1865 y(may)12 b(be)h(nondeterministic)e(while)h(the)g(entire)g(network) g(is)g(deterministic.)19 b(Similarly)m(,)12 b(one)h(or)f(more)h(tables) f(may)g(be)-31 1921 y(incompletely)e(speci\256ed)i(while)f(the)g (network)f(is)h(completely)g(speci\256ed.)-31 2068 y Fl(2.9)58 b(Example:)22 b(a)14 b(T)l(raf\256c)h(Light)g(Contr)o(oller) -31 2172 y Fq(In)f(this)e(tutorial,)h(we)g(will)g(use)g(the)g(e)o (xample)g(of)h(a)f(traf)o(\256c)i(light)d(controller)h(\(TLC\),)h (\256rst)f(introduced)g(by)g(Mead)g(and)-31 2228 y(Conway)e([5],)h(to)f (illustrate)g(se)o(v)o(eral)g(concepts.)40 2284 y(A)19 b(little)g(used)g(farm)h(road)g(intersects)f(a)h(multi-lane)f(highway;) j(a)e(traf)o(\256c)h(light)d(controls)h(the)h(traf)o(\256c)h(at)e(the) -31 2341 y(intersection.)h(The)13 b(light)f(controller)g(is)h (implemented)e(to)h(maximize)g(the)h(time)f(the)h(highway)e(light)h (remains)g(green.)-31 2397 y(The)g Fi(main)e Fq(module)h(ties)g (together)g(a)g(timer)n(,)h(a)f(sensor)n(,)h(a)g(farm)f(light)f (control)h(and)g(a)h(highway)e(control)h(submodules.)40 2454 y(The)16 b(timer)g(submodule)e(implements)g(a)j(timer)n(,)g(that)f (outputs)f(\252short\272)h(and)g("long")f(timeouts.)29 b(The)16 b(highway)-31 2510 y(light)f(stays)h(green)g(for)g(at)h(least) e(\252long\272)h(time.)31 b(An)o(y)16 b(time)f(after)i(\252long\272)f (time,)h(if)f(there)g(is)g(a)g(car)h(waiting)e(on)g(the)-31 2567 y(farm)h(road,)i(then)d(the)h(farm)g(light)f(turns)g(green.)31 b(The)16 b(farm)g(light)e(remains)i(green)g(until)f(there)h(are)h(no)f (more)g(cars)-31 2623 y(on)f(the)g(farm)f(road,)j(or)e(until)e(the)i (long)f(timer)h(e)o(xpires.)27 b(The)15 b(yello)o(w)f(light)g(for)h (both)f(directions)h(stays)f(yello)o(w)g(for)-31 2680 y(\252short\272)h(time.)27 b(Note)14 b(that)h(only)f(a)h(single)f (timer)g(is)h(used)f(for)h(both)f(the)h(farm)g(road)g(and)g(highway)e (controllers.)27 b(In)906 2835 y(13)p eop %%Page: 14 15 14 14 bop -31 11 a Fq(theory)m(,)15 b(this)e(could)h(lead)g(to)f (con\257icts;)i(as)g(implemented,)e(such)h(con\257icts)g(are)h(a)o(v)o (oided.)24 b(From)14 b(the)g(ST)l(AR)m(T)h(state,)-31 68 y(the)c(timer)f(produces)h(the)g(signal)f(\252short\272)h(after)h(a) f(nondeterministic)e(amount)h(of)h(time.)16 b(The)c(signal)e (\252short\272)h(remains)-31 124 y(asserted)k(until)f(the)h(timer)f(is) h(reset)g(\(via)g(the)g(signal)f(\252start\272\).)28 b(From)15 b(the)g(SHOR)m(T)h(state,)g(the)f(timer)f(produces)h(the)-31 181 y(signal)c(\252long\272)g(after)i(a)f(nondeterministic)d(amount)i (of)h(time.)17 b(The)12 b(signal)e(\252long\272)i(remains)f(asserted)h (until)e(the)i(timer)-31 237 y(is)g(reset.)21 b(Notice)12 b(that)g(the)h(use)f(of)h(nondeterminism)d(in)i(the)h(description)e(of) i(the)f(timer)g(models)g(an)h(in\256nite)f(number)-31 294 y(of)g(actual)f(implementations,)e(each)j(with)f(a)h(dif)o(ferent)f (set-up)g(for)h(the)f(\252short\272)g(and)h(\252long\272)f(periods.)40 350 y(The)h(farm)g(light)f(stays)g(RED)i(until)e(it)g(is)h(enabled)g (by)g(the)g(highway)f(control.)18 b(At)12 b(this)f(point,)h(it)f (resets)h(the)g(timer)n(,)-31 407 y(and)e(mo)o(v)o(es)g(to)f(GREEN.)h (It)g(stays)f(in)g(GREEN)h(until)f(there)h(are)h(no)e(cars,)i(or)f(the) f(long)g(timer)h(e)o(xpires.)16 b(At)10 b(this)e(point,)i(it)-31 463 y(mo)o(v)o(es)h(to)g(YELLO)n(W)g(and)g(resets)h(the)e(timer)m(.)17 b(It)11 b(stays)g(in)g(YELLO)n(W)g(until)f(the)h(short)f(timer)h(e)o (xpires.)17 b(At)11 b(this)f(point,)-31 519 y(it)h(mo)o(v)o(es)g(to)g (RED)h(and)f(enables)h(the)f(highway)f(controller)m(.)40 576 y(The)i(highway)f(light)g(stays)g(RED)i(until)e(it)g(is)h(enabled)g (by)g(the)g(farm)g(control.)18 b(At)12 b(this)f(point,)h(it)f(resets)h (the)g(timer)n(,)-31 632 y(and)f(mo)o(v)o(es)g(to)f(GREEN.)h(It)g (stays)f(in)g(GREEN)h(until)f(there)h(are)g(cars)h(on)e(the)h(farm)f (road)h(and)g(the)f(long)g(timer)h(e)o(xpires.)-31 689 y(At)e(this)g(point,)g(it)g(mo)o(v)o(es)g(to)g(YELLO)n(W)h(and)f (resets)g(the)h(timer)m(.)16 b(It)9 b(stays)g(in)g(YELLO)n(W)g(until)g (the)g(short)g(timer)g(e)o(xpires.)-31 745 y(At)i(this)g(point,)f(it)h (mo)o(v)o(es)g(to)g(RED)h(and)f(enables)h(the)f(farm)g(controller)m(.) 40 802 y(There)h(is)f(a)h(single)f(sensor)g(that)g(detects)g(the)h (presence)g(of)g(a)g(car)g(in)f(either)h(direction)f(of)h(the)f(farm)g (road.)18 b(At)12 b(each)-31 858 y(clock)f(tick,)h(it)f (nondeterministically)d(reports)k(that)f(a)g(car)h(is)f(present)h(or)f (not.)40 915 y(The)19 b(fact)h(that)f(the)g(timer)h(is)f(a)g(Moore)h (machine)f(\(while)g(the)h(highway)e(and)i(farm)f(controllers)g(are)h (Mealy)-31 971 y(machines\))f(ensures)g(that)g(the)g(component)f(FSMs)h (can)h(be)f(combined)f(to)h(form)g(a)h(well-de\256ned)f(product)g(FSM) -31 1028 y(\(without)10 b(combinational)g(c)o(ycles\).)297 1087 y 20138540 16782118 0 0 14077296 11643371 startTexFig 297 1087 a %%BeginDocument: tlc_block.eps /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {} def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -114.0 222.0 translate 1 -1 scale /clp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /l {lineto} bind def /m {moveto} bind def /n {newpath} bind def /s {stroke} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0.06000 0.06000 sc 7.500 slw % Polyline n 2950 780 m 4045 780 l 4045 1975 l 2950 1975 l clp gs col6 1.00 shd ef gr gs col-1 s gr % Ellipse n 5115 3144 124 124 0 360 DrawEllipse gs col2 1.00 shd ef gr gs col-1 s gr % Ellipse n 4819 2703 124 124 0 360 DrawEllipse gs col4 1.00 shd ef gr gs col-1 s gr % Polyline n 4335 1225 m 5175 1225 l 5175 1575 l 4335 1575 l clp gs col29 1.00 shd ef gr gs col-1 s gr % Ellipse n 4545 3154 124 124 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col-1 s gr % Polyline n 4325 775 m 5175 775 l 5175 1125 l 4325 1125 l clp gs col29 1.00 shd ef gr gs col-1 s gr % Polyline n 2100 940 m 2600 940 l 2600 1110 l 2100 1110 l clp gs col3 1.00 shd ef gr gs col-1 s gr % Polyline n 3105 1400 m 3880 1400 l 3880 1815 l 3105 1815 l clp gs col3 1.00 shd ef gr gs col-1 s gr % Polyline n 3100 890 m 3875 890 l 3875 1305 l 3100 1305 l clp gs col3 1.00 shd ef gr gs col-1 s gr % Polyline n 2100 1725 m 2600 1725 l 2600 1895 l 2100 1895 l clp gs col3 1.00 shd ef gr gs col-1 s gr % Polyline [1 50.0] 50.000000 setdash n 3885 1810 m 5125 2455 l gs col-1 s gr [] 0 setdash % Polyline [1 50.0] 50.000000 setdash n 3105 1810 m 4255 3405 l gs col-1 s gr [] 0 setdash % Polyline n 4045 1795 m 4285 1795 l 4285 2195 l 1920 2195 l 1920 1820 l 2095 1815 l gs col-1 s gr n 1974.19 1788.44 m 2095.00 1815.00 l 1975.91 1848.41 l gs col-1 s gr % Polyline n 2605 1845 m 2945 1845 l gs col-1 s gr n 2825.00 1815.00 m 2945.00 1845.00 l 2825.00 1875.00 l gs col-1 s gr % Polyline n 2605 1760 m 2950 1760 l gs col-1 s gr n 2830.00 1730.00 m 2950.00 1760.00 l 2830.00 1790.00 l gs col-1 s gr % Polyline n 2605 1005 m 2945 1005 l gs col-1 s gr n 2825.00 975.00 m 2945.00 1005.00 l 2825.00 1035.00 l gs col-1 s gr % Polyline n 4055 1385 m 4335 1385 l gs col-1 s gr n 4215.00 1355.00 m 4335.00 1385.00 l 4215.00 1415.00 l gs col-1 s gr % Polyline n 4045 950 m 4335 950 l gs col-1 s gr n 4215.00 920.00 m 4335.00 950.00 l 4215.00 980.00 l gs col-1 s gr [1 50.0] 50.000000 setdash % Ellipse n 4798 3026 660 660 0 360 DrawEllipse gs col-1 s gr [] 0 setdash % Polyline n 4894 2808 m 5049 3038 l gs col-1 s gr n 5006.82 2921.72 m 5049.00 3038.00 l 4957.06 2955.25 l gs col-1 s gr /Times-Roman findfont 180.00 scalefont setfont 4494 3208 m gs 1 -1 sc (Y) col-1 show gr % Polyline n 4994 3158 m 4669 3158 l gs col-1 s gr n 4789.00 3188.00 m 4669.00 3158.00 l 4789.00 3128.00 l gs col-1 s gr % Polyline n 4559 3028 m 4739 2808 l gs col-1 s gr n 4639.79 2881.88 m 4739.00 2808.00 l 4686.23 2919.87 l gs col-1 s gr % Interp Spline n 4729 2633 m 4656.37 2652.35 4623.87 2649.85 4599 2623 curveto 4577.38 2599.66 4593.38 2558.30 4599 2538 curveto 4606.71 2510.15 4632.16 2456.28 4659 2438 curveto 4680.00 2423.70 4726.31 2420.18 4749 2423 curveto 4770.71 2425.70 4814.19 2433.34 4829 2458 curveto 4840.06 2476.41 4825.31 2508.20 4824 2523 curveto 4823.24 2531.55 4821.99 2544.05 4819 2573 curveto gs col-1 s gr n 4857.06 2496.51 m 4819.00 2573.00 l 4797.38 2490.34 l gs col-1 s gr % Interp Spline n 5189 3058 m 5169.65 2985.00 5172.15 2952.00 5199 2928 curveto 5222.34 2907.00 5263.70 2923.00 5284 2928 curveto 5311.85 2935.00 5365.72 2961.00 5384 2988 curveto 5398.30 3009.00 5401.82 3055.00 5399 3078 curveto 5396.30 3099.00 5388.66 3143.00 5364 3158 curveto 5345.59 3169.00 5313.80 3154.00 5299 3153 curveto 5290.45 3152.00 5277.95 3150.00 5249 3148 curveto gs col-1 s gr n 5326.74 3183.44 m 5249.00 3148.00 l 5330.88 3123.58 l gs col-1 s gr % Interp Spline n 4469 3258 m 4488.00 3331.00 4485.00 3364.00 4459 3388 curveto 4435.00 3409.00 4394.00 3393.00 4374 3388 curveto 4346.00 3381.00 4293.00 3355.00 4274 3328 curveto 4260.00 3307.00 4257.00 3261.00 4259 3238 curveto 4262.00 3217.00 4270.00 3173.00 4294 3158 curveto 4313.00 3147.00 4344.00 3162.00 4359 3163 curveto 4367.00 3164.00 4380.00 3166.00 4409 3168 curveto gs col-1 s gr n 4331.25 3132.57 m 4409.00 3168.00 l 4327.13 3192.42 l gs col-1 s gr /Times-Roman findfont 180.00 scalefont setfont 3165 1220 m gs 1 -1 sc (controller) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 3160 1085 m gs 1 -1 sc (farm road) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 4385 954 m gs 1 -1 sc (farm road) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 4510 1110 m gs 1 -1 sc (light) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 4440 1382 m gs 1 -1 sc (highway) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 4520 1538 m gs 1 -1 sc (light) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 2140 1065 m gs 1 -1 sc (sensor) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 2165 1856 m gs 1 -1 sc (timer) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 3210 1578 m gs 1 -1 sc (highway) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 3180 1739 m gs 1 -1 sc (controller) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 4779 2758 m gs 1 -1 sc (R) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 5059 3188 m gs 1 -1 sc (G) col-1 show gr $F2psEnd restore %%EndDocument endTexFig 455 2248 a Fq(Figure)h(2.1:)17 b(Block)11 b(diagram)g(of)h(traf)o (\256c)g(light)e(controller)m(.)40 2353 y(Fig.)h(2.1)f(is)g(a)h(block)f (diagram)g(for)h(the)f(entire)g(controller)n(,)h(and)f(Fig.)h(2.2)g (describes)f(the)g(four)h(FSMs)g(that)f(make)f(up)-31 2410 y(the)i(system.)40 2466 y(This)f(entire)i(e)o(xample)f(is)g (written)g(in)g(V)-5 b(erilog)11 b(as:)-31 2553 y Fd(/*)20 b(Written)f(by)h(Tom)g(Shiple,)f(25)h(October)f(1995)h(*/)-31 2632 y(/*)g(Symbolic)f(variables)h(*/)-31 2671 y(typedef)g(enum)f ({YES,)h(NO})f(boolean;)-31 2711 y(typedef)h(enum)f({START,)h(SHORT,)f (LONG})h(timer_state;)906 2835 y Fq(14)p eop %%Page: 15 16 15 15 bop 49 -34 a 27970197 20138535 0 0 44928942 32364625 startTexFig 49 -34 a %%BeginDocument: tlc.eps /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {} def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -49.0 552.0 translate 1 -1 scale /clp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /l {lineto} bind def /m {moveto} bind def /n {newpath} bind def /s {stroke} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /DrawSplineSection { /y3 exch def /x3 exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def /xa x1 x2 x1 sub 0.666667 mul add def /ya y1 y2 y1 sub 0.666667 mul add def /xb x3 x2 x3 sub 0.666667 mul add def /yb y3 y2 y3 sub 0.666667 mul add def x1 y1 lineto xa ya xb yb x3 y3 curveto } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0.06000 0.06000 sc 7.500 slw % Arc n 2491.90 2242.12 m 2401.00 2326.00 l 2441.74 2209.21 l gs col-1 s gr n 2069.10 2108.28 396.94 132.49 33.26 arc gs col-1 s gr % Ellipse n 2101 2363 302 302 0 360 DrawEllipse gs col-1 s gr % Arc n 5416.90 2317.12 m 5326.00 2401.00 l 5366.74 2284.21 l gs col-1 s gr n 4994.10 2183.28 396.94 132.49 33.26 arc gs col-1 s gr % Ellipse n 5026 2438 302 302 0 360 DrawEllipse gs col-1 s gr % Arc n 3766.90 4417.12 m 3676.00 4501.00 l 3716.74 4384.21 l gs col-1 s gr n 3344.10 4283.28 396.94 132.49 33.26 arc gs col-1 s gr % Ellipse n 3376 4538 302 302 0 360 DrawEllipse gs col-1 s gr % Arc n 5866.90 7042.12 m 5776.00 7126.00 l 5816.74 7009.21 l gs col-1 s gr n 5444.10 6908.28 396.94 132.49 33.26 arc gs col-1 s gr % Ellipse n 5476 7163 302 302 0 360 DrawEllipse gs col-1 s gr % Arc n 3915.90 8617.12 m 3825.00 8701.00 l 3865.74 8584.21 l gs col-1 s gr n 3493.10 8483.27 396.94 132.49 33.26 arc gs col-1 s gr % Ellipse n 3525 8738 302 302 0 360 DrawEllipse gs col-1 s gr % Arc n 11116.90 2241.12 m 11026.00 2325.00 l 11066.74 2208.21 l gs col-1 s gr n 10694.10 2107.28 396.94 132.49 33.26 arc gs col-1 s gr % Ellipse n 10726 2362 302 302 0 360 DrawEllipse gs col-1 s gr % Arc n 11341.90 7042.12 m 11251.00 7126.00 l 11291.74 7009.21 l gs col-1 s gr n 10919.10 6908.28 396.94 132.49 33.26 arc gs col-1 s gr % Ellipse n 10951 7163 302 302 0 360 DrawEllipse gs col-1 s gr % Arc n 9766.91 8767.12 m 9676.00 8851.00 l 9716.74 8734.21 l gs col-1 s gr n 9344.10 8633.27 396.94 132.49 33.26 arc gs col-1 s gr % Ellipse n 9376 8888 302 302 0 360 DrawEllipse gs col-1 s gr % Arc n 8416.90 7042.12 m 8326.00 7126.00 l 8366.74 7009.21 l gs col-1 s gr n 7994.10 6908.28 396.94 132.49 33.26 arc gs col-1 s gr % Ellipse n 8026 7163 302 302 0 360 DrawEllipse gs col-1 s gr % Arc n 8341.90 2242.12 m 8251.00 2326.00 l 8291.74 2209.21 l gs col-1 s gr n 7919.10 2108.28 396.94 132.49 33.26 arc gs col-1 s gr % Ellipse n 7951 2363 302 302 0 360 DrawEllipse gs col-1 s gr % Arc n 2490.90 6967.12 m 2400.00 7051.00 l 2440.74 6934.21 l gs col-1 s gr n 2068.10 6833.28 396.94 132.49 33.26 arc gs col-1 s gr % Ellipse n 2100 7088 302 302 0 360 DrawEllipse gs col-1 s gr % Arc n 10613.09 7222.32 m 10725.00 7275.00 l 10601.46 7281.18 l gs col-1 s gr n 8962.50 16200.00 9097.36 -94.02 -78.83 arc gs col-1 s gr % Polyline n 7575 7275 m 7800 7350 l 7575 7425 l gs col-1 s gr % Polyline n 7417 2422 m 7642 2497 l 7417 2572 l gs col-1 s gr % Polyline n 1642 2422 m 1867 2497 l 1642 2572 l gs col-1 s gr % Polyline n 1650 7200 m 1875 7275 l 1650 7350 l gs col-1 s gr % Open spline n 8250.00 2475.00 m 8812.50 2362.50 l 8812.50 2362.50 9375.00 2250.00 9937.50 2400.00 DrawSplineSection 10500.00 2550.00 l gs col-1 s gr n 10391.78 2490.09 m 10500.00 2550.00 l 10376.32 2548.07 l gs col-1 s gr % Open spline n 10650.00 2625.00 m 10012.50 2850.00 l 10012.50 2850.00 9375.00 3075.00 8737.50 2850.00 DrawSplineSection 8100.00 2625.00 l gs col-1 s gr n 8203.17 2693.23 m 8100.00 2625.00 l 8223.14 2636.65 l gs col-1 s gr % Open spline n 2400.00 7125.00 m 3187.50 7012.50 l 3187.50 7012.50 3975.00 6900.00 4575.00 7087.50 DrawSplineSection 5175.00 7275.00 l gs col-1 s gr n 5069.41 7210.57 m 5175.00 7275.00 l 5051.51 7267.84 l gs col-1 s gr % Open spline n 3300.00 8925.00 m 2587.50 8737.50 l 2587.50 8737.50 1875.00 8550.00 1950.00 7987.50 DrawSplineSection 2025.00 7425.00 l gs col-1 s gr n 1979.40 7539.98 m 2025.00 7425.00 l 2038.88 7547.91 l gs col-1 s gr % Open spline n 9150.00 9150.00 m 8475.00 8775.00 l 8475.00 8775.00 7800.00 8400.00 7875.00 7950.00 DrawSplineSection 7875.00 7950.00 7950.00 7500.00 7950.00 7462.50 DrawSplineSection 7950.00 7425.00 l gs col-1 s gr n 7920.00 7545.00 m 7950.00 7425.00 l 7980.00 7545.00 l gs col-1 s gr % Open spline n 10950.00 7500.00 m 10800.00 8175.00 l 10800.00 8175.00 10650.00 8850.00 10125.00 8962.50 DrawSplineSection 9600.00 9075.00 l gs col-1 s gr n 9723.62 9079.19 m 9600.00 9075.00 l 9711.05 9020.52 l gs col-1 s gr % Open spline n 5400.00 7500.00 m 5025.00 8175.00 l 5025.00 8175.00 4650.00 8850.00 4200.00 8850.00 DrawSplineSection 3750.00 8850.00 l gs col-1 s gr n 3870.00 8880.00 m 3750.00 8850.00 l 3870.00 8820.00 l gs col-1 s gr % Open spline n 5175.00 2700.00 m 4912.50 3637.50 l 4912.50 3637.50 4650.00 4575.00 4125.00 4650.00 DrawSplineSection 3600.00 4725.00 l gs col-1 s gr n 3723.04 4737.73 m 3600.00 4725.00 l 3714.55 4678.33 l gs col-1 s gr % Open spline n 2175.00 2625.00 m 2925.00 2887.50 l 2925.00 2887.50 3675.00 3150.00 4275.00 2925.00 DrawSplineSection 4875.00 2700.00 l gs col-1 s gr n 4752.11 2714.04 m 4875.00 2700.00 l 4773.17 2770.22 l gs col-1 s gr % Open spline n 3150.00 4725.00 m 2475.00 4350.00 l 2475.00 4350.00 1800.00 3975.00 1875.00 3300.00 DrawSplineSection 1950.00 2625.00 l gs col-1 s gr n 1906.93 2740.95 m 1950.00 2625.00 l 1966.56 2747.58 l gs col-1 s gr % Open spline n 4800.00 2550.00 m 4200.00 2437.50 l 4200.00 2437.50 3600.00 2325.00 3000.00 2400.00 DrawSplineSection 3000.00 2400.00 2400.00 2475.00 2400.00 2475.00 DrawSplineSection 2400.00 2475.00 2400.00 2475.00 2362.50 2475.00 DrawSplineSection 2325.00 2475.00 l gs col-1 s gr n 2445.00 2505.00 m 2325.00 2475.00 l 2445.00 2445.00 l gs col-1 s gr /Times-Roman findfont 180.00 scalefont setfont 3150 4725 m gs 1 -1 sc (LONG) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 4800 2625 m gs 1 -1 sc (SHORT) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 1800 2550 m gs 1 -1 sc (START) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 7725 2475 m gs 1 -1 sc (NO) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 10500 2550 m gs 1 -1 sc (YES) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 1950 7200 m gs 1 -1 sc (GREEN) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 5250 7350 m gs 1 -1 sc (YELLOW) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 3300 8925 m gs 1 -1 sc (RED) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 9225 9075 m gs 1 -1 sc (RED) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 7875 7350 m gs 1 -1 sc (GREEN) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 10800 7350 m gs 1 -1 sc (YELLOW) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 1125 1725 m gs 1 -1 sc (start or \(!start and !rand_choice\)) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 4425 1800 m gs 1 -1 sc (!start and !rand_choice/short) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 2925 1125 m gs 1 -1 sc (T I M E R) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 8775 1275 m gs 1 -1 sc (S E N S O R) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 2700 7350 m gs 1 -1 sc (car_present and long_timer /) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 3300 7650 m gs 1 -1 sc (hwy_start_timer) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 4425 8325 m gs 1 -1 sc (short_timer/enable_farm) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 1050 8100 m gs 1 -1 sc (enable_hwy/) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 825 8400 m gs 1 -1 sc (hwy_start_timer) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 4875 6450 m gs 1 -1 sc (!short_timer) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 900 6525 m gs 1 -1 sc (!car_present or !long_timer) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 2400 5850 m gs 1 -1 sc (H W Y _ C O N T R O L) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 8400 7500 m gs 1 -1 sc (!car_present or long_timer/) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 9000 7800 m gs 1 -1 sc (farm_start_timer) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 6825 6525 m gs 1 -1 sc (car_present and !long_timer) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 9975 8400 m gs 1 -1 sc (short_timer/enable_hwy) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 7275 8250 m gs 1 -1 sc (enable_farm/) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 7050 8550 m gs 1 -1 sc (farm_start_timer) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 10350 6525 m gs 1 -1 sc (!short_timer) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 8700 8325 m gs 1 -1 sc (!enable_farm) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 8325 5925 m gs 1 -1 sc (F A R M _ C O N T R O L) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 2850 8100 m gs 1 -1 sc (!enable_hwy) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 3150 2325 m gs 1 -1 sc (start/short) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 2700 3225 m gs 1 -1 sc (!start and rand_choice) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 3825 3675 m gs 1 -1 sc (!start and rand_choice/short) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 1200 3825 m gs 1 -1 sc (start/short,long) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 2550 4200 m gs 1 -1 sc (!start/short,long) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 8850 2325 m gs 1 -1 sc (rand_choice/) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 8850 2550 m gs 1 -1 sc (!car_present) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 8775 3150 m gs 1 -1 sc (!rand_choice/) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 8925 3375 m gs 1 -1 sc (car_present) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 9975 1725 m gs 1 -1 sc (rand_choice/car_present) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 7275 1725 m gs 1 -1 sc (!rand_choice/!car_present) col-1 show gr $F2psEnd restore %%EndDocument endTexFig 452 1339 a Fq(Figure)12 b(2.2:)k(State)c(transition)e(graphs)h(of)g (FSMs)h(of)f(TLC.)-31 1478 y Fd(typedef)20 b(enum)f({GREEN,)h(YELLOW,)f (RED})h(color;)-31 1557 y(module)g(main\(clk\);)-31 1596 y(input)g(clk;)-31 1675 y(color)g(wire)f(farm_light,)g(hwy_light;)-31 1714 y(wire)h(start_timer,)f(short_timer,)g(long_timer;)-31 1754 y(boolean)h(wire)f(car_present;)-31 1793 y(wire)h(enable_farm,)f (farm_start_timer,)f(enable_hwy,)i(hwy_start_timer;)-31 1872 y(assign)g(start_timer)f(=)h(farm_start_timer)e(||)i (hwy_start_timer;)-31 1951 y(timer)g(timer\(clk,)f(start_timer,)g (short_timer,)g(long_timer\);)-31 1991 y(sensor)h(sensor\(clk,)f (car_present\);)-31 2030 y(farm_control)g(farm_control\(clk,)g (car_present,)g(enable_farm,)g(short_timer,)g(long_timer,)89 2069 y(farm_light,)g(farm_start_timer,)f(enable_hwy\);)-31 2109 y(hwy_control)h(hwy_control)g(\(clk,)h(car_present,)f(enable_hwy,) 39 b(short_timer,)19 b(long_timer,)89 2148 y(hwy_light,)g (hwy_start_timer,)g(enable_farm\);)-31 2227 y(endmodule)-31 2306 y(module)h(sensor\(clk,)f(car_present\);)-31 2345 y(input)h(clk;)-31 2385 y(output)g(car_present;)-31 2464 y(wire)g(rand_choice;)-31 2503 y(boolean)g(reg)f(car_present;)-31 2582 y(initial)h(car_present)f(=)h(NO;)-31 2621 y(assign)g(rand_choice) f(=)h($ND\(0,1\);)-31 2700 y(always)g(@\(posedge)f(clk\))h(begin)906 2835 y Fq(15)p eop %%Page: 16 17 16 16 bop 49 11 a Fd(if)20 b(\(rand_choice)f(==)g(0\))129 51 y(car_present)g(=)h(NO;)49 90 y(else)129 130 y(car_present)f(=)h (YES;)-31 169 y(end)-31 209 y(endmodule)-31 287 y(module)g(timer\(clk,) f(start,)g(short,)h(long\);)-31 327 y(input)g(clk;)-31 366 y(input)g(start;)-31 406 y(output)g(short;)-31 445 y(output)g(long;)-31 524 y(wire)g(rand_choice;)-31 563 y(wire)g(start,)f(short,)h(long;)-31 603 y(timer_state)f(reg)h(state;) -31 682 y(initial)g(state)f(=)h(START;)-31 721 y(assign)g(rand_choice)f (=)h($ND\(0,1\);)-31 800 y(/*)g(short)f(could)h(as)g(well)f(be)h (assigned)g(to)f(be)h(just)g(\(state)f(==)h(SHORT\))f(*/)-31 839 y(assign)h(short)f(=)h(\(\(state)f(==)h(SHORT\))g(||)f(\(state)h (==)g(LONG\)\);)-31 879 y(assign)g(long)39 b(=)20 b(\(state)g(==)f (LONG\);)-31 958 y(always)h(@\(posedge)f(clk\))h(begin)49 997 y(if)g(\(start\))f(state)h(=)f(START;)129 1037 y(else)208 1076 y(begin)208 1116 y(case)h(\(state\))208 1155 y(START:)368 1194 y(if)f(\(rand_choice)g(==)h(1\))g(state)g(=)f(SHORT;)208 1234 y(SHORT:)368 1273 y(if)g(\(rand_choice)g(==)h(1\))g(state)g(=)f (LONG;)368 1313 y(/*)g(if)h(LONG,)g(remains)f(LONG)h(until)f(start)h (signal)f(received)h(*/)208 1352 y(endcase)208 1392 y(end)-31 1431 y(end)-31 1470 y(endmodule)-31 1549 y(module)g(farm_control\(clk,) e(car_present,)h(enable_farm,)g(short_timer,)g(long_timer,)89 1589 y(farm_light,)g(farm_start_timer,)f(enable_hwy\);)-31 1628 y(input)i(clk;)-31 1668 y(input)g(car_present;)-31 1707 y(input)g(enable_farm;)-31 1746 y(input)g(short_timer;)-31 1786 y(input)g(long_timer;)-31 1825 y(output)g(farm_light;)-31 1865 y(output)g(farm_start_timer;)-31 1904 y(output)g(enable_hwy;)-31 1983 y(boolean)g(wire)f(car_present;)-31 2023 y(wire)h(short_timer,)f (long_timer;)-31 2062 y(wire)h(farm_start_timer;)-31 2101 y(wire)g(enable_hwy;)-31 2141 y(wire)g(enable_farm;)-31 2180 y(color)g(reg)f(farm_light;)-31 2259 y(initial)h(farm_light)f(=)h (RED;)-31 2299 y(assign)g(farm_start_timer)e(=)i(\(\(\(farm_light)f(==) h(GREEN\))f(&&)h(\(\(car_present)f(==)h(NO\))g(||)f(long_timer\)\))487 2338 y(||)h(\(farm_light)f(==)h(RED\))f(&&)h(enable_farm\);)-31 2377 y(assign)g(enable_hwy)f(=)h(\(\(farm_light)f(==)g(YELLOW\))h(&&)g (short_timer\);)-31 2456 y(always)g(@\(posedge)f(clk\))h(begin)69 2496 y(case)f(\(farm_light\))69 2535 y(GREEN:)228 2575 y(if)h(\(\(car_present)f(==)h(NO\))f(||)h(long_timer\))f(farm_light)g (=)h(YELLOW;)69 2614 y(YELLOW:)228 2654 y(if)g(\(short_timer\))f (farm_light)g(=)h(RED;)69 2693 y(RED:)906 2835 y Fq(16)p eop %%Page: 17 18 17 17 bop 228 11 a Fd(if)20 b(\(enable_farm\))f(farm_light)g(=)h (GREEN;)69 51 y(endcase)-31 90 y(end)-31 130 y(endmodule)-31 209 y(module)g(hwy_control\(clk,)e(car_present,)h(enable_hwy,)g (short_timer,)h(long_timer,)89 248 y(hwy_light,)f(hwy_start_timer,)g (enable_farm\);)-31 287 y(input)h(clk;)-31 327 y(input)g(car_present;) -31 366 y(input)g(enable_hwy;)-31 406 y(input)g(short_timer;)-31 445 y(input)g(long_timer;)-31 485 y(output)g(hwy_light;)-31 524 y(output)g(hwy_start_timer;)-31 563 y(output)g(enable_farm;)-31 642 y(boolean)g(wire)f(car_present;)-31 682 y(wire)h(short_timer,)f (long_timer;)-31 721 y(wire)h(hwy_start_timer;)-31 761 y(wire)g(enable_farm;)-31 800 y(wire)g(enable_hwy;)-31 839 y(color)g(reg)f(hwy_light;)-31 918 y(initial)h(hwy_light)f(=)h (GREEN;)-31 958 y(assign)g(hwy_start_timer)e(=)i(\(\(\(hwy_light)f(==)h (GREEN\))g(&&)f(\(\(car_present)39 b(==)20 b(YES\))g(&&)f (long_timer\)\))467 997 y(||)h(\(hwy_light)f(==)h(RED\))g(&&)f (enable_hwy\);)-31 1037 y(assign)h(enable_farm)f(=)h(\(\(hwy_light)f (==)g(YELLOW\))h(&&)g(short_timer\);)-31 1116 y(always)g(@\(posedge)f (clk\))h(begin)69 1155 y(case)f(\(hwy_light\))69 1194 y(GREEN:)228 1234 y(if)h(\(\(car_present)f(==)h(YES\))f(&&)h (long_timer\))f(hwy_light)g(=)h(YELLOW;)69 1273 y(YELLOW:)228 1313 y(if)g(\(short_timer\))f(hwy_light)g(=)h(RED;)69 1352 y(RED:)228 1392 y(if)g(\(enable_hwy\))f(hwy_light)g(=)h(GREEN;)69 1431 y(endcase)-31 1470 y(end)-31 1510 y(endmodule)906 2835 y Fq(17)p eop %%Page: 18 19 18 18 bop -31 323 a Fn(Chapter)20 b(3)-31 530 y Fs(Intr)n(oduction)k (to)i(F)m(ormal)h(V)-10 b(eri\256cation)-31 753 y Fq(F)o(ormal)13 b(v)o(eri\256cation)g(is)f(the)h(process)f(of)h(checking)g(whether)f(a) h(design)f(satis\256es)h(some)f(requirements)g(\(properties\).)-31 809 y(W)l(e)e(are)g(concerned)g(with)e(the)h(formal)g(v)o (eri\256cation)g(of)g(designs)f(that)h(may)f(be)i(speci\256ed)f (hierarchically)g(\(as)h(illustrated)-31 866 y(in)i(the)g(pre)o(vious)f (section\);)h(this)f(is)h(also)f(consistent)g(with)h(ho)o(w)f(a)i (human)e(designer)h(operates.)19 b(In)13 b(order)f(to)g(formally)-31 922 y(v)o(erify)h(a)h(design,)e(it)h(must)e(\256rst)i(be)g(con)n(v)o (erted)h(into)d(a)j(simpler)d(\252v)o(eri\256able\272)k(format.)21 b(The)12 b(design)g(is)h(speci\256ed)g(as)g(a)-31 979 y(set)g(of)f(interacting)h(systems;)e(each)j(has)e(a)h(\256nite)g (number)f(of)h(con\256gurations,)g(called)g(states.)20 b(States)13 b(and)g(transition)-31 1035 y(between)k(states)f (constitute)g(FSMs.)33 b(The)17 b(entire)g(system)f(is)g(an)h(FSM,)g (which)g(can)g(be)g(obtained)f(by)h(composing)-31 1091 y(the)f(FSMs)g(associated)g(with)f(each)h(component.)30 b(Hence)16 b(the)g(\256rst)g(step)f(in)h(v)o(eri\256cation)g(consists)e (of)i(obtaining)f(a)-31 1148 y(complete)9 b(FSM)h(description)e(of)h (the)h(system.)15 b(Gi)o(v)o(en)9 b(a)h(present)f(state)g(\(or)h (current)f(con\256guration\),)h(the)f(ne)o(xt)h(state)f(\(or)-31 1204 y(successi)o(v)o(e)i(con\256guration\))g(of)g(an)h(FSM)f(can)h(be) f(written)f(as)h(a)h(function)e(of)h(its)g(present)g(state)g(and)g (inputs)e(\(transition)-31 1261 y(function)i(or)g(transition)f (relation\).)40 1317 y(W)l(e)i(note)f(that)g(this)f(entire)i(frame)o (work)f(is)g(one)g(of)h(discrete)f(functions.)16 b(Discrete)c (functions)e(can)i(be)g(represented)-31 1374 y(con)n(v)o(eniently)19 b(by)g(BDDs)h(\(binary)f(decision)g(diagram;)j(a)e(data)f(structure)h (that)f(represents)g(boolean)g(\(2-v)o(alued\))-31 1430 y(functions\))12 b(and)g(its)g(e)o(xtension)f(MDDs)h(\(multi-v)o(alued) f(decision)g(diagram;)i(a)f(data)h(structure)f(that)g(represents)g (\256nite)-31 1487 y(v)o(alued)h(discrete)h(functions\).)23 b(W)l(e)14 b(use)g(BDDs)f(and)h(MDDs)f(to)g(represent)h(all)f (quantities)g(required)g(in)h(this)e(discrete)-31 1543 y(space)h(\(more)g(speci\256cally)f(the)g(transition)f(functions,)h (the)h(inputs,)e(the)i(outputs)e(and)h(the)g(states)g(of)h(the)f (FSMs\).)20 b(F)o(or)-31 1600 y(BDDs)13 b(and)f(MDDs)g(to)g(be)h(ef)o (\256cient)g(representations)f(of)h(discrete)f(functions,)g(a)h(good)f (ordering)g(of)h(input)e(v)o(ariables)-31 1656 y(\(actual)k(inputs,)h (outputs,)e(state\))h(of)g(the)g(functions)f(must)g(be)h(computed.)27 b(In)15 b(general,)i(BDDs)e(operate)h(on)f(sets)f(of)-31 1712 y(points)c(rather)i(than)f(indi)o(vidual)f(points;)f(this)i(is)g (called)g Fi(symbolic)g(manipulation)p Fq(.)40 1769 y(The)f(two)g(most) g(popular)g(methods)f(for)i(automatic)f(formal)g(v)o(eri\256cation)h (are)h(language)e(containment)f(and)i(model)-31 1825 y(checking.)20 b(The)12 b(current)h(v)o(ersion)f(of)h(VIS)g(emphasizes) f(model)f(checking,)i(b)o(ut)f(it)g(also)g(of)o(fers)g(to)g(the)h(user) f(a)h(limited)-31 1882 y(form)e(of)h(language)f(containment)f (\(language)i(emptiness\).)-31 2028 y Fl(3.1)58 b(Model)15 b(Checking)g(of)g(T)-5 b(emporal)14 b(Logic)-31 2132 y Fq(A)i(\256nite)f(state)g(system)g(can)h(be)f(represented)h(by)f(a)h (labeled)g(state)f(transition)f(graph,)j(where)f(labels)f(of)g(a)h (state)f(are)-31 2189 y(the)g(v)o(alues)f(of)g(atomic)g(propositions)f (in)h(that)g(state)g(\(for)h(e)o(xample)g(the)f(v)o(alues)g(of)h(the)f (latches\).)27 b(Properties)15 b(about)-31 2245 y(the)e(system)g(are)h (e)o(xpressed)f(as)h(formulas)f(in)f(temporal)h(logic)g(of)g(which)g (the)h(state)f(transition)e(system)i(is)g(to)f(be)i(a)g(\252a)-31 2302 y(model\272.)20 b(Model)12 b(checking)g(consists)f(of)i(tra)o(v)o (ersing)g(the)f(graph)h(of)f(the)h(transition)e(system)g(and)i(of)f(v)o (erifying)h(that)f(it)-31 2358 y(satis\256es)f(the)g(formula)g (representing)h(the)f(property)m(,)g(i.e.,)i(the)e(system)f(is)h(a)h (model)f(of)g(the)g(property)m(.)-31 2483 y Fk(3.1.1)51 b(Computation)10 b(T)l(r)o(ee)k(Logic)-31 2570 y Fq(T)m(emporal)c (logic)f(e)o(xpresses)i(the)f(ordering)g(of)g(e)o(v)o(ents)g(in)g(time) f(by)h(means)g(of)g(operators)g(that)g(specify)g(properties)f(such)-31 2627 y(as)i(\252)p Fp(p)h Fq(will)e(e)o(v)o(entually)g(hold\272.)17 b(There)11 b(are)h(v)o(arious)f(v)o(ersions)f(of)h(temporal)g(logic.)16 b(One)11 b(is)g(computational)e(tree)j(logic)-31 2683 y(\(CTL\).)i(Computation)e(trees)h(are)h(deri)o(v)o(ed)g(from)e(state)h (transition)f(graphs.)22 b(The)13 b(graph)g(structure)g(is)f(unwound)g (into)906 2835 y(18)p eop %%Page: 19 20 19 19 bop -31 11 a Fq(an)10 b(in\256nite)f(tree)h(rooted)f(at)h(the)f (initial)g(state.)16 b(Fig.)10 b(3.1)f(sho)o(ws)g(an)h(e)o(xample)f(of) h(unwinding)e(a)i(graph)g(into)e(a)i(tree.)17 b(P)o(aths)-31 68 y(in)d(this)e(tree)j(represent)f(all)g(possible)e(computations)g(of) i(the)g(system)f(being)g(modeled.)24 b(F)o(ormulae)14 b(in)f(CTL)i(refer)g(to)-31 124 y(the)e(computation)e(tree)j(deri)o(v)o (ed)f(from)g(the)g(model.)21 b(CTL)14 b(is)e(classi\256ed)h(as)g(a)h (branching)e(time)h(logic)f(because)i(it)e(has)-31 181 y(operators)f(that)g(describe)h(the)f(branching)g(structure)g(of)h (this)e(tree.)226 239 y 22376157 10740548 0 0 12235407 5986140 startTexFig 226 239 a %%BeginDocument: mc.eps /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {} def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -80.0 119.0 translate 1 -1 scale /clp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /l {lineto} bind def /m {moveto} bind def /n {newpath} bind def /s {stroke} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0.06000 0.06000 sc 7.500 slw % Ellipse n 3209 1724 124 124 0 360 DrawEllipse gs col4 1.00 shd ef gr gs col-1 s gr % Ellipse n 3414 1349 124 124 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col-1 s gr % Ellipse n 4279 1339 124 124 0 360 DrawEllipse gs col4 1.00 shd ef gr gs col-1 s gr % Ellipse n 3619 974 124 124 0 360 DrawEllipse gs col2 1.00 shd ef gr gs col-1 s gr % Ellipse n 3989 1344 124 124 0 360 DrawEllipse gs col2 1.00 shd ef gr gs col-1 s gr % Ellipse n 4056 974 124 124 0 360 DrawEllipse gs col4 1.00 shd ef gr gs col-1 s gr % Ellipse n 3712 1344 124 124 0 360 DrawEllipse gs col2 1.00 shd ef gr gs col-1 s gr % Ellipse n 3839 599 124 124 0 360 DrawEllipse gs col4 1.00 shd ef gr gs col-1 s gr % Ellipse n 3519 1726 124 124 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col-1 s gr % Ellipse n 1911 796 124 124 0 360 DrawEllipse gs col4 1.00 shd ef gr gs col-1 s gr % Ellipse n 2207 1237 124 124 0 360 DrawEllipse gs col2 1.00 shd ef gr gs col-1 s gr % Ellipse n 1637 1247 124 124 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col-1 s gr % Polyline n 3923 1453 m 3873 1588 l gs col13 0.25 tnt ef gr gs col-1 s gr n 3928.92 1523.40 m 3873.00 1588.00 l 3872.65 1502.56 l gs col-1 s gr % Polyline n 4063 1448 m 4118 1588 l gs col13 0.25 tnt ef gr gs col-1 s gr n 4116.67 1502.57 m 4118.00 1588.00 l 4060.83 1524.51 l gs col-1 s gr /Times-Roman findfont 180.00 scalefont setfont 3944 1399 m gs 1 -1 sc (G) col-1 show gr % Polyline n 3553 1083 m 3503 1218 l gs col13 0.25 tnt ef gr gs col-1 s gr n 3558.92 1153.40 m 3503.00 1218.00 l 3502.65 1132.56 l gs col-1 s gr % Polyline n 4213 1448 m 4163 1583 l gs col13 0.25 tnt ef gr gs col-1 s gr n 4218.92 1518.40 m 4163.00 1583.00 l 4162.65 1497.56 l gs col-1 s gr % Polyline n 4353 1443 m 4408 1583 l gs col13 0.25 tnt ef gr gs col-1 s gr n 4406.67 1497.57 m 4408.00 1583.00 l 4350.83 1519.51 l gs col-1 s gr /Times-Roman findfont 180.00 scalefont setfont 4230 1389 m gs 1 -1 sc (R) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 4007 1024 m gs 1 -1 sc (R) col-1 show gr % Polyline n 3348 1458 m 3298 1593 l gs col13 0.25 tnt ef gr gs col-1 s gr n 3353.92 1528.40 m 3298.00 1593.00 l 3297.65 1507.56 l gs col-1 s gr % Polyline n 3488 1453 m 3543 1593 l gs col13 0.25 tnt ef gr gs col-1 s gr n 3541.67 1507.57 m 3543.00 1593.00 l 3485.83 1529.51 l gs col-1 s gr /Times-Roman findfont 180.00 scalefont setfont 3369 1404 m gs 1 -1 sc (Y) col-1 show gr % Polyline n 4130 1078 m 4185 1218 l gs col13 0.25 tnt ef gr gs col-1 s gr n 4183.67 1132.57 m 4185.00 1218.00 l 4127.83 1154.51 l gs col-1 s gr % Polyline n 3990 1083 m 3940 1218 l gs col13 0.25 tnt ef gr gs col-1 s gr n 3995.92 1153.40 m 3940.00 1218.00 l 3939.65 1132.56 l gs col-1 s gr % Polyline n 3143 1833 m 3093 1968 l gs col13 0.25 tnt ef gr gs col-1 s gr n 3148.92 1903.40 m 3093.00 1968.00 l 3092.65 1882.56 l gs col-1 s gr /Times-Roman findfont 180.00 scalefont setfont 3790 649 m gs 1 -1 sc (R) col-1 show gr % Polyline n 3283 1828 m 3338 1968 l gs col13 0.25 tnt ef gr gs col-1 s gr n 3336.67 1882.57 m 3338.00 1968.00 l 3280.83 1904.51 l gs col-1 s gr /Times-Roman findfont 180.00 scalefont setfont 3160 1774 m gs 1 -1 sc (R) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 3574 1029 m gs 1 -1 sc (G) col-1 show gr % Polyline n 3453 1835 m 3403 1970 l gs col13 0.25 tnt ef gr gs col-1 s gr n 3458.92 1905.40 m 3403.00 1970.00 l 3402.65 1884.56 l gs col-1 s gr % Polyline n 3593 1830 m 3648 1970 l gs col13 0.25 tnt ef gr gs col-1 s gr n 3646.67 1884.57 m 3648.00 1970.00 l 3590.83 1906.51 l gs col-1 s gr /Times-Roman findfont 180.00 scalefont setfont 3474 1781 m gs 1 -1 sc (Y) col-1 show gr % Polyline n 3646 1453 m 3596 1588 l gs col13 0.25 tnt ef gr gs col-1 s gr n 3651.92 1523.40 m 3596.00 1588.00 l 3595.65 1502.56 l gs col-1 s gr % Polyline n 3786 1448 m 3841 1588 l gs col13 0.25 tnt ef gr gs col-1 s gr n 3839.67 1502.57 m 3841.00 1588.00 l 3783.83 1524.51 l gs col-1 s gr /Times-Roman findfont 180.00 scalefont setfont 3667 1399 m gs 1 -1 sc (G) col-1 show gr % Polyline n 3693 1078 m 3748 1218 l gs col13 0.25 tnt ef gr gs col-1 s gr n 3746.67 1132.57 m 3748.00 1218.00 l 3690.83 1154.51 l gs col-1 s gr % Polyline n 1986 901 m 2141 1131 l gs col-1 s gr n 2098.82 1014.72 m 2141.00 1131.00 l 2049.06 1048.25 l gs col-1 s gr % Polyline n 2086 1251 m 1761 1251 l gs col-1 s gr n 1881.00 1281.00 m 1761.00 1251.00 l 1881.00 1221.00 l gs col-1 s gr % Polyline n 1651 1121 m 1831 901 l gs col-1 s gr n 1731.79 974.88 m 1831.00 901.00 l 1778.23 1012.87 l gs col-1 s gr % Polyline n 3773 708 m 3723 843 l gs col13 0.25 tnt ef gr gs col-1 s gr n 3778.92 778.40 m 3723.00 843.00 l 3722.65 757.56 l gs col-1 s gr % Polyline n 3913 703 m 3968 843 l gs col13 0.25 tnt ef gr gs col-1 s gr n 3966.67 757.57 m 3968.00 843.00 l 3910.83 779.51 l gs col-1 s gr % Interp Spline n 1821 726 m 1748.37 745.35 1715.87 742.85 1691 716 curveto 1669.38 692.66 1685.38 651.30 1691 631 curveto 1698.71 603.15 1724.16 549.28 1751 531 curveto 1772.00 516.70 1818.31 513.18 1841 516 curveto 1862.71 518.70 1906.19 526.34 1921 551 curveto 1932.06 569.41 1917.31 601.20 1916 616 curveto 1915.24 624.55 1913.99 637.05 1911 666 curveto gs col-1 s gr n 1949.06 589.51 m 1911.00 666.00 l 1889.38 583.34 l gs col-1 s gr % Interp Spline n 2281 1151 m 2261.65 1078.00 2264.15 1045.00 2291 1021 curveto 2314.34 1000.00 2355.70 1016.00 2376 1021 curveto 2403.85 1028.00 2457.72 1054.00 2476 1081 curveto 2490.30 1102.00 2493.82 1148.00 2491 1171 curveto 2488.30 1192.00 2480.66 1236.00 2456 1251 curveto 2437.59 1262.00 2405.80 1247.00 2391 1246 curveto 2382.45 1245.00 2369.95 1243.00 2341 1241 curveto gs col-1 s gr n 2418.74 1276.44 m 2341.00 1241.00 l 2422.88 1216.58 l gs col-1 s gr % Interp Spline n 1561 1351 m 1580.00 1424.00 1577.00 1457.00 1551 1481 curveto 1527.00 1502.00 1486.00 1486.00 1466 1481 curveto 1438.00 1474.00 1385.00 1448.00 1366 1421 curveto 1352.00 1400.00 1349.00 1354.00 1351 1331 curveto 1354.00 1310.00 1362.00 1266.00 1386 1251 curveto 1405.00 1240.00 1436.00 1255.00 1451 1256 curveto 1459.00 1257.00 1472.00 1259.00 1501 1261 curveto gs col-1 s gr n 1423.25 1225.57 m 1501.00 1261.00 l 1419.13 1285.42 l gs col-1 s gr /Times-Roman findfont 180.00 scalefont setfont 2520 875 m gs 1 -1 sc (unwind) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 2605 1035 m gs 1 -1 sc (==>) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 1871 851 m gs 1 -1 sc (R) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 2151 1281 m gs 1 -1 sc (G) col-1 show gr /Times-Roman findfont 180.00 scalefont setfont 1586 1301 m gs 1 -1 sc (Y) col-1 show gr $F2psEnd restore %%EndDocument endTexFig 490 1017 a Fq(Figure)i(3.1:)k(Unwinding)10 b(of)i(state)f(transition)f (graph.)40 1122 y(F)o(ormulae)g(in)f(CTL)h(are)g(b)o(uilt)f(from)g (atomic)g(propositions)e(\(where)k(each)f(proposition)e(corresponds)h (to)g(a)h(v)o(ariable)-31 1178 y(in)16 b(the)h(model\),)g(standard)f (boolean)h(connecti)o(v)o(es)f(of)h(propositional)d(logic)i(\(e.g.,)j (AND,)e(OR,)h(XOR,)f(NO)n(T\),)g(and)-31 1234 y(temporal)9 b(operators.)17 b(Each)10 b(temporal)f(operator)h(consists)f(of)h(two)f (parts)1153 1218 y Ft(1)1172 1234 y Fq(:)15 b(a)c(path)e(quanti\256er)h (\()p Fp(A)g Fq(or)g Fp(E)s Fq(\))f(follo)o(wed)g(by)-31 1291 y(a)k(temporal)e(modality)f(\()p Fp(F)c Fq(,)14 b Fp(G)p Fq(,)e Fp(X)t Fq(,)g Fp(U)5 b Fq(\).)20 b(All)11 b(temporal)g(operators)h(are)h(interpreted)f(relati)o(v)o(e)g(to)g(an)g (implicit)f(\252current)-31 1347 y(state\272.)17 b(There)11 b(are)h(in)f(general)g(man)o(y)g(e)o(x)o(ecution)g(paths)f(\(sequences) h(of)g(state)g(transitions\))f(of)h(the)f(system)g(starting)g(at)-31 1404 y(the)h(current)g(state.)16 b(The)11 b(path)g(quanti\256er)g (indicates)f(whether)h(the)f(modality)f(de\256nes)j(a)f(property)f (that)h(should)e(be)i(true)-31 1460 y(of)e(all)g(those)g(possible)f (paths)h(\(denoted)g(by)g(uni)o(v)o(ersal)g(path)g(quanti\256er)g Fp(A)p Fq(\))g(or)h(whether)f(the)g(property)g(needs)g(only)g(hold)-31 1517 y(on)i(some)f(path)g(\(denoted)g(by)h(e)o(xistential)f(path)g (quanti\256er)h Fp(E)s Fq(\).)16 b(The)10 b(temporal)g(modalities)f (describe)i(the)g(ordering)f(of)-31 1573 y(e)o(v)o(ents)h(in)g(time)g (along)g(an)g(e)o(x)o(ecution)h(path)f(and)g(ha)o(v)o(e)h(the)g(follo)o (wing)d(intuiti)o(v)o(e)h(meaning:)26 1663 y(1.)23 b Fp(F)17 b(\036)10 b Fq(\(reads)h(\252)p Fp(\036)f Fq(holds)g(sometime)f (in)g(the)h(future\272\))h(is)f(true)g(of)h(a)f(path)g(if)g(there)h(e)o (xists)e(a)i(state)f(in)g(the)g(path)g(where)83 1719 y(formula)h Fp(\036)g Fq(is)g(true.)26 1811 y(2.)23 b Fp(G)11 b(\036)g Fq(\(reads)h(\252)p Fp(\036)g Fq(holds)f (globally\272\))f(is)h(true)g(of)h(a)g(path)f(if)g Fp(\036)g Fq(is)g(true)h(at)f(e)o(v)o(ery)h(state)f(in)g(the)g(path.)26 1903 y(3.)23 b Fp(X)14 b(\036)e Fq(\(reads)g(\252)p Fp(\036)g Fq(holds)e(in)h(the)g(ne)o(xt)h(state\272\))f(is)g(true)h(of)f(a)h (path)f(if)g Fp(\036)h Fq(is)f(true)g(in)g(the)g(state)g(reached)i (immediately)83 1960 y(after)f(the)f(current)h(state)f(in)g(the)g (path.)26 2052 y(4.)23 b Fp(\036)12 b(U)18 b( )13 b Fq(\(reads)g(\252)p Fp(\036)g Fq(holds)e(until)g Fp( )j Fq(holds\272,)e(called)g (\252strong)g(until\272)1189 2035 y Ft(2)1207 2052 y Fq(\))h(is)f(true)g(of)g(a)h(path)f(if)g Fp( )i Fq(is)e(true)g(in)g (some)83 2108 y(state)f(in)g(the)g(path,)h(and)f Fp(\036)g Fq(holds)g(in)g(all)g(preceding)g(states.)-31 2198 y(In)17 b(the)f(VIS)i(documentation)d(there)i(is)f(a)h(description)f(of)g(the)h (syntax)f(of)g(CTL)h(in)g(the)f(document)g(entitled)g(\252CTL)-31 2254 y(Syntax\272.)h(In)12 b(this)e(chapter)i(CTL)f(formulas)g(will)g (be)g(written)g(in)g(a)h(simpli\256ed)e(syntax.)40 2311 y(The)j(state)h(of)f(a)h(system)f(consists)f(of)i(the)f(v)o(alues)h (stored)f(in)g(all)g(latches.)24 b(Each)14 b(formula)f(of)h(the)f (logic)g(is)g(either)-31 2367 y(true)f(or)g(false)f(in)h(a)g(gi)o(v)o (en)f(state;)h(its)f(truth)g(is)g(e)o(v)o(aluated)g(from)h(the)g(truth) f(of)h(its)e(subformulas)h(in)g(a)h(recursi)o(v)o(e)h(fashion,)-31 2423 y(until)c(one)i(reaches)g(atomic)f(propositions)f(that)h(are)h (either)g(true)f(or)h(false)f(in)g(a)h(gi)o(v)o(en)f(state.)17 b(A)10 b(formula)g(is)g(satis\256ed)g(by)-31 2480 y(a)h(system)e(if)i (it)e(is)h(true)h(for)g(all)f(the)g(initial)f(states)h(of)g(the)h (system.)k(If)c(the)f(property)g(does)h(not)e(hold,)i(the)f(model)g (checker)-31 2536 y(will)g(produce)h(a)h(countere)o(xample,)f(that)g (is)f(an)h(e)o(x)o(ecution)h(path)e(that)h(witnesses)f(the)h(failure.) 16 b(An)11 b(ef)o(\256cient)h(algorithm)p -31 2575 768 2 v 22 2603 a Fg(1)36 2619 y Ff(A)d(formula)g(that)g(contains)f(an)o(y) g(temporal)g(modality)h(\()p Fc(F)c Ff(,)10 b Fc(G)p Ff(,)f Fc(X)s Ff(,)g Fc(U)t Ff(\))g(without)g(an)f(associated)f(path)h (quanti\256er)g(\()p Fc(A)p Ff(,)h Fc(E)r Ff(\))h(is)f(not)p 1656 2626 48 2 v 8 w(a)g(le)o(gal)g(CTL)-31 2664 y(formula.)22 2695 y Fg(2)36 2711 y Ff(\252W)m(eak)f(until\272)i(is)f(when)f Fc(\036)i Ff(holds)e(fore)o(v)o(er)o(,)h(i.e.,)i Fc( )g Ff(is)e(not)g(required)g(to)g(hold)g(at)g(some)f(state)h(in)h(the)f (future.)906 2835 y Fq(19)p eop %%Page: 20 21 20 20 bop -31 11 a Fq(for)15 b(automatic)f(model)g(checking)h(used)f (also)g(in)h(VIS)g(has)g(been)g(described)f(by)h(Clarke)g(et)g(al.)g ([7].)27 b(The)15 b(follo)o(wing)-31 68 y(table)c(sho)o(ws)g(e)o (xamples)g(of)g(e)o(v)o(aluations)g(of)g(formulas)g(on)g(the)g (computation)f(tree)i(of)f(Fig.)h(3.1:)677 203 y(formula)p 1070 220 2 57 v 274 w(T/F)p 652 221 555 2 v 677 261 a(EG)f(\(RED\))p 1070 278 2 57 v 226 w(true)677 317 y(E)g(\(RED)h(U)f(GREEN\))p 1070 334 V 51 w(true)677 374 y(AF)h(\(GREEN\))p 1070 391 V 167 w(false)-31 495 y Fk(3.1.2)51 b(Speci\256cation)10 b(of)i(Pr)o(operties)h(in)f(CTL)-31 582 y Fq(T)m(emporal)c(logic)f (formulas)g(can)i(be)f(dif)o(\256cult)g(to)f(interpret,)i(so)f(that)f (a)i(designer)e(may)h(fail)g(to)f(understand)h(what)f(property)-31 639 y(has)14 b(been)g(actually)g(v)o(eri\256ed.)25 b(Therefore)15 b(it)e(is)h(important)e(to)i(be)g(familiar)f(with)g(the)h(most)e (common)h(constructs)g(of)-31 695 y(CTL)f(used)f(in)g(hardware)h(v)o (eri\256cation.)26 786 y(1.)23 b Fp(AG)p Fb(\()p Fp(r)q(eq)14 b Fj(!)f Fp(AF)18 b(ack)q Fb(\))83 843 y Fq(F)o(or)c(all)f(reachable)i (states)e(\()p Fp(AG)p Fq(\),)h(if)g Fp(r)q(eq)h Fq(is)e(asserted)h(in) f(the)g(state,)h(then)f(always)g(at)g(some)g(later)h(point)e(\()p Fp(AF)6 b Fq(\))83 899 y(we)14 b(must)f(reach)i(a)g(state)f(where)g Fp(ack)h Fq(is)f(asserted.)25 b Fp(AG)14 b Fq(is)g(interpreted)g (relati)o(v)o(e)g(to)g(the)g(initial)f(states)g(of)h(the)83 956 y(system.)h Fp(AF)j Fq(is)10 b(interpreted)g(relati)o(v)o(e)h(to)f (the)g(state)h(where)g Fp(r)q(eq)h Fq(is)f(asserted.)16 b(In)11 b(other)f(words,)h(it)f(is)g(always)f(the)83 1012 y(case)j(that)f(if)h(the)f(signal)g Fp(r)q(eq)i Fq(is)e(high,)g(then)h(e)o(v)o(entually)f Fp(ack)h Fq(will)f(also)g(be) h(high.)k(A)c(common)e(mistake)g(would)83 1068 y(be)j(to)f(write)g Fp(r)q(eq)k Fj(!)f Fp(AF)20 b(ack)q Fq(,)13 b(instead)f(of)g Fp(AG)p Fb(\()p Fp(r)q(eq)k Fj(!)f Fp(AF)k(ack)q Fb(\))p Fq(.)h(The)13 b(meaning)f(of)h(the)f(former)h(is)f(that)g(if)83 1125 y Fp(r)q(eq)j Fq(is)e(asserted)g(in)g(the)g(initial)e(state,)j (then)f(it)g(is)f(always)g(the)h(case)h(that)f(e)o(v)o(entually)g(we)g (reach)h(a)g(state)f(where)83 1181 y Fp(ack)f Fq(is)f(asserted,)i (while)e(the)g(latter)h(requires)g(that)f(the)g(condition)f(is)i(true)f (for)h(an)o(y)g(reachable)h(state)e(where)h Fp(r)q(eq)83 1238 y Fq(holds.)k(If)11 b Fp(r)q(eq)j Fq(is)d(identically)f(true,)i Fp(AG)p Fb(\()p Fp(r)q(eq)i Fj(!)f Fp(AF)18 b(ack)q Fb(\))11 b Fq(reduces)h(to)e Fp(AG)i(AF)18 b(ack)q Fq(.)26 1331 y(2.)23 b Fp(AG)11 b(AF)18 b(enabl)q(ed)83 1387 y Fq(From)d(e)o(v)o (ery)h(reachable)g(state,)h(for)f(all)f(paths)f(starting)h(at)g(that)g (state)g(we)h(must)e(reach)i(another)g(state)f(where)83 1444 y Fp(enabl)q(ed)10 b Fq(is)h(asserted.)17 b(In)12 b(other)f(words,)g Fp(enabl)q(ed)g Fq(must)f(be)h(asserted)h (in\256nitely)e(often.)26 1536 y(3.)23 b Fp(AG)11 b(E)s(F)17 b(r)q(estar)q(t)83 1593 y Fq(From)e(an)o(y)h(reachable)g(state,)h (there)f(must)e(e)o(xist)h(a)h(path)f(starting)g(at)g(that)g(state)g (that)g(reaches)i(a)e(state)h(where)83 1649 y Fp(r)q(estar)q(t)c Fq(is)f(asserted.)17 b(In)11 b(other)h(words,)f(it)f(must)h(always)f (be)h(possible)g(to)f(reach)j(the)e(restart)h(state.)26 1742 y(4.)23 b Fp(E)s(F)6 b Fb(\()p Fp(star)q(ted)k Fj(^)22 b(:)p Fp(r)q(eady)r Fb(\))83 1798 y Fq(It)11 b(is)g(possible)f(to)h (get)g(to)g(a)h(state)f(where)h Fp(star)q(ted)g Fq(holds,)f(b)o(ut)g Fp(r)q(eady)i Fq(does)e(not)g(hold.)26 1891 y(5.)23 b Fp(AG)p Fb(\()p Fp(send)12 b Fj(!)h Fp(A)p Fb(\()p Fp(send)f(U)k(r)q (eceiv)r(e)p Fb(\)\))83 1948 y Fq(It)d(is)g(always)f(the)h(case)g(that) g(if)g Fp(send)h Fq(occurs,)g(then)f(e)o(v)o(entually)g Fp(r)q(eceiv)r(e)f Fq(is)h(true,)h(and)f(until)f(that)g(time,)i Fp(send)83 2004 y Fq(must)c(continue)h(to)g(be)g(true.)26 2097 y(6.)23 b Fp(AG)p Fb(\()p Fp(inp)12 b Fj(!)h Fp(AX)i(AX)f(out)p Fb(\))83 2153 y Fq(Whene)o(v)o(er)e Fp(inp)f Fq(goes)g(high,)g Fp(out)h Fq(will)f(go)g(high)f(within)h(two)f(clock)h(c)o(ycles.)26 2246 y(7.)23 b Fp(E)s(F)6 b Fb(\()p Fp(a)j Fj(^)i Fp(E)s(X)t Fb(\()p Fp(a)d Fj(^)i Fp(E)s(X)k(a)p Fb(\)\))e Fj(!)h Fp(E)s(F)6 b Fb(\()p Fp(b)j Fj(^)i Fp(E)s(X)i(E)s(X)h(c)p Fb(\))83 2302 y Fq(If)d(it)e(is)h(possible)f(for)i Fp(a)f Fq(to)g(be)h(asserted)f(in)g(three)h(consecuti)o(v)o(e)f(states,)g (then)g(it)g(is)g(also)g(possible)f(to)h(reach)h(a)f(state)83 2359 y(where)i Fp(b)f Fq(is)g(asserted)g(and)g(from)h(there)f(to)g (reach)h(in)f(two)g(more)g(steps)g(a)h(state)f(where)h Fp(c)f Fq(is)g(asserted.)40 2450 y(W)l(e)h(summarize)f(the)g(most)f (common)g(CTL)i(templates)e(with)h(the)g(corresponding)g(English)f (language)h(meaning:)26 2541 y(1.)23 b Fp(AGp)16 b Fq(is)g(\252nothing) g(bad)g(e)o(v)o(er)i(happens\272)e(\()p Fj(:)p Fp(p)h Fq(is)f(bad\).)33 b(Used)16 b(to)h(specify)f(an)h(in)n(v)o(ariant,)h (i.e.,)h(a)e(condition)83 2598 y(that)e(must)g(be)g(true)h(in)f(all)h (states.)29 b(Helpful)15 b(for)h(partial)f(correctness)h(\(no)g(wrong)f (answers)h(are)h(produced\),)83 2654 y(mutual)9 b(e)o(xclusion)h(\(no)g (two)f(processors)h(are)i(in)d(a)i(critical)f(section)g (simultaneously\),)f(deadlock)h(freedom)g(\(no)83 2711 y(deadlock)h(state)g(is)g(reached\).)906 2835 y(20)p eop %%Page: 21 22 21 21 bop 26 11 a Fq(2.)23 b Fp(AF)16 b(AG)10 b(p)f Fq(is)g(\252e)o(v)o (entually)g(the)h(system)e(is)i(con\256ned)f(to)h(states)f(where)h Fp(p)f Fq(is)g(always)g(true\272)h(or)g(\252the)f(system)g(stays)83 68 y(out)h(of)h(states)f(where)i Fp(p)f Fq(is)f(true)h(only)f(a)h (\256nite)g(number)g(of)g(times\272.)16 b(It)10 b(can)i(be)f(used)f(to) h(specify)g(the)f(property)h(of)83 124 y(\256nite)g(number)g(of)g (failures)g(in)g(the)h(system.)26 218 y(3.)23 b Fp(AG)p Fb(\()p Fp(p)e Fj(!)40 b Fp(AF)25 b(q)r Fb(\))17 b Fq(is)h(\252from)g (all)f(reachable)i(states)e(where)i Fp(p)f Fq(is)f(true,)j(something)c (good,)k Fp(q)r Fq(,)g(e)o(v)o(entually)83 275 y(happens\272.)c (Helpful)9 b(to)g(e)o(xpress)h(total)f(correctness)h(\(termination)e(e) o(v)o(entually)h(occurs)h(with)f(correct)h(answers\),)83 331 y(accessibility)17 b(\(e)o(v)o(entually)i(a)g(requesting)f(process) h(will)f(enter)h(its)g(critical)f(section\),)j(starv)o(ation)d(freedom) 83 387 y(\(e)o(v)o(entually)h(service)h(will)e(be)i(granted)g(to)f(a)g (waiting)f(processor\).)42 b(If)20 b Fp(p)f Fq(is)g(always)g(true,)j (it)d(reduces)h(to)83 444 y Fp(AG)11 b(AF)18 b(q)r Fq(.)26 538 y(4.)23 b Fp(AG)14 b(AF)22 b(q)16 b Fq(is)e(\252in\256nitely)g (often)h Fp(q)r Fq(\272,)h(i.e.,)h(from)d(an)o(y)h(reachable)h(state)e (one)h(must)e(reach)j(a)e(state)h(where)g Fp(q)i Fq(is)83 594 y(asserted.)g(It)11 b(can)h(be)f(used,)h(for)g(instance,)f(to)g (enforce)h(a)g(reset)g(condition)e(from)h(an)o(y)g(state.)26 688 y(5.)23 b Fp(AF)18 b(q)13 b Fq(is)e(\252something)f(good,)h Fp(q)r Fq(,)h(e)o(v)o(entually)f(\(or)g(\256nally\))h(happens\272)f (\(less)g(restricti)o(v)o(e)g(than)g Fp(AG)h(AF)18 b(q)r Fq(\).)26 782 y(6.)23 b Fp(AG)10 b(E)s(F)17 b(p)11 b Fq(is)f(\252always)g Fp(p)h Fq(possible\272.)k(It)c(can)g(detect,)h (for)f(instance,)g(the)f(absence)h(of)g(deadlocks,)g(by)g(requiring)83 838 y(that)h(is)h(it)g(always)f(possible)f(to)i(reach)h(deadlock-free)g (states.)22 b(This)12 b(is)h(an)g(e)o(xample)g(of)g(a)g(CTL)h(property) f(that)83 895 y(cannot)e(be)g(represented)h(by)f(an)h Fp(!)r Fq(-automaton)853 878 y Ft(3)872 895 y Fq(.)26 989 y(7.)23 b Fp(AG)11 b(tr)q(ue)h Fq(forces)g(a)f(complete)g(tra)o(v)o (ersal)h(of)g(the)f(states)g(of)g(the)h(system.)26 1082 y(8.)23 b Fp(E)s(F)18 b(p)13 b Fq(is)f(\252)p Fp(p)h Fq(is)f(possible\272.)19 b(This)12 b(is)g(another)h(e)o(xample)f(of)h (a)g(CTL)g(property)f(that)g(cannot)h(be)f(represented)h(by)83 1139 y(an)e Fp(!)r Fq(-automaton.)40 1233 y Fr(Ca)o(veats)26 1326 y Fq(1.)23 b(The)14 b(v)o(ariables)g(appearing)h(in)f(a)g(CTL)h (formula)f(must)f(be)h(a)h(function)f(of)g(re)o(gister)h(v)o(ariables)f (\(e.g.,)i(states)e(or)83 1383 y(outputs)c(attached)i(to)f(states\).)18 b(V)-5 b(ariables)12 b(that)f(depend)h(on)f(inputs)g(or)h (pseudo-inputs)e(are)i(not)g(allo)o(wed,)f(since)83 1439 y(this)f(could)h(lead)h(to)e(a)i(state)f(where)h(both)f Fp(p)g Fq(and)h Fj(:)p Fp(p)f Fq(are)h(true,)g(depending)f(on)g(the)g (input.)26 1533 y(2.)23 b(The)11 b(propositional)f(logic)g(operator)i Fj(!)p Fq(,)g(as)f(in)g Fp(a)i Fj(!)g Fp(b)e Fq(is)g(equi)o(v)o(alent)f (to)h Fj(:)p Fp(a)f Fb(+)h Fp(b)p Fq(,)g(and)g(is)g(satis\256ed)g(by)g Fj(:)p Fp(a)p Fq(.)17 b(Do)83 1590 y(not)11 b(use)g(it)g(in)g(place)g (of)h Fp(a)e(?)g(b)p Fq(,)h(which)g(is)g(true)g(if)h(and)f(only)g(if)g Fp(a)g Fq(and)h Fp(b)f Fq(are)h(both)e(true.)26 1683 y(3.)23 b(The)11 b(syntax)g(of)g(CTL)h(and)f(of)h(V)-5 b(erilog)11 b(are)h(dif)o(ferent.)17 b(F)o(or)12 b(instance,)f(we)h(ha) o(v)o(e:)242 1791 y Fd(Verilog)20 b(CTL)119 b(meaning)242 1870 y(&&)h(*)159 b(AND)242 1910 y(||)120 b(+)159 b(OR)242 1949 y(==)120 b(=)159 b(equal)242 1989 y(a!=NO)60 b(!\(a=NO\))39 b(not)20 b(equal)402 2028 y(->)139 b(implies)402 2067 y(\303)159 b(xor)-31 2194 y Fk(3.1.3)51 b(F)o(air)o(ness)13 b(Constraints)-31 2281 y Fq(It)h(is)f(often)g(necessary)h(to)f (introduce)g(some)g(notion)f(of)i(fairness.)23 b(F)o(or)14 b(e)o(xample,)h(if)e(the)g(system)g(allocates)g(a)h(shared)-31 2338 y(resource)f(among)e(se)o(v)o(eral)h(users,)h(only)e(those)g (paths)g(along)h(which)f(no)h(user)g(keeps)f(the)h(resource)g(fore)o(v) o(er)h(should)e(be)-31 2394 y(considered.)17 b(CTL)12 b(by)f(itself)f(cannot)i(e)o(xpress)f(assertions)g(about)g(correctness) g(along)g(fair)h(paths.)40 2451 y(F)o(air)f(CTL)f(is)g(a)g (modi\256cation)f(of)h(CTL)h(to)e(handle)h(fairness.)16 b(F)o(air)11 b(CTL)g(is)e(characterized)j(by)e(the)g(introduction)e(of) -31 2507 y Fi(fairness)i(constr)o(aints)p Fq(,)h(which)g(are)h(sets)f (of)h(states)f(e)o(xpressed)h(by)f(means)g(of)h(CTL)g(formulas,)f(each) i(gi)o(ving)d(a)i(fairness)-31 2564 y(condition;)d(a)h Fi(fair)e(path)h Fq(is)g(a)h(path)g(along)f(which)g(each)h(fairness)g (condition)e(is)h(satis\256ed)g(in\256nitely)g(often.)16 b(These)10 b(types)p -31 2604 768 2 v 22 2632 a Fg(3)36 2648 y Ff(It)j(is)f(possible)e(to)i(sho)o(w)f(two)g(transition)i (systems)d(that)i(recognize)e(the)h(same)g(language,)g(of)h(which)f (one)g(satis\256es)f Fc(AG)h(E)r(F)18 b(p)p Ff(,)13 b(and)e(the)-31 2693 y(other)e(does)f(not.)906 2835 y Fq(21)p eop %%Page: 22 23 22 22 bop -31 11 a Fq(of)14 b(fairness)g(constraints)e(are)j(called)f (B)t(\310)-19 b(uchi)14 b(type.)24 b(More)14 b(general)g(fairness)g (constraints,)g(such)f(as)h(Street)h(type,)f(are)-31 68 y(not)c(allo)o(wed)f(currently)m(.)17 b(F)o(air)11 b(CTL)g(has)f(the)g(same)g(syntax)f(as)i(CTL,)g(b)o(ut)e(the)h (semantics)g(is)f(modi\256ed)h(so)g(that)g(all)g(path)-31 124 y(quanti\256ers)j(only)f(range)i(o)o(v)o(er)g(fair)e(paths.)22 b(VIS)13 b(supports)f(F)o(air)i(CTL;)f(in)g(the)f(documentation)g(we)h (may)g(sometimes)-31 181 y(refer)g(to)e(CTL,)h(where)g(we)f(really)h (mean)f(F)o(air)h(CTL.)40 237 y(An)d(e)o(xample)h(of)g(a)g(fairness)f (condition)f(is)i Fp(p)p Fq(,)g(that)f(restricts)g(the)h(system)f(to)g (only)g(those)g(paths)g(where)h Fp(p)g Fq(is)f(asserted)-31 294 y(in\256nitely)i(often.)-31 440 y Fl(3.2)58 b(Pr)o(operties)14 b(and)h(F)o(air)o(ness)e(Conditions)j(of)f(T)l(raf\256c)f(Light)h (Contr)o(oller)g(in)g(CTL)-31 544 y Fq(Not)e(all)h(beha)o(vior)f(e)o (xhibited)g(by)h(the)f(description)g(of)g(the)h(T)n(raf)o(\256c)h (Light)e(Controller)g(is)g(v)o(alid.)23 b(In)14 b(order)g(to)f (restrict)-31 600 y(the)e(beha)o(vior)h(we)f(impose)g(the)g(follo)o (wing)f(two)g(fairness)h(constraints.)16 b(The)11 b(\256rst)h(is:)-31 692 y Fm(!\(timer.s)q(ta)q(te=)q(ST)q(ART)q(\);)-31 784 y Fq(The)k(timer)g(must)f(e)o(v)o(entually)h(lea)o(v)o(e)h(the)f(ST)l (AR)m(T)h(state.)31 b(This)15 b(constraint)h(pre)o(v)o(ents)g(it)g (from)g(staying)f(in)h(ST)l(AR)m(T)-31 841 y(fore)o(v)o(er)m(.)j(The)11 b(second)g(fairness)g(constraint:)-31 933 y Fm(!\(timer.s)q(ta)q(te=)q (SH)q(ORT)q(\);)-31 1025 y Fq(ensures)g(that)g(the)g(timer)f(must)g(e)o (v)o(entually)g(lea)o(v)o(e)i(the)f(SHOR)m(T)h(state.)k(Li)o(v)o(eness) 11 b(properties)g(\(e.g,)h(cars)f(on)g(farm)g(road)-31 1082 y(and)f(highway)g(will)f(e)o(v)o(entually)h(cross\))g(would)g(not) f(pass)h(if)h(these)f(fairness)g(constraints)f(are)i(not)f(placed)h(on) f(the)g(timer)m(.)40 1138 y(One)f(ob)o(vious)f(property)h(to)g(check)g (is)g(that)g(the)g(light)e(is)i(not)g(green)g(in)g(both)f(directions)h (at)g(the)g(same)g(time,)g(ensuring)-31 1195 y(that)j(collisions)e(do)h (not)h(occur)g(between)g(traf)o(\256c)h(on)f(the)f(farm)h(road)g(and)g (highway)m(.)18 b(This)11 b(property)h(is)f(written)g(as)h(the)-31 1251 y(CTL)g(formula:)-31 1343 y Fm(AG)28 b(\()g(!\(\(farm_l)q(ig)q(ht) j(=)c(GREEN\))j(*)e(\(hwy_ligh)q(t)i(=)e(GREEN\)\))i(\);)40 1435 y Fq(T)l(o)15 b(ensure)g(that)f(a)h(car)h(on)f(the)f(farm)h(road)g (e)o(v)o(entually)f(crosses)h(the)g(intersection,)g(we)g(require)h (that)e(if)h(a)g(car)h(is)-31 1492 y(present)11 b(on)g(the)g(farm)g (road,)g(and)g(the)g(timer)g(is)f(long,)h(then)g(e)o(v)o(entually)f (the)h(farm)g(light)f(will)g(turn)h(green.)17 b(In)11 b(CTL)g(this)-31 1548 y(is)g(written)g(as:)-31 1640 y Fm(AG\(\(\(car_)q(pr)q(ese)q(nt)31 b(=)d(YES\))h(*)e(\(timer.s)q(tat)q (e)k(=)c(LONG\)\))j(->)e(AF\(farm_)q(lig)q(ht)j(=)d(GREEN\)\);)40 1733 y Fq(In)12 b(addition,)g(re)o(gardless)h(of)g(what)f(happens)g(on) g(the)h(farm)f(road,)h(the)g(highway)e(should)g(always)h(be)g(green)h (in)f(the)-31 1789 y(future:)-31 1881 y Fm(AG\(AF\(hwy)q(_l)q(igh)q(t) 31 b(=)c(GREEN\)\);)40 1973 y Fq(The)9 b(presence)h(of)f(a)h(car)g(on)f (the)g(farm)g(road)h(does)f(not)f(guarantee)i(that)f(e)o(v)o(entually)g (the)g(farm)g(light)f(will)g(turn)h(green.)-31 2030 y(A)k(car)h(may)f (approach,)h(and)f(then)g(back)h(a)o(way)m(,)g(all)f(before)h(the)f (timer)f(goes)h(long.)21 b(This)13 b(property)g(is)f(not)h(necessary) -31 2086 y(for)g(safety)m(,)g(it)e(just)h(maximizes)f(the)h(time)f (that)h(the)g(highway)f(light)g(is)h(green.)20 b(Thus,)12 b(it)g(is)f(desirable)h(that)g(the)g(system)-31 2143 y(satis\256es)f(the)g(follo)o(wing)f(property:)-31 2235 y Fm(!\(AG\(\(car)q(_p)q(res)q(en)q(t)30 b(=)e(YES\))h(->)f(AF\(farm_l) q(ig)q(ht)j(=)d(GREEN\)\)\);)-31 2381 y Fl(3.3)58 b(Language)15 b(Containment)-31 2485 y Fq(There)i(are)h(properties)e(of)g(practical)h (interest)f(that)g(cannot)h(be)g(described)f(in)g(CTL.)i(An)e(e)o (xample)h(is)f(the)g(\252almost)-31 2541 y(always\272)f(property:)26 b(a)16 b(condition,)g Fp(q)r Fq(,)i(always)d(holds)g(after)i(a)f (\256nite)g(number)g(of)g(transitions)e(\(note)i(that)g(formulas)-31 2598 y Fp(F)6 b(G)14 b(q)h Fq(and)e Fp(AF)20 b(G)13 b(q)i Fq(would)d(e)o(xpress)i(this,)f(b)o(ut)f(these)i(are)g(not)e(le)o(gal)h (CTL)h(formulas\).)22 b(This)12 b(property)h(looks)f(a)i(lot)-31 2654 y(like)f Fp(AF)20 b(AG)13 b(q)r Fq(,)i(b)o(ut)e(it)g(is)g(not)f (the)i(same.)23 b(One)13 b(can)h(e)o(xhibit)f(a)h(transition)e(system)g (where)i Fp(AF)21 b(G)13 b(q)i Fq(is)e(true,)i(while)-31 2711 y Fp(AF)j(AG)11 b(q)j Fq(is)d(false.)906 2835 y(22)p eop %%Page: 23 24 23 23 bop 40 11 a Fq(A)8 b(solution)f(would)g(be)i(to)f(use)g(a)h(more) f(e)o(xpressi)o(v)o(e)h(type)f(of)h(temporal)f(logic)f(\(for)i (instance,)h(the)e(pre)o(vious)f(property)-31 68 y(could)12 b(be)h(e)o(xpressed)g(in)g(PL)l(TL)f(or)h(CTL*\).)21 b(But)13 b(there)g(would)e(be)i(dra)o(wbacks,)h(such)f(as)g(the)f (higher)h(comple)o(xity)e(of)-31 124 y(algorithms)i(for)i(model)f (checking.)27 b(An)15 b(alternati)o(v)o(e)g(is)f(to)g(use)h(another)g (v)o(eri\256cation)g(paradigm,)g(called)g(language)-31 181 y(containment,)d(based)h(on)f(the)g(theory)g(of)h Fp(!)r Fq(-automata.)19 b(F)o(or)14 b(e)o(xample,)f(it)f(is)g(easy)g (to)g(e)o(xpress)h(the)f(pre)o(vious)g(\252almost)-31 237 y(always\272)f(property)g(using)f(an)i(automaton.)40 294 y(Currently)17 b(VIS)h(supports)d(a)j(restricted)f(form)g(of)g (language)g(containment.)33 b(W)l(e)18 b(re)o(vie)o(w)f(brie\257y)g (the)g(idea)g(of)-31 350 y(language)e(containment:)22 b(for)16 b(a)f(system)f(to)h(satisfy)f(a)i(property)f(it)f(must)g(be)h (that)g Fp(L)p Fb(\()p Fp(S)s Fb(\))h Fj(\022)j Fp(L)p Fb(\()p Fp(T)6 b Fb(\))p Fq(,)15 b(where)h Fp(S)h Fq(is)e(an)-31 407 y Fp(!)r Fq(-automaton)8 b(representing)h(the)f(system,)h Fp(T)15 b Fq(is)8 b(an)h Fp(!)r Fq(-automaton)f(representing)g(the)h (property)g(and)f Fp(L)h Fq(is)g(the)f(language)-31 463 y(accepted)k(by)f(the)h(automaton.)j(It)d(is)e(a)i(fact)g(that)e Fp(L)p Fb(\()p Fp(S)s Fb(\))i Fj(\022)h Fp(L)p Fb(\()p Fp(T)6 b Fb(\))k Fq(is)h(equi)o(v)o(alent)g(to)g Fp(L)p Fb(\()p Fp(S)s Fb(\))d Fj(\\)p 1461 424 100 2 v 11 w Fp(L)p Fb(\()p Fp(T)e Fb(\))12 b(=)h Fj(;)p Fq(.)40 519 y(T)l(o)g(achie)o(v)o(e)h(language)f(containment)f(checking)h(we)h (represent)f(the)g(composition)e(of)i(the)g(gi)o(v)o(en)g(system)f (with)h(a)-31 576 y(model)d(representing)h(the)g(ne)o(gation)f(of)h (the)f(property)h(and)g(check)g(it)g(for)g(language)f(emptiness.)16 b(The)11 b(language)f(of)h(the)-31 632 y(composed)g(system)f(is)h (empty)f(if)i(and)f(only)g(if)g(the)g(system)g(satis\256es)g(the)g (property)g Fp(T)6 b Fq(.)40 689 y(Language)14 b(emptiness)f(is)h(used) g(not)g(only)f(to)h(v)o(erify)h(properties)f(that)g(cannot)g(be)h(e)o (xpressed)f(in)g(F)o(air)i(CTL,)f(b)o(ut)-31 745 y(also)g(to)g(check)h (whether)g(the)f(abstraction)g(of)h(a)g(system)e(still)g(contains)h (the)g(original)g(system.)28 b(In)16 b(both)e(cases)i(one)-31 802 y(must)c(complement)g(an)h Fp(!)r Fq(\261automaton)e(\()p Fp(T)6 b Fq(\),)14 b(and)f(this)f(is)g(hard)h(to)g(do)f(if)h(the)g (automaton)e(is)i(nondeterministic)e(\(as)i(is)-31 858 y(usually)7 b(the)g(case)i(for)f(an)g(abstraction\).)15 b(The)8 b(fact)g(that)f(complementation)f(of)i(a)g(deterministic)e (property)h(is)h(easy)m(,)h(while)-31 915 y(complementation)e(of)h(a)h (nondeterministic)d(property)i(may)g(be)h(hard,)g(is)f(a)h(ke)o(y)f (problem)f(with)h(language)g(containment.)-31 971 y(This)k(has)h (prompted)f(a)h(lot)f(of)h(research)h(on)f(dif)o(ferent)f(classes)h(of) g Fp(!)r Fq(-automata)f(with)h(dif)o(ferent)f(e)o(xpressi)o(v)o(eness)h (and)-31 1028 y(dif)o(\256culty)j(of)h(complementation.)31 b(Currently)16 b(VIS)i(supports)d(language)h(emptiness)g(of)g (nondeterministic)f(B)t(\310)-19 b(uchi)-31 1084 y(automata;)15 b(only)f(it)g(is)g(the)g(responsibility)f(of)h(the)g(user)h(to)f(deri)o (v)o(e)h(the)f(complement)g(of)g(a)h(gi)o(v)o(en)f(nondeterministic)-31 1140 y(property)m(.)21 b(B)t(\310)-19 b(uchi)13 b(automata)f (acceptance)i(conditions)d(are)j(states)e(that)h(must)e(be)i(reached)h (in\256nitely)e(often)g(and)h(the)o(y)-31 1197 y(are)g(speci\256ed)g (by)f(means)g(of)g(fairness)g(constraints.)18 b(Thus)12 b(to)f(use)i(language)f(containment,)f(the)h(user)h(must)e(insert)h(in) -31 1253 y(the)g(V)-5 b(erilog)12 b(hierarchy)g(a)h(monitor)n(,)f (which)f(represents)i(the)f(complement)f(automaton)g(structure,)i(and)f (impose)f(a)h(set)-31 1310 y(of)j(fairness)g(conditions)e(to)i(specify) g(the)g(complement)f(automaton)g(acceptance)i(conditions,)f(i.e.,)i (the)e(acceptance)-31 1366 y(conditions)10 b(are)i(speci\256ed)g(in)f (terms)g(of)g(fair)g(paths.)40 1423 y(As)d(a)g(\256nal)h(note,)g (inside)e(VIS,)j(language)e(emptiness)f(\(language)h(containment\))g (is)g(reduced)g(to)g(CTL,)h(by)f(checking)-31 1479 y(the)k(CTL)g (formula)f Fp(E)j(G)d(tr)q(ue)h Fq(on)f(the)h(system)e(\(system)h (composed)g(with)g(complemented)f(property\),)i(i.e.,)h(whether)-31 1536 y(there)f(is)f(an)g(in\256nite)g(path)g(\(notice)g(that)g Fp(tr)q(ue)h Fq(is)f(always)f(satis\256ed\),)i(satisfying)e (appropriate)h(fairness)g(constraints.)906 2835 y(23)p eop %%Page: 24 25 24 24 bop -31 323 a Fn(Chapter)20 b(4)-31 530 y Fs(F)m(ormal)27 b(V)-10 b(eri\256cation)24 b(in)i(VIS)-31 753 y Fq(In)15 b(this)f(chapter)h(we)g(describe)g(the)g(usage)g(and)g(the)g(relation)f (between)h(the)g(VIS)g(commands)f(that)g(perform)h(formal)-31 809 y(v)o(eri\256cation.)i(The)12 b(main)f(sections)f(are:)26 903 y(1.)23 b(b)o(uilding)10 b(an)h(internal)g(representation)g(of)h (the)f(\256nite-state)g(system,)26 997 y(2.)23 b(FSM)12 b(tra)o(v)o(ersal,)26 1091 y(3.)23 b(speci\256cation)11 b(of)g(fairness)g(constraints,)26 1184 y(4.)23 b(language)11 b(emptiness,)26 1278 y(5.)23 b(model)10 b(checking,)26 1372 y(6.)23 b(equi)o(v)o(alence)11 b(checking,)h(and)26 1466 y(7.)23 b(simulation.)-31 1613 y Fl(4.1)58 b(Repr)o(esenting)15 b(the)g(System)g(f)o(or)f(V)-6 b(eri\256cation)-31 1716 y Fq(In)12 b(this)e(section,)h(we)h(describe)f(the)g(steps)g(in)n(v)o (olv)o(ed)g(in)g(con)n(v)o(erting)g(a)h(BLIF-MV)g(description)e(into)g (an)i(internal)f(FSM)-31 1773 y(representation.)-31 1898 y Fk(4.1.1)51 b(Building)11 b(the)h(Flattened)f(Network)-31 1985 y Fq(The)i(compound)e Fi(init)p 323 1985 14 2 v 15 w(verify)i Fq(command)e(e)o(x)o(ecutes)i(the)g(entire)f(set)g(of)h (required)f(initialization)f(commands.)18 b(When)13 b(a)-31 2041 y(BLIF-MV)e(description)d(is)h(read)i(into)d(VIS,)j(it)e(is)g (stored)h(as)f(a)h(\252hierarchy\272)h(tree,)g(which)e(is)g(a)h (hierarchical)g(description)-31 2098 y(of)h(the)f(design;)g(it)g (consists)f(of)i(modules)e(\(also)h(called)h Fi(hnodes)p Fq(\))f(that)g(in)g(turn)g(consist)g(of)g(sub-modules)f(\(also)i (hnodes\))-31 2154 y(that)16 b(are)h(related)g(in)e(some)h(fashion.)31 b(This)15 b(relation)h(is)g(represented)g(as)h(a)f(table,)i(which)e (implements)e(the)i(output)-31 2211 y(function)d(in)g(terms)f(of)i(the) f(sub-module)f(inputs.)21 b(The)13 b Fi(print)p 970 2211 V 16 w(hier)o(ar)n(c)o(hy)p 1160 2211 V 16 w(stats)f Fq(command)h(in)g(VIS)h(prints)e(hierarchy)-31 2267 y(information,)e (and)g(the)g Fi(print)p 442 2267 V 15 w(models)g Fq(command)f(lists)g (statistics)f(on)i(all)g(the)g(models)f(in)h(the)g(hierarchy)m(.)16 b(Other)11 b(useful)-31 2324 y(print)g(commands)f(are)i Fi(print)p 436 2324 V 16 w(io)e Fq(and)i Fi(print)p 666 2324 V 15 w(latc)o(hes)p Fq(.)40 2380 y(The)j(hierarchy)h(can)g(be)g (described)g(by)f(a)h(tree.)30 b(The)16 b(root)f(of)g(the)h(tree)g(is)f (the)h(main)f(module,)h(and)f(the)h(lea)o(v)o(es)-31 2436 y(are)f(lo)o(wer)f(le)o(v)o(el)f(instantiations)f(of)i(modules.)23 b(The)14 b(hierarchy)g(in)g(VIS)g(can)h(be)f(tra)o(v)o(ersed)g(in)g(a)g (manner)g(similar)f(to)-31 2493 y(tra)o(v)o(ersing)g(directories)f(in)g (UNIX.)h(It)f(is)g(possible)g(to)g(reach)h(a)g(desired)f(node)h(in)f (the)g(tree)h(by)f(walking)f(up)h(and)h(do)o(wn)-31 2549 y(with)g(the)h Fi(cd)g Fq(command.)23 b(At)14 b(an)o(y)g(node)g (simulation,)f(v)o(eri\256cation)h(and)g(synthesis)e(operations)h(can)i (be)f(performed.)-31 2606 y(The)e(command)e Fi(pwd)i Fq(prints)e(the)h(name)h(of)f(the)g(current)h(node.)17 b(The)11 b(command)f Fi(ls)h Fq(lists)f(all)h(the)h(nodes)f (\(submodules\))-31 2662 y(in)g(the)g(current)h(node;)f Fi(ls)g(-R)g Fq(lists)f(all)h(the)h(nodes)f(in)g(the)g(current)g (subtree.)906 2835 y(24)p eop %%Page: 25 26 25 25 bop 40 11 a Fq(The)15 b(\256rst)h(step)f(to)o(wards)g(v)o (eri\256cation)h(consists)e(of)i(\252\257attening\272)f(this)g (hierarchical)h(description)f(into)f(a)i(single)-31 68 y(network)10 b(\(netlist)g(of)h(multi-v)o(alued)f(logic)g(gates\).)17 b(The)11 b(output)e(is)i(computed)f(from)h(the)g(inputs)e(of)j(the)e (design)h(by)f(the)-31 124 y(network)g(circuit,)g(which)g(consists)f (of)h(logic)g(gates,)g(interconnections)f(between)i(them,)f(and)g (latches)g(to)g(represent)g(the)-31 181 y(sequential)d(elements.)16 b(The)8 b Fi(\257atten)p 549 181 14 2 v 15 w(hier)o(ar)n(c)o(hy)h Fq(command)e(creates)i(this)e(network,)i(and)f(the)g Fi(print)p 1542 181 V 15 w(network)g Fq(command)-31 237 y(can)16 b(be)f(used)g(to)g(print)g(it.)28 b(Other)15 b(related)g(commands)f(are)j Fi(print)p 1059 237 V 15 w(network)p 1221 237 V 16 w(stats)d Fq(command)h(that)g(prints)f (statistics)-31 294 y(about)e(the)g(network,)g(and)g Fi(test)p 469 294 V 16 w(network)p 632 294 V 16 w(acyclic)h Fq(command)e(that)h(checks)g(the)g(network)f(for)i(combinational)d(c)o (ycles.)-31 350 y(On)h(the)h(T)n(raf)o(\256c)h(Light)d(Controller)h(e)o (xample)g(these)h(commands)e(work)h(as)g(follo)o(ws)f(:)-31 430 y Fd(UC)20 b(Berkeley,)f(VIS)h(Release)f(1.0)h(\(compiled)f (11-Dec-95)g(at)h(10:36)g(AM\))-31 470 y(VIS>)g(read_blif_mv)f(tlc.mv) -31 509 y(Warning:)g(Some)h(variables)f(are)h(unused)g(in)f(model)h (main.)-31 548 y(vis>)g(print_hierarchy_stats)-31 588 y(Model)g(name)f(=)h(main,)g(Instance)f(name)h(=)g(main)-31 627 y(inputs)g(=)f(0,)h(outputs)g(=)g(0,)f(variables)h(=)f(12,)h (tables)g(=)f(3,)h(latches)g(=)f(0,)h(children)g(=)f(4)-31 667 y(vis>)h(print_models)-31 706 y(Model)g(name)f(=)h(hwy_control)-31 746 y(inputs)g(=)f(4,)h(outputs)g(=)g(3,)f(variables)h(=)f(49,)h (tables)g(=)f(44,)h(latches)g(=)f(1)-31 785 y(subckts)h(=)f(0)-31 824 y(Model)h(name)f(=)h(sensor)-31 864 y(inputs)g(=)f(0,)h(outputs)g (=)g(1,)f(variables)h(=)f(12,)h(tables)g(=)f(11,)h(latches)g(=)f(1)-31 903 y(subckts)h(=)f(0)-31 943 y(Model)h(name)f(=)h(main)-31 982 y(inputs)g(=)f(0,)h(outputs)g(=)g(0,)f(variables)h(=)f(12,)h (tables)g(=)f(3,)h(latches)g(=)f(0)-31 1022 y(subckts)h(=)f(4)-31 1061 y(Model)h(name)f(=)h(timer)-31 1101 y(inputs)g(=)f(1,)h(outputs)g (=)g(2,)f(variables)h(=)f(40,)h(tables)g(=)f(38,)h(latches)g(=)f(1)-31 1140 y(subckts)h(=)f(0)-31 1179 y(Model)h(name)f(=)h(farm_control)-31 1219 y(inputs)g(=)f(4,)h(outputs)g(=)g(3,)f(variables)h(=)f(49,)h (tables)g(=)f(44,)h(latches)g(=)f(1)-31 1258 y(subckts)h(=)f(0)-31 1298 y(vis>)h(flatten_hierarchy)-31 1337 y(vis>)g(print_network_stats) -31 1377 y(main)40 b(combinational=142)e(pi=0)i(po=0)f(latches=4)h (pseudo=2)f(const=40)g(edges=206)-31 1416 y(vis>)20 b (test_network_acyclic)-31 1455 y(Network)g(has)f(no)h(combinational)f (cycles)-31 1495 y(vis>)h(ls)-31 1534 y(farm_control)-31 1574 y(hwy_control)-31 1613 y(sensor)-31 1653 y(timer)-31 1692 y(vis>)g(cd)g(hwy_control)-31 1731 y(vis>)g(print_io)-31 1771 y(inputs:)g(car_present)f(enable_hwy)g(long_timer)g(short_timer) -31 1810 y(outputs:)g(enable_farm)h(hwy_light)f(hwy_start_timer)-31 1850 y(vis>)h(print_latches)-31 1889 y(hwy_light)-31 1929 y(vis>)g(flatten_hierarchy)-31 1968 y(vis>)g(print_network_stats) -31 2008 y(hwy_control)39 b(combinational=45)g(pi=4)g(po=3)h(latches=1) f(pseudo=0)g(const=12)h(edges=68)40 2105 y Fq(Note)16 b(that)g(when)h(a)g(node)g(is)f(arri)o(v)o(ed)h(at)g(for)g(the)f (\256rst)h(time,)h(there)f(is)f(no)g(network)g(for)h(that)g(node)f (until)g Fi(\257at-)-31 2161 y(ten)p 28 2161 V 16 w(hier)o(ar)n(c)o(hy) c Fq(is)f(called)h(for)f(that)g(node.)40 2218 y(Also)g Fi(\257atten)p 256 2218 V 16 w(hier)o(ar)n(c)o(hy)h Fq(automatically)f (checks)h(each)h(table)f(in)g(the)g(network)f(for)h(being)g (deterministic)e(\(e)o(xcept)-31 2274 y(for)15 b(pseudo-inputs\))f(and) h(completely)f(speci\256ed.)27 b(Since)16 b(this)e(checking)h(takes)f (some)g(time,)i(it)e(can)h(be)g(turned)g(of)o(f)-31 2330 y(safely)d(using)e(the)h(option)f Fi(\257atten)p 513 2330 V 16 w(hier)o(ar)n(c)o(hy)i(-b)p Fq(,)g(after)p 773 2337 84 2 v 12 w(a)f(BLIF-MV)i(\256le)e(has)h(been)f(checked)h (once.)-31 2454 y Fk(4.1.2)51 b(Ordering)-31 2541 y Fq(The)17 b(ne)o(xt)g(step)g(to)o(wards)f(v)o(eri\256cation)h(consists)f(of)h (con)n(v)o(erting)g(this)f(network)g(representation)h(into)f(a)h (functional)-31 2598 y(description)11 b(that)h(represents)g(the)g (output)e(and)i(ne)o(xt)g(state)g(v)o(ariables)g(as)g(a)g(function)g (of)g(the)f(inputs)g(and)h(current)g(state)-31 2654 y(v)o(ariables.)22 b(W)l(e)14 b(use)f(the)g(BDD)h(\(binary)f(decision)g(diagram\))g(and)g (its)f(e)o(xtension)h(the)g(MDD)g(\(multi)o(v)o(alued)e(decision)-31 2711 y(diagram\))h(to)g(represent)h(boolean)e(and)i(discrete)f (functions.)18 b(Before)c(creating)e(the)g(MDDs,)g(it)g(is)f(necessary) i(to)f(order)906 2835 y(25)p eop %%Page: 26 27 26 26 bop -31 11 a Fq(the)18 b(v)o(ariables)g(in)g(the)h(support)e(of)h (the)h(MDD.)f(This)g(is)g(accomplished)f(by)h(the)g Fi(static)p 1435 11 14 2 v 16 w(or)n(der)g Fq(command,)i(which)-31 68 y(gi)o(v)o(es)13 b(an)h(initial)d(ordering.)23 b(Networks)12 b(with)h(combinational)e(c)o(ycles)j(cannot)f(be)h(ordered.)23 b(If)13 b(the)h(MDD)e(v)o(ariables)-31 124 y(ha)o(v)o(e)k(already)g (been)g(ordered,)i(then)d Fi(static)p 686 124 V 15 w(or)n(der)g Fq(does)h(nothing.)28 b(T)l(o)15 b(undo)g(the)h(current)f(ordering,)i (rein)n(v)o(oke)e(the)-31 181 y(command)e Fi(\257atten)p 281 181 V 15 w(hier)o(ar)n(c)o(hy)p Fq(.)24 b(At)13 b(an)o(y)h(stage)f (the)h(current)g(v)o(ariable)f(ordering)g(can)h(be)g(written)f(out)f (to)i(a)f(\256le)h(using)-31 237 y(the)d Fi(write)p 133 237 V 17 w(or)n(der)g Fq(command.)-31 362 y Fk(4.1.3)51 b(Computing)11 b(FSM)h(Inf)o(ormation)-31 449 y Fq(The)17 b Fi(b)o(uild)p 154 449 V 15 w(partition)p 331 449 V 14 w(mdds)f Fq(command)f(computes)h(the)g(transition)f(function)g (MDDs.)31 b(Depending)16 b(on)g(the)g(parti-)-31 506 y(tioning)d(method)g(selected,)i(the)f(MDDs)f(for)h(the)g (combinational)e(outputs)h(\(COs\))i(are)f(b)o(uilt)f(in)h(terms)f(of)h (either)g(the)-31 562 y(combinational)g(inputs)g(\(CIs\))i(or)f(some)g (subset)g(of)g(intermediate)g(nodes)g(of)g(the)g(network.)28 b(The)16 b(MDDs)e(b)o(uilt)g(are)-31 619 y(stored)i(in)f(a)h(D)n(A)n(G) h(called)e(a)i(\252partition\272.)29 b(The)16 b(v)o(ertices)h(of)f(a)g (partition)e(correspond)i(to)g(the)f(CIs,)j(COs,)g(and)e(an)o(y)-31 675 y(intermediate)9 b(nodes)f(used.)16 b(Each)9 b(v)o(erte)o(x)h(has)f (a)g(multi-v)o(alued)f(function)g(\(represented)i(by)f(an)g(MDD\))g(e)o (xpressing)f(the)-31 732 y(function)h(of)i(the)f(corresponding)f (network)g(node)h(in)g(terms)g(of)g(the)g(partition)f(v)o(ertices)h(in) g(its)f(transiti)o(v)o(e)g(fanin.)16 b(Hence,)-31 788 y(the)c(MDDs)f(of)g(the)h(partition)e(represent)i(a)g(partial)f (collapsing)g(of)g(the)h(network.)17 b(The)11 b Fi(inout)g Fq(method)f(represents)i(one)-31 845 y(e)o(xtreme)i(where)g(no)f (intermediate)f(nodes)h(are)h(used,)g(and)f Fi(total)f Fq(represents)i(the)f(other)g(e)o(xtreme)h(where)f(e)o(v)o(ery)h(node) -31 901 y(in)h(the)h(network)f(has)h(a)g(corresponding)f(v)o(erte)o(x)h (in)g(the)f(partition.)29 b(If)16 b(no)f Fi(method)h Fq(is)f(speci\256ed)h(on)f(the)h(command)-31 957 y(line,)g(then)f(the)h (v)o(alue)f(of)g(the)g(\257ag)h Fi(partition)p 717 957 V 15 w(method)e Fq(is)h(used)g(as)h(default)e(\(this)h(\257ag)h(is)f (set)g(by)g(the)g(command)f Fi(set)-31 1014 y(partition)p 134 1014 V 14 w(method)p Fq(\),)j(unless)e(it)g(does)g(not)g(ha)o(v)o (e)h(a)g(v)o(alue,)g(in)f(which)h(case)g(the)f Fi(inout)f Fq(method)h(is)g(used.)29 b(The)15 b(parti-)-31 1070 y(tion)g(graph)g(can)h(be)g(printed)e(to)i(a)f(\256le)h(with)f(the)g Fi(print)p 879 1070 V 15 w(partition)f Fq(command.)28 b(Another)15 b(related)h(command)e(is)h(the)-31 1127 y Fi(print)p 62 1127 V 15 w(partition)p 239 1127 V 15 w(stats)10 b Fq(command)g(that)h(prints)g(statistics)e(on)j(the)f (partition)f(graph.)40 1183 y(The)h(complete)g(set)g(of)h(commands)e (included)h(by)g Fi(init)p 913 1183 V 15 w(verify)g Fq(are:)26 1277 y(1.)23 b Fi(\257atten)p 201 1277 V 15 w(hier)o(ar)n(c)o(hy)p Fq(,)26 1371 y(2.)g Fi(static)p 186 1371 V 15 w(or)n(der)p Fq(,)12 b(and)26 1465 y(3.)23 b Fi(b)o(uild)p 180 1465 V 15 w(partition)p 357 1465 V 15 w(mdds)p Fq(.)-31 1554 y Fd(UC)d(Berkeley,)f(VIS)h(Release)f(1.0)h(\(compiled)f(11-Dec-95)g (at)h(10:36)g(AM\))-31 1593 y(vis>)g(read_blif_mv)f(tlc.mv)-31 1633 y(Warning:)g(Some)h(variables)f(are)h(unused)g(in)f(model)h(main.) -31 1672 y(vis>)g(flatten_hierarchy)-31 1712 y(vis>)g(static_order)-31 1751 y(vis>)g(build_partition_mdds)-31 1791 y(vis>)g (print_partition_stats)-31 1830 y(Method)g(Inputs-Outputs,)e(8)i (sinks,)g(10)g(sources,)f(14)h(total)f(vertices,)g(78)h(mdd)g(nodes)-31 1955 y Fk(4.1.4)51 b(Advanced)11 b(Ordering)-31 2042 y Fq(Dynamic)i(ordering)g(of)h(v)o(ariables)f(may)g(be)g(enabled)h(and) f(disabled)g(using)f(the)i Fi(dynamic)p 1436 2042 V 16 w(var)p 1513 2042 V 16 w(or)n(dering)f Fq(command.)-31 2099 y(Dynamic)7 b(ordering)h(is)f(a)h(technique)f(to)h(reorder)g(the)g (MDD)f(v)o(ariables)h(to)f(reduce)i(the)e(size)h(of)g(the)f(e)o (xisting)g(MDDs.)15 b(The)-31 2155 y(commands)e Fi(\257atten)p 299 2155 V 15 w(hier)o(ar)n(c)o(hy)h Fq(and)g Fi(static)p 682 2155 V 15 w(or)n(der)f Fq(must)g(be)g(in)n(v)o(oked)g(before)h (this)e(command.)23 b(A)m(v)o(ailable)12 b(methods)-31 2212 y(for)j(dynamic)g(reordering)g(are)g Fi(window)g Fq(and)g Fi(sift)p Fq(.)26 b(Dynamic)15 b(ordering)f(may)h(be)g(time)f (consuming,)h(b)o(ut)f(can)h(often)-31 2268 y(reduce)d(the)f(size)h(of) f(the)h(MDDs)e(dramatically)m(.)40 2324 y(Dynamic)15 b(ordering)h(is)f(best)h(in)n(v)o(oked)e(e)o(xplicitly)h(\(using)g(the) h Fi(dynamic)p 1237 2324 V 16 w(var)p 1314 2324 V 16 w(or)n(dering)f(-f)h()f Fq(option\))-31 2381 y(after)e(the)f Fi(b)o(uild)p 230 2381 V 15 w(partition)p 407 2381 V 15 w(mdds)f Fq(and)h Fi(print)p 698 2381 V 16 w(img)p 783 2381 V 16 w(info)f Fq(commands.)18 b(If)13 b(dynamic)e(ordering)h(\256nds)g(a)h(good)e(ordering,)-31 2437 y(then)16 b(you)g(may)h(wish)f(to)g(sa)o(v)o(e)h(this)e(ordering)i (\(using)e Fi(write)p 977 2437 V 17 w(or)n(der)h(<\256le>)p Fq(\))g(and)h(reuse)g(it)f(\(using)f Fi(static)p 1727 2437 V 16 w(or)n(der)h(-s)-31 2494 y()d(<\256le>)p Fq(\).)23 b(W)n(ith)13 b(option)f Fi(dynamic)p 737 2494 V 16 w(var)p 814 2494 V 16 w(or)n(dering)h(-e)h()f Fq(dynamic)f(ordering)i(is)f(automatically)-31 2550 y(enabled)i(whene)o (v)o(er)h(a)f(certain)g(threshold)f(on)h(the)g(o)o(v)o(erall)g(MDD)g (size)g(is)g(reached.)28 b(Enabling)14 b(dynamic)g(ordering)-31 2607 y(may)e(slo)o(w)f(do)o(wn)g(the)g(v)o(eri\256cation,)i(b)o(ut)e (it)g(can)i(make)e(the)h(dif)o(ference)g(between)g(completing)f(and)g (not)h(completing)e(a)-31 2663 y(v)o(eri\256cation)i(task.)906 2835 y(26)p eop %%Page: 27 28 27 27 bop -31 11 a Fd(UC)20 b(Berkeley,)f(VIS)h(Release)f(1.0)h (\(compiled)f(13-Dec-95)g(at)h(8:36)g(AM\))-31 51 y(vis>)g (read_blif_mv)f(tlc.mv)-31 90 y(Warning:)g(Some)h(variables)f(are)h (unused)g(in)f(model)h(main.)-31 130 y(vis>)g(init_verify)-31 169 y(vis>)g(print_partition_stats)-31 209 y(Method)g(Inputs-Outputs,)e (8)i(sinks,)g(10)g(sources,)f(14)h(total)f(vertices,)g(78)h(mdd)g (nodes)-31 248 y(vis>)g(write_order)-31 287 y(#)g(UC)g(Berkeley,)f(VIS) h(Release)f(1.0)h(\(compiled)f(13-Dec-95)g(at)h(8:36)g(AM\))-31 327 y(#)g(network)f(name:)h(main)-31 366 y(#)g(generated:)f(Wed)h(Dec)g (13)f(14:13:57)h(1995)-31 406 y(#)-31 445 y(#)g(name)299 b(type)238 b(mddId)20 b(vals)g(levs)-31 485 y(sensor.rand_choice)39 b(pseudo-input)178 b(0)80 b(2)20 b(\(0\))-31 524 y(timer.state)179 b(latch)318 b(1)80 b(3)20 b(\(1,)f(2\))-31 563 y(hwy_light)219 b(latch)318 b(2)80 b(3)20 b(\(3,)f(4\))-31 603 y(car_present)179 b(latch)318 b(3)80 b(2)20 b(\(5\))-31 642 y(car_present$NS)119 b(shadow)298 b(4)80 b(2)20 b(\(6\))-31 682 y(farm_light)199 b(latch)318 b(5)80 b(3)20 b(\(7,)f(8\))-31 721 y(timer.rand_choice)59 b(pseudo-input)178 b(6)80 b(2)20 b(\(9\))-31 761 y(timer.state$NS)119 b(shadow)298 b(7)80 b(3)20 b(\(10,)f(11\))-31 800 y(farm_light$NS)139 b(shadow)298 b(8)80 b(3)20 b(\(12,)f(13\))-31 839 y(hwy_light$NS)159 b(shadow)298 b(9)80 b(3)20 b(\(14,)f(15\))-31 879 y(vis>)h (dynamic_var_ordering)e(-f)i(sift)-31 918 y(Dynamic)g(variable)f (ordering)g(forced)h(with)f(method)h(sift....)-31 958 y(vis>)g(print_partition_stats)-31 997 y(Method)g(Inputs-Outputs,)e(8)i (sinks,)g(10)g(sources,)f(14)h(total)f(vertices,)g(70)h(mdd)g(nodes)-31 1037 y(vis>)g(write_order)-31 1076 y(#)g(UC)g(Berkeley,)f(VIS)h (Release)f(1.0)h(\(compiled)f(13-Dec-95)g(at)h(8:36)g(AM\))-31 1116 y(#)g(network)f(name:)h(main)-31 1155 y(#)g(generated:)f(Wed)h (Dec)g(13)f(14:14:20)h(1995)-31 1194 y(#)-31 1234 y(#)g(name)299 b(type)238 b(mddId)20 b(vals)g(levs)-31 1273 y(sensor.rand_choice)39 b(pseudo-input)178 b(0)80 b(2)20 b(\(0\))-31 1313 y(timer.state)179 b(latch)318 b(1)80 b(3)20 b(\(1,)f(2\))-31 1352 y(hwy_light)219 b(latch)318 b(2)80 b(3)20 b(\(3,)f(6\))-31 1392 y(farm_light)199 b(latch)318 b(5)80 b(3)20 b(\(4,)f(5\))-31 1431 y(car_present$NS)119 b(shadow)298 b(4)80 b(2)20 b(\(7\))-31 1470 y(car_present)179 b(latch)318 b(3)80 b(2)20 b(\(8\))-31 1510 y(timer.rand_choice)59 b(pseudo-input)178 b(6)80 b(2)20 b(\(9\))-31 1549 y(timer.state$NS)119 b(shadow)298 b(7)80 b(3)20 b(\(10,)f(11\))-31 1589 y(farm_light$NS)139 b(shadow)298 b(8)80 b(3)20 b(\(12,)f(13\))-31 1628 y(hwy_light$NS)159 b(shadow)298 b(9)80 b(3)20 b(\(14,)f(15\))-31 1668 y(vis>)h (write_order)f(tlc.sift)-31 1707 y(vis>)h(quit)-31 1825 y(/projects/vis/vis/mips/bin/vis)-31 1865 y(UC)g(Berkeley,)f(VIS)h (Release)f(1.0)h(\(compiled)f(13-Dec-95)g(at)h(8:36)g(AM\))-31 1904 y(vis>)g(read_blif_mv)f(tlc.mv)-31 1944 y(Warning:)g(Some)h (variables)f(are)h(unused)g(in)f(model)h(main.)-31 1983 y(vis>)g(flatten_hierarchy)e(-b)-31 2023 y(vis>)i(static_order)f(-s)h (input_and_latch)e(tlc.sift)-31 2062 y(vis>)i(write_order)-31 2101 y(#)g(UC)g(Berkeley,)f(VIS)h(Release)f(1.0)h(\(compiled)f (13-Dec-95)g(at)h(8:36)g(AM\))-31 2141 y(#)g(network)f(name:)h(main)-31 2180 y(#)g(generated:)f(Wed)h(Dec)g(13)f(14:34:08)h(1995)-31 2220 y(#)-31 2259 y(#)g(name)299 b(type)238 b(mddId)20 b(vals)g(levs)-31 2299 y(sensor.rand_choice)39 b(pseudo-input)178 b(0)80 b(2)20 b(\(0\))-31 2338 y(timer.state)179 b(latch)318 b(1)80 b(3)20 b(\(1,)f(2\))-31 2377 y(hwy_light)219 b(latch)318 b(2)80 b(3)20 b(\(3,)f(4\))-31 2417 y(farm_light)199 b(latch)318 b(3)80 b(3)20 b(\(5,)f(6\))-31 2456 y(car_present$NS)119 b(shadow)298 b(4)80 b(2)20 b(\(7\))-31 2496 y(car_present)179 b(latch)318 b(5)80 b(2)20 b(\(8\))-31 2535 y(timer.rand_choice)59 b(pseudo-input)178 b(6)80 b(2)20 b(\(9\))-31 2575 y(timer.state$NS)119 b(shadow)298 b(7)80 b(3)20 b(\(10,)f(11\))-31 2614 y(farm_light$NS)139 b(shadow)298 b(8)80 b(3)20 b(\(12,)f(13\))-31 2654 y(hwy_light$NS)159 b(shadow)298 b(9)80 b(3)20 b(\(14,)f(15\))906 2835 y Fq(27)p eop %%Page: 28 29 28 28 bop 40 11 a Fq(Dynamic)16 b(ordering)g(mo)o(v)o(es)h(around)f (binary)h(v)o(alued)f(v)o(ariables,)i(possibly)d(separating)h(a)h (group)g(of)f(v)o(ariables)-31 68 y(which)e(encode)h(a)g(single)f (multi-v)o(alued)e(v)o(ariable.)27 b(Note,)15 b(ho)o(we)o(v)o(er)n(,)h (that)e(the)h(resolution)e(of)h(reading)h(and)f(writing)-31 124 y(v)o(ariable)e(ordering)f(\256les)h(is)f(at)h(the)g(multi-v)o (alued)e(v)o(ariable)h(le)o(v)o(el,)i(not)e(the)g(bit-le)o(v)o(el.)17 b(Therefore)c(when)f(the)f(ordering)-31 181 y(found)16 b(by)g(dynamic)g(ordering)g(is)f(read)i(back,)h(the)f(BDD)f(v)o (ariables)g(which)g(encode)h(the)f(MDD)g(v)o(ariables)g(do)g(not)-31 237 y(necessarily)e(occupy)f(the)g(same)g(le)o(v)o(els)g(as)h(reported) g(in)f(the)g(\256le)h Fi(tlc.sift)p Fq(.)22 b(See)15 b(for)f(e)o(xample)f(v)o(ariable)h Fm(hwy)p 1738 237 14 2 v 17 w(light)-31 294 y Fq(in)h(the)g(e)o(xample)h(abo)o(v)o(e.)29 b(The)16 b(only)e(information)h(that)f(is)h(used)g(from)h(the)f(\256le) h Fi(tlc.sift)e Fq(is)h(the)g(order)h(of)f(the)h(MDD)-31 350 y(v)o(ariables)d(in)g(the)g(\256rst)h(column.)21 b(By)14 b(editing)e(the)h(\256le)h Fi(tlc.sift)e Fq(an)o(y)i(order)g (can)f(be)h(imposed.)21 b(Gi)o(v)o(en)14 b(an)f(ordering)g(of)-31 407 y(MDD)e(v)o(ariables,)h(BDD)f(v)o(ariables)h(which)f(encode)g(them) g(are)h(assigned)f(to)g(the)g(\256rst)h(adjacent)f(a)o(v)o(ailable)g (le)o(v)o(els.)-31 553 y Fl(4.2)58 b(FSM)14 b(T)l(ra)o(v)o(ersal)f(and) j(Image)e(Computation)-31 657 y Fq(FSM)j(tra)o(v)o(ersal)g(is)f(the)g (core)h(computation)d(in)i(design)g(v)o(eri\256cation.)31 b(Ef)o(\256cient)17 b(tra)o(v)o(ersal)g(requires)f(grouping)f(the)-31 713 y(MDDs,)h(in)e(a)h(manner)g(optimal)e(for)j(tra)o(v)o(ersal.)27 b(T)l(o)15 b(tra)o(v)o(erse)h(the)f(FSM,)h(the)e(present)h(state,)h (input,)f(and)g(ne)o(xt)f(state)-31 770 y(v)o(ariables)f(are)g(or)o (ganized)g(for)g(easy)g(manipulation.)20 b(All)12 b(this)g(information) f(is)i(included)f(in)g(an)h(FSM)g(data)g(structure)-31 826 y(created)j(in)f(the)f Fi(compute)p 395 826 V 17 w(r)n(eac)o(h)h Fq(command.)27 b(This)14 b(also)h(in)n(v)o(okes)f(tra)o (v)o(ersal)i(of)f(the)g(entire)g(reachable)h(state)e(set)h(of)-31 883 y(the)i(FSM)h(representing)e(the)h(design,)i(and)e(may)f(be)i(in)n (v)o(oked)e(with)g(dif)o(ferent)h(v)o(erbosity)g(options)e(to)i(get)g (v)o(arying)-31 939 y(amounts)11 b(of)h(tra)o(v)o(ersal)h(information.) 18 b(On)12 b(subsequent)f(calls)g(to)h Fi(compute)p 1184 939 V 16 w(r)n(eac)o(h)p Fq(,)i(the)e(reachability)f(computation)g(is) -31 996 y(not)g(reperformed,)h(b)o(ut)f(statistics)f(can)i(be)f (printed)g(using)f Fi(-v)p Fq(.)40 1052 y(The)17 b(reachability)f (computation)f(makes)h(e)o(xtensi)o(v)o(e)h(use)g(of)g(image)f (computation.)32 b(There)17 b(are)g(se)o(v)o(eral)h(user)o(-)-31 1109 y(settable)7 b(options)g(that)g(af)o(fect)i(the)e(performance)i (of)f(image)f(computation.)14 b(The)8 b(documentation)e(for)i(the)g Fi(set)f Fq(command)-31 1165 y(lists)g(these)h(options.)15 b(Use)8 b(the)g(command)g Fi(set)g(image)p 821 1165 V 15 w(method)g Fq(to)g(change)h(the)f(image)g(computation)f(method,)h (and)h(then)-31 1221 y(re-initialize)14 b(v)o(eri\256cation)g (\(starting)f(at)h(the)g Fi(\257atten)p 816 1221 V 16 w(hier)o(ar)n(c)o(hy)g Fq(command)1212 1205 y Ft(1)1230 1221 y Fq(\).)25 b(The)14 b Fi(print)p 1459 1221 V 16 w(img)p 1544 1221 V 16 w(info)f Fq(prints)g(current)-31 1278 y(image)f(information.)17 b(Notice)12 b(that)f(while)h Fi(print)p 759 1278 V 15 w(partition)p 936 1278 V 14 w(stats)f Fq(prints)g(information)g(on)g(the)h(ne)o(xt)g(state)g Fr(functions)p Fq(,)-31 1334 y Fi(print)p 62 1334 V 15 w(img)p 146 1334 V 16 w(info)17 b Fq(prints)g(information)f(on)h(the)g (ne)o(xt)h(state)f(transition)f Fr(r)o(elations)p Fq(.)36 b(The)17 b(command)g Fi(print)p 1721 1334 V 15 w(img)p 1805 1334 V 16 w(info)-31 1391 y Fq(creates)12 b(transition)d (relations)i(from)f(transition)g(functions)g(by)g(clustering)g(se)o(v)o (eral)i(functions)d(together)m(.)17 b(The)11 b(result)g(is)-31 1447 y(a)h(partitioned)e(transition)g(relation.)16 b(It)11 b(is)g(often)g(a)h(good)f(idea)g(to)g(force)h(dynamic)f(v)o(ariable)g (reordering)g(\(for)h(instance,)-31 1504 y Fi(dynamic)p 127 1504 V 16 w(var)p 204 1504 V 17 w(or)n(dering)f(-f)i(sift)p Fq(\))e(at)i(this)e(point)h(to)g(reorder)h(these)g(relation)f(MDDs.)19 b(The)13 b(reachability)f(computation)-31 1560 y(is)j(an)h(optional)f (step)g(of)h(the)f(model)g(checking)h(algorithm;)g(unreachable)g (states)f(may)h(be)g(used)f(as)h(don')o(t)f(cares)i(to)-31 1617 y(minimize)10 b(the)h(BDD)h(representation.)40 1673 y(The)f(follo)o(wing)f(illustrates)g(the)h(command)g Fi(compute)p 916 1673 V 16 w(r)n(eac)o(h)h Fq(on)f(the)g(T)n(raf)o (\256c)i(Light)d(Controller:)-31 1762 y Fd(UC)20 b(Berkeley,)f(VIS)h (Release)f(1.0)h(\(compiled)f(11-Dec-95)g(at)h(10:36)g(AM\))-31 1802 y(vis>)g(read_blif_mv)f(tlc.mv)-31 1841 y(Warning:)g(Some)h (variables)f(are)h(unused)g(in)f(model)h(main.)-31 1881 y(vis>)g(init_verify)-31 1920 y(vis>)g(compute_reach)f(-v)h(1)-31 1959 y(Computing)f(reachable)h(states)f(using)h(the)f(iwls95)h(image)f (computation)h(method.)-31 1999 y(Printing)f(Information)h(about)f (Image)h(method:)f(IWLS95)129 2038 y(Threshold)g(Value)g(of)h(Bdd)g (Size)f(For)h(Creating)f(Clusters)h(=)g(1000)288 2078 y(\(Use)g("set)f(image_cluster_size)g(value)g(")h(to)g(set)g(this)f(to) h(desired)f(value\))129 2117 y(Verbosity)g(=)h(0)288 2157 y(\(Use)g("set)f(image_verbosity)g(value)h(")f(to)h(set)g(this)g (to)f(desired)h(value\))129 2196 y(W1)f(=)40 b(6)20 b(W2)g(=)g(1)f(W3)h (=)g(1)g(W4)g(=)g(2)288 2236 y(\(Use)g("set)f(image_W?)h(value)f(")h (to)g(set)f(these)h(to)g(desired)f(values\))129 2275 y(Shared)g(Bdd)h(Size)f(of)80 b(1)20 b(components)f(is)179 b(97)-31 2314 y(********************************)-31 2354 y(Reachability)19 b(analysis)h(results:)-31 2393 y(FSM)g(depth)f(=)359 b(8)-31 2433 y(reachable)19 b(states)h(=)199 b(20)-31 2472 y(MDD)20 b(size)f(=)379 b(8)-31 2512 y(analysis)19 b(time)h(=)279 b(0)p -31 2548 768 2 v 22 2575 a Fg(1)36 2591 y Ff(Whene)o(v)o(er)9 b(a)g(hierarchy)f(is)h(reinitialized,)h(the) f(option)g Fa(\257atten)p 861 2591 12 2 v 13 w(hier)o(ar)o(c)o(hy)e(-b) j Ff(can)e(be)g(used)g(safely)h(for)h(ef)o(\256cienc)o(y)n(.)906 2835 y Fq(28)p eop %%Page: 29 30 29 29 bop -31 11 a Fl(4.3)58 b(Specifying)16 b(F)o(air)o(ness)d (Constraints)-31 115 y Fq(F)o(airness)j(constraints)f(are)h(used)f(to)g (restrict)h(the)f(beha)o(vior)g(of)h(the)f(design.)29 b(Each)16 b(fairness)f(condition)f(speci\256es)i(a)-31 172 y(set)e(of)h(states)f(in)g(the)g(machine,)h(and)f(requires)h(that)f (in)g(an)o(y)g(acceptable)h(beha)o(vior)g(these)f(states)g(must)f(be)h (tra)o(v)o(ersed)-31 228 y(in\256nitely)19 b(often)g(\(i.e.,)k(these)d (states)f(must)f(be)i(on)f(a)h(c)o(ycle\).)43 b(Such)20 b(constraints)e(are)j(called)e(\252B)t(\310)-19 b(uchi)20 b(fairness\272)-31 284 y(constraints.)41 b(F)o(airness)20 b(constraints)f(are)h(stored)g(in)f(fairness)g(\256les)h(\(with)g(e)o (xtension)f Fm(.fair)i Fq(by)f(con)n(v)o(ention\);)-31 341 y(the)14 b(syntax)g(for)h(fairness)f(\256les)g(can)h(be)f(found)g (in)42 b Fm(http://www)q(-ca)q(d.)q(eec)q(s.)q(ber)q(ke)q(ley)q(.e)q (du/)q(Re)q(spe)q(p)-31 397 y(/Research)q(/v)q(is/)q(do)q(c/p)q(ack)q (ag)q(es/)q(re)q(ad)p 818 397 14 2 v 20 w(fairnessCm)q(d.)q(htm)q(l)p Fq(.)29 b(A)14 b(fairness)g(\256le)h(is)f(read)h(in)e(by)h(the)-31 454 y Fi(r)n(ead)p 54 454 V 17 w(fairness)g Fq(command.)30 b(Acti)o(v)o(e)16 b(fairness)f(conditions)f(can)j(be)f(displayed)f(by)g (means)h(of)g Fi(print)p 1620 454 V 15 w(fairness)p Fq(.)29 b(The)-31 510 y Fi(r)n(eset)p 59 510 V 17 w(fairness)11 b Fq(command)h(is)g(used)h(to)f(reset)h(the)g(fairness)f(constraint)g (to)g(\252true\272;)i(by)f(default,)f(there)i(is)e(one)h(fairness)-31 567 y(condition)d(that)h(contains)g(all)g(states.)40 623 y(F)o(airness)j(constraints)f(remo)o(v)o(e)h(unwanted)f(beha)o (vior)h(from)g(a)g(system.)23 b(The)o(y)15 b(are)f(a)g(po)o(werful,)h (b)o(ut)e(dangerous)-31 680 y(tool,)19 b(because)g(it)e(is)h(easy)g(to) f(make)h(a)g(faulty)f(system)g(pass)g(wanted)h(properties)f(by)h(a)g (careless)h(use)f(of)g(fairness)-31 736 y(constraints.)-31 883 y Fl(4.4)58 b(Language)15 b(Emptiness)-31 986 y Fq(The)h(language)f (of)g(a)h(design)e(is)h(gi)o(v)o(en)g(by)g(sequences)h(o)o(v)o(er)g (the)f(set)g(of)h(reachable)g(states)f(that)g(do)g(not)g(violate)f(the) -31 1043 y(fairness)d(constraint.)16 b(If)c(the)f(language)g(is)g (empty)m(,)g(we)h(kno)o(w)e(that)h(the)g(system)f(does)i(not)e(e)o (xhibit)h(an)o(y)g(beha)o(vior)m(.)18 b(VIS)-31 1099 y(supports)11 b(the)h(command)f Fi(lang)p 481 1099 V 16 w(empty)h Fq(as)g(an)g(alias)g(for)g(model)g(checking)g(the)f (formula)h Fp(E)s(G)f(tr)q(ue)p Fq(.)20 b(This)11 b(is)g(rele)o(v)o (ant)-31 1156 y(in)h(the)f(conte)o(xt)h(of)g(language)g(containment,)f (where)h(the)g(properties)f(to)h(be)g(v)o(eri\256ed)h(are)f(also)g (speci\256ed)g(as)g(automata)-31 1212 y(and)f(a)f(modi\256ed)g(system,) g(consisting)f(of)h(the)h(beha)o(vior)f(of)g(the)h(system)e(that)h (does)g(not)g(satisfy)g(the)g(property)m(,)h(is)f(tested)-31 1269 y(for)i(emptiness.)k(Before)d(in)n(v)o(oking)d(model)h(checking,)h Fi(lang)p 951 1269 V 16 w(empty)f Fq(can)h(also)g(be)f(used)h(to)f (ensure)h(that)f(the)g(system)g(is)-31 1325 y(non-tri)o(vial.)k(This)8 b(is)h(pertinent)f(because)i(the)f(fairness)g(constraint)f(speci\256ed) h(may)g(make)g(the)g(entire)g(system)f(\252unfair\272,)-31 1382 y(and)k(an)f(empty)g(system)f(passes)h(all)g(uni)o(v)o(ersal)g (properties.)40 1438 y(VIS)d(produces)g(a)g(deb)o(ug)g(trace)g(to)g (help)g(the)f(designer)h(understand)f(the)h(cause)g(of)g(the)g (failure.)15 b(Common)7 b(correcti)o(v)o(e)-31 1495 y(actions)k(are)h (the)f(correction)h(of)f(an)h(error)g(in)f(the)g(original)g(system)f (description)g(or)i(addition)e(of)h(fairness)g(constraints.)40 1551 y(The)g(language)g(emptiness)f(trace)j(for)e(the)g(T)n(raf)o (\256c)i(Light)e(Controller)g(e)o(xample)g(with)g(a)h(fairness)f (constraint)f(is:)-31 1640 y Fd(UC)20 b(Berkeley,)f(VIS)h(Release)f (1.0)h(\(compiled)f(14-Dec-95)g(at)h(1:04)g(AM\))-31 1680 y(vis>)g(read_blif_mv)f(tlc.mv)-31 1719 y(Warning:)g(Some)h (variables)f(are)h(unused)g(in)f(model)h(main.)-31 1759 y(vis>)g(init_verify)-31 1798 y(vis>)g(read_fairness)f(tlc.fair)-31 1837 y(vis>)h(print_fairness)-31 1877 y(Fairness)f(constraints:)-31 1916 y(!\(timer.state=START\);)-31 1956 y(!\(timer.state=SHORT\);)-31 1995 y(vis>)h(lang_empty)f(-i)-31 2035 y(#)h(LE:)g(language)f(is)h(not) g(empty)-31 2074 y(#)g(LE:)g(generating)f(path)h(to)f(fair)h(cycle)-31 2113 y(#)g(LE:)g(path)f(to)h(fair)g(cycle:)-31 2232 y(--State)g(0:)-31 2271 y(car_present:NO)-31 2311 y(farm_light:RED)-31 2350 y(hwy_light:GREEN)-31 2389 y(timer.state:START)40 2496 y Fq(This)15 b(indicates)g(that)h(there)g(is)f(v)o(alid)g(beha)o(vior)h (in)g(the)f(system,)i(and)e(an)i(e)o(xample)e(of)h(this)f(is)h(gi)o(v)o (en;)h(a)f(closed)-31 2552 y(path)h(that)g(be)o(gins)g(at)g(the)g (initial)f(state,)j(where)f(no)f(car)h(is)f(present)g Fp(car)p 1179 2552 V 17 w(pr)q(esent)22 b Fq(:)e Fp(N)5 b(O)q Fq(,)19 b(the)e(farm)g(light)f(is)h(red)-31 2609 y Fp(f)5 b(ar)q(m)p 85 2609 V 16 w(l)q(ig)r(ht)14 b Fq(:)g Fp(RE)s(D)q Fq(,)f(the)f(highway)g(light)f(is)i(green)g Fp(hw)q(y)p 949 2609 V 18 w(l)q(ig)r(ht)h Fq(:)g Fp(GRE)s(E)s(N)5 b Fq(,)11 b(and)i(the)f(timer)h(is)f(in)g(its)g(start)g(state)-31 2665 y Fp(timer)o(:state)i Fq(:)f Fp(S)s(T)6 b(ART)g Fq(.)17 b(From)12 b(the)g(initial)e(state)i(the)g(machine)f(loops)g (through)g(a)h(fair)g(c)o(ycle,)h(which)f(has)g(8)f(states,)906 2835 y(29)p eop %%Page: 30 31 30 30 bop -31 11 a Fq(and)14 b(is)f(described)h(belo)o(w)m(.)24 b(Note)13 b(that)g(this)g(trace)i(is)e(dif)o(ferential)h(for)g(both)f (states)g(and)h(inputs;)f(only)g(v)o(ariables)h(that)-31 68 y(ha)o(v)o(e)e(changed)g(in)f(the)g(last)g(step)g(are)h(printed.)-31 147 y Fd(#)20 b(LE:)g(fair)f(cycle:)-31 266 y(--State)h(0:)-31 305 y(car_present:NO)-31 345 y(farm_light:RED)-31 384 y(hwy_light:GREEN)-31 423 y(timer.state:START)-31 502 y(--Goes)g(to)f(state)h(1:)-31 542 y(car_present:YES)-31 581 y(timer.state:SHORT)-31 660 y(--On)g(input:)-31 699 y(sensor.rand_choice:1)-31 739 y(timer.rand_choice:1)-31 818 y(--Goes)g(to)f(state)h(2:)-31 857 y(timer.state:LONG)-31 936 y(--On)g(input:)-31 976 y()-31 1054 y(--Goes)g(to)f (state)h(3:)-31 1094 y(hwy_light:YELLOW)-31 1133 y(timer.state:START) -31 1212 y(--On)g(input:)-31 1252 y(timer.rand_choice:0)-31 1330 y(--Goes)g(to)f(state)h(4:)-31 1370 y(timer.state:SHORT)-31 1449 y(--On)g(input:)-31 1488 y(timer.rand_choice:1)-31 1567 y(--Goes)g(to)f(state)h(5:)-31 1606 y(car_present:NO)-31 1646 y(farm_light:GREEN)-31 1685 y(hwy_light:RED)-31 1725 y(timer.state:START)-31 1804 y(--On)g(input:)-31 1843 y(sensor.rand_choice:0)-31 1883 y(timer.rand_choice:0)-31 1961 y(--Goes)g(to)f(state)h(6:)-31 2001 y(car_present:YES)-31 2040 y(farm_light:YELLOW)-31 2119 y(--On)g(input:)-31 2159 y(sensor.rand_choice:1)-31 2237 y(--Goes)g(to)f(state)h(7:)-31 2277 y(timer.state:SHORT)-31 2356 y(--On)g(input:)-31 2395 y(timer.rand_choice:1)-31 2474 y(--Goes)g(to)f(state)h(8:)-31 2513 y(car_present:NO)-31 2553 y(farm_light:RED)-31 2592 y(hwy_light:GREEN)-31 2632 y(timer.state:START)-31 2711 y(--On)g(input:)906 2835 y Fq(30)p eop %%Page: 31 32 31 31 bop -31 11 a Fd(sensor.rand_choice:0)-31 51 y (timer.rand_choice:0)-31 197 y Fl(4.5)58 b(Model)15 b(Checking)g (Operations)-31 302 y Fk(4.5.1)51 b(P)o(erf)o(orming)12 b(Model)g(Checking)-31 390 y Fq(The)d Fi(model)p 164 390 14 2 v 16 w(c)o(hec)o(k)g Fq(command)f(calls)g(model)g(checking)g (in)g(VIS.)h(A)f(description)g(of)g(the)g(syntax)g(of)h(CTL)f(for)h (VIS)g(is)f(pre-)-31 446 y(sented)f(in)33 b Fm(http://w)q(ww-)q(ca)q (d.e)q(ec)q(s.b)q(er)q(kel)q(ey)q(.ed)q(u/)q(Res)q(pe)q(p/R)q(es)q(ear) q(ch)q(/vi)q(s/d)q(oc)q(/ct)q(l/)q(ctl)-31 502 y(ctl.html)p Fq(.)22 b(By)12 b(con)n(v)o(ention)g(CTL)g(properties)f(are)i(in)f(a)g (\256le)g(with)f(e)o(xtension)h Fi(.ctl)p Fq(.)18 b(The)12 b(follo)o(wing)f(illustrates)f(the)-31 559 y(functioning)g(of)i Fi(model)p 356 559 V 16 w(c)o(hec)o(k)h Fq(on)e(the)g(T)n(raf)o(\256c)i (Light)e(Controller)g(e)o(xample.)17 b(Note)11 b(that)g(in)g(this)g (session)f(the)i(fairness)-31 615 y(constraints)e(are)j(not)d(read)i (in.)17 b(Deb)o(ugging)10 b(error)i(traces)g(is)f(e)o(xplained)g(in)g (the)h(ne)o(xt)f(section.)-31 701 y Fd(UC)20 b(Berkeley,)f(VIS)h (Release)f(1.0)h(\(compiled)f(14-Dec-95)g(at)h(1:04)g(AM\))-31 740 y(vis>)g(read_blif_mv)f(tlc.mv)-31 780 y(Warning:)g(Some)h (variables)f(are)h(unused)g(in)f(model)h(main.)-31 819 y(vis>)g(init_verify)-31 859 y(vis>)g(model_check)f(-i)h(tlc.ctl)-31 977 y(MC:)g(formula)f(passed)h(---)f(AG\(!\(\(farm_light=GREEN)g(*)h (hwy_light=GREEN\)\)\))40 1079 y Fq(This)10 b(indicates)h(that)g(the)g (property)g(passed)g(\(i.e.)18 b(the)11 b(system)f(satis\256es)h(the)h (property\).)-31 1165 y Fd(MC:)20 b(formula)f(failed)h(---)f (AG\(\(\(car_present=YES)g(*)h(timer.state=LONG\))e(->)i (AF\(farm_light=GREEN\)\)\))-31 1204 y(MC:)g(Calling)f(debugger)40 1307 y Fq(This)10 b(indicates)h(that)g(the)h(property)f(failed,)g(and)h (gi)o(v)o(es)f(the)g(follo)o(wing)f(error)j(trace)f(that)f(sho)o(ws)g (beha)o(vior)g(seen)h(in)-31 1363 y(the)f(system)g(that)g(does)g(not)f (satisfy)h(the)g(property)m(.)-31 1488 y Fd(--State)-31 1528 y(car_present:NO)-31 1567 y(farm_light:RED)-31 1606 y(hwy_light:GREEN)-31 1646 y(timer.state:START)-31 1725 y(fails)20 b(AG\(\(\(car_present=YES)e(*)i(timer.state=LONG\))f(->)g (AF\(farm_light=GREEN\)\)\))-31 1764 y(--Counter)g(example)h(is)g(a)f (path)h(to)g(a)g(state)f(where)-31 1804 y(\(\(car_present=YES)g(*)h (timer.state=LONG\))e(->)i(AF\(farm_light=GREEN\)\))e(is)i(false)-31 1883 y(--State)g(0:)-31 1922 y(car_present:NO)-31 1961 y(farm_light:RED)-31 2001 y(hwy_light:GREEN)-31 2040 y(timer.state:START)-31 2119 y(--Goes)g(to)f(state)h(1:)-31 2159 y(car_present:YES)-31 2198 y(timer.state:SHORT)-31 2277 y(--On)g(input:)-31 2316 y(sensor.rand_choice:1)-31 2356 y(timer.rand_choice:1)-31 2435 y(--Goes)g(to)f(state)h(2:)-31 2474 y(timer.state:LONG)-31 2553 y(--On)g(input:)-31 2592 y()-31 2671 y(--State)-31 2711 y(car_present:YES)906 2835 y Fq(31)p eop %%Page: 32 33 32 32 bop -31 11 a Fd(farm_light:RED)-31 51 y(hwy_light:GREEN)-31 90 y(timer.state:LONG)-31 169 y(fails)20 b(\(\(car_present=YES)e(*)i (timer.state=LONG\))f(->)h(AF\(farm_light=GREEN\)\))-31 287 y(--State)-31 327 y(car_present:YES)-31 366 y(farm_light:RED)-31 406 y(hwy_light:GREEN)-31 445 y(timer.state:LONG)-31 524 y(passes)g(\(car_present=YES)e(*)i(timer.state=LONG\))-31 642 y(--State)-31 682 y(car_present:YES)-31 721 y(farm_light:RED)-31 761 y(hwy_light:GREEN)-31 800 y(timer.state:LONG)-31 879 y(passes)g(car_present=YES)-31 997 y(--State)-31 1037 y(car_present:YES)-31 1076 y(farm_light:RED)-31 1116 y(hwy_light:GREEN)-31 1155 y(timer.state:LONG)-31 1234 y(passes)g(timer.state=LONG)-31 1313 y(--State)-31 1352 y(car_present:YES)-31 1392 y(farm_light:RED)-31 1431 y(hwy_light:GREEN)-31 1470 y(timer.state:LONG)-31 1549 y(fails)g(AF\(farm_light=GREEN\))-31 1628 y(--A)g(fair)f(path)h (on)g(which)f(farm_light=GREEN)g(is)h(always)f(false:)-31 1707 y(--Fair)h(path)f(stem:)-31 1786 y(--State)h(0:)-31 1825 y(car_present:YES)-31 1865 y(farm_light:RED)-31 1904 y(hwy_light:GREEN)-31 1944 y(timer.state:LONG)-31 2023 y(--Goes)g(to)f(state)h(1:)-31 2062 y(hwy_light:YELLOW)-31 2101 y(timer.state:START)-31 2180 y(--On)g(input:)-31 2220 y(sensor.rand_choice:1)-31 2259 y(timer.rand_choice:0)-31 2338 y(--Fair)g(path)f(cycle:)-31 2417 y(--State)h(0:)-31 2456 y(car_present:YES)-31 2496 y(farm_light:RED)-31 2535 y(hwy_light:YELLOW)-31 2575 y(timer.state:START)-31 2654 y(--Goes)g(to)f(state)h(1:)-31 2693 y()906 2835 y Fq(32)p eop %%Page: 33 34 33 33 bop -31 51 a Fd(--On)20 b(input:)-31 90 y(sensor.rand_choice:1) -31 130 y(timer.rand_choice:0)40 236 y Fq(This)12 b(is)h(the)g(end)h (of)f(the)g(deb)o(ug)h(trace)g(for)f(this)g(CTL)g(formula.)23 b(The)13 b(command)g Fi(model)p 1491 236 14 2 v 16 w(c)o(hec)o(k)i Fq(continues)d(with)-31 292 y(the)f(ne)o(xt)h(formula.)-31 382 y Fd(MC:)20 b(formula)f(failed)h(---)f(AG\(AF\(hwy_light=GREEN\)\)) -31 421 y(MC:)h(Calling)f(debugger)40 527 y Fq(This)10 b(indicates)h(that)g(the)g(property)g(failed,)h(and)f(it)g(is)g(follo)o (wed)f(by)i(an)f(error)h(trace)g(that)f(sho)o(ws)g(beha)o(vior)g(seen)h (in)-31 584 y(the)f(system)g(that)g(does)g(not)f(satisfy)h(the)g (property)m(.)17 b(T)l(o)11 b(sa)o(v)o(e)h(space,)h(we)e(omit)f(the)i (error)g(trace.)-31 673 y Fd(MC:)20 b(formula)f(passed)h(---)f (!\(AG\(\(car_present=YES)g(->)h(AF\(farm_light=GREEN\)\)\)\))40 779 y Fq(This)10 b(indicates)h(that)g(the)g(property)g(passed)g(\(i.e.) 18 b(the)11 b(system)f(satis\256es)h(the)h(property\).)-31 904 y Fk(4.5.2)51 b(Deb)o(ugging)11 b(f)o(or)h(Model)g(Checking)-31 991 y Fq(If)h(model)e(checking)h(or)g(language)g(emptiness)f(checks)i (fail,)f(VIS)h(reports)f(the)f(failure)h(with)g(a)g(countere)o(xample,) h(i.e.,)-31 1048 y(an)e(error)g(trace)g(of)f(sample)g(\252bad\272)g (beha)o(vior)h(\(i.e.,)h(beha)o(vior)e(seen)g(in)g(the)g(system)f(that) h(does)g(not)g(satisfy)f(the)h(property)-31 1104 y(-)k(for)g(model)f (checking,)h(or)g(v)o(alid)f(beha)o(vior)g(seen)h(in)f(the)h(system)e (-)i(for)g(language)f(emptiness\).)23 b(This)13 b(is)g(called)g(the)-31 1161 y(\252deb)o(ug\272)f(trace.)17 b(Deb)o(ug)12 b(traces)g(list)e(a)i (set)f(of)g(states)g(that)g(are)h(on)f(a)h(path)f(to)g(a)h(fair)f(c)o (ycle)h(and)f(fail)g(the)g(CTL)h(formula.)40 1217 y(In)20 b(the)g(pre)o(vious)g(section,)i(the)f(second)f(and)g(third)g (properties)g(fail)g(during)g(model)f(checking.)44 b(This)20 b(may)-31 1274 y(be)d(recti\256ed)g(by)f(reading)g(in)g(the)g(fairness) g(constraints)g(pre)o(viously)f(described)h(for)h(the)f(T)n(raf)o (\256c)i(Light)d(Controller)-31 1330 y(e)o(xample.)21 b(If)13 b(the)f(fairness)g(constraints)g(are)h(read)h(in,)e(the)h(v)o (alid)f(beha)o(vior)g(is)g(restricted)h(and)f(these)h(properties)f (pass.)-31 1387 y(In)i(particular)n(,)h(the)e(fairness)g(constraint)g Fm(!\(timer.s)q(ta)q(te=)q(ST)q(ART)q(\))k Fq(disallo)o(ws)12 b(beha)o(vior)n(,)j(where)f(the)f(system)-31 1443 y(stays)e(fore)o(v)o (er)h(in)f(the)g(state:)-31 1532 y Fd(car_present:YES)-31 1572 y(farm_light:RED)-31 1611 y(hwy_light:YELLOW)-31 1651 y(timer.state:START)-31 1730 y(--On)20 b(input:)-31 1769 y(sensor.rand_choice:1)-31 1808 y(timer.rand_choice:0)40 1915 y Fq(More)13 b(precisely)m(,)i(the)f(fairness)f(constraint)g (disallo)o(ws)f(beha)o(vior)n(,)j(where)g(there)f(is)f(a)h(car)h(in)e (the)h(farm)g(road,)h(b)o(ut)-31 1971 y(the)c(timer)g(is)g(stuck)g(in)g (its)f(initial)g(state,)i(by)f(forcing)g(the)g(timer)g(to)g(progress)g (in)g(\256nite)h(time)e(to)h(the)g(ne)o(xt)h(state.)-31 2060 y Fd(UC)20 b(Berkeley,)f(VIS)h(Release)f(1.0)h(\(compiled)f (11-Dec-95)g(at)h(10:36)g(AM\))-31 2100 y(vis>)g(read_fairness)f (tlc.fair)-31 2139 y(vis>)h(model_check)f(tlc.ctl)-31 2258 y(MC:)h(formula)f(passed)h(---)f(AG\(!\(\(farm_light=GREEN)g(*)h (hwy_light=GREEN\)\)\))-31 2336 y(MC:)g(formula)f(passed)h(---)f (AG\(\(\(car_present=YES)g(*)h(timer.state=LONG\))e(->)i (AF\(farm_light=GREEN\)\)\))-31 2415 y(MC:)g(formula)f(passed)h(---)f (AG\(AF\(hwy_light=GREEN\)\))-31 2494 y(MC:)h(formula)f(passed)h(---)f (!\(AG\(\(car_present=YES)g(->)h(AF\(farm_light=GREEN\)\)\)\))906 2835 y Fq(33)p eop %%Page: 34 35 34 34 bop -31 11 a Fk(4.5.3)51 b(Checking)11 b(In)n(variants)-31 99 y Fq(An)j(important)f(class)h(of)g(CTL)g(formulas)f(is)h Fi(in)n(variants)p Fq(.)23 b(These)14 b(are)h(formulas)e(of)i(the)e (form)h Fp(AG)g(f)5 b Fq(,)16 b(where)e Fp(f)19 b Fq(is)14 b(a)-31 155 y(quanti\256er)o(-free)i(formula.)26 b(The)14 b(semantics)g(of)h Fp(AG)f(f)20 b Fq(is)14 b(that)g Fp(f)19 b Fq(is)14 b(true)h(in)f(all)g(reachable)i(states.)26 b(The)14 b(command)-31 212 y Fi(c)o(hec)o(k)p 73 212 14 2 v 18 w(in)n(variant)9 b Fq(implements)g(an)i(algorithm)e(that)h (is)g(specialized)g(for)h(these)g(formulas.)16 b(In)10 b(the)h(follo)o(wing)e(e)o(xample,)-31 268 y Fp(f)17 b Fq(is)11 b(the)g(formula)-31 361 y Fm(!\(\(farm_l)q(ig)q(ht)31 b(=)d(GREEN\))h(*)f(\(hwy_ligh)q(t)i(=)e(GREEN\)\);)-31 455 y Fq(contained)11 b(in)g(the)g(\256le)h Fi(tlc.in)n(var)p Fq(.)-31 543 y Fd(UC)20 b(Berkeley,)f(VIS)h(Release)f(1.0)h(\(compiled) f(13-Dec-95)g(at)h(8:36)g(AM\))-31 583 y(vis>)g(read_blif_mv)f(tlc.mv) -31 622 y(Warning:)g(Some)h(variables)f(are)h(unused)g(in)f(model)h (main.)-31 661 y(vis>)g(init_verify)-31 701 y(vis>)g(check_invariant)f (tlc.invar)-31 780 y(INV:)h(formula)f(passed)h(---)f (!\(\(farm_light=GREEN)g(*)h(hwy_light=GREEN\)\))-31 905 y Fk(4.5.4)51 b(Advanced)11 b(Model)h(Checking:)k(Abstraction)c (and)f(Reduction)-31 992 y Fq(When)h(performing)f(model)g(checking)h (and)g(checking)g(in)n(v)o(ariant)f(properties,)h(one)g(can)g(use)g (the)f(reduce)i(option)d Fi(-r)p Fq(,)j(to)-31 1048 y(perform)f(model)e (checking)h(on)h(a)f(\252pruned\272)h(FSM,)g(i.e.,)h(one)e(where)h (parts)f(that)g(do)g(not)g(af)o(fect)h(the)f(formula)g(\(directly)-31 1105 y(or)h(indirectly\))e(ha)o(v)o(e)i(been)g(remo)o(v)o(ed.)40 1161 y(This)j(mechanism)f(can)i(be)g(combined)f(with)f(the)i (abstraction)f(mechanism)g(a)o(v)o(ailable)g(through)g(the)g(command) -31 1218 y Fi(\257atten)p 87 1218 V 16 w(hier)o(ar)n(c)o(hy)10 b(<\256le>)p Fq(.)16 b Fi(<\256le>)10 b Fq(contains)f(the)h(names)g(of) g(v)o(ariables)g(to)f(abstract.)17 b(F)o(or)11 b(each)g(v)o(ariable)f Fm(x)g Fq(appearing)-31 1274 y(in)i Fi(<\256le>)p Fq(,)h(a)g(ne)o(w)g (primary)f(input)f(node)i(named)f Fm(x$ABS)j Fq(is)d(created)h(to)f (dri)o(v)o(e)h(all)f(the)h(nodes)f(that)g(were)i(pre)o(viously)-31 1331 y(dri)o(v)o(en)d(by)g Fm(x)p Fq(.)17 b(Hence,)12 b(the)f(node)g Fm(x)h Fq(will)e(not)h(ha)o(v)o(e)g(an)o(y)h(fanouts;)e (ho)o(we)o(v)o(er)n(,)i Fm(x)f Fq(and)g(its)g(transiti)o(v)o(e)f (fanins)g(will)g(remain)-31 1387 y(in)i(the)g(network.)18 b(Abstracting)12 b(a)g(net)g(ef)o(fecti)o(v)o(ely)h(allo)o(ws)e(it)h (to)f(take)h(an)o(y)h(v)o(alue)f(in)f(its)h(range,)h(at)f(e)o(v)o(ery)h (clock)f(c)o(ycle.)-31 1443 y(This)f(mechanism)f(can)i(be)f(used)h(to)f (perform)g(manual)g(abstractions.)40 1500 y(W)l(e)17 b(sho)o(w)e(an)i(e)o(xample,)h(where)e(the)h(\256le)f Fm(tlc.abstr)q(ac)q(t)j Fq(contains)d(the)g(v)o(ariable)g Fm(timer.sta)q(rt)p Fq(.)35 b(By)-31 1556 y(abstracting)9 b Fm(timer.star)q(t)p Fq(,)k(the)c(timer)f(module)g(is)h(disconnected)f (from)h(the)g(rest)g(of)g(the)g(T)n(raf)o(\256c)i(Light)d(Controller)m (.)40 1613 y(Then)j(we)h(perform)f(model)g(checking)g(of)g(the)h(CTL)f (property)g(read)h(from)g(the)f(\256le)h Fm(tlc.reduce)q(.ct)q(l)p Fq(:)-31 1706 y Fm(AG\(\(timer)q(.s)q(tat)q(e)31 b(=)c(START\))j(->)e (AF)g(\(timer.s)q(tat)q(e)j(=)c(LONG\)\);)-31 1799 y Fq(This)16 b(property)g(refers)h(only)f(to)g(the)g(timer)g(module.)31 b(Since)17 b(the)g(timer)f(has)g(been)h(disconnected,)g(the)f(rest)h (of)f(the)-31 1856 y(system)c(can)h(be)g(pruned)f(a)o(way)h(when)g (testing)e(this)h(property)m(.)20 b(As)13 b(e)o(xpected)g(this)f (property)g(fails,)h(since)f(no)h(fairness)-31 1912 y(constraint)e(has) g(been)h(read)g(in.)-31 2001 y Fd(UC)20 b(Berkeley,)f(VIS)h(Release)f (1.0)h(\(compiled)f(15-Dec-95)g(at)h(2:18)g(PM\))-31 2040 y(Sourcing)f(.visrc)h(of)g(Tiziano)-31 2080 y(vis>)g(read_blif_mv) f(tlc.mv)-31 2119 y(Warning:)g(Some)h(variables)f(are)h(unused)g(in)f (model)h(main.)-31 2159 y(vis>)g(flatten_hierarchy)e(tlc.abstract)-31 2198 y(vis>)i(static_order)-31 2237 y(vis>)g(build_partition_mdds)-31 2277 y(vis>)g(model_check)f(-i)h(-r)f(tlc.reduce.ctl)-31 2356 y(MC:)h(formula)f(failed)h(---)f(AG\(\(timer.state=START)g(->)h (AF\(timer.state=LONG\)\)\))-31 2435 y(MC:)g(Calling)f(debugger)-31 2513 y(--State)-31 2553 y(car_present:NO)-31 2592 y(farm_light:RED)-31 2632 y(hwy_light:GREEN)-31 2671 y(timer.state:START)906 2835 y Fq(34)p eop %%Page: 35 36 35 35 bop -31 11 a Fd(fails)20 b(AG\(\(timer.state=START)e(->)i (AF\(timer.state=LONG\)\)\))-31 51 y(since)g(\(timer.state=START)e(->)i (AF\(timer.state=LONG\)\))e(is)i(false)g(at)g(this)f(state)-31 130 y(--State)-31 169 y(car_present:NO)-31 209 y(farm_light:RED)-31 248 y(hwy_light:GREEN)-31 287 y(timer.state:START)-31 366 y(fails)h(\(timer.state=START)e(->)i(AF\(timer.state=LONG\)\))-31 485 y(--State)-31 524 y(car_present:NO)-31 563 y(farm_light:RED)-31 603 y(hwy_light:GREEN)-31 642 y(timer.state:START)-31 721 y(passes)g(timer.state=START)-31 800 y(--State)-31 839 y(car_present:NO)-31 879 y(farm_light:RED)-31 918 y(hwy_light:GREEN)-31 958 y(timer.state:START)-31 1037 y(fails)g(AF\(timer.state=LONG\))-31 1116 y(--A)g(fair)f(path)h(on)g (which)f(timer.state=LONG)g(is)h(always)f(false:)-31 1194 y(--Fair)h(path)f(stem:)-31 1273 y(--State)h(0:)-31 1313 y(car_present:NO)-31 1352 y(farm_light:RED)-31 1392 y(hwy_light:GREEN)-31 1431 y(timer.state:START)-31 1510 y(--Fair)g(path)f(cycle:)-31 1589 y(--State)h(0:)-31 1628 y(car_present:NO)-31 1668 y(farm_light:RED)-31 1707 y(hwy_light:GREEN)-31 1746 y(timer.state:START)-31 1825 y(--Goes)g(to)f(state)h(1:)-31 1865 y()-31 1944 y(--On)g(input:)-31 1983 y(sensor.rand_choice:0)-31 2023 y(timer.rand_choice:0)40 2122 y Fq(In)10 b(this)e(particular)i(e)o (xample,)h(the)f(same)f(ef)o(fect)i(of)f(\252restricted\272)g(model)f (checking)h(can)g(be)g(obtained)f(by)h(changing)-31 2179 y(\(using)i(the)g Fi(cd)h Fq(command\))f(to)g(the)h(timer)f(node)g(and) h(performing)f(model)g(checking.)20 b(When)13 b(at)g(the)f(timer)g (node,)h(the)-31 2235 y(inputs)e(to)h(timer)g(from)h(the)f(rest)h(of)f (the)g(system)g(are)h(considered)g(free)g(inputs.)19 b(Notice)12 b(that)g(the)h(names)f(of)g(v)o(ariables)-31 2292 y(in)f(the)g(CTL)h(property)f(in)g(the)g(\256le)h Fm(tlc.reduc)q(e.c)q(tl)j Fq(must)10 b(be)i(re)o(vised)f(as)g(follo)o (ws:)-31 2381 y Fm(AG\(\(state)31 b(=)d(START\))i(->)e(AF)g(\(state)i (=)e(LONG\)\);)-31 2470 y Fq(since)11 b(the)h(con)n(v)o(ention)e(for)i (names)f(is)g(to)g(drop)g(the)g(current)h(node)f(and)h(all)f(nodes)g (abo)o(v)o(e)h(from)f(the)g(namepath.)-31 2553 y Fd(UC)20 b(Berkeley,)f(VIS)h(Release)f(1.0)h(\(compiled)f(14-Dec-95)g(at)h(1:04) g(AM\))-31 2592 y(Sourcing)f(.visrc)h(of)g(Tiziano)-31 2632 y(vis>)g(read_blif_mv)f(tlc.mv)-31 2671 y(Warning:)g(Some)h (variables)f(are)h(unused)g(in)f(model)h(main.)-31 2711 y(vis>)g(cd)g(timer)906 2835 y Fq(35)p eop %%Page: 36 37 36 36 bop -31 11 a Fd(vis>)20 b(init_verify)-31 51 y(vis>)g (model_check)f(tlc.reduce.ctl)-31 130 y(MC:)h(formula)f(failed)h(---)f (AG\(\(state=START)g(->)h(AF\(state=LONG\)\)\))40 229 y Fq(Ho)o(we)o(v)o(er)n(,)12 b(there)g(are)g(more)f(comple)o(x)g (situations)f(that)h(cannot)g(be)g(emulated)g(so)g(simply)m(.)-31 375 y Fl(4.6)58 b(Combinational)17 b(and)e(Sequential)h(Equi)o(v)o (alence)-31 478 y Fq(In)10 b(VIS)g(it)f(is)g(also)h(possible)e(to)h (check)i(the)e(equi)o(v)o(alence)h(of)f(two)g(networks.)15 b(The)10 b(command)f Fi(comb)p 1563 478 14 2 v 16 w(verify)h Fq(v)o(eri\256es)g(the)-31 535 y(combinational)d(equi)o(v)o(alence)i (of)g(two)f(\257attened)h(networks.)15 b(In)8 b(particular)n(,)i(an)o (y)f(set)g(of)g(functions)f(\(the)g(roots\),)i(de\256ned)-31 591 y(o)o(v)o(er)i(an)o(y)f(set)f(of)h(intermediate)f(v)o(ariables)g (\(the)h(lea)o(v)o(es\),)h(can)f(be)g(checked)g(for)g(equi)o(v)o (alence)f(between)h(two)f(networks.)-31 648 y(Roots)i(and)h(lea)o(v)o (es)g(are)g(subsets)e(of)i(the)f(nodes)g(of)h(a)g(network,)f(with)g (the)g(restriction)g(that)g(the)g(lea)o(v)o(es)h(should)f(form)g(a)-31 704 y(complete)f(support)f(for)i(the)f(roots.)16 b(The)11 b(correspondence)h(between)g(the)f(roots)g(and)g(the)g(lea)o(v)o(es)h (in)f(the)g(two)f(networks)-31 761 y(is)f(speci\256ed)h(in)f(a)h (\256le.)17 b(The)9 b(default)g(option)f(assumes)h(that)g(the)g(roots)g (are)i(the)e(combinational)f(outputs)g(and)h(the)h(lea)o(v)o(es)-31 817 y(are)17 b(the)f(combinational)e(inputs.)29 b(T)l(wo)16 b(networks)f(are)h(declared)h(combinationally)d(equi)o(v)o(alent)h(if)o (f)h(the)o(y)g(ha)o(v)o(e)g(the)-31 873 y(same)d(outputs)e(for)j(all)e (combinations)f(of)i(inputs)f(and)h(pseudo-inputs.)20 b(An)12 b(important)g(usage)h(of)g Fi(comb)p 1680 873 V 16 w(verify)g Fq(is)g(to)-31 930 y(pro)o(vide)e(a)h(sanity)f(check)g (when)h(using)e(SIS)j(to)d(re-synthesize)i(portions)e(of)h(a)h (network,)f(as)h(e)o(xplained)f(in)g(Chapter)h(5.)40 986 y(The)17 b(command)e Fi(seq)p 388 986 V 17 w(verify)h Fq(tests)g(the)h(sequential)f(equi)o(v)o(alence)h(of)f(two)g(networks.) 32 b(In)17 b(this)f(case)h(the)g(set)f(of)-31 1043 y(lea)o(v)o(es)c (has)f(to)f(be)i(the)f(set)f(of)h(all)g(primary)g(inputs.)k(This)c (produces)g(the)g(constraint)f(that)g(both)h(networks)f(should)g(ha)o (v)o(e)-31 1099 y(the)k(same)f(number)g(of)h(primary)f(inputs.)22 b(The)13 b(set)g(of)h(roots)f(can)h(be)g(an)f(arbitrary)h(subset)f(of)g (nodes.)23 b(Moreo)o(v)o(er)n(,)15 b(no)-31 1156 y(pseudo-inputs)c (should)g(be)i(present)f(in)g(the)h(two)e(networks)h(being)g(compared.) 20 b(Sequential)12 b(v)o(eri\256cation)h(is)f(done)g(by)-31 1212 y(b)o(uilding)g(the)i(product)f(\256nite)h(state)f(machine.)24 b(The)13 b(command)g(v)o(eri\256es)i(whether)f(an)o(y)g(state,)g(where) g(the)g(v)o(alues)f(of)-31 1269 y(two)d(corresponding)g(roots)h(dif)o (fer)n(,)h(can)f(be)g(reached)h(from)f(the)g(set)g(of)g(initial)e (states)i(of)g(the)g(product)f(machine.)17 b(If)11 b(this)-31 1325 y(happens,)h(a)f(deb)o(ug)g(trace)i(is)d(pro)o(vided.)-31 1471 y Fl(4.7)58 b(Simulation)-31 1574 y Fq(Simulation,)14 b(although)f(not)h(\252formal)g(v)o(eri\256cation\272,)i(is)e(an)g (alternate)h(method)e(for)h(design)g(v)o(eri\256cation.)26 b(After)14 b(the)-31 1631 y(command)c Fi(b)o(uild)p 257 1631 V 15 w(partition)p 434 1631 V 15 w(mdds)g Fq(is)g(in)n(v)o(oked,)g (the)g(network)g(can)h(also)f(be)h(simulated.)k(In)c(VIS)g(we)g(pro)o (vide)g(internal)-31 1687 y(simulation)k(of)i(the)h(BLIF-MV)f (description)g(generated)g(by)g Fo(VL)p Fq(2)p Fo(MV)p Fq(,)k(via)c(the)g Fi(simulate)f Fq(command.)33 b(Thus,)19 b(VIS)-31 1744 y(encompasses)c(both)g(formal)h(v)o(eri\256cation)g(and) f(simulation)f(capabilities.)29 b Fi(simulate)14 b Fq(can)j(generate)f (random)f(input)-31 1800 y(patterns)c(or)h(accept)g(user)o (-speci\256ed)g(input)e(patterns.)-31 1883 y Fd(UC)20 b(Berkeley,)f(VIS)h(Release)f(1.0)h(\(compiled)f(15-Dec-95)g(at)h (10:24)g(PM\))-31 1922 y(vis>)g(read_blif_mv)f(tlc.mv)-31 1961 y(Warning:)g(Some)h(variables)f(are)h(unused)g(in)f(model)h(main.) -31 2001 y(vis>)g(init_verify)-31 2040 y(vis>)g(simulate)f(-n)h(10)-31 2080 y(#)g(UC)g(Berkeley,)f(VIS)h(Release)f(1.0)h(\(compiled)f (15-Dec-95)g(at)h(10:24)g(PM\))-31 2119 y(#)g(Network:)f(main)-31 2159 y(#)h(Simulation)f(vectors)h(have)f(been)h(randomly)f(generated) -31 2277 y(.inputs)39 b(sensor.rand_choice)19 b(timer.rand_choice)-31 2316 y(.latches)g(car_present)h(farm_light)f(hwy_light)g(timer.state) -31 2356 y(.outputs)-31 2395 y(.initial)g(NO)h(RED)g(GREEN)g(START)-31 2474 y(.start_vectors)-31 2553 y(#)g(sensor.rand_choice)f (timer.rand_choice)f(;)i(car_present)f(farm_light)g(hwy_light)h (timer.state)f(;)-31 2632 y(0)h(0)g(;)g(NO)39 b(RED)80 b(GREEN)39 b(START)20 b(;)-31 2671 y(1)g(1)g(;)g(NO)39 b(RED)80 b(GREEN)39 b(START)20 b(;)-31 2711 y(0)g(0)g(;)g(YES)f(RED)80 b(GREEN)39 b(SHORT)20 b(;)906 2835 y Fq(36)p eop %%Page: 37 38 37 37 bop -31 11 a Fd(1)20 b(0)g(;)g(NO)39 b(RED)80 b(GREEN)39 b(SHORT)20 b(;)-31 51 y(1)g(1)g(;)g(YES)f(RED)80 b(GREEN)39 b(SHORT)20 b(;)-31 90 y(0)g(1)g(;)g(YES)f(RED)80 b(GREEN)39 b(LONG)h(;)-31 130 y(0)20 b(1)g(;)g(NO)39 b(RED)80 b(YELLOW)19 b(START)h(;)-31 169 y(0)g(0)g(;)g(NO)39 b(RED)80 b(YELLOW)19 b(SHORT)h(;)-31 209 y(0)g(0)g(;)g(NO)39 b(GREEN)h(RED)79 b(START)20 b(;)-31 248 y(1)g(0)g(;)g(NO)39 b(YELLOW)20 b(RED)79 b(START)20 b(;)-31 287 y(#)g(Final)g(State)f(:)h(NO)40 b(YELLOW)19 b(RED)80 b(START)-31 327 y(vis>)20 b(cd)g(farm_control)-31 366 y(vis>)g(simulate)f(-n)h(10)-31 406 y(There)g(is)f(no)h(network.)g (Use)f(flatten_hierarchy.)-31 445 y(vis>)h(init_verify)-31 485 y(vis>)g(simulate)f(-n)h(10)-31 524 y(#)g(UC)g(Berkeley,)f(VIS)h (Release)f(1.0)h(\(compiled)f(15-Dec-95)g(at)h(10:24)g(PM\))-31 563 y(#)g(Network:)f(farm_control)-31 603 y(#)h(Simulation)f(vectors)h (have)f(been)h(randomly)f(generated)-31 721 y(.inputs)39 b(car_present)20 b(enable_farm)f(long_timer)g(short_timer)-31 761 y(.latches)g(farm_light)-31 800 y(.outputs)g(enable_hwy)h (farm_light)f(farm_start_timer)-31 839 y(.initial)g(RED)-31 918 y(.start_vectors)-31 997 y(#)h(car_present)f(enable_farm)g (long_timer)g(short_timer)g(;)h(farm_light)g(;)f(enable_hwy)h (farm_light)f(farm_start_timer)-31 1076 y(NO)40 b(1)20 b(0)g(0)f(;)h(RED)80 b(;)20 b(0)f(RED)80 b(1)-31 1116 y(YES)20 b(1)g(1)g(1)f(;)h(GREEN)40 b(;)20 b(0)f(GREEN)40 b(1)-31 1155 y(NO)g(1)20 b(0)g(1)f(;)h(YELLOW)g(;)g(1)f(YELLOW)h(0)-31 1194 y(YES)g(0)g(0)g(0)f(;)h(RED)80 b(;)20 b(0)f(RED)80 b(0)-31 1234 y(NO)40 b(1)20 b(1)g(0)f(;)h(RED)80 b(;)20 b(0)f(RED)80 b(1)-31 1273 y(NO)40 b(1)20 b(1)g(1)f(;)h(GREEN)40 b(;)20 b(0)f(GREEN)40 b(1)-31 1313 y(YES)20 b(1)g(1)g(1)f(;)h(YELLOW)g (;)g(1)f(YELLOW)h(0)-31 1352 y(NO)40 b(0)20 b(1)g(0)f(;)h(RED)80 b(;)20 b(0)f(RED)80 b(0)-31 1392 y(NO)40 b(0)20 b(0)g(0)f(;)h(RED)80 b(;)20 b(0)f(RED)80 b(0)-31 1431 y(YES)20 b(0)g(1)g(0)f(;)h(RED)80 b(;)20 b(0)f(RED)80 b(0)-31 1470 y(#)20 b(Final)g(State)f(:)h(RED)40 1577 y Fq(An)o(y)13 b(le)o(v)o(el)f(of)h(the)g(speci\256ed)g(hierarchy) g(may)g(be)g(simulated.)20 b(The)13 b(user)g(may)f(tra)o(v)o(erse)i (the)f(hierarchy)g(to)f(reach)-31 1633 y(the)g(rele)o(v)o(ant)g(le)o(v) o(el)h(via)f(the)g Fi(cd)h Fq(command.)18 b(The)13 b Fi(init)p 845 1633 14 2 v 15 w(verify)g Fq(command)e(must)g(be)i (called)f(to)g(set)g(up)g(the)g(appropriate)-31 1690 y(internal)f(data)h(structures)f(before)h(simulation.)906 2835 y(37)p eop %%Page: 38 39 38 38 bop -31 323 a Fn(Chapter)20 b(5)-31 530 y Fs(Synthesis)25 b(in)h(VIS)-31 753 y Fq(VIS)12 b(can)g(interact)f(with)g(SIS)h(in)f (order)h(to)f(optimize)f(the)h(e)o(xisting)g(logic.)16 b(There)c(are)g(two)e(possible)h(goals/scenarios:)26 842 y(1.)23 b(Synthesis)10 b(for)i(v)o(eri\256cation.)83 898 y(Synthesis)e(can)i(be)g(used)f(to)g(optimize)f(the)h(logic)g(that) g(represents)g(the)g(system,)g(for)h(simpler)e(v)o(eri\256cation.)26 990 y(2.)23 b(Front-end)11 b(to)g(synthesis.)83 1047 y(Files)c(described)g(in)g(V)-5 b(erilog)7 b(and)g(compiled)g(into)g Fi(blif)p 941 1047 14 2 v 14 w(mv)g Fq(\(using)g Fo(VL)p Fq(2)p Fo(MV)g Fq(or)g(another)g(tool\))g(can)g(be)g(synthesized)83 1103 y(by)k(using)f(VIS)i(and)g(SIS)g(together)m(.)40 1192 y(A)e(ke)o(y)g(fact)h(is)f(that)g(only)g(the)g(current)h(le)o(v)o (el)f(of)h(the)f(hierarchy)h(is)f(sent)g(to)g(SIS,)i(and)e(not)g(the)g (subtree)h(rooted)f(at)g(the)-31 1249 y(current)j(node.)225 1232 y Ft(1)264 1249 y Fq(Modules)f(at)h(a)g(lo)o(wer)g(le)o(v)o(el)g (are)h(treated)f(as)g(e)o(xternal)g(and)g(the)g(boundary)f(v)o (ariables)h(are)h(carefully)-31 1305 y(preserv)o(ed,)i(by)d(reinte)o (grating)g(their)g(multi-v)o(alued)f(status)h(after)h(the)g (optimization)d(step)i(in)h(SIS)g(\(SIS)h(requires)f(that)-31 1362 y(boundary)d(v)o(ariables)g(are)h(completely)f(encoded,)h(i.e.,)g (are)g(binary)g(v)o(ariables\).)-31 1418 y Fr(Ca)o(veat)37 b Fq(T)l(o)19 b(pre)o(v)o(ent)f(that)h(a)g(signal)e(\(possibly)g (referred)k(to)d(in)g(a)h(CTL)g(property\))g(is)f(optimized)f(a)o(way)i (during)-31 1475 y(synthesis,)10 b(declare)j(it)d(as)i(an)f(output)g (of)g(a)h(module.)40 1531 y(In)g(the)h(current)g(v)o(ersion,)g(only)e (combinational)g(logic)h(is)g(sent)g(to)g(SIS:)i(latches)e(are)h(cut)g (a)o(way)f(from)h(the)f(module)-31 1588 y(sent)17 b(to)g(SIS)i(and)e (the)o(y)h(are)g(reincorporated)g(when)g(the)f(design)g(is)g(read)h (back)g(into)e(VIS.)j(Therefore)g(we)e(cannot)-31 1644 y(take)c(adv)o(antage)g(of)g(sequential)g(optimizations)d(in)j(SIS,)i (either)e(at)g(the)g(le)o(v)o(el)g(of)g(a)h(completely)e(encoded)h (sequential)-31 1701 y(network)h(or)g(of)g(a)h(symbolic)e(state)g (table.)26 b(The)14 b(boundaries)g(between)g(modules)f(are)i (established)e(when)i(the)f(initial)-31 1757 y(hierarchy)f(is)f (described,)i(and)e(the)o(y)h(are)g(rigid)f(in)h(the)f(sense)h(that)f (optimizations)e(can)j(ne)o(v)o(er)h(bridge)e(them,)h(b)o(ut)f(only)-31 1813 y(operate)h(within)e(them.)19 b(Notice)12 b(that)g(there)h(is)f(a) h(way)f(to)g(replace)h(a)g(subtree)f(of)g(the)h(hierarchy)f(with)g (another)g(one)g(by)-31 1870 y(using)f Fi(r)n(ead)p 165 1870 V 16 w(blif)p 243 1870 V 15 w(mv)h(-r)p Fq(;)f(this)f(feature)j (could)e(be)g(used)g(to)g(change)h(boundaries)f(in)g(the)g(original)f (speci\256cation.)-31 2016 y Fl(5.1)58 b(Writing)15 b(and)h(Reading)f (fr)o(om)g(SIS)-31 2119 y Fq(VIS)d(communicates)e(with)h(SIS)h(via)g (the)f Fi(write)p 731 2119 V 16 w(blif)f Fq(and)i Fi(r)n(ead)p 979 2119 V 16 w(blif)f Fq(commands.)40 2176 y(Operations)g(performed)g (by)g Fi(write)p 607 2176 V 17 w(blif)f Fq(are:)26 2265 y(1.)23 b(All)11 b(v)o(ariables)g(are)i(encoded,)f(i.e.,)h(v)o(alues)e (of)h(multi-v)o(alued)e(v)o(ariables)i(are)g(replaced)h(by)e(binary)g (v)o(ectors.)18 b(F)o(or)83 2321 y(v)o(ariables)9 b(at)h(the)g (boundary)g(with)f(modules)f(at)i(dif)o(ferent)g(le)o(v)o(els)g(of)g (the)g(hierarchy)g(the)g(encoding)f(assignments)83 2378 y(are)18 b(stored)f(into)f(a)i(\256le)g(with)e(e)o(xtension)h Fm(.enc)p Fq(,)k(so)c(that)g(it)g(is)g(possible)f(to)h(reinte)o(grate)h (the)f(multi-v)o(alued)83 2434 y(boundaries)11 b(between)g(modules)f (when)i(coming)e(back)i(to)f(VIS.)26 2526 y(2.)23 b(All)16 b(unspeci\256ed)g(input)g(combinations)e(in)i(the)h(tables)f(are)h (speci\256ed)g(by)f(assigning)f(zero)j(code)e(v)o(ectors)h(as)83 2583 y(outputs.)e(Default)c(constructs)g(in)g(the)g(speci\256cation)g (of)g(tables)g(are)i(handled)e(appropriately)m(.)p -31 2622 768 2 v 22 2649 a Fg(1)36 2665 y Ff(One)c(would)g(need)f(a)h (\257attening)g(routine)g(dif)o(ferent)i(from)f(the)f(one)f(which)h (starts)h(the)f(v)o(eri\256cation)g(\257o)o(w)g(already)g(in)g(VIS,)i (and)d(such)g(a)h(routine)-31 2711 y(to)j(\257atten)e(for)i(synthesis)e (is)h(not)g(yet)g(a)o(v)o(ailable.)906 2835 y Fq(38)p eop %%Page: 39 40 39 39 bop 26 11 a Fq(3.)23 b(Nondeterministic)9 b(tables)h(are)h (determinized)f(by)h(adding)f(pseudo-inputs.)k(As)d(a)g(result)f(a)h (\256le)g(with)f(e)o(xtension)83 68 y Fm(.blif)16 b Fq(is)d(created)i (that)e(can)i(be)f(read)g(and)g(optimized)f(by)g(SIS.)j(SIS)f(must)d (be)i(in)n(v)o(oked)f(outside)g(of)h(VIS)g(by)83 124 y(means)d(of)g(a)h(dif)o(ferent)g(shell.)k(All)10 b(SIS)j(operations)d (to)h(optimize)g(combinational)e(logic)i(can)h(be)f(applied.)-31 213 y(In)17 b(summary)m(,)h Fi(write)p 318 213 14 2 v 16 w(blif)e Fq(scans)h(all)f(the)h(tables)g(of)g(a)g(gi)o(v)o(en)f (node)h(in)f(the)h(hierarchy)g(and)g(encodes)g(all)g(symbolic)-31 269 y(v)o(ariables,)22 b(determinizes)c(the)i(tables)f(by)g(adding)f (pseudo-inputs,)i(and)g(resolv)o(es)f(incomplete)f(speci\256cation)h (by)-31 325 y(associating)10 b(unspeci\256ed)i(input)e(combinations)g (to)h(outputs)f(encoded)h(by)g(zero)h(binary)f(v)o(ectors.)40 382 y(Operations)g(performed)g(by)g Fi(r)n(ead)p 595 382 V 17 w(blif)f Fq(are:)26 470 y(1.)23 b(Restore)14 b(the)f(symbolic)f(v)o(alues)h(of)g(multi-v)o(alued)f(I/O)h(v)o (ariables)g(of)g(the)h(node)f(being)g(read)h(in.)22 b(This)13 b(is)f(done)83 527 y(using)d(the)h(information)e(in)i(the)f(\256le)i (with)e(e)o(xtension)g Fm(.enc)j Fq(\(e.g.,)g Fi(r)n(ead)p 1246 527 V 16 w(blif)d(-e)i(model.enc)f(s-sim.blif)p Fq(\),)g(which)83 583 y(was)h(written)g(out)f(during)h(the)g Fi(write)p 670 583 V 16 w(blif)g Fq(process.)26 675 y(2.)23 b(Replace)12 b(in)f(the)g(hierarchy)h(the)f(old)g(node)g(with)g(the)g (ne)o(w)g(node.)-31 820 y Fl(5.2)58 b(Flo)o(w)15 b(of)f(Operations)i(f) o(or)e(Synthesis)-31 924 y Fq(The)e(typical)e(\257o)o(w)i(of)f (operations)g(of)g(synthesis)f(for)i(v)o(eri\256cation)g(is:)37 1012 y Fj(\017)23 b Fi(r)n(ead)p 168 1012 V 16 w(blif)p 246 1012 V 16 w(mv)37 1104 y Fj(\017)g Fi(write)p 180 1104 V 16 w(blif)37 1195 y Fj(\017)g Fq(optimization)9 b(by)i(SIS)37 1287 y Fj(\017)23 b Fi(r)n(ead)p 168 1287 V 16 w(blif)37 1379 y Fj(\017)g Fi(init)p 148 1379 V 15 w(verify)37 1470 y Fj(\017)g Fq(suite)10 b(of)i(v)o(eri\256cation)g (operations)-31 1558 y(The)g(typical)e(\257o)o(w)i(of)f(operations)g (for)g(direct)h(synthesis)e(is:)37 1647 y Fj(\017)23 b Fi(r)n(ead)p 168 1647 V 16 w(blif)p 246 1647 V 16 w(mv)37 1738 y Fj(\017)g Fi(write)p 180 1738 V 16 w(blif)37 1830 y Fj(\017)g Fq(optimization)9 b(by)i(SIS)37 1922 y Fj(\017)23 b Fi(r)n(ead)p 168 1922 V 16 w(blif)40 2010 y Fq(It)8 b(is)h(possible)e(to)i(v)o(erify)g(that)f(after)h(optimization)e(with)h (SIS)i(the)f(ne)o(w)f(global)g(network)g(\(where)i(the)e(node)h (returned)-31 2066 y(from)14 b(SIS)i(is)e(plugged)f(back)i(in)f(the)g (original)f(network\))h(is)g(equi)o(v)o(alent)g(to)g(the)g(old)g (global)f(network,)i(by)f(using)f(the)-31 2123 y(command)h Fi(comb)p 266 2123 V 17 w(verify)h Fq(that)f(checks)h(combinational)f (equi)o(v)o(alence)g(of)h(networks.)27 b(Combinational)13 b(equi)o(v)o(alence)-31 2179 y(can)g(be)f(checked)g(at)g(each)h(le)o(v) o(el)f(of)g(the)g(network)f(hierarchy)m(,)i(from)f(root)g(to)g(lea)o(v) o(es.)19 b(Before)13 b(applying)e Fi(comb)p 1760 2179 V 17 w(verify)p Fq(,)-31 2236 y(the)g(command)g Fi(init)p 293 2236 V 15 w(verify)h Fq(must)e(be)h(in)n(v)o(oked.)-31 2381 y Fl(5.3)58 b(Example)15 b(of)g(Synthesis)g(of)g(T)l(raf\256c)f (Light)h(Contr)o(oller)-31 2485 y Fq(The)f(follo)o(wing)e(script)i (demonstrates)f(the)g(path)h(from)f(VIS)i(to)e(SIS)i(and)f(back.)24 b(W)l(e)15 b(ha)o(v)o(e)g(chosen)e(to)h(optimize)e(the)-31 2541 y(network)e(of)h(the)f(leaf)h Fm(farm)p 434 2541 V 18 w(control)p Fq(.)20 b(W)l(e)11 b(v)o(erify)g(that)f(the)h(initial) e(global)h(network)f(and)i(the)g(ne)o(w)f(network,)h(after)-31 2598 y(replacement)f(of)g(the)g(network)f(in)h(the)g(leaf)g Fm(farm)p 776 2598 V 18 w(control)j Fq(by)d(the)g(one)g(optimized)e(by) i(SIS,)i(are)e(combinationally)-31 2654 y(equi)o(v)o(alent.)15 b(The)10 b(script)f(used)g(to)h(run)f(SIS)i(\(in)e(a)h(dif)o(ferent)f (shell\))h(is)f(sho)o(wn)f(too.)16 b(Experiments)8 b(report)i(big)f(sa) o(vings)g(in)-31 2711 y(literals)g(for)i(the)e(optimized)g(modules,)g (since)h(the)g(BLIF-MV)g(\256les)g(generated)h(by)e Fo(VL)p Fq(2)p Fo(MV)j Fq(ha)o(v)o(e)e(a)g(lot)f(of)h(redundanc)o(y)m(.)906 2835 y(39)p eop %%Page: 40 41 40 40 bop -31 11 a Fd(UC)20 b(Berkeley,)f(VIS)h(Release)f(1.0)h (\(compiled)f(11-Dec-95)g(at)h(10:36)g(AM\))-31 51 y(vis>)g (read_blif_mv)f(tlc.mv)-31 90 y(Warning:)g(Some)h(variables)f(are)h (unused)g(in)f(model)h(main.)-31 130 y(vis>)g(init_verify)-31 169 y(vis>)g(ls)-31 209 y(hwy_control)-31 248 y(sensor)-31 287 y(timer)-31 327 y(farm_control)-31 366 y(vis>)g (print_network_stats)-31 406 y(main)40 b(combinational=142)e(pi=0)i (po=0)f(latches=4)h(pseudo=2)f(const=40)g(edges=206)-31 445 y(vis>)20 b(cd)g(farm_control)-31 485 y(vis>)g(write_blif)f (farm_control.blif)-31 524 y(Writing)h(encoding)f(information)g(to)h (farm_control.enc)-31 563 y(vis>)g(read_blif)f(-e)h(farm_control.enc)f (farm_control.opt.blif)-31 603 y(Warning:)g(Some)h(variables)f(are)h (unused)g(in)f(model)h(farm_control[0].)-31 642 y(vis>)g(cd)g(..)-31 682 y(vis>)g(init_verify)-31 721 y(vis>)g(comb_verify)f(tlc.mv)-31 761 y(Networks)g(are)h(combinationally)f(equivalent.)-31 800 y(vis>)h(print_network_stats)-31 839 y(main)40 b(combinational=132) e(pi=0)i(po=0)f(latches=4)h(pseudo=2)f(const=34)g(edges=186)-31 997 y(sis>)20 b(read_blif)f(farm_control.blif)-31 1037 y(Warning:)g(network)h(`farm_control',)f(node)g("[1]0")h(does)f(not)h (fanout)-31 1076 y(Warning:)f(network)h(`farm_control',)f(node)g ("[5]0")h(does)f(not)h(fanout)-31 1116 y(Warning:)f(network)h (`farm_control',)f(node)g("[11]0")h(does)f(not)h(fanout)-31 1155 y(sis>)g(print_stats)-31 1194 y(farm_control)79 b(pi=18)59 b(po=)20 b(6)60 b(nodes=)19 b(62)140 b(latches=)19 b(0)-31 1234 y(lits\(sop\)=)g(709)40 b(lits\(fac\)=)19 b(419)-31 1273 y(sis>)h(source)f(script.rugged)-31 1313 y(sis>)h(print_stats)-31 1352 y(farm_control)79 b(pi=18)59 b(po=)20 b(6)60 b(nodes=)19 b(24)140 b(latches=)19 b(0)-31 1392 y(lits\(sop\)=)39 b(34)h(lits\(fac\)=)f(34)-31 1431 y(sis>)20 b(write_blif)f(farm_control.opt.blif)40 1537 y Fq(In)8 b(the)g(pre)o(vious)f(e)o(xample,)i(the)f(command)g Fi(init)p 806 1537 14 2 v 15 w(verify)g Fq(has)g(been)h(gi)o(v)o(en)e (only)h(in)g(order)g(to)g(do)g Fi(print)p 1630 1537 V 15 w(network)p 1792 1537 V 16 w(stats)-31 1594 y Fq(before)k(logic)f (synthesis,)f(to)h(compare)h(the)f(networks)f(before)i(and)g(after)g (optimization)d(by)i(SIS.)906 2835 y(40)p eop %%Page: 41 42 41 41 bop -31 323 a Fn(A)n(ppendix)21 b(A)-31 530 y Fs(Commands)26 b(in)g(VIS)-31 771 y Fl(A.1)58 b(List)14 b(of)h(Commands)h(in)f(VIS)-31 875 y Fq(The)7 b(follo)o(wing)g(list)g(contains)f(a)h(one)g(lin)o(e)g (summ)o(ary)g(of)g(all)g(the)g(com)o(mands)f(a)o(v)o(ailable)h(with)o (in)g(VIS.)g(The)g(list)f(can)h(also)g(be)-31 931 y(found)g(in)33 b Fm(http://ww)q(w-)q(cad)q(.e)q(ecs)q(.b)q(erk)q(el)q(ey.)q(ed)q(u/R)q (es)q(pep)q(/R)q(ese)q(ar)q(ch/)q(vi)q(s/d)q(oc)q(/pa)q(ck)q(age)q(s) -31 988 y(/cmdIndex)q(.h)q(tml)q Fq(.)e(Fig.)15 b(A.1)h(graphically)e (illustrates)g(the)h(suite)f(of)h(commands)f(a)o(v)o(ailable)h(within)f (VIS,)i(and)-31 1044 y(their)10 b(dependencies.)16 b(A)10 b(command)e(cannot)i(be)g(e)o(x)o(ecuted)g(before)h(its)e(predecessors) h(\(unless)f(the)g(predecessor)h(is)g(also)-31 1101 y(a)i(successor\).) 17 b(Default)11 b(aliases)g(are)h(de\256ned,)g(type)f Fi(alias)g Fq(to)g(list)f(them.)226 1159 y 22376157 17677154 4670504 16708567 32956661 39074365 startTexFig 226 1159 a %%BeginDocument: VisCom.eps /arrowhead { 0 begin transform originalCTM itransform /taily exch def /tailx exch def transform originalCTM itransform /tipy exch def /tipx exch def /dy tipy taily sub def /dx tipx tailx sub def /angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def gsave originalCTM setmatrix tipx tipy translate angle rotate newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto patternNone not { originalCTM setmatrix /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul arrowWidth div def /padtail brushWidth 2 div def tipx tipy translate angle rotate padtip 0 translate arrowHeight padtip add padtail add arrowHeight div dup scale arrowheadpath ifill } if brushNone not { originalCTM setmatrix tipx tipy translate angle rotate arrowheadpath istroke } if grestore end } dup 0 9 dict put def /arrowheadpath { newpath arrowHeight neg arrowWidth 2 div moveto 0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto } def /leftarrow { 0 begin y exch get /taily exch def x exch get /tailx exch def y exch get /tipy exch def x exch get /tipx exch def brushLeftArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /rightarrow { 0 begin y exch get /tipy exch def x exch get /tipx exch def y exch get /taily exch def x exch get /tailx exch def brushRightArrow { tipx tipy tailx taily arrowhead } if end } dup 0 4 dict put def /arrowHeight 11 def /arrowWidth 5 def /IdrawDict 51 dict def IdrawDict begin /reencodeISO { dup dup findfont dup length dict begin { 1 index /FID ne { def }{ pop pop } ifelse } forall /Encoding ISOLatin1Encoding def currentdict end definefont } def /ISOLatin1Encoding [ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright /parenleft/parenright/asterisk/plus/comma/minus/period/slash /zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon /less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N /O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright /asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m /n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve /dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut /ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot /hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine /guillemotright/onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute /Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis /aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex /otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis /yacute/thorn/ydieresis ] def /Helvetica-Bold reencodeISO def /none null def /numGraphicParameters 17 def /stringLimit 65535 def /Begin { save numGraphicParameters dict begin } def /End { end restore } def /SetB { dup type /nulltype eq { pop false /brushRightArrow idef false /brushLeftArrow idef true /brushNone idef } { /brushDashOffset idef /brushDashArray idef 0 ne /brushRightArrow idef 0 ne /brushLeftArrow idef /brushWidth idef false /brushNone idef } ifelse } def /SetCFg { /fgblue idef /fggreen idef /fgred idef } def /SetCBg { /bgblue idef /bggreen idef /bgred idef } def /SetF { /printSize idef /printFont idef } def /SetP { dup type /nulltype eq { pop true /patternNone idef } { dup -1 eq { /patternGrayLevel idef /patternString idef } { /patternGrayLevel idef } ifelse false /patternNone idef } ifelse } def /BSpl { 0 begin storexyn newpath n 1 gt { 0 0 0 0 0 0 1 1 true subspline n 2 gt { 0 0 0 0 1 1 2 2 false subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline } if n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Circ { newpath 0 360 arc patternNone not { ifill } if brushNone not { istroke } if } def /CBSpl { 0 begin dup 2 gt { storexyn newpath n 1 sub dup 0 0 1 1 2 2 true subspline 1 1 n 3 sub { /i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline } for n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline n 2 sub dup n 1 sub dup 0 0 1 1 false subspline patternNone not { ifill } if brushNone not { istroke } if } { Poly } ifelse end } dup 0 4 dict put def /Elli { 0 begin newpath 4 2 roll translate scale 0 0 1 0 360 arc patternNone not { ifill } if brushNone not { istroke } if end } dup 0 1 dict put def /Line { 0 begin 2 storexyn newpath x 0 get y 0 get moveto x 1 get y 1 get lineto brushNone not { istroke } if 0 0 1 1 leftarrow 0 0 1 1 rightarrow end } dup 0 4 dict put def /MLine { 0 begin storexyn newpath n 1 gt { x 0 get y 0 get moveto 1 1 n 1 sub { /i exch def x i get y i get lineto } for patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if 0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow } if end } dup 0 4 dict put def /Poly { 3 1 roll newpath moveto -1 add { lineto } repeat closepath patternNone not { ifill } if brushNone not { istroke } if } def /Rect { 0 begin /t exch def /r exch def /b exch def /l exch def newpath l b moveto l t lineto r t lineto r b lineto closepath patternNone not { ifill } if brushNone not { istroke } if end } dup 0 4 dict put def /Text { ishow } def /idef { dup where { pop pop pop } { exch def } ifelse } def /ifill { 0 begin gsave patternGrayLevel -1 ne { fgred bgred fgred sub patternGrayLevel mul add fggreen bggreen fggreen sub patternGrayLevel mul add fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor eofill } { eoclip originalCTM setmatrix pathbbox /t exch def /r exch def /b exch def /l exch def /w r l sub ceiling cvi def /h t b sub ceiling cvi def /imageByteWidth w 8 div ceiling cvi def /imageHeight h def bgred bggreen bgblue setrgbcolor eofill fgred fggreen fgblue setrgbcolor w 0 gt h 0 gt and { l b translate w h scale w h true [w 0 0 h neg 0 h] { patternproc } imagemask } if } ifelse grestore end } dup 0 8 dict put def /istroke { gsave brushDashOffset -1 eq { [] 0 setdash 1 setgray } { brushDashArray brushDashOffset setdash fgred fggreen fgblue setrgbcolor } ifelse brushWidth setlinewidth originalCTM setmatrix stroke grestore } def /ishow { 0 begin gsave fgred fggreen fgblue setrgbcolor /fontDict printFont printSize scalefont dup setfont def /descender fontDict begin 0 [FontBBox] 1 get FontMatrix end transform exch pop def /vertoffset 1 printSize sub descender sub def { 0 vertoffset moveto show /vertoffset vertoffset printSize sub def } forall grestore end } dup 0 3 dict put def /patternproc { 0 begin /patternByteLength patternString length def /patternHeight patternByteLength 8 mul sqrt cvi def /patternWidth patternHeight def /patternByteWidth patternWidth 8 idiv def /imageByteMaxLength imageByteWidth imageHeight mul stringLimit patternByteWidth sub min def /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv patternHeight mul patternHeight max def /imageHeight imageHeight imageMaxHeight sub store /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def 0 1 imageMaxHeight 1 sub { /y exch def /patternRow y patternByteWidth mul patternByteLength mod def /patternRowString patternString patternRow patternByteWidth getinterval def /imageRow y imageByteWidth mul def 0 patternByteWidth imageByteWidth 1 sub { /x exch def imageString imageRow x add patternRowString putinterval } for } for imageString end } dup 0 12 dict put def /min { dup 3 2 roll dup 4 3 roll lt { exch } if pop } def /max { dup 3 2 roll dup 4 3 roll gt { exch } if pop } def /midpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 x1 add 2 div y0 y1 add 2 div end } dup 0 4 dict put def /thirdpoint { 0 begin /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 2 mul x1 add 3 div y0 2 mul y1 add 3 div end } dup 0 4 dict put def /subspline { 0 begin /movetoNeeded exch def y exch get /y3 exch def x exch get /x3 exch def y exch get /y2 exch def x exch get /x2 exch def y exch get /y1 exch def x exch get /x1 exch def y exch get /y0 exch def x exch get /x0 exch def x1 y1 x2 y2 thirdpoint /p1y exch def /p1x exch def x2 y2 x1 y1 thirdpoint /p2y exch def /p2x exch def x1 y1 x0 y0 thirdpoint p1x p1y midpoint /p0y exch def /p0x exch def x2 y2 x3 y3 thirdpoint p2x p2y midpoint /p3y exch def /p3x exch def movetoNeeded { p0x p0y moveto } if p1x p1y p2x p2y p3x p3y curveto end } dup 0 17 dict put def /storexyn { /n exch def /y n array def /x n array def n 1 sub -1 0 { /i exch def y i 3 2 roll put x i 3 2 roll put } for } def /SSten { fgred fggreen fgblue setrgbcolor dup true exch 1 0 0 -1 0 6 -1 roll matrix astore } def /FSten { dup 3 -1 roll dup 4 1 roll exch newpath 0 0 moveto dup 0 exch lineto exch dup 3 1 roll exch lineto 0 lineto closepath bgred bggreen bgblue setrgbcolor eofill SSten } def /Rast { exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore } def %I Idraw 10 Grid 8 8 Begin %I b u %I cfg u %I cbg u %I f u %I p u %I t [ 0.757382 0 0 0.757382 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1 0 0 1 346 706 ] concat %I [ (cd) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1 0 0 1 306 634 ] concat %I [ (flatten_hierarchy) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1 0 0 1 478 643 ] concat %I [ (print_network_stats) (print_network) (test_network_acyclic) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1 0 0 1 321 573 ] concat %I [ (static_order) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1 0 0 1 291 498 ] concat %I [ (build_partition_mdds) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1 0 0 1 495 572 ] concat %I [ (write_order) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1 0 0 1 188 580 ] concat %I [ (init_verify) ] Text End Begin %I Rect %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 210 258 ] concat %I 264 289 410 322 Rect End Begin %I Rect %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 209 260 ] concat %I 264 182 409 271 Rect End Begin %I Rect %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.986667 0 0 1.3125 214.48 201.271 ] concat %I 262 148 408 176 Rect End Begin %I Rect %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 216 255 ] concat %I 258 84 407 115 Rect End Begin %I Rect %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 211 261 ] concat %I 262 397 409 464 Rect End Begin %I Rect %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 213 260 ] concat %I 260 335 410 389 Rect End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 196 265 ] concat %I 158 435 46 16 Elli End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 201 256 ] concat %I 160 373 80 20 Elli End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 193 258 ] concat %I 167 305 56 20 Elli End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 198 249 ] concat %I 166 241 80 27 Elli End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 0.915692 0 0 2.55203 203.748 12.0202 ] concat %I 168 143 76 14 Elli End Begin %I Rect %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 176 257 ] concat %I 6 298 86 333 Rect End Begin %I Line %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 130 258 ] concat %I 225 352 225 324 Line %I 1 End Begin %I Line %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 130 258 ] concat %I 226 205 226 156 Line %I 1 End Begin %I MLine %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 130 258 ] concat %I 3 223 402 88 402 88 332 3 MLine %I 1 End Begin %I Line %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 130 258 ] concat %I 225 425 225 389 Line %I 1 End Begin %I Elli %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1.34209 0 0 0.932851 48.0848 294.187 ] concat %I 227 503 48 20 Elli End Begin %I Line %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 127 258 ] concat %I 228 482 228 457 Line %I 1 End Begin %I Line %I b 65535 2 1 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 130 258 ] concat %I 271 441 342 441 Line %I 1 End Begin %I Line %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 130 258 ] concat %I 311 371 340 371 Line %I 1 End Begin %I Line %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 130 258 ] concat %I 286 306 342 306 Line %I 1 End Begin %I Line %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 130 258 ] concat %I 314 232 340 232 Line %I 1 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1 0 0 1 484 718 ] concat %I [ (ls) (pwd) (write_blif\( _mv\)) (read_blif\( _mv\) -i) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1 0 0 1 487 521 ] concat %I [ (simulate) (compute_reach) (comb_verify) (seq_verify) (print_img_info) ] Text End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1 0 0 1 304 769 ] concat %I [ (read_blif \(_mv\)) ] Text End Begin %I Line %I b 65535 2 1 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 195 258 ] concat %I 221 503 277 468 Line %I 1 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1 0 0 1 302 399 ] concat %I [ (model_check) (lang_empty) (check_invariance) ] Text End Begin %I Line %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 -10 262 ] concat %I 137 113 297 113 Line %I 1 End Begin %I Line %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 -10 262 ] concat %I 365 171 137 171 Line %I 1 End Begin %I Line %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 -10 262 ] concat %I 365 270 135 270 Line %I 1 End Begin %I Line %I b 65535 2 1 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 -10 262 ] concat %I 430 134 482 157 Line %I 1 End Begin %I Line %I b 65535 2 1 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 -10 262 ] concat %I 433 101 483 91 Line %I 1 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1 0 0 1 488 427 ] concat %I [ (read_fairness) (print_fairness) () () () (reset_fairness) ] Text End Begin %I Line %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 -11 258 ] concat %I 136 419 365 419 Line %I 1 End Begin %I Line %I b 65535 2 0 0 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 -10 262 ] concat %I 135 414 136 113 Line %I 1 End Begin %I MLine %I b 65520 2 0 0 [12 4] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 -10 262 ] concat %I 6 107 513 312 425 471 405 473 393 669 392 669 393 6 MLine %I 1 End Begin %I Text %I cfg Black 0 0 0 SetCFg %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* Helvetica-Bold 14 SetF %I t [ 1 0 0 1 140 731 ] concat %I [ (VIS_V) ] Text End Begin %I MLine %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 -10 262 ] concat %I 3 227 293 227 194 367 194 3 MLine %I 1 End Begin %I Line %I b 65535 2 0 1 [] 0 SetB %I cfg Black 0 0 0 SetCFg %I cbg White 1 1 1 SetCBg none SetP %I p n %I t [ 1 0 0 1 -10 262 ] concat %I 367 280 367 256 Line %I 1 End End %I eop showpage end %%EndDocument endTexFig 485 2376 a Fq(Figure)h(A.1:)17 b(A)11 b(Flo)o(w)g(Chart)h(of)f (Commands)g(in)g(VIS.)26 2526 y(1.)23 b(alias:)16 b(pro)o(vide)11 b(an)g(alias)h(for)f(a)h(command)26 2618 y(2.)23 b(b)o(uild)p 180 2618 14 2 v 15 w(partition)p 351 2618 V 15 w(mdds:)16 b(b)o(uild)10 b(a)i(partition)e(of)h(MDDs)g(for)h(the)f(current)h (network)26 2711 y(3.)23 b(cd:)16 b(change)c(the)f(current)h(node)906 2835 y(41)p eop %%Page: 42 43 42 42 bop 26 11 a Fq(4.)23 b(check)p 192 11 14 2 v 17 w(in)n(v)o(ariant:)15 b(checks)d(all)f(states)g(reachable)h(in)f (\257attened)h(network)e(satisfy)h(speci\256ed)h(in)n(v)o(ariants)26 104 y(5.)23 b(comb)p 188 104 V 16 w(v)o(erify:)16 b(v)o(eri\256es)c (the)g(combinational)d(equi)o(v)o(alence)j(of)f(two)f(networks)26 197 y(6.)23 b(compute)p 244 197 V 15 w(reach:)18 b(compute)10 b(the)h(set)h(of)f(reachable)h(states)f(of)h(the)f(FSM)26 291 y(7.)23 b(dynamic)p 244 291 V 15 w(v)o(ar)p 316 291 V 17 w(ordering:)16 b(control)11 b(the)g(application)f(of)i(dynamic)e (v)o(ariable)i(ordering)26 384 y(8.)23 b(echo:)16 b(merely)11 b(echoes)h(the)f(ar)o(guments)26 477 y(9.)23 b(\257atten)p 200 477 V 16 w(hierarchy:)17 b(create)12 b(a)g(\257attened)g(network)3 570 y(10.)23 b(help:)16 b(pro)o(vide)11 b(on-line)g(information)f(on)h (commands)3 663 y(11.)23 b(history:)15 b(a)d(UNIX-like)e(history)h (mechanism)f(inside)g(the)i(VIS)g(shell)3 756 y(12.)23 b(init)p 148 756 V 15 w(v)o(erify:)17 b(create)12 b(and)f(initialize)g (a)g(\257attened)h(network)f(for)g(v)o(eri\256cation)3 849 y(13.)23 b(lang)p 165 849 V 16 w(empty:)15 b(performs)c(BDD)h (based)g(check)g(of)f(language)g(emptiness)f(under)i(Buchi)f(fairness)3 942 y(14.)23 b(ls:)15 b(list)c(all)g(the)g(child)g(nodes)g(at)g(the)g (current)h(node)3 1035 y(15.)23 b(model)p 201 1035 V 15 w(check:)17 b(performs)11 b(BDD)h(based)g(fair)f(CTL)h(model)e (checking)h(on)g(a)h(network)3 1128 y(16.)23 b(print)p 173 1128 V 15 w(bdd)p 257 1128 V 16 w(stats:)16 b(print)10 b(the)i(BDD)f(statistics)f(for)i(the)f(\257attened)h(network)3 1221 y(17.)23 b(print)p 173 1221 V 15 w(fairness:)16 b(print)11 b(the)g(fairness)g(constraints)f(of)i(the)f(\257attened)h (network)3 1314 y(18.)23 b(print)p 173 1314 V 15 w(hierarchy)p 360 1314 V 17 w(stats:)15 b(print)c(the)g(statistics)f(of)i(the)f (current)g(node)3 1408 y(19.)23 b(print)p 173 1408 V 15 w(img)p 260 1408 V 16 w(info:)16 b(print)10 b(information)g(about)h (the)h(image)f(method)f(currently)h(in)g(use)3 1501 y(20.)23 b(print)p 173 1501 V 15 w(io:)16 b(print)11 b(the)g(names)g(of)h (inputs/outputs)c(in)j(the)g(current)h(node)3 1594 y(21.)23 b(print)p 173 1594 V 15 w(latches:)16 b(print)11 b(the)g(names)g(of)h (latches)f(in)g(the)g(current)h(node)3 1687 y(22.)23 b(print)p 173 1687 V 15 w(models:)16 b(list)10 b(all)h(the)g(models)f (and)i(their)f(statistics)3 1780 y(23.)23 b(print)p 173 1780 V 15 w(network:)16 b(print)11 b(the)g(\257attened)g(network)3 1873 y(24.)23 b(print)p 173 1873 V 15 w(network)p 338 1873 V 16 w(stats:)15 b(print)c(statistics)f(about)h(the)g(\257attened) h(network)3 1966 y(25.)23 b(print)p 173 1966 V 15 w(partition:)15 b(write)d(a)f(\256le)h(in)f(the)g("dot")f(format)h(describing)g(the)g (partition)f(graph)3 2059 y(26.)23 b(print)p 173 2059 V 15 w(partition)p 344 2059 V 16 w(stats:)15 b(print)c(statistics)e (about)i(the)h(partition)e(graph)3 2152 y(27.)23 b(pwd:)16 b(print)10 b(out)h(the)g(full)g(path)g(of)h(the)f(current)h(node)f (from)g(the)g(root)g(node)3 2245 y(28.)23 b(quit:)15 b(e)o(xit)c(VIS)3 2338 y(29.)23 b(read)p 164 2338 V 17 w(blif:)15 b(read)d(a)g(blif)f(\256le)3 2431 y(30.)23 b(read)p 164 2431 V 17 w(blif)p 245 2431 V 16 w(mv:)15 b(read)d(a)g(blif-mv)e(\256le)3 2525 y(31.)23 b(read)p 164 2525 V 17 w(fairness:)16 b(read)c(a)f(set)g(of)h(fairness)f (constraints)3 2618 y(32.)23 b(read)p 164 2618 V 17 w(v)o(erilog:)16 b(read)c(a)f(v)o(erilog)g(\256le)3 2711 y(33.)23 b(reset)p 172 2711 V 16 w(fairness:)16 b(reset)c(the)f(fairness)g(constraints)906 2835 y(42)p eop %%Page: 43 44 43 43 bop 3 11 a Fq(34.)23 b(seq)p 147 11 14 2 v 16 w(v)o(erify:)17 b(v)o(eri\256es)12 b(the)f(sequential)g(equi)o(v)o(alence)g(of)g(nodes) g(in)g(two)g(networks)3 105 y(35.)23 b(set:)16 b(set)11 b(an)g(en)n(vironment)g(v)o(ariable)3 199 y(36.)23 b(simulate:)15 b(simulate)10 b(the)h(\257attened)h(network)3 293 y(37.)23 b(source:)16 b(e)o(x)o(ecute)d(commands)d(from)h(a)h(\256le)3 387 y(38.)23 b(static)p 183 387 V 16 w(order:)16 b(order)c(the)f(MDD)g (v)o(ariables)g(of)h(the)f(\257attened)h(network)3 480 y(39.)23 b(test)p 150 480 V 16 w(det)p 222 480 V 16 w(and)p 304 480 V 16 w(comp)p 422 480 V 16 w(spec:)16 b(test)11 b(if)h(the)f(outputs)f(are)i(completely)e(speci\256ed)i(and)f (deterministic)3 574 y(40.)23 b(test)p 150 574 V 16 w(network)p 316 574 V 15 w(ac)o(yclic:)17 b(determine)11 b(whether)h(the)f(network) f(is)h(ac)o(yclic)3 668 y(41.)23 b(time:)15 b(pro)o(vide)c(a)h(simple)e (elapsed)i(time)e(v)o(alue)3 762 y(42.)23 b(unalias:)15 b(remo)o(v)o(es)d(the)f(de\256nition)g(of)g(an)h(alias)3 856 y(43.)23 b(unset:)15 b(unset)c(an)h(en)n(vironment)e(v)o(ariable)3 949 y(44.)23 b(usage:)16 b(pro)o(vide)11 b(a)h(dump)e(of)i(process)f (statistics)3 1043 y(45.)23 b(which:)16 b(look)10 b(for)i(a)g(\256le)f (called)h(name)3 1137 y(46.)23 b(write)p 180 1137 V 16 w(blif:)16 b(determinize,)11 b(encode)h(and)f(write)g(an)h(hnode)f(to)g (a)h(blif)e(\256le)3 1231 y(47.)23 b(write)p 180 1231 V 16 w(blif)p 260 1231 V 16 w(mv:)15 b(write)d(a)f(blif-mv)g(\256le)3 1325 y(48.)23 b(write)p 180 1325 V 16 w(order:)17 b(write)11 b(the)g(current)h(order)g(of)f(the)g(MDD)g(v)o(ariables)g(of)h(the)f (\257attened)h(network)906 2835 y(43)p eop %%Page: 44 45 44 44 bop -31 343 a Fs(Bibliograph)n(y)15 566 y Fq([1])23 b(D.E.)c(Thomas,)g(P)-5 b(.R.)20 b(Moorby)m(.)34 b(The)18 b(V)-5 b(erilog)17 b(Hardware)i(Description)e(Language.)35 b(Kluwer)18 b(Academic)91 622 y(Publishers,)11 b(No)o(well,)g (Massachusetts,)g(1991.)15 716 y([2])23 b(S.-T)m(.)12 b(Cheng.)17 b(Compiling)10 b(V)-5 b(erilog)11 b(into)f(automata.)17 b(T)m(ech.)12 b(Rep.)g(UCB/ERL)g(M94/37,)f(May)g(1994.)15 810 y([3])23 b(F)l(.)15 b(Balarin,)g(and)f(R.)h(Brayton,)g(and)f(S-T)m (.)h(Cheng,)g(and)f(D.)g(Kirkpatrick,)h(and)f(A.)g(Sangio)o(v)o(anni-V) m(incentelli.)91 866 y(A)i(Methodology)f(for)h(F)o(ormal)h(V)-5 b(eri\256cation)16 b(of)h(Real-T)n(ime)g(Systems.)29 b(T)m(ech.)17 b(Rep.)g(UCB/ERL)g(M95/11,)91 923 y(February)12 b(1995.)15 1017 y([4])23 b(E.M.)10 b(Sento)o(vich)g(et)h(al.)j(SIS:)d (a)g(system)e(for)h(sequential)f(circuit)h(synthesis.)j(T)m(ech.)e (Rep.)g(M92/41,)f(May)f(1992.)15 1111 y([5])23 b(C.)12 b(Mead,)g(L.)g(Conway)m(.)k(Introduction)10 b(to)h(VLSI)h(systems.)k (Addison-W)l(esle)o(y)m(,)11 b(1980.)15 1204 y([6])23 b(R.)9 b(K.)g(Brayton)g(et)f(al.)k(HSIS:)d(A)f(BDD)h(based)g(system)e (for)i(formal)f(v)o(eri\256cation.)k(Proc.)e(of)e(Design)g(Automation) 91 1261 y(Conference,)13 b(1994.)15 1355 y([7])23 b(E.)7 b(Clarke,)i(and)e(O.)g(Grumber)o(g,)h(and)f(K.)g(McMillan,)g(and)g(X.)g (Zhao.)j(Ef)o(\256cient)d(generation)g(of)g(countere)o(xamples)91 1411 y(and)k(witnesses)g(in)g(symbolic)e(model)i(checking.)17 b(Proc.)12 b(of)g(Design)e(Automation)g(Conference,)j(1995.)906 2835 y(44)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF