From 73ae3b0f1958f3663228fe2937c6abaf8d33015e Mon Sep 17 00:00:00 2001 From: alexmadison Date: Mon, 28 Feb 2022 13:57:28 +0100 Subject: [PATCH 1/3] added assert plots --- test/prsim_plot.py | 45 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/test/prsim_plot.py b/test/prsim_plot.py index bb53ce8..dad63e3 100755 --- a/test/prsim_plot.py +++ b/test/prsim_plot.py @@ -82,6 +82,20 @@ Use -exclude='regex' to specify signals to exclude (or -ex).""") if exclude_given: 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!" # Get list of all sigs and times @@ -130,7 +144,7 @@ Use -exclude='regex' to specify signals to exclude (or -ex).""") # Generate figure # 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[signals_matrix == 0] = colour_undefined @@ -173,18 +187,37 @@ Use -exclude='regex' to specify signals to exclude (or -ex).""") else: s1 = s0 - - arrow_c = "black" if by_val == 1 else "grey" 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: - 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.scatter((t0),(s0), c = "black", s = 30) + 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.scatter((t0),(s0), c = "black", s = 40) # Write times on x axis for time in unique_times: 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]) + 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]) + 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" for arg in argv: if arg == "-png": output_type = ".png" From 94109bb1573d210f4aae0146dd74f73f6b5470b3 Mon Sep 17 00:00:00 2001 From: alexmadison Date: Mon, 28 Feb 2022 15:44:24 +0100 Subject: [PATCH 2/3] plotting in ex bugs --- test/prsim_plot.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/test/prsim_plot.py b/test/prsim_plot.py index dad63e3..3064344 100755 --- a/test/prsim_plot.py +++ b/test/prsim_plot.py @@ -117,6 +117,7 @@ Use -exclude='regex' to specify signals to exclude (or -ex).""") ''' 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)) return out[0][0] @@ -125,6 +126,7 @@ Use -exclude='regex' to specify signals to exclude (or -ex).""") Handles signal name ordering. Assume ordered like unique_sigs for now ''' + if not (sig in unique_sigs): return None out = np.argwhere(unique_sigs == sig) return out[0][0] @@ -205,14 +207,18 @@ Use -exclude='regex' to specify signals to exclude (or -ex).""") 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) + 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) From 225d481ae12af2c15938136e12bd8f892fe683ee Mon Sep 17 00:00:00 2001 From: alexmadison Date: Mon, 28 Feb 2022 15:52:20 +0100 Subject: [PATCH 3/3] fifo t 5 unit tests checked --- test/unit_tests/fifo_t_5/run/prsim.out | 250 +++++++++++++++++++ test/unit_tests/fifo_t_5/run/prsim.pdf | Bin 0 -> 24329 bytes test/unit_tests/fifo_t_5/run/test.prs | 332 +++++++++++++++++++++++++ test/unit_tests/fifo_t_5/test.act | 43 ++++ test/unit_tests/fifo_t_5/test.prsim | 55 ++++ 5 files changed, 680 insertions(+) create mode 100644 test/unit_tests/fifo_t_5/run/prsim.out create mode 100644 test/unit_tests/fifo_t_5/run/prsim.pdf create mode 100644 test/unit_tests/fifo_t_5/run/test.prs create mode 100644 test/unit_tests/fifo_t_5/test.act create mode 100644 test/unit_tests/fifo_t_5/test.prsim diff --git a/test/unit_tests/fifo_t_5/run/prsim.out b/test/unit_tests/fifo_t_5/run/prsim.out new file mode 100644 index 0000000..7e41710 --- /dev/null +++ b/test/unit_tests/fifo_t_5/run/prsim.out @@ -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 diff --git a/test/unit_tests/fifo_t_5/run/prsim.pdf b/test/unit_tests/fifo_t_5/run/prsim.pdf new file mode 100644 index 0000000000000000000000000000000000000000..eeacfd83614762af66cee7727f4358905a92cf11 GIT binary patch literal 24329 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"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" diff --git a/test/unit_tests/fifo_t_5/test.act b/test/unit_tests/fifo_t_5/test.act new file mode 100644 index 0000000..e9da91a --- /dev/null +++ b/test/unit_tests/fifo_t_5/test.act @@ -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; \ No newline at end of file diff --git a/test/unit_tests/fifo_t_5/test.prsim b/test/unit_tests/fifo_t_5/test.prsim new file mode 100644 index 0000000..4cfaa5c --- /dev/null +++ b/test/unit_tests/fifo_t_5/test.prsim @@ -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 \ No newline at end of file