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 |
---|
15 | mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} |
---|
16 | ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale |
---|
17 | isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div |
---|
18 | hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul |
---|
19 | TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} |
---|
20 | forall 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 |
---|
24 | string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N |
---|
25 | end 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] |
---|
27 | N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup |
---|
28 | length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ |
---|
29 | 128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub |
---|
30 | get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data |
---|
31 | dup 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 |
---|
34 | 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff |
---|
35 | setcachedevice 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{]} |
---|
37 | if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup |
---|
38 | length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ |
---|
39 | cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin |
---|
40 | 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul |
---|
41 | add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage |
---|
42 | userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook |
---|
43 | known{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 |
---|
45 | 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 |
---|
46 | 0]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 |
---|
48 | getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} |
---|
49 | ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false |
---|
50 | RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 |
---|
51 | false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform |
---|
52 | round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg |
---|
53 | rlineto 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} |
---|
55 | B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ |
---|
56 | 4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ |
---|
57 | p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p |
---|
58 | a}B /bos{/SS save N}B /eos{SS restore}B end |
---|
59 | %%EndProcSet |
---|
60 | %%BeginProcSet: texps.pro |
---|
61 | TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2 |
---|
62 | index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll |
---|
63 | exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics |
---|
64 | exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub |
---|
65 | dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} |
---|
66 | ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict |
---|
67 | end 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 |
---|
70 | end |
---|
71 | %%EndProcSet |
---|
72 | %%BeginProcSet: special.pro |
---|
73 | TeXDict 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 |
---|
75 | false 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 |
---|
77 | div /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{ |
---|
79 | 10 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 |
---|
81 | true 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 |
---|
83 | length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} |
---|
84 | N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath |
---|
85 | clippath mark{transform{itransform moveto}}{transform{itransform lineto} |
---|
86 | }{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ |
---|
87 | itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ |
---|
88 | closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 |
---|
89 | 0 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 |
---|
91 | scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get |
---|
92 | ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip |
---|
93 | not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 |
---|
94 | TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR |
---|
95 | pop 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 |
---|
97 | TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg |
---|
98 | sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr |
---|
99 | 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add |
---|
100 | 2 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 |
---|
102 | div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} |
---|
103 | N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict |
---|
104 | maxlength 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 |
---|
107 | psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy |
---|
108 | scale 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{ |
---|
110 | psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 |
---|
111 | roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath |
---|
112 | moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict |
---|
113 | begin /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 |
---|
116 | closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx |
---|
117 | sub 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 |
---|
119 | CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury |
---|
120 | lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath |
---|
121 | }N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ |
---|
122 | end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} |
---|
123 | N /@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 |
---|
125 | SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X |
---|
126 | /startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad |
---|
127 | yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end |
---|
128 | %%EndProcSet |
---|
129 | TeXDict 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 |
---|
131 | 19 19 51[12 45[{}12 37.500000 /Times-Italic rf /Fb 4 |
---|
132 | 62 df<0040008001000300060004000C0018001800380030003000700060006000600060 |
---|
133 | 00E000E000E000E000E000E000E000E000E000E000E000E0006000600060006000700030 |
---|
134 | 0030003800180018000C000400060003000100008000400A2E7BA112>40 |
---|
135 | D<8000400020003000180008000C00060006000700030003000380018001800180018001 |
---|
136 | C001C001C001C001C001C001C001C001C001C001C001C001800180018001800380030003 |
---|
137 | 000700060006000C000800180030002000400080000A2E7EA112>I<0003000000030000 |
---|
138 | 000300000003000000030000000300000003000000030000000300000003000000030000 |
---|
139 | 00030000000300000003000000030000FFFFFFFCFFFFFFFC000300000003000000030000 |
---|
140 | 000300000003000000030000000300000003000000030000000300000003000000030000 |
---|
141 | 0003000000030000000300001E207E9A23>43 D<7FFFFFF8FFFFFFFC0000000000000000 |
---|
142 | 000000000000000000000000000000000000000000000000FFFFFFFC7FFFFFF81E0C7E90 |
---|
143 | 23>61 D E /Fc 9 113 df<000200000200000400000400000400000400000800000800 |
---|
144 | 00080000080000FE000391800E10C0181060382070702070602070E02070E04070E04060 |
---|
145 | E040E0E041C0608180308700189C0007F000010000010000010000010000020000020000 |
---|
146 | 02000014217F9917>30 D<00010000010000020000020000020000020000040000040000 |
---|
147 | 04000004003808304C08384E08388E08189C10189C10181C101038101038201038202070 |
---|
148 | 20203020403840801841000E460003F80000800000800000800000800001000001000001 |
---|
149 | 000015217E9919>32 D<000010000000300000007000000070000000F8000000B8000001 |
---|
150 | 3800000238000002380000043800000C38000008380000103C0000101C0000201C000040 |
---|
151 | 1C00007FFC0000801C0000801C0001001C0002001C0002000E0004000E000C000E001C00 |
---|
152 | 0E00FF00FFC01A1A7F991D>65 D<03FFFFC0007001C0007000C00070004000E0004000E0 |
---|
153 | 004000E0004000E0004001C0200001C0200001C0200001C0600003FFC0000380C0000380 |
---|
154 | 400003804000070080000700010007000100070002000E0002000E0006000E0004000E00 |
---|
155 | 0C001C003800FFFFF8001A1A7E991C>69 D<03FFFFC0007001C0007000C00070004000E0 |
---|
156 | 004000E0004000E0004000E0004001C0200001C0200001C0200001C0600003FFC0000380 |
---|
157 | C0000380400003804000070080000700000007000000070000000E0000000E0000000E00 |
---|
158 | 00000E0000001E000000FFE000001A1A7E9919>I<0007E040003C18C000E005C001C003 |
---|
159 | C003800180070001800E0001801C0001803C000100380001007800000078000000F00000 |
---|
160 | 00F0000000F0000000F001FF80F0001C00F0001C00F0001C00F0001C0070003800300038 |
---|
161 | 00380038001C0078000703900001FC10001A1A7E991E>I<7FE03FC00E000E000E000400 |
---|
162 | 0E0004001C0008001C0008001C0008001C00080038001000380010003800100038001000 |
---|
163 | 70002000700020007000200070002000E0004000E0004000E0004000E0008000E0008000 |
---|
164 | E001000060020000300400001818000007E000001A1A7E991A>85 |
---|
165 | D<01FF01FE003C00F0003C0040001C0080001C0100000E0200000E0400000F0800000710 |
---|
166 | 000007A0000003C0000003C0000001C0000003C0000007E0000004E0000008F000001070 |
---|
167 | 0000207800004038000080380001001C0002001C0004001E001E001E00FF007FC01F1A7F |
---|
168 | 9920>88 D<07078005984009E06009C07009C03009C07003807003807003807003806007 |
---|
169 | 00E00700C00701C00703800E86000E7C000E00000E00001C00001C00001C00001C0000FF |
---|
170 | 00001417828F13>112 D E /Fd 60[20 69[20 20 20 20 20 20 |
---|
171 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |
---|
172 | 20 20 20 20 20 20 20 1[20 1[20 1[20 1[20 20 20 20 20 |
---|
173 | 20 1[20 20 20 20 20 2[20 20 20 20 20 20 20 20 20 20 20 |
---|
174 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |
---|
175 | 20 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 |
---|
177 | rf /Ff 69[17 10[21 21 3[17 47[17 19 19 27 19 19 10 15 |
---|
178 | 12 19 19 19 19 29 10 19 1[10 19 19 12 17 19 17 19 17 |
---|
179 | 3[12 1[12 3[35 27 1[23 21 3[27 1[33 23 2[12 2[21 2[25 |
---|
180 | 25 27 13[19 19 3[9 12 9 2[12 12 40[{}50 37.500000 /Times-Roman |
---|
181 | rf /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 |
---|
183 | 80[23 23 52[20 20 30 20 23 13 18 18 23 23 23 23 33 13 |
---|
184 | 20 1[13 23 23 13 20 23 20 23 23 6[25 3[28 2[23 28 1[28 |
---|
185 | 1[30 4[15 33 1[28 28 1[30 4[31 1[31 13[11 15 11 44[{}42 |
---|
186 | 45.833332 /Times-Italic rf /Fj 7 95 df<03F0000FFC001FFE003FFF007FFF807F |
---|
187 | FF80FFFFC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC07FFF807FFF803FFF001FFE000FFC0003 |
---|
188 | F00012127E9317>15 D<003FFFC000FFFFC003C00000070000000C000000180000003000 |
---|
189 | 0000300000006000000060000000C0000000C0000000C0000000C0000000C0000000C000 |
---|
190 | 0000C000000060000000600000003000000030000000180000000C0000000700000003C0 |
---|
191 | 000000FFFFC0003FFFC00000000000000000000000000000000000000000000000000000 |
---|
192 | 00007FFFFFC07FFFFFC01A247C9C23>18 D<000000060000000006000000000600000000 |
---|
193 | 030000000003000000000380000000018000000000C00000000060000000007000000000 |
---|
194 | 18FFFFFFFFFFFFFFFFFFFF00000000180000000070000000006000000000C00000000180 |
---|
195 | 00000003800000000300000000030000000006000000000600000000060028187E962D> |
---|
196 | 33 D<FFFFFF80FFFFFF8000000180000001800000018000000180000001800000018000 |
---|
197 | 000180000001800000018000000180190C7E8F1E>58 D<00020000060003F600061C000C |
---|
198 | 0C00180E00300F00301B00701B80601980603180603180E031C0E031C0E061C0E061C0E0 |
---|
199 | 61C0E061C0E0C1C0E0C1C0E0C1C0E181C0E181C0E181C0E181C0E301C063018063018073 |
---|
200 | 03807603803603003603001C06000C0C000E18000FF00018000018000018000012277EA2 |
---|
201 | 17>I<00FF800003FFE0000F0078001C001C00300006006000030060000300C0000180C0 |
---|
202 | 000180C0000180C0000180C0000180C0000180C0000180C0000180C0000180C0000180C0 |
---|
203 | 000180C0000180C0000180C0000180C0000180C0000180C0000180C0000180C0000180C0 |
---|
204 | 00018040000080191C7E9A1E>92 D<00080000001C0000001C0000003600000036000000 |
---|
205 | 360000006300000063000000C1800000C180000180C0000180C000030060000300600003 |
---|
206 | 00600006003000060030000C0018000C00180018000C0018000C00300006003000060030 |
---|
207 | 0006006000030060000300C0000180C0000080191C7E9A1E>94 D |
---|
208 | E /Fk 81[28 52[25 1[36 25 28 17 19 22 1[28 25 28 41 14 |
---|
209 | 28 1[14 28 25 17 22 28 22 28 25 10[36 1[33 28 36 1[30 |
---|
210 | 39 36 47 33 2[19 2[30 1[36 36 33 36 6[17 4[25 25 25 25 |
---|
211 | 25 2[12 17 45[{}46 50.000000 /Times-Bold rf /Fl 81[32 |
---|
212 | 52[29 29 42 29 32 19 23 26 32 32 29 32 48 16 32 1[16 |
---|
213 | 32 29 19 26 32 26 32 29 9[58 42 1[39 32 42 1[36 45 42 |
---|
214 | 55 39 2[23 45 1[36 39 42 42 39 42 1[29 4[19 29 29 29 |
---|
215 | 29 29 29 29 29 29 2[15 19 45[{}56 58.333336 /Times-Bold |
---|
216 | rf /Fm 134[27 27 27 27 27 27 27 27 1[27 27 27 27 27 27 |
---|
217 | 1[27 27 27 27 27 27 27 27 27 1[27 1[27 1[27 1[27 4[27 |
---|
218 | 27 27 2[27 27 1[27 2[27 27 27 27 27 27 27 27 27 2[27 |
---|
219 | 27 27 27 27 8[27 27 27 27 27 27 1[27 27 27 3[27 2[27 |
---|
220 | 33[{}58 45.833332 /Courier rf /Fn 135[42 3[28 1[37 1[46 |
---|
221 | 1[46 4[23 46 2[37 46 2[42 29[60 1[60 11[42 42 42 42 42 |
---|
222 | 49[{}17 83.333336 /Times-Bold rf /Fo 169[26 8[32 22 76[{}3 |
---|
223 | 36.666618 /Times-Roman rf /Fp 41 122 df<00004000004000008000008000008000 |
---|
224 | 0080000100000100000100000100000200000200001FC000E27003841806040C0C040E1C |
---|
225 | 0406380807300807700807700807E0100EE0100EE0100CE0101C60203870203030206018 |
---|
226 | 21C00E470003F80000400000400000800000800000800000800001000001000001000018 |
---|
227 | 297E9F1B>30 D<0000100000001000000010000000200000002000000020000000200000 |
---|
228 | 004000000040000000400000004000000080000F008180118083C0218083E021C101E041 |
---|
229 | C100E043810060838100400702004007020040070200400E0200800E0400800E0401000E |
---|
230 | 0401000E0402000E080400060808000708300001C8C000007F0000001000000010000000 |
---|
231 | 1000000020000000200000002000000020000000400000004000001B297E9F1E>32 |
---|
232 | D<04000180080003C0100003E0100001E0200000E0200000E02000004040040040400C00 |
---|
233 | 40400C0040800C008080080080C0080180C0180300C0380600E07C0E00FFEFFC007FCFF8 |
---|
234 | 003F87F0001E03C0001B1480931C>I<70F8F8F87005057C840D>58 |
---|
235 | D<001000001000001000001000003800003800003800003800E0380E3FBBF80FFFE003FF |
---|
236 | 8000FE00007C0000FE0001EF0001C7000383800301800600C00400400800201716809517 |
---|
237 | >63 D<000002000000060000000E0000000E0000001E0000001F0000002F0000006F0000 |
---|
238 | 004F0000008F0000008F0000010F0000030F0000020F0000040F8000040F800008078000 |
---|
239 | 180780001007800020078000200780007FFF800080078000800780010007C0010003C002 |
---|
240 | 0003C0040003C0040003C00C0003C03C0007C0FF003FFC1E207E9F22>65 |
---|
241 | D<01FFFFE000001E003800001E000E00001E000700001E000700003C000380003C000380 |
---|
242 | 003C0001C0003C0001C000780001C000780001C000780001C000780001C000F00003C000 |
---|
243 | F00003C000F00003C000F00003C001E000078001E000078001E000070001E0000F0003C0 |
---|
244 | 000E0003C0001E0003C0001C0003C00038000780007000078000E000078001C000078007 |
---|
245 | 00000F001C0000FFFFF00000221F7E9E26>68 D<01FFFFFF80001E000F00001E00030000 |
---|
246 | 1E000300001E000100003C000100003C000100003C000100003C00010000780202000078 |
---|
247 | 0200000078020000007806000000F00C000000FFFC000000F00C000000F00C000001E008 |
---|
248 | 000001E008000001E008000001E000040003C000080003C000080003C000100003C00010 |
---|
249 | 00078000200007800060000780004000078001C0000F0007C000FFFFFF8000211F7E9E22 |
---|
250 | >I<01FFFFFF001E001E001E0006001E0006001E0002003C0002003C0002003C0002003C |
---|
251 | 00020078000400780200007802000078020000F0040000F00C0000FFFC0000F00C0001E0 |
---|
252 | 080001E0080001E0080001E0080003C0000003C0000003C0000003C00000078000000780 |
---|
253 | 000007800000078000000F800000FFFC0000201F7E9E1D>I<00007F00800003C0C18000 |
---|
254 | 0E00230000380017000070000F0000E0000F0001C0000600038000060007000006000F00 |
---|
255 | 0006000E000004001E000004003C000000003C0000000078000000007800000000780000 |
---|
256 | 00007800000000F000000000F0003FFE00F00000F000F00000F000700001E000700001E0 |
---|
257 | 00700001E000700001E000380003C000380003C0001C0007C0000E0005C0000700198000 |
---|
258 | 01C0608000007F80000021217F9F24>I<01FFF800001F0000001E0000001E0000001E00 |
---|
259 | 00003C0000003C0000003C0000003C00000078000000780000007800000078000000F000 |
---|
260 | 0000F0000000F0000000F0000001E0000001E0000001E0000001E0004003C0008003C000 |
---|
261 | 8003C0018003C0010007800300078003000780060007800E000F007C00FFFFFC001A1F7E |
---|
262 | 9E1F>76 D<01FF001FF8001F0003C0001F800100001780010000178001000023C0020000 |
---|
263 | 23C002000021E002000021E002000041F004000040F004000040F0040000407804000080 |
---|
264 | 78080000807C080000803C080000803C080001001E100001001E100001000F100001000F |
---|
265 | 100002000FA000020007A000020007A000020003E000040003C000040003C000040001C0 |
---|
266 | 000C0001C0001E00008000FFC0008000251F7E9E25>78 D<0000FF00000781C0001C00E0 |
---|
267 | 003800700070003801C0001C03C0001C0380001E0700000E0F00000E1E00000E1E00000E |
---|
268 | 3C00000E3C00000E7800001E7800001E7800001E7800001EF000003CF000003CF0000038 |
---|
269 | F0000078F0000070700000F0700001E0780001C078000380380007001C000E001C001C00 |
---|
270 | 0F0070000381C00000FF00001F217F9F23>I<01FFFF80001E00F0001E0038001E001C00 |
---|
271 | 1E001C003C001E003C001E003C001E003C001E0078003C0078003C00780078007800F000 |
---|
272 | F001C000F0070000FFF80000F00E0001E0070001E0078001E0038001E003C003C0078003 |
---|
273 | C0078003C0078003C0078007800F0007800F0207800F0207800F040F800704FFF8030800 |
---|
274 | 0001F01F207E9E23>82 D<0003F040000C08C0003005800060038000C0038001C0018001 |
---|
275 | 8001000380010003800100038001000380000003C0000003E0000003FC000001FFC00000 |
---|
276 | FFF000007FF800001FF8000001FC0000007C0000003C0000001C0000001C0020001C0020 |
---|
277 | 001C00200018006000380060003000600070007000E000E8018000C603000081FC00001A |
---|
278 | 217E9F1C>I<0FFFFFFC1E03C0381803C0181003C0082003C00820078008600780084007 |
---|
279 | 800840078008800F0010000F0000000F0000000F0000001E0000001E0000001E0000001E |
---|
280 | 0000003C0000003C0000003C0000003C00000078000000780000007800000078000000F0 |
---|
281 | 000000F0000000F0000000F0000001F000007FFFC0001E1F7F9E1B>I<7FFC07FE07C000 |
---|
282 | F00780004007800040078000400F0000800F0000800F0000800F0000801E0001001E0001 |
---|
283 | 001E0001001E0001003C0002003C0002003C0002003C0002007800040078000400780004 |
---|
284 | 0078000400F0000800F0000800F0000800F0001000700020007000200070004000380080 |
---|
285 | 00180300000E0C000003F000001F207D9E1F>I<00FFF01FF8000FC00780000F80060000 |
---|
286 | 078004000007C008000007C010000003C020000003E040000001E0C0000001F180000001 |
---|
287 | F300000000F200000000FC0000000078000000007C000000007C000000007C00000000BE |
---|
288 | 000000011E000000021F000000041F0000000C0F000000180F80000010078000002007C0 |
---|
289 | 00004007C000008003C000010003E000070001E0001F0003F000FFC01FFE00251F7F9E26 |
---|
290 | >88 D<00F1800389C00707800E03801C03803C0380380700780700780700780700F00E00 |
---|
291 | F00E00F00E00F00E10F01C20F01C20703C20705C40308C400F078014147E9318>97 |
---|
292 | D<07803F8007000700070007000E000E000E000E001C001C001CF01D0C3A0E3C0E380F38 |
---|
293 | 0F700F700F700F700FE01EE01EE01EE01CE03CE038607060E031C01F0010207E9F14>I< |
---|
294 | 007C0001C3000700800E07801E07801C07003C0200780000780000780000F00000F00000 |
---|
295 | F00000F00000F000007001007002003004001838000FC00011147E9314>I<0000780003 |
---|
296 | F80000700000700000700000700000E00000E00000E00000E00001C00001C000F1C00389 |
---|
297 | C00707800E03801C03803C0380380700780700780700780700F00E00F00E00F00E00F00E |
---|
298 | 10F01C20F01C20703C20705C40308C400F078015207E9F18>I<007C018207010E011C01 |
---|
299 | 3C013802780C7BF07C00F000F000F000F000700070017002300418380FC010147E9315> |
---|
300 | I<00007C0000CE00019E00039E00030C000700000700000700000700000E00000E00000E |
---|
301 | 0000FFF0000E00000E00001C00001C00001C00001C00001C000038000038000038000038 |
---|
302 | 0000380000700000700000700000700000700000E00000E00000E00000E00000C00001C0 |
---|
303 | 00318000798000F300006200003C000017297E9F16>I<001E3000713800E0F001C07003 |
---|
304 | 80700780700700E00F00E00F00E00F00E01E01C01E01C01E01C01E01C01E03801E03800E |
---|
305 | 07800E0B8006170001E700000700000700000E00000E00300E00781C00F038006070003F |
---|
306 | C000151D809316>I<01E0000FE00001C00001C00001C00001C000038000038000038000 |
---|
307 | 038000070000070000071F000761800E80C00F00C00E00E00E00E01C01C01C01C01C01C0 |
---|
308 | 1C01C0380380380380380380380704700708700E08700E10700610E006206003C016207E |
---|
309 | 9F1A>I<00E001E001E000C000000000000000000000000000000E001300238043804380 |
---|
310 | 43808700070007000E000E001C001C001C20384038403840388019000E000B1F7E9E10> |
---|
311 | I<01E0000FE00001C00001C00001C00001C0000380000380000380000380000700000700 |
---|
312 | 000701E00706100E08700E10F00E20F00E20601C40001D80001E00001FC0003870003838 |
---|
313 | 00383800381C20703840703840703840701880E01880600F0014207E9F18>107 |
---|
314 | D<01C01FC0038003800380038007000700070007000E000E000E000E001C001C001C001C |
---|
315 | 0038003800380038007000700070007100E200E200E200E200640038000A207E9F0E>I< |
---|
316 | 1E07C07C00231861860023A032030043C034030043803803804380380380870070070007 |
---|
317 | 00700700070070070007007007000E00E00E000E00E00E000E00E00E000E00E01C101C01 |
---|
318 | C01C201C01C038201C01C038401C01C0184038038018801801800F0024147E9328>I<1E |
---|
319 | 07802318C023A06043C0704380704380708700E00700E00700E00700E00E01C00E01C00E |
---|
320 | 01C00E03821C03841C07041C07081C03083803101801E017147E931B>I<007C0001C300 |
---|
321 | 0301800E01C01E01C01C01E03C01E07801E07801E07801E0F003C0F003C0F003C0F00780 |
---|
322 | F00700700F00700E0030180018700007C00013147E9316>I<03C1E004621804741C0878 |
---|
323 | 1C08701E08701E10E01E00E01E00E01E00E01E01C03C01C03C01C03C01C0380380780380 |
---|
324 | 700380E003C1C0072380071E000700000700000E00000E00000E00000E00001C00001C00 |
---|
325 | 00FFC000171D819317>I<00F0400388C00705800E03801C03803C038038070078070078 |
---|
326 | 0700780700F00E00F00E00F00E00F00E00F01C00F01C00703C00705C0030B8000F380000 |
---|
327 | 380000380000700000700000700000700000E00000E0000FFC00121D7E9314>I<1C1E00 |
---|
328 | 2621004743804787804707804703008E00000E00000E00000E00001C00001C00001C0000 |
---|
329 | 1C000038000038000038000038000070000030000011147E9315>I<00FC000303000600 |
---|
330 | 800C01800C03800C03000E00000F80000FF80007FC0001FE00001F00000700700700F006 |
---|
331 | 00F00600E004004008002030001FC00011147E9315>I<018001C0038003800380038007 |
---|
332 | 000700FFF807000E000E000E000E001C001C001C001C0038003800380038107020702070 |
---|
333 | 40708031001E000D1C7F9B10>I<0F00601180702180E021C0E041C0E04380E08381C007 |
---|
334 | 01C00701C00701C00E03800E03800E03800E03840E07080C07080C07080E0F1006131003 |
---|
335 | E1E016147E931A>I<1E01C02303C02303E04381E04300E04700608700400E00400E0040 |
---|
336 | 0E00401C00801C00801C00801C01001C01001C02001C04000C04000E180003E00013147E |
---|
337 | 9316>I<0F006070118070F02180E0F821C0E07841C0E0384380E0188381C0100701C010 |
---|
338 | 0701C0100701C0100E0380200E0380200E0380200E0380400E0380400E0380800E078080 |
---|
339 | 060781000709C20001F07C001D147E9321>I<1E00602300702300E04380E04300E04700 |
---|
340 | E08701C00E01C00E01C00E01C01C03801C03801C03801C03801C07001807001C07001C0F |
---|
341 | 000C3E0003CE00000E00000E00001C00F01800F03800E07000C0600041C0003F0000141D |
---|
342 | 7E9316>121 D E /Fq 55[15 13[20 8[23 1[25 25 3[20 47[20 |
---|
343 | 23 23 33 23 23 13 18 15 23 23 23 23 36 13 23 13 13 23 |
---|
344 | 23 15 20 23 20 23 20 3[15 1[15 28 33 33 43 33 33 28 25 |
---|
345 | 30 1[25 33 33 41 28 33 1[15 33 33 25 28 33 30 30 33 1[20 |
---|
346 | 1[26 26 13 13 23 23 23 23 23 23 23 23 23 23 13 11 15 |
---|
347 | 11 1[23 15 15 15 4[19 34[{}82 45.833332 /Times-Roman |
---|
348 | rf /Fr 81[25 52[23 2[23 25 15 18 20 1[25 23 25 38 13 |
---|
349 | 25 1[13 25 23 15 20 25 20 25 23 10[33 2[25 9[18 2[28 |
---|
350 | 1[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 |
---|
352 | 58 86 29 2[29 58 52 35 46 58 46 58 52 10[75 2[58 9[40 |
---|
353 | 2[63 1[75 75 69 66[{}27 104.166664 /Times-Bold rf /Ft |
---|
354 | 204[17 17 17 2[8 46[{}4 33.333332 /Times-Roman rf /Fu |
---|
355 | 138[29 2[19 1[29 29 6[29 2[26 14[42 1[36 32 9[19 1[42 |
---|
356 | 20[29 50[{}12 58.333336 /Times-Roman rf /Fv 133[22 25 |
---|
357 | 1[36 25 25 14 19 17 1[25 25 25 39 14 25 14 14 25 25 17 |
---|
358 | 22 25 22 25 22 7[36 2[36 36 30 28 33 36 28 1[36 1[30 |
---|
359 | 36 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 |
---|
361 | 10[60 60 1[46 5[74 3[28 33[28 39[{}13 83.333336 /Times-Roman |
---|
362 | rf end |
---|
363 | %%EndProlog |
---|
364 | %%BeginSetup |
---|
365 | %%Feature: *Resolution 300dpi |
---|
366 | TeXDict begin |
---|
367 | |
---|
368 | %%EndSetup |
---|
369 | %%Page: 0 1 |
---|
370 | 0 0 bop 609 371 a Fw(VIS)20 b(User')-5 b(s)21 b(Manual)357 |
---|
371 | 518 y Fv(T)n(iziano)13 b(V)m(illa)124 b(Gitanjali)12 |
---|
372 | b(Swamy)123 b(Thomas)13 b(Shiple)748 1091 y Fu(The)h(VIS)h(Group)800 |
---|
373 | 1224 y Fv(Adnan)d(Aziz)1039 1206 y Ft(1)766 1282 y Fv(Robert)g(Brayton) |
---|
374 | 1075 1264 y Ft(1)746 1340 y Fv(Stephen)g(Edwards)1093 |
---|
375 | 1322 y Ft(1)786 1398 y Fv(Gary)g(Hachtel)1053 1380 y |
---|
376 | Ft(2)797 1456 y Fv(Sunil)g(Khatri)1043 1438 y Ft(1)771 |
---|
377 | 1515 y Fv(Y)-6 b(uji)13 b(K)o(ukimoto)1069 1496 y Ft(1)763 |
---|
378 | 1573 y Fv(Abelardo)f(P)o(ardo)1077 1555 y Ft(2)793 1631 |
---|
379 | y Fv(Shaz)h(Qadeer)1047 1613 y Ft(1)774 1689 y Fv(Rajee)o(v)g(Ranjan) |
---|
380 | 1065 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 |
---|
382 | 1787 y Ft(3)770 1863 y Fv(Thomas)i(Shiple)1071 1845 y |
---|
383 | Ft(1)770 1921 y Fv(F)o(abio)f(Somenzi)1070 1903 y Ft(2)752 |
---|
384 | 1979 y Fv(Gitanjali)g(Swamy)1089 1961 y Ft(1)790 2038 |
---|
385 | y Fv(T)n(iziano)h(V)m(illa)1050 2019 y Ft(1)580 2228 |
---|
386 | y(1)598 2246 y Fv(Uni)o(v)o(ersity)f(of)g(California,)g(Berkele)o(y)597 |
---|
387 | 2286 y Ft(2)616 2304 y Fv(Uni)o(v)o(ersity)g(of)f(Colorado,)i(Boulder) |
---|
388 | 609 2342 y Ft(3)628 2360 y Fv(No)o(w)f(at)g(Lattice)h(Semiconductor)p |
---|
389 | eop |
---|
390 | %%Page: 1 2 |
---|
391 | 1 1 bop -31 343 a Fs(Contents)-31 612 y Fr(1)46 b(Intr)o(oduction)13 |
---|
392 | b(to)e(VIS)1444 b(3)38 668 y Fq(1.1)48 b(What)11 b(is)g(VIS)h(?)40 |
---|
393 | b 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(:) |
---|
395 | f(:)g(:)h(:)f(:)h(:)69 b Fq(3)38 724 y(1.2)48 b(History)18 |
---|
396 | b Fp(:)k(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:) |
---|
397 | h(:)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 |
---|
399 | b(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(:) |
---|
401 | h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69 b |
---|
402 | Fq(4)143 837 y(1.3.1)55 b(VIS-v)12 b(Philosophy)33 b |
---|
403 | Fp(:)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 |
---|
405 | b Fq(4)143 894 y(1.3.2)55 b(VIS-s)12 b(Philosophy)38 |
---|
406 | b 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 |
---|
408 | b Fq(4)-31 996 y Fr(2)46 b(Describing)12 b(Designs)f(f)o(or)g(VIS)1301 |
---|
409 | b(6)38 1052 y Fq(2.1)48 b(V)-5 b(erilog)11 b(HDL)22 b |
---|
410 | Fp(:)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(:) |
---|
412 | f(:)g(:)h(:)f(:)h(:)69 b Fq(6)38 1109 y(2.2)48 b Fo(VL)p |
---|
413 | Fq(2)p Fo(MV)p Fq(:)17 b(from)11 b(V)-5 b(erilog)11 b(to)g(BLIF-MV)47 |
---|
414 | b 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 |
---|
416 | 1165 y(2.3)48 b(Features)12 b(of)f(V)-5 b(erilog)11 b(Supported)g(by)g |
---|
417 | Fo(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 |
---|
419 | b Fq(7)143 1222 y(2.3.1)55 b(Assignments)19 b Fp(:)k(:)f(:)g(:)h(:)f(:) |
---|
420 | g(:)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 |
---|
422 | b 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(:) |
---|
424 | f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)69 b Fq(8)143 |
---|
425 | 1335 y(2.3.3)55 b(Symbolic)10 b(V)-5 b(ariables)43 b |
---|
426 | Fp(:)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 |
---|
428 | b Fq(8)38 1391 y(2.4)48 b(Implicit)10 b(vs.)16 b(Explicit)10 |
---|
429 | b(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(:) |
---|
431 | h(:)69 b Fq(9)38 1448 y(2.5)48 b(V)-5 b(erilog)11 b(for)g |
---|
432 | Fo(VL)p Fq(2)p Fo(MV)p Fq(:)18 b(Hints)10 b(and)h(T)n(raps)27 |
---|
433 | b 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 |
---|
435 | 1504 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(:) |
---|
437 | f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 |
---|
438 | b Fq(12)38 1561 y(2.7)i(BLIF)22 b Fp(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:) |
---|
439 | h(:)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(:) |
---|
441 | 46 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(:) |
---|
443 | f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(13)38 |
---|
444 | 1673 y(2.9)i(Example:)15 b(a)d(T)n(raf)o(\256c)h(Light)d(Controller)32 |
---|
445 | b 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 |
---|
447 | 1776 y Fr(3)g(Intr)o(oduction)13 b(to)e(F)o(ormal)g(V)-5 |
---|
448 | b(eri\256cation)1117 b(18)38 1832 y Fq(3.1)48 b(Model)10 |
---|
449 | b(Checking)i(of)f(T)m(emporal)g(Logic)27 b Fp(:)22 b(:)h(:)f(:)g(:)h(:) |
---|
450 | f(:)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 |
---|
452 | b(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(:) |
---|
454 | h(:)46 b Fq(18)143 1945 y(3.1.2)55 b(Speci\256cation)12 |
---|
455 | b(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 |
---|
457 | b Fq(20)143 2001 y(3.1.3)55 b(F)o(airness)12 b(Constraints)27 |
---|
458 | b 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 |
---|
460 | b Fq(21)38 2058 y(3.2)i(Properties)11 b(and)h(F)o(airness)g(Conditions) |
---|
461 | d(of)j(T)n(raf)o(\256c)h(Light)d(Controller)h(in)g(CTL)j |
---|
462 | Fp(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b |
---|
463 | Fq(22)38 2114 y(3.3)i(Language)11 b(Containment)g Fp(:)22 |
---|
464 | b(:)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 |
---|
466 | b Fq(22)-31 2216 y Fr(4)g(F)o(ormal)10 b(V)-5 b(eri\256cation)13 |
---|
467 | b(in)f(VIS)1287 b(24)38 2273 y Fq(4.1)48 b(Representing)11 |
---|
468 | b(the)g(System)g(for)h(V)-5 b(eri\256cation)14 b Fp(:)22 |
---|
469 | b(:)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 |
---|
471 | b(Building)10 b(the)h(Flattened)h(Network)31 b Fp(:)22 |
---|
472 | b(:)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 |
---|
474 | b(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(:) |
---|
476 | g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fq(25)143 2442 y(4.1.3)55 |
---|
477 | b(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(:) |
---|
479 | h(:)f(:)h(:)46 b Fq(26)143 2499 y(4.1.4)55 b(Adv)o(anced)11 |
---|
480 | b(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(:) |
---|
482 | f(:)h(:)46 b Fq(26)38 2555 y(4.2)i(FSM)11 b(T)n(ra)o(v)o(ersal)i(and)e |
---|
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 |
---|
485 | b Fq(28)38 2612 y(4.3)i(Specifying)11 b(F)o(airness)h(Constraints)34 |
---|
486 | b 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 |
---|
488 | b Fq(29)38 2668 y(4.4)i(Language)11 b(Emptiness)20 b |
---|
489 | Fp(:)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(:) |
---|
491 | h(:)46 b Fq(29)918 2835 y(1)p eop |
---|
492 | %%Page: 2 3 |
---|
493 | 2 2 bop 38 11 a Fq(4.5)48 b(Model)10 b(Checking)i(Operations)27 |
---|
494 | b 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 |
---|
496 | b Fq(31)143 68 y(4.5.1)55 b(Performing)11 b(Model)g(Checking)k |
---|
497 | Fp(:)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 |
---|
499 | 124 y(4.5.2)55 b(Deb)o(ugging)10 b(for)i(Model)f(Checking)27 |
---|
500 | b 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 |
---|
502 | 181 y(4.5.3)55 b(Checking)11 b(In)n(v)o(ariants)33 b |
---|
503 | Fp(:)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 |
---|
505 | b Fq(34)143 237 y(4.5.4)55 b(Adv)o(anced)11 b(Model)g(Checking:)16 |
---|
506 | b(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 |
---|
508 | b(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(:) |
---|
510 | h(:)46 b Fq(36)38 350 y(4.7)i(Simulation)24 b Fp(:)f(:)f(:)g(:)h(:)f(:) |
---|
511 | h(:)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(:) |
---|
513 | 46 b Fq(36)-31 452 y Fr(5)g(Synthesis)12 b(in)f(VIS)1486 |
---|
514 | b(38)38 509 y Fq(5.1)48 b(Writing)10 b(and)h(Reading)h(from)f(SIS)21 |
---|
515 | b Fp(:)h(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) |
---|
516 | f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)46 |
---|
517 | b Fq(38)38 565 y(5.2)i(Flo)o(w)11 b(of)g(Operations)g(for)h(Synthesis) |
---|
518 | 45 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 |
---|
520 | b 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 |
---|
523 | b Fq(39)-31 724 y Fr(A)36 b(Commands)11 b(in)h(VIS)1445 |
---|
524 | b(41)38 780 y Fq(A.1)38 b(List)10 b(of)i(Commands)e(in)h(VIS)38 |
---|
525 | b 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 |
---|
527 | b Fq(41)918 2835 y(2)p eop |
---|
528 | %%Page: 3 4 |
---|
529 | 3 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 |
---|
531 | b(eri\256cation)14 b(Interacting)f(with)f(Synthesis\).)22 |
---|
532 | b(W)l(e)14 b(describe)f(what)g(VIS)h(is,)f(what)-31 809 |
---|
533 | y(it)e(can)i(do,)f(ho)o(w)f(to)h(write)g(limited)e(V)-5 |
---|
534 | b(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 |
---|
536 | b(F)o(or)16 b(more)f(details,)h(see)g(the)f(VIS)h(home)e(page)43 |
---|
537 | b 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 |
---|
540 | b(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 |
---|
543 | 1229 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 |
---|
545 | 1323 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 |
---|
548 | b(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 |
---|
552 | 1807 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 |
---|
555 | 1967 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) |
---|
559 | c(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) |
---|
561 | g(Emerson)g(to)f(v)o(erify)i(whether)f(a)g(\256nite)-31 |
---|
562 | 2137 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 |
---|
568 | b(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 |
---|
573 | 2419 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 |
---|
576 | b(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,) |
---|
579 | g(which)g(was)f(de)o(v)o(eloped)h(at)f(the)-31 2588 y(Uni)o(v)o(ersity) |
---|
580 | d(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 |
---|
587 | eop |
---|
588 | %%Page: 4 5 |
---|
589 | 4 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 |
---|
594 | 124 y(more)d(ef)o(\256cient)h(algorithms)e(are)i(de)o(v)o(eloped.)40 |
---|
595 | 181 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) |
---|
598 | g(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 |
---|
600 | b(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 |
---|
603 | 541 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 | |
---|
646 | end |
---|
647 | save |
---|
648 | -70.0 244.0 translate |
---|
649 | 1 -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 |
---|
690 | 10 setmiterlimit |
---|
691 | 0.06000 0.06000 sc |
---|
692 | 7.500 slw |
---|
693 | % Polyline |
---|
694 | n 1800 2400 m 4575 2400 l 4575 4050 l 1800 4050 l clp gs col11 1.00 shd ef gr gs col-1 s gr |
---|
695 | % Ellipse |
---|
696 | n 1385 3393 195 142 0 360 DrawEllipse gs col14 1.00 shd ef gr gs col-1 s gr |
---|
697 | |
---|
698 | % Ellipse |
---|
699 | n 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 |
---|
702 | 2858 2071 m |
---|
703 | gs 1 -1 sc (verilog) col-1 show gr |
---|
704 | % Polyline |
---|
705 | n 3074 2141 m 3074 2371 l gs col-1 s gr |
---|
706 | n 3104.00 2251.00 m 3074.00 2371.00 l 3044.00 2251.00 l gs col-1 s gr |
---|
707 | % Polyline |
---|
708 | n 1585 3390 m 1795 3390 l gs col-1 s gr |
---|
709 | n 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 |
---|
711 | 2217 2843 m |
---|
712 | gs 1 -1 sc (-traversal of hierarchy) col-1 show gr |
---|
713 | % Polyline |
---|
714 | n 3160 3003 m 3160 4050 l gs col-1 s gr |
---|
715 | % Polyline |
---|
716 | n 1800 3005 m 4575 3005 l gs col-1 s gr |
---|
717 | /Times-Roman findfont 180.00 scalefont setfont |
---|
718 | 2207 2660 m |
---|
719 | gs 1 -1 sc (Front end) col-1 show gr |
---|
720 | /Times-Roman findfont 180.00 scalefont setfont |
---|
721 | 1875 3285 m |
---|
722 | gs 1 -1 sc (Verification) col-1 show gr |
---|
723 | /Times-Roman findfont 150.00 scalefont setfont |
---|
724 | 3333 3855 m |
---|
725 | gs 1 -1 sc (-restruct. hierarchy) col-1 show gr |
---|
726 | /Times-Roman findfont 180.00 scalefont setfont |
---|
727 | 1910 2370 m |
---|
728 | gs 1 -1 sc (VIS) col-1 show gr |
---|
729 | /Times-Roman findfont 150.00 scalefont setfont |
---|
730 | 1917 3447 m |
---|
731 | gs 1 -1 sc (-model checking) col-1 show gr |
---|
732 | /Times-Roman findfont 150.00 scalefont setfont |
---|
733 | 1912 3657 m |
---|
734 | gs 1 -1 sc (-equivalence check.) col-1 show gr |
---|
735 | /Times-Roman findfont 150.00 scalefont setfont |
---|
736 | 1930 3860 m |
---|
737 | gs 1 -1 sc (-cycle-based simul.) col-1 show gr |
---|
738 | /Times-Roman findfont 180.00 scalefont setfont |
---|
739 | 1235 3446 m |
---|
740 | gs 1 -1 sc (CTL) col-1 show gr |
---|
741 | /Times-Roman findfont 180.00 scalefont setfont |
---|
742 | 3333 3295 m |
---|
743 | gs 1 -1 sc (Synthesis) col-1 show gr |
---|
744 | /Times-Roman findfont 150.00 scalefont setfont |
---|
745 | 3328 3695 m |
---|
746 | gs 1 -1 sc (-state encoding) col-1 show gr |
---|
747 | /Times-Roman findfont 150.00 scalefont setfont |
---|
748 | 3333 3495 m |
---|
749 | gs 1 -1 sc (-state minimization) col-1 show gr |
---|
750 | $F2psEnd |
---|
751 | restore |
---|
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 |
---|
756 | 1673 y(hierarchical)j(system)e(described)h(in)g(BLIF-MV)-6 |
---|
757 | b(,)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 |
---|
759 | b(erilog;)7 b(a)g(v)o(eri\256cation)g(core,)j(VIS-v)m(,)f(to)e(perform) |
---|
760 | g(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 |
---|
763 | b(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 |
---|
765 | b(W)l(e)15 b(felt)e(that)h(in)f(the)h(future,)h(it)e(would)g(be)h(easy) |
---|
766 | g(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 |
---|
768 | b(In)12 b(line)f(with)g(this)g Fr(keep)i(it)-31 2108 |
---|
769 | y(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 |
---|
771 | b Fq(Only)16 b(CTL)h(formulas)f(can)i(be)f(checked.)33 |
---|
772 | b(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 |
---|
775 | b Fq(F)o(airness)14 b(constraints)f(must)f(be)i(of)g(B)t(\310)-19 |
---|
776 | b(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 |
---|
780 | 2445 y(constraints.)-31 2567 y Fk(1.3.2)51 b(VIS-s)12 |
---|
781 | b(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 |
---|
784 | b(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 |
---|
786 | b(description)f(into)918 2835 y(4)p eop |
---|
787 | %%Page: 5 6 |
---|
788 | 5 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 |
---|
793 | 6 6 bop -31 323 a Fn(Chapter)20 b(2)-31 530 y Fs(Describing)26 |
---|
794 | b(Designs)g(f)m(or)g(VIS)-31 753 y Fq(Gi)o(v)o(en)18 |
---|
795 | b(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 |
---|
797 | 809 y(describe)13 b(hardware)f(ha)o(v)o(e)h(been)g(de\256ned.)20 |
---|
798 | b(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 |
---|
803 | b(HDL)-31 1172 y Fq(The)h(two)e(most)h(widely)g(used)g(languages)g(for) |
---|
804 | h(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 |
---|
808 | b(translation)f(from)h(man)o(y)g(languages.)40 1342 y(V)-5 |
---|
809 | b(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 |
---|
814 | b(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 |
---|
816 | b(erilog)13 b(consists)f(of)i(one)g(or)f(more)h Fi(modules)p |
---|
817 | Fq(.)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 |
---|
821 | b(Ev)o(ents)14 b(on)g(the)h(input)f(ports)g(cause)h(changes)g(on)f(the) |
---|
822 | h(outputs.)26 b(Ev)o(ents)14 b(can)h(be)g(either)g(changes)g(in)-31 |
---|
823 | 1681 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 |
---|
825 | Fi(r)n(e)n(g)i Fq(v)o(ariables)e(\(i.e.,)j(re)o(gister)-31 |
---|
826 | 1737 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 |
---|
831 | b 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) |
---|
834 | g(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 |
---|
838 | 2019 y(primiti)o(v)o(es)d(or)h(are)i(speci\256ed)e(beha)o(viorally)m(.) |
---|
839 | 20 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 |
---|
841 | y(for)h(V)-5 b(erilog)11 b(can)g(be)h(found)f(in)g([1].)-31 |
---|
842 | 2222 y Fl(2.2)58 b Fh(VL)p Fu(2)p Fh(MV)p Fl(:)21 b(fr)o(om)15 |
---|
843 | b(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 |
---|
845 | b(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 |
---|
849 | b(,)13 b(called)e Fo(VL)p Fq(2)p Fo(MV)p Fq(.)40 2495 |
---|
850 | y(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 |
---|
852 | Fo(VL)p Fq(2)p Fo(MV)h Fq(and)e(of)-31 2552 y(the)g(e)o(xtensions)f(of) |
---|
853 | h(V)-5 b(erilog)12 b(that)f(are)i(also)f(supported)f(by)h |
---|
854 | Fo(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 |
---|
856 | b(erilog)11 b(for)h Fo(VL)p Fq(2)p Fo(MV)p Fq(.)19 b(Conceptually)m(,) |
---|
857 | 11 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 |
---|
861 | 7 7 bop 40 11 a Fq(The)15 b(relationship)f(between)i(a)f(beha)o(vioral) |
---|
862 | g(description)g(language)g(like)f(V)-5 b(erilog)15 b(and)h(a)f(machine) |
---|
863 | g(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 |
---|
869 | b(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 |
---|
871 | b(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 |
---|
873 | b(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 |
---|
875 | y(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) |
---|
877 | g(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 |
---|
882 | b(Then)17 b(again)g(tables)f(update)h(their)-31 519 y(outputs)10 |
---|
883 | b(accordingly)m(.)40 576 y Fo(VL)p Fq(2)p Fo(MV)18 b |
---|
884 | Fq(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 |
---|
888 | b(of)g(hardware)h(gates)e(to)h(operators)-31 689 y(in)g(V)-5 |
---|
889 | b(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 |
---|
896 | y(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 |
---|
898 | Ft(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 |
---|
902 | b(All)9 b(modules)f(run)h(in)g(parallel)g(and)g(communicate)-31 |
---|
903 | 1028 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) |
---|
905 | h(which)g(these)-31 1084 y(channels)j(belong\).)34 b(It)17 |
---|
906 | b(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 |
---|
910 | 1197 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 |
---|
915 | 1310 y(port)g(has)g(one)h(storage)f(element)g(associated)g(with)g(it.) |
---|
916 | 40 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 |
---|
921 | b(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 |
---|
923 | 1536 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 |
---|
931 | y(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 |
---|
935 | Fq(can)e(be)h(in)n(v)o(oked)e(as)i(a)f(stand-alone)g(tool)g(on)g(a)g(V) |
---|
936 | -5 b(erilog)11 b(\256le)h(to)f(produce)h(a)f(BLIF-MV)h(\256le.)18 |
---|
937 | b(This)10 b(can)i(be)-31 1931 y(read)g(in)e(VIS)i(with)e(the)g(command) |
---|
938 | g Fi(r)n(ead)p 624 1931 14 2 v 17 w(blif)p 703 1931 V |
---|
939 | 15 w(mv)p Fq(.)17 b(As)11 b(an)g(alternati)o(v)o(e,)g(the)g(command)f |
---|
940 | Fi(r)n(ead)p 1468 1931 V 16 w(verilog)g Fq(can)i(be)f(directly)-31 |
---|
941 | 1987 y(used)g(to)g(read)h(in)f(a)h(V)-5 b(erilog)11 b(\256le.)17 |
---|
942 | b(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 |
---|
944 | b(erilog)15 b(Supported)h(by)f Fh(VL)p Fu(2)p Fh(MV)-31 |
---|
945 | 2238 y Fo(VL)p Fq(2)p Fo(MV)i Fq(supports)d(a)i(synthesizable)f(subset) |
---|
946 | f(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.) |
---|
948 | 18 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 |
---|
950 | Fo(MV)p Fq(.)p -31 2335 768 2 v 22 2362 a Fg(1)36 2378 |
---|
951 | y Ff(Circuits)f(with)g(combinational)e(c)o(ycles)g(are)h(le)o(gal)g(in) |
---|
952 | h(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 |
---|
954 | Ff(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 |
---|
957 | y(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) |
---|
959 | h(quantitati)o(v)o(e)g(timing)g(is)f(not)h(handled)-31 |
---|
960 | 2516 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 |
---|
962 | Fq(7)p eop |
---|
963 | %%Page: 8 9 |
---|
964 | 8 8 bop -31 11 a Fk(2.3.1)51 b(Assignments)-31 99 y Fi(Continuous)10 |
---|
965 | b(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 |
---|
968 | Fq(v)o(ariables)e(can)h(be)g(used)g(at)f(the)h(left)f(hand)h(side)f(of) |
---|
969 | h(continuous)e(assignments.)16 b(Continuous)-31 212 y(assignments)10 |
---|
970 | b(describe)h(the)h(combinational)d(beha)o(vior)j(of)f(a)h(circuit.)40 |
---|
971 | 268 y Fi(Pr)n(ocedur)o(al)18 b(assignments)g Fq(\()p |
---|
972 | Fm(=)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 |
---|
974 | b(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 |
---|
977 | Fq(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 |
---|
981 | Fo(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 |
---|
983 | b(All)13 b(procedural)i(blocks)e(with)h(acti)o(v)o(e)g(e)o(v)o(ent)-31 |
---|
984 | 550 y(controls)c(get)g(e)o(x)o(ecuted)h(concurrently)m(.)17 |
---|
985 | b(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 |
---|
987 | b(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 |
---|
995 | Fm(always)i Fq(statement\))d(can)-31 833 y(observ)o(e)h(the)f(v)o(alue) |
---|
996 | g(change.)20 b(On)12 b(the)g(other)g(hand,)h(other)f(processes)g(\(for) |
---|
997 | h(instance,)f(other)g Fm(always)j Fq(statements)c(or)-31 |
---|
998 | 889 y(continuous)e(assignments\))f(cannot)i(see)h(the)f(change)g(until) |
---|
999 | f(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 |
---|
1002 | b(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.) |
---|
1005 | 31 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 |
---|
1009 | b(without)c(changing)i(the)g(v)o(ariable)g(on)f(the)h(left)-31 |
---|
1010 | 1171 y(hand-side,)c(program)e(e)o(x)o(ecution)i(continues.)k(Then)10 |
---|
1011 | b(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 |
---|
1013 | b(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 |
---|
1015 | 1284 y(might)e(introduce)h(unwanted)g(nondeterminism.)-31 |
---|
1016 | 1409 y Fk(2.3.2)51 b(Nondeterminism)-31 1496 y Fq(Non-blocking)11 |
---|
1017 | b(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 |
---|
1019 | b(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 |
---|
1024 | 1666 y(those)d(assigned)g(v)o(alues.)16 b Fi(Even)c(though)e |
---|
1025 | Fo(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) |
---|
1027 | e(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 |
---|
1030 | b(erilog)12 b(to)h(specify)g(nondeterminism)d(on)-31 |
---|
1031 | 1835 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 |
---|
1036 | 1948 y(and)g(write)f(the)g(follo)o(wing)f(V)-5 b(erilog)11 |
---|
1037 | b(fragment.)-31 2037 y Fd(assign)20 b(r=$ND{GO,NOGO};)-31 |
---|
1038 | 2077 y(.)-31 2116 y(.)-31 2156 y(always@\(posedge)f(clk\))h(begin)-31 |
---|
1039 | 2195 y(.)-31 2234 y(.)-31 2274 y(state)g(=)g(r;)-31 2313 |
---|
1040 | y(.)-31 2353 y(.)-31 2392 y(end)-31 2517 y Fk(2.3.3)51 |
---|
1041 | b(Symbolic)12 b(V)-5 b(ariables)-31 2604 y Fq(Sometimes)14 |
---|
1042 | b(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 |
---|
1044 | 2661 y(ha)o(ving)f(to)f(e)o(xplicitly)g(encode)i(them.)28 |
---|
1045 | b Fo(VL)p Fq(2)p Fo(MV)16 b Fq(e)o(xtends)f(V)-5 b(erilog)15 |
---|
1046 | b(to)g(allo)o(w)f(users)h(to)g(declare)h(symbolic)d(v)o(ariables)918 |
---|
1047 | 2835 y(8)p eop |
---|
1048 | %%Page: 9 10 |
---|
1049 | 9 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 |
---|
1053 | Fq(:)-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 |
---|
1055 | b(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 |
---|
1057 | b(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 |
---|
1059 | b(Explicit)10 b(may)h(be)h(required)f(in)g(some)g(cases.)40 |
---|
1060 | 510 y(A)e(V)-5 b(erilog)8 b(simulator)f(is)i(an)g(e)o(v)o(ent-dri)o(v)o |
---|
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 |
---|
1063 | y(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.) |
---|
1065 | 28 b(Statements)15 b(with)-31 623 y(sensitized)e(e)o(v)o(ents)g(\(acti) |
---|
1066 | o(v)o(e)h(statements\))f(are)h(e)o(x)o(ecuted)g(and)g(in)f(turn)g(more) |
---|
1067 | g(e)o(v)o(ents)h(are)g(generated,)h(which)e(are)i(then)-31 |
---|
1068 | 679 y(scheduled)e(by)f(the)h(simulator)m(.)21 b(The)13 |
---|
1069 | b(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 |
---|
1073 | 792 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 |
---|
1075 | b(The)11 b(produced)g(e)o(v)o(ents)h(pro)o(v)o(oke)-31 |
---|
1076 | 849 y(a)j(chain)g(of)g(reactions)f(among)g(modules.)26 |
---|
1077 | b(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 |
---|
1081 | 961 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 |
---|
1083 | b(W)l(e)13 b(call)f(the)g(system)-31 1018 y Fi(implicitly)i(cloc)o(ked) |
---|
1084 | i 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) |
---|
1087 | f(for)h(a)g(synchronizing)f(v)o(ariable.)16 b(Also,)11 |
---|
1088 | b(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 |
---|
1090 | Fm(reg)g Fq(v)o(ariable,)g(and)e(synchronization)-31 |
---|
1091 | 1187 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 |
---|
1095 | 1300 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 |
---|
1098 | b(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 |
---|
1100 | 1413 y(allocated.)24 b(A)14 b(design)f(is)g(called)h |
---|
1101 | Fi(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 |
---|
1103 | b(F)o(or)14 b(e)o(xplicitly)e(clocked)g(systems,)g(each)i |
---|
1104 | Fm(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 |
---|
1110 | y(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 |
---|
1112 | b(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 |
---|
1114 | b(env;)-31 1815 y(reg)g(clk;)-31 1894 y(initial)g(clk=0;)-31 |
---|
1115 | 1973 y(always)g(#1)f(clk)h(=)g(!clk;)-31 2051 y(endmodule)40 |
---|
1116 | 2149 y Fq(This)15 b(code)h(generates)h(a)f(clocking)f(signal)g |
---|
1117 | Fm(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 |
---|
1120 | Fo(MV)h Fq(must)d(be)h(in)n(v)o(oked)g(with)f(the)h(options)f |
---|
1121 | Fi(-c)i(-F)p Fq(,)g(meaning)-31 2261 y(e)o(xplicit)11 |
---|
1122 | b(clocking)g(\()p Fi(-c)p Fq(\),)h(and)g(ignore)f(all)g(timing)e(\()p |
---|
1123 | Fi(-F)p Fq(\).)-31 2407 y Fl(2.5)58 b(V)-6 b(erilog)15 |
---|
1124 | b(f)o(or)f Fh(VL)p Fu(2)p Fh(MV)p Fl(:)21 b(Hints)15 |
---|
1125 | b(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 |
---|
1128 | 2598 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 |
---|
1132 | Fq(by)e(de\256nition\))f(inside)g(an)i Fm(always)i Fq(block)c(and)h(do) |
---|
1133 | 83 2711 y(not)g(use)g(non-blocking)f(assignments)f(\()p |
---|
1134 | Fm(<=)p Fq(\))k(e)o(v)o(er)m(.)918 2835 y(9)p eop |
---|
1135 | %%Page: 10 11 |
---|
1136 | 10 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 |
---|
1139 | b(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 |
---|
1141 | Fq(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 |
---|
1143 | 218 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 |
---|
1145 | 473 y(out)f(=)h(state;)83 513 y(state)f(=)h(1;)83 638 |
---|
1146 | y 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 |
---|
1150 | 788 y(4.)23 b(It)11 b(is)g(not)g(le)o(gal)g(to)g(ha)o(v)o(e)h(a)g |
---|
1151 | (block)f(of)g(assignments,)f(as)i(in:)83 896 y Fd(assign)19 |
---|
1152 | b(begin)182 935 y(x)h(=)g(1;)182 975 y(y)g(=)g(2;)83 |
---|
1153 | 1014 y(end)83 1139 y Fq(Ho)o(we)o(v)o(er)n(,)12 b(it)f(is)g(le)o(gal)g |
---|
1154 | (to)g(ha)o(v)o(e)h(a)g(block)f(of)g(assignments)f(for)h(an)h |
---|
1155 | Fm(initial)i Fq(statement:)83 1247 y Fd(initial)19 b(begin)182 |
---|
1156 | 1287 y(x)h(=)g(1;)182 1326 y(y)g(=)g(2;)83 1365 y(end)26 |
---|
1157 | 1490 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 |
---|
1160 | b(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 |
---|
1162 | b(Unlike)11 b(in)h(HSIS,)h(multiple)e(assign-)83 1697 |
---|
1163 | y(ments)f(such)h(as:)83 1805 y Fd(always@\(posedge)19 |
---|
1164 | b(clk\))g(begin)83 1844 y(state)g(<=)h(GO;)83 1884 y(state)f(<=)h(NOGO) |
---|
1165 | g(;)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 |
---|
1167 | Fq(2)p Fo(MV)15 b Fq(will)d(reject)i(a)g(V)-5 b(erilog)13 |
---|
1168 | b(description)f(containing)h(an)g(unspeci\256ed)h(initial)e(state.)23 |
---|
1169 | b(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 |
---|
1171 | Fm($ND)g Fq(construct,)g(for)f(e)o(xample:)83 2255 y |
---|
1172 | Fd(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 |
---|
1175 | b Fm(for)12 b Fq(statements)f(are)h(supported)e(by)h |
---|
1176 | Fo(VL)p Fq(2)p Fo(MV)p Fq(.)19 b(Here)12 b(is)f(an)g(e)o(xample:)83 |
---|
1177 | 2513 y Fd(always@\(posedge)19 b(clk\))g(begin)83 2553 |
---|
1178 | y(//)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 |
---|
1182 | eop |
---|
1183 | %%Page: 11 12 |
---|
1184 | 11 11 bop 83 11 a Fq(Note)11 b(that)g(\(unfortunately\))f(a)i |
---|
1185 | Fm(for)g Fq(loop)f(can)h(only)e(be)h(used)g(inside)g(an)g |
---|
1186 | Fm(always)j Fq(block.)i Fo(VL)p Fq(2)p Fo(MV)d Fq(by)e(default)83 |
---|
1187 | 68 y(macro-e)o(xpands)g(\(unrolls\))f(the)h(V)-5 b(erilog)11 |
---|
1188 | b(code)g(before)g(processing)g(it.)16 b(Use)11 b(option)e |
---|
1189 | Fi(-u)j Fq(to)e(suppress)g(unrolling.)26 162 y(9.)23 |
---|
1190 | b(A)15 b Fm(wire)h Fq(can)f(be)g(a)g(v)o(ector)h(b)o(ut)e(not)g(an)h |
---|
1191 | (array)m(.)28 b(Ho)o(we)o(v)o(er)n(,)17 b(a)e Fm(reg)h |
---|
1192 | Fq(can)f(be)g(an)g(array:)24 b Fm(wire[1:10)q(])30 b(a;)83 |
---|
1193 | 218 y Fq(is)14 b(correct)i(b)o(ut)e Fm(wire)29 b(a[1:10];)18 |
---|
1194 | b 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 |
---|
1196 | Fq(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 |
---|
1200 | Fd(onoff)20 b(wire)f(a[1:10])11 b Fq(and)h Fd(onoff)19 |
---|
1201 | b(wire[1:10])g(a)12 b Fq(are)g(not)f(correct.)83 722 |
---|
1202 | y(Also)g Fd(reg)20 b([1:`width])f(locations[1:`elev])10 |
---|
1203 | b 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 |
---|
1206 | 872 y(10.)23 b Fo(VL)p Fq(2)p Fo(MV)d Fq(puts)e(an)h(e)o(xtra)h(b)o(uf) |
---|
1207 | o(fer)g(for)f Fm($ND)h Fq(constructs)e(when)h(the)g Fi(-Z)g |
---|
1208 | Fq(option)f(is)h(used)f(,)k(while)c(by)h(default)83 928 |
---|
1209 | y(it)f(does)g(not.)37 b(In)18 b(other)g(words,)i(by)e(default)f |
---|
1210 | Fo(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) |
---|
1212 | g Fm($ND)p Fq(.)i(Notice)d(that)h(the)g(only)f(le)o(gal)h(usage)g(of)g |
---|
1213 | Fm($ND)i Fq(when)e Fi(-Z)g Fq(is)g(not)f(used)83 1041 |
---|
1214 | y(is:)34 b Fd(assign)19 b(<var>)h(=)f($ND\(...\))p Fq(;)24 |
---|
1215 | b(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 |
---|
1218 | b(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 |
---|
1224 | y 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 |
---|
1226 | 1323 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) |
---|
1228 | o(v)o(en)g(by)g(the)83 1380 y(user)m(.)3 1474 y(11.)23 |
---|
1229 | b(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) |
---|
1231 | 83 1582 y Fd(.table)19 b(->)h(x)83 1621 y(-)83 1746 y |
---|
1232 | Fq(is)11 b(allo)o(wed)g(and)g(leads)g(to)g(a)h(pseudo-input.)j(Ho)o(we) |
---|
1233 | o(v)o(er)d(a)g(table)f(like)83 1854 y Fd(.table)19 b(->)h(x<0>)g(x<1>) |
---|
1234 | 83 1893 y(0)g(0)83 1933 y(0)g(1)83 1972 y(1)g(0)83 2097 |
---|
1235 | y 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 |
---|
1239 | b(->)h(x<0>)83 2301 y(-)83 2341 y(.table)f(->)h(x<1>)83 |
---|
1240 | 2380 y(-)83 2505 y Fq(would)10 b(lead)h(to)g(the)h(possibility)c(of)23 |
---|
1241 | b 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) |
---|
1243 | h(an)o(y)g(of)f(the)h(inte)o(gers)f(0,1,2.)18 b(But)83 |
---|
1244 | 2636 y(we)12 b(ha)o(v)o(e)g(to)g(assign)e(2)i(bits)f(to)g(hold)g(the)h |
---|
1245 | (v)o(ariable,)g(and)g(we)g(want)f(to)g(be)h(able)g(to)f(increment)h(or) |
---|
1246 | f(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 |
---|
1250 | 12 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 |
---|
1254 | 340 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 |
---|
1256 | 630 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 |
---|
1262 | b(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 |
---|
1265 | 856 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 |
---|
1270 | y(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 |
---|
1272 | 1025 y(BLIF-MV)f(also)g(allo)o(ws)f(nondeterministic)f(gates)870 |
---|
1273 | 1009 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 |
---|
1277 | 1138 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 |
---|
1280 | b(semantics)f(of)i(BLIF-MV)g(is)e(de\256ned)i(o)o(v)o(er)g(\257attened) |
---|
1281 | g(networks,)g(using)e(a)i(combinational/sequential)-31 |
---|
1282 | 1307 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 |
---|
1284 | Fq(\(intuiti)o(v)o(ely)f(nondeterministic)g(gates\),)-31 |
---|
1285 | 1364 y Fi(wir)n(es)16 b Fq(and)g Fi(latc)o(hes)p Fq(.)30 |
---|
1286 | b(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 |
---|
1289 | Fi(table)p Fq(.)29 b(The)16 b(v)o(ariables)f(of)h(a)f(table)h(are)g(di) |
---|
1290 | o(vided)f(into)f(inputs)h(and)g(outputs.)28 b(A)-31 1477 |
---|
1291 | y(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 |
---|
1293 | b(are)h(inter)o(-connected)f(using)-31 1533 y Fi(wir)n(es)p |
---|
1294 | Fq(.)21 b(If)14 b(a)f(table)f(is)g(deterministic)g(and)g(Boolean,)i(it) |
---|
1295 | e(may)h(also)f(be)h(thought)e(of)i(as)g(a)g(logic)f(gate.)21 |
---|
1296 | b(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 |
---|
1298 | b(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 |
---|
1302 | 1703 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 |
---|
1305 | b(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) |
---|
1307 | h(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 |
---|
1310 | 1872 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 |
---|
1314 | 1985 y(all)f(the)h(latches)f(update)g(their)g(v)o(alues.)23 |
---|
1315 | b(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 |
---|
1317 | b(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 |
---|
1321 | b(Note)12 b(that)g(because)h(of)g(nondeterminism,)-31 |
---|
1322 | 2154 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 |
---|
1324 | b(semantics)g(can)h(be)g(seen)g(as)f(a)h(simple)-31 2211 |
---|
1325 | y(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) |
---|
1328 | f(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 |
---|
1332 | 2380 y(In)15 b(VIS)h(the)g(command)e Fi(r)n(ead)p 534 |
---|
1333 | 2380 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 |
---|
1335 | Fq(,)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 |
---|
1337 | b(The)16 b Fi(write)p 1385 2436 V 16 w(blif)p 1463 2436 |
---|
1338 | V 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 |
---|
1341 | y(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 |
---|
1343 | b(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 |
---|
1346 | 2690 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 |
---|
1349 | 13 13 bop -31 11 a Fl(2.7)58 b(BLIF)-31 115 y Fq(BLIF)16 |
---|
1350 | b(\(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 |
---|
1352 | b(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) |
---|
1354 | g(de)o(v)o(eloped)h(at)g(UC)-31 228 y(Berkele)o(y)m(.)17 |
---|
1355 | b(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) |
---|
1358 | h(\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.) |
---|
1364 | 16 b(Notice)10 b(that)g(e)o(v)o(en)-31 454 y(though)g(SIS)h(can)g(also) |
---|
1365 | g(handle)f(KISS)i(\256les)e(\(i.e.,)j(partially)c(encoded)i(and)g |
---|
1366 | (partially)f(deterministic)f(FSMs\),)i(currently)-31 |
---|
1367 | 510 y(VIS)17 b(outputs)f(hardware)h(FSM)g(descriptions)e(\(i.e.,)20 |
---|
1368 | b(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 |
---|
1370 | b(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 |
---|
1372 | b(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 |
---|
1374 | Fq(,)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 |
---|
1379 | b(and)f(Incomplete)g(Speci\256cation)-31 986 y Fq(The)9 |
---|
1380 | b(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 |
---|
1382 | b(system)f(so)h(described)-31 1043 y(is)k(considered)g(internally)f(as) |
---|
1383 | i(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 |
---|
1387 | Fm($ND)-31 1156 y Fq(construct.)31 b(A)16 b(V)-5 b(erilog)16 |
---|
1388 | b(nondeterministic)e(assignment,)i(like)g Fm(assign)29 |
---|
1389 | b(rand_cho)q(ice)i(=)d($ND\(0,1\);)20 b Fq(is)-31 1212 |
---|
1390 | y(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 |
---|
1393 | y(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 |
---|
1395 | b(that)f(are)i(supported)e(by)h Fo(VL)p Fq(2)p Fo(MV)h |
---|
1396 | Fq(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 |
---|
1400 | Fo(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 |
---|
1402 | b(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) |
---|
1406 | o(e)f(test,)i(in)e(the)g(sense)g(that)g(one)g(or)g(more)h(tables)-31 |
---|
1407 | 1865 y(may)12 b(be)h(nondeterministic)e(while)h(the)g(entire)g(network) |
---|
1408 | g(is)g(deterministic.)19 b(Similarly)m(,)12 b(one)h(or)f(more)h(tables) |
---|
1409 | f(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 |
---|
1411 | Fl(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 |
---|
1416 | b(little)g(used)g(farm)h(road)g(intersects)f(a)h(multi-lane)f(highway;) |
---|
1417 | j(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 |
---|
1423 | 2454 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 |
---|
1425 | b(The)16 b(highway)-31 2510 y(light)f(stays)h(green)g(for)g(at)h(least) |
---|
1426 | e(\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 |
---|
1428 | 2567 y(farm)h(road,)i(then)d(the)h(farm)g(light)f(turns)g(green.)31 |
---|
1429 | b(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 |
---|
1433 | y(\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 |
---|
1437 | 14 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 |
---|
1440 | 68 y(the)c(timer)f(produces)h(the)g(signal)f(\252short\272)h(after)h(a) |
---|
1441 | f(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) |
---|
1443 | h(reset)g(\(via)g(the)g(signal)f(\252start\272\).)28 |
---|
1444 | b(From)15 b(the)g(SHOR)m(T)h(state,)g(the)f(timer)f(produces)h(the)-31 |
---|
1445 | 181 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 |
---|
1448 | b(that)g(the)h(use)f(of)h(nondeterminism)d(in)i(the)h(description)e(of) |
---|
1449 | i(the)f(timer)g(models)g(an)h(in\256nite)f(number)-31 |
---|
1450 | 294 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 |
---|
1452 | 350 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) |
---|
1456 | f(long)g(timer)h(e)o(xpires.)16 b(At)10 b(this)e(point,)i(it)-31 |
---|
1457 | 463 y(mo)o(v)o(es)h(to)g(YELLO)n(W)g(and)g(resets)h(the)e(timer)m(.)17 |
---|
1458 | b(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 |
---|
1461 | 576 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 |
---|
1466 | y(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(.) |
---|
1470 | 40 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 |
---|
1479 | 1087 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 | |
---|
1520 | end |
---|
1521 | save |
---|
1522 | -114.0 222.0 translate |
---|
1523 | 1 -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 |
---|
1564 | 10 setmiterlimit |
---|
1565 | 0.06000 0.06000 sc |
---|
1566 | 7.500 slw |
---|
1567 | % Polyline |
---|
1568 | n 2950 780 m 4045 780 l 4045 1975 l 2950 1975 l clp gs col6 1.00 shd ef gr gs col-1 s gr |
---|
1569 | % Ellipse |
---|
1570 | n 5115 3144 124 124 0 360 DrawEllipse gs col2 1.00 shd ef gr gs col-1 s gr |
---|
1571 | |
---|
1572 | % Ellipse |
---|
1573 | n 4819 2703 124 124 0 360 DrawEllipse gs col4 1.00 shd ef gr gs col-1 s gr |
---|
1574 | |
---|
1575 | % Polyline |
---|
1576 | n 4335 1225 m 5175 1225 l 5175 1575 l 4335 1575 l clp gs col29 1.00 shd ef gr gs col-1 s gr |
---|
1577 | % Ellipse |
---|
1578 | n 4545 3154 124 124 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col-1 s gr |
---|
1579 | |
---|
1580 | % Polyline |
---|
1581 | n 4325 775 m 5175 775 l 5175 1125 l 4325 1125 l clp gs col29 1.00 shd ef gr gs col-1 s gr |
---|
1582 | % Polyline |
---|
1583 | n 2100 940 m 2600 940 l 2600 1110 l 2100 1110 l clp gs col3 1.00 shd ef gr gs col-1 s gr |
---|
1584 | % Polyline |
---|
1585 | n 3105 1400 m 3880 1400 l 3880 1815 l 3105 1815 l clp gs col3 1.00 shd ef gr gs col-1 s gr |
---|
1586 | % Polyline |
---|
1587 | n 3100 890 m 3875 890 l 3875 1305 l 3100 1305 l clp gs col3 1.00 shd ef gr gs col-1 s gr |
---|
1588 | % Polyline |
---|
1589 | n 2100 1725 m 2600 1725 l 2600 1895 l 2100 1895 l clp gs col3 1.00 shd ef gr gs col-1 s gr |
---|
1590 | % Polyline |
---|
1591 | [1 50.0] 50.000000 setdash |
---|
1592 | n 3885 1810 m 5125 2455 l gs col-1 s gr [] 0 setdash |
---|
1593 | % Polyline |
---|
1594 | [1 50.0] 50.000000 setdash |
---|
1595 | n 3105 1810 m 4255 3405 l gs col-1 s gr [] 0 setdash |
---|
1596 | % Polyline |
---|
1597 | n 4045 1795 m 4285 1795 l 4285 2195 l 1920 2195 l 1920 1820 l 2095 1815 l gs col-1 s gr |
---|
1598 | n 1974.19 1788.44 m 2095.00 1815.00 l 1975.91 1848.41 l gs col-1 s gr |
---|
1599 | % Polyline |
---|
1600 | n 2605 1845 m 2945 1845 l gs col-1 s gr |
---|
1601 | n 2825.00 1815.00 m 2945.00 1845.00 l 2825.00 1875.00 l gs col-1 s gr |
---|
1602 | % Polyline |
---|
1603 | n 2605 1760 m 2950 1760 l gs col-1 s gr |
---|
1604 | n 2830.00 1730.00 m 2950.00 1760.00 l 2830.00 1790.00 l gs col-1 s gr |
---|
1605 | % Polyline |
---|
1606 | n 2605 1005 m 2945 1005 l gs col-1 s gr |
---|
1607 | n 2825.00 975.00 m 2945.00 1005.00 l 2825.00 1035.00 l gs col-1 s gr |
---|
1608 | % Polyline |
---|
1609 | n 4055 1385 m 4335 1385 l gs col-1 s gr |
---|
1610 | n 4215.00 1355.00 m 4335.00 1385.00 l 4215.00 1415.00 l gs col-1 s gr |
---|
1611 | % Polyline |
---|
1612 | n 4045 950 m 4335 950 l gs col-1 s gr |
---|
1613 | n 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 |
---|
1616 | n 4798 3026 660 660 0 360 DrawEllipse gs col-1 s gr |
---|
1617 | [] 0 setdash |
---|
1618 | % Polyline |
---|
1619 | n 4894 2808 m 5049 3038 l gs col-1 s gr |
---|
1620 | n 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 |
---|
1622 | 4494 3208 m |
---|
1623 | gs 1 -1 sc (Y) col-1 show gr |
---|
1624 | % Polyline |
---|
1625 | n 4994 3158 m 4669 3158 l gs col-1 s gr |
---|
1626 | n 4789.00 3188.00 m 4669.00 3158.00 l 4789.00 3128.00 l gs col-1 s gr |
---|
1627 | % Polyline |
---|
1628 | n 4559 3028 m 4739 2808 l gs col-1 s gr |
---|
1629 | n 4639.79 2881.88 m 4739.00 2808.00 l 4686.23 2919.87 l gs col-1 s gr |
---|
1630 | % Interp Spline |
---|
1631 | n 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 | |
---|
1641 | n 4857.06 2496.51 m 4819.00 2573.00 l 4797.38 2490.34 l gs col-1 s gr |
---|
1642 | % Interp Spline |
---|
1643 | n 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 | |
---|
1653 | n 5326.74 3183.44 m 5249.00 3148.00 l 5330.88 3123.58 l gs col-1 s gr |
---|
1654 | % Interp Spline |
---|
1655 | n 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 | |
---|
1665 | n 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 |
---|
1667 | 3165 1220 m |
---|
1668 | gs 1 -1 sc (controller) col-1 show gr |
---|
1669 | /Times-Roman findfont 180.00 scalefont setfont |
---|
1670 | 3160 1085 m |
---|
1671 | gs 1 -1 sc (farm road) col-1 show gr |
---|
1672 | /Times-Roman findfont 180.00 scalefont setfont |
---|
1673 | 4385 954 m |
---|
1674 | gs 1 -1 sc (farm road) col-1 show gr |
---|
1675 | /Times-Roman findfont 180.00 scalefont setfont |
---|
1676 | 4510 1110 m |
---|
1677 | gs 1 -1 sc (light) col-1 show gr |
---|
1678 | /Times-Roman findfont 180.00 scalefont setfont |
---|
1679 | 4440 1382 m |
---|
1680 | gs 1 -1 sc (highway) col-1 show gr |
---|
1681 | /Times-Roman findfont 180.00 scalefont setfont |
---|
1682 | 4520 1538 m |
---|
1683 | gs 1 -1 sc (light) col-1 show gr |
---|
1684 | /Times-Roman findfont 180.00 scalefont setfont |
---|
1685 | 2140 1065 m |
---|
1686 | gs 1 -1 sc (sensor) col-1 show gr |
---|
1687 | /Times-Roman findfont 180.00 scalefont setfont |
---|
1688 | 2165 1856 m |
---|
1689 | gs 1 -1 sc (timer) col-1 show gr |
---|
1690 | /Times-Roman findfont 180.00 scalefont setfont |
---|
1691 | 3210 1578 m |
---|
1692 | gs 1 -1 sc (highway) col-1 show gr |
---|
1693 | /Times-Roman findfont 180.00 scalefont setfont |
---|
1694 | 3180 1739 m |
---|
1695 | gs 1 -1 sc (controller) col-1 show gr |
---|
1696 | /Times-Roman findfont 180.00 scalefont setfont |
---|
1697 | 4779 2758 m |
---|
1698 | gs 1 -1 sc (R) col-1 show gr |
---|
1699 | /Times-Roman findfont 180.00 scalefont setfont |
---|
1700 | 5059 3188 m |
---|
1701 | gs 1 -1 sc (G) col-1 show gr |
---|
1702 | $F2psEnd |
---|
1703 | restore |
---|
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 |
---|
1711 | 2410 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 |
---|
1713 | b(Written)f(by)h(Tom)g(Shiple,)f(25)h(October)f(1995)h(*/)-31 |
---|
1714 | 2632 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 |
---|
1718 | 15 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 | |
---|
1759 | end |
---|
1760 | save |
---|
1761 | -49.0 552.0 translate |
---|
1762 | 1 -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 |
---|
1818 | 10 setmiterlimit |
---|
1819 | 0.06000 0.06000 sc |
---|
1820 | 7.500 slw |
---|
1821 | % Arc |
---|
1822 | n 2491.90 2242.12 m 2401.00 2326.00 l 2441.74 2209.21 l gs col-1 s gr |
---|
1823 | n 2069.10 2108.28 396.94 132.49 33.26 arc |
---|
1824 | gs col-1 s gr |
---|
1825 | |
---|
1826 | % Ellipse |
---|
1827 | n 2101 2363 302 302 0 360 DrawEllipse gs col-1 s gr |
---|
1828 | |
---|
1829 | % Arc |
---|
1830 | n 5416.90 2317.12 m 5326.00 2401.00 l 5366.74 2284.21 l gs col-1 s gr |
---|
1831 | n 4994.10 2183.28 396.94 132.49 33.26 arc |
---|
1832 | gs col-1 s gr |
---|
1833 | |
---|
1834 | % Ellipse |
---|
1835 | n 5026 2438 302 302 0 360 DrawEllipse gs col-1 s gr |
---|
1836 | |
---|
1837 | % Arc |
---|
1838 | n 3766.90 4417.12 m 3676.00 4501.00 l 3716.74 4384.21 l gs col-1 s gr |
---|
1839 | n 3344.10 4283.28 396.94 132.49 33.26 arc |
---|
1840 | gs col-1 s gr |
---|
1841 | |
---|
1842 | % Ellipse |
---|
1843 | n 3376 4538 302 302 0 360 DrawEllipse gs col-1 s gr |
---|
1844 | |
---|
1845 | % Arc |
---|
1846 | n 5866.90 7042.12 m 5776.00 7126.00 l 5816.74 7009.21 l gs col-1 s gr |
---|
1847 | n 5444.10 6908.28 396.94 132.49 33.26 arc |
---|
1848 | gs col-1 s gr |
---|
1849 | |
---|
1850 | % Ellipse |
---|
1851 | n 5476 7163 302 302 0 360 DrawEllipse gs col-1 s gr |
---|
1852 | |
---|
1853 | % Arc |
---|
1854 | n 3915.90 8617.12 m 3825.00 8701.00 l 3865.74 8584.21 l gs col-1 s gr |
---|
1855 | n 3493.10 8483.27 396.94 132.49 33.26 arc |
---|
1856 | gs col-1 s gr |
---|
1857 | |
---|
1858 | % Ellipse |
---|
1859 | n 3525 8738 302 302 0 360 DrawEllipse gs col-1 s gr |
---|
1860 | |
---|
1861 | % Arc |
---|
1862 | n 11116.90 2241.12 m 11026.00 2325.00 l 11066.74 2208.21 l gs col-1 s gr |
---|
1863 | n 10694.10 2107.28 396.94 132.49 33.26 arc |
---|
1864 | gs col-1 s gr |
---|
1865 | |
---|
1866 | % Ellipse |
---|
1867 | n 10726 2362 302 302 0 360 DrawEllipse gs col-1 s gr |
---|
1868 | |
---|
1869 | % Arc |
---|
1870 | n 11341.90 7042.12 m 11251.00 7126.00 l 11291.74 7009.21 l gs col-1 s gr |
---|
1871 | n 10919.10 6908.28 396.94 132.49 33.26 arc |
---|
1872 | gs col-1 s gr |
---|
1873 | |
---|
1874 | % Ellipse |
---|
1875 | n 10951 7163 302 302 0 360 DrawEllipse gs col-1 s gr |
---|
1876 | |
---|
1877 | % Arc |
---|
1878 | n 9766.91 8767.12 m 9676.00 8851.00 l 9716.74 8734.21 l gs col-1 s gr |
---|
1879 | n 9344.10 8633.27 396.94 132.49 33.26 arc |
---|
1880 | gs col-1 s gr |
---|
1881 | |
---|
1882 | % Ellipse |
---|
1883 | n 9376 8888 302 302 0 360 DrawEllipse gs col-1 s gr |
---|
1884 | |
---|
1885 | % Arc |
---|
1886 | n 8416.90 7042.12 m 8326.00 7126.00 l 8366.74 7009.21 l gs col-1 s gr |
---|
1887 | n 7994.10 6908.28 396.94 132.49 33.26 arc |
---|
1888 | gs col-1 s gr |
---|
1889 | |
---|
1890 | % Ellipse |
---|
1891 | n 8026 7163 302 302 0 360 DrawEllipse gs col-1 s gr |
---|
1892 | |
---|
1893 | % Arc |
---|
1894 | n 8341.90 2242.12 m 8251.00 2326.00 l 8291.74 2209.21 l gs col-1 s gr |
---|
1895 | n 7919.10 2108.28 396.94 132.49 33.26 arc |
---|
1896 | gs col-1 s gr |
---|
1897 | |
---|
1898 | % Ellipse |
---|
1899 | n 7951 2363 302 302 0 360 DrawEllipse gs col-1 s gr |
---|
1900 | |
---|
1901 | % Arc |
---|
1902 | n 2490.90 6967.12 m 2400.00 7051.00 l 2440.74 6934.21 l gs col-1 s gr |
---|
1903 | n 2068.10 6833.28 396.94 132.49 33.26 arc |
---|
1904 | gs col-1 s gr |
---|
1905 | |
---|
1906 | % Ellipse |
---|
1907 | n 2100 7088 302 302 0 360 DrawEllipse gs col-1 s gr |
---|
1908 | |
---|
1909 | % Arc |
---|
1910 | n 10613.09 7222.32 m 10725.00 7275.00 l 10601.46 7281.18 l gs col-1 s gr |
---|
1911 | n 8962.50 16200.00 9097.36 -94.02 -78.83 arc |
---|
1912 | gs col-1 s gr |
---|
1913 | |
---|
1914 | % Polyline |
---|
1915 | n 7575 7275 m 7800 7350 l 7575 7425 l gs col-1 s gr |
---|
1916 | % Polyline |
---|
1917 | n 7417 2422 m 7642 2497 l 7417 2572 l gs col-1 s gr |
---|
1918 | % Polyline |
---|
1919 | n 1642 2422 m 1867 2497 l 1642 2572 l gs col-1 s gr |
---|
1920 | % Polyline |
---|
1921 | n 1650 7200 m 1875 7275 l 1650 7350 l gs col-1 s gr |
---|
1922 | % Open spline |
---|
1923 | n 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 | |
---|
1927 | n 10391.78 2490.09 m 10500.00 2550.00 l 10376.32 2548.07 l gs col-1 s gr |
---|
1928 | % Open spline |
---|
1929 | n 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 | |
---|
1933 | n 8203.17 2693.23 m 8100.00 2625.00 l 8223.14 2636.65 l gs col-1 s gr |
---|
1934 | % Open spline |
---|
1935 | n 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 | |
---|
1939 | n 5069.41 7210.57 m 5175.00 7275.00 l 5051.51 7267.84 l gs col-1 s gr |
---|
1940 | % Open spline |
---|
1941 | n 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 | |
---|
1945 | n 1979.40 7539.98 m 2025.00 7425.00 l 2038.88 7547.91 l gs col-1 s gr |
---|
1946 | % Open spline |
---|
1947 | n 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 | |
---|
1952 | n 7920.00 7545.00 m 7950.00 7425.00 l 7980.00 7545.00 l gs col-1 s gr |
---|
1953 | % Open spline |
---|
1954 | n 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 | |
---|
1958 | n 9723.62 9079.19 m 9600.00 9075.00 l 9711.05 9020.52 l gs col-1 s gr |
---|
1959 | % Open spline |
---|
1960 | n 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 | |
---|
1964 | n 3870.00 8880.00 m 3750.00 8850.00 l 3870.00 8820.00 l gs col-1 s gr |
---|
1965 | % Open spline |
---|
1966 | n 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 | |
---|
1970 | n 3723.04 4737.73 m 3600.00 4725.00 l 3714.55 4678.33 l gs col-1 s gr |
---|
1971 | % Open spline |
---|
1972 | n 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 | |
---|
1976 | n 4752.11 2714.04 m 4875.00 2700.00 l 4773.17 2770.22 l gs col-1 s gr |
---|
1977 | % Open spline |
---|
1978 | n 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 | |
---|
1982 | n 1906.93 2740.95 m 1950.00 2625.00 l 1966.56 2747.58 l gs col-1 s gr |
---|
1983 | % Open spline |
---|
1984 | n 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 | |
---|
1990 | n 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 |
---|
1992 | 3150 4725 m |
---|
1993 | gs 1 -1 sc (LONG) col-1 show gr |
---|
1994 | /Times-Roman findfont 180.00 scalefont setfont |
---|
1995 | 4800 2625 m |
---|
1996 | gs 1 -1 sc (SHORT) col-1 show gr |
---|
1997 | /Times-Roman findfont 180.00 scalefont setfont |
---|
1998 | 1800 2550 m |
---|
1999 | gs 1 -1 sc (START) col-1 show gr |
---|
2000 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2001 | 7725 2475 m |
---|
2002 | gs 1 -1 sc (NO) col-1 show gr |
---|
2003 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2004 | 10500 2550 m |
---|
2005 | gs 1 -1 sc (YES) col-1 show gr |
---|
2006 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2007 | 1950 7200 m |
---|
2008 | gs 1 -1 sc (GREEN) col-1 show gr |
---|
2009 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2010 | 5250 7350 m |
---|
2011 | gs 1 -1 sc (YELLOW) col-1 show gr |
---|
2012 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2013 | 3300 8925 m |
---|
2014 | gs 1 -1 sc (RED) col-1 show gr |
---|
2015 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2016 | 9225 9075 m |
---|
2017 | gs 1 -1 sc (RED) col-1 show gr |
---|
2018 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2019 | 7875 7350 m |
---|
2020 | gs 1 -1 sc (GREEN) col-1 show gr |
---|
2021 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2022 | 10800 7350 m |
---|
2023 | gs 1 -1 sc (YELLOW) col-1 show gr |
---|
2024 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2025 | 1125 1725 m |
---|
2026 | gs 1 -1 sc (start or \(!start and !rand_choice\)) col-1 show gr |
---|
2027 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2028 | 4425 1800 m |
---|
2029 | gs 1 -1 sc (!start and !rand_choice/short) col-1 show gr |
---|
2030 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2031 | 2925 1125 m |
---|
2032 | gs 1 -1 sc (T I M E R) col-1 show gr |
---|
2033 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2034 | 8775 1275 m |
---|
2035 | gs 1 -1 sc (S E N S O R) col-1 show gr |
---|
2036 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2037 | 2700 7350 m |
---|
2038 | gs 1 -1 sc (car_present and long_timer /) col-1 show gr |
---|
2039 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2040 | 3300 7650 m |
---|
2041 | gs 1 -1 sc (hwy_start_timer) col-1 show gr |
---|
2042 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2043 | 4425 8325 m |
---|
2044 | gs 1 -1 sc (short_timer/enable_farm) col-1 show gr |
---|
2045 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2046 | 1050 8100 m |
---|
2047 | gs 1 -1 sc (enable_hwy/) col-1 show gr |
---|
2048 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2049 | 825 8400 m |
---|
2050 | gs 1 -1 sc (hwy_start_timer) col-1 show gr |
---|
2051 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2052 | 4875 6450 m |
---|
2053 | gs 1 -1 sc (!short_timer) col-1 show gr |
---|
2054 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2055 | 900 6525 m |
---|
2056 | gs 1 -1 sc (!car_present or !long_timer) col-1 show gr |
---|
2057 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2058 | 2400 5850 m |
---|
2059 | gs 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 |
---|
2061 | 8400 7500 m |
---|
2062 | gs 1 -1 sc (!car_present or long_timer/) col-1 show gr |
---|
2063 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2064 | 9000 7800 m |
---|
2065 | gs 1 -1 sc (farm_start_timer) col-1 show gr |
---|
2066 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2067 | 6825 6525 m |
---|
2068 | gs 1 -1 sc (car_present and !long_timer) col-1 show gr |
---|
2069 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2070 | 9975 8400 m |
---|
2071 | gs 1 -1 sc (short_timer/enable_hwy) col-1 show gr |
---|
2072 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2073 | 7275 8250 m |
---|
2074 | gs 1 -1 sc (enable_farm/) col-1 show gr |
---|
2075 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2076 | 7050 8550 m |
---|
2077 | gs 1 -1 sc (farm_start_timer) col-1 show gr |
---|
2078 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2079 | 10350 6525 m |
---|
2080 | gs 1 -1 sc (!short_timer) col-1 show gr |
---|
2081 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2082 | 8700 8325 m |
---|
2083 | gs 1 -1 sc (!enable_farm) col-1 show gr |
---|
2084 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2085 | 8325 5925 m |
---|
2086 | gs 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 |
---|
2088 | 2850 8100 m |
---|
2089 | gs 1 -1 sc (!enable_hwy) col-1 show gr |
---|
2090 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2091 | 3150 2325 m |
---|
2092 | gs 1 -1 sc (start/short) col-1 show gr |
---|
2093 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2094 | 2700 3225 m |
---|
2095 | gs 1 -1 sc (!start and rand_choice) col-1 show gr |
---|
2096 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2097 | 3825 3675 m |
---|
2098 | gs 1 -1 sc (!start and rand_choice/short) col-1 show gr |
---|
2099 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2100 | 1200 3825 m |
---|
2101 | gs 1 -1 sc (start/short,long) col-1 show gr |
---|
2102 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2103 | 2550 4200 m |
---|
2104 | gs 1 -1 sc (!start/short,long) col-1 show gr |
---|
2105 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2106 | 8850 2325 m |
---|
2107 | gs 1 -1 sc (rand_choice/) col-1 show gr |
---|
2108 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2109 | 8850 2550 m |
---|
2110 | gs 1 -1 sc (!car_present) col-1 show gr |
---|
2111 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2112 | 8775 3150 m |
---|
2113 | gs 1 -1 sc (!rand_choice/) col-1 show gr |
---|
2114 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2115 | 8925 3375 m |
---|
2116 | gs 1 -1 sc (car_present) col-1 show gr |
---|
2117 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2118 | 9975 1725 m |
---|
2119 | gs 1 -1 sc (rand_choice/car_present) col-1 show gr |
---|
2120 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2121 | 7275 1725 m |
---|
2122 | gs 1 -1 sc (!rand_choice/!car_present) col-1 show gr |
---|
2123 | $F2psEnd |
---|
2124 | restore |
---|
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 |
---|
2131 | y(input)g(clk;)-31 1675 y(color)g(wire)f(farm_light,)g(hwy_light;)-31 |
---|
2132 | 1714 y(wire)h(start_timer,)f(short_timer,)g(long_timer;)-31 |
---|
2133 | 1754 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 |
---|
2135 | 1872 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 |
---|
2140 | 2069 y(farm_light,)g(farm_start_timer,)f(enable_hwy\);)-31 |
---|
2141 | 2109 y(hwy_control)h(hwy_control)g(\(clk,)h(car_present,)f(enable_hwy,) |
---|
2142 | 39 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 |
---|
2144 | 2306 y(module)h(sensor\(clk,)f(car_present\);)-31 2345 |
---|
2145 | y(input)h(clk;)-31 2385 y(output)g(car_present;)-31 2464 |
---|
2146 | y(wire)g(rand_choice;)-31 2503 y(boolean)g(reg)f(car_present;)-31 |
---|
2147 | 2582 y(initial)h(car_present)f(=)h(NO;)-31 2621 y(assign)g(rand_choice) |
---|
2148 | f(=)h($ND\(0,1\);)-31 2700 y(always)g(@\(posedge)f(clk\))h(begin)906 |
---|
2149 | 2835 y Fq(15)p eop |
---|
2150 | %%Page: 16 17 |
---|
2151 | 16 16 bop 49 11 a Fd(if)20 b(\(rand_choice)f(==)g(0\))129 |
---|
2152 | 51 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,) |
---|
2154 | f(start,)g(short,)h(long\);)-31 327 y(input)g(clk;)-31 |
---|
2155 | 366 y(input)g(start;)-31 406 y(output)g(short;)-31 445 |
---|
2156 | y(output)g(long;)-31 524 y(wire)g(rand_choice;)-31 563 |
---|
2157 | y(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 |
---|
2161 | 839 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 |
---|
2164 | 997 y(if)g(\(start\))f(state)h(=)f(START;)129 1037 y(else)208 |
---|
2165 | 1076 y(begin)208 1116 y(case)h(\(state\))208 1155 y(START:)368 |
---|
2166 | 1194 y(if)f(\(rand_choice)g(==)h(1\))g(state)g(=)f(SHORT;)208 |
---|
2167 | 1234 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 |
---|
2170 | 1431 y(end)-31 1470 y(endmodule)-31 1549 y(module)g(farm_control\(clk,) |
---|
2171 | e(car_present,)h(enable_farm,)g(short_timer,)g(long_timer,)89 |
---|
2172 | 1589 y(farm_light,)g(farm_start_timer,)f(enable_hwy\);)-31 |
---|
2173 | 1628 y(input)i(clk;)-31 1668 y(input)g(car_present;)-31 |
---|
2174 | 1707 y(input)g(enable_farm;)-31 1746 y(input)g(short_timer;)-31 |
---|
2175 | 1786 y(input)g(long_timer;)-31 1825 y(output)g(farm_light;)-31 |
---|
2176 | 1865 y(output)g(farm_start_timer;)-31 1904 y(output)g(enable_hwy;)-31 |
---|
2177 | 1983 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 |
---|
2179 | 2101 y(wire)g(enable_hwy;)-31 2141 y(wire)g(enable_farm;)-31 |
---|
2180 | 2180 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(==) |
---|
2182 | h(GREEN\))f(&&)h(\(\(car_present)f(==)h(NO\))g(||)f(long_timer\)\))487 |
---|
2183 | 2338 y(||)h(\(farm_light)f(==)h(RED\))f(&&)h(enable_farm\);)-31 |
---|
2184 | 2377 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 |
---|
2186 | 2496 y(case)f(\(farm_light\))69 2535 y(GREEN:)228 2575 |
---|
2187 | y(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 |
---|
2190 | eop |
---|
2191 | %%Page: 17 18 |
---|
2192 | 17 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 |
---|
2194 | 209 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 |
---|
2198 | 445 y(input)g(long_timer;)-31 485 y(output)g(hwy_light;)-31 |
---|
2199 | 524 y(output)g(hwy_start_timer;)-31 563 y(output)g(enable_farm;)-31 |
---|
2200 | 642 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 |
---|
2202 | y(wire)g(enable_farm;)-31 800 y(wire)g(enable_hwy;)-31 |
---|
2203 | 839 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 |
---|
2210 | y(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 |
---|
2212 | 1313 y(if)g(\(short_timer\))f(hwy_light)g(=)h(RED;)69 |
---|
2213 | 1352 y(RED:)228 1392 y(if)g(\(enable_hwy\))f(hwy_light)g(=)h(GREEN;)69 |
---|
2214 | 1431 y(endcase)-31 1470 y(end)-31 1510 y(endmodule)906 |
---|
2215 | 2835 y Fq(17)p eop |
---|
2216 | %%Page: 18 19 |
---|
2217 | 18 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 |
---|
2219 | b(v)o(eri\256cation)g(is)f(the)h(process)f(of)h(checking)g(whether)f(a) |
---|
2220 | h(design)f(satis\256es)h(some)f(requirements)g(\(properties\).)-31 |
---|
2221 | 809 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 |
---|
2226 | 922 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 |
---|
2228 | b(The)12 b(design)g(is)h(speci\256ed)g(as)g(a)-31 979 |
---|
2229 | y(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 |
---|
2231 | b(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 |
---|
2234 | y(the)f(FSMs)g(associated)g(with)f(each)h(component.)30 |
---|
2235 | b(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 |
---|
2239 | 1204 y(successi)o(v)o(e)i(con\256guration\))g(of)g(an)h(FSM)f(can)h(be) |
---|
2240 | f(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 |
---|
2245 | b(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 |
---|
2247 | y(functions\))12 b(and)g(its)g(e)o(xtension)f(MDDs)h(\(multi-v)o(alued) |
---|
2248 | f(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 |
---|
2250 | b(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 |
---|
2252 | y(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 |
---|
2258 | b(In)15 b(general,)i(BDDs)e(operate)h(on)f(sets)f(of)-31 |
---|
2259 | 1712 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) |
---|
2261 | g(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 |
---|
2263 | y(checking.)20 b(The)12 b(current)h(v)o(ersion)f(of)h(VIS)g(emphasizes) |
---|
2264 | f(model)f(checking,)i(b)o(ut)f(it)g(also)g(of)o(fers)g(to)g(the)h(user) |
---|
2265 | f(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 |
---|
2267 | b(Checking)g(of)g(T)-5 b(emporal)14 b(Logic)-31 2132 |
---|
2268 | y 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 |
---|
2275 | 2302 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 |
---|
2280 | b(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) |
---|
2282 | f(by)h(means)g(of)g(operators)g(that)g(specify)g(properties)f(such)-31 |
---|
2283 | 2627 y(as)i(\252)p Fp(p)h Fq(will)e(e)o(v)o(entually)g(hold\272.)17 |
---|
2284 | b(There)11 b(are)h(v)o(arious)f(v)o(ersions)f(of)h(temporal)g(logic.)16 |
---|
2285 | b(One)11 b(is)g(computational)e(tree)j(logic)-31 2683 |
---|
2286 | y(\(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 |
---|
2290 | 19 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) |
---|
2292 | h(unwinding)e(a)i(graph)g(into)e(a)i(tree.)17 b(P)o(aths)-31 |
---|
2293 | 68 y(in)d(this)e(tree)j(represent)f(all)g(possible)e(computations)g(of) |
---|
2294 | i(the)g(system)f(being)g(modeled.)24 b(F)o(ormulae)14 |
---|
2295 | b(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 |
---|
2298 | y(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 | |
---|
2340 | end |
---|
2341 | save |
---|
2342 | -80.0 119.0 translate |
---|
2343 | 1 -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 |
---|
2384 | 10 setmiterlimit |
---|
2385 | 0.06000 0.06000 sc |
---|
2386 | 7.500 slw |
---|
2387 | % Ellipse |
---|
2388 | n 3209 1724 124 124 0 360 DrawEllipse gs col4 1.00 shd ef gr gs col-1 s gr |
---|
2389 | |
---|
2390 | % Ellipse |
---|
2391 | n 3414 1349 124 124 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col-1 s gr |
---|
2392 | |
---|
2393 | % Ellipse |
---|
2394 | n 4279 1339 124 124 0 360 DrawEllipse gs col4 1.00 shd ef gr gs col-1 s gr |
---|
2395 | |
---|
2396 | % Ellipse |
---|
2397 | n 3619 974 124 124 0 360 DrawEllipse gs col2 1.00 shd ef gr gs col-1 s gr |
---|
2398 | |
---|
2399 | % Ellipse |
---|
2400 | n 3989 1344 124 124 0 360 DrawEllipse gs col2 1.00 shd ef gr gs col-1 s gr |
---|
2401 | |
---|
2402 | % Ellipse |
---|
2403 | n 4056 974 124 124 0 360 DrawEllipse gs col4 1.00 shd ef gr gs col-1 s gr |
---|
2404 | |
---|
2405 | % Ellipse |
---|
2406 | n 3712 1344 124 124 0 360 DrawEllipse gs col2 1.00 shd ef gr gs col-1 s gr |
---|
2407 | |
---|
2408 | % Ellipse |
---|
2409 | n 3839 599 124 124 0 360 DrawEllipse gs col4 1.00 shd ef gr gs col-1 s gr |
---|
2410 | |
---|
2411 | % Ellipse |
---|
2412 | n 3519 1726 124 124 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col-1 s gr |
---|
2413 | |
---|
2414 | % Ellipse |
---|
2415 | n 1911 796 124 124 0 360 DrawEllipse gs col4 1.00 shd ef gr gs col-1 s gr |
---|
2416 | |
---|
2417 | % Ellipse |
---|
2418 | n 2207 1237 124 124 0 360 DrawEllipse gs col2 1.00 shd ef gr gs col-1 s gr |
---|
2419 | |
---|
2420 | % Ellipse |
---|
2421 | n 1637 1247 124 124 0 360 DrawEllipse gs col6 1.00 shd ef gr gs col-1 s gr |
---|
2422 | |
---|
2423 | % Polyline |
---|
2424 | n 3923 1453 m 3873 1588 l gs col13 0.25 tnt ef gr gs col-1 s gr |
---|
2425 | n 3928.92 1523.40 m 3873.00 1588.00 l 3872.65 1502.56 l gs col-1 s gr |
---|
2426 | % Polyline |
---|
2427 | n 4063 1448 m 4118 1588 l gs col13 0.25 tnt ef gr gs col-1 s gr |
---|
2428 | n 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 |
---|
2430 | 3944 1399 m |
---|
2431 | gs 1 -1 sc (G) col-1 show gr |
---|
2432 | % Polyline |
---|
2433 | n 3553 1083 m 3503 1218 l gs col13 0.25 tnt ef gr gs col-1 s gr |
---|
2434 | n 3558.92 1153.40 m 3503.00 1218.00 l 3502.65 1132.56 l gs col-1 s gr |
---|
2435 | % Polyline |
---|
2436 | n 4213 1448 m 4163 1583 l gs col13 0.25 tnt ef gr gs col-1 s gr |
---|
2437 | n 4218.92 1518.40 m 4163.00 1583.00 l 4162.65 1497.56 l gs col-1 s gr |
---|
2438 | % Polyline |
---|
2439 | n 4353 1443 m 4408 1583 l gs col13 0.25 tnt ef gr gs col-1 s gr |
---|
2440 | n 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 |
---|
2442 | 4230 1389 m |
---|
2443 | gs 1 -1 sc (R) col-1 show gr |
---|
2444 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2445 | 4007 1024 m |
---|
2446 | gs 1 -1 sc (R) col-1 show gr |
---|
2447 | % Polyline |
---|
2448 | n 3348 1458 m 3298 1593 l gs col13 0.25 tnt ef gr gs col-1 s gr |
---|
2449 | n 3353.92 1528.40 m 3298.00 1593.00 l 3297.65 1507.56 l gs col-1 s gr |
---|
2450 | % Polyline |
---|
2451 | n 3488 1453 m 3543 1593 l gs col13 0.25 tnt ef gr gs col-1 s gr |
---|
2452 | n 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 |
---|
2454 | 3369 1404 m |
---|
2455 | gs 1 -1 sc (Y) col-1 show gr |
---|
2456 | % Polyline |
---|
2457 | n 4130 1078 m 4185 1218 l gs col13 0.25 tnt ef gr gs col-1 s gr |
---|
2458 | n 4183.67 1132.57 m 4185.00 1218.00 l 4127.83 1154.51 l gs col-1 s gr |
---|
2459 | % Polyline |
---|
2460 | n 3990 1083 m 3940 1218 l gs col13 0.25 tnt ef gr gs col-1 s gr |
---|
2461 | n 3995.92 1153.40 m 3940.00 1218.00 l 3939.65 1132.56 l gs col-1 s gr |
---|
2462 | % Polyline |
---|
2463 | n 3143 1833 m 3093 1968 l gs col13 0.25 tnt ef gr gs col-1 s gr |
---|
2464 | n 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 |
---|
2466 | 3790 649 m |
---|
2467 | gs 1 -1 sc (R) col-1 show gr |
---|
2468 | % Polyline |
---|
2469 | n 3283 1828 m 3338 1968 l gs col13 0.25 tnt ef gr gs col-1 s gr |
---|
2470 | n 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 |
---|
2472 | 3160 1774 m |
---|
2473 | gs 1 -1 sc (R) col-1 show gr |
---|
2474 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2475 | 3574 1029 m |
---|
2476 | gs 1 -1 sc (G) col-1 show gr |
---|
2477 | % Polyline |
---|
2478 | n 3453 1835 m 3403 1970 l gs col13 0.25 tnt ef gr gs col-1 s gr |
---|
2479 | n 3458.92 1905.40 m 3403.00 1970.00 l 3402.65 1884.56 l gs col-1 s gr |
---|
2480 | % Polyline |
---|
2481 | n 3593 1830 m 3648 1970 l gs col13 0.25 tnt ef gr gs col-1 s gr |
---|
2482 | n 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 |
---|
2484 | 3474 1781 m |
---|
2485 | gs 1 -1 sc (Y) col-1 show gr |
---|
2486 | % Polyline |
---|
2487 | n 3646 1453 m 3596 1588 l gs col13 0.25 tnt ef gr gs col-1 s gr |
---|
2488 | n 3651.92 1523.40 m 3596.00 1588.00 l 3595.65 1502.56 l gs col-1 s gr |
---|
2489 | % Polyline |
---|
2490 | n 3786 1448 m 3841 1588 l gs col13 0.25 tnt ef gr gs col-1 s gr |
---|
2491 | n 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 |
---|
2493 | 3667 1399 m |
---|
2494 | gs 1 -1 sc (G) col-1 show gr |
---|
2495 | % Polyline |
---|
2496 | n 3693 1078 m 3748 1218 l gs col13 0.25 tnt ef gr gs col-1 s gr |
---|
2497 | n 3746.67 1132.57 m 3748.00 1218.00 l 3690.83 1154.51 l gs col-1 s gr |
---|
2498 | % Polyline |
---|
2499 | n 1986 901 m 2141 1131 l gs col-1 s gr |
---|
2500 | n 2098.82 1014.72 m 2141.00 1131.00 l 2049.06 1048.25 l gs col-1 s gr |
---|
2501 | % Polyline |
---|
2502 | n 2086 1251 m 1761 1251 l gs col-1 s gr |
---|
2503 | n 1881.00 1281.00 m 1761.00 1251.00 l 1881.00 1221.00 l gs col-1 s gr |
---|
2504 | % Polyline |
---|
2505 | n 1651 1121 m 1831 901 l gs col-1 s gr |
---|
2506 | n 1731.79 974.88 m 1831.00 901.00 l 1778.23 1012.87 l gs col-1 s gr |
---|
2507 | % Polyline |
---|
2508 | n 3773 708 m 3723 843 l gs col13 0.25 tnt ef gr gs col-1 s gr |
---|
2509 | n 3778.92 778.40 m 3723.00 843.00 l 3722.65 757.56 l gs col-1 s gr |
---|
2510 | % Polyline |
---|
2511 | n 3913 703 m 3968 843 l gs col13 0.25 tnt ef gr gs col-1 s gr |
---|
2512 | n 3966.67 757.57 m 3968.00 843.00 l 3910.83 779.51 l gs col-1 s gr |
---|
2513 | % Interp Spline |
---|
2514 | n 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 | |
---|
2524 | n 1949.06 589.51 m 1911.00 666.00 l 1889.38 583.34 l gs col-1 s gr |
---|
2525 | % Interp Spline |
---|
2526 | n 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 | |
---|
2536 | n 2418.74 1276.44 m 2341.00 1241.00 l 2422.88 1216.58 l gs col-1 s gr |
---|
2537 | % Interp Spline |
---|
2538 | n 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 | |
---|
2548 | n 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 |
---|
2550 | 2520 875 m |
---|
2551 | gs 1 -1 sc (unwind) col-1 show gr |
---|
2552 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2553 | 2605 1035 m |
---|
2554 | gs 1 -1 sc (==>) col-1 show gr |
---|
2555 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2556 | 1871 851 m |
---|
2557 | gs 1 -1 sc (R) col-1 show gr |
---|
2558 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2559 | 2151 1281 m |
---|
2560 | gs 1 -1 sc (G) col-1 show gr |
---|
2561 | /Times-Roman findfont 180.00 scalefont setfont |
---|
2562 | 1586 1301 m |
---|
2563 | gs 1 -1 sc (Y) col-1 show gr |
---|
2564 | $F2psEnd |
---|
2565 | restore |
---|
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 |
---|
2575 | b(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 |
---|
2578 | 1291 y(a)k(temporal)e(modality)f(\()p Fp(F)c Fq(,)14 |
---|
2579 | b Fp(G)p Fq(,)e Fp(X)t Fq(,)g Fp(U)5 b Fq(\).)20 b(All)11 |
---|
2580 | b(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 |
---|
2582 | b(are)h(in)f(general)g(man)o(y)g(e)o(x)o(ecution)g(paths)f(\(sequences) |
---|
2583 | h(of)g(state)g(transitions\))f(of)h(the)f(system)g(starting)g(at)-31 |
---|
2584 | 1404 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 |
---|
2588 | Fp(A)p Fq(\))g(or)h(whether)f(the)g(property)g(needs)g(only)g(hold)-31 |
---|
2589 | 1517 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 |
---|
2594 | Fp(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 |
---|
2597 | y(formula)h Fp(\036)g Fq(is)g(true.)26 1811 y(2.)23 b |
---|
2598 | Fp(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 |
---|
2600 | Fq(is)g(true)h(at)f(e)o(v)o(ery)h(state)f(in)g(the)g(path.)26 |
---|
2601 | 1903 y(3.)23 b Fp(X)14 b(\036)e Fq(\(reads)g(\252)p Fp(\036)g |
---|
2602 | Fq(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 |
---|
2606 | Fp(\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 |
---|
2608 | Fq(\))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 |
---|
2610 | Fq(holds)g(in)g(all)g(preceding)g(states.)-31 2198 y(In)17 |
---|
2611 | b(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 |
---|
2613 | 2254 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 |
---|
2615 | y(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) |
---|
2619 | f(of)h(its)e(subformulas)h(in)g(a)h(recursi)o(v)o(e)h(fashion,)-31 |
---|
2620 | 2423 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 |
---|
2622 | b(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.) |
---|
2627 | 16 b(An)11 b(ef)o(\256cient)h(algorithm)p -31 2575 768 |
---|
2628 | 2 v 22 2603 a Fg(1)36 2619 y Ff(A)d(formula)g(that)g(contains)f(an)o(y) |
---|
2629 | g(temporal)g(modality)h(\()p Fc(F)c Ff(,)10 b Fc(G)p |
---|
2630 | Ff(,)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 |
---|
2632 | 1656 2626 48 2 v 8 w(a)g(le)o(gal)g(CTL)-31 2664 y(formula.)22 |
---|
2633 | 2695 y Fg(2)36 2711 y Ff(\252W)m(eak)f(until\272)i(is)f(when)f |
---|
2634 | Fc(\036)i Ff(holds)e(fore)o(v)o(er)o(,)h(i.e.,)i Fc( )g |
---|
2635 | Ff(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 |
---|
2638 | 20 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 |
---|
2643 | 1070 220 2 57 v 274 w(T/F)p 652 221 555 2 v 677 261 a(EG)f(\(RED\))p |
---|
2644 | 1070 278 2 57 v 226 w(true)677 317 y(E)g(\(RED)h(U)f(GREEN\))p |
---|
2645 | 1070 334 V 51 w(true)677 374 y(AF)h(\(GREEN\))p 1070 |
---|
2646 | 391 V 167 w(false)-31 495 y Fk(3.1.2)51 b(Speci\256cation)10 |
---|
2647 | b(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 |
---|
2650 | 639 y(has)14 b(been)g(actually)g(v)o(eri\256ed.)25 b(Therefore)15 |
---|
2651 | b(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 |
---|
2654 | b 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) |
---|
2656 | f(the)g(state,)h(then)f(always)g(at)g(some)g(later)h(point)e(\()p |
---|
2657 | Fp(AF)6 b Fq(\))83 899 y(we)14 b(must)f(reach)i(a)g(state)f(where)g |
---|
2658 | Fp(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 |
---|
2660 | 956 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 |
---|
2662 | b(In)11 b(other)f(words,)h(it)f(is)g(always)f(the)83 |
---|
2663 | 1012 y(case)j(that)f(if)h(the)f(signal)g Fp(r)q(eq)i |
---|
2664 | Fq(is)e(high,)g(then)h(e)o(v)o(entually)f Fp(ack)h Fq(will)f(also)g(be) |
---|
2665 | h(high.)k(A)c(common)e(mistake)g(would)83 1068 y(be)j(to)f(write)g |
---|
2666 | Fp(r)q(eq)k Fj(!)f Fp(AF)20 b(ack)q Fq(,)13 b(instead)f(of)g |
---|
2667 | Fp(AG)p Fb(\()p Fp(r)q(eq)k Fj(!)f Fp(AF)k(ack)q Fb(\))p |
---|
2668 | Fq(.)h(The)13 b(meaning)f(of)h(the)f(former)h(is)f(that)g(if)83 |
---|
2669 | 1125 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 |
---|
2674 | 1238 y Fq(holds.)k(If)11 b Fp(r)q(eq)j Fq(is)d(identically)f(true,)i |
---|
2675 | Fp(AG)p Fb(\()p Fp(r)q(eq)i Fj(!)f Fp(AF)18 b(ack)q Fb(\))11 |
---|
2676 | b Fq(reduces)h(to)e Fp(AG)i(AF)18 b(ack)q Fq(.)26 1331 |
---|
2677 | y(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 |
---|
2680 | 1444 y Fp(enabl)q(ed)10 b Fq(is)h(asserted.)17 b(In)12 |
---|
2681 | b(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 |
---|
2683 | b(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 |
---|
2686 | Fq(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 |
---|
2688 | 1742 y(4.)23 b Fp(E)s(F)6 b Fb(\()p Fp(star)q(ted)k Fj(^)22 |
---|
2689 | b(:)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 |
---|
2691 | Fp(r)q(eady)i Fq(does)e(not)g(hold.)26 1891 y(5.)23 b |
---|
2692 | Fp(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) |
---|
2694 | g(if)g Fp(send)h Fq(occurs,)g(then)f(e)o(v)o(entually)g |
---|
2695 | Fp(r)q(eceiv)r(e)f Fq(is)h(true,)h(and)f(until)f(that)g(time,)i |
---|
2696 | Fp(send)83 2004 y Fq(must)c(continue)h(to)g(be)g(true.)26 |
---|
2697 | 2097 y(6.)23 b Fp(AG)p Fb(\()p Fp(inp)12 b Fj(!)h Fp(AX)i(AX)f(out)p |
---|
2698 | Fb(\))83 2153 y Fq(Whene)o(v)o(er)e Fp(inp)f Fq(goes)g(high,)g |
---|
2699 | Fp(out)h Fq(will)f(go)g(high)f(within)h(two)f(clock)h(c)o(ycles.)26 |
---|
2700 | 2246 y(7.)23 b Fp(E)s(F)6 b Fb(\()p Fp(a)j Fj(^)i Fp(E)s(X)t |
---|
2701 | Fb(\()p Fp(a)d Fj(^)i Fp(E)s(X)k(a)p Fb(\)\))e Fj(!)h |
---|
2702 | Fp(E)s(F)6 b Fb(\()p Fp(b)j Fj(^)i Fp(E)s(X)i(E)s(X)h(c)p |
---|
2703 | Fb(\))83 2302 y Fq(If)d(it)e(is)h(possible)f(for)i Fp(a)f |
---|
2704 | Fq(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 |
---|
2706 | 2359 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 |
---|
2708 | Fp(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) |
---|
2711 | g(bad)g(e)o(v)o(er)i(happens\272)e(\()p Fj(:)p Fp(p)h |
---|
2712 | Fq(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 |
---|
2718 | y(deadlock)h(state)g(is)g(reached\).)906 2835 y(20)p |
---|
2719 | eop |
---|
2720 | %%Page: 21 22 |
---|
2721 | 21 21 bop 26 11 a Fq(2.)23 b Fp(AF)16 b(AG)10 b(p)f Fq(is)g(\252e)o(v)o |
---|
2722 | (entually)g(the)h(system)e(is)i(con\256ned)f(to)h(states)f(where)h |
---|
2723 | Fp(p)f Fq(is)g(always)g(true\272)h(or)g(\252the)f(system)g(stays)83 |
---|
2724 | 68 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) |
---|
2726 | h(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 |
---|
2728 | Fb(\()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) |
---|
2732 | o(v)o(entually)h(occurs)h(with)f(correct)h(answers\),)83 |
---|
2733 | 331 y(accessibility)17 b(\(e)o(v)o(entually)i(a)g(requesting)f(process) |
---|
2734 | h(will)f(enter)h(its)g(critical)f(section\),)j(starv)o(ation)d(freedom) |
---|
2735 | 83 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 |
---|
2738 | 538 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 |
---|
2741 | 594 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 |
---|
2743 | 688 y(5.)23 b Fp(AF)18 b(q)13 b Fq(is)e(\252something)f(good,)h |
---|
2744 | Fp(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 |
---|
2746 | Fq(\).)26 782 y(6.)23 b Fp(AG)10 b(E)s(F)17 b(p)11 b |
---|
2747 | Fq(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 |
---|
2749 | 838 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) |
---|
2751 | f(that)83 895 y(cannot)e(be)g(represented)h(by)f(an)h |
---|
2752 | Fp(!)r Fq(-automaton)853 878 y Ft(3)872 895 y Fq(.)26 |
---|
2753 | 989 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 |
---|
2755 | y(8.)23 b Fp(E)s(F)18 b(p)13 b Fq(is)f(\252)p Fp(p)h |
---|
2756 | Fq(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 |
---|
2758 | 1139 y(an)e Fp(!)r Fq(-automaton.)40 1233 y Fr(Ca)o(veats)26 |
---|
2759 | 1326 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 |
---|
2762 | b(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 |
---|
2764 | y(this)f(could)h(lead)h(to)e(a)i(state)f(where)h(both)f |
---|
2765 | Fp(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 |
---|
2767 | Fj(!)p Fq(,)g(as)f(in)g Fp(a)i Fj(!)g Fp(b)e Fq(is)g(equi)o(v)o(alent)f |
---|
2768 | (to)h Fj(:)p Fp(a)f Fb(+)h Fp(b)p Fq(,)g(and)g(is)g(satis\256ed)g(by)g |
---|
2769 | Fj(:)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 |
---|
2771 | Fp(a)g Fq(and)h Fp(b)f Fq(are)h(both)e(true.)26 1683 |
---|
2772 | y(3.)23 b(The)11 b(syntax)g(of)g(CTL)h(and)f(of)h(V)-5 |
---|
2773 | b(erilog)11 b(are)h(dif)o(ferent.)17 b(F)o(or)12 b(instance,)f(we)h(ha) |
---|
2774 | o(v)o(e:)242 1791 y Fd(Verilog)20 b(CTL)119 b(meaning)242 |
---|
2775 | 1870 y(&&)h(*)159 b(AND)242 1910 y(||)120 b(+)159 b(OR)242 |
---|
2776 | 1949 y(==)120 b(=)159 b(equal)242 1989 y(a!=NO)60 b(!\(a=NO\))39 |
---|
2777 | b(not)20 b(equal)402 2028 y(->)139 b(implies)402 2067 |
---|
2778 | y(\303)159 b(xor)-31 2194 y Fk(3.1.3)51 b(F)o(air)o(ness)13 |
---|
2779 | b(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 |
---|
2781 | b(e)o(xample,)h(if)e(the)g(system)g(allocates)g(a)h(shared)-31 |
---|
2782 | 2338 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) |
---|
2784 | o(er)h(should)e(be)-31 2394 y(considered.)17 b(CTL)12 |
---|
2785 | b(by)f(itself)f(cannot)i(e)o(xpress)f(assertions)g(about)g(correctness) |
---|
2786 | g(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 |
---|
2788 | b(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) |
---|
2791 | i(gi)o(ving)d(a)i(fairness)-31 2564 y(condition;)d(a)h |
---|
2792 | Fi(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 |
---|
2794 | b(These)10 b(types)p -31 2604 768 2 v 22 2632 a Fg(3)36 |
---|
2795 | 2648 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 |
---|
2798 | 2693 y(other)e(does)f(not.)906 2835 y Fq(21)p eop |
---|
2799 | %%Page: 22 23 |
---|
2800 | 22 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 |
---|
2803 | 68 y(not)c(allo)o(wed)f(currently)m(.)17 b(F)o(air)11 |
---|
2804 | b(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 |
---|
2806 | 124 y(quanti\256ers)j(only)f(range)i(o)o(v)o(er)g(fair)e(paths.)22 |
---|
2807 | b(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 |
---|
2812 | 294 y(in\256nitely)i(often.)-31 440 y Fl(3.2)58 b(Pr)o(operties)14 |
---|
2813 | b(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 |
---|
2819 | 692 y Fm(!\(timer.s)q(ta)q(te=)q(ST)q(ART)q(\);)-31 784 |
---|
2820 | y 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 |
---|
2823 | b(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) |
---|
2826 | 11 b(properties)g(\(e.g,)h(cars)f(on)g(farm)g(road)-31 |
---|
2827 | 1082 y(and)f(highway)g(will)f(e)o(v)o(entually)h(cross\))g(would)g(not) |
---|
2828 | f(pass)h(if)h(these)f(fairness)g(constraints)f(are)i(not)f(placed)h(on) |
---|
2829 | f(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 |
---|
2834 | 1251 y(CTL)g(formula:)-31 1343 y Fm(AG)28 b(\()g(!\(\(farm_l)q(ig)q(ht) |
---|
2835 | j(=)c(GREEN\))j(*)e(\(hwy_ligh)q(t)i(=)e(GREEN\)\))i(\);)40 |
---|
2836 | 1435 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 |
---|
2841 | b(CTL)g(this)-31 1548 y(is)g(written)g(as:)-31 1640 y |
---|
2842 | Fm(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 |
---|
2844 | 1733 y Fq(In)12 b(addition,)g(re)o(gardless)h(of)g(what)f(happens)g(on) |
---|
2845 | g(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) |
---|
2847 | 31 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 |
---|
2854 | b(it)g(is)f(desirable)h(that)g(the)g(system)-31 2143 |
---|
2855 | y(satis\256es)f(the)g(follo)o(wing)f(property:)-31 2235 |
---|
2856 | y Fm(!\(AG\(\(car)q(_p)q(res)q(en)q(t)30 b(=)e(YES\))h(->)f(AF\(farm_l) |
---|
2857 | q(ig)q(ht)j(=)d(GREEN\)\)\);)-31 2381 y Fl(3.3)58 b(Language)15 |
---|
2858 | b(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 |
---|
2861 | b(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 |
---|
2863 | 2598 y Fp(F)6 b(G)14 b(q)h Fq(and)e Fp(AF)20 b(G)13 b(q)i |
---|
2864 | Fq(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 |
---|
2866 | 2654 y(like)f Fp(AF)20 b(AG)13 b(q)r Fq(,)i(b)o(ut)e(it)g(is)g(not)f |
---|
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 |
---|
2869 | 2711 y Fp(AF)j(AG)11 b(q)j Fq(is)d(false.)906 2835 y(22)p |
---|
2870 | eop |
---|
2871 | %%Page: 23 24 |
---|
2872 | 23 23 bop 40 11 a Fq(A)8 b(solution)f(would)g(be)i(to)f(use)g(a)h(more) |
---|
2873 | f(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 |
---|
2875 | b(be)h(e)o(xpressed)g(in)g(PL)l(TL)f(or)h(CTL*\).)21 |
---|
2876 | b(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 |
---|
2880 | 181 y(containment,)d(based)h(on)f(the)g(theory)g(of)h |
---|
2881 | Fp(!)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 |
---|
2883 | 237 y(always\272)f(property)g(using)f(an)i(automaton.)40 |
---|
2884 | 294 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 |
---|
2887 | b(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 |
---|
2889 | Fb(\()p Fp(T)6 b Fb(\))p Fq(,)15 b(where)h Fp(S)h Fq(is)e(an)-31 |
---|
2890 | 407 y Fp(!)r Fq(-automaton)8 b(representing)h(the)f(system,)h |
---|
2891 | Fp(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 |
---|
2893 | y(accepted)k(by)f(the)h(automaton.)j(It)d(is)e(a)i(fact)g(that)e |
---|
2894 | Fp(L)p Fb(\()p Fp(S)s Fb(\))i Fj(\022)h Fp(L)p Fb(\()p |
---|
2895 | Fp(T)6 b Fb(\))k Fq(is)h(equi)o(v)o(alent)g(to)g Fp(L)p |
---|
2896 | Fb(\()p Fp(S)s Fb(\))d Fj(\\)p 1461 424 100 2 v 11 w |
---|
2897 | Fp(L)p Fb(\()p Fp(T)e Fb(\))12 b(=)h Fj(;)p Fq(.)40 519 |
---|
2898 | y(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 |
---|
2902 | b(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) |
---|
2905 | g(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 |
---|
2909 | 802 y(must)c(complement)g(an)h Fp(!)r Fq(\261automaton)e(\()p |
---|
2910 | Fp(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 |
---|
2912 | y(usually)7 b(the)g(case)i(for)f(an)g(abstraction\).)15 |
---|
2913 | b(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) |
---|
2918 | g 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 |
---|
2920 | b(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 |
---|
2922 | b(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 |
---|
2924 | 1140 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 |
---|
2928 | b(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) |
---|
2932 | g(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 |
---|
2939 | 1536 y(there)f(is)f(an)g(in\256nite)g(path)g(\(notice)g(that)g |
---|
2940 | Fp(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 |
---|
2942 | eop |
---|
2943 | %%Page: 24 25 |
---|
2944 | 24 24 bop -31 323 a Fn(Chapter)20 b(4)-31 530 y Fs(F)m(ormal)27 |
---|
2945 | b(V)-10 b(eri\256cation)24 b(in)i(VIS)-31 753 y Fq(In)15 |
---|
2946 | b(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 |
---|
2948 | 809 y(v)o(eri\256cation.)i(The)12 b(main)f(sections)f(are:)26 |
---|
2949 | 903 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 |
---|
2951 | b(tra)o(v)o(ersal,)26 1091 y(3.)23 b(speci\256cation)11 |
---|
2952 | b(of)g(fairness)g(constraints,)26 1184 y(4.)23 b(language)11 |
---|
2953 | b(emptiness,)26 1278 y(5.)23 b(model)10 b(checking,)26 |
---|
2954 | 1372 y(6.)23 b(equi)o(v)o(alence)11 b(checking,)h(and)26 |
---|
2955 | 1466 y(7.)23 b(simulation.)-31 1613 y Fl(4.1)58 b(Repr)o(esenting)15 |
---|
2956 | b(the)g(System)g(f)o(or)f(V)-6 b(eri\256cation)-31 1716 |
---|
2957 | y 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 |
---|
2960 | y Fk(4.1.1)51 b(Building)11 b(the)h(Flattened)f(Network)-31 |
---|
2961 | 1985 y Fq(The)i(compound)e Fi(init)p 323 1985 14 2 v |
---|
2962 | 15 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 |
---|
2964 | 2041 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 |
---|
2968 | Fq(\))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 |
---|
2970 | b(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) |
---|
2972 | f(sub-module)f(inputs.)21 b(The)13 b Fi(print)p 970 2211 |
---|
2973 | V 16 w(hier)o(ar)n(c)o(hy)p 1160 2211 V 16 w(stats)f |
---|
2974 | Fq(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 |
---|
2977 | b(Other)11 b(useful)-31 2324 y(print)g(commands)f(are)i |
---|
2978 | Fi(print)p 436 2324 V 16 w(io)e Fq(and)i Fi(print)p 666 |
---|
2979 | 2324 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 |
---|
2982 | 2436 y(are)f(lo)o(wer)f(le)o(v)o(el)f(instantiations)f(of)i(modules.)23 |
---|
2983 | b(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 |
---|
2987 | y(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 |
---|
2990 | Fq(prints)e(the)h(name)h(of)f(the)g(current)h(node.)17 |
---|
2991 | b(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 |
---|
2993 | Fi(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 |
---|
2996 | 25 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 |
---|
2999 | y(network)10 b(\(netlist)g(of)h(multi-v)o(alued)f(logic)g(gates\).)17 |
---|
3000 | b(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 |
---|
3004 | b(The)8 b Fi(\257atten)p 549 181 14 2 v 15 w(hier)o(ar)n(c)o(hy)h |
---|
3005 | Fq(command)e(creates)i(this)e(network,)i(and)f(the)g |
---|
3006 | Fi(print)p 1542 181 V 15 w(network)g Fq(command)-31 237 |
---|
3007 | y(can)16 b(be)f(used)g(to)g(print)g(it.)28 b(Other)15 |
---|
3008 | b(related)g(commands)f(are)j Fi(print)p 1059 237 V 15 |
---|
3009 | w(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 |
---|
3011 | Fi(test)p 469 294 V 16 w(network)p 632 294 V 16 w(acyclic)h |
---|
3012 | Fq(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 |
---|
3015 | 430 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 |
---|
3019 | y(Model)g(name)f(=)h(main,)g(Instance)f(name)h(=)g(main)-31 |
---|
3020 | 627 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 |
---|
3022 | 667 y(vis>)h(print_models)-31 706 y(Model)g(name)f(=)h(hwy_control)-31 |
---|
3023 | 746 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 |
---|
3025 | 824 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 |
---|
3027 | 903 y(subckts)h(=)f(0)-31 943 y(Model)h(name)f(=)h(main)-31 |
---|
3028 | 982 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 |
---|
3030 | 1061 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 |
---|
3032 | 1140 y(subckts)h(=)f(0)-31 1179 y(Model)h(name)f(=)h(farm_control)-31 |
---|
3033 | 1219 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 |
---|
3035 | 1298 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 |
---|
3040 | 1574 y(hwy_control)-31 1613 y(sensor)-31 1653 y(timer)-31 |
---|
3041 | 1692 y(vis>)g(cd)g(hwy_control)-31 1731 y(vis>)g(print_io)-31 |
---|
3042 | 1771 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 |
---|
3044 | 1850 y(vis>)h(print_latches)-31 1889 y(hwy_light)-31 |
---|
3045 | 1929 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) |
---|
3047 | f(pseudo=0)g(const=12)h(edges=68)40 2105 y Fq(Note)16 |
---|
3048 | b(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) |
---|
3051 | c Fq(is)f(called)h(for)f(that)g(node.)40 2218 y(Also)g |
---|
3052 | Fi(\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) |
---|
3055 | h(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 |
---|
3057 | y(safely)d(using)e(the)h(option)f Fi(\257atten)p 513 |
---|
3058 | 2330 V 16 w(hier)o(ar)n(c)o(hy)i(-b)p Fq(,)g(after)p |
---|
3059 | 773 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 |
---|
3061 | b(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 |
---|
3066 | b(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 |
---|
3068 | 2711 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) |
---|
3070 | i(to)f(order)906 2835 y(25)p eop |
---|
3071 | %%Page: 26 27 |
---|
3072 | 26 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 |
---|
3074 | 1435 11 14 2 v 16 w(or)n(der)g Fq(command,)i(which)-31 |
---|
3075 | 68 y(gi)o(v)o(es)13 b(an)h(initial)d(ordering.)23 b(Networks)12 |
---|
3076 | b(with)h(combinational)e(c)o(ycles)j(cannot)f(be)h(ordered.)23 |
---|
3077 | b(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 |
---|
3079 | Fq(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 |
---|
3081 | 281 181 V 15 w(hier)o(ar)n(c)o(hy)p Fq(.)24 b(At)13 b(an)o(y)h(stage)f |
---|
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 |
---|
3084 | 237 V 17 w(or)n(der)g Fq(command.)-31 362 y Fk(4.1.3)51 |
---|
3085 | b(Computing)11 b(FSM)h(Inf)o(ormation)-31 449 y Fq(The)17 |
---|
3086 | b Fi(b)o(uild)p 154 449 V 15 w(partition)p 331 449 V |
---|
3087 | 14 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 |
---|
3089 | y(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 |
---|
3093 | b(The)16 b(MDDs)e(b)o(uilt)g(are)-31 619 y(stored)i(in)f(a)h(D)n(A)n(G) |
---|
3094 | h(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 |
---|
3096 | 675 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) |
---|
3100 | g(its)f(transiti)o(v)o(e)g(fanin.)16 b(Hence,)-31 788 |
---|
3101 | y(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 |
---|
3103 | Fq(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 |
---|
3105 | Fq(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 |
---|
3108 | Fq(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 |
---|
3110 | V 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 |
---|
3112 | 134 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 |
---|
3114 | Fq(method)h(is)g(used.)29 b(The)15 b(parti-)-31 1070 |
---|
3115 | y(tion)g(graph)g(can)h(be)g(printed)e(to)i(a)f(\256le)h(with)f(the)g |
---|
3116 | Fi(print)p 879 1070 V 15 w(partition)f Fq(command.)28 |
---|
3117 | b(Another)15 b(related)h(command)e(is)h(the)-31 1127 |
---|
3118 | y Fi(print)p 62 1127 V 15 w(partition)p 239 1127 V 15 |
---|
3119 | w(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 |
---|
3122 | 1277 y(1.)23 b Fi(\257atten)p 201 1277 V 15 w(hier)o(ar)n(c)o(hy)p |
---|
3123 | Fq(,)26 1371 y(2.)g Fi(static)p 186 1371 V 15 w(or)n(der)p |
---|
3124 | Fq(,)12 b(and)26 1465 y(3.)23 b Fi(b)o(uild)p 180 1465 |
---|
3125 | V 15 w(partition)p 357 1465 V 15 w(mdds)p Fq(.)-31 1554 |
---|
3126 | y 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 |
---|
3128 | 1633 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 |
---|
3130 | 1751 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 |
---|
3133 | 1955 y Fk(4.1.4)51 b(Advanced)11 b(Ordering)-31 2042 |
---|
3134 | y Fq(Dynamic)i(ordering)g(of)h(v)o(ariables)f(may)g(be)g(enabled)h(and) |
---|
3135 | f(disabled)g(using)f(the)i Fi(dynamic)p 1436 2042 V 16 |
---|
3136 | w(var)p 1513 2042 V 16 w(or)n(dering)f Fq(command.)-31 |
---|
3137 | 2099 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 |
---|
3140 | 299 2155 V 15 w(hier)o(ar)n(c)o(hy)h Fq(and)g Fi(static)p |
---|
3141 | 682 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 |
---|
3143 | 2212 y(for)j(dynamic)g(reordering)g(are)g Fi(window)g |
---|
3144 | Fq(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) |
---|
3146 | f(the)h(MDDs)e(dramatically)m(.)40 2324 y(Dynamic)15 |
---|
3147 | b(ordering)h(is)f(best)h(in)n(v)o(oked)e(e)o(xplicitly)h(\(using)g(the) |
---|
3148 | h Fi(dynamic)p 1237 2324 V 16 w(var)p 1314 2324 V 16 |
---|
3149 | w(or)n(dering)f(-f)h(<method>)f Fq(option\))-31 2381 |
---|
3150 | y(after)e(the)f Fi(b)o(uild)p 230 2381 V 15 w(partition)p |
---|
3151 | 407 2381 V 15 w(mdds)f Fq(and)h Fi(print)p 698 2381 V |
---|
3152 | 16 w(img)p 783 2381 V 16 w(info)f Fq(commands.)18 b(If)13 |
---|
3153 | b(dynamic)e(ordering)h(\256nds)g(a)h(good)e(ordering,)-31 |
---|
3154 | 2437 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 |
---|
3156 | Fq(\))g(and)h(reuse)g(it)f(\(using)f Fi(static)p 1727 |
---|
3157 | 2437 V 16 w(or)n(der)h(-s)-31 2494 y(<method>)d(<\256le>)p |
---|
3158 | Fq(\).)23 b(W)n(ith)13 b(option)f Fi(dynamic)p 737 2494 |
---|
3159 | V 16 w(var)p 814 2494 V 16 w(or)n(dering)h(-e)h(<method>)f |
---|
3160 | Fq(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 |
---|
3163 | 2607 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 |
---|
3166 | 2835 y(26)p eop |
---|
3167 | %%Page: 27 28 |
---|
3168 | 27 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 |
---|
3172 | 169 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) |
---|
3175 | h(Release)f(1.0)h(\(compiled)f(13-Dec-95)g(at)h(8:36)g(AM\))-31 |
---|
3176 | 327 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 |
---|
3178 | b(type)238 b(mddId)20 b(vals)g(levs)-31 485 y(sensor.rand_choice)39 |
---|
3179 | b(pseudo-input)178 b(0)80 b(2)20 b(\(0\))-31 524 y(timer.state)179 |
---|
3180 | b(latch)318 b(1)80 b(3)20 b(\(1,)f(2\))-31 563 y(hwy_light)219 |
---|
3181 | b(latch)318 b(2)80 b(3)20 b(\(3,)f(4\))-31 603 y(car_present)179 |
---|
3182 | b(latch)318 b(3)80 b(2)20 b(\(5\))-31 642 y(car_present$NS)119 |
---|
3183 | b(shadow)298 b(4)80 b(2)20 b(\(6\))-31 682 y(farm_light)199 |
---|
3184 | b(latch)318 b(5)80 b(3)20 b(\(7,)f(8\))-31 721 y(timer.rand_choice)59 |
---|
3185 | b(pseudo-input)178 b(6)80 b(2)20 b(\(9\))-31 761 y(timer.state$NS)119 |
---|
3186 | b(shadow)298 b(7)80 b(3)20 b(\(10,)f(11\))-31 800 y(farm_light$NS)139 |
---|
3187 | b(shadow)298 b(8)80 b(3)20 b(\(12,)f(13\))-31 839 y(hwy_light$NS)159 |
---|
3188 | b(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 |
---|
3191 | y(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 |
---|
3193 | 1037 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 |
---|
3195 | 1116 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 |
---|
3197 | b(type)238 b(mddId)20 b(vals)g(levs)-31 1273 y(sensor.rand_choice)39 |
---|
3198 | b(pseudo-input)178 b(0)80 b(2)20 b(\(0\))-31 1313 y(timer.state)179 |
---|
3199 | b(latch)318 b(1)80 b(3)20 b(\(1,)f(2\))-31 1352 y(hwy_light)219 |
---|
3200 | b(latch)318 b(2)80 b(3)20 b(\(3,)f(6\))-31 1392 y(farm_light)199 |
---|
3201 | b(latch)318 b(5)80 b(3)20 b(\(4,)f(5\))-31 1431 y(car_present$NS)119 |
---|
3202 | b(shadow)298 b(4)80 b(2)20 b(\(7\))-31 1470 y(car_present)179 |
---|
3203 | b(latch)318 b(3)80 b(2)20 b(\(8\))-31 1510 y(timer.rand_choice)59 |
---|
3204 | b(pseudo-input)178 b(6)80 b(2)20 b(\(9\))-31 1549 y(timer.state$NS)119 |
---|
3205 | b(shadow)298 b(7)80 b(3)20 b(\(10,)f(11\))-31 1589 y(farm_light$NS)139 |
---|
3206 | b(shadow)298 b(8)80 b(3)20 b(\(12,)f(13\))-31 1628 y(hwy_light$NS)159 |
---|
3207 | b(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 |
---|
3209 | y(/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 |
---|
3211 | 1904 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 |
---|
3213 | y(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 |
---|
3215 | 2101 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 |
---|
3217 | 2180 y(#)g(generated:)f(Wed)h(Dec)g(13)f(14:34:08)h(1995)-31 |
---|
3218 | 2220 y(#)-31 2259 y(#)g(name)299 b(type)238 b(mddId)20 |
---|
3219 | b(vals)g(levs)-31 2299 y(sensor.rand_choice)39 b(pseudo-input)178 |
---|
3220 | b(0)80 b(2)20 b(\(0\))-31 2338 y(timer.state)179 b(latch)318 |
---|
3221 | b(1)80 b(3)20 b(\(1,)f(2\))-31 2377 y(hwy_light)219 b(latch)318 |
---|
3222 | b(2)80 b(3)20 b(\(3,)f(4\))-31 2417 y(farm_light)199 |
---|
3223 | b(latch)318 b(3)80 b(3)20 b(\(5,)f(6\))-31 2456 y(car_present$NS)119 |
---|
3224 | b(shadow)298 b(4)80 b(2)20 b(\(7\))-31 2496 y(car_present)179 |
---|
3225 | b(latch)318 b(5)80 b(2)20 b(\(8\))-31 2535 y(timer.rand_choice)59 |
---|
3226 | b(pseudo-input)178 b(6)80 b(2)20 b(\(9\))-31 2575 y(timer.state$NS)119 |
---|
3227 | b(shadow)298 b(7)80 b(3)20 b(\(10,)f(11\))-31 2614 y(farm_light$NS)139 |
---|
3228 | b(shadow)298 b(8)80 b(3)20 b(\(12,)f(13\))-31 2654 y(hwy_light$NS)159 |
---|
3229 | b(shadow)298 b(9)80 b(3)20 b(\(14,)f(15\))906 2835 y |
---|
3230 | Fq(27)p eop |
---|
3231 | %%Page: 28 29 |
---|
3232 | 28 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 |
---|
3237 | 124 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 |
---|
3239 | b(Therefore)c(when)f(the)f(ordering)-31 181 y(found)16 |
---|
3240 | b(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 |
---|
3242 | 237 y(necessarily)e(occupy)f(the)g(same)g(le)o(v)o(els)g(as)h(reported) |
---|
3243 | g(in)f(the)g(\256le)h Fi(tlc.sift)p Fq(.)22 b(See)15 |
---|
3244 | b(for)f(e)o(xample)f(v)o(ariable)h Fm(hwy)p 1738 237 |
---|
3245 | 14 2 v 17 w(light)-31 294 y Fq(in)h(the)g(e)o(xample)h(abo)o(v)o(e.)29 |
---|
3246 | b(The)16 b(only)e(information)h(that)f(is)h(used)g(from)h(the)f(\256le) |
---|
3247 | h Fi(tlc.sift)e Fq(is)h(the)g(order)h(of)f(the)h(MDD)-31 |
---|
3248 | 350 y(v)o(ariables)d(in)g(the)g(\256rst)h(column.)21 |
---|
3249 | b(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 |
---|
3251 | 407 y(MDD)e(v)o(ariables,)h(BDD)f(v)o(ariables)h(which)f(encode)g(them) |
---|
3252 | g(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) |
---|
3254 | j(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 |
---|
3256 | b(Ef)o(\256cient)17 b(tra)o(v)o(ersal)g(requires)f(grouping)f(the)-31 |
---|
3257 | 713 y(MDDs,)h(in)e(a)h(manner)g(optimal)e(for)j(tra)o(v)o(ersal.)27 |
---|
3258 | b(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) |
---|
3261 | f(is)i(included)f(in)g(an)h(FSM)g(data)g(structure)-31 |
---|
3262 | 826 y(created)j(in)f(the)f Fi(compute)p 395 826 V 17 |
---|
3263 | w(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 |
---|
3265 | 883 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.) |
---|
3268 | 18 b(On)12 b(subsequent)f(calls)g(to)h Fi(compute)p 1184 |
---|
3269 | 939 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 |
---|
3274 | 1109 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 |
---|
3276 | Fi(set)f Fq(command)-31 1165 y(lists)g(these)h(options.)15 |
---|
3277 | b(Use)8 b(the)g(command)g Fi(set)g(image)p 821 1165 V |
---|
3278 | 15 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 |
---|
3281 | w(hier)o(ar)n(c)o(hy)g Fq(command)1212 1205 y Ft(1)1230 |
---|
3282 | 1221 y Fq(\).)25 b(The)14 b Fi(print)p 1459 1221 V 16 |
---|
3283 | w(img)p 1544 1221 V 16 w(info)f Fq(prints)g(current)-31 |
---|
3284 | 1278 y(image)f(information.)17 b(Notice)12 b(that)f(while)h |
---|
3285 | Fi(print)p 759 1278 V 15 w(partition)p 936 1278 V 14 |
---|
3286 | w(stats)f Fq(prints)g(information)g(on)g(the)h(ne)o(xt)g(state)g |
---|
3287 | Fr(functions)p Fq(,)-31 1334 y Fi(print)p 62 1334 V 15 |
---|
3288 | w(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 |
---|
3290 | b(The)17 b(command)g Fi(print)p 1721 1334 V 15 w(img)p |
---|
3291 | 1805 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 |
---|
3294 | 1447 y(a)h(partitioned)e(transition)g(relation.)16 b(It)11 |
---|
3295 | b(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 |
---|
3297 | 127 1504 V 16 w(var)p 204 1504 V 17 w(or)n(dering)f(-f)i(sift)p |
---|
3298 | Fq(\))e(at)i(this)e(point)h(to)g(reorder)h(these)g(relation)f(MDDs.)19 |
---|
3299 | b(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 |
---|
3302 | 1617 y(minimize)10 b(the)h(BDD)h(representation.)40 1673 |
---|
3303 | y(The)f(follo)o(wing)f(illustrates)g(the)h(command)g |
---|
3304 | Fi(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 |
---|
3307 | 1802 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 |
---|
3309 | y(vis>)g(init_verify)-31 1920 y(vis>)g(compute_reach)f(-v)h(1)-31 |
---|
3310 | 1959 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 |
---|
3314 | y(\(Use)g("set)f(image_cluster_size)g(value)g(")h(to)g(set)g(this)f(to) |
---|
3315 | h(desired)f(value\))129 2117 y(Verbosity)g(=)h(0)288 |
---|
3316 | 2157 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 |
---|
3320 | y(Shared)g(Bdd)h(Size)f(of)80 b(1)20 b(components)f(is)179 |
---|
3321 | b(97)-31 2314 y(********************************)-31 |
---|
3322 | 2354 y(Reachability)19 b(analysis)h(results:)-31 2393 |
---|
3323 | y(FSM)g(depth)f(=)359 b(8)-31 2433 y(reachable)19 b(states)h(=)199 |
---|
3324 | b(20)-31 2472 y(MDD)20 b(size)f(=)379 b(8)-31 2512 y(analysis)19 |
---|
3325 | b(time)h(=)279 b(0)p -31 2548 768 2 v 22 2575 a Fg(1)36 |
---|
3326 | 2591 y Ff(Whene)o(v)o(er)9 b(a)g(hierarchy)f(is)h(reinitialized,)h(the) |
---|
3327 | f(option)g Fa(\257atten)p 861 2591 12 2 v 13 w(hier)o(ar)o(c)o(hy)e(-b) |
---|
3328 | j Ff(can)e(be)g(used)g(safely)h(for)h(ef)o(\256cienc)o(y)n(.)906 |
---|
3329 | 2835 y Fq(28)p eop |
---|
3330 | %%Page: 29 30 |
---|
3331 | 29 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 |
---|
3334 | b(Each)16 b(fairness)f(condition)f(speci\256es)i(a)-31 |
---|
3335 | 172 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 |
---|
3339 | b(constraints)e(are)j(called)e(\252B)t(\310)-19 b(uchi)20 |
---|
3340 | b(fairness\272)-31 284 y(constraints.)41 b(F)o(airness)20 |
---|
3341 | b(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 |
---|
3343 | 341 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 |
---|
3347 | Fq(.)29 b(A)14 b(fairness)g(\256le)h(is)f(read)h(in)e(by)h(the)-31 |
---|
3348 | 454 y Fi(r)n(ead)p 54 454 V 17 w(fairness)g Fq(command.)30 |
---|
3349 | b(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 |
---|
3351 | b(The)-31 510 y Fi(r)n(eset)p 59 510 V 17 w(fairness)11 |
---|
3352 | b 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 |
---|
3354 | 567 y(condition)d(that)h(contains)g(all)g(states.)40 |
---|
3355 | 623 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) |
---|
3358 | f(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 |
---|
3360 | 883 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 |
---|
3366 | y(supports)11 b(the)h(command)f Fi(lang)p 481 1099 V |
---|
3367 | 16 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,) |
---|
3372 | g(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 |
---|
3374 | 1269 y(for)i(emptiness.)k(Before)d(in)n(v)o(oking)d(model)h(checking,)h |
---|
3375 | Fi(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 |
---|
3377 | b(is)h(pertinent)f(because)i(the)f(fairness)g(constraint)f(speci\256ed) |
---|
3378 | h(may)g(make)g(the)g(entire)g(system)f(\252unfair\272,)-31 |
---|
3379 | 1382 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 |
---|
3385 | 1551 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 |
---|
3389 | 1680 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 |
---|
3391 | y(vis>)g(init_verify)-31 1798 y(vis>)g(read_fairness)f(tlc.fair)-31 |
---|
3392 | 1837 y(vis>)h(print_fairness)-31 1877 y(Fairness)f(constraints:)-31 |
---|
3393 | 1916 y(!\(timer.state=START\);)-31 1956 y(!\(timer.state=SHORT\);)-31 |
---|
3394 | 1995 y(vis>)h(lang_empty)f(-i)-31 2035 y(#)h(LE:)g(language)f(is)h(not) |
---|
3395 | g(empty)-31 2074 y(#)g(LE:)g(generating)f(path)h(to)f(fair)h(cycle)-31 |
---|
3396 | 2113 y(#)g(LE:)g(path)f(to)h(fair)g(cycle:)-31 2232 y(--State)g(0:)-31 |
---|
3397 | 2271 y(car_present:NO)-31 2311 y(farm_light:RED)-31 2350 |
---|
3398 | y(hwy_light:GREEN)-31 2389 y(timer.state:START)40 2496 |
---|
3399 | y 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 |
---|
3403 | Fp(car)p 1179 2552 V 17 w(pr)q(esent)22 b Fq(:)e Fp(N)5 |
---|
3404 | b(O)q Fq(,)19 b(the)e(farm)g(light)f(is)h(red)-31 2609 |
---|
3405 | y Fp(f)5 b(ar)q(m)p 85 2609 V 16 w(l)q(ig)r(ht)14 b Fq(:)g |
---|
3406 | Fp(RE)s(D)q Fq(,)f(the)f(highway)g(light)f(is)i(green)g |
---|
3407 | Fp(hw)q(y)p 949 2609 V 18 w(l)q(ig)r(ht)h Fq(:)g Fp(GRE)s(E)s(N)5 |
---|
3408 | b Fq(,)11 b(and)i(the)f(timer)h(is)f(in)g(its)g(start)g(state)-31 |
---|
3409 | 2665 y Fp(timer)o(:state)i Fq(:)f Fp(S)s(T)6 b(ART)g |
---|
3410 | Fq(.)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 |
---|
3412 | 2835 y(29)p eop |
---|
3413 | %%Page: 30 31 |
---|
3414 | 30 30 bop -31 11 a Fq(and)14 b(is)f(described)h(belo)o(w)m(.)24 |
---|
3415 | b(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 |
---|
3417 | 68 y(ha)o(v)o(e)e(changed)g(in)f(the)g(last)g(step)g(are)h(printed.)-31 |
---|
3418 | 147 y Fd(#)20 b(LE:)g(fair)f(cycle:)-31 266 y(--State)h(0:)-31 |
---|
3419 | 305 y(car_present:NO)-31 345 y(farm_light:RED)-31 384 |
---|
3420 | y(hwy_light:GREEN)-31 423 y(timer.state:START)-31 502 |
---|
3421 | y(--Goes)g(to)f(state)h(1:)-31 542 y(car_present:YES)-31 |
---|
3422 | 581 y(timer.state:SHORT)-31 660 y(--On)g(input:)-31 699 |
---|
3423 | y(sensor.rand_choice:1)-31 739 y(timer.rand_choice:1)-31 |
---|
3424 | 818 y(--Goes)g(to)f(state)h(2:)-31 857 y(timer.state:LONG)-31 |
---|
3425 | 936 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 |
---|
3428 | 1330 y(--Goes)g(to)f(state)h(4:)-31 1370 y(timer.state:SHORT)-31 |
---|
3429 | 1449 y(--On)g(input:)-31 1488 y(timer.rand_choice:1)-31 |
---|
3430 | 1567 y(--Goes)g(to)f(state)h(5:)-31 1606 y(car_present:NO)-31 |
---|
3431 | 1646 y(farm_light:GREEN)-31 1685 y(hwy_light:RED)-31 |
---|
3432 | 1725 y(timer.state:START)-31 1804 y(--On)g(input:)-31 |
---|
3433 | 1843 y(sensor.rand_choice:0)-31 1883 y(timer.rand_choice:0)-31 |
---|
3434 | 1961 y(--Goes)g(to)f(state)h(6:)-31 2001 y(car_present:YES)-31 |
---|
3435 | 2040 y(farm_light:YELLOW)-31 2119 y(--On)g(input:)-31 |
---|
3436 | 2159 y(sensor.rand_choice:1)-31 2237 y(--Goes)g(to)f(state)h(7:)-31 |
---|
3437 | 2277 y(timer.state:SHORT)-31 2356 y(--On)g(input:)-31 |
---|
3438 | 2395 y(timer.rand_choice:1)-31 2474 y(--Goes)g(to)f(state)h(8:)-31 |
---|
3439 | 2513 y(car_present:NO)-31 2553 y(farm_light:RED)-31 2592 |
---|
3440 | y(hwy_light:GREEN)-31 2632 y(timer.state:START)-31 2711 |
---|
3441 | y(--On)g(input:)906 2835 y Fq(30)p eop |
---|
3442 | %%Page: 31 32 |
---|
3443 | 31 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 |
---|
3446 | b(Model)g(Checking)-31 390 y Fq(The)d Fi(model)p 164 |
---|
3447 | 390 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) |
---|
3451 | q(ch)q(/vi)q(s/d)q(oc)q(/ct)q(l/)q(ctl)-31 502 y(ctl.html)p |
---|
3452 | Fq(.)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 |
---|
3454 | b(follo)o(wing)f(illustrates)f(the)-31 559 y(functioning)g(of)i |
---|
3455 | Fi(model)p 356 559 V 16 w(c)o(hec)o(k)h Fq(on)e(the)g(T)n(raf)o(\256c)i |
---|
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 |
---|
3461 | 740 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 |
---|
3463 | y(vis>)g(init_verify)-31 859 y(vis>)g(model_check)f(-i)h(tlc.ctl)-31 |
---|
3464 | 977 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 |
---|
3470 | 1307 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 |
---|
3474 | 1528 y(car_present:NO)-31 1567 y(farm_light:RED)-31 1606 |
---|
3475 | y(hwy_light:GREEN)-31 1646 y(timer.state:START)-31 1725 |
---|
3476 | y(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 |
---|
3480 | 1883 y(--State)g(0:)-31 1922 y(car_present:NO)-31 1961 |
---|
3481 | y(farm_light:RED)-31 2001 y(hwy_light:GREEN)-31 2040 |
---|
3482 | y(timer.state:START)-31 2119 y(--Goes)g(to)f(state)h(1:)-31 |
---|
3483 | 2159 y(car_present:YES)-31 2198 y(timer.state:SHORT)-31 |
---|
3484 | 2277 y(--On)g(input:)-31 2316 y(sensor.rand_choice:1)-31 |
---|
3485 | 2356 y(timer.rand_choice:1)-31 2435 y(--Goes)g(to)f(state)h(2:)-31 |
---|
3486 | 2474 y(timer.state:LONG)-31 2553 y(--On)g(input:)-31 |
---|
3487 | 2592 y(<Unchanged>)-31 2671 y(--State)-31 2711 y(car_present:YES)906 |
---|
3488 | 2835 y Fq(31)p eop |
---|
3489 | %%Page: 32 33 |
---|
3490 | 32 32 bop -31 11 a Fd(farm_light:RED)-31 51 y(hwy_light:GREEN)-31 |
---|
3491 | 90 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 |
---|
3493 | 287 y(--State)-31 327 y(car_present:YES)-31 366 y(farm_light:RED)-31 |
---|
3494 | 406 y(hwy_light:GREEN)-31 445 y(timer.state:LONG)-31 |
---|
3495 | 524 y(passes)g(\(car_present=YES)e(*)i(timer.state=LONG\))-31 |
---|
3496 | 642 y(--State)-31 682 y(car_present:YES)-31 721 y(farm_light:RED)-31 |
---|
3497 | 761 y(hwy_light:GREEN)-31 800 y(timer.state:LONG)-31 |
---|
3498 | 879 y(passes)g(car_present=YES)-31 997 y(--State)-31 |
---|
3499 | 1037 y(car_present:YES)-31 1076 y(farm_light:RED)-31 |
---|
3500 | 1116 y(hwy_light:GREEN)-31 1155 y(timer.state:LONG)-31 |
---|
3501 | 1234 y(passes)g(timer.state=LONG)-31 1313 y(--State)-31 |
---|
3502 | 1352 y(car_present:YES)-31 1392 y(farm_light:RED)-31 |
---|
3503 | 1431 y(hwy_light:GREEN)-31 1470 y(timer.state:LONG)-31 |
---|
3504 | 1549 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 |
---|
3506 | 1707 y(--Fair)h(path)f(stem:)-31 1786 y(--State)h(0:)-31 |
---|
3507 | 1825 y(car_present:YES)-31 1865 y(farm_light:RED)-31 |
---|
3508 | 1904 y(hwy_light:GREEN)-31 1944 y(timer.state:LONG)-31 |
---|
3509 | 2023 y(--Goes)g(to)f(state)h(1:)-31 2062 y(hwy_light:YELLOW)-31 |
---|
3510 | 2101 y(timer.state:START)-31 2180 y(--On)g(input:)-31 |
---|
3511 | 2220 y(sensor.rand_choice:1)-31 2259 y(timer.rand_choice:0)-31 |
---|
3512 | 2338 y(--Fair)g(path)f(cycle:)-31 2417 y(--State)h(0:)-31 |
---|
3513 | 2456 y(car_present:YES)-31 2496 y(farm_light:RED)-31 |
---|
3514 | 2535 y(hwy_light:YELLOW)-31 2575 y(timer.state:START)-31 |
---|
3515 | 2654 y(--Goes)g(to)f(state)h(1:)-31 2693 y(<Unchanged>)906 |
---|
3516 | 2835 y Fq(32)p eop |
---|
3517 | %%Page: 33 34 |
---|
3518 | 33 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 |
---|
3521 | b(The)13 b(command)g Fi(model)p 1491 236 14 2 v 16 w(c)o(hec)o(k)i |
---|
3522 | Fq(continues)d(with)-31 292 y(the)f(ne)o(xt)h(formula.)-31 |
---|
3523 | 382 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 |
---|
3525 | b(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 |
---|
3531 | 779 y Fq(This)10 b(indicates)h(that)g(the)g(property)g(passed)g(\(i.e.) |
---|
3532 | 18 b(the)11 b(system)f(satis\256es)h(the)h(property\).)-31 |
---|
3533 | 904 y Fk(4.5.2)51 b(Deb)o(ugging)11 b(f)o(or)h(Model)g(Checking)-31 |
---|
3534 | 991 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,) |
---|
3536 | h(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) |
---|
3538 | h(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 |
---|
3541 | 1161 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 |
---|
3544 | b(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 |
---|
3546 | b(may)-31 1274 y(be)d(recti\256ed)g(by)f(reading)g(in)g(the)g(fairness) |
---|
3547 | g(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 |
---|
3549 | b(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 |
---|
3552 | Fm(!\(timer.s)q(ta)q(te=)q(ST)q(ART)q(\))k Fq(disallo)o(ws)12 |
---|
3553 | b(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 |
---|
3555 | 1572 y(farm_light:RED)-31 1611 y(hwy_light:YELLOW)-31 |
---|
3556 | 1651 y(timer.state:START)-31 1730 y(--On)20 b(input:)-31 |
---|
3557 | 1769 y(sensor.rand_choice:1)-31 1808 y(timer.rand_choice:0)40 |
---|
3558 | 1915 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 |
---|
3563 | 2060 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 |
---|
3566 | 2258 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 |
---|
3572 | 2835 y Fq(33)p eop |
---|
3573 | %%Page: 34 35 |
---|
3574 | 34 34 bop -31 11 a Fk(4.5.3)51 b(Checking)11 b(In)n(variants)-31 |
---|
3575 | 99 y Fq(An)j(important)f(class)h(of)g(CTL)g(formulas)f(is)h |
---|
3576 | Fi(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 |
---|
3578 | b(a)-31 155 y(quanti\256er)o(-free)i(formula.)26 b(The)14 |
---|
3579 | b(semantics)g(of)h Fp(AG)f(f)20 b Fq(is)14 b(that)g Fp(f)19 |
---|
3580 | b Fq(is)14 b(true)h(in)f(all)g(reachable)i(states.)26 |
---|
3581 | b(The)14 b(command)-31 212 y Fi(c)o(hec)o(k)p 73 212 |
---|
3582 | 14 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 |
---|
3584 | b(the)h(follo)o(wing)e(e)o(xample,)-31 268 y Fp(f)17 |
---|
3585 | b Fq(is)11 b(the)g(formula)-31 361 y Fm(!\(\(farm_l)q(ig)q(ht)31 |
---|
3586 | b(=)d(GREEN\))h(*)f(\(hwy_ligh)q(t)i(=)e(GREEN\)\);)-31 |
---|
3587 | 455 y Fq(contained)11 b(in)g(the)g(\256le)h Fi(tlc.in)n(var)p |
---|
3588 | Fq(.)-31 543 y Fd(UC)20 b(Berkeley,)f(VIS)h(Release)f(1.0)h(\(compiled) |
---|
3589 | f(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 |
---|
3594 | 905 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 |
---|
3600 | 1105 y(or)h(indirectly\))e(ha)o(v)o(e)i(been)g(remo)o(v)o(ed.)40 |
---|
3601 | 1161 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 |
---|
3604 | b(<\256le>)p Fq(.)16 b Fi(<\256le>)10 b Fq(contains)f(the)h(names)g(of) |
---|
3605 | g(v)o(ariables)g(to)f(abstract.)17 b(F)o(or)11 b(each)g(v)o(ariable)f |
---|
3606 | Fm(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 |
---|
3609 | 1331 y(dri)o(v)o(en)d(by)g Fm(x)p Fq(.)17 b(Hence,)12 |
---|
3610 | b(the)f(node)g Fm(x)h Fq(will)e(not)h(ha)o(v)o(e)g(an)o(y)h(fanouts;)e |
---|
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 |
---|
3613 | b(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 |
---|
3617 | b(sho)o(w)e(an)i(e)o(xample,)h(where)e(the)h(\256le)f |
---|
3618 | Fm(tlc.abstr)q(ac)q(t)j Fq(contains)d(the)g(v)o(ariable)g |
---|
3619 | Fm(timer.sta)q(rt)p Fq(.)35 b(By)-31 1556 y(abstracting)9 |
---|
3620 | b 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 |
---|
3624 | Fq(:)-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 |
---|
3626 | Fq(This)16 b(property)g(refers)h(only)f(to)g(the)g(timer)g(module.)31 |
---|
3627 | b(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) |
---|
3631 | g(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 |
---|
3633 | 2040 y(Sourcing)f(.visrc)h(of)g(Tiziano)-31 2080 y(vis>)g(read_blif_mv) |
---|
3634 | f(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 |
---|
3636 | 2198 y(vis>)i(static_order)-31 2237 y(vis>)g(build_partition_mdds)-31 |
---|
3637 | 2277 y(vis>)g(model_check)f(-i)h(-r)f(tlc.reduce.ctl)-31 |
---|
3638 | 2356 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 |
---|
3640 | 2513 y(--State)-31 2553 y(car_present:NO)-31 2592 y(farm_light:RED)-31 |
---|
3641 | 2632 y(hwy_light:GREEN)-31 2671 y(timer.state:START)906 |
---|
3642 | 2835 y Fq(34)p eop |
---|
3643 | %%Page: 35 36 |
---|
3644 | 35 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 |
---|
3647 | 130 y(--State)-31 169 y(car_present:NO)-31 209 y(farm_light:RED)-31 |
---|
3648 | 248 y(hwy_light:GREEN)-31 287 y(timer.state:START)-31 |
---|
3649 | 366 y(fails)h(\(timer.state=START)e(->)i(AF\(timer.state=LONG\)\))-31 |
---|
3650 | 485 y(--State)-31 524 y(car_present:NO)-31 563 y(farm_light:RED)-31 |
---|
3651 | 603 y(hwy_light:GREEN)-31 642 y(timer.state:START)-31 |
---|
3652 | 721 y(passes)g(timer.state=START)-31 800 y(--State)-31 |
---|
3653 | 839 y(car_present:NO)-31 879 y(farm_light:RED)-31 918 |
---|
3654 | y(hwy_light:GREEN)-31 958 y(timer.state:START)-31 1037 |
---|
3655 | y(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 |
---|
3657 | 1194 y(--Fair)h(path)f(stem:)-31 1273 y(--State)h(0:)-31 |
---|
3658 | 1313 y(car_present:NO)-31 1352 y(farm_light:RED)-31 1392 |
---|
3659 | y(hwy_light:GREEN)-31 1431 y(timer.state:START)-31 1510 |
---|
3660 | y(--Fair)g(path)f(cycle:)-31 1589 y(--State)h(0:)-31 |
---|
3661 | 1628 y(car_present:NO)-31 1668 y(farm_light:RED)-31 1707 |
---|
3662 | y(hwy_light:GREEN)-31 1746 y(timer.state:START)-31 1825 |
---|
3663 | y(--Goes)g(to)f(state)h(1:)-31 1865 y(<Unchanged>)-31 |
---|
3664 | 1944 y(--On)g(input:)-31 1983 y(sensor.rand_choice:0)-31 |
---|
3665 | 2023 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 |
---|
3668 | y(\(using)i(the)g Fi(cd)h Fq(command\))f(to)g(the)h(timer)f(node)g(and) |
---|
3669 | h(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 |
---|
3672 | b(Notice)12 b(that)g(the)h(names)f(of)g(v)o(ariables)-31 |
---|
3673 | 2292 y(in)f(the)g(CTL)h(property)f(in)g(the)g(\256le)h |
---|
3674 | Fm(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 |
---|
3679 | b(Berkeley,)f(VIS)h(Release)f(1.0)h(\(compiled)f(14-Dec-95)g(at)h(1:04) |
---|
3680 | g(AM\))-31 2592 y(Sourcing)f(.visrc)h(of)g(Tiziano)-31 |
---|
3681 | 2632 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 |
---|
3683 | y(vis>)g(cd)g(timer)906 2835 y Fq(35)p eop |
---|
3684 | %%Page: 36 37 |
---|
3685 | 36 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 |
---|
3688 | y 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 |
---|
3690 | 375 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 |
---|
3693 | b(The)10 b(command)f Fi(comb)p 1563 478 14 2 v 16 w(verify)h |
---|
3694 | Fq(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 |
---|
3697 | 591 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 |
---|
3702 | 704 y(complete)f(support)f(for)i(the)f(roots.)16 b(The)11 |
---|
3703 | b(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 |
---|
3707 | 817 y(are)17 b(the)f(combinational)e(inputs.)29 b(T)l(wo)16 |
---|
3708 | b(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 |
---|
3711 | b(An)12 b(important)g(usage)h(of)g Fi(comb)p 1680 873 |
---|
3712 | V 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 |
---|
3715 | 986 y(The)17 b(command)e Fi(seq)p 388 986 V 17 w(verify)h |
---|
3716 | Fq(tests)g(the)h(sequential)f(equi)o(v)o(alence)h(of)f(two)g(networks.) |
---|
3717 | 32 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 |
---|
3721 | b(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.) |
---|
3724 | 20 b(Sequential)12 b(v)o(eri\256cation)h(is)f(done)g(by)-31 |
---|
3725 | 1212 y(b)o(uilding)g(the)i(product)f(\256nite)h(state)f(machine.)24 |
---|
3726 | b(The)13 b(command)g(v)o(eri\256es)i(whether)f(an)o(y)g(state,)g(where) |
---|
3727 | g(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 |
---|
3730 | 1325 y(happens,)h(a)f(deb)o(ug)g(trace)i(is)d(pro)o(vided.)-31 |
---|
3731 | 1471 y Fl(4.7)58 b(Simulation)-31 1574 y Fq(Simulation,)14 |
---|
3732 | b(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 |
---|
3734 | b(After)14 b(the)-31 1631 y(command)c Fi(b)o(uild)p 257 |
---|
3735 | 1631 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 |
---|
3739 | Fq(,)k(via)c(the)g Fi(simulate)f Fq(command.)33 b(Thus,)19 |
---|
3740 | b(VIS)-31 1744 y(encompasses)c(both)g(formal)h(v)o(eri\256cation)g(and) |
---|
3741 | f(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 |
---|
3744 | b(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 |
---|
3746 | 1961 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 |
---|
3748 | 2080 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 |
---|
3750 | 2159 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 |
---|
3752 | 2316 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 |
---|
3754 | 2474 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 |
---|
3757 | b(GREEN)39 b(START)20 b(;)-31 2671 y(1)g(1)g(;)g(NO)39 |
---|
3758 | b(RED)80 b(GREEN)39 b(START)20 b(;)-31 2711 y(0)g(0)g(;)g(YES)f(RED)80 |
---|
3759 | b(GREEN)39 b(SHORT)20 b(;)906 2835 y Fq(36)p eop |
---|
3760 | %%Page: 37 38 |
---|
3761 | 37 37 bop -31 11 a Fd(1)20 b(0)g(;)g(NO)39 b(RED)80 b(GREEN)39 |
---|
3762 | b(SHORT)20 b(;)-31 51 y(1)g(1)g(;)g(YES)f(RED)80 b(GREEN)39 |
---|
3763 | b(SHORT)20 b(;)-31 90 y(0)g(1)g(;)g(YES)f(RED)80 b(GREEN)39 |
---|
3764 | b(LONG)h(;)-31 130 y(0)20 b(1)g(;)g(NO)39 b(RED)80 b(YELLOW)19 |
---|
3765 | b(START)h(;)-31 169 y(0)g(0)g(;)g(NO)39 b(RED)80 b(YELLOW)19 |
---|
3766 | b(SHORT)h(;)-31 209 y(0)g(0)g(;)g(NO)39 b(GREEN)h(RED)79 |
---|
3767 | b(START)20 b(;)-31 248 y(1)g(0)g(;)g(NO)39 b(YELLOW)20 |
---|
3768 | b(RED)79 b(START)20 b(;)-31 287 y(#)g(Final)g(State)f(:)h(NO)40 |
---|
3769 | b(YELLOW)19 b(RED)80 b(START)-31 327 y(vis>)20 b(cd)g(farm_control)-31 |
---|
3770 | 366 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 |
---|
3772 | 485 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 |
---|
3774 | 563 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 |
---|
3776 | b(car_present)20 b(enable_farm)f(long_timer)g(short_timer)-31 |
---|
3777 | 761 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 |
---|
3779 | 918 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 |
---|
3782 | b(0)g(0)f(;)h(RED)80 b(;)20 b(0)f(RED)80 b(1)-31 1116 |
---|
3783 | y(YES)20 b(1)g(1)g(1)f(;)h(GREEN)40 b(;)20 b(0)f(GREEN)40 |
---|
3784 | b(1)-31 1155 y(NO)g(1)20 b(0)g(1)f(;)h(YELLOW)g(;)g(1)f(YELLOW)h(0)-31 |
---|
3785 | 1194 y(YES)g(0)g(0)g(0)f(;)h(RED)80 b(;)20 b(0)f(RED)80 |
---|
3786 | b(0)-31 1234 y(NO)40 b(1)20 b(1)g(0)f(;)h(RED)80 b(;)20 |
---|
3787 | b(0)f(RED)80 b(1)-31 1273 y(NO)40 b(1)20 b(1)g(1)f(;)h(GREEN)40 |
---|
3788 | b(;)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 |
---|
3790 | b(;)20 b(0)f(RED)80 b(0)-31 1392 y(NO)40 b(0)20 b(0)g(0)f(;)h(RED)80 |
---|
3791 | b(;)20 b(0)f(RED)80 b(0)-31 1431 y(YES)20 b(0)g(1)g(0)f(;)h(RED)80 |
---|
3792 | b(;)20 b(0)f(RED)80 b(0)-31 1470 y(#)20 b(Final)g(State)f(:)h(RED)40 |
---|
3793 | 1577 y Fq(An)o(y)13 b(le)o(v)o(el)f(of)h(the)g(speci\256ed)g(hierarchy) |
---|
3794 | g(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) |
---|
3796 | o(el)h(via)f(the)g Fi(cd)h Fq(command.)18 b(The)13 b |
---|
3797 | Fi(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 |
---|
3799 | y(internal)f(data)h(structures)f(before)h(simulation.)906 |
---|
3800 | 2835 y(37)p eop |
---|
3801 | %%Page: 38 39 |
---|
3802 | 38 38 bop -31 323 a Fn(Chapter)20 b(5)-31 530 y Fs(Synthesis)25 |
---|
3803 | b(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 |
---|
3805 | b(There)c(are)g(two)e(possible)h(goals/scenarios:)26 |
---|
3806 | 842 y(1.)23 b(Synthesis)10 b(for)i(v)o(eri\256cation.)83 |
---|
3807 | 898 y(Synthesis)e(can)i(be)g(used)f(to)g(optimize)f(the)h(logic)g(that) |
---|
3808 | g(represents)g(the)g(system,)g(for)h(simpler)e(v)o(eri\256cation.)26 |
---|
3809 | 990 y(2.)23 b(Front-end)11 b(to)g(synthesis.)83 1047 |
---|
3810 | y(Files)c(described)g(in)g(V)-5 b(erilog)7 b(and)g(compiled)g(into)g |
---|
3811 | Fi(blif)p 941 1047 14 2 v 14 w(mv)g Fq(\(using)g Fo(VL)p |
---|
3812 | Fq(2)p Fo(MV)g Fq(or)g(another)g(tool\))g(can)g(be)g(synthesized)83 |
---|
3813 | 1103 y(by)k(using)f(VIS)i(and)g(SIS)g(together)m(.)40 |
---|
3814 | 1192 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 |
---|
3817 | 1232 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 |
---|
3822 | 1362 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 |
---|
3824 | b 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 |
---|
3832 | y(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 |
---|
3839 | 1813 y(operate)h(within)e(them.)19 b(Notice)12 b(that)g(there)h(is)f(a) |
---|
3840 | h(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 |
---|
3842 | 1870 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 |
---|
3847 | 979 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 |
---|
3849 | y(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 |
---|
3854 | y(are)18 b(stored)f(into)f(a)i(\256le)g(with)e(e)o(xtension)h |
---|
3855 | Fm(.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 |
---|
3858 | b(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 |
---|
3860 | 2583 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 |
---|
3862 | 2622 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 |
---|
3867 | eop |
---|
3868 | %%Page: 39 40 |
---|
3869 | 39 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 |
---|
3874 | y(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 |
---|
3876 | 213 y(In)17 b(summary)m(,)h Fi(write)p 318 213 14 2 v |
---|
3877 | 16 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 |
---|
3879 | 269 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 |
---|
3883 | 382 y(Operations)g(performed)g(by)g Fi(r)n(ead)p 595 |
---|
3884 | 382 V 17 w(blif)f Fq(are:)26 470 y(1.)23 b(Restore)14 |
---|
3885 | b(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 |
---|
3887 | b(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 |
---|
3889 | 1246 527 V 16 w(blif)d(-e)i(model.enc)f(s-sim.blif)p |
---|
3890 | Fq(\),)g(which)83 583 y(was)h(written)g(out)f(during)h(the)g |
---|
3891 | Fi(write)p 670 583 V 16 w(blif)g Fq(process.)26 675 y(2.)23 |
---|
3892 | b(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) |
---|
3894 | o(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 |
---|
3896 | 1012 y Fj(\017)23 b Fi(r)n(ead)p 168 1012 V 16 w(blif)p |
---|
3897 | 246 1012 V 16 w(mv)37 1104 y Fj(\017)g Fi(write)p 180 |
---|
3898 | 1104 V 16 w(blif)37 1195 y Fj(\017)g Fq(optimization)9 |
---|
3899 | b(by)i(SIS)37 1287 y Fj(\017)23 b Fi(r)n(ead)p 168 1287 |
---|
3900 | V 16 w(blif)37 1379 y Fj(\017)g Fi(init)p 148 1379 V |
---|
3901 | 15 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 |
---|
3904 | b Fi(r)n(ead)p 168 1647 V 16 w(blif)p 246 1647 V 16 w(mv)37 |
---|
3905 | 1738 y Fj(\017)g Fi(write)p 180 1738 V 16 w(blif)37 1830 |
---|
3906 | y Fj(\017)g Fq(optimization)9 b(by)i(SIS)37 1922 y Fj(\017)23 |
---|
3907 | b Fi(r)n(ead)p 168 1922 V 16 w(blif)40 2010 y Fq(It)8 |
---|
3908 | b(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 |
---|
3913 | Fi(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 |
---|
3915 | b(equi)o(v)o(alence)-31 2179 y(can)g(be)f(checked)g(at)g(each)h(le)o(v) |
---|
3916 | o(el)f(of)g(the)g(network)f(hierarchy)m(,)i(from)f(root)g(to)g(lea)o(v) |
---|
3917 | o(es.)19 b(Before)13 b(applying)e Fi(comb)p 1760 2179 |
---|
3918 | V 17 w(verify)p Fq(,)-31 2236 y(the)g(command)g Fi(init)p |
---|
3919 | 293 2236 V 15 w(verify)h Fq(must)e(be)h(in)n(v)o(oked.)-31 |
---|
3920 | 2381 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 |
---|
3923 | b(W)l(e)15 b(ha)o(v)o(e)g(chosen)e(to)h(optimize)e(the)-31 |
---|
3924 | 2541 y(network)e(of)h(the)f(leaf)h Fm(farm)p 434 2541 |
---|
3925 | V 18 w(control)p Fq(.)20 b(W)l(e)11 b(v)o(erify)g(that)f(the)h(initial) |
---|
3926 | e(global)h(network)f(and)i(the)g(ne)o(w)f(network,)h(after)-31 |
---|
3927 | 2598 y(replacement)f(of)g(the)g(network)f(in)h(the)g(leaf)g |
---|
3928 | Fm(farm)p 776 2598 V 18 w(control)j Fq(by)d(the)g(one)g(optimized)e(by) |
---|
3929 | i(SIS,)i(are)e(combinationally)-31 2654 y(equi)o(v)o(alent.)15 |
---|
3930 | b(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) |
---|
3932 | o(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 |
---|
3934 | Fq(2)p Fo(MV)j Fq(ha)o(v)o(e)e(a)g(lot)f(of)h(redundanc)o(y)m(.)906 |
---|
3935 | 2835 y(39)p eop |
---|
3936 | %%Page: 40 41 |
---|
3937 | 40 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 |
---|
3941 | 169 y(vis>)g(ls)-31 209 y(hwy_control)-31 248 y(sensor)-31 |
---|
3942 | 287 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 |
---|
3945 | 445 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 |
---|
3950 | 682 y(vis>)g(init_verify)-31 721 y(vis>)g(comb_verify)f(tlc.mv)-31 |
---|
3951 | 761 y(Networks)g(are)h(combinationally)f(equivalent.)-31 |
---|
3952 | 800 y(vis>)h(print_network_stats)-31 839 y(main)40 b(combinational=132) |
---|
3953 | e(pi=0)i(po=0)f(latches=4)h(pseudo=2)f(const=34)g(edges=186)-31 |
---|
3954 | 997 y(sis>)20 b(read_blif)f(farm_control.blif)-31 1037 |
---|
3955 | y(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 |
---|
3959 | 1155 y(sis>)g(print_stats)-31 1194 y(farm_control)79 |
---|
3960 | b(pi=18)59 b(po=)20 b(6)60 b(nodes=)19 b(62)140 b(latches=)19 |
---|
3961 | b(0)-31 1234 y(lits\(sop\)=)g(709)40 b(lits\(fac\)=)19 |
---|
3962 | b(419)-31 1273 y(sis>)h(source)f(script.rugged)-31 1313 |
---|
3963 | y(sis>)h(print_stats)-31 1352 y(farm_control)79 b(pi=18)59 |
---|
3964 | b(po=)20 b(6)60 b(nodes=)19 b(24)140 b(latches=)19 b(0)-31 |
---|
3965 | 1392 y(lits\(sop\)=)39 b(34)h(lits\(fac\)=)f(34)-31 1431 |
---|
3966 | y(sis>)20 b(write_blif)f(farm_control.opt.blif)40 1537 |
---|
3967 | y Fq(In)8 b(the)g(pre)o(vious)f(e)o(xample,)i(the)f(command)g |
---|
3968 | Fi(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 |
---|
3970 | 15 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 |
---|
3974 | 41 41 bop -31 323 a Fn(A)n(ppendix)21 b(A)-31 530 y Fs(Commands)26 |
---|
3975 | b(in)g(VIS)-31 771 y Fl(A.1)58 b(List)14 b(of)h(Commands)h(in)f(VIS)-31 |
---|
3976 | 875 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 |
---|
3979 | b Fm(http://ww)q(w-)q(cad)q(.e)q(ecs)q(.b)q(erk)q(el)q(ey.)q(ed)q(u/R)q |
---|
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 |
---|
3984 | b(command)e(cannot)i(be)g(e)o(x)o(ecuted)g(before)h(its)e(predecessors) |
---|
3985 | h(\(unless)f(the)g(predecessor)h(is)g(also)-31 1101 y(a)i(successor\).) |
---|
3986 | 17 b(Default)11 b(aliases)g(are)h(de\256ned,)g(type)f |
---|
3987 | Fi(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 { |
---|
3993 | 0 begin |
---|
3994 | transform originalCTM itransform |
---|
3995 | /taily exch def |
---|
3996 | /tailx exch def |
---|
3997 | transform 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 |
---|
4003 | gsave |
---|
4004 | originalCTM setmatrix |
---|
4005 | tipx tipy translate |
---|
4006 | angle rotate |
---|
4007 | newpath |
---|
4008 | arrowHeight neg arrowWidth 2 div moveto |
---|
4009 | 0 0 lineto |
---|
4010 | arrowHeight neg arrowWidth 2 div neg lineto |
---|
4011 | patternNone not { |
---|
4012 | originalCTM setmatrix |
---|
4013 | /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul |
---|
4014 | arrowWidth div def |
---|
4015 | /padtail brushWidth 2 div def |
---|
4016 | tipx tipy translate |
---|
4017 | angle rotate |
---|
4018 | padtip 0 translate |
---|
4019 | arrowHeight padtip add padtail add arrowHeight div dup scale |
---|
4020 | arrowheadpath |
---|
4021 | ifill |
---|
4022 | } if |
---|
4023 | brushNone not { |
---|
4024 | originalCTM setmatrix |
---|
4025 | tipx tipy translate |
---|
4026 | angle rotate |
---|
4027 | arrowheadpath |
---|
4028 | istroke |
---|
4029 | } if |
---|
4030 | grestore |
---|
4031 | end |
---|
4032 | } dup 0 9 dict put def |
---|
4033 | |
---|
4034 | /arrowheadpath { |
---|
4035 | newpath |
---|
4036 | arrowHeight neg arrowWidth 2 div moveto |
---|
4037 | 0 0 lineto |
---|
4038 | arrowHeight neg arrowWidth 2 div neg lineto |
---|
4039 | } def |
---|
4040 | |
---|
4041 | /leftarrow { |
---|
4042 | 0 begin |
---|
4043 | y exch get /taily exch def |
---|
4044 | x exch get /tailx exch def |
---|
4045 | y exch get /tipy exch def |
---|
4046 | x exch get /tipx exch def |
---|
4047 | brushLeftArrow { tipx tipy tailx taily arrowhead } if |
---|
4048 | end |
---|
4049 | } dup 0 4 dict put def |
---|
4050 | |
---|
4051 | /rightarrow { |
---|
4052 | 0 begin |
---|
4053 | y exch get /tipy exch def |
---|
4054 | x exch get /tipx exch def |
---|
4055 | y exch get /taily exch def |
---|
4056 | x exch get /tailx exch def |
---|
4057 | brushRightArrow { tipx tipy tailx taily arrowhead } if |
---|
4058 | end |
---|
4059 | } dup 0 4 dict put def |
---|
4060 | |
---|
4061 | |
---|
4062 | /arrowHeight 11 def |
---|
4063 | /arrowWidth 5 def |
---|
4064 | |
---|
4065 | /IdrawDict 51 dict def |
---|
4066 | IdrawDict begin |
---|
4067 | |
---|
4068 | /reencodeISO { |
---|
4069 | dup dup findfont dup length dict begin |
---|
4070 | { 1 index /FID ne { def }{ pop pop } ifelse } forall |
---|
4071 | /Encoding ISOLatin1Encoding def |
---|
4072 | currentdict 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 { |
---|
4113 | save |
---|
4114 | numGraphicParameters dict begin |
---|
4115 | } def |
---|
4116 | |
---|
4117 | /End { |
---|
4118 | end |
---|
4119 | restore |
---|
4120 | } def |
---|
4121 | |
---|
4122 | /SetB { |
---|
4123 | dup type /nulltype eq { |
---|
4124 | pop |
---|
4125 | false /brushRightArrow idef |
---|
4126 | false /brushLeftArrow idef |
---|
4127 | true /brushNone idef |
---|
4128 | } { |
---|
4129 | /brushDashOffset idef |
---|
4130 | /brushDashArray idef |
---|
4131 | 0 ne /brushRightArrow idef |
---|
4132 | 0 ne /brushLeftArrow idef |
---|
4133 | /brushWidth idef |
---|
4134 | false /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 { |
---|
4156 | dup type /nulltype eq { |
---|
4157 | pop true /patternNone idef |
---|
4158 | } { |
---|
4159 | dup -1 eq { |
---|
4160 | /patternGrayLevel idef |
---|
4161 | /patternString idef |
---|
4162 | } { |
---|
4163 | /patternGrayLevel idef |
---|
4164 | } ifelse |
---|
4165 | false /patternNone idef |
---|
4166 | } ifelse |
---|
4167 | } def |
---|
4168 | |
---|
4169 | /BSpl { |
---|
4170 | 0 begin |
---|
4171 | storexyn |
---|
4172 | newpath |
---|
4173 | n 1 gt { |
---|
4174 | 0 0 0 0 0 0 1 1 true subspline |
---|
4175 | n 2 gt { |
---|
4176 | 0 0 0 0 1 1 2 2 false subspline |
---|
4177 | 1 1 n 3 sub { |
---|
4178 | /i exch def |
---|
4179 | i 1 sub dup i dup i 1 add dup i 2 add dup false subspline |
---|
4180 | } for |
---|
4181 | n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline |
---|
4182 | } if |
---|
4183 | n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline |
---|
4184 | patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if |
---|
4185 | brushNone not { istroke } if |
---|
4186 | 0 0 1 1 leftarrow |
---|
4187 | n 2 sub dup n 1 sub dup rightarrow |
---|
4188 | } if |
---|
4189 | end |
---|
4190 | } dup 0 4 dict put def |
---|
4191 | |
---|
4192 | /Circ { |
---|
4193 | newpath |
---|
4194 | 0 360 arc |
---|
4195 | patternNone not { ifill } if |
---|
4196 | brushNone not { istroke } if |
---|
4197 | } def |
---|
4198 | |
---|
4199 | /CBSpl { |
---|
4200 | 0 begin |
---|
4201 | dup 2 gt { |
---|
4202 | storexyn |
---|
4203 | newpath |
---|
4204 | n 1 sub dup 0 0 1 1 2 2 true subspline |
---|
4205 | 1 1 n 3 sub { |
---|
4206 | /i exch def |
---|
4207 | i 1 sub dup i dup i 1 add dup i 2 add dup false subspline |
---|
4208 | } for |
---|
4209 | n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline |
---|
4210 | n 2 sub dup n 1 sub dup 0 0 1 1 false subspline |
---|
4211 | patternNone not { ifill } if |
---|
4212 | brushNone not { istroke } if |
---|
4213 | } { |
---|
4214 | Poly |
---|
4215 | } ifelse |
---|
4216 | end |
---|
4217 | } dup 0 4 dict put def |
---|
4218 | |
---|
4219 | /Elli { |
---|
4220 | 0 begin |
---|
4221 | newpath |
---|
4222 | 4 2 roll |
---|
4223 | translate |
---|
4224 | scale |
---|
4225 | 0 0 1 0 360 arc |
---|
4226 | patternNone not { ifill } if |
---|
4227 | brushNone not { istroke } if |
---|
4228 | end |
---|
4229 | } dup 0 1 dict put def |
---|
4230 | |
---|
4231 | /Line { |
---|
4232 | 0 begin |
---|
4233 | 2 storexyn |
---|
4234 | newpath |
---|
4235 | x 0 get y 0 get moveto |
---|
4236 | x 1 get y 1 get lineto |
---|
4237 | brushNone not { istroke } if |
---|
4238 | 0 0 1 1 leftarrow |
---|
4239 | 0 0 1 1 rightarrow |
---|
4240 | end |
---|
4241 | } dup 0 4 dict put def |
---|
4242 | |
---|
4243 | /MLine { |
---|
4244 | 0 begin |
---|
4245 | storexyn |
---|
4246 | newpath |
---|
4247 | n 1 gt { |
---|
4248 | x 0 get y 0 get moveto |
---|
4249 | 1 1 n 1 sub { |
---|
4250 | /i exch def |
---|
4251 | x i get y i get lineto |
---|
4252 | } for |
---|
4253 | patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if |
---|
4254 | brushNone not { istroke } if |
---|
4255 | 0 0 1 1 leftarrow |
---|
4256 | n 2 sub dup n 1 sub dup rightarrow |
---|
4257 | } if |
---|
4258 | end |
---|
4259 | } dup 0 4 dict put def |
---|
4260 | |
---|
4261 | /Poly { |
---|
4262 | 3 1 roll |
---|
4263 | newpath |
---|
4264 | moveto |
---|
4265 | -1 add |
---|
4266 | { lineto } repeat |
---|
4267 | closepath |
---|
4268 | patternNone not { ifill } if |
---|
4269 | brushNone not { istroke } if |
---|
4270 | } def |
---|
4271 | |
---|
4272 | /Rect { |
---|
4273 | 0 begin |
---|
4274 | /t exch def |
---|
4275 | /r exch def |
---|
4276 | /b exch def |
---|
4277 | /l exch def |
---|
4278 | newpath |
---|
4279 | l b moveto |
---|
4280 | l t lineto |
---|
4281 | r t lineto |
---|
4282 | r b lineto |
---|
4283 | closepath |
---|
4284 | patternNone not { ifill } if |
---|
4285 | brushNone not { istroke } if |
---|
4286 | end |
---|
4287 | } dup 0 4 dict put def |
---|
4288 | |
---|
4289 | /Text { |
---|
4290 | ishow |
---|
4291 | } def |
---|
4292 | |
---|
4293 | /idef { |
---|
4294 | dup where { pop pop pop } { exch def } ifelse |
---|
4295 | } def |
---|
4296 | |
---|
4297 | /ifill { |
---|
4298 | 0 begin |
---|
4299 | gsave |
---|
4300 | patternGrayLevel -1 ne { |
---|
4301 | fgred bgred fgred sub patternGrayLevel mul add |
---|
4302 | fggreen bggreen fggreen sub patternGrayLevel mul add |
---|
4303 | fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor |
---|
4304 | eofill |
---|
4305 | } { |
---|
4306 | eoclip |
---|
4307 | originalCTM setmatrix |
---|
4308 | pathbbox /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 |
---|
4313 | bgred bggreen bgblue setrgbcolor |
---|
4314 | eofill |
---|
4315 | fgred fggreen fgblue setrgbcolor |
---|
4316 | w 0 gt h 0 gt and { |
---|
4317 | l b translate w h scale |
---|
4318 | w h true [w 0 0 h neg 0 h] { patternproc } imagemask |
---|
4319 | } if |
---|
4320 | } ifelse |
---|
4321 | grestore |
---|
4322 | end |
---|
4323 | } dup 0 8 dict put def |
---|
4324 | |
---|
4325 | /istroke { |
---|
4326 | gsave |
---|
4327 | brushDashOffset -1 eq { |
---|
4328 | [] 0 setdash |
---|
4329 | 1 setgray |
---|
4330 | } { |
---|
4331 | brushDashArray brushDashOffset setdash |
---|
4332 | fgred fggreen fgblue setrgbcolor |
---|
4333 | } ifelse |
---|
4334 | brushWidth setlinewidth |
---|
4335 | originalCTM setmatrix |
---|
4336 | stroke |
---|
4337 | grestore |
---|
4338 | } def |
---|
4339 | |
---|
4340 | /ishow { |
---|
4341 | 0 begin |
---|
4342 | gsave |
---|
4343 | fgred fggreen fgblue setrgbcolor |
---|
4344 | /fontDict printFont printSize scalefont dup setfont def |
---|
4345 | /descender fontDict begin 0 [FontBBox] 1 get FontMatrix end |
---|
4346 | transform exch pop def |
---|
4347 | /vertoffset 1 printSize sub descender sub def { |
---|
4348 | 0 vertoffset moveto show |
---|
4349 | /vertoffset vertoffset printSize sub def |
---|
4350 | } forall |
---|
4351 | grestore |
---|
4352 | end |
---|
4353 | } dup 0 3 dict put def |
---|
4354 | /patternproc { |
---|
4355 | 0 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 |
---|
4361 | stringLimit patternByteWidth sub min def |
---|
4362 | /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv |
---|
4363 | patternHeight mul patternHeight max def |
---|
4364 | /imageHeight imageHeight imageMaxHeight sub store |
---|
4365 | /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def |
---|
4366 | 0 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 |
---|
4371 | 0 patternByteWidth imageByteWidth 1 sub { |
---|
4372 | /x exch def |
---|
4373 | imageString imageRow x add patternRowString putinterval |
---|
4374 | } for |
---|
4375 | } for |
---|
4376 | imageString |
---|
4377 | end |
---|
4378 | } dup 0 12 dict put def |
---|
4379 | |
---|
4380 | /min { |
---|
4381 | dup 3 2 roll dup 4 3 roll lt { exch } if pop |
---|
4382 | } def |
---|
4383 | |
---|
4384 | /max { |
---|
4385 | dup 3 2 roll dup 4 3 roll gt { exch } if pop |
---|
4386 | } def |
---|
4387 | |
---|
4388 | /midpoint { |
---|
4389 | 0 begin |
---|
4390 | /y1 exch def |
---|
4391 | /x1 exch def |
---|
4392 | /y0 exch def |
---|
4393 | /x0 exch def |
---|
4394 | x0 x1 add 2 div |
---|
4395 | y0 y1 add 2 div |
---|
4396 | end |
---|
4397 | } dup 0 4 dict put def |
---|
4398 | |
---|
4399 | /thirdpoint { |
---|
4400 | 0 begin |
---|
4401 | /y1 exch def |
---|
4402 | /x1 exch def |
---|
4403 | /y0 exch def |
---|
4404 | /x0 exch def |
---|
4405 | x0 2 mul x1 add 3 div |
---|
4406 | y0 2 mul y1 add 3 div |
---|
4407 | end |
---|
4408 | } dup 0 4 dict put def |
---|
4409 | |
---|
4410 | /subspline { |
---|
4411 | 0 begin |
---|
4412 | /movetoNeeded exch def |
---|
4413 | y exch get /y3 exch def |
---|
4414 | x exch get /x3 exch def |
---|
4415 | y exch get /y2 exch def |
---|
4416 | x exch get /x2 exch def |
---|
4417 | y exch get /y1 exch def |
---|
4418 | x exch get /x1 exch def |
---|
4419 | y exch get /y0 exch def |
---|
4420 | x exch get /x0 exch def |
---|
4421 | x1 y1 x2 y2 thirdpoint |
---|
4422 | /p1y exch def |
---|
4423 | /p1x exch def |
---|
4424 | x2 y2 x1 y1 thirdpoint |
---|
4425 | /p2y exch def |
---|
4426 | /p2x exch def |
---|
4427 | x1 y1 x0 y0 thirdpoint |
---|
4428 | p1x p1y midpoint |
---|
4429 | /p0y exch def |
---|
4430 | /p0x exch def |
---|
4431 | x2 y2 x3 y3 thirdpoint |
---|
4432 | p2x p2y midpoint |
---|
4433 | /p3y exch def |
---|
4434 | /p3x exch def |
---|
4435 | movetoNeeded { p0x p0y moveto } if |
---|
4436 | p1x p1y p2x p2y p3x p3y curveto |
---|
4437 | end |
---|
4438 | } dup 0 17 dict put def |
---|
4439 | |
---|
4440 | /storexyn { |
---|
4441 | /n exch def |
---|
4442 | /y n array def |
---|
4443 | /x n array def |
---|
4444 | n 1 sub -1 0 { |
---|
4445 | /i exch def |
---|
4446 | y i 3 2 roll put |
---|
4447 | x i 3 2 roll put |
---|
4448 | } for |
---|
4449 | } def |
---|
4450 | |
---|
4451 | /SSten { |
---|
4452 | fgred fggreen fgblue setrgbcolor |
---|
4453 | dup true exch 1 0 0 -1 0 6 -1 roll matrix astore |
---|
4454 | } def |
---|
4455 | |
---|
4456 | /FSten { |
---|
4457 | dup 3 -1 roll dup 4 1 roll exch |
---|
4458 | newpath |
---|
4459 | 0 0 moveto |
---|
4460 | dup 0 exch lineto |
---|
4461 | exch dup 3 1 roll exch lineto |
---|
4462 | 0 lineto |
---|
4463 | closepath |
---|
4464 | bgred bggreen bgblue setrgbcolor |
---|
4465 | eofill |
---|
4466 | SSten |
---|
4467 | } def |
---|
4468 | |
---|
4469 | /Rast { |
---|
4470 | exch 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 | |
---|
4477 | Begin |
---|
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 | |
---|
4487 | Begin %I Text |
---|
4488 | %I cfg Black |
---|
4489 | 0 0 0 SetCFg |
---|
4490 | %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* |
---|
4491 | Helvetica-Bold 14 SetF |
---|
4492 | %I t |
---|
4493 | [ 1 0 0 1 346 706 ] concat |
---|
4494 | %I |
---|
4495 | [ |
---|
4496 | (cd) |
---|
4497 | ] Text |
---|
4498 | End |
---|
4499 | |
---|
4500 | Begin %I Text |
---|
4501 | %I cfg Black |
---|
4502 | 0 0 0 SetCFg |
---|
4503 | %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* |
---|
4504 | Helvetica-Bold 14 SetF |
---|
4505 | %I t |
---|
4506 | [ 1 0 0 1 306 634 ] concat |
---|
4507 | %I |
---|
4508 | [ |
---|
4509 | (flatten_hierarchy) |
---|
4510 | ] Text |
---|
4511 | End |
---|
4512 | |
---|
4513 | Begin %I Text |
---|
4514 | %I cfg Black |
---|
4515 | 0 0 0 SetCFg |
---|
4516 | %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* |
---|
4517 | Helvetica-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 |
---|
4526 | End |
---|
4527 | |
---|
4528 | Begin %I Text |
---|
4529 | %I cfg Black |
---|
4530 | 0 0 0 SetCFg |
---|
4531 | %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* |
---|
4532 | Helvetica-Bold 14 SetF |
---|
4533 | %I t |
---|
4534 | [ 1 0 0 1 321 573 ] concat |
---|
4535 | %I |
---|
4536 | [ |
---|
4537 | (static_order) |
---|
4538 | ] Text |
---|
4539 | End |
---|
4540 | |
---|
4541 | Begin %I Text |
---|
4542 | %I cfg Black |
---|
4543 | 0 0 0 SetCFg |
---|
4544 | %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* |
---|
4545 | Helvetica-Bold 14 SetF |
---|
4546 | %I t |
---|
4547 | [ 1 0 0 1 291 498 ] concat |
---|
4548 | %I |
---|
4549 | [ |
---|
4550 | (build_partition_mdds) |
---|
4551 | ] Text |
---|
4552 | End |
---|
4553 | |
---|
4554 | Begin %I Text |
---|
4555 | %I cfg Black |
---|
4556 | 0 0 0 SetCFg |
---|
4557 | %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* |
---|
4558 | Helvetica-Bold 14 SetF |
---|
4559 | %I t |
---|
4560 | [ 1 0 0 1 495 572 ] concat |
---|
4561 | %I |
---|
4562 | [ |
---|
4563 | (write_order) |
---|
4564 | ] Text |
---|
4565 | End |
---|
4566 | |
---|
4567 | Begin %I Text |
---|
4568 | %I cfg Black |
---|
4569 | 0 0 0 SetCFg |
---|
4570 | %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* |
---|
4571 | Helvetica-Bold 14 SetF |
---|
4572 | %I t |
---|
4573 | [ 1 0 0 1 188 580 ] concat |
---|
4574 | %I |
---|
4575 | [ |
---|
4576 | (init_verify) |
---|
4577 | ] Text |
---|
4578 | End |
---|
4579 | |
---|
4580 | Begin %I Rect |
---|
4581 | %I b 65535 |
---|
4582 | 2 0 0 [] 0 SetB |
---|
4583 | %I cfg Black |
---|
4584 | 0 0 0 SetCFg |
---|
4585 | %I cbg White |
---|
4586 | 1 1 1 SetCBg |
---|
4587 | none SetP %I p n |
---|
4588 | %I t |
---|
4589 | [ 1 0 0 1 210 258 ] concat |
---|
4590 | %I |
---|
4591 | 264 289 410 322 Rect |
---|
4592 | End |
---|
4593 | |
---|
4594 | Begin %I Rect |
---|
4595 | %I b 65535 |
---|
4596 | 2 0 0 [] 0 SetB |
---|
4597 | %I cfg Black |
---|
4598 | 0 0 0 SetCFg |
---|
4599 | %I cbg White |
---|
4600 | 1 1 1 SetCBg |
---|
4601 | none SetP %I p n |
---|
4602 | %I t |
---|
4603 | [ 1 0 0 1 209 260 ] concat |
---|
4604 | %I |
---|
4605 | 264 182 409 271 Rect |
---|
4606 | End |
---|
4607 | |
---|
4608 | Begin %I Rect |
---|
4609 | %I b 65535 |
---|
4610 | 2 0 0 [] 0 SetB |
---|
4611 | %I cfg Black |
---|
4612 | 0 0 0 SetCFg |
---|
4613 | %I cbg White |
---|
4614 | 1 1 1 SetCBg |
---|
4615 | none SetP %I p n |
---|
4616 | %I t |
---|
4617 | [ 0.986667 0 0 1.3125 214.48 201.271 ] concat |
---|
4618 | %I |
---|
4619 | 262 148 408 176 Rect |
---|
4620 | End |
---|
4621 | |
---|
4622 | Begin %I Rect |
---|
4623 | %I b 65535 |
---|
4624 | 2 0 0 [] 0 SetB |
---|
4625 | %I cfg Black |
---|
4626 | 0 0 0 SetCFg |
---|
4627 | %I cbg White |
---|
4628 | 1 1 1 SetCBg |
---|
4629 | none SetP %I p n |
---|
4630 | %I t |
---|
4631 | [ 1 0 0 1 216 255 ] concat |
---|
4632 | %I |
---|
4633 | 258 84 407 115 Rect |
---|
4634 | End |
---|
4635 | |
---|
4636 | Begin %I Rect |
---|
4637 | %I b 65535 |
---|
4638 | 2 0 0 [] 0 SetB |
---|
4639 | %I cfg Black |
---|
4640 | 0 0 0 SetCFg |
---|
4641 | %I cbg White |
---|
4642 | 1 1 1 SetCBg |
---|
4643 | none SetP %I p n |
---|
4644 | %I t |
---|
4645 | [ 1 0 0 1 211 261 ] concat |
---|
4646 | %I |
---|
4647 | 262 397 409 464 Rect |
---|
4648 | End |
---|
4649 | |
---|
4650 | Begin %I Rect |
---|
4651 | %I b 65535 |
---|
4652 | 2 0 0 [] 0 SetB |
---|
4653 | %I cfg Black |
---|
4654 | 0 0 0 SetCFg |
---|
4655 | %I cbg White |
---|
4656 | 1 1 1 SetCBg |
---|
4657 | none SetP %I p n |
---|
4658 | %I t |
---|
4659 | [ 1 0 0 1 213 260 ] concat |
---|
4660 | %I |
---|
4661 | 260 335 410 389 Rect |
---|
4662 | End |
---|
4663 | |
---|
4664 | Begin %I Elli |
---|
4665 | %I b 65535 |
---|
4666 | 2 0 0 [] 0 SetB |
---|
4667 | %I cfg Black |
---|
4668 | 0 0 0 SetCFg |
---|
4669 | %I cbg White |
---|
4670 | 1 1 1 SetCBg |
---|
4671 | none SetP %I p n |
---|
4672 | %I t |
---|
4673 | [ 1 0 0 1 196 265 ] concat |
---|
4674 | %I |
---|
4675 | 158 435 46 16 Elli |
---|
4676 | End |
---|
4677 | |
---|
4678 | Begin %I Elli |
---|
4679 | %I b 65535 |
---|
4680 | 2 0 0 [] 0 SetB |
---|
4681 | %I cfg Black |
---|
4682 | 0 0 0 SetCFg |
---|
4683 | %I cbg White |
---|
4684 | 1 1 1 SetCBg |
---|
4685 | none SetP %I p n |
---|
4686 | %I t |
---|
4687 | [ 1 0 0 1 201 256 ] concat |
---|
4688 | %I |
---|
4689 | 160 373 80 20 Elli |
---|
4690 | End |
---|
4691 | |
---|
4692 | Begin %I Elli |
---|
4693 | %I b 65535 |
---|
4694 | 2 0 0 [] 0 SetB |
---|
4695 | %I cfg Black |
---|
4696 | 0 0 0 SetCFg |
---|
4697 | %I cbg White |
---|
4698 | 1 1 1 SetCBg |
---|
4699 | none SetP %I p n |
---|
4700 | %I t |
---|
4701 | [ 1 0 0 1 193 258 ] concat |
---|
4702 | %I |
---|
4703 | 167 305 56 20 Elli |
---|
4704 | End |
---|
4705 | |
---|
4706 | Begin %I Elli |
---|
4707 | %I b 65535 |
---|
4708 | 2 0 0 [] 0 SetB |
---|
4709 | %I cfg Black |
---|
4710 | 0 0 0 SetCFg |
---|
4711 | %I cbg White |
---|
4712 | 1 1 1 SetCBg |
---|
4713 | none SetP %I p n |
---|
4714 | %I t |
---|
4715 | [ 1 0 0 1 198 249 ] concat |
---|
4716 | %I |
---|
4717 | 166 241 80 27 Elli |
---|
4718 | End |
---|
4719 | |
---|
4720 | Begin %I Elli |
---|
4721 | %I b 65535 |
---|
4722 | 2 0 0 [] 0 SetB |
---|
4723 | %I cfg Black |
---|
4724 | 0 0 0 SetCFg |
---|
4725 | %I cbg White |
---|
4726 | 1 1 1 SetCBg |
---|
4727 | none SetP %I p n |
---|
4728 | %I t |
---|
4729 | [ 0.915692 0 0 2.55203 203.748 12.0202 ] concat |
---|
4730 | %I |
---|
4731 | 168 143 76 14 Elli |
---|
4732 | End |
---|
4733 | |
---|
4734 | Begin %I Rect |
---|
4735 | %I b 65535 |
---|
4736 | 2 0 0 [] 0 SetB |
---|
4737 | %I cfg Black |
---|
4738 | 0 0 0 SetCFg |
---|
4739 | %I cbg White |
---|
4740 | 1 1 1 SetCBg |
---|
4741 | none SetP %I p n |
---|
4742 | %I t |
---|
4743 | [ 1 0 0 1 176 257 ] concat |
---|
4744 | %I |
---|
4745 | 6 298 86 333 Rect |
---|
4746 | End |
---|
4747 | |
---|
4748 | Begin %I Line |
---|
4749 | %I b 65535 |
---|
4750 | 2 0 1 [] 0 SetB |
---|
4751 | %I cfg Black |
---|
4752 | 0 0 0 SetCFg |
---|
4753 | %I cbg White |
---|
4754 | 1 1 1 SetCBg |
---|
4755 | none SetP %I p n |
---|
4756 | %I t |
---|
4757 | [ 1 0 0 1 130 258 ] concat |
---|
4758 | %I |
---|
4759 | 225 352 225 324 Line |
---|
4760 | %I 1 |
---|
4761 | End |
---|
4762 | |
---|
4763 | Begin %I Line |
---|
4764 | %I b 65535 |
---|
4765 | 2 0 1 [] 0 SetB |
---|
4766 | %I cfg Black |
---|
4767 | 0 0 0 SetCFg |
---|
4768 | %I cbg White |
---|
4769 | 1 1 1 SetCBg |
---|
4770 | none SetP %I p n |
---|
4771 | %I t |
---|
4772 | [ 1 0 0 1 130 258 ] concat |
---|
4773 | %I |
---|
4774 | 226 205 226 156 Line |
---|
4775 | %I 1 |
---|
4776 | End |
---|
4777 | |
---|
4778 | Begin %I MLine |
---|
4779 | %I b 65535 |
---|
4780 | 2 0 1 [] 0 SetB |
---|
4781 | %I cfg Black |
---|
4782 | 0 0 0 SetCFg |
---|
4783 | %I cbg White |
---|
4784 | 1 1 1 SetCBg |
---|
4785 | none SetP %I p n |
---|
4786 | %I t |
---|
4787 | [ 1 0 0 1 130 258 ] concat |
---|
4788 | %I 3 |
---|
4789 | 223 402 |
---|
4790 | 88 402 |
---|
4791 | 88 332 |
---|
4792 | 3 MLine |
---|
4793 | %I 1 |
---|
4794 | End |
---|
4795 | |
---|
4796 | Begin %I Line |
---|
4797 | %I b 65535 |
---|
4798 | 2 0 1 [] 0 SetB |
---|
4799 | %I cfg Black |
---|
4800 | 0 0 0 SetCFg |
---|
4801 | %I cbg White |
---|
4802 | 1 1 1 SetCBg |
---|
4803 | none SetP %I p n |
---|
4804 | %I t |
---|
4805 | [ 1 0 0 1 130 258 ] concat |
---|
4806 | %I |
---|
4807 | 225 425 225 389 Line |
---|
4808 | %I 1 |
---|
4809 | End |
---|
4810 | |
---|
4811 | Begin %I Elli |
---|
4812 | %I b 65535 |
---|
4813 | 2 0 0 [] 0 SetB |
---|
4814 | %I cfg Black |
---|
4815 | 0 0 0 SetCFg |
---|
4816 | %I cbg White |
---|
4817 | 1 1 1 SetCBg |
---|
4818 | none SetP %I p n |
---|
4819 | %I t |
---|
4820 | [ 1.34209 0 0 0.932851 48.0848 294.187 ] concat |
---|
4821 | %I |
---|
4822 | 227 503 48 20 Elli |
---|
4823 | End |
---|
4824 | |
---|
4825 | Begin %I Line |
---|
4826 | %I b 65535 |
---|
4827 | 2 0 1 [] 0 SetB |
---|
4828 | %I cfg Black |
---|
4829 | 0 0 0 SetCFg |
---|
4830 | %I cbg White |
---|
4831 | 1 1 1 SetCBg |
---|
4832 | none SetP %I p n |
---|
4833 | %I t |
---|
4834 | [ 1 0 0 1 127 258 ] concat |
---|
4835 | %I |
---|
4836 | 228 482 228 457 Line |
---|
4837 | %I 1 |
---|
4838 | End |
---|
4839 | |
---|
4840 | Begin %I Line |
---|
4841 | %I b 65535 |
---|
4842 | 2 1 1 [] 0 SetB |
---|
4843 | %I cfg Black |
---|
4844 | 0 0 0 SetCFg |
---|
4845 | %I cbg White |
---|
4846 | 1 1 1 SetCBg |
---|
4847 | none SetP %I p n |
---|
4848 | %I t |
---|
4849 | [ 1 0 0 1 130 258 ] concat |
---|
4850 | %I |
---|
4851 | 271 441 342 441 Line |
---|
4852 | %I 1 |
---|
4853 | End |
---|
4854 | |
---|
4855 | Begin %I Line |
---|
4856 | %I b 65535 |
---|
4857 | 2 0 1 [] 0 SetB |
---|
4858 | %I cfg Black |
---|
4859 | 0 0 0 SetCFg |
---|
4860 | %I cbg White |
---|
4861 | 1 1 1 SetCBg |
---|
4862 | none SetP %I p n |
---|
4863 | %I t |
---|
4864 | [ 1 0 0 1 130 258 ] concat |
---|
4865 | %I |
---|
4866 | 311 371 340 371 Line |
---|
4867 | %I 1 |
---|
4868 | End |
---|
4869 | |
---|
4870 | Begin %I Line |
---|
4871 | %I b 65535 |
---|
4872 | 2 0 1 [] 0 SetB |
---|
4873 | %I cfg Black |
---|
4874 | 0 0 0 SetCFg |
---|
4875 | %I cbg White |
---|
4876 | 1 1 1 SetCBg |
---|
4877 | none SetP %I p n |
---|
4878 | %I t |
---|
4879 | [ 1 0 0 1 130 258 ] concat |
---|
4880 | %I |
---|
4881 | 286 306 342 306 Line |
---|
4882 | %I 1 |
---|
4883 | End |
---|
4884 | |
---|
4885 | Begin %I Line |
---|
4886 | %I b 65535 |
---|
4887 | 2 0 1 [] 0 SetB |
---|
4888 | %I cfg Black |
---|
4889 | 0 0 0 SetCFg |
---|
4890 | %I cbg White |
---|
4891 | 1 1 1 SetCBg |
---|
4892 | none SetP %I p n |
---|
4893 | %I t |
---|
4894 | [ 1 0 0 1 130 258 ] concat |
---|
4895 | %I |
---|
4896 | 314 232 340 232 Line |
---|
4897 | %I 1 |
---|
4898 | End |
---|
4899 | |
---|
4900 | Begin %I Text |
---|
4901 | %I cfg Black |
---|
4902 | 0 0 0 SetCFg |
---|
4903 | %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* |
---|
4904 | Helvetica-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 |
---|
4914 | End |
---|
4915 | |
---|
4916 | Begin %I Text |
---|
4917 | %I cfg Black |
---|
4918 | 0 0 0 SetCFg |
---|
4919 | %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* |
---|
4920 | Helvetica-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 |
---|
4931 | End |
---|
4932 | |
---|
4933 | Begin %I Text |
---|
4934 | %I cfg Black |
---|
4935 | 0 0 0 SetCFg |
---|
4936 | %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* |
---|
4937 | Helvetica-Bold 14 SetF |
---|
4938 | %I t |
---|
4939 | [ 1 0 0 1 304 769 ] concat |
---|
4940 | %I |
---|
4941 | [ |
---|
4942 | (read_blif \(_mv\)) |
---|
4943 | ] Text |
---|
4944 | End |
---|
4945 | |
---|
4946 | Begin %I Line |
---|
4947 | %I b 65535 |
---|
4948 | 2 1 1 [] 0 SetB |
---|
4949 | %I cfg Black |
---|
4950 | 0 0 0 SetCFg |
---|
4951 | %I cbg White |
---|
4952 | 1 1 1 SetCBg |
---|
4953 | none SetP %I p n |
---|
4954 | %I t |
---|
4955 | [ 1 0 0 1 195 258 ] concat |
---|
4956 | %I |
---|
4957 | 221 503 277 468 Line |
---|
4958 | %I 1 |
---|
4959 | End |
---|
4960 | |
---|
4961 | Begin %I Text |
---|
4962 | %I cfg Black |
---|
4963 | 0 0 0 SetCFg |
---|
4964 | %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* |
---|
4965 | Helvetica-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 |
---|
4974 | End |
---|
4975 | |
---|
4976 | Begin %I Line |
---|
4977 | %I b 65535 |
---|
4978 | 2 0 0 [] 0 SetB |
---|
4979 | %I cfg Black |
---|
4980 | 0 0 0 SetCFg |
---|
4981 | %I cbg White |
---|
4982 | 1 1 1 SetCBg |
---|
4983 | none SetP %I p n |
---|
4984 | %I t |
---|
4985 | [ 1 0 0 1 -10 262 ] concat |
---|
4986 | %I |
---|
4987 | 137 113 297 113 Line |
---|
4988 | %I 1 |
---|
4989 | End |
---|
4990 | |
---|
4991 | Begin %I Line |
---|
4992 | %I b 65535 |
---|
4993 | 2 0 1 [] 0 SetB |
---|
4994 | %I cfg Black |
---|
4995 | 0 0 0 SetCFg |
---|
4996 | %I cbg White |
---|
4997 | 1 1 1 SetCBg |
---|
4998 | none SetP %I p n |
---|
4999 | %I t |
---|
5000 | [ 1 0 0 1 -10 262 ] concat |
---|
5001 | %I |
---|
5002 | 365 171 137 171 Line |
---|
5003 | %I 1 |
---|
5004 | End |
---|
5005 | |
---|
5006 | Begin %I Line |
---|
5007 | %I b 65535 |
---|
5008 | 2 0 1 [] 0 SetB |
---|
5009 | %I cfg Black |
---|
5010 | 0 0 0 SetCFg |
---|
5011 | %I cbg White |
---|
5012 | 1 1 1 SetCBg |
---|
5013 | none SetP %I p n |
---|
5014 | %I t |
---|
5015 | [ 1 0 0 1 -10 262 ] concat |
---|
5016 | %I |
---|
5017 | 365 270 135 270 Line |
---|
5018 | %I 1 |
---|
5019 | End |
---|
5020 | |
---|
5021 | Begin %I Line |
---|
5022 | %I b 65535 |
---|
5023 | 2 1 1 [] 0 SetB |
---|
5024 | %I cfg Black |
---|
5025 | 0 0 0 SetCFg |
---|
5026 | %I cbg White |
---|
5027 | 1 1 1 SetCBg |
---|
5028 | none SetP %I p n |
---|
5029 | %I t |
---|
5030 | [ 1 0 0 1 -10 262 ] concat |
---|
5031 | %I |
---|
5032 | 430 134 482 157 Line |
---|
5033 | %I 1 |
---|
5034 | End |
---|
5035 | |
---|
5036 | Begin %I Line |
---|
5037 | %I b 65535 |
---|
5038 | 2 1 1 [] 0 SetB |
---|
5039 | %I cfg Black |
---|
5040 | 0 0 0 SetCFg |
---|
5041 | %I cbg White |
---|
5042 | 1 1 1 SetCBg |
---|
5043 | none SetP %I p n |
---|
5044 | %I t |
---|
5045 | [ 1 0 0 1 -10 262 ] concat |
---|
5046 | %I |
---|
5047 | 433 101 483 91 Line |
---|
5048 | %I 1 |
---|
5049 | End |
---|
5050 | |
---|
5051 | Begin %I Text |
---|
5052 | %I cfg Black |
---|
5053 | 0 0 0 SetCFg |
---|
5054 | %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* |
---|
5055 | Helvetica-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 |
---|
5067 | End |
---|
5068 | |
---|
5069 | Begin %I Line |
---|
5070 | %I b 65535 |
---|
5071 | 2 0 1 [] 0 SetB |
---|
5072 | %I cfg Black |
---|
5073 | 0 0 0 SetCFg |
---|
5074 | %I cbg White |
---|
5075 | 1 1 1 SetCBg |
---|
5076 | none SetP %I p n |
---|
5077 | %I t |
---|
5078 | [ 1 0 0 1 -11 258 ] concat |
---|
5079 | %I |
---|
5080 | 136 419 365 419 Line |
---|
5081 | %I 1 |
---|
5082 | End |
---|
5083 | |
---|
5084 | Begin %I Line |
---|
5085 | %I b 65535 |
---|
5086 | 2 0 0 [] 0 SetB |
---|
5087 | %I cfg Black |
---|
5088 | 0 0 0 SetCFg |
---|
5089 | %I cbg White |
---|
5090 | 1 1 1 SetCBg |
---|
5091 | none SetP %I p n |
---|
5092 | %I t |
---|
5093 | [ 1 0 0 1 -10 262 ] concat |
---|
5094 | %I |
---|
5095 | 135 414 136 113 Line |
---|
5096 | %I 1 |
---|
5097 | End |
---|
5098 | |
---|
5099 | Begin %I MLine |
---|
5100 | %I b 65520 |
---|
5101 | 2 0 0 [12 4] 0 SetB |
---|
5102 | %I cfg Black |
---|
5103 | 0 0 0 SetCFg |
---|
5104 | %I cbg White |
---|
5105 | 1 1 1 SetCBg |
---|
5106 | none SetP %I p n |
---|
5107 | %I t |
---|
5108 | [ 1 0 0 1 -10 262 ] concat |
---|
5109 | %I 6 |
---|
5110 | 107 513 |
---|
5111 | 312 425 |
---|
5112 | 471 405 |
---|
5113 | 473 393 |
---|
5114 | 669 392 |
---|
5115 | 669 393 |
---|
5116 | 6 MLine |
---|
5117 | %I 1 |
---|
5118 | End |
---|
5119 | |
---|
5120 | Begin %I Text |
---|
5121 | %I cfg Black |
---|
5122 | 0 0 0 SetCFg |
---|
5123 | %I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-* |
---|
5124 | Helvetica-Bold 14 SetF |
---|
5125 | %I t |
---|
5126 | [ 1 0 0 1 140 731 ] concat |
---|
5127 | %I |
---|
5128 | [ |
---|
5129 | (VIS_V) |
---|
5130 | ] Text |
---|
5131 | End |
---|
5132 | |
---|
5133 | Begin %I MLine |
---|
5134 | %I b 65535 |
---|
5135 | 2 0 1 [] 0 SetB |
---|
5136 | %I cfg Black |
---|
5137 | 0 0 0 SetCFg |
---|
5138 | %I cbg White |
---|
5139 | 1 1 1 SetCBg |
---|
5140 | none SetP %I p n |
---|
5141 | %I t |
---|
5142 | [ 1 0 0 1 -10 262 ] concat |
---|
5143 | %I 3 |
---|
5144 | 227 293 |
---|
5145 | 227 194 |
---|
5146 | 367 194 |
---|
5147 | 3 MLine |
---|
5148 | %I 1 |
---|
5149 | End |
---|
5150 | |
---|
5151 | Begin %I Line |
---|
5152 | %I b 65535 |
---|
5153 | 2 0 1 [] 0 SetB |
---|
5154 | %I cfg Black |
---|
5155 | 0 0 0 SetCFg |
---|
5156 | %I cbg White |
---|
5157 | 1 1 1 SetCBg |
---|
5158 | none SetP %I p n |
---|
5159 | %I t |
---|
5160 | [ 1 0 0 1 -10 262 ] concat |
---|
5161 | %I |
---|
5162 | 367 280 367 256 Line |
---|
5163 | %I 1 |
---|
5164 | End |
---|
5165 | |
---|
5166 | End %I eop |
---|
5167 | |
---|
5168 | showpage |
---|
5169 | |
---|
5170 | |
---|
5171 | end |
---|
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 |
---|
5177 | b(an)g(alias)h(for)f(a)h(command)26 2618 y(2.)23 b(b)o(uild)p |
---|
5178 | 180 2618 14 2 v 15 w(partition)p 351 2618 V 15 w(mdds:)16 |
---|
5179 | b(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 |
---|
5181 | 2835 y(41)p eop |
---|
5182 | %%Page: 42 43 |
---|
5183 | 42 42 bop 26 11 a Fq(4.)23 b(check)p 192 11 14 2 v 17 |
---|
5184 | w(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 |
---|
5186 | 104 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 |
---|
5188 | 197 y(6.)23 b(compute)p 244 197 V 15 w(reach:)18 b(compute)10 |
---|
5189 | b(the)h(set)h(of)f(reachable)h(states)f(of)h(the)f(FSM)26 |
---|
5190 | 291 y(7.)23 b(dynamic)p 244 291 V 15 w(v)o(ar)p 316 291 |
---|
5191 | V 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 |
---|
5193 | b(echoes)h(the)f(ar)o(guments)26 477 y(9.)23 b(\257atten)p |
---|
5194 | 200 477 V 16 w(hierarchy:)17 b(create)12 b(a)g(\257attened)g(network)3 |
---|
5195 | 570 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 |
---|
5198 | b(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 |
---|
5200 | 849 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 |
---|
5202 | 942 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 |
---|
5204 | 15 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 |
---|
5206 | 173 1128 V 15 w(bdd)p 257 1128 V 16 w(stats:)16 b(print)10 |
---|
5207 | b(the)i(BDD)f(statistics)f(for)i(the)f(\257attened)h(network)3 |
---|
5208 | 1221 y(17.)23 b(print)p 173 1221 V 15 w(fairness:)16 |
---|
5209 | b(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 |
---|
5211 | 360 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 |
---|
5213 | 15 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 |
---|
5215 | b(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 |
---|
5217 | b(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 |
---|
5219 | b(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 |
---|
5221 | 1780 V 15 w(network:)16 b(print)11 b(the)g(\257attened)g(network)3 |
---|
5222 | 1873 y(24.)23 b(print)p 173 1873 V 15 w(network)p 338 |
---|
5223 | 1873 V 16 w(stats:)15 b(print)c(statistics)f(about)h(the)g(\257attened) |
---|
5224 | h(network)3 1966 y(25.)23 b(print)p 173 1966 V 15 w(partition:)15 |
---|
5225 | b(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 |
---|
5227 | V 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 |
---|
5229 | b(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 |
---|
5231 | b(e)o(xit)c(VIS)3 2338 y(29.)23 b(read)p 164 2338 V 17 |
---|
5232 | w(blif:)15 b(read)d(a)g(blif)f(\256le)3 2431 y(30.)23 |
---|
5233 | b(read)p 164 2431 V 17 w(blif)p 245 2431 V 16 w(mv:)15 |
---|
5234 | b(read)d(a)g(blif-mv)e(\256le)3 2525 y(31.)23 b(read)p |
---|
5235 | 164 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 |
---|
5237 | b(read)c(a)f(v)o(erilog)g(\256le)3 2711 y(33.)23 b(reset)p |
---|
5238 | 172 2711 V 16 w(fairness:)16 b(reset)c(the)f(fairness)g(constraints)906 |
---|
5239 | 2835 y(42)p eop |
---|
5240 | %%Page: 43 44 |
---|
5241 | 43 43 bop 3 11 a Fq(34.)23 b(seq)p 147 11 14 2 v 16 w(v)o(erify:)17 |
---|
5242 | b(v)o(eri\256es)12 b(the)f(sequential)g(equi)o(v)o(alence)g(of)g(nodes) |
---|
5243 | g(in)g(two)g(networks)3 105 y(35.)23 b(set:)16 b(set)11 |
---|
5244 | b(an)g(en)n(vironment)g(v)o(ariable)3 199 y(36.)23 b(simulate:)15 |
---|
5245 | b(simulate)10 b(the)h(\257attened)h(network)3 293 y(37.)23 |
---|
5246 | b(source:)16 b(e)o(x)o(ecute)d(commands)d(from)h(a)h(\256le)3 |
---|
5247 | 387 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 |
---|
5249 | y(39.)23 b(test)p 150 480 V 16 w(det)p 222 480 V 16 w(and)p |
---|
5250 | 304 480 V 16 w(comp)p 422 480 V 16 w(spec:)16 b(test)11 |
---|
5251 | b(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 |
---|
5253 | 316 574 V 15 w(ac)o(yclic:)17 b(determine)11 b(whether)h(the)f(network) |
---|
5254 | f(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 |
---|
5256 | b(remo)o(v)o(es)d(the)f(de\256nition)g(of)g(an)h(alias)3 |
---|
5257 | 856 y(43.)23 b(unset:)15 b(unset)c(an)h(en)n(vironment)e(v)o(ariable)3 |
---|
5258 | 949 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 |
---|
5261 | w(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 |
---|
5263 | V 16 w(blif)p 260 1231 V 16 w(mv:)15 b(write)d(a)f(blif-mv)g(\256le)3 |
---|
5264 | 1325 y(48.)23 b(write)p 180 1325 V 16 w(order:)17 b(write)11 |
---|
5265 | b(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 |
---|
5268 | 44 44 bop -31 343 a Fs(Bibliograph)n(y)15 566 y Fq([1])23 |
---|
5269 | b(D.E.)c(Thomas,)g(P)-5 b(.R.)20 b(Moorby)m(.)34 b(The)18 |
---|
5270 | b(V)-5 b(erilog)17 b(Hardware)i(Description)e(Language.)35 |
---|
5271 | b(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 |
---|
5273 | b(Cheng.)17 b(Compiling)10 b(V)-5 b(erilog)11 b(into)f(automata.)17 |
---|
5274 | b(T)m(ech.)12 b(Rep.)g(UCB/ERL)g(M94/37,)f(May)g(1994.)15 |
---|
5275 | 810 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) |
---|
5277 | m(incentelli.)91 866 y(A)i(Methodology)f(for)h(F)o(ormal)h(V)-5 |
---|
5278 | b(eri\256cation)16 b(of)h(Real-T)n(ime)g(Systems.)29 |
---|
5279 | b(T)m(ech.)17 b(Rep.)g(UCB/ERL)g(M95/11,)91 923 y(February)12 |
---|
5280 | b(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 |
---|
5283 | b(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 |
---|
5285 | b(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) |
---|
5287 | 91 1261 y(Conference,)13 b(1994.)15 1355 y([7])23 b(E.)7 |
---|
5288 | b(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 |
---|
5290 | 1411 y(and)k(witnesses)g(in)g(symbolic)e(model)i(checking.)17 |
---|
5291 | b(Proc.)12 b(of)g(Design)e(Automation)g(Conference,)j(1995.)906 |
---|
5292 | 2835 y(44)p eop |
---|
5293 | %%Trailer |
---|
5294 | end |
---|
5295 | userdict /end-hook known{end-hook}if |
---|
5296 | %%EOF |
---|