merge wrote, still need to test it

This commit is contained in:
Michele 2022-02-28 18:54:52 +01:00
parent c96a154833
commit 2678dfc1e1
4 changed files with 1469 additions and 0 deletions

View 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

File diff suppressed because it is too large Load Diff

View 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;

View 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'"