merge wrote, still need to test it
This commit is contained in:
parent
c96a154833
commit
2678dfc1e1
|
@ -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
|
File diff suppressed because it is too large
Load Diff
|
@ -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;
|
|
@ -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