merge wrote, still need to test it
This commit is contained in:
parent
c96a154833
commit
2678dfc1e1
50
test/unit_tests/merge_t_7/run/prsim.out
Normal file
50
test/unit_tests/merge_t_7/run/prsim.out
Normal file
@ -0,0 +1,50 @@
|
||||
my_merge.my_merge._out_temp.a my_merge.my_merge.buf_out_a.buf6._y my_merge.my_merge._out_a_X[0] my_merge.my_merge.vc1.myctree.tmp[8] my_merge.my_merge.merge_func_f[5].n2 my_merge.my_merge.vc1.myctree.tmp[9] my_merge.my_merge.merge_func_t[4].n2 my_merge.my_merge.validity_arb._y1_arb my_merge.my_merge.vc2.myctree.tmp[7] my_merge.my_merge._en my_merge.my_merge.vc1.myctree.tmp[7] my_merge.my_merge.vc1.OR2_tf[5].y my_merge.my_merge.vc1.OR2_tf[4].y my_merge.my_merge._in1_arb my_merge.my_merge.vc1.OR2_tf[3].y my_merge.my_merge.merge_func_f[4].n2 my_merge.my_merge.AND_arb2._y my_merge.my_merge.merge_func_t[4].n4 my_merge.my_merge.merge_func_f[2].n4 my_merge.my_merge.vc2.myctree.tmp[8] my_merge.my_merge._in1_arb2function_X[0] my_merge.my_merge.vc2.OR2_tf[0].y my_merge.my_merge._in2_arb2function_X[0] my_merge.my_merge.merge_func_f[0].n2 my_merge.my_merge.merge_func_t[0].n4 my_merge.my_merge.vc2.OR2_tf[6]._y my_merge.my_merge.merge_func_f[2].n2 my_merge.in1.v my_merge.my_merge.merge_func_t[1].n4 my_merge.out.v my_merge.my_merge.merge_func_t[1].n2 my_merge.my_merge.merge_func_t[2].n4 my_merge.my_merge.merge_func_t[5].n2 my_merge.my_merge.vc2.OR2_tf[1].y my_merge.my_merge.merge_func_t[3].n4 my_merge.my_merge.merge_func_f[5].n4 my_merge.my_merge.vc2.OR2_tf[6].y my_merge.my_merge.merge_func_f[1].n4 my_merge.my_merge.merge_func_f[3].n4 my_merge.my_merge._in2_arb2function my_merge.my_merge.vc2.OR2_tf[5].y my_merge.my_merge.merge_func_f[4].n4 my_merge.my_merge.merge_func_t[6].n2 my_merge.my_merge._in2_temp.a my_merge.my_merge.merge_func_f[6].n4 my_merge.my_merge.merge_func_f[1].n2 my_merge.my_merge.merge_func_t[6].n4 my_merge.my_merge.vc2.OR2_tf[3].y my_merge.my_merge.merge_func_f[0].n4 my_merge.in2.v my_merge.my_merge.merge_func_t[0].n2 my_merge.my_merge.merge_func_t[3].n2 my_merge.my_merge.merge_func_f[3].n2 my_merge.my_merge.vc1.myctree.C2Els[1]._y my_merge.my_merge.vc1.OR2_tf[2].y my_merge.my_merge.merge_func_f[6].n2 my_merge.my_merge.vc1.OR2_tf[0].y my_merge.my_merge._in1_arb2function my_merge.my_merge.vc1.OR2_tf[4]._y my_merge.my_merge.vc2.OR2_tf[2].y my_merge.my_merge.en_ctl.n2 my_merge.my_merge.validity_arb.arbiter._y1 my_merge.my_merge.merge_func_t[2].n2 my_merge.my_merge.vc1.myctree.C3Els[0]._y my_merge.my_merge.validity_arb._y2_arb my_merge.my_merge.vc1.OR2_tf[3]._y my_merge.my_merge.vc1.OR2_tf[6].y my_merge.my_merge.vc2.OR2_tf[3]._y my_merge.out.a my_merge.my_merge.vc1.myctree.C3Els[1]._y my_merge.my_merge.vc2.myctree.C3Els[0]._y my_merge.my_merge.merge_func_t[5].n4 my_merge.my_merge.vc1.OR2_tf[6]._y my_merge.my_merge.arb2function1.buf4._y my_merge.my_merge.vc2.myctree.tmp[9] my_merge.my_merge.vc1.OR2_tf[1]._y my_merge.my_merge.vc1.OR2_tf[1].y my_merge.my_merge.validity_arb.arbiter._y2 my_merge.my_merge.vc1.OR2_tf[2]._y my_merge.my_merge.AND_arb1._y my_merge.my_merge.vc1.OR2_tf[5]._y my_merge.my_merge.vc2.OR2_tf[4].y my_merge.my_merge.vc1.OR2_tf[0]._y my_merge.my_merge.validity_arb.ack_cell2._y my_merge.my_merge.vc2.OR2_tf[5]._y my_merge.my_merge.vc2.OR2_tf[0]._y my_merge.my_merge.validity_arb.ack_cell1._y my_merge.my_merge.vc2.OR2_tf[4]._y my_merge.my_merge.arb2function2.buf4._y my_merge.my_merge.vc2.myctree.C2Els[1]._y my_merge.my_merge.vc2.OR2_tf[1]._y my_merge.my_merge.vc1.myctree.C2Els[0]._y my_merge.my_merge.vc2.OR2_tf[2]._y my_merge.my_merge.validity_arb.or_cell._y my_merge.my_merge.vc2.myctree.C3Els[1]._y my_merge.my_merge.vc2.myctree.C2Els[0]._y
|
||||
Node `my_fork.in.d.d[0].f' not found
|
||||
Node `my_fork.out1.a' not found
|
||||
Node `my_fork.out1.v' not found
|
||||
Node `my_fork.out2.a' not found
|
||||
Node `my_fork.out2.v' not found
|
||||
System initialized
|
||||
83042 Reset : 0
|
||||
119973 my_merge._reset_B : 1 [by Reset:=0]
|
||||
120028 my_merge.my_merge.reset_buf._y : 0 [by my_merge._reset_B:=1]
|
||||
171681 my_merge.my_merge._reset_BX : 1 [by my_merge.my_merge.reset_buf._y:=0]
|
||||
185530 my_merge.my_merge.in1ack_ctl._y : X [by my_merge.my_merge._reset_BX:=1]
|
||||
196493 my_merge.my_merge.in2ack_ctl._y : X [by my_merge.my_merge._reset_BX:=1]
|
||||
196915 my_merge.in2.a : X [by my_merge.my_merge.in2ack_ctl._y:=X]
|
||||
199873 my_merge.in1.a : X [by my_merge.my_merge.in1ack_ctl._y:=X]
|
||||
199874 my_merge.my_merge._in1_a_B : X [by my_merge.in1.a:=X]
|
||||
201461 my_merge.my_merge.reset_bufarray.buf4._y : 0 [by my_merge.my_merge._reset_BX:=1]
|
||||
201462 my_merge.my_merge._reset_BXX[0] : 1 [by my_merge.my_merge.reset_bufarray.buf4._y:=0]
|
||||
201465 my_merge.my_merge.merge_func_f[3].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
201480 my_merge.my_merge.merge_func_t[4].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
201744 my_merge.my_merge.merge_func_f[5].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
202013 my_merge.my_merge.merge_func_f[1].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
202230 my_merge.my_merge.merge_func_f[4].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
202416 my_merge.my_merge.merge_func_t[0].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
202444 my_merge.my_merge.merge_func_t[3].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
202533 my_merge.my_merge.merge_func_f[0].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
202543 my_merge.my_merge.merge_func_t[1].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
205465 my_merge.my_merge.merge_func_t[6].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
205475 my_merge.my_merge.merge_func_t[5].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
221667 my_merge.my_merge.merge_func_f[6].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
223903 my_merge.my_merge.merge_func_f[2].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
245629 my_merge.my_merge._in2_a_B : X [by my_merge.in2.a:=X]
|
||||
255932 my_merge.my_merge.merge_func_t[2].y : X [by my_merge.my_merge._reset_BXX[0]:=1]
|
||||
System reset completed
|
||||
my_merge.my_merge.merge_func_f[0].y my_merge.my_merge._out_temp.a my_merge.my_merge.buf_out_a.buf6._y my_merge.my_merge._out_a_X[0] my_merge.my_merge._in2_a_B my_merge.my_merge.vc1.myctree.tmp[8] my_merge.my_merge.merge_func_f[5].n2 my_merge.my_merge.vc1.myctree.tmp[9] my_merge.my_merge.merge_func_t[4].n2 my_merge.my_merge.validity_arb._y1_arb my_merge.my_merge.vc2.myctree.tmp[7] my_merge.my_merge._en my_merge.my_merge.vc1.myctree.tmp[7] my_merge.in1.a my_merge.my_merge.vc1.OR2_tf[5].y my_merge.my_merge.merge_func_t[3].y my_merge.my_merge.vc1.OR2_tf[4].y my_merge.my_merge._in1_arb my_merge.my_merge.vc1.OR2_tf[3].y my_merge.my_merge.merge_func_t[5].y my_merge.my_merge.merge_func_f[4].n2 my_merge.my_merge.AND_arb2._y my_merge.my_merge.merge_func_t[4].n4 my_merge.my_merge.merge_func_f[2].n4 my_merge.my_merge.vc2.myctree.tmp[8] my_merge.my_merge._in1_arb2function_X[0] my_merge.my_merge.vc2.OR2_tf[0].y my_merge.my_merge._in2_arb2function_X[0] my_merge.my_merge.merge_func_f[0].n2 my_merge.my_merge.merge_func_t[0].n4 my_merge.my_merge.vc2.OR2_tf[6]._y my_merge.my_merge.merge_func_f[5].y my_merge.my_merge.merge_func_f[2].n2 my_merge.in1.v my_merge.my_merge.merge_func_t[1].n4 my_merge.out.v my_merge.my_merge.merge_func_t[1].n2 my_merge.my_merge.merge_func_t[2].n4 my_merge.my_merge.merge_func_t[5].n2 my_merge.my_merge.vc2.OR2_tf[1].y my_merge.my_merge.merge_func_f[1].y my_merge.my_merge.merge_func_t[3].n4 my_merge.my_merge.merge_func_f[4].y my_merge.my_merge._in1_a_B my_merge.my_merge.merge_func_t[0].y my_merge.my_merge.merge_func_t[1].y my_merge.my_merge.merge_func_f[5].n4 my_merge.my_merge.vc2.OR2_tf[6].y my_merge.my_merge.merge_func_f[1].n4 my_merge.my_merge.merge_func_f[3].n4 my_merge.my_merge._in2_arb2function my_merge.my_merge.merge_func_t[4].y my_merge.my_merge.vc2.OR2_tf[5].y my_merge.my_merge.merge_func_f[6].y my_merge.my_merge.merge_func_f[4].n4 my_merge.my_merge.merge_func_t[6].n2 my_merge.my_merge._in2_temp.a my_merge.my_merge.merge_func_f[6].n4 my_merge.my_merge.merge_func_f[3].y my_merge.my_merge.merge_func_f[1].n2 my_merge.my_merge.merge_func_t[6].n4 my_merge.my_merge.vc2.OR2_tf[3].y my_merge.my_merge.merge_func_f[0].n4 my_merge.in2.v my_merge.my_merge.merge_func_t[0].n2 my_merge.my_merge.merge_func_t[3].n2 my_merge.my_merge.merge_func_f[3].n2 my_merge.my_merge.vc1.myctree.C2Els[1]._y my_merge.my_merge.vc1.OR2_tf[2].y my_merge.my_merge.merge_func_f[6].n2 my_merge.my_merge.vc1.OR2_tf[0].y my_merge.my_merge._in1_arb2function my_merge.my_merge.vc1.OR2_tf[4]._y my_merge.my_merge.vc2.OR2_tf[2].y my_merge.my_merge.merge_func_t[6].y my_merge.my_merge.en_ctl.n2 my_merge.my_merge.merge_func_f[2].y my_merge.my_merge.validity_arb.arbiter._y1 my_merge.in2.a my_merge.my_merge.merge_func_t[2].n2 my_merge.my_merge.in2ack_ctl._y my_merge.my_merge.vc1.myctree.C3Els[0]._y my_merge.my_merge.validity_arb._y2_arb my_merge.my_merge.vc1.OR2_tf[3]._y my_merge.my_merge.vc1.OR2_tf[6].y my_merge.my_merge.in1ack_ctl._y my_merge.my_merge.vc2.OR2_tf[3]._y my_merge.out.a my_merge.my_merge.vc1.myctree.C3Els[1]._y my_merge.my_merge.vc2.myctree.C3Els[0]._y my_merge.my_merge.merge_func_t[5].n4 my_merge.my_merge.vc1.OR2_tf[6]._y my_merge.my_merge.arb2function1.buf4._y my_merge.my_merge.vc2.myctree.tmp[9] my_merge.my_merge.vc1.OR2_tf[1]._y my_merge.my_merge.merge_func_t[2].y my_merge.my_merge.vc1.OR2_tf[1].y my_merge.my_merge.validity_arb.arbiter._y2 my_merge.my_merge.vc1.OR2_tf[2]._y my_merge.my_merge.AND_arb1._y my_merge.my_merge.vc1.OR2_tf[5]._y my_merge.my_merge.vc2.OR2_tf[4].y my_merge.my_merge.vc1.OR2_tf[0]._y my_merge.my_merge.validity_arb.ack_cell2._y my_merge.my_merge.vc2.OR2_tf[5]._y my_merge.my_merge.vc2.OR2_tf[0]._y my_merge.my_merge.validity_arb.ack_cell1._y my_merge.my_merge.vc2.OR2_tf[4]._y my_merge.my_merge.arb2function2.buf4._y my_merge.my_merge.vc2.myctree.C2Els[1]._y my_merge.my_merge.vc2.OR2_tf[1]._y my_merge.my_merge.vc1.myctree.C2Els[0]._y my_merge.my_merge.vc2.OR2_tf[2]._y my_merge.my_merge.validity_arb.or_cell._y my_merge.my_merge.vc2.myctree.C3Els[1]._y my_merge.my_merge.vc2.myctree.C2Els[0]._y
|
||||
Node `my_fork.out1.d.d[0].f' not found
|
||||
Node `my_fork.out2.d.d[0].f' not found
|
||||
Output neutral checked
|
||||
Node `my_fork.in.d.d[0].f' not found
|
||||
Node `my_fork.in.v' not found
|
||||
Node `my_fork.in.a' not found
|
||||
Node `my_fork.out1.d.d[0].f' not found
|
||||
Node `my_fork.out2.d.d[0].f' not found
|
||||
Node `my_fork.out1.v' not found
|
||||
Node `my_fork.out2.v' not found
|
||||
Node `my_fork.in.a' not found
|
||||
Node `my_fork.in.d.d[0].f' not found
|
||||
Finished
|
||||
Node `my_fork.out1.a' not found
|
||||
Node `my_fork.out1.a' not found
|
1335
test/unit_tests/merge_t_7/run/test.prs
Normal file
1335
test/unit_tests/merge_t_7/run/test.prs
Normal file
File diff suppressed because it is too large
Load Diff
49
test/unit_tests/merge_t_7/test.act
Normal file
49
test/unit_tests/merge_t_7/test.act
Normal file
@ -0,0 +1,49 @@
|
||||
/*************************************************************************
|
||||
*
|
||||
* 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 merge_7 (avMx1of2<7> in1; avMx1of2<7> in2; avMx1of2<7> out; avMx1of2<1> cond){
|
||||
|
||||
merge<7> my_merge(.in1=in1, .in2=in2,.out = out);
|
||||
//Low active Reset
|
||||
bool _reset_B;
|
||||
prs {
|
||||
Reset => _reset_B-
|
||||
}
|
||||
my_merge.supply.vss = GND;
|
||||
my_merge.supply.vdd = Vdd;
|
||||
my_merge.reset_B = _reset_B;
|
||||
|
||||
}
|
||||
|
||||
merge_7 my_merge;
|
35
test/unit_tests/merge_t_7/test.prsim
Normal file
35
test/unit_tests/merge_t_7/test.prsim
Normal file
@ -0,0 +1,35 @@
|
||||
watchall
|
||||
set-qdi-channel-neutral "my_fork.in" 15
|
||||
set my_fork.out1.a 0
|
||||
set my_fork.out1.v 0
|
||||
set my_fork.out2.a 0
|
||||
set my_fork.out2.v 0
|
||||
cycle
|
||||
system "echo 'System initialized'"
|
||||
|
||||
set Reset 0
|
||||
cycle
|
||||
system "echo 'System reset completed'"
|
||||
status X
|
||||
mode run
|
||||
|
||||
assert-qdi-channel-neutral "my_fork.out1" 15
|
||||
assert-qdi-channel-neutral "my_fork.out2" 15
|
||||
cycle
|
||||
system "echo 'Output neutral checked'"
|
||||
|
||||
set-qdi-channel-valid "my_fork.in" 15 5
|
||||
cycle
|
||||
assert my_fork.in.v 1
|
||||
assert my_fork.in.a 0
|
||||
assert-qdi-channel-valid "my_fork.out1" 15 5
|
||||
assert-qdi-channel-valid "my_fork.out2" 15 5
|
||||
set my_fork.out1.v 1
|
||||
set my_fork.out2.v 1
|
||||
cycle
|
||||
assert my_fork.in.a 1
|
||||
set-qdi-channel-neutral "my_fork.in" 15
|
||||
cycle
|
||||
set my_fork.out1.a 1
|
||||
set my_fork.out1.a 1
|
||||
system "echo 'Finished'"
|
Loading…
Reference in New Issue
Block a user