Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
Michele 2022-02-28 18:55:00 +01:00
commit 1bb1d0be40
6 changed files with 725 additions and 6 deletions

View File

@ -82,6 +82,20 @@ Use -exclude='regex' to specify signals to exclude (or -ex).""")
if exclude_given: if exclude_given:
entries = [e for e in entries if re.search(exclude_re, e[1]) == None] entries = [e for e in entries if re.search(exclude_re, e[1]) == None]
# Check if start time given
for arg in argv:
r = re.findall(r'-t0=(\d+)', arg)
if len(r) >= 1:
print(f"Filtering by start time t0 = {r[0]}")
entries = [e for e in entries if int(e[0]) >= int(r[0])]
# Check if end time given
for arg in argv:
r = re.findall(r'-t1=(\d+)', arg)
if len(r) >= 1:
print(f"Filtering by start time t0 = {r[0]}")
entries = [e for e in entries if int(e[0]) <= int(r[0])]
assert len(entries) >= 1, "No valid entries in prsim.out!" assert len(entries) >= 1, "No valid entries in prsim.out!"
# Get list of all sigs and times # Get list of all sigs and times
@ -103,6 +117,7 @@ Use -exclude='regex' to specify signals to exclude (or -ex).""")
''' '''
Since times are random, need to convert them to an index. Since times are random, need to convert them to an index.
''' '''
if not (int(time) in unique_times): return None
out = np.argwhere(unique_times == int(time)) out = np.argwhere(unique_times == int(time))
return out[0][0] return out[0][0]
@ -111,6 +126,7 @@ Use -exclude='regex' to specify signals to exclude (or -ex).""")
Handles signal name ordering. Handles signal name ordering.
Assume ordered like unique_sigs for now Assume ordered like unique_sigs for now
''' '''
if not (sig in unique_sigs): return None
out = np.argwhere(unique_sigs == sig) out = np.argwhere(unique_sigs == sig)
return out[0][0] return out[0][0]
@ -130,7 +146,7 @@ Use -exclude='regex' to specify signals to exclude (or -ex).""")
# Generate figure # Generate figure
# weird sizing is to try to keep "pixel" sizes approx const # weird sizing is to try to keep "pixel" sizes approx const
fig = plt.figure(figsize = (num_sigs/3+0.5,num_times/3+0.2), dpi = 100) fig = plt.figure(figsize = (num_times/3+0.2,num_sigs/3+0.2), dpi = 100)
image = np.zeros((num_sigs, num_times, 3), dtype = int) image = np.zeros((num_sigs, num_times, 3), dtype = int)
image[signals_matrix == 0] = colour_undefined image[signals_matrix == 0] = colour_undefined
@ -173,18 +189,41 @@ Use -exclude='regex' to specify signals to exclude (or -ex).""")
else: else:
s1 = s0 s1 = s0
arrow_c = "black" if by_val == 1 else "grey"
if by_val == 1: if by_val == 1:
plt.arrow(t0, s1, 0, s0-s1 + 0.2*np.sign(s0-s1), head_width = 0.5, width = 0.2, ec = "none", lw = 0, fc = "black", length_includes_head = True) plt.arrow(t0, s1, 0, s0-s1 + 0.2*np.sign(s0-s1), head_width = 0.5, width = 0.2,
ec = "none", lw = 0, fc = "black", length_includes_head = True)
else: else:
plt.arrow(t0, s1, 0, s0-s1 + 0.2*np.sign(s0-s1), head_width = 0, width = 0.2, ec = "none", lw = 0, fc = "black", length_includes_head = True) plt.arrow(t0, s1, 0, s0-s1 + 0.2*np.sign(s0-s1), head_width = 0, width = 0.2,
plt.scatter((t0),(s0), c = "black", s = 30) ec = "none", lw = 0, fc = "black", length_includes_head = True)
plt.scatter((t0),(s0), c = "black", s = 40)
# Write times on x axis # Write times on x axis
for time in unique_times: for time in unique_times:
ax.text(time_to_index(time), num_sigs, time, ha = "center", va = "top", size = 10, rotation = 90) ax.text(time_to_index(time), num_sigs, time, ha = "center", va = "top", size = 10, rotation = 90)
# Find and plot wrong Assert statements
asserts = re.findall(r"\t *(\d+) .*\nWRONG ASSERT:\t(.+)", f)
if len(asserts): print("Failed asserts found!")
for a in asserts:
print(a)
time = int(a[0])
if not time in unique_times:
time = unique_times[np.argwhere((unique_times-time) < 0)[-1]]
index = time_to_index(time)
ax.axvline(index+0.5, c = "red", lw = 2)
ax.text(index+0.5, -1, a[1], rotation = 90, ha = "center", va = "bottom", c = "red")
# Find echoed statements of the form "[digits] text"
echoes = re.findall(r"\t *(\d+) [^\t]*\n(\[\d*\].+)", f)
for a in echoes:
time = int(a[0])
if not time in unique_times:
time = unique_times[np.argwhere((unique_times-time) < 0)[-1]]
index = time_to_index(time)
c = "xkcd:bright purple"
ax.axvline(index+0.5, c = c, lw = 2)
ax.text(index+0.5, -1, a[1], rotation = 90, ha = "center", va = "bottom", c = c)
output_type = ".pdf" output_type = ".pdf"
for arg in argv: for arg in argv:
if arg == "-png": output_type = ".png" if arg == "-png": output_type = ".png"

View File

@ -0,0 +1,250 @@
t.a.fifo_element[1]._en t.a.fifo_element[0]._out_a_B t.a.fifo_element[1]._out_a_B t.a.fifo_element[1].in.r t.in.r t.a.fifo_element[2]._en t.out.r t.a.fifo_element[0].buf_func._y t.a.fifo_element[3]._en t.a.fifo_element[3].inack_ctl._y t.a.fifo_element[1].in.a t.a.fifo_element[3].in.a t.a.fifo_element[2].in.r t.a.fifo_element[3]._out_a_B t.a.fifo_element[3].in.r t.a.fifo_element[2].in.a t.a.fifo_element[0]._en t.out.a t.a.fifo_element[4].in.r t.a.fifo_element[4]._en t.in.a t.a.fifo_element[2].inack_ctl._y t.a.fifo_element[4]._out_a_B t.a.fifo_element[4].buf_func._y t.a.fifo_element[1].inack_ctl._y t.a.fifo_element[4].in.a t.a.fifo_element[2]._out_a_B t.a.fifo_element[3].buf_func._y t.a.fifo_element[4].inack_ctl._y t.a.fifo_element[2].buf_func._y t.a.fifo_element[0].inack_ctl._y t.a.fifo_element[1].buf_func._y
[] code starts
82968 t.in.r : 0
82968 t.out.a : 0
83383 t.a.fifo_element[4]._out_a_B : 1 [by t.out.a:=0]
[] set Reset(B) low
83383 Reset : 0
83403 t.a.reset_buf._y : 1 [by Reset:=0]
89464 t.a._reset_BX : 0 [by t.a.reset_buf._y:=1]
89511 t.a.reset_bufarray.buf2._y : 1 [by t.a._reset_BX:=0]
89527 t.a._reset_BXX[0] : 0 [by t.a.reset_bufarray.buf2._y:=1]
89531 t.a.fifo_element[1].reset_buf._y : 1 [by t.a._reset_BXX[0]:=0]
89542 t.a.fifo_element[4].reset_buf._y : 1 [by t.a._reset_BXX[0]:=0]
98656 t.a.fifo_element[0].reset_buf._y : 1 [by t.a._reset_BXX[0]:=0]
98711 t.a.fifo_element[0]._reset_BX : 0 [by t.a.fifo_element[0].reset_buf._y:=1]
103251 t.a.fifo_element[2].reset_buf._y : 1 [by t.a._reset_BXX[0]:=0]
117100 t.a.fifo_element[2]._reset_BX : 0 [by t.a.fifo_element[2].reset_buf._y:=1]
126473 t.a.fifo_element[4]._reset_BX : 0 [by t.a.fifo_element[4].reset_buf._y:=1]
126895 t.a.fifo_element[4].buf_func._y : 1 [by t.a.fifo_element[4]._reset_BX:=0]
126896 t.out.r : 0 [by t.a.fifo_element[4].buf_func._y:=1]
128491 t.a.fifo_element[0].inack_ctl._y : 1 [by t.a.fifo_element[0]._reset_BX:=0]
128492 t.in.a : 0 [by t.a.fifo_element[0].inack_ctl._y:=1]
131443 t.a.fifo_element[2].inack_ctl._y : 1 [by t.a.fifo_element[2]._reset_BX:=0]
132779 t.a.fifo_element[1]._reset_BX : 0 [by t.a.fifo_element[1].reset_buf._y:=1]
133061 t.a.fifo_element[1].buf_func._y : 1 [by t.a.fifo_element[1]._reset_BX:=0]
133064 t.a.fifo_element[2].in.r : 0 [by t.a.fifo_element[1].buf_func._y:=1]
133547 t.a.fifo_element[1].inack_ctl._y : 1 [by t.a.fifo_element[1]._reset_BX:=0]
133625 t.a.fifo_element[3].reset_buf._y : 1 [by t.a._reset_BXX[0]:=0]
134176 t.a.fifo_element[3]._reset_BX : 0 [by t.a.fifo_element[3].reset_buf._y:=1]
135130 t.a.fifo_element[3].inack_ctl._y : 1 [by t.a.fifo_element[3]._reset_BX:=0]
135247 t.a.fifo_element[3].buf_func._y : 1 [by t.a.fifo_element[3]._reset_BX:=0]
136211 t.a.fifo_element[3].in.a : 0 [by t.a.fifo_element[3].inack_ctl._y:=1]
137193 t.a.fifo_element[2]._out_a_B : 1 [by t.a.fifo_element[3].in.a:=0]
141912 t.a.fifo_element[2].buf_func._y : 1 [by t.a.fifo_element[2]._reset_BX:=0]
141930 t.a.fifo_element[3].in.r : 0 [by t.a.fifo_element[2].buf_func._y:=1]
150364 t.a.fifo_element[0].buf_func._y : 1 [by t.a.fifo_element[0]._reset_BX:=0]
151648 t.a.fifo_element[2].in.a : 0 [by t.a.fifo_element[2].inack_ctl._y:=1]
154377 t.a.fifo_element[1].in.r : 0 [by t.a.fifo_element[0].buf_func._y:=1]
155651 t.a.fifo_element[2]._en : 1 [by t.a.fifo_element[2].in.a:=0]
155988 t.a.fifo_element[1].in.a : 0 [by t.a.fifo_element[1].inack_ctl._y:=1]
156490 t.a.fifo_element[0]._out_a_B : 1 [by t.a.fifo_element[1].in.a:=0]
160748 t.a.fifo_element[1]._en : 1 [by t.a.fifo_element[1].in.a:=0]
175187 t.a.fifo_element[4].inack_ctl._y : 1 [by t.a.fifo_element[4]._reset_BX:=0]
175390 t.a.fifo_element[4].in.a : 0 [by t.a.fifo_element[4].inack_ctl._y:=1]
175529 t.a.fifo_element[3]._out_a_B : 1 [by t.a.fifo_element[4].in.a:=0]
175961 t.a.fifo_element[0]._en : 1 [by t.a.fifo_element[1].in.r:=0]
177244 t.a.fifo_element[4]._en : 1 [by t.a.fifo_element[4].in.a:=0]
189717 t.a.fifo_element[4].in.r : 0 [by t.a.fifo_element[3].buf_func._y:=1]
196549 t.a.fifo_element[1]._out_a_B : 1 [by t.a.fifo_element[2].in.a:=0]
226063 t.a.fifo_element[3]._en : 1 [by t.a.fifo_element[4].in.r:=0]
[] set Reset(B) high
226063 Reset : 1
226132 t.a.reset_buf._y : 0 [by Reset:=1]
226143 t.a._reset_BX : 1 [by t.a.reset_buf._y:=0]
277929 t.a.reset_bufarray.buf2._y : 0 [by t.a._reset_BX:=1]
278133 t.a._reset_BXX[0] : 1 [by t.a.reset_bufarray.buf2._y:=0]
278134 t.a.fifo_element[2].reset_buf._y : 0 [by t.a._reset_BXX[0]:=1]
278148 t.a.fifo_element[3].reset_buf._y : 0 [by t.a._reset_BXX[0]:=1]
278170 t.a.fifo_element[1].reset_buf._y : 0 [by t.a._reset_BXX[0]:=1]
278188 t.a.fifo_element[3]._reset_BX : 1 [by t.a.fifo_element[3].reset_buf._y:=0]
278245 t.a.fifo_element[4].reset_buf._y : 0 [by t.a._reset_BXX[0]:=1]
278332 t.a.fifo_element[4]._reset_BX : 1 [by t.a.fifo_element[4].reset_buf._y:=0]
278427 t.a.fifo_element[1]._reset_BX : 1 [by t.a.fifo_element[1].reset_buf._y:=0]
278872 t.a.fifo_element[0].reset_buf._y : 0 [by t.a._reset_BXX[0]:=1]
279166 t.a.fifo_element[0]._reset_BX : 1 [by t.a.fifo_element[0].reset_buf._y:=0]
325646 t.a.fifo_element[2]._reset_BX : 1 [by t.a.fifo_element[2].reset_buf._y:=0]
[0] reset done, r up
325646 t.in.r : 1
325647 t.a.fifo_element[0].buf_func._y : 0 [by t.in.r:=1]
327453 t.a.fifo_element[1].in.r : 1 [by t.a.fifo_element[0].buf_func._y:=0]
328662 t.a.fifo_element[0].inack_ctl._y : 0 [by t.a.fifo_element[1].in.r:=1]
329252 t.in.a : 1 [by t.a.fifo_element[0].inack_ctl._y:=0]
329430 t.a.fifo_element[0]._en : 0 [by t.in.a:=1]
329460 t.a.fifo_element[1].buf_func._y : 0 [by t.a.fifo_element[1].in.r:=1]
330263 t.a.fifo_element[2].in.r : 1 [by t.a.fifo_element[1].buf_func._y:=0]
330427 t.a.fifo_element[2].buf_func._y : 0 [by t.a.fifo_element[2].in.r:=1]
330449 t.a.fifo_element[3].in.r : 1 [by t.a.fifo_element[2].buf_func._y:=0]
331296 t.a.fifo_element[3].buf_func._y : 0 [by t.a.fifo_element[3].in.r:=1]
331429 t.a.fifo_element[4].in.r : 1 [by t.a.fifo_element[3].buf_func._y:=0]
331788 t.a.fifo_element[3].inack_ctl._y : 0 [by t.a.fifo_element[4].in.r:=1]
332458 t.a.fifo_element[1].inack_ctl._y : 0 [by t.a.fifo_element[2].in.r:=1]
332679 t.a.fifo_element[1].in.a : 1 [by t.a.fifo_element[1].inack_ctl._y:=0]
332686 t.a.fifo_element[1]._en : 0 [by t.a.fifo_element[1].in.a:=1]
332709 t.a.fifo_element[0]._out_a_B : 0 [by t.a.fifo_element[1].in.a:=1]
339422 t.a.fifo_element[0].buf_func._y : 1 [by t.a.fifo_element[0]._out_a_B:=0]
345904 t.a.fifo_element[3].in.a : 1 [by t.a.fifo_element[3].inack_ctl._y:=0]
345995 t.a.fifo_element[3]._en : 0 [by t.a.fifo_element[3].in.a:=1]
347091 t.a.fifo_element[4].buf_func._y : 0 [by t.a.fifo_element[4].in.r:=1]
347098 t.out.r : 1 [by t.a.fifo_element[4].buf_func._y:=0]
348093 t.a.fifo_element[2]._out_a_B : 0 [by t.a.fifo_element[3].in.a:=1]
349885 t.a.fifo_element[4].inack_ctl._y : 0 [by t.out.r:=1]
349991 t.a.fifo_element[4].in.a : 1 [by t.a.fifo_element[4].inack_ctl._y:=0]
350069 t.a.fifo_element[4]._en : 0 [by t.a.fifo_element[4].in.a:=1]
350266 t.a.fifo_element[3]._out_a_B : 0 [by t.a.fifo_element[4].in.a:=1]
360577 t.a.fifo_element[2].inack_ctl._y : 0 [by t.a.fifo_element[3].in.r:=1]
361032 t.a.fifo_element[2].in.a : 1 [by t.a.fifo_element[2].inack_ctl._y:=0]
361044 t.a.fifo_element[2]._en : 0 [by t.a.fifo_element[2].in.a:=1]
361056 t.a.fifo_element[2].buf_func._y : 1 [by t.a.fifo_element[2]._en:=0]
361436 t.a.fifo_element[1]._out_a_B : 0 [by t.a.fifo_element[2].in.a:=1]
365712 t.a.fifo_element[1].buf_func._y : 1 [by t.a.fifo_element[1]._out_a_B:=0]
366972 t.a.fifo_element[3].in.r : 0 [by t.a.fifo_element[2].buf_func._y:=1]
368611 t.a.fifo_element[2].in.r : 0 [by t.a.fifo_element[1].buf_func._y:=1]
368613 t.a.fifo_element[2].inack_ctl._y : 1 [by t.a.fifo_element[2].in.r:=0]
369262 t.a.fifo_element[3].buf_func._y : 1 [by t.a.fifo_element[3]._out_a_B:=0]
370511 t.a.fifo_element[4].in.r : 0 [by t.a.fifo_element[3].buf_func._y:=1]
371267 t.a.fifo_element[3].inack_ctl._y : 1 [by t.a.fifo_element[3].in.r:=0]
371433 t.a.fifo_element[3].in.a : 0 [by t.a.fifo_element[3].inack_ctl._y:=1]
371508 t.a.fifo_element[3]._en : 1 [by t.a.fifo_element[3].in.a:=0]
371778 t.a.fifo_element[2]._out_a_B : 1 [by t.a.fifo_element[3].in.a:=0]
373148 t.a.fifo_element[2].in.a : 0 [by t.a.fifo_element[2].inack_ctl._y:=1]
373286 t.a.fifo_element[2]._en : 1 [by t.a.fifo_element[2].in.a:=0]
374010 t.a.fifo_element[4].inack_ctl._y : 1 [by t.a.fifo_element[4].in.r:=0]
374012 t.a.fifo_element[4].in.a : 0 [by t.a.fifo_element[4].inack_ctl._y:=1]
378411 t.a.fifo_element[1]._out_a_B : 1 [by t.a.fifo_element[2].in.a:=0]
396883 t.a.fifo_element[1].in.r : 0 [by t.a.fifo_element[0].buf_func._y:=1]
396884 t.a.fifo_element[1].inack_ctl._y : 1 [by t.a.fifo_element[1].in.r:=0]
397432 t.a.fifo_element[1].in.a : 0 [by t.a.fifo_element[1].inack_ctl._y:=1]
397443 t.a.fifo_element[1]._en : 1 [by t.a.fifo_element[1].in.a:=0]
397802 t.a.fifo_element[0]._out_a_B : 1 [by t.a.fifo_element[1].in.a:=0]
417929 t.a.fifo_element[3]._out_a_B : 1 [by t.a.fifo_element[4].in.a:=0]
[0] r down
417929 t.in.r : 0
417996 t.a.fifo_element[0].inack_ctl._y : 1 [by t.in.r:=0]
420637 t.in.a : 0 [by t.a.fifo_element[0].inack_ctl._y:=1]
420653 t.a.fifo_element[0]._en : 1 [by t.in.a:=0]
[1] r up
420653 t.in.r : 1
425215 t.a.fifo_element[0].buf_func._y : 0 [by t.in.r:=1]
425743 t.a.fifo_element[1].in.r : 1 [by t.a.fifo_element[0].buf_func._y:=0]
428178 t.a.fifo_element[1].buf_func._y : 0 [by t.a.fifo_element[1].in.r:=1]
452103 t.a.fifo_element[2].in.r : 1 [by t.a.fifo_element[1].buf_func._y:=0]
452105 t.a.fifo_element[1].inack_ctl._y : 0 [by t.a.fifo_element[2].in.r:=1]
452623 t.a.fifo_element[0].inack_ctl._y : 0 [by t.a.fifo_element[1].in.r:=1]
452626 t.in.a : 1 [by t.a.fifo_element[0].inack_ctl._y:=0]
452655 t.a.fifo_element[0]._en : 0 [by t.in.a:=1]
465144 t.a.fifo_element[2].buf_func._y : 0 [by t.a.fifo_element[2].in.r:=1]
465461 t.a.fifo_element[3].in.r : 1 [by t.a.fifo_element[2].buf_func._y:=0]
465614 t.a.fifo_element[2].inack_ctl._y : 0 [by t.a.fifo_element[3].in.r:=1]
465658 t.a.fifo_element[2].in.a : 1 [by t.a.fifo_element[2].inack_ctl._y:=0]
467062 t.a.fifo_element[3].buf_func._y : 0 [by t.a.fifo_element[3].in.r:=1]
467063 t.a.fifo_element[4].in.r : 1 [by t.a.fifo_element[3].buf_func._y:=0]
467280 t.a.fifo_element[3].inack_ctl._y : 0 [by t.a.fifo_element[4].in.r:=1]
467302 t.a.fifo_element[3].in.a : 1 [by t.a.fifo_element[3].inack_ctl._y:=0]
467303 t.a.fifo_element[3]._en : 0 [by t.a.fifo_element[3].in.a:=1]
468419 t.a.fifo_element[2]._en : 0 [by t.a.fifo_element[2].in.a:=1]
468883 t.a.fifo_element[2]._out_a_B : 0 [by t.a.fifo_element[3].in.a:=1]
478228 t.a.fifo_element[2].buf_func._y : 1 [by t.a.fifo_element[2]._out_a_B:=0]
478387 t.a.fifo_element[3].in.r : 0 [by t.a.fifo_element[2].buf_func._y:=1]
479341 t.a.fifo_element[1]._out_a_B : 0 [by t.a.fifo_element[2].in.a:=1]
498063 t.a.fifo_element[3].inack_ctl._y : 1 [by t.a.fifo_element[3].in.r:=0]
499350 t.a.fifo_element[3].in.a : 0 [by t.a.fifo_element[3].inack_ctl._y:=1]
501582 t.a.fifo_element[2]._out_a_B : 1 [by t.a.fifo_element[3].in.a:=0]
513063 t.a.fifo_element[1].in.a : 1 [by t.a.fifo_element[1].inack_ctl._y:=0]
513208 t.a.fifo_element[1]._en : 0 [by t.a.fifo_element[1].in.a:=1]
515895 t.a.fifo_element[0]._out_a_B : 0 [by t.a.fifo_element[1].in.a:=1]
515896 t.a.fifo_element[0].buf_func._y : 1 [by t.a.fifo_element[0]._out_a_B:=0]
519562 t.a.fifo_element[1].buf_func._y : 1 [by t.a.fifo_element[1]._en:=0]
519724 t.a.fifo_element[2].in.r : 0 [by t.a.fifo_element[1].buf_func._y:=1]
527093 t.a.fifo_element[2].inack_ctl._y : 1 [by t.a.fifo_element[2].in.r:=0]
527107 t.a.fifo_element[2].in.a : 0 [by t.a.fifo_element[2].inack_ctl._y:=1]
527114 t.a.fifo_element[2]._en : 1 [by t.a.fifo_element[2].in.a:=0]
527267 t.a.fifo_element[1]._out_a_B : 1 [by t.a.fifo_element[2].in.a:=0]
555180 t.a.fifo_element[1].in.r : 0 [by t.a.fifo_element[0].buf_func._y:=1]
576737 t.a.fifo_element[1].inack_ctl._y : 1 [by t.a.fifo_element[1].in.r:=0]
576738 t.a.fifo_element[1].in.a : 0 [by t.a.fifo_element[1].inack_ctl._y:=1]
576739 t.a.fifo_element[1]._en : 1 [by t.a.fifo_element[1].in.a:=0]
576739 t.a.fifo_element[0]._out_a_B : 1 [by t.a.fifo_element[1].in.a:=0]
[1] r down
576739 t.in.r : 0
578982 t.a.fifo_element[0].inack_ctl._y : 1 [by t.in.r:=0]
579169 t.in.a : 0 [by t.a.fifo_element[0].inack_ctl._y:=1]
579170 t.a.fifo_element[0]._en : 1 [by t.in.a:=0]
[2] r up
579170 t.in.r : 1
583352 t.a.fifo_element[0].buf_func._y : 0 [by t.in.r:=1]
618134 t.a.fifo_element[1].in.r : 1 [by t.a.fifo_element[0].buf_func._y:=0]
618135 t.a.fifo_element[1].buf_func._y : 0 [by t.a.fifo_element[1].in.r:=1]
618140 t.a.fifo_element[2].in.r : 1 [by t.a.fifo_element[1].buf_func._y:=0]
618141 t.a.fifo_element[1].inack_ctl._y : 0 [by t.a.fifo_element[2].in.r:=1]
618158 t.a.fifo_element[1].in.a : 1 [by t.a.fifo_element[1].inack_ctl._y:=0]
618987 t.a.fifo_element[0].inack_ctl._y : 0 [by t.a.fifo_element[1].in.r:=1]
618990 t.in.a : 1 [by t.a.fifo_element[0].inack_ctl._y:=0]
619031 t.a.fifo_element[2].buf_func._y : 0 [by t.a.fifo_element[2].in.r:=1]
619931 t.a.fifo_element[0]._en : 0 [by t.in.a:=1]
620731 t.a.fifo_element[1]._en : 0 [by t.a.fifo_element[1].in.a:=1]
626519 t.a.fifo_element[0]._out_a_B : 0 [by t.a.fifo_element[1].in.a:=1]
626520 t.a.fifo_element[0].buf_func._y : 1 [by t.a.fifo_element[0]._out_a_B:=0]
626562 t.a.fifo_element[1].in.r : 0 [by t.a.fifo_element[0].buf_func._y:=1]
629379 t.a.fifo_element[1].inack_ctl._y : 1 [by t.a.fifo_element[1].in.r:=0]
643112 t.a.fifo_element[1].in.a : 0 [by t.a.fifo_element[1].inack_ctl._y:=1]
643207 t.a.fifo_element[0]._out_a_B : 1 [by t.a.fifo_element[1].in.a:=0]
677993 t.a.fifo_element[3].in.r : 1 [by t.a.fifo_element[2].buf_func._y:=0]
678328 t.a.fifo_element[2].inack_ctl._y : 0 [by t.a.fifo_element[3].in.r:=1]
678336 t.a.fifo_element[2].in.a : 1 [by t.a.fifo_element[2].inack_ctl._y:=0]
678370 t.a.fifo_element[2]._en : 0 [by t.a.fifo_element[2].in.a:=1]
692223 t.a.fifo_element[1]._out_a_B : 0 [by t.a.fifo_element[2].in.a:=1]
693141 t.a.fifo_element[1].buf_func._y : 1 [by t.a.fifo_element[1]._out_a_B:=0]
693145 t.a.fifo_element[2].in.r : 0 [by t.a.fifo_element[1].buf_func._y:=1]
695543 t.a.fifo_element[1]._en : 1 [by t.a.fifo_element[2].in.r:=0]
739523 t.a.fifo_element[2].inack_ctl._y : 1 [by t.a.fifo_element[2].in.r:=0]
742738 t.a.fifo_element[2].in.a : 0 [by t.a.fifo_element[2].inack_ctl._y:=1]
789857 t.a.fifo_element[1]._out_a_B : 1 [by t.a.fifo_element[2].in.a:=0]
[2] r down
789857 t.in.r : 0
789905 t.a.fifo_element[0].inack_ctl._y : 1 [by t.in.r:=0]
789908 t.in.a : 0 [by t.a.fifo_element[0].inack_ctl._y:=1]
790086 t.a.fifo_element[0]._en : 1 [by t.in.a:=0]
[3] r up
790086 t.in.r : 1
811063 t.a.fifo_element[0].buf_func._y : 0 [by t.in.r:=1]
822962 t.a.fifo_element[1].in.r : 1 [by t.a.fifo_element[0].buf_func._y:=0]
828913 t.a.fifo_element[1].buf_func._y : 0 [by t.a.fifo_element[1].in.r:=1]
829740 t.a.fifo_element[2].in.r : 1 [by t.a.fifo_element[1].buf_func._y:=0]
829913 t.a.fifo_element[1].inack_ctl._y : 0 [by t.a.fifo_element[2].in.r:=1]
830097 t.a.fifo_element[1].in.a : 1 [by t.a.fifo_element[1].inack_ctl._y:=0]
830098 t.a.fifo_element[1]._en : 0 [by t.a.fifo_element[1].in.a:=1]
830170 t.a.fifo_element[0]._out_a_B : 0 [by t.a.fifo_element[1].in.a:=1]
862447 t.a.fifo_element[0].inack_ctl._y : 0 [by t.a.fifo_element[1].in.r:=1]
862451 t.in.a : 1 [by t.a.fifo_element[0].inack_ctl._y:=0]
899739 t.a.fifo_element[0]._en : 0 [by t.in.a:=1]
899835 t.a.fifo_element[0].buf_func._y : 1 [by t.a.fifo_element[0]._en:=0]
899971 t.a.fifo_element[1].in.r : 0 [by t.a.fifo_element[0].buf_func._y:=1]
899972 t.a.fifo_element[1].inack_ctl._y : 1 [by t.a.fifo_element[1].in.r:=0]
919018 t.a.fifo_element[1].in.a : 0 [by t.a.fifo_element[1].inack_ctl._y:=1]
919259 t.a.fifo_element[0]._out_a_B : 1 [by t.a.fifo_element[1].in.a:=0]
[3] r down
919259 t.in.r : 0
923218 t.a.fifo_element[0].inack_ctl._y : 1 [by t.in.r:=0]
923230 t.in.a : 0 [by t.a.fifo_element[0].inack_ctl._y:=1]
927130 t.a.fifo_element[0]._en : 1 [by t.in.a:=0]
[4] r up
927130 t.in.r : 1
928159 t.a.fifo_element[0].buf_func._y : 0 [by t.in.r:=1]
928160 t.a.fifo_element[1].in.r : 1 [by t.a.fifo_element[0].buf_func._y:=0]
928216 t.a.fifo_element[0].inack_ctl._y : 0 [by t.a.fifo_element[1].in.r:=1]
973222 t.in.a : 1 [by t.a.fifo_element[0].inack_ctl._y:=0]
973223 t.a.fifo_element[0]._en : 0 [by t.in.a:=1]
[4] r down
973223 t.in.r : 0
973260 t.a.fifo_element[0].inack_ctl._y : 1 [by t.in.r:=0]
996635 t.in.a : 0 [by t.a.fifo_element[0].inack_ctl._y:=1]
[5] r up
996635 t.in.r : 1
[5] r down
996635 t.in.r : 0
[6] r up
996635 t.in.r : 1
[6] r down
996635 t.in.r : 0

Binary file not shown.

View File

@ -0,0 +1,332 @@
= "GND" "GND"
= "Vdd" "Vdd"
= "Reset" "Reset"
"t.a.reset_bufarray.buf2.a"->"t.a.reset_bufarray.buf2._y"-
~("t.a.reset_bufarray.buf2.a")->"t.a.reset_bufarray.buf2._y"+
"t.a.reset_bufarray.buf2._y"->"t.a.reset_bufarray.buf2.y"-
~("t.a.reset_bufarray.buf2._y")->"t.a.reset_bufarray.buf2.y"+
= "t.a.reset_bufarray.supply.vdd" "t.a.reset_bufarray.buf2.vdd"
= "t.a.reset_bufarray.supply.vss" "t.a.reset_bufarray.buf2.vss"
= "t.a.reset_bufarray.out[0]" "t.a.reset_bufarray.out[4]"
= "t.a.reset_bufarray.out[0]" "t.a.reset_bufarray.out[3]"
= "t.a.reset_bufarray.out[0]" "t.a.reset_bufarray.out[2]"
= "t.a.reset_bufarray.out[0]" "t.a.reset_bufarray.out[1]"
= "t.a.reset_bufarray.out[0]" "t.a.reset_bufarray.buf2.y"
= "t.a.reset_bufarray.in" "t.a.reset_bufarray.buf2.a"
"t.a.reset_buf.a"->"t.a.reset_buf._y"-
~("t.a.reset_buf.a")->"t.a.reset_buf._y"+
"t.a.reset_buf._y"->"t.a.reset_buf.y"-
~("t.a.reset_buf._y")->"t.a.reset_buf.y"+
= "t.a.reset_B" "t.a.reset_buf.a"
= "t.a.supply.vss" "t.a.fifo_element[4].supply.vss"
= "t.a.supply.vdd" "t.a.fifo_element[4].supply.vdd"
= "t.a.supply.vss" "t.a.fifo_element[3].supply.vss"
= "t.a.supply.vdd" "t.a.fifo_element[3].supply.vdd"
= "t.a.supply.vss" "t.a.fifo_element[2].supply.vss"
= "t.a.supply.vdd" "t.a.fifo_element[2].supply.vdd"
= "t.a.supply.vss" "t.a.fifo_element[1].supply.vss"
= "t.a.supply.vdd" "t.a.fifo_element[1].supply.vdd"
= "t.a.supply.vss" "t.a.fifo_element[0].supply.vss"
= "t.a.supply.vdd" "t.a.fifo_element[0].supply.vdd"
= "t.a.supply.vdd" "t.a.reset_buf.vdd"
= "t.a.supply.vss" "t.a.reset_buf.vss"
= "t.a._reset_BX" "t.a.reset_bufarray.in"
= "t.a._reset_BX" "t.a.reset_buf.y"
"t.a.fifo_element[0].reset_buf.a"->"t.a.fifo_element[0].reset_buf._y"-
~("t.a.fifo_element[0].reset_buf.a")->"t.a.fifo_element[0].reset_buf._y"+
"t.a.fifo_element[0].reset_buf._y"->"t.a.fifo_element[0].reset_buf.y"-
~("t.a.fifo_element[0].reset_buf._y")->"t.a.fifo_element[0].reset_buf.y"+
"t.a.fifo_element[0].inv_outa.a"->"t.a.fifo_element[0].inv_outa.y"-
~("t.a.fifo_element[0].inv_outa.a")->"t.a.fifo_element[0].inv_outa.y"+
~"t.a.fifo_element[0].inack_ctl.c1"&~"t.a.fifo_element[0].inack_ctl.c2"|~"t.a.fifo_element[0].inack_ctl.pr_B"->"t.a.fifo_element[0].inack_ctl._y"+
"t.a.fifo_element[0].inack_ctl.c1"&"t.a.fifo_element[0].inack_ctl.c2"&"t.a.fifo_element[0].inack_ctl.n1"&"t.a.fifo_element[0].inack_ctl.sr_B"->"t.a.fifo_element[0].inack_ctl._y"-
"t.a.fifo_element[0].inack_ctl._y"->"t.a.fifo_element[0].inack_ctl.y"-
~("t.a.fifo_element[0].inack_ctl._y")->"t.a.fifo_element[0].inack_ctl.y"+
~"t.a.fifo_element[0].buf_func.c1"&~"t.a.fifo_element[0].buf_func.c2"|~"t.a.fifo_element[0].buf_func.pr_B"->"t.a.fifo_element[0].buf_func._y"+
"t.a.fifo_element[0].buf_func.c1"&"t.a.fifo_element[0].buf_func.c2"&"t.a.fifo_element[0].buf_func.n1"&"t.a.fifo_element[0].buf_func.sr_B"->"t.a.fifo_element[0].buf_func._y"-
"t.a.fifo_element[0].buf_func._y"->"t.a.fifo_element[0].buf_func.y"-
~("t.a.fifo_element[0].buf_func._y")->"t.a.fifo_element[0].buf_func.y"+
= "t.a.fifo_element[0].reset_B" "t.a.fifo_element[0].reset_buf.a"
= "t.a.fifo_element[0].supply.vdd" "t.a.fifo_element[0].reset_buf.vdd"
= "t.a.fifo_element[0].supply.vdd" "t.a.fifo_element[0].buf_func.vdd"
= "t.a.fifo_element[0].supply.vdd" "t.a.fifo_element[0].inv_outa.vdd"
= "t.a.fifo_element[0].supply.vdd" "t.a.fifo_element[0].en_ctl.vdd"
= "t.a.fifo_element[0].supply.vdd" "t.a.fifo_element[0].inack_ctl.vdd"
= "t.a.fifo_element[0].supply.vss" "t.a.fifo_element[0].reset_buf.vss"
= "t.a.fifo_element[0].supply.vss" "t.a.fifo_element[0].buf_func.vss"
= "t.a.fifo_element[0].supply.vss" "t.a.fifo_element[0].inv_outa.vss"
= "t.a.fifo_element[0].supply.vss" "t.a.fifo_element[0].en_ctl.vss"
= "t.a.fifo_element[0].supply.vss" "t.a.fifo_element[0].inack_ctl.vss"
= "t.a.fifo_element[0]._reset_BX" "t.a.fifo_element[0].reset_buf.y"
= "t.a.fifo_element[0]._reset_BX" "t.a.fifo_element[0].buf_func.sr_B"
= "t.a.fifo_element[0]._reset_BX" "t.a.fifo_element[0].buf_func.pr_B"
= "t.a.fifo_element[0]._reset_BX" "t.a.fifo_element[0].inack_ctl.sr_B"
= "t.a.fifo_element[0]._reset_BX" "t.a.fifo_element[0].inack_ctl.pr_B"
= "t.a.fifo_element[0]._en" "t.a.fifo_element[0].buf_func.c1"
= "t.a.fifo_element[0]._en" "t.a.fifo_element[0].en_ctl.y"
= "t.a.fifo_element[0]._en" "t.a.fifo_element[0].inack_ctl.c1"
~"t.a.fifo_element[0].en_ctl.p1"&~"t.a.fifo_element[0].en_ctl.c1"->"t.a.fifo_element[0].en_ctl.y"+
"t.a.fifo_element[0].en_ctl.c1"->"t.a.fifo_element[0].en_ctl.y"-
= "t.a.fifo_element[0]._out_a_B" "t.a.fifo_element[0].buf_func.c2"
= "t.a.fifo_element[0]._out_a_B" "t.a.fifo_element[0].inv_outa.y"
= "t.a.fifo_element[0].in.d.d[0]" "t.a.fifo_element[0].in.r"
= "t.a.fifo_element[0].in.a" "t.a.fifo_element[0].en_ctl.c1"
= "t.a.fifo_element[0].in.a" "t.a.fifo_element[0].inack_ctl.y"
= "t.a.fifo_element[0].in.d.d[0]" "t.a.fifo_element[0].buf_func.n1"
= "t.a.fifo_element[0].in.d.d[0]" "t.a.fifo_element[0].inack_ctl.c2"
= "t.a.fifo_element[0].in.d.d[0]" "t.a.fifo_element[0].in.r"
= "t.a.fifo_element[0].out.d.d[0]" "t.a.fifo_element[0].out.r"
= "t.a.fifo_element[0].out.a" "t.a.fifo_element[0].inv_outa.a"
= "t.a.fifo_element[0].out.d.d[0]" "t.a.fifo_element[0].buf_func.y"
= "t.a.fifo_element[0].out.d.d[0]" "t.a.fifo_element[0].en_ctl.p1"
= "t.a.fifo_element[0].out.d.d[0]" "t.a.fifo_element[0].inack_ctl.n1"
= "t.a.fifo_element[0].out.d.d[0]" "t.a.fifo_element[0].out.r"
"t.a.fifo_element[1].reset_buf.a"->"t.a.fifo_element[1].reset_buf._y"-
~("t.a.fifo_element[1].reset_buf.a")->"t.a.fifo_element[1].reset_buf._y"+
"t.a.fifo_element[1].reset_buf._y"->"t.a.fifo_element[1].reset_buf.y"-
~("t.a.fifo_element[1].reset_buf._y")->"t.a.fifo_element[1].reset_buf.y"+
"t.a.fifo_element[1].inv_outa.a"->"t.a.fifo_element[1].inv_outa.y"-
~("t.a.fifo_element[1].inv_outa.a")->"t.a.fifo_element[1].inv_outa.y"+
~"t.a.fifo_element[1].inack_ctl.c1"&~"t.a.fifo_element[1].inack_ctl.c2"|~"t.a.fifo_element[1].inack_ctl.pr_B"->"t.a.fifo_element[1].inack_ctl._y"+
"t.a.fifo_element[1].inack_ctl.c1"&"t.a.fifo_element[1].inack_ctl.c2"&"t.a.fifo_element[1].inack_ctl.n1"&"t.a.fifo_element[1].inack_ctl.sr_B"->"t.a.fifo_element[1].inack_ctl._y"-
"t.a.fifo_element[1].inack_ctl._y"->"t.a.fifo_element[1].inack_ctl.y"-
~("t.a.fifo_element[1].inack_ctl._y")->"t.a.fifo_element[1].inack_ctl.y"+
~"t.a.fifo_element[1].buf_func.c1"&~"t.a.fifo_element[1].buf_func.c2"|~"t.a.fifo_element[1].buf_func.pr_B"->"t.a.fifo_element[1].buf_func._y"+
"t.a.fifo_element[1].buf_func.c1"&"t.a.fifo_element[1].buf_func.c2"&"t.a.fifo_element[1].buf_func.n1"&"t.a.fifo_element[1].buf_func.sr_B"->"t.a.fifo_element[1].buf_func._y"-
"t.a.fifo_element[1].buf_func._y"->"t.a.fifo_element[1].buf_func.y"-
~("t.a.fifo_element[1].buf_func._y")->"t.a.fifo_element[1].buf_func.y"+
= "t.a.fifo_element[1].reset_B" "t.a.fifo_element[1].reset_buf.a"
= "t.a.fifo_element[1].supply.vdd" "t.a.fifo_element[1].reset_buf.vdd"
= "t.a.fifo_element[1].supply.vdd" "t.a.fifo_element[1].buf_func.vdd"
= "t.a.fifo_element[1].supply.vdd" "t.a.fifo_element[1].inv_outa.vdd"
= "t.a.fifo_element[1].supply.vdd" "t.a.fifo_element[1].en_ctl.vdd"
= "t.a.fifo_element[1].supply.vdd" "t.a.fifo_element[1].inack_ctl.vdd"
= "t.a.fifo_element[1].supply.vss" "t.a.fifo_element[1].reset_buf.vss"
= "t.a.fifo_element[1].supply.vss" "t.a.fifo_element[1].buf_func.vss"
= "t.a.fifo_element[1].supply.vss" "t.a.fifo_element[1].inv_outa.vss"
= "t.a.fifo_element[1].supply.vss" "t.a.fifo_element[1].en_ctl.vss"
= "t.a.fifo_element[1].supply.vss" "t.a.fifo_element[1].inack_ctl.vss"
= "t.a.fifo_element[1]._reset_BX" "t.a.fifo_element[1].reset_buf.y"
= "t.a.fifo_element[1]._reset_BX" "t.a.fifo_element[1].buf_func.sr_B"
= "t.a.fifo_element[1]._reset_BX" "t.a.fifo_element[1].buf_func.pr_B"
= "t.a.fifo_element[1]._reset_BX" "t.a.fifo_element[1].inack_ctl.sr_B"
= "t.a.fifo_element[1]._reset_BX" "t.a.fifo_element[1].inack_ctl.pr_B"
= "t.a.fifo_element[1]._en" "t.a.fifo_element[1].buf_func.c1"
= "t.a.fifo_element[1]._en" "t.a.fifo_element[1].en_ctl.y"
= "t.a.fifo_element[1]._en" "t.a.fifo_element[1].inack_ctl.c1"
~"t.a.fifo_element[1].en_ctl.p1"&~"t.a.fifo_element[1].en_ctl.c1"->"t.a.fifo_element[1].en_ctl.y"+
"t.a.fifo_element[1].en_ctl.c1"->"t.a.fifo_element[1].en_ctl.y"-
= "t.a.fifo_element[1]._out_a_B" "t.a.fifo_element[1].buf_func.c2"
= "t.a.fifo_element[1]._out_a_B" "t.a.fifo_element[1].inv_outa.y"
= "t.a.fifo_element[1].in.d.d[0]" "t.a.fifo_element[1].in.r"
= "t.a.fifo_element[1].in.a" "t.a.fifo_element[1].en_ctl.c1"
= "t.a.fifo_element[1].in.a" "t.a.fifo_element[1].inack_ctl.y"
= "t.a.fifo_element[1].in.d.d[0]" "t.a.fifo_element[1].buf_func.n1"
= "t.a.fifo_element[1].in.d.d[0]" "t.a.fifo_element[1].inack_ctl.c2"
= "t.a.fifo_element[1].in.d.d[0]" "t.a.fifo_element[1].in.r"
= "t.a.fifo_element[1].out.d.d[0]" "t.a.fifo_element[1].out.r"
= "t.a.fifo_element[1].out.a" "t.a.fifo_element[1].inv_outa.a"
= "t.a.fifo_element[1].out.d.d[0]" "t.a.fifo_element[1].buf_func.y"
= "t.a.fifo_element[1].out.d.d[0]" "t.a.fifo_element[1].en_ctl.p1"
= "t.a.fifo_element[1].out.d.d[0]" "t.a.fifo_element[1].inack_ctl.n1"
= "t.a.fifo_element[1].out.d.d[0]" "t.a.fifo_element[1].out.r"
"t.a.fifo_element[2].reset_buf.a"->"t.a.fifo_element[2].reset_buf._y"-
~("t.a.fifo_element[2].reset_buf.a")->"t.a.fifo_element[2].reset_buf._y"+
"t.a.fifo_element[2].reset_buf._y"->"t.a.fifo_element[2].reset_buf.y"-
~("t.a.fifo_element[2].reset_buf._y")->"t.a.fifo_element[2].reset_buf.y"+
"t.a.fifo_element[2].inv_outa.a"->"t.a.fifo_element[2].inv_outa.y"-
~("t.a.fifo_element[2].inv_outa.a")->"t.a.fifo_element[2].inv_outa.y"+
~"t.a.fifo_element[2].inack_ctl.c1"&~"t.a.fifo_element[2].inack_ctl.c2"|~"t.a.fifo_element[2].inack_ctl.pr_B"->"t.a.fifo_element[2].inack_ctl._y"+
"t.a.fifo_element[2].inack_ctl.c1"&"t.a.fifo_element[2].inack_ctl.c2"&"t.a.fifo_element[2].inack_ctl.n1"&"t.a.fifo_element[2].inack_ctl.sr_B"->"t.a.fifo_element[2].inack_ctl._y"-
"t.a.fifo_element[2].inack_ctl._y"->"t.a.fifo_element[2].inack_ctl.y"-
~("t.a.fifo_element[2].inack_ctl._y")->"t.a.fifo_element[2].inack_ctl.y"+
~"t.a.fifo_element[2].buf_func.c1"&~"t.a.fifo_element[2].buf_func.c2"|~"t.a.fifo_element[2].buf_func.pr_B"->"t.a.fifo_element[2].buf_func._y"+
"t.a.fifo_element[2].buf_func.c1"&"t.a.fifo_element[2].buf_func.c2"&"t.a.fifo_element[2].buf_func.n1"&"t.a.fifo_element[2].buf_func.sr_B"->"t.a.fifo_element[2].buf_func._y"-
"t.a.fifo_element[2].buf_func._y"->"t.a.fifo_element[2].buf_func.y"-
~("t.a.fifo_element[2].buf_func._y")->"t.a.fifo_element[2].buf_func.y"+
= "t.a.fifo_element[2].reset_B" "t.a.fifo_element[2].reset_buf.a"
= "t.a.fifo_element[2].supply.vdd" "t.a.fifo_element[2].reset_buf.vdd"
= "t.a.fifo_element[2].supply.vdd" "t.a.fifo_element[2].buf_func.vdd"
= "t.a.fifo_element[2].supply.vdd" "t.a.fifo_element[2].inv_outa.vdd"
= "t.a.fifo_element[2].supply.vdd" "t.a.fifo_element[2].en_ctl.vdd"
= "t.a.fifo_element[2].supply.vdd" "t.a.fifo_element[2].inack_ctl.vdd"
= "t.a.fifo_element[2].supply.vss" "t.a.fifo_element[2].reset_buf.vss"
= "t.a.fifo_element[2].supply.vss" "t.a.fifo_element[2].buf_func.vss"
= "t.a.fifo_element[2].supply.vss" "t.a.fifo_element[2].inv_outa.vss"
= "t.a.fifo_element[2].supply.vss" "t.a.fifo_element[2].en_ctl.vss"
= "t.a.fifo_element[2].supply.vss" "t.a.fifo_element[2].inack_ctl.vss"
= "t.a.fifo_element[2]._reset_BX" "t.a.fifo_element[2].reset_buf.y"
= "t.a.fifo_element[2]._reset_BX" "t.a.fifo_element[2].buf_func.sr_B"
= "t.a.fifo_element[2]._reset_BX" "t.a.fifo_element[2].buf_func.pr_B"
= "t.a.fifo_element[2]._reset_BX" "t.a.fifo_element[2].inack_ctl.sr_B"
= "t.a.fifo_element[2]._reset_BX" "t.a.fifo_element[2].inack_ctl.pr_B"
= "t.a.fifo_element[2]._en" "t.a.fifo_element[2].buf_func.c1"
= "t.a.fifo_element[2]._en" "t.a.fifo_element[2].en_ctl.y"
= "t.a.fifo_element[2]._en" "t.a.fifo_element[2].inack_ctl.c1"
~"t.a.fifo_element[2].en_ctl.p1"&~"t.a.fifo_element[2].en_ctl.c1"->"t.a.fifo_element[2].en_ctl.y"+
"t.a.fifo_element[2].en_ctl.c1"->"t.a.fifo_element[2].en_ctl.y"-
= "t.a.fifo_element[2]._out_a_B" "t.a.fifo_element[2].buf_func.c2"
= "t.a.fifo_element[2]._out_a_B" "t.a.fifo_element[2].inv_outa.y"
= "t.a.fifo_element[2].in.d.d[0]" "t.a.fifo_element[2].in.r"
= "t.a.fifo_element[2].in.a" "t.a.fifo_element[2].en_ctl.c1"
= "t.a.fifo_element[2].in.a" "t.a.fifo_element[2].inack_ctl.y"
= "t.a.fifo_element[2].in.d.d[0]" "t.a.fifo_element[2].buf_func.n1"
= "t.a.fifo_element[2].in.d.d[0]" "t.a.fifo_element[2].inack_ctl.c2"
= "t.a.fifo_element[2].in.d.d[0]" "t.a.fifo_element[2].in.r"
= "t.a.fifo_element[2].out.d.d[0]" "t.a.fifo_element[2].out.r"
= "t.a.fifo_element[2].out.a" "t.a.fifo_element[2].inv_outa.a"
= "t.a.fifo_element[2].out.d.d[0]" "t.a.fifo_element[2].buf_func.y"
= "t.a.fifo_element[2].out.d.d[0]" "t.a.fifo_element[2].en_ctl.p1"
= "t.a.fifo_element[2].out.d.d[0]" "t.a.fifo_element[2].inack_ctl.n1"
= "t.a.fifo_element[2].out.d.d[0]" "t.a.fifo_element[2].out.r"
"t.a.fifo_element[3].reset_buf.a"->"t.a.fifo_element[3].reset_buf._y"-
~("t.a.fifo_element[3].reset_buf.a")->"t.a.fifo_element[3].reset_buf._y"+
"t.a.fifo_element[3].reset_buf._y"->"t.a.fifo_element[3].reset_buf.y"-
~("t.a.fifo_element[3].reset_buf._y")->"t.a.fifo_element[3].reset_buf.y"+
"t.a.fifo_element[3].inv_outa.a"->"t.a.fifo_element[3].inv_outa.y"-
~("t.a.fifo_element[3].inv_outa.a")->"t.a.fifo_element[3].inv_outa.y"+
~"t.a.fifo_element[3].inack_ctl.c1"&~"t.a.fifo_element[3].inack_ctl.c2"|~"t.a.fifo_element[3].inack_ctl.pr_B"->"t.a.fifo_element[3].inack_ctl._y"+
"t.a.fifo_element[3].inack_ctl.c1"&"t.a.fifo_element[3].inack_ctl.c2"&"t.a.fifo_element[3].inack_ctl.n1"&"t.a.fifo_element[3].inack_ctl.sr_B"->"t.a.fifo_element[3].inack_ctl._y"-
"t.a.fifo_element[3].inack_ctl._y"->"t.a.fifo_element[3].inack_ctl.y"-
~("t.a.fifo_element[3].inack_ctl._y")->"t.a.fifo_element[3].inack_ctl.y"+
~"t.a.fifo_element[3].buf_func.c1"&~"t.a.fifo_element[3].buf_func.c2"|~"t.a.fifo_element[3].buf_func.pr_B"->"t.a.fifo_element[3].buf_func._y"+
"t.a.fifo_element[3].buf_func.c1"&"t.a.fifo_element[3].buf_func.c2"&"t.a.fifo_element[3].buf_func.n1"&"t.a.fifo_element[3].buf_func.sr_B"->"t.a.fifo_element[3].buf_func._y"-
"t.a.fifo_element[3].buf_func._y"->"t.a.fifo_element[3].buf_func.y"-
~("t.a.fifo_element[3].buf_func._y")->"t.a.fifo_element[3].buf_func.y"+
= "t.a.fifo_element[3].reset_B" "t.a.fifo_element[3].reset_buf.a"
= "t.a.fifo_element[3].supply.vdd" "t.a.fifo_element[3].reset_buf.vdd"
= "t.a.fifo_element[3].supply.vdd" "t.a.fifo_element[3].buf_func.vdd"
= "t.a.fifo_element[3].supply.vdd" "t.a.fifo_element[3].inv_outa.vdd"
= "t.a.fifo_element[3].supply.vdd" "t.a.fifo_element[3].en_ctl.vdd"
= "t.a.fifo_element[3].supply.vdd" "t.a.fifo_element[3].inack_ctl.vdd"
= "t.a.fifo_element[3].supply.vss" "t.a.fifo_element[3].reset_buf.vss"
= "t.a.fifo_element[3].supply.vss" "t.a.fifo_element[3].buf_func.vss"
= "t.a.fifo_element[3].supply.vss" "t.a.fifo_element[3].inv_outa.vss"
= "t.a.fifo_element[3].supply.vss" "t.a.fifo_element[3].en_ctl.vss"
= "t.a.fifo_element[3].supply.vss" "t.a.fifo_element[3].inack_ctl.vss"
= "t.a.fifo_element[3]._reset_BX" "t.a.fifo_element[3].reset_buf.y"
= "t.a.fifo_element[3]._reset_BX" "t.a.fifo_element[3].buf_func.sr_B"
= "t.a.fifo_element[3]._reset_BX" "t.a.fifo_element[3].buf_func.pr_B"
= "t.a.fifo_element[3]._reset_BX" "t.a.fifo_element[3].inack_ctl.sr_B"
= "t.a.fifo_element[3]._reset_BX" "t.a.fifo_element[3].inack_ctl.pr_B"
= "t.a.fifo_element[3]._en" "t.a.fifo_element[3].buf_func.c1"
= "t.a.fifo_element[3]._en" "t.a.fifo_element[3].en_ctl.y"
= "t.a.fifo_element[3]._en" "t.a.fifo_element[3].inack_ctl.c1"
~"t.a.fifo_element[3].en_ctl.p1"&~"t.a.fifo_element[3].en_ctl.c1"->"t.a.fifo_element[3].en_ctl.y"+
"t.a.fifo_element[3].en_ctl.c1"->"t.a.fifo_element[3].en_ctl.y"-
= "t.a.fifo_element[3]._out_a_B" "t.a.fifo_element[3].buf_func.c2"
= "t.a.fifo_element[3]._out_a_B" "t.a.fifo_element[3].inv_outa.y"
= "t.a.fifo_element[3].in.d.d[0]" "t.a.fifo_element[3].in.r"
= "t.a.fifo_element[3].in.a" "t.a.fifo_element[3].en_ctl.c1"
= "t.a.fifo_element[3].in.a" "t.a.fifo_element[3].inack_ctl.y"
= "t.a.fifo_element[3].in.d.d[0]" "t.a.fifo_element[3].buf_func.n1"
= "t.a.fifo_element[3].in.d.d[0]" "t.a.fifo_element[3].inack_ctl.c2"
= "t.a.fifo_element[3].in.d.d[0]" "t.a.fifo_element[3].in.r"
= "t.a.fifo_element[3].out.d.d[0]" "t.a.fifo_element[3].out.r"
= "t.a.fifo_element[3].out.a" "t.a.fifo_element[3].inv_outa.a"
= "t.a.fifo_element[3].out.d.d[0]" "t.a.fifo_element[3].buf_func.y"
= "t.a.fifo_element[3].out.d.d[0]" "t.a.fifo_element[3].en_ctl.p1"
= "t.a.fifo_element[3].out.d.d[0]" "t.a.fifo_element[3].inack_ctl.n1"
= "t.a.fifo_element[3].out.d.d[0]" "t.a.fifo_element[3].out.r"
"t.a.fifo_element[4].reset_buf.a"->"t.a.fifo_element[4].reset_buf._y"-
~("t.a.fifo_element[4].reset_buf.a")->"t.a.fifo_element[4].reset_buf._y"+
"t.a.fifo_element[4].reset_buf._y"->"t.a.fifo_element[4].reset_buf.y"-
~("t.a.fifo_element[4].reset_buf._y")->"t.a.fifo_element[4].reset_buf.y"+
"t.a.fifo_element[4].inv_outa.a"->"t.a.fifo_element[4].inv_outa.y"-
~("t.a.fifo_element[4].inv_outa.a")->"t.a.fifo_element[4].inv_outa.y"+
~"t.a.fifo_element[4].inack_ctl.c1"&~"t.a.fifo_element[4].inack_ctl.c2"|~"t.a.fifo_element[4].inack_ctl.pr_B"->"t.a.fifo_element[4].inack_ctl._y"+
"t.a.fifo_element[4].inack_ctl.c1"&"t.a.fifo_element[4].inack_ctl.c2"&"t.a.fifo_element[4].inack_ctl.n1"&"t.a.fifo_element[4].inack_ctl.sr_B"->"t.a.fifo_element[4].inack_ctl._y"-
"t.a.fifo_element[4].inack_ctl._y"->"t.a.fifo_element[4].inack_ctl.y"-
~("t.a.fifo_element[4].inack_ctl._y")->"t.a.fifo_element[4].inack_ctl.y"+
~"t.a.fifo_element[4].buf_func.c1"&~"t.a.fifo_element[4].buf_func.c2"|~"t.a.fifo_element[4].buf_func.pr_B"->"t.a.fifo_element[4].buf_func._y"+
"t.a.fifo_element[4].buf_func.c1"&"t.a.fifo_element[4].buf_func.c2"&"t.a.fifo_element[4].buf_func.n1"&"t.a.fifo_element[4].buf_func.sr_B"->"t.a.fifo_element[4].buf_func._y"-
"t.a.fifo_element[4].buf_func._y"->"t.a.fifo_element[4].buf_func.y"-
~("t.a.fifo_element[4].buf_func._y")->"t.a.fifo_element[4].buf_func.y"+
= "t.a.fifo_element[4].reset_B" "t.a.fifo_element[4].reset_buf.a"
= "t.a.fifo_element[4].supply.vdd" "t.a.fifo_element[4].reset_buf.vdd"
= "t.a.fifo_element[4].supply.vdd" "t.a.fifo_element[4].buf_func.vdd"
= "t.a.fifo_element[4].supply.vdd" "t.a.fifo_element[4].inv_outa.vdd"
= "t.a.fifo_element[4].supply.vdd" "t.a.fifo_element[4].en_ctl.vdd"
= "t.a.fifo_element[4].supply.vdd" "t.a.fifo_element[4].inack_ctl.vdd"
= "t.a.fifo_element[4].supply.vss" "t.a.fifo_element[4].reset_buf.vss"
= "t.a.fifo_element[4].supply.vss" "t.a.fifo_element[4].buf_func.vss"
= "t.a.fifo_element[4].supply.vss" "t.a.fifo_element[4].inv_outa.vss"
= "t.a.fifo_element[4].supply.vss" "t.a.fifo_element[4].en_ctl.vss"
= "t.a.fifo_element[4].supply.vss" "t.a.fifo_element[4].inack_ctl.vss"
= "t.a.fifo_element[4]._reset_BX" "t.a.fifo_element[4].reset_buf.y"
= "t.a.fifo_element[4]._reset_BX" "t.a.fifo_element[4].buf_func.sr_B"
= "t.a.fifo_element[4]._reset_BX" "t.a.fifo_element[4].buf_func.pr_B"
= "t.a.fifo_element[4]._reset_BX" "t.a.fifo_element[4].inack_ctl.sr_B"
= "t.a.fifo_element[4]._reset_BX" "t.a.fifo_element[4].inack_ctl.pr_B"
= "t.a.fifo_element[4]._en" "t.a.fifo_element[4].buf_func.c1"
= "t.a.fifo_element[4]._en" "t.a.fifo_element[4].en_ctl.y"
= "t.a.fifo_element[4]._en" "t.a.fifo_element[4].inack_ctl.c1"
~"t.a.fifo_element[4].en_ctl.p1"&~"t.a.fifo_element[4].en_ctl.c1"->"t.a.fifo_element[4].en_ctl.y"+
"t.a.fifo_element[4].en_ctl.c1"->"t.a.fifo_element[4].en_ctl.y"-
= "t.a.fifo_element[4]._out_a_B" "t.a.fifo_element[4].buf_func.c2"
= "t.a.fifo_element[4]._out_a_B" "t.a.fifo_element[4].inv_outa.y"
= "t.a.fifo_element[4].in.d.d[0]" "t.a.fifo_element[4].in.r"
= "t.a.fifo_element[4].in.a" "t.a.fifo_element[4].en_ctl.c1"
= "t.a.fifo_element[4].in.a" "t.a.fifo_element[4].inack_ctl.y"
= "t.a.fifo_element[4].in.d.d[0]" "t.a.fifo_element[4].buf_func.n1"
= "t.a.fifo_element[4].in.d.d[0]" "t.a.fifo_element[4].inack_ctl.c2"
= "t.a.fifo_element[4].in.d.d[0]" "t.a.fifo_element[4].in.r"
= "t.a.fifo_element[4].out.d.d[0]" "t.a.fifo_element[4].out.r"
= "t.a.fifo_element[4].out.a" "t.a.fifo_element[4].inv_outa.a"
= "t.a.fifo_element[4].out.d.d[0]" "t.a.fifo_element[4].buf_func.y"
= "t.a.fifo_element[4].out.d.d[0]" "t.a.fifo_element[4].en_ctl.p1"
= "t.a.fifo_element[4].out.d.d[0]" "t.a.fifo_element[4].inack_ctl.n1"
= "t.a.fifo_element[4].out.d.d[0]" "t.a.fifo_element[4].out.r"
= "t.a.fifo_element[4].in.a" "t.a.fifo_element[3].out.a"
= "t.a.fifo_element[4].in.d.d[0]" "t.a.fifo_element[3].out.r"
= "t.a.fifo_element[4].in.d.d[0]" "t.a.fifo_element[3].out.d.d[0]"
= "t.a.fifo_element[4].in.d.d[0]" "t.a.fifo_element[4].in.r"
= "t.a.fifo_element[3].in.a" "t.a.fifo_element[2].out.a"
= "t.a.fifo_element[3].in.d.d[0]" "t.a.fifo_element[2].out.r"
= "t.a.fifo_element[3].in.d.d[0]" "t.a.fifo_element[2].out.d.d[0]"
= "t.a.fifo_element[3].in.d.d[0]" "t.a.fifo_element[3].in.r"
= "t.a.fifo_element[2].in.a" "t.a.fifo_element[1].out.a"
= "t.a.fifo_element[2].in.d.d[0]" "t.a.fifo_element[1].out.r"
= "t.a.fifo_element[2].in.d.d[0]" "t.a.fifo_element[1].out.d.d[0]"
= "t.a.fifo_element[2].in.d.d[0]" "t.a.fifo_element[2].in.r"
= "t.a.fifo_element[1].in.a" "t.a.fifo_element[0].out.a"
= "t.a.fifo_element[1].in.d.d[0]" "t.a.fifo_element[0].out.r"
= "t.a.fifo_element[1].in.d.d[0]" "t.a.fifo_element[0].out.d.d[0]"
= "t.a.fifo_element[1].in.d.d[0]" "t.a.fifo_element[1].in.r"
= "t.a._reset_BXX[0]" "t.a.reset_bufarray.out[0]"
= "t.a._reset_BXX[1]" "t.a.reset_bufarray.out[1]"
= "t.a._reset_BXX[2]" "t.a.reset_bufarray.out[2]"
= "t.a._reset_BXX[3]" "t.a.reset_bufarray.out[3]"
= "t.a._reset_BXX[4]" "t.a.reset_bufarray.out[4]"
= "t.a._reset_BXX[4]" "t.a.fifo_element[3].reset_B"
= "t.a._reset_BXX[4]" "t.a._reset_BXX[3]"
= "t.a._reset_BXX[4]" "t.a.fifo_element[2].reset_B"
= "t.a._reset_BXX[4]" "t.a._reset_BXX[2]"
= "t.a._reset_BXX[4]" "t.a.fifo_element[1].reset_B"
= "t.a._reset_BXX[4]" "t.a._reset_BXX[1]"
= "t.a._reset_BXX[4]" "t.a.fifo_element[0].reset_B"
= "t.a._reset_BXX[4]" "t.a._reset_BXX[0]"
= "t.a._reset_BXX[4]" "t.a.fifo_element[4].reset_B"
= "t.a.in.d.d[0]" "t.a.in.r"
= "t.a.in.a" "t.a.fifo_element[0].in.a"
= "t.a.in.d.d[0]" "t.a.fifo_element[0].in.r"
= "t.a.in.d.d[0]" "t.a.fifo_element[0].in.d.d[0]"
= "t.a.in.d.d[0]" "t.a.in.r"
= "t.a.out.d.d[0]" "t.a.out.r"
= "t.a.out.a" "t.a.fifo_element[4].out.a"
= "t.a.out.d.d[0]" "t.a.fifo_element[4].out.r"
= "t.a.out.d.d[0]" "t.a.fifo_element[4].out.d.d[0]"
= "t.a.out.d.d[0]" "t.a.out.r"
= "Reset" "t.a.reset_B"
= "Vdd" "t.a.supply.vdd"
= "GND" "t.a.supply.vss"
= "t.out.d.d[0]" "t.out.r"
= "t.out.r" "t.a.out.r"
= "t.out.a" "t.a.out.a"
= "t.out.d.d[0]" "t.a.out.d.d[0]"
= "t.out.d.d[0]" "t.out.r"
= "t.in.d.d[0]" "t.in.r"
= "t.in.r" "t.a.in.r"
= "t.in.a" "t.a.in.a"
= "t.in.d.d[0]" "t.a.in.d.d[0]"
= "t.in.d.d[0]" "t.in.r"

View File

@ -0,0 +1,43 @@
/*************************************************************************
*
* This file is part of ACT dataflow neuro library.
* It's the testing facility for cell_lib_std.act
*
* Copyright (c) 2022 University of Groningen - Ole Richter
* Copyright (c) 2022 University of Groningen - Hugh Greatorex
* Copyright (c) 2022 University of Groningen - Michele Mastella
* Copyright (c) 2022 University of Groningen - Madison Cotteret
*
* This source describes Open Hardware and is licensed under the CERN-OHL-W v2 or later
*
* You may redistribute and modify this documentation and make products
* using it under the terms of the CERN-OHL-W v2 (https:/cern.ch/cern-ohl).
* This documentation is distributed WITHOUT ANY EXPRESS OR IMPLIED
* WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY
* AND FITNESS FOR A PARTICULAR PURPOSE. Please see the CERN-OHL-W v2
* for applicable conditions.
*
* Source location: https://git.web.rug.nl/bics/actlib_dataflow_neuro
*
* As per CERN-OHL-W v2 section 4.1, should You produce hardware based on
* these sources, You must maintain the Source Location visible in its
* documentation.
*
**************************************************************************
*/
import "../../dataflow_neuro/primitives.act";
import globals;
open tmpl::dataflow_neuro;
defproc fifo_t_5(a1of1 in; a1of1 out)
{
fifo_t<5> a(.in = in, .out = out);
a.supply.vdd = Vdd;
a.supply.vss = GND;
a.reset_B = Reset;
}
fifo_t_5 t;

View File

@ -0,0 +1,55 @@
watchall
system "echo '[] code starts'"
set t.in.r 0
set t.out.a 0
cycle
system "echo '[] set Reset(B) low'"
set Reset 0
cycle
status X
mode run
system "echo '[] set Reset(B) high'"
set Reset 1
cycle
system "echo '[0] reset done, r up'"
set t.in.r 1
cycle
system "echo [0] r down"
set t.in.r 0
cycle
system "echo '[1] r up'"
set t.in.r 1
cycle
system "echo [1] r down"
set t.in.r 0
cycle
system "echo '[2] r up'"
set t.in.r 1
cycle
system "echo [2] r down"
set t.in.r 0
cycle
system "echo '[3] r up'"
set t.in.r 1
cycle
system "echo [3] r down"
set t.in.r 0
cycle
system "echo '[4] r up'"
set t.in.r 1
cycle
system "echo [4] r down"
set t.in.r 0
cycle
system "echo '[5] r up'"
set t.in.r 1
cycle
system "echo [5] r down"
set t.in.r 0
cycle
system "echo '[6] r up'"
set t.in.r 1
cycle
system "echo [6] r down"
set t.in.r 0
cycle