1 | %!PS-Adobe-2.0 |
---|
2 | %%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software |
---|
3 | %%Title: blifmv.dvi |
---|
4 | %%Pages: 8 |
---|
5 | %%PageOrder: Ascend |
---|
6 | %%BoundingBox: 0 0 612 792 |
---|
7 | %%DocumentFonts: Times-Roman Times-Bold Courier Times-Italic |
---|
8 | %%EndComments |
---|
9 | %DVIPSCommandLine: dvips -o blifmv.ps blifmv.dvi |
---|
10 | %DVIPSParameters: dpi=300, comments removed |
---|
11 | %DVIPSSource: TeX output 1996.05.31:1133 |
---|
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 | TeXDict begin 40258437 52099154 1000 300 300 (blifmv.dvi) |
---|
73 | @start /Fa 138[23 14 16 18 1[23 21 23 35 12 2[12 1[21 |
---|
74 | 14 18 23 18 1[21 17[32 5[16 2[25 1[30 30 5[24 6[21 2[21 |
---|
75 | 21 21 2[10 46[{}27 41.666668 /Times-Bold rf /Fb 2 109 |
---|
76 | df<06070600000000384C4C8C98181830323264643808147F930C>105 |
---|
77 | D<3C0C181818183030303060606060C0C8C8C8D06006147F930A>108 |
---|
78 | D E /Fc 205[15 15 49[{}2 29.166668 /Times-Roman rf /Fd |
---|
79 | 6 94 df<00800100020006000C000C00180018003000300030006000600060006000E000 |
---|
80 | E000E000E000E000E000E000E000E000E000E000E0006000600060006000300030003000 |
---|
81 | 180018000C000C000600020001000080092A7C9E10>40 D<800040002000300018001800 |
---|
82 | 0C000C000600060006000300030003000300038003800380038003800380038003800380 |
---|
83 | 03800380038003000300030003000600060006000C000C00180018003000200040008000 |
---|
84 | 092A7E9E10>I<0006000000060000000600000006000000060000000600000006000000 |
---|
85 | 0600000006000000060000000600000006000000060000FFFFFFE0FFFFFFE00006000000 |
---|
86 | 060000000600000006000000060000000600000006000000060000000600000006000000 |
---|
87 | 06000000060000000600001B1C7E9720>43 D<7FFFFFC0FFFFFFE0000000000000000000 |
---|
88 | 0000000000000000000000000000000000000000000000FFFFFFE07FFFFFC01B0C7E8F20 |
---|
89 | >61 D<FEFEC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 |
---|
90 | C0C0C0C0C0C0FEFE07297C9E0C>91 D<FEFE060606060606060606060606060606060606 |
---|
91 | 06060606060606060606060606060606060606FEFE0729809E0C>93 |
---|
92 | D E /Fe 12 122 df<60F0F06004047C830C>58 D<60F0F0701010101020204080040C7C |
---|
93 | 830C>I<0000038000000F0000003C000000F0000003C000000F0000003C000000F00000 |
---|
94 | 03C000000F0000003C000000F0000000F00000003C0000000F00000003C0000000F00000 |
---|
95 | 003C0000000F00000003C0000000F00000003C0000000F000000038019187D9520>I<E0 |
---|
96 | 000000780000001E0000000780000001E0000000780000001E0000000780000001E00000 |
---|
97 | 00780000001E00000007800000078000001E00000078000001E00000078000001E000000 |
---|
98 | 78000001E00000078000001E00000078000000E000000019187D9520>62 |
---|
99 | D<000FC100303300400F0080060180060300060300060600040600040700000700000780 |
---|
100 | 0003F00001FF0000FFC0003FE00003E00000F00000700000300000302000302000306000 |
---|
101 | 606000606000C0600080F00300CC060083F800181E7E9C19>83 D<01C003C003C0018000 |
---|
102 | 00000000000000000000001C00270047004700870087000E000E001C001C001C00380038 |
---|
103 | 8038807080710032001C000A1C7E9B0E>105 D<1F800380038007000700070007000E00 |
---|
104 | 0E000E000E001C001C001C001C0038003800380038007000700070007000E200E200E200 |
---|
105 | E40064003800091D7F9C0C>108 D<381F81F04E20C6184640E81C4680F01C8F00F01C8E |
---|
106 | 00E01C0E00E01C0E00E01C1C01C0381C01C0381C01C0381C01C070380380713803807138 |
---|
107 | 0380E1380380E2700700643003003820127E9124>I<3C1F004E61804681C04701C08F01 |
---|
108 | C08E01C00E01C00E01C01C03801C03801C03801C0700380710380710380E10380E207006 |
---|
109 | 4030038014127E9119>I<1C03270747074703870187010E010E011C021C021C021C0418 |
---|
110 | 04180818081C100C2007C010127E9114>118 D<07878008C84010F0C020F1E020E3C040 |
---|
111 | E18000E00000E00001C00001C00001C00001C000638080F38080F38100E5810084C60078 |
---|
112 | 780013127E9118>120 D<1C00C02701C04701C04701C08703808703800E03800E03801C |
---|
113 | 07001C07001C07001C0700180E00180E00180E001C1E000C3C0007DC00001C0000180060 |
---|
114 | 3800F03000F06000E0C0004180003E0000121A7E9114>I E /Ff |
---|
115 | 134[18 2[18 21 12 16 16 1[21 21 21 30 12 2[12 21 1[12 |
---|
116 | 18 21 18 21 21 35[28 11[21 3[14 45[{}22 41.666668 /Times-Italic |
---|
117 | rf /Fg 6 104 df<FFFFFF80FFFFFF8019027D8A20>0 D<400020C000606000C0300180 |
---|
118 | 1803000C0600060C0003180001B00000E00000E00001B000031800060C000C0600180300 |
---|
119 | 3001806000C0C0006040002013147A9320>2 D<03C00FF01FF83FFC7FFE7FFEFFFFFFFF |
---|
120 | FFFFFFFF7FFE7FFE3FFC1FF80FF003C010107E9115>15 D<400002C00006C00006C00006 |
---|
121 | C00006C00006C00006C00006C00006C00006C00006C00006C00006C00006C00006C00006 |
---|
122 | C00006C00006C0000660000C60000C3000181C00700F01E003FF8000FE00171A7E981C> |
---|
123 | 91 D<003C00E001C0018003800380038003800380038003800380038003800380038003 |
---|
124 | 80030007001C00F0001C0007000300038003800380038003800380038003800380038003 |
---|
125 | 8003800380018001C000E0003C0E297D9E15>102 D<F0001C0007000300038003800380 |
---|
126 | 0380038003800380038003800380038003800380018001C000E0003C00E001C001800380 |
---|
127 | 038003800380038003800380038003800380038003800380030007001C00F0000E297D9E |
---|
128 | 15>I E /Fh 130[25 1[25 1[25 25 25 25 25 25 25 25 1[25 |
---|
129 | 25 25 25 25 25 1[25 25 25 25 25 25 25 25 25 1[25 16[25 |
---|
130 | 15[25 25 25 5[25 25 25 25 25 25 25 1[25 25 25 2[25 25 |
---|
131 | 6[25 33[{}43 41.666668 /Courier rf /Fi 134[25 25 1[25 |
---|
132 | 28 17 19 22 2[25 28 1[14 2[14 28 2[22 28 22 28 25 10[36 |
---|
133 | 1[33 28 36 2[39 1[47 33 5[30 14[25 25 25 25 25 25 25 |
---|
134 | 2[12 17 45[{}34 50.000000 /Times-Bold rf /Fj 134[29 29 |
---|
135 | 1[29 32 19 23 3[29 32 48 3[16 32 1[19 26 1[26 32 29 10[42 |
---|
136 | 1[39 32 5[55 39 2[23 2[36 3[39 14[29 29 29 3[19 45[{}28 |
---|
137 | 58.333336 /Times-Bold rf /Fk 80[23 23 49[8 1[18 21 21 |
---|
138 | 30 21 21 12 16 14 21 21 21 21 32 12 21 12 12 21 21 14 |
---|
139 | 18 21 18 21 18 10[30 1[25 23 2[23 30 30 37 25 2[14 30 |
---|
140 | 1[23 25 1[28 28 30 38 18 1[23 2[12 1[21 21 21 21 21 21 |
---|
141 | 21 21 21 12 10 14 10 23 21 14 14 14 2[21 21 1[14 33[{}69 |
---|
142 | 41.666668 /Times-Roman rf /Fl 134[25 2[25 25 14 19 17 |
---|
143 | 1[25 25 25 39 14 25 14 14 25 1[17 22 25 22 25 22 7[36 |
---|
144 | 2[36 36 30 28 5[44 1[36 1[17 1[36 3[33 33 1[46 6[25 2[25 |
---|
145 | 2[25 1[25 2[12 1[12 44[{}39 50.000000 /Times-Roman rf |
---|
146 | /Fm 169[51 8[63 43 2[23 2[39 3[47 20[23 45[{}7 70.833336 |
---|
147 | /Times-Roman rf end |
---|
148 | %%EndProlog |
---|
149 | %%BeginSetup |
---|
150 | %%Feature: *Resolution 300dpi |
---|
151 | TeXDict begin |
---|
152 | |
---|
153 | %%EndSetup |
---|
154 | %%Page: 1 1 |
---|
155 | 1 0 bop 833 482 a Fm(BLIF-MV)823 602 y Fl(Y)-6 b(uji)12 |
---|
156 | b(K)o(ukimoto)823 695 y(The)h(VIS)e(Group)637 754 y(Uni)o(v)o(ersity)h |
---|
157 | (of)g(California,)g(Berkele)o(y)727 812 y(vis@ic.eecs.berkele)o(y)m |
---|
158 | (.edu)839 908 y(May)g(31,)h(1996)324 1062 y Fk(BLIF-MV)i(is)g(a)h |
---|
159 | (language)f(designed)g(for)g(describing)f(hierarchical)h(sequential)g |
---|
160 | (systems)262 1112 y(with)c(non-determinism.)19 b(A)13 |
---|
161 | b(system)f(can)h(be)g(composed)f(of)g(interacting)f(sequential)h |
---|
162 | (systems,)262 1162 y(each)17 b(of)f(which)g(can)h(be)f(again)g |
---|
163 | (described)h(as)g(a)g(collection)e(of)h(communicating)f(sequential)262 |
---|
164 | 1211 y(systems.)g(This)8 b(makes)h(it)f(possible)f(to)h(describe)h |
---|
165 | (systems)g(in)f(a)h(hierarchical)f(fashion.)14 b(Although)262 |
---|
166 | 1261 y(BLIF)m(,)h(the)f(input)g(language)h(for)f(the)h(logic)f |
---|
167 | (optimization)f(system)j(SIS,)f(also)g(has)g(constructs)262 |
---|
168 | 1311 y(for)e(describing)h(hierarchies,)i(the)o(y)f(are)g(automatically) |
---|
169 | e(\257attened)i(into)e(a)i(single-le)o(v)o(el)f(circuit)262 |
---|
170 | 1361 y(once)k(the)o(y)g(are)h(read)g(in)f(because)i(the)e(internal)f |
---|
171 | (data)h(structure)g(of)g(SIS)g(does)h(not)e(support)262 |
---|
172 | 1411 y(hierarchical)h(representations.)39 b(In)18 b(VIS,)h(ho)o(we)o(v) |
---|
173 | o(er)n(,)i(the)d(original)f(hierarchy)h(is)g(preserv)o(ed)262 |
---|
174 | 1460 y(in)c(internal)h(data)h(structures)f(so)g(that)g(true)g |
---|
175 | (hierarchical)h(synthesis/v)o(eri\256cation)e(is)h(possible.)262 |
---|
176 | 1510 y(Another)9 b(important)g(e)o(xtension)h(to)g(BLIF)g(is)g(that)g |
---|
177 | (BLIF-MV)g(can)h(describe)g(non-deterministic)262 1560 |
---|
178 | y(beha)o(viors.)30 b(This)16 b(is)f(done)g(by)h(allo)o(wing)d |
---|
179 | (non-deterministic)h(gates)i(in)f(descriptions.)29 b(Non-)262 |
---|
180 | 1610 y(deterministic)9 b(gates)i(generate)g(an)h(output)c(arbitrarily)h |
---|
181 | (from)i(the)f(set)h(of)g(pre-speci\256ed)g(outputs.)262 |
---|
182 | 1660 y(These)i(allo)o(w)e(us)h(to)g(model)g(non-deterministic)e |
---|
183 | (systems)j(in)e(the)h(VIS)g(en)n(vironment,)g(which)g(is)262 |
---|
184 | 1709 y(crucial)i(in)f(formal)h(v)o(eri\256cation)g(since)h(designs)e |
---|
185 | (in)h(early)g(stages)h(are)g(likely)d(to)i(contain)g(non-)262 |
---|
186 | 1759 y(determinism.)k(Lastly)11 b(BLIF-MV)g(supports)f(multi-v)o(alued) |
---|
187 | g(v)o(ariables,)i(which)f(can)h(be)g(used)f(to)262 1809 |
---|
188 | y(simplify)d(system)j(descriptions.)262 1949 y Fj(1)58 |
---|
189 | b(Syntax)262 2050 y Fi(1.1)50 b(Models)262 2128 y Fk(A)9 |
---|
190 | b(model)h(is)f(a)i(system)f(that)f(can)h(be)g(used)g(in)f(de\256ning)g |
---|
191 | (a)h(hierarchical)g(system.)15 b(An)o(y)10 b(BLIF-MV)262 |
---|
192 | 2178 y(\256le)f(contains)h(one)f(or)h(more)g(model)g(de\256nitions.)j |
---|
193 | (If)d(there)g(is)f(more)h(than)g(one)f(model)h(de\256nition,)262 |
---|
194 | 2228 y(one)e(model)g(is)g(speci\256ed)h(as)g(the)f(root)g(model)g(by)g |
---|
195 | (putting)e(the)i Fh(.root)g Fk(construct)f(in)h(the)g(ne)o(xt)g(line) |
---|
196 | 262 2278 y(of)h(the)g Fh(.model)g Fk(declaration.)14 |
---|
197 | b(An)9 b(entire)g(hierarchy)g(is)g(created)h(from)g(this)e(model)h |
---|
198 | (recursi)o(v)o(ely)m(.)262 2327 y(If)h(no)g(model)g(is)g(declared)h(as) |
---|
199 | g(the)f(root)g(model,)g(the)h(\256rst)f(model)g(serv)o(es)i(as)f(the)f |
---|
200 | (root)f(mode.)16 b(The)262 2377 y Fh(.root)10 b Fk(construct)h(can)h |
---|
201 | (optionally)d(ha)o(v)o(e)j(an)g(ar)o(gument,)g(which)f(speci\256es)h |
---|
202 | (the)f(instance)h(name)967 2574 y(1)p eop |
---|
203 | %%Page: 2 2 |
---|
204 | 2 1 bop 262 307 a Fk(of)12 b(the)g(root)f(node.)21 b(If)12 |
---|
205 | b(no)g(ar)o(gument)g(is)h(used,)g(the)f(instance)h(name)g(is)f(the)g |
---|
206 | (same)i(as)f(the)f(model)262 357 y(name.)k(A)10 b(model)g(is)g |
---|
207 | (declared)h(as)g(follo)o(ws:)262 440 y Fh(.model)24 b(<model-name>)262 |
---|
208 | 490 y(.inputs)g(<input-list>)262 540 y(.outputs)g(<output-list>)262 |
---|
209 | 590 y(<command>)262 639 y(...)262 689 y(<command>)262 |
---|
210 | 739 y(.end)324 822 y Fg(\017)c Ff(model-name)6 b Fk(is)g(a)g(string)g |
---|
211 | (gi)o(ving)g(the)g(name)g(of)g(the)g(model.)12 b(A)6 |
---|
212 | b(string)g(should)g(be)g(composed)365 872 y(of)11 b(lo)o(wer)o |
---|
213 | (-case/upper)o(-case)h(alphabetic)e(characters,)j(numbers,)e(or)f |
---|
214 | (symbols)g($,)h Fe(<)p Fk(,)h Fe(>)p Fk(,)p 1671 872 |
---|
215 | 13 2 v 26 w(,)365 922 y(?,)f(|,)h(+,)f(*,)f(@.)16 b(An)o(y)10 |
---|
216 | b(string)f(used)h(in)g(BLIF-MV)g(has)h(to)f(satisfy)f(this)h |
---|
217 | (constraint.)324 1002 y Fg(\017)20 b Ff(input-list)9 |
---|
218 | b Fk(is)i(a)i(white-space)e(separated)i(list)d(of)i(strings)e |
---|
219 | (\(terminated)h(by)h(the)f(end)h(of)f(the)365 1051 y(line\))16 |
---|
220 | b(gi)o(ving)e(the)i(formal)g(input)f(terminals)h(for)f(the)h(model)g |
---|
221 | (being)g(declared.)34 b(If)16 b(this)365 1101 y(is)f(the)g(root)g |
---|
222 | (model,)h(then)f(signals)g(can)h(be)f(identi\256ed)f(as)i(the)f |
---|
223 | (primary)g(inputs)f(of)h(this)365 1151 y(system.)h Ff(input-list)7 |
---|
224 | b Fk(can)j(be)g(null,)f(in)g(which)h(case)h(the)f Fh(.inputs)f |
---|
225 | Fk(line)g(may)i(be)f(remo)o(v)o(ed)365 1201 y(altogether)n(.)33 |
---|
226 | b(Multiple)15 b Fh(.inputs)h Fk(lines)g(are)i(allo)o(wed,)g(and)e(the)h |
---|
227 | (lists)e(of)i(inputs)e(are)365 1251 y(concatenated.)324 |
---|
228 | 1330 y Fg(\017)20 b Ff(output-list)12 b Fk(is)j(a)h(white-space)f |
---|
229 | (separated)h(list)e(of)h(strings)f(\(terminated)g(by)h(the)g(end)g(of) |
---|
230 | 365 1380 y(the)h(line\))e(gi)o(ving)g(the)h(formal)g(output)f |
---|
231 | (terminals)h(for)f(the)i(model)f(being)g(declared.)31 |
---|
232 | b(If)365 1430 y(this)14 b(is)h(the)g(root)f(model,)i(then)e(signals)h |
---|
233 | (can)g(be)g(identi\256ed)f(as)i(the)f(primary)f(output)f(of)365 |
---|
234 | 1480 y(this)i(system.)33 b Ff(output-list)13 b Fk(can)k(be)f(null,)h |
---|
235 | (in)e(which)h(case)h(the)f Fh(.outputs)g Fk(line)f(may)365 |
---|
236 | 1530 y(be)e(remo)o(v)o(ed)g(altogether)n(.)21 b(Multiple)10 |
---|
237 | b Fh(.outputs)i Fk(lines)g(are)h(allo)o(wed,)g(and)f(the)h(lists)e(of) |
---|
238 | 365 1579 y(outputs)e(are)i(concatenated.)324 1659 y Fg(\017)20 |
---|
239 | b Fk(Input)9 b(v)o(ariables)i(and)f(output)f(v)o(ariables)h(ha)o(v)o(e) |
---|
240 | i(to)e(be)g(disjoint,)f(i.e.)16 b(a)11 b(v)o(ariable)f(cannot)g(be)365 |
---|
241 | 1709 y(both)f(an)i(input)e(and)h(an)h(output)d(in)i(a)h(model.)324 |
---|
242 | 1789 y Fg(\017)20 b Ff(command)14 b Fk(is)g(one)g(of)f |
---|
243 | Fh(.mv)p Fk(,)i Fh(.table)p Fk(,)g Fh(.latch)p Fk(,)g |
---|
244 | Fh(.reset)e Fk(and)h Fh(.subckt)p Fk(,)h(which)365 1839 |
---|
245 | y(de\256nes)f(the)f(detailed)g(functionality)e(of)h(the)i(model.)24 |
---|
246 | b(All)12 b(the)h Fh(.mv)g Fk(declarations)g(must)365 |
---|
247 | 1888 y(precede)f(the)e(others)g(in)f(a)i(model)f(declaration.)262 |
---|
248 | 2006 y Fi(1.2)50 b(Multi-valued)9 b(V)-5 b(ariables)262 |
---|
249 | 2084 y Fk(A)14 b(multi-v)o(alued)e(v)o(ariable)i(is)g(a)h(v)o(ariable)f |
---|
250 | (that)g(can)h(take)f(a)h(\256nite)e(number)i(of)f(v)o(alues.)27 |
---|
251 | b(There)262 2133 y(are)18 b(two)e(classes)i(of)f(multi-v)o(alued)f(v)o |
---|
252 | (ariables.)36 b(The)18 b(class)g(of)f Ff(enumer)o(ative)h(variables)f |
---|
253 | Fk(are)262 2183 y(v)o(ariables)10 b(whose)h(domain)g(is)g(the)f |
---|
254 | Fe(n)h Fk(inte)o(gers)g Fg(f)p Fk(0)p Fe(;)c(:)g(:)g(:)t(;)g(n)i |
---|
255 | Fg(\000)h Fk(1)p Fg(g)p Fk(.)17 b(Note)10 b(that)h(Boolean)f(v)o |
---|
256 | (ariables)262 2233 y(are)f(enumerati)o(v)o(e)h(v)o(ariables)f(where)h |
---|
257 | Fe(n)h Fd(=)h Fk(2.)j(Enumerati)o(v)o(e)9 b(v)o(ariables)g(are)h |
---|
258 | (declared)g(as)g(follo)o(ws.)262 2316 y Fh(.mv)24 b |
---|
259 | (<variable-name-list>)f(<number-of-values>)324 2399 y |
---|
260 | Fg(\017)d Ff(variable-name-list)8 b Fk(is)i(a)h(comma)g(separated)g |
---|
261 | (list)e(of)h(strings)f(\(terminated)g(by)h(the)g(end)g(of)365 |
---|
262 | 2449 y(the)g(line\))g(gi)o(ving)e(the)i(names)i(of)e(v)o(ariables)g |
---|
263 | (being)g(declared.)967 2574 y(2)p eop |
---|
264 | %%Page: 3 3 |
---|
265 | 3 2 bop 324 307 a Fg(\017)20 b Ff(number)o(-of-values)10 |
---|
266 | b Fk(is)g(a)h(natural)e(number)n(,)i(which)f(speci\256es)h(the)f |
---|
267 | (number)h(of)f(v)o(alues)g Fe(n)p Fk(.)324 390 y Fg(\017)20 |
---|
268 | b Fk(Example:)15 b Fh(.mv)25 b(x,y)g(3)p Fk(.)324 482 |
---|
269 | y(The)8 b(second)h(class,)g Ff(symbolic)f(variables)p |
---|
270 | Fk(,)g(is)g(more)h(general)f(than)f(the)h(\256rst)g(one.)14 |
---|
271 | b(A)8 b(symbolic)262 531 y(v)o(ariable)f(can)h(take)g(a)g(set)f(of)h |
---|
272 | (arbitrary)e(v)o(alues.)15 b(F)o(or)7 b(e)o(xample,)j(a)e(v)o(ariable)f |
---|
273 | (that)g(takes)h(three)g(v)o(alues)262 581 y(red,)h(green,)h(and)g(blue) |
---|
274 | e(is)h(a)h(symbolic)e(v)o(ariable.)15 b(Symbolic)8 b(v)o(ariables)h |
---|
275 | (are)h(declared)g(as)g(follo)o(ws.)262 672 y Fh(.mv)24 |
---|
276 | b(<variable-name-list>)f(<number-of-values>)g(<value-list>)324 |
---|
277 | 764 y Fg(\017)d Ff(variable-name-list)11 b Fk(and)i Ff(number)o |
---|
278 | (-of-values)f Fk(are)i(the)e(same)j(as)e(for)g(the)g(declaration)f(of) |
---|
279 | 365 814 y(enumerati)o(v)o(e)f(v)o(ariables.)324 897 y |
---|
280 | Fg(\017)20 b Ff(value-list)10 b Fk(is)h(a)h(white-space)g(separated)g |
---|
281 | (list)e(of)h(strings)f(\(terminated)h(by)g(the)g(end)g(of)g(the)365 |
---|
282 | 946 y(line\))c(gi)o(ving)f(the)h(list)g(of)g(v)o(alues)h(the)f(v)o |
---|
283 | (ariable)h(can)g(take.)14 b(The)8 b(number)g(of)f(v)o(alues)h(declared) |
---|
284 | 365 996 y(and)j(the)f(range)g(size)h(should)e(match.)324 |
---|
285 | 1079 y Fg(\017)20 b Fk(Example:)15 b Fh(.mv)25 b(x,y)g(3)f(red)h(green) |
---|
286 | g(blue)p Fk(.)324 1171 y(If)9 b(a)h(v)o(ariable)f(is)g(not)g(de\256ned) |
---|
287 | g(using)g Fh(.mv)g Fk(in)g(a)h(model,)g(then)f(the)g(v)o(ariable)g(is)g |
---|
288 | (assumed)i(to)d(be)262 1220 y(a)i(Boolean)g(v)o(ariable.)324 |
---|
289 | 1270 y(T)m(wo)g(v)o(ariables)g(are)h(said)f(to)g(ha)o(v)o(e)h(the)f |
---|
290 | (same)i(type)e(if)313 1353 y(1.)21 b(the)10 b(v)o(ariables)h(are)g |
---|
291 | (enumerati)o(v)o(e)g(v)o(ariables)f(with)f(the)h(same)i(domain)e(size,) |
---|
292 | h(or)313 1436 y(2.)21 b(the)15 b(v)o(ariables)g(are)h(symbolic)e(v)o |
---|
293 | (ariables)h(with)f(the)h(same)i(domain)e(size)g(and)g(the)g(same)365 |
---|
294 | 1486 y(symbolic)10 b(v)o(alues)g(de\256ned)h(in)f(the)g(same)h(order)f |
---|
295 | (in)g(the)g Fh(.mv)g Fk(construct.)262 1569 y(Consider)f(the)h(follo)o |
---|
296 | (wing)e(e)o(xample.)262 1652 y Fh(.mv)24 b(x)h(2)262 |
---|
297 | 1702 y(.mv)f(y)h(2)g(red)f(blue)262 1785 y Fe(x)7 b Fk(and)g |
---|
298 | Fe(y)j Fk(are)e(not)e(of)h(the)h(same)g(type)f(because)i |
---|
299 | Fe(x)e Fk(is)h(an)f(enumerati)o(v)o(e)h(v)o(ariable)g(and)f |
---|
300 | Fe(y)i Fk(is)e(a)h(symbolic)262 1835 y(v)o(ariable)i(although)e(both)h |
---|
301 | (are)i(two-v)o(alued)e(v)o(ariables.)262 1918 y Fh(.mv)24 |
---|
302 | b(x)h(2)g(red)f(blue)262 1968 y(.mv)g(y)h(2)g(blue)f(red)262 |
---|
303 | 2051 y Fe(x)13 b Fk(and)h Fe(y)h Fk(in)e(the)h(abo)o(v)o(e)h(e)o |
---|
304 | (xample)f(are)h(not)e(of)g(the)h(same)h(type)e(because)i(symbolic)e(v)o |
---|
305 | (alues)h(are)262 2100 y(de\256ned)c(in)g(dif)o(ferent)f(orders.)262 |
---|
306 | 2219 y Fi(1.3)50 b(T)-5 b(ables)262 2297 y Fk(A)14 b(table)h(is)f(an)h |
---|
307 | (abstract)g(representation)f(of)g(a)h(physical)f(gate.)28 |
---|
308 | b(A)15 b(table)f(is)h(dri)o(v)o(en)f(by)g(inputs)262 |
---|
309 | 2347 y(and)g(generates)h(outputs)e(follo)o(wing)f(its)h(functionality)m |
---|
310 | (.)25 b(Although)12 b(a)j(real)g(gate)f(generates)h(an)262 |
---|
311 | 2397 y(output)d(deterministically)h(depending)h(on)g(what)h(inputs)e |
---|
312 | (are)i(supplied,)g(tables)g(in)f(BLIF-MV)262 2447 y(can)h(represent)h |
---|
313 | (non-deterministic)d(beha)o(viors)i(as)h(well.)29 b(The)16 |
---|
314 | b(functionality)c(of)j(the)g(table)g(is)967 2574 y(3)p |
---|
315 | eop |
---|
316 | %%Page: 4 4 |
---|
317 | 4 3 bop 262 307 a Fk(described)13 b(as)h(a)f(symbolic)g(relation,)g |
---|
318 | (i.e.)25 b(the)13 b(table)g(enumerates)h(symbolically)e(all)h(the)g(v)o |
---|
319 | (alid)262 357 y(combination)h(of)h(v)o(alues)h(among)g(the)f(inputs)g |
---|
320 | (and)h(the)f(outputs.)30 b(Note)15 b(that)h(BLIF-MV)f(can)262 |
---|
321 | 407 y(handle)e(multi-output)e(tables,)k(unlike)d(BLIF)m(,)i(where)g(e)o |
---|
322 | (v)o(ery)h(table)e(is)h(single-output.)23 b(A)14 b(table)262 |
---|
323 | 457 y(without)9 b(input)h(represents)i(a)g(constant)f(generator)n(.)18 |
---|
324 | b(If)12 b(the)f(table)g(allo)o(ws)g(more)h(than)f(one)h(v)o(alue)262 |
---|
325 | 506 y(for)h(its)h(output,)f(then)h(the)g(table)g(is)f(a)i |
---|
326 | Ff(nondeterministic)d Fk(constant)i(generator)n(,)h(which)f(we)h(call) |
---|
327 | 262 556 y Ff(pseudo)9 b(input)p Fk(.)14 b(T)m(ables)d(are)g(declared)g |
---|
328 | (in)f(the)g(follo)o(wing)e(way)m(.)262 646 y Fh(.table)24 |
---|
329 | b(<in-1>)g(<in-2>)h(...)f(<in-n>)h(->)f(<out-1>)h(<out-2>...)e(<out-m>) |
---|
330 | 262 696 y(<relation>)262 745 y(...)262 795 y(<relation>)324 |
---|
331 | 885 y Fg(\017)d Ff(in-1)p Fk(,)p Fe(:)7 b(:)g(:)e Fk(,)p |
---|
332 | Ff(in-n)14 b Fk(are)j(strings)d(gi)o(ving)f(the)i(names)h(of)f(the)g |
---|
333 | (inputs)f(to)h(the)g(table)g(being)g(de-)365 935 y(\256ned.)h(The)10 |
---|
334 | b(v)o(ariables)g(ha)o(v)o(e)h(to)e(be)i(de\256ned)f(using)f(the)h |
---|
335 | Fh(.mv)f Fk(construct)h(before)g(the)g(table.)365 984 |
---|
336 | y(Otherwise,)h(the)o(y)f(are)h(assumed)g(to)f(be)h(Boolean)e(v)o |
---|
337 | (ariables.)324 1067 y Fg(\017)20 b Ff(out-1)p Fk(,)p |
---|
338 | Fe(:)7 b(:)g(:)e Fk(,)p Ff(out-m)14 b Fk(are)i(strings)e(gi)o(ving)f |
---|
339 | (the)h(names)j(of)d(the)h(outputs)e(to)i(the)g(table)f(being)365 |
---|
340 | 1116 y(de\256ned.)28 b(The)15 b(v)o(ariables)g(ha)o(v)o(e)g(to)f(be)h |
---|
341 | (de\256ned)g(using)e(the)h Fh(.mv)h Fk(construct)e(before)i(the)365 |
---|
342 | 1166 y(table.)g(Otherwise,)9 b(the)o(y)f(are)h(assumed)g(to)f(be)h |
---|
343 | (Boolean)f(v)o(ariables.)14 b(An)o(y)8 b(table)h(must)f(ha)o(v)o(e)365 |
---|
344 | 1216 y(at)j(least)f(one)g(output.)324 1298 y Fg(\017)20 |
---|
345 | b Fk(If)10 b(a)h(table)f(has)h(a)g(single)e(output,)g |
---|
346 | Fh(->)h Fk(is)g(optional.)324 1388 y(A)h Ff(r)n(elation)f |
---|
347 | Fk(is)g(a)i(white-space)f(separated)h(non-null)d(list)g(of)i |
---|
348 | Fe(n)f Fd(+)f Fe(m)j Fk(strings,)e(gi)o(ving)f(a)j(v)o(alid)262 |
---|
349 | 1438 y(combination)c(of)i(v)o(alues)g(among)h(inputs)d(and)j(outputs.)i |
---|
350 | (The)e Fe(i)p Fk(-th)f(string)e(in)i(a)h(relation)e(speci\256es)262 |
---|
351 | 1488 y(a)k(set)g(of)f(v)o(alues)h(for)f(the)g Fe(i)p |
---|
352 | Fk(-th)h(v)o(ariable)f(in)g(the)g(input/output)d(declaration)j(of)h |
---|
353 | Fh(.table)p Fk(.)22 b(Each)262 1537 y(relation)6 b(denotes)i(the)f |
---|
354 | (Cartesian)h(product)f(of)g(all)h(the)f(sets)h(of)g(v)o(alues.)14 |
---|
355 | b(The)9 b(input-outpu)o(t)c(relation)262 1587 y(of)12 |
---|
356 | b(a)h(table)f(is)g(de\256ned)h(as)g(the)f(union)g(of)g(all)g(the)g |
---|
357 | (relations.)21 b(A)13 b(set)f(of)g(v)o(alues)h(can)g(be)g(declared)262 |
---|
358 | 1637 y(recursi)o(v)o(ely)d(in)f(the)h(follo)o(wing)e(form.)313 |
---|
359 | 1726 y(1.)21 b(a)11 b(v)o(alue)f Fe(v)q Fk(,)i(or)313 |
---|
360 | 1809 y(2.)21 b Fg(\000)p Fk(,)11 b(which)f(is)g(the)g(uni)o(v)o(erse,)h |
---|
361 | (or)313 1891 y(3.)21 b(a)11 b(range)g Fg(f)p Fe(v)538 |
---|
362 | 1897 y Fc(1)563 1891 y Fg(\000)f Fe(v)625 1897 y Fc(2)642 |
---|
363 | 1891 y Fg(g)p Fk(,)g(or)313 1973 y(4.)21 b(a)11 b(list)e |
---|
364 | Fd(\()p Fe(S)496 1979 y Fc(1)513 1973 y Fe(;)e(S)557 |
---|
365 | 1979 y Fc(2)574 1973 y Fe(;)g(:)g(:)g(:)e(;)i(S)692 1979 |
---|
366 | y Fb(l)704 1973 y Fd(\))p Fk(,)k(where)g Fe(S)878 1979 |
---|
367 | y Fb(i)903 1973 y Fk(\()p Fe(i)g Fd(=)h Fk(1)p Fe(;)7 |
---|
368 | b(:)g(:)g(:)e(;)i(l)q Fk(\))j(is)g(a)g(set)h(of)f(v)o(alues,)h(or)313 |
---|
369 | 2056 y(5.)21 b(!)p Fe(S)r Fk(,)12 b(which)e(is)g(a)g(complement)h(of)f |
---|
370 | (a)h(set)f(of)g(v)o(alues)h Fe(S)r Fk(.)324 2145 y(Let)e |
---|
371 | Fe(x)g Fk(be)g(an)g(enumerati)o(v)o(e)h(v)o(ariable)e(which)h(takes)f |
---|
372 | (4)h(v)o(alues.)15 b(The)9 b(follo)o(wing)e(are)i(e)o(xamples)262 |
---|
373 | 2195 y(of)g(a)i(set)g(of)f(v)o(alues)g(for)g Fe(x)p Fk(.)324 |
---|
374 | 2285 y Fg(\017)20 b Fk(1)324 2367 y Fg(\017)g(\000)324 |
---|
375 | 2449 y(\017)g(f)p Fk(2)9 b Fg(\000)h Fk(3)p Fg(g)967 |
---|
376 | 2574 y Fk(4)p eop |
---|
377 | %%Page: 5 5 |
---|
378 | 5 4 bop 324 307 a Fg(\017)20 b Fd(\()p Fk(0)p Fe(;)7 |
---|
379 | b Fg(f)p Fk(2)h Fg(\000)i Fk(3)p Fg(g)p Fd(\))324 390 |
---|
380 | y Fg(\017)20 b Fk(!)p Fg(f)p Fk(2)9 b Fg(\000)g Fk(3)p |
---|
381 | Fg(g)324 482 y Fk(If)g(a)i(v)o(ariable)e(is)h(a)g(symbolic)f(v)o |
---|
382 | (ariable,)h(the)g(range)g(construct)f(in)g(the)g(abo)o(v)o(e)i(cannot)f |
---|
383 | (be)g(used)262 531 y(since)g Fg(f)p Fk(red-green)p Fg(g)p |
---|
384 | Fk(,)g(for)g(e)o(xample,)i(does)f(not)e(make)i(sense.)324 |
---|
385 | 581 y(Let)f(us)h(consider)f(the)g(follo)o(wing)e(e)o(xample.)262 |
---|
386 | 672 y Fh(.mv)24 b(x,y)h(4)262 722 y(.table)f(x)h(->)f(y)262 |
---|
387 | 772 y(!2)g({1-3})262 822 y(-)g(0)262 872 y(2)g(\(0,3\))324 |
---|
388 | 963 y Fk(The)13 b(relation)e(speci\256ed)i(in)f(this)f(table)h(is:)18 |
---|
389 | b Fd([\()p Fk(0)p Fe(;)7 b Fk(1)p Fe(;)g Fk(3)p Fd(\))i |
---|
390 | Fg(\002)h Fd(\()p Fk(1)p Fe(;)d Fk(2)p Fe(;)g Fk(3)p |
---|
391 | Fd(\)])i Fg([)h Fd([\()p Fk(0)p Fe(;)d Fk(1)p Fe(;)g |
---|
392 | Fk(2)p Fe(;)g Fk(3)p Fd(\))g Fg(\002)k Fd(\()p Fk(0)p |
---|
393 | Fd(\)])f Fg([)262 1013 y Fd([\()p Fk(2)p Fd(\))e Fg(\002)i |
---|
394 | Fd(\()p Fk(0)p Fe(;)d Fk(3)p Fd(\)])p Fk(.)262 1123 y |
---|
395 | Fa(1.3.1)41 b(=)10 b(Construct)262 1201 y Fk(One)j(can)h(also)f(use)h |
---|
396 | (the)f Ff(=)g(construct)g Fk(in)g(table)g(speci\256cations.)24 |
---|
397 | b(Assume)14 b(that)e(in)h(the)g(column)262 1251 y(corresponding)8 |
---|
398 | b(to)i(v)o(ariable)g Fe(y)q Fk(,)i(we)e(ha)o(v)o(e)i |
---|
399 | Fd(=)g Fe(x)e Fk(as)h(in)e(the)h(follo)o(wing)e(e)o(xample.)262 |
---|
400 | 1342 y Fh(.table)24 b(x)h(->)f(y)262 1392 y(-)g(=x)324 |
---|
401 | 1483 y Fk(The)11 b(interpretation)d(of)h(this)h(construct)f(is)h(that)g |
---|
402 | (the)g(v)o(alue)g(of)g Fe(y)i Fk(should)d(be)h(equal)g(to)g |
---|
403 | Fe(x)p Fk(.)15 b(This)262 1533 y(enables)10 b(us)h(to)e(describe)i(a)g |
---|
404 | (multi-v)o(alued)d(multiple)o(xor)h(compactly)h(\(see)h(belo)o(w\).)262 |
---|
405 | 1616 y Fh(.mv)24 b(select)g(2)262 1666 y(.mv)g(data0,data1,output)f |
---|
406 | (256)262 1716 y(.table)h(select)g(data0)h(data1)f(->)h(output)262 |
---|
407 | 1766 y(0)f(-)h(-)g(=data0)262 1816 y(1)f(-)h(-)g(=data1)262 |
---|
408 | 1899 y Fk(Note)11 b(that)h(two)f(v)o(ariables)h(related)g(with)f(the)h |
---|
409 | (=)h(construct)f(should)e(be)j(of)f(the)g(same)h(type.)21 |
---|
410 | b(An)o(y)262 1948 y(v)o(ariable)10 b(referred)g(to)g(with)f(the)h(=)h |
---|
411 | (construct)f(must)g(be)g(an)h(input)e(of)h(the)g(table.)262 |
---|
412 | 2059 y Fa(1.3.2)41 b(Default)10 b(Output)262 2137 y Fk(It)e(is)h |
---|
413 | (sometimes)h(con)n(v)o(enient)g(to)e(de\256ne)i(a)g(default)e(output)g |
---|
414 | (for)h(the)g(input)f(patterns)h(not)f(speci\256ed)262 |
---|
415 | 2187 y(in)g(a)h(gi)o(v)o(en)g(relation.)14 b(The)9 b |
---|
416 | Fh(.default)g Fk(construct)f(is)h(used)g(for)f(this)g(purpose.)15 |
---|
417 | b(In)8 b(the)h(follo)o(wing)262 2236 y(e)o(xample,)i(no)e(relation)g |
---|
418 | (is)g(speci\256ed)i(for)e(the)g(case)j(where)e(either)f |
---|
419 | Fe(x)p Fk(1)g(or)h Fe(x)p Fk(2)f(is)h(0.)k(Since)d(we)f(ha)o(v)o(e)262 |
---|
420 | 2286 y(a)f(default)f(statement)h(in)f(the)h(table,)g(output)e(00)h(is)h |
---|
421 | (related)g(for)f(those)h(unspeci\256ed)g(input)e(patterns.)262 |
---|
422 | 2336 y(Therefore,)14 b(the)f(relation)f(of)h(this)f(table)g(is:)20 |
---|
423 | b Fd([\()p Fk(1)p Fd(\))10 b Fg(\002)h Fd(\()p Fk(1)p |
---|
424 | Fd(\))g Fg(\002)g Fd(\()p Fk(1)p Fd(\))g Fg(\002)g Fd(\()p |
---|
425 | Fk(1)p Fd(\)])f Fg([)h Fd([\()p Fk(0)p Fd(\))f Fg(\002)h |
---|
426 | Fd(\()p Fk(0)p Fd(\))g Fg(\002)g Fd(\()p Fk(0)p Fd(\))f |
---|
427 | Fg(\002)262 2386 y Fd(\()p Fk(0)p Fd(\)])f Fg([)g Fd([\()p |
---|
428 | Fk(0)p Fd(\))g Fg(\002)h Fd(\()p Fk(1)p Fd(\))g Fg(\002)g |
---|
429 | Fd(\()p Fk(0)p Fd(\))g Fg(\002)g Fd(\()p Fk(0)p Fd(\)])f |
---|
430 | Fg([)g Fd([\()p Fk(1)p Fd(\))h Fg(\002)g Fd(\()p Fk(0)p |
---|
431 | Fd(\))f Fg(\002)h Fd(\()p Fk(0)p Fd(\))g Fg(\002)g Fd(\()p |
---|
432 | Fk(0)p Fd(\)])p Fk(.)18 b(Each)12 b(table)f(can)h(ha)o(v)o(e)g(at)f |
---|
433 | (most)262 2436 y(one)f Fh(.default)f Fk(declaration.)967 |
---|
434 | 2574 y(5)p eop |
---|
435 | %%Page: 6 6 |
---|
436 | 6 5 bop 262 307 a Fh(.mv)24 b(x1,x2,y1,y2)g(2)262 357 |
---|
437 | y(.table)g(x1)h(x2)f(->)h(y1)g(y2)262 407 y(.default)f(0)g(0)262 |
---|
438 | 457 y(1)g(1)h(1)g(1)324 548 y Fk(The)8 b Fh(.default)g |
---|
439 | Fk(construct)f(can)h(be)g(used)g(e)o(v)o(en)h(for)e(tables)h(without)e |
---|
440 | (inputs.)13 b(Ho)o(we)o(v)o(er)n(,)d(one)262 598 y(has)i(to)g(be)g |
---|
441 | (careful)g(about)g(the)g(semantics.)21 b(There)13 b(are)g(two)e |
---|
442 | (possible)g(cases.)23 b(One)12 b(case)i(is)d(that)262 |
---|
443 | 648 y(a)g(table)f(has)h(a)g(default)f(declaration,)h(b)o(ut)f(has)h(no) |
---|
444 | f(relation)g(speci\256ed,)h(where)h(the)e(interpretation)262 |
---|
445 | 697 y(of)i(the)g(table)h(is)f(that)g(it)g(always)g(takes)h(the)f |
---|
446 | (default.)21 b(The)14 b(other)e(case)i(is)e(that)g(a)h(table)g(has)g |
---|
447 | (both)262 747 y(a)f(default)g(declaration)g(and)g(a)h(non-null)e |
---|
448 | (relation)g(speci\256ed,)j(then)e(the)g(default)g(can)h(be)g(simply)262 |
---|
449 | 797 y(ignored.)262 916 y Fi(1.4)50 b(Latches)12 b(and)g(Reset)g(T)-5 |
---|
450 | b(ables)262 994 y Fk(A)10 b(latch)g(is)g(a)h(storage)g(element)f(which) |
---|
451 | g(updates)h(its)e(stored)h(v)o(alue)h(at)f(e)o(v)o(ery)h(clock)g(tick.) |
---|
452 | k(A)10 b(latch)262 1043 y(has)h(an)g(input)f(and)h(an)g(output.)16 |
---|
453 | b(At)11 b(each)h(clock)f(tick)f(the)h(latch)g(output)e(is)i(set)g(to)g |
---|
454 | (the)f(latch)h(input)262 1093 y(v)o(alue)g(before)g(the)g(tick,)g(and)h |
---|
455 | (keep)f(the)g(v)o(alue)g(till)f(the)h(ne)o(xt)g(clock)h(tick.)17 |
---|
456 | b(Ev)o(ery)12 b(latch)f(has)h(to)e(be)262 1143 y(initialized)g |
---|
457 | (although)h(the)h(latch)g(is)g(allo)o(wed)g(to)g(ha)o(v)o(e)i(more)e |
---|
458 | (than)g(one)h(initial)d(v)o(alue,)j(in)f(which)262 1193 |
---|
459 | y(case)h(the)f(latch)g(takes)g(an)g(initial)e(v)o(alue)i |
---|
460 | (nondeterministically)e(from)h(the)h(speci\256ed)h(v)o(alues.)21 |
---|
461 | b(A)262 1243 y(latch)14 b(can)g(be)h(seen)g(as)g(a)g(multi-v)o(alued)d |
---|
462 | (\257ip-\257op)h(with)g(possibly)g(multiple)g(initial)f(states.)27 |
---|
463 | b(In)262 1293 y(BLIF-MV)-5 b(,)9 b(there)i(is)f(an)g(implicit)e |
---|
464 | (assumption)i(that)f(the)h(whole)g(system)g(is)g(clocked)g(by)g(a)g |
---|
465 | (single)262 1342 y(global)f(clock)h(although)f(the)h(clock)g(is)g(ne)o |
---|
466 | (v)o(er)h(declared)g(in)f(BLIF-MV)g(declarations.)324 |
---|
467 | 1392 y(A)g(latch)g(is)g(declared)h(as)g(follo)o(ws.)262 |
---|
468 | 1483 y Fh(.latch)24 b(<latch-input>)g(<latch-output>)324 |
---|
469 | 1575 y Ff(latc)o(h)11 b(input)f Fk(and)h Ff(latc)o(h)g(output)f |
---|
470 | Fk(are)i(strings,)f(gi)o(ving)f(the)h(name)i(of)e(the)g(latch)g(input)f |
---|
471 | (and)i(the)262 1625 y(latch)h(output.)24 b(The)14 b(two)e(v)o(ariables) |
---|
472 | i(should)f(be)g(of)h(the)f(same)i(type.)25 b(A)14 b(latch)g(must)f(ha)o |
---|
473 | (v)o(e)i(one)262 1674 y(reset)d(table,)h(which)f(is)h(used)f(to)g |
---|
474 | (initialize)f(the)h(latch)g(output)f(at)h(the)g(be)o(ginning.)21 |
---|
475 | b(A)12 b(reset)h(table)262 1724 y(is)e(a)h(single)f(output)f(table)i |
---|
476 | (whose)g(only)e(output)g(is)i(the)f(output)f(of)i(a)g(latch.)19 |
---|
477 | b(Notice)12 b(that)f(we)h(use)262 1774 y Fh(.reset)c |
---|
478 | Fk(instead)h(of)g Fh(.table)g Fk(for)g(reset)g(tables.)15 |
---|
479 | b(If)9 b(a)h(latch)f(is)g(reset)g(to)g(a)h(constant)e(v)o(alue,)i(then) |
---|
480 | 262 1824 y(the)f(latch)h(table)g(has)g(no)g(input.)j(The)e(follo)o |
---|
481 | (wing)c(e)o(xample)k(is)f(for)g(the)f(latch)h Ff(latc)o(h)p |
---|
482 | 1459 1824 13 2 v 14 w(output)f Fk(whose)262 1874 y(reset)h(state)h(is)f |
---|
483 | (0.)262 1965 y Fh(.reset)24 b(latch_output)262 2015 y(0)324 |
---|
484 | 2106 y Fk(One)15 b(can)g(specify)g(multiple)e(initial)g(states)i(by)f |
---|
485 | (specifying)g(more)h(than)f(one)h(v)o(alue)g(in)f(the)262 |
---|
486 | 2156 y(latch)9 b(output.)14 b(Adding)8 b(one)i(more)h(line)e(to)g(the)h |
---|
487 | (abo)o(v)o(e)h(e)o(xample,)g(the)f(latch)g(has)g(no)o(w)g(two)f |
---|
488 | (initial)262 2206 y(states.)262 2297 y Fh(.reset)24 b(latch_output)262 |
---|
489 | 2347 y(0)262 2397 y(1)967 2574 y Fk(6)p eop |
---|
490 | %%Page: 7 7 |
---|
491 | 7 6 bop 324 307 a Fk(This)13 b(is)g(one)h(way)f(to)g(introduce)f |
---|
492 | (non-determinism)g(in)h(system)g(descriptions.)24 b(Also,)14 |
---|
493 | b(one)262 357 y(could)d(create)i(comple)o(x)g(reset)g(circuitry)e |
---|
494 | (sensiti)o(v)o(e)g(to)h(other)g(v)o(ariables)g(by)f(introducing)f |
---|
495 | (inputs)262 407 y(to)h(the)h(latch)f(table.)20 b(The)13 |
---|
496 | b(follo)o(wing)c Fh(.reset)j Fk(statement)g(initializes)e(the)i(latch)g |
---|
497 | (to)f(1)h(if)f Fe(x)h Fk(is)g(0)262 457 y(and)e(to)g(0)g(if)f |
---|
498 | Fe(x)h Fk(is)h(1.)262 548 y Fh(.reset)24 b(x)h(latch_output)262 |
---|
499 | 598 y(0)f(1)262 648 y(1)g(0)262 766 y Fi(1.5)50 b(Subcir)o(cuits)262 |
---|
500 | 844 y Fk(In)16 b(a)h(model,)h(another)e(model)g(can)h(be)g |
---|
501 | (instantiated)e(as)i(a)g(subcircuit)f(using)f(the)h Fh(.subckt)262 |
---|
502 | 894 y Fk(construct.)262 985 y Fh(.subckt)24 b(<model-name>)g |
---|
503 | (<instance-name>)f(<formal-actual-list>)324 1077 y Fk(This)11 |
---|
504 | b(construct)f(instantiates)h(a)g(reference)i(model)e |
---|
505 | Ff(model-name)g Fk(as)h(an)f(instance)g Ff(instance-)262 |
---|
506 | 1127 y(name)i Fk(in)f(the)h(current)g(model.)23 b Ff |
---|
507 | (formal-actual-list)9 b Fk(speci\256es)15 b(the)d(association)h |
---|
508 | (between)h(each)262 1176 y(formal)i(v)o(ariable)g(in)g |
---|
509 | Ff(model-name)g Fk(and)g(its)g(corresponding)f(actual)i(v)o(ariable)f |
---|
510 | (in)g(the)g(current)262 1226 y(model.)26 b(F)o(ormal)14 |
---|
511 | b(v)o(ariables)g(are)g(declared)h(in)e(the)h(reference)h(model,)g |
---|
512 | (while)f(actual)g(v)o(ariables)262 1276 y(are)e(v)o(ariables)g |
---|
513 | (declared)g(in)f(the)h(current)f(model.)20 b Ff(formal-actual-li)o(st)9 |
---|
514 | b Fk(is)i(a)i(list)d(of)i(assignments)262 1326 y(separated)f(by)f(a)g |
---|
515 | (white)g(space.)17 b(The)10 b(declaration)g(of)g Ff(formal-actual-li)o |
---|
516 | (st)d Fk(is)k(of)f(form:)262 1417 y Fh(formal-1)24 b(=)g(actual-1)h |
---|
517 | (formal-2)f(=)h(actual-2)f(...)g(formal-n)h(=)f(actual-n)324 |
---|
518 | 1508 y Fk(The)11 b(order)f(of)g(formal)g(v)o(ariables)g(is)g |
---|
519 | (unimportant.)262 1627 y Fi(1.6)50 b(Miscellaneous)12 |
---|
520 | b(F)o(eatur)o(es)262 1705 y Fa(1.6.1)41 b(Comments)262 |
---|
521 | 1783 y Fk(An)o(y)10 b(line)f(starting)g(from)h(#)h(is)f(a)g(comment.)16 |
---|
522 | b(It)10 b(is)g(ignored)f(by)h(the)g(parser)n(.)262 1893 |
---|
523 | y Fa(1.6.2)41 b(Including)10 b(Files)262 1971 y Fk(The)j |
---|
524 | Fh(.include)g Fk(construct)f(can)i(be)f(used)h(to)e(include)h(another)f |
---|
525 | (\256le)i(from)e(a)i(\256le)f(being)g(read.)262 2021 |
---|
526 | y(The)d(syntax)g(is)g Fh(.include)24 b(fileName)p Fk(.)262 |
---|
527 | 2140 y Fi(1.7)50 b(Old)11 b(Syntax)262 2218 y Fk(Pre)o(viously)m(,)e |
---|
528 | (the)g(three)h(constructs)f Fh(.table)p Fk(,)g Fh(.default)p |
---|
529 | Fk(,)h Fh(.reset)f Fk(were)h(called)g Fh(.names)p Fk(,)262 |
---|
530 | 2268 y Fh(.def)p Fk(,)17 b Fh(.r)f Fk(respecti)o(v)o(ely)m(.)33 |
---|
531 | b(The)17 b Fh(read)p 877 2268 13 2 v 15 w(blif)p 992 |
---|
532 | 2268 V 14 w(mv)f Fk(command)h(in)f(VIS)g(supports)f(these)i(old)262 |
---|
533 | 2317 y(constructs)9 b(as)i(well.)967 2574 y(7)p eop |
---|
534 | %%Page: 8 8 |
---|
535 | 8 7 bop 262 307 a Fj(2)58 b(Semantics)262 400 y Fk(In)11 |
---|
536 | b(this)g(section)h(we)h(describe)f(the)g(semantics)h(of)f(BLIF-MV)-5 |
---|
537 | b(.)11 b(The)i(semantics)g(is)f(de\256ned)g(o)o(v)o(er)262 |
---|
538 | 450 y(\257attened)f(networks)f(where)h(all)g(the)g Fh(.subckt)f |
---|
539 | Fk(constructs)h(are)h(substituted)d(recursi)o(v)o(ely)i(until)262 |
---|
540 | 500 y(leaf)16 b(models.)34 b(Leaf)18 b(models)e(are)i(models)e(without) |
---|
541 | e(an)o(y)j Fh(.subckt)f Fk(declarations.)34 b(In)16 b(the)262 |
---|
542 | 549 y(follo)o(wing,)8 b(a)i(\257attened)h(network)e(is)h(called)g(a)h |
---|
543 | Ff(system)p Fk(.)324 599 y(At)g(e)o(v)o(ery)g(time)g(point,)f(the)h |
---|
544 | (system)h(is)f(in)f(some)i(state,)g(where)g(each)g(latch)f(has)h(a)f(v) |
---|
545 | o(alue.)18 b(An)262 649 y(initial)9 b(state)k(of)e(the)h(system)g(is)g |
---|
546 | (a)h(state)f(where)g(e)o(v)o(ery)h(latch)e(is)h(set)g(to)g(an)g |
---|
547 | (initial)e(state)i(declared)262 699 y(using)f(the)i Fh(.reset)f |
---|
548 | Fk(constructs.)22 b(Notice)13 b(that)f(the)g(system)h(can)h(ha)o(v)o(e) |
---|
549 | g(more)f(than)f(one)h(initial)262 749 y(state)f(in)f(general.)20 |
---|
550 | b(At)11 b(e)o(v)o(ery)i(clock)f(tick,)g(all)f(the)h(latches)g(update)g |
---|
551 | (their)f(v)o(alues.)20 b(These)13 b(v)o(alues)262 798 |
---|
552 | y(then)f(propagate)h(through)e(tables)j(until)d(all)i(the)g(wires)g(ha) |
---|
553 | o(v)o(e)h(a)g(consistent)e(set)h(of)g(v)o(alues.)24 b(If)13 |
---|
554 | b(a)262 848 y(latch)f(is)g(encountered)g(during)e(the)i(propagation,)g |
---|
555 | (i.e.)h(an)f(output)f(of)h(a)g(table)g(is)g(an)h(input)e(of)g(an)262 |
---|
556 | 898 y(latch,)f(the)g(propagation)f(process)i(is)f(stopped.)15 |
---|
557 | b(Note)10 b(that)g(because)i(of)e(nondeterminism,)g(gi)o(v)o(en)262 |
---|
558 | 948 y(a)g(single)g(state,)h(there)f(may)h(be)g(se)o(v)o(eral)g |
---|
559 | (consistent)e(sets)i(of)f(v)o(alues.)324 998 y(The)18 |
---|
560 | b(semantics)g(can)f(be)h(seen)g(as)g(a)g(simple)f(e)o(xtension)f(of)h |
---|
561 | (the)g(standard)g(semantics)h(of)262 1048 y(synchronous)10 |
---|
562 | b(single-clocked)g(digital)g(circuits.)18 b(In)11 b(fact,)h(if)f(e)o(v) |
---|
563 | o(ery)h(table)f(is)g(deterministic)g(and)262 1097 y(e)o(v)o(ery)k |
---|
564 | (latch)f(has)h(a)g(single)f(initial)f(state,)j(the)e(two)g(semantics)h |
---|
565 | (are)h(e)o(xactly)e(equal.)29 b(The)15 b(only)262 1147 |
---|
566 | y(dif)o(ferences)8 b(are)i(in)d(the)i(interpretation)d(of)i |
---|
567 | (nondeterministic)e(tables)j(and)f(latches)h(with)e(multiple)262 |
---|
568 | 1197 y(initial)h(states)i(as)h(described)g(in)e(the)i(abo)o(v)o(e.)262 |
---|
569 | 1337 y Fj(3)58 b(The)14 b(VIS-v)h(Subset)g(of)g(BLIF-MV)262 |
---|
570 | 1430 y Fk(VIS-v)f(can)h(only)f(work)g(on)g(a)i(strict)e(subset)g(of)h |
---|
571 | (BLIF-MV)f(although)f(an)o(y)j(synthesis-related)262 |
---|
572 | 1480 y(commands)10 b(like)f Fh(read)p 625 1480 13 2 v |
---|
573 | 14 w(blif)g Fk(and)h Fh(write)p 943 1480 V 15 w(blif)p |
---|
574 | Fk(,)f(are)i(applicable)e(to)g(the)g(full-set)g(of)g(BLIF-)262 |
---|
575 | 1529 y(MV)-5 b(.)10 b(If)g(the)g(user)g(generates)h(BLIF-MV)f(\256les)g |
---|
576 | (using)g(VL2MV)g(follo)o(wing)d(a)k(certain)f(restriction)262 |
---|
577 | 1579 y(\(See)15 b(the)f(VIS)g(users')h(manual)f(for)g(details\),)h(the) |
---|
578 | f(\256les)h(are)g(guaranteed)f(to)g(be)h(in)e(the)h(subset.)262 |
---|
579 | 1629 y(Ho)o(we)o(v)o(er)n(,)g(if)d(BLIF-MV)h(\256les)h(are)g(generated) |
---|
580 | g(manually)m(,)g(the)f(user)h(must)f(make)h(sure)f(that)g(the)262 |
---|
581 | 1679 y(\256les)f(are)g(in)f(the)h(VIS-v)f(subset.)17 |
---|
582 | b(Otherwise,)11 b Fh(init)p 1045 1679 V 14 w(verify)f |
---|
583 | Fk(simply)g(fails,)h(thereby)f(making)262 1729 y(it)f(impossible)g(to)h |
---|
584 | (perform)g(the)g(v)o(eri\256cation.)324 1779 y(The)h(restriction)d(we)j |
---|
585 | (pose)g(is)f(as)h(follo)o(ws.)324 1862 y Fg(\017)20 b |
---|
586 | Fk(The)15 b(only)d(allo)o(wable)h(nondeterministic)f(tables)h(are)i |
---|
587 | Ff(pseudo-input)d(tables)p Fk(,)i(which)f(are)365 1911 |
---|
588 | y(no-input,)7 b(single-output)e(tables)j(which)f(generate)i(more)f |
---|
589 | (than)g(one)g(output)e(nondetermin-)365 1961 y(istically)m(.)262 |
---|
590 | 2044 y(Note)k(that)h(one)g(can)h(always)f(transform)g(an)o(y)g(BLIF-MV) |
---|
591 | g(\256le)g(to)g(its)g(equi)o(v)o(alent)f(BLIF-MV)h(\256le)262 |
---|
592 | 2094 y(in)c(the)h(VIS-v)g(subset)g(by)g(determinizing)f(all)h |
---|
593 | (intermediate)g(nondeterministic)f(tables)h(by)g(adding)262 |
---|
594 | 2144 y(pseudo-inputs.)967 2574 y(8)p eop |
---|
595 | %%Trailer |
---|
596 | end |
---|
597 | userdict /end-hook known{end-hook}if |
---|
598 | %%EOF |
---|