2634 lines
46 KiB
Plaintext
Executable File
2634 lines
46 KiB
Plaintext
Executable File
//
|
|
// ***********************************************************************
|
|
// Copyright Mentor Graphics Corporation
|
|
// All Rights Reserved
|
|
// For use only with Mentor Graphics Tessent tools
|
|
// ***********************************************************************
|
|
// File Type: Tessent Cell Library
|
|
// Generated by: Tessent Shell -- write_cell_library
|
|
// Tool Version: 2019.4
|
|
// Tool Build Date: Wed Nov 20 21:14:16 GMT 2019
|
|
// ***********************************************************************
|
|
// Library Created : Local Time = Tue Jun 30 00:33:30 2020
|
|
// GMT = Tue Jun 30 07:33:30 2020
|
|
|
|
|
|
library_format_version = 9;
|
|
|
|
array_delimiter = "[]";
|
|
|
|
|
|
//
|
|
// ***********************************************************************
|
|
// *********** Models holding Liberty information ******************
|
|
// ***********************************************************************
|
|
//
|
|
|
|
|
|
model AND2_X1
|
|
(A1, A2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = and;
|
|
simulation_function = and;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _and (A1, A2, ZN);
|
|
)
|
|
) // end model AND2_X1
|
|
|
|
|
|
model AND2_X2
|
|
(A1, A2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = and;
|
|
simulation_function = and;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _and (A1, A2, ZN);
|
|
)
|
|
) // end model AND2_X2
|
|
|
|
|
|
model AND2_X4
|
|
(A1, A2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = and;
|
|
simulation_function = and;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _and (A1, A2, ZN);
|
|
)
|
|
) // end model AND2_X4
|
|
|
|
|
|
model AND3_X1
|
|
(A1, A2, A3, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = and;
|
|
simulation_function = and;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _and (net_0, A3, ZN);
|
|
primitive = _and (A1, A2, net_0);
|
|
)
|
|
) // end model AND3_X1
|
|
|
|
|
|
model AND3_X2
|
|
(A1, A2, A3, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = and;
|
|
simulation_function = and;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _and (net_0, A3, ZN);
|
|
primitive = _and (A1, A2, net_0);
|
|
)
|
|
) // end model AND3_X2
|
|
|
|
|
|
model AND3_X4
|
|
(A1, A2, A3, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = and;
|
|
simulation_function = and;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _and (net_0, A3, ZN);
|
|
primitive = _and (A1, A2, net_0);
|
|
)
|
|
) // end model AND3_X4
|
|
|
|
|
|
model AND4_X1
|
|
(A1, A2, A3, A4,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = and;
|
|
simulation_function = and;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
input (A4) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _and (net_0, A4, ZN);
|
|
primitive = _and (net_1, A3, net_0);
|
|
primitive = _and (A1, A2, net_1);
|
|
)
|
|
) // end model AND4_X1
|
|
|
|
|
|
model AND4_X2
|
|
(A1, A2, A3, A4,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = and;
|
|
simulation_function = and;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
input (A4) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _and (net_0, A4, ZN);
|
|
primitive = _and (net_1, A3, net_0);
|
|
primitive = _and (A1, A2, net_1);
|
|
)
|
|
) // end model AND4_X2
|
|
|
|
|
|
model AND4_X4
|
|
(A1, A2, A3, A4,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = and;
|
|
simulation_function = and;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
input (A4) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _and (net_0, A4, ZN);
|
|
primitive = _and (net_1, A3, net_0);
|
|
primitive = _and (A1, A2, net_1);
|
|
)
|
|
) // end model AND4_X4
|
|
|
|
|
|
model ANTENNA_X1
|
|
(A)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = prohibited;
|
|
|
|
input (A) ( )
|
|
(
|
|
// Empty Model
|
|
)
|
|
) // end model ANTENNA_X1
|
|
|
|
|
|
model AOI211_X1
|
|
(A, B, C1, C2,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B) ( )
|
|
input (C1) ( )
|
|
input (C2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (net_1, A, net_0);
|
|
primitive = _or (net_2, B, net_1);
|
|
primitive = _and (C1, C2, net_2);
|
|
)
|
|
) // end model AOI211_X1
|
|
|
|
|
|
model AOI211_X2
|
|
(A, B, C1, C2,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B) ( )
|
|
input (C1) ( )
|
|
input (C2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (net_1, A, net_0);
|
|
primitive = _or (net_2, B, net_1);
|
|
primitive = _and (C1, C2, net_2);
|
|
)
|
|
) // end model AOI211_X2
|
|
|
|
|
|
model AOI211_X4
|
|
(A, B, C1, C2,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B) ( )
|
|
input (C1) ( )
|
|
input (C2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _inv (net_1, net_0);
|
|
primitive = _inv (net_2, net_1);
|
|
primitive = _or (net_3, A, net_2);
|
|
primitive = _or (net_4, B, net_3);
|
|
primitive = _and (C1, C2, net_4);
|
|
)
|
|
) // end model AOI211_X4
|
|
|
|
|
|
model AOI21_X1
|
|
(A, B1, B2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (A, net_1, net_0);
|
|
primitive = _and (B1, B2, net_1);
|
|
)
|
|
) // end model AOI21_X1
|
|
|
|
|
|
model AOI21_X2
|
|
(A, B1, B2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (A, net_1, net_0);
|
|
primitive = _and (B1, B2, net_1);
|
|
)
|
|
) // end model AOI21_X2
|
|
|
|
|
|
model AOI21_X4
|
|
(A, B1, B2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (A, net_1, net_0);
|
|
primitive = _and (B1, B2, net_1);
|
|
)
|
|
) // end model AOI21_X4
|
|
|
|
|
|
model AOI221_X1
|
|
(A, B1, B2, C1,
|
|
C2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
input (C1) ( )
|
|
input (C2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (net_1, net_3, net_0);
|
|
primitive = _or (net_2, A, net_1);
|
|
primitive = _and (C1, C2, net_2);
|
|
primitive = _and (B1, B2, net_3);
|
|
)
|
|
) // end model AOI221_X1
|
|
|
|
|
|
model AOI221_X2
|
|
(A, B1, B2, C1,
|
|
C2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
input (C1) ( )
|
|
input (C2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (net_1, net_3, net_0);
|
|
primitive = _or (net_2, A, net_1);
|
|
primitive = _and (C1, C2, net_2);
|
|
primitive = _and (B1, B2, net_3);
|
|
)
|
|
) // end model AOI221_X2
|
|
|
|
|
|
model AOI221_X4
|
|
(A, B1, B2, C1,
|
|
C2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
input (C1) ( )
|
|
input (C2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _inv (net_1, net_0);
|
|
primitive = _inv (net_2, net_1);
|
|
primitive = _or (net_3, net_5, net_2);
|
|
primitive = _or (net_4, A, net_3);
|
|
primitive = _and (C1, C2, net_4);
|
|
primitive = _and (B1, B2, net_5);
|
|
)
|
|
) // end model AOI221_X4
|
|
|
|
|
|
model AOI222_X1
|
|
(A1, A2, B1, B2,
|
|
C1, C2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
input (C1) ( )
|
|
input (C2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (net_1, net_4, net_0);
|
|
primitive = _or (net_2, net_3, net_1);
|
|
primitive = _and (A1, A2, net_2);
|
|
primitive = _and (B1, B2, net_3);
|
|
primitive = _and (C1, C2, net_4);
|
|
)
|
|
) // end model AOI222_X1
|
|
|
|
|
|
model AOI222_X2
|
|
(A1, A2, B1, B2,
|
|
C1, C2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
input (C1) ( )
|
|
input (C2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (net_1, net_4, net_0);
|
|
primitive = _or (net_2, net_3, net_1);
|
|
primitive = _and (A1, A2, net_2);
|
|
primitive = _and (B1, B2, net_3);
|
|
primitive = _and (C1, C2, net_4);
|
|
)
|
|
) // end model AOI222_X2
|
|
|
|
|
|
model AOI222_X4
|
|
(A1, A2, B1, B2,
|
|
C1, C2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
input (C1) ( )
|
|
input (C2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _inv (net_1, net_0);
|
|
primitive = _inv (net_2, net_1);
|
|
primitive = _or (net_3, net_6, net_2);
|
|
primitive = _or (net_4, net_5, net_3);
|
|
primitive = _and (A1, A2, net_4);
|
|
primitive = _and (B1, B2, net_5);
|
|
primitive = _and (C1, C2, net_6);
|
|
)
|
|
) // end model AOI222_X4
|
|
|
|
|
|
model AOI22_X1
|
|
(A1, A2, B1, B2,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (net_1, net_2, net_0);
|
|
primitive = _and (A1, A2, net_1);
|
|
primitive = _and (B1, B2, net_2);
|
|
)
|
|
) // end model AOI22_X1
|
|
|
|
|
|
model AOI22_X2
|
|
(A1, A2, B1, B2,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (net_1, net_2, net_0);
|
|
primitive = _and (A1, A2, net_1);
|
|
primitive = _and (B1, B2, net_2);
|
|
)
|
|
) // end model AOI22_X2
|
|
|
|
|
|
model AOI22_X4
|
|
(A1, A2, B1, B2,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (net_1, net_2, net_0);
|
|
primitive = _and (A1, A2, net_1);
|
|
primitive = _and (B1, B2, net_2);
|
|
)
|
|
) // end model AOI22_X4
|
|
|
|
|
|
model BUF_X1
|
|
(A, Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = buffer;
|
|
simulation_function = buffer;
|
|
|
|
input (A) ( )
|
|
output (Z) ( )
|
|
(
|
|
primitive = _buf (A, Z);
|
|
)
|
|
) // end model BUF_X1
|
|
|
|
|
|
model BUF_X16
|
|
(A, Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = buffer;
|
|
simulation_function = buffer;
|
|
|
|
input (A) ( )
|
|
output (Z) ( )
|
|
(
|
|
primitive = _buf (A, Z);
|
|
)
|
|
) // end model BUF_X16
|
|
|
|
|
|
model BUF_X2
|
|
(A, Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = buffer;
|
|
simulation_function = buffer;
|
|
|
|
input (A) ( )
|
|
output (Z) ( )
|
|
(
|
|
primitive = _buf (A, Z);
|
|
)
|
|
) // end model BUF_X2
|
|
|
|
|
|
model BUF_X32
|
|
(A, Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = buffer;
|
|
simulation_function = buffer;
|
|
|
|
input (A) ( )
|
|
output (Z) ( )
|
|
(
|
|
primitive = _buf (A, Z);
|
|
)
|
|
) // end model BUF_X32
|
|
|
|
|
|
model BUF_X4
|
|
(A, Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = buffer;
|
|
simulation_function = buffer;
|
|
|
|
input (A) ( )
|
|
output (Z) ( )
|
|
(
|
|
primitive = _buf (A, Z);
|
|
)
|
|
) // end model BUF_X4
|
|
|
|
|
|
model BUF_X8
|
|
(A, Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = buffer;
|
|
simulation_function = buffer;
|
|
|
|
input (A) ( )
|
|
output (Z) ( )
|
|
(
|
|
primitive = _buf (A, Z);
|
|
)
|
|
) // end model BUF_X8
|
|
|
|
|
|
model CLKBUF_X1
|
|
(A, Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = buffer;
|
|
simulation_function = buffer;
|
|
|
|
input (A) ( )
|
|
output (Z) ( )
|
|
(
|
|
primitive = _buf (A, Z);
|
|
)
|
|
) // end model CLKBUF_X1
|
|
|
|
|
|
model CLKBUF_X2
|
|
(A, Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = buffer;
|
|
simulation_function = buffer;
|
|
|
|
input (A) ( )
|
|
output (Z) ( )
|
|
(
|
|
primitive = _buf (A, Z);
|
|
)
|
|
) // end model CLKBUF_X2
|
|
|
|
|
|
model CLKBUF_X3
|
|
(A, Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = buffer;
|
|
simulation_function = buffer;
|
|
|
|
input (A) ( )
|
|
output (Z) ( )
|
|
(
|
|
primitive = _buf (A, Z);
|
|
)
|
|
) // end model CLKBUF_X3
|
|
|
|
|
|
model "CLKGATETST_X1_$_IQ"
|
|
(CK, E, SE, IQ)
|
|
(
|
|
model_source = liberty_cell_statetable;
|
|
|
|
input (CK) ( )
|
|
input (E) ( )
|
|
input (SE) ( )
|
|
output (IQ) ( )
|
|
(
|
|
primitive = _dlat ( , , clock_net, net_0, IQ, );
|
|
primitive = _inv (CK, clock_net);
|
|
primitive = _or (E, SE, net_0);
|
|
)
|
|
) // end model CLKGATETST_X1_$_IQ
|
|
|
|
|
|
model CLKGATETST_X1
|
|
(CK, E, GCK, SE)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = clock_gating_and;
|
|
simulation_function = clock_gating_and;
|
|
|
|
input (CK) ( clock_in; )
|
|
input (E) ( func_enable; )
|
|
input (SE) ( test_enable; )
|
|
output (GCK) ( clock_out; )
|
|
(
|
|
instance = "CLKGATETST_X1_$_IQ" (CK, E, SE, IQ);
|
|
primitive = _and (IQ, CK, GCK);
|
|
)
|
|
) // end model CLKGATETST_X1
|
|
|
|
|
|
model "CLKGATETST_X2_$_IQ"
|
|
(CK, E, SE, IQ)
|
|
(
|
|
model_source = liberty_cell_statetable;
|
|
|
|
input (CK) ( )
|
|
input (E) ( )
|
|
input (SE) ( )
|
|
output (IQ) ( )
|
|
(
|
|
primitive = _dlat ( , , clock_net, net_0, IQ, );
|
|
primitive = _inv (CK, clock_net);
|
|
primitive = _or (E, SE, net_0);
|
|
)
|
|
) // end model CLKGATETST_X2_$_IQ
|
|
|
|
|
|
model CLKGATETST_X2
|
|
(CK, E, GCK, SE)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = clock_gating_and;
|
|
simulation_function = clock_gating_and;
|
|
|
|
input (CK) ( clock_in; )
|
|
input (E) ( func_enable; )
|
|
input (SE) ( test_enable; )
|
|
output (GCK) ( clock_out; )
|
|
(
|
|
instance = "CLKGATETST_X2_$_IQ" (CK, E, SE, IQ);
|
|
primitive = _and (IQ, CK, GCK);
|
|
)
|
|
) // end model CLKGATETST_X2
|
|
|
|
|
|
model "CLKGATETST_X4_$_IQ"
|
|
(CK, E, SE, IQ)
|
|
(
|
|
model_source = liberty_cell_statetable;
|
|
|
|
input (CK) ( )
|
|
input (E) ( )
|
|
input (SE) ( )
|
|
output (IQ) ( )
|
|
(
|
|
primitive = _dlat ( , , clock_net, net_0, IQ, );
|
|
primitive = _inv (CK, clock_net);
|
|
primitive = _or (E, SE, net_0);
|
|
)
|
|
) // end model CLKGATETST_X4_$_IQ
|
|
|
|
|
|
model CLKGATETST_X4
|
|
(CK, E, GCK, SE)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = clock_gating_and;
|
|
simulation_function = clock_gating_and;
|
|
|
|
input (CK) ( clock_in; )
|
|
input (E) ( func_enable; )
|
|
input (SE) ( test_enable; )
|
|
output (GCK) ( clock_out; )
|
|
(
|
|
instance = "CLKGATETST_X4_$_IQ" (CK, E, SE, IQ);
|
|
primitive = _and (IQ, CK, GCK);
|
|
)
|
|
) // end model CLKGATETST_X4
|
|
|
|
|
|
model "CLKGATETST_X8_$_IQ"
|
|
(CK, E, SE, IQ)
|
|
(
|
|
model_source = liberty_cell_statetable;
|
|
|
|
input (CK) ( )
|
|
input (E) ( )
|
|
input (SE) ( )
|
|
output (IQ) ( )
|
|
(
|
|
primitive = _dlat ( , , clock_net, net_0, IQ, );
|
|
primitive = _inv (CK, clock_net);
|
|
primitive = _or (E, SE, net_0);
|
|
)
|
|
) // end model CLKGATETST_X8_$_IQ
|
|
|
|
|
|
model CLKGATETST_X8
|
|
(CK, E, GCK, SE)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = clock_gating_and;
|
|
simulation_function = clock_gating_and;
|
|
|
|
input (CK) ( clock_in; )
|
|
input (E) ( func_enable; )
|
|
input (SE) ( test_enable; )
|
|
output (GCK) ( clock_out; )
|
|
(
|
|
instance = "CLKGATETST_X8_$_IQ" (CK, E, SE, IQ);
|
|
primitive = _and (IQ, CK, GCK);
|
|
)
|
|
) // end model CLKGATETST_X8
|
|
|
|
|
|
model "CLKGATE_X1_$_IQ"
|
|
(CK, E, IQ)
|
|
(
|
|
model_source = liberty_cell_statetable;
|
|
simulation_function = latch;
|
|
|
|
input (CK) ( active_low_clock; )
|
|
input (E) ( data_in; )
|
|
output (IQ) ( data_out; )
|
|
(
|
|
primitive = _dlat ( , , clock_net, E, IQ, );
|
|
primitive = _inv (CK, clock_net);
|
|
)
|
|
) // end model CLKGATE_X1_$_IQ
|
|
|
|
|
|
model CLKGATE_X1
|
|
(CK, E, GCK)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (CK) ( active_low_clock; )
|
|
input (E) ( )
|
|
output (GCK) ( )
|
|
(
|
|
instance = "CLKGATE_X1_$_IQ" (CK, E, IQ);
|
|
primitive = _and (CK, IQ, GCK);
|
|
)
|
|
) // end model CLKGATE_X1
|
|
|
|
|
|
model "CLKGATE_X2_$_IQ"
|
|
(CK, E, IQ)
|
|
(
|
|
model_source = liberty_cell_statetable;
|
|
simulation_function = latch;
|
|
|
|
input (CK) ( active_low_clock; )
|
|
input (E) ( data_in; )
|
|
output (IQ) ( data_out; )
|
|
(
|
|
primitive = _dlat ( , , clock_net, E, IQ, );
|
|
primitive = _inv (CK, clock_net);
|
|
)
|
|
) // end model CLKGATE_X2_$_IQ
|
|
|
|
|
|
model CLKGATE_X2
|
|
(CK, E, GCK)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (CK) ( active_low_clock; )
|
|
input (E) ( )
|
|
output (GCK) ( )
|
|
(
|
|
instance = "CLKGATE_X2_$_IQ" (CK, E, IQ);
|
|
primitive = _and (CK, IQ, GCK);
|
|
)
|
|
) // end model CLKGATE_X2
|
|
|
|
|
|
model "CLKGATE_X4_$_IQ"
|
|
(CK, E, IQ)
|
|
(
|
|
model_source = liberty_cell_statetable;
|
|
simulation_function = latch;
|
|
|
|
input (CK) ( active_low_clock; )
|
|
input (E) ( data_in; )
|
|
output (IQ) ( data_out; )
|
|
(
|
|
primitive = _dlat ( , , clock_net, E, IQ, );
|
|
primitive = _inv (CK, clock_net);
|
|
)
|
|
) // end model CLKGATE_X4_$_IQ
|
|
|
|
|
|
model CLKGATE_X4
|
|
(CK, E, GCK)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (CK) ( active_low_clock; )
|
|
input (E) ( )
|
|
output (GCK) ( )
|
|
(
|
|
instance = "CLKGATE_X4_$_IQ" (CK, E, IQ);
|
|
primitive = _and (CK, IQ, GCK);
|
|
)
|
|
) // end model CLKGATE_X4
|
|
|
|
|
|
model "CLKGATE_X8_$_IQ"
|
|
(CK, E, IQ)
|
|
(
|
|
model_source = liberty_cell_statetable;
|
|
simulation_function = latch;
|
|
|
|
input (CK) ( active_low_clock; )
|
|
input (E) ( data_in; )
|
|
output (IQ) ( data_out; )
|
|
(
|
|
primitive = _dlat ( , , clock_net, E, IQ, );
|
|
primitive = _inv (CK, clock_net);
|
|
)
|
|
) // end model CLKGATE_X8_$_IQ
|
|
|
|
|
|
model CLKGATE_X8
|
|
(CK, E, GCK)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (CK) ( active_low_clock; )
|
|
input (E) ( )
|
|
output (GCK) ( )
|
|
(
|
|
instance = "CLKGATE_X8_$_IQ" (CK, E, IQ);
|
|
primitive = _and (CK, IQ, GCK);
|
|
)
|
|
) // end model CLKGATE_X8
|
|
|
|
|
|
model DFFRS_X1
|
|
(CK, D, Q, QN,
|
|
RN, SN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = dff;
|
|
simulation_function = dff;
|
|
|
|
input (CK) ( posedge_clock; )
|
|
input (D) ( data_in; )
|
|
input (RN) ( active_low_reset; )
|
|
input (SN) ( active_low_set; )
|
|
output (Q) ( data_out; )
|
|
output (QN) ( data_out_inv; )
|
|
(
|
|
primitive = _dff (net_0, net_1, CK, D, IQ, IQN);
|
|
primitive = _inv (SN, net_0);
|
|
primitive = _inv (RN, net_1);
|
|
primitive = _buf (IQ, Q);
|
|
primitive = _buf (IQN, QN);
|
|
)
|
|
) // end model DFFRS_X1
|
|
|
|
|
|
model DFFRS_X2
|
|
(CK, D, Q, QN,
|
|
RN, SN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = dff;
|
|
simulation_function = dff;
|
|
|
|
input (CK) ( posedge_clock; )
|
|
input (D) ( data_in; )
|
|
input (RN) ( active_low_reset; )
|
|
input (SN) ( active_low_set; )
|
|
output (Q) ( data_out; )
|
|
output (QN) ( data_out_inv; )
|
|
(
|
|
primitive = _dff (net_0, net_1, CK, D, IQ, IQN);
|
|
primitive = _inv (SN, net_0);
|
|
primitive = _inv (RN, net_1);
|
|
primitive = _buf (IQ, Q);
|
|
primitive = _buf (IQN, QN);
|
|
)
|
|
) // end model DFFRS_X2
|
|
|
|
|
|
model DFFR_X1
|
|
(CK, D, Q, QN,
|
|
RN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = dff;
|
|
simulation_function = dff;
|
|
|
|
input (CK) ( posedge_clock; )
|
|
input (D) ( data_in; )
|
|
input (RN) ( active_low_reset; )
|
|
output (Q) ( data_out; )
|
|
output (QN) ( data_out_inv; )
|
|
(
|
|
primitive = _dff ( , net_0, CK, D, IQ, IQN);
|
|
primitive = _inv (RN, net_0);
|
|
primitive = _buf (IQ, Q);
|
|
primitive = _buf (IQN, QN);
|
|
)
|
|
) // end model DFFR_X1
|
|
|
|
|
|
model DFFR_X2
|
|
(CK, D, Q, QN,
|
|
RN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = dff;
|
|
simulation_function = dff;
|
|
|
|
input (CK) ( posedge_clock; )
|
|
input (D) ( data_in; )
|
|
input (RN) ( active_low_reset; )
|
|
output (Q) ( data_out; )
|
|
output (QN) ( data_out_inv; )
|
|
(
|
|
primitive = _dff ( , net_0, CK, D, IQ, IQN);
|
|
primitive = _inv (RN, net_0);
|
|
primitive = _buf (IQ, Q);
|
|
primitive = _buf (IQN, QN);
|
|
)
|
|
) // end model DFFR_X2
|
|
|
|
|
|
model DFFS_X1
|
|
(CK, D, Q, QN,
|
|
SN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = dff;
|
|
simulation_function = dff;
|
|
|
|
input (CK) ( posedge_clock; )
|
|
input (D) ( data_in; )
|
|
input (SN) ( active_low_set; )
|
|
output (Q) ( data_out; )
|
|
output (QN) ( data_out_inv; )
|
|
(
|
|
primitive = _dff (net_0, , CK, D, IQ, IQN);
|
|
primitive = _inv (SN, net_0);
|
|
primitive = _buf (IQ, Q);
|
|
primitive = _buf (IQN, QN);
|
|
)
|
|
) // end model DFFS_X1
|
|
|
|
|
|
model DFFS_X2
|
|
(CK, D, Q, QN,
|
|
SN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = dff;
|
|
simulation_function = dff;
|
|
|
|
input (CK) ( posedge_clock; )
|
|
input (D) ( data_in; )
|
|
input (SN) ( active_low_set; )
|
|
output (Q) ( data_out; )
|
|
output (QN) ( data_out_inv; )
|
|
(
|
|
primitive = _dff (net_0, , CK, D, IQ, IQN);
|
|
primitive = _inv (SN, net_0);
|
|
primitive = _buf (IQ, Q);
|
|
primitive = _buf (IQN, QN);
|
|
)
|
|
) // end model DFFS_X2
|
|
|
|
|
|
model DFF_X1
|
|
(CK, D, Q, QN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = dff;
|
|
simulation_function = dff;
|
|
|
|
input (CK) ( posedge_clock; )
|
|
input (D) ( data_in; )
|
|
output (Q) ( data_out; )
|
|
output (QN) ( data_out_inv; )
|
|
(
|
|
primitive = _dff ( , , CK, D, IQ, IQN);
|
|
primitive = _buf (IQ, Q);
|
|
primitive = _buf (IQN, QN);
|
|
)
|
|
) // end model DFF_X1
|
|
|
|
|
|
model DFF_X2
|
|
(CK, D, Q, QN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = dff;
|
|
simulation_function = dff;
|
|
|
|
input (CK) ( posedge_clock; )
|
|
input (D) ( data_in; )
|
|
output (Q) ( data_out; )
|
|
output (QN) ( data_out_inv; )
|
|
(
|
|
primitive = _dff ( , , CK, D, IQ, IQN);
|
|
primitive = _buf (IQ, Q);
|
|
primitive = _buf (IQN, QN);
|
|
)
|
|
) // end model DFF_X2
|
|
|
|
|
|
model DLH_X1
|
|
(D, G, Q)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = latch;
|
|
simulation_function = latch;
|
|
|
|
input (D) ( data_in; )
|
|
input (G) ( active_high_clock; )
|
|
output (Q) ( data_out; )
|
|
(
|
|
primitive = _dlat ( , , G, D, IQ, );
|
|
primitive = _buf (IQ, Q);
|
|
)
|
|
) // end model DLH_X1
|
|
|
|
|
|
model DLH_X2
|
|
(D, G, Q)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = latch;
|
|
simulation_function = latch;
|
|
|
|
input (D) ( data_in; )
|
|
input (G) ( active_high_clock; )
|
|
output (Q) ( data_out; )
|
|
(
|
|
primitive = _dlat ( , , G, D, IQ, );
|
|
primitive = _buf (IQ, Q);
|
|
)
|
|
) // end model DLH_X2
|
|
|
|
|
|
model DLL_X1
|
|
(D, GN, Q)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = latch;
|
|
simulation_function = latch;
|
|
|
|
input (D) ( data_in; )
|
|
input (GN) ( active_low_clock; )
|
|
output (Q) ( data_out; )
|
|
(
|
|
primitive = _dlat ( , , net_0, D, IQ, );
|
|
primitive = _inv (GN, net_0);
|
|
primitive = _buf (IQ, Q);
|
|
)
|
|
) // end model DLL_X1
|
|
|
|
|
|
model DLL_X2
|
|
(D, GN, Q)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = latch;
|
|
simulation_function = latch;
|
|
|
|
input (D) ( data_in; )
|
|
input (GN) ( active_low_clock; )
|
|
output (Q) ( data_out; )
|
|
(
|
|
primitive = _dlat ( , , net_0, D, IQ, );
|
|
primitive = _inv (GN, net_0);
|
|
primitive = _buf (IQ, Q);
|
|
)
|
|
) // end model DLL_X2
|
|
|
|
|
|
model FA_X1
|
|
(A, B, CI, CO,
|
|
S)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B) ( )
|
|
input (CI) ( )
|
|
output (CO) ( )
|
|
output (S) ( )
|
|
(
|
|
primitive = _or (net_0, net_1, CO);
|
|
primitive = _and (A, B, net_0);
|
|
primitive = _and (CI, net_2, net_1);
|
|
primitive = _or (A, B, net_2);
|
|
primitive = _xor (CI, net_3, S);
|
|
primitive = _xor (A, B, net_3);
|
|
)
|
|
) // end model FA_X1
|
|
|
|
|
|
model FILLCELL_X1
|
|
( )
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = prohibited;
|
|
|
|
) // end model FILLCELL_X1
|
|
|
|
|
|
model FILLCELL_X16
|
|
( )
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = prohibited;
|
|
|
|
) // end model FILLCELL_X16
|
|
|
|
|
|
model FILLCELL_X2
|
|
( )
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = prohibited;
|
|
|
|
) // end model FILLCELL_X2
|
|
|
|
|
|
model FILLCELL_X32
|
|
( )
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = prohibited;
|
|
|
|
) // end model FILLCELL_X32
|
|
|
|
|
|
model FILLCELL_X4
|
|
( )
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = prohibited;
|
|
|
|
) // end model FILLCELL_X4
|
|
|
|
|
|
model FILLCELL_X8
|
|
( )
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = prohibited;
|
|
|
|
) // end model FILLCELL_X8
|
|
|
|
|
|
model HA_X1
|
|
(A, B, CO, S)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B) ( )
|
|
output (CO) ( )
|
|
output (S) ( )
|
|
(
|
|
primitive = _and (A, B, CO);
|
|
primitive = _xor (A, B, S);
|
|
)
|
|
) // end model HA_X1
|
|
|
|
|
|
model INV_X1
|
|
(A, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = inverter;
|
|
simulation_function = inverter;
|
|
|
|
input (A) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (A, ZN);
|
|
)
|
|
) // end model INV_X1
|
|
|
|
|
|
model INV_X16
|
|
(A, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = inverter;
|
|
simulation_function = inverter;
|
|
|
|
input (A) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (A, ZN);
|
|
)
|
|
) // end model INV_X16
|
|
|
|
|
|
model INV_X2
|
|
(A, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = inverter;
|
|
simulation_function = inverter;
|
|
|
|
input (A) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (A, ZN);
|
|
)
|
|
) // end model INV_X2
|
|
|
|
|
|
model INV_X32
|
|
(A, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = inverter;
|
|
simulation_function = inverter;
|
|
|
|
input (A) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (A, ZN);
|
|
)
|
|
) // end model INV_X32
|
|
|
|
|
|
model INV_X4
|
|
(A, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = inverter;
|
|
simulation_function = inverter;
|
|
|
|
input (A) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (A, ZN);
|
|
)
|
|
) // end model INV_X4
|
|
|
|
|
|
model INV_X8
|
|
(A, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = inverter;
|
|
simulation_function = inverter;
|
|
|
|
input (A) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (A, ZN);
|
|
)
|
|
) // end model INV_X8
|
|
|
|
|
|
model LOGIC0_X1
|
|
(Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = prohibited;
|
|
simulation_function = tie0;
|
|
|
|
output (Z) ( )
|
|
(
|
|
primitive = _tie0 (Z);
|
|
)
|
|
) // end model LOGIC0_X1
|
|
|
|
|
|
model LOGIC1_X1
|
|
(Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = prohibited;
|
|
simulation_function = tie1;
|
|
|
|
output (Z) ( )
|
|
(
|
|
primitive = _tie1 (Z);
|
|
)
|
|
) // end model LOGIC1_X1
|
|
|
|
|
|
model MUX2_X1
|
|
(A, B, S, Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = mux;
|
|
simulation_function = mux;
|
|
|
|
input (A) ( mux_in0; )
|
|
input (B) ( mux_in1; )
|
|
input (S) ( mux_select; )
|
|
output (Z) ( mux_out; )
|
|
(
|
|
primitive = _or (net_0, net_1, Z);
|
|
primitive = _and (S, B, net_0);
|
|
primitive = _and (A, net_2, net_1);
|
|
primitive = _inv (S, net_2);
|
|
)
|
|
) // end model MUX2_X1
|
|
|
|
|
|
model MUX2_X2
|
|
(A, B, S, Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = mux;
|
|
simulation_function = mux;
|
|
|
|
input (A) ( mux_in0; )
|
|
input (B) ( mux_in1; )
|
|
input (S) ( mux_select; )
|
|
output (Z) ( mux_out; )
|
|
(
|
|
primitive = _or (net_0, net_1, Z);
|
|
primitive = _and (S, B, net_0);
|
|
primitive = _and (A, net_2, net_1);
|
|
primitive = _inv (S, net_2);
|
|
)
|
|
) // end model MUX2_X2
|
|
|
|
|
|
model NAND2_X1
|
|
(A1, A2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = nand;
|
|
simulation_function = nand;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (A1, A2, net_0);
|
|
)
|
|
) // end model NAND2_X1
|
|
|
|
|
|
model NAND2_X2
|
|
(A1, A2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = nand;
|
|
simulation_function = nand;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (A1, A2, net_0);
|
|
)
|
|
) // end model NAND2_X2
|
|
|
|
|
|
model NAND2_X4
|
|
(A1, A2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = nand;
|
|
simulation_function = nand;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (A1, A2, net_0);
|
|
)
|
|
) // end model NAND2_X4
|
|
|
|
|
|
model NAND3_X1
|
|
(A1, A2, A3, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = nand;
|
|
simulation_function = nand;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (net_1, A3, net_0);
|
|
primitive = _and (A1, A2, net_1);
|
|
)
|
|
) // end model NAND3_X1
|
|
|
|
|
|
model NAND3_X2
|
|
(A1, A2, A3, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = nand;
|
|
simulation_function = nand;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (net_1, A3, net_0);
|
|
primitive = _and (A1, A2, net_1);
|
|
)
|
|
) // end model NAND3_X2
|
|
|
|
|
|
model NAND3_X4
|
|
(A1, A2, A3, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = nand;
|
|
simulation_function = nand;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (net_1, A3, net_0);
|
|
primitive = _and (A1, A2, net_1);
|
|
)
|
|
) // end model NAND3_X4
|
|
|
|
|
|
model NAND4_X1
|
|
(A1, A2, A3, A4,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = nand;
|
|
simulation_function = nand;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
input (A4) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (net_1, A4, net_0);
|
|
primitive = _and (net_2, A3, net_1);
|
|
primitive = _and (A1, A2, net_2);
|
|
)
|
|
) // end model NAND4_X1
|
|
|
|
|
|
model NAND4_X2
|
|
(A1, A2, A3, A4,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = nand;
|
|
simulation_function = nand;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
input (A4) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (net_1, A4, net_0);
|
|
primitive = _and (net_2, A3, net_1);
|
|
primitive = _and (A1, A2, net_2);
|
|
)
|
|
) // end model NAND4_X2
|
|
|
|
|
|
model NAND4_X4
|
|
(A1, A2, A3, A4,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = nand;
|
|
simulation_function = nand;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
input (A4) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (net_1, A4, net_0);
|
|
primitive = _and (net_2, A3, net_1);
|
|
primitive = _and (A1, A2, net_2);
|
|
)
|
|
) // end model NAND4_X4
|
|
|
|
|
|
model NOR2_X1
|
|
(A1, A2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = nor;
|
|
simulation_function = nor;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (A1, A2, net_0);
|
|
)
|
|
) // end model NOR2_X1
|
|
|
|
|
|
model NOR2_X2
|
|
(A1, A2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = nor;
|
|
simulation_function = nor;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (A1, A2, net_0);
|
|
)
|
|
) // end model NOR2_X2
|
|
|
|
|
|
model NOR2_X4
|
|
(A1, A2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = nor;
|
|
simulation_function = nor;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (A1, A2, net_0);
|
|
)
|
|
) // end model NOR2_X4
|
|
|
|
|
|
model NOR3_X1
|
|
(A1, A2, A3, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = nor;
|
|
simulation_function = nor;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (net_1, A3, net_0);
|
|
primitive = _or (A1, A2, net_1);
|
|
)
|
|
) // end model NOR3_X1
|
|
|
|
|
|
model NOR3_X2
|
|
(A1, A2, A3, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = nor;
|
|
simulation_function = nor;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (net_1, A3, net_0);
|
|
primitive = _or (A1, A2, net_1);
|
|
)
|
|
) // end model NOR3_X2
|
|
|
|
|
|
model NOR3_X4
|
|
(A1, A2, A3, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = nor;
|
|
simulation_function = nor;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (net_1, A3, net_0);
|
|
primitive = _or (A1, A2, net_1);
|
|
)
|
|
) // end model NOR3_X4
|
|
|
|
|
|
model NOR4_X1
|
|
(A1, A2, A3, A4,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = nor;
|
|
simulation_function = nor;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
input (A4) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (net_1, A4, net_0);
|
|
primitive = _or (net_2, A3, net_1);
|
|
primitive = _or (A1, A2, net_2);
|
|
)
|
|
) // end model NOR4_X1
|
|
|
|
|
|
model NOR4_X2
|
|
(A1, A2, A3, A4,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = nor;
|
|
simulation_function = nor;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
input (A4) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (net_1, A4, net_0);
|
|
primitive = _or (net_2, A3, net_1);
|
|
primitive = _or (A1, A2, net_2);
|
|
)
|
|
) // end model NOR4_X2
|
|
|
|
|
|
model NOR4_X4
|
|
(A1, A2, A3, A4,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = nor;
|
|
simulation_function = nor;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
input (A4) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _or (net_1, A4, net_0);
|
|
primitive = _or (net_2, A3, net_1);
|
|
primitive = _or (A1, A2, net_2);
|
|
)
|
|
) // end model NOR4_X4
|
|
|
|
|
|
model OAI211_X1
|
|
(A, B, C1, C2,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B) ( )
|
|
input (C1) ( )
|
|
input (C2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (net_1, B, net_0);
|
|
primitive = _and (net_2, A, net_1);
|
|
primitive = _or (C1, C2, net_2);
|
|
)
|
|
) // end model OAI211_X1
|
|
|
|
|
|
model OAI211_X2
|
|
(A, B, C1, C2,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B) ( )
|
|
input (C1) ( )
|
|
input (C2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (net_1, B, net_0);
|
|
primitive = _and (net_2, A, net_1);
|
|
primitive = _or (C1, C2, net_2);
|
|
)
|
|
) // end model OAI211_X2
|
|
|
|
|
|
model OAI211_X4
|
|
(A, B, C1, C2,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B) ( )
|
|
input (C1) ( )
|
|
input (C2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (net_1, B, net_0);
|
|
primitive = _and (net_2, A, net_1);
|
|
primitive = _or (C1, C2, net_2);
|
|
)
|
|
) // end model OAI211_X4
|
|
|
|
|
|
model OAI21_X1
|
|
(A, B1, B2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (A, net_1, net_0);
|
|
primitive = _or (B1, B2, net_1);
|
|
)
|
|
) // end model OAI21_X1
|
|
|
|
|
|
model OAI21_X2
|
|
(A, B1, B2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (A, net_1, net_0);
|
|
primitive = _or (B1, B2, net_1);
|
|
)
|
|
) // end model OAI21_X2
|
|
|
|
|
|
model OAI21_X4
|
|
(A, B1, B2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (A, net_1, net_0);
|
|
primitive = _or (B1, B2, net_1);
|
|
)
|
|
) // end model OAI21_X4
|
|
|
|
|
|
model OAI221_X1
|
|
(A, B1, B2, C1,
|
|
C2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
input (C1) ( )
|
|
input (C2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (net_1, net_3, net_0);
|
|
primitive = _and (net_2, A, net_1);
|
|
primitive = _or (C1, C2, net_2);
|
|
primitive = _or (B1, B2, net_3);
|
|
)
|
|
) // end model OAI221_X1
|
|
|
|
|
|
model OAI221_X2
|
|
(A, B1, B2, C1,
|
|
C2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
input (C1) ( )
|
|
input (C2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (net_1, net_3, net_0);
|
|
primitive = _and (net_2, A, net_1);
|
|
primitive = _or (C1, C2, net_2);
|
|
primitive = _or (B1, B2, net_3);
|
|
)
|
|
) // end model OAI221_X2
|
|
|
|
|
|
model OAI221_X4
|
|
(A, B1, B2, C1,
|
|
C2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
input (C1) ( )
|
|
input (C2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _inv (net_1, net_0);
|
|
primitive = _inv (net_2, net_1);
|
|
primitive = _and (net_3, net_5, net_2);
|
|
primitive = _and (net_4, A, net_3);
|
|
primitive = _or (C1, C2, net_4);
|
|
primitive = _or (B1, B2, net_5);
|
|
)
|
|
) // end model OAI221_X4
|
|
|
|
|
|
model OAI222_X1
|
|
(A1, A2, B1, B2,
|
|
C1, C2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
input (C1) ( )
|
|
input (C2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (net_1, net_4, net_0);
|
|
primitive = _and (net_2, net_3, net_1);
|
|
primitive = _or (A1, A2, net_2);
|
|
primitive = _or (B1, B2, net_3);
|
|
primitive = _or (C1, C2, net_4);
|
|
)
|
|
) // end model OAI222_X1
|
|
|
|
|
|
model OAI222_X2
|
|
(A1, A2, B1, B2,
|
|
C1, C2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
input (C1) ( )
|
|
input (C2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (net_1, net_4, net_0);
|
|
primitive = _and (net_2, net_3, net_1);
|
|
primitive = _or (A1, A2, net_2);
|
|
primitive = _or (B1, B2, net_3);
|
|
primitive = _or (C1, C2, net_4);
|
|
)
|
|
) // end model OAI222_X2
|
|
|
|
|
|
model OAI222_X4
|
|
(A1, A2, B1, B2,
|
|
C1, C2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
input (C1) ( )
|
|
input (C2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _inv (net_1, net_0);
|
|
primitive = _inv (net_2, net_1);
|
|
primitive = _and (net_3, net_6, net_2);
|
|
primitive = _and (net_4, net_5, net_3);
|
|
primitive = _or (A1, A2, net_4);
|
|
primitive = _or (B1, B2, net_5);
|
|
primitive = _or (C1, C2, net_6);
|
|
)
|
|
) // end model OAI222_X4
|
|
|
|
|
|
model OAI22_X1
|
|
(A1, A2, B1, B2,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (net_1, net_2, net_0);
|
|
primitive = _or (A1, A2, net_1);
|
|
primitive = _or (B1, B2, net_2);
|
|
)
|
|
) // end model OAI22_X1
|
|
|
|
|
|
model OAI22_X2
|
|
(A1, A2, B1, B2,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (net_1, net_2, net_0);
|
|
primitive = _or (A1, A2, net_1);
|
|
primitive = _or (B1, B2, net_2);
|
|
)
|
|
) // end model OAI22_X2
|
|
|
|
|
|
model OAI22_X4
|
|
(A1, A2, B1, B2,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (net_1, net_2, net_0);
|
|
primitive = _or (A1, A2, net_1);
|
|
primitive = _or (B1, B2, net_2);
|
|
)
|
|
) // end model OAI22_X4
|
|
|
|
|
|
model OAI33_X1
|
|
(A1, A2, A3, B1,
|
|
B2, B3, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
input (B1) ( )
|
|
input (B2) ( )
|
|
input (B3) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _and (net_1, net_3, net_0);
|
|
primitive = _or (net_2, A3, net_1);
|
|
primitive = _or (A1, A2, net_2);
|
|
primitive = _or (net_4, B3, net_3);
|
|
primitive = _or (B1, B2, net_4);
|
|
)
|
|
) // end model OAI33_X1
|
|
|
|
|
|
model OR2_X1
|
|
(A1, A2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = or;
|
|
simulation_function = or;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _or (A1, A2, ZN);
|
|
)
|
|
) // end model OR2_X1
|
|
|
|
|
|
model OR2_X2
|
|
(A1, A2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = or;
|
|
simulation_function = or;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _or (A1, A2, ZN);
|
|
)
|
|
) // end model OR2_X2
|
|
|
|
|
|
model OR2_X4
|
|
(A1, A2, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = or;
|
|
simulation_function = or;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _or (A1, A2, ZN);
|
|
)
|
|
) // end model OR2_X4
|
|
|
|
|
|
model OR3_X1
|
|
(A1, A2, A3, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = or;
|
|
simulation_function = or;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _or (net_0, A3, ZN);
|
|
primitive = _or (A1, A2, net_0);
|
|
)
|
|
) // end model OR3_X1
|
|
|
|
|
|
model OR3_X2
|
|
(A1, A2, A3, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = or;
|
|
simulation_function = or;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _or (net_0, A3, ZN);
|
|
primitive = _or (A1, A2, net_0);
|
|
)
|
|
) // end model OR3_X2
|
|
|
|
|
|
model OR3_X4
|
|
(A1, A2, A3, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = or;
|
|
simulation_function = or;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _or (net_0, A3, ZN);
|
|
primitive = _or (A1, A2, net_0);
|
|
)
|
|
) // end model OR3_X4
|
|
|
|
|
|
model OR4_X1
|
|
(A1, A2, A3, A4,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = or;
|
|
simulation_function = or;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
input (A4) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _or (net_0, A4, ZN);
|
|
primitive = _or (net_1, A3, net_0);
|
|
primitive = _or (A1, A2, net_1);
|
|
)
|
|
) // end model OR4_X1
|
|
|
|
|
|
model OR4_X2
|
|
(A1, A2, A3, A4,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = or;
|
|
simulation_function = or;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
input (A4) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _or (net_0, A4, ZN);
|
|
primitive = _or (net_1, A3, net_0);
|
|
primitive = _or (A1, A2, net_1);
|
|
)
|
|
) // end model OR4_X2
|
|
|
|
|
|
model OR4_X4
|
|
(A1, A2, A3, A4,
|
|
ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = or;
|
|
simulation_function = or;
|
|
|
|
input (A1) ( )
|
|
input (A2) ( )
|
|
input (A3) ( )
|
|
input (A4) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _or (net_0, A4, ZN);
|
|
primitive = _or (net_1, A3, net_0);
|
|
primitive = _or (A1, A2, net_1);
|
|
)
|
|
) // end model OR4_X4
|
|
|
|
|
|
model SDFFRS_X1
|
|
(CK, D, Q, QN,
|
|
RN, SE, SI, SN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (CK) ( posedge_clock; )
|
|
input (D) ( )
|
|
input (RN) ( active_low_reset; )
|
|
input (SE) ( )
|
|
input (SI) ( )
|
|
input (SN) ( active_low_set; )
|
|
output (Q) ( )
|
|
output (QN) ( )
|
|
(
|
|
primitive = _dff (net_0, net_1, CK, net_2, IQ, IQN);
|
|
primitive = _inv (SN, net_0);
|
|
primitive = _inv (RN, net_1);
|
|
primitive = _or (net_3, net_4, net_2);
|
|
primitive = _and (SE, SI, net_3);
|
|
primitive = _and (D, net_5, net_4);
|
|
primitive = _inv (SE, net_5);
|
|
primitive = _buf (IQ, Q);
|
|
primitive = _buf (IQN, QN);
|
|
)
|
|
) // end model SDFFRS_X1
|
|
|
|
|
|
model SDFFRS_X2
|
|
(CK, D, Q, QN,
|
|
RN, SE, SI, SN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (CK) ( posedge_clock; )
|
|
input (D) ( )
|
|
input (RN) ( active_low_reset; )
|
|
input (SE) ( )
|
|
input (SI) ( )
|
|
input (SN) ( active_low_set; )
|
|
output (Q) ( )
|
|
output (QN) ( )
|
|
(
|
|
primitive = _dff (net_0, net_1, CK, net_2, IQ, IQN);
|
|
primitive = _inv (SN, net_0);
|
|
primitive = _inv (RN, net_1);
|
|
primitive = _or (net_3, net_4, net_2);
|
|
primitive = _and (SE, SI, net_3);
|
|
primitive = _and (D, net_5, net_4);
|
|
primitive = _inv (SE, net_5);
|
|
primitive = _buf (IQ, Q);
|
|
primitive = _buf (IQN, QN);
|
|
)
|
|
) // end model SDFFRS_X2
|
|
|
|
|
|
model SDFFR_X1
|
|
(CK, D, Q, QN,
|
|
RN, SE, SI)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (CK) ( posedge_clock; )
|
|
input (D) ( )
|
|
input (RN) ( active_low_reset; )
|
|
input (SE) ( )
|
|
input (SI) ( )
|
|
output (Q) ( )
|
|
output (QN) ( )
|
|
(
|
|
primitive = _dff ( , net_0, CK, net_1, IQ, IQN);
|
|
primitive = _inv (RN, net_0);
|
|
primitive = _or (net_2, net_3, net_1);
|
|
primitive = _and (SE, SI, net_2);
|
|
primitive = _and (D, net_4, net_3);
|
|
primitive = _inv (SE, net_4);
|
|
primitive = _buf (IQ, Q);
|
|
primitive = _buf (IQN, QN);
|
|
)
|
|
) // end model SDFFR_X1
|
|
|
|
|
|
model SDFFR_X2
|
|
(CK, D, Q, QN,
|
|
RN, SE, SI)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (CK) ( posedge_clock; )
|
|
input (D) ( )
|
|
input (RN) ( active_low_reset; )
|
|
input (SE) ( )
|
|
input (SI) ( )
|
|
output (Q) ( )
|
|
output (QN) ( )
|
|
(
|
|
primitive = _dff ( , net_0, CK, net_1, IQ, IQN);
|
|
primitive = _inv (RN, net_0);
|
|
primitive = _or (net_2, net_3, net_1);
|
|
primitive = _and (SE, SI, net_2);
|
|
primitive = _and (D, net_4, net_3);
|
|
primitive = _inv (SE, net_4);
|
|
primitive = _buf (IQ, Q);
|
|
primitive = _buf (IQN, QN);
|
|
)
|
|
) // end model SDFFR_X2
|
|
|
|
|
|
model SDFFS_X1
|
|
(CK, D, Q, QN,
|
|
SE, SI, SN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (CK) ( posedge_clock; )
|
|
input (D) ( )
|
|
input (SE) ( )
|
|
input (SI) ( )
|
|
input (SN) ( active_low_set; )
|
|
output (Q) ( )
|
|
output (QN) ( )
|
|
(
|
|
primitive = _dff (net_0, , CK, net_1, IQ, IQN);
|
|
primitive = _inv (SN, net_0);
|
|
primitive = _or (net_2, net_3, net_1);
|
|
primitive = _and (SE, SI, net_2);
|
|
primitive = _and (D, net_4, net_3);
|
|
primitive = _inv (SE, net_4);
|
|
primitive = _buf (IQ, Q);
|
|
primitive = _buf (IQN, QN);
|
|
)
|
|
) // end model SDFFS_X1
|
|
|
|
|
|
model SDFFS_X2
|
|
(CK, D, Q, QN,
|
|
SE, SI, SN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (CK) ( posedge_clock; )
|
|
input (D) ( )
|
|
input (SE) ( )
|
|
input (SI) ( )
|
|
input (SN) ( active_low_set; )
|
|
output (Q) ( )
|
|
output (QN) ( )
|
|
(
|
|
primitive = _dff (net_0, , CK, net_1, IQ, IQN);
|
|
primitive = _inv (SN, net_0);
|
|
primitive = _or (net_2, net_3, net_1);
|
|
primitive = _and (SE, SI, net_2);
|
|
primitive = _and (D, net_4, net_3);
|
|
primitive = _inv (SE, net_4);
|
|
primitive = _buf (IQ, Q);
|
|
primitive = _buf (IQN, QN);
|
|
)
|
|
) // end model SDFFS_X2
|
|
|
|
|
|
model SDFF_X1
|
|
(CK, D, Q, QN,
|
|
SE, SI)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (CK) ( posedge_clock; )
|
|
input (D) ( )
|
|
input (SE) ( )
|
|
input (SI) ( )
|
|
output (Q) ( )
|
|
output (QN) ( )
|
|
(
|
|
primitive = _dff ( , , CK, net_0, IQ, IQN);
|
|
primitive = _or (net_1, net_2, net_0);
|
|
primitive = _and (SE, SI, net_1);
|
|
primitive = _and (D, net_3, net_2);
|
|
primitive = _inv (SE, net_3);
|
|
primitive = _buf (IQ, Q);
|
|
primitive = _buf (IQN, QN);
|
|
)
|
|
) // end model SDFF_X1
|
|
|
|
|
|
model SDFF_X2
|
|
(CK, D, Q, QN,
|
|
SE, SI)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (CK) ( posedge_clock; )
|
|
input (D) ( )
|
|
input (SE) ( )
|
|
input (SI) ( )
|
|
output (Q) ( )
|
|
output (QN) ( )
|
|
(
|
|
primitive = _dff ( , , CK, net_0, IQ, IQN);
|
|
primitive = _or (net_1, net_2, net_0);
|
|
primitive = _and (SE, SI, net_1);
|
|
primitive = _and (D, net_3, net_2);
|
|
primitive = _inv (SE, net_3);
|
|
primitive = _buf (IQ, Q);
|
|
primitive = _buf (IQN, QN);
|
|
)
|
|
) // end model SDFF_X2
|
|
|
|
|
|
model TBUF_X1
|
|
(A, EN, Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (EN) ( )
|
|
output (Z) ( )
|
|
(
|
|
primitive = _tsl (A, EN, Z);
|
|
)
|
|
) // end model TBUF_X1
|
|
|
|
|
|
model TBUF_X16
|
|
(A, EN, Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (EN) ( )
|
|
output (Z) ( )
|
|
(
|
|
primitive = _tsl (A, EN, Z);
|
|
)
|
|
) // end model TBUF_X16
|
|
|
|
|
|
model TBUF_X2
|
|
(A, EN, Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (EN) ( )
|
|
output (Z) ( )
|
|
(
|
|
primitive = _tsl (A, EN, Z);
|
|
)
|
|
) // end model TBUF_X2
|
|
|
|
|
|
model TBUF_X4
|
|
(A, EN, Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (EN) ( )
|
|
output (Z) ( )
|
|
(
|
|
primitive = _tsl (A, EN, Z);
|
|
)
|
|
) // end model TBUF_X4
|
|
|
|
|
|
model TBUF_X8
|
|
(A, EN, Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (EN) ( )
|
|
output (Z) ( )
|
|
(
|
|
primitive = _tsl (A, EN, Z);
|
|
)
|
|
) // end model TBUF_X8
|
|
|
|
|
|
model TINV_X1
|
|
(EN, I, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (EN) ( )
|
|
input (I) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _tsl (net_0, EN, ZN);
|
|
primitive = _inv (I, net_0);
|
|
)
|
|
) // end model TINV_X1
|
|
|
|
|
|
model TLAT_X1
|
|
(D, G, OE, Q)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (D) ( )
|
|
input (G) ( active_high_clock; )
|
|
input (OE) ( )
|
|
output (Q) ( )
|
|
(
|
|
primitive = _dlat ( , , G, D, IQ, );
|
|
primitive = _tsl (IQ, net_0, Q);
|
|
primitive = _inv (OE, net_0);
|
|
)
|
|
) // end model TLAT_X1
|
|
|
|
|
|
model XNOR2_X1
|
|
(A, B, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _xor (A, B, net_0);
|
|
)
|
|
) // end model XNOR2_X1
|
|
|
|
|
|
model XNOR2_X2
|
|
(A, B, ZN)
|
|
(
|
|
model_source = liberty_cell;
|
|
|
|
input (A) ( )
|
|
input (B) ( )
|
|
output (ZN) ( )
|
|
(
|
|
primitive = _inv (net_0, ZN);
|
|
primitive = _xor (A, B, net_0);
|
|
)
|
|
) // end model XNOR2_X2
|
|
|
|
|
|
model XOR2_X1
|
|
(A, B, Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = xor;
|
|
simulation_function = xor;
|
|
|
|
input (A) ( )
|
|
input (B) ( )
|
|
output (Z) ( )
|
|
(
|
|
primitive = _xor (A, B, Z);
|
|
)
|
|
) // end model XOR2_X1
|
|
|
|
|
|
model XOR2_X2
|
|
(A, B, Z)
|
|
(
|
|
model_source = liberty_cell;
|
|
cell_type = xor;
|
|
simulation_function = xor;
|
|
|
|
input (A) ( )
|
|
input (B) ( )
|
|
output (Z) ( )
|
|
(
|
|
primitive = _xor (A, B, Z);
|
|
)
|
|
) // end model XOR2_X2
|