|
|
|
@ -92,7 +92,7 @@ class TechLibNew:
@@ -92,7 +92,7 @@ class TechLibNew:
|
|
|
|
|
return self.cells[kind][1][pin][1] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NANGATE = TechLibNew(r""" |
|
|
|
|
_nangate_common = r""" |
|
|
|
|
FILLCELL_X{1,2,4,8,16,32} ; |
|
|
|
|
|
|
|
|
|
LOGIC0_X1 output(Z) Z=__const0__() ; |
|
|
|
@ -100,22 +100,13 @@ LOGIC1_X1 output(Z) Z=__const1__() ;
@@ -100,22 +100,13 @@ LOGIC1_X1 output(Z) Z=__const1__() ;
|
|
|
|
|
|
|
|
|
|
BUF_X{1,2,4,8,16,32} input(A) output(Z) Z=BUF1(A) ; |
|
|
|
|
CLKBUF_X{1,2,3} input(A) output(Z) Z=BUF1(A) ; |
|
|
|
|
INV_X{1,2,4,8,16,32} input(A) output(ZN) ZN=INV1(A) ; |
|
|
|
|
|
|
|
|
|
AND2_X{1,2,4} input(A1,A2) output(ZN) ZN=AND2(A1,A2) ; |
|
|
|
|
AND3_X{1,2,4} input(A1,A2,A3) output(ZN) ZN=AND3(A1,A2,A3) ; |
|
|
|
|
AND4_X{1,2,4} input(A1,A2,A3,A4) output(ZN) ZN=AND4(A1,A2,A3,A4) ; |
|
|
|
|
NAND2_X{1,2,4} input(A1,A2) output(ZN) ZN=NAND2(A1,A2) ; |
|
|
|
|
NAND3_X{1,2,4} input(A1,A2,A3) output(ZN) ZN=NAND3(A1,A2,A3) ; |
|
|
|
|
NAND4_X{1,2,4} input(A1,A2,A3,A4) output(ZN) ZN=NAND4(A1,A2,A3,A4) ; |
|
|
|
|
OR2_X{1,2,4} input(A1,A2) output(ZN) ZN=OR2(A1,A2) ; |
|
|
|
|
OR3_X{1,2,4} input(A1,A2,A3) output(ZN) ZN=OR3(A1,A2,A3) ; |
|
|
|
|
OR4_X{1,2,4} input(A1,A2,A3,A4) output(ZN) ZN=OR4(A1,A2,A3,A4) ; |
|
|
|
|
NOR2_X{1,2,4} input(A1,A2) output(ZN) ZN=NOR2(A1,A2) ; |
|
|
|
|
NOR3_X{1,2,4} input(A1,A2,A3) output(ZN) ZN=NOR3(A1,A2,A3) ; |
|
|
|
|
NOR4_X{1,2,4} input(A1,A2,A3,A4) output(ZN) ZN=NOR4(A1,A2,A3,A4) ; |
|
|
|
|
XOR2_X{1,2} input(A,B) output(Z) Z=XOR2(A,B) ; |
|
|
|
|
XNOR2_X{1,2} input(A,B) output(ZN) ZN=XNOR2(A,B) ; |
|
|
|
|
|
|
|
|
|
AOI21_X{1,2,4} input(A,B1,B2) output(ZN) ZN=AOI21(B1,B2,A) ; |
|
|
|
|
OAI21_X{1,2,4} input(A,B1,B2) output(ZN) ZN=OAI21(B1,B2,A) ; |
|
|
|
@ -159,6 +150,34 @@ TLAT_X1 input(D,G,OE) output(Q) Q=LATCH(D,G) ;
@@ -159,6 +150,34 @@ TLAT_X1 input(D,G,OE) output(Q) Q=LATCH(D,G) ;
|
|
|
|
|
|
|
|
|
|
DLH_X{1,2} input(D,G) output(Q) Q=LATCH(D,G) ; |
|
|
|
|
DLL_X{1,2} input(D,GN) output(Q) G=INV1(GN) Q=LATCH(D,G) ; |
|
|
|
|
""" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NANGATE_ZN = TechLibNew(_nangate_common + r""" |
|
|
|
|
INV_X{1,2,4,8,16,32} input(A) output(ZN) ZN=INV1(A) ; |
|
|
|
|
|
|
|
|
|
AND2_X{1,2,4} input(A1,A2) output(ZN) ZN=AND2(A1,A2) ; |
|
|
|
|
AND3_X{1,2,4} input(A1,A2,A3) output(ZN) ZN=AND3(A1,A2,A3) ; |
|
|
|
|
AND4_X{1,2,4} input(A1,A2,A3,A4) output(ZN) ZN=AND4(A1,A2,A3,A4) ; |
|
|
|
|
OR2_X{1,2,4} input(A1,A2) output(ZN) ZN=OR2(A1,A2) ; |
|
|
|
|
OR3_X{1,2,4} input(A1,A2,A3) output(ZN) ZN=OR3(A1,A2,A3) ; |
|
|
|
|
OR4_X{1,2,4} input(A1,A2,A3,A4) output(ZN) ZN=OR4(A1,A2,A3,A4) ; |
|
|
|
|
XOR2_X{1,2} input(A,B) output(Z) Z=XOR2(A,B) ; |
|
|
|
|
XNOR2_X{1,2} input(A,B) output(ZN) ZN=XNOR2(A,B) ; |
|
|
|
|
""") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NANGATE = TechLibNew(_nangate_common + r""" |
|
|
|
|
INV_X{1,2,4,8,16,32} input(I) output(ZN) ZN=INV1(I) ; |
|
|
|
|
|
|
|
|
|
AND2_X{1,2,4} input(A1,A2) output(Z) Z=AND2(A1,A2) ; |
|
|
|
|
AND3_X{1,2,4} input(A1,A2,A3) output(Z) Z=AND3(A1,A2,A3) ; |
|
|
|
|
AND4_X{1,2,4} input(A1,A2,A3,A4) output(Z) Z=AND4(A1,A2,A3,A4) ; |
|
|
|
|
OR2_X{1,2,4} input(A1,A2) output(Z) Z=OR2(A1,A2) ; |
|
|
|
|
OR3_X{1,2,4} input(A1,A2,A3) output(Z) Z=OR3(A1,A2,A3) ; |
|
|
|
|
OR4_X{1,2,4} input(A1,A2,A3,A4) output(Z) Z=OR4(A1,A2,A3,A4) ; |
|
|
|
|
XOR2_X{1,2} input(A1,A2) output(Z) Z=XOR2(A1,A2) ; |
|
|
|
|
XNOR2_X{1,2} input(A1,A2) output(ZN) ZN=XNOR2(A1,A2) ; |
|
|
|
|
""") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|