[11] | 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 |
---|