1 | # vl2mv gigamax.v |
---|
2 | # version: 0.2 |
---|
3 | # date: 11:15:57 12/11/95 (PST) |
---|
4 | .model main |
---|
5 | # I/O ports |
---|
6 | |
---|
7 | .mv p2_cmd 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
8 | .mv m_cmd 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
9 | .mv p0_cmd 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
10 | .mv nond_CMD 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
11 | .mv CMD 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
12 | .mv p1_cmd 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
13 | .subckt processor p0 CMD=CMD master=p0_master REPLY_OWNED=REPLY_OWNED REPLY_WAITING=REPLY_WAITING REPLY_STALL=REPLY_STALL cmd=p0_cmd reply_owned=p0_reply_owned reply_waiting=p0_reply_waiting reply_stall=p0_reply_stall |
---|
14 | .subckt processor p1 CMD=CMD master=p1_master REPLY_OWNED=REPLY_OWNED REPLY_WAITING=REPLY_WAITING REPLY_STALL=REPLY_STALL cmd=p1_cmd reply_owned=p1_reply_owned reply_waiting=p1_reply_waiting reply_stall=p1_reply_stall |
---|
15 | .subckt processor p2 CMD=CMD master=p2_master REPLY_OWNED=REPLY_OWNED REPLY_WAITING=REPLY_WAITING REPLY_STALL=REPLY_STALL cmd=p2_cmd reply_owned=p2_reply_owned reply_waiting=p2_reply_waiting reply_stall=p2_reply_stall |
---|
16 | .subckt memory m CMD=CMD master=m_master REPLY_OWNED=REPLY_OWNED REPLY_WAITING=REPLY_WAITING REPLY_STALL=REPLY_STALL cmd=m_cmd reply_owned=m_reply_owned reply_waiting=m_reply_waiting reply_stall=m_reply_stall |
---|
17 | # assign REPLY_OWNED = p0_reply_owned | p1_reply_owned | p2_reply_owned |
---|
18 | # p0_reply_owned | p1_reply_owned |
---|
19 | .names p0_reply_owned p1_reply_owned _n1 |
---|
20 | .def 1 |
---|
21 | 0 0 0 |
---|
22 | # p0_reply_owned | p1_reply_owned | p2_reply_owned |
---|
23 | .names _n1 p2_reply_owned _n2 |
---|
24 | .def 1 |
---|
25 | 0 0 0 |
---|
26 | .names _n2 REPLY_OWNED$raw_n0 |
---|
27 | - =_n2 |
---|
28 | # assign REPLY_WAITING = p0_reply_waiting | p1_reply_waiting | p2_reply_waiting |
---|
29 | # p0_reply_waiting | p1_reply_waiting |
---|
30 | .names p0_reply_waiting p1_reply_waiting _n4 |
---|
31 | .def 1 |
---|
32 | 0 0 0 |
---|
33 | # p0_reply_waiting | p1_reply_waiting | p2_reply_waiting |
---|
34 | .names _n4 p2_reply_waiting _n5 |
---|
35 | .def 1 |
---|
36 | 0 0 0 |
---|
37 | .names _n5 REPLY_WAITING$raw_n3 |
---|
38 | - =_n5 |
---|
39 | # assign REPLY_STALL = p0_reply_stall | p1_reply_stall | p2_reply_stall | m_reply_stall |
---|
40 | # p0_reply_stall | p1_reply_stall |
---|
41 | .names p0_reply_stall p1_reply_stall _n7 |
---|
42 | .def 1 |
---|
43 | 0 0 0 |
---|
44 | # p0_reply_stall | p1_reply_stall | p2_reply_stall |
---|
45 | .names _n7 p2_reply_stall _n8 |
---|
46 | .def 1 |
---|
47 | 0 0 0 |
---|
48 | # p0_reply_stall | p1_reply_stall | p2_reply_stall | m_reply_stall |
---|
49 | .names _n8 m_reply_stall _n9 |
---|
50 | .def 1 |
---|
51 | 0 0 0 |
---|
52 | .names _n9 REPLY_STALL$raw_n6 |
---|
53 | - =_n9 |
---|
54 | # assign CMD = (p1_cmd == 0 && p2_cmd == 0 && m_cmd == 0) ? p0_cmd : (p0_cmd == 0 && p2_cmd == 0 && m_cmd == 0) ? p1_cmd : (p0_cmd == 0 && p1_cmd == 0 && m_cmd == 0) ? p2_cmd : (p0_cmd == 0 && p1_cmd == 0 && p2_cmd == 0) ? m_cmd : nond_CMD |
---|
55 | .mv CMD$raw_na 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
56 | .mv _nc 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
57 | .names _nc |
---|
58 | idle |
---|
59 | # p1_cmd == 0 |
---|
60 | .names p1_cmd _nc _nb |
---|
61 | .def 0 |
---|
62 | - =p1_cmd 1 |
---|
63 | .mv _ne 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
64 | .names _ne |
---|
65 | idle |
---|
66 | # p2_cmd == 0 |
---|
67 | .names p2_cmd _ne _nd |
---|
68 | .def 0 |
---|
69 | - =p2_cmd 1 |
---|
70 | # p1_cmd == 0 && p2_cmd == 0 |
---|
71 | .names _nb _nd _nf |
---|
72 | .def 0 |
---|
73 | 1 1 1 |
---|
74 | .mv _n11 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
75 | .names _n11 |
---|
76 | idle |
---|
77 | # m_cmd == 0 |
---|
78 | .names m_cmd _n11 _n10 |
---|
79 | .def 0 |
---|
80 | - =m_cmd 1 |
---|
81 | # p1_cmd == 0 && p2_cmd == 0 && m_cmd == 0 |
---|
82 | .names _nf _n10 _n12 |
---|
83 | .def 0 |
---|
84 | 1 1 1 |
---|
85 | .mv _n14 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
86 | .names _n14 |
---|
87 | idle |
---|
88 | # p0_cmd == 0 |
---|
89 | .names p0_cmd _n14 _n13 |
---|
90 | .def 0 |
---|
91 | - =p0_cmd 1 |
---|
92 | .mv _n16 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
93 | .names _n16 |
---|
94 | idle |
---|
95 | # p2_cmd == 0 |
---|
96 | .names p2_cmd _n16 _n15 |
---|
97 | .def 0 |
---|
98 | - =p2_cmd 1 |
---|
99 | # p0_cmd == 0 && p2_cmd == 0 |
---|
100 | .names _n13 _n15 _n17 |
---|
101 | .def 0 |
---|
102 | 1 1 1 |
---|
103 | .mv _n19 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
104 | .names _n19 |
---|
105 | idle |
---|
106 | # m_cmd == 0 |
---|
107 | .names m_cmd _n19 _n18 |
---|
108 | .def 0 |
---|
109 | - =m_cmd 1 |
---|
110 | # p0_cmd == 0 && p2_cmd == 0 && m_cmd == 0 |
---|
111 | .names _n17 _n18 _n1a |
---|
112 | .def 0 |
---|
113 | 1 1 1 |
---|
114 | .mv _n1c 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
115 | .names _n1c |
---|
116 | idle |
---|
117 | # p0_cmd == 0 |
---|
118 | .names p0_cmd _n1c _n1b |
---|
119 | .def 0 |
---|
120 | - =p0_cmd 1 |
---|
121 | .mv _n1e 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
122 | .names _n1e |
---|
123 | idle |
---|
124 | # p1_cmd == 0 |
---|
125 | .names p1_cmd _n1e _n1d |
---|
126 | .def 0 |
---|
127 | - =p1_cmd 1 |
---|
128 | # p0_cmd == 0 && p1_cmd == 0 |
---|
129 | .names _n1b _n1d _n1f |
---|
130 | .def 0 |
---|
131 | 1 1 1 |
---|
132 | .mv _n21 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
133 | .names _n21 |
---|
134 | idle |
---|
135 | # m_cmd == 0 |
---|
136 | .names m_cmd _n21 _n20 |
---|
137 | .def 0 |
---|
138 | - =m_cmd 1 |
---|
139 | # p0_cmd == 0 && p1_cmd == 0 && m_cmd == 0 |
---|
140 | .names _n1f _n20 _n22 |
---|
141 | .def 0 |
---|
142 | 1 1 1 |
---|
143 | .mv _n24 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
144 | .names _n24 |
---|
145 | idle |
---|
146 | # p0_cmd == 0 |
---|
147 | .names p0_cmd _n24 _n23 |
---|
148 | .def 0 |
---|
149 | - =p0_cmd 1 |
---|
150 | .mv _n26 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
151 | .names _n26 |
---|
152 | idle |
---|
153 | # p1_cmd == 0 |
---|
154 | .names p1_cmd _n26 _n25 |
---|
155 | .def 0 |
---|
156 | - =p1_cmd 1 |
---|
157 | # p0_cmd == 0 && p1_cmd == 0 |
---|
158 | .names _n23 _n25 _n27 |
---|
159 | .def 0 |
---|
160 | 1 1 1 |
---|
161 | .mv _n29 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
162 | .names _n29 |
---|
163 | idle |
---|
164 | # p2_cmd == 0 |
---|
165 | .names p2_cmd _n29 _n28 |
---|
166 | .def 0 |
---|
167 | - =p2_cmd 1 |
---|
168 | # p0_cmd == 0 && p1_cmd == 0 && p2_cmd == 0 |
---|
169 | .names _n27 _n28 _n2a |
---|
170 | .def 0 |
---|
171 | 1 1 1 |
---|
172 | # (p0_cmd == 0 && p1_cmd == 0 && p2_cmd == 0) ? m_cmd : nond_CMD |
---|
173 | .mv _n2b 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
174 | .names m_cmd nond_CMD _n2a _n2b |
---|
175 | - - 0 =nond_CMD |
---|
176 | - - 1 =m_cmd |
---|
177 | # (p0_cmd == 0 && p1_cmd == 0 && m_cmd == 0) ? p2_cmd : (p0_cmd == 0 && p1_cmd == 0 && p2_cmd == 0) ? m_cmd : nond_CMD |
---|
178 | .mv _n2c 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
179 | .names p2_cmd _n2b _n22 _n2c |
---|
180 | - - 0 =_n2b |
---|
181 | - - 1 =p2_cmd |
---|
182 | # (p0_cmd == 0 && p2_cmd == 0 && m_cmd == 0) ? p1_cmd : (p0_cmd == 0 && p1_cmd == 0 && m_cmd == 0) ? p2_cmd : (p0_cmd == 0 && p1_cmd == 0 && p2_cmd == 0) ? m_cmd : nond_CMD |
---|
183 | .mv _n2d 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
184 | .names p1_cmd _n2c _n1a _n2d |
---|
185 | - - 0 =_n2c |
---|
186 | - - 1 =p1_cmd |
---|
187 | # (p1_cmd == 0 && p2_cmd == 0 && m_cmd == 0) ? p0_cmd : (p0_cmd == 0 && p2_cmd == 0 && m_cmd == 0) ? p1_cmd : (p0_cmd == 0 && p1_cmd == 0 && m_cmd == 0) ? p2_cmd : (p0_cmd == 0 && p1_cmd == 0 && p2_cmd == 0) ? m_cmd : nond_CMD |
---|
188 | .mv _n2e 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
189 | .names p0_cmd _n2d _n12 _n2e |
---|
190 | - - 0 =_n2d |
---|
191 | - - 1 =p0_cmd |
---|
192 | .names _n2e CMD$raw_na |
---|
193 | - =_n2e |
---|
194 | # assign p0_master = nond0_master |
---|
195 | .names nond0_master p0_master$raw_n2f |
---|
196 | - =nond0_master |
---|
197 | # assign p1_master = (p0_master ) ? 0 : nond1_master |
---|
198 | .names _n31 |
---|
199 | 0 |
---|
200 | # (p0_master ) ? 0 : nond1_master |
---|
201 | .names _n31 nond1_master p0_master _n32 |
---|
202 | 0 - 1 0 |
---|
203 | 1 - 1 1 |
---|
204 | - 0 0 0 |
---|
205 | - 1 0 1 |
---|
206 | .names _n32 p1_master$raw_n30 |
---|
207 | - =_n32 |
---|
208 | # assign p2_master = (p0_master || p1_master ) ? 0 : nond2_master |
---|
209 | # p0_master || p1_master |
---|
210 | .names p0_master p1_master _n35 |
---|
211 | .def 1 |
---|
212 | 0 0 0 |
---|
213 | .names _n36 |
---|
214 | 0 |
---|
215 | # (p0_master || p1_master ) ? 0 : nond2_master |
---|
216 | .names _n36 nond2_master _n35 _n37 |
---|
217 | 0 - 1 0 |
---|
218 | 1 - 1 1 |
---|
219 | - 0 0 0 |
---|
220 | - 1 0 1 |
---|
221 | .names _n37 p2_master$raw_n34 |
---|
222 | - =_n37 |
---|
223 | # assign m_master = ((p0_master || p1_master ) || p2_master ) ? 0 : nondm_master |
---|
224 | # p0_master || p1_master |
---|
225 | .names p0_master p1_master _n3a |
---|
226 | .def 1 |
---|
227 | 0 0 0 |
---|
228 | # (p0_master || p1_master ) || p2_master |
---|
229 | .names _n3a p2_master _n3b |
---|
230 | .def 1 |
---|
231 | 0 0 0 |
---|
232 | .names _n3c |
---|
233 | 0 |
---|
234 | # ((p0_master || p1_master ) || p2_master ) ? 0 : nondm_master |
---|
235 | .names _n3c nondm_master _n3b _n3d |
---|
236 | 0 - 1 0 |
---|
237 | 1 - 1 1 |
---|
238 | - 0 0 0 |
---|
239 | - 1 0 1 |
---|
240 | .names _n3d m_master$raw_n39 |
---|
241 | - =_n3d |
---|
242 | # assign nond0_master = $NDset ( 0,1 ) |
---|
243 | .names nond0_master |
---|
244 | 0 |
---|
245 | 1 |
---|
246 | # assign nond1_master = $NDset ( 0,1 ) |
---|
247 | .names nond1_master |
---|
248 | 0 |
---|
249 | 1 |
---|
250 | # assign nond2_master = $NDset ( 0,1 ) |
---|
251 | .names nond2_master |
---|
252 | 0 |
---|
253 | 1 |
---|
254 | # assign nondm_master = $NDset ( 0,1 ) |
---|
255 | .names nondm_master |
---|
256 | 0 |
---|
257 | 1 |
---|
258 | # assign nond_CMD = $NDset ( 0,1,2,3,4,5,6,7,8 ) |
---|
259 | .names nond_CMD |
---|
260 | idle |
---|
261 | read_shared |
---|
262 | read_owned |
---|
263 | write_invalid |
---|
264 | write_shared |
---|
265 | write_resp_invalid |
---|
266 | write_resp_shared |
---|
267 | invalidate |
---|
268 | response |
---|
269 | # conflict arbitrators |
---|
270 | .names REPLY_OWNED$raw_n0 REPLY_OWNED |
---|
271 | 0 0 |
---|
272 | 1 1 |
---|
273 | .names m_master$raw_n39 m_master |
---|
274 | 0 0 |
---|
275 | 1 1 |
---|
276 | .names REPLY_WAITING$raw_n3 REPLY_WAITING |
---|
277 | 0 0 |
---|
278 | 1 1 |
---|
279 | .names p1_master$raw_n30 p1_master |
---|
280 | 0 0 |
---|
281 | 1 1 |
---|
282 | .names p2_master$raw_n34 p2_master |
---|
283 | 0 0 |
---|
284 | 1 1 |
---|
285 | .names REPLY_STALL$raw_n6 REPLY_STALL |
---|
286 | 0 0 |
---|
287 | 1 1 |
---|
288 | .names CMD$raw_na CMD |
---|
289 | - =CMD$raw_na |
---|
290 | .names p0_master$raw_n2f p0_master |
---|
291 | 0 0 |
---|
292 | 1 1 |
---|
293 | # non-blocking assignments |
---|
294 | # latches |
---|
295 | # quasi-continuous assignment |
---|
296 | .end |
---|
297 | |
---|
298 | |
---|
299 | .model processor |
---|
300 | # I/O ports |
---|
301 | .inputs REPLY_OWNED |
---|
302 | .outputs reply_waiting |
---|
303 | .inputs REPLY_WAITING |
---|
304 | .inputs master |
---|
305 | .outputs reply_owned |
---|
306 | .outputs reply_stall |
---|
307 | .outputs cmd |
---|
308 | .inputs REPLY_STALL |
---|
309 | .inputs CMD |
---|
310 | |
---|
311 | .mv snoop 3 invalid shared owned |
---|
312 | .mv cmd 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
313 | .mv CMD 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
314 | .mv state 3 invalid shared owned |
---|
315 | .mv nond_cmd 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
316 | .subckt bus_device Bdevice CMD=CMD master=master REPLY_STALL=REPLY_STALL REPLY_WAITING=REPLY_WAITING waiting=waiting reply_waiting=reply_waiting abort=abort |
---|
317 | .subckt cache_device Cdevice CMD=CMD master=master abort=abort waiting=waiting state=state snoop=snoop reply_owned=reply_owned readable=readable writable=writable |
---|
318 | # assign cmd = (master && state == invalid ) ? nond_cmd : (master && state == shared ) ? 2 : (master && state == owned && snoop == owned ) ? 5 : (master && state == owned && snoop == shared ) ? 6 : (master && state == owned && snoop == invalid ) ? 3 : 0 |
---|
319 | .mv cmd$raw_n49 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
320 | .mv _n4b 3 invalid shared owned |
---|
321 | .names _n4b |
---|
322 | invalid |
---|
323 | # state == 0 |
---|
324 | .names state _n4b _n4a |
---|
325 | .def 0 |
---|
326 | - =state 1 |
---|
327 | # master && state == 0 |
---|
328 | .names master _n4a _n4c |
---|
329 | .def 0 |
---|
330 | 1 1 1 |
---|
331 | .mv _n4e 3 invalid shared owned |
---|
332 | .names _n4e |
---|
333 | shared |
---|
334 | # state == 1 |
---|
335 | .names state _n4e _n4d |
---|
336 | .def 0 |
---|
337 | - =state 1 |
---|
338 | # master && state == 1 |
---|
339 | .names master _n4d _n4f |
---|
340 | .def 0 |
---|
341 | 1 1 1 |
---|
342 | .mv _n51 3 invalid shared owned |
---|
343 | .names _n51 |
---|
344 | owned |
---|
345 | # state == 2 |
---|
346 | .names state _n51 _n50 |
---|
347 | .def 0 |
---|
348 | - =state 1 |
---|
349 | # master && state == 2 |
---|
350 | .names master _n50 _n52 |
---|
351 | .def 0 |
---|
352 | 1 1 1 |
---|
353 | .mv _n54 3 invalid shared owned |
---|
354 | .names _n54 |
---|
355 | owned |
---|
356 | # snoop == 2 |
---|
357 | .names snoop _n54 _n53 |
---|
358 | .def 0 |
---|
359 | - =snoop 1 |
---|
360 | # master && state == 2 && snoop == 2 |
---|
361 | .names _n52 _n53 _n55 |
---|
362 | .def 0 |
---|
363 | 1 1 1 |
---|
364 | .mv _n57 3 invalid shared owned |
---|
365 | .names _n57 |
---|
366 | owned |
---|
367 | # state == 2 |
---|
368 | .names state _n57 _n56 |
---|
369 | .def 0 |
---|
370 | - =state 1 |
---|
371 | # master && state == 2 |
---|
372 | .names master _n56 _n58 |
---|
373 | .def 0 |
---|
374 | 1 1 1 |
---|
375 | .mv _n5a 3 invalid shared owned |
---|
376 | .names _n5a |
---|
377 | shared |
---|
378 | # snoop == 1 |
---|
379 | .names snoop _n5a _n59 |
---|
380 | .def 0 |
---|
381 | - =snoop 1 |
---|
382 | # master && state == 2 && snoop == 1 |
---|
383 | .names _n58 _n59 _n5b |
---|
384 | .def 0 |
---|
385 | 1 1 1 |
---|
386 | .mv _n5d 3 invalid shared owned |
---|
387 | .names _n5d |
---|
388 | owned |
---|
389 | # state == 2 |
---|
390 | .names state _n5d _n5c |
---|
391 | .def 0 |
---|
392 | - =state 1 |
---|
393 | # master && state == 2 |
---|
394 | .names master _n5c _n5e |
---|
395 | .def 0 |
---|
396 | 1 1 1 |
---|
397 | .mv _n60 3 invalid shared owned |
---|
398 | .names _n60 |
---|
399 | invalid |
---|
400 | # snoop == 0 |
---|
401 | .names snoop _n60 _n5f |
---|
402 | .def 0 |
---|
403 | - =snoop 1 |
---|
404 | # master && state == 2 && snoop == 0 |
---|
405 | .names _n5e _n5f _n61 |
---|
406 | .def 0 |
---|
407 | 1 1 1 |
---|
408 | .mv _n62 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
409 | .names _n62 |
---|
410 | write_invalid |
---|
411 | .mv _n63 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
412 | .names _n63 |
---|
413 | idle |
---|
414 | # (master && state == 2 && snoop == 0) ? 3 : 0 |
---|
415 | .mv _n64 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
416 | .names _n62 _n63 _n61 _n64 |
---|
417 | - - 0 =_n63 |
---|
418 | - - 1 =_n62 |
---|
419 | .mv _n65 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
420 | .names _n65 |
---|
421 | write_resp_shared |
---|
422 | # (master && state == 2 && snoop == 1) ? 6 : (master && state == 2 && snoop == 0) ? 3 : 0 |
---|
423 | .mv _n66 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
424 | .names _n65 _n64 _n5b _n66 |
---|
425 | - - 0 =_n64 |
---|
426 | - - 1 =_n65 |
---|
427 | .mv _n67 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
428 | .names _n67 |
---|
429 | write_resp_invalid |
---|
430 | # (master && state == 2 && snoop == 2) ? 5 : (master && state == 2 && snoop == 1) ? 6 : (master && state == 2 && snoop == 0) ? 3 : 0 |
---|
431 | .mv _n68 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
432 | .names _n67 _n66 _n55 _n68 |
---|
433 | - - 0 =_n66 |
---|
434 | - - 1 =_n67 |
---|
435 | .mv _n69 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
436 | .names _n69 |
---|
437 | read_owned |
---|
438 | # (master && state == 1) ? 2 : (master && state == 2 && snoop == 2) ? 5 : (master && state == 2 && snoop == 1) ? 6 : (master && state == 2 && snoop == 0) ? 3 : 0 |
---|
439 | .mv _n6a 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
440 | .names _n69 _n68 _n4f _n6a |
---|
441 | - - 0 =_n68 |
---|
442 | - - 1 =_n69 |
---|
443 | # (master && state == 0) ? nond_cmd : (master && state == 1) ? 2 : (master && state == 2 && snoop == 2) ? 5 : (master && state == 2 && snoop == 1) ? 6 : (master && state == 2 && snoop == 0) ? 3 : 0 |
---|
444 | .mv _n6b 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
445 | .names nond_cmd _n6a _n4c _n6b |
---|
446 | - - 0 =_n6a |
---|
447 | - - 1 =nond_cmd |
---|
448 | .names _n6b cmd$raw_n49 |
---|
449 | - =_n6b |
---|
450 | # assign nond_cmd = $NDset ( 1,2 ) |
---|
451 | .names nond_cmd |
---|
452 | read_shared |
---|
453 | read_owned |
---|
454 | # assign reply_stall = $NDset ( 0,1 ) |
---|
455 | .names reply_stall |
---|
456 | 0 |
---|
457 | 1 |
---|
458 | # conflict arbitrators |
---|
459 | .names cmd$raw_n49 cmd |
---|
460 | - =cmd$raw_n49 |
---|
461 | # non-blocking assignments |
---|
462 | # latches |
---|
463 | # quasi-continuous assignment |
---|
464 | .end |
---|
465 | |
---|
466 | |
---|
467 | .model memory |
---|
468 | # I/O ports |
---|
469 | .inputs REPLY_OWNED |
---|
470 | .outputs reply_waiting |
---|
471 | .inputs REPLY_WAITING |
---|
472 | .inputs master |
---|
473 | .outputs reply_owned |
---|
474 | .outputs reply_stall |
---|
475 | .outputs cmd |
---|
476 | .inputs REPLY_STALL |
---|
477 | .inputs CMD |
---|
478 | |
---|
479 | .mv cmd 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
480 | .mv CMD 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
481 | .mv nond_cmd 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
482 | # assign reply_owned = 0 |
---|
483 | .names reply_owned$raw_n70 |
---|
484 | 0 |
---|
485 | # assign reply_waiting = 0 |
---|
486 | .names reply_waiting$raw_n71 |
---|
487 | 0 |
---|
488 | # assign abort = REPLY_STALL || (CMD == read_shared || CMD == read_owned ) && REPLY_WAITING || (CMD == read_shared || CMD == read_owned ) && REPLY_OWNED |
---|
489 | .mv _n74 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
490 | .names _n74 |
---|
491 | read_shared |
---|
492 | # CMD == 1 |
---|
493 | .names CMD _n74 _n73 |
---|
494 | .def 0 |
---|
495 | - =CMD 1 |
---|
496 | .mv _n76 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
497 | .names _n76 |
---|
498 | read_owned |
---|
499 | # CMD == 2 |
---|
500 | .names CMD _n76 _n75 |
---|
501 | .def 0 |
---|
502 | - =CMD 1 |
---|
503 | # CMD == 1 || CMD == 2 |
---|
504 | .names _n73 _n75 _n77 |
---|
505 | .def 1 |
---|
506 | 0 0 0 |
---|
507 | # (CMD == 1 || CMD == 2) && REPLY_WAITING |
---|
508 | .names _n77 REPLY_WAITING _n78 |
---|
509 | .def 0 |
---|
510 | 1 1 1 |
---|
511 | # REPLY_STALL || (CMD == 1 || CMD == 2) && REPLY_WAITING |
---|
512 | .names REPLY_STALL _n78 _n79 |
---|
513 | .def 1 |
---|
514 | 0 0 0 |
---|
515 | .mv _n7b 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
516 | .names _n7b |
---|
517 | read_shared |
---|
518 | # CMD == 1 |
---|
519 | .names CMD _n7b _n7a |
---|
520 | .def 0 |
---|
521 | - =CMD 1 |
---|
522 | .mv _n7d 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
523 | .names _n7d |
---|
524 | read_owned |
---|
525 | # CMD == 2 |
---|
526 | .names CMD _n7d _n7c |
---|
527 | .def 0 |
---|
528 | - =CMD 1 |
---|
529 | # CMD == 1 || CMD == 2 |
---|
530 | .names _n7a _n7c _n7e |
---|
531 | .def 1 |
---|
532 | 0 0 0 |
---|
533 | # (CMD == 1 || CMD == 2) && REPLY_OWNED |
---|
534 | .names _n7e REPLY_OWNED _n7f |
---|
535 | .def 0 |
---|
536 | 1 1 1 |
---|
537 | # REPLY_STALL || (CMD == 1 || CMD == 2) && REPLY_WAITING || (CMD == 1 || CMD == 2) && REPLY_OWNED |
---|
538 | .names _n79 _n7f _n80 |
---|
539 | .def 1 |
---|
540 | 0 0 0 |
---|
541 | .names _n80 abort$raw_n72 |
---|
542 | - =_n80 |
---|
543 | # assign cmd = (master && busy ) ? nond_cmd : 0 |
---|
544 | .mv cmd$raw_n81 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
545 | # master && busy |
---|
546 | .names master busy _n82 |
---|
547 | .def 0 |
---|
548 | 1 1 1 |
---|
549 | .mv _n83 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
550 | .names _n83 |
---|
551 | idle |
---|
552 | # (master && busy ) ? nond_cmd : 0 |
---|
553 | .mv _n84 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
554 | .names nond_cmd _n83 _n82 _n84 |
---|
555 | - - 0 =_n83 |
---|
556 | - - 1 =nond_cmd |
---|
557 | .names _n84 cmd$raw_n81 |
---|
558 | - =_n84 |
---|
559 | # assign reply_stall = (busy && (CMD == read_shared || CMD == read_owned || CMD == write_invalid || CMD == write_shared || CMD == write_resp_invalid || CMD == write_resp_shared )) ? 1 : nond_reply_stall |
---|
560 | .mv _n87 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
561 | .names _n87 |
---|
562 | read_shared |
---|
563 | # CMD == 1 |
---|
564 | .names CMD _n87 _n86 |
---|
565 | .def 0 |
---|
566 | - =CMD 1 |
---|
567 | .mv _n89 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
568 | .names _n89 |
---|
569 | read_owned |
---|
570 | # CMD == 2 |
---|
571 | .names CMD _n89 _n88 |
---|
572 | .def 0 |
---|
573 | - =CMD 1 |
---|
574 | # CMD == 1 || CMD == 2 |
---|
575 | .names _n86 _n88 _n8a |
---|
576 | .def 1 |
---|
577 | 0 0 0 |
---|
578 | .mv _n8c 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
579 | .names _n8c |
---|
580 | write_invalid |
---|
581 | # CMD == 3 |
---|
582 | .names CMD _n8c _n8b |
---|
583 | .def 0 |
---|
584 | - =CMD 1 |
---|
585 | # CMD == 1 || CMD == 2 || CMD == 3 |
---|
586 | .names _n8a _n8b _n8d |
---|
587 | .def 1 |
---|
588 | 0 0 0 |
---|
589 | .mv _n8f 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
590 | .names _n8f |
---|
591 | write_shared |
---|
592 | # CMD == 4 |
---|
593 | .names CMD _n8f _n8e |
---|
594 | .def 0 |
---|
595 | - =CMD 1 |
---|
596 | # CMD == 1 || CMD == 2 || CMD == 3 || CMD == 4 |
---|
597 | .names _n8d _n8e _n90 |
---|
598 | .def 1 |
---|
599 | 0 0 0 |
---|
600 | .mv _n92 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
601 | .names _n92 |
---|
602 | write_resp_invalid |
---|
603 | # CMD == 5 |
---|
604 | .names CMD _n92 _n91 |
---|
605 | .def 0 |
---|
606 | - =CMD 1 |
---|
607 | # CMD == 1 || CMD == 2 || CMD == 3 || CMD == 4 || CMD == 5 |
---|
608 | .names _n90 _n91 _n93 |
---|
609 | .def 1 |
---|
610 | 0 0 0 |
---|
611 | .mv _n95 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
612 | .names _n95 |
---|
613 | write_resp_shared |
---|
614 | # CMD == 6 |
---|
615 | .names CMD _n95 _n94 |
---|
616 | .def 0 |
---|
617 | - =CMD 1 |
---|
618 | # CMD == 1 || CMD == 2 || CMD == 3 || CMD == 4 || CMD == 5 || CMD == 6 |
---|
619 | .names _n93 _n94 _n96 |
---|
620 | .def 1 |
---|
621 | 0 0 0 |
---|
622 | # busy && (CMD == 1 || CMD == 2 || CMD == 3 || CMD == 4 || CMD == 5 || CMD == 6) |
---|
623 | .names busy _n96 _n97 |
---|
624 | .def 0 |
---|
625 | 1 1 1 |
---|
626 | .names _n98 |
---|
627 | 1 |
---|
628 | # (busy && (CMD == 1 || CMD == 2 || CMD == 3 || CMD == 4 || CMD == 5 || CMD == 6)) ? 1 : nond_reply_stall |
---|
629 | .names _n98 nond_reply_stall _n97 _n99 |
---|
630 | 0 - 1 0 |
---|
631 | 1 - 1 1 |
---|
632 | - 0 0 0 |
---|
633 | - 1 0 1 |
---|
634 | .names _n99 reply_stall$raw_n85 |
---|
635 | - =_n99 |
---|
636 | # assign nond_reply_stall = $NDset ( 0,1 ) |
---|
637 | .names nond_reply_stall |
---|
638 | 0 |
---|
639 | 1 |
---|
640 | # assign nond_cmd = $NDset ( 8,0 ) |
---|
641 | .names nond_cmd |
---|
642 | response |
---|
643 | idle |
---|
644 | # busy = 0 |
---|
645 | .names busy$raw_n9f |
---|
646 | 0 |
---|
647 | # non-blocking assignments for initial |
---|
648 | .names abort _na0 |
---|
649 | - =abort |
---|
650 | # busy = busy |
---|
651 | .names busy busy$abort_na1$true |
---|
652 | - =busy |
---|
653 | .mv _na3 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
654 | .names _na3 |
---|
655 | response |
---|
656 | # CMD == 8 |
---|
657 | .names CMD _na3 _na2 |
---|
658 | .def 0 |
---|
659 | - =CMD 1 |
---|
660 | # master && CMD == 8 |
---|
661 | .names master _na2 _na4 |
---|
662 | .def 0 |
---|
663 | 1 1 1 |
---|
664 | .names _na4 _na5 |
---|
665 | - =_na4 |
---|
666 | # busy = 0 |
---|
667 | .names busy$_na4_na6$true |
---|
668 | 0 |
---|
669 | .names master _na7 |
---|
670 | 0 1 |
---|
671 | 1 0 |
---|
672 | .mv _na9 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
673 | .names _na9 |
---|
674 | read_owned |
---|
675 | # CMD == 2 |
---|
676 | .names CMD _na9 _na8 |
---|
677 | .def 0 |
---|
678 | - =CMD 1 |
---|
679 | # !master && CMD == 2 |
---|
680 | .names _na7 _na8 _naa |
---|
681 | .def 0 |
---|
682 | 1 1 1 |
---|
683 | .mv _nac 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
684 | .names _nac |
---|
685 | read_shared |
---|
686 | # CMD == 1 |
---|
687 | .names CMD _nac _nab |
---|
688 | .def 0 |
---|
689 | - =CMD 1 |
---|
690 | # !master && CMD == 2 || CMD == 1 |
---|
691 | .names _naa _nab _nad |
---|
692 | .def 1 |
---|
693 | 0 0 0 |
---|
694 | .names _nad _nae |
---|
695 | - =_nad |
---|
696 | # busy = 1 |
---|
697 | .names busy$_nad_naf$true |
---|
698 | 1 |
---|
699 | # if/else (!master && CMD == 2 || CMD == 1) |
---|
700 | .names busy$_nad_naf$true busy _nad busy$_nad$raw_nb2 |
---|
701 | 0 - 1 0 |
---|
702 | 1 - 1 1 |
---|
703 | - 0 0 0 |
---|
704 | - 1 0 1 |
---|
705 | # if/else (master && CMD == 8) |
---|
706 | .names busy$_na4_na6$true busy$_nad$raw_nb2 _na4 busy$_na4$raw_nb5 |
---|
707 | 0 - 1 0 |
---|
708 | 1 - 1 1 |
---|
709 | - 0 0 0 |
---|
710 | - 1 0 1 |
---|
711 | # if/else (abort ) |
---|
712 | .names busy$abort_na1$true busy$_na4$raw_nb5 abort busy$abort$raw_nba |
---|
713 | 0 - 1 0 |
---|
714 | 1 - 1 1 |
---|
715 | - 0 0 0 |
---|
716 | - 1 0 1 |
---|
717 | # conflict arbitrators |
---|
718 | .names _na0 _na5 _nae _nbe |
---|
719 | .def 0 |
---|
720 | 1 - - 1 |
---|
721 | 0 1 - 1 |
---|
722 | 0 0 1 1 |
---|
723 | .names _nbe busy$abort$raw_nba busy _nbf |
---|
724 | 1 0 - 0 |
---|
725 | 1 1 - 1 |
---|
726 | 0 - 0 0 |
---|
727 | 0 - 1 1 |
---|
728 | .names reply_waiting$raw_n71 reply_waiting |
---|
729 | 0 0 |
---|
730 | 1 1 |
---|
731 | .names abort$raw_n72 abort |
---|
732 | 0 0 |
---|
733 | 1 1 |
---|
734 | .names reply_owned$raw_n70 reply_owned |
---|
735 | 0 0 |
---|
736 | 1 1 |
---|
737 | .names reply_stall$raw_n85 reply_stall |
---|
738 | 0 0 |
---|
739 | 1 1 |
---|
740 | .names cmd$raw_n81 cmd |
---|
741 | - =cmd$raw_n81 |
---|
742 | # non-blocking assignments |
---|
743 | # latches |
---|
744 | .r busy$raw_n9f busy |
---|
745 | 0 0 |
---|
746 | 1 1 |
---|
747 | .latch _nbf busy |
---|
748 | # quasi-continuous assignment |
---|
749 | .end |
---|
750 | |
---|
751 | |
---|
752 | .model cache_device |
---|
753 | # I/O ports |
---|
754 | .outputs writable |
---|
755 | .outputs readable |
---|
756 | .outputs snoop |
---|
757 | .inputs master |
---|
758 | .outputs reply_owned |
---|
759 | .inputs abort |
---|
760 | .inputs CMD |
---|
761 | .outputs state |
---|
762 | .inputs waiting |
---|
763 | |
---|
764 | .mv snoop 3 invalid shared owned |
---|
765 | .mv nond_state 3 invalid shared owned |
---|
766 | .mv nond_snoop 3 invalid shared owned |
---|
767 | .mv CMD 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
768 | .mv state 3 invalid shared owned |
---|
769 | # assign readable = ((state == shared ) || (state == owned )) && !waiting |
---|
770 | .mv _nc2 3 invalid shared owned |
---|
771 | .names _nc2 |
---|
772 | shared |
---|
773 | # state == 1 |
---|
774 | .names state _nc2 _nc1 |
---|
775 | .def 0 |
---|
776 | - =state 1 |
---|
777 | .mv _nc4 3 invalid shared owned |
---|
778 | .names _nc4 |
---|
779 | owned |
---|
780 | # state == 2 |
---|
781 | .names state _nc4 _nc3 |
---|
782 | .def 0 |
---|
783 | - =state 1 |
---|
784 | # (state == 1) || (state == 2) |
---|
785 | .names _nc1 _nc3 _nc5 |
---|
786 | .def 1 |
---|
787 | 0 0 0 |
---|
788 | .names waiting _nc6 |
---|
789 | 0 1 |
---|
790 | 1 0 |
---|
791 | # ((state == 1) || (state == 2)) && !waiting |
---|
792 | .names _nc5 _nc6 _nc7 |
---|
793 | .def 0 |
---|
794 | 1 1 1 |
---|
795 | .names _nc7 readable$raw_nc0 |
---|
796 | - =_nc7 |
---|
797 | # assign writable = (state == owned ) && (!waiting ) |
---|
798 | .mv _nca 3 invalid shared owned |
---|
799 | .names _nca |
---|
800 | owned |
---|
801 | # state == 2 |
---|
802 | .names state _nca _nc9 |
---|
803 | .def 0 |
---|
804 | - =state 1 |
---|
805 | .names waiting _ncb |
---|
806 | 0 1 |
---|
807 | 1 0 |
---|
808 | # (state == 2) && (!waiting ) |
---|
809 | .names _nc9 _ncb _ncc |
---|
810 | .def 0 |
---|
811 | 1 1 1 |
---|
812 | .names _ncc writable$raw_nc8 |
---|
813 | - =_ncc |
---|
814 | # assign reply_owned = (!master ) && (state == owned ) |
---|
815 | .names master _nce |
---|
816 | 0 1 |
---|
817 | 1 0 |
---|
818 | .mv _nd0 3 invalid shared owned |
---|
819 | .names _nd0 |
---|
820 | owned |
---|
821 | # state == 2 |
---|
822 | .names state _nd0 _ncf |
---|
823 | .def 0 |
---|
824 | - =state 1 |
---|
825 | # (!master ) && (state == 2) |
---|
826 | .names _nce _ncf _nd1 |
---|
827 | .def 0 |
---|
828 | 1 1 1 |
---|
829 | .names _nd1 reply_owned$raw_ncd |
---|
830 | - =_nd1 |
---|
831 | # assign nond_snoop = $NDset ( 1,2 ) |
---|
832 | .names nond_snoop |
---|
833 | shared |
---|
834 | owned |
---|
835 | # assign nond_state = $NDset ( 1,0 ) |
---|
836 | .names nond_state |
---|
837 | shared |
---|
838 | invalid |
---|
839 | # state = 0 |
---|
840 | .mv state$raw_nd6 3 invalid shared owned |
---|
841 | .names state$raw_nd6 |
---|
842 | invalid |
---|
843 | # non-blocking assignments for initial |
---|
844 | # snoop = 0 |
---|
845 | .mv snoop$raw_nd7 3 invalid shared owned |
---|
846 | .names snoop$raw_nd7 |
---|
847 | invalid |
---|
848 | # non-blocking assignments for initial |
---|
849 | .names abort _nd8 |
---|
850 | - =abort |
---|
851 | # snoop = snoop |
---|
852 | .mv snoop$abort_nd9$true 3 invalid shared owned |
---|
853 | .names snoop snoop$abort_nd9$true |
---|
854 | - =snoop |
---|
855 | .names master _nda |
---|
856 | 0 1 |
---|
857 | 1 0 |
---|
858 | .mv _ndc 3 invalid shared owned |
---|
859 | .names _ndc |
---|
860 | owned |
---|
861 | # state == 2 |
---|
862 | .names state _ndc _ndb |
---|
863 | .def 0 |
---|
864 | - =state 1 |
---|
865 | # !master && state == 2 |
---|
866 | .names _nda _ndb _ndd |
---|
867 | .def 0 |
---|
868 | 1 1 1 |
---|
869 | .mv _ndf 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
870 | .names _ndf |
---|
871 | read_shared |
---|
872 | # CMD == 1 |
---|
873 | .names CMD _ndf _nde |
---|
874 | .def 0 |
---|
875 | - =CMD 1 |
---|
876 | # !master && state == 2 && CMD == 1 |
---|
877 | .names _ndd _nde _ne0 |
---|
878 | .def 0 |
---|
879 | 1 1 1 |
---|
880 | .names _ne0 _ne1 |
---|
881 | - =_ne0 |
---|
882 | # snoop = nond_snoop |
---|
883 | .mv snoop$_ne0_ne2$true 3 invalid shared owned |
---|
884 | .names nond_snoop snoop$_ne0_ne2$true |
---|
885 | - =nond_snoop |
---|
886 | .mv _ne4 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
887 | .names _ne4 |
---|
888 | write_resp_invalid |
---|
889 | # CMD == 5 |
---|
890 | .names CMD _ne4 _ne3 |
---|
891 | .def 0 |
---|
892 | - =CMD 1 |
---|
893 | # master && CMD == 5 |
---|
894 | .names master _ne3 _ne5 |
---|
895 | .def 0 |
---|
896 | 1 1 1 |
---|
897 | .names _ne5 _ne6 |
---|
898 | - =_ne5 |
---|
899 | # snoop = 0 |
---|
900 | .mv snoop$_ne5_ne7$true 3 invalid shared owned |
---|
901 | .names snoop$_ne5_ne7$true |
---|
902 | invalid |
---|
903 | .mv _ne9 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
904 | .names _ne9 |
---|
905 | write_resp_shared |
---|
906 | # CMD == 6 |
---|
907 | .names CMD _ne9 _ne8 |
---|
908 | .def 0 |
---|
909 | - =CMD 1 |
---|
910 | # master && CMD == 6 |
---|
911 | .names master _ne8 _nea |
---|
912 | .def 0 |
---|
913 | 1 1 1 |
---|
914 | .names _nea _neb |
---|
915 | - =_nea |
---|
916 | # snoop = 0 |
---|
917 | .mv snoop$_nea_nec$true 3 invalid shared owned |
---|
918 | .names snoop$_nea_nec$true |
---|
919 | invalid |
---|
920 | # if/else (master && CMD == 6) |
---|
921 | .mv snoop$_nea$raw_nef 3 invalid shared owned |
---|
922 | .names snoop$_nea_nec$true snoop _nea snoop$_nea$raw_nef |
---|
923 | - - 0 =snoop |
---|
924 | - - 1 =snoop$_nea_nec$true |
---|
925 | # if/else (master && CMD == 5) |
---|
926 | .mv snoop$_ne5$raw_nf1 3 invalid shared owned |
---|
927 | .names snoop$_ne5_ne7$true snoop$_nea$raw_nef _ne5 snoop$_ne5$raw_nf1 |
---|
928 | - - 0 =snoop$_nea$raw_nef |
---|
929 | - - 1 =snoop$_ne5_ne7$true |
---|
930 | # if/else (!master && state == 2 && CMD == 1) |
---|
931 | .mv snoop$_ne0$raw_nf5 3 invalid shared owned |
---|
932 | .names snoop$_ne0_ne2$true snoop$_ne5$raw_nf1 _ne0 snoop$_ne0$raw_nf5 |
---|
933 | - - 0 =snoop$_ne5$raw_nf1 |
---|
934 | - - 1 =snoop$_ne0_ne2$true |
---|
935 | # if/else (abort ) |
---|
936 | .mv snoop$abort$raw_nf9 3 invalid shared owned |
---|
937 | .names snoop$abort_nd9$true snoop$_ne0$raw_nf5 abort snoop$abort$raw_nf9 |
---|
938 | - - 0 =snoop$_ne0$raw_nf5 |
---|
939 | - - 1 =snoop$abort_nd9$true |
---|
940 | .names abort _nfc |
---|
941 | - =abort |
---|
942 | # state = state |
---|
943 | .mv state$abort_nfd$true 3 invalid shared owned |
---|
944 | .names state state$abort_nfd$true |
---|
945 | - =state |
---|
946 | .names _nff |
---|
947 | 1 |
---|
948 | # master == 1 |
---|
949 | .names master _nff _n100 |
---|
950 | .def 0 |
---|
951 | 0 1 1 |
---|
952 | 1 0 1 |
---|
953 | .names _n100 _nfe |
---|
954 | 0 1 |
---|
955 | 1 0 |
---|
956 | .names _nfe _n102 |
---|
957 | - =_nfe |
---|
958 | .mv _n105 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
959 | .names _n105 |
---|
960 | read_shared |
---|
961 | .names CMD _n105 _n104 |
---|
962 | .def 0 |
---|
963 | - =CMD 1 |
---|
964 | .names _n104 _n103 |
---|
965 | 1 1 |
---|
966 | 0 0 |
---|
967 | # state = 1 |
---|
968 | .mv state$_n103_n106$true 3 invalid shared owned |
---|
969 | .names state$_n103_n106$true |
---|
970 | shared |
---|
971 | .mv _n109 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
972 | .names _n109 |
---|
973 | read_owned |
---|
974 | .names CMD _n109 _n108 |
---|
975 | .def 0 |
---|
976 | - =CMD 1 |
---|
977 | .names _n108 _n107 |
---|
978 | 1 1 |
---|
979 | 0 0 |
---|
980 | # state = 2 |
---|
981 | .mv state$_n107_n10a$true 3 invalid shared owned |
---|
982 | .names state$_n107_n10a$true |
---|
983 | owned |
---|
984 | .mv _n10d 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
985 | .names _n10d |
---|
986 | write_invalid |
---|
987 | .names CMD _n10d _n10c |
---|
988 | .def 0 |
---|
989 | - =CMD 1 |
---|
990 | .names _n10c _n10b |
---|
991 | 1 1 |
---|
992 | 0 0 |
---|
993 | # state = 0 |
---|
994 | .mv state$_n10b_n10e$true 3 invalid shared owned |
---|
995 | .names state$_n10b_n10e$true |
---|
996 | invalid |
---|
997 | .mv _n111 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
998 | .names _n111 |
---|
999 | write_resp_invalid |
---|
1000 | .names CMD _n111 _n110 |
---|
1001 | .def 0 |
---|
1002 | - =CMD 1 |
---|
1003 | .names _n110 _n10f |
---|
1004 | 1 1 |
---|
1005 | 0 0 |
---|
1006 | # state = 0 |
---|
1007 | .mv state$_n10f_n112$true 3 invalid shared owned |
---|
1008 | .names state$_n10f_n112$true |
---|
1009 | invalid |
---|
1010 | .mv _n115 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
1011 | .names _n115 |
---|
1012 | write_shared |
---|
1013 | .names CMD _n115 _n114 |
---|
1014 | .def 0 |
---|
1015 | - =CMD 1 |
---|
1016 | .names _n114 _n113 |
---|
1017 | 1 1 |
---|
1018 | 0 0 |
---|
1019 | # state = 1 |
---|
1020 | .mv state$_n113_n116$true 3 invalid shared owned |
---|
1021 | .names state$_n113_n116$true |
---|
1022 | shared |
---|
1023 | .mv _n119 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
1024 | .names _n119 |
---|
1025 | write_resp_shared |
---|
1026 | .names CMD _n119 _n118 |
---|
1027 | .def 0 |
---|
1028 | - =CMD 1 |
---|
1029 | .names _n118 _n117 |
---|
1030 | 1 1 |
---|
1031 | 0 0 |
---|
1032 | # state = 1 |
---|
1033 | .mv state$_n117_n11a$true 3 invalid shared owned |
---|
1034 | .names state$_n117_n11a$true |
---|
1035 | shared |
---|
1036 | # case (CMD ) |
---|
1037 | .mv state$_n117$raw_n120 3 invalid shared owned |
---|
1038 | .names state$_n117_n11a$true state _n117 state$_n117$raw_n120 |
---|
1039 | - - 0 =state |
---|
1040 | - - 1 =state$_n117_n11a$true |
---|
1041 | .mv state$_n113$raw_n123 3 invalid shared owned |
---|
1042 | .names state$_n113_n116$true state$_n117$raw_n120 _n113 state$_n113$raw_n123 |
---|
1043 | - - 0 =state$_n117$raw_n120 |
---|
1044 | - - 1 =state$_n113_n116$true |
---|
1045 | .mv state$_n10f$raw_n12b 3 invalid shared owned |
---|
1046 | .names state$_n10f_n112$true state$_n113$raw_n123 _n10f state$_n10f$raw_n12b |
---|
1047 | - - 0 =state$_n113$raw_n123 |
---|
1048 | - - 1 =state$_n10f_n112$true |
---|
1049 | .mv state$_n10b$raw_n133 3 invalid shared owned |
---|
1050 | .names state$_n10b_n10e$true state$_n10f$raw_n12b _n10b state$_n10b$raw_n133 |
---|
1051 | - - 0 =state$_n10f$raw_n12b |
---|
1052 | - - 1 =state$_n10b_n10e$true |
---|
1053 | .mv state$_n107$raw_n13b 3 invalid shared owned |
---|
1054 | .names state$_n107_n10a$true state$_n10b$raw_n133 _n107 state$_n107$raw_n13b |
---|
1055 | - - 0 =state$_n10b$raw_n133 |
---|
1056 | - - 1 =state$_n107_n10a$true |
---|
1057 | .mv state$_n103$raw_n143 3 invalid shared owned |
---|
1058 | .names state$_n103_n106$true state$_n107$raw_n13b _n103 state$_n103$raw_n143 |
---|
1059 | - - 0 =state$_n107$raw_n13b |
---|
1060 | - - 1 =state$_n103_n106$true |
---|
1061 | .names master _n14a |
---|
1062 | 0 1 |
---|
1063 | 1 0 |
---|
1064 | .mv _n14c 3 invalid shared owned |
---|
1065 | .names _n14c |
---|
1066 | shared |
---|
1067 | # state == 1 |
---|
1068 | .names state _n14c _n14b |
---|
1069 | .def 0 |
---|
1070 | - =state 1 |
---|
1071 | # !master && state == 1 |
---|
1072 | .names _n14a _n14b _n14d |
---|
1073 | .def 0 |
---|
1074 | 1 1 1 |
---|
1075 | .mv _n14f 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
1076 | .names _n14f |
---|
1077 | read_owned |
---|
1078 | # CMD == 2 |
---|
1079 | .names CMD _n14f _n14e |
---|
1080 | .def 0 |
---|
1081 | - =CMD 1 |
---|
1082 | .mv _n151 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
1083 | .names _n151 |
---|
1084 | invalidate |
---|
1085 | # CMD == 7 |
---|
1086 | .names CMD _n151 _n150 |
---|
1087 | .def 0 |
---|
1088 | - =CMD 1 |
---|
1089 | # CMD == 2 || CMD == 7 |
---|
1090 | .names _n14e _n150 _n152 |
---|
1091 | .def 1 |
---|
1092 | 0 0 0 |
---|
1093 | # !master && state == 1 && (CMD == 2 || CMD == 7) |
---|
1094 | .names _n14d _n152 _n153 |
---|
1095 | .def 0 |
---|
1096 | 1 1 1 |
---|
1097 | .names _n153 _n154 |
---|
1098 | - =_n153 |
---|
1099 | # state = 0 |
---|
1100 | .mv state$_n153_n155$true 3 invalid shared owned |
---|
1101 | .names state$_n153_n155$true |
---|
1102 | invalid |
---|
1103 | .mv _n157 3 invalid shared owned |
---|
1104 | .names _n157 |
---|
1105 | shared |
---|
1106 | # state == 1 |
---|
1107 | .names state _n157 _n156 |
---|
1108 | .def 0 |
---|
1109 | - =state 1 |
---|
1110 | .names _n156 _n158 |
---|
1111 | - =_n156 |
---|
1112 | # state = nond_state |
---|
1113 | .mv state$_n156_n159$true 3 invalid shared owned |
---|
1114 | .names nond_state state$_n156_n159$true |
---|
1115 | - =nond_state |
---|
1116 | # if/else (state == 1) |
---|
1117 | .mv state$_n156$raw_n15f 3 invalid shared owned |
---|
1118 | .names state$_n156_n159$true state _n156 state$_n156$raw_n15f |
---|
1119 | - - 0 =state |
---|
1120 | - - 1 =state$_n156_n159$true |
---|
1121 | # if/else (!master && state == 1 && (CMD == 2 || CMD == 7)) |
---|
1122 | .mv state$_n153$raw_n164 3 invalid shared owned |
---|
1123 | .names state$_n153_n155$true state$_n156$raw_n15f _n153 state$_n153$raw_n164 |
---|
1124 | - - 0 =state$_n156$raw_n15f |
---|
1125 | - - 1 =state$_n153_n155$true |
---|
1126 | # if/else (master == 1) |
---|
1127 | .mv state$_nfe$raw_n16c 3 invalid shared owned |
---|
1128 | .names state$_n103$raw_n143 state$_n153$raw_n164 _nfe state$_nfe$raw_n16c |
---|
1129 | - - 0 =state$_n153$raw_n164 |
---|
1130 | - - 1 =state$_n103$raw_n143 |
---|
1131 | # if/else (abort ) |
---|
1132 | .mv state$abort$raw_n174 3 invalid shared owned |
---|
1133 | .names state$abort_nfd$true state$_nfe$raw_n16c abort state$abort$raw_n174 |
---|
1134 | - - 0 =state$_nfe$raw_n16c |
---|
1135 | - - 1 =state$abort_nfd$true |
---|
1136 | # conflict arbitrators |
---|
1137 | .names writable$raw_nc8 writable |
---|
1138 | 0 0 |
---|
1139 | 1 1 |
---|
1140 | .names readable$raw_nc0 readable |
---|
1141 | 0 0 |
---|
1142 | 1 1 |
---|
1143 | .names _nd8 _ne1 _ne6 _neb _n179 |
---|
1144 | .def 0 |
---|
1145 | 1 - - - 1 |
---|
1146 | 0 1 - - 1 |
---|
1147 | 0 0 1 - 1 |
---|
1148 | 0 0 0 1 1 |
---|
1149 | .mv _n17a 3 invalid shared owned |
---|
1150 | .names _n179 snoop$abort$raw_nf9 snoop _n17a |
---|
1151 | 1 - - =snoop$abort$raw_nf9 |
---|
1152 | 0 - - =snoop |
---|
1153 | .names reply_owned$raw_ncd reply_owned |
---|
1154 | 0 0 |
---|
1155 | 1 1 |
---|
1156 | .names _nfc _n102 _n103 _n107 _n10b _n10f _n113 _n117 _n154 _n158 _n187 |
---|
1157 | .def 0 |
---|
1158 | 1 - - - - - - - - - 1 |
---|
1159 | 0 1 1 - - - - - - - 1 |
---|
1160 | 0 1 0 1 - - - - - - 1 |
---|
1161 | 0 1 0 0 1 - - - - - 1 |
---|
1162 | 0 1 0 0 0 1 - - - - 1 |
---|
1163 | 0 1 0 0 0 0 1 - - - 1 |
---|
1164 | 0 1 0 0 0 0 0 1 - - 1 |
---|
1165 | 0 0 - - - - - - 1 - 1 |
---|
1166 | 0 0 - - - - - - 0 1 1 |
---|
1167 | .mv _n188 3 invalid shared owned |
---|
1168 | .names _n187 state$abort$raw_n174 state _n188 |
---|
1169 | 1 - - =state$abort$raw_n174 |
---|
1170 | 0 - - =state |
---|
1171 | # non-blocking assignments |
---|
1172 | # latches |
---|
1173 | .r snoop$raw_nd7 snoop |
---|
1174 | - =snoop$raw_nd7 |
---|
1175 | .latch _n17a snoop |
---|
1176 | .r state$raw_nd6 state |
---|
1177 | - =state$raw_nd6 |
---|
1178 | .latch _n188 state |
---|
1179 | # quasi-continuous assignment |
---|
1180 | .end |
---|
1181 | |
---|
1182 | |
---|
1183 | .model bus_device |
---|
1184 | # I/O ports |
---|
1185 | .outputs reply_waiting |
---|
1186 | .inputs REPLY_WAITING |
---|
1187 | .inputs master |
---|
1188 | .outputs abort |
---|
1189 | .inputs REPLY_STALL |
---|
1190 | .inputs CMD |
---|
1191 | .outputs waiting |
---|
1192 | |
---|
1193 | .mv CMD 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
1194 | # assign reply_waiting = !master && waiting |
---|
1195 | .names master _n196 |
---|
1196 | 0 1 |
---|
1197 | 1 0 |
---|
1198 | # !master && waiting |
---|
1199 | .names _n196 waiting _n197 |
---|
1200 | .def 0 |
---|
1201 | 1 1 1 |
---|
1202 | .names _n197 reply_waiting$raw_n195 |
---|
1203 | - =_n197 |
---|
1204 | # assign abort = REPLY_STALL || ((CMD == read_shared || CMD == read_owned ) && REPLY_WAITING ) |
---|
1205 | .mv _n19a 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
1206 | .names _n19a |
---|
1207 | read_shared |
---|
1208 | # CMD == 1 |
---|
1209 | .names CMD _n19a _n199 |
---|
1210 | .def 0 |
---|
1211 | - =CMD 1 |
---|
1212 | .mv _n19c 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
1213 | .names _n19c |
---|
1214 | read_owned |
---|
1215 | # CMD == 2 |
---|
1216 | .names CMD _n19c _n19b |
---|
1217 | .def 0 |
---|
1218 | - =CMD 1 |
---|
1219 | # CMD == 1 || CMD == 2 |
---|
1220 | .names _n199 _n19b _n19d |
---|
1221 | .def 1 |
---|
1222 | 0 0 0 |
---|
1223 | # (CMD == 1 || CMD == 2) && REPLY_WAITING |
---|
1224 | .names _n19d REPLY_WAITING _n19e |
---|
1225 | .def 0 |
---|
1226 | 1 1 1 |
---|
1227 | # REPLY_STALL || ((CMD == 1 || CMD == 2) && REPLY_WAITING ) |
---|
1228 | .names REPLY_STALL _n19e _n19f |
---|
1229 | .def 1 |
---|
1230 | 0 0 0 |
---|
1231 | .names _n19f abort$raw_n198 |
---|
1232 | - =_n19f |
---|
1233 | # waiting = 0 |
---|
1234 | .names waiting$raw_n1a0 |
---|
1235 | 0 |
---|
1236 | # non-blocking assignments for initial |
---|
1237 | .names abort _n1a1 |
---|
1238 | - =abort |
---|
1239 | # waiting = waiting |
---|
1240 | .names waiting waiting$abort_n1a2$true |
---|
1241 | - =waiting |
---|
1242 | .mv _n1a4 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
1243 | .names _n1a4 |
---|
1244 | read_shared |
---|
1245 | # CMD == 1 |
---|
1246 | .names CMD _n1a4 _n1a3 |
---|
1247 | .def 0 |
---|
1248 | - =CMD 1 |
---|
1249 | # master && CMD == 1 |
---|
1250 | .names master _n1a3 _n1a5 |
---|
1251 | .def 0 |
---|
1252 | 1 1 1 |
---|
1253 | .names _n1a5 _n1a6 |
---|
1254 | - =_n1a5 |
---|
1255 | # waiting = 1 |
---|
1256 | .names waiting$_n1a5_n1a7$true |
---|
1257 | 1 |
---|
1258 | .mv _n1a9 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
1259 | .names _n1a9 |
---|
1260 | read_owned |
---|
1261 | # CMD == 2 |
---|
1262 | .names CMD _n1a9 _n1a8 |
---|
1263 | .def 0 |
---|
1264 | - =CMD 1 |
---|
1265 | # master && CMD == 2 |
---|
1266 | .names master _n1a8 _n1aa |
---|
1267 | .def 0 |
---|
1268 | 1 1 1 |
---|
1269 | .names _n1aa _n1ab |
---|
1270 | - =_n1aa |
---|
1271 | # waiting = 1 |
---|
1272 | .names waiting$_n1aa_n1ac$true |
---|
1273 | 1 |
---|
1274 | .names master _n1ad |
---|
1275 | 0 1 |
---|
1276 | 1 0 |
---|
1277 | .mv _n1af 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
1278 | .names _n1af |
---|
1279 | response |
---|
1280 | # CMD == 8 |
---|
1281 | .names CMD _n1af _n1ae |
---|
1282 | .def 0 |
---|
1283 | - =CMD 1 |
---|
1284 | # !master && CMD == 8 |
---|
1285 | .names _n1ad _n1ae _n1b0 |
---|
1286 | .def 0 |
---|
1287 | 1 1 1 |
---|
1288 | .names _n1b0 _n1b1 |
---|
1289 | - =_n1b0 |
---|
1290 | # waiting = 0 |
---|
1291 | .names waiting$_n1b0_n1b2$true |
---|
1292 | 0 |
---|
1293 | .names master _n1b3 |
---|
1294 | 0 1 |
---|
1295 | 1 0 |
---|
1296 | .mv _n1b5 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
1297 | .names _n1b5 |
---|
1298 | write_resp_invalid |
---|
1299 | # CMD == 5 |
---|
1300 | .names CMD _n1b5 _n1b4 |
---|
1301 | .def 0 |
---|
1302 | - =CMD 1 |
---|
1303 | # !master && CMD == 5 |
---|
1304 | .names _n1b3 _n1b4 _n1b6 |
---|
1305 | .def 0 |
---|
1306 | 1 1 1 |
---|
1307 | .names _n1b6 _n1b7 |
---|
1308 | - =_n1b6 |
---|
1309 | # waiting = 0 |
---|
1310 | .names waiting$_n1b6_n1b8$true |
---|
1311 | 0 |
---|
1312 | .names master _n1b9 |
---|
1313 | 0 1 |
---|
1314 | 1 0 |
---|
1315 | .mv _n1bb 9 idle read_shared read_owned write_invalid write_shared write_resp_invalid write_resp_shared invalidate response |
---|
1316 | .names _n1bb |
---|
1317 | write_resp_shared |
---|
1318 | # CMD == 6 |
---|
1319 | .names CMD _n1bb _n1ba |
---|
1320 | .def 0 |
---|
1321 | - =CMD 1 |
---|
1322 | # !master && CMD == 6 |
---|
1323 | .names _n1b9 _n1ba _n1bc |
---|
1324 | .def 0 |
---|
1325 | 1 1 1 |
---|
1326 | .names _n1bc _n1bd |
---|
1327 | - =_n1bc |
---|
1328 | # waiting = 0 |
---|
1329 | .names waiting$_n1bc_n1be$true |
---|
1330 | 0 |
---|
1331 | # if/else (!master && CMD == 6) |
---|
1332 | .names waiting$_n1bc_n1be$true waiting _n1bc waiting$_n1bc$raw_n1c1 |
---|
1333 | 0 - 1 0 |
---|
1334 | 1 - 1 1 |
---|
1335 | - 0 0 0 |
---|
1336 | - 1 0 1 |
---|
1337 | # if/else (!master && CMD == 5) |
---|
1338 | .names waiting$_n1b6_n1b8$true waiting$_n1bc$raw_n1c1 _n1b6 waiting$_n1b6$raw_n1c4 |
---|
1339 | 0 - 1 0 |
---|
1340 | 1 - 1 1 |
---|
1341 | - 0 0 0 |
---|
1342 | - 1 0 1 |
---|
1343 | # if/else (!master && CMD == 8) |
---|
1344 | .names waiting$_n1b0_n1b2$true waiting$_n1b6$raw_n1c4 _n1b0 waiting$_n1b0$raw_n1c9 |
---|
1345 | 0 - 1 0 |
---|
1346 | 1 - 1 1 |
---|
1347 | - 0 0 0 |
---|
1348 | - 1 0 1 |
---|
1349 | # if/else (master && CMD == 2) |
---|
1350 | .names waiting$_n1aa_n1ac$true waiting$_n1b0$raw_n1c9 _n1aa waiting$_n1aa$raw_n1ce |
---|
1351 | 0 - 1 0 |
---|
1352 | 1 - 1 1 |
---|
1353 | - 0 0 0 |
---|
1354 | - 1 0 1 |
---|
1355 | # if/else (master && CMD == 1) |
---|
1356 | .names waiting$_n1a5_n1a7$true waiting$_n1aa$raw_n1ce _n1a5 waiting$_n1a5$raw_n1d3 |
---|
1357 | 0 - 1 0 |
---|
1358 | 1 - 1 1 |
---|
1359 | - 0 0 0 |
---|
1360 | - 1 0 1 |
---|
1361 | # if/else (abort ) |
---|
1362 | .names waiting$abort_n1a2$true waiting$_n1a5$raw_n1d3 abort waiting$abort$raw_n1d8 |
---|
1363 | 0 - 1 0 |
---|
1364 | 1 - 1 1 |
---|
1365 | - 0 0 0 |
---|
1366 | - 1 0 1 |
---|
1367 | # conflict arbitrators |
---|
1368 | .names reply_waiting$raw_n195 reply_waiting |
---|
1369 | 0 0 |
---|
1370 | 1 1 |
---|
1371 | .names abort$raw_n198 abort |
---|
1372 | 0 0 |
---|
1373 | 1 1 |
---|
1374 | .names _n1a1 _n1a6 _n1ab _n1b1 _n1b7 _n1bd _n1dc |
---|
1375 | .def 0 |
---|
1376 | 1 - - - - - 1 |
---|
1377 | 0 1 - - - - 1 |
---|
1378 | 0 0 1 - - - 1 |
---|
1379 | 0 0 0 1 - - 1 |
---|
1380 | 0 0 0 0 1 - 1 |
---|
1381 | 0 0 0 0 0 1 1 |
---|
1382 | .names _n1dc waiting$abort$raw_n1d8 waiting _n1dd |
---|
1383 | 1 0 - 0 |
---|
1384 | 1 1 - 1 |
---|
1385 | 0 - 0 0 |
---|
1386 | 0 - 1 1 |
---|
1387 | # non-blocking assignments |
---|
1388 | # latches |
---|
1389 | .r waiting$raw_n1a0 waiting |
---|
1390 | 0 0 |
---|
1391 | 1 1 |
---|
1392 | .latch _n1dd waiting |
---|
1393 | # quasi-continuous assignment |
---|
1394 | .end |
---|
1395 | |
---|
1396 | |
---|