URL
https://opencores.org/ocsvn/sdcard_mass_storage_controller/sdcard_mass_storage_controller/trunk
Subversion Repositories sdcard_mass_storage_controller
[/] [sdcard_mass_storage_controller/] [trunk/] [backend/] [Actel/] [proasic3_redused.v] - Rev 13
Compare with Previous | Blame | View Log
/******************************************************************** Actel ProASIC3 Verilog Library NAME: proasic3.v DATE: Oct 31, 2006 *********************************************************************/ `timescale 1 ns / 100 ps //---------------------------------------------------------------------- //--- VERILOG LIBRRAY PRIMITIVE SECTION //---------------------------------------------------------------------- primitive Dffpr (Q, D, CLK, CLR, PRE, E, NOTIFIER_REG); output Q; input NOTIFIER_REG; input D, CLK, E, CLR, PRE; reg Q; table // D CLK CLR PRE E NOTIFIER_REG : Qt : Qt+1 1 (01) 1 1 0 ? : ? : 1; // clocked data 0 (01) 1 1 0 ? : ? : 0; // clocked data 1 (01) 1 1 x ? : 1 : 1; // clocked data 0 (01) 1 1 x ? : 0 : 0; 0 (01) 1 1 x ? : 1 : x; 1 (01) 1 1 x ? : 0 : x; 0 (01) x 1 0 ? : ? : 0; // pessimism 1 (01) 1 x 0 ? : ? : 1; // pessimism ? ? 1 x ? ? : 1 : 1; // pessimism 0 ? 1 x ? ? : x : x; // pessimism ? ? 1 x ? ? : 0 : x; ? ? x x ? ? : ? : x; ? ? x 0 ? ? : ? : x; ? ? x 1 ? ? : 0 : 0; ? ? x 1 ? ? : 1 : x; ? ? 0 ? ? ? : ? : 0; ? ? 1 0 ? ? : ? : 1; 1 (x1) 1 1 0 ? : 1 : 1; // reducing pessimism 0 (x1) 1 1 0 ? : 0 : 0; 1 (0x) 1 1 0 ? : 1 : 1; 0 (0x) 1 1 0 ? : 0 : 0; 1 (x1) 1 1 x ? : 1 : 1; // reducing pessimism 0 (x1) 1 1 x ? : 0 : 0; 1 (0x) 1 1 x ? : 1 : 1; 0 (0x) 1 1 x ? : 0 : 0; ? (?1) 1 1 1 ? : ? : -; //no action for CE = 1 ? (0x) 1 1 1 ? : ? : -; //no action for CE = 1 ? ? ? ? * ? : ? : -; ? (?0) ? ? ? ? : ? : -; // ignore falling clock ? (1x) ? ? ? ? : ? : -; // ignore falling clock * ? ? ? ? ? : ? : -; // ignore data edges ? ? (?1) ? ? ? : ? : -; // ignore the edges on ? ? ? (?1) ? ? : ? : -; // set and clear ? ? ? ? ? * : ? : x; endtable endprimitive primitive UDP_MUX2 (Q, A, B, SL); output Q; input A, B, SL; // FUNCTION : TWO TO ONE MULTIPLEXER table // A B SL : Q 0 0 ? : 0 ; 1 1 ? : 1 ; 0 ? 1 : 0 ; 1 ? 1 : 1 ; ? 0 0 : 0 ; ? 1 0 : 1 ; endtable endprimitive primitive UDPN_MUX2 (Q, A, B, SL); output Q; input A, B, SL; // FUNCTION : TWO TO ONE MULTIPLEXER table // A B SL : Q 0 0 ? : 1 ; 1 1 ? : 0 ; 0 ? 1 : 1 ; 1 ? 1 : 0 ; ? 0 0 : 1 ; ? 1 0 : 0 ; endtable endprimitive primitive UFPRB (Q, D, CP, RB, NOTIFIER_REG); output Q; input NOTIFIER_REG, D, CP, RB; reg Q; // FUNCTION : POSITIVE EDGE TRIGGERED D FLIP-FLOP WITH ACTIVE LOW // ASYNCHRONOUS CLEAR ( Q OUTPUT UDP ). table // D CP RB NOTIFIER_REG : Qt : Qt+1 1 (01) 1 ? : ? : 1; // clocked data 0 (01) 1 ? : ? : 0; 0 (01) x ? : ? : 0; // pessimism 0 ? x ? : 0 : 0; // pessimism 1 0 x ? : 0 : 0; // pessimism 1 x (?x) ? : 0 : 0; // pessimism 1 1 (?x) ? : 0 : 0; // pessimism x 0 x ? : 0 : 0; // pessimism x x (?x) ? : 0 : 0; // pessimism x 1 (?x) ? : 0 : 0; // pessimism 1 (x1) 1 ? : 1 : 1; // reducing pessimism 0 (x1) 1 ? : 0 : 0; 1 (0x) 1 ? : 1 : 1; 0 (0x) 1 ? : 0 : 0; ? ? 0 ? : ? : 0; // asynchronous clear ? (?0) ? ? : ? : -; // ignore falling clock ? (1x) ? ? : ? : -; // ignore falling clock * ? ? ? : ? : -; // ignore the edges on data ? ? (?1) ? : ? : -; // ignore the edges on clear ? ? ? * : ? : x; endtable endprimitive //---------------------------------------------------------------------- //--- VERILOG LIBRRAY MODULES SECTION //---------------------------------------------------------------------- /*-------------------------------------------------------------------- CELL NAME : AND2 CELL TYPE : comb CELL LOGIC : Y = A & B ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module AND2(Y,A,B); input A,B; output Y; and U2(Y, A, B); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : AO1 CELL TYPE : comb CELL LOGIC : Y = (A & B) + C ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module AO1(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; and U142(NET_0_0, A, B); or U143(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : AO1A CELL TYPE : comb CELL LOGIC : Y = (!A & B) + C ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module AO1A(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; not INV_31(A_, A); and U147(NET_0_0, A_, B); or U148(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : AO1B CELL TYPE : comb CELL LOGIC : Y = (A & B) + !C ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module AO1B(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; not INV_32(C_, C); and U152(NET_0_0, A, B); or U153(Y, NET_0_0, C_); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : AO1D CELL TYPE : comb CELL LOGIC : Y = (!A & !B) + C ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module AO1D(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; not INV_35(A_, A); not INV_36(B_, B); and U162(NET_0_0, A_, B_); or U163(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : AOI1 CELL TYPE : comb CELL LOGIC : Y = !(A & B + C) ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module AOI1(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; and U192(NET_0_0, A, B); nor U193(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : AOI1B CELL TYPE : comb CELL LOGIC : Y = !(A & B + !C) ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module AOI1B(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; not INV_45(C_, C); and U202(NET_0_0, A, B); nor U203(Y, NET_0_0, C_); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : AO1C CELL TYPE : comb CELL LOGIC : Y = (!A & B) + !C ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module AO1C(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; not INV_33(A_, A); not INV_34(C_, C); and U157(NET_0_0, A_, B); or U158(Y, NET_0_0, C_); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : AX1 CELL TYPE : comb CELL LOGIC : Y = (!A & B) ^ C ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module AX1(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; not INV_57(A_, A); and U245(NET_0_0, A_, B); xor U246(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : AX1B CELL TYPE : comb CELL LOGIC : Y = (!A & !B) ^ C ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module AX1B(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; not INV_59(A_, A); not INV_60(B_, B); and U255(NET_0_0, A_, B_); xor U256(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : AX1C CELL TYPE : comb CELL LOGIC : Y = (A & B) ^ C ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module AX1C(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; and U260(NET_0_0, A, B); xor U261(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : AX1D CELL TYPE : comb CELL LOGIC : Y = !((!A & !B) ^ C) ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module AX1D(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; not INV_61(A_, A); not INV_62(B_, B); and U265(NET_0_0, A_, B_); xnor U266(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : AX1E CELL TYPE : comb CELL LOGIC : Y = !((A & B) ^ C) ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module AX1E(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; and U270(NET_0_0, A, B); xnor U271(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : CLKINT CELL TYPE : comb CELL LOGIC : Y = A ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module CLKINT(Y,A); input A; output Y; assign Y = A; endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------- CELL NAME : DFN1C1 CELL TYPE : sequential Logic CELL SEQ EQN : DFF[Q=Q,CLK =CLK, CLR=CLR, D=D ]; ----------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module DFN1C1(CLR, CLK, Q,D); input D,CLR,CLK; output Q; reg NOTIFY_REG; not INV_CLR_0(CLR_0, CLR); UFPRB DF_0( Q, D, CLK, CLR_0, NOTIFY_REG ); // some temp signals created for timing checking sections not U0_I2 (_CLR0, CLR); buf U_c0 (Enable01,_CLR0); buf U_c2 (Enable02, _CLR0); buf U_c6 (Enable05, _CLR0); //-------------------------------------------------------------- // Timing Checking Section //------------------------------------------------------------- specify specparam tpdLH_CLK_to_Q = (0.1:0.1:0.1); specparam tpdHL_CLK_to_Q = (0.1:0.1:0.1); specparam tpdLH_CLR_to_Q = (0.1:0.1:0.1); specparam tpdHL_CLR_to_Q = (0.1:0.1:0.1); //check timing delay for output (posedge CLK => (Q +: D))=(tpdLH_CLK_to_Q, tpdHL_CLK_to_Q); (posedge CLR => (Q +: 1'b0)) = (tpdLH_CLR_to_Q, tpdHL_CLR_to_Q); //checking setup and hold timing for inputs $setup(posedge D,posedge CLK &&& Enable01, 0.0, NOTIFY_REG); $setup(negedge D,posedge CLK &&& Enable01, 0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable01, posedge D,0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable01, negedge D,0.0, NOTIFY_REG); //checking timing for control signals $hold(posedge CLK, negedge CLR,0.0, NOTIFY_REG); //checking the pulse width $width(posedge CLK &&& Enable05 ,0, 0, NOTIFY_REG); $width(negedge CLK &&& Enable05, 0, 0, NOTIFY_REG); $width(posedge CLR, 0.0, 0, NOTIFY_REG); //checing the recovery data $recovery(negedge CLR, posedge CLK, 0.0, NOTIFY_REG); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------- CELL NAME : DFN1E1C1 CELL TYPE : sequential Logic CELL SEQ EQN : DFF[Q=Q,CLK =CLK, E=E, CLR=CLR, D=D ]; ----------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module DFN1E1C1(CLR, E, CLK, Q,D); input D,CLR,E,CLK; output Q; supply1 VCC_0; reg NOTIFY_REG; not INV_CLR_0(CLR_0, CLR); not INV_EN_0(E_0, E); Dffpr DF_0(Q, D,CLK,CLR_0, VCC_0, E_0, NOTIFY_REG); // some temp signals created for timing checking sections not U0_I2 (_CLR0, CLR); and U_c0 (Enable01, E, _CLR0); and U_c2 (Enable02, E, _CLR0); buf U_c4 (Enable04, E); buf U_c6 (Enable05, _CLR0); //-------------------------------------------------------------- // Timing Checking Section //------------------------------------------------------------- specify specparam tpdLH_CLK_to_Q = (0.1:0.1:0.1); specparam tpdHL_CLK_to_Q = (0.1:0.1:0.1); specparam tpdLH_CLR_to_Q = (0.1:0.1:0.1); specparam tpdHL_CLR_to_Q = (0.1:0.1:0.1); //check timing delay for output (posedge CLK => (Q +: D))=(tpdLH_CLK_to_Q, tpdHL_CLK_to_Q); (posedge CLR => (Q +: 1'b0)) = (tpdLH_CLR_to_Q, tpdHL_CLR_to_Q); //checking setup and hold timing for inputs $setup(posedge D,posedge CLK &&& Enable01, 0.0, NOTIFY_REG); $setup(negedge D,posedge CLK &&& Enable01, 0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable01, posedge D,0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable01, negedge D,0.0, NOTIFY_REG); //checking timing for control signals $setup(posedge E,posedge CLK &&& Enable05, 0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable05, posedge E,0.0, NOTIFY_REG); $setup(negedge E,posedge CLK &&& Enable05, 0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable05, negedge E,0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable04, negedge CLR,0.0, NOTIFY_REG); //checking the pulse width $width(posedge CLK &&& Enable05 ,0, 0, NOTIFY_REG); $width(negedge CLK &&& Enable05, 0, 0, NOTIFY_REG); $width(posedge CLR, 0.0, 0, NOTIFY_REG); //checing the recovery data $recovery(negedge CLR, posedge CLK &&& Enable04, 0.0, NOTIFY_REG); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------- CELL NAME : DFN1E0C1 CELL TYPE : sequential Logic CELL SEQ EQN : DFF[Q=Q,CLK =CLK, _E=E, CLR=CLR, D=D ]; ----------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module DFN1E0C1(CLR, E, CLK, Q,D); input D,CLR,E,CLK; output Q; supply1 VCC_0; reg NOTIFY_REG; not INV_CLR_0(CLR_0, CLR); Dffpr DF_0(Q, D,CLK,CLR_0, VCC_0, E, NOTIFY_REG); // some temp signals created for timing checking sections not U0_I2 (_CLR0, CLR); not U0_I3 (_E0, E); and U_c0 (Enable01, _E0, _CLR0); and U_c2 (Enable02, _E0, _CLR0); buf U_c4 (Enable04, _E0); buf U_c6 (Enable05, _CLR0); //-------------------------------------------------------------- // Timing Checking Section //------------------------------------------------------------- specify specparam tpdLH_CLK_to_Q = (0.1:0.1:0.1); specparam tpdHL_CLK_to_Q = (0.1:0.1:0.1); specparam tpdLH_CLR_to_Q = (0.1:0.1:0.1); specparam tpdHL_CLR_to_Q = (0.1:0.1:0.1); //check timing delay for output (posedge CLK => (Q +: D))=(tpdLH_CLK_to_Q, tpdHL_CLK_to_Q); (posedge CLR => (Q +: 1'b0)) = (tpdLH_CLR_to_Q, tpdHL_CLR_to_Q); //checking setup and hold timing for inputs $setup(posedge D,posedge CLK &&& Enable01, 0.0, NOTIFY_REG); $setup(negedge D,posedge CLK &&& Enable01, 0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable01, posedge D,0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable01, negedge D,0.0, NOTIFY_REG); //checking timing for control signals $setup(posedge E,posedge CLK &&& Enable05, 0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable05, posedge E,0.0, NOTIFY_REG); $setup(negedge E,posedge CLK &&& Enable05, 0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable05, negedge E,0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable04, negedge CLR,0.0, NOTIFY_REG); //checking the pulse width $width(posedge CLK &&& Enable05 ,0, 0, NOTIFY_REG); $width(negedge CLK &&& Enable05, 0, 0, NOTIFY_REG); $width(posedge CLR, 0.0, 0, NOTIFY_REG); //checing the recovery data $recovery(negedge CLR, posedge CLK &&& Enable04, 0.0, NOTIFY_REG); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------- CELL NAME : DFN1E1P1 CELL TYPE : sequential Logic CELL SEQ EQN : DFF[Q=Q,CLK =CLK, E=E, PRE=PRE, D=D ]; ----------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module DFN1E1P1(PRE, E, CLK, Q,D); input D,PRE,E,CLK; output Q; supply1 VCC_0; reg NOTIFY_REG; not INV_PRE_0(PRE_0, PRE); not INV_EN_0(E_0, E); Dffpr DF_0(Q, D,CLK,VCC_0, PRE_0, E_0, NOTIFY_REG); // some temp signals created for timing checking sections not U0_I1 (_PRE0, PRE); and U_c0 (Enable01, E, _PRE0); buf U_c2 (Enable02, E); and U_c4 (Enable04, E, _PRE0); buf U_c6 (Enable05, _PRE0); //-------------------------------------------------------------- // Timing Checking Section //------------------------------------------------------------- specify specparam tpdLH_CLK_to_Q = (0.1:0.1:0.1); specparam tpdHL_CLK_to_Q = (0.1:0.1:0.1); specparam tpdLH_PRE_to_Q = (0.1:0.1:0.1); specparam tpdHL_PRE_to_Q = (0.1:0.1:0.1); //check timing delay for output (posedge CLK => (Q +: D))=(tpdLH_CLK_to_Q, tpdHL_CLK_to_Q); (posedge PRE => (Q +: 1'b1)) = (tpdLH_PRE_to_Q, tpdHL_PRE_to_Q); //checking setup and hold timing for inputs $setup(posedge D,posedge CLK &&& Enable01, 0.0, NOTIFY_REG); $setup(negedge D,posedge CLK &&& Enable01, 0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable01, posedge D,0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable01, negedge D,0.0, NOTIFY_REG); //checking timing for control signals $setup(posedge E,posedge CLK &&& Enable05, 0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable05, posedge E,0.0, NOTIFY_REG); $setup(negedge E,posedge CLK &&& Enable05, 0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable05, negedge E,0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable02, negedge PRE,0.0, NOTIFY_REG); //checking the pulse width $width(posedge CLK &&& Enable05 ,0, 0, NOTIFY_REG); $width(negedge CLK &&& Enable05, 0, 0, NOTIFY_REG); $width(posedge PRE, 0.0, 0, NOTIFY_REG); //checing the recovery data $recovery(negedge PRE, posedge CLK &&& Enable02, 0.0, NOTIFY_REG); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------- CELL NAME : DFN1P1 CELL TYPE : sequential Logic CELL SEQ EQN : DFF[Q=Q,CLK =CLK, PRE=PRE, D=D ]; ----------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module DFN1P1(PRE, CLK, Q,D); input D,PRE,CLK; output Q; supply1 VCC_0; supply0 GND_0; reg NOTIFY_REG; not INV_PRE_0(PRE_0, PRE); Dffpr DF_0(Q, D,CLK,VCC_0, PRE_0, GND_0, NOTIFY_REG); // some temp signals created for timing checking sections not U0_I1 (_PRE0, PRE); buf U_c0 (Enable01, _PRE0); buf U_c4 (Enable04, _PRE0); buf U_c6 (Enable05, _PRE0); //-------------------------------------------------------------- // Timing Checking Section //------------------------------------------------------------- specify specparam tpdLH_CLK_to_Q = (0.1:0.1:0.1); specparam tpdHL_CLK_to_Q = (0.1:0.1:0.1); specparam tpdLH_PRE_to_Q = (0.1:0.1:0.1); specparam tpdHL_PRE_to_Q = (0.1:0.1:0.1); //check timing delay for output (posedge CLK => (Q +: D))=(tpdLH_CLK_to_Q, tpdHL_CLK_to_Q); (posedge PRE => (Q +: 1'b1)) = (tpdLH_PRE_to_Q, tpdHL_PRE_to_Q); //checking setup and hold timing for inputs $setup(posedge D,posedge CLK &&& Enable01, 0.0, NOTIFY_REG); $setup(negedge D,posedge CLK &&& Enable01, 0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable01, posedge D,0.0, NOTIFY_REG); $hold(posedge CLK &&& Enable01, negedge D,0.0, NOTIFY_REG); //checking timing for control signals $hold(posedge CLK, negedge PRE,0.0, NOTIFY_REG); //checking the pulse width $width(posedge CLK &&& Enable05 ,0, 0, NOTIFY_REG); $width(negedge CLK &&& Enable05, 0, 0, NOTIFY_REG); $width(posedge PRE, 0.0, 0, NOTIFY_REG); //checing the recovery data $recovery(negedge PRE, posedge CLK, 0.0, NOTIFY_REG); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : GND CELL TYPE : comb CELL LOGIC : Y=0 ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module GND(Y); output Y; supply0 Y; specify specparam MacroType = "comb"; //pin to pin path delay endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : MX2 CELL TYPE : comb CELL LOGIC : Y = (A & !S) + (B & S) ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module MX2(Y,A,S,B); input A,S,B; output Y; wire NET_0_0, NET_0_1; not INV_110(S_, S); UDP_MUX2 U594(Y, A, B, S_); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_S_to_Y = (0.1:0.1:0.1); specparam tpdHL_S_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (S => Y ) = ( tpdLH_S_to_Y, tpdHL_S_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : NAND2 CELL TYPE : comb CELL LOGIC : Y = !(A & B) ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module NAND2(Y,A,B); input A,B; output Y; nand U610(Y, A, B); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : NOR2 CELL TYPE : comb CELL LOGIC : Y = !(A + B) ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module NOR2(Y,A,B); input A,B; output Y; nor U649(Y, A, B); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : NOR2A CELL TYPE : comb CELL LOGIC : Y = !(!A + B) ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module NOR2A(Y,A,B); input A,B; output Y; not INV_130(A_, A); nor U652(Y, A_, B); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : NOR2B CELL TYPE : comb CELL LOGIC : Y = !(!A + !B) ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module NOR2B(Y,A,B); input A,B; output Y; not INV_131(A_, A); not INV_132(B_, B); nor U655(Y, A_, B_); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : NOR3 CELL TYPE : comb CELL LOGIC : Y = !(A + B + C) ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module NOR3(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; or U662(NET_0_0, A, B); nor U663(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : NOR3A CELL TYPE : comb CELL LOGIC : Y = !(!A + B + C) ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module NOR3A(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; not INV_134(A_, A); or U667(NET_0_0, A_, B); nor U668(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : NOR3B CELL TYPE : comb CELL LOGIC : Y = !(!A + !B + C) ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module NOR3B(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; not INV_135(A_, A); not INV_136(B_, B); or U672(NET_0_0, A_, B_); nor U673(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : NOR3C CELL TYPE : comb CELL LOGIC : Y = !(!A + !B + !C) ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module NOR3C(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; not INV_137(A_, A); not INV_138(B_, B); not INV_139(C_, C); or U677(NET_0_0, A_, B_); nor U678(Y, NET_0_0, C_); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : OA1 CELL TYPE : comb CELL LOGIC : Y = (A + B) & C ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module OA1(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; or U692(NET_0_0, A, B); and U693(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : OA1A CELL TYPE : comb CELL LOGIC : Y = (!A + B) & C ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module OA1A(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; not INV_143(A_, A); or U697(NET_0_0, A_, B); and U698(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : OA1B CELL TYPE : comb CELL LOGIC : Y = !C & (A + B) ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module OA1B(Y,C,A,B); input C,A,B; output Y; wire NET_0_0; not INV_144(C_, C); and U701(Y, C_, NET_0_0); or U703(NET_0_0, A, B); specify specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : OA1C CELL TYPE : comb CELL LOGIC : Y = (!A + B) & !C ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module OA1C(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; not INV_145(A_, A); not INV_146(C_, C); or U707(NET_0_0, A_, B); and U708(Y, NET_0_0, C_); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : OR2 CELL TYPE : comb CELL LOGIC : Y = A + B ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module OR2(Y,A,B); input A,B; output Y; or U756(Y, A, B); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : OR2A CELL TYPE : comb CELL LOGIC : Y = !A + B ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module OR2A(Y,A,B); input A,B; output Y; not INV_156(A_, A); or U759(Y, A_, B); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : OR2B CELL TYPE : comb CELL LOGIC : Y = !A + !B ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module OR2B(Y,A,B); input A,B; output Y; not INV_157(A_, A); not INV_158(B_, B); or U762(Y, A_, B_); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : OR3 CELL TYPE : comb CELL LOGIC : Y = A + B + C ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module OR3(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; or U769(NET_0_0, A, B); or U770(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : OR3A CELL TYPE : comb CELL LOGIC : Y = !A + B + C ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module OR3A(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; not INV_160(A_, A); or U774(NET_0_0, A_, B); or U775(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : OR3B CELL TYPE : comb CELL LOGIC : Y = !A + !B + C ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module OR3B(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; not INV_161(A_, A); not INV_162(B_, B); or U779(NET_0_0, A_, B_); or U780(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : OR3C CELL TYPE : comb CELL LOGIC : Y = !A + !B + !C ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module OR3C(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; not INV_163(A_, A); not INV_164(B_, B); not INV_165(C_, C); or U784(NET_0_0, A_, B_); or U785(Y, NET_0_0, C_); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : OAI1 CELL TYPE : comb CELL LOGIC : Y = !((A + B) & C) ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module OAI1(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; or U732(NET_0_0, A, B); nand U733(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : VCC CELL TYPE : comb CELL LOGIC : Y=1 ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module VCC(Y); output Y; supply1 Y; specify specparam MacroType = "comb"; //pin to pin path delay endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : XA1B CELL TYPE : comb CELL LOGIC : Y = (A ^ B) & !C ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module XA1B(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; not INV_173(A_, A); not INV_174(B_, B); not INV_175(C_, C); UDP_MUX2 U949(NET_0_0, B, B_, A_); and U951(Y, NET_0_0, C_); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : XNOR2 CELL TYPE : comb CELL LOGIC : Y = !(A ^ B) ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module XNOR2(Y,A,B); input A,B; output Y; not INV_183(A_, A); not INV_184(B_, B); UDPN_MUX2 U972(Y, B, B_, A_); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : XNOR3 CELL TYPE : comb CELL LOGIC : Y = !(A ^ B ^ C) ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module XNOR3(Y,A,B,C); input A,B,C; output Y; wire NET_0_0; not INV_187(A_, A); not INV_188(B_, B); UDP_MUX2 U981(NET_0_0, B, B_, A_); xnor U983(Y, NET_0_0, C); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : XOR2 CELL TYPE : comb CELL LOGIC : Y = A ^ B ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module XOR2(Y,A,B); input A,B; output Y; not INV_193(A_, A); not INV_194(B_, B); UDP_MUX2 U998(Y, B, B_, A_); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults /*-------------------------------------------------------------------- CELL NAME : ZOR3 CELL TYPE : comb CELL LOGIC : Y = A & B & C + !A & !B & !C ---------------------------------------------------------------------*/ `suppress_faults `enable_portfaults `celldefine `delay_mode_path `timescale 1 ns / 100 ps module ZOR3(Y,A,B,C); input A,B,C; output Y; wire NET_0_0, NET_0_1, NET_0_2, NET_0_3; not INV_199(A_, A); not INV_200(B_, B); not INV_201(C_, C); and U1013(NET_0_0, A, B); UDP_MUX2 U1014(Y, NET_0_0, NET_0_2, C); and U1017(NET_0_2, A_, B_); specify specparam tpdLH_A_to_Y = (0.1:0.1:0.1); specparam tpdHL_A_to_Y = (0.1:0.1:0.1); specparam tpdLH_B_to_Y = (0.1:0.1:0.1); specparam tpdHL_B_to_Y = (0.1:0.1:0.1); specparam tpdLH_C_to_Y = (0.1:0.1:0.1); specparam tpdHL_C_to_Y = (0.1:0.1:0.1); specparam MacroType = "comb"; //pin to pin path delay (A => Y ) = ( tpdLH_A_to_Y, tpdHL_A_to_Y ); (B => Y ) = ( tpdLH_B_to_Y, tpdHL_B_to_Y ); (C => Y ) = ( tpdLH_C_to_Y, tpdHL_C_to_Y ); endspecify endmodule `endcelldefine `disable_portfaults `nosuppress_faults