prepared things for having unit test ready

This commit is contained in:
2022-02-21 13:01:45 +01:00
parent 6dc79383da
commit ca0e5df048
16 changed files with 216 additions and 64 deletions

View File

@ -19,10 +19,10 @@
#
# -----------------------------------------------------------------------------
TARGETACT=__all__.act stdcells.act acells.act primitives.act
TARGETACT=__all__.act cell_lib_std.act cell_lib_async.act primitives.act
SUBDIRS=
# template because its a template based appoach no syntesis so it would be wrong in syn
TARGETACTSUBDIR=template/dataflow_neuro
TARGETACTSUBDIR=tmpl/dataflow_neuro
include $(ACT_HOME)/scripts/Makefile.std

View File

@ -22,6 +22,6 @@
**************************************************************************
*/
import template::dataflow_neuro::cell_lib_std;
import template::dataflow_neuro::cell_lib_async;
import template::dataflow_neuro::primitives;
import tmpl::dataflow_neuro::cell_lib_std;
import tmpl::dataflow_neuro::cell_lib_async;
import tmpl::dataflow_neuro::primitives;

View File

@ -24,9 +24,9 @@
**************************************************************************
*/
namespace async_template {
export defcell A_1C1P2N_RB_X1 (bool! y; bool? c1,p1,n1,n2,pr_B, sr_B, vdd, vss) {
namespace tmpl {
namespace dataflow_neuro{
export defcell A_1C1P2N_RB_X1 (bool! y; bool? c1,p1,n1,n2,pr_B, sr_B; bool vdd, vss) {
bool _y;
prs{
(~p1 & ~c1)|~pr_B -> _y+
@ -41,7 +41,7 @@ namespace async_template {
}
}
export defcell A_1C1P2N_R_X1 (bool! y; bool? c1,p1,n1,n2,pr_B, sr_B, vdd, vss) {
export defcell A_1C1P2N_R_X1 (bool! y; bool? c1,p1,n1,n2,pr_B, sr_B; bool vdd, vss) {
prs{
(~p1 & ~c1)|~pr_B -> y-
c1 & n1 & n2 & sr_B -> y+
@ -54,7 +54,7 @@ namespace async_template {
}
export defcell A_1C1P_1N_X1 (bool! y; bool? c1, p1, n1, vdd, vss)
export defcell A_1C1P_1N_X1 (bool! y; bool? c1, p1, n1; bool vdd, vss)
{
prs{
~p1 & ~c1 -> y+
@ -65,7 +65,7 @@ namespace async_template {
y {-1}}
}
export defcell A_1C1P_B (bool! y; bool? c1, p1, vdd, vss)
export defcell A_1C1P_B (bool! y; bool? c1, p1; bool vdd, vss)
{
bool _y;
prs{
@ -79,7 +79,7 @@ namespace async_template {
}
export defcell A_1C1P (bool! y; bool? c1, p1, vdd, vss)
export defcell A_1C1P (bool! y; bool? c1, p1; bool vdd, vss)
{
prs{
~p1 & ~c1 -> y+
@ -90,7 +90,7 @@ namespace async_template {
y {-1}}
}
export defcell A_1C2P1N_X1 (bool! y; bool? c1, p1, p2, n1, vdd, vss)
export defcell A_1C2P1N_X1 (bool! y; bool? c1, p1, p2, n1; bool vdd, vss)
{
prs{
~p1 & ~p2 & ~c1 -> y+
@ -101,7 +101,7 @@ namespace async_template {
y {-1}}
}
export defcell A_1C2P_B_X1 (bool! y; bool? c1, p1, p2, vdd, vss)
export defcell A_1C2P_B_X1 (bool! y; bool? c1, p1, p2; bool vdd, vss)
{
bool _y;
prs{
@ -115,7 +115,7 @@ namespace async_template {
}
export defcell A_1C2P (bool! y; bool? c1, p1, p2, vdd, vss)
export defcell A_1C2P (bool! y; bool? c1, p1, p2; bool vdd, vss)
{
prs{
~p1 & ~p2 & ~c1 -> y+
@ -126,7 +126,7 @@ namespace async_template {
y {-1}}
}
export defcell A_1C3P2P2N_R_X1 (bool! y; bool? c1, p1, p2, p3, p4, p5, n1, n2, pr_B, sr_B, vdd, vss)
export defcell A_1C3P2P2N_R_X1 (bool! y; bool? c1, p1, p2, p3, p4, p5, n1, n2, pr_B, sr_B; bool vdd, vss)
{
prs{
(~p1 & ~p2 & ~p3 & ~c1)|(~p4&~p5&~c1)|~pr_B -> y+
@ -137,7 +137,7 @@ namespace async_template {
y {-1}}
}
export defcell A_2C2N2N_RB_X1 (bool ! y; bool? c1, c2, n1, n2, n3, n4, pr_B, sr_B; bool? vdd, vss)
export defcell A_2C2N2N_RB_X1 (bool ! y; bool? c1, c2, n1, n2, n3, n4, pr_B, sr_B; bool vdd, vss)
{
bool _y;
prs{
@ -151,7 +151,7 @@ namespace async_template {
y {-1}; _y{-1}}
}
export defcell A_2C2N2N_RB_X2 (bool ! y; bool? c1, c2, n1, n2, n3, n4, pr_B, sr_B; bool? vdd, vss)
export defcell A_2C2N2N_RB_X2 (bool ! y; bool? c1, c2, n1, n2, n3, n4, pr_B, sr_B; bool vdd, vss)
{
bool _y;
prs{
@ -439,7 +439,7 @@ namespace async_template {
p_n_mode <- 1;
y {-1}}
}
}
}}

View File

@ -26,35 +26,35 @@
*/
import "cell_lib_async.act";
async_template::A_1C1P2N_RB_X1 cell1;
async_template::A_1C1P2N_R_X1 cell2;
async_template::A_1C1P_1N_X1 cell3;
async_template::A_1C1P_B cell4;
async_template::A_1C1P cell5;
async_template::A_1C2P1N_X1 cell6;
async_template::A_1C2P_B_X1 cell7;
async_template::A_1C2P cell8;
async_template::A_1C3P2P2N_R_X1 cell9;
async_template::A_2C2N2N_RB_X1 cell10;
async_template::A_2C2N2N_RB_X2 cell11;
async_template::A_2C2N2N_RB_X4 cell12;
async_template::A_2C2N2N_R_X1 cell13;
async_template::A_2C2N_R_B_X2 cell14;
async_template::A_2C2N_R_B_X4 cell15;
async_template::A_2C2N_R_X1 cell16;
async_template::A_2C_B_X1 cell17;
async_template::A_2C_RB_X1 cell18;
async_template::A_2C_R_X1 cell19;
async_template::A_2C_X1 cell20;
async_template::A_3C_RB_X1 cell21;
async_template::A_3C_RB_X2 cell22;
async_template::A_3C_RB_X4 cell23;
async_template::A_3C_R_X1 cell24;
async_template::A_3C_X1 cell25;
async_template::A_4C_RB_X1 cell26;
async_template::A_4C_RB_X2 cell27;
async_template::A_4C_RB_X4 cell28;
async_template::A_4C_R_X1 cell29;
async_template::A_4P1N1N_B_X1 cell30;
async_template::A_4P1N1N_X1 cell31;
open tmpl::dataflow_neuro;
A_1C1P2N_RB_X1 cell1;
A_1C1P2N_R_X1 cell2;
A_1C1P_1N_X1 cell3;
A_1C1P_B cell4;
A_1C1P cell5;
A_1C2P1N_X1 cell6;
A_1C2P_B_X1 cell7;
A_1C2P cell8;
A_1C3P2P2N_R_X1 cell9;
A_2C2N2N_RB_X1 cell10;
A_2C2N2N_RB_X2 cell11;
A_2C2N2N_RB_X4 cell12;
A_2C2N2N_R_X1 cell13;
A_2C2N_R_B_X2 cell14;
A_2C2N_R_B_X4 cell15;
A_2C2N_R_X1 cell16;
A_2C_B_X1 cell17;
A_2C_RB_X1 cell18;
A_2C_R_X1 cell19;
A_2C_X1 cell20;
A_3C_RB_X1 cell21;
A_3C_RB_X2 cell22;
A_3C_RB_X4 cell23;
A_3C_R_X1 cell24;
A_3C_X1 cell25;
A_4C_RB_X1 cell26;
A_4C_RB_X2 cell27;
A_4C_RB_X4 cell28;
A_4C_R_X1 cell29;
A_4P1N1N_B_X1 cell30;
A_4P1N1N_X1 cell31;

View File

@ -21,12 +21,12 @@
*
**************************************************************************
*/
import template::dataflow_neuro::cell_lib_std;
import template::dataflow_neuro::cell_lib_async;
import tmpl::dataflow_neuro::cell_lib_std;
import tmpl::dataflow_neuro::cell_lib_async;
import std::channel;
open std::channel;
namespace template {
namespace tmpl {
namespace dataflow_neuro {
// @ole talk to rajit, we use valid the wrong way arround according to stdlib