source: vis_dev/vis-2.3/doc/vis_user.ps @ 86

Last change on this file since 86 was 14, checked in by cecile, 13 years ago

vis2.3

File size: 240.3 KB
Line 
1%!PS-Adobe-2.0
2%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software
3%%Title: vis_user.dvi
4%%Pages: 45
5%%PageOrder: Ascend
6%%BoundingBox: 0 0 612 792
7%%DocumentFonts: Times-Roman Times-Bold Courier Times-Italic
8%%EndComments
9%DVIPSCommandLine: dvips vis_user.dvi -o vis_user.ps
10%DVIPSParameters: dpi=300, comments removed
11%DVIPSSource:  TeX output 1996.04.17:1030
12%%BeginProcSet: tex.pro
13/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
14/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
15mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
16ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
17isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
18hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
19TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
20forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
21/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
22/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{
23/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
24string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
25end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
26/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
27N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
28length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
29128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
30get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
31dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
32/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
33/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
340 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
35setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
36.1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}
37if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
38length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
39cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
400 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
41add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage
42userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
43known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
44/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
4565781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
460]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
47{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
48getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
49ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
50RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
51false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
52round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
53rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
54{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
55B /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{
564 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{
57p 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
58a}B /bos{/SS save N}B /eos{SS restore}B end
59%%EndProcSet
60%%BeginProcSet: texps.pro
61TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2
62index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
63exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
64exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub
65dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
66ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict
67end definefont 3 -1 roll makefont /setfont load]cvx def}def
68/ObliqueSlant{dup sin S cos div neg}B /SlantFont{4 index mul add}def
69/ExtendFont{3 -1 roll mul exch}def /ReEncodeFont{/Encoding exch def}def
70end
71%%EndProcSet
72%%BeginProcSet: special.pro
73TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N
74/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen
75false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B
76/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit
77div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{
78/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{
7910 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B
80/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale
81true def end /@MacSetUp{userdict /md known{userdict /md get type
82/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup
83length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{}
84N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath
85clippath mark{transform{itransform moveto}}{transform{itransform lineto}
86}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{
87itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{
88closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39
890 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N
90/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1
91scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get
92ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
93not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0
94TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR
95pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1
96-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg
97TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg
98sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr
990 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add
1002 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp
101{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72
102div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray}
103N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict
104maxlength dict begin /magscale true def normalscale currentpoint TR
105/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
106/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx
107psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy
108scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR
109/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{
110psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
111roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
112moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict
113begin /SpecialSave save N gsave normalscale currentpoint TR
114@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial
115{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
116closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
117sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
118}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
119CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
120lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath
121}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{
122end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin}
123N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{
124/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX
125SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X
126/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad
127yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end
128%%EndProcSet
129TeXDict begin 40258437 52099154 1000 300 300 (vis_user.dvi)
130@start /Fa 80[19 53[17 4[10 1[15 3[19 4[10 19 2[17 1[17
13119 19 51[12 45[{}12 37.500000 /Times-Italic rf /Fb 4
13262 df<0040008001000300060004000C0018001800380030003000700060006000600060
13300E000E000E000E000E000E000E000E000E000E000E000E0006000600060006000700030
1340030003800180018000C000400060003000100008000400A2E7BA112>40
135D<8000400020003000180008000C00060006000700030003000380018001800180018001
136C001C001C001C001C001C001C001C001C001C001C001C001800180018001800380030003
137000700060006000C000800180030002000400080000A2E7EA112>I<0003000000030000
138000300000003000000030000000300000003000000030000000300000003000000030000
13900030000000300000003000000030000FFFFFFFCFFFFFFFC000300000003000000030000
140000300000003000000030000000300000003000000030000000300000003000000030000
1410003000000030000000300001E207E9A23>43 D<7FFFFFF8FFFFFFFC0000000000000000
142000000000000000000000000000000000000000000000000FFFFFFFC7FFFFFF81E0C7E90
14323>61 D E /Fc 9 113 df<000200000200000400000400000400000400000800000800
14400080000080000FE000391800E10C0181060382070702070602070E02070E04070E04060
145E040E0E041C0608180308700189C0007F000010000010000010000010000020000020000
14602000014217F9917>30 D<00010000010000020000020000020000020000040000040000
14704000004003808304C08384E08388E08189C10189C10181C101038101038201038202070
14820203020403840801841000E460003F80000800000800000800000800001000001000001
149000015217E9919>32 D<000010000000300000007000000070000000F8000000B8000001
1503800000238000002380000043800000C38000008380000103C0000101C0000201C000040
1511C00007FFC0000801C0000801C0001001C0002001C0002000E0004000E000C000E001C00
1520E00FF00FFC01A1A7F991D>65 D<03FFFFC0007001C0007000C00070004000E0004000E0
153004000E0004000E0004001C0200001C0200001C0200001C0600003FFC0000380C0000380
154400003804000070080000700010007000100070002000E0002000E0006000E0004000E00
1550C001C003800FFFFF8001A1A7E991C>69 D<03FFFFC0007001C0007000C00070004000E0
156004000E0004000E0004000E0004001C0200001C0200001C0200001C0600003FFC0000380
157C0000380400003804000070080000700000007000000070000000E0000000E0000000E00
15800000E0000001E000000FFE000001A1A7E9919>I<0007E040003C18C000E005C001C003
159C003800180070001800E0001801C0001803C000100380001007800000078000000F00000
16000F0000000F0000000F001FF80F0001C00F0001C00F0001C00F0001C0070003800300038
16100380038001C0078000703900001FC10001A1A7E991E>I<7FE03FC00E000E000E000400
1620E0004001C0008001C0008001C0008001C00080038001000380010003800100038001000
16370002000700020007000200070002000E0004000E0004000E0004000E0008000E0008000
164E001000060020000300400001818000007E000001A1A7E991A>85
165D<01FF01FE003C00F0003C0040001C0080001C0100000E0200000E0400000F0800000710
166000007A0000003C0000003C0000001C0000003C0000007E0000004E0000008F000001070
1670000207800004038000080380001001C0002001C0004001E001E001E00FF007FC01F1A7F
1689920>88 D<07078005984009E06009C07009C03009C07003807003807003807003806007
16900E00700C00701C00703800E86000E7C000E00000E00001C00001C00001C00001C0000FF
17000001417828F13>112 D E /Fd 60[20 69[20 20 20 20 20 20
17120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
17220 20 20 20 20 20 20 1[20 1[20 1[20 1[20 20 20 20 20
17320 1[20 20 20 20 20 2[20 20 20 20 20 20 20 20 20 20 20
17420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
17520 20 20 20 20 20 20 1[20 20 20 20 33[{}86 33.333332
176/Courier rf /Fe 169[22 8[27 18 76[{}3 29.999987 /Times-Roman
177rf /Ff 69[17 10[21 21 3[17 47[17 19 19 27 19 19 10 15
17812 19 19 19 19 29 10 19 1[10 19 19 12 17 19 17 19 17
1793[12 1[12 3[35 27 1[23 21 3[27 1[33 23 2[12 2[21 2[25
18025 27 13[19 19 3[9 12 9 2[12 12 40[{}50 37.500000 /Times-Roman
181rf /Fg 204[12 12 12 49[{}3 25.000000 /Times-Roman rf
182/Fh 169[34 8[41 28 76[{}3 46.666649 /Times-Roman rf /Fi
18380[23 23 52[20 20 30 20 23 13 18 18 23 23 23 23 33 13
18420 1[13 23 23 13 20 23 20 23 23 6[25 3[28 2[23 28 1[28
1851[30 4[15 33 1[28 28 1[30 4[31 1[31 13[11 15 11 44[{}42
18645.833332 /Times-Italic rf /Fj 7 95 df<03F0000FFC001FFE003FFF007FFF807F
187FF80FFFFC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC07FFF807FFF803FFF001FFE000FFC0003
188F00012127E9317>15 D<003FFFC000FFFFC003C00000070000000C000000180000003000
1890000300000006000000060000000C0000000C0000000C0000000C0000000C0000000C000
1900000C000000060000000600000003000000030000000180000000C0000000700000003C0
191000000FFFFC0003FFFC00000000000000000000000000000000000000000000000000000
19200007FFFFFC07FFFFFC01A247C9C23>18 D<000000060000000006000000000600000000
193030000000003000000000380000000018000000000C00000000060000000007000000000
19418FFFFFFFFFFFFFFFFFFFF00000000180000000070000000006000000000C00000000180
19500000003800000000300000000030000000006000000000600000000060028187E962D>
19633 D<FFFFFF80FFFFFF8000000180000001800000018000000180000001800000018000
197000180000001800000018000000180190C7E8F1E>58 D<00020000060003F600061C000C
1980C00180E00300F00301B00701B80601980603180603180E031C0E031C0E061C0E061C0E0
19961C0E061C0E0C1C0E0C1C0E0C1C0E181C0E181C0E181C0E181C0E301C063018063018073
20003807603803603003603001C06000C0C000E18000FF00018000018000018000012277EA2
20117>I<00FF800003FFE0000F0078001C001C00300006006000030060000300C0000180C0
202000180C0000180C0000180C0000180C0000180C0000180C0000180C0000180C0000180C0
203000180C0000180C0000180C0000180C0000180C0000180C0000180C0000180C0000180C0
20400018040000080191C7E9A1E>92 D<00080000001C0000001C0000003600000036000000
205360000006300000063000000C1800000C180000180C0000180C000030060000300600003
20600600006003000060030000C0018000C00180018000C0018000C00300006003000060030
2070006006000030060000300C0000180C0000080191C7E9A1E>94 D
208E /Fk 81[28 52[25 1[36 25 28 17 19 22 1[28 25 28 41 14
20928 1[14 28 25 17 22 28 22 28 25 10[36 1[33 28 36 1[30
21039 36 47 33 2[19 2[30 1[36 36 33 36 6[17 4[25 25 25 25
21125 2[12 17 45[{}46 50.000000 /Times-Bold rf /Fl 81[32
21252[29 29 42 29 32 19 23 26 32 32 29 32 48 16 32 1[16
21332 29 19 26 32 26 32 29 9[58 42 1[39 32 42 1[36 45 42
21455 39 2[23 45 1[36 39 42 42 39 42 1[29 4[19 29 29 29
21529 29 29 29 29 29 2[15 19 45[{}56 58.333336 /Times-Bold
216rf /Fm 134[27 27 27 27 27 27 27 27 1[27 27 27 27 27 27
2171[27 27 27 27 27 27 27 27 27 1[27 1[27 1[27 1[27 4[27
21827 27 2[27 27 1[27 2[27 27 27 27 27 27 27 27 27 2[27
21927 27 27 27 8[27 27 27 27 27 27 1[27 27 27 3[27 2[27
22033[{}58 45.833332 /Courier rf /Fn 135[42 3[28 1[37 1[46
2211[46 4[23 46 2[37 46 2[42 29[60 1[60 11[42 42 42 42 42
22249[{}17 83.333336 /Times-Bold rf /Fo 169[26 8[32 22 76[{}3
22336.666618 /Times-Roman rf /Fp 41 122 df<00004000004000008000008000008000
2240080000100000100000100000100000200000200001FC000E27003841806040C0C040E1C
2250406380807300807700807700807E0100EE0100EE0100CE0101C60203870203030206018
22621C00E470003F80000400000400000800000800000800000800001000001000001000018
227297E9F1B>30 D<0000100000001000000010000000200000002000000020000000200000
228004000000040000000400000004000000080000F008180118083C0218083E021C101E041
229C100E043810060838100400702004007020040070200400E0200800E0400800E0401000E
2300401000E0402000E080400060808000708300001C8C000007F0000001000000010000000
2311000000020000000200000002000000020000000400000004000001B297E9F1E>32
232D<04000180080003C0100003E0100001E0200000E0200000E02000004040040040400C00
23340400C0040800C008080080080C0080180C0180300C0380600E07C0E00FFEFFC007FCFF8
234003F87F0001E03C0001B1480931C>I<70F8F8F87005057C840D>58
235D<001000001000001000001000003800003800003800003800E0380E3FBBF80FFFE003FF
2368000FE00007C0000FE0001EF0001C7000383800301800600C00400400800201716809517
237>63 D<000002000000060000000E0000000E0000001E0000001F0000002F0000006F0000
238004F0000008F0000008F0000010F0000030F0000020F0000040F8000040F800008078000
239180780001007800020078000200780007FFF800080078000800780010007C0010003C002
2400003C0040003C0040003C00C0003C03C0007C0FF003FFC1E207E9F22>65
241D<01FFFFE000001E003800001E000E00001E000700001E000700003C000380003C000380
242003C0001C0003C0001C000780001C000780001C000780001C000780001C000F00003C000
243F00003C000F00003C000F00003C001E000078001E000078001E000070001E0000F0003C0
244000E0003C0001E0003C0001C0003C00038000780007000078000E000078001C000078007
24500000F001C0000FFFFF00000221F7E9E26>68 D<01FFFFFF80001E000F00001E00030000
2461E000300001E000100003C000100003C000100003C000100003C00010000780202000078
2470200000078020000007806000000F00C000000FFFC000000F00C000000F00C000001E008
248000001E008000001E008000001E000040003C000080003C000080003C000100003C00010
24900078000200007800060000780004000078001C0000F0007C000FFFFFF8000211F7E9E22
250>I<01FFFFFF001E001E001E0006001E0006001E0002003C0002003C0002003C0002003C
25100020078000400780200007802000078020000F0040000F00C0000FFFC0000F00C0001E0
252080001E0080001E0080001E0080003C0000003C0000003C0000003C00000078000000780
253000007800000078000000F800000FFFC0000201F7E9E1D>I<00007F00800003C0C18000
2540E00230000380017000070000F0000E0000F0001C0000600038000060007000006000F00
2550006000E000004001E000004003C000000003C0000000078000000007800000000780000
25600007800000000F000000000F0003FFE00F00000F000F00000F000700001E000700001E0
25700700001E000700001E000380003C000380003C0001C0007C0000E0005C0000700198000
25801C0608000007F80000021217F9F24>I<01FFF800001F0000001E0000001E0000001E00
25900003C0000003C0000003C0000003C00000078000000780000007800000078000000F000
2600000F0000000F0000000F0000001E0000001E0000001E0000001E0004003C0008003C000
2618003C0018003C0010007800300078003000780060007800E000F007C00FFFFFC001A1F7E
2629E1F>76 D<01FF001FF8001F0003C0001F800100001780010000178001000023C0020000
26323C002000021E002000021E002000041F004000040F004000040F0040000407804000080
26478080000807C080000803C080000803C080001001E100001001E100001000F100001000F
265100002000FA000020007A000020007A000020003E000040003C000040003C000040001C0
266000C0001C0001E00008000FFC0008000251F7E9E25>78 D<0000FF00000781C0001C00E0
267003800700070003801C0001C03C0001C0380001E0700000E0F00000E1E00000E1E00000E
2683C00000E3C00000E7800001E7800001E7800001E7800001EF000003CF000003CF0000038
269F0000078F0000070700000F0700001E0780001C078000380380007001C000E001C001C00
2700F0070000381C00000FF00001F217F9F23>I<01FFFF80001E00F0001E0038001E001C00
2711E001C003C001E003C001E003C001E003C001E0078003C0078003C00780078007800F000
272F001C000F0070000FFF80000F00E0001E0070001E0078001E0038001E003C003C0078003
273C0078003C0078003C0078007800F0007800F0207800F0207800F040F800704FFF8030800
2740001F01F207E9E23>82 D<0003F040000C08C0003005800060038000C0038001C0018001
2758001000380010003800100038001000380000003C0000003E0000003FC000001FFC00000
276FFF000007FF800001FF8000001FC0000007C0000003C0000001C0000001C0020001C0020
277001C00200018006000380060003000600070007000E000E8018000C603000081FC00001A
278217E9F1C>I<0FFFFFFC1E03C0381803C0181003C0082003C00820078008600780084007
279800840078008800F0010000F0000000F0000000F0000001E0000001E0000001E0000001E
2800000003C0000003C0000003C0000003C00000078000000780000007800000078000000F0
281000000F0000000F0000000F0000001F000007FFFC0001E1F7F9E1B>I<7FFC07FE07C000
282F00780004007800040078000400F0000800F0000800F0000800F0000801E0001001E0001
283001E0001001E0001003C0002003C0002003C0002003C0002007800040078000400780004
2840078000400F0000800F0000800F0000800F0001000700020007000200070004000380080
28500180300000E0C000003F000001F207D9E1F>I<00FFF01FF8000FC00780000F80060000
286078004000007C008000007C010000003C020000003E040000001E0C0000001F180000001
287F300000000F200000000FC0000000078000000007C000000007C000000007C00000000BE
288000000011E000000021F000000041F0000000C0F000000180F80000010078000002007C0
28900004007C000008003C000010003E000070001E0001F0003F000FFC01FFE00251F7F9E26
290>88 D<00F1800389C00707800E03801C03803C0380380700780700780700780700F00E00
291F00E00F00E00F00E10F01C20F01C20703C20705C40308C400F078014147E9318>97
292D<07803F8007000700070007000E000E000E000E001C001C001CF01D0C3A0E3C0E380F38
2930F700F700F700F700FE01EE01EE01EE01CE03CE038607060E031C01F0010207E9F14>I<
294007C0001C3000700800E07801E07801C07003C0200780000780000780000F00000F00000
295F00000F00000F000007001007002003004001838000FC00011147E9314>I<0000780003
296F80000700000700000700000700000E00000E00000E00000E00001C00001C000F1C00389
297C00707800E03801C03803C0380380700780700780700780700F00E00F00E00F00E00F00E
29810F01C20F01C20703C20705C40308C400F078015207E9F18>I<007C018207010E011C01
2993C013802780C7BF07C00F000F000F000F000700070017002300418380FC010147E9315>
300I<00007C0000CE00019E00039E00030C000700000700000700000700000E00000E00000E
3010000FFF0000E00000E00001C00001C00001C00001C00001C000038000038000038000038
3020000380000700000700000700000700000700000E00000E00000E00000E00000C00001C0
30300318000798000F300006200003C000017297E9F16>I<001E3000713800E0F001C07003
30480700780700700E00F00E00F00E00F00E01E01C01E01C01E01C01E01C01E03801E03800E
30507800E0B8006170001E700000700000700000E00000E00300E00781C00F038006070003F
306C000151D809316>I<01E0000FE00001C00001C00001C00001C000038000038000038000
307038000070000070000071F000761800E80C00F00C00E00E00E00E01C01C01C01C01C01C0
3081C01C0380380380380380380380704700708700E08700E10700610E006206003C016207E
3099F1A>I<00E001E001E000C000000000000000000000000000000E001300238043804380
31043808700070007000E000E001C001C001C20384038403840388019000E000B1F7E9E10>
311I<01E0000FE00001C00001C00001C00001C0000380000380000380000380000700000700
312000701E00706100E08700E10F00E20F00E20601C40001D80001E00001FC0003870003838
31300383800381C20703840703840703840701880E01880600F0014207E9F18>107
314D<01C01FC0038003800380038007000700070007000E000E000E000E001C001C001C001C
3150038003800380038007000700070007100E200E200E200E200640038000A207E9F0E>I<
3161E07C07C00231861860023A032030043C034030043803803804380380380870070070007
31700700700070070070007007007000E00E00E000E00E00E000E00E00E000E00E01C101C01
318C01C201C01C038201C01C038401C01C0184038038018801801800F0024147E9328>I<1E
31907802318C023A06043C0704380704380708700E00700E00700E00700E00E01C00E01C00E
32001C00E03821C03841C07041C07081C03083803101801E017147E931B>I<007C0001C300
3210301800E01C01E01C01C01E03C01E07801E07801E07801E0F003C0F003C0F003C0F00780
322F00700700F00700E0030180018700007C00013147E9316>I<03C1E004621804741C0878
3231C08701E08701E10E01E00E01E00E01E00E01E01C03C01C03C01C03C01C0380380780380
324700380E003C1C0072380071E000700000700000E00000E00000E00000E00001C00001C00
32500FFC000171D819317>I<00F0400388C00705800E03801C03803C038038070078070078
3260700780700F00E00F00E00F00E00F00E00F01C00F01C00703C00705C0030B8000F380000
327380000380000700000700000700000700000E00000E0000FFC00121D7E9314>I<1C1E00
3282621004743804787804707804703008E00000E00000E00000E00001C00001C00001C0000
3291C000038000038000038000038000070000030000011147E9315>I<00FC000303000600
330800C01800C03800C03000E00000F80000FF80007FC0001FE00001F00000700700700F006
33100F00600E004004008002030001FC00011147E9315>I<018001C0038003800380038007
332000700FFF807000E000E000E000E001C001C001C001C0038003800380038107020702070
33340708031001E000D1C7F9B10>I<0F00601180702180E021C0E041C0E04380E08381C007
33401C00701C00701C00E03800E03800E03800E03840E07080C07080C07080E0F1006131003
335E1E016147E931A>I<1E01C02303C02303E04381E04300E04700608700400E00400E0040
3360E00401C00801C00801C00801C01001C01001C02001C04000C04000E180003E00013147E
3379316>I<0F006070118070F02180E0F821C0E07841C0E0384380E0188381C0100701C010
3380701C0100701C0100E0380200E0380200E0380200E0380400E0380400E0380800E078080
339060781000709C20001F07C001D147E9321>I<1E00602300702300E04380E04300E04700
340E08701C00E01C00E01C00E01C01C03801C03801C03801C03801C07001807001C07001C0F
341000C3E0003CE00000E00000E00001C00F01800F03800E07000C0600041C0003F0000141D
3427E9316>121 D E /Fq 55[15 13[20 8[23 1[25 25 3[20 47[20
34323 23 33 23 23 13 18 15 23 23 23 23 36 13 23 13 13 23
34423 15 20 23 20 23 20 3[15 1[15 28 33 33 43 33 33 28 25
34530 1[25 33 33 41 28 33 1[15 33 33 25 28 33 30 30 33 1[20
3461[26 26 13 13 23 23 23 23 23 23 23 23 23 23 13 11 15
34711 1[23 15 15 15 4[19 34[{}82 45.833332 /Times-Roman
348rf /Fr 81[25 52[23 2[23 25 15 18 20 1[25 23 25 38 13
34925 1[13 25 23 15 20 25 20 25 23 10[33 2[25 9[18 2[28
3501[33 33 1[33 8[23 1[23 23 23 23 23 23 49[{}36 45.833332
351/Times-Bold rf /Fs 81[58 52[52 3[58 35 40 46 1[58 52
35258 86 29 2[29 58 52 35 46 58 46 58 52 10[75 2[58 9[40
3532[63 1[75 75 69 66[{}27 104.166664 /Times-Bold rf /Ft
354204[17 17 17 2[8 46[{}4 33.333332 /Times-Roman rf /Fu
355138[29 2[19 1[29 29 6[29 2[26 14[42 1[36 32 9[19 1[42
35620[29 50[{}12 58.333336 /Times-Roman rf /Fv 133[22 25
3571[36 25 25 14 19 17 1[25 25 25 39 14 25 14 14 25 25 17
35822 25 22 25 22 7[36 2[36 36 30 28 33 36 28 1[36 1[30
35936 2[36 36 28 30 1[33 33 36 19[17 12 44[{}44 50.000000
360/Times-Roman rf /Fw 138[42 1[32 28 3[42 1[23 6[37 3[37
36110[60 60 1[46 5[74 3[28 33[28 39[{}13 83.333336 /Times-Roman
362rf end
363%%EndProlog
364%%BeginSetup
365%%Feature: *Resolution 300dpi
366TeXDict begin
367
368%%EndSetup
369%%Page: 0 1
3700 0 bop 609 371 a Fw(VIS)20 b(User')-5 b(s)21 b(Manual)357
371518 y Fv(T)n(iziano)13 b(V)m(illa)124 b(Gitanjali)12
372b(Swamy)123 b(Thomas)13 b(Shiple)748 1091 y Fu(The)h(VIS)h(Group)800
3731224 y Fv(Adnan)d(Aziz)1039 1206 y Ft(1)766 1282 y Fv(Robert)g(Brayton)
3741075 1264 y Ft(1)746 1340 y Fv(Stephen)g(Edwards)1093
3751322 y Ft(1)786 1398 y Fv(Gary)g(Hachtel)1053 1380 y
376Ft(2)797 1456 y Fv(Sunil)g(Khatri)1043 1438 y Ft(1)771
3771515 y Fv(Y)-6 b(uji)13 b(K)o(ukimoto)1069 1496 y Ft(1)763
3781573 y Fv(Abelardo)f(P)o(ardo)1077 1555 y Ft(2)793 1631
379y Fv(Shaz)h(Qadeer)1047 1613 y Ft(1)774 1689 y Fv(Rajee)o(v)g(Ranjan)
3801065 1671 y Ft(1)596 1747 y Fv(Alberto)f(Sangio)o(v)o(anni-V)m
381(incentelli)1245 1729 y Ft(1)762 1805 y Fv(Shaker)f(Sarwary)1079
3821787 y Ft(3)770 1863 y Fv(Thomas)i(Shiple)1071 1845 y
383Ft(1)770 1921 y Fv(F)o(abio)f(Somenzi)1070 1903 y Ft(2)752
3841979 y Fv(Gitanjali)g(Swamy)1089 1961 y Ft(1)790 2038
385y Fv(T)n(iziano)h(V)m(illa)1050 2019 y Ft(1)580 2228
386y(1)598 2246 y Fv(Uni)o(v)o(ersity)f(of)g(California,)g(Berkele)o(y)597
3872286 y Ft(2)616 2304 y Fv(Uni)o(v)o(ersity)g(of)f(Colorado,)i(Boulder)
388609 2342 y Ft(3)628 2360 y Fv(No)o(w)f(at)g(Lattice)h(Semiconductor)p
389eop
390%%Page: 1 2
3911 1 bop -31 343 a Fs(Contents)-31 612 y Fr(1)46 b(Intr)o(oduction)13
392b(to)e(VIS)1444 b(3)38 668 y Fq(1.1)48 b(What)11 b(is)g(VIS)h(?)40
393b Fp(:)22 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
394(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)
395f(:)g(:)h(:)f(:)h(:)69 b Fq(3)38 724 y(1.2)48 b(History)18
396b Fp(:)k(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
397h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
398(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69 b Fq(3)38 781 y(1.3)48
399b(Ov)o(ervie)o(w)11 b(of)h(VIS)20 b Fp(:)j(:)f(:)h(:)f(:)g(:)h(:)f(:)g
400(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)
401h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69 b
402Fq(4)143 837 y(1.3.1)55 b(VIS-v)12 b(Philosophy)33 b
403Fp(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f
404(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69
405b Fq(4)143 894 y(1.3.2)55 b(VIS-s)12 b(Philosophy)38
406b Fp(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f
407(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69
408b Fq(4)-31 996 y Fr(2)46 b(Describing)12 b(Designs)f(f)o(or)g(VIS)1301
409b(6)38 1052 y Fq(2.1)48 b(V)-5 b(erilog)11 b(HDL)22 b
410Fp(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
411(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)
412f(:)g(:)h(:)f(:)h(:)69 b Fq(6)38 1109 y(2.2)48 b Fo(VL)p
413Fq(2)p Fo(MV)p Fq(:)17 b(from)11 b(V)-5 b(erilog)11 b(to)g(BLIF-MV)47
414b Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h
415(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69 b Fq(6)38
4161165 y(2.3)48 b(Features)12 b(of)f(V)-5 b(erilog)11 b(Supported)g(by)g
417Fo(VL)p Fq(2)p Fo(MV)46 b Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
418(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69
419b Fq(7)143 1222 y(2.3.1)55 b(Assignments)19 b Fp(:)k(:)f(:)g(:)h(:)f(:)
420g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g
421(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69
422b Fq(8)143 1278 y(2.3.2)55 b(Nondeterminism)19 b Fp(:)j(:)h(:)f(:)g(:)h
423(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)
424f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69 b Fq(8)143
4251335 y(2.3.3)55 b(Symbolic)10 b(V)-5 b(ariables)43 b
426Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
427(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69
428b Fq(8)38 1391 y(2.4)48 b(Implicit)10 b(vs.)16 b(Explicit)10
429b(Clocking)32 b Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
430(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)
431h(:)69 b Fq(9)38 1448 y(2.5)48 b(V)-5 b(erilog)11 b(for)g
432Fo(VL)p Fq(2)p Fo(MV)p Fq(:)18 b(Hints)10 b(and)h(T)n(raps)27
433b Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h
434(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69 b Fq(9)38
4351504 y(2.6)48 b(BLIF-MV)39 b Fp(:)23 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
436(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
437f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46
438b Fq(12)38 1561 y(2.7)i(BLIF)22 b Fp(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)
439h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
440(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)
44146 b Fq(13)38 1617 y(2.8)i(Nondeterminism)9 b(and)i(Incomplete)g
442(Speci\256cation)i Fp(:)22 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)
443f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(13)38
4441673 y(2.9)i(Example:)15 b(a)d(T)n(raf)o(\256c)h(Light)d(Controller)32
445b Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h
446(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(13)-31
4471776 y Fr(3)g(Intr)o(oduction)13 b(to)e(F)o(ormal)g(V)-5
448b(eri\256cation)1117 b(18)38 1832 y Fq(3.1)48 b(Model)10
449b(Checking)i(of)f(T)m(emporal)g(Logic)27 b Fp(:)22 b(:)h(:)f(:)g(:)h(:)
450f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
451(:)g(:)h(:)f(:)h(:)46 b Fq(18)143 1888 y(3.1.1)55 b(Computation)10
452b(T)n(ree)i(Logic)19 b Fp(:)k(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
453(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)
454h(:)46 b Fq(18)143 1945 y(3.1.2)55 b(Speci\256cation)12
455b(of)f(Properties)h(in)f(CTL)17 b Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f
456(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46
457b Fq(20)143 2001 y(3.1.3)55 b(F)o(airness)12 b(Constraints)27
458b Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
459(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46
460b Fq(21)38 2058 y(3.2)i(Properties)11 b(and)h(F)o(airness)g(Conditions)
461d(of)j(T)n(raf)o(\256c)h(Light)d(Controller)h(in)g(CTL)j
462Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b
463Fq(22)38 2114 y(3.3)i(Language)11 b(Containment)g Fp(:)22
464b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f
465(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46
466b Fq(22)-31 2216 y Fr(4)g(F)o(ormal)10 b(V)-5 b(eri\256cation)13
467b(in)f(VIS)1287 b(24)38 2273 y Fq(4.1)48 b(Representing)11
468b(the)g(System)g(for)h(V)-5 b(eri\256cation)14 b Fp(:)22
469b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
470(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(24)143 2329 y(4.1.1)55
471b(Building)10 b(the)h(Flattened)h(Network)31 b Fp(:)22
472b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
473(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(24)143 2386 y(4.1.2)55
474b(Ordering)21 b Fp(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
475(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)
476g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(25)143 2442 y(4.1.3)55
477b(Computing)10 b(FSM)i(Information)36 b Fp(:)23 b(:)f(:)g(:)h(:)f(:)g
478(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)
479h(:)f(:)h(:)46 b Fq(26)143 2499 y(4.1.4)55 b(Adv)o(anced)11
480b(Ordering)39 b Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
481(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)
482f(:)h(:)46 b Fq(26)38 2555 y(4.2)i(FSM)11 b(T)n(ra)o(v)o(ersal)i(and)e
483(Image)h(Computation)31 b Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
484(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46
485b Fq(28)38 2612 y(4.3)i(Specifying)11 b(F)o(airness)h(Constraints)34
486b Fp(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
487(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46
488b Fq(29)38 2668 y(4.4)i(Language)11 b(Emptiness)20 b
489Fp(:)j(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
490(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)
491h(:)46 b Fq(29)918 2835 y(1)p eop
492%%Page: 2 3
4932 2 bop 38 11 a Fq(4.5)48 b(Model)10 b(Checking)i(Operations)27
494b Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
495(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46
496b Fq(31)143 68 y(4.5.1)55 b(Performing)11 b(Model)g(Checking)k
497Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h
498(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(31)143
499124 y(4.5.2)55 b(Deb)o(ugging)10 b(for)i(Model)f(Checking)27
500b Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
501(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(33)143
502181 y(4.5.3)55 b(Checking)11 b(In)n(v)o(ariants)33 b
503Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
504(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46
505b Fq(34)143 237 y(4.5.4)55 b(Adv)o(anced)11 b(Model)g(Checking:)16
506b(Abstraction)10 b(and)i(Reduction)j Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g
507(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(34)38 294 y(4.6)i(Combinational)10
508b(and)h(Sequential)g(Equi)o(v)o(alence)39 b Fp(:)23 b(:)f(:)g(:)h(:)f
509(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)
510h(:)46 b Fq(36)38 350 y(4.7)i(Simulation)24 b Fp(:)f(:)f(:)g(:)h(:)f(:)
511h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
512(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)
51346 b Fq(36)-31 452 y Fr(5)g(Synthesis)12 b(in)f(VIS)1486
514b(38)38 509 y Fq(5.1)48 b(Writing)10 b(and)h(Reading)h(from)f(SIS)21
515b Fp(:)h(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
516f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46
517b Fq(38)38 565 y(5.2)i(Flo)o(w)11 b(of)g(Operations)g(for)h(Synthesis)
51845 b Fp(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
519(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46
520b Fq(39)38 622 y(5.3)i(Example)10 b(of)i(Synthesis)e(of)i(T)n(raf)o
521(\256c)h(Light)d(Controller)43 b Fp(:)23 b(:)f(:)h(:)f(:)g(:)h(:)f(:)g
522(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46
523b Fq(39)-31 724 y Fr(A)36 b(Commands)11 b(in)h(VIS)1445
524b(41)38 780 y Fq(A.1)38 b(List)10 b(of)i(Commands)e(in)h(VIS)38
525b Fp(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f
526(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46
527b Fq(41)918 2835 y(2)p eop
528%%Page: 3 4
5293 3 bop -31 323 a Fn(Chapter)20 b(1)-31 530 y Fs(Intr)n(oduction)k(to)i
530(VIS)-31 753 y Fq(This)13 b(document)f(introduces)g(VIS)i(\(V)-5
531b(eri\256cation)14 b(Interacting)f(with)f(Synthesis\).)22
532b(W)l(e)14 b(describe)f(what)g(VIS)h(is,)f(what)-31 809
533y(it)e(can)i(do,)f(ho)o(w)f(to)h(write)g(limited)e(V)-5
534b(erilog)11 b(code)h(for)g(its)g(input,)f(its)g(commands,)g(and)h(an)g
535(e)o(xtended)g(e)o(xample)g(for)g(the)-31 866 y(ne)o(w)j(user)m(.)29
536b(F)o(or)16 b(more)f(details,)h(see)g(the)f(VIS)h(home)e(page)43
537b Fm(http://ww)q(w-c)q(ad)q(.ee)q(cs)q(.be)q(rk)q(ele)q(y.)q(edu)q(/)
538-31 922 y(Respep/Re)q(se)q(arc)q(h/)q(vis)q(/do)q(c/)q(pac)q(ka)q(ges)q
539(/i)q(nde)q(x.)q(htm)q(l)p Fq(.)-31 1069 y Fl(1.1)58
540b(What)15 b(is)g(VIS)f(?)-31 1172 y Fq(VIS)g(is)e(a)h(v)o
541(eri\256cation)g(and)g(synthesis)f(system)g(for)h(\256nite-state)f
542(hardware)i(systems,)e(which)h(is)f(being)g(de)o(v)o(eloped)h(at)-31
5431229 y(Berkele)o(y)f(and)g(Boulder)m(.)17 b(It)11 b(impro)o(v)o(es)g
544(upon)g(\256rst)h(generation)f(tools)f(like)g(HSIS)j(and)e(SMV)h(by:)26
5451323 y(1.)23 b(pro)o(viding)10 b(a)i(better)f(programming)f(en)n
546(vironment,)26 1417 y(2.)23 b(pro)o(viding)10 b(some)h(ne)o(w)g
547(capabilities,)g(and)26 1510 y(3.)23 b(impro)o(ving)10
548b(performance)i(in)f(some)g(cases.)-31 1604 y(VIS)i(is)g(di)o(vided)e
549(into)h(three)h(parts:)19 b(a)13 b(common)e(front)i(end)g(for)g
550(reading)f(in)h(a)g(description)e(of)i(a)g(design,)g(v)o(eri\256cation)
551-31 1661 y(\(VIS-v\),)g(and)e(synthesis)f(\(VIS-s\).)-31
5521807 y Fl(1.2)58 b(History)-31 1911 y Fq(Man)o(y)14 b(\256rst)g
553(generation)g(tools)f(for)h(automatic)g(formal)f(v)o(eri\256cation)i
554(were)g(based)f(on)f(two)h(theoretical)f(approaches.)-31
5551967 y(The)f(\256rst)g(is)f(temporal)h(logic)f(model)g(checking,)h
556(where)g(the)g(properties)g(to)f(be)h(checked)g(are)h(e)o(xpressed)f
557(as)g(formulas)-31 2024 y(in)f(a)g(temporal)f(logic,)h(and)f(the)h
558(system)f(is)g(e)o(xpressed)h(as)g(a)g(\256nite)g(state)g(system.)k(In)
559c(particular)n(,)h(Computational)d(T)n(ree)-31 2080 y(Logic)k(\(CTL\))g
560(model)g(checking)g(is)f(a)i(technique)e(pioneered)h(by)g(Clarke)g(and)
561g(Emerson)g(to)f(v)o(erify)i(whether)f(a)g(\256nite)-31
5622137 y(state)j(system)f(satis\256es)g(properties)h(e)o(xpressed)g(as)g
563(formulas)f(in)h(a)g(branching-time)f(temporal)g(logic)g(called)h(CTL.)
564-31 2193 y(SMV)-6 b(,)12 b(a)g(system)e(de)o(v)o(eloped)h(at)h(CMU,)f
565(belongs)g(to)g(this)f(class)h(of)h(tools.)40 2250 y(Certain)h
566(properties)f(are)i(not)e(e)o(xpressible)g(in)h(CTL,)g(b)o(ut)f(the)o
567(y)h(can)g(be)g(e)o(xpressed)g(as)g Fp(!)r Fq(-automata.)21
568b(The)12 b(second)-31 2306 y(approach,)19 b(language)d(containment,)h
569(requires)g(the)g(description)e(of)i(the)f(system)g(and)g(properties)h
570(as)f Fp(!)r Fq(-automata,)-31 2363 y(and)e(v)o(eri\256es)h
571(correctness)f(by)g(checking)f(that)h(the)f(language)h(of)g(the)g
572(system)f(is)g(contained)g(in)h(the)g(language)f(of)h(the)-31
5732419 y(property)m(.)j(Note)10 b(that)g(certain)h(types)f(of)g(CTL)h
574(properties)f(in)n(v)o(olving)f(e)o(xistential)h(quanti\256cation)f
575(are)j(not)d(e)o(xpressible)-31 2476 y(by)i Fp(!)r Fq(-automata.)17
576b(COSP)l(AN,)12 b(a)g(system)e(de)o(v)o(eloped)i(at)f(Bell)h(Labs,)f
577(of)o(fers)h(language)f(containment.)40 2532 y(A)k(combination)g(of)g
578(both)g(approaches)i(is)e(of)o(fered)h(by)g(the)f(HSIS)i([6])f(system,)
579g(which)g(was)f(de)o(v)o(eloped)h(at)f(the)-31 2588 y(Uni)o(v)o(ersity)
580d(of)h(California,)h(Berkele)o(y)m(.)22 b(Our)13 b(e)o(xperience)h
581(with)e(v)o(eri\256cation)i(tools)d(\(in)i(particular)g(HSIS\))h(led)f
582(to)f(the)-31 2645 y(conclusion)i(that)h(sometimes,)g(the)f(simpler)g
583(and)i(more)e(limited)g(the)h(approach,)i(the)e(more)g(ef)o(\256cient)g
584(it)g(can)g(be.)28 b(A)-31 2701 y(number)13 b(of)g(design)f(decisions)g
585(that)g(we)h(made)g(for)g(HSIS)h(made)f(it)f(unacceptably)h(slo)o(w)f
586(for)h(some)g(lar)o(ge)g(e)o(xamples.)918 2835 y(3)p
587eop
588%%Page: 4 5
5894 4 bop -31 11 a Fq(W)n(ith)13 b(these)g(problems)g(in)g(mind,)g(we)h
590(set)f(about)g(writing)g(a)g(tool)g(that)g(was)g(more)g(ef)o
591(\256cient,)i(easily)e(e)o(xtendible,)h(and)-31 68 y(of)o(fered)h(a)g
592(good)f(programming)f(en)n(vironment,)i(in)f(order)h(that)f(it)g(can)h
593(be)f(more)h(easily)f(upgraded)g(in)g(the)h(future)f(as)-31
594124 y(more)d(ef)o(\256cient)h(algorithms)e(are)i(de)o(v)o(eloped.)40
595181 y(VIS)e(also)f(has)g(the)h(capability)e(to)h(interface)h(with)f
596(SIS)h(to)f(optimize)f(logic)h(modules;)g(hence,)i(VIS)f(is)f(an)g
597(inte)o(grated)-31 237 y(system)k(for)i(hierarchical)g(synthesis,)f(as)
598g(well)g(as)h(v)o(eri\256cation.)26 b(W)l(e)15 b(plan)f(to)g(pursue)g
599(research)i(on)e(the)g(interaction)-31 294 y(between)7
600b(v)o(eri\256cation)g(and)g(synthesis)g(in)g(the)g(future;)i(hence)e
601(the)g(name)g(VIS,)g(v)o(e)q(ri\256cation)g(interacting)g(with)g
602(synthesis.)-31 437 y Fl(1.3)58 b(Ov)o(er)o(view)15 b(of)g(VIS)-31
603541 y Fq(Fig.)i(1.1)f(presents)g(of)g(an)g(o)o(v)o(ervie)o(w)h(of)f
604(VIS.)h(VIS)g(has)f(three)h(main)e(parts:)26 b(a)16 b(front-end)g(to)g
605(read)h(and)f(tra)o(v)o(erse)h(a)226 595 y
606 22376157 13873212 0 0 13748387 8617410 startTexFig
607 226 595 a
608%%BeginDocument: vis_block_src_fellows.eps
609/$F2psDict 200 dict def
610$F2psDict begin
611$F2psDict /mtrx matrix put
612/col-1 {} def
613/col0 {0.000 0.000 0.000 srgb} bind def
614/col1 {0.000 0.000 1.000 srgb} bind def
615/col2 {0.000 1.000 0.000 srgb} bind def
616/col3 {0.000 1.000 1.000 srgb} bind def
617/col4 {1.000 0.000 0.000 srgb} bind def
618/col5 {1.000 0.000 1.000 srgb} bind def
619/col6 {1.000 1.000 0.000 srgb} bind def
620/col7 {1.000 1.000 1.000 srgb} bind def
621/col8 {0.000 0.000 0.560 srgb} bind def
622/col9 {0.000 0.000 0.690 srgb} bind def
623/col10 {0.000 0.000 0.820 srgb} bind def
624/col11 {0.530 0.810 1.000 srgb} bind def
625/col12 {0.000 0.560 0.000 srgb} bind def
626/col13 {0.000 0.690 0.000 srgb} bind def
627/col14 {0.000 0.820 0.000 srgb} bind def
628/col15 {0.000 0.560 0.560 srgb} bind def
629/col16 {0.000 0.690 0.690 srgb} bind def
630/col17 {0.000 0.820 0.820 srgb} bind def
631/col18 {0.560 0.000 0.000 srgb} bind def
632/col19 {0.690 0.000 0.000 srgb} bind def
633/col20 {0.820 0.000 0.000 srgb} bind def
634/col21 {0.560 0.000 0.560 srgb} bind def
635/col22 {0.690 0.000 0.690 srgb} bind def
636/col23 {0.820 0.000 0.820 srgb} bind def
637/col24 {0.500 0.190 0.000 srgb} bind def
638/col25 {0.630 0.250 0.000 srgb} bind def
639/col26 {0.750 0.380 0.000 srgb} bind def
640/col27 {1.000 0.500 0.500 srgb} bind def
641/col28 {1.000 0.630 0.630 srgb} bind def
642/col29 {1.000 0.750 0.750 srgb} bind def
643/col30 {1.000 0.880 0.880 srgb} bind def
644/col31 {1.000 0.840 0.000 srgb} bind def
645
646end
647save
648-70.0 244.0 translate
6491 -1 scale
650
651/clp {closepath} bind def
652/ef {eofill} bind def
653/gr {grestore} bind def
654/gs {gsave} bind def
655/l {lineto} bind def
656/m {moveto} bind def
657/n {newpath} bind def
658/s {stroke} bind def
659/slc {setlinecap} bind def
660/slj {setlinejoin} bind def
661/slw {setlinewidth} bind def
662/srgb {setrgbcolor} bind def
663/rot {rotate} bind def
664/sc {scale} bind def
665/tr {translate} bind def
666/tnt {dup dup currentrgbcolor
667  4 -2 roll dup 1 exch sub 3 -1 roll mul add
668  4 -2 roll dup 1 exch sub 3 -1 roll mul add
669  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
670  bind def
671/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
672  4 -2 roll mul srgb} bind def
673 /DrawEllipse {
674        /endangle exch def
675        /startangle exch def
676        /yrad exch def
677        /xrad exch def
678        /y exch def
679        /x exch def
680        /savematrix mtrx currentmatrix def
681        x y tr xrad yrad sc 0 0 1 startangle endangle arc
682        closepath
683        savematrix setmatrix
684        } def
685
686/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
687/$F2psEnd {$F2psEnteredState restore end} def
688
689$F2psBegin
69010 setmiterlimit
691 0.06000 0.06000 sc
6927.500 slw
693% Polyline
694n 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 
695% Ellipse
696n 1385 3393 195 142 0 360 DrawEllipse gs col14 1.00 shd ef gr gs col-1 s gr
697
698% Ellipse
699n 3086 2021 392 120 0 360 DrawEllipse gs col14 1.00 shd ef gr gs col-1 s gr
700
701/Times-Roman findfont 180.00 scalefont setfont
7022858 2071 m
703gs 1 -1 sc (verilog) col-1 show gr
704% Polyline
705n 3074 2141 m 3074 2371 l  gs col-1 s gr 
706n 3104.00 2251.00 m 3074.00 2371.00 l 3044.00 2251.00 l gs col-1 s gr
707% Polyline
708n 1585 3390 m 1795 3390 l  gs col-1 s gr 
709n 1675.00 3360.00 m 1795.00 3390.00 l 1675.00 3420.00 l gs col-1 s gr
710/Times-Roman findfont 150.00 scalefont setfont
7112217 2843 m
712gs 1 -1 sc (-traversal of hierarchy) col-1 show gr
713% Polyline
714n 3160 3003 m 3160 4050 l  gs col-1 s gr 
715% Polyline
716n 1800 3005 m 4575 3005 l  gs col-1 s gr 
717/Times-Roman findfont 180.00 scalefont setfont
7182207 2660 m
719gs 1 -1 sc (Front end) col-1 show gr
720/Times-Roman findfont 180.00 scalefont setfont
7211875 3285 m
722gs 1 -1 sc (Verification) col-1 show gr
723/Times-Roman findfont 150.00 scalefont setfont
7243333 3855 m
725gs 1 -1 sc (-restruct. hierarchy) col-1 show gr
726/Times-Roman findfont 180.00 scalefont setfont
7271910 2370 m
728gs 1 -1 sc (VIS) col-1 show gr
729/Times-Roman findfont 150.00 scalefont setfont
7301917 3447 m
731gs 1 -1 sc (-model checking) col-1 show gr
732/Times-Roman findfont 150.00 scalefont setfont
7331912 3657 m
734gs 1 -1 sc (-equivalence check.) col-1 show gr
735/Times-Roman findfont 150.00 scalefont setfont
7361930 3860 m
737gs 1 -1 sc (-cycle-based simul.) col-1 show gr
738/Times-Roman findfont 180.00 scalefont setfont
7391235 3446 m
740gs 1 -1 sc (CTL) col-1 show gr
741/Times-Roman findfont 180.00 scalefont setfont
7423333 3295 m
743gs 1 -1 sc (Synthesis) col-1 show gr
744/Times-Roman findfont 150.00 scalefont setfont
7453328 3695 m
746gs 1 -1 sc (-state encoding) col-1 show gr
747/Times-Roman findfont 150.00 scalefont setfont
7483333 3495 m
749gs 1 -1 sc (-state minimization) col-1 show gr
750$F2psEnd
751restore
752%%EndDocument
753
754 endTexFig
755 613 1572 a Fq(Figure)11 b(1.1:)17 b(Block)11 b(diagram)g(of)h(VIS.)-31
7561673 y(hierarchical)j(system)e(described)h(in)g(BLIF-MV)-6
757b(,)16 b(which)e(may)f(ha)o(v)o(e)i(been)g(compiled)e(from)h(a)h
758(high-le)o(v)o(el)e(language)-31 1729 y(like)7 b(V)-5
759b(erilog;)7 b(a)g(v)o(eri\256cation)g(core,)j(VIS-v)m(,)f(to)e(perform)
760g(model)g(checking)g(of)g(F)o(air)g(CTL)g(and)g(test)g(language)g
761(emptiness;)-31 1785 y(and)12 b(a)f(path)g(to)g(SIS,)i(VIS-s,)f(to)f
762(optimize)g(parts)g(of)g(the)g(logic.)-31 1908 y Fk(1.3.1)51
763b(VIS-v)12 b(Philosoph)o(y)-31 1995 y Fq(W)l(e)j(decided)f(to)f(of)o
764(fer)i(limited)d(b)o(ut)h(ef)o(\256cient)i(capabilities.)23
765b(W)l(e)15 b(felt)e(that)h(in)f(the)h(future,)h(it)e(would)g(be)h(easy)
766g(to)f(add)-31 2051 y(more)f(features,)h(as)f(the)o(y)g(are)h
767(required,)g(using)e(a)h(well)g(de\256ned)g(programming)f(interface.)19
768b(In)12 b(line)f(with)g(this)g Fr(keep)i(it)-31 2108
769y(simple)e Fq(philosophy)m(,)f(VIS)i(pro)o(vides)f(the)g(follo)o(wing)f
770(v)o(eri\256cation)i(capabilities.)37 2187 y Fj(\017)23
771b Fq(Only)16 b(CTL)h(formulas)f(can)i(be)f(checked.)33
772b(Language)17 b(containment)e(may)i(be)g(handled)f(in)h(a)g(later)g
773(release.)83 2244 y(Ho)o(we)o(v)o(er)n(,)12 b(we)g(do)f(handle)g
774(language)g(emptiness)f(checks.)37 2332 y Fj(\017)23
775b Fq(F)o(airness)14 b(constraints)f(must)f(be)i(of)g(B)t(\310)-19
776b(uchi)13 b(type,)i(i.e.,)g(sets)e(of)h(states)f(that)g(must)g(be)h
777(visited)e(in\256nitely)h(often.)83 2388 y(Ho)o(we)o(v)o(er)n(,)c(the)f
778(internal)g(VIS)g(data)g(structures)g(do)g(ha)o(v)o(e)g(the)g
779(capability)f(to)h(support)f(more)g(complicated)h(fairness)83
7802445 y(constraints.)-31 2567 y Fk(1.3.2)51 b(VIS-s)12
781b(Philosoph)o(y)-31 2654 y Fq(VIS)j(can)h(interact)e(with)g(SIS)i(to)e
782(assist)g(the)h(task)f(of)h(v)o(eri\256cation)g(by)f(simplifying)f
783(parts)h(of)h(the)g(system.)26 b(Another)-31 2711 y(objecti)o(v)o(e)12
784b(is)g(to)h(support)e(a)i(full-\257edged)g(hierarchical)g(synthesis)e
785(\257o)o(w)m(,)i(that)g(translates)f(a)h(V)-5 b(erilog)12
786b(description)f(into)918 2835 y(4)p eop
787%%Page: 5 6
7885 5 bop -31 11 a Fq(an)11 b(optimized)e(multi-le)o(v)o(el)g(circuit)h
789(at)g(the)h(gate)f(le)o(v)o(el.)16 b(Unlike)10 b(e)o(xisting)f(logic)h
790(optimization)e(systems)h(like)h(SIS,)i(VIS)-31 68 y(can)g(support)e
791(hierarchical)i(synthesis.)918 2835 y(5)p eop
792%%Page: 6 7
7936 6 bop -31 323 a Fn(Chapter)20 b(2)-31 530 y Fs(Describing)26
794b(Designs)g(f)m(or)g(VIS)-31 753 y Fq(Gi)o(v)o(en)18
795b(the)h(special)f(needs)h(of)f(hardware)h(simulation,)g(v)o
796(eri\256cation,)i(and)d(synthesis,)h(specialized)g(languages)f(to)-31
797809 y(describe)13 b(hardware)f(ha)o(v)o(e)h(been)g(de\256ned.)20
798b(These)12 b(are)h(called)g(hardware)f(description)g(languages)g
799(\(HDLs\))g(and)g(the)o(y)-31 866 y(resemble)i(general-purpose)h
800(programming)e(languages.)26 b(Modern)14 b(HDLs)g(enable)g(the)g
801(designer)h(to)f(mix)f(dif)o(ferent)-31 922 y(le)o(v)o(els)e(of)h
802(design)e(abstraction.)-31 1069 y Fl(2.1)58 b(V)-6 b(erilog)15
803b(HDL)-31 1172 y Fq(The)h(two)e(most)h(widely)g(used)g(languages)g(for)
804h(digital)e(design)h(are)h(V)-5 b(erilog,)17 b(based)e(on)g(C,)i(and)e
805(VHDL,)h(based)f(on)-31 1229 y(AD)n(A.)k(Currently)f(VIS)h(only)e
806(supports)g(V)-5 b(erilog,)20 b(b)o(ut)d(our)h(intermediate)g(format,)i
807(BLIF-MV)-6 b(,)19 b(was)f(designed)g(to)-31 1285 y(support)11
808b(translation)f(from)h(man)o(y)g(languages.)40 1342 y(V)-5
809b(erilog)7 b(allo)o(ws)g(mix)o(ed-le)o(v)o(el)g(descriptions)g(of)g
810(hardware)g(in)g(terms)g(of)g(static)g(st)o(ructures)g(and)g(dynamic)g
811(beha)o(viors.)-31 1398 y(Dynamic)g(beha)o(vior)g(is)g(described)g(by)g
812(means)g(of)g(high-le)o(v)o(el)g(constructs)g(as)g(found)g(in)g
813(general-purpose)g(programming)-31 1455 y(languages,)12
814b(like)e(conditional,)g(control)h(of)h(loops,)e(and)i(process)f
815(fork-join.)40 1511 y(A)i(speci\256cation)h(in)f(V)-5
816b(erilog)13 b(consists)f(of)i(one)g(or)f(more)h Fi(modules)p
817Fq(.)23 b(The)13 b Fi(top)g(le)o(vel)i(module)e Fq(speci\256es)h(a)f
818(closed)-31 1568 y(system)i(containing)g(both)g(test)h(data)g(and)g
819(hardware)h(models.)29 b(Component)16 b(modules)f(normally)g(ha)o(v)o
820(e)h(input)f(and)-31 1624 y(output)f Fi(ports)p Fq(.)26
821b(Ev)o(ents)14 b(on)g(the)h(input)f(ports)g(cause)h(changes)g(on)f(the)
822h(outputs.)26 b(Ev)o(ents)14 b(can)h(be)g(either)g(changes)g(in)-31
8231681 y(the)f(v)o(alues)f(of)h Fi(wir)n(e)g Fq(v)o(ariables)g(\(i.e.,)i
824(combinational)c(v)o(ariables\))h(or)h(in)g(the)f(v)o(alues)h(of)f
825Fi(r)n(e)n(g)i Fq(v)o(ariables)e(\(i.e.,)j(re)o(gister)-31
8261737 y(v)o(ariables\),)k(or)e(can)h(be)f(e)o(xplicitly)f(generated)i
827(abstract)f(e)o(v)o(ents.)37 b(Modules)16 b(can)j(represent)f(pieces)h
828(of)f(hardware)-31 1793 y(ranging)13 b(from)h(simple)e(gates)i(to)f
829(complete)g(systems)g(\(e.g.,)j(microprocessors\),)e(and)f(the)o(y)h
830(can)g(be)g(speci\256ed)g(either)-31 1850 y Fi(behavior)o(ally)7
831b Fq(or)h Fi(structur)o(ally)p Fq(,)f(or)g(by)h(a)g(combination)e(of)h
832(the)h(two.)14 b(A)8 b(beha)o(vioral)f(speci\256cation)h(de\256nes)g
833(the)f(beha)o(vior)-31 1906 y(of)15 b(a)h(module)e(using)g(programming)
834g(language)h(constructs.)27 b(A)15 b(structural)g(speci\256cation)g(e)o
835(xpresses)h(a)f(module)f(as)-31 1963 y(a)g(hierarchical)g
836(interconnection)e(of)i(submodules.)21 b(The)13 b(components)f(at)i
837(the)f(bottom)f(of)h(the)g(hierarchy)h(are)g(either)-31
8382019 y(primiti)o(v)o(es)d(or)h(are)i(speci\256ed)e(beha)o(viorally)m(.)
83920 b(V)-5 b(erilog)11 b(has)i(a)f(library)g(of)h(prede\256ned)g
840(primiti)o(v)o(es.)18 b(A)13 b(good)e(reference)-31 2076
841y(for)h(V)-5 b(erilog)11 b(can)g(be)h(found)f(in)g([1].)-31
8422222 y Fl(2.2)58 b Fh(VL)p Fu(2)p Fh(MV)p Fl(:)21 b(fr)o(om)15
843b(V)-6 b(erilog)15 b(to)g(BLIF-MV)-31 2326 y Fq(VIS)d(operates)f(on)g
844(an)g(intermediate)f(format)h(called)g(BLIF-MV)-6 b(,)12
845b(which)e(is)h(an)g(e)o(xtension)f(of)h(BLIF)l(,)i(the)e(intermediate)
846-31 2383 y(format)k(for)h(logic)f(synthesis)f(accepted)j(by)e(SIS)h
847(and)g(other)f(tools.)29 b(VIS)16 b(includes)f(a)g(stand-alone)g
848(compiler)g(from)-31 2439 y(V)-5 b(erilog)11 b(to)g(BLIF-MV)-6
849b(,)13 b(called)e Fo(VL)p Fq(2)p Fo(MV)p Fq(.)40 2495
850y(See)i([2])g(for)g(a)g(description)f(of)g(the)h(synthesizable)e
851(subset)h(of)h(V)-5 b(erilog)12 b(that)g(can)h(be)g(handled)f(by)h
852Fo(VL)p Fq(2)p Fo(MV)h Fq(and)e(of)-31 2552 y(the)g(e)o(xtensions)f(of)
853h(V)-5 b(erilog)12 b(that)f(are)i(also)f(supported)f(by)h
854Fo(VL)p Fq(2)p Fo(MV)p Fq(.)20 b(In)12 b(this)f(section)h(we)g(surv)o
855(e)o(y)h(the)f(ke)o(y)g(features)g(of)-31 2608 y(V)-5
856b(erilog)11 b(for)h Fo(VL)p Fq(2)p Fo(MV)p Fq(.)19 b(Conceptually)m(,)
85711 b(it)g(would)f(be)i(easy)g(to)f(pro)o(vide)g(a)h(translator)f(from)g
858(an)o(y)h(other)g(HDL)f(language,)-31 2665 y(like)g(VHDL)g(or)g
859(Esterel,)h(to)f(BLIF-MV)-6 b(.)918 2835 y(6)p eop
860%%Page: 7 8
8617 7 bop 40 11 a Fq(The)15 b(relationship)f(between)i(a)f(beha)o(vioral)
862g(description)g(language)g(like)f(V)-5 b(erilog)15 b(and)h(a)f(machine)
863g(description)-31 68 y(language)f(like)e(BLIF-MV)i(is)f(similar)g(to)g
864(that)g(between)h(a)g(high-le)o(v)o(el)e(programming)h(language)g(and)h
865(an)f(assembly)-31 124 y(language.)29 b(Basic)16 b(constructs)e(of)h
866(BLIF-MV)h(are)h(module)d(declarations/instantiations,)g(input-output)f
867(relational)-31 181 y(tables)f(which)g(allo)o(w)f(descriptions)g(of)i
868(nondeterminism,)d(symbolic)h(wires,)i(and)f(latches.)19
869b(In)12 b(BLIF-MV)-6 b(,)14 b(symbolic)-31 237 y(latches)j(are)h
870(implicitly)c(controlled)j(by)f(a)i(global)e(clock.)33
871b(This)16 b Fi(cloc)o(k)i Fq(does)f(not)f(need)h(to)g(be)g(a)g(real)h
872(wire)f(in)f(the)-31 294 y(hardware)g(sense.)27 b(All)15
873b(symbolic)e(latches)i(transit)f(instantaneously)f(to)i(the)g(ne)o(xt)g
874(state)f(indicated)h(by)g(the)f(rele)o(v)o(ant)-31 350
875y(transition)d(tables.)18 b(At)11 b(each)i(clock)f(c)o(ycle,)h(each)g
876(table)e(continuously)f(updates)i(its)f(outputs)f(according)i(to)g(the)
877g(inputs)-31 407 y(it)g(sees)h(until)e(con)n(v)o(er)o(gence)j(is)e
878(reached.)641 390 y Ft(1)679 407 y Fq(In)h(the)f(v)o(ery)h(be)o
879(ginning)f(of)g(the)h(ne)o(xt)f(c)o(ycle,)i(all)e(latches)h
880(simultaneously)-31 463 y(update)k(their)g(present)g(state)g(outputs)f
881(according)h(to)g(their)g(ne)o(xt)g(state)g(inputs.)34
882b(Then)17 b(again)g(tables)f(update)h(their)-31 519 y(outputs)10
883b(accordingly)m(.)40 576 y Fo(VL)p Fq(2)p Fo(MV)18 b
884Fq(e)o(xtracts)f(a)g(set)g(of)g(interacting)f(\256nite)h(state)f
885(machines)h(\(FSMs\))g(that)f(preserv)o(e)i(the)f(beha)o(vior)f(of)h
886(the)-31 632 y(source)d(V)-5 b(erilog)12 b(program)h(de\256ned)h(in)f
887(terms)g(of)g(simulated)f(results.)21 b(Allocation)13
888b(of)g(hardware)h(gates)e(to)h(operators)-31 689 y(in)g(V)-5
889b(erilog)13 b(\(resource)h(binding\))e(is)g(based)i(on)f(the)g
890(assumption)e(of)i(unlimited)e(resources,)k(where)f(resources)f(are)h
891(all)-31 745 y(possible)f(gates)i(e)o(xpressible)f(in)g(one)g(table)h
892(in)f(BLIF-MV)-6 b(.)16 b(No)e(scheduling)f(and)i(optimization)d(are)k
893(performed,)g(so)-31 802 y(the)11 b(e)o(xtracted)h(FSMs)g(are)g(not)e
894(guaranteed)i(to)f(be)g(optimal)f(\(for)i(area,)h(speed,)e(and)h(so)f
895(on\).)16 b(In)c(order)f(to)g(optimize)f(the)-31 858
896y(logic,)h(a)h(synthesis)e(program)h(like)f(SIS)j(can)f(be)f(in)n(v)o
897(oked)f(on)i(modules)e(of)h(the)g(system.)1391 842 y
898Ft(2)40 915 y Fq(A)e(design)f(in)g(a)i(synthesizable)e(subset)g(of)h(V)
899-5 b(erilog)8 b(consists)g(of)h(a)g(set)g(of)g(modules)e(\(either)i
900(hardware)h(or)f(software\).)-31 971 y(The)g(\256rst)h(module)e
901(encountered)h(is)g(re)o(garded)h(as)f(the)g(root)g(module.)15
902b(All)9 b(modules)f(run)h(in)g(parallel)g(and)g(communicate)-31
9031028 y(with)14 b(each)h(other)f(through)g(a)g(set)h(of)f(channels)g
904(\(set)h(of)f(wire)h(v)o(ariables)f(declared)h(in)f(the)g(modules)f(to)
905h(which)g(these)-31 1084 y(channels)j(belong\).)34 b(It)17
906b(is)g(assumed)f(that)h(communication)e(through)i(channels)g(is)f
907(instantaneous.)33 b(W)n(ithin)17 b(each)-31 1140 y(module,)d(v)o
908(alues)f(on)h(channels)f(can)h(be)g(accessed)h(through)e(a)h(set)f(of)h
909(ports,)g(that)f(can)i(be)e(either)h(wires)g(or)g(re)o(gisters.)-31
9101197 y(Through)e(wire)i(ports,)f(a)g(module)f(can)h(input)f(and)h
911(output)f(from)h(and)f(to)h(channels)g(instantaneously)m(,)f(while)g
912(through)-31 1253 y(re)o(gister)f(ports)f(it)g(takes)g(one)h(time)f
913(unit.)16 b(A)11 b(wire)f(port)h(has)f(no)h(storage)f(element)h
914(associated)f(with)g(it,)h(while)f(a)h(re)o(gister)-31
9151310 y(port)g(has)g(one)h(storage)f(element)g(associated)g(with)g(it.)
91640 1366 y(A)d(V)-5 b(erilog)8 b(module)f(contains)g(declarations,)i
917(module)f(instantiations,)e(continuous)h(assignments)g(and)h
918(procedural)-31 1423 y(blocks.)31 b(Continuous)14 b(assignments)h(be)o
919(gin)h(with)f(the)h(ke)o(yword)f Fm(assign)k Fq(and)d(are)h(always)e
920(acti)o(v)o(e;)j(the)o(y)f(can)f(be)-31 1479 y(thought)10
921b(of)i(as)g(combinational)e(blocks.)17 b(Procedural)c(blocks)e(are)h
922(referred)i(to)d(as)h Fm(always)i Fq(statements;)c(statements)-31
9231536 y(within)g(a)i(procedural)g(block)f(are)h(e)o(x)o(ecuted)g
924(sequentially)m(.)40 1592 y(Module)f(instances,)i(continuous)e
925(assignments,)h(and)g(procedural)h(blocks)f(within)f(a)i(module)e(run)i
926(concurrently)m(.)-31 1649 y(Ex)o(ecution)18 b(of)h(each)h(continuous)d
927(assignment,)j(basic)e(block)h(in)f(a)h(procedural)g(block)g(and)f
928(module)g(instance)h(is)-31 1705 y(assumed)11 b(to)f(be)h(atomic)g
929(within)f(each)h(instant.)16 b(If)c(there)f(is)g(more)f(than)h(one)g
930(procedural)h(block)e(in)h(the)g(same)g(module,)-31 1761
931y(and)d(outputs)f(of)h(one)g(are)h(inputs)e(to)h(another)n(,)h(the)f
932(simulated)f(result)h(may)g(depend)g(on)g(ho)o(w)f(e)o(xpressions)h
933(from)g(dif)o(ferent)-31 1818 y(blocks)j(are)h(interlea)o(v)o(ed)g(by)f
934(the)g(simulator)m(.)40 1874 y Fo(VL)p Fq(2)p Fo(MV)i
935Fq(can)e(be)h(in)n(v)o(oked)e(as)i(a)f(stand-alone)g(tool)g(on)g(a)g(V)
936-5 b(erilog)11 b(\256le)h(to)f(produce)h(a)f(BLIF-MV)h(\256le.)18
937b(This)10 b(can)i(be)-31 1931 y(read)g(in)e(VIS)i(with)e(the)g(command)
938g Fi(r)n(ead)p 624 1931 14 2 v 17 w(blif)p 703 1931 V
93915 w(mv)p Fq(.)17 b(As)11 b(an)g(alternati)o(v)o(e,)g(the)g(command)f
940Fi(r)n(ead)p 1468 1931 V 16 w(verilog)g Fq(can)i(be)f(directly)-31
9411987 y(used)g(to)g(read)h(in)f(a)h(V)-5 b(erilog)11 b(\256le.)17
942b(This)11 b(in)n(v)o(okes)f Fo(VL)p Fq(2)p Fo(MV)j Fq(internally)m(.)
943-31 2134 y Fl(2.3)58 b(F)o(eatur)o(es)13 b(of)i(V)-6
944b(erilog)15 b(Supported)h(by)f Fh(VL)p Fu(2)p Fh(MV)-31
9452238 y Fo(VL)p Fq(2)p Fo(MV)i Fq(supports)d(a)i(synthesizable)f(subset)
946f(of)i(V)-5 b(erilog,)16 b(and)g(also)f(e)o(xtends)g(it)g(minimally)f
947(to)h(make)g(it)g(usable)g(for)-31 2294 y(formal)c(v)o(eri\256cation.)
94818 b(W)l(e)12 b(surv)o(e)o(y)f(the)h(features)g(that)e(characterize)j
949(V)-5 b(erilog)11 b(as)h(supported)e(by)h Fo(VL)p Fq(2)p
950Fo(MV)p Fq(.)p -31 2335 768 2 v 22 2362 a Fg(1)36 2378
951y Ff(Circuits)f(with)g(combinational)e(c)o(ycles)g(are)h(le)o(gal)g(in)
952h(BLIF-MV)-5 b(,)10 b(b)o(ut)f(currently)h(the)o(y)f(are)g(not)g
953(processed)d(by)j(VIS.)22 2409 y Fg(2)36 2424 y Fe(VL)p
954Ff(2)p Fe(MV)e Ff(can)f(also)h(e)o(xtract)h(quantitati)o(v)o(e)f
955(timing)h(information)g(from)g(a)g(timed)f(V)l(erilog)h(program,)g
956(producing)e(BLIF-MVT)m(,)i(based)e(on)h(timed)-31 2470
957y(automata,)i(that)h(is)g(an)f(e)o(xtension)f(of)i(BLIF-MV)g(with)g
958(timing)g(constructs)e([3)q(].)15 b(Since)9 b(v)o(eri\256cation)g(with)
959h(quantitati)o(v)o(e)g(timing)g(is)f(not)h(handled)-31
9602516 y(in)g(the)f(current)g(v)o(ersion)f(of)i(VIS,)g(this)f(feature)g
961(is)g(of)h(no)f(further)h(interest)f(here.)918 2835 y
962Fq(7)p eop
963%%Page: 8 9
9648 8 bop -31 11 a Fk(2.3.1)51 b(Assignments)-31 99 y Fi(Continuous)10
965b(assignments)f Fq(are)j(always)d(acti)o(v)o(e,)j(i.e.,)g(whene)o(v)o
966(er)g(an)o(y)f(input)f(changes,)i(the)e(output)g(is)g(updated)h
967(instan-)-31 155 y(taneously)m(.)17 b(Only)11 b Fm(wire)i
968Fq(v)o(ariables)e(can)h(be)g(used)g(at)f(the)h(left)f(hand)h(side)f(of)
969h(continuous)e(assignments.)16 b(Continuous)-31 212 y(assignments)10
970b(describe)h(the)h(combinational)d(beha)o(vior)j(of)f(a)h(circuit.)40
971268 y Fi(Pr)n(ocedur)o(al)18 b(assignments)g Fq(\()p
972Fm(=)i Fq(within)e(a)i(procedural)g(block\),)h(also)e(referred)i(to)e
973(as)h Fi(bloc)o(king)e(assignments)p Fq(,)-31 324 y(e)o(x)o(ecute)12
974b(sequentially)d(within)g(a)h(procedural)h(block,)g(changing)e(the)i
975(content)e(of)i(state)f(v)o(ariables,)h(until)e(the)h(e)o(x)o(ecution)
976-31 381 y(is)h(blocked)g(by)h(a)g(pause.)17 b Fo(VL)p
977Fq(2)p Fo(MV)d Fq(compiles)c(procedural)i(blocks)f(based)h(on)f(the)h
978(assumption)e(that)h(each)h(basic)g(block)-31 437 y(will)g(be)i(e)o(x)o
979(ecuted)g(atomically)e(if)h(the)g(delay/e)o(v)o(ent)f(control)h(of)g
980(the)g(block)g(is)f(satis\256ed.)22 b Fo(VL)p Fq(2)p
981Fo(MV)15 b Fq(assumes)d(also)h(that)-31 494 y(e)o(x)o(ecution)i(of)f
982(procedural)g(assignments)f(takes)g(zero)i(hardware)g(time.)24
983b(All)13 b(procedural)i(blocks)e(with)h(acti)o(v)o(e)g(e)o(v)o(ent)-31
984550 y(controls)c(get)g(e)o(x)o(ecuted)h(concurrently)m(.)17
985b(Notice)10 b(that)g(a)g(V)-5 b(erilog)10 b(simulator)f(does)h(not)g
986(treat)g(simple)f(blocks)h(as)g(atomic.)-31 607 y(If)16
987b(there)f(is)g(more)g(than)f(one)h(procedural)h(block)e(sharing)h(the)g
988(same)g Fm(reg)h Fq(v)o(ariables,)g(caution)f(should)f(be)h(taken)g(to)
989-31 663 y(make)c(sure)h(that)e(the)i(desired)f(beha)o(vior)g(does)g
990(not)g(depend)g(on)g(a)h(speci\256c)g(interlea)o(ving)f(among)f
991(processes.)40 720 y(Procedural)i(assignments)d(update)i(v)o(ariables)g
992(instantaneously)m(,)f(meaning)g(that)h(the)o(y)g(change)h(the)f
993(left-hand)g(side)-31 776 y(v)o(ariable)i(so)f(that)g(the)h(statement)f
994(follo)o(wing)f(the)i(assignment)e(\(in)h(the)h(same)f(process,)i(or)f
995Fm(always)i Fq(statement\))d(can)-31 833 y(observ)o(e)h(the)f(v)o(alue)
996g(change.)20 b(On)12 b(the)g(other)g(hand,)h(other)f(processes)g(\(for)
997h(instance,)f(other)g Fm(always)j Fq(statements)c(or)-31
998889 y(continuous)e(assignments\))f(cannot)i(see)h(the)f(change)g(until)
999f(the)h(ne)o(xt)g(clock)g(c)o(ycle.)17 b(Because)12 b(of)e(this,)g
1000(race)h(conditions)-31 945 y(might)g(arise)h(among)f(multiple)f
1001(procedural)i(assignments.)17 b Fi(Non-bloc)o(king)12
1002b(pr)n(ocedur)o(al)f(assignments)f Fq(\()p Fm(<=)p Fq(\))j(pro)o(vide)
1003-31 1002 y(a)k(mechanism)f(that)g(defers)h(the)f(assignment)f(without)g
1004(blocking)h(the)g(e)o(x)o(ecution)h(of)f(statements)g(in)g(a)h(block.)
100531 b(On)-31 1058 y(encountering)16 b(a)h(non-blocking)e(assignment,)h
1006(the)h(right)e(hand-side)h(of)h(the)f(assignment)f(is)h(e)o(v)o
1007(aluated)g(according)-31 1115 y(to)f(the)g(most)e(recent)j(v)o(alues)f
1008(of)g(the)g(referred)h(v)o(ariables.)28 b(Ho)o(we)o(v)o(er)n(,)17
1009b(without)c(changing)i(the)g(v)o(ariable)g(on)f(the)h(left)-31
10101171 y(hand-side,)c(program)e(e)o(x)o(ecution)i(continues.)k(Then)10
1011b(v)o(ariables)g(are)h(updated)f(simultaneously)d(at)k(the)f(v)o(ery)g
1012(be)o(ginning)-31 1228 y(of)i(the)h(ne)o(xt)f(time)f(slot.)19
1013b(F)o(or)13 b Fo(VL)p Fq(2)p Fo(MV)p Fq(,)h(non-blocking)d(procedural)i
1014(assignments)d(should)h(ne)o(v)o(er)i(be)f(used,)h(since)f(the)o(y)-31
10151284 y(might)e(introduce)h(unwanted)g(nondeterminism.)-31
10161409 y Fk(2.3.2)51 b(Nondeterminism)-31 1496 y Fq(Non-blocking)11
1017b(assignments)f(also)i(pro)o(vide)g(a)g(way)g(to)f(introduce)h
1018(nondeterminism)e(on)h Fm(reg)i Fq(v)o(ariables.)19 b(If)12
1019b(there)h(is)-31 1553 y(more)h(than)g(one)g(non-blocking)f(assignment)g
1020(in)g(the)i(current)f(time)f(slot)h(assigning)e(to)i(the)g(same)g(re)o
1021(gister)h(v)o(ariable,)-31 1609 y(then)f(the)g(v)o(alue)g(of)h(that)f
1022(re)o(gister)g(v)o(ariable)h(in)f(the)g(ne)o(xt)g(clock)g(c)o(ycle)h
1023(will)f(be)g(nondeterministically)e(chosen)i(from)-31
10241666 y(those)d(assigned)g(v)o(alues.)16 b Fi(Even)c(though)e
1025Fo(VL)p Fq(2)p Fo(MV)i Fi(accepts)g(this)e(way)i(of)f(specifying)f
1026(nondeterminism,)g(in)h(VIS,)h(unlike)-31 1722 y(in)f(HSIS,)h(multiple)
1027e(assignments)g(ar)n(e)h(not)g(consider)n(ed)g(le)n(gal)g
1028(nondeterminism)p Fq(.)40 1779 y(Instead,)i(a)h(nondeterministic)d
1029(construct,)i Fm($ND)p Fq(,)i(has)e(been)g(added)g(to)g(V)-5
1030b(erilog)12 b(to)h(specify)g(nondeterminism)d(on)-31
10311835 y(wire)i(v)o(ariables)f(and)g(is)f(the)i(only)e(le)o(gal)h(way)g
1032(to)g(introduce)f(nondeterminism)g(in)g(VIS.)j(F)o(or)f(e)o(xample,)f
1033(to)g(require)h(that)-31 1892 y(the)f(output)g(at)g(a)h(particular)f
1034(state)g(is)g(nondeterministically)e(GO)j(or)f(NOGO,)h(one)f(can)h
1035(introduce)f(a)h(ne)o(w)f(v)o(ariable,)h Fp(r)q Fq(,)-31
10361948 y(and)g(write)f(the)g(follo)o(wing)f(V)-5 b(erilog)11
1037b(fragment.)-31 2037 y Fd(assign)20 b(r=$ND{GO,NOGO};)-31
10382077 y(.)-31 2116 y(.)-31 2156 y(always@\(posedge)f(clk\))h(begin)-31
10392195 y(.)-31 2234 y(.)-31 2274 y(state)g(=)g(r;)-31 2313
1040y(.)-31 2353 y(.)-31 2392 y(end)-31 2517 y Fk(2.3.3)51
1041b(Symbolic)12 b(V)-5 b(ariables)-31 2604 y Fq(Sometimes)14
1042b(it)h(is)f(desirable)h(to)g(specify)g(and)g(e)o(xamine)g(the)g(v)o
1043(alue)g(of)g(some)g(v)o(ariables)f(symbolically)m(,)h(rather)h(than)-31
10442661 y(ha)o(ving)f(to)f(e)o(xplicitly)g(encode)i(them.)28
1045b Fo(VL)p Fq(2)p Fo(MV)16 b Fq(e)o(xtends)f(V)-5 b(erilog)15
1046b(to)g(allo)o(w)f(users)h(to)g(declare)h(symbolic)d(v)o(ariables)918
10472835 y(8)p eop
1048%%Page: 9 10
10499 9 bop -31 11 a Fq(using)11 b(an)g(enumerated)h(type)f(mechanism)g
1050(similar)f(to)h(the)h(one)f(a)o(v)o(ailable)h(in)f(the)g(C)h
1051(programming)e(language.)18 b(As)11 b(an)-31 68 y(e)o(xample,)h(we)g
1052(introduce)f(a)g(symbolic)f(type)h(named)g Fm(door)p
1053Fq(:)-31 148 y Fd(typedef)20 b(enum)f({OPEN,OPENING,CLOSED,CLOSING})f
1054(door;)-31 293 y Fl(2.4)58 b(Implicit)15 b(vs.)21 b(Explicit)15
1055b(Clocking)-31 397 y Fq(The)9 b(clocking)f(discipline)f(is)h
1056(determined)g(by)g(the)h(de\256nition)f(of)g(the)h(V)-5
1057b(erilog)8 b(simulator)n(,)g(and)h(it)f(can)h(be)f(either)h(implicit)
1058-31 453 y(or)j(e)o(xplicit.)k(Implicit)10 b(is)h(the)g(default.)16
1059b(Explicit)10 b(may)h(be)h(required)f(in)g(some)g(cases.)40
1060510 y(A)e(V)-5 b(erilog)8 b(simulator)f(is)i(an)g(e)o(v)o(ent-dri)o(v)o
1061(en)g Fi(passive)f(sc)o(heduler)p Fq(.)16 b(A)9 b(simulator)e
1062(schedules)h(e)o(v)o(ents)h(generated)g(from)-31 566
1063y(V)-5 b(erilog)15 b(modules)f(and)h(then)g(sends)f(them)h(to)g
1064(modules)f(which)g(are)i(sensiti)o(v)o(e)f(to)f(these)h(e)o(v)o(ents.)
106528 b(Statements)15 b(with)-31 623 y(sensitized)e(e)o(v)o(ents)g(\(acti)
1066o(v)o(e)h(statements\))f(are)h(e)o(x)o(ecuted)g(and)g(in)f(turn)g(more)
1067g(e)o(v)o(ents)h(are)g(generated,)h(which)e(are)i(then)-31
1068679 y(scheduled)e(by)f(the)h(simulator)m(.)21 b(The)13
1069b(simulator)e(itself)i(does)f(not)h(generate)h(an)o(y)f(e)o(v)o(ent,)h
1070(b)o(ut)e(it)h(coordinates)f(between)-31 736 y(the)e(producers)h(and)f
1071(consumers)g(of)g(e)o(v)o(ents.)17 b(Hence,)11 b(to)f(write)h(a)f
1072(synchronous)g(system,)f(a)i(designer)f(needs)h(to)f(write)g(a)-31
1073792 y(small)g(clock)i(generator)n(,)g(i.e.,)h(an)e(e)o(v)o(ent)h
1074(generator)f(which)g(creates)i(e)o(v)o(ents)e(in)g(time.)16
1075b(The)11 b(produced)g(e)o(v)o(ents)h(pro)o(v)o(oke)-31
1076849 y(a)j(chain)g(of)g(reactions)f(among)g(modules.)26
1077b(The)14 b(system)g(reaches)i(a)f(stable)f(state)g(when)h(there)g(are)g
1078(no)g(more)f(e)o(v)o(ents)-31 905 y(other)h(than)f(the)g(clocking)g(e)o
1079(v)o(ent.)26 b(The)15 b(ne)o(xt)f(clocking)g(e)o(v)o(ent)g(is)g(then)h
1080(chosen)f(by)g(the)g(simulator)n(,)h(and)f(simulation)-31
1081961 y(time)e(is)f(adv)o(anced)i(according)f(to)g(the)g(time)f(stamp)h
1082(of)g(the)g(ne)o(wly)f(scheduled)h(clocking)g(e)o(v)o(ent.)19
1083b(W)l(e)13 b(call)f(the)g(system)-31 1018 y Fi(implicitly)i(cloc)o(ked)
1084i Fq(when)f(all)g(transitions)f(are)i(synchronized)f(by)g(an)h
1085(implicit)d Fi(time)p Fq(.)29 b(F)o(or)16 b(an)g(implicitly)d(clocked)
1086-31 1074 y(system)d(hardware)h(resources)g(will)e(not)h(be)h(allocated)
1087f(for)h(a)g(synchronizing)f(v)o(ariable.)16 b(Also,)11
1088b(for)f(implicitly)f(clocked)-31 1131 y(designs,)16 b(one)g(symbolic)e
1089(latch)i(\(or)g(state)f(v)o(ariable\))h(is)f(allocated)g(for)h(each)h
1090Fm(reg)g Fq(v)o(ariable,)g(and)e(synchronization)-31
10911187 y(v)o(ariables)c(are)h(dropped.)17 b(By)12 b(default,)f(implicit)e
1092(clocking)i(semantics)g(is)f(assumed.)40 1244 y(On)j(the)g(other)g
1093(hand,)i(for)e(some)g(designs,)g(the)h(operation)f(of)g(a)h(system)e
1094(depends)h(e)o(xplicitly)f(on)h(se)o(v)o(eral)h(phases)-31
10951300 y(\(rising)e(edge,)h(falling)e(edge,)i(1-le)o(v)o(el,)g(0-le)o(v)o
1096(el\))g(of)f(one)g(or)h(more)f(synchronizing)f(signals)g(\(generally)h
1097(referred)i(to)e(as)-31 1357 y Fi(cloc)o(ks)p Fq(\).)20
1098b(In)12 b(such)g(a)g(case)h(the)f(clock)g(signals)f(should)g(be)h
1099(interpreted)g(literally)f(and)h(hardware)h(resources)f(should)f(be)-31
11001413 y(allocated.)24 b(A)14 b(design)f(is)g(called)h
1101Fi(e)o(xplicitly)f(cloc)o(ked)h Fq(if)g(synchronizing)e(signals)h(are)h
1102(to)g(be)g(compiled)e(literally)h(into)-31 1470 y(hardware.)22
1103b(F)o(or)14 b(e)o(xplicitly)e(clocked)g(systems,)g(each)i
1104Fm(reg)g Fq(v)o(ariable)f(is)f(modeled)h(by)f(a)h(symbolic)f(latch)h
1105(along)f(with)-31 1526 y(some)i(e)o(xtra)h(logic)f(to)h(emulate)f(the)g
1106(clocking)g(mechanism.)26 b(An)14 b(e)o(xample)h(of)g(e)o(xplicit)f
1107(clocking)g(declared)h(by)f(the)-31 1582 y(user)d(is)g(the)g(follo)o
1108(wing.)k(Suppose)c(that)g(a)h(system)e(is)g(composed)h(of)g(parallel)g
1109(components)f(that)h(progress)g(dif)o(ferently)-31 1639
1110y(according)k(to)e(synchronization)g(signals)h(e)o(xchanged)h(among)e
1111(them)h(by)g(means)g(of)g Fm(wait)i Fq(statements.)25
1112b(Then)14 b(it)g(is)-31 1695 y(necessary)e(to)f(declare)h(an)g(e)o
1113(xplicit)e(clocking)h(signal:)-31 1775 y Fd(module)20
1114b(env;)-31 1815 y(reg)g(clk;)-31 1894 y(initial)g(clk=0;)-31
11151973 y(always)g(#1)f(clk)h(=)g(!clk;)-31 2051 y(endmodule)40
11162149 y Fq(This)15 b(code)h(generates)h(a)f(clocking)f(signal)g
1117Fm(clk)j Fq(with)d(a)h(c)o(ycle)h(of)f(two)f(time)g(units)g(used)h(to)g
1118(dri)o(v)o(e)g(the)g(whole)-31 2205 y(system)e(and)i(make)e(it)h
1119(simulatable.)27 b(In)16 b(this)e(case)i Fo(VL)p Fq(2)p
1120Fo(MV)h Fq(must)d(be)h(in)n(v)o(oked)g(with)f(the)h(options)f
1121Fi(-c)i(-F)p Fq(,)g(meaning)-31 2261 y(e)o(xplicit)11
1122b(clocking)g(\()p Fi(-c)p Fq(\),)h(and)g(ignore)f(all)g(timing)e(\()p
1123Fi(-F)p Fq(\).)-31 2407 y Fl(2.5)58 b(V)-6 b(erilog)15
1124b(f)o(or)f Fh(VL)p Fu(2)p Fh(MV)p Fl(:)21 b(Hints)15
1125b(and)h(T)l(raps)-31 2511 y Fq(In)c(this)e(section)h(a)g(list)g(of)g
1126(hints)f(to)h(follo)o(w)m(,)g(and)h(traps)f(to)g(a)o(v)o(oid,)g(is)g
1127(pro)o(vided)g(for)h(writing)e(V)-5 b(erilog)11 b(for)h(VIS.)26
11282598 y(1.)23 b(Inside)13 b(an)h Fm(always)j Fq(block,)d(only)f
1129(blocking)g(assignments)f(to)i Fm(reg)h Fq(v)o(ariables)f(are)h(allo)o
1130(wed.)24 b(Therefore)14 b(do)83 2654 y(not)c(write)i(to)e(an)i
1131(intermediate)e(v)o(ariable)h(\(that)g(is)g(a)h Fm(wire)h
1132Fq(by)e(de\256nition\))f(inside)g(an)i Fm(always)i Fq(block)c(and)h(do)
113383 2711 y(not)g(use)g(non-blocking)f(assignments)f(\()p
1134Fm(<=)p Fq(\))k(e)o(v)o(er)m(.)918 2835 y(9)p eop
1135%%Page: 10 11
113610 10 bop 26 11 a Fq(2.)23 b(If)14 b(v)o(ariables)f(that)g(must)g(be)g
1137(assigned)g(depend)h(on)f(each)h(other)n(,)h(assign)d(them)h(in)g
1138(separate)i Fm(always)h Fq(blocks,)83 68 y(otherwise)11
1139b(the)g(beha)o(vior)g(may)g(depend)h(on)f(the)g(order)h(of)f(e)o(x)o
1140(ecution.)26 162 y(3.)23 b(Inside)11 b(an)g Fm(always)i
1141Fq(block,)f(blocking)e(assignments)f Fm(=)j Fq(are)g(sensiti)o(v)o(e)e
1142(to)g(the)h(order)h(of)f(the)g(statements.)16 b(Thus)83
1143218 y(the)11 b(follo)o(wing)f(two)g(fragments)h(e)o(v)o(aluate)h(dif)o
1144(ferently:)83 326 y Fd(state)19 b(=)h(1;)83 365 y(out)f(=)h(state;)83
1145473 y(out)f(=)h(state;)83 513 y(state)f(=)h(1;)83 638
1146y Fq(Since)11 b(we)f(do)g(not)g(allo)o(w)g(non-blocking)f(assignments)f
1147(\(<=\))j(inside)e(an)i Fm(always)i Fq(block,)d(we)h(ha)o(v)o(e)g(to)f
1148(analyze)83 694 y(the)h(order)h(of)f(e)o(v)o(aluation)g(to)g(be)g
1149(certain)h(that)f(we)g(ha)o(v)o(e)h(the)g(desired)f(beha)o(vior)m(.)26
1150788 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
1151(block)f(of)g(assignments,)f(as)i(in:)83 896 y Fd(assign)19
1152b(begin)182 935 y(x)h(=)g(1;)182 975 y(y)g(=)g(2;)83
11531014 y(end)83 1139 y Fq(Ho)o(we)o(v)o(er)n(,)12 b(it)f(is)g(le)o(gal)g
1154(to)g(ha)o(v)o(e)h(a)g(block)f(of)g(assignments)f(for)h(an)h
1155Fm(initial)i Fq(statement:)83 1247 y Fd(initial)19 b(begin)182
11561287 y(x)h(=)g(1;)182 1326 y(y)g(=)g(2;)83 1365 y(end)26
11571490 y Fq(5.)j(In)18 b Fm(always)i Fq(blocks,)f(at)f(the)g(ne)o(xt)f
1158(clock,)j Fm(reg)f Fq(v)o(ariables)f(keep)g(their)f(pre)o(vious)g(v)o
1159(alues)h(if)f(the)o(y)h(are)h(not)83 1547 y(e)o(xplicitly)10
1160b(assigned)h(to.)26 1641 y(6.)23 b(Introduce)12 b(nondeterminism)e
1161(using)h(only)g Fm($ND)i Fq(assignments)e(to)g(wires.)19
1162b(Unlike)11 b(in)h(HSIS,)h(multiple)e(assign-)83 1697
1163y(ments)f(such)h(as:)83 1805 y Fd(always@\(posedge)19
1164b(clk\))g(begin)83 1844 y(state)g(<=)h(GO;)83 1884 y(state)f(<=)h(NOGO)
1165g(;)83 1923 y(end)83 2048 y Fq(are)12 b(not)f(considered)g(le)o(gal)g
1166(nondeterminism)e(in)i(VIS.)26 2142 y(7.)23 b Fo(VL)p
1167Fq(2)p Fo(MV)15 b Fq(will)d(reject)i(a)g(V)-5 b(erilog)13
1168b(description)f(containing)h(an)g(unspeci\256ed)h(initial)e(state.)23
1169b(If)13 b(the)h(user)f(wants)g(a)83 2199 y(nondeterministic)e(initial)h
1170(state,)i(it)e(should)g(be)i(speci\256ed)f(e)o(xplicitly)f(using)g(a)i
1171Fm($ND)g Fq(construct,)g(for)f(e)o(xample:)83 2255 y
1172Fd(initial)19 b(x)h(=)g($ND\(a,b,c\))p Fq(;)c(in)f(this)f(case,)j(a)e
1173(nondeterministic)e(constant)i(will)f(be)h(created)h(with)f(a)g(name)g
1174(as)83 2311 y Fd(x$initial_n23)p Fq(.)26 2405 y(8.)23
1175b Fm(for)12 b Fq(statements)f(are)h(supported)e(by)h
1176Fo(VL)p Fq(2)p Fo(MV)p Fq(.)19 b(Here)12 b(is)f(an)g(e)o(xample:)83
11772513 y Fd(always@\(posedge)19 b(clk\))g(begin)83 2553
1178y(//)h(randomly)f(push)h(floor)f(buttons)83 2592 y(for)g
1179(\(i=0;i<=`floor-1;i=i+1\))g(begin)242 2632 y(if)h(\(random_up[i]\))f
1180(up_floor_buttons[i]=ON;)242 2671 y(if)h(\(random_down[i]\))f
1181(down_floor_buttons[i]=ON;)83 2710 y(end)906 2835 y Fq(10)p
1182eop
1183%%Page: 11 12
118411 11 bop 83 11 a Fq(Note)11 b(that)g(\(unfortunately\))f(a)i
1185Fm(for)g Fq(loop)f(can)h(only)e(be)h(used)g(inside)g(an)g
1186Fm(always)j Fq(block.)i Fo(VL)p Fq(2)p Fo(MV)d Fq(by)e(default)83
118768 y(macro-e)o(xpands)g(\(unrolls\))f(the)h(V)-5 b(erilog)11
1188b(code)g(before)g(processing)g(it.)16 b(Use)11 b(option)e
1189Fi(-u)j Fq(to)e(suppress)g(unrolling.)26 162 y(9.)23
1190b(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
1191(array)m(.)28 b(Ho)o(we)o(v)o(er)n(,)17 b(a)e Fm(reg)h
1192Fq(can)f(be)g(an)g(array:)24 b Fm(wire[1:10)q(])30 b(a;)83
1193218 y Fq(is)14 b(correct)i(b)o(ut)e Fm(wire)29 b(a[1:10];)18
1194b Fq(is)c(not.)27 b(As)14 b(an)h(e)o(xample)g(of)g(ho)o(w)f(things)g
1195(dif)o(fer)h(for)g Fm(wire)h Fq(and)f Fm(reg)83 275 y
1196Fq(v)o(ariables)c(consider:)83 382 y Fd(typedef)19 b(enum)h({UP,DOWN})f
1197(dir;)83 422 y(wire[1:`elev])g(stop_next;)83 461 y(dir)g(reg)h
1198(direction[1:`elev];)83 540 y(typedef)f(enum)h({on,)f(off,)h(interm})f
1199(onoff;)83 665 y(onoff)g(reg)h(a[1:10])11 b Fq(is)g(correct,)h(b)o(ut)f
1200Fd(onoff)20 b(wire)f(a[1:10])11 b Fq(and)h Fd(onoff)19
1201b(wire[1:10])g(a)12 b Fq(are)g(not)f(correct.)83 722
1202y(Also)g Fd(reg)20 b([1:`width])f(locations[1:`elev])10
1203b Fq(is)i(correct,)h(b)o(ut)e Fd(onoff)20 b(reg)f([1:`width])h
1204(locations[1:`elev])83 778 y Fq(is)11 b(not)f(correct,)j(since)e(the)g
1205(latter)h(are)g(a)g(two)e(dimensional)g(array)i(of)f(symbolic)f(type.)3
1206872 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)
1207o(fer)g(for)f Fm($ND)h Fq(constructs)e(when)h(the)g Fi(-Z)g
1208Fq(option)f(is)h(used)f(,)k(while)c(by)h(default)83 928
1209y(it)f(does)g(not.)37 b(In)18 b(other)g(words,)i(by)e(default)f
1210Fo(VL)p Fq(2)p Fo(MV)j Fq(connects)e(the)g(left-hand)h(side)f(v)o
1211(ariable)g(directly)g(to)83 985 y(the)d(nondeterministic)e(table)i(for)
1212g Fm($ND)p Fq(.)i(Notice)d(that)h(the)g(only)f(le)o(gal)h(usage)g(of)g
1213Fm($ND)i Fq(when)e Fi(-Z)g Fq(is)g(not)f(used)83 1041
1214y(is:)34 b Fd(assign)19 b(<var>)h(=)f($ND\(...\))p Fq(;)24
1215b(where)e(the)e Fm(assign)j Fq(statement)c(is)h(a)h(continuous)e
1216(assignment.)42 b(The)83 1098 y(generated)15 b(nondeterministic)e
1217(table)i(will)f(use)h Fm(<var>)i Fq(as)e(the)g(output)f(v)o(ariable.)28
1218b(Instead)15 b(if)g(the)g Fi(-Z)g Fq(option)83 1154 y(is)j(turned)h
1219(on,)i(one)e(can)g(use)g Fm($ND)h Fq(de\256nitions)e(in)g(e)o
1220(xpressions)h(,)i(as)e(in:)31 b Fd(assign)19 b(a)h(=)g($ND\(0,1\))f(+)h
1221(b)p Fq(,)h(or)83 1211 y Fd(assign)e(a)h(=)g(\(sel\))g(?)f($ND\(0,1\))h
1222(:)g(b)p Ft(.)32 b Fq(In)16 b(this)g(case)h(intermediate)f(v)o
1223(ariables)g(are)i(generated)f(for)g(the)f Fm($ND)83 1267
1224y Fq(construct.)j(W)l(e)13 b(recommend)f(only)f(using)h(the)g(default)f
1225(v)o(alue)h(and)h(e)o(xplicitly)e(naming)g(the)h(nondeterministic)83
12261323 y(v)o(alue,)h(since)f(this)f(will)g(become)i(a)f(pseudo-input)f
1227(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)
1228o(v)o(en)g(by)g(the)83 1380 y(user)m(.)3 1474 y(11.)23
1229b(In)10 b(VIS)h(we)g(insist)d(on)i(ha)o(ving)g(nondeterminism)e(only)h
1230(for)i(single)e(output)g(constants.)16 b(A)10 b(BLIF-MV)h(table)f(like)
123183 1582 y Fd(.table)19 b(->)h(x)83 1621 y(-)83 1746 y
1232Fq(is)11 b(allo)o(wed)g(and)g(leads)g(to)g(a)h(pseudo-input.)j(Ho)o(we)
1233o(v)o(er)d(a)g(table)f(like)83 1854 y Fd(.table)19 b(->)h(x<0>)g(x<1>)
123483 1893 y(0)g(0)83 1933 y(0)g(1)83 1972 y(1)g(0)83 2097
1235y Fq(is)d(not)h(allo)o(wed.)36 b(The)18 b(reason)g(is)g(that)f(this)g
1236(table)h(represents)g(a)h(relation)e(and)h(cannot)g(be)g(split)f(into)g
1237(two)83 2154 y(independent,)11 b(nondeterministic,)f(single)g(output)g
1238(tables,)i(since)f(replacing)g(it)g(with)83 2262 y Fd(.table)19
1239b(->)h(x<0>)83 2301 y(-)83 2341 y(.table)f(->)h(x<1>)83
12402380 y(-)83 2505 y Fq(would)10 b(lead)h(to)g(the)h(possibility)c(of)23
1241b Fd(x)d(=)g(1)g(1)p Fq(.)83 2580 y(Such)12 b(a)g(situation)e(comes)h
1242(up)g(naturally)g(when)g(we)h(want)f(a)h(v)o(ariable)g(to)f(ha)o(v)o(e)
1243h(an)o(y)g(of)f(the)h(inte)o(gers)f(0,1,2.)18 b(But)83
12442636 y(we)12 b(ha)o(v)o(e)g(to)g(assign)e(2)i(bits)f(to)g(hold)g(the)h
1245(v)o(ariable,)g(and)g(we)g(want)f(to)g(be)h(able)g(to)f(increment)h(or)
1246f(decrement)h(the)83 2693 y(v)o(ariable)f(later)h(on)f(\(so)g(it)g
1247(must)f(be)i(an)f(inte)o(ger)n(,)h(rather)g(than)f(a)h(symbolic)e(v)o
1248(ariable\):)906 2835 y(11)p eop
1249%%Page: 12 13
125012 12 bop 83 11 a Fd(wire[0:1])19 b(x;)83 51 y(assign)g(x)h(=)g
1251($ND\(0,1,2\);)83 176 y Fo(VL)p Fq(2)p Fo(MV)12 b Fq(generates)f
1252(BLIF-MV)h(for)f(this)e(code)i(that)g(is)f(not)g(accepted)h(by)g(VIS.)h
1253(An)e(a)o(wkward)h(way)g(around)f(this)83 232 y(is:)83
1254340 y Fd(assign)19 b(temp=$ND\(0,1,2,3\);)83 380 y(assign)g(location)h
1255(=)f(\(temp==3\)?2:temp;)-31 526 y Fl(2.6)58 b(BLIF-MV)-31
1256630 y Fq(BLIF-MV)13 b(is)f(a)g(lo)o(w-le)o(v)o(el)g(language)g
1257(designed)g(for)h(describing)e(hierarchical)i(symbolic)e(sequential)g
1258(systems)g(with)-31 686 y(nondeterminism.)29 b(A)16 b(system)f(can)i
1259(be)f(composed)f(of)h(interacting)g(sequential)f(subsystems,)h(each)h
1260(of)f(which)g(can)-31 743 y(be)g(again)f(described)g(as)h(a)g
1261(collection)e(of)i(communicating)d(sequential)i(subsystems.)27
1262b(This)15 b(makes)g(it)f(possible)h(to)-31 799 y(describe)c(systems)e
1263(in)h(a)g(hierarchical)h(fashion.)16 b(The)10 b(internal)g(data)g
1264(structure)h(of)f(SIS)h(does)g(not)e(support)h(hierarchical)-31
1265856 y(representations.)20 b(Hence,)15 b(e)o(v)o(en)e(though)e(BLIF)j
1266(can)f(describe)g(hierarchy)m(,)h(BLIF)f(descriptions)f(are)h
1267(\257attened)g(into)f(a)-31 912 y(single-le)o(v)o(el)h(representation)h
1268(within)f(SIS.)i(In)f(VIS,)h(ho)o(we)o(v)o(er)n(,)h(the)e(original)f
1269(hierarchy)h(speci\256ed)g(in)g(BLIF-MV)h(is)-31 969
1270y(preserv)o(ed)d(in)f(internal)g(data)h(structures)f(so)g(that)g(true)g
1271(hierarchical)h(synthesis)e(and)h(v)o(eri\256cation)h(is)f(possible.)40
12721025 y(BLIF-MV)f(also)g(allo)o(ws)f(nondeterministic)f(gates)870
12731009 y Ft(3)899 1025 y Fq(and)i(hence)g(makes)f(it)h(possible)e(to)i
1274(model)f(nondeterministic)-31 1082 y(systems.)16 b(F)o(or)c(instance,)g
1275(a)g(design)f(in)g(its)f(early)i(stages)f(may)h(contain)e
1276(nondeterminism,)g(as)i(man)o(y)f(aspects)h(may)f(not)-31
12771138 y(be)i(yet)f(decided.)19 b(Lastly)m(,)12 b(BLIF-MV)h(supports)e
1278(multi-v)o(alued)g(v)o(ariables,)h(which)g(can)h(be)f(used)g(to)g
1279(simplify)e(system)-31 1194 y(descriptions.)40 1251 y(The)19
1280b(semantics)f(of)i(BLIF-MV)g(is)e(de\256ned)i(o)o(v)o(er)g(\257attened)
1281g(networks,)g(using)e(a)i(combinational/sequential)-31
12821307 y(concurrenc)o(y)11 b(model.)16 b(There)10 b(are)h(four)f(basic)g
1283(primiti)o(v)o(es:)k Fi(variables)p Fq(,)c Fi(tables)f
1284Fq(\(intuiti)o(v)o(ely)f(nondeterministic)g(gates\),)-31
12851364 y Fi(wir)n(es)16 b Fq(and)g Fi(latc)o(hes)p Fq(.)30
1286b(A)16 b Fi(variable)g Fq(takes)f(v)o(alues)g(from)h(some)f(\256nite)h
1287(domain.)30 b(A)16 b(relation)f(de\256ned)h(o)o(v)o(er)h(a)f(set)g(of)
1288-31 1420 y(v)o(ariables)f(is)h(represented)g(using)e(a)i
1289Fi(table)p Fq(.)29 b(The)16 b(v)o(ariables)f(of)h(a)f(table)h(are)g(di)
1290o(vided)f(into)f(inputs)h(and)g(outputs.)28 b(A)-31 1477
1291y(particular)13 b(v)o(ariable)h(can)f(be)g(designated)g(as)g(an)h
1292(output)d(in)i(at)g(most)f(one)i(table.)22 b(T)l(ables)13
1293b(are)h(inter)o(-connected)f(using)-31 1533 y Fi(wir)n(es)p
1294Fq(.)21 b(If)14 b(a)f(table)f(is)g(deterministic)g(and)g(Boolean,)i(it)
1295e(may)h(also)f(be)h(thought)e(of)i(as)g(a)g(logic)f(gate.)21
1296b(W)n(ires)13 b(may)f(only)-31 1590 y(take)d(v)o(alues)g(in)f(the)h
1297(domain)g(of)g(the)g(corresponding)f(v)o(ariable.)16
1298b(A)10 b Fi(latc)o(h)e Fq(is)h(a)h(specialized)f(element)f(that)h(can)h
1299(be)f(placed)-31 1646 y(on)j(a)h(wire.)20 b(The)12 b(latch)g(di)o
1300(vides)f(the)i(wire)f(into)g(two)f(parts;)h(the)g(input)g(to)g(the)g
1301(latch,)h(and)f(the)g(output)f(of)h(the)h(latch.)19 b(A)-31
13021703 y(set)13 b(of)h(initial)e(v)o(alues)h(is)g(associated)g(to)g(e)o
1303(v)o(ery)h(latch;)g(the)o(y)f(must)f(be)i(a)f(subset)g(of)g(the)h(set)f
1304(of)g(v)o(alues)g(of)h(its)e(wire.)23 b(A)-31 1759 y(state)12
1305b(is)f(an)h(assignment)e(of)i(v)o(alues)f(to)h(the)f(latches)h(of)g(a)g
1306(model,)f(where)i(a)f(v)o(alue)f(assigned)g(to)h(a)g(latch)f(must)g(be)
1307h(in)f(its)-31 1815 y(domain.)20 b(An)12 b(initial)f(state)i(is)f(a)h
1308(state)f(where)h(e)o(v)o(ery)h(latch)e(takes)g(a)h(v)o(alue)g(from)f
1309(its)g(set)g(of)h(initial)e(v)o(alues.)20 b(Note)13 b(that)-31
13101872 y(the)e(system)g(can)g(ha)o(v)o(e)h(more)g(than)f(one)g(initial)f
1311(state)h(in)g(general.)40 1928 y(At)i(e)o(v)o(ery)i(time)e(point,)h
1312(the)g(system)f(is)h(in)f(some)h(state,)h(where)f(each)h(latch)f(has)g
1313(a)g(v)o(alue.)25 b(At)14 b(e)o(v)o(ery)g(clock)g(tick,)-31
13141985 y(all)f(the)h(latches)f(update)g(their)g(v)o(alues.)23
1315b(These)14 b(v)o(alues)f(then)g(propagate)g(through)g(tables)g(until)f
1316(all)h(the)g(wires)h(ha)o(v)o(e)g(a)-31 2041 y(consistent)8
1317b(set)g(of)h(v)o(alues.)15 b(If)10 b(a)f(latch)f(is)g(encountered)h
1318(during)f(the)h(propagation,)f(i.e.,)i(an)f(output)f(of)h(a)g(table)f
1319(is)g(an)h(input)-31 2098 y(of)k(an)g(latch,)g(the)f(propagation)f
1320(process)i(through)f(that)g(latch)g(is)g(stopped.)20
1321b(Note)12 b(that)g(because)h(of)g(nondeterminism,)-31
13222154 y(gi)o(v)o(en)e(a)g(single)e(state,)i(there)h(may)e(be)h(se)o(v)o
1323(eral)g(consistent)e(sets)i(of)g(v)o(alues.)16 b(This)10
1324b(semantics)g(can)h(be)g(seen)g(as)f(a)h(simple)-31 2211
1325y(e)o(xtension)h(of)h(the)f(standard)h(semantics)f(of)g(synchronous)g
1326(single-clocked)g(digital)f(circuits.)20 b(In)13 b(fact,)g(if)g(e)o(v)o
1327(ery)g(table)-31 2267 y(is)h(deterministic)e(and)i(e)o(v)o(ery)h(latch)
1328f(has)g(a)g(single)g(initial)e(state,)j(the)f(two)f(semantics)h(are)h
1329(e)o(xactly)f(equal.)25 b(The)14 b(only)-31 2324 y(dif)o(ferences)e
1330(are)g(in)f(the)h(interpretation)e(of)h(nondeterministic)f(tables)h
1331(and)g(latches)g(with)g(multiple)f(initial)g(states.)40
13322380 y(In)15 b(VIS)h(the)g(command)e Fi(r)n(ead)p 534
13332380 14 2 v 17 w(blif)p 613 2380 V 15 w(mv)i Fq(reads)g(a)f(BLIF-MV)i
1334(description)d(created)i(by)g Fo(VL)p Fq(2)p Fo(MV)p
1335Fq(,)i(or)d(some)g(other)-31 2436 y(means,)j(and)e(then)f(sets)h(up)g
1336(a)g(corresponding)f(internal)h(data)g(structure.)31
1337b(The)16 b Fi(write)p 1385 2436 V 16 w(blif)p 1463 2436
1338V 16 w(mv)g Fq(command)f(writes)h(a)-31 2493 y(BLIF-MV)i(description)f
1339(to)g(a)g(\256le.)36 b(The)17 b(BLIF-MV)h(format)f(is)g(not)g(meant)g
1340(to)g(be)g(read)h(or)g(written)f(directly)f(by)-31 2549
1341y(the)h(user)n(,)j(e)o(v)o(en)e(though)e(simple)g(e)o(xamples)i(in)f
1342(BLIF-MV)h(may)f(e)o(xhibit)f(some)h(de)o(gree)i(of)e(clarity)m(.)35
1343b(In)17 b(the)h(VIS)-31 2606 y(documentation,)10 b(the)i(syntax)e(of)i
1344(BLIF-MV)g(is)f(described)g(in)g(the)g(document)g(entitled)f
1345(\252BLIF-MV\272.)p -31 2646 768 2 v 22 2674 a Fg(3)36
13462690 y Ff(These)e(gates)g(generate)g(some)g(output)h(from)h(the)f(set)g
1347(of)g(pre-speci\256ed)e(outputs.)906 2835 y Fq(12)p eop
1348%%Page: 13 14
134913 13 bop -31 11 a Fl(2.7)58 b(BLIF)-31 115 y Fq(BLIF)16
1350b(\(Berkele)o(y)g(Logic)e(Interchange)h(F)o(ormat\))g(is)f(an)h
1351(intermediate)f(format)h(to)f(describe)h(sequential)f(circuits.)26
1352b(It)-31 172 y(has)12 b(been)h(de\256ned)f(as)g(an)h(entry)e(point)h
1353(to)f(logic)h(optimizers)f(such)g(as)i(SIS,)g(the)f(synthesis)f(system)
1354g(de)o(v)o(eloped)h(at)g(UC)-31 228 y(Berkele)o(y)m(.)17
1355b(A)10 b(BLIF)h(\256le)f(represents)h(a)f(sequential)f(circuit)h
1356(either)f(as)h(an)h(interconnection)e(of)h(logic)f(gates)g(and)h
1357(latches)-31 284 y(or)f(as)h(the)f(state)g(transition)f(table)h(of)g(a)
1358h(\256nite)f(state)g(machine)g(\(FSM\))h(or)f(in)g(both)f(ways)h(\(an)h
1359(FSM)f(and)g(a)h(corresponding)-31 341 y(gate-le)o(v)o(el)g
1360(implementation\).)k(It)9 b(is)g(possible)f(to)h(ha)o(v)o(e)i(VIS)f
1361(and)f(SIS)i(interact,)f(by)f(sending)g(to)g(SIS)h(a)g(binary)f
1362(encoded)-31 397 y(and)h(deterministic)f(sequential)g(circuit)h(and)h
1363(recei)o(ving)f(back)g(an)g(optimized)f(v)o(ersion)h(of)h(the)f(same.)
136416 b(Notice)10 b(that)g(e)o(v)o(en)-31 454 y(though)g(SIS)h(can)g(also)
1365g(handle)f(KISS)i(\256les)e(\(i.e.,)j(partially)c(encoded)i(and)g
1366(partially)f(deterministic)f(FSMs\),)i(currently)-31
1367510 y(VIS)17 b(outputs)f(hardware)h(FSM)g(descriptions)e(\(i.e.,)20
1368b(a)d(netlist)e(describing)h(completely)g(encoded)h(and)f(completely)
1369-31 567 y(deterministic)11 b(FSMs\),)i(for)f(SIS)h(input.)18
1370b(F)o(or)13 b(a)g(description)e(of)h(BLIF)h(and)f(SIS)h(we)g(refer)g
1371(to)f(the)g(tutorial)f(paper)24 b([4)q(].)-31 623 y(A)12
1372b(BLIF)g(description)e(can)i(be)g(read)g(directly)f(into)f(VIS)i(by)f
1373(the)g(command)g Fi(r)n(ead)p 1277 623 14 2 v 16 w(blif)p
1374Fq(,)g(while)g Fi(write)p 1584 623 V 16 w(blif)g Fq(con)n(v)o(erts)g
1375(the)-31 680 y(internal)g(VIS)g(data)h(structure)f(into)f(a)h(BLIF)h
1376(\256le)g(readable)g(by)e(SIS.)j(The)e(synthesis)f(path)g(from)h(VIS)h
1377(to)f(SIS)h(and)f(back)-31 736 y(and)h(related)f(commands)f(are)j
1378(described)e(in)g(Chapter)h(5.)-31 883 y Fl(2.8)58 b(Nondeterminism)16
1379b(and)f(Incomplete)g(Speci\256cation)-31 986 y Fq(The)9
1380b(only)g(form)g(of)g(nondeterminism)e(supported)h(in)h(VIS)g(is)g(the)g
1381(construct)g Fm($ND)h Fq(in)f(V)-5 b(erilog.)15 b(A)9
1382b(system)f(so)h(described)-31 1043 y(is)k(considered)g(internally)f(as)
1383i(deterministic,)e(because)i(pseudo-input)e(v)o(ariables)h(are)h
1384(introduced)e(to)h(\252control\272)g(this)-31 1099 y(form)g(of)g
1385(nondeterminism.)19 b(Pseudo-input)12 b(v)o(ariables)h(are,)h(by)f
1386(de\256nition,)g(those)f(v)o(ariables)h(introduced)f(by)h(a)g
1387Fm($ND)-31 1156 y Fq(construct.)31 b(A)16 b(V)-5 b(erilog)16
1388b(nondeterministic)e(assignment,)i(like)g Fm(assign)29
1389b(rand_cho)q(ice)i(=)d($ND\(0,1\);)20 b Fq(is)-31 1212
1390y(translated)11 b(by)g Fo(VL)p Fq(2)p Fo(MV)i Fq(into)d(the)i(table:)
1391-31 1301 y Fd(#)20 b(assign)f(rand_choice)40 b(=)19 b($NDset)h(\()g
1392(0,1)f(\))-31 1341 y(.names)h(->)f(rand_choice)-31 1380
1393y(0)-31 1420 y(1)40 1526 y Fq(There)e(are)h(other)f(ways)f(of)h
1394(introducing)f(nondeterminism)f(in)h(V)-5 b(erilog)17
1395b(that)f(are)i(supported)e(by)h Fo(VL)p Fq(2)p Fo(MV)h
1396Fq(and)-31 1583 y(HSIS,)13 b(b)o(ut)e(are)h(not)f(supported)f(by)h
1397(VIS.)40 1639 y Fo(VL)p Fq(2)p Fo(MV)k Fq(always)f(produces)g
1398(completely)f(speci\256ed)h(BLIF-MV)h(tables.)25 b(Ho)o(we)o(v)o(er)n
1399(,)16 b(a)f(BLIF-MV)g(\256le)f(not)g(pro-)-31 1695 y(duced)k(by)f
1400Fo(VL)p Fq(2)p Fo(MV)i Fq(\(b)o(ut)e(by)g(another)h(tool)e(or)i
1401(manually\))e(may)h(contain)g(incomplete)g(speci\256cation.)35
1402b(When)17 b(the)-31 1752 y(internal)f(data)g(structure)g(is)f(b)o
1403(uilt,)i(each)f(table)g(is)g(checked)g(for)g(determinism)e(and)i
1404(complete)g(speci\256cation)g(\(with)-31 1808 y(the)h(e)o(xception)g
1405(of)h(the)f(pseudo-inputs\).)33 b(This)17 b(is)f(a)i(conserv)o(ati)o(v)
1406o(e)f(test,)i(in)e(the)g(sense)g(that)g(one)g(or)g(more)h(tables)-31
14071865 y(may)12 b(be)h(nondeterministic)e(while)h(the)g(entire)g(network)
1408g(is)g(deterministic.)19 b(Similarly)m(,)12 b(one)h(or)f(more)h(tables)
1409f(may)g(be)-31 1921 y(incompletely)e(speci\256ed)i(while)f(the)g
1410(network)f(is)h(completely)g(speci\256ed.)-31 2068 y
1411Fl(2.9)58 b(Example:)22 b(a)14 b(T)l(raf\256c)h(Light)g(Contr)o(oller)
1412-31 2172 y Fq(In)f(this)e(tutorial,)h(we)g(will)g(use)g(the)g(e)o
1413(xample)g(of)h(a)f(traf)o(\256c)i(light)d(controller)h(\(TLC\),)h
1414(\256rst)f(introduced)g(by)g(Mead)g(and)-31 2228 y(Conway)e([5],)h(to)f
1415(illustrate)g(se)o(v)o(eral)g(concepts.)40 2284 y(A)19
1416b(little)g(used)g(farm)h(road)g(intersects)f(a)h(multi-lane)f(highway;)
1417j(a)e(traf)o(\256c)h(light)d(controls)h(the)h(traf)o(\256c)h(at)e(the)
1418-31 2341 y(intersection.)h(The)13 b(light)f(controller)g(is)h
1419(implemented)e(to)h(maximize)g(the)h(time)f(the)h(highway)e(light)h
1420(remains)g(green.)-31 2397 y(The)g Fi(main)e Fq(module)h(ties)g
1421(together)g(a)g(timer)n(,)h(a)f(sensor)n(,)h(a)g(farm)f(light)f
1422(control)h(and)g(a)h(highway)e(control)h(submodules.)40
14232454 y(The)16 b(timer)g(submodule)e(implements)g(a)j(timer)n(,)g(that)f
1424(outputs)f(\252short\272)h(and)g("long")f(timeouts.)29
1425b(The)16 b(highway)-31 2510 y(light)f(stays)h(green)g(for)g(at)h(least)
1426e(\252long\272)h(time.)31 b(An)o(y)16 b(time)f(after)i(\252long\272)f
1427(time,)h(if)f(there)g(is)g(a)g(car)h(waiting)e(on)g(the)-31
14282567 y(farm)h(road,)i(then)d(the)h(farm)g(light)f(turns)g(green.)31
1429b(The)16 b(farm)g(light)e(remains)i(green)g(until)f(there)h(are)h(no)f
1430(more)g(cars)-31 2623 y(on)f(the)g(farm)f(road,)j(or)e(until)e(the)i
1431(long)f(timer)h(e)o(xpires.)27 b(The)15 b(yello)o(w)f(light)g(for)h
1432(both)f(directions)h(stays)f(yello)o(w)g(for)-31 2680
1433y(\252short\272)h(time.)27 b(Note)14 b(that)h(only)f(a)h(single)f
1434(timer)g(is)h(used)f(for)h(both)f(the)h(farm)g(road)g(and)g(highway)e
1435(controllers.)27 b(In)906 2835 y(13)p eop
1436%%Page: 14 15
143714 14 bop -31 11 a Fq(theory)m(,)15 b(this)e(could)h(lead)g(to)f
1438(con\257icts;)i(as)g(implemented,)e(such)h(con\257icts)g(are)h(a)o(v)o
1439(oided.)24 b(From)14 b(the)g(ST)l(AR)m(T)h(state,)-31
144068 y(the)c(timer)f(produces)h(the)g(signal)f(\252short\272)h(after)h(a)
1441f(nondeterministic)e(amount)h(of)h(time.)16 b(The)c(signal)e
1442(\252short\272)h(remains)-31 124 y(asserted)k(until)f(the)h(timer)f(is)
1443h(reset)g(\(via)g(the)g(signal)f(\252start\272\).)28
1444b(From)15 b(the)g(SHOR)m(T)h(state,)g(the)f(timer)f(produces)h(the)-31
1445181 y(signal)c(\252long\272)g(after)i(a)f(nondeterministic)d(amount)i
1446(of)h(time.)17 b(The)12 b(signal)e(\252long\272)i(remains)f(asserted)h
1447(until)e(the)i(timer)-31 237 y(is)g(reset.)21 b(Notice)12
1448b(that)g(the)h(use)f(of)h(nondeterminism)d(in)i(the)h(description)e(of)
1449i(the)f(timer)g(models)g(an)h(in\256nite)f(number)-31
1450294 y(of)g(actual)f(implementations,)e(each)j(with)f(a)h(dif)o(ferent)f
1451(set-up)g(for)h(the)f(\252short\272)g(and)h(\252long\272)f(periods.)40
1452350 y(The)h(farm)g(light)f(stays)g(RED)i(until)e(it)g(is)h(enabled)g
1453(by)g(the)g(highway)f(control.)18 b(At)12 b(this)f(point,)h(it)f
1454(resets)h(the)g(timer)n(,)-31 407 y(and)e(mo)o(v)o(es)g(to)f(GREEN.)h
1455(It)g(stays)f(in)g(GREEN)h(until)f(there)h(are)h(no)e(cars,)i(or)f(the)
1456f(long)g(timer)h(e)o(xpires.)16 b(At)10 b(this)e(point,)i(it)-31
1457463 y(mo)o(v)o(es)h(to)g(YELLO)n(W)g(and)g(resets)h(the)e(timer)m(.)17
1458b(It)11 b(stays)g(in)g(YELLO)n(W)g(until)f(the)h(short)f(timer)h(e)o
1459(xpires.)17 b(At)11 b(this)f(point,)-31 519 y(it)h(mo)o(v)o(es)g(to)g
1460(RED)h(and)f(enables)h(the)f(highway)f(controller)m(.)40
1461576 y(The)i(highway)f(light)g(stays)g(RED)i(until)e(it)g(is)h(enabled)g
1462(by)g(the)g(farm)g(control.)18 b(At)12 b(this)f(point,)h(it)f(resets)h
1463(the)g(timer)n(,)-31 632 y(and)f(mo)o(v)o(es)g(to)f(GREEN.)h(It)g
1464(stays)f(in)g(GREEN)h(until)f(there)h(are)g(cars)h(on)e(the)h(farm)f
1465(road)h(and)g(the)f(long)g(timer)h(e)o(xpires.)-31 689
1466y(At)e(this)g(point,)g(it)g(mo)o(v)o(es)g(to)g(YELLO)n(W)h(and)f
1467(resets)g(the)h(timer)m(.)16 b(It)9 b(stays)g(in)g(YELLO)n(W)g(until)g
1468(the)g(short)g(timer)g(e)o(xpires.)-31 745 y(At)i(this)g(point,)f(it)h
1469(mo)o(v)o(es)g(to)g(RED)h(and)f(enables)h(the)f(farm)g(controller)m(.)
147040 802 y(There)h(is)f(a)h(single)f(sensor)g(that)g(detects)g(the)h
1471(presence)g(of)g(a)g(car)g(in)f(either)h(direction)f(of)h(the)f(farm)g
1472(road.)18 b(At)12 b(each)-31 858 y(clock)f(tick,)h(it)f
1473(nondeterministically)d(reports)k(that)f(a)g(car)h(is)f(present)h(or)f
1474(not.)40 915 y(The)19 b(fact)h(that)f(the)g(timer)h(is)f(a)g(Moore)h
1475(machine)f(\(while)g(the)h(highway)e(and)i(farm)f(controllers)g(are)h
1476(Mealy)-31 971 y(machines\))f(ensures)g(that)g(the)g(component)f(FSMs)h
1477(can)h(be)f(combined)f(to)h(form)g(a)h(well-de\256ned)f(product)g(FSM)
1478-31 1028 y(\(without)10 b(combinational)g(c)o(ycles\).)297
14791087 y
1480 20138540 16782118 0 0 14077296 11643371 startTexFig
1481 297 1087 a
1482%%BeginDocument: tlc_block.eps
1483/$F2psDict 200 dict def
1484$F2psDict begin
1485$F2psDict /mtrx matrix put
1486/col-1 {} def
1487/col0 {0.000 0.000 0.000 srgb} bind def
1488/col1 {0.000 0.000 1.000 srgb} bind def
1489/col2 {0.000 1.000 0.000 srgb} bind def
1490/col3 {0.000 1.000 1.000 srgb} bind def
1491/col4 {1.000 0.000 0.000 srgb} bind def
1492/col5 {1.000 0.000 1.000 srgb} bind def
1493/col6 {1.000 1.000 0.000 srgb} bind def
1494/col7 {1.000 1.000 1.000 srgb} bind def
1495/col8 {0.000 0.000 0.560 srgb} bind def
1496/col9 {0.000 0.000 0.690 srgb} bind def
1497/col10 {0.000 0.000 0.820 srgb} bind def
1498/col11 {0.530 0.810 1.000 srgb} bind def
1499/col12 {0.000 0.560 0.000 srgb} bind def
1500/col13 {0.000 0.690 0.000 srgb} bind def
1501/col14 {0.000 0.820 0.000 srgb} bind def
1502/col15 {0.000 0.560 0.560 srgb} bind def
1503/col16 {0.000 0.690 0.690 srgb} bind def
1504/col17 {0.000 0.820 0.820 srgb} bind def
1505/col18 {0.560 0.000 0.000 srgb} bind def
1506/col19 {0.690 0.000 0.000 srgb} bind def
1507/col20 {0.820 0.000 0.000 srgb} bind def
1508/col21 {0.560 0.000 0.560 srgb} bind def
1509/col22 {0.690 0.000 0.690 srgb} bind def
1510/col23 {0.820 0.000 0.820 srgb} bind def
1511/col24 {0.500 0.190 0.000 srgb} bind def
1512/col25 {0.630 0.250 0.000 srgb} bind def
1513/col26 {0.750 0.380 0.000 srgb} bind def
1514/col27 {1.000 0.500 0.500 srgb} bind def
1515/col28 {1.000 0.630 0.630 srgb} bind def
1516/col29 {1.000 0.750 0.750 srgb} bind def
1517/col30 {1.000 0.880 0.880 srgb} bind def
1518/col31 {1.000 0.840 0.000 srgb} bind def
1519
1520end
1521save
1522-114.0 222.0 translate
15231 -1 scale
1524
1525/clp {closepath} bind def
1526/ef {eofill} bind def
1527/gr {grestore} bind def
1528/gs {gsave} bind def
1529/l {lineto} bind def
1530/m {moveto} bind def
1531/n {newpath} bind def
1532/s {stroke} bind def
1533/slc {setlinecap} bind def
1534/slj {setlinejoin} bind def
1535/slw {setlinewidth} bind def
1536/srgb {setrgbcolor} bind def
1537/rot {rotate} bind def
1538/sc {scale} bind def
1539/tr {translate} bind def
1540/tnt {dup dup currentrgbcolor
1541  4 -2 roll dup 1 exch sub 3 -1 roll mul add
1542  4 -2 roll dup 1 exch sub 3 -1 roll mul add
1543  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
1544  bind def
1545/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
1546  4 -2 roll mul srgb} bind def
1547 /DrawEllipse {
1548        /endangle exch def
1549        /startangle exch def
1550        /yrad exch def
1551        /xrad exch def
1552        /y exch def
1553        /x exch def
1554        /savematrix mtrx currentmatrix def
1555        x y tr xrad yrad sc 0 0 1 startangle endangle arc
1556        closepath
1557        savematrix setmatrix
1558        } def
1559
1560/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
1561/$F2psEnd {$F2psEnteredState restore end} def
1562
1563$F2psBegin
156410 setmiterlimit
1565 0.06000 0.06000 sc
15667.500 slw
1567% Polyline
1568n 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 
1569% Ellipse
1570n 5115 3144 124 124 0 360 DrawEllipse gs col2 1.00 shd ef gr gs col-1 s gr
1571
1572% Ellipse
1573n 4819 2703 124 124 0 360 DrawEllipse gs col4 1.00 shd ef gr gs col-1 s gr
1574
1575% Polyline
1576n 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 
1577% Ellipse
1578n 4545 3154 124 124 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col-1 s gr
1579
1580% Polyline
1581n 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 
1582% Polyline
1583n 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 
1584% Polyline
1585n 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 
1586% Polyline
1587n 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 
1588% Polyline
1589n 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 
1590% Polyline
1591        [1 50.0] 50.000000 setdash
1592n 3885 1810 m 5125 2455 l  gs col-1 s gr        [] 0 setdash
1593% Polyline
1594        [1 50.0] 50.000000 setdash
1595n 3105 1810 m 4255 3405 l  gs col-1 s gr        [] 0 setdash
1596% Polyline
1597n 4045 1795 m 4285 1795 l  4285 2195 l  1920 2195 l  1920 1820 l  2095 1815 l  gs col-1 s gr 
1598n 1974.19 1788.44 m 2095.00 1815.00 l 1975.91 1848.41 l gs col-1 s gr
1599% Polyline
1600n 2605 1845 m 2945 1845 l  gs col-1 s gr 
1601n 2825.00 1815.00 m 2945.00 1845.00 l 2825.00 1875.00 l gs col-1 s gr
1602% Polyline
1603n 2605 1760 m 2950 1760 l  gs col-1 s gr 
1604n 2830.00 1730.00 m 2950.00 1760.00 l 2830.00 1790.00 l gs col-1 s gr
1605% Polyline
1606n 2605 1005 m 2945 1005 l  gs col-1 s gr 
1607n 2825.00 975.00 m 2945.00 1005.00 l 2825.00 1035.00 l gs col-1 s gr
1608% Polyline
1609n 4055 1385 m 4335 1385 l  gs col-1 s gr 
1610n 4215.00 1355.00 m 4335.00 1385.00 l 4215.00 1415.00 l gs col-1 s gr
1611% Polyline
1612n 4045 950 m 4335 950 l  gs col-1 s gr 
1613n 4215.00 920.00 m 4335.00 950.00 l 4215.00 980.00 l gs col-1 s gr
1614        [1 50.0] 50.000000 setdash
1615% Ellipse
1616n 4798 3026 660 660 0 360 DrawEllipse gs col-1 s gr
1617        [] 0 setdash
1618% Polyline
1619n 4894 2808 m 5049 3038 l  gs col-1 s gr 
1620n 5006.82 2921.72 m 5049.00 3038.00 l 4957.06 2955.25 l gs col-1 s gr
1621/Times-Roman findfont 180.00 scalefont setfont
16224494 3208 m
1623gs 1 -1 sc (Y) col-1 show gr
1624% Polyline
1625n 4994 3158 m 4669 3158 l  gs col-1 s gr 
1626n 4789.00 3188.00 m 4669.00 3158.00 l 4789.00 3128.00 l gs col-1 s gr
1627% Polyline
1628n 4559 3028 m 4739 2808 l  gs col-1 s gr 
1629n 4639.79 2881.88 m 4739.00 2808.00 l 4686.23 2919.87 l gs col-1 s gr
1630% Interp Spline
1631n 4729 2633 m
1632        4656.37 2652.35 4623.87 2649.85 4599 2623 curveto
1633        4577.38 2599.66 4593.38 2558.30 4599 2538 curveto
1634        4606.71 2510.15 4632.16 2456.28 4659 2438 curveto
1635        4680.00 2423.70 4726.31 2420.18 4749 2423 curveto
1636        4770.71 2425.70 4814.19 2433.34 4829 2458 curveto
1637        4840.06 2476.41 4825.31 2508.20 4824 2523 curveto
1638        4823.24 2531.55 4821.99 2544.05 4819 2573 curveto
1639 gs col-1 s gr
1640
1641n 4857.06 2496.51 m 4819.00 2573.00 l 4797.38 2490.34 l gs col-1 s gr
1642% Interp Spline
1643n 5189 3058 m
1644        5169.65 2985.00 5172.15 2952.00 5199 2928 curveto
1645        5222.34 2907.00 5263.70 2923.00 5284 2928 curveto
1646        5311.85 2935.00 5365.72 2961.00 5384 2988 curveto
1647        5398.30 3009.00 5401.82 3055.00 5399 3078 curveto
1648        5396.30 3099.00 5388.66 3143.00 5364 3158 curveto
1649        5345.59 3169.00 5313.80 3154.00 5299 3153 curveto
1650        5290.45 3152.00 5277.95 3150.00 5249 3148 curveto
1651 gs col-1 s gr
1652
1653n 5326.74 3183.44 m 5249.00 3148.00 l 5330.88 3123.58 l gs col-1 s gr
1654% Interp Spline
1655n 4469 3258 m
1656        4488.00 3331.00 4485.00 3364.00 4459 3388 curveto
1657        4435.00 3409.00 4394.00 3393.00 4374 3388 curveto
1658        4346.00 3381.00 4293.00 3355.00 4274 3328 curveto
1659        4260.00 3307.00 4257.00 3261.00 4259 3238 curveto
1660        4262.00 3217.00 4270.00 3173.00 4294 3158 curveto
1661        4313.00 3147.00 4344.00 3162.00 4359 3163 curveto
1662        4367.00 3164.00 4380.00 3166.00 4409 3168 curveto
1663 gs col-1 s gr
1664
1665n 4331.25 3132.57 m 4409.00 3168.00 l 4327.13 3192.42 l gs col-1 s gr
1666/Times-Roman findfont 180.00 scalefont setfont
16673165 1220 m
1668gs 1 -1 sc (controller) col-1 show gr
1669/Times-Roman findfont 180.00 scalefont setfont
16703160 1085 m
1671gs 1 -1 sc (farm road) col-1 show gr
1672/Times-Roman findfont 180.00 scalefont setfont
16734385 954 m
1674gs 1 -1 sc (farm road) col-1 show gr
1675/Times-Roman findfont 180.00 scalefont setfont
16764510 1110 m
1677gs 1 -1 sc (light) col-1 show gr
1678/Times-Roman findfont 180.00 scalefont setfont
16794440 1382 m
1680gs 1 -1 sc (highway) col-1 show gr
1681/Times-Roman findfont 180.00 scalefont setfont
16824520 1538 m
1683gs 1 -1 sc (light) col-1 show gr
1684/Times-Roman findfont 180.00 scalefont setfont
16852140 1065 m
1686gs 1 -1 sc (sensor) col-1 show gr
1687/Times-Roman findfont 180.00 scalefont setfont
16882165 1856 m
1689gs 1 -1 sc (timer) col-1 show gr
1690/Times-Roman findfont 180.00 scalefont setfont
16913210 1578 m
1692gs 1 -1 sc (highway) col-1 show gr
1693/Times-Roman findfont 180.00 scalefont setfont
16943180 1739 m
1695gs 1 -1 sc (controller) col-1 show gr
1696/Times-Roman findfont 180.00 scalefont setfont
16974779 2758 m
1698gs 1 -1 sc (R) col-1 show gr
1699/Times-Roman findfont 180.00 scalefont setfont
17005059 3188 m
1701gs 1 -1 sc (G) col-1 show gr
1702$F2psEnd
1703restore
1704%%EndDocument
1705
1706 endTexFig
1707 455 2248 a Fq(Figure)h(2.1:)17 b(Block)11 b(diagram)g(of)h(traf)o
1708(\256c)g(light)e(controller)m(.)40 2353 y(Fig.)h(2.1)f(is)g(a)h(block)f
1709(diagram)g(for)h(the)f(entire)g(controller)n(,)h(and)f(Fig.)h(2.2)g
1710(describes)f(the)g(four)h(FSMs)g(that)f(make)f(up)-31
17112410 y(the)i(system.)40 2466 y(This)f(entire)i(e)o(xample)f(is)g
1712(written)g(in)g(V)-5 b(erilog)11 b(as:)-31 2553 y Fd(/*)20
1713b(Written)f(by)h(Tom)g(Shiple,)f(25)h(October)f(1995)h(*/)-31
17142632 y(/*)g(Symbolic)f(variables)h(*/)-31 2671 y(typedef)g(enum)f
1715({YES,)h(NO})f(boolean;)-31 2711 y(typedef)h(enum)f({START,)h(SHORT,)f
1716(LONG})h(timer_state;)906 2835 y Fq(14)p eop
1717%%Page: 15 16
171815 15 bop 49 -34 a
1719 27970197 20138535 0 0 44928942 32364625 startTexFig
1720 49 -34 a
1721%%BeginDocument: tlc.eps
1722/$F2psDict 200 dict def
1723$F2psDict begin
1724$F2psDict /mtrx matrix put
1725/col-1 {} def
1726/col0 {0.000 0.000 0.000 srgb} bind def
1727/col1 {0.000 0.000 1.000 srgb} bind def
1728/col2 {0.000 1.000 0.000 srgb} bind def
1729/col3 {0.000 1.000 1.000 srgb} bind def
1730/col4 {1.000 0.000 0.000 srgb} bind def
1731/col5 {1.000 0.000 1.000 srgb} bind def
1732/col6 {1.000 1.000 0.000 srgb} bind def
1733/col7 {1.000 1.000 1.000 srgb} bind def
1734/col8 {0.000 0.000 0.560 srgb} bind def
1735/col9 {0.000 0.000 0.690 srgb} bind def
1736/col10 {0.000 0.000 0.820 srgb} bind def
1737/col11 {0.530 0.810 1.000 srgb} bind def
1738/col12 {0.000 0.560 0.000 srgb} bind def
1739/col13 {0.000 0.690 0.000 srgb} bind def
1740/col14 {0.000 0.820 0.000 srgb} bind def
1741/col15 {0.000 0.560 0.560 srgb} bind def
1742/col16 {0.000 0.690 0.690 srgb} bind def
1743/col17 {0.000 0.820 0.820 srgb} bind def
1744/col18 {0.560 0.000 0.000 srgb} bind def
1745/col19 {0.690 0.000 0.000 srgb} bind def
1746/col20 {0.820 0.000 0.000 srgb} bind def
1747/col21 {0.560 0.000 0.560 srgb} bind def
1748/col22 {0.690 0.000 0.690 srgb} bind def
1749/col23 {0.820 0.000 0.820 srgb} bind def
1750/col24 {0.500 0.190 0.000 srgb} bind def
1751/col25 {0.630 0.250 0.000 srgb} bind def
1752/col26 {0.750 0.380 0.000 srgb} bind def
1753/col27 {1.000 0.500 0.500 srgb} bind def
1754/col28 {1.000 0.630 0.630 srgb} bind def
1755/col29 {1.000 0.750 0.750 srgb} bind def
1756/col30 {1.000 0.880 0.880 srgb} bind def
1757/col31 {1.000 0.840 0.000 srgb} bind def
1758
1759end
1760save
1761-49.0 552.0 translate
17621 -1 scale
1763
1764/clp {closepath} bind def
1765/ef {eofill} bind def
1766/gr {grestore} bind def
1767/gs {gsave} bind def
1768/l {lineto} bind def
1769/m {moveto} bind def
1770/n {newpath} bind def
1771/s {stroke} bind def
1772/slc {setlinecap} bind def
1773/slj {setlinejoin} bind def
1774/slw {setlinewidth} bind def
1775/srgb {setrgbcolor} bind def
1776/rot {rotate} bind def
1777/sc {scale} bind def
1778/tr {translate} bind def
1779/tnt {dup dup currentrgbcolor
1780  4 -2 roll dup 1 exch sub 3 -1 roll mul add
1781  4 -2 roll dup 1 exch sub 3 -1 roll mul add
1782  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
1783  bind def
1784/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
1785  4 -2 roll mul srgb} bind def
1786 /DrawEllipse {
1787        /endangle exch def
1788        /startangle exch def
1789        /yrad exch def
1790        /xrad exch def
1791        /y exch def
1792        /x exch def
1793        /savematrix mtrx currentmatrix def
1794        x y tr xrad yrad sc 0 0 1 startangle endangle arc
1795        closepath
1796        savematrix setmatrix
1797        } def
1798
1799 /DrawSplineSection {
1800        /y3 exch def
1801        /x3 exch def
1802        /y2 exch def
1803        /x2 exch def
1804        /y1 exch def
1805        /x1 exch def
1806        /xa x1 x2 x1 sub 0.666667 mul add def
1807        /ya y1 y2 y1 sub 0.666667 mul add def
1808        /xb x3 x2 x3 sub 0.666667 mul add def
1809        /yb y3 y2 y3 sub 0.666667 mul add def
1810        x1 y1 lineto
1811        xa ya xb yb x3 y3 curveto
1812        } def
1813
1814/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
1815/$F2psEnd {$F2psEnteredState restore end} def
1816
1817$F2psBegin
181810 setmiterlimit
1819 0.06000 0.06000 sc
18207.500 slw
1821% Arc
1822n 2491.90 2242.12 m 2401.00 2326.00 l 2441.74 2209.21 l gs col-1 s gr
1823n 2069.10 2108.28 396.94 132.49 33.26 arc
1824gs col-1 s gr
1825
1826% Ellipse
1827n 2101 2363 302 302 0 360 DrawEllipse gs col-1 s gr
1828
1829% Arc
1830n 5416.90 2317.12 m 5326.00 2401.00 l 5366.74 2284.21 l gs col-1 s gr
1831n 4994.10 2183.28 396.94 132.49 33.26 arc
1832gs col-1 s gr
1833
1834% Ellipse
1835n 5026 2438 302 302 0 360 DrawEllipse gs col-1 s gr
1836
1837% Arc
1838n 3766.90 4417.12 m 3676.00 4501.00 l 3716.74 4384.21 l gs col-1 s gr
1839n 3344.10 4283.28 396.94 132.49 33.26 arc
1840gs col-1 s gr
1841
1842% Ellipse
1843n 3376 4538 302 302 0 360 DrawEllipse gs col-1 s gr
1844
1845% Arc
1846n 5866.90 7042.12 m 5776.00 7126.00 l 5816.74 7009.21 l gs col-1 s gr
1847n 5444.10 6908.28 396.94 132.49 33.26 arc
1848gs col-1 s gr
1849
1850% Ellipse
1851n 5476 7163 302 302 0 360 DrawEllipse gs col-1 s gr
1852
1853% Arc
1854n 3915.90 8617.12 m 3825.00 8701.00 l 3865.74 8584.21 l gs col-1 s gr
1855n 3493.10 8483.27 396.94 132.49 33.26 arc
1856gs col-1 s gr
1857
1858% Ellipse
1859n 3525 8738 302 302 0 360 DrawEllipse gs col-1 s gr
1860
1861% Arc
1862n 11116.90 2241.12 m 11026.00 2325.00 l 11066.74 2208.21 l gs col-1 s gr
1863n 10694.10 2107.28 396.94 132.49 33.26 arc
1864gs col-1 s gr
1865
1866% Ellipse
1867n 10726 2362 302 302 0 360 DrawEllipse gs col-1 s gr
1868
1869% Arc
1870n 11341.90 7042.12 m 11251.00 7126.00 l 11291.74 7009.21 l gs col-1 s gr
1871n 10919.10 6908.28 396.94 132.49 33.26 arc
1872gs col-1 s gr
1873
1874% Ellipse
1875n 10951 7163 302 302 0 360 DrawEllipse gs col-1 s gr
1876
1877% Arc
1878n 9766.91 8767.12 m 9676.00 8851.00 l 9716.74 8734.21 l gs col-1 s gr
1879n 9344.10 8633.27 396.94 132.49 33.26 arc
1880gs col-1 s gr
1881
1882% Ellipse
1883n 9376 8888 302 302 0 360 DrawEllipse gs col-1 s gr
1884
1885% Arc
1886n 8416.90 7042.12 m 8326.00 7126.00 l 8366.74 7009.21 l gs col-1 s gr
1887n 7994.10 6908.28 396.94 132.49 33.26 arc
1888gs col-1 s gr
1889
1890% Ellipse
1891n 8026 7163 302 302 0 360 DrawEllipse gs col-1 s gr
1892
1893% Arc
1894n 8341.90 2242.12 m 8251.00 2326.00 l 8291.74 2209.21 l gs col-1 s gr
1895n 7919.10 2108.28 396.94 132.49 33.26 arc
1896gs col-1 s gr
1897
1898% Ellipse
1899n 7951 2363 302 302 0 360 DrawEllipse gs col-1 s gr
1900
1901% Arc
1902n 2490.90 6967.12 m 2400.00 7051.00 l 2440.74 6934.21 l gs col-1 s gr
1903n 2068.10 6833.28 396.94 132.49 33.26 arc
1904gs col-1 s gr
1905
1906% Ellipse
1907n 2100 7088 302 302 0 360 DrawEllipse gs col-1 s gr
1908
1909% Arc
1910n 10613.09 7222.32 m 10725.00 7275.00 l 10601.46 7281.18 l gs col-1 s gr
1911n 8962.50 16200.00 9097.36 -94.02 -78.83 arc
1912gs col-1 s gr
1913
1914% Polyline
1915n 7575 7275 m 7800 7350 l  7575 7425 l  gs col-1 s gr 
1916% Polyline
1917n 7417 2422 m 7642 2497 l  7417 2572 l  gs col-1 s gr 
1918% Polyline
1919n 1642 2422 m 1867 2497 l  1642 2572 l  gs col-1 s gr 
1920% Polyline
1921n 1650 7200 m 1875 7275 l  1650 7350 l  gs col-1 s gr 
1922% Open spline
1923n 8250.00 2475.00 m 8812.50 2362.50 l
1924        8812.50 2362.50 9375.00 2250.00 9937.50 2400.00 DrawSplineSection
1925        10500.00 2550.00 l  gs col-1 s gr
1926
1927n 10391.78 2490.09 m 10500.00 2550.00 l 10376.32 2548.07 l gs col-1 s gr
1928% Open spline
1929n 10650.00 2625.00 m 10012.50 2850.00 l
1930        10012.50 2850.00 9375.00 3075.00 8737.50 2850.00 DrawSplineSection
1931        8100.00 2625.00 l  gs col-1 s gr
1932
1933n 8203.17 2693.23 m 8100.00 2625.00 l 8223.14 2636.65 l gs col-1 s gr
1934% Open spline
1935n 2400.00 7125.00 m 3187.50 7012.50 l
1936        3187.50 7012.50 3975.00 6900.00 4575.00 7087.50 DrawSplineSection
1937        5175.00 7275.00 l  gs col-1 s gr
1938
1939n 5069.41 7210.57 m 5175.00 7275.00 l 5051.51 7267.84 l gs col-1 s gr
1940% Open spline
1941n 3300.00 8925.00 m 2587.50 8737.50 l
1942        2587.50 8737.50 1875.00 8550.00 1950.00 7987.50 DrawSplineSection
1943        2025.00 7425.00 l  gs col-1 s gr
1944
1945n 1979.40 7539.98 m 2025.00 7425.00 l 2038.88 7547.91 l gs col-1 s gr
1946% Open spline
1947n 9150.00 9150.00 m 8475.00 8775.00 l
1948        8475.00 8775.00 7800.00 8400.00 7875.00 7950.00 DrawSplineSection
1949        7875.00 7950.00 7950.00 7500.00 7950.00 7462.50 DrawSplineSection
1950        7950.00 7425.00 l  gs col-1 s gr
1951
1952n 7920.00 7545.00 m 7950.00 7425.00 l 7980.00 7545.00 l gs col-1 s gr
1953% Open spline
1954n 10950.00 7500.00 m 10800.00 8175.00 l
1955        10800.00 8175.00 10650.00 8850.00 10125.00 8962.50 DrawSplineSection
1956        9600.00 9075.00 l  gs col-1 s gr
1957
1958n 9723.62 9079.19 m 9600.00 9075.00 l 9711.05 9020.52 l gs col-1 s gr
1959% Open spline
1960n 5400.00 7500.00 m 5025.00 8175.00 l
1961        5025.00 8175.00 4650.00 8850.00 4200.00 8850.00 DrawSplineSection
1962        3750.00 8850.00 l  gs col-1 s gr
1963
1964n 3870.00 8880.00 m 3750.00 8850.00 l 3870.00 8820.00 l gs col-1 s gr
1965% Open spline
1966n 5175.00 2700.00 m 4912.50 3637.50 l
1967        4912.50 3637.50 4650.00 4575.00 4125.00 4650.00 DrawSplineSection
1968        3600.00 4725.00 l  gs col-1 s gr
1969
1970n 3723.04 4737.73 m 3600.00 4725.00 l 3714.55 4678.33 l gs col-1 s gr
1971% Open spline
1972n 2175.00 2625.00 m 2925.00 2887.50 l
1973        2925.00 2887.50 3675.00 3150.00 4275.00 2925.00 DrawSplineSection
1974        4875.00 2700.00 l  gs col-1 s gr
1975
1976n 4752.11 2714.04 m 4875.00 2700.00 l 4773.17 2770.22 l gs col-1 s gr
1977% Open spline
1978n 3150.00 4725.00 m 2475.00 4350.00 l
1979        2475.00 4350.00 1800.00 3975.00 1875.00 3300.00 DrawSplineSection
1980        1950.00 2625.00 l  gs col-1 s gr
1981
1982n 1906.93 2740.95 m 1950.00 2625.00 l 1966.56 2747.58 l gs col-1 s gr
1983% Open spline
1984n 4800.00 2550.00 m 4200.00 2437.50 l
1985        4200.00 2437.50 3600.00 2325.00 3000.00 2400.00 DrawSplineSection
1986        3000.00 2400.00 2400.00 2475.00 2400.00 2475.00 DrawSplineSection
1987        2400.00 2475.00 2400.00 2475.00 2362.50 2475.00 DrawSplineSection
1988        2325.00 2475.00 l  gs col-1 s gr
1989
1990n 2445.00 2505.00 m 2325.00 2475.00 l 2445.00 2445.00 l gs col-1 s gr
1991/Times-Roman findfont 180.00 scalefont setfont
19923150 4725 m
1993gs 1 -1 sc (LONG) col-1 show gr
1994/Times-Roman findfont 180.00 scalefont setfont
19954800 2625 m
1996gs 1 -1 sc (SHORT) col-1 show gr
1997/Times-Roman findfont 180.00 scalefont setfont
19981800 2550 m
1999gs 1 -1 sc (START) col-1 show gr
2000/Times-Roman findfont 180.00 scalefont setfont
20017725 2475 m
2002gs 1 -1 sc (NO) col-1 show gr
2003/Times-Roman findfont 180.00 scalefont setfont
200410500 2550 m
2005gs 1 -1 sc (YES) col-1 show gr
2006/Times-Roman findfont 180.00 scalefont setfont
20071950 7200 m
2008gs 1 -1 sc (GREEN) col-1 show gr
2009/Times-Roman findfont 180.00 scalefont setfont
20105250 7350 m
2011gs 1 -1 sc (YELLOW) col-1 show gr
2012/Times-Roman findfont 180.00 scalefont setfont
20133300 8925 m
2014gs 1 -1 sc (RED) col-1 show gr
2015/Times-Roman findfont 180.00 scalefont setfont
20169225 9075 m
2017gs 1 -1 sc (RED) col-1 show gr
2018/Times-Roman findfont 180.00 scalefont setfont
20197875 7350 m
2020gs 1 -1 sc (GREEN) col-1 show gr
2021/Times-Roman findfont 180.00 scalefont setfont
202210800 7350 m
2023gs 1 -1 sc (YELLOW) col-1 show gr
2024/Times-Roman findfont 180.00 scalefont setfont
20251125 1725 m
2026gs 1 -1 sc (start or \(!start and !rand_choice\)) col-1 show gr
2027/Times-Roman findfont 180.00 scalefont setfont
20284425 1800 m
2029gs 1 -1 sc (!start and !rand_choice/short) col-1 show gr
2030/Times-Roman findfont 180.00 scalefont setfont
20312925 1125 m
2032gs 1 -1 sc (T I M E R) col-1 show gr
2033/Times-Roman findfont 180.00 scalefont setfont
20348775 1275 m
2035gs 1 -1 sc (S E N S O R) col-1 show gr
2036/Times-Roman findfont 180.00 scalefont setfont
20372700 7350 m
2038gs 1 -1 sc (car_present and long_timer /) col-1 show gr
2039/Times-Roman findfont 180.00 scalefont setfont
20403300 7650 m
2041gs 1 -1 sc (hwy_start_timer) col-1 show gr
2042/Times-Roman findfont 180.00 scalefont setfont
20434425 8325 m
2044gs 1 -1 sc (short_timer/enable_farm) col-1 show gr
2045/Times-Roman findfont 180.00 scalefont setfont
20461050 8100 m
2047gs 1 -1 sc (enable_hwy/) col-1 show gr
2048/Times-Roman findfont 180.00 scalefont setfont
2049825 8400 m
2050gs 1 -1 sc (hwy_start_timer) col-1 show gr
2051/Times-Roman findfont 180.00 scalefont setfont
20524875 6450 m
2053gs 1 -1 sc (!short_timer) col-1 show gr
2054/Times-Roman findfont 180.00 scalefont setfont
2055900 6525 m
2056gs 1 -1 sc (!car_present or !long_timer) col-1 show gr
2057/Times-Roman findfont 180.00 scalefont setfont
20582400 5850 m
2059gs 1 -1 sc (H W Y _ C O N T R O L) col-1 show gr
2060/Times-Roman findfont 180.00 scalefont setfont
20618400 7500 m
2062gs 1 -1 sc (!car_present or long_timer/) col-1 show gr
2063/Times-Roman findfont 180.00 scalefont setfont
20649000 7800 m
2065gs 1 -1 sc (farm_start_timer) col-1 show gr
2066/Times-Roman findfont 180.00 scalefont setfont
20676825 6525 m
2068gs 1 -1 sc (car_present and !long_timer) col-1 show gr
2069/Times-Roman findfont 180.00 scalefont setfont
20709975 8400 m
2071gs 1 -1 sc (short_timer/enable_hwy) col-1 show gr
2072/Times-Roman findfont 180.00 scalefont setfont
20737275 8250 m
2074gs 1 -1 sc (enable_farm/) col-1 show gr
2075/Times-Roman findfont 180.00 scalefont setfont
20767050 8550 m
2077gs 1 -1 sc (farm_start_timer) col-1 show gr
2078/Times-Roman findfont 180.00 scalefont setfont
207910350 6525 m
2080gs 1 -1 sc (!short_timer) col-1 show gr
2081/Times-Roman findfont 180.00 scalefont setfont
20828700 8325 m
2083gs 1 -1 sc (!enable_farm) col-1 show gr
2084/Times-Roman findfont 180.00 scalefont setfont
20858325 5925 m
2086gs 1 -1 sc (F A R M _ C O N T R O L) col-1 show gr
2087/Times-Roman findfont 180.00 scalefont setfont
20882850 8100 m
2089gs 1 -1 sc (!enable_hwy) col-1 show gr
2090/Times-Roman findfont 180.00 scalefont setfont
20913150 2325 m
2092gs 1 -1 sc (start/short) col-1 show gr
2093/Times-Roman findfont 180.00 scalefont setfont
20942700 3225 m
2095gs 1 -1 sc (!start and rand_choice) col-1 show gr
2096/Times-Roman findfont 180.00 scalefont setfont
20973825 3675 m
2098gs 1 -1 sc (!start and rand_choice/short) col-1 show gr
2099/Times-Roman findfont 180.00 scalefont setfont
21001200 3825 m
2101gs 1 -1 sc (start/short,long) col-1 show gr
2102/Times-Roman findfont 180.00 scalefont setfont
21032550 4200 m
2104gs 1 -1 sc (!start/short,long) col-1 show gr
2105/Times-Roman findfont 180.00 scalefont setfont
21068850 2325 m
2107gs 1 -1 sc (rand_choice/) col-1 show gr
2108/Times-Roman findfont 180.00 scalefont setfont
21098850 2550 m
2110gs 1 -1 sc (!car_present) col-1 show gr
2111/Times-Roman findfont 180.00 scalefont setfont
21128775 3150 m
2113gs 1 -1 sc (!rand_choice/) col-1 show gr
2114/Times-Roman findfont 180.00 scalefont setfont
21158925 3375 m
2116gs 1 -1 sc (car_present) col-1 show gr
2117/Times-Roman findfont 180.00 scalefont setfont
21189975 1725 m
2119gs 1 -1 sc (rand_choice/car_present) col-1 show gr
2120/Times-Roman findfont 180.00 scalefont setfont
21217275 1725 m
2122gs 1 -1 sc (!rand_choice/!car_present) col-1 show gr
2123$F2psEnd
2124restore
2125%%EndDocument
2126
2127 endTexFig
2128 452 1339 a Fq(Figure)12 b(2.2:)k(State)c(transition)e(graphs)h(of)g
2129(FSMs)h(of)f(TLC.)-31 1478 y Fd(typedef)20 b(enum)f({GREEN,)h(YELLOW,)f
2130(RED})h(color;)-31 1557 y(module)g(main\(clk\);)-31 1596
2131y(input)g(clk;)-31 1675 y(color)g(wire)f(farm_light,)g(hwy_light;)-31
21321714 y(wire)h(start_timer,)f(short_timer,)g(long_timer;)-31
21331754 y(boolean)h(wire)f(car_present;)-31 1793 y(wire)h(enable_farm,)f
2134(farm_start_timer,)f(enable_hwy,)i(hwy_start_timer;)-31
21351872 y(assign)g(start_timer)f(=)h(farm_start_timer)e(||)i
2136(hwy_start_timer;)-31 1951 y(timer)g(timer\(clk,)f(start_timer,)g
2137(short_timer,)g(long_timer\);)-31 1991 y(sensor)h(sensor\(clk,)f
2138(car_present\);)-31 2030 y(farm_control)g(farm_control\(clk,)g
2139(car_present,)g(enable_farm,)g(short_timer,)g(long_timer,)89
21402069 y(farm_light,)g(farm_start_timer,)f(enable_hwy\);)-31
21412109 y(hwy_control)h(hwy_control)g(\(clk,)h(car_present,)f(enable_hwy,)
214239 b(short_timer,)19 b(long_timer,)89 2148 y(hwy_light,)g
2143(hwy_start_timer,)g(enable_farm\);)-31 2227 y(endmodule)-31
21442306 y(module)h(sensor\(clk,)f(car_present\);)-31 2345
2145y(input)h(clk;)-31 2385 y(output)g(car_present;)-31 2464
2146y(wire)g(rand_choice;)-31 2503 y(boolean)g(reg)f(car_present;)-31
21472582 y(initial)h(car_present)f(=)h(NO;)-31 2621 y(assign)g(rand_choice)
2148f(=)h($ND\(0,1\);)-31 2700 y(always)g(@\(posedge)f(clk\))h(begin)906
21492835 y Fq(15)p eop
2150%%Page: 16 17
215116 16 bop 49 11 a Fd(if)20 b(\(rand_choice)f(==)g(0\))129
215251 y(car_present)g(=)h(NO;)49 90 y(else)129 130 y(car_present)f(=)h
2153(YES;)-31 169 y(end)-31 209 y(endmodule)-31 287 y(module)g(timer\(clk,)
2154f(start,)g(short,)h(long\);)-31 327 y(input)g(clk;)-31
2155366 y(input)g(start;)-31 406 y(output)g(short;)-31 445
2156y(output)g(long;)-31 524 y(wire)g(rand_choice;)-31 563
2157y(wire)g(start,)f(short,)h(long;)-31 603 y(timer_state)f(reg)h(state;)
2158-31 682 y(initial)g(state)f(=)h(START;)-31 721 y(assign)g(rand_choice)f
2159(=)h($ND\(0,1\);)-31 800 y(/*)g(short)f(could)h(as)g(well)f(be)h
2160(assigned)g(to)f(be)h(just)g(\(state)f(==)h(SHORT\))f(*/)-31
2161839 y(assign)h(short)f(=)h(\(\(state)f(==)h(SHORT\))g(||)f(\(state)h
2162(==)g(LONG\)\);)-31 879 y(assign)g(long)39 b(=)20 b(\(state)g(==)f
2163(LONG\);)-31 958 y(always)h(@\(posedge)f(clk\))h(begin)49
2164997 y(if)g(\(start\))f(state)h(=)f(START;)129 1037 y(else)208
21651076 y(begin)208 1116 y(case)h(\(state\))208 1155 y(START:)368
21661194 y(if)f(\(rand_choice)g(==)h(1\))g(state)g(=)f(SHORT;)208
21671234 y(SHORT:)368 1273 y(if)g(\(rand_choice)g(==)h(1\))g(state)g(=)f
2168(LONG;)368 1313 y(/*)g(if)h(LONG,)g(remains)f(LONG)h(until)f(start)h
2169(signal)f(received)h(*/)208 1352 y(endcase)208 1392 y(end)-31
21701431 y(end)-31 1470 y(endmodule)-31 1549 y(module)g(farm_control\(clk,)
2171e(car_present,)h(enable_farm,)g(short_timer,)g(long_timer,)89
21721589 y(farm_light,)g(farm_start_timer,)f(enable_hwy\);)-31
21731628 y(input)i(clk;)-31 1668 y(input)g(car_present;)-31
21741707 y(input)g(enable_farm;)-31 1746 y(input)g(short_timer;)-31
21751786 y(input)g(long_timer;)-31 1825 y(output)g(farm_light;)-31
21761865 y(output)g(farm_start_timer;)-31 1904 y(output)g(enable_hwy;)-31
21771983 y(boolean)g(wire)f(car_present;)-31 2023 y(wire)h(short_timer,)f
2178(long_timer;)-31 2062 y(wire)h(farm_start_timer;)-31
21792101 y(wire)g(enable_hwy;)-31 2141 y(wire)g(enable_farm;)-31
21802180 y(color)g(reg)f(farm_light;)-31 2259 y(initial)h(farm_light)f(=)h
2181(RED;)-31 2299 y(assign)g(farm_start_timer)e(=)i(\(\(\(farm_light)f(==)
2182h(GREEN\))f(&&)h(\(\(car_present)f(==)h(NO\))g(||)f(long_timer\)\))487
21832338 y(||)h(\(farm_light)f(==)h(RED\))f(&&)h(enable_farm\);)-31
21842377 y(assign)g(enable_hwy)f(=)h(\(\(farm_light)f(==)g(YELLOW\))h(&&)g
2185(short_timer\);)-31 2456 y(always)g(@\(posedge)f(clk\))h(begin)69
21862496 y(case)f(\(farm_light\))69 2535 y(GREEN:)228 2575
2187y(if)h(\(\(car_present)f(==)h(NO\))f(||)h(long_timer\))f(farm_light)g
2188(=)h(YELLOW;)69 2614 y(YELLOW:)228 2654 y(if)g(\(short_timer\))f
2189(farm_light)g(=)h(RED;)69 2693 y(RED:)906 2835 y Fq(16)p
2190eop
2191%%Page: 17 18
219217 17 bop 228 11 a Fd(if)20 b(\(enable_farm\))f(farm_light)g(=)h
2193(GREEN;)69 51 y(endcase)-31 90 y(end)-31 130 y(endmodule)-31
2194209 y(module)g(hwy_control\(clk,)e(car_present,)h(enable_hwy,)g
2195(short_timer,)h(long_timer,)89 248 y(hwy_light,)f(hwy_start_timer,)g
2196(enable_farm\);)-31 287 y(input)h(clk;)-31 327 y(input)g(car_present;)
2197-31 366 y(input)g(enable_hwy;)-31 406 y(input)g(short_timer;)-31
2198445 y(input)g(long_timer;)-31 485 y(output)g(hwy_light;)-31
2199524 y(output)g(hwy_start_timer;)-31 563 y(output)g(enable_farm;)-31
2200642 y(boolean)g(wire)f(car_present;)-31 682 y(wire)h(short_timer,)f
2201(long_timer;)-31 721 y(wire)h(hwy_start_timer;)-31 761
2202y(wire)g(enable_farm;)-31 800 y(wire)g(enable_hwy;)-31
2203839 y(color)g(reg)f(hwy_light;)-31 918 y(initial)h(hwy_light)f(=)h
2204(GREEN;)-31 958 y(assign)g(hwy_start_timer)e(=)i(\(\(\(hwy_light)f(==)h
2205(GREEN\))g(&&)f(\(\(car_present)39 b(==)20 b(YES\))g(&&)f
2206(long_timer\)\))467 997 y(||)h(\(hwy_light)f(==)h(RED\))g(&&)f
2207(enable_hwy\);)-31 1037 y(assign)h(enable_farm)f(=)h(\(\(hwy_light)f
2208(==)g(YELLOW\))h(&&)g(short_timer\);)-31 1116 y(always)g(@\(posedge)f
2209(clk\))h(begin)69 1155 y(case)f(\(hwy_light\))69 1194
2210y(GREEN:)228 1234 y(if)h(\(\(car_present)f(==)h(YES\))f(&&)h
2211(long_timer\))f(hwy_light)g(=)h(YELLOW;)69 1273 y(YELLOW:)228
22121313 y(if)g(\(short_timer\))f(hwy_light)g(=)h(RED;)69
22131352 y(RED:)228 1392 y(if)g(\(enable_hwy\))f(hwy_light)g(=)h(GREEN;)69
22141431 y(endcase)-31 1470 y(end)-31 1510 y(endmodule)906
22152835 y Fq(17)p eop
2216%%Page: 18 19
221718 18 bop -31 323 a Fn(Chapter)20 b(3)-31 530 y Fs(Intr)n(oduction)k
2218(to)i(F)m(ormal)h(V)-10 b(eri\256cation)-31 753 y Fq(F)o(ormal)13
2219b(v)o(eri\256cation)g(is)f(the)h(process)f(of)h(checking)g(whether)f(a)
2220h(design)f(satis\256es)h(some)f(requirements)g(\(properties\).)-31
2221809 y(W)l(e)e(are)g(concerned)g(with)e(the)h(formal)g(v)o
2222(eri\256cation)g(of)g(designs)f(that)h(may)f(be)i(speci\256ed)f
2223(hierarchically)g(\(as)h(illustrated)-31 866 y(in)i(the)g(pre)o(vious)f
2224(section\);)h(this)f(is)h(also)f(consistent)g(with)h(ho)o(w)f(a)i
2225(human)e(designer)h(operates.)19 b(In)13 b(order)f(to)g(formally)-31
2226922 y(v)o(erify)h(a)h(design,)e(it)h(must)e(\256rst)i(be)g(con)n(v)o
2227(erted)h(into)d(a)j(simpler)d(\252v)o(eri\256able\272)k(format.)21
2228b(The)12 b(design)g(is)h(speci\256ed)g(as)g(a)-31 979
2229y(set)g(of)f(interacting)h(systems;)e(each)j(has)e(a)h(\256nite)g
2230(number)f(of)h(con\256gurations,)g(called)g(states.)20
2231b(States)13 b(and)g(transition)-31 1035 y(between)k(states)f
2232(constitute)g(FSMs.)33 b(The)17 b(entire)g(system)f(is)g(an)h(FSM,)g
2233(which)g(can)g(be)g(obtained)f(by)h(composing)-31 1091
2234y(the)f(FSMs)g(associated)g(with)f(each)h(component.)30
2235b(Hence)16 b(the)g(\256rst)g(step)f(in)h(v)o(eri\256cation)g(consists)e
2236(of)i(obtaining)f(a)-31 1148 y(complete)9 b(FSM)h(description)e(of)h
2237(the)h(system.)15 b(Gi)o(v)o(en)9 b(a)h(present)f(state)g(\(or)h
2238(current)f(con\256guration\),)h(the)f(ne)o(xt)h(state)f(\(or)-31
22391204 y(successi)o(v)o(e)i(con\256guration\))g(of)g(an)h(FSM)f(can)h(be)
2240f(written)f(as)h(a)h(function)e(of)h(its)g(present)g(state)g(and)g
2241(inputs)e(\(transition)-31 1261 y(function)i(or)g(transition)f
2242(relation\).)40 1317 y(W)l(e)i(note)f(that)g(this)f(entire)i(frame)o
2243(work)f(is)g(one)g(of)h(discrete)f(functions.)16 b(Discrete)c
2244(functions)e(can)i(be)g(represented)-31 1374 y(con)n(v)o(eniently)19
2245b(by)g(BDDs)h(\(binary)f(decision)g(diagram;)j(a)e(data)f(structure)h
2246(that)f(represents)g(boolean)g(\(2-v)o(alued\))-31 1430
2247y(functions\))12 b(and)g(its)g(e)o(xtension)f(MDDs)h(\(multi-v)o(alued)
2248f(decision)g(diagram;)i(a)f(data)h(structure)f(that)g(represents)g
2249(\256nite)-31 1487 y(v)o(alued)h(discrete)h(functions\).)23
2250b(W)l(e)14 b(use)g(BDDs)f(and)h(MDDs)f(to)g(represent)h(all)f
2251(quantities)g(required)g(in)h(this)e(discrete)-31 1543
2252y(space)h(\(more)g(speci\256cally)f(the)g(transition)f(functions,)h
2253(the)h(inputs,)e(the)i(outputs)e(and)h(the)g(states)g(of)h(the)f
2254(FSMs\).)20 b(F)o(or)-31 1600 y(BDDs)13 b(and)f(MDDs)g(to)g(be)h(ef)o
2255(\256cient)g(representations)f(of)h(discrete)f(functions,)g(a)h(good)f
2256(ordering)g(of)h(input)e(v)o(ariables)-31 1656 y(\(actual)k(inputs,)h
2257(outputs,)e(state\))h(of)g(the)g(functions)f(must)g(be)h(computed.)27
2258b(In)15 b(general,)i(BDDs)e(operate)h(on)f(sets)f(of)-31
22591712 y(points)c(rather)i(than)f(indi)o(vidual)f(points;)f(this)i(is)g
2260(called)g Fi(symbolic)g(manipulation)p Fq(.)40 1769 y(The)f(two)g(most)
2261g(popular)g(methods)f(for)i(automatic)f(formal)g(v)o(eri\256cation)h
2262(are)h(language)e(containment)f(and)i(model)-31 1825
2263y(checking.)20 b(The)12 b(current)h(v)o(ersion)f(of)h(VIS)g(emphasizes)
2264f(model)f(checking,)i(b)o(ut)f(it)g(also)g(of)o(fers)g(to)g(the)h(user)
2265f(a)h(limited)-31 1882 y(form)e(of)h(language)f(containment)f
2266(\(language)i(emptiness\).)-31 2028 y Fl(3.1)58 b(Model)15
2267b(Checking)g(of)g(T)-5 b(emporal)14 b(Logic)-31 2132
2268y Fq(A)i(\256nite)f(state)g(system)g(can)h(be)f(represented)h(by)f(a)h
2269(labeled)g(state)f(transition)f(graph,)j(where)f(labels)f(of)g(a)h
2270(state)f(are)-31 2189 y(the)g(v)o(alues)f(of)g(atomic)g(propositions)f
2271(in)h(that)g(state)g(\(for)h(e)o(xample)g(the)f(v)o(alues)g(of)h(the)f
2272(latches\).)27 b(Properties)15 b(about)-31 2245 y(the)e(system)g(are)h
2273(e)o(xpressed)f(as)h(formulas)f(in)f(temporal)h(logic)g(of)g(which)g
2274(the)h(state)f(transition)e(system)i(is)g(to)f(be)i(a)g(\252a)-31
22752302 y(model\272.)20 b(Model)12 b(checking)g(consists)f(of)i(tra)o(v)o
2276(ersing)g(the)f(graph)h(of)f(the)h(transition)e(system)g(and)i(of)f(v)o
2277(erifying)h(that)f(it)-31 2358 y(satis\256es)f(the)g(formula)g
2278(representing)h(the)f(property)m(,)g(i.e.,)i(the)e(system)f(is)h(a)h
2279(model)f(of)g(the)g(property)m(.)-31 2483 y Fk(3.1.1)51
2280b(Computation)10 b(T)l(r)o(ee)k(Logic)-31 2570 y Fq(T)m(emporal)c
2281(logic)f(e)o(xpresses)i(the)f(ordering)g(of)g(e)o(v)o(ents)g(in)g(time)
2282f(by)h(means)g(of)g(operators)g(that)g(specify)g(properties)f(such)-31
22832627 y(as)i(\252)p Fp(p)h Fq(will)e(e)o(v)o(entually)g(hold\272.)17
2284b(There)11 b(are)h(v)o(arious)f(v)o(ersions)f(of)h(temporal)g(logic.)16
2285b(One)11 b(is)g(computational)e(tree)j(logic)-31 2683
2286y(\(CTL\).)i(Computation)e(trees)h(are)h(deri)o(v)o(ed)g(from)e(state)h
2287(transition)f(graphs.)22 b(The)13 b(graph)g(structure)g(is)f(unwound)g
2288(into)906 2835 y(18)p eop
2289%%Page: 19 20
229019 19 bop -31 11 a Fq(an)10 b(in\256nite)f(tree)h(rooted)f(at)h(the)f
2291(initial)g(state.)16 b(Fig.)10 b(3.1)f(sho)o(ws)g(an)h(e)o(xample)f(of)
2292h(unwinding)e(a)i(graph)g(into)e(a)i(tree.)17 b(P)o(aths)-31
229368 y(in)d(this)e(tree)j(represent)f(all)g(possible)e(computations)g(of)
2294i(the)g(system)f(being)g(modeled.)24 b(F)o(ormulae)14
2295b(in)f(CTL)i(refer)g(to)-31 124 y(the)e(computation)e(tree)j(deri)o(v)o
2296(ed)f(from)g(the)g(model.)21 b(CTL)14 b(is)e(classi\256ed)h(as)g(a)h
2297(branching)e(time)h(logic)f(because)i(it)e(has)-31 181
2298y(operators)f(that)g(describe)h(the)f(branching)g(structure)g(of)h
2299(this)e(tree.)226 239 y
2300 22376157 10740548 0 0 12235407 5986140 startTexFig
2301 226 239 a
2302%%BeginDocument: mc.eps
2303/$F2psDict 200 dict def
2304$F2psDict begin
2305$F2psDict /mtrx matrix put
2306/col-1 {} def
2307/col0 {0.000 0.000 0.000 srgb} bind def
2308/col1 {0.000 0.000 1.000 srgb} bind def
2309/col2 {0.000 1.000 0.000 srgb} bind def
2310/col3 {0.000 1.000 1.000 srgb} bind def
2311/col4 {1.000 0.000 0.000 srgb} bind def
2312/col5 {1.000 0.000 1.000 srgb} bind def
2313/col6 {1.000 1.000 0.000 srgb} bind def
2314/col7 {1.000 1.000 1.000 srgb} bind def
2315/col8 {0.000 0.000 0.560 srgb} bind def
2316/col9 {0.000 0.000 0.690 srgb} bind def
2317/col10 {0.000 0.000 0.820 srgb} bind def
2318/col11 {0.530 0.810 1.000 srgb} bind def
2319/col12 {0.000 0.560 0.000 srgb} bind def
2320/col13 {0.000 0.690 0.000 srgb} bind def
2321/col14 {0.000 0.820 0.000 srgb} bind def
2322/col15 {0.000 0.560 0.560 srgb} bind def
2323/col16 {0.000 0.690 0.690 srgb} bind def
2324/col17 {0.000 0.820 0.820 srgb} bind def
2325/col18 {0.560 0.000 0.000 srgb} bind def
2326/col19 {0.690 0.000 0.000 srgb} bind def
2327/col20 {0.820 0.000 0.000 srgb} bind def
2328/col21 {0.560 0.000 0.560 srgb} bind def
2329/col22 {0.690 0.000 0.690 srgb} bind def
2330/col23 {0.820 0.000 0.820 srgb} bind def
2331/col24 {0.500 0.190 0.000 srgb} bind def
2332/col25 {0.630 0.250 0.000 srgb} bind def
2333/col26 {0.750 0.380 0.000 srgb} bind def
2334/col27 {1.000 0.500 0.500 srgb} bind def
2335/col28 {1.000 0.630 0.630 srgb} bind def
2336/col29 {1.000 0.750 0.750 srgb} bind def
2337/col30 {1.000 0.880 0.880 srgb} bind def
2338/col31 {1.000 0.840 0.000 srgb} bind def
2339
2340end
2341save
2342-80.0 119.0 translate
23431 -1 scale
2344
2345/clp {closepath} bind def
2346/ef {eofill} bind def
2347/gr {grestore} bind def
2348/gs {gsave} bind def
2349/l {lineto} bind def
2350/m {moveto} bind def
2351/n {newpath} bind def
2352/s {stroke} bind def
2353/slc {setlinecap} bind def
2354/slj {setlinejoin} bind def
2355/slw {setlinewidth} bind def
2356/srgb {setrgbcolor} bind def
2357/rot {rotate} bind def
2358/sc {scale} bind def
2359/tr {translate} bind def
2360/tnt {dup dup currentrgbcolor
2361  4 -2 roll dup 1 exch sub 3 -1 roll mul add
2362  4 -2 roll dup 1 exch sub 3 -1 roll mul add
2363  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
2364  bind def
2365/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
2366  4 -2 roll mul srgb} bind def
2367 /DrawEllipse {
2368        /endangle exch def
2369        /startangle exch def
2370        /yrad exch def
2371        /xrad exch def
2372        /y exch def
2373        /x exch def
2374        /savematrix mtrx currentmatrix def
2375        x y tr xrad yrad sc 0 0 1 startangle endangle arc
2376        closepath
2377        savematrix setmatrix
2378        } def
2379
2380/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
2381/$F2psEnd {$F2psEnteredState restore end} def
2382
2383$F2psBegin
238410 setmiterlimit
2385 0.06000 0.06000 sc
23867.500 slw
2387% Ellipse
2388n 3209 1724 124 124 0 360 DrawEllipse gs col4 1.00 shd ef gr gs col-1 s gr
2389
2390% Ellipse
2391n 3414 1349 124 124 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col-1 s gr
2392
2393% Ellipse
2394n 4279 1339 124 124 0 360 DrawEllipse gs col4 1.00 shd ef gr gs col-1 s gr
2395
2396% Ellipse
2397n 3619 974 124 124 0 360 DrawEllipse gs col2 1.00 shd ef gr gs col-1 s gr
2398
2399% Ellipse
2400n 3989 1344 124 124 0 360 DrawEllipse gs col2 1.00 shd ef gr gs col-1 s gr
2401
2402% Ellipse
2403n 4056 974 124 124 0 360 DrawEllipse gs col4 1.00 shd ef gr gs col-1 s gr
2404
2405% Ellipse
2406n 3712 1344 124 124 0 360 DrawEllipse gs col2 1.00 shd ef gr gs col-1 s gr
2407
2408% Ellipse
2409n 3839 599 124 124 0 360 DrawEllipse gs col4 1.00 shd ef gr gs col-1 s gr
2410
2411% Ellipse
2412n 3519 1726 124 124 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col-1 s gr
2413
2414% Ellipse
2415n 1911 796 124 124 0 360 DrawEllipse gs col4 1.00 shd ef gr gs col-1 s gr
2416
2417% Ellipse
2418n 2207 1237 124 124 0 360 DrawEllipse gs col2 1.00 shd ef gr gs col-1 s gr
2419
2420% Ellipse
2421n 1637 1247 124 124 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col-1 s gr
2422
2423% Polyline
2424n 3923 1453 m 3873 1588 l gs col13 0.25 tnt ef gr  gs col-1 s gr 
2425n 3928.92 1523.40 m 3873.00 1588.00 l 3872.65 1502.56 l gs col-1 s gr
2426% Polyline
2427n 4063 1448 m 4118 1588 l gs col13 0.25 tnt ef gr  gs col-1 s gr 
2428n 4116.67 1502.57 m 4118.00 1588.00 l 4060.83 1524.51 l gs col-1 s gr
2429/Times-Roman findfont 180.00 scalefont setfont
24303944 1399 m
2431gs 1 -1 sc (G) col-1 show gr
2432% Polyline
2433n 3553 1083 m 3503 1218 l gs col13 0.25 tnt ef gr  gs col-1 s gr 
2434n 3558.92 1153.40 m 3503.00 1218.00 l 3502.65 1132.56 l gs col-1 s gr
2435% Polyline
2436n 4213 1448 m 4163 1583 l gs col13 0.25 tnt ef gr  gs col-1 s gr 
2437n 4218.92 1518.40 m 4163.00 1583.00 l 4162.65 1497.56 l gs col-1 s gr
2438% Polyline
2439n 4353 1443 m 4408 1583 l gs col13 0.25 tnt ef gr  gs col-1 s gr 
2440n 4406.67 1497.57 m 4408.00 1583.00 l 4350.83 1519.51 l gs col-1 s gr
2441/Times-Roman findfont 180.00 scalefont setfont
24424230 1389 m
2443gs 1 -1 sc (R) col-1 show gr
2444/Times-Roman findfont 180.00 scalefont setfont
24454007 1024 m
2446gs 1 -1 sc (R) col-1 show gr
2447% Polyline
2448n 3348 1458 m 3298 1593 l gs col13 0.25 tnt ef gr  gs col-1 s gr 
2449n 3353.92 1528.40 m 3298.00 1593.00 l 3297.65 1507.56 l gs col-1 s gr
2450% Polyline
2451n 3488 1453 m 3543 1593 l gs col13 0.25 tnt ef gr  gs col-1 s gr 
2452n 3541.67 1507.57 m 3543.00 1593.00 l 3485.83 1529.51 l gs col-1 s gr
2453/Times-Roman findfont 180.00 scalefont setfont
24543369 1404 m
2455gs 1 -1 sc (Y) col-1 show gr
2456% Polyline
2457n 4130 1078 m 4185 1218 l gs col13 0.25 tnt ef gr  gs col-1 s gr 
2458n 4183.67 1132.57 m 4185.00 1218.00 l 4127.83 1154.51 l gs col-1 s gr
2459% Polyline
2460n 3990 1083 m 3940 1218 l gs col13 0.25 tnt ef gr  gs col-1 s gr 
2461n 3995.92 1153.40 m 3940.00 1218.00 l 3939.65 1132.56 l gs col-1 s gr
2462% Polyline
2463n 3143 1833 m 3093 1968 l gs col13 0.25 tnt ef gr  gs col-1 s gr 
2464n 3148.92 1903.40 m 3093.00 1968.00 l 3092.65 1882.56 l gs col-1 s gr
2465/Times-Roman findfont 180.00 scalefont setfont
24663790 649 m
2467gs 1 -1 sc (R) col-1 show gr
2468% Polyline
2469n 3283 1828 m 3338 1968 l gs col13 0.25 tnt ef gr  gs col-1 s gr 
2470n 3336.67 1882.57 m 3338.00 1968.00 l 3280.83 1904.51 l gs col-1 s gr
2471/Times-Roman findfont 180.00 scalefont setfont
24723160 1774 m
2473gs 1 -1 sc (R) col-1 show gr
2474/Times-Roman findfont 180.00 scalefont setfont
24753574 1029 m
2476gs 1 -1 sc (G) col-1 show gr
2477% Polyline
2478n 3453 1835 m 3403 1970 l gs col13 0.25 tnt ef gr  gs col-1 s gr 
2479n 3458.92 1905.40 m 3403.00 1970.00 l 3402.65 1884.56 l gs col-1 s gr
2480% Polyline
2481n 3593 1830 m 3648 1970 l gs col13 0.25 tnt ef gr  gs col-1 s gr 
2482n 3646.67 1884.57 m 3648.00 1970.00 l 3590.83 1906.51 l gs col-1 s gr
2483/Times-Roman findfont 180.00 scalefont setfont
24843474 1781 m
2485gs 1 -1 sc (Y) col-1 show gr
2486% Polyline
2487n 3646 1453 m 3596 1588 l gs col13 0.25 tnt ef gr  gs col-1 s gr 
2488n 3651.92 1523.40 m 3596.00 1588.00 l 3595.65 1502.56 l gs col-1 s gr
2489% Polyline
2490n 3786 1448 m 3841 1588 l gs col13 0.25 tnt ef gr  gs col-1 s gr 
2491n 3839.67 1502.57 m 3841.00 1588.00 l 3783.83 1524.51 l gs col-1 s gr
2492/Times-Roman findfont 180.00 scalefont setfont
24933667 1399 m
2494gs 1 -1 sc (G) col-1 show gr
2495% Polyline
2496n 3693 1078 m 3748 1218 l gs col13 0.25 tnt ef gr  gs col-1 s gr 
2497n 3746.67 1132.57 m 3748.00 1218.00 l 3690.83 1154.51 l gs col-1 s gr
2498% Polyline
2499n 1986 901 m 2141 1131 l  gs col-1 s gr 
2500n 2098.82 1014.72 m 2141.00 1131.00 l 2049.06 1048.25 l gs col-1 s gr
2501% Polyline
2502n 2086 1251 m 1761 1251 l  gs col-1 s gr 
2503n 1881.00 1281.00 m 1761.00 1251.00 l 1881.00 1221.00 l gs col-1 s gr
2504% Polyline
2505n 1651 1121 m 1831 901 l  gs col-1 s gr 
2506n 1731.79 974.88 m 1831.00 901.00 l 1778.23 1012.87 l gs col-1 s gr
2507% Polyline
2508n 3773 708 m 3723 843 l gs col13 0.25 tnt ef gr  gs col-1 s gr 
2509n 3778.92 778.40 m 3723.00 843.00 l 3722.65 757.56 l gs col-1 s gr
2510% Polyline
2511n 3913 703 m 3968 843 l gs col13 0.25 tnt ef gr  gs col-1 s gr 
2512n 3966.67 757.57 m 3968.00 843.00 l 3910.83 779.51 l gs col-1 s gr
2513% Interp Spline
2514n 1821 726 m
2515        1748.37 745.35 1715.87 742.85 1691 716 curveto
2516        1669.38 692.66 1685.38 651.30 1691 631 curveto
2517        1698.71 603.15 1724.16 549.28 1751 531 curveto
2518        1772.00 516.70 1818.31 513.18 1841 516 curveto
2519        1862.71 518.70 1906.19 526.34 1921 551 curveto
2520        1932.06 569.41 1917.31 601.20 1916 616 curveto
2521        1915.24 624.55 1913.99 637.05 1911 666 curveto
2522 gs col-1 s gr
2523
2524n 1949.06 589.51 m 1911.00 666.00 l 1889.38 583.34 l gs col-1 s gr
2525% Interp Spline
2526n 2281 1151 m
2527        2261.65 1078.00 2264.15 1045.00 2291 1021 curveto
2528        2314.34 1000.00 2355.70 1016.00 2376 1021 curveto
2529        2403.85 1028.00 2457.72 1054.00 2476 1081 curveto
2530        2490.30 1102.00 2493.82 1148.00 2491 1171 curveto
2531        2488.30 1192.00 2480.66 1236.00 2456 1251 curveto
2532        2437.59 1262.00 2405.80 1247.00 2391 1246 curveto
2533        2382.45 1245.00 2369.95 1243.00 2341 1241 curveto
2534 gs col-1 s gr
2535
2536n 2418.74 1276.44 m 2341.00 1241.00 l 2422.88 1216.58 l gs col-1 s gr
2537% Interp Spline
2538n 1561 1351 m
2539        1580.00 1424.00 1577.00 1457.00 1551 1481 curveto
2540        1527.00 1502.00 1486.00 1486.00 1466 1481 curveto
2541        1438.00 1474.00 1385.00 1448.00 1366 1421 curveto
2542        1352.00 1400.00 1349.00 1354.00 1351 1331 curveto
2543        1354.00 1310.00 1362.00 1266.00 1386 1251 curveto
2544        1405.00 1240.00 1436.00 1255.00 1451 1256 curveto
2545        1459.00 1257.00 1472.00 1259.00 1501 1261 curveto
2546 gs col-1 s gr
2547
2548n 1423.25 1225.57 m 1501.00 1261.00 l 1419.13 1285.42 l gs col-1 s gr
2549/Times-Roman findfont 180.00 scalefont setfont
25502520 875 m
2551gs 1 -1 sc (unwind) col-1 show gr
2552/Times-Roman findfont 180.00 scalefont setfont
25532605 1035 m
2554gs 1 -1 sc (==>) col-1 show gr
2555/Times-Roman findfont 180.00 scalefont setfont
25561871 851 m
2557gs 1 -1 sc (R) col-1 show gr
2558/Times-Roman findfont 180.00 scalefont setfont
25592151 1281 m
2560gs 1 -1 sc (G) col-1 show gr
2561/Times-Roman findfont 180.00 scalefont setfont
25621586 1301 m
2563gs 1 -1 sc (Y) col-1 show gr
2564$F2psEnd
2565restore
2566%%EndDocument
2567
2568 endTexFig
2569 490 1017 a Fq(Figure)i(3.1:)k(Unwinding)10 b(of)i(state)f(transition)f
2570(graph.)40 1122 y(F)o(ormulae)g(in)f(CTL)h(are)g(b)o(uilt)f(from)g
2571(atomic)g(propositions)e(\(where)k(each)f(proposition)e(corresponds)h
2572(to)g(a)h(v)o(ariable)-31 1178 y(in)16 b(the)h(model\),)g(standard)f
2573(boolean)h(connecti)o(v)o(es)f(of)h(propositional)d(logic)i(\(e.g.,)j
2574(AND,)e(OR,)h(XOR,)f(NO)n(T\),)g(and)-31 1234 y(temporal)9
2575b(operators.)17 b(Each)10 b(temporal)f(operator)h(consists)f(of)h(two)f
2576(parts)1153 1218 y Ft(1)1172 1234 y Fq(:)15 b(a)c(path)e(quanti\256er)h
2577(\()p Fp(A)g Fq(or)g Fp(E)s Fq(\))f(follo)o(wed)g(by)-31
25781291 y(a)k(temporal)e(modality)f(\()p Fp(F)c Fq(,)14
2579b Fp(G)p Fq(,)e Fp(X)t Fq(,)g Fp(U)5 b Fq(\).)20 b(All)11
2580b(temporal)g(operators)h(are)h(interpreted)f(relati)o(v)o(e)g(to)g(an)g
2581(implicit)f(\252current)-31 1347 y(state\272.)17 b(There)11
2582b(are)h(in)f(general)g(man)o(y)g(e)o(x)o(ecution)g(paths)f(\(sequences)
2583h(of)g(state)g(transitions\))f(of)h(the)f(system)g(starting)g(at)-31
25841404 y(the)h(current)g(state.)16 b(The)11 b(path)g(quanti\256er)g
2585(indicates)f(whether)h(the)f(modality)f(de\256nes)j(a)f(property)f
2586(that)h(should)e(be)i(true)-31 1460 y(of)e(all)g(those)g(possible)f
2587(paths)h(\(denoted)g(by)g(uni)o(v)o(ersal)g(path)g(quanti\256er)g
2588Fp(A)p Fq(\))g(or)h(whether)f(the)g(property)g(needs)g(only)g(hold)-31
25891517 y(on)i(some)f(path)g(\(denoted)g(by)h(e)o(xistential)f(path)g
2590(quanti\256er)h Fp(E)s Fq(\).)16 b(The)10 b(temporal)g(modalities)f
2591(describe)i(the)g(ordering)f(of)-31 1573 y(e)o(v)o(ents)h(in)g(time)g
2592(along)g(an)g(e)o(x)o(ecution)h(path)f(and)g(ha)o(v)o(e)h(the)g(follo)o
2593(wing)d(intuiti)o(v)o(e)h(meaning:)26 1663 y(1.)23 b
2594Fp(F)17 b(\036)10 b Fq(\(reads)h(\252)p Fp(\036)f Fq(holds)g(sometime)f
2595(in)g(the)h(future\272\))h(is)f(true)g(of)h(a)f(path)g(if)g(there)h(e)o
2596(xists)e(a)i(state)f(in)g(the)g(path)g(where)83 1719
2597y(formula)h Fp(\036)g Fq(is)g(true.)26 1811 y(2.)23 b
2598Fp(G)11 b(\036)g Fq(\(reads)h(\252)p Fp(\036)g Fq(holds)f
2599(globally\272\))f(is)h(true)g(of)h(a)g(path)f(if)g Fp(\036)g
2600Fq(is)g(true)h(at)f(e)o(v)o(ery)h(state)f(in)g(the)g(path.)26
26011903 y(3.)23 b Fp(X)14 b(\036)e Fq(\(reads)g(\252)p Fp(\036)g
2602Fq(holds)e(in)h(the)g(ne)o(xt)h(state\272\))f(is)g(true)h(of)f(a)h
2603(path)f(if)g Fp(\036)h Fq(is)f(true)g(in)g(the)g(state)g(reached)i
2604(immediately)83 1960 y(after)f(the)f(current)h(state)f(in)g(the)g
2605(path.)26 2052 y(4.)23 b Fp(\036)12 b(U)18 b( )13 b Fq(\(reads)g(\252)p
2606Fp(\036)g Fq(holds)e(until)g Fp( )j Fq(holds\272,)e(called)g
2607(\252strong)g(until\272)1189 2035 y Ft(2)1207 2052 y
2608Fq(\))h(is)f(true)g(of)g(a)h(path)f(if)g Fp( )i Fq(is)e(true)g(in)g
2609(some)83 2108 y(state)f(in)g(the)g(path,)h(and)f Fp(\036)g
2610Fq(holds)g(in)g(all)g(preceding)g(states.)-31 2198 y(In)17
2611b(the)f(VIS)i(documentation)d(there)i(is)f(a)h(description)f(of)g(the)h
2612(syntax)f(of)g(CTL)h(in)g(the)f(document)g(entitled)g(\252CTL)-31
26132254 y(Syntax\272.)h(In)12 b(this)e(chapter)i(CTL)f(formulas)g(will)g
2614(be)g(written)g(in)g(a)h(simpli\256ed)e(syntax.)40 2311
2615y(The)j(state)h(of)f(a)h(system)f(consists)f(of)i(the)f(v)o(alues)h
2616(stored)f(in)g(all)g(latches.)24 b(Each)14 b(formula)f(of)h(the)f
2617(logic)g(is)g(either)-31 2367 y(true)f(or)g(false)f(in)h(a)g(gi)o(v)o
2618(en)f(state;)h(its)f(truth)g(is)g(e)o(v)o(aluated)g(from)h(the)g(truth)
2619f(of)h(its)e(subformulas)h(in)g(a)h(recursi)o(v)o(e)h(fashion,)-31
26202423 y(until)c(one)i(reaches)g(atomic)f(propositions)f(that)h(are)h
2621(either)g(true)f(or)h(false)f(in)g(a)h(gi)o(v)o(en)f(state.)17
2622b(A)10 b(formula)g(is)g(satis\256ed)g(by)-31 2480 y(a)h(system)e(if)i
2623(it)e(is)h(true)h(for)g(all)f(the)g(initial)f(states)h(of)g(the)h
2624(system.)k(If)c(the)f(property)g(does)h(not)e(hold,)i(the)f(model)g
2625(checker)-31 2536 y(will)g(produce)h(a)h(countere)o(xample,)f(that)g
2626(is)f(an)h(e)o(x)o(ecution)h(path)e(that)h(witnesses)f(the)h(failure.)
262716 b(An)11 b(ef)o(\256cient)h(algorithm)p -31 2575 768
26282 v 22 2603 a Fg(1)36 2619 y Ff(A)d(formula)g(that)g(contains)f(an)o(y)
2629g(temporal)g(modality)h(\()p Fc(F)c Ff(,)10 b Fc(G)p
2630Ff(,)f Fc(X)s Ff(,)g Fc(U)t Ff(\))g(without)g(an)f(associated)f(path)h
2631(quanti\256er)g(\()p Fc(A)p Ff(,)h Fc(E)r Ff(\))h(is)f(not)p
26321656 2626 48 2 v 8 w(a)g(le)o(gal)g(CTL)-31 2664 y(formula.)22
26332695 y Fg(2)36 2711 y Ff(\252W)m(eak)f(until\272)i(is)f(when)f
2634Fc(\036)i Ff(holds)e(fore)o(v)o(er)o(,)h(i.e.,)i Fc( )g
2635Ff(is)e(not)g(required)g(to)g(hold)g(at)g(some)f(state)h(in)h(the)f
2636(future.)906 2835 y Fq(19)p eop
2637%%Page: 20 21
263820 20 bop -31 11 a Fq(for)15 b(automatic)f(model)g(checking)h(used)f
2639(also)g(in)h(VIS)g(has)g(been)g(described)f(by)h(Clarke)g(et)g(al.)g
2640([7].)27 b(The)15 b(follo)o(wing)-31 68 y(table)c(sho)o(ws)g(e)o
2641(xamples)g(of)g(e)o(v)o(aluations)g(of)g(formulas)g(on)g(the)g
2642(computation)f(tree)i(of)f(Fig.)h(3.1:)677 203 y(formula)p
26431070 220 2 57 v 274 w(T/F)p 652 221 555 2 v 677 261 a(EG)f(\(RED\))p
26441070 278 2 57 v 226 w(true)677 317 y(E)g(\(RED)h(U)f(GREEN\))p
26451070 334 V 51 w(true)677 374 y(AF)h(\(GREEN\))p 1070
2646391 V 167 w(false)-31 495 y Fk(3.1.2)51 b(Speci\256cation)10
2647b(of)i(Pr)o(operties)h(in)f(CTL)-31 582 y Fq(T)m(emporal)c(logic)f
2648(formulas)g(can)i(be)f(dif)o(\256cult)g(to)f(interpret,)i(so)f(that)f
2649(a)i(designer)e(may)h(fail)g(to)f(understand)h(what)f(property)-31
2650639 y(has)14 b(been)g(actually)g(v)o(eri\256ed.)25 b(Therefore)15
2651b(it)e(is)h(important)e(to)i(be)g(familiar)f(with)g(the)h(most)e
2652(common)h(constructs)g(of)-31 695 y(CTL)f(used)f(in)g(hardware)h(v)o
2653(eri\256cation.)26 786 y(1.)23 b Fp(AG)p Fb(\()p Fp(r)q(eq)14
2654b Fj(!)f Fp(AF)18 b(ack)q Fb(\))83 843 y Fq(F)o(or)c(all)f(reachable)i
2655(states)e(\()p Fp(AG)p Fq(\),)h(if)g Fp(r)q(eq)h Fq(is)e(asserted)h(in)
2656f(the)g(state,)h(then)f(always)g(at)g(some)g(later)h(point)e(\()p
2657Fp(AF)6 b Fq(\))83 899 y(we)14 b(must)f(reach)i(a)g(state)f(where)g
2658Fp(ack)h Fq(is)f(asserted.)25 b Fp(AG)14 b Fq(is)g(interpreted)g
2659(relati)o(v)o(e)g(to)g(the)g(initial)f(states)g(of)h(the)83
2660956 y(system.)h Fp(AF)j Fq(is)10 b(interpreted)g(relati)o(v)o(e)h(to)f
2661(the)g(state)h(where)g Fp(r)q(eq)h Fq(is)f(asserted.)16
2662b(In)11 b(other)f(words,)h(it)f(is)g(always)f(the)83
26631012 y(case)j(that)f(if)h(the)f(signal)g Fp(r)q(eq)i
2664Fq(is)e(high,)g(then)h(e)o(v)o(entually)f Fp(ack)h Fq(will)f(also)g(be)
2665h(high.)k(A)c(common)e(mistake)g(would)83 1068 y(be)j(to)f(write)g
2666Fp(r)q(eq)k Fj(!)f Fp(AF)20 b(ack)q Fq(,)13 b(instead)f(of)g
2667Fp(AG)p Fb(\()p Fp(r)q(eq)k Fj(!)f Fp(AF)k(ack)q Fb(\))p
2668Fq(.)h(The)13 b(meaning)f(of)h(the)f(former)h(is)f(that)g(if)83
26691125 y Fp(r)q(eq)j Fq(is)e(asserted)g(in)g(the)g(initial)e(state,)j
2670(then)f(it)g(is)f(always)g(the)h(case)h(that)f(e)o(v)o(entually)g(we)g
2671(reach)h(a)g(state)f(where)83 1181 y Fp(ack)f Fq(is)f(asserted,)i
2672(while)e(the)g(latter)h(requires)g(that)f(the)g(condition)f(is)i(true)f
2673(for)h(an)o(y)g(reachable)h(state)e(where)h Fp(r)q(eq)83
26741238 y Fq(holds.)k(If)11 b Fp(r)q(eq)j Fq(is)d(identically)f(true,)i
2675Fp(AG)p Fb(\()p Fp(r)q(eq)i Fj(!)f Fp(AF)18 b(ack)q Fb(\))11
2676b Fq(reduces)h(to)e Fp(AG)i(AF)18 b(ack)q Fq(.)26 1331
2677y(2.)23 b Fp(AG)11 b(AF)18 b(enabl)q(ed)83 1387 y Fq(From)d(e)o(v)o
2678(ery)h(reachable)g(state,)h(for)f(all)f(paths)f(starting)h(at)g(that)g
2679(state)g(we)h(must)e(reach)i(another)g(state)f(where)83
26801444 y Fp(enabl)q(ed)10 b Fq(is)h(asserted.)17 b(In)12
2681b(other)f(words,)g Fp(enabl)q(ed)g Fq(must)f(be)h(asserted)h
2682(in\256nitely)e(often.)26 1536 y(3.)23 b Fp(AG)11 b(E)s(F)17
2683b(r)q(estar)q(t)83 1593 y Fq(From)e(an)o(y)h(reachable)g(state,)h
2684(there)f(must)e(e)o(xist)h(a)h(path)f(starting)g(at)g(that)g(state)g
2685(that)g(reaches)i(a)e(state)h(where)83 1649 y Fp(r)q(estar)q(t)c
2686Fq(is)f(asserted.)17 b(In)11 b(other)h(words,)f(it)f(must)h(always)f
2687(be)h(possible)g(to)f(reach)j(the)e(restart)h(state.)26
26881742 y(4.)23 b Fp(E)s(F)6 b Fb(\()p Fp(star)q(ted)k Fj(^)22
2689b(:)p Fp(r)q(eady)r Fb(\))83 1798 y Fq(It)11 b(is)g(possible)f(to)h
2690(get)g(to)g(a)h(state)f(where)h Fp(star)q(ted)g Fq(holds,)f(b)o(ut)g
2691Fp(r)q(eady)i Fq(does)e(not)g(hold.)26 1891 y(5.)23 b
2692Fp(AG)p Fb(\()p Fp(send)12 b Fj(!)h Fp(A)p Fb(\()p Fp(send)f(U)k(r)q
2693(eceiv)r(e)p Fb(\)\))83 1948 y Fq(It)d(is)g(always)f(the)h(case)g(that)
2694g(if)g Fp(send)h Fq(occurs,)g(then)f(e)o(v)o(entually)g
2695Fp(r)q(eceiv)r(e)f Fq(is)h(true,)h(and)f(until)f(that)g(time,)i
2696Fp(send)83 2004 y Fq(must)c(continue)h(to)g(be)g(true.)26
26972097 y(6.)23 b Fp(AG)p Fb(\()p Fp(inp)12 b Fj(!)h Fp(AX)i(AX)f(out)p
2698Fb(\))83 2153 y Fq(Whene)o(v)o(er)e Fp(inp)f Fq(goes)g(high,)g
2699Fp(out)h Fq(will)f(go)g(high)f(within)h(two)f(clock)h(c)o(ycles.)26
27002246 y(7.)23 b Fp(E)s(F)6 b Fb(\()p Fp(a)j Fj(^)i Fp(E)s(X)t
2701Fb(\()p Fp(a)d Fj(^)i Fp(E)s(X)k(a)p Fb(\)\))e Fj(!)h
2702Fp(E)s(F)6 b Fb(\()p Fp(b)j Fj(^)i Fp(E)s(X)i(E)s(X)h(c)p
2703Fb(\))83 2302 y Fq(If)d(it)e(is)h(possible)f(for)i Fp(a)f
2704Fq(to)g(be)h(asserted)f(in)g(three)h(consecuti)o(v)o(e)f(states,)g
2705(then)g(it)g(is)g(also)g(possible)f(to)h(reach)h(a)f(state)83
27062359 y(where)i Fp(b)f Fq(is)g(asserted)g(and)g(from)h(there)f(to)g
2707(reach)h(in)f(two)g(more)g(steps)g(a)h(state)f(where)h
2708Fp(c)f Fq(is)g(asserted.)40 2450 y(W)l(e)h(summarize)f(the)g(most)f
2709(common)g(CTL)i(templates)e(with)h(the)g(corresponding)g(English)f
2710(language)h(meaning:)26 2541 y(1.)23 b Fp(AGp)16 b Fq(is)g(\252nothing)
2711g(bad)g(e)o(v)o(er)i(happens\272)e(\()p Fj(:)p Fp(p)h
2712Fq(is)f(bad\).)33 b(Used)16 b(to)h(specify)f(an)h(in)n(v)o(ariant,)h
2713(i.e.,)h(a)e(condition)83 2598 y(that)e(must)g(be)g(true)h(in)f(all)h
2714(states.)29 b(Helpful)15 b(for)h(partial)f(correctness)h(\(no)g(wrong)f
2715(answers)h(are)h(produced\),)83 2654 y(mutual)9 b(e)o(xclusion)h(\(no)g
2716(two)f(processors)h(are)i(in)d(a)i(critical)f(section)g
2717(simultaneously\),)f(deadlock)h(freedom)g(\(no)83 2711
2718y(deadlock)h(state)g(is)g(reached\).)906 2835 y(20)p
2719eop
2720%%Page: 21 22
272121 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
2722(entually)g(the)h(system)e(is)i(con\256ned)f(to)h(states)f(where)h
2723Fp(p)f Fq(is)g(always)g(true\272)h(or)g(\252the)f(system)g(stays)83
272468 y(out)h(of)h(states)f(where)i Fp(p)f Fq(is)f(true)h(only)f(a)h
2725(\256nite)g(number)g(of)g(times\272.)16 b(It)10 b(can)i(be)f(used)f(to)
2726h(specify)g(the)f(property)h(of)83 124 y(\256nite)g(number)g(of)g
2727(failures)g(in)g(the)h(system.)26 218 y(3.)23 b Fp(AG)p
2728Fb(\()p Fp(p)e Fj(!)40 b Fp(AF)25 b(q)r Fb(\))17 b Fq(is)h(\252from)g
2729(all)f(reachable)i(states)e(where)i Fp(p)f Fq(is)f(true,)j(something)c
2730(good,)k Fp(q)r Fq(,)g(e)o(v)o(entually)83 275 y(happens\272.)c
2731(Helpful)9 b(to)g(e)o(xpress)h(total)f(correctness)h(\(termination)e(e)
2732o(v)o(entually)h(occurs)h(with)f(correct)h(answers\),)83
2733331 y(accessibility)17 b(\(e)o(v)o(entually)i(a)g(requesting)f(process)
2734h(will)f(enter)h(its)g(critical)f(section\),)j(starv)o(ation)d(freedom)
273583 387 y(\(e)o(v)o(entually)h(service)h(will)e(be)i(granted)g(to)f(a)g
2736(waiting)f(processor\).)42 b(If)20 b Fp(p)f Fq(is)g(always)g(true,)j
2737(it)d(reduces)h(to)83 444 y Fp(AG)11 b(AF)18 b(q)r Fq(.)26
2738538 y(4.)23 b Fp(AG)14 b(AF)22 b(q)16 b Fq(is)e(\252in\256nitely)g
2739(often)h Fp(q)r Fq(\272,)h(i.e.,)h(from)d(an)o(y)h(reachable)h(state)e
2740(one)h(must)e(reach)j(a)e(state)h(where)g Fp(q)i Fq(is)83
2741594 y(asserted.)g(It)11 b(can)h(be)f(used,)h(for)g(instance,)f(to)g
2742(enforce)h(a)g(reset)g(condition)e(from)h(an)o(y)g(state.)26
2743688 y(5.)23 b Fp(AF)18 b(q)13 b Fq(is)e(\252something)f(good,)h
2744Fp(q)r Fq(,)h(e)o(v)o(entually)f(\(or)g(\256nally\))h(happens\272)f
2745(\(less)g(restricti)o(v)o(e)g(than)g Fp(AG)h(AF)18 b(q)r
2746Fq(\).)26 782 y(6.)23 b Fp(AG)10 b(E)s(F)17 b(p)11 b
2747Fq(is)f(\252always)g Fp(p)h Fq(possible\272.)k(It)c(can)g(detect,)h
2748(for)f(instance,)g(the)f(absence)h(of)g(deadlocks,)g(by)g(requiring)83
2749838 y(that)h(is)h(it)g(always)f(possible)f(to)i(reach)h(deadlock-free)g
2750(states.)22 b(This)12 b(is)h(an)g(e)o(xample)g(of)g(a)g(CTL)h(property)
2751f(that)83 895 y(cannot)e(be)g(represented)h(by)f(an)h
2752Fp(!)r Fq(-automaton)853 878 y Ft(3)872 895 y Fq(.)26
2753989 y(7.)23 b Fp(AG)11 b(tr)q(ue)h Fq(forces)g(a)f(complete)g(tra)o(v)o
2754(ersal)h(of)g(the)f(states)g(of)g(the)h(system.)26 1082
2755y(8.)23 b Fp(E)s(F)18 b(p)13 b Fq(is)f(\252)p Fp(p)h
2756Fq(is)f(possible\272.)19 b(This)12 b(is)g(another)h(e)o(xample)f(of)h
2757(a)g(CTL)g(property)f(that)g(cannot)h(be)f(represented)h(by)83
27581139 y(an)e Fp(!)r Fq(-automaton.)40 1233 y Fr(Ca)o(veats)26
27591326 y Fq(1.)23 b(The)14 b(v)o(ariables)g(appearing)h(in)f(a)g(CTL)h
2760(formula)f(must)f(be)h(a)h(function)f(of)g(re)o(gister)h(v)o(ariables)f
2761(\(e.g.,)i(states)e(or)83 1383 y(outputs)c(attached)i(to)f(states\).)18
2762b(V)-5 b(ariables)12 b(that)f(depend)h(on)f(inputs)g(or)h
2763(pseudo-inputs)e(are)i(not)g(allo)o(wed,)f(since)83 1439
2764y(this)f(could)h(lead)h(to)e(a)i(state)f(where)h(both)f
2765Fp(p)g Fq(and)h Fj(:)p Fp(p)f Fq(are)h(true,)g(depending)f(on)g(the)g
2766(input.)26 1533 y(2.)23 b(The)11 b(propositional)f(logic)g(operator)i
2767Fj(!)p Fq(,)g(as)f(in)g Fp(a)i Fj(!)g Fp(b)e Fq(is)g(equi)o(v)o(alent)f
2768(to)h Fj(:)p Fp(a)f Fb(+)h Fp(b)p Fq(,)g(and)g(is)g(satis\256ed)g(by)g
2769Fj(:)p Fp(a)p Fq(.)17 b(Do)83 1590 y(not)11 b(use)g(it)g(in)g(place)g
2770(of)h Fp(a)e(?)g(b)p Fq(,)h(which)g(is)g(true)g(if)h(and)f(only)g(if)g
2771Fp(a)g Fq(and)h Fp(b)f Fq(are)h(both)e(true.)26 1683
2772y(3.)23 b(The)11 b(syntax)g(of)g(CTL)h(and)f(of)h(V)-5
2773b(erilog)11 b(are)h(dif)o(ferent.)17 b(F)o(or)12 b(instance,)f(we)h(ha)
2774o(v)o(e:)242 1791 y Fd(Verilog)20 b(CTL)119 b(meaning)242
27751870 y(&&)h(*)159 b(AND)242 1910 y(||)120 b(+)159 b(OR)242
27761949 y(==)120 b(=)159 b(equal)242 1989 y(a!=NO)60 b(!\(a=NO\))39
2777b(not)20 b(equal)402 2028 y(->)139 b(implies)402 2067
2778y(\303)159 b(xor)-31 2194 y Fk(3.1.3)51 b(F)o(air)o(ness)13
2779b(Constraints)-31 2281 y Fq(It)h(is)f(often)g(necessary)h(to)f
2780(introduce)g(some)g(notion)f(of)i(fairness.)23 b(F)o(or)14
2781b(e)o(xample,)h(if)e(the)g(system)g(allocates)g(a)h(shared)-31
27822338 y(resource)f(among)e(se)o(v)o(eral)h(users,)h(only)e(those)g
2783(paths)g(along)h(which)f(no)h(user)g(keeps)f(the)h(resource)g(fore)o(v)
2784o(er)h(should)e(be)-31 2394 y(considered.)17 b(CTL)12
2785b(by)f(itself)f(cannot)i(e)o(xpress)f(assertions)g(about)g(correctness)
2786g(along)g(fair)h(paths.)40 2451 y(F)o(air)f(CTL)f(is)g(a)g
2787(modi\256cation)f(of)h(CTL)h(to)e(handle)h(fairness.)16
2788b(F)o(air)11 b(CTL)g(is)e(characterized)j(by)e(the)g(introduction)e(of)
2789-31 2507 y Fi(fairness)i(constr)o(aints)p Fq(,)h(which)g(are)h(sets)f
2790(of)h(states)f(e)o(xpressed)h(by)f(means)g(of)h(CTL)g(formulas,)f(each)
2791i(gi)o(ving)d(a)i(fairness)-31 2564 y(condition;)d(a)h
2792Fi(fair)e(path)h Fq(is)g(a)h(path)g(along)f(which)g(each)h(fairness)g
2793(condition)e(is)h(satis\256ed)g(in\256nitely)g(often.)16
2794b(These)10 b(types)p -31 2604 768 2 v 22 2632 a Fg(3)36
27952648 y Ff(It)j(is)f(possible)e(to)i(sho)o(w)f(two)g(transition)i
2796(systems)d(that)i(recognize)e(the)h(same)g(language,)g(of)h(which)f
2797(one)g(satis\256es)f Fc(AG)h(E)r(F)18 b(p)p Ff(,)13 b(and)e(the)-31
27982693 y(other)e(does)f(not.)906 2835 y Fq(21)p eop
2799%%Page: 22 23
280022 22 bop -31 11 a Fq(of)14 b(fairness)g(constraints)e(are)j(called)f
2801(B)t(\310)-19 b(uchi)14 b(type.)24 b(More)14 b(general)g(fairness)g
2802(constraints,)g(such)f(as)h(Street)h(type,)f(are)-31
280368 y(not)c(allo)o(wed)f(currently)m(.)17 b(F)o(air)11
2804b(CTL)g(has)f(the)g(same)g(syntax)f(as)i(CTL,)g(b)o(ut)e(the)h
2805(semantics)g(is)f(modi\256ed)h(so)g(that)g(all)g(path)-31
2806124 y(quanti\256ers)j(only)f(range)i(o)o(v)o(er)g(fair)e(paths.)22
2807b(VIS)13 b(supports)f(F)o(air)i(CTL;)f(in)g(the)f(documentation)g(we)h
2808(may)g(sometimes)-31 181 y(refer)g(to)e(CTL,)h(where)g(we)f(really)h
2809(mean)f(F)o(air)h(CTL.)40 237 y(An)d(e)o(xample)h(of)g(a)g(fairness)f
2810(condition)f(is)i Fp(p)p Fq(,)g(that)f(restricts)g(the)h(system)f(to)g
2811(only)g(those)g(paths)g(where)h Fp(p)g Fq(is)f(asserted)-31
2812294 y(in\256nitely)i(often.)-31 440 y Fl(3.2)58 b(Pr)o(operties)14
2813b(and)h(F)o(air)o(ness)e(Conditions)j(of)f(T)l(raf\256c)f(Light)h
2814(Contr)o(oller)g(in)g(CTL)-31 544 y Fq(Not)e(all)h(beha)o(vior)f(e)o
2815(xhibited)g(by)h(the)f(description)g(of)g(the)h(T)n(raf)o(\256c)h
2816(Light)e(Controller)g(is)g(v)o(alid.)23 b(In)14 b(order)g(to)f
2817(restrict)-31 600 y(the)e(beha)o(vior)h(we)f(impose)g(the)g(follo)o
2818(wing)f(two)g(fairness)h(constraints.)16 b(The)11 b(\256rst)h(is:)-31
2819692 y Fm(!\(timer.s)q(ta)q(te=)q(ST)q(ART)q(\);)-31 784
2820y Fq(The)k(timer)g(must)f(e)o(v)o(entually)h(lea)o(v)o(e)h(the)f(ST)l
2821(AR)m(T)h(state.)31 b(This)15 b(constraint)h(pre)o(v)o(ents)g(it)g
2822(from)g(staying)f(in)h(ST)l(AR)m(T)-31 841 y(fore)o(v)o(er)m(.)j(The)11
2823b(second)g(fairness)g(constraint:)-31 933 y Fm(!\(timer.s)q(ta)q(te=)q
2824(SH)q(ORT)q(\);)-31 1025 y Fq(ensures)g(that)g(the)g(timer)f(must)g(e)o
2825(v)o(entually)g(lea)o(v)o(e)i(the)f(SHOR)m(T)h(state.)k(Li)o(v)o(eness)
282611 b(properties)g(\(e.g,)h(cars)f(on)g(farm)g(road)-31
28271082 y(and)f(highway)g(will)f(e)o(v)o(entually)h(cross\))g(would)g(not)
2828f(pass)h(if)h(these)f(fairness)g(constraints)f(are)i(not)f(placed)h(on)
2829f(the)g(timer)m(.)40 1138 y(One)f(ob)o(vious)f(property)h(to)g(check)g
2830(is)g(that)g(the)g(light)e(is)i(not)g(green)g(in)g(both)f(directions)h
2831(at)g(the)g(same)g(time,)g(ensuring)-31 1195 y(that)j(collisions)e(do)h
2832(not)h(occur)g(between)g(traf)o(\256c)h(on)f(the)f(farm)h(road)g(and)g
2833(highway)m(.)18 b(This)11 b(property)h(is)f(written)g(as)h(the)-31
28341251 y(CTL)g(formula:)-31 1343 y Fm(AG)28 b(\()g(!\(\(farm_l)q(ig)q(ht)
2835j(=)c(GREEN\))j(*)e(\(hwy_ligh)q(t)i(=)e(GREEN\)\))i(\);)40
28361435 y Fq(T)l(o)15 b(ensure)g(that)f(a)h(car)h(on)f(the)f(farm)h(road)g
2837(e)o(v)o(entually)f(crosses)h(the)g(intersection,)g(we)g(require)h
2838(that)e(if)h(a)g(car)h(is)-31 1492 y(present)11 b(on)g(the)g(farm)g
2839(road,)g(and)g(the)g(timer)g(is)f(long,)h(then)g(e)o(v)o(entually)f
2840(the)h(farm)g(light)f(will)g(turn)h(green.)17 b(In)11
2841b(CTL)g(this)-31 1548 y(is)g(written)g(as:)-31 1640 y
2842Fm(AG\(\(\(car_)q(pr)q(ese)q(nt)31 b(=)d(YES\))h(*)e(\(timer.s)q(tat)q
2843(e)k(=)c(LONG\)\))j(->)e(AF\(farm_)q(lig)q(ht)j(=)d(GREEN\)\);)40
28441733 y Fq(In)12 b(addition,)g(re)o(gardless)h(of)g(what)f(happens)g(on)
2845g(the)h(farm)f(road,)h(the)g(highway)e(should)g(always)h(be)g(green)h
2846(in)f(the)-31 1789 y(future:)-31 1881 y Fm(AG\(AF\(hwy)q(_l)q(igh)q(t)
284731 b(=)c(GREEN\)\);)40 1973 y Fq(The)9 b(presence)h(of)f(a)h(car)g(on)f
2848(the)g(farm)g(road)h(does)f(not)f(guarantee)i(that)f(e)o(v)o(entually)g
2849(the)g(farm)g(light)f(will)g(turn)h(green.)-31 2030 y(A)k(car)h(may)f
2850(approach,)h(and)f(then)g(back)h(a)o(way)m(,)g(all)f(before)h(the)f
2851(timer)f(goes)h(long.)21 b(This)13 b(property)g(is)f(not)h(necessary)
2852-31 2086 y(for)g(safety)m(,)g(it)e(just)h(maximizes)f(the)h(time)f
2853(that)h(the)g(highway)f(light)g(is)h(green.)20 b(Thus,)12
2854b(it)g(is)f(desirable)h(that)g(the)g(system)-31 2143
2855y(satis\256es)f(the)g(follo)o(wing)f(property:)-31 2235
2856y Fm(!\(AG\(\(car)q(_p)q(res)q(en)q(t)30 b(=)e(YES\))h(->)f(AF\(farm_l)
2857q(ig)q(ht)j(=)d(GREEN\)\)\);)-31 2381 y Fl(3.3)58 b(Language)15
2858b(Containment)-31 2485 y Fq(There)i(are)h(properties)e(of)g(practical)h
2859(interest)f(that)g(cannot)h(be)g(described)f(in)g(CTL.)i(An)e(e)o
2860(xample)h(is)f(the)g(\252almost)-31 2541 y(always\272)f(property:)26
2861b(a)16 b(condition,)g Fp(q)r Fq(,)i(always)d(holds)g(after)i(a)f
2862(\256nite)g(number)g(of)g(transitions)e(\(note)i(that)g(formulas)-31
28632598 y Fp(F)6 b(G)14 b(q)h Fq(and)e Fp(AF)20 b(G)13 b(q)i
2864Fq(would)d(e)o(xpress)i(this,)f(b)o(ut)f(these)i(are)g(not)e(le)o(gal)h
2865(CTL)h(formulas\).)22 b(This)12 b(property)h(looks)f(a)i(lot)-31
28662654 y(like)f Fp(AF)20 b(AG)13 b(q)r Fq(,)i(b)o(ut)e(it)g(is)g(not)f
2867(the)i(same.)23 b(One)13 b(can)h(e)o(xhibit)f(a)h(transition)e(system)g
2868(where)i Fp(AF)21 b(G)13 b(q)i Fq(is)e(true,)i(while)-31
28692711 y Fp(AF)j(AG)11 b(q)j Fq(is)d(false.)906 2835 y(22)p
2870eop
2871%%Page: 23 24
287223 23 bop 40 11 a Fq(A)8 b(solution)f(would)g(be)i(to)f(use)g(a)h(more)
2873f(e)o(xpressi)o(v)o(e)h(type)f(of)h(temporal)f(logic)f(\(for)i
2874(instance,)h(the)e(pre)o(vious)f(property)-31 68 y(could)12
2875b(be)h(e)o(xpressed)g(in)g(PL)l(TL)f(or)h(CTL*\).)21
2876b(But)13 b(there)g(would)e(be)i(dra)o(wbacks,)h(such)f(as)g(the)f
2877(higher)h(comple)o(xity)e(of)-31 124 y(algorithms)i(for)i(model)f
2878(checking.)27 b(An)15 b(alternati)o(v)o(e)g(is)f(to)g(use)h(another)g
2879(v)o(eri\256cation)g(paradigm,)g(called)g(language)-31
2880181 y(containment,)d(based)h(on)f(the)g(theory)g(of)h
2881Fp(!)r Fq(-automata.)19 b(F)o(or)14 b(e)o(xample,)f(it)f(is)g(easy)g
2882(to)g(e)o(xpress)h(the)f(pre)o(vious)g(\252almost)-31
2883237 y(always\272)f(property)g(using)f(an)i(automaton.)40
2884294 y(Currently)17 b(VIS)h(supports)d(a)j(restricted)f(form)g(of)g
2885(language)g(containment.)33 b(W)l(e)18 b(re)o(vie)o(w)f(brie\257y)g
2886(the)g(idea)g(of)-31 350 y(language)e(containment:)22
2887b(for)16 b(a)f(system)f(to)h(satisfy)f(a)i(property)f(it)f(must)g(be)h
2888(that)g Fp(L)p Fb(\()p Fp(S)s Fb(\))h Fj(\022)j Fp(L)p
2889Fb(\()p Fp(T)6 b Fb(\))p Fq(,)15 b(where)h Fp(S)h Fq(is)e(an)-31
2890407 y Fp(!)r Fq(-automaton)8 b(representing)h(the)f(system,)h
2891Fp(T)15 b Fq(is)8 b(an)h Fp(!)r Fq(-automaton)f(representing)g(the)h
2892(property)g(and)f Fp(L)h Fq(is)g(the)f(language)-31 463
2893y(accepted)k(by)f(the)h(automaton.)j(It)d(is)e(a)i(fact)g(that)e
2894Fp(L)p Fb(\()p Fp(S)s Fb(\))i Fj(\022)h Fp(L)p Fb(\()p
2895Fp(T)6 b Fb(\))k Fq(is)h(equi)o(v)o(alent)g(to)g Fp(L)p
2896Fb(\()p Fp(S)s Fb(\))d Fj(\\)p 1461 424 100 2 v 11 w
2897Fp(L)p Fb(\()p Fp(T)e Fb(\))12 b(=)h Fj(;)p Fq(.)40 519
2898y(T)l(o)g(achie)o(v)o(e)h(language)f(containment)f(checking)h(we)h
2899(represent)f(the)g(composition)e(of)i(the)g(gi)o(v)o(en)g(system)f
2900(with)h(a)-31 576 y(model)d(representing)h(the)g(ne)o(gation)f(of)h
2901(the)f(property)h(and)g(check)g(it)g(for)g(language)f(emptiness.)16
2902b(The)11 b(language)f(of)h(the)-31 632 y(composed)g(system)f(is)h
2903(empty)f(if)i(and)f(only)g(if)g(the)g(system)g(satis\256es)g(the)g
2904(property)g Fp(T)6 b Fq(.)40 689 y(Language)14 b(emptiness)f(is)h(used)
2905g(not)g(only)f(to)h(v)o(erify)h(properties)f(that)g(cannot)g(be)h(e)o
2906(xpressed)f(in)g(F)o(air)i(CTL,)f(b)o(ut)-31 745 y(also)g(to)g(check)h
2907(whether)g(the)f(abstraction)g(of)h(a)g(system)e(still)g(contains)h
2908(the)g(original)g(system.)28 b(In)16 b(both)e(cases)i(one)-31
2909802 y(must)c(complement)g(an)h Fp(!)r Fq(\261automaton)e(\()p
2910Fp(T)6 b Fq(\),)14 b(and)f(this)f(is)g(hard)h(to)g(do)f(if)h(the)g
2911(automaton)e(is)i(nondeterministic)e(\(as)i(is)-31 858
2912y(usually)7 b(the)g(case)i(for)f(an)g(abstraction\).)15
2913b(The)8 b(fact)g(that)f(complementation)f(of)i(a)g(deterministic)e
2914(property)h(is)h(easy)m(,)h(while)-31 915 y(complementation)e(of)h(a)h
2915(nondeterministic)d(property)i(may)g(be)h(hard,)g(is)f(a)h(ke)o(y)f
2916(problem)f(with)h(language)g(containment.)-31 971 y(This)k(has)h
2917(prompted)f(a)h(lot)f(of)h(research)h(on)f(dif)o(ferent)f(classes)h(of)
2918g Fp(!)r Fq(-automata)f(with)h(dif)o(ferent)f(e)o(xpressi)o(v)o(eness)h
2919(and)-31 1028 y(dif)o(\256culty)j(of)h(complementation.)31
2920b(Currently)16 b(VIS)i(supports)d(language)h(emptiness)g(of)g
2921(nondeterministic)f(B)t(\310)-19 b(uchi)-31 1084 y(automata;)15
2922b(only)f(it)g(is)g(the)g(responsibility)f(of)h(the)g(user)h(to)f(deri)o
2923(v)o(e)h(the)f(complement)g(of)g(a)h(gi)o(v)o(en)f(nondeterministic)-31
29241140 y(property)m(.)21 b(B)t(\310)-19 b(uchi)13 b(automata)f
2925(acceptance)i(conditions)d(are)j(states)e(that)h(must)e(be)i(reached)h
2926(in\256nitely)e(often)g(and)h(the)o(y)-31 1197 y(are)g(speci\256ed)g
2927(by)f(means)g(of)g(fairness)g(constraints.)18 b(Thus)12
2928b(to)f(use)i(language)f(containment,)f(the)h(user)h(must)e(insert)h(in)
2929-31 1253 y(the)g(V)-5 b(erilog)12 b(hierarchy)g(a)h(monitor)n(,)f
2930(which)f(represents)i(the)f(complement)f(automaton)g(structure,)i(and)f
2931(impose)f(a)h(set)-31 1310 y(of)j(fairness)g(conditions)e(to)i(specify)
2932g(the)g(complement)f(automaton)g(acceptance)i(conditions,)f(i.e.,)i
2933(the)e(acceptance)-31 1366 y(conditions)10 b(are)i(speci\256ed)g(in)f
2934(terms)g(of)g(fair)g(paths.)40 1423 y(As)d(a)g(\256nal)h(note,)g
2935(inside)e(VIS,)j(language)e(emptiness)f(\(language)h(containment\))g
2936(is)g(reduced)g(to)g(CTL,)h(by)f(checking)-31 1479 y(the)k(CTL)g
2937(formula)f Fp(E)j(G)d(tr)q(ue)h Fq(on)f(the)h(system)e(\(system)h
2938(composed)g(with)g(complemented)f(property\),)i(i.e.,)h(whether)-31
29391536 y(there)f(is)f(an)g(in\256nite)g(path)g(\(notice)g(that)g
2940Fp(tr)q(ue)h Fq(is)f(always)f(satis\256ed\),)i(satisfying)e
2941(appropriate)h(fairness)g(constraints.)906 2835 y(23)p
2942eop
2943%%Page: 24 25
294424 24 bop -31 323 a Fn(Chapter)20 b(4)-31 530 y Fs(F)m(ormal)27
2945b(V)-10 b(eri\256cation)24 b(in)i(VIS)-31 753 y Fq(In)15
2946b(this)f(chapter)h(we)g(describe)g(the)g(usage)g(and)g(the)g(relation)f
2947(between)h(the)g(VIS)g(commands)f(that)g(perform)h(formal)-31
2948809 y(v)o(eri\256cation.)i(The)12 b(main)f(sections)f(are:)26
2949903 y(1.)23 b(b)o(uilding)10 b(an)h(internal)g(representation)g(of)h
2950(the)f(\256nite-state)g(system,)26 997 y(2.)23 b(FSM)12
2951b(tra)o(v)o(ersal,)26 1091 y(3.)23 b(speci\256cation)11
2952b(of)g(fairness)g(constraints,)26 1184 y(4.)23 b(language)11
2953b(emptiness,)26 1278 y(5.)23 b(model)10 b(checking,)26
29541372 y(6.)23 b(equi)o(v)o(alence)11 b(checking,)h(and)26
29551466 y(7.)23 b(simulation.)-31 1613 y Fl(4.1)58 b(Repr)o(esenting)15
2956b(the)g(System)g(f)o(or)f(V)-6 b(eri\256cation)-31 1716
2957y Fq(In)12 b(this)e(section,)h(we)h(describe)f(the)g(steps)g(in)n(v)o
2958(olv)o(ed)g(in)g(con)n(v)o(erting)g(a)h(BLIF-MV)g(description)e(into)g
2959(an)i(internal)f(FSM)-31 1773 y(representation.)-31 1898
2960y Fk(4.1.1)51 b(Building)11 b(the)h(Flattened)f(Network)-31
29611985 y Fq(The)i(compound)e Fi(init)p 323 1985 14 2 v
296215 w(verify)i Fq(command)e(e)o(x)o(ecutes)i(the)g(entire)f(set)g(of)h
2963(required)f(initialization)f(commands.)18 b(When)13 b(a)-31
29642041 y(BLIF-MV)e(description)d(is)h(read)i(into)d(VIS,)j(it)e(is)g
2965(stored)h(as)f(a)h(\252hierarchy\272)h(tree,)g(which)e(is)g(a)h
2966(hierarchical)g(description)-31 2098 y(of)h(the)f(design;)g(it)g
2967(consists)f(of)i(modules)e(\(also)h(called)h Fi(hnodes)p
2968Fq(\))f(that)g(in)g(turn)g(consist)g(of)g(sub-modules)f(\(also)i
2969(hnodes\))-31 2154 y(that)16 b(are)h(related)g(in)e(some)h(fashion.)31
2970b(This)15 b(relation)h(is)g(represented)g(as)h(a)f(table,)i(which)e
2971(implements)e(the)i(output)-31 2211 y(function)d(in)g(terms)f(of)i(the)
2972f(sub-module)f(inputs.)21 b(The)13 b Fi(print)p 970 2211
2973V 16 w(hier)o(ar)n(c)o(hy)p 1160 2211 V 16 w(stats)f
2974Fq(command)h(in)g(VIS)h(prints)e(hierarchy)-31 2267 y(information,)e
2975(and)g(the)g Fi(print)p 442 2267 V 15 w(models)g Fq(command)f(lists)g
2976(statistics)f(on)i(all)g(the)g(models)f(in)h(the)g(hierarchy)m(.)16
2977b(Other)11 b(useful)-31 2324 y(print)g(commands)f(are)i
2978Fi(print)p 436 2324 V 16 w(io)e Fq(and)i Fi(print)p 666
29792324 V 15 w(latc)o(hes)p Fq(.)40 2380 y(The)j(hierarchy)h(can)g(be)g
2980(described)g(by)f(a)h(tree.)30 b(The)16 b(root)f(of)g(the)h(tree)g(is)f
2981(the)h(main)f(module,)h(and)f(the)h(lea)o(v)o(es)-31
29822436 y(are)f(lo)o(wer)f(le)o(v)o(el)f(instantiations)f(of)i(modules.)23
2983b(The)14 b(hierarchy)g(in)g(VIS)g(can)h(be)f(tra)o(v)o(ersed)g(in)g(a)g
2984(manner)g(similar)f(to)-31 2493 y(tra)o(v)o(ersing)g(directories)f(in)g
2985(UNIX.)h(It)f(is)g(possible)g(to)g(reach)h(a)g(desired)f(node)h(in)f
2986(the)g(tree)h(by)f(walking)f(up)h(and)h(do)o(wn)-31 2549
2987y(with)g(the)h Fi(cd)g Fq(command.)23 b(At)14 b(an)o(y)g(node)g
2988(simulation,)f(v)o(eri\256cation)h(and)g(synthesis)e(operations)h(can)i
2989(be)f(performed.)-31 2606 y(The)e(command)e Fi(pwd)i
2990Fq(prints)e(the)h(name)h(of)f(the)g(current)h(node.)17
2991b(The)11 b(command)f Fi(ls)h Fq(lists)f(all)h(the)h(nodes)f
2992(\(submodules\))-31 2662 y(in)g(the)g(current)h(node;)f
2993Fi(ls)g(-R)g Fq(lists)f(all)h(the)h(nodes)f(in)g(the)g(current)g
2994(subtree.)906 2835 y(24)p eop
2995%%Page: 25 26
299625 25 bop 40 11 a Fq(The)15 b(\256rst)h(step)f(to)o(wards)g(v)o
2997(eri\256cation)h(consists)e(of)i(\252\257attening\272)f(this)g
2998(hierarchical)h(description)f(into)f(a)i(single)-31 68
2999y(network)10 b(\(netlist)g(of)h(multi-v)o(alued)f(logic)g(gates\).)17
3000b(The)11 b(output)e(is)i(computed)f(from)h(the)g(inputs)e(of)j(the)e
3001(design)h(by)f(the)-31 124 y(network)g(circuit,)g(which)g(consists)f
3002(of)h(logic)g(gates,)g(interconnections)f(between)i(them,)f(and)g
3003(latches)g(to)g(represent)g(the)-31 181 y(sequential)d(elements.)16
3004b(The)8 b Fi(\257atten)p 549 181 14 2 v 15 w(hier)o(ar)n(c)o(hy)h
3005Fq(command)e(creates)i(this)e(network,)i(and)f(the)g
3006Fi(print)p 1542 181 V 15 w(network)g Fq(command)-31 237
3007y(can)16 b(be)f(used)g(to)g(print)g(it.)28 b(Other)15
3008b(related)g(commands)f(are)j Fi(print)p 1059 237 V 15
3009w(network)p 1221 237 V 16 w(stats)d Fq(command)h(that)g(prints)f
3010(statistics)-31 294 y(about)e(the)g(network,)g(and)g
3011Fi(test)p 469 294 V 16 w(network)p 632 294 V 16 w(acyclic)h
3012Fq(command)e(that)h(checks)g(the)g(network)f(for)i(combinational)d(c)o
3013(ycles.)-31 350 y(On)h(the)h(T)n(raf)o(\256c)h(Light)d(Controller)h(e)o
3014(xample)g(these)h(commands)e(work)h(as)g(follo)o(ws)f(:)-31
3015430 y Fd(UC)20 b(Berkeley,)f(VIS)h(Release)f(1.0)h(\(compiled)f
3016(11-Dec-95)g(at)h(10:36)g(AM\))-31 470 y(VIS>)g(read_blif_mv)f(tlc.mv)
3017-31 509 y(Warning:)g(Some)h(variables)f(are)h(unused)g(in)f(model)h
3018(main.)-31 548 y(vis>)g(print_hierarchy_stats)-31 588
3019y(Model)g(name)f(=)h(main,)g(Instance)f(name)h(=)g(main)-31
3020627 y(inputs)g(=)f(0,)h(outputs)g(=)g(0,)f(variables)h(=)f(12,)h
3021(tables)g(=)f(3,)h(latches)g(=)f(0,)h(children)g(=)f(4)-31
3022667 y(vis>)h(print_models)-31 706 y(Model)g(name)f(=)h(hwy_control)-31
3023746 y(inputs)g(=)f(4,)h(outputs)g(=)g(3,)f(variables)h(=)f(49,)h
3024(tables)g(=)f(44,)h(latches)g(=)f(1)-31 785 y(subckts)h(=)f(0)-31
3025824 y(Model)h(name)f(=)h(sensor)-31 864 y(inputs)g(=)f(0,)h(outputs)g
3026(=)g(1,)f(variables)h(=)f(12,)h(tables)g(=)f(11,)h(latches)g(=)f(1)-31
3027903 y(subckts)h(=)f(0)-31 943 y(Model)h(name)f(=)h(main)-31
3028982 y(inputs)g(=)f(0,)h(outputs)g(=)g(0,)f(variables)h(=)f(12,)h
3029(tables)g(=)f(3,)h(latches)g(=)f(0)-31 1022 y(subckts)h(=)f(4)-31
30301061 y(Model)h(name)f(=)h(timer)-31 1101 y(inputs)g(=)f(1,)h(outputs)g
3031(=)g(2,)f(variables)h(=)f(40,)h(tables)g(=)f(38,)h(latches)g(=)f(1)-31
30321140 y(subckts)h(=)f(0)-31 1179 y(Model)h(name)f(=)h(farm_control)-31
30331219 y(inputs)g(=)f(4,)h(outputs)g(=)g(3,)f(variables)h(=)f(49,)h
3034(tables)g(=)f(44,)h(latches)g(=)f(1)-31 1258 y(subckts)h(=)f(0)-31
30351298 y(vis>)h(flatten_hierarchy)-31 1337 y(vis>)g(print_network_stats)
3036-31 1377 y(main)40 b(combinational=142)e(pi=0)i(po=0)f(latches=4)h
3037(pseudo=2)f(const=40)g(edges=206)-31 1416 y(vis>)20 b
3038(test_network_acyclic)-31 1455 y(Network)g(has)f(no)h(combinational)f
3039(cycles)-31 1495 y(vis>)h(ls)-31 1534 y(farm_control)-31
30401574 y(hwy_control)-31 1613 y(sensor)-31 1653 y(timer)-31
30411692 y(vis>)g(cd)g(hwy_control)-31 1731 y(vis>)g(print_io)-31
30421771 y(inputs:)g(car_present)f(enable_hwy)g(long_timer)g(short_timer)
3043-31 1810 y(outputs:)g(enable_farm)h(hwy_light)f(hwy_start_timer)-31
30441850 y(vis>)h(print_latches)-31 1889 y(hwy_light)-31
30451929 y(vis>)g(flatten_hierarchy)-31 1968 y(vis>)g(print_network_stats)
3046-31 2008 y(hwy_control)39 b(combinational=45)g(pi=4)g(po=3)h(latches=1)
3047f(pseudo=0)g(const=12)h(edges=68)40 2105 y Fq(Note)16
3048b(that)g(when)h(a)g(node)g(is)f(arri)o(v)o(ed)h(at)g(for)g(the)f
3049(\256rst)h(time,)h(there)f(is)f(no)g(network)g(for)h(that)g(node)f
3050(until)g Fi(\257at-)-31 2161 y(ten)p 28 2161 V 16 w(hier)o(ar)n(c)o(hy)
3051c Fq(is)f(called)h(for)f(that)g(node.)40 2218 y(Also)g
3052Fi(\257atten)p 256 2218 V 16 w(hier)o(ar)n(c)o(hy)h Fq(automatically)f
3053(checks)h(each)h(table)f(in)g(the)g(network)f(for)h(being)g
3054(deterministic)e(\(e)o(xcept)-31 2274 y(for)15 b(pseudo-inputs\))f(and)
3055h(completely)f(speci\256ed.)27 b(Since)16 b(this)e(checking)h(takes)f
3056(some)g(time,)i(it)e(can)h(be)g(turned)g(of)o(f)-31 2330
3057y(safely)d(using)e(the)h(option)f Fi(\257atten)p 513
30582330 V 16 w(hier)o(ar)n(c)o(hy)i(-b)p Fq(,)g(after)p
3059773 2337 84 2 v 12 w(a)f(BLIF-MV)i(\256le)e(has)h(been)f(checked)h
3060(once.)-31 2454 y Fk(4.1.2)51 b(Ordering)-31 2541 y Fq(The)17
3061b(ne)o(xt)g(step)g(to)o(wards)f(v)o(eri\256cation)h(consists)f(of)h
3062(con)n(v)o(erting)g(this)f(network)g(representation)h(into)f(a)h
3063(functional)-31 2598 y(description)11 b(that)h(represents)g(the)g
3064(output)e(and)i(ne)o(xt)g(state)g(v)o(ariables)g(as)g(a)g(function)g
3065(of)g(the)f(inputs)g(and)h(current)g(state)-31 2654 y(v)o(ariables.)22
3066b(W)l(e)14 b(use)f(the)g(BDD)h(\(binary)f(decision)g(diagram\))g(and)g
3067(its)f(e)o(xtension)h(the)g(MDD)g(\(multi)o(v)o(alued)e(decision)-31
30682711 y(diagram\))h(to)g(represent)h(boolean)e(and)i(discrete)f
3069(functions.)18 b(Before)c(creating)e(the)g(MDDs,)g(it)g(is)f(necessary)
3070i(to)f(order)906 2835 y(25)p eop
3071%%Page: 26 27
307226 26 bop -31 11 a Fq(the)18 b(v)o(ariables)g(in)g(the)h(support)e(of)h
3073(the)h(MDD.)f(This)g(is)g(accomplished)f(by)h(the)g Fi(static)p
30741435 11 14 2 v 16 w(or)n(der)g Fq(command,)i(which)-31
307568 y(gi)o(v)o(es)13 b(an)h(initial)d(ordering.)23 b(Networks)12
3076b(with)h(combinational)e(c)o(ycles)j(cannot)f(be)h(ordered.)23
3077b(If)13 b(the)h(MDD)e(v)o(ariables)-31 124 y(ha)o(v)o(e)k(already)g
3078(been)g(ordered,)i(then)d Fi(static)p 686 124 V 15 w(or)n(der)g
3079Fq(does)h(nothing.)28 b(T)l(o)15 b(undo)g(the)h(current)f(ordering,)i
3080(rein)n(v)o(oke)e(the)-31 181 y(command)e Fi(\257atten)p
3081281 181 V 15 w(hier)o(ar)n(c)o(hy)p Fq(.)24 b(At)13 b(an)o(y)h(stage)f
3082(the)h(current)g(v)o(ariable)f(ordering)g(can)h(be)g(written)f(out)f
3083(to)i(a)f(\256le)h(using)-31 237 y(the)d Fi(write)p 133
3084237 V 17 w(or)n(der)g Fq(command.)-31 362 y Fk(4.1.3)51
3085b(Computing)11 b(FSM)h(Inf)o(ormation)-31 449 y Fq(The)17
3086b Fi(b)o(uild)p 154 449 V 15 w(partition)p 331 449 V
308714 w(mdds)f Fq(command)f(computes)h(the)g(transition)f(function)g
3088(MDDs.)31 b(Depending)16 b(on)g(the)g(parti-)-31 506
3089y(tioning)d(method)g(selected,)i(the)f(MDDs)f(for)h(the)g
3090(combinational)e(outputs)h(\(COs\))i(are)f(b)o(uilt)f(in)h(terms)f(of)h
3091(either)g(the)-31 562 y(combinational)g(inputs)g(\(CIs\))i(or)f(some)g
3092(subset)g(of)g(intermediate)g(nodes)g(of)g(the)g(network.)28
3093b(The)16 b(MDDs)e(b)o(uilt)g(are)-31 619 y(stored)i(in)f(a)h(D)n(A)n(G)
3094h(called)e(a)i(\252partition\272.)29 b(The)16 b(v)o(ertices)h(of)f(a)g
3095(partition)e(correspond)i(to)g(the)f(CIs,)j(COs,)g(and)e(an)o(y)-31
3096675 y(intermediate)9 b(nodes)f(used.)16 b(Each)9 b(v)o(erte)o(x)h(has)f
3097(a)g(multi-v)o(alued)f(function)g(\(represented)i(by)f(an)g(MDD\))g(e)o
3098(xpressing)f(the)-31 732 y(function)h(of)i(the)f(corresponding)f
3099(network)g(node)h(in)g(terms)g(of)g(the)g(partition)f(v)o(ertices)h(in)
3100g(its)f(transiti)o(v)o(e)g(fanin.)16 b(Hence,)-31 788
3101y(the)c(MDDs)f(of)g(the)h(partition)e(represent)i(a)g(partial)f
3102(collapsing)g(of)g(the)h(network.)17 b(The)11 b Fi(inout)g
3103Fq(method)f(represents)i(one)-31 845 y(e)o(xtreme)i(where)g(no)f
3104(intermediate)f(nodes)h(are)h(used,)g(and)f Fi(total)f
3105Fq(represents)i(the)f(other)g(e)o(xtreme)h(where)f(e)o(v)o(ery)h(node)
3106-31 901 y(in)h(the)h(network)f(has)h(a)g(corresponding)f(v)o(erte)o(x)h
3107(in)g(the)f(partition.)29 b(If)16 b(no)f Fi(method)h
3108Fq(is)f(speci\256ed)h(on)f(the)h(command)-31 957 y(line,)g(then)f(the)h
3109(v)o(alue)f(of)g(the)g(\257ag)h Fi(partition)p 717 957
3110V 15 w(method)e Fq(is)h(used)g(as)h(default)e(\(this)h(\257ag)h(is)f
3111(set)g(by)g(the)g(command)f Fi(set)-31 1014 y(partition)p
3112134 1014 V 14 w(method)p Fq(\),)j(unless)e(it)g(does)g(not)g(ha)o(v)o
3113(e)h(a)g(v)o(alue,)g(in)f(which)h(case)g(the)f Fi(inout)f
3114Fq(method)h(is)g(used.)29 b(The)15 b(parti-)-31 1070
3115y(tion)g(graph)g(can)h(be)g(printed)e(to)i(a)f(\256le)h(with)f(the)g
3116Fi(print)p 879 1070 V 15 w(partition)f Fq(command.)28
3117b(Another)15 b(related)h(command)e(is)h(the)-31 1127
3118y Fi(print)p 62 1127 V 15 w(partition)p 239 1127 V 15
3119w(stats)10 b Fq(command)g(that)h(prints)g(statistics)e(on)j(the)f
3120(partition)f(graph.)40 1183 y(The)h(complete)g(set)g(of)h(commands)e
3121(included)h(by)g Fi(init)p 913 1183 V 15 w(verify)g Fq(are:)26
31221277 y(1.)23 b Fi(\257atten)p 201 1277 V 15 w(hier)o(ar)n(c)o(hy)p
3123Fq(,)26 1371 y(2.)g Fi(static)p 186 1371 V 15 w(or)n(der)p
3124Fq(,)12 b(and)26 1465 y(3.)23 b Fi(b)o(uild)p 180 1465
3125V 15 w(partition)p 357 1465 V 15 w(mdds)p Fq(.)-31 1554
3126y Fd(UC)d(Berkeley,)f(VIS)h(Release)f(1.0)h(\(compiled)f(11-Dec-95)g
3127(at)h(10:36)g(AM\))-31 1593 y(vis>)g(read_blif_mv)f(tlc.mv)-31
31281633 y(Warning:)g(Some)h(variables)f(are)h(unused)g(in)f(model)h(main.)
3129-31 1672 y(vis>)g(flatten_hierarchy)-31 1712 y(vis>)g(static_order)-31
31301751 y(vis>)g(build_partition_mdds)-31 1791 y(vis>)g
3131(print_partition_stats)-31 1830 y(Method)g(Inputs-Outputs,)e(8)i
3132(sinks,)g(10)g(sources,)f(14)h(total)f(vertices,)g(78)h(mdd)g(nodes)-31
31331955 y Fk(4.1.4)51 b(Advanced)11 b(Ordering)-31 2042
3134y Fq(Dynamic)i(ordering)g(of)h(v)o(ariables)f(may)g(be)g(enabled)h(and)
3135f(disabled)g(using)f(the)i Fi(dynamic)p 1436 2042 V 16
3136w(var)p 1513 2042 V 16 w(or)n(dering)f Fq(command.)-31
31372099 y(Dynamic)7 b(ordering)h(is)f(a)h(technique)f(to)h(reorder)g(the)g
3138(MDD)f(v)o(ariables)h(to)f(reduce)i(the)e(size)h(of)g(the)f(e)o
3139(xisting)g(MDDs.)15 b(The)-31 2155 y(commands)e Fi(\257atten)p
3140299 2155 V 15 w(hier)o(ar)n(c)o(hy)h Fq(and)g Fi(static)p
3141682 2155 V 15 w(or)n(der)f Fq(must)g(be)g(in)n(v)o(oked)g(before)h
3142(this)e(command.)23 b(A)m(v)o(ailable)12 b(methods)-31
31432212 y(for)j(dynamic)g(reordering)g(are)g Fi(window)g
3144Fq(and)g Fi(sift)p Fq(.)26 b(Dynamic)15 b(ordering)f(may)h(be)g(time)f
3145(consuming,)h(b)o(ut)f(can)h(often)-31 2268 y(reduce)d(the)f(size)h(of)
3146f(the)h(MDDs)e(dramatically)m(.)40 2324 y(Dynamic)15
3147b(ordering)h(is)f(best)h(in)n(v)o(oked)e(e)o(xplicitly)h(\(using)g(the)
3148h Fi(dynamic)p 1237 2324 V 16 w(var)p 1314 2324 V 16
3149w(or)n(dering)f(-f)h(<method>)f Fq(option\))-31 2381
3150y(after)e(the)f Fi(b)o(uild)p 230 2381 V 15 w(partition)p
3151407 2381 V 15 w(mdds)f Fq(and)h Fi(print)p 698 2381 V
315216 w(img)p 783 2381 V 16 w(info)f Fq(commands.)18 b(If)13
3153b(dynamic)e(ordering)h(\256nds)g(a)h(good)e(ordering,)-31
31542437 y(then)16 b(you)g(may)h(wish)f(to)g(sa)o(v)o(e)h(this)e(ordering)i
3155(\(using)e Fi(write)p 977 2437 V 17 w(or)n(der)h(<\256le>)p
3156Fq(\))g(and)h(reuse)g(it)f(\(using)f Fi(static)p 1727
31572437 V 16 w(or)n(der)h(-s)-31 2494 y(<method>)d(<\256le>)p
3158Fq(\).)23 b(W)n(ith)13 b(option)f Fi(dynamic)p 737 2494
3159V 16 w(var)p 814 2494 V 16 w(or)n(dering)h(-e)h(<method>)f
3160Fq(dynamic)f(ordering)i(is)f(automatically)-31 2550 y(enabled)i(whene)o
3161(v)o(er)h(a)f(certain)g(threshold)f(on)h(the)g(o)o(v)o(erall)g(MDD)g
3162(size)g(is)g(reached.)28 b(Enabling)14 b(dynamic)g(ordering)-31
31632607 y(may)e(slo)o(w)f(do)o(wn)g(the)g(v)o(eri\256cation,)i(b)o(ut)e
3164(it)g(can)i(make)e(the)h(dif)o(ference)g(between)g(completing)f(and)g
3165(not)h(completing)e(a)-31 2663 y(v)o(eri\256cation)i(task.)906
31662835 y(26)p eop
3167%%Page: 27 28
316827 27 bop -31 11 a Fd(UC)20 b(Berkeley,)f(VIS)h(Release)f(1.0)h
3169(\(compiled)f(13-Dec-95)g(at)h(8:36)g(AM\))-31 51 y(vis>)g
3170(read_blif_mv)f(tlc.mv)-31 90 y(Warning:)g(Some)h(variables)f(are)h
3171(unused)g(in)f(model)h(main.)-31 130 y(vis>)g(init_verify)-31
3172169 y(vis>)g(print_partition_stats)-31 209 y(Method)g(Inputs-Outputs,)e
3173(8)i(sinks,)g(10)g(sources,)f(14)h(total)f(vertices,)g(78)h(mdd)g
3174(nodes)-31 248 y(vis>)g(write_order)-31 287 y(#)g(UC)g(Berkeley,)f(VIS)
3175h(Release)f(1.0)h(\(compiled)f(13-Dec-95)g(at)h(8:36)g(AM\))-31
3176327 y(#)g(network)f(name:)h(main)-31 366 y(#)g(generated:)f(Wed)h(Dec)g
3177(13)f(14:13:57)h(1995)-31 406 y(#)-31 445 y(#)g(name)299
3178b(type)238 b(mddId)20 b(vals)g(levs)-31 485 y(sensor.rand_choice)39
3179b(pseudo-input)178 b(0)80 b(2)20 b(\(0\))-31 524 y(timer.state)179
3180b(latch)318 b(1)80 b(3)20 b(\(1,)f(2\))-31 563 y(hwy_light)219
3181b(latch)318 b(2)80 b(3)20 b(\(3,)f(4\))-31 603 y(car_present)179
3182b(latch)318 b(3)80 b(2)20 b(\(5\))-31 642 y(car_present$NS)119
3183b(shadow)298 b(4)80 b(2)20 b(\(6\))-31 682 y(farm_light)199
3184b(latch)318 b(5)80 b(3)20 b(\(7,)f(8\))-31 721 y(timer.rand_choice)59
3185b(pseudo-input)178 b(6)80 b(2)20 b(\(9\))-31 761 y(timer.state$NS)119
3186b(shadow)298 b(7)80 b(3)20 b(\(10,)f(11\))-31 800 y(farm_light$NS)139
3187b(shadow)298 b(8)80 b(3)20 b(\(12,)f(13\))-31 839 y(hwy_light$NS)159
3188b(shadow)298 b(9)80 b(3)20 b(\(14,)f(15\))-31 879 y(vis>)h
3189(dynamic_var_ordering)e(-f)i(sift)-31 918 y(Dynamic)g(variable)f
3190(ordering)g(forced)h(with)f(method)h(sift....)-31 958
3191y(vis>)g(print_partition_stats)-31 997 y(Method)g(Inputs-Outputs,)e(8)i
3192(sinks,)g(10)g(sources,)f(14)h(total)f(vertices,)g(70)h(mdd)g(nodes)-31
31931037 y(vis>)g(write_order)-31 1076 y(#)g(UC)g(Berkeley,)f(VIS)h
3194(Release)f(1.0)h(\(compiled)f(13-Dec-95)g(at)h(8:36)g(AM\))-31
31951116 y(#)g(network)f(name:)h(main)-31 1155 y(#)g(generated:)f(Wed)h
3196(Dec)g(13)f(14:14:20)h(1995)-31 1194 y(#)-31 1234 y(#)g(name)299
3197b(type)238 b(mddId)20 b(vals)g(levs)-31 1273 y(sensor.rand_choice)39
3198b(pseudo-input)178 b(0)80 b(2)20 b(\(0\))-31 1313 y(timer.state)179
3199b(latch)318 b(1)80 b(3)20 b(\(1,)f(2\))-31 1352 y(hwy_light)219
3200b(latch)318 b(2)80 b(3)20 b(\(3,)f(6\))-31 1392 y(farm_light)199
3201b(latch)318 b(5)80 b(3)20 b(\(4,)f(5\))-31 1431 y(car_present$NS)119
3202b(shadow)298 b(4)80 b(2)20 b(\(7\))-31 1470 y(car_present)179
3203b(latch)318 b(3)80 b(2)20 b(\(8\))-31 1510 y(timer.rand_choice)59
3204b(pseudo-input)178 b(6)80 b(2)20 b(\(9\))-31 1549 y(timer.state$NS)119
3205b(shadow)298 b(7)80 b(3)20 b(\(10,)f(11\))-31 1589 y(farm_light$NS)139
3206b(shadow)298 b(8)80 b(3)20 b(\(12,)f(13\))-31 1628 y(hwy_light$NS)159
3207b(shadow)298 b(9)80 b(3)20 b(\(14,)f(15\))-31 1668 y(vis>)h
3208(write_order)f(tlc.sift)-31 1707 y(vis>)h(quit)-31 1825
3209y(/projects/vis/vis/mips/bin/vis)-31 1865 y(UC)g(Berkeley,)f(VIS)h
3210(Release)f(1.0)h(\(compiled)f(13-Dec-95)g(at)h(8:36)g(AM\))-31
32111904 y(vis>)g(read_blif_mv)f(tlc.mv)-31 1944 y(Warning:)g(Some)h
3212(variables)f(are)h(unused)g(in)f(model)h(main.)-31 1983
3213y(vis>)g(flatten_hierarchy)e(-b)-31 2023 y(vis>)i(static_order)f(-s)h
3214(input_and_latch)e(tlc.sift)-31 2062 y(vis>)i(write_order)-31
32152101 y(#)g(UC)g(Berkeley,)f(VIS)h(Release)f(1.0)h(\(compiled)f
3216(13-Dec-95)g(at)h(8:36)g(AM\))-31 2141 y(#)g(network)f(name:)h(main)-31
32172180 y(#)g(generated:)f(Wed)h(Dec)g(13)f(14:34:08)h(1995)-31
32182220 y(#)-31 2259 y(#)g(name)299 b(type)238 b(mddId)20
3219b(vals)g(levs)-31 2299 y(sensor.rand_choice)39 b(pseudo-input)178
3220b(0)80 b(2)20 b(\(0\))-31 2338 y(timer.state)179 b(latch)318
3221b(1)80 b(3)20 b(\(1,)f(2\))-31 2377 y(hwy_light)219 b(latch)318
3222b(2)80 b(3)20 b(\(3,)f(4\))-31 2417 y(farm_light)199
3223b(latch)318 b(3)80 b(3)20 b(\(5,)f(6\))-31 2456 y(car_present$NS)119
3224b(shadow)298 b(4)80 b(2)20 b(\(7\))-31 2496 y(car_present)179
3225b(latch)318 b(5)80 b(2)20 b(\(8\))-31 2535 y(timer.rand_choice)59
3226b(pseudo-input)178 b(6)80 b(2)20 b(\(9\))-31 2575 y(timer.state$NS)119
3227b(shadow)298 b(7)80 b(3)20 b(\(10,)f(11\))-31 2614 y(farm_light$NS)139
3228b(shadow)298 b(8)80 b(3)20 b(\(12,)f(13\))-31 2654 y(hwy_light$NS)159
3229b(shadow)298 b(9)80 b(3)20 b(\(14,)f(15\))906 2835 y
3230Fq(27)p eop
3231%%Page: 28 29
323228 28 bop 40 11 a Fq(Dynamic)16 b(ordering)g(mo)o(v)o(es)h(around)f
3233(binary)h(v)o(alued)f(v)o(ariables,)i(possibly)d(separating)h(a)h
3234(group)g(of)f(v)o(ariables)-31 68 y(which)e(encode)h(a)g(single)f
3235(multi-v)o(alued)e(v)o(ariable.)27 b(Note,)15 b(ho)o(we)o(v)o(er)n(,)h
3236(that)e(the)h(resolution)e(of)h(reading)h(and)f(writing)-31
3237124 y(v)o(ariable)e(ordering)f(\256les)h(is)f(at)h(the)g(multi-v)o
3238(alued)e(v)o(ariable)h(le)o(v)o(el,)i(not)e(the)g(bit-le)o(v)o(el.)17
3239b(Therefore)c(when)f(the)f(ordering)-31 181 y(found)16
3240b(by)g(dynamic)g(ordering)g(is)f(read)i(back,)h(the)f(BDD)f(v)o
3241(ariables)g(which)g(encode)h(the)f(MDD)g(v)o(ariables)g(do)g(not)-31
3242237 y(necessarily)e(occupy)f(the)g(same)g(le)o(v)o(els)g(as)h(reported)
3243g(in)f(the)g(\256le)h Fi(tlc.sift)p Fq(.)22 b(See)15
3244b(for)f(e)o(xample)f(v)o(ariable)h Fm(hwy)p 1738 237
324514 2 v 17 w(light)-31 294 y Fq(in)h(the)g(e)o(xample)h(abo)o(v)o(e.)29
3246b(The)16 b(only)e(information)h(that)f(is)h(used)g(from)h(the)f(\256le)
3247h Fi(tlc.sift)e Fq(is)h(the)g(order)h(of)f(the)h(MDD)-31
3248350 y(v)o(ariables)d(in)g(the)g(\256rst)h(column.)21
3249b(By)14 b(editing)e(the)h(\256le)h Fi(tlc.sift)e Fq(an)o(y)i(order)g
3250(can)f(be)h(imposed.)21 b(Gi)o(v)o(en)14 b(an)f(ordering)g(of)-31
3251407 y(MDD)e(v)o(ariables,)h(BDD)f(v)o(ariables)h(which)f(encode)g(them)
3252g(are)h(assigned)f(to)g(the)g(\256rst)h(adjacent)f(a)o(v)o(ailable)g
3253(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)
3254j(Image)e(Computation)-31 657 y Fq(FSM)j(tra)o(v)o(ersal)g(is)f(the)g
3255(core)h(computation)d(in)i(design)g(v)o(eri\256cation.)31
3256b(Ef)o(\256cient)17 b(tra)o(v)o(ersal)g(requires)f(grouping)f(the)-31
3257713 y(MDDs,)h(in)e(a)h(manner)g(optimal)e(for)j(tra)o(v)o(ersal.)27
3258b(T)l(o)15 b(tra)o(v)o(erse)h(the)f(FSM,)h(the)e(present)h(state,)h
3259(input,)f(and)g(ne)o(xt)f(state)-31 770 y(v)o(ariables)f(are)g(or)o
3260(ganized)g(for)g(easy)g(manipulation.)20 b(All)12 b(this)g(information)
3261f(is)i(included)f(in)g(an)h(FSM)g(data)g(structure)-31
3262826 y(created)j(in)f(the)f Fi(compute)p 395 826 V 17
3263w(r)n(eac)o(h)h Fq(command.)27 b(This)14 b(also)h(in)n(v)o(okes)f(tra)o
3264(v)o(ersal)i(of)f(the)g(entire)g(reachable)h(state)e(set)h(of)-31
3265883 y(the)i(FSM)h(representing)e(the)h(design,)i(and)e(may)f(be)i(in)n
3266(v)o(oked)e(with)g(dif)o(ferent)h(v)o(erbosity)g(options)e(to)i(get)g
3267(v)o(arying)-31 939 y(amounts)11 b(of)h(tra)o(v)o(ersal)h(information.)
326818 b(On)12 b(subsequent)f(calls)g(to)h Fi(compute)p 1184
3269939 V 16 w(r)n(eac)o(h)p Fq(,)i(the)e(reachability)f(computation)g(is)
3270-31 996 y(not)g(reperformed,)h(b)o(ut)f(statistics)f(can)i(be)f
3271(printed)g(using)f Fi(-v)p Fq(.)40 1052 y(The)17 b(reachability)f
3272(computation)f(makes)h(e)o(xtensi)o(v)o(e)h(use)g(of)g(image)f
3273(computation.)32 b(There)17 b(are)g(se)o(v)o(eral)h(user)o(-)-31
32741109 y(settable)7 b(options)g(that)g(af)o(fect)i(the)e(performance)i
3275(of)f(image)f(computation.)14 b(The)8 b(documentation)e(for)i(the)g
3276Fi(set)f Fq(command)-31 1165 y(lists)g(these)h(options.)15
3277b(Use)8 b(the)g(command)g Fi(set)g(image)p 821 1165 V
327815 w(method)g Fq(to)g(change)h(the)f(image)g(computation)f(method,)h
3279(and)h(then)-31 1221 y(re-initialize)14 b(v)o(eri\256cation)g
3280(\(starting)f(at)h(the)g Fi(\257atten)p 816 1221 V 16
3281w(hier)o(ar)n(c)o(hy)g Fq(command)1212 1205 y Ft(1)1230
32821221 y Fq(\).)25 b(The)14 b Fi(print)p 1459 1221 V 16
3283w(img)p 1544 1221 V 16 w(info)f Fq(prints)g(current)-31
32841278 y(image)f(information.)17 b(Notice)12 b(that)f(while)h
3285Fi(print)p 759 1278 V 15 w(partition)p 936 1278 V 14
3286w(stats)f Fq(prints)g(information)g(on)g(the)h(ne)o(xt)g(state)g
3287Fr(functions)p Fq(,)-31 1334 y Fi(print)p 62 1334 V 15
3288w(img)p 146 1334 V 16 w(info)17 b Fq(prints)g(information)f(on)h(the)g
3289(ne)o(xt)h(state)f(transition)f Fr(r)o(elations)p Fq(.)36
3290b(The)17 b(command)g Fi(print)p 1721 1334 V 15 w(img)p
32911805 1334 V 16 w(info)-31 1391 y Fq(creates)12 b(transition)d
3292(relations)i(from)f(transition)g(functions)g(by)g(clustering)g(se)o(v)o
3293(eral)i(functions)d(together)m(.)17 b(The)11 b(result)g(is)-31
32941447 y(a)h(partitioned)e(transition)g(relation.)16 b(It)11
3295b(is)g(often)g(a)h(good)f(idea)g(to)g(force)h(dynamic)f(v)o(ariable)g
3296(reordering)g(\(for)h(instance,)-31 1504 y Fi(dynamic)p
3297127 1504 V 16 w(var)p 204 1504 V 17 w(or)n(dering)f(-f)i(sift)p
3298Fq(\))e(at)i(this)e(point)h(to)g(reorder)h(these)g(relation)f(MDDs.)19
3299b(The)13 b(reachability)f(computation)-31 1560 y(is)j(an)h(optional)f
3300(step)g(of)h(the)f(model)g(checking)h(algorithm;)g(unreachable)g
3301(states)f(may)h(be)g(used)f(as)h(don')o(t)f(cares)i(to)-31
33021617 y(minimize)10 b(the)h(BDD)h(representation.)40 1673
3303y(The)f(follo)o(wing)f(illustrates)g(the)h(command)g
3304Fi(compute)p 916 1673 V 16 w(r)n(eac)o(h)h Fq(on)f(the)g(T)n(raf)o
3305(\256c)i(Light)d(Controller:)-31 1762 y Fd(UC)20 b(Berkeley,)f(VIS)h
3306(Release)f(1.0)h(\(compiled)f(11-Dec-95)g(at)h(10:36)g(AM\))-31
33071802 y(vis>)g(read_blif_mv)f(tlc.mv)-31 1841 y(Warning:)g(Some)h
3308(variables)f(are)h(unused)g(in)f(model)h(main.)-31 1881
3309y(vis>)g(init_verify)-31 1920 y(vis>)g(compute_reach)f(-v)h(1)-31
33101959 y(Computing)f(reachable)h(states)f(using)h(the)f(iwls95)h(image)f
3311(computation)h(method.)-31 1999 y(Printing)f(Information)h(about)f
3312(Image)h(method:)f(IWLS95)129 2038 y(Threshold)g(Value)g(of)h(Bdd)g
3313(Size)f(For)h(Creating)f(Clusters)h(=)g(1000)288 2078
3314y(\(Use)g("set)f(image_cluster_size)g(value)g(")h(to)g(set)g(this)f(to)
3315h(desired)f(value\))129 2117 y(Verbosity)g(=)h(0)288
33162157 y(\(Use)g("set)f(image_verbosity)g(value)h(")f(to)h(set)g(this)g
3317(to)f(desired)h(value\))129 2196 y(W1)f(=)40 b(6)20 b(W2)g(=)g(1)f(W3)h
3318(=)g(1)g(W4)g(=)g(2)288 2236 y(\(Use)g("set)f(image_W?)h(value)f(")h
3319(to)g(set)f(these)h(to)g(desired)f(values\))129 2275
3320y(Shared)g(Bdd)h(Size)f(of)80 b(1)20 b(components)f(is)179
3321b(97)-31 2314 y(********************************)-31
33222354 y(Reachability)19 b(analysis)h(results:)-31 2393
3323y(FSM)g(depth)f(=)359 b(8)-31 2433 y(reachable)19 b(states)h(=)199
3324b(20)-31 2472 y(MDD)20 b(size)f(=)379 b(8)-31 2512 y(analysis)19
3325b(time)h(=)279 b(0)p -31 2548 768 2 v 22 2575 a Fg(1)36
33262591 y Ff(Whene)o(v)o(er)9 b(a)g(hierarchy)f(is)h(reinitialized,)h(the)
3327f(option)g Fa(\257atten)p 861 2591 12 2 v 13 w(hier)o(ar)o(c)o(hy)e(-b)
3328j Ff(can)e(be)g(used)g(safely)h(for)h(ef)o(\256cienc)o(y)n(.)906
33292835 y Fq(28)p eop
3330%%Page: 29 30
333129 29 bop -31 11 a Fl(4.3)58 b(Specifying)16 b(F)o(air)o(ness)d
3332(Constraints)-31 115 y Fq(F)o(airness)j(constraints)f(are)h(used)f(to)g
3333(restrict)h(the)f(beha)o(vior)g(of)h(the)f(design.)29
3334b(Each)16 b(fairness)f(condition)f(speci\256es)i(a)-31
3335172 y(set)e(of)h(states)f(in)g(the)g(machine,)h(and)f(requires)h(that)f
3336(in)g(an)o(y)g(acceptable)h(beha)o(vior)g(these)f(states)g(must)f(be)h
3337(tra)o(v)o(ersed)-31 228 y(in\256nitely)19 b(often)g(\(i.e.,)k(these)d
3338(states)f(must)f(be)i(on)f(a)h(c)o(ycle\).)43 b(Such)20
3339b(constraints)e(are)j(called)e(\252B)t(\310)-19 b(uchi)20
3340b(fairness\272)-31 284 y(constraints.)41 b(F)o(airness)20
3341b(constraints)f(are)h(stored)g(in)f(fairness)g(\256les)h(\(with)g(e)o
3342(xtension)f Fm(.fair)i Fq(by)f(con)n(v)o(ention\);)-31
3343341 y(the)14 b(syntax)g(for)h(fairness)f(\256les)g(can)h(be)f(found)g
3344(in)42 b Fm(http://www)q(-ca)q(d.)q(eec)q(s.)q(ber)q(ke)q(ley)q(.e)q
3345(du/)q(Re)q(spe)q(p)-31 397 y(/Research)q(/v)q(is/)q(do)q(c/p)q(ack)q
3346(ag)q(es/)q(re)q(ad)p 818 397 14 2 v 20 w(fairnessCm)q(d.)q(htm)q(l)p
3347Fq(.)29 b(A)14 b(fairness)g(\256le)h(is)f(read)h(in)e(by)h(the)-31
3348454 y Fi(r)n(ead)p 54 454 V 17 w(fairness)g Fq(command.)30
3349b(Acti)o(v)o(e)16 b(fairness)f(conditions)f(can)j(be)f(displayed)f(by)g
3350(means)h(of)g Fi(print)p 1620 454 V 15 w(fairness)p Fq(.)29
3351b(The)-31 510 y Fi(r)n(eset)p 59 510 V 17 w(fairness)11
3352b Fq(command)h(is)g(used)h(to)f(reset)h(the)g(fairness)f(constraint)g
3353(to)g(\252true\272;)i(by)f(default,)f(there)i(is)e(one)h(fairness)-31
3354567 y(condition)d(that)h(contains)g(all)g(states.)40
3355623 y(F)o(airness)j(constraints)f(remo)o(v)o(e)h(unwanted)f(beha)o
3356(vior)h(from)g(a)g(system.)23 b(The)o(y)15 b(are)f(a)g(po)o(werful,)h
3357(b)o(ut)e(dangerous)-31 680 y(tool,)19 b(because)g(it)e(is)h(easy)g(to)
3358f(make)h(a)g(faulty)f(system)g(pass)g(wanted)h(properties)f(by)h(a)g
3359(careless)h(use)f(of)g(fairness)-31 736 y(constraints.)-31
3360883 y Fl(4.4)58 b(Language)15 b(Emptiness)-31 986 y Fq(The)h(language)f
3361(of)g(a)h(design)e(is)h(gi)o(v)o(en)g(by)g(sequences)h(o)o(v)o(er)g
3362(the)f(set)g(of)h(reachable)g(states)f(that)g(do)g(not)g(violate)f(the)
3363-31 1043 y(fairness)d(constraint.)16 b(If)c(the)f(language)g(is)g
3364(empty)m(,)g(we)h(kno)o(w)e(that)h(the)g(system)f(does)i(not)e(e)o
3365(xhibit)h(an)o(y)g(beha)o(vior)m(.)18 b(VIS)-31 1099
3366y(supports)11 b(the)h(command)f Fi(lang)p 481 1099 V
336716 w(empty)h Fq(as)g(an)g(alias)g(for)g(model)g(checking)g(the)f
3368(formula)h Fp(E)s(G)f(tr)q(ue)p Fq(.)20 b(This)11 b(is)g(rele)o(v)o
3369(ant)-31 1156 y(in)h(the)f(conte)o(xt)h(of)g(language)g(containment,)f
3370(where)h(the)g(properties)f(to)h(be)g(v)o(eri\256ed)h(are)f(also)g
3371(speci\256ed)g(as)g(automata)-31 1212 y(and)f(a)f(modi\256ed)g(system,)
3372g(consisting)f(of)h(the)h(beha)o(vior)f(of)g(the)h(system)e(that)h
3373(does)g(not)g(satisfy)g(the)g(property)m(,)h(is)f(tested)-31
33741269 y(for)i(emptiness.)k(Before)d(in)n(v)o(oking)d(model)h(checking,)h
3375Fi(lang)p 951 1269 V 16 w(empty)f Fq(can)h(also)g(be)f(used)h(to)f
3376(ensure)h(that)f(the)g(system)g(is)-31 1325 y(non-tri)o(vial.)k(This)8
3377b(is)h(pertinent)f(because)i(the)f(fairness)g(constraint)f(speci\256ed)
3378h(may)g(make)g(the)g(entire)g(system)f(\252unfair\272,)-31
33791382 y(and)k(an)f(empty)g(system)f(passes)h(all)g(uni)o(v)o(ersal)g
3380(properties.)40 1438 y(VIS)d(produces)g(a)g(deb)o(ug)g(trace)g(to)g
3381(help)g(the)f(designer)h(understand)f(the)h(cause)g(of)g(the)g
3382(failure.)15 b(Common)7 b(correcti)o(v)o(e)-31 1495 y(actions)k(are)h
3383(the)f(correction)h(of)f(an)h(error)g(in)f(the)g(original)g(system)f
3384(description)g(or)i(addition)e(of)h(fairness)g(constraints.)40
33851551 y(The)g(language)g(emptiness)f(trace)j(for)e(the)g(T)n(raf)o
3386(\256c)i(Light)e(Controller)g(e)o(xample)g(with)g(a)h(fairness)f
3387(constraint)f(is:)-31 1640 y Fd(UC)20 b(Berkeley,)f(VIS)h(Release)f
3388(1.0)h(\(compiled)f(14-Dec-95)g(at)h(1:04)g(AM\))-31
33891680 y(vis>)g(read_blif_mv)f(tlc.mv)-31 1719 y(Warning:)g(Some)h
3390(variables)f(are)h(unused)g(in)f(model)h(main.)-31 1759
3391y(vis>)g(init_verify)-31 1798 y(vis>)g(read_fairness)f(tlc.fair)-31
33921837 y(vis>)h(print_fairness)-31 1877 y(Fairness)f(constraints:)-31
33931916 y(!\(timer.state=START\);)-31 1956 y(!\(timer.state=SHORT\);)-31
33941995 y(vis>)h(lang_empty)f(-i)-31 2035 y(#)h(LE:)g(language)f(is)h(not)
3395g(empty)-31 2074 y(#)g(LE:)g(generating)f(path)h(to)f(fair)h(cycle)-31
33962113 y(#)g(LE:)g(path)f(to)h(fair)g(cycle:)-31 2232 y(--State)g(0:)-31
33972271 y(car_present:NO)-31 2311 y(farm_light:RED)-31 2350
3398y(hwy_light:GREEN)-31 2389 y(timer.state:START)40 2496
3399y Fq(This)15 b(indicates)g(that)h(there)g(is)f(v)o(alid)g(beha)o(vior)h
3400(in)g(the)f(system,)i(and)e(an)i(e)o(xample)e(of)h(this)f(is)h(gi)o(v)o
3401(en;)h(a)f(closed)-31 2552 y(path)h(that)g(be)o(gins)g(at)g(the)g
3402(initial)f(state,)j(where)f(no)f(car)h(is)f(present)g
3403Fp(car)p 1179 2552 V 17 w(pr)q(esent)22 b Fq(:)e Fp(N)5
3404b(O)q Fq(,)19 b(the)e(farm)g(light)f(is)h(red)-31 2609
3405y Fp(f)5 b(ar)q(m)p 85 2609 V 16 w(l)q(ig)r(ht)14 b Fq(:)g
3406Fp(RE)s(D)q Fq(,)f(the)f(highway)g(light)f(is)i(green)g
3407Fp(hw)q(y)p 949 2609 V 18 w(l)q(ig)r(ht)h Fq(:)g Fp(GRE)s(E)s(N)5
3408b Fq(,)11 b(and)i(the)f(timer)h(is)f(in)g(its)g(start)g(state)-31
34092665 y Fp(timer)o(:state)i Fq(:)f Fp(S)s(T)6 b(ART)g
3410Fq(.)17 b(From)12 b(the)g(initial)e(state)i(the)g(machine)f(loops)g
3411(through)g(a)h(fair)g(c)o(ycle,)h(which)f(has)g(8)f(states,)906
34122835 y(29)p eop
3413%%Page: 30 31
341430 30 bop -31 11 a Fq(and)14 b(is)f(described)h(belo)o(w)m(.)24
3415b(Note)13 b(that)g(this)g(trace)i(is)e(dif)o(ferential)h(for)g(both)f
3416(states)g(and)h(inputs;)f(only)g(v)o(ariables)h(that)-31
341768 y(ha)o(v)o(e)e(changed)g(in)f(the)g(last)g(step)g(are)h(printed.)-31
3418147 y Fd(#)20 b(LE:)g(fair)f(cycle:)-31 266 y(--State)h(0:)-31
3419305 y(car_present:NO)-31 345 y(farm_light:RED)-31 384
3420y(hwy_light:GREEN)-31 423 y(timer.state:START)-31 502
3421y(--Goes)g(to)f(state)h(1:)-31 542 y(car_present:YES)-31
3422581 y(timer.state:SHORT)-31 660 y(--On)g(input:)-31 699
3423y(sensor.rand_choice:1)-31 739 y(timer.rand_choice:1)-31
3424818 y(--Goes)g(to)f(state)h(2:)-31 857 y(timer.state:LONG)-31
3425936 y(--On)g(input:)-31 976 y(<Unchanged>)-31 1054 y(--Goes)g(to)f
3426(state)h(3:)-31 1094 y(hwy_light:YELLOW)-31 1133 y(timer.state:START)
3427-31 1212 y(--On)g(input:)-31 1252 y(timer.rand_choice:0)-31
34281330 y(--Goes)g(to)f(state)h(4:)-31 1370 y(timer.state:SHORT)-31
34291449 y(--On)g(input:)-31 1488 y(timer.rand_choice:1)-31
34301567 y(--Goes)g(to)f(state)h(5:)-31 1606 y(car_present:NO)-31
34311646 y(farm_light:GREEN)-31 1685 y(hwy_light:RED)-31
34321725 y(timer.state:START)-31 1804 y(--On)g(input:)-31
34331843 y(sensor.rand_choice:0)-31 1883 y(timer.rand_choice:0)-31
34341961 y(--Goes)g(to)f(state)h(6:)-31 2001 y(car_present:YES)-31
34352040 y(farm_light:YELLOW)-31 2119 y(--On)g(input:)-31
34362159 y(sensor.rand_choice:1)-31 2237 y(--Goes)g(to)f(state)h(7:)-31
34372277 y(timer.state:SHORT)-31 2356 y(--On)g(input:)-31
34382395 y(timer.rand_choice:1)-31 2474 y(--Goes)g(to)f(state)h(8:)-31
34392513 y(car_present:NO)-31 2553 y(farm_light:RED)-31 2592
3440y(hwy_light:GREEN)-31 2632 y(timer.state:START)-31 2711
3441y(--On)g(input:)906 2835 y Fq(30)p eop
3442%%Page: 31 32
344331 31 bop -31 11 a Fd(sensor.rand_choice:0)-31 51 y
3444(timer.rand_choice:0)-31 197 y Fl(4.5)58 b(Model)15 b(Checking)g
3445(Operations)-31 302 y Fk(4.5.1)51 b(P)o(erf)o(orming)12
3446b(Model)g(Checking)-31 390 y Fq(The)d Fi(model)p 164
3447390 14 2 v 16 w(c)o(hec)o(k)g Fq(command)f(calls)g(model)g(checking)g
3448(in)g(VIS.)h(A)f(description)g(of)g(the)g(syntax)g(of)h(CTL)f(for)h
3449(VIS)g(is)f(pre-)-31 446 y(sented)f(in)33 b Fm(http://w)q(ww-)q(ca)q
3450(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)
3451q(ch)q(/vi)q(s/d)q(oc)q(/ct)q(l/)q(ctl)-31 502 y(ctl.html)p
3452Fq(.)22 b(By)12 b(con)n(v)o(ention)g(CTL)g(properties)f(are)i(in)f(a)g
3453(\256le)g(with)f(e)o(xtension)h Fi(.ctl)p Fq(.)18 b(The)12
3454b(follo)o(wing)f(illustrates)f(the)-31 559 y(functioning)g(of)i
3455Fi(model)p 356 559 V 16 w(c)o(hec)o(k)h Fq(on)e(the)g(T)n(raf)o(\256c)i
3456(Light)e(Controller)g(e)o(xample.)17 b(Note)11 b(that)g(in)g(this)g
3457(session)f(the)i(fairness)-31 615 y(constraints)e(are)j(not)d(read)i
3458(in.)17 b(Deb)o(ugging)10 b(error)i(traces)g(is)f(e)o(xplained)g(in)g
3459(the)h(ne)o(xt)f(section.)-31 701 y Fd(UC)20 b(Berkeley,)f(VIS)h
3460(Release)f(1.0)h(\(compiled)f(14-Dec-95)g(at)h(1:04)g(AM\))-31
3461740 y(vis>)g(read_blif_mv)f(tlc.mv)-31 780 y(Warning:)g(Some)h
3462(variables)f(are)h(unused)g(in)f(model)h(main.)-31 819
3463y(vis>)g(init_verify)-31 859 y(vis>)g(model_check)f(-i)h(tlc.ctl)-31
3464977 y(MC:)g(formula)f(passed)h(---)f(AG\(!\(\(farm_light=GREEN)g(*)h
3465(hwy_light=GREEN\)\)\))40 1079 y Fq(This)10 b(indicates)h(that)g(the)g
3466(property)g(passed)g(\(i.e.)18 b(the)11 b(system)f(satis\256es)h(the)h
3467(property\).)-31 1165 y Fd(MC:)20 b(formula)f(failed)h(---)f
3468(AG\(\(\(car_present=YES)g(*)h(timer.state=LONG\))e(->)i
3469(AF\(farm_light=GREEN\)\)\))-31 1204 y(MC:)g(Calling)f(debugger)40
34701307 y Fq(This)10 b(indicates)h(that)g(the)h(property)f(failed,)g(and)h
3471(gi)o(v)o(es)f(the)g(follo)o(wing)f(error)j(trace)f(that)f(sho)o(ws)g
3472(beha)o(vior)g(seen)h(in)-31 1363 y(the)f(system)g(that)g(does)g(not)f
3473(satisfy)h(the)g(property)m(.)-31 1488 y Fd(--State)-31
34741528 y(car_present:NO)-31 1567 y(farm_light:RED)-31 1606
3475y(hwy_light:GREEN)-31 1646 y(timer.state:START)-31 1725
3476y(fails)20 b(AG\(\(\(car_present=YES)e(*)i(timer.state=LONG\))f(->)g
3477(AF\(farm_light=GREEN\)\)\))-31 1764 y(--Counter)g(example)h(is)g(a)f
3478(path)h(to)g(a)g(state)f(where)-31 1804 y(\(\(car_present=YES)g(*)h
3479(timer.state=LONG\))e(->)i(AF\(farm_light=GREEN\)\))e(is)i(false)-31
34801883 y(--State)g(0:)-31 1922 y(car_present:NO)-31 1961
3481y(farm_light:RED)-31 2001 y(hwy_light:GREEN)-31 2040
3482y(timer.state:START)-31 2119 y(--Goes)g(to)f(state)h(1:)-31
34832159 y(car_present:YES)-31 2198 y(timer.state:SHORT)-31
34842277 y(--On)g(input:)-31 2316 y(sensor.rand_choice:1)-31
34852356 y(timer.rand_choice:1)-31 2435 y(--Goes)g(to)f(state)h(2:)-31
34862474 y(timer.state:LONG)-31 2553 y(--On)g(input:)-31
34872592 y(<Unchanged>)-31 2671 y(--State)-31 2711 y(car_present:YES)906
34882835 y Fq(31)p eop
3489%%Page: 32 33
349032 32 bop -31 11 a Fd(farm_light:RED)-31 51 y(hwy_light:GREEN)-31
349190 y(timer.state:LONG)-31 169 y(fails)20 b(\(\(car_present=YES)e(*)i
3492(timer.state=LONG\))f(->)h(AF\(farm_light=GREEN\)\))-31
3493287 y(--State)-31 327 y(car_present:YES)-31 366 y(farm_light:RED)-31
3494406 y(hwy_light:GREEN)-31 445 y(timer.state:LONG)-31
3495524 y(passes)g(\(car_present=YES)e(*)i(timer.state=LONG\))-31
3496642 y(--State)-31 682 y(car_present:YES)-31 721 y(farm_light:RED)-31
3497761 y(hwy_light:GREEN)-31 800 y(timer.state:LONG)-31
3498879 y(passes)g(car_present=YES)-31 997 y(--State)-31
34991037 y(car_present:YES)-31 1076 y(farm_light:RED)-31
35001116 y(hwy_light:GREEN)-31 1155 y(timer.state:LONG)-31
35011234 y(passes)g(timer.state=LONG)-31 1313 y(--State)-31
35021352 y(car_present:YES)-31 1392 y(farm_light:RED)-31
35031431 y(hwy_light:GREEN)-31 1470 y(timer.state:LONG)-31
35041549 y(fails)g(AF\(farm_light=GREEN\))-31 1628 y(--A)g(fair)f(path)h
3505(on)g(which)f(farm_light=GREEN)g(is)h(always)f(false:)-31
35061707 y(--Fair)h(path)f(stem:)-31 1786 y(--State)h(0:)-31
35071825 y(car_present:YES)-31 1865 y(farm_light:RED)-31
35081904 y(hwy_light:GREEN)-31 1944 y(timer.state:LONG)-31
35092023 y(--Goes)g(to)f(state)h(1:)-31 2062 y(hwy_light:YELLOW)-31
35102101 y(timer.state:START)-31 2180 y(--On)g(input:)-31
35112220 y(sensor.rand_choice:1)-31 2259 y(timer.rand_choice:0)-31
35122338 y(--Fair)g(path)f(cycle:)-31 2417 y(--State)h(0:)-31
35132456 y(car_present:YES)-31 2496 y(farm_light:RED)-31
35142535 y(hwy_light:YELLOW)-31 2575 y(timer.state:START)-31
35152654 y(--Goes)g(to)f(state)h(1:)-31 2693 y(<Unchanged>)906
35162835 y Fq(32)p eop
3517%%Page: 33 34
351833 33 bop -31 51 a Fd(--On)20 b(input:)-31 90 y(sensor.rand_choice:1)
3519-31 130 y(timer.rand_choice:0)40 236 y Fq(This)12 b(is)h(the)g(end)h
3520(of)f(the)g(deb)o(ug)h(trace)g(for)f(this)g(CTL)g(formula.)23
3521b(The)13 b(command)g Fi(model)p 1491 236 14 2 v 16 w(c)o(hec)o(k)i
3522Fq(continues)d(with)-31 292 y(the)f(ne)o(xt)h(formula.)-31
3523382 y Fd(MC:)20 b(formula)f(failed)h(---)f(AG\(AF\(hwy_light=GREEN\)\))
3524-31 421 y(MC:)h(Calling)f(debugger)40 527 y Fq(This)10
3525b(indicates)h(that)g(the)g(property)g(failed,)h(and)f(it)g(is)g(follo)o
3526(wed)f(by)i(an)f(error)h(trace)g(that)f(sho)o(ws)g(beha)o(vior)g(seen)h
3527(in)-31 584 y(the)f(system)g(that)g(does)g(not)f(satisfy)h(the)g
3528(property)m(.)17 b(T)l(o)11 b(sa)o(v)o(e)h(space,)h(we)e(omit)f(the)i
3529(error)g(trace.)-31 673 y Fd(MC:)20 b(formula)f(passed)h(---)f
3530(!\(AG\(\(car_present=YES)g(->)h(AF\(farm_light=GREEN\)\)\)\))40
3531779 y Fq(This)10 b(indicates)h(that)g(the)g(property)g(passed)g(\(i.e.)
353218 b(the)11 b(system)f(satis\256es)h(the)h(property\).)-31
3533904 y Fk(4.5.2)51 b(Deb)o(ugging)11 b(f)o(or)h(Model)g(Checking)-31
3534991 y Fq(If)h(model)e(checking)h(or)g(language)g(emptiness)f(checks)i
3535(fail,)f(VIS)h(reports)f(the)f(failure)h(with)g(a)g(countere)o(xample,)
3536h(i.e.,)-31 1048 y(an)e(error)g(trace)g(of)f(sample)g(\252bad\272)g
3537(beha)o(vior)h(\(i.e.,)h(beha)o(vior)e(seen)g(in)g(the)g(system)f(that)
3538h(does)g(not)g(satisfy)f(the)h(property)-31 1104 y(-)k(for)g(model)f
3539(checking,)h(or)g(v)o(alid)f(beha)o(vior)g(seen)h(in)f(the)h(system)e
3540(-)i(for)g(language)f(emptiness\).)23 b(This)13 b(is)g(called)g(the)-31
35411161 y(\252deb)o(ug\272)f(trace.)17 b(Deb)o(ug)12 b(traces)g(list)e(a)i
3542(set)f(of)g(states)g(that)g(are)h(on)f(a)h(path)f(to)g(a)h(fair)f(c)o
3543(ycle)h(and)f(fail)g(the)g(CTL)h(formula.)40 1217 y(In)20
3544b(the)g(pre)o(vious)g(section,)i(the)f(second)f(and)g(third)g
3545(properties)g(fail)g(during)g(model)f(checking.)44 b(This)20
3546b(may)-31 1274 y(be)d(recti\256ed)g(by)f(reading)g(in)g(the)g(fairness)
3547g(constraints)g(pre)o(viously)f(described)h(for)h(the)f(T)n(raf)o
3548(\256c)i(Light)d(Controller)-31 1330 y(e)o(xample.)21
3549b(If)13 b(the)f(fairness)g(constraints)g(are)h(read)h(in,)e(the)h(v)o
3550(alid)f(beha)o(vior)g(is)g(restricted)h(and)f(these)h(properties)f
3551(pass.)-31 1387 y(In)i(particular)n(,)h(the)e(fairness)g(constraint)g
3552Fm(!\(timer.s)q(ta)q(te=)q(ST)q(ART)q(\))k Fq(disallo)o(ws)12
3553b(beha)o(vior)n(,)j(where)f(the)f(system)-31 1443 y(stays)e(fore)o(v)o
3554(er)h(in)f(the)g(state:)-31 1532 y Fd(car_present:YES)-31
35551572 y(farm_light:RED)-31 1611 y(hwy_light:YELLOW)-31
35561651 y(timer.state:START)-31 1730 y(--On)20 b(input:)-31
35571769 y(sensor.rand_choice:1)-31 1808 y(timer.rand_choice:0)40
35581915 y Fq(More)13 b(precisely)m(,)i(the)f(fairness)f(constraint)g
3559(disallo)o(ws)f(beha)o(vior)n(,)j(where)g(there)f(is)f(a)h(car)h(in)e
3560(the)h(farm)g(road,)h(b)o(ut)-31 1971 y(the)c(timer)g(is)g(stuck)g(in)g
3561(its)f(initial)g(state,)i(by)f(forcing)g(the)g(timer)g(to)g(progress)g
3562(in)g(\256nite)h(time)e(to)h(the)g(ne)o(xt)h(state.)-31
35632060 y Fd(UC)20 b(Berkeley,)f(VIS)h(Release)f(1.0)h(\(compiled)f
3564(11-Dec-95)g(at)h(10:36)g(AM\))-31 2100 y(vis>)g(read_fairness)f
3565(tlc.fair)-31 2139 y(vis>)h(model_check)f(tlc.ctl)-31
35662258 y(MC:)h(formula)f(passed)h(---)f(AG\(!\(\(farm_light=GREEN)g(*)h
3567(hwy_light=GREEN\)\)\))-31 2336 y(MC:)g(formula)f(passed)h(---)f
3568(AG\(\(\(car_present=YES)g(*)h(timer.state=LONG\))e(->)i
3569(AF\(farm_light=GREEN\)\)\))-31 2415 y(MC:)g(formula)f(passed)h(---)f
3570(AG\(AF\(hwy_light=GREEN\)\))-31 2494 y(MC:)h(formula)f(passed)h(---)f
3571(!\(AG\(\(car_present=YES)g(->)h(AF\(farm_light=GREEN\)\)\)\))906
35722835 y Fq(33)p eop
3573%%Page: 34 35
357434 34 bop -31 11 a Fk(4.5.3)51 b(Checking)11 b(In)n(variants)-31
357599 y Fq(An)j(important)f(class)h(of)g(CTL)g(formulas)f(is)h
3576Fi(in)n(variants)p Fq(.)23 b(These)14 b(are)h(formulas)e(of)i(the)e
3577(form)h Fp(AG)g(f)5 b Fq(,)16 b(where)e Fp(f)19 b Fq(is)14
3578b(a)-31 155 y(quanti\256er)o(-free)i(formula.)26 b(The)14
3579b(semantics)g(of)h Fp(AG)f(f)20 b Fq(is)14 b(that)g Fp(f)19
3580b Fq(is)14 b(true)h(in)f(all)g(reachable)i(states.)26
3581b(The)14 b(command)-31 212 y Fi(c)o(hec)o(k)p 73 212
358214 2 v 18 w(in)n(variant)9 b Fq(implements)g(an)i(algorithm)e(that)h
3583(is)g(specialized)g(for)h(these)g(formulas.)16 b(In)10
3584b(the)h(follo)o(wing)e(e)o(xample,)-31 268 y Fp(f)17
3585b Fq(is)11 b(the)g(formula)-31 361 y Fm(!\(\(farm_l)q(ig)q(ht)31
3586b(=)d(GREEN\))h(*)f(\(hwy_ligh)q(t)i(=)e(GREEN\)\);)-31
3587455 y Fq(contained)11 b(in)g(the)g(\256le)h Fi(tlc.in)n(var)p
3588Fq(.)-31 543 y Fd(UC)20 b(Berkeley,)f(VIS)h(Release)f(1.0)h(\(compiled)
3589f(13-Dec-95)g(at)h(8:36)g(AM\))-31 583 y(vis>)g(read_blif_mv)f(tlc.mv)
3590-31 622 y(Warning:)g(Some)h(variables)f(are)h(unused)g(in)f(model)h
3591(main.)-31 661 y(vis>)g(init_verify)-31 701 y(vis>)g(check_invariant)f
3592(tlc.invar)-31 780 y(INV:)h(formula)f(passed)h(---)f
3593(!\(\(farm_light=GREEN)g(*)h(hwy_light=GREEN\)\))-31
3594905 y Fk(4.5.4)51 b(Advanced)11 b(Model)h(Checking:)k(Abstraction)c
3595(and)f(Reduction)-31 992 y Fq(When)h(performing)f(model)g(checking)h
3596(and)g(checking)g(in)n(v)o(ariant)f(properties,)h(one)g(can)g(use)g
3597(the)f(reduce)i(option)d Fi(-r)p Fq(,)j(to)-31 1048 y(perform)f(model)e
3598(checking)h(on)h(a)f(\252pruned\272)h(FSM,)g(i.e.,)h(one)e(where)h
3599(parts)f(that)g(do)g(not)g(af)o(fect)h(the)f(formula)g(\(directly)-31
36001105 y(or)h(indirectly\))e(ha)o(v)o(e)i(been)g(remo)o(v)o(ed.)40
36011161 y(This)j(mechanism)f(can)i(be)g(combined)f(with)f(the)i
3602(abstraction)f(mechanism)g(a)o(v)o(ailable)g(through)g(the)g(command)
3603-31 1218 y Fi(\257atten)p 87 1218 V 16 w(hier)o(ar)n(c)o(hy)10
3604b(<\256le>)p Fq(.)16 b Fi(<\256le>)10 b Fq(contains)f(the)h(names)g(of)
3605g(v)o(ariables)g(to)f(abstract.)17 b(F)o(or)11 b(each)g(v)o(ariable)f
3606Fm(x)g Fq(appearing)-31 1274 y(in)i Fi(<\256le>)p Fq(,)h(a)g(ne)o(w)g
3607(primary)f(input)f(node)i(named)f Fm(x$ABS)j Fq(is)d(created)h(to)f
3608(dri)o(v)o(e)h(all)f(the)h(nodes)f(that)g(were)i(pre)o(viously)-31
36091331 y(dri)o(v)o(en)d(by)g Fm(x)p Fq(.)17 b(Hence,)12
3610b(the)f(node)g Fm(x)h Fq(will)e(not)h(ha)o(v)o(e)g(an)o(y)h(fanouts;)e
3611(ho)o(we)o(v)o(er)n(,)i Fm(x)f Fq(and)g(its)g(transiti)o(v)o(e)f
3612(fanins)g(will)g(remain)-31 1387 y(in)i(the)g(network.)18
3613b(Abstracting)12 b(a)g(net)g(ef)o(fecti)o(v)o(ely)h(allo)o(ws)e(it)h
3614(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
3615(clock)f(c)o(ycle.)-31 1443 y(This)f(mechanism)f(can)i(be)f(used)h(to)f
3616(perform)g(manual)g(abstractions.)40 1500 y(W)l(e)17
3617b(sho)o(w)e(an)i(e)o(xample,)h(where)e(the)h(\256le)f
3618Fm(tlc.abstr)q(ac)q(t)j Fq(contains)d(the)g(v)o(ariable)g
3619Fm(timer.sta)q(rt)p Fq(.)35 b(By)-31 1556 y(abstracting)9
3620b Fm(timer.star)q(t)p Fq(,)k(the)c(timer)f(module)g(is)h(disconnected)f
3621(from)h(the)g(rest)g(of)g(the)g(T)n(raf)o(\256c)i(Light)d(Controller)m
3622(.)40 1613 y(Then)j(we)h(perform)f(model)g(checking)g(of)g(the)h(CTL)f
3623(property)g(read)h(from)g(the)f(\256le)h Fm(tlc.reduce)q(.ct)q(l)p
3624Fq(:)-31 1706 y Fm(AG\(\(timer)q(.s)q(tat)q(e)31 b(=)c(START\))j(->)e
3625(AF)g(\(timer.s)q(tat)q(e)j(=)c(LONG\)\);)-31 1799 y
3626Fq(This)16 b(property)g(refers)h(only)f(to)g(the)g(timer)g(module.)31
3627b(Since)17 b(the)g(timer)f(has)g(been)h(disconnected,)g(the)f(rest)h
3628(of)f(the)-31 1856 y(system)c(can)h(be)g(pruned)f(a)o(way)h(when)g
3629(testing)e(this)h(property)m(.)20 b(As)13 b(e)o(xpected)g(this)f
3630(property)g(fails,)h(since)f(no)h(fairness)-31 1912 y(constraint)e(has)
3631g(been)h(read)g(in.)-31 2001 y Fd(UC)20 b(Berkeley,)f(VIS)h(Release)f
3632(1.0)h(\(compiled)f(15-Dec-95)g(at)h(2:18)g(PM\))-31
36332040 y(Sourcing)f(.visrc)h(of)g(Tiziano)-31 2080 y(vis>)g(read_blif_mv)
3634f(tlc.mv)-31 2119 y(Warning:)g(Some)h(variables)f(are)h(unused)g(in)f
3635(model)h(main.)-31 2159 y(vis>)g(flatten_hierarchy)e(tlc.abstract)-31
36362198 y(vis>)i(static_order)-31 2237 y(vis>)g(build_partition_mdds)-31
36372277 y(vis>)g(model_check)f(-i)h(-r)f(tlc.reduce.ctl)-31
36382356 y(MC:)h(formula)f(failed)h(---)f(AG\(\(timer.state=START)g(->)h
3639(AF\(timer.state=LONG\)\)\))-31 2435 y(MC:)g(Calling)f(debugger)-31
36402513 y(--State)-31 2553 y(car_present:NO)-31 2592 y(farm_light:RED)-31
36412632 y(hwy_light:GREEN)-31 2671 y(timer.state:START)906
36422835 y Fq(34)p eop
3643%%Page: 35 36
364435 35 bop -31 11 a Fd(fails)20 b(AG\(\(timer.state=START)e(->)i
3645(AF\(timer.state=LONG\)\)\))-31 51 y(since)g(\(timer.state=START)e(->)i
3646(AF\(timer.state=LONG\)\))e(is)i(false)g(at)g(this)f(state)-31
3647130 y(--State)-31 169 y(car_present:NO)-31 209 y(farm_light:RED)-31
3648248 y(hwy_light:GREEN)-31 287 y(timer.state:START)-31
3649366 y(fails)h(\(timer.state=START)e(->)i(AF\(timer.state=LONG\)\))-31
3650485 y(--State)-31 524 y(car_present:NO)-31 563 y(farm_light:RED)-31
3651603 y(hwy_light:GREEN)-31 642 y(timer.state:START)-31
3652721 y(passes)g(timer.state=START)-31 800 y(--State)-31
3653839 y(car_present:NO)-31 879 y(farm_light:RED)-31 918
3654y(hwy_light:GREEN)-31 958 y(timer.state:START)-31 1037
3655y(fails)g(AF\(timer.state=LONG\))-31 1116 y(--A)g(fair)f(path)h(on)g
3656(which)f(timer.state=LONG)g(is)h(always)f(false:)-31
36571194 y(--Fair)h(path)f(stem:)-31 1273 y(--State)h(0:)-31
36581313 y(car_present:NO)-31 1352 y(farm_light:RED)-31 1392
3659y(hwy_light:GREEN)-31 1431 y(timer.state:START)-31 1510
3660y(--Fair)g(path)f(cycle:)-31 1589 y(--State)h(0:)-31
36611628 y(car_present:NO)-31 1668 y(farm_light:RED)-31 1707
3662y(hwy_light:GREEN)-31 1746 y(timer.state:START)-31 1825
3663y(--Goes)g(to)f(state)h(1:)-31 1865 y(<Unchanged>)-31
36641944 y(--On)g(input:)-31 1983 y(sensor.rand_choice:0)-31
36652023 y(timer.rand_choice:0)40 2122 y Fq(In)10 b(this)e(particular)i(e)o
3666(xample,)h(the)f(same)f(ef)o(fect)i(of)f(\252restricted\272)g(model)f
3667(checking)h(can)g(be)g(obtained)f(by)h(changing)-31 2179
3668y(\(using)i(the)g Fi(cd)h Fq(command\))f(to)g(the)h(timer)f(node)g(and)
3669h(performing)f(model)g(checking.)20 b(When)13 b(at)g(the)f(timer)g
3670(node,)h(the)-31 2235 y(inputs)e(to)h(timer)g(from)h(the)f(rest)h(of)f
3671(the)g(system)g(are)h(considered)g(free)g(inputs.)19
3672b(Notice)12 b(that)g(the)h(names)f(of)g(v)o(ariables)-31
36732292 y(in)f(the)g(CTL)h(property)f(in)g(the)g(\256le)h
3674Fm(tlc.reduc)q(e.c)q(tl)j Fq(must)10 b(be)i(re)o(vised)f(as)g(follo)o
3675(ws:)-31 2381 y Fm(AG\(\(state)31 b(=)d(START\))i(->)e(AF)g(\(state)i
3676(=)e(LONG\)\);)-31 2470 y Fq(since)11 b(the)h(con)n(v)o(ention)e(for)i
3677(names)f(is)g(to)g(drop)g(the)g(current)h(node)f(and)h(all)f(nodes)g
3678(abo)o(v)o(e)h(from)f(the)g(namepath.)-31 2553 y Fd(UC)20
3679b(Berkeley,)f(VIS)h(Release)f(1.0)h(\(compiled)f(14-Dec-95)g(at)h(1:04)
3680g(AM\))-31 2592 y(Sourcing)f(.visrc)h(of)g(Tiziano)-31
36812632 y(vis>)g(read_blif_mv)f(tlc.mv)-31 2671 y(Warning:)g(Some)h
3682(variables)f(are)h(unused)g(in)f(model)h(main.)-31 2711
3683y(vis>)g(cd)g(timer)906 2835 y Fq(35)p eop
3684%%Page: 36 37
368536 36 bop -31 11 a Fd(vis>)20 b(init_verify)-31 51 y(vis>)g
3686(model_check)f(tlc.reduce.ctl)-31 130 y(MC:)h(formula)f(failed)h(---)f
3687(AG\(\(state=START)g(->)h(AF\(state=LONG\)\)\))40 229
3688y Fq(Ho)o(we)o(v)o(er)n(,)12 b(there)g(are)g(more)f(comple)o(x)g
3689(situations)f(that)h(cannot)g(be)g(emulated)g(so)g(simply)m(.)-31
3690375 y Fl(4.6)58 b(Combinational)17 b(and)e(Sequential)h(Equi)o(v)o
3691(alence)-31 478 y Fq(In)10 b(VIS)g(it)f(is)g(also)h(possible)e(to)h
3692(check)i(the)e(equi)o(v)o(alence)h(of)f(two)g(networks.)15
3693b(The)10 b(command)f Fi(comb)p 1563 478 14 2 v 16 w(verify)h
3694Fq(v)o(eri\256es)g(the)-31 535 y(combinational)d(equi)o(v)o(alence)i
3695(of)g(two)f(\257attened)h(networks.)15 b(In)8 b(particular)n(,)i(an)o
3696(y)f(set)g(of)g(functions)f(\(the)g(roots\),)i(de\256ned)-31
3697591 y(o)o(v)o(er)i(an)o(y)f(set)f(of)h(intermediate)f(v)o(ariables)g
3698(\(the)h(lea)o(v)o(es\),)h(can)f(be)g(checked)g(for)g(equi)o(v)o
3699(alence)f(between)h(two)f(networks.)-31 648 y(Roots)i(and)h(lea)o(v)o
3700(es)g(are)g(subsets)e(of)i(the)f(nodes)g(of)h(a)g(network,)f(with)g
3701(the)g(restriction)g(that)g(the)g(lea)o(v)o(es)h(should)f(form)g(a)-31
3702704 y(complete)f(support)f(for)i(the)f(roots.)16 b(The)11
3703b(correspondence)h(between)g(the)f(roots)g(and)g(the)g(lea)o(v)o(es)h
3704(in)f(the)g(two)f(networks)-31 761 y(is)f(speci\256ed)h(in)f(a)h
3705(\256le.)17 b(The)9 b(default)g(option)f(assumes)h(that)g(the)g(roots)g
3706(are)i(the)e(combinational)f(outputs)g(and)h(the)h(lea)o(v)o(es)-31
3707817 y(are)17 b(the)f(combinational)e(inputs.)29 b(T)l(wo)16
3708b(networks)f(are)h(declared)h(combinationally)d(equi)o(v)o(alent)h(if)o
3709(f)h(the)o(y)g(ha)o(v)o(e)g(the)-31 873 y(same)d(outputs)e(for)j(all)e
3710(combinations)f(of)i(inputs)f(and)h(pseudo-inputs.)20
3711b(An)12 b(important)g(usage)h(of)g Fi(comb)p 1680 873
3712V 16 w(verify)g Fq(is)g(to)-31 930 y(pro)o(vide)e(a)h(sanity)f(check)g
3713(when)h(using)e(SIS)j(to)d(re-synthesize)i(portions)e(of)h(a)h
3714(network,)f(as)h(e)o(xplained)f(in)g(Chapter)h(5.)40
3715986 y(The)17 b(command)e Fi(seq)p 388 986 V 17 w(verify)h
3716Fq(tests)g(the)h(sequential)f(equi)o(v)o(alence)h(of)f(two)g(networks.)
371732 b(In)17 b(this)f(case)h(the)g(set)f(of)-31 1043 y(lea)o(v)o(es)c
3718(has)f(to)f(be)i(the)f(set)f(of)h(all)g(primary)g(inputs.)k(This)c
3719(produces)g(the)g(constraint)f(that)g(both)h(networks)f(should)g(ha)o
3720(v)o(e)-31 1099 y(the)k(same)f(number)g(of)h(primary)f(inputs.)22
3721b(The)13 b(set)g(of)h(roots)f(can)h(be)g(an)f(arbitrary)h(subset)f(of)g
3722(nodes.)23 b(Moreo)o(v)o(er)n(,)15 b(no)-31 1156 y(pseudo-inputs)c
3723(should)g(be)i(present)f(in)g(the)h(two)e(networks)h(being)g(compared.)
372420 b(Sequential)12 b(v)o(eri\256cation)h(is)f(done)g(by)-31
37251212 y(b)o(uilding)g(the)i(product)f(\256nite)h(state)f(machine.)24
3726b(The)13 b(command)g(v)o(eri\256es)i(whether)f(an)o(y)g(state,)g(where)
3727g(the)g(v)o(alues)f(of)-31 1269 y(two)d(corresponding)g(roots)h(dif)o
3728(fer)n(,)h(can)f(be)g(reached)h(from)f(the)g(set)g(of)g(initial)e
3729(states)i(of)g(the)g(product)f(machine.)17 b(If)11 b(this)-31
37301325 y(happens,)h(a)f(deb)o(ug)g(trace)i(is)d(pro)o(vided.)-31
37311471 y Fl(4.7)58 b(Simulation)-31 1574 y Fq(Simulation,)14
3732b(although)f(not)h(\252formal)g(v)o(eri\256cation\272,)i(is)e(an)g
3733(alternate)h(method)e(for)h(design)g(v)o(eri\256cation.)26
3734b(After)14 b(the)-31 1631 y(command)c Fi(b)o(uild)p 257
37351631 V 15 w(partition)p 434 1631 V 15 w(mdds)g Fq(is)g(in)n(v)o(oked,)g
3736(the)g(network)g(can)h(also)f(be)h(simulated.)k(In)c(VIS)g(we)g(pro)o
3737(vide)g(internal)-31 1687 y(simulation)k(of)i(the)h(BLIF-MV)f
3738(description)g(generated)g(by)g Fo(VL)p Fq(2)p Fo(MV)p
3739Fq(,)k(via)c(the)g Fi(simulate)f Fq(command.)33 b(Thus,)19
3740b(VIS)-31 1744 y(encompasses)c(both)g(formal)h(v)o(eri\256cation)g(and)
3741f(simulation)f(capabilities.)29 b Fi(simulate)14 b Fq(can)j(generate)f
3742(random)f(input)-31 1800 y(patterns)c(or)h(accept)g(user)o
3743(-speci\256ed)g(input)e(patterns.)-31 1883 y Fd(UC)20
3744b(Berkeley,)f(VIS)h(Release)f(1.0)h(\(compiled)f(15-Dec-95)g(at)h
3745(10:24)g(PM\))-31 1922 y(vis>)g(read_blif_mv)f(tlc.mv)-31
37461961 y(Warning:)g(Some)h(variables)f(are)h(unused)g(in)f(model)h(main.)
3747-31 2001 y(vis>)g(init_verify)-31 2040 y(vis>)g(simulate)f(-n)h(10)-31
37482080 y(#)g(UC)g(Berkeley,)f(VIS)h(Release)f(1.0)h(\(compiled)f
3749(15-Dec-95)g(at)h(10:24)g(PM\))-31 2119 y(#)g(Network:)f(main)-31
37502159 y(#)h(Simulation)f(vectors)h(have)f(been)h(randomly)f(generated)
3751-31 2277 y(.inputs)39 b(sensor.rand_choice)19 b(timer.rand_choice)-31
37522316 y(.latches)g(car_present)h(farm_light)f(hwy_light)g(timer.state)
3753-31 2356 y(.outputs)-31 2395 y(.initial)g(NO)h(RED)g(GREEN)g(START)-31
37542474 y(.start_vectors)-31 2553 y(#)g(sensor.rand_choice)f
3755(timer.rand_choice)f(;)i(car_present)f(farm_light)g(hwy_light)h
3756(timer.state)f(;)-31 2632 y(0)h(0)g(;)g(NO)39 b(RED)80
3757b(GREEN)39 b(START)20 b(;)-31 2671 y(1)g(1)g(;)g(NO)39
3758b(RED)80 b(GREEN)39 b(START)20 b(;)-31 2711 y(0)g(0)g(;)g(YES)f(RED)80
3759b(GREEN)39 b(SHORT)20 b(;)906 2835 y Fq(36)p eop
3760%%Page: 37 38
376137 37 bop -31 11 a Fd(1)20 b(0)g(;)g(NO)39 b(RED)80 b(GREEN)39
3762b(SHORT)20 b(;)-31 51 y(1)g(1)g(;)g(YES)f(RED)80 b(GREEN)39
3763b(SHORT)20 b(;)-31 90 y(0)g(1)g(;)g(YES)f(RED)80 b(GREEN)39
3764b(LONG)h(;)-31 130 y(0)20 b(1)g(;)g(NO)39 b(RED)80 b(YELLOW)19
3765b(START)h(;)-31 169 y(0)g(0)g(;)g(NO)39 b(RED)80 b(YELLOW)19
3766b(SHORT)h(;)-31 209 y(0)g(0)g(;)g(NO)39 b(GREEN)h(RED)79
3767b(START)20 b(;)-31 248 y(1)g(0)g(;)g(NO)39 b(YELLOW)20
3768b(RED)79 b(START)20 b(;)-31 287 y(#)g(Final)g(State)f(:)h(NO)40
3769b(YELLOW)19 b(RED)80 b(START)-31 327 y(vis>)20 b(cd)g(farm_control)-31
3770366 y(vis>)g(simulate)f(-n)h(10)-31 406 y(There)g(is)f(no)h(network.)g
3771(Use)f(flatten_hierarchy.)-31 445 y(vis>)h(init_verify)-31
3772485 y(vis>)g(simulate)f(-n)h(10)-31 524 y(#)g(UC)g(Berkeley,)f(VIS)h
3773(Release)f(1.0)h(\(compiled)f(15-Dec-95)g(at)h(10:24)g(PM\))-31
3774563 y(#)g(Network:)f(farm_control)-31 603 y(#)h(Simulation)f(vectors)h
3775(have)f(been)h(randomly)f(generated)-31 721 y(.inputs)39
3776b(car_present)20 b(enable_farm)f(long_timer)g(short_timer)-31
3777761 y(.latches)g(farm_light)-31 800 y(.outputs)g(enable_hwy)h
3778(farm_light)f(farm_start_timer)-31 839 y(.initial)g(RED)-31
3779918 y(.start_vectors)-31 997 y(#)h(car_present)f(enable_farm)g
3780(long_timer)g(short_timer)g(;)h(farm_light)g(;)f(enable_hwy)h
3781(farm_light)f(farm_start_timer)-31 1076 y(NO)40 b(1)20
3782b(0)g(0)f(;)h(RED)80 b(;)20 b(0)f(RED)80 b(1)-31 1116
3783y(YES)20 b(1)g(1)g(1)f(;)h(GREEN)40 b(;)20 b(0)f(GREEN)40
3784b(1)-31 1155 y(NO)g(1)20 b(0)g(1)f(;)h(YELLOW)g(;)g(1)f(YELLOW)h(0)-31
37851194 y(YES)g(0)g(0)g(0)f(;)h(RED)80 b(;)20 b(0)f(RED)80
3786b(0)-31 1234 y(NO)40 b(1)20 b(1)g(0)f(;)h(RED)80 b(;)20
3787b(0)f(RED)80 b(1)-31 1273 y(NO)40 b(1)20 b(1)g(1)f(;)h(GREEN)40
3788b(;)20 b(0)f(GREEN)40 b(1)-31 1313 y(YES)20 b(1)g(1)g(1)f(;)h(YELLOW)g
3789(;)g(1)f(YELLOW)h(0)-31 1352 y(NO)40 b(0)20 b(1)g(0)f(;)h(RED)80
3790b(;)20 b(0)f(RED)80 b(0)-31 1392 y(NO)40 b(0)20 b(0)g(0)f(;)h(RED)80
3791b(;)20 b(0)f(RED)80 b(0)-31 1431 y(YES)20 b(0)g(1)g(0)f(;)h(RED)80
3792b(;)20 b(0)f(RED)80 b(0)-31 1470 y(#)20 b(Final)g(State)f(:)h(RED)40
37931577 y Fq(An)o(y)13 b(le)o(v)o(el)f(of)h(the)g(speci\256ed)g(hierarchy)
3794g(may)g(be)g(simulated.)20 b(The)13 b(user)g(may)f(tra)o(v)o(erse)i
3795(the)f(hierarchy)g(to)f(reach)-31 1633 y(the)g(rele)o(v)o(ant)g(le)o(v)
3796o(el)h(via)f(the)g Fi(cd)h Fq(command.)18 b(The)13 b
3797Fi(init)p 845 1633 14 2 v 15 w(verify)g Fq(command)e(must)g(be)i
3798(called)f(to)g(set)g(up)g(the)g(appropriate)-31 1690
3799y(internal)f(data)h(structures)f(before)h(simulation.)906
38002835 y(37)p eop
3801%%Page: 38 39
380238 38 bop -31 323 a Fn(Chapter)20 b(5)-31 530 y Fs(Synthesis)25
3803b(in)h(VIS)-31 753 y Fq(VIS)12 b(can)g(interact)f(with)g(SIS)h(in)f
3804(order)h(to)f(optimize)f(the)h(e)o(xisting)g(logic.)16
3805b(There)c(are)g(two)e(possible)h(goals/scenarios:)26
3806842 y(1.)23 b(Synthesis)10 b(for)i(v)o(eri\256cation.)83
3807898 y(Synthesis)e(can)i(be)g(used)f(to)g(optimize)f(the)h(logic)g(that)
3808g(represents)g(the)g(system,)g(for)h(simpler)e(v)o(eri\256cation.)26
3809990 y(2.)23 b(Front-end)11 b(to)g(synthesis.)83 1047
3810y(Files)c(described)g(in)g(V)-5 b(erilog)7 b(and)g(compiled)g(into)g
3811Fi(blif)p 941 1047 14 2 v 14 w(mv)g Fq(\(using)g Fo(VL)p
3812Fq(2)p Fo(MV)g Fq(or)g(another)g(tool\))g(can)g(be)g(synthesized)83
38131103 y(by)k(using)f(VIS)i(and)g(SIS)g(together)m(.)40
38141192 y(A)e(ke)o(y)g(fact)h(is)f(that)g(only)g(the)g(current)h(le)o(v)o
3815(el)f(of)h(the)f(hierarchy)h(is)f(sent)g(to)g(SIS,)i(and)e(not)g(the)g
3816(subtree)h(rooted)f(at)g(the)-31 1249 y(current)j(node.)225
38171232 y Ft(1)264 1249 y Fq(Modules)f(at)h(a)g(lo)o(wer)g(le)o(v)o(el)g
3818(are)h(treated)f(as)g(e)o(xternal)g(and)g(the)g(boundary)f(v)o
3819(ariables)h(are)h(carefully)-31 1305 y(preserv)o(ed,)i(by)d(reinte)o
3820(grating)g(their)g(multi-v)o(alued)f(status)h(after)h(the)g
3821(optimization)d(step)i(in)h(SIS)g(\(SIS)h(requires)f(that)-31
38221362 y(boundary)d(v)o(ariables)g(are)h(completely)f(encoded,)h(i.e.,)g
3823(are)g(binary)g(v)o(ariables\).)-31 1418 y Fr(Ca)o(veat)37
3824b Fq(T)l(o)19 b(pre)o(v)o(ent)f(that)h(a)g(signal)e(\(possibly)g
3825(referred)k(to)d(in)g(a)h(CTL)g(property\))g(is)f(optimized)f(a)o(way)i
3826(during)-31 1475 y(synthesis,)10 b(declare)j(it)d(as)i(an)f(output)g
3827(of)g(a)h(module.)40 1531 y(In)g(the)h(current)g(v)o(ersion,)g(only)e
3828(combinational)g(logic)h(is)g(sent)g(to)g(SIS:)i(latches)e(are)h(cut)g
3829(a)o(way)f(from)h(the)f(module)-31 1588 y(sent)17 b(to)g(SIS)i(and)e
3830(the)o(y)h(are)g(reincorporated)g(when)g(the)f(design)g(is)g(read)h
3831(back)g(into)e(VIS.)j(Therefore)g(we)e(cannot)-31 1644
3832y(take)c(adv)o(antage)g(of)g(sequential)g(optimizations)d(in)j(SIS,)i
3833(either)e(at)g(the)g(le)o(v)o(el)g(of)g(a)h(completely)e(encoded)h
3834(sequential)-31 1701 y(network)h(or)g(of)g(a)h(symbolic)e(state)g
3835(table.)26 b(The)14 b(boundaries)g(between)g(modules)f(are)i
3836(established)e(when)i(the)f(initial)-31 1757 y(hierarchy)f(is)f
3837(described,)i(and)e(the)o(y)h(are)g(rigid)f(in)h(the)f(sense)h(that)f
3838(optimizations)e(can)j(ne)o(v)o(er)h(bridge)e(them,)h(b)o(ut)f(only)-31
38391813 y(operate)h(within)e(them.)19 b(Notice)12 b(that)g(there)h(is)f(a)
3840h(way)f(to)g(replace)h(a)g(subtree)f(of)g(the)h(hierarchy)f(with)g
3841(another)g(one)g(by)-31 1870 y(using)f Fi(r)n(ead)p 165
38421870 V 16 w(blif)p 243 1870 V 15 w(mv)h(-r)p Fq(;)f(this)f(feature)j
3843(could)e(be)g(used)g(to)g(change)h(boundaries)f(in)g(the)g(original)f
3844(speci\256cation.)-31 2016 y Fl(5.1)58 b(Writing)15 b(and)h(Reading)f
3845(fr)o(om)g(SIS)-31 2119 y Fq(VIS)d(communicates)e(with)h(SIS)h(via)g
3846(the)f Fi(write)p 731 2119 V 16 w(blif)f Fq(and)i Fi(r)n(ead)p
3847979 2119 V 16 w(blif)f Fq(commands.)40 2176 y(Operations)g(performed)g
3848(by)g Fi(write)p 607 2176 V 17 w(blif)f Fq(are:)26 2265
3849y(1.)23 b(All)11 b(v)o(ariables)g(are)i(encoded,)f(i.e.,)h(v)o(alues)e
3850(of)h(multi-v)o(alued)e(v)o(ariables)i(are)g(replaced)h(by)e(binary)g
3851(v)o(ectors.)18 b(F)o(or)83 2321 y(v)o(ariables)9 b(at)h(the)g
3852(boundary)g(with)f(modules)f(at)i(dif)o(ferent)g(le)o(v)o(els)g(of)g
3853(the)g(hierarchy)g(the)g(encoding)f(assignments)83 2378
3854y(are)18 b(stored)f(into)f(a)i(\256le)g(with)e(e)o(xtension)h
3855Fm(.enc)p Fq(,)k(so)c(that)g(it)g(is)g(possible)f(to)h(reinte)o(grate)h
3856(the)f(multi-v)o(alued)83 2434 y(boundaries)11 b(between)g(modules)f
3857(when)i(coming)e(back)i(to)f(VIS.)26 2526 y(2.)23 b(All)16
3858b(unspeci\256ed)g(input)g(combinations)e(in)i(the)h(tables)f(are)h
3859(speci\256ed)g(by)f(assigning)f(zero)j(code)e(v)o(ectors)h(as)83
38602583 y(outputs.)e(Default)c(constructs)g(in)g(the)g(speci\256cation)g
3861(of)g(tables)g(are)i(handled)e(appropriately)m(.)p -31
38622622 768 2 v 22 2649 a Fg(1)36 2665 y Ff(One)c(would)g(need)f(a)h
3863(\257attening)g(routine)g(dif)o(ferent)i(from)f(the)f(one)f(which)h
3864(starts)h(the)f(v)o(eri\256cation)g(\257o)o(w)g(already)g(in)g(VIS,)i
3865(and)d(such)g(a)h(routine)-31 2711 y(to)j(\257atten)e(for)i(synthesis)e
3866(is)h(not)g(yet)g(a)o(v)o(ailable.)906 2835 y Fq(38)p
3867eop
3868%%Page: 39 40
386939 39 bop 26 11 a Fq(3.)23 b(Nondeterministic)9 b(tables)h(are)h
3870(determinized)f(by)h(adding)f(pseudo-inputs.)k(As)d(a)g(result)f(a)h
3871(\256le)g(with)f(e)o(xtension)83 68 y Fm(.blif)16 b Fq(is)d(created)i
3872(that)e(can)i(be)f(read)g(and)g(optimized)f(by)g(SIS.)j(SIS)f(must)d
3873(be)i(in)n(v)o(oked)f(outside)g(of)h(VIS)g(by)83 124
3874y(means)d(of)g(a)h(dif)o(ferent)g(shell.)k(All)10 b(SIS)j(operations)d
3875(to)h(optimize)g(combinational)e(logic)i(can)h(be)f(applied.)-31
3876213 y(In)17 b(summary)m(,)h Fi(write)p 318 213 14 2 v
387716 w(blif)e Fq(scans)h(all)f(the)h(tables)g(of)g(a)g(gi)o(v)o(en)f
3878(node)h(in)f(the)h(hierarchy)g(and)g(encodes)g(all)g(symbolic)-31
3879269 y(v)o(ariables,)22 b(determinizes)c(the)i(tables)f(by)g(adding)f
3880(pseudo-inputs,)i(and)g(resolv)o(es)f(incomplete)f(speci\256cation)h
3881(by)-31 325 y(associating)10 b(unspeci\256ed)i(input)e(combinations)g
3882(to)h(outputs)f(encoded)h(by)g(zero)h(binary)f(v)o(ectors.)40
3883382 y(Operations)g(performed)g(by)g Fi(r)n(ead)p 595
3884382 V 17 w(blif)f Fq(are:)26 470 y(1.)23 b(Restore)14
3885b(the)f(symbolic)f(v)o(alues)h(of)g(multi-v)o(alued)f(I/O)h(v)o
3886(ariables)g(of)g(the)h(node)f(being)g(read)h(in.)22 b(This)13
3887b(is)f(done)83 527 y(using)d(the)h(information)e(in)i(the)f(\256le)i
3888(with)e(e)o(xtension)g Fm(.enc)j Fq(\(e.g.,)g Fi(r)n(ead)p
38891246 527 V 16 w(blif)d(-e)i(model.enc)f(s-sim.blif)p
3890Fq(\),)g(which)83 583 y(was)h(written)g(out)f(during)h(the)g
3891Fi(write)p 670 583 V 16 w(blif)g Fq(process.)26 675 y(2.)23
3892b(Replace)12 b(in)f(the)g(hierarchy)h(the)f(old)g(node)g(with)g(the)g
3893(ne)o(w)g(node.)-31 820 y Fl(5.2)58 b(Flo)o(w)15 b(of)f(Operations)i(f)
3894o(or)e(Synthesis)-31 924 y Fq(The)e(typical)e(\257o)o(w)i(of)f
3895(operations)g(of)g(synthesis)f(for)i(v)o(eri\256cation)g(is:)37
38961012 y Fj(\017)23 b Fi(r)n(ead)p 168 1012 V 16 w(blif)p
3897246 1012 V 16 w(mv)37 1104 y Fj(\017)g Fi(write)p 180
38981104 V 16 w(blif)37 1195 y Fj(\017)g Fq(optimization)9
3899b(by)i(SIS)37 1287 y Fj(\017)23 b Fi(r)n(ead)p 168 1287
3900V 16 w(blif)37 1379 y Fj(\017)g Fi(init)p 148 1379 V
390115 w(verify)37 1470 y Fj(\017)g Fq(suite)10 b(of)i(v)o(eri\256cation)g
3902(operations)-31 1558 y(The)g(typical)e(\257o)o(w)i(of)f(operations)g
3903(for)g(direct)h(synthesis)e(is:)37 1647 y Fj(\017)23
3904b Fi(r)n(ead)p 168 1647 V 16 w(blif)p 246 1647 V 16 w(mv)37
39051738 y Fj(\017)g Fi(write)p 180 1738 V 16 w(blif)37 1830
3906y Fj(\017)g Fq(optimization)9 b(by)i(SIS)37 1922 y Fj(\017)23
3907b Fi(r)n(ead)p 168 1922 V 16 w(blif)40 2010 y Fq(It)8
3908b(is)h(possible)e(to)i(v)o(erify)g(that)f(after)h(optimization)e(with)h
3909(SIS)i(the)f(ne)o(w)f(global)g(network)g(\(where)i(the)e(node)h
3910(returned)-31 2066 y(from)14 b(SIS)i(is)e(plugged)f(back)i(in)f(the)g
3911(original)f(network\))h(is)g(equi)o(v)o(alent)g(to)g(the)g(old)g
3912(global)f(network,)i(by)f(using)f(the)-31 2123 y(command)h
3913Fi(comb)p 266 2123 V 17 w(verify)h Fq(that)f(checks)h(combinational)f
3914(equi)o(v)o(alence)g(of)h(networks.)27 b(Combinational)13
3915b(equi)o(v)o(alence)-31 2179 y(can)g(be)f(checked)g(at)g(each)h(le)o(v)
3916o(el)f(of)g(the)g(network)f(hierarchy)m(,)i(from)f(root)g(to)g(lea)o(v)
3917o(es.)19 b(Before)13 b(applying)e Fi(comb)p 1760 2179
3918V 17 w(verify)p Fq(,)-31 2236 y(the)g(command)g Fi(init)p
3919293 2236 V 15 w(verify)h Fq(must)e(be)h(in)n(v)o(oked.)-31
39202381 y Fl(5.3)58 b(Example)15 b(of)g(Synthesis)g(of)g(T)l(raf\256c)f
3921(Light)h(Contr)o(oller)-31 2485 y Fq(The)f(follo)o(wing)e(script)i
3922(demonstrates)f(the)g(path)h(from)f(VIS)i(to)e(SIS)i(and)f(back.)24
3923b(W)l(e)15 b(ha)o(v)o(e)g(chosen)e(to)h(optimize)e(the)-31
39242541 y(network)e(of)h(the)f(leaf)h Fm(farm)p 434 2541
3925V 18 w(control)p Fq(.)20 b(W)l(e)11 b(v)o(erify)g(that)f(the)h(initial)
3926e(global)h(network)f(and)i(the)g(ne)o(w)f(network,)h(after)-31
39272598 y(replacement)f(of)g(the)g(network)f(in)h(the)g(leaf)g
3928Fm(farm)p 776 2598 V 18 w(control)j Fq(by)d(the)g(one)g(optimized)e(by)
3929i(SIS,)i(are)e(combinationally)-31 2654 y(equi)o(v)o(alent.)15
3930b(The)10 b(script)f(used)g(to)h(run)f(SIS)i(\(in)e(a)h(dif)o(ferent)f
3931(shell\))h(is)f(sho)o(wn)f(too.)16 b(Experiments)8 b(report)i(big)f(sa)
3932o(vings)g(in)-31 2711 y(literals)g(for)i(the)e(optimized)g(modules,)g
3933(since)h(the)g(BLIF-MV)g(\256les)g(generated)h(by)e Fo(VL)p
3934Fq(2)p Fo(MV)j Fq(ha)o(v)o(e)e(a)g(lot)f(of)h(redundanc)o(y)m(.)906
39352835 y(39)p eop
3936%%Page: 40 41
393740 40 bop -31 11 a Fd(UC)20 b(Berkeley,)f(VIS)h(Release)f(1.0)h
3938(\(compiled)f(11-Dec-95)g(at)h(10:36)g(AM\))-31 51 y(vis>)g
3939(read_blif_mv)f(tlc.mv)-31 90 y(Warning:)g(Some)h(variables)f(are)h
3940(unused)g(in)f(model)h(main.)-31 130 y(vis>)g(init_verify)-31
3941169 y(vis>)g(ls)-31 209 y(hwy_control)-31 248 y(sensor)-31
3942287 y(timer)-31 327 y(farm_control)-31 366 y(vis>)g
3943(print_network_stats)-31 406 y(main)40 b(combinational=142)e(pi=0)i
3944(po=0)f(latches=4)h(pseudo=2)f(const=40)g(edges=206)-31
3945445 y(vis>)20 b(cd)g(farm_control)-31 485 y(vis>)g(write_blif)f
3946(farm_control.blif)-31 524 y(Writing)h(encoding)f(information)g(to)h
3947(farm_control.enc)-31 563 y(vis>)g(read_blif)f(-e)h(farm_control.enc)f
3948(farm_control.opt.blif)-31 603 y(Warning:)g(Some)h(variables)f(are)h
3949(unused)g(in)f(model)h(farm_control[0].)-31 642 y(vis>)g(cd)g(..)-31
3950682 y(vis>)g(init_verify)-31 721 y(vis>)g(comb_verify)f(tlc.mv)-31
3951761 y(Networks)g(are)h(combinationally)f(equivalent.)-31
3952800 y(vis>)h(print_network_stats)-31 839 y(main)40 b(combinational=132)
3953e(pi=0)i(po=0)f(latches=4)h(pseudo=2)f(const=34)g(edges=186)-31
3954997 y(sis>)20 b(read_blif)f(farm_control.blif)-31 1037
3955y(Warning:)g(network)h(`farm_control',)f(node)g("[1]0")h(does)f(not)h
3956(fanout)-31 1076 y(Warning:)f(network)h(`farm_control',)f(node)g
3957("[5]0")h(does)f(not)h(fanout)-31 1116 y(Warning:)f(network)h
3958(`farm_control',)f(node)g("[11]0")h(does)f(not)h(fanout)-31
39591155 y(sis>)g(print_stats)-31 1194 y(farm_control)79
3960b(pi=18)59 b(po=)20 b(6)60 b(nodes=)19 b(62)140 b(latches=)19
3961b(0)-31 1234 y(lits\(sop\)=)g(709)40 b(lits\(fac\)=)19
3962b(419)-31 1273 y(sis>)h(source)f(script.rugged)-31 1313
3963y(sis>)h(print_stats)-31 1352 y(farm_control)79 b(pi=18)59
3964b(po=)20 b(6)60 b(nodes=)19 b(24)140 b(latches=)19 b(0)-31
39651392 y(lits\(sop\)=)39 b(34)h(lits\(fac\)=)f(34)-31 1431
3966y(sis>)20 b(write_blif)f(farm_control.opt.blif)40 1537
3967y Fq(In)8 b(the)g(pre)o(vious)f(e)o(xample,)i(the)f(command)g
3968Fi(init)p 806 1537 14 2 v 15 w(verify)g Fq(has)g(been)h(gi)o(v)o(en)e
3969(only)h(in)g(order)g(to)g(do)g Fi(print)p 1630 1537 V
397015 w(network)p 1792 1537 V 16 w(stats)-31 1594 y Fq(before)k(logic)f
3971(synthesis,)f(to)h(compare)h(the)f(networks)f(before)i(and)g(after)g
3972(optimization)d(by)i(SIS.)906 2835 y(40)p eop
3973%%Page: 41 42
397441 41 bop -31 323 a Fn(A)n(ppendix)21 b(A)-31 530 y Fs(Commands)26
3975b(in)g(VIS)-31 771 y Fl(A.1)58 b(List)14 b(of)h(Commands)h(in)f(VIS)-31
3976875 y Fq(The)7 b(follo)o(wing)g(list)g(contains)f(a)h(one)g(lin)o(e)g
3977(summ)o(ary)g(of)g(all)g(the)g(com)o(mands)f(a)o(v)o(ailable)h(with)o
3978(in)g(VIS.)g(The)g(list)f(can)h(also)g(be)-31 931 y(found)g(in)33
3979b 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
3980(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)
3981-31 988 y(/cmdIndex)q(.h)q(tml)q Fq(.)e(Fig.)15 b(A.1)h(graphically)e
3982(illustrates)g(the)h(suite)f(of)h(commands)f(a)o(v)o(ailable)h(within)f
3983(VIS,)i(and)-31 1044 y(their)10 b(dependencies.)16 b(A)10
3984b(command)e(cannot)i(be)g(e)o(x)o(ecuted)g(before)h(its)e(predecessors)
3985h(\(unless)f(the)g(predecessor)h(is)g(also)-31 1101 y(a)i(successor\).)
398617 b(Default)11 b(aliases)g(are)h(de\256ned,)g(type)f
3987Fi(alias)g Fq(to)g(list)f(them.)226 1159 y
3988 22376157 17677154 4670504 16708567 32956661 39074365 startTexFig
3989 226 1159 a
3990%%BeginDocument: VisCom.eps
3991
3992/arrowhead {
39930 begin
3994transform originalCTM itransform
3995/taily exch def
3996/tailx exch def
3997transform originalCTM itransform
3998/tipy exch def
3999/tipx exch def
4000/dy tipy taily sub def
4001/dx tipx tailx sub def
4002/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
4003gsave
4004originalCTM setmatrix
4005tipx tipy translate
4006angle rotate
4007newpath
4008arrowHeight neg arrowWidth 2 div moveto
40090 0 lineto
4010arrowHeight neg arrowWidth 2 div neg lineto
4011patternNone not {
4012originalCTM setmatrix
4013/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
4014arrowWidth div def
4015/padtail brushWidth 2 div def
4016tipx tipy translate
4017angle rotate
4018padtip 0 translate
4019arrowHeight padtip add padtail add arrowHeight div dup scale
4020arrowheadpath
4021ifill
4022} if
4023brushNone not {
4024originalCTM setmatrix
4025tipx tipy translate
4026angle rotate
4027arrowheadpath
4028istroke
4029} if
4030grestore
4031end
4032} dup 0 9 dict put def
4033
4034/arrowheadpath {
4035newpath
4036arrowHeight neg arrowWidth 2 div moveto
40370 0 lineto
4038arrowHeight neg arrowWidth 2 div neg lineto
4039} def
4040
4041/leftarrow {
40420 begin
4043y exch get /taily exch def
4044x exch get /tailx exch def
4045y exch get /tipy exch def
4046x exch get /tipx exch def
4047brushLeftArrow { tipx tipy tailx taily arrowhead } if
4048end
4049} dup 0 4 dict put def
4050
4051/rightarrow {
40520 begin
4053y exch get /tipy exch def
4054x exch get /tipx exch def
4055y exch get /taily exch def
4056x exch get /tailx exch def
4057brushRightArrow { tipx tipy tailx taily arrowhead } if
4058end
4059} dup 0 4 dict put def
4060
4061
4062/arrowHeight 11 def
4063/arrowWidth 5 def
4064
4065/IdrawDict 51 dict def
4066IdrawDict begin
4067
4068/reencodeISO {
4069dup dup findfont dup length dict begin
4070{ 1 index /FID ne { def }{ pop pop } ifelse } forall
4071/Encoding ISOLatin1Encoding def
4072currentdict end definefont
4073} def
4074
4075/ISOLatin1Encoding [
4076/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
4077/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
4078/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
4079/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
4080/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
4081/parenleft/parenright/asterisk/plus/comma/minus/period/slash
4082/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
4083/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
4084/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
4085/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
4086/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
4087/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
4088/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
4089/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
4090/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
4091/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
4092/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
4093/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
4094/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
4095/guillemotright/onequarter/onehalf/threequarters/questiondown
4096/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
4097/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
4098/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
4099/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
4100/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
4101/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
4102/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
4103/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
4104/yacute/thorn/ydieresis
4105] def
4106/Helvetica-Bold reencodeISO def
4107
4108/none null def
4109/numGraphicParameters 17 def
4110/stringLimit 65535 def
4111
4112/Begin {
4113save
4114numGraphicParameters dict begin
4115} def
4116
4117/End {
4118end
4119restore
4120} def
4121
4122/SetB {
4123dup type /nulltype eq {
4124pop
4125false /brushRightArrow idef
4126false /brushLeftArrow idef
4127true /brushNone idef
4128} {
4129/brushDashOffset idef
4130/brushDashArray idef
41310 ne /brushRightArrow idef
41320 ne /brushLeftArrow idef
4133/brushWidth idef
4134false /brushNone idef
4135} ifelse
4136} def
4137
4138/SetCFg {
4139/fgblue idef
4140/fggreen idef
4141/fgred idef
4142} def
4143
4144/SetCBg {
4145/bgblue idef
4146/bggreen idef
4147/bgred idef
4148} def
4149
4150/SetF {
4151/printSize idef
4152/printFont idef
4153} def
4154
4155/SetP {
4156dup type /nulltype eq {
4157pop true /patternNone idef
4158} {
4159dup -1 eq {
4160/patternGrayLevel idef
4161/patternString idef
4162} {
4163/patternGrayLevel idef
4164} ifelse
4165false /patternNone idef
4166} ifelse
4167} def
4168
4169/BSpl {
41700 begin
4171storexyn
4172newpath
4173n 1 gt {
41740 0 0 0 0 0 1 1 true subspline
4175n 2 gt {
41760 0 0 0 1 1 2 2 false subspline
41771 1 n 3 sub {
4178/i exch def
4179i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
4180} for
4181n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
4182} if
4183n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
4184patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
4185brushNone not { istroke } if
41860 0 1 1 leftarrow
4187n 2 sub dup n 1 sub dup rightarrow
4188} if
4189end
4190} dup 0 4 dict put def
4191
4192/Circ {
4193newpath
41940 360 arc
4195patternNone not { ifill } if
4196brushNone not { istroke } if
4197} def
4198
4199/CBSpl {
42000 begin
4201dup 2 gt {
4202storexyn
4203newpath
4204n 1 sub dup 0 0 1 1 2 2 true subspline
42051 1 n 3 sub {
4206/i exch def
4207i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
4208} for
4209n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
4210n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
4211patternNone not { ifill } if
4212brushNone not { istroke } if
4213} {
4214Poly
4215} ifelse
4216end
4217} dup 0 4 dict put def
4218
4219/Elli {
42200 begin
4221newpath
42224 2 roll
4223translate
4224scale
42250 0 1 0 360 arc
4226patternNone not { ifill } if
4227brushNone not { istroke } if
4228end
4229} dup 0 1 dict put def
4230
4231/Line {
42320 begin
42332 storexyn
4234newpath
4235x 0 get y 0 get moveto
4236x 1 get y 1 get lineto
4237brushNone not { istroke } if
42380 0 1 1 leftarrow
42390 0 1 1 rightarrow
4240end
4241} dup 0 4 dict put def
4242
4243/MLine {
42440 begin
4245storexyn
4246newpath
4247n 1 gt {
4248x 0 get y 0 get moveto
42491 1 n 1 sub {
4250/i exch def
4251x i get y i get lineto
4252} for
4253patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
4254brushNone not { istroke } if
42550 0 1 1 leftarrow
4256n 2 sub dup n 1 sub dup rightarrow
4257} if
4258end
4259} dup 0 4 dict put def
4260
4261/Poly {
42623 1 roll
4263newpath
4264moveto
4265-1 add
4266{ lineto } repeat
4267closepath
4268patternNone not { ifill } if
4269brushNone not { istroke } if
4270} def
4271
4272/Rect {
42730 begin
4274/t exch def
4275/r exch def
4276/b exch def
4277/l exch def
4278newpath
4279l b moveto
4280l t lineto
4281r t lineto
4282r b lineto
4283closepath
4284patternNone not { ifill } if
4285brushNone not { istroke } if
4286end
4287} dup 0 4 dict put def
4288
4289/Text {
4290ishow
4291} def
4292
4293/idef {
4294dup where { pop pop pop } { exch def } ifelse
4295} def
4296
4297/ifill {
42980 begin
4299gsave
4300patternGrayLevel -1 ne {
4301fgred bgred fgred sub patternGrayLevel mul add
4302fggreen bggreen fggreen sub patternGrayLevel mul add
4303fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
4304eofill
4305} {
4306eoclip
4307originalCTM setmatrix
4308pathbbox /t exch def /r exch def /b exch def /l exch def
4309/w r l sub ceiling cvi def
4310/h t b sub ceiling cvi def
4311/imageByteWidth w 8 div ceiling cvi def
4312/imageHeight h def
4313bgred bggreen bgblue setrgbcolor
4314eofill
4315fgred fggreen fgblue setrgbcolor
4316w 0 gt h 0 gt and {
4317l b translate w h scale
4318w h true [w 0 0 h neg 0 h] { patternproc } imagemask
4319} if
4320} ifelse
4321grestore
4322end
4323} dup 0 8 dict put def
4324
4325/istroke {
4326gsave
4327brushDashOffset -1 eq {
4328[] 0 setdash
43291 setgray
4330} {
4331brushDashArray brushDashOffset setdash
4332fgred fggreen fgblue setrgbcolor
4333} ifelse
4334brushWidth setlinewidth
4335originalCTM setmatrix
4336stroke
4337grestore
4338} def
4339
4340/ishow {
43410 begin
4342gsave
4343fgred fggreen fgblue setrgbcolor
4344/fontDict printFont printSize scalefont dup setfont def
4345/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
4346transform exch pop def
4347/vertoffset 1 printSize sub descender sub def {
43480 vertoffset moveto show
4349/vertoffset vertoffset printSize sub def
4350} forall
4351grestore
4352end
4353} dup 0 3 dict put def
4354/patternproc {
43550 begin
4356/patternByteLength patternString length def
4357/patternHeight patternByteLength 8 mul sqrt cvi def
4358/patternWidth patternHeight def
4359/patternByteWidth patternWidth 8 idiv def
4360/imageByteMaxLength imageByteWidth imageHeight mul
4361stringLimit patternByteWidth sub min def
4362/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
4363patternHeight mul patternHeight max def
4364/imageHeight imageHeight imageMaxHeight sub store
4365/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
43660 1 imageMaxHeight 1 sub {
4367/y exch def
4368/patternRow y patternByteWidth mul patternByteLength mod def
4369/patternRowString patternString patternRow patternByteWidth getinterval def
4370/imageRow y imageByteWidth mul def
43710 patternByteWidth imageByteWidth 1 sub {
4372/x exch def
4373imageString imageRow x add patternRowString putinterval
4374} for
4375} for
4376imageString
4377end
4378} dup 0 12 dict put def
4379
4380/min {
4381dup 3 2 roll dup 4 3 roll lt { exch } if pop
4382} def
4383
4384/max {
4385dup 3 2 roll dup 4 3 roll gt { exch } if pop
4386} def
4387
4388/midpoint {
43890 begin
4390/y1 exch def
4391/x1 exch def
4392/y0 exch def
4393/x0 exch def
4394x0 x1 add 2 div
4395y0 y1 add 2 div
4396end
4397} dup 0 4 dict put def
4398
4399/thirdpoint {
44000 begin
4401/y1 exch def
4402/x1 exch def
4403/y0 exch def
4404/x0 exch def
4405x0 2 mul x1 add 3 div
4406y0 2 mul y1 add 3 div
4407end
4408} dup 0 4 dict put def
4409
4410/subspline {
44110 begin
4412/movetoNeeded exch def
4413y exch get /y3 exch def
4414x exch get /x3 exch def
4415y exch get /y2 exch def
4416x exch get /x2 exch def
4417y exch get /y1 exch def
4418x exch get /x1 exch def
4419y exch get /y0 exch def
4420x exch get /x0 exch def
4421x1 y1 x2 y2 thirdpoint
4422/p1y exch def
4423/p1x exch def
4424x2 y2 x1 y1 thirdpoint
4425/p2y exch def
4426/p2x exch def
4427x1 y1 x0 y0 thirdpoint
4428p1x p1y midpoint
4429/p0y exch def
4430/p0x exch def
4431x2 y2 x3 y3 thirdpoint
4432p2x p2y midpoint
4433/p3y exch def
4434/p3x exch def
4435movetoNeeded { p0x p0y moveto } if
4436p1x p1y p2x p2y p3x p3y curveto
4437end
4438} dup 0 17 dict put def
4439
4440/storexyn {
4441/n exch def
4442/y n array def
4443/x n array def
4444n 1 sub -1 0 {
4445/i exch def
4446y i 3 2 roll put
4447x i 3 2 roll put
4448} for
4449} def
4450
4451/SSten {
4452fgred fggreen fgblue setrgbcolor
4453dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
4454} def
4455
4456/FSten {
4457dup 3 -1 roll dup 4 1 roll exch
4458newpath
44590 0 moveto
4460dup 0 exch lineto
4461exch dup 3 1 roll exch lineto
44620 lineto
4463closepath
4464bgred bggreen bgblue setrgbcolor
4465eofill
4466SSten
4467} def
4468
4469/Rast {
4470exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
4471} def
4472
4473
4474%I Idraw 10 Grid 8 8
4475
4476
4477Begin
4478%I b u
4479%I cfg u
4480%I cbg u
4481%I f u
4482%I p u
4483%I t
4484[ 0.757382 0 0 0.757382 0 0 ] concat
4485/originalCTM matrix currentmatrix def
4486
4487Begin %I Text
4488%I cfg Black
44890 0 0 SetCFg
4490%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*
4491Helvetica-Bold 14 SetF
4492%I t
4493[ 1 0 0 1 346 706 ] concat
4494%I
4495[
4496(cd)
4497] Text
4498End
4499
4500Begin %I Text
4501%I cfg Black
45020 0 0 SetCFg
4503%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*
4504Helvetica-Bold 14 SetF
4505%I t
4506[ 1 0 0 1 306 634 ] concat
4507%I
4508[
4509(flatten_hierarchy)
4510] Text
4511End
4512
4513Begin %I Text
4514%I cfg Black
45150 0 0 SetCFg
4516%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*
4517Helvetica-Bold 14 SetF
4518%I t
4519[ 1 0 0 1 478 643 ] concat
4520%I
4521[
4522(print_network_stats)
4523(print_network)
4524(test_network_acyclic)
4525] Text
4526End
4527
4528Begin %I Text
4529%I cfg Black
45300 0 0 SetCFg
4531%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*
4532Helvetica-Bold 14 SetF
4533%I t
4534[ 1 0 0 1 321 573 ] concat
4535%I
4536[
4537(static_order)
4538] Text
4539End
4540
4541Begin %I Text
4542%I cfg Black
45430 0 0 SetCFg
4544%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*
4545Helvetica-Bold 14 SetF
4546%I t
4547[ 1 0 0 1 291 498 ] concat
4548%I
4549[
4550(build_partition_mdds)
4551] Text
4552End
4553
4554Begin %I Text
4555%I cfg Black
45560 0 0 SetCFg
4557%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*
4558Helvetica-Bold 14 SetF
4559%I t
4560[ 1 0 0 1 495 572 ] concat
4561%I
4562[
4563(write_order)
4564] Text
4565End
4566
4567Begin %I Text
4568%I cfg Black
45690 0 0 SetCFg
4570%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*
4571Helvetica-Bold 14 SetF
4572%I t
4573[ 1 0 0 1 188 580 ] concat
4574%I
4575[
4576(init_verify)
4577] Text
4578End
4579
4580Begin %I Rect
4581%I b 65535
45822 0 0 [] 0 SetB
4583%I cfg Black
45840 0 0 SetCFg
4585%I cbg White
45861 1 1 SetCBg
4587none SetP %I p n
4588%I t
4589[ 1 0 0 1 210 258 ] concat
4590%I
4591264 289 410 322 Rect
4592End
4593
4594Begin %I Rect
4595%I b 65535
45962 0 0 [] 0 SetB
4597%I cfg Black
45980 0 0 SetCFg
4599%I cbg White
46001 1 1 SetCBg
4601none SetP %I p n
4602%I t
4603[ 1 0 0 1 209 260 ] concat
4604%I
4605264 182 409 271 Rect
4606End
4607
4608Begin %I Rect
4609%I b 65535
46102 0 0 [] 0 SetB
4611%I cfg Black
46120 0 0 SetCFg
4613%I cbg White
46141 1 1 SetCBg
4615none SetP %I p n
4616%I t
4617[ 0.986667 0 0 1.3125 214.48 201.271 ] concat
4618%I
4619262 148 408 176 Rect
4620End
4621
4622Begin %I Rect
4623%I b 65535
46242 0 0 [] 0 SetB
4625%I cfg Black
46260 0 0 SetCFg
4627%I cbg White
46281 1 1 SetCBg
4629none SetP %I p n
4630%I t
4631[ 1 0 0 1 216 255 ] concat
4632%I
4633258 84 407 115 Rect
4634End
4635
4636Begin %I Rect
4637%I b 65535
46382 0 0 [] 0 SetB
4639%I cfg Black
46400 0 0 SetCFg
4641%I cbg White
46421 1 1 SetCBg
4643none SetP %I p n
4644%I t
4645[ 1 0 0 1 211 261 ] concat
4646%I
4647262 397 409 464 Rect
4648End
4649
4650Begin %I Rect
4651%I b 65535
46522 0 0 [] 0 SetB
4653%I cfg Black
46540 0 0 SetCFg
4655%I cbg White
46561 1 1 SetCBg
4657none SetP %I p n
4658%I t
4659[ 1 0 0 1 213 260 ] concat
4660%I
4661260 335 410 389 Rect
4662End
4663
4664Begin %I Elli
4665%I b 65535
46662 0 0 [] 0 SetB
4667%I cfg Black
46680 0 0 SetCFg
4669%I cbg White
46701 1 1 SetCBg
4671none SetP %I p n
4672%I t
4673[ 1 0 0 1 196 265 ] concat
4674%I
4675158 435 46 16 Elli
4676End
4677
4678Begin %I Elli
4679%I b 65535
46802 0 0 [] 0 SetB
4681%I cfg Black
46820 0 0 SetCFg
4683%I cbg White
46841 1 1 SetCBg
4685none SetP %I p n
4686%I t
4687[ 1 0 0 1 201 256 ] concat
4688%I
4689160 373 80 20 Elli
4690End
4691
4692Begin %I Elli
4693%I b 65535
46942 0 0 [] 0 SetB
4695%I cfg Black
46960 0 0 SetCFg
4697%I cbg White
46981 1 1 SetCBg
4699none SetP %I p n
4700%I t
4701[ 1 0 0 1 193 258 ] concat
4702%I
4703167 305 56 20 Elli
4704End
4705
4706Begin %I Elli
4707%I b 65535
47082 0 0 [] 0 SetB
4709%I cfg Black
47100 0 0 SetCFg
4711%I cbg White
47121 1 1 SetCBg
4713none SetP %I p n
4714%I t
4715[ 1 0 0 1 198 249 ] concat
4716%I
4717166 241 80 27 Elli
4718End
4719
4720Begin %I Elli
4721%I b 65535
47222 0 0 [] 0 SetB
4723%I cfg Black
47240 0 0 SetCFg
4725%I cbg White
47261 1 1 SetCBg
4727none SetP %I p n
4728%I t
4729[ 0.915692 0 0 2.55203 203.748 12.0202 ] concat
4730%I
4731168 143 76 14 Elli
4732End
4733
4734Begin %I Rect
4735%I b 65535
47362 0 0 [] 0 SetB
4737%I cfg Black
47380 0 0 SetCFg
4739%I cbg White
47401 1 1 SetCBg
4741none SetP %I p n
4742%I t
4743[ 1 0 0 1 176 257 ] concat
4744%I
47456 298 86 333 Rect
4746End
4747
4748Begin %I Line
4749%I b 65535
47502 0 1 [] 0 SetB
4751%I cfg Black
47520 0 0 SetCFg
4753%I cbg White
47541 1 1 SetCBg
4755none SetP %I p n
4756%I t
4757[ 1 0 0 1 130 258 ] concat
4758%I
4759225 352 225 324 Line
4760%I 1
4761End
4762
4763Begin %I Line
4764%I b 65535
47652 0 1 [] 0 SetB
4766%I cfg Black
47670 0 0 SetCFg
4768%I cbg White
47691 1 1 SetCBg
4770none SetP %I p n
4771%I t
4772[ 1 0 0 1 130 258 ] concat
4773%I
4774226 205 226 156 Line
4775%I 1
4776End
4777
4778Begin %I MLine
4779%I b 65535
47802 0 1 [] 0 SetB
4781%I cfg Black
47820 0 0 SetCFg
4783%I cbg White
47841 1 1 SetCBg
4785none SetP %I p n
4786%I t
4787[ 1 0 0 1 130 258 ] concat
4788%I 3
4789223 402
479088 402
479188 332
47923 MLine
4793%I 1
4794End
4795
4796Begin %I Line
4797%I b 65535
47982 0 1 [] 0 SetB
4799%I cfg Black
48000 0 0 SetCFg
4801%I cbg White
48021 1 1 SetCBg
4803none SetP %I p n
4804%I t
4805[ 1 0 0 1 130 258 ] concat
4806%I
4807225 425 225 389 Line
4808%I 1
4809End
4810
4811Begin %I Elli
4812%I b 65535
48132 0 0 [] 0 SetB
4814%I cfg Black
48150 0 0 SetCFg
4816%I cbg White
48171 1 1 SetCBg
4818none SetP %I p n
4819%I t
4820[ 1.34209 0 0 0.932851 48.0848 294.187 ] concat
4821%I
4822227 503 48 20 Elli
4823End
4824
4825Begin %I Line
4826%I b 65535
48272 0 1 [] 0 SetB
4828%I cfg Black
48290 0 0 SetCFg
4830%I cbg White
48311 1 1 SetCBg
4832none SetP %I p n
4833%I t
4834[ 1 0 0 1 127 258 ] concat
4835%I
4836228 482 228 457 Line
4837%I 1
4838End
4839
4840Begin %I Line
4841%I b 65535
48422 1 1 [] 0 SetB
4843%I cfg Black
48440 0 0 SetCFg
4845%I cbg White
48461 1 1 SetCBg
4847none SetP %I p n
4848%I t
4849[ 1 0 0 1 130 258 ] concat
4850%I
4851271 441 342 441 Line
4852%I 1
4853End
4854
4855Begin %I Line
4856%I b 65535
48572 0 1 [] 0 SetB
4858%I cfg Black
48590 0 0 SetCFg
4860%I cbg White
48611 1 1 SetCBg
4862none SetP %I p n
4863%I t
4864[ 1 0 0 1 130 258 ] concat
4865%I
4866311 371 340 371 Line
4867%I 1
4868End
4869
4870Begin %I Line
4871%I b 65535
48722 0 1 [] 0 SetB
4873%I cfg Black
48740 0 0 SetCFg
4875%I cbg White
48761 1 1 SetCBg
4877none SetP %I p n
4878%I t
4879[ 1 0 0 1 130 258 ] concat
4880%I
4881286 306 342 306 Line
4882%I 1
4883End
4884
4885Begin %I Line
4886%I b 65535
48872 0 1 [] 0 SetB
4888%I cfg Black
48890 0 0 SetCFg
4890%I cbg White
48911 1 1 SetCBg
4892none SetP %I p n
4893%I t
4894[ 1 0 0 1 130 258 ] concat
4895%I
4896314 232 340 232 Line
4897%I 1
4898End
4899
4900Begin %I Text
4901%I cfg Black
49020 0 0 SetCFg
4903%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*
4904Helvetica-Bold 14 SetF
4905%I t
4906[ 1 0 0 1 484 718 ] concat
4907%I
4908[
4909(ls)
4910(pwd)
4911(write_blif\( _mv\))
4912(read_blif\( _mv\) -i)
4913] Text
4914End
4915
4916Begin %I Text
4917%I cfg Black
49180 0 0 SetCFg
4919%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*
4920Helvetica-Bold 14 SetF
4921%I t
4922[ 1 0 0 1 487 521 ] concat
4923%I
4924[
4925(simulate)
4926(compute_reach)
4927(comb_verify)
4928(seq_verify)
4929(print_img_info)
4930] Text
4931End
4932
4933Begin %I Text
4934%I cfg Black
49350 0 0 SetCFg
4936%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*
4937Helvetica-Bold 14 SetF
4938%I t
4939[ 1 0 0 1 304 769 ] concat
4940%I
4941[
4942(read_blif \(_mv\))
4943] Text
4944End
4945
4946Begin %I Line
4947%I b 65535
49482 1 1 [] 0 SetB
4949%I cfg Black
49500 0 0 SetCFg
4951%I cbg White
49521 1 1 SetCBg
4953none SetP %I p n
4954%I t
4955[ 1 0 0 1 195 258 ] concat
4956%I
4957221 503 277 468 Line
4958%I 1
4959End
4960
4961Begin %I Text
4962%I cfg Black
49630 0 0 SetCFg
4964%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*
4965Helvetica-Bold 14 SetF
4966%I t
4967[ 1 0 0 1 302 399 ] concat
4968%I
4969[
4970(model_check)
4971(lang_empty)
4972(check_invariance)
4973] Text
4974End
4975
4976Begin %I Line
4977%I b 65535
49782 0 0 [] 0 SetB
4979%I cfg Black
49800 0 0 SetCFg
4981%I cbg White
49821 1 1 SetCBg
4983none SetP %I p n
4984%I t
4985[ 1 0 0 1 -10 262 ] concat
4986%I
4987137 113 297 113 Line
4988%I 1
4989End
4990
4991Begin %I Line
4992%I b 65535
49932 0 1 [] 0 SetB
4994%I cfg Black
49950 0 0 SetCFg
4996%I cbg White
49971 1 1 SetCBg
4998none SetP %I p n
4999%I t
5000[ 1 0 0 1 -10 262 ] concat
5001%I
5002365 171 137 171 Line
5003%I 1
5004End
5005
5006Begin %I Line
5007%I b 65535
50082 0 1 [] 0 SetB
5009%I cfg Black
50100 0 0 SetCFg
5011%I cbg White
50121 1 1 SetCBg
5013none SetP %I p n
5014%I t
5015[ 1 0 0 1 -10 262 ] concat
5016%I
5017365 270 135 270 Line
5018%I 1
5019End
5020
5021Begin %I Line
5022%I b 65535
50232 1 1 [] 0 SetB
5024%I cfg Black
50250 0 0 SetCFg
5026%I cbg White
50271 1 1 SetCBg
5028none SetP %I p n
5029%I t
5030[ 1 0 0 1 -10 262 ] concat
5031%I
5032430 134 482 157 Line
5033%I 1
5034End
5035
5036Begin %I Line
5037%I b 65535
50382 1 1 [] 0 SetB
5039%I cfg Black
50400 0 0 SetCFg
5041%I cbg White
50421 1 1 SetCBg
5043none SetP %I p n
5044%I t
5045[ 1 0 0 1 -10 262 ] concat
5046%I
5047433 101 483 91 Line
5048%I 1
5049End
5050
5051Begin %I Text
5052%I cfg Black
50530 0 0 SetCFg
5054%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*
5055Helvetica-Bold 14 SetF
5056%I t
5057[ 1 0 0 1 488 427 ] concat
5058%I
5059[
5060(read_fairness)
5061(print_fairness)
5062()
5063()
5064()
5065(reset_fairness)
5066] Text
5067End
5068
5069Begin %I Line
5070%I b 65535
50712 0 1 [] 0 SetB
5072%I cfg Black
50730 0 0 SetCFg
5074%I cbg White
50751 1 1 SetCBg
5076none SetP %I p n
5077%I t
5078[ 1 0 0 1 -11 258 ] concat
5079%I
5080136 419 365 419 Line
5081%I 1
5082End
5083
5084Begin %I Line
5085%I b 65535
50862 0 0 [] 0 SetB
5087%I cfg Black
50880 0 0 SetCFg
5089%I cbg White
50901 1 1 SetCBg
5091none SetP %I p n
5092%I t
5093[ 1 0 0 1 -10 262 ] concat
5094%I
5095135 414 136 113 Line
5096%I 1
5097End
5098
5099Begin %I MLine
5100%I b 65520
51012 0 0 [12 4] 0 SetB
5102%I cfg Black
51030 0 0 SetCFg
5104%I cbg White
51051 1 1 SetCBg
5106none SetP %I p n
5107%I t
5108[ 1 0 0 1 -10 262 ] concat
5109%I 6
5110107 513
5111312 425
5112471 405
5113473 393
5114669 392
5115669 393
51166 MLine
5117%I 1
5118End
5119
5120Begin %I Text
5121%I cfg Black
51220 0 0 SetCFg
5123%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*
5124Helvetica-Bold 14 SetF
5125%I t
5126[ 1 0 0 1 140 731 ] concat
5127%I
5128[
5129(VIS_V)
5130] Text
5131End
5132
5133Begin %I MLine
5134%I b 65535
51352 0 1 [] 0 SetB
5136%I cfg Black
51370 0 0 SetCFg
5138%I cbg White
51391 1 1 SetCBg
5140none SetP %I p n
5141%I t
5142[ 1 0 0 1 -10 262 ] concat
5143%I 3
5144227 293
5145227 194
5146367 194
51473 MLine
5148%I 1
5149End
5150
5151Begin %I Line
5152%I b 65535
51532 0 1 [] 0 SetB
5154%I cfg Black
51550 0 0 SetCFg
5156%I cbg White
51571 1 1 SetCBg
5158none SetP %I p n
5159%I t
5160[ 1 0 0 1 -10 262 ] concat
5161%I
5162367 280 367 256 Line
5163%I 1
5164End
5165
5166End %I eop
5167
5168showpage
5169
5170
5171end
5172%%EndDocument
5173
5174 endTexFig
5175 485 2376 a Fq(Figure)h(A.1:)17 b(A)11 b(Flo)o(w)g(Chart)h(of)f
5176(Commands)g(in)g(VIS.)26 2526 y(1.)23 b(alias:)16 b(pro)o(vide)11
5177b(an)g(alias)h(for)f(a)h(command)26 2618 y(2.)23 b(b)o(uild)p
5178180 2618 14 2 v 15 w(partition)p 351 2618 V 15 w(mdds:)16
5179b(b)o(uild)10 b(a)i(partition)e(of)h(MDDs)g(for)h(the)f(current)h
5180(network)26 2711 y(3.)23 b(cd:)16 b(change)c(the)f(current)h(node)906
51812835 y(41)p eop
5182%%Page: 42 43
518342 42 bop 26 11 a Fq(4.)23 b(check)p 192 11 14 2 v 17
5184w(in)n(v)o(ariant:)15 b(checks)d(all)f(states)g(reachable)h(in)f
5185(\257attened)h(network)e(satisfy)h(speci\256ed)h(in)n(v)o(ariants)26
5186104 y(5.)23 b(comb)p 188 104 V 16 w(v)o(erify:)16 b(v)o(eri\256es)c
5187(the)g(combinational)d(equi)o(v)o(alence)j(of)f(two)f(networks)26
5188197 y(6.)23 b(compute)p 244 197 V 15 w(reach:)18 b(compute)10
5189b(the)h(set)h(of)f(reachable)h(states)f(of)h(the)f(FSM)26
5190291 y(7.)23 b(dynamic)p 244 291 V 15 w(v)o(ar)p 316 291
5191V 17 w(ordering:)16 b(control)11 b(the)g(application)f(of)i(dynamic)e
5192(v)o(ariable)i(ordering)26 384 y(8.)23 b(echo:)16 b(merely)11
5193b(echoes)h(the)f(ar)o(guments)26 477 y(9.)23 b(\257atten)p
5194200 477 V 16 w(hierarchy:)17 b(create)12 b(a)g(\257attened)g(network)3
5195570 y(10.)23 b(help:)16 b(pro)o(vide)11 b(on-line)g(information)f(on)h
5196(commands)3 663 y(11.)23 b(history:)15 b(a)d(UNIX-like)e(history)h
5197(mechanism)f(inside)g(the)i(VIS)g(shell)3 756 y(12.)23
5198b(init)p 148 756 V 15 w(v)o(erify:)17 b(create)12 b(and)f(initialize)g
5199(a)g(\257attened)h(network)f(for)g(v)o(eri\256cation)3
5200849 y(13.)23 b(lang)p 165 849 V 16 w(empty:)15 b(performs)c(BDD)h
5201(based)g(check)g(of)f(language)g(emptiness)f(under)i(Buchi)f(fairness)3
5202942 y(14.)23 b(ls:)15 b(list)c(all)g(the)g(child)g(nodes)g(at)g(the)g
5203(current)h(node)3 1035 y(15.)23 b(model)p 201 1035 V
520415 w(check:)17 b(performs)11 b(BDD)h(based)g(fair)f(CTL)h(model)e
5205(checking)h(on)g(a)h(network)3 1128 y(16.)23 b(print)p
5206173 1128 V 15 w(bdd)p 257 1128 V 16 w(stats:)16 b(print)10
5207b(the)i(BDD)f(statistics)f(for)i(the)f(\257attened)h(network)3
52081221 y(17.)23 b(print)p 173 1221 V 15 w(fairness:)16
5209b(print)11 b(the)g(fairness)g(constraints)f(of)i(the)f(\257attened)h
5210(network)3 1314 y(18.)23 b(print)p 173 1314 V 15 w(hierarchy)p
5211360 1314 V 17 w(stats:)15 b(print)c(the)g(statistics)f(of)i(the)f
5212(current)g(node)3 1408 y(19.)23 b(print)p 173 1408 V
521315 w(img)p 260 1408 V 16 w(info:)16 b(print)10 b(information)g(about)h
5214(the)h(image)f(method)f(currently)h(in)g(use)3 1501 y(20.)23
5215b(print)p 173 1501 V 15 w(io:)16 b(print)11 b(the)g(names)g(of)h
5216(inputs/outputs)c(in)j(the)g(current)h(node)3 1594 y(21.)23
5217b(print)p 173 1594 V 15 w(latches:)16 b(print)11 b(the)g(names)g(of)h
5218(latches)f(in)g(the)g(current)h(node)3 1687 y(22.)23
5219b(print)p 173 1687 V 15 w(models:)16 b(list)10 b(all)h(the)g(models)f
5220(and)i(their)f(statistics)3 1780 y(23.)23 b(print)p 173
52211780 V 15 w(network:)16 b(print)11 b(the)g(\257attened)g(network)3
52221873 y(24.)23 b(print)p 173 1873 V 15 w(network)p 338
52231873 V 16 w(stats:)15 b(print)c(statistics)f(about)h(the)g(\257attened)
5224h(network)3 1966 y(25.)23 b(print)p 173 1966 V 15 w(partition:)15
5225b(write)d(a)f(\256le)h(in)f(the)g("dot")f(format)h(describing)g(the)g
5226(partition)f(graph)3 2059 y(26.)23 b(print)p 173 2059
5227V 15 w(partition)p 344 2059 V 16 w(stats:)15 b(print)c(statistics)e
5228(about)i(the)h(partition)e(graph)3 2152 y(27.)23 b(pwd:)16
5229b(print)10 b(out)h(the)g(full)g(path)g(of)h(the)f(current)h(node)f
5230(from)g(the)g(root)g(node)3 2245 y(28.)23 b(quit:)15
5231b(e)o(xit)c(VIS)3 2338 y(29.)23 b(read)p 164 2338 V 17
5232w(blif:)15 b(read)d(a)g(blif)f(\256le)3 2431 y(30.)23
5233b(read)p 164 2431 V 17 w(blif)p 245 2431 V 16 w(mv:)15
5234b(read)d(a)g(blif-mv)e(\256le)3 2525 y(31.)23 b(read)p
5235164 2525 V 17 w(fairness:)16 b(read)c(a)f(set)g(of)h(fairness)f
5236(constraints)3 2618 y(32.)23 b(read)p 164 2618 V 17 w(v)o(erilog:)16
5237b(read)c(a)f(v)o(erilog)g(\256le)3 2711 y(33.)23 b(reset)p
5238172 2711 V 16 w(fairness:)16 b(reset)c(the)f(fairness)g(constraints)906
52392835 y(42)p eop
5240%%Page: 43 44
524143 43 bop 3 11 a Fq(34.)23 b(seq)p 147 11 14 2 v 16 w(v)o(erify:)17
5242b(v)o(eri\256es)12 b(the)f(sequential)g(equi)o(v)o(alence)g(of)g(nodes)
5243g(in)g(two)g(networks)3 105 y(35.)23 b(set:)16 b(set)11
5244b(an)g(en)n(vironment)g(v)o(ariable)3 199 y(36.)23 b(simulate:)15
5245b(simulate)10 b(the)h(\257attened)h(network)3 293 y(37.)23
5246b(source:)16 b(e)o(x)o(ecute)d(commands)d(from)h(a)h(\256le)3
5247387 y(38.)23 b(static)p 183 387 V 16 w(order:)16 b(order)c(the)f(MDD)g
5248(v)o(ariables)g(of)h(the)f(\257attened)h(network)3 480
5249y(39.)23 b(test)p 150 480 V 16 w(det)p 222 480 V 16 w(and)p
5250304 480 V 16 w(comp)p 422 480 V 16 w(spec:)16 b(test)11
5251b(if)h(the)f(outputs)f(are)i(completely)e(speci\256ed)i(and)f
5252(deterministic)3 574 y(40.)23 b(test)p 150 574 V 16 w(network)p
5253316 574 V 15 w(ac)o(yclic:)17 b(determine)11 b(whether)h(the)f(network)
5254f(is)h(ac)o(yclic)3 668 y(41.)23 b(time:)15 b(pro)o(vide)c(a)h(simple)e
5255(elapsed)i(time)e(v)o(alue)3 762 y(42.)23 b(unalias:)15
5256b(remo)o(v)o(es)d(the)f(de\256nition)g(of)g(an)h(alias)3
5257856 y(43.)23 b(unset:)15 b(unset)c(an)h(en)n(vironment)e(v)o(ariable)3
5258949 y(44.)23 b(usage:)16 b(pro)o(vide)11 b(a)h(dump)e(of)i(process)f
5259(statistics)3 1043 y(45.)23 b(which:)16 b(look)10 b(for)i(a)g(\256le)f
5260(called)h(name)3 1137 y(46.)23 b(write)p 180 1137 V 16
5261w(blif:)16 b(determinize,)11 b(encode)h(and)f(write)g(an)h(hnode)f(to)g
5262(a)h(blif)e(\256le)3 1231 y(47.)23 b(write)p 180 1231
5263V 16 w(blif)p 260 1231 V 16 w(mv:)15 b(write)d(a)f(blif-mv)g(\256le)3
52641325 y(48.)23 b(write)p 180 1325 V 16 w(order:)17 b(write)11
5265b(the)g(current)h(order)g(of)f(the)g(MDD)g(v)o(ariables)g(of)h(the)f
5266(\257attened)h(network)906 2835 y(43)p eop
5267%%Page: 44 45
526844 44 bop -31 343 a Fs(Bibliograph)n(y)15 566 y Fq([1])23
5269b(D.E.)c(Thomas,)g(P)-5 b(.R.)20 b(Moorby)m(.)34 b(The)18
5270b(V)-5 b(erilog)17 b(Hardware)i(Description)e(Language.)35
5271b(Kluwer)18 b(Academic)91 622 y(Publishers,)11 b(No)o(well,)g
5272(Massachusetts,)g(1991.)15 716 y([2])23 b(S.-T)m(.)12
5273b(Cheng.)17 b(Compiling)10 b(V)-5 b(erilog)11 b(into)f(automata.)17
5274b(T)m(ech.)12 b(Rep.)g(UCB/ERL)g(M94/37,)f(May)g(1994.)15
5275810 y([3])23 b(F)l(.)15 b(Balarin,)g(and)f(R.)h(Brayton,)g(and)f(S-T)m
5276(.)h(Cheng,)g(and)f(D.)g(Kirkpatrick,)h(and)f(A.)g(Sangio)o(v)o(anni-V)
5277m(incentelli.)91 866 y(A)i(Methodology)f(for)h(F)o(ormal)h(V)-5
5278b(eri\256cation)16 b(of)h(Real-T)n(ime)g(Systems.)29
5279b(T)m(ech.)17 b(Rep.)g(UCB/ERL)g(M95/11,)91 923 y(February)12
5280b(1995.)15 1017 y([4])23 b(E.M.)10 b(Sento)o(vich)g(et)h(al.)j(SIS:)d
5281(a)g(system)e(for)h(sequential)f(circuit)h(synthesis.)j(T)m(ech.)e
5282(Rep.)g(M92/41,)f(May)f(1992.)15 1111 y([5])23 b(C.)12
5283b(Mead,)g(L.)g(Conway)m(.)k(Introduction)10 b(to)h(VLSI)h(systems.)k
5284(Addison-W)l(esle)o(y)m(,)11 b(1980.)15 1204 y([6])23
5285b(R.)9 b(K.)g(Brayton)g(et)f(al.)k(HSIS:)d(A)f(BDD)h(based)g(system)e
5286(for)i(formal)f(v)o(eri\256cation.)k(Proc.)e(of)e(Design)g(Automation)
528791 1261 y(Conference,)13 b(1994.)15 1355 y([7])23 b(E.)7
5288b(Clarke,)i(and)e(O.)g(Grumber)o(g,)h(and)f(K.)g(McMillan,)g(and)g(X.)g
5289(Zhao.)j(Ef)o(\256cient)d(generation)g(of)g(countere)o(xamples)91
52901411 y(and)k(witnesses)g(in)g(symbolic)e(model)i(checking.)17
5291b(Proc.)12 b(of)g(Design)e(Automation)g(Conference,)j(1995.)906
52922835 y(44)p eop
5293%%Trailer
5294end
5295userdict /end-hook known{end-hook}if
5296%%EOF
Note: See TracBrowser for help on using the repository browser.