Compare commits

..

No commits in common. "296411da8ce31a78f5a713cdf08c5d362b8b46e8" and "b0765138132985f684cd03694d2eca2f897f32a3" have entirely different histories.

View File

@ -118,15 +118,6 @@ namespace tmpl {
sizing { y {-1} } sizing { y {-1} }
} }
export defcell NOR4_X1(bool! y; bool? a, b, c, d, vdd, vss)
{
prs {
a | b | c | d => y-
}
sizing { y {-1} }
}
export defcell OR2_X1(bool! y; bool? a, b, vdd, vss) export defcell OR2_X1(bool! y; bool? a, b, vdd, vss)
{ {
bool _y; bool _y;
@ -147,27 +138,6 @@ namespace tmpl {
sizing { _y{-1}; y{-2} } sizing { _y{-1}; y{-2} }
} }
export defcell OR3_X1(bool! y; bool? a, b, c, vdd, vss)
{
bool _y;
prs {
a | b | c => _y-
_y => y-
}
sizing { _y{-1}; y{-1} }
}
export defcell OR4_X1(bool! y; bool? a, b, c, d, vdd, vss)
{
bool _y;
prs {
a | b | c | d => _y-
_y => y-
}
sizing { _y{-1}; y{-1} }
}
export defcell NAND2_X1(bool! y; bool? a, b, vdd, vss) export defcell NAND2_X1(bool! y; bool? a, b, vdd, vss)
{ {
prs { prs {
@ -184,14 +154,6 @@ namespace tmpl {
sizing { y{-1} } sizing { y{-1} }
} }
export defcell NAND4_X1(bool! y; bool? a, b, c, d, vdd, vss)
{
prs {
a & b & c & d => y-
}
sizing { y{-1} }
}
export defcell AND2_X1(bool! y; bool? a, b, vdd, vss) export defcell AND2_X1(bool! y; bool? a, b, vdd, vss)
{ {
bool _y; bool _y;
@ -212,26 +174,6 @@ namespace tmpl {
sizing { _y{-1}; y{-2} } sizing { _y{-1}; y{-2} }
} }
export defcell AND3_X1(bool! y; bool? a, b, c, vdd, vss)
{
bool _y;
prs {
a & b & c => _y-
_y => y-
}
sizing { _y{-1}; y{-1} }
}
export defcell AND4_X1(bool! y; bool? a, b, c, d, vdd, vss)
{
bool _y;
prs {
a & b & c & d => _y-
_y => y-
}
sizing { _y{-1}; y{-1} }
}
export defcell XOR2_X1(bool! y; bool? a, b, vdd, vss) export defcell XOR2_X1(bool! y; bool? a, b, vdd, vss)
{ {
bool _a, _b; bool _a, _b;
@ -258,48 +200,19 @@ namespace tmpl {
sizing { _a{-1}; _b{-1}; y{-1} } sizing { _a{-1}; _b{-1}; y{-1} }
} }
export defcell MUX2_X1(bool! y; bool? a, b, s, vdd, vss) export defcell MUX2_X1(bool! y; bool? a, b, S, vdd, vss)
{ {
// y = !( S ? a : b ) // y = !( S ? a : b )
// Adjusted to fit the XFAB Muxes bool _S;
bool _s;
bool _y;
prs { prs {
s => _s- S => _S-
[keeper=0] ~a & ~s | ~b & ~_s -> _y+ [keeper=0] ~a & ~_S | ~b & ~S -> y+
a & _s | b & s -> _y- a & S | b & _S -> y-
_y => -y
} }
sizing { _s{-1}; y{-1}; _y{-1}} sizing { _S{-1}; y{-1} }
} }
export defcell MUX4_X1(bool! y; bool? a, b, c, d, s0, s1, vdd, vss)
{
// y = !( S ? a : b )
bool _s0;
bool _s1;
bool _yab;
bool _ycd;
prs {
s0 => _s0-
s1 => _s1-
[keeper=0] a & _s0 | b & s0 -> _yab-
~a & ~s0 | ~b & ~_s0 -> _yab+
[keeper=0] c & _s0 | d & s0 -> _ycd-
~c & ~s0 | ~d & ~_s0 -> _ycd+
[keeper=0]_yab & _s1 | _ycd & s1 -> y-
~_yab & ~s1 | ~_ycd & ~_s1 -> y+
}
sizing {_s0{-1}; _s1{-1}; y{-1}; _yab{-1} _ycd{-1}}
}
export defcell OAI21_X1(bool! y; bool? a, b, c, vdd, vss) export defcell OAI21_X1(bool! y; bool? a, b, c, vdd, vss)
{ {
prs { prs {