//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// TSMC Library/IP Product /// Filename: tcbn28hpcplusbwp7t35p140lvt.v /// Technology: CLN28HT /// Product Type: Standard Cell /// Product Name: tcbn28hpcplusbwp7t35p140lvt /// Version: 110a ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //// /// STATEMENT OF USE /// /// This information contains confidential and proprietary information of TSMC. /// No part of this information may be reproduced, transmitted, transcribed, /// stored in a retrieval system, or translated into any human or computer /// language, in any form or by any means, electronic, mechanical, magnetic, /// optical, chemical, manual, or otherwise, without the prior written permission /// of TSMC. This information was prepared for informational purpose and is for /// use by TSMC's customers only. TSMC reserves the right to make changes in the /// information at any time and without notice. /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// `timescale 1ns/1ps `celldefine module AN2D0BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; and (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN2D1BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; and (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN2D2BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; and (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN2D4BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; and (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN2D8BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; and (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN2OPTPAD12BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; and (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN2OPTPAD1BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; and (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN2OPTPAD2BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; and (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN2OPTPAD4BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; and (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN2OPTPAD8BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; and (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN3D0BWP7T35P140LVT (A1, A2, A3, Z); input A1, A2, A3; output Z; and (Z, A1, A2, A3); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN3D1BWP7T35P140LVT (A1, A2, A3, Z); input A1, A2, A3; output Z; and (Z, A1, A2, A3); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN3D2BWP7T35P140LVT (A1, A2, A3, Z); input A1, A2, A3; output Z; and (Z, A1, A2, A3); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN3D4BWP7T35P140LVT (A1, A2, A3, Z); input A1, A2, A3; output Z; and (Z, A1, A2, A3); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN3D8BWP7T35P140LVT (A1, A2, A3, Z); input A1, A2, A3; output Z; and (Z, A1, A2, A3); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN4D0BWP7T35P140LVT (A1, A2, A3, A4, Z); input A1, A2, A3, A4; output Z; and (Z, A1, A2, A3, A4); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); (A4 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN4D1BWP7T35P140LVT (A1, A2, A3, A4, Z); input A1, A2, A3, A4; output Z; and (Z, A1, A2, A3, A4); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); (A4 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN4D2BWP7T35P140LVT (A1, A2, A3, A4, Z); input A1, A2, A3, A4; output Z; and (Z, A1, A2, A3, A4); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); (A4 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN4D4BWP7T35P140LVT (A1, A2, A3, A4, Z); input A1, A2, A3, A4; output Z; and (Z, A1, A2, A3, A4); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); (A4 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AN4D8BWP7T35P140LVT (A1, A2, A3, A4, Z); input A1, A2, A3, A4; output Z; and (Z, A1, A2, A3, A4); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); (A4 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ANTENNABWP7T35P140LVT (I); input I; buf (I_buf, I); endmodule `endcelldefine `celldefine module AO211D0BWP7T35P140LVT (A1, A2, B, C, Z); input A1, A2, B, C; output Z; and (I0_out, A1, A2); or (Z, I0_out, B, C); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && C == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B == 1'b0) (C => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO211D1BWP7T35P140LVT (A1, A2, B, C, Z); input A1, A2, B, C; output Z; and (I0_out, A1, A2); or (Z, I0_out, B, C); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && C == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B == 1'b0) (C => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO211D2BWP7T35P140LVT (A1, A2, B, C, Z); input A1, A2, B, C; output Z; and (I0_out, A1, A2); or (Z, I0_out, B, C); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && C == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B == 1'b0) (C => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO211D4BWP7T35P140LVT (A1, A2, B, C, Z); input A1, A2, B, C; output Z; and (I0_out, A1, A2); or (Z, I0_out, B, C); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && C == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B == 1'b0) (C => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO21D0BWP7T35P140LVT (A1, A2, B, Z); input A1, A2, B; output Z; and (I0_out, A1, A2); or (Z, I0_out, B); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (B => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO21D1BWP7T35P140LVT (A1, A2, B, Z); input A1, A2, B; output Z; and (I0_out, A1, A2); or (Z, I0_out, B); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (B => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO21D2BWP7T35P140LVT (A1, A2, B, Z); input A1, A2, B; output Z; and (I0_out, A1, A2); or (Z, I0_out, B); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (B => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO21D4BWP7T35P140LVT (A1, A2, B, Z); input A1, A2, B; output Z; and (I0_out, A1, A2); or (Z, I0_out, B); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (B => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO221D0BWP7T35P140LVT (A1, A2, B1, B2, C, Z); input A1, A2, B1, B2, C; output Z; and (I0_out, A1, A2); and (I1_out, B1, B2); or (Z, I0_out, I1_out, C); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (C => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO221D1BWP7T35P140LVT (A1, A2, B1, B2, C, Z); input A1, A2, B1, B2, C; output Z; and (I0_out, A1, A2); and (I1_out, B1, B2); or (Z, I0_out, I1_out, C); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (C => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO221D2BWP7T35P140LVT (A1, A2, B1, B2, C, Z); input A1, A2, B1, B2, C; output Z; and (I0_out, A1, A2); and (I1_out, B1, B2); or (Z, I0_out, I1_out, C); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (C => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO221D4BWP7T35P140LVT (A1, A2, B1, B2, C, Z); input A1, A2, B1, B2, C; output Z; and (I0_out, A1, A2); and (I1_out, B1, B2); or (Z, I0_out, I1_out, C); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (C => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO222D0BWP7T35P140LVT (A1, A2, B1, B2, C1, C2, Z); input A1, A2, B1, B2, C1, C2; output Z; and (I0_out, A1, A2); and (I1_out, B1, B2); and (I2_out, C1, C2); or (Z, I0_out, I1_out, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO222D1BWP7T35P140LVT (A1, A2, B1, B2, C1, C2, Z); input A1, A2, B1, B2, C1, C2; output Z; and (I0_out, A1, A2); and (I1_out, B1, B2); and (I2_out, C1, C2); or (Z, I0_out, I1_out, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO222D2BWP7T35P140LVT (A1, A2, B1, B2, C1, C2, Z); input A1, A2, B1, B2, C1, C2; output Z; and (I0_out, A1, A2); and (I1_out, B1, B2); and (I2_out, C1, C2); or (Z, I0_out, I1_out, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO222D4BWP7T35P140LVT (A1, A2, B1, B2, C1, C2, Z); input A1, A2, B1, B2, C1, C2; output Z; and (I0_out, A1, A2); and (I1_out, B1, B2); and (I2_out, C1, C2); or (Z, I0_out, I1_out, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO22D0BWP7T35P140LVT (A1, A2, B1, B2, Z); input A1, A2, B1, B2; output Z; and (I0_out, A1, A2); and (I1_out, B1, B2); or (Z, I0_out, I1_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO22D1BWP7T35P140LVT (A1, A2, B1, B2, Z); input A1, A2, B1, B2; output Z; and (I0_out, A1, A2); and (I1_out, B1, B2); or (Z, I0_out, I1_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO22D2BWP7T35P140LVT (A1, A2, B1, B2, Z); input A1, A2, B1, B2; output Z; and (I0_out, A1, A2); and (I1_out, B1, B2); or (Z, I0_out, I1_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO22D4BWP7T35P140LVT (A1, A2, B1, B2, Z); input A1, A2, B1, B2; output Z; and (I0_out, A1, A2); and (I1_out, B1, B2); or (Z, I0_out, I1_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO31D0BWP7T35P140LVT (A1, A2, A3, B, Z); input A1, A2, A3, B; output Z; and (I0_out, A1, A2, A3); or (Z, I0_out, B); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0) (B => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO31D1BWP7T35P140LVT (A1, A2, A3, B, Z); input A1, A2, A3, B; output Z; and (I0_out, A1, A2, A3); or (Z, I0_out, B); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0) (B => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO31D2BWP7T35P140LVT (A1, A2, A3, B, Z); input A1, A2, A3, B; output Z; and (I0_out, A1, A2, A3); or (Z, I0_out, B); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0) (B => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO31D4BWP7T35P140LVT (A1, A2, A3, B, Z); input A1, A2, A3, B; output Z; and (I0_out, A1, A2, A3); or (Z, I0_out, B); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0) (B => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO32D0BWP7T35P140LVT (A1, A2, A3, B1, B2, Z); input A1, A2, A3, B1, B2; output Z; and (I0_out, A1, A2, A3); and (I1_out, B1, B2); or (Z, I0_out, I1_out); specify if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO32D1BWP7T35P140LVT (A1, A2, A3, B1, B2, Z); input A1, A2, A3, B1, B2; output Z; and (I0_out, A1, A2, A3); and (I1_out, B1, B2); or (Z, I0_out, I1_out); specify if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO32D2BWP7T35P140LVT (A1, A2, A3, B1, B2, Z); input A1, A2, A3, B1, B2; output Z; and (I0_out, A1, A2, A3); and (I1_out, B1, B2); or (Z, I0_out, I1_out); specify if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO32D4BWP7T35P140LVT (A1, A2, A3, B1, B2, Z); input A1, A2, A3, B1, B2; output Z; and (I0_out, A1, A2, A3); and (I1_out, B1, B2); or (Z, I0_out, I1_out); specify if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1) (B2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO33D0BWP7T35P140LVT (A1, A2, A3, B1, B2, B3, Z); input A1, A2, A3, B1, B2, B3; output Z; and (I0_out, A1, A2, A3); and (I1_out, B1, B2, B3); or (Z, I0_out, I1_out); specify if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO33D1BWP7T35P140LVT (A1, A2, A3, B1, B2, B3, Z); input A1, A2, A3, B1, B2, B3; output Z; and (I0_out, A1, A2, A3); and (I1_out, B1, B2, B3); or (Z, I0_out, I1_out); specify if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO33D2BWP7T35P140LVT (A1, A2, A3, B1, B2, B3, Z); input A1, A2, A3, B1, B2, B3; output Z; and (I0_out, A1, A2, A3); and (I1_out, B1, B2, B3); or (Z, I0_out, I1_out); specify if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AO33D4BWP7T35P140LVT (A1, A2, A3, B1, B2, B3, Z); input A1, A2, A3, B1, B2, B3; output Z; and (I0_out, A1, A2, A3); and (I1_out, B1, B2, B3); or (Z, I0_out, I1_out); specify if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI211D0BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; and (I0_out, A1, A2); or (I2_out, I0_out, B, C); not (ZN, I2_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI211D1BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; and (I0_out, A1, A2); or (I2_out, I0_out, B, C); not (ZN, I2_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI211D2BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; and (I0_out, A1, A2); or (I2_out, I0_out, B, C); not (ZN, I2_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI211D4BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; and (I0_out, A1, A2); or (I2_out, I0_out, B, C); not (ZN, I2_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI211OPTBD12BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; and (I0_out, A1, A2); or (I2_out, I0_out, B, C); not (ZN, I2_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI211OPTBD1BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; and (I0_out, A1, A2); or (I2_out, I0_out, B, C); not (ZN, I2_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI211OPTBD2BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; and (I0_out, A1, A2); or (I2_out, I0_out, B, C); not (ZN, I2_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI211OPTBD4BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; and (I0_out, A1, A2); or (I2_out, I0_out, B, C); not (ZN, I2_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI211OPTBD6BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; and (I0_out, A1, A2); or (I2_out, I0_out, B, C); not (ZN, I2_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI211OPTBD8BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; and (I0_out, A1, A2); or (I2_out, I0_out, B, C); not (ZN, I2_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && C == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B == 1'b0) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI21D0BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; and (I0_out, A1, A2); or (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI21D1BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; and (I0_out, A1, A2); or (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI21D2BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; and (I0_out, A1, A2); or (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI21D4BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; and (I0_out, A1, A2); or (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI21OPTBD12BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; and (I0_out, A1, A2); or (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI21OPTBD1BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; and (I0_out, A1, A2); or (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI21OPTBD2BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; and (I0_out, A1, A2); or (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI21OPTBD4BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; and (I0_out, A1, A2); or (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI21OPTBD6BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; and (I0_out, A1, A2); or (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI21OPTBD8BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; and (I0_out, A1, A2); or (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI221D0BWP7T35P140LVT (A1, A2, B1, B2, C, ZN); input A1, A2, B1, B2, C; output ZN; and (I0_out, A1, A2); and (I1_out, B1, B2); or (I2_out, I0_out, I1_out, C); not (ZN, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI221D1BWP7T35P140LVT (A1, A2, B1, B2, C, ZN); input A1, A2, B1, B2, C; output ZN; and (I0_out, A1, A2); and (I1_out, B1, B2); or (I2_out, I0_out, I1_out, C); not (ZN, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI221D2BWP7T35P140LVT (A1, A2, B1, B2, C, ZN); input A1, A2, B1, B2, C; output ZN; and (I0_out, A1, A2); and (I1_out, B1, B2); or (I2_out, I0_out, I1_out, C); not (ZN, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI221D4BWP7T35P140LVT (A1, A2, B1, B2, C, ZN); input A1, A2, B1, B2, C; output ZN; and (I0_out, A1, A2); and (I1_out, B1, B2); or (I2_out, I0_out, I1_out, C); not (ZN, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI222D0BWP7T35P140LVT (A1, A2, B1, B2, C1, C2, ZN); input A1, A2, B1, B2, C1, C2; output ZN; and (I0_out, A1, A2); and (I1_out, C1, C2); and (I2_out, B1, B2); or (I3_out, I0_out, I1_out, I2_out); not (ZN, I3_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI222D1BWP7T35P140LVT (A1, A2, B1, B2, C1, C2, ZN); input A1, A2, B1, B2, C1, C2; output ZN; and (I0_out, A1, A2); and (I1_out, C1, C2); and (I2_out, B1, B2); or (I3_out, I0_out, I1_out, I2_out); not (ZN, I3_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI222D2BWP7T35P140LVT (A1, A2, B1, B2, C1, C2, ZN); input A1, A2, B1, B2, C1, C2; output ZN; and (I0_out, A1, A2); and (I1_out, C1, C2); and (I2_out, B1, B2); or (I3_out, I0_out, I1_out, I2_out); not (ZN, I3_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI222D4BWP7T35P140LVT (A1, A2, B1, B2, C1, C2, ZN); input A1, A2, B1, B2, C1, C2; output ZN; and (I0_out, A1, A2); and (I1_out, C1, C2); and (I2_out, B1, B2); or (I3_out, I0_out, I1_out, I2_out); not (ZN, I3_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && C1 == 1'b0 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C2 == 1'b1) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && C1 == 1'b1) (C2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI22D0BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; and (I0_out, A1, A2); and (I1_out, B1, B2); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI22D1BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; and (I0_out, A1, A2); and (I1_out, B1, B2); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI22D2BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; and (I0_out, A1, A2); and (I1_out, B1, B2); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI22D4BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; and (I0_out, A1, A2); and (I1_out, B1, B2); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI22OPTPBD12BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; and (I0_out, A1, A2); and (I1_out, B1, B2); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI22OPTPBD1BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; and (I0_out, A1, A2); and (I1_out, B1, B2); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI22OPTPBD2BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; and (I0_out, A1, A2); and (I1_out, B1, B2); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI22OPTPBD4BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; and (I0_out, A1, A2); and (I1_out, B1, B2); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI22OPTPBD6BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; and (I0_out, A1, A2); and (I1_out, B1, B2); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI22OPTPBD8BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; and (I0_out, A1, A2); and (I1_out, B1, B2); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI31D0BWP7T35P140LVT (A1, A2, A3, B, ZN); input A1, A2, A3, B; output ZN; and (I0_out, A1, A2, A3); or (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI31D1BWP7T35P140LVT (A1, A2, A3, B, ZN); input A1, A2, A3, B; output ZN; and (I0_out, A1, A2, A3); or (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI31D2BWP7T35P140LVT (A1, A2, A3, B, ZN); input A1, A2, A3, B; output ZN; and (I0_out, A1, A2, A3); or (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI31D4BWP7T35P140LVT (A1, A2, A3, B, ZN); input A1, A2, A3, B; output ZN; and (I0_out, A1, A2, A3); or (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI32D0BWP7T35P140LVT (A1, A2, A3, B1, B2, ZN); input A1, A2, A3, B1, B2; output ZN; and (I0_out, B1, B2); and (I1_out, A1, A2, A3); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI32D1BWP7T35P140LVT (A1, A2, A3, B1, B2, ZN); input A1, A2, A3, B1, B2; output ZN; and (I0_out, B1, B2); and (I1_out, A1, A2, A3); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI32D2BWP7T35P140LVT (A1, A2, A3, B1, B2, ZN); input A1, A2, A3, B1, B2; output ZN; and (I0_out, B1, B2); and (I1_out, A1, A2, A3); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI32D4BWP7T35P140LVT (A1, A2, A3, B1, B2, ZN); input A1, A2, A3, B1, B2; output ZN; and (I0_out, B1, B2); and (I1_out, A1, A2, A3); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI33D0BWP7T35P140LVT (A1, A2, A3, B1, B2, B3, ZN); input A1, A2, A3, B1, B2, B3; output ZN; and (I0_out, B1, B2, B3); and (I1_out, A1, A2, A3); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI33D1BWP7T35P140LVT (A1, A2, A3, B1, B2, B3, ZN); input A1, A2, A3, B1, B2, B3; output ZN; and (I0_out, B1, B2, B3); and (I1_out, A1, A2, A3); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI33D2BWP7T35P140LVT (A1, A2, A3, B1, B2, B3, ZN); input A1, A2, A3, B1, B2, B3; output ZN; and (I0_out, B1, B2, B3); and (I1_out, A1, A2, A3); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module AOI33D4BWP7T35P140LVT (A1, A2, A3, B1, B2, B3, ZN); input A1, A2, A3, B1, B2, B3; output ZN; and (I0_out, B1, B2, B3); and (I1_out, A1, A2, A3); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B3 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (B3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module BHDBWP7T35P140LVT (Z); inout Z; not (weak0, weak1) (Z, Z_buf); not (Z_buf, Z); endmodule `endcelldefine `celldefine //module BOUNDARY_LEFTBWP7T35P140; // No function //endmodule `endcelldefine `celldefine //module BOUNDARY_RIGHTBWP7T35P140; // No function //endmodule `endcelldefine `celldefine module BUFFD0BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module BUFFD12BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module BUFFD16BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module BUFFD1BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module BUFFD20BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module BUFFD2BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module BUFFD3BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module BUFFD4BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module BUFFD6BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module BUFFD8BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module BUFTD12BWP7T35P140LVT (I, OE, Z); input I, OE; output Z; bufif1 (Z, I, OE); specify (I => Z) = (0, 0); (OE => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module BUFTD16BWP7T35P140LVT (I, OE, Z); input I, OE; output Z; bufif1 (Z, I, OE); specify (I => Z) = (0, 0); (OE => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module BUFTD4BWP7T35P140LVT (I, OE, Z); input I, OE; output Z; bufif1 (Z, I, OE); specify (I => Z) = (0, 0); (OE => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module BUFTD6BWP7T35P140LVT (I, OE, Z); input I, OE; output Z; bufif1 (Z, I, OE); specify (I => Z) = (0, 0); (OE => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module BUFTD8BWP7T35P140LVT (I, OE, Z); input I, OE; output Z; bufif1 (Z, I, OE); specify (I => Z) = (0, 0); (OE => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKAN2D0BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; and (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKAN2D1BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; and (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKAN2D2BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; and (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKAN2D4BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; and (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKAN2D8BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; and (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKBD0BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKBD12BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKBD16BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKBD1BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKBD20BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKBD2BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKBD3BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKBD4BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKBD6BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKBD8BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKLHQD12BWP7T35P140LVT ( Q, TE, CPN, E ); input TE, CPN, E; output Q; reg notifier; `ifdef NTC wire TE_d, CPN_d, E_d; buf (_TE, TE_d); buf (_CPN, CPN_d); buf (_E, E_d); or (_G001, _E, _TE); tsmc_dla (_enl, _G001, _CPN, 1'b1, 1'b1, notifier); not (_enlb, _enl); or (Q, _enlb, _CPN); `else buf (_TE, TE); buf (_CPN, CPN); buf (_E, E); or (_G001, _E, _TE); tsmc_dla (_enl, _G001, _CPN, 1'b1, 1'b1, notifier); not (_enlb, _enl); or (Q, _enlb, _CPN); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b0 && TE == 1'b0) (posedge CPN => (Q+:1'b1)) = (0, 0); if (E == 1'b1 && TE == 1'b1) (CPN => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CPN => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CPN => Q) = (0, 0); $width (posedge CPN &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nE_TE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge CPN &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CPN_d, E_d); $setuphold (negedge CPN &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CPN_d, E_d); $setuphold (negedge CPN &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CPN_d, TE_d); $setuphold (negedge CPN &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CPN_d, TE_d); `else $setuphold (negedge CPN &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (negedge CPN &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (negedge CPN &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (negedge CPN &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLHQD16BWP7T35P140LVT ( Q, TE, CPN, E ); input TE, CPN, E; output Q; reg notifier; `ifdef NTC wire TE_d, CPN_d, E_d; buf (_TE, TE_d); buf (_CPN, CPN_d); buf (_E, E_d); or (_G001, _E, _TE); tsmc_dla (_enl, _G001, _CPN, 1'b1, 1'b1, notifier); not (_enlb, _enl); or (Q, _enlb, _CPN); `else buf (_TE, TE); buf (_CPN, CPN); buf (_E, E); or (_G001, _E, _TE); tsmc_dla (_enl, _G001, _CPN, 1'b1, 1'b1, notifier); not (_enlb, _enl); or (Q, _enlb, _CPN); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b0 && TE == 1'b0) (posedge CPN => (Q+:1'b1)) = (0, 0); if (E == 1'b1 && TE == 1'b1) (CPN => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CPN => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CPN => Q) = (0, 0); $width (posedge CPN &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nE_TE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge CPN &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CPN_d, E_d); $setuphold (negedge CPN &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CPN_d, E_d); $setuphold (negedge CPN &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CPN_d, TE_d); $setuphold (negedge CPN &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CPN_d, TE_d); `else $setuphold (negedge CPN &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (negedge CPN &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (negedge CPN &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (negedge CPN &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLHQD1BWP7T35P140LVT ( Q, TE, CPN, E ); input TE, CPN, E; output Q; reg notifier; `ifdef NTC wire TE_d, CPN_d, E_d; buf (_TE, TE_d); buf (_CPN, CPN_d); buf (_E, E_d); or (_G001, _E, _TE); tsmc_dla (_enl, _G001, _CPN, 1'b1, 1'b1, notifier); not (_enlb, _enl); or (Q, _enlb, _CPN); `else buf (_TE, TE); buf (_CPN, CPN); buf (_E, E); or (_G001, _E, _TE); tsmc_dla (_enl, _G001, _CPN, 1'b1, 1'b1, notifier); not (_enlb, _enl); or (Q, _enlb, _CPN); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b0 && TE == 1'b0) (posedge CPN => (Q+:1'b1)) = (0, 0); if (E == 1'b1 && TE == 1'b1) (CPN => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CPN => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CPN => Q) = (0, 0); $width (posedge CPN &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nE_TE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge CPN &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CPN_d, E_d); $setuphold (negedge CPN &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CPN_d, E_d); $setuphold (negedge CPN &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CPN_d, TE_d); $setuphold (negedge CPN &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CPN_d, TE_d); `else $setuphold (negedge CPN &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (negedge CPN &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (negedge CPN &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (negedge CPN &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLHQD2BWP7T35P140LVT ( Q, TE, CPN, E ); input TE, CPN, E; output Q; reg notifier; `ifdef NTC wire TE_d, CPN_d, E_d; buf (_TE, TE_d); buf (_CPN, CPN_d); buf (_E, E_d); or (_G001, _E, _TE); tsmc_dla (_enl, _G001, _CPN, 1'b1, 1'b1, notifier); not (_enlb, _enl); or (Q, _enlb, _CPN); `else buf (_TE, TE); buf (_CPN, CPN); buf (_E, E); or (_G001, _E, _TE); tsmc_dla (_enl, _G001, _CPN, 1'b1, 1'b1, notifier); not (_enlb, _enl); or (Q, _enlb, _CPN); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b0 && TE == 1'b0) (posedge CPN => (Q+:1'b1)) = (0, 0); if (E == 1'b1 && TE == 1'b1) (CPN => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CPN => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CPN => Q) = (0, 0); $width (posedge CPN &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nE_TE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge CPN &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CPN_d, E_d); $setuphold (negedge CPN &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CPN_d, E_d); $setuphold (negedge CPN &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CPN_d, TE_d); $setuphold (negedge CPN &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CPN_d, TE_d); `else $setuphold (negedge CPN &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (negedge CPN &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (negedge CPN &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (negedge CPN &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLHQD3BWP7T35P140LVT ( Q, TE, CPN, E ); input TE, CPN, E; output Q; reg notifier; `ifdef NTC wire TE_d, CPN_d, E_d; buf (_TE, TE_d); buf (_CPN, CPN_d); buf (_E, E_d); or (_G001, _E, _TE); tsmc_dla (_enl, _G001, _CPN, 1'b1, 1'b1, notifier); not (_enlb, _enl); or (Q, _enlb, _CPN); `else buf (_TE, TE); buf (_CPN, CPN); buf (_E, E); or (_G001, _E, _TE); tsmc_dla (_enl, _G001, _CPN, 1'b1, 1'b1, notifier); not (_enlb, _enl); or (Q, _enlb, _CPN); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b0 && TE == 1'b0) (posedge CPN => (Q+:1'b1)) = (0, 0); if (E == 1'b1 && TE == 1'b1) (CPN => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CPN => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CPN => Q) = (0, 0); $width (posedge CPN &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nE_TE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge CPN &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CPN_d, E_d); $setuphold (negedge CPN &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CPN_d, E_d); $setuphold (negedge CPN &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CPN_d, TE_d); $setuphold (negedge CPN &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CPN_d, TE_d); `else $setuphold (negedge CPN &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (negedge CPN &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (negedge CPN &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (negedge CPN &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLHQD4BWP7T35P140LVT ( Q, TE, CPN, E ); input TE, CPN, E; output Q; reg notifier; `ifdef NTC wire TE_d, CPN_d, E_d; buf (_TE, TE_d); buf (_CPN, CPN_d); buf (_E, E_d); or (_G001, _E, _TE); tsmc_dla (_enl, _G001, _CPN, 1'b1, 1'b1, notifier); not (_enlb, _enl); or (Q, _enlb, _CPN); `else buf (_TE, TE); buf (_CPN, CPN); buf (_E, E); or (_G001, _E, _TE); tsmc_dla (_enl, _G001, _CPN, 1'b1, 1'b1, notifier); not (_enlb, _enl); or (Q, _enlb, _CPN); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b0 && TE == 1'b0) (posedge CPN => (Q+:1'b1)) = (0, 0); if (E == 1'b1 && TE == 1'b1) (CPN => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CPN => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CPN => Q) = (0, 0); $width (posedge CPN &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nE_TE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge CPN &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CPN_d, E_d); $setuphold (negedge CPN &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CPN_d, E_d); $setuphold (negedge CPN &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CPN_d, TE_d); $setuphold (negedge CPN &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CPN_d, TE_d); `else $setuphold (negedge CPN &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (negedge CPN &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (negedge CPN &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (negedge CPN &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLHQD6BWP7T35P140LVT ( Q, TE, CPN, E ); input TE, CPN, E; output Q; reg notifier; `ifdef NTC wire TE_d, CPN_d, E_d; buf (_TE, TE_d); buf (_CPN, CPN_d); buf (_E, E_d); or (_G001, _E, _TE); tsmc_dla (_enl, _G001, _CPN, 1'b1, 1'b1, notifier); not (_enlb, _enl); or (Q, _enlb, _CPN); `else buf (_TE, TE); buf (_CPN, CPN); buf (_E, E); or (_G001, _E, _TE); tsmc_dla (_enl, _G001, _CPN, 1'b1, 1'b1, notifier); not (_enlb, _enl); or (Q, _enlb, _CPN); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b0 && TE == 1'b0) (posedge CPN => (Q+:1'b1)) = (0, 0); if (E == 1'b1 && TE == 1'b1) (CPN => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CPN => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CPN => Q) = (0, 0); $width (posedge CPN &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nE_TE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge CPN &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CPN_d, E_d); $setuphold (negedge CPN &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CPN_d, E_d); $setuphold (negedge CPN &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CPN_d, TE_d); $setuphold (negedge CPN &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CPN_d, TE_d); `else $setuphold (negedge CPN &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (negedge CPN &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (negedge CPN &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (negedge CPN &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLHQD8BWP7T35P140LVT ( Q, TE, CPN, E ); input TE, CPN, E; output Q; reg notifier; `ifdef NTC wire TE_d, CPN_d, E_d; buf (_TE, TE_d); buf (_CPN, CPN_d); buf (_E, E_d); or (_G001, _E, _TE); tsmc_dla (_enl, _G001, _CPN, 1'b1, 1'b1, notifier); not (_enlb, _enl); or (Q, _enlb, _CPN); `else buf (_TE, TE); buf (_CPN, CPN); buf (_E, E); or (_G001, _E, _TE); tsmc_dla (_enl, _G001, _CPN, 1'b1, 1'b1, notifier); not (_enlb, _enl); or (Q, _enlb, _CPN); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b0 && TE == 1'b0) (posedge CPN => (Q+:1'b1)) = (0, 0); if (E == 1'b1 && TE == 1'b1) (CPN => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CPN => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CPN => Q) = (0, 0); $width (posedge CPN &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nE_TE_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge CPN &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CPN_d, E_d); $setuphold (negedge CPN &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CPN_d, E_d); $setuphold (negedge CPN &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CPN_d, TE_d); $setuphold (negedge CPN &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CPN_d, TE_d); `else $setuphold (negedge CPN &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (negedge CPN &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (negedge CPN &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (negedge CPN &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLNQD12BWP7T35P140LVT (TE, E, CP, Q); input TE, E, CP; output Q; reg notifier; `ifdef NTC wire TE_d, E_d, CP_d; pullup (CDN); pullup (SDN); or (D_i, E_d, TE_d); not (CPB, CP_d); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP_d); `else pullup (CDN); pullup (SDN); or (D_i, E, TE); not (CPB, CP); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b1 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b0) (negedge CP => (Q+:1'b0)) = (0, 0); $width (posedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CP_d, TE_d); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CP_d, TE_d); `else $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLNQD16BWP7T35P140LVT (TE, E, CP, Q); input TE, E, CP; output Q; reg notifier; `ifdef NTC wire TE_d, E_d, CP_d; pullup (CDN); pullup (SDN); or (D_i, E_d, TE_d); not (CPB, CP_d); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP_d); `else pullup (CDN); pullup (SDN); or (D_i, E, TE); not (CPB, CP); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b1 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b0) (negedge CP => (Q+:1'b0)) = (0, 0); $width (posedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CP_d, TE_d); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CP_d, TE_d); `else $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLNQD1BWP7T35P140LVT (TE, E, CP, Q); input TE, E, CP; output Q; reg notifier; `ifdef NTC wire TE_d, E_d, CP_d; pullup (CDN); pullup (SDN); or (D_i, E_d, TE_d); not (CPB, CP_d); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP_d); `else pullup (CDN); pullup (SDN); or (D_i, E, TE); not (CPB, CP); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b1 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b0) (negedge CP => (Q+:1'b0)) = (0, 0); $width (posedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CP_d, TE_d); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CP_d, TE_d); `else $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLNQD20BWP7T35P140LVT (TE, E, CP, Q); input TE, E, CP; output Q; reg notifier; `ifdef NTC wire TE_d, E_d, CP_d; pullup (CDN); pullup (SDN); or (D_i, E_d, TE_d); not (CPB, CP_d); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP_d); `else pullup (CDN); pullup (SDN); or (D_i, E, TE); not (CPB, CP); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b1 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b0) (negedge CP => (Q+:1'b0)) = (0, 0); $width (posedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CP_d, TE_d); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CP_d, TE_d); `else $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLNQD2BWP7T35P140LVT (TE, E, CP, Q); input TE, E, CP; output Q; reg notifier; `ifdef NTC wire TE_d, E_d, CP_d; pullup (CDN); pullup (SDN); or (D_i, E_d, TE_d); not (CPB, CP_d); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP_d); `else pullup (CDN); pullup (SDN); or (D_i, E, TE); not (CPB, CP); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b1 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b0) (negedge CP => (Q+:1'b0)) = (0, 0); $width (posedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CP_d, TE_d); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CP_d, TE_d); `else $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLNQD3BWP7T35P140LVT (TE, E, CP, Q); input TE, E, CP; output Q; reg notifier; `ifdef NTC wire TE_d, E_d, CP_d; pullup (CDN); pullup (SDN); or (D_i, E_d, TE_d); not (CPB, CP_d); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP_d); `else pullup (CDN); pullup (SDN); or (D_i, E, TE); not (CPB, CP); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b1 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b0) (negedge CP => (Q+:1'b0)) = (0, 0); $width (posedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CP_d, TE_d); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CP_d, TE_d); `else $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLNQD4BWP7T35P140LVT (TE, E, CP, Q); input TE, E, CP; output Q; reg notifier; `ifdef NTC wire TE_d, E_d, CP_d; pullup (CDN); pullup (SDN); or (D_i, E_d, TE_d); not (CPB, CP_d); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP_d); `else pullup (CDN); pullup (SDN); or (D_i, E, TE); not (CPB, CP); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b1 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b0) (negedge CP => (Q+:1'b0)) = (0, 0); $width (posedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CP_d, TE_d); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CP_d, TE_d); `else $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLNQD6BWP7T35P140LVT (TE, E, CP, Q); input TE, E, CP; output Q; reg notifier; `ifdef NTC wire TE_d, E_d, CP_d; pullup (CDN); pullup (SDN); or (D_i, E_d, TE_d); not (CPB, CP_d); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP_d); `else pullup (CDN); pullup (SDN); or (D_i, E, TE); not (CPB, CP); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b1 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b0) (negedge CP => (Q+:1'b0)) = (0, 0); $width (posedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CP_d, TE_d); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CP_d, TE_d); `else $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLNQD8BWP7T35P140LVT (TE, E, CP, Q); input TE, E, CP; output Q; reg notifier; `ifdef NTC wire TE_d, E_d, CP_d; pullup (CDN); pullup (SDN); or (D_i, E_d, TE_d); not (CPB, CP_d); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP_d); `else pullup (CDN); pullup (SDN); or (D_i, E, TE); not (CPB, CP); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b1 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b0) (negedge CP => (Q+:1'b0)) = (0, 0); $width (posedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CP_d, TE_d); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CP_d, TE_d); `else $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLNQOPTMAD12BWP7T35P140LVT (TE, E, CP, Q); input TE, E, CP; output Q; reg notifier; `ifdef NTC wire TE_d, E_d, CP_d; pullup (CDN); pullup (SDN); or (D_i, E_d, TE_d); not (CPB, CP_d); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP_d); `else pullup (CDN); pullup (SDN); or (D_i, E, TE); not (CPB, CP); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b1 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b0) (negedge CP => (Q+:1'b0)) = (0, 0); $width (posedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CP_d, TE_d); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CP_d, TE_d); `else $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLNQOPTMAD4BWP7T35P140LVT (TE, E, CP, Q); input TE, E, CP; output Q; reg notifier; `ifdef NTC wire TE_d, E_d, CP_d; pullup (CDN); pullup (SDN); or (D_i, E_d, TE_d); not (CPB, CP_d); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP_d); `else pullup (CDN); pullup (SDN); or (D_i, E, TE); not (CPB, CP); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b1 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b0) (negedge CP => (Q+:1'b0)) = (0, 0); $width (posedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CP_d, TE_d); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CP_d, TE_d); `else $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKLNQOPTMAD8BWP7T35P140LVT (TE, E, CP, Q); input TE, E, CP; output Q; reg notifier; `ifdef NTC wire TE_d, E_d, CP_d; pullup (CDN); pullup (SDN); or (D_i, E_d, TE_d); not (CPB, CP_d); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP_d); `else pullup (CDN); pullup (SDN); or (D_i, E, TE); not (CPB, CP); tsmc_dla (Q_buf, D_i, CPB, CDN, SDN, notifier); and (Q, Q_buf, CP); `endif `ifdef TETRAMAX `else tsmc_xbuf (nTE_SDFCHK, nTE, 1'b1); tsmc_xbuf (nE_SDFCHK, nE, 1'b1); tsmc_xbuf (E_TE_SDFCHK, E_TE, 1'b1); tsmc_xbuf (E_nTE_SDFCHK, E_nTE, 1'b1); tsmc_xbuf (nE_TE_SDFCHK, nE_TE, 1'b1); tsmc_xbuf (nE_nTE_SDFCHK, nE_nTE, 1'b1); not (nTE, TE); not (nE, E); and (E_TE, E, TE); and (E_nTE, E, nTE); and (nE_TE, nE, TE); and (nE_nTE, nE, nTE); // Timing logics defined for default constraint check `ifdef NTC not (E_int_not, E_d); not (TE_int_not, TE_d); `else not (E_int_not, E); not (TE_int_not, TE); `endif buf (E_check, TE_int_not); buf (TE_check, E_int_not); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); tsmc_xbuf (TE_DEFCHK, TE_check, 1'b1); specify if (E == 1'b1 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b1 && TE == 1'b0) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b1) (CP => Q) = (0, 0); if (E == 1'b0 && TE == 1'b0) (negedge CP => (Q+:1'b0)) = (0, 0); $width (posedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_TE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& E_nTE_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_TE_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nE_nTE_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier,,, CP_d, E_d); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier,,, CP_d, TE_d); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier,,, CP_d, TE_d); `else $setuphold (posedge CP &&& nTE_SDFCHK, posedge E , 0, 0, notifier); $setuphold (posedge CP &&& nTE_SDFCHK, negedge E , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, posedge TE , 0, 0, notifier); $setuphold (posedge CP &&& nE_SDFCHK, negedge TE , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module CKMUX2D0BWP7T35P140LVT (I0, I1, S, Z); input I0, I1, S; output Z; tsmc_mux (Z, I0, I1, S); specify if (I1 == 1'b1 && S == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKMUX2D1BWP7T35P140LVT (I0, I1, S, Z); input I0, I1, S; output Z; tsmc_mux (Z, I0, I1, S); specify if (I1 == 1'b1 && S == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKMUX2D2BWP7T35P140LVT (I0, I1, S, Z); input I0, I1, S; output Z; tsmc_mux (Z, I0, I1, S); specify if (I1 == 1'b1 && S == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKMUX2D4BWP7T35P140LVT (I0, I1, S, Z); input I0, I1, S; output Z; tsmc_mux (Z, I0, I1, S); specify if (I1 == 1'b1 && S == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKND0BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKND12BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKND16BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKND1BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKND20BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKND2BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKND2D0BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKND2D1BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKND2D2BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKND2D3BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKND2D4BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKND2D8BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKND3BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKND4BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKND6BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKND8BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKXOR2D0BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; xor (Z, A1, A2); specify if (A2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1) (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKXOR2D1BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; xor (Z, A1, A2); specify if (A2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1) (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKXOR2D2BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; xor (Z, A1, A2); specify if (A2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1) (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module CKXOR2D4BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; xor (Z, A1, A2); specify if (A2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1) (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module DCAP16BWP7T35P140LVT; // No function endmodule `endcelldefine `celldefine module DCAP32BWP7T35P140LVT; // No function endmodule `endcelldefine `celldefine module DCAP4BWP7T35P140LVT; // No function endmodule `endcelldefine `celldefine module DCAP64BWP7T35P140LVT; // No function endmodule `endcelldefine `celldefine module DCAP8BWP7T35P140LVT; // No function endmodule `endcelldefine `celldefine module DCCKBD12BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module DCCKBD16BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module DCCKBD4BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module DCCKBD8BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module DCCKND12BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module DCCKND16BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module DCCKND20BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module DCCKND4BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module DCCKND8BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module DEL025D1BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module DEL050MD1BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module DEL075MD1BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module DEL100MD1BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module DEL150MD1BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module DEL200MD1BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module DEL250MD1BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module DFCND1BWP7T35P140LVT (D, CP, CDN, Q, QN); input D, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, CP_d; pullup (SDN); tsmc_dff (Q_buf, D_d, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCP, CP); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (CP_check, CDN_i); buf (D_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:D)) = (0, 0); if (CP == 1'b1 && D == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:D)) = (0, 0); $width (negedge CDN &&& CP_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFCND2BWP7T35P140LVT (D, CP, CDN, Q, QN); input D, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, CP_d; pullup (SDN); tsmc_dff (Q_buf, D_d, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCP, CP); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (CP_check, CDN_i); buf (D_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:D)) = (0, 0); if (CP == 1'b1 && D == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:D)) = (0, 0); $width (negedge CDN &&& CP_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFCND4BWP7T35P140LVT (D, CP, CDN, Q, QN); input D, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, CP_d; pullup (SDN); tsmc_dff (Q_buf, D_d, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCP, CP); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (CP_check, CDN_i); buf (D_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:D)) = (0, 0); if (CP == 1'b1 && D == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:D)) = (0, 0); $width (negedge CDN &&& CP_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFCNQD1BWP7T35P140LVT (D, CP, CDN, Q); input D, CP, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, CP_d; pullup (SDN); tsmc_dff (Q_buf, D_d, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCP, CP); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (CP_check, CDN_i); buf (D_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:D)) = (0, 0); $width (negedge CDN &&& CP_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFCNQD2BWP7T35P140LVT (D, CP, CDN, Q); input D, CP, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, CP_d; pullup (SDN); tsmc_dff (Q_buf, D_d, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCP, CP); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (CP_check, CDN_i); buf (D_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:D)) = (0, 0); $width (negedge CDN &&& CP_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFCNQD4BWP7T35P140LVT (D, CP, CDN, Q); input D, CP, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, CP_d; pullup (SDN); tsmc_dff (Q_buf, D_d, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCP, CP); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (CP_check, CDN_i); buf (D_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:D)) = (0, 0); $width (negedge CDN &&& CP_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFCSND1BWP7T35P140LVT (D, CP, CDN, SDN, Q, QN); input D, CP, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, CP_d; tsmc_dff (Q_buf, D_d, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SDFCHK, CP_D_SDN, 1'b1); tsmc_xbuf (CP_nD_SDN_SDFCHK, CP_nD_SDN, 1'b1); tsmc_xbuf (nCP_D_SDN_SDFCHK, nCP_D_SDN, 1'b1); tsmc_xbuf (nCP_nD_SDN_SDFCHK, nCP_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_CP_D_SDFCHK, CDN_CP_D, 1'b1); tsmc_xbuf (CDN_CP_nD_SDFCHK, CDN_CP_nD, 1'b1); tsmc_xbuf (CDN_nCP_D_SDFCHK, CDN_nCP_D, 1'b1); tsmc_xbuf (CDN_nCP_nD_SDFCHK, CDN_nCP_nD, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCP, CP); and (CP_D_SDN, CP, D, SDN); and (CP_nD_SDN, CP, nD, SDN); and (nCP_D_SDN, nCP, D, SDN); and (nCP_nD_SDN, nCP, nD, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_CP_D, CDN, CP, D); and (CDN_CP_nD, CDN, CP, nD); and (CDN_nCP_D, CDN, nCP, D); and (CDN_nCP_nD, CDN, nCP, nD); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (CP_check, CDN_i, SDN_i); and (D_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:D)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:D)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, posedge CP &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, posedge CP &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge CP &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge CP &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge CP &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge CP &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFCSND2BWP7T35P140LVT (D, CP, CDN, SDN, Q, QN); input D, CP, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, CP_d; tsmc_dff (Q_buf, D_d, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SDFCHK, CP_D_SDN, 1'b1); tsmc_xbuf (CP_nD_SDN_SDFCHK, CP_nD_SDN, 1'b1); tsmc_xbuf (nCP_D_SDN_SDFCHK, nCP_D_SDN, 1'b1); tsmc_xbuf (nCP_nD_SDN_SDFCHK, nCP_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_CP_D_SDFCHK, CDN_CP_D, 1'b1); tsmc_xbuf (CDN_CP_nD_SDFCHK, CDN_CP_nD, 1'b1); tsmc_xbuf (CDN_nCP_D_SDFCHK, CDN_nCP_D, 1'b1); tsmc_xbuf (CDN_nCP_nD_SDFCHK, CDN_nCP_nD, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCP, CP); and (CP_D_SDN, CP, D, SDN); and (CP_nD_SDN, CP, nD, SDN); and (nCP_D_SDN, nCP, D, SDN); and (nCP_nD_SDN, nCP, nD, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_CP_D, CDN, CP, D); and (CDN_CP_nD, CDN, CP, nD); and (CDN_nCP_D, CDN, nCP, D); and (CDN_nCP_nD, CDN, nCP, nD); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (CP_check, CDN_i, SDN_i); and (D_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:D)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:D)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, posedge CP &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, posedge CP &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge CP &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge CP &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge CP &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge CP &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFCSND4BWP7T35P140LVT (D, CP, CDN, SDN, Q, QN); input D, CP, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, CP_d; tsmc_dff (Q_buf, D_d, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SDFCHK, CP_D_SDN, 1'b1); tsmc_xbuf (CP_nD_SDN_SDFCHK, CP_nD_SDN, 1'b1); tsmc_xbuf (nCP_D_SDN_SDFCHK, nCP_D_SDN, 1'b1); tsmc_xbuf (nCP_nD_SDN_SDFCHK, nCP_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_CP_D_SDFCHK, CDN_CP_D, 1'b1); tsmc_xbuf (CDN_CP_nD_SDFCHK, CDN_CP_nD, 1'b1); tsmc_xbuf (CDN_nCP_D_SDFCHK, CDN_nCP_D, 1'b1); tsmc_xbuf (CDN_nCP_nD_SDFCHK, CDN_nCP_nD, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCP, CP); and (CP_D_SDN, CP, D, SDN); and (CP_nD_SDN, CP, nD, SDN); and (nCP_D_SDN, nCP, D, SDN); and (nCP_nD_SDN, nCP, nD, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_CP_D, CDN, CP, D); and (CDN_CP_nD, CDN, CP, nD); and (CDN_nCP_D, CDN, nCP, D); and (CDN_nCP_nD, CDN, nCP, nD); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (CP_check, CDN_i, SDN_i); and (D_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:D)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:D)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, posedge CP &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, posedge CP &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge CP &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge CP &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge CP &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge CP &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFCSNQD1BWP7T35P140LVT (D, CP, CDN, SDN, Q); input D, CP, CDN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, CP_d; tsmc_dff (Q_buf, D_d, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SDFCHK, CP_D_SDN, 1'b1); tsmc_xbuf (CP_nD_SDN_SDFCHK, CP_nD_SDN, 1'b1); tsmc_xbuf (nCP_D_SDN_SDFCHK, nCP_D_SDN, 1'b1); tsmc_xbuf (nCP_nD_SDN_SDFCHK, nCP_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_CP_D_SDFCHK, CDN_CP_D, 1'b1); tsmc_xbuf (CDN_CP_nD_SDFCHK, CDN_CP_nD, 1'b1); tsmc_xbuf (CDN_nCP_D_SDFCHK, CDN_nCP_D, 1'b1); tsmc_xbuf (CDN_nCP_nD_SDFCHK, CDN_nCP_nD, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCP, CP); and (CP_D_SDN, CP, D, SDN); and (CP_nD_SDN, CP, nD, SDN); and (nCP_D_SDN, nCP, D, SDN); and (nCP_nD_SDN, nCP, nD, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_CP_D, CDN, CP, D); and (CDN_CP_nD, CDN, CP, nD); and (CDN_nCP_D, CDN, nCP, D); and (CDN_nCP_nD, CDN, nCP, nD); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (CP_check, CDN_i, SDN_i); and (D_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:D)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, posedge CP &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, posedge CP &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge CP &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge CP &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge CP &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge CP &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFCSNQD2BWP7T35P140LVT (D, CP, CDN, SDN, Q); input D, CP, CDN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, CP_d; tsmc_dff (Q_buf, D_d, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SDFCHK, CP_D_SDN, 1'b1); tsmc_xbuf (CP_nD_SDN_SDFCHK, CP_nD_SDN, 1'b1); tsmc_xbuf (nCP_D_SDN_SDFCHK, nCP_D_SDN, 1'b1); tsmc_xbuf (nCP_nD_SDN_SDFCHK, nCP_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_CP_D_SDFCHK, CDN_CP_D, 1'b1); tsmc_xbuf (CDN_CP_nD_SDFCHK, CDN_CP_nD, 1'b1); tsmc_xbuf (CDN_nCP_D_SDFCHK, CDN_nCP_D, 1'b1); tsmc_xbuf (CDN_nCP_nD_SDFCHK, CDN_nCP_nD, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCP, CP); and (CP_D_SDN, CP, D, SDN); and (CP_nD_SDN, CP, nD, SDN); and (nCP_D_SDN, nCP, D, SDN); and (nCP_nD_SDN, nCP, nD, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_CP_D, CDN, CP, D); and (CDN_CP_nD, CDN, CP, nD); and (CDN_nCP_D, CDN, nCP, D); and (CDN_nCP_nD, CDN, nCP, nD); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (CP_check, CDN_i, SDN_i); and (D_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:D)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, posedge CP &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, posedge CP &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge CP &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge CP &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge CP &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge CP &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFCSNQD4BWP7T35P140LVT (D, CP, CDN, SDN, Q); input D, CP, CDN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, CP_d; tsmc_dff (Q_buf, D_d, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SDFCHK, CP_D_SDN, 1'b1); tsmc_xbuf (CP_nD_SDN_SDFCHK, CP_nD_SDN, 1'b1); tsmc_xbuf (nCP_D_SDN_SDFCHK, nCP_D_SDN, 1'b1); tsmc_xbuf (nCP_nD_SDN_SDFCHK, nCP_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_CP_D_SDFCHK, CDN_CP_D, 1'b1); tsmc_xbuf (CDN_CP_nD_SDFCHK, CDN_CP_nD, 1'b1); tsmc_xbuf (CDN_nCP_D_SDFCHK, CDN_nCP_D, 1'b1); tsmc_xbuf (CDN_nCP_nD_SDFCHK, CDN_nCP_nD, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCP, CP); and (CP_D_SDN, CP, D, SDN); and (CP_nD_SDN, CP, nD, SDN); and (nCP_D_SDN, nCP, D, SDN); and (nCP_nD_SDN, nCP, nD, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_CP_D, CDN, CP, D); and (CDN_CP_nD, CDN, CP, nD); and (CDN_nCP_D, CDN, nCP, D); and (CDN_nCP_nD, CDN, nCP, nD); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (CP_check, CDN_i, SDN_i); and (D_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:D)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, posedge CP &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, posedge CP &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge CP &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge CP &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge CP &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge CP &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFD1BWP7T35P140LVT (D, CP, Q, QN); input D, CP; output Q, QN; reg notifier; `ifdef NTC wire D_d, CP_d; pullup (CDN); pullup (SDN); tsmc_dff (Q_buf, D_d, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_dff (Q_buf, D, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); // Timing logics defined for default constraint check pullup (CP_check); pullup (D_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:D)) = (0, 0); (posedge CP => (QN-:D)) = (0, 0); $width (posedge CP &&& D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_DEFCHK, posedge D, 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& D_DEFCHK, negedge D, 0, 0, notifier,,, CP_d, D_d); `else $setuphold (posedge CP &&& D_DEFCHK, posedge D, 0, 0, notifier); $setuphold (posedge CP &&& D_DEFCHK, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFD2BWP7T35P140LVT (D, CP, Q, QN); input D, CP; output Q, QN; reg notifier; `ifdef NTC wire D_d, CP_d; pullup (CDN); pullup (SDN); tsmc_dff (Q_buf, D_d, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_dff (Q_buf, D, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); // Timing logics defined for default constraint check pullup (CP_check); pullup (D_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:D)) = (0, 0); (posedge CP => (QN-:D)) = (0, 0); $width (posedge CP &&& D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_DEFCHK, posedge D, 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& D_DEFCHK, negedge D, 0, 0, notifier,,, CP_d, D_d); `else $setuphold (posedge CP &&& D_DEFCHK, posedge D, 0, 0, notifier); $setuphold (posedge CP &&& D_DEFCHK, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFD4BWP7T35P140LVT (D, CP, Q, QN); input D, CP; output Q, QN; reg notifier; `ifdef NTC wire D_d, CP_d; pullup (CDN); pullup (SDN); tsmc_dff (Q_buf, D_d, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_dff (Q_buf, D, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); // Timing logics defined for default constraint check pullup (CP_check); pullup (D_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:D)) = (0, 0); (posedge CP => (QN-:D)) = (0, 0); $width (posedge CP &&& D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_DEFCHK, posedge D, 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& D_DEFCHK, negedge D, 0, 0, notifier,,, CP_d, D_d); `else $setuphold (posedge CP &&& D_DEFCHK, posedge D, 0, 0, notifier); $setuphold (posedge CP &&& D_DEFCHK, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFKCND1BWP7T35P140LVT (D, CP, CN, Q, QN); input D, CP, CN; output Q, QN; reg notifier; `ifdef NTC wire D_d, CP_d, CN_d; pullup (CDN); pullup (SDN); and (D_i, CN_d, D_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); and (D_i, CN, D); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (CN_SDFCHK, CN, 1'b1); tsmc_xbuf (CN_D_SDFCHK, CN_D, 1'b1); tsmc_xbuf (CN_nD_SDFCHK, CN_nD, 1'b1); tsmc_xbuf (nCN_D_SDFCHK, nCN_D, 1'b1); tsmc_xbuf (nCN_nD_SDFCHK, nCN_nD, 1'b1); not (nD, D); not (nCN, CN); and (CN_D, CN, D); and (CN_nD, CN, nD); and (nCN_D, nCN, D); and (nCN_nD, nCN, nD); // Timing logics defined for default constraint check `ifdef NTC buf (D_check, CN_d); `else buf (D_check, CN); `endif tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((CN && D)))) = (0, 0); (posedge CP => (QN-:((CN && D)))) = (0, 0); $width (posedge CP &&& CN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); `else $setuphold (posedge CP &&& D_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_SDFCHK, negedge D , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFKCND2BWP7T35P140LVT (D, CP, CN, Q, QN); input D, CP, CN; output Q, QN; reg notifier; `ifdef NTC wire D_d, CP_d, CN_d; pullup (CDN); pullup (SDN); and (D_i, CN_d, D_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); and (D_i, CN, D); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (CN_SDFCHK, CN, 1'b1); tsmc_xbuf (CN_D_SDFCHK, CN_D, 1'b1); tsmc_xbuf (CN_nD_SDFCHK, CN_nD, 1'b1); tsmc_xbuf (nCN_D_SDFCHK, nCN_D, 1'b1); tsmc_xbuf (nCN_nD_SDFCHK, nCN_nD, 1'b1); not (nD, D); not (nCN, CN); and (CN_D, CN, D); and (CN_nD, CN, nD); and (nCN_D, nCN, D); and (nCN_nD, nCN, nD); // Timing logics defined for default constraint check `ifdef NTC buf (D_check, CN_d); `else buf (D_check, CN); `endif tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((CN && D)))) = (0, 0); (posedge CP => (QN-:((CN && D)))) = (0, 0); $width (posedge CP &&& CN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); `else $setuphold (posedge CP &&& D_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_SDFCHK, negedge D , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFKCND4BWP7T35P140LVT (D, CP, CN, Q, QN); input D, CP, CN; output Q, QN; reg notifier; `ifdef NTC wire D_d, CP_d, CN_d; pullup (CDN); pullup (SDN); and (D_i, CN_d, D_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); and (D_i, CN, D); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (CN_SDFCHK, CN, 1'b1); tsmc_xbuf (CN_D_SDFCHK, CN_D, 1'b1); tsmc_xbuf (CN_nD_SDFCHK, CN_nD, 1'b1); tsmc_xbuf (nCN_D_SDFCHK, nCN_D, 1'b1); tsmc_xbuf (nCN_nD_SDFCHK, nCN_nD, 1'b1); not (nD, D); not (nCN, CN); and (CN_D, CN, D); and (CN_nD, CN, nD); and (nCN_D, nCN, D); and (nCN_nD, nCN, nD); // Timing logics defined for default constraint check `ifdef NTC buf (D_check, CN_d); `else buf (D_check, CN); `endif tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((CN && D)))) = (0, 0); (posedge CP => (QN-:((CN && D)))) = (0, 0); $width (posedge CP &&& CN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); `else $setuphold (posedge CP &&& D_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_SDFCHK, negedge D , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFKCNQD1BWP7T35P140LVT (D, CP, CN, Q); input D, CP, CN; output Q; reg notifier; `ifdef NTC wire D_d, CP_d, CN_d; pullup (CDN); pullup (SDN); and (D_i, CN_d, D_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); and (D_i, CN, D); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (CN_SDFCHK, CN, 1'b1); tsmc_xbuf (CN_D_SDFCHK, CN_D, 1'b1); tsmc_xbuf (CN_nD_SDFCHK, CN_nD, 1'b1); tsmc_xbuf (nCN_D_SDFCHK, nCN_D, 1'b1); tsmc_xbuf (nCN_nD_SDFCHK, nCN_nD, 1'b1); not (nD, D); not (nCN, CN); and (CN_D, CN, D); and (CN_nD, CN, nD); and (nCN_D, nCN, D); and (nCN_nD, nCN, nD); // Timing logics defined for default constraint check `ifdef NTC buf (D_check, CN_d); `else buf (D_check, CN); `endif tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((CN && D)))) = (0, 0); $width (posedge CP &&& CN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); `else $setuphold (posedge CP &&& D_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_SDFCHK, negedge D , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFKCNQD2BWP7T35P140LVT (D, CP, CN, Q); input D, CP, CN; output Q; reg notifier; `ifdef NTC wire D_d, CP_d, CN_d; pullup (CDN); pullup (SDN); and (D_i, CN_d, D_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); and (D_i, CN, D); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (CN_SDFCHK, CN, 1'b1); tsmc_xbuf (CN_D_SDFCHK, CN_D, 1'b1); tsmc_xbuf (CN_nD_SDFCHK, CN_nD, 1'b1); tsmc_xbuf (nCN_D_SDFCHK, nCN_D, 1'b1); tsmc_xbuf (nCN_nD_SDFCHK, nCN_nD, 1'b1); not (nD, D); not (nCN, CN); and (CN_D, CN, D); and (CN_nD, CN, nD); and (nCN_D, nCN, D); and (nCN_nD, nCN, nD); // Timing logics defined for default constraint check `ifdef NTC buf (D_check, CN_d); `else buf (D_check, CN); `endif tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((CN && D)))) = (0, 0); $width (posedge CP &&& CN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); `else $setuphold (posedge CP &&& D_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_SDFCHK, negedge D , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFKCNQD4BWP7T35P140LVT (D, CP, CN, Q); input D, CP, CN; output Q; reg notifier; `ifdef NTC wire D_d, CP_d, CN_d; pullup (CDN); pullup (SDN); and (D_i, CN_d, D_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); and (D_i, CN, D); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (CN_SDFCHK, CN, 1'b1); tsmc_xbuf (CN_D_SDFCHK, CN_D, 1'b1); tsmc_xbuf (CN_nD_SDFCHK, CN_nD, 1'b1); tsmc_xbuf (nCN_D_SDFCHK, nCN_D, 1'b1); tsmc_xbuf (nCN_nD_SDFCHK, nCN_nD, 1'b1); not (nD, D); not (nCN, CN); and (CN_D, CN, D); and (CN_nD, CN, nD); and (nCN_D, nCN, D); and (nCN_nD, nCN, nD); // Timing logics defined for default constraint check `ifdef NTC buf (D_check, CN_d); `else buf (D_check, CN); `endif tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((CN && D)))) = (0, 0); $width (posedge CP &&& CN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); `else $setuphold (posedge CP &&& D_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_SDFCHK, negedge D , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFKCSND1BWP7T35P140LVT (D, CP, CN, SN, Q, QN); input D, CP, CN, SN; output Q, QN; reg notifier; `ifdef NTC wire D_d, CP_d, CN_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (DS, S, D_d); and (D_i, CN_d, DS); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (DS, S, D); and (D_i, CN, DS); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SN_SDFCHK, CN_D_SN, 1'b1); tsmc_xbuf (CN_D_nSN_SDFCHK, CN_D_nSN, 1'b1); tsmc_xbuf (CN_nD_nSN_SDFCHK, CN_nD_nSN, 1'b1); tsmc_xbuf (CN_nD_SN_SDFCHK, CN_nD_SN, 1'b1); tsmc_xbuf (nCN_D_SN_SDFCHK, nCN_D_SN, 1'b1); tsmc_xbuf (nCN_D_nSN_SDFCHK, nCN_D_nSN, 1'b1); tsmc_xbuf (nCN_nD_SN_SDFCHK, nCN_nD_SN, 1'b1); tsmc_xbuf (nCN_nD_nSN_SDFCHK, nCN_nD_nSN, 1'b1); tsmc_xbuf (D_SN_SDFCHK, D_SN, 1'b1); tsmc_xbuf (nD_nSN_SDFCHK, nD_nSN, 1'b1); tsmc_xbuf (D_nSN_SDFCHK, D_nSN, 1'b1); tsmc_xbuf (CN_SN_SDFCHK, CN_SN, 1'b1); tsmc_xbuf (CN_nD_SDFCHK, CN_nD, 1'b1); not (nD, D); not (nCN, CN); not (nSN, SN); and (CN_D_SN, CN, D, SN); and (CN_D_nSN, CN, D, nSN); and (CN_nD_nSN, CN, nD, nSN); and (CN_nD_SN, CN, nD, SN); and (nCN_D_SN, nCN, D, SN); and (nCN_D_nSN, nCN, D, nSN); and (nCN_nD_SN, nCN, nD, SN); and (nCN_nD_nSN, nCN, nD, nSN); and (D_SN, D, SN); and (nD_nSN, nD, nSN); and (D_nSN, D, nSN); and (CN_SN, CN, SN); and (CN_nD, CN, nD); // Timing logics defined for default constraint check `ifdef NTC buf (SN_check, CN_d); and (D_check, SN_d, CN_d); `else buf (SN_check, CN); and (D_check, SN, CN); `endif tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((CN && D) || (CN && !(D) && !(SN))))) = (0, 0); (posedge CP => (QN-:((CN && D) || (CN && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& CN_D_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& D_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFKCSND2BWP7T35P140LVT (D, CP, CN, SN, Q, QN); input D, CP, CN, SN; output Q, QN; reg notifier; `ifdef NTC wire D_d, CP_d, CN_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (DS, S, D_d); and (D_i, CN_d, DS); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (DS, S, D); and (D_i, CN, DS); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SN_SDFCHK, CN_D_SN, 1'b1); tsmc_xbuf (CN_D_nSN_SDFCHK, CN_D_nSN, 1'b1); tsmc_xbuf (CN_nD_nSN_SDFCHK, CN_nD_nSN, 1'b1); tsmc_xbuf (CN_nD_SN_SDFCHK, CN_nD_SN, 1'b1); tsmc_xbuf (nCN_D_SN_SDFCHK, nCN_D_SN, 1'b1); tsmc_xbuf (nCN_D_nSN_SDFCHK, nCN_D_nSN, 1'b1); tsmc_xbuf (nCN_nD_SN_SDFCHK, nCN_nD_SN, 1'b1); tsmc_xbuf (nCN_nD_nSN_SDFCHK, nCN_nD_nSN, 1'b1); tsmc_xbuf (D_SN_SDFCHK, D_SN, 1'b1); tsmc_xbuf (nD_nSN_SDFCHK, nD_nSN, 1'b1); tsmc_xbuf (D_nSN_SDFCHK, D_nSN, 1'b1); tsmc_xbuf (CN_SN_SDFCHK, CN_SN, 1'b1); tsmc_xbuf (CN_nD_SDFCHK, CN_nD, 1'b1); not (nD, D); not (nCN, CN); not (nSN, SN); and (CN_D_SN, CN, D, SN); and (CN_D_nSN, CN, D, nSN); and (CN_nD_nSN, CN, nD, nSN); and (CN_nD_SN, CN, nD, SN); and (nCN_D_SN, nCN, D, SN); and (nCN_D_nSN, nCN, D, nSN); and (nCN_nD_SN, nCN, nD, SN); and (nCN_nD_nSN, nCN, nD, nSN); and (D_SN, D, SN); and (nD_nSN, nD, nSN); and (D_nSN, D, nSN); and (CN_SN, CN, SN); and (CN_nD, CN, nD); // Timing logics defined for default constraint check `ifdef NTC buf (SN_check, CN_d); and (D_check, SN_d, CN_d); `else buf (SN_check, CN); and (D_check, SN, CN); `endif tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((CN && D) || (CN && !(D) && !(SN))))) = (0, 0); (posedge CP => (QN-:((CN && D) || (CN && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& CN_D_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& D_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFKCSND4BWP7T35P140LVT (D, CP, CN, SN, Q, QN); input D, CP, CN, SN; output Q, QN; reg notifier; `ifdef NTC wire D_d, CP_d, CN_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (DS, S, D_d); and (D_i, CN_d, DS); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (DS, S, D); and (D_i, CN, DS); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SN_SDFCHK, CN_D_SN, 1'b1); tsmc_xbuf (CN_D_nSN_SDFCHK, CN_D_nSN, 1'b1); tsmc_xbuf (CN_nD_nSN_SDFCHK, CN_nD_nSN, 1'b1); tsmc_xbuf (CN_nD_SN_SDFCHK, CN_nD_SN, 1'b1); tsmc_xbuf (nCN_D_SN_SDFCHK, nCN_D_SN, 1'b1); tsmc_xbuf (nCN_D_nSN_SDFCHK, nCN_D_nSN, 1'b1); tsmc_xbuf (nCN_nD_SN_SDFCHK, nCN_nD_SN, 1'b1); tsmc_xbuf (nCN_nD_nSN_SDFCHK, nCN_nD_nSN, 1'b1); tsmc_xbuf (D_SN_SDFCHK, D_SN, 1'b1); tsmc_xbuf (nD_nSN_SDFCHK, nD_nSN, 1'b1); tsmc_xbuf (D_nSN_SDFCHK, D_nSN, 1'b1); tsmc_xbuf (CN_SN_SDFCHK, CN_SN, 1'b1); tsmc_xbuf (CN_nD_SDFCHK, CN_nD, 1'b1); not (nD, D); not (nCN, CN); not (nSN, SN); and (CN_D_SN, CN, D, SN); and (CN_D_nSN, CN, D, nSN); and (CN_nD_nSN, CN, nD, nSN); and (CN_nD_SN, CN, nD, SN); and (nCN_D_SN, nCN, D, SN); and (nCN_D_nSN, nCN, D, nSN); and (nCN_nD_SN, nCN, nD, SN); and (nCN_nD_nSN, nCN, nD, nSN); and (D_SN, D, SN); and (nD_nSN, nD, nSN); and (D_nSN, D, nSN); and (CN_SN, CN, SN); and (CN_nD, CN, nD); // Timing logics defined for default constraint check `ifdef NTC buf (SN_check, CN_d); and (D_check, SN_d, CN_d); `else buf (SN_check, CN); and (D_check, SN, CN); `endif tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((CN && D) || (CN && !(D) && !(SN))))) = (0, 0); (posedge CP => (QN-:((CN && D) || (CN && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& CN_D_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& D_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFKSND1BWP7T35P140LVT (D, CP, SN, Q, QN); input D, CP, SN; output Q, QN; reg notifier; `ifdef NTC wire D_d, CP_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (D_i, S, D_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (D_i, S, D); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SN_SDFCHK, SN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SN_SDFCHK, D_SN, 1'b1); tsmc_xbuf (D_nSN_SDFCHK, D_nSN, 1'b1); tsmc_xbuf (nD_nSN_SDFCHK, nD_nSN, 1'b1); tsmc_xbuf (nD_SN_SDFCHK, nD_SN, 1'b1); not (nD, D); not (nSN, SN); and (D_SN, D, SN); and (D_nSN, D, nSN); and (nD_nSN, nD, nSN); and (nD_SN, nD, SN); // Timing logics defined for default constraint check `ifdef NTC buf (D_check, SN_d); `else buf (D_check, SN); `endif tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((D) || (!(D) && !(SN))))) = (0, 0); (posedge CP => (QN-:((D) || (!(D) && !(SN))))) = (0, 0); $width (posedge CP &&& D_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFKSND2BWP7T35P140LVT (D, CP, SN, Q, QN); input D, CP, SN; output Q, QN; reg notifier; `ifdef NTC wire D_d, CP_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (D_i, S, D_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (D_i, S, D); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SN_SDFCHK, SN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SN_SDFCHK, D_SN, 1'b1); tsmc_xbuf (D_nSN_SDFCHK, D_nSN, 1'b1); tsmc_xbuf (nD_nSN_SDFCHK, nD_nSN, 1'b1); tsmc_xbuf (nD_SN_SDFCHK, nD_SN, 1'b1); not (nD, D); not (nSN, SN); and (D_SN, D, SN); and (D_nSN, D, nSN); and (nD_nSN, nD, nSN); and (nD_SN, nD, SN); // Timing logics defined for default constraint check `ifdef NTC buf (D_check, SN_d); `else buf (D_check, SN); `endif tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((D) || (!(D) && !(SN))))) = (0, 0); (posedge CP => (QN-:((D) || (!(D) && !(SN))))) = (0, 0); $width (posedge CP &&& D_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFKSND4BWP7T35P140LVT (D, CP, SN, Q, QN); input D, CP, SN; output Q, QN; reg notifier; `ifdef NTC wire D_d, CP_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (D_i, S, D_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (D_i, S, D); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SN_SDFCHK, SN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SN_SDFCHK, D_SN, 1'b1); tsmc_xbuf (D_nSN_SDFCHK, D_nSN, 1'b1); tsmc_xbuf (nD_nSN_SDFCHK, nD_nSN, 1'b1); tsmc_xbuf (nD_SN_SDFCHK, nD_SN, 1'b1); not (nD, D); not (nSN, SN); and (D_SN, D, SN); and (D_nSN, D, nSN); and (nD_nSN, nD, nSN); and (nD_SN, nD, SN); // Timing logics defined for default constraint check `ifdef NTC buf (D_check, SN_d); `else buf (D_check, SN); `endif tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((D) || (!(D) && !(SN))))) = (0, 0); (posedge CP => (QN-:((D) || (!(D) && !(SN))))) = (0, 0); $width (posedge CP &&& D_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFMD1BWP7T35P140LVT (DA, DB, SA, CP, Q, QN); input DA, DB, SA, CP; output Q, QN; reg notifier; `ifdef NTC wire DA_d, DB_d, SA_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D, DB_d, DA_d, SA_d); tsmc_dff (Q_buf, D, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D, DB, DA, SA); tsmc_dff (Q_buf, D, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (DA_DB_SA_SDFCHK, DA_DB_SA, 1'b1); tsmc_xbuf (DA_DB_nSA_SDFCHK, DA_DB_nSA, 1'b1); tsmc_xbuf (DA_nDB_SA_SDFCHK, DA_nDB_SA, 1'b1); tsmc_xbuf (nDA_DB_nSA_SDFCHK, nDA_DB_nSA, 1'b1); tsmc_xbuf (DA_nDB_nSA_SDFCHK, DA_nDB_nSA, 1'b1); tsmc_xbuf (nDA_DB_SA_SDFCHK, nDA_DB_SA, 1'b1); tsmc_xbuf (nDA_nDB_SA_SDFCHK, nDA_nDB_SA, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SDFCHK, nDA_nDB_nSA, 1'b1); tsmc_xbuf (DB_SA_SDFCHK, DB_SA, 1'b1); tsmc_xbuf (nDB_SA_SDFCHK, nDB_SA, 1'b1); tsmc_xbuf (DA_nSA_SDFCHK, DA_nSA, 1'b1); tsmc_xbuf (nDA_nSA_SDFCHK, nDA_nSA, 1'b1); tsmc_xbuf (DA_nDB_SDFCHK, DA_nDB, 1'b1); tsmc_xbuf (nDA_DB_SDFCHK, nDA_DB, 1'b1); not (nDA, DA); not (nDB, DB); not (nSA, SA); and (DA_DB_SA, DA, DB, SA); and (DA_DB_nSA, DA, DB, nSA); and (DA_nDB_SA, DA, nDB, SA); and (nDA_DB_nSA, nDA, DB, nSA); and (DA_nDB_nSA, DA, nDB, nSA); and (nDA_DB_SA, nDA, DB, SA); and (nDA_nDB_SA, nDA, nDB, SA); and (nDA_nDB_nSA, nDA, nDB, nSA); and (DB_SA, DB, SA); and (nDB_SA, nDB, SA); and (DA_nSA, DA, nSA); and (nDA_nSA, nDA, nSA); and (DA_nDB, DA, nDB); and (nDA_DB, nDA, DB); // Timing logics defined for default constraint check `ifdef NTC not (SA_int_not, SA_d); buf (DA_check, SA_d); `else not (SA_int_not, SA); buf (DA_check, SA); `endif buf (DB_check, SA_int_not); pullup (CP_check); pullup (SA_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SA_DEFCHK, SA_check, 1'b1); tsmc_xbuf (DB_DEFCHK, DB_check, 1'b1); tsmc_xbuf (DA_DEFCHK, DA_check, 1'b1); specify (posedge CP => (Q+:((DA && DB) || (DA && !(DB) && SA) || (!(DA) && DB && !(SA))))) = (0, 0); (posedge CP => (QN-:((DA && DB) || (DA && !(DB) && SA) || (!(DA) && DB && !(SA))))) = (0, 0); $width (posedge CP &&& DA_DB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& DB_SA_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DA_nSA_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nDB_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); `else $setuphold (posedge CP &&& DB_SA_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SDFCHK, negedge SA , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFMD2BWP7T35P140LVT (DA, DB, SA, CP, Q, QN); input DA, DB, SA, CP; output Q, QN; reg notifier; `ifdef NTC wire DA_d, DB_d, SA_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D, DB_d, DA_d, SA_d); tsmc_dff (Q_buf, D, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D, DB, DA, SA); tsmc_dff (Q_buf, D, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (DA_DB_SA_SDFCHK, DA_DB_SA, 1'b1); tsmc_xbuf (DA_DB_nSA_SDFCHK, DA_DB_nSA, 1'b1); tsmc_xbuf (DA_nDB_SA_SDFCHK, DA_nDB_SA, 1'b1); tsmc_xbuf (nDA_DB_nSA_SDFCHK, nDA_DB_nSA, 1'b1); tsmc_xbuf (DA_nDB_nSA_SDFCHK, DA_nDB_nSA, 1'b1); tsmc_xbuf (nDA_DB_SA_SDFCHK, nDA_DB_SA, 1'b1); tsmc_xbuf (nDA_nDB_SA_SDFCHK, nDA_nDB_SA, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SDFCHK, nDA_nDB_nSA, 1'b1); tsmc_xbuf (DB_SA_SDFCHK, DB_SA, 1'b1); tsmc_xbuf (nDB_SA_SDFCHK, nDB_SA, 1'b1); tsmc_xbuf (DA_nSA_SDFCHK, DA_nSA, 1'b1); tsmc_xbuf (nDA_nSA_SDFCHK, nDA_nSA, 1'b1); tsmc_xbuf (DA_nDB_SDFCHK, DA_nDB, 1'b1); tsmc_xbuf (nDA_DB_SDFCHK, nDA_DB, 1'b1); not (nDA, DA); not (nDB, DB); not (nSA, SA); and (DA_DB_SA, DA, DB, SA); and (DA_DB_nSA, DA, DB, nSA); and (DA_nDB_SA, DA, nDB, SA); and (nDA_DB_nSA, nDA, DB, nSA); and (DA_nDB_nSA, DA, nDB, nSA); and (nDA_DB_SA, nDA, DB, SA); and (nDA_nDB_SA, nDA, nDB, SA); and (nDA_nDB_nSA, nDA, nDB, nSA); and (DB_SA, DB, SA); and (nDB_SA, nDB, SA); and (DA_nSA, DA, nSA); and (nDA_nSA, nDA, nSA); and (DA_nDB, DA, nDB); and (nDA_DB, nDA, DB); // Timing logics defined for default constraint check `ifdef NTC not (SA_int_not, SA_d); buf (DA_check, SA_d); `else not (SA_int_not, SA); buf (DA_check, SA); `endif buf (DB_check, SA_int_not); pullup (CP_check); pullup (SA_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SA_DEFCHK, SA_check, 1'b1); tsmc_xbuf (DB_DEFCHK, DB_check, 1'b1); tsmc_xbuf (DA_DEFCHK, DA_check, 1'b1); specify (posedge CP => (Q+:((DA && DB) || (DA && !(DB) && SA) || (!(DA) && DB && !(SA))))) = (0, 0); (posedge CP => (QN-:((DA && DB) || (DA && !(DB) && SA) || (!(DA) && DB && !(SA))))) = (0, 0); $width (posedge CP &&& DA_DB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& DB_SA_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DA_nSA_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nDB_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); `else $setuphold (posedge CP &&& DB_SA_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SDFCHK, negedge SA , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFMD4BWP7T35P140LVT (DA, DB, SA, CP, Q, QN); input DA, DB, SA, CP; output Q, QN; reg notifier; `ifdef NTC wire DA_d, DB_d, SA_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D, DB_d, DA_d, SA_d); tsmc_dff (Q_buf, D, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D, DB, DA, SA); tsmc_dff (Q_buf, D, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (DA_DB_SA_SDFCHK, DA_DB_SA, 1'b1); tsmc_xbuf (DA_DB_nSA_SDFCHK, DA_DB_nSA, 1'b1); tsmc_xbuf (DA_nDB_SA_SDFCHK, DA_nDB_SA, 1'b1); tsmc_xbuf (nDA_DB_nSA_SDFCHK, nDA_DB_nSA, 1'b1); tsmc_xbuf (DA_nDB_nSA_SDFCHK, DA_nDB_nSA, 1'b1); tsmc_xbuf (nDA_DB_SA_SDFCHK, nDA_DB_SA, 1'b1); tsmc_xbuf (nDA_nDB_SA_SDFCHK, nDA_nDB_SA, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SDFCHK, nDA_nDB_nSA, 1'b1); tsmc_xbuf (DB_SA_SDFCHK, DB_SA, 1'b1); tsmc_xbuf (nDB_SA_SDFCHK, nDB_SA, 1'b1); tsmc_xbuf (DA_nSA_SDFCHK, DA_nSA, 1'b1); tsmc_xbuf (nDA_nSA_SDFCHK, nDA_nSA, 1'b1); tsmc_xbuf (DA_nDB_SDFCHK, DA_nDB, 1'b1); tsmc_xbuf (nDA_DB_SDFCHK, nDA_DB, 1'b1); not (nDA, DA); not (nDB, DB); not (nSA, SA); and (DA_DB_SA, DA, DB, SA); and (DA_DB_nSA, DA, DB, nSA); and (DA_nDB_SA, DA, nDB, SA); and (nDA_DB_nSA, nDA, DB, nSA); and (DA_nDB_nSA, DA, nDB, nSA); and (nDA_DB_SA, nDA, DB, SA); and (nDA_nDB_SA, nDA, nDB, SA); and (nDA_nDB_nSA, nDA, nDB, nSA); and (DB_SA, DB, SA); and (nDB_SA, nDB, SA); and (DA_nSA, DA, nSA); and (nDA_nSA, nDA, nSA); and (DA_nDB, DA, nDB); and (nDA_DB, nDA, DB); // Timing logics defined for default constraint check `ifdef NTC not (SA_int_not, SA_d); buf (DA_check, SA_d); `else not (SA_int_not, SA); buf (DA_check, SA); `endif buf (DB_check, SA_int_not); pullup (CP_check); pullup (SA_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SA_DEFCHK, SA_check, 1'b1); tsmc_xbuf (DB_DEFCHK, DB_check, 1'b1); tsmc_xbuf (DA_DEFCHK, DA_check, 1'b1); specify (posedge CP => (Q+:((DA && DB) || (DA && !(DB) && SA) || (!(DA) && DB && !(SA))))) = (0, 0); (posedge CP => (QN-:((DA && DB) || (DA && !(DB) && SA) || (!(DA) && DB && !(SA))))) = (0, 0); $width (posedge CP &&& DA_DB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& DB_SA_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DA_nSA_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nDB_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); `else $setuphold (posedge CP &&& DB_SA_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SDFCHK, negedge SA , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFMQD1BWP7T35P140LVT (DA, DB, SA, CP, Q); input DA, DB, SA, CP; output Q; reg notifier; `ifdef NTC wire DA_d, DB_d, SA_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D, DB_d, DA_d, SA_d); tsmc_dff (Q_buf, D, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D, DB, DA, SA); tsmc_dff (Q_buf, D, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (DA_DB_SA_SDFCHK, DA_DB_SA, 1'b1); tsmc_xbuf (DA_DB_nSA_SDFCHK, DA_DB_nSA, 1'b1); tsmc_xbuf (DA_nDB_SA_SDFCHK, DA_nDB_SA, 1'b1); tsmc_xbuf (nDA_DB_nSA_SDFCHK, nDA_DB_nSA, 1'b1); tsmc_xbuf (DA_nDB_nSA_SDFCHK, DA_nDB_nSA, 1'b1); tsmc_xbuf (nDA_DB_SA_SDFCHK, nDA_DB_SA, 1'b1); tsmc_xbuf (nDA_nDB_SA_SDFCHK, nDA_nDB_SA, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SDFCHK, nDA_nDB_nSA, 1'b1); tsmc_xbuf (DB_SA_SDFCHK, DB_SA, 1'b1); tsmc_xbuf (nDB_SA_SDFCHK, nDB_SA, 1'b1); tsmc_xbuf (DA_nSA_SDFCHK, DA_nSA, 1'b1); tsmc_xbuf (nDA_nSA_SDFCHK, nDA_nSA, 1'b1); tsmc_xbuf (DA_nDB_SDFCHK, DA_nDB, 1'b1); tsmc_xbuf (nDA_DB_SDFCHK, nDA_DB, 1'b1); not (nDA, DA); not (nDB, DB); not (nSA, SA); and (DA_DB_SA, DA, DB, SA); and (DA_DB_nSA, DA, DB, nSA); and (DA_nDB_SA, DA, nDB, SA); and (nDA_DB_nSA, nDA, DB, nSA); and (DA_nDB_nSA, DA, nDB, nSA); and (nDA_DB_SA, nDA, DB, SA); and (nDA_nDB_SA, nDA, nDB, SA); and (nDA_nDB_nSA, nDA, nDB, nSA); and (DB_SA, DB, SA); and (nDB_SA, nDB, SA); and (DA_nSA, DA, nSA); and (nDA_nSA, nDA, nSA); and (DA_nDB, DA, nDB); and (nDA_DB, nDA, DB); // Timing logics defined for default constraint check `ifdef NTC not (SA_int_not, SA_d); buf (DA_check, SA_d); `else not (SA_int_not, SA); buf (DA_check, SA); `endif buf (DB_check, SA_int_not); pullup (CP_check); pullup (SA_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SA_DEFCHK, SA_check, 1'b1); tsmc_xbuf (DB_DEFCHK, DB_check, 1'b1); tsmc_xbuf (DA_DEFCHK, DA_check, 1'b1); specify (posedge CP => (Q+:((DA && DB) || (DA && !(DB) && SA) || (!(DA) && DB && !(SA))))) = (0, 0); $width (posedge CP &&& DA_DB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& DB_SA_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DA_nSA_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nDB_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); `else $setuphold (posedge CP &&& DB_SA_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SDFCHK, negedge SA , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFMQD2BWP7T35P140LVT (DA, DB, SA, CP, Q); input DA, DB, SA, CP; output Q; reg notifier; `ifdef NTC wire DA_d, DB_d, SA_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D, DB_d, DA_d, SA_d); tsmc_dff (Q_buf, D, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D, DB, DA, SA); tsmc_dff (Q_buf, D, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (DA_DB_SA_SDFCHK, DA_DB_SA, 1'b1); tsmc_xbuf (DA_DB_nSA_SDFCHK, DA_DB_nSA, 1'b1); tsmc_xbuf (DA_nDB_SA_SDFCHK, DA_nDB_SA, 1'b1); tsmc_xbuf (nDA_DB_nSA_SDFCHK, nDA_DB_nSA, 1'b1); tsmc_xbuf (DA_nDB_nSA_SDFCHK, DA_nDB_nSA, 1'b1); tsmc_xbuf (nDA_DB_SA_SDFCHK, nDA_DB_SA, 1'b1); tsmc_xbuf (nDA_nDB_SA_SDFCHK, nDA_nDB_SA, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SDFCHK, nDA_nDB_nSA, 1'b1); tsmc_xbuf (DB_SA_SDFCHK, DB_SA, 1'b1); tsmc_xbuf (nDB_SA_SDFCHK, nDB_SA, 1'b1); tsmc_xbuf (DA_nSA_SDFCHK, DA_nSA, 1'b1); tsmc_xbuf (nDA_nSA_SDFCHK, nDA_nSA, 1'b1); tsmc_xbuf (DA_nDB_SDFCHK, DA_nDB, 1'b1); tsmc_xbuf (nDA_DB_SDFCHK, nDA_DB, 1'b1); not (nDA, DA); not (nDB, DB); not (nSA, SA); and (DA_DB_SA, DA, DB, SA); and (DA_DB_nSA, DA, DB, nSA); and (DA_nDB_SA, DA, nDB, SA); and (nDA_DB_nSA, nDA, DB, nSA); and (DA_nDB_nSA, DA, nDB, nSA); and (nDA_DB_SA, nDA, DB, SA); and (nDA_nDB_SA, nDA, nDB, SA); and (nDA_nDB_nSA, nDA, nDB, nSA); and (DB_SA, DB, SA); and (nDB_SA, nDB, SA); and (DA_nSA, DA, nSA); and (nDA_nSA, nDA, nSA); and (DA_nDB, DA, nDB); and (nDA_DB, nDA, DB); // Timing logics defined for default constraint check `ifdef NTC not (SA_int_not, SA_d); buf (DA_check, SA_d); `else not (SA_int_not, SA); buf (DA_check, SA); `endif buf (DB_check, SA_int_not); pullup (CP_check); pullup (SA_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SA_DEFCHK, SA_check, 1'b1); tsmc_xbuf (DB_DEFCHK, DB_check, 1'b1); tsmc_xbuf (DA_DEFCHK, DA_check, 1'b1); specify (posedge CP => (Q+:((DA && DB) || (DA && !(DB) && SA) || (!(DA) && DB && !(SA))))) = (0, 0); $width (posedge CP &&& DA_DB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& DB_SA_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DA_nSA_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nDB_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); `else $setuphold (posedge CP &&& DB_SA_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SDFCHK, negedge SA , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFMQD4BWP7T35P140LVT (DA, DB, SA, CP, Q); input DA, DB, SA, CP; output Q; reg notifier; `ifdef NTC wire DA_d, DB_d, SA_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D, DB_d, DA_d, SA_d); tsmc_dff (Q_buf, D, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D, DB, DA, SA); tsmc_dff (Q_buf, D, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (DA_DB_SA_SDFCHK, DA_DB_SA, 1'b1); tsmc_xbuf (DA_DB_nSA_SDFCHK, DA_DB_nSA, 1'b1); tsmc_xbuf (DA_nDB_SA_SDFCHK, DA_nDB_SA, 1'b1); tsmc_xbuf (nDA_DB_nSA_SDFCHK, nDA_DB_nSA, 1'b1); tsmc_xbuf (DA_nDB_nSA_SDFCHK, DA_nDB_nSA, 1'b1); tsmc_xbuf (nDA_DB_SA_SDFCHK, nDA_DB_SA, 1'b1); tsmc_xbuf (nDA_nDB_SA_SDFCHK, nDA_nDB_SA, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SDFCHK, nDA_nDB_nSA, 1'b1); tsmc_xbuf (DB_SA_SDFCHK, DB_SA, 1'b1); tsmc_xbuf (nDB_SA_SDFCHK, nDB_SA, 1'b1); tsmc_xbuf (DA_nSA_SDFCHK, DA_nSA, 1'b1); tsmc_xbuf (nDA_nSA_SDFCHK, nDA_nSA, 1'b1); tsmc_xbuf (DA_nDB_SDFCHK, DA_nDB, 1'b1); tsmc_xbuf (nDA_DB_SDFCHK, nDA_DB, 1'b1); not (nDA, DA); not (nDB, DB); not (nSA, SA); and (DA_DB_SA, DA, DB, SA); and (DA_DB_nSA, DA, DB, nSA); and (DA_nDB_SA, DA, nDB, SA); and (nDA_DB_nSA, nDA, DB, nSA); and (DA_nDB_nSA, DA, nDB, nSA); and (nDA_DB_SA, nDA, DB, SA); and (nDA_nDB_SA, nDA, nDB, SA); and (nDA_nDB_nSA, nDA, nDB, nSA); and (DB_SA, DB, SA); and (nDB_SA, nDB, SA); and (DA_nSA, DA, nSA); and (nDA_nSA, nDA, nSA); and (DA_nDB, DA, nDB); and (nDA_DB, nDA, DB); // Timing logics defined for default constraint check `ifdef NTC not (SA_int_not, SA_d); buf (DA_check, SA_d); `else not (SA_int_not, SA); buf (DA_check, SA); `endif buf (DB_check, SA_int_not); pullup (CP_check); pullup (SA_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SA_DEFCHK, SA_check, 1'b1); tsmc_xbuf (DB_DEFCHK, DB_check, 1'b1); tsmc_xbuf (DA_DEFCHK, DA_check, 1'b1); specify (posedge CP => (Q+:((DA && DB) || (DA && !(DB) && SA) || (!(DA) && DB && !(SA))))) = (0, 0); $width (posedge CP &&& DA_DB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& DB_SA_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DA_nSA_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nDB_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); `else $setuphold (posedge CP &&& DB_SA_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SDFCHK, negedge SA , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFNCND1BWP7T35P140LVT (D, CPN, CDN, Q, QN); input D, CPN, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, CPN_d; pullup (SDN); not (CP, CPN_d); tsmc_dff (Q_buf, D_d, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); not (CP, CPN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (CPN_D_SDFCHK, CPN_D, 1'b1); tsmc_xbuf (CPN_nD_SDFCHK, CPN_nD, 1'b1); tsmc_xbuf (nCPN_D_SDFCHK, nCPN_D, 1'b1); tsmc_xbuf (nCPN_nD_SDFCHK, nCPN_nD, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCPN, CPN); and (CPN_D, CPN, D); and (CPN_nD, CPN, nD); and (nCPN_D, nCPN, D); and (nCPN_nD, nCPN, nD); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (CPN_check, CDN_i); buf (D_check, CDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (negedge CPN => (Q+:D)) = (0, 0); if (CPN == 1'b1 && D == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:D)) = (0, 0); $width (negedge CDN &&& CPN_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, negedge CPN &&& D_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); `else $setuphold (negedge CPN &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, negedge CPN &&& D_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, negedge CPN &&& D_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFNCND2BWP7T35P140LVT (D, CPN, CDN, Q, QN); input D, CPN, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, CPN_d; pullup (SDN); not (CP, CPN_d); tsmc_dff (Q_buf, D_d, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); not (CP, CPN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (CPN_D_SDFCHK, CPN_D, 1'b1); tsmc_xbuf (CPN_nD_SDFCHK, CPN_nD, 1'b1); tsmc_xbuf (nCPN_D_SDFCHK, nCPN_D, 1'b1); tsmc_xbuf (nCPN_nD_SDFCHK, nCPN_nD, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCPN, CPN); and (CPN_D, CPN, D); and (CPN_nD, CPN, nD); and (nCPN_D, nCPN, D); and (nCPN_nD, nCPN, nD); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (CPN_check, CDN_i); buf (D_check, CDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (negedge CPN => (Q+:D)) = (0, 0); if (CPN == 1'b1 && D == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:D)) = (0, 0); $width (negedge CDN &&& CPN_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, negedge CPN &&& D_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); `else $setuphold (negedge CPN &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, negedge CPN &&& D_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, negedge CPN &&& D_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFNCND4BWP7T35P140LVT (D, CPN, CDN, Q, QN); input D, CPN, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, CPN_d; pullup (SDN); not (CP, CPN_d); tsmc_dff (Q_buf, D_d, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); not (CP, CPN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (CPN_D_SDFCHK, CPN_D, 1'b1); tsmc_xbuf (CPN_nD_SDFCHK, CPN_nD, 1'b1); tsmc_xbuf (nCPN_D_SDFCHK, nCPN_D, 1'b1); tsmc_xbuf (nCPN_nD_SDFCHK, nCPN_nD, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCPN, CPN); and (CPN_D, CPN, D); and (CPN_nD, CPN, nD); and (nCPN_D, nCPN, D); and (nCPN_nD, nCPN, nD); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (CPN_check, CDN_i); buf (D_check, CDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (negedge CPN => (Q+:D)) = (0, 0); if (CPN == 1'b1 && D == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:D)) = (0, 0); $width (negedge CDN &&& CPN_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, negedge CPN &&& D_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); `else $setuphold (negedge CPN &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, negedge CPN &&& D_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, negedge CPN &&& D_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFNCSND1BWP7T35P140LVT (D, CPN, CDN, SDN, Q, QN); input D, CPN, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, CPN_d; not (CP, CPN_d); tsmc_dff (Q_buf, D_d, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); not (CP, CPN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CPN_D_SDN_SDFCHK, CPN_D_SDN, 1'b1); tsmc_xbuf (CPN_nD_SDN_SDFCHK, CPN_nD_SDN, 1'b1); tsmc_xbuf (nCPN_D_SDN_SDFCHK, nCPN_D_SDN, 1'b1); tsmc_xbuf (nCPN_nD_SDN_SDFCHK, nCPN_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_CPN_D_SDFCHK, CDN_CPN_D, 1'b1); tsmc_xbuf (CDN_CPN_nD_SDFCHK, CDN_CPN_nD, 1'b1); tsmc_xbuf (CDN_nCPN_D_SDFCHK, CDN_nCPN_D, 1'b1); tsmc_xbuf (CDN_nCPN_nD_SDFCHK, CDN_nCPN_nD, 1'b1); tsmc_xbuf (CPN_D_SDFCHK, CPN_D, 1'b1); tsmc_xbuf (CPN_nD_SDFCHK, CPN_nD, 1'b1); tsmc_xbuf (nCPN_D_SDFCHK, nCPN_D, 1'b1); tsmc_xbuf (nCPN_nD_SDFCHK, nCPN_nD, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCPN, CPN); and (CPN_D_SDN, CPN, D, SDN); and (CPN_nD_SDN, CPN, nD, SDN); and (nCPN_D_SDN, nCPN, D, SDN); and (nCPN_nD_SDN, nCPN, nD, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_CPN_D, CDN, CPN, D); and (CDN_CPN_nD, CDN, CPN, nD); and (CDN_nCPN_D, CDN, nCPN, D); and (CDN_nCPN_nD, CDN, nCPN, nD); and (CPN_D, CPN, D); and (CPN_nD, CPN, nD); and (nCPN_D, nCPN, D); and (nCPN_nD, nCPN, nD); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (CPN_check, CDN_i, SDN_i); and (D_check, CDN_i, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0) (CDN => Q) = (0, 0); (negedge CPN => (Q+:D)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:D)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CPN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CPN_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, negedge CPN &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, negedge CPN &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (posedge SDN &&& CPN_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, negedge CPN &&& D_SDN_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, negedge CPN &&& CDN_nD_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CPN_D_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, negedge CPN &&& D_SDN_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, negedge CPN &&& CDN_nD_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFNCSND2BWP7T35P140LVT (D, CPN, CDN, SDN, Q, QN); input D, CPN, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, CPN_d; not (CP, CPN_d); tsmc_dff (Q_buf, D_d, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); not (CP, CPN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CPN_D_SDN_SDFCHK, CPN_D_SDN, 1'b1); tsmc_xbuf (CPN_nD_SDN_SDFCHK, CPN_nD_SDN, 1'b1); tsmc_xbuf (nCPN_D_SDN_SDFCHK, nCPN_D_SDN, 1'b1); tsmc_xbuf (nCPN_nD_SDN_SDFCHK, nCPN_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_CPN_D_SDFCHK, CDN_CPN_D, 1'b1); tsmc_xbuf (CDN_CPN_nD_SDFCHK, CDN_CPN_nD, 1'b1); tsmc_xbuf (CDN_nCPN_D_SDFCHK, CDN_nCPN_D, 1'b1); tsmc_xbuf (CDN_nCPN_nD_SDFCHK, CDN_nCPN_nD, 1'b1); tsmc_xbuf (CPN_D_SDFCHK, CPN_D, 1'b1); tsmc_xbuf (CPN_nD_SDFCHK, CPN_nD, 1'b1); tsmc_xbuf (nCPN_D_SDFCHK, nCPN_D, 1'b1); tsmc_xbuf (nCPN_nD_SDFCHK, nCPN_nD, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCPN, CPN); and (CPN_D_SDN, CPN, D, SDN); and (CPN_nD_SDN, CPN, nD, SDN); and (nCPN_D_SDN, nCPN, D, SDN); and (nCPN_nD_SDN, nCPN, nD, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_CPN_D, CDN, CPN, D); and (CDN_CPN_nD, CDN, CPN, nD); and (CDN_nCPN_D, CDN, nCPN, D); and (CDN_nCPN_nD, CDN, nCPN, nD); and (CPN_D, CPN, D); and (CPN_nD, CPN, nD); and (nCPN_D, nCPN, D); and (nCPN_nD, nCPN, nD); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (CPN_check, CDN_i, SDN_i); and (D_check, CDN_i, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0) (CDN => Q) = (0, 0); (negedge CPN => (Q+:D)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:D)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CPN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CPN_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, negedge CPN &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, negedge CPN &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (posedge SDN &&& CPN_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, negedge CPN &&& D_SDN_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, negedge CPN &&& CDN_nD_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CPN_D_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, negedge CPN &&& D_SDN_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, negedge CPN &&& CDN_nD_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFNCSND4BWP7T35P140LVT (D, CPN, CDN, SDN, Q, QN); input D, CPN, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, CPN_d; not (CP, CPN_d); tsmc_dff (Q_buf, D_d, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); not (CP, CPN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CPN_D_SDN_SDFCHK, CPN_D_SDN, 1'b1); tsmc_xbuf (CPN_nD_SDN_SDFCHK, CPN_nD_SDN, 1'b1); tsmc_xbuf (nCPN_D_SDN_SDFCHK, nCPN_D_SDN, 1'b1); tsmc_xbuf (nCPN_nD_SDN_SDFCHK, nCPN_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_CPN_D_SDFCHK, CDN_CPN_D, 1'b1); tsmc_xbuf (CDN_CPN_nD_SDFCHK, CDN_CPN_nD, 1'b1); tsmc_xbuf (CDN_nCPN_D_SDFCHK, CDN_nCPN_D, 1'b1); tsmc_xbuf (CDN_nCPN_nD_SDFCHK, CDN_nCPN_nD, 1'b1); tsmc_xbuf (CPN_D_SDFCHK, CPN_D, 1'b1); tsmc_xbuf (CPN_nD_SDFCHK, CPN_nD, 1'b1); tsmc_xbuf (nCPN_D_SDFCHK, nCPN_D, 1'b1); tsmc_xbuf (nCPN_nD_SDFCHK, nCPN_nD, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCPN, CPN); and (CPN_D_SDN, CPN, D, SDN); and (CPN_nD_SDN, CPN, nD, SDN); and (nCPN_D_SDN, nCPN, D, SDN); and (nCPN_nD_SDN, nCPN, nD, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_CPN_D, CDN, CPN, D); and (CDN_CPN_nD, CDN, CPN, nD); and (CDN_nCPN_D, CDN, nCPN, D); and (CDN_nCPN_nD, CDN, nCPN, nD); and (CPN_D, CPN, D); and (CPN_nD, CPN, nD); and (nCPN_D, nCPN, D); and (nCPN_nD, nCPN, nD); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (CPN_check, CDN_i, SDN_i); and (D_check, CDN_i, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0) (CDN => Q) = (0, 0); (negedge CPN => (Q+:D)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:D)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CPN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CPN_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, negedge CPN &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, negedge CPN &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (posedge SDN &&& CPN_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, negedge CPN &&& D_SDN_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, negedge CPN &&& CDN_nD_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CPN_D_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, negedge CPN &&& D_SDN_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, negedge CPN &&& CDN_nD_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFND1BWP7T35P140LVT (D, CPN, Q, QN); input D, CPN; output Q, QN; reg notifier; `ifdef NTC wire D_d, CPN_d; pullup (CDN); pullup (SDN); not (CP, CPN_d); tsmc_dff (Q_buf, D_d, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (CP, CPN); tsmc_dff (Q_buf, D, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); // Timing logics defined for default constraint check pullup (CPN_check); pullup (D_check); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (negedge CPN => (Q+:D)) = (0, 0); (negedge CPN => (QN-:D)) = (0, 0); $width (posedge CPN &&& D_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge CPN &&& D_DEFCHK, posedge D, 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& D_DEFCHK, negedge D, 0, 0, notifier,,, CPN_d, D_d); `else $setuphold (negedge CPN &&& D_DEFCHK, posedge D, 0, 0, notifier); $setuphold (negedge CPN &&& D_DEFCHK, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFND2BWP7T35P140LVT (D, CPN, Q, QN); input D, CPN; output Q, QN; reg notifier; `ifdef NTC wire D_d, CPN_d; pullup (CDN); pullup (SDN); not (CP, CPN_d); tsmc_dff (Q_buf, D_d, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (CP, CPN); tsmc_dff (Q_buf, D, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); // Timing logics defined for default constraint check pullup (CPN_check); pullup (D_check); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (negedge CPN => (Q+:D)) = (0, 0); (negedge CPN => (QN-:D)) = (0, 0); $width (posedge CPN &&& D_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge CPN &&& D_DEFCHK, posedge D, 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& D_DEFCHK, negedge D, 0, 0, notifier,,, CPN_d, D_d); `else $setuphold (negedge CPN &&& D_DEFCHK, posedge D, 0, 0, notifier); $setuphold (negedge CPN &&& D_DEFCHK, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFND4BWP7T35P140LVT (D, CPN, Q, QN); input D, CPN; output Q, QN; reg notifier; `ifdef NTC wire D_d, CPN_d; pullup (CDN); pullup (SDN); not (CP, CPN_d); tsmc_dff (Q_buf, D_d, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (CP, CPN); tsmc_dff (Q_buf, D, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); // Timing logics defined for default constraint check pullup (CPN_check); pullup (D_check); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (negedge CPN => (Q+:D)) = (0, 0); (negedge CPN => (QN-:D)) = (0, 0); $width (posedge CPN &&& D_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge CPN &&& D_DEFCHK, posedge D, 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& D_DEFCHK, negedge D, 0, 0, notifier,,, CPN_d, D_d); `else $setuphold (negedge CPN &&& D_DEFCHK, posedge D, 0, 0, notifier); $setuphold (negedge CPN &&& D_DEFCHK, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFNSND1BWP7T35P140LVT (D, CPN, SDN, Q, QN); input D, CPN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, CPN_d; pullup (CDN); not (CP, CPN_d); tsmc_dff (Q_buf, D_d, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); not (CP, CPN); tsmc_dff (Q_buf, D, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (CPN_D_SDFCHK, CPN_D, 1'b1); tsmc_xbuf (CPN_nD_SDFCHK, CPN_nD, 1'b1); tsmc_xbuf (nCPN_D_SDFCHK, nCPN_D, 1'b1); tsmc_xbuf (nCPN_nD_SDFCHK, nCPN_nD, 1'b1); not (nD, D); not (nCPN, CPN); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (CPN_D, CPN, D); and (CPN_nD, CPN, nD); and (nCPN_D, nCPN, D); and (nCPN_nD, nCPN, nD); // Timing logics defined for default constraint check buf (CPN_check, SDN_i); buf (D_check, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (negedge CPN => (Q+:D)) = (0, 0); if (CPN == 1'b1 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (negedge CPN => (QN-:D)) = (0, 0); if (CPN == 1'b1 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CPN &&& D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, negedge CPN &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (negedge CPN &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, negedge CPN &&& nD_SDFCHK, 0, notifier); $hold (negedge CPN &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, negedge CPN &&& nD_SDFCHK, 0, notifier); $hold (negedge CPN &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFNSND2BWP7T35P140LVT (D, CPN, SDN, Q, QN); input D, CPN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, CPN_d; pullup (CDN); not (CP, CPN_d); tsmc_dff (Q_buf, D_d, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); not (CP, CPN); tsmc_dff (Q_buf, D, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (CPN_D_SDFCHK, CPN_D, 1'b1); tsmc_xbuf (CPN_nD_SDFCHK, CPN_nD, 1'b1); tsmc_xbuf (nCPN_D_SDFCHK, nCPN_D, 1'b1); tsmc_xbuf (nCPN_nD_SDFCHK, nCPN_nD, 1'b1); not (nD, D); not (nCPN, CPN); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (CPN_D, CPN, D); and (CPN_nD, CPN, nD); and (nCPN_D, nCPN, D); and (nCPN_nD, nCPN, nD); // Timing logics defined for default constraint check buf (CPN_check, SDN_i); buf (D_check, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (negedge CPN => (Q+:D)) = (0, 0); if (CPN == 1'b1 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (negedge CPN => (QN-:D)) = (0, 0); if (CPN == 1'b1 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CPN &&& D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, negedge CPN &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (negedge CPN &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, negedge CPN &&& nD_SDFCHK, 0, notifier); $hold (negedge CPN &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, negedge CPN &&& nD_SDFCHK, 0, notifier); $hold (negedge CPN &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFNSND4BWP7T35P140LVT (D, CPN, SDN, Q, QN); input D, CPN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, CPN_d; pullup (CDN); not (CP, CPN_d); tsmc_dff (Q_buf, D_d, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); not (CP, CPN); tsmc_dff (Q_buf, D, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (CPN_D_SDFCHK, CPN_D, 1'b1); tsmc_xbuf (CPN_nD_SDFCHK, CPN_nD, 1'b1); tsmc_xbuf (nCPN_D_SDFCHK, nCPN_D, 1'b1); tsmc_xbuf (nCPN_nD_SDFCHK, nCPN_nD, 1'b1); not (nD, D); not (nCPN, CPN); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (CPN_D, CPN, D); and (CPN_nD, CPN, nD); and (nCPN_D, nCPN, D); and (nCPN_nD, nCPN, nD); // Timing logics defined for default constraint check buf (CPN_check, SDN_i); buf (D_check, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (negedge CPN => (Q+:D)) = (0, 0); if (CPN == 1'b1 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (negedge CPN => (QN-:D)) = (0, 0); if (CPN == 1'b1 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CPN &&& D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, negedge CPN &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (negedge CPN &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, negedge CPN &&& nD_SDFCHK, 0, notifier); $hold (negedge CPN &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, negedge CPN &&& nD_SDFCHK, 0, notifier); $hold (negedge CPN &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFQD1BWP7T35P140LVT (D, CP, Q); input D, CP; output Q; reg notifier; `ifdef NTC wire D_d, CP_d; pullup (CDN); pullup (SDN); tsmc_dff (Q_buf, D_d, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_dff (Q_buf, D, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); // Timing logics defined for default constraint check pullup (CP_check); pullup (D_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:D)) = (0, 0); $width (posedge CP &&& D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_DEFCHK, posedge D, 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& D_DEFCHK, negedge D, 0, 0, notifier,,, CP_d, D_d); `else $setuphold (posedge CP &&& D_DEFCHK, posedge D, 0, 0, notifier); $setuphold (posedge CP &&& D_DEFCHK, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFQD2BWP7T35P140LVT (D, CP, Q); input D, CP; output Q; reg notifier; `ifdef NTC wire D_d, CP_d; pullup (CDN); pullup (SDN); tsmc_dff (Q_buf, D_d, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_dff (Q_buf, D, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); // Timing logics defined for default constraint check pullup (CP_check); pullup (D_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:D)) = (0, 0); $width (posedge CP &&& D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_DEFCHK, posedge D, 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& D_DEFCHK, negedge D, 0, 0, notifier,,, CP_d, D_d); `else $setuphold (posedge CP &&& D_DEFCHK, posedge D, 0, 0, notifier); $setuphold (posedge CP &&& D_DEFCHK, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFQD4BWP7T35P140LVT (D, CP, Q); input D, CP; output Q; reg notifier; `ifdef NTC wire D_d, CP_d; pullup (CDN); pullup (SDN); tsmc_dff (Q_buf, D_d, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_dff (Q_buf, D, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); // Timing logics defined for default constraint check pullup (CP_check); pullup (D_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:D)) = (0, 0); $width (posedge CP &&& D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_DEFCHK, posedge D, 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& D_DEFCHK, negedge D, 0, 0, notifier,,, CP_d, D_d); `else $setuphold (posedge CP &&& D_DEFCHK, posedge D, 0, 0, notifier); $setuphold (posedge CP &&& D_DEFCHK, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFSND1BWP7T35P140LVT (D, CP, SDN, Q, QN); input D, CP, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, CP_d; pullup (CDN); tsmc_dff (Q_buf, D_d, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_dff (Q_buf, D, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); not (nD, D); not (nCP, CP); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); // Timing logics defined for default constraint check buf (CP_check, SDN_i); buf (D_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:D)) = (0, 0); if (CP == 1'b1 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (posedge CP => (QN-:D)) = (0, 0); if (CP == 1'b1 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, posedge CP &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, posedge CP &&& nD_SDFCHK, 0, notifier); $hold (posedge CP &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, posedge CP &&& nD_SDFCHK, 0, notifier); $hold (posedge CP &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFSND2BWP7T35P140LVT (D, CP, SDN, Q, QN); input D, CP, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, CP_d; pullup (CDN); tsmc_dff (Q_buf, D_d, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_dff (Q_buf, D, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); not (nD, D); not (nCP, CP); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); // Timing logics defined for default constraint check buf (CP_check, SDN_i); buf (D_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:D)) = (0, 0); if (CP == 1'b1 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (posedge CP => (QN-:D)) = (0, 0); if (CP == 1'b1 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, posedge CP &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, posedge CP &&& nD_SDFCHK, 0, notifier); $hold (posedge CP &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, posedge CP &&& nD_SDFCHK, 0, notifier); $hold (posedge CP &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFSND4BWP7T35P140LVT (D, CP, SDN, Q, QN); input D, CP, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, CP_d; pullup (CDN); tsmc_dff (Q_buf, D_d, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_dff (Q_buf, D, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); not (nD, D); not (nCP, CP); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); // Timing logics defined for default constraint check buf (CP_check, SDN_i); buf (D_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:D)) = (0, 0); if (CP == 1'b1 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (posedge CP => (QN-:D)) = (0, 0); if (CP == 1'b1 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, posedge CP &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, posedge CP &&& nD_SDFCHK, 0, notifier); $hold (posedge CP &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, posedge CP &&& nD_SDFCHK, 0, notifier); $hold (posedge CP &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFSNQD1BWP7T35P140LVT (D, CP, SDN, Q); input D, CP, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, CP_d; pullup (CDN); tsmc_dff (Q_buf, D_d, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_dff (Q_buf, D, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); not (nD, D); not (nCP, CP); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); // Timing logics defined for default constraint check buf (CP_check, SDN_i); buf (D_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:D)) = (0, 0); if (CP == 1'b1 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, posedge CP &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, posedge CP &&& nD_SDFCHK, 0, notifier); $hold (posedge CP &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, posedge CP &&& nD_SDFCHK, 0, notifier); $hold (posedge CP &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFSNQD2BWP7T35P140LVT (D, CP, SDN, Q); input D, CP, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, CP_d; pullup (CDN); tsmc_dff (Q_buf, D_d, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_dff (Q_buf, D, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); not (nD, D); not (nCP, CP); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); // Timing logics defined for default constraint check buf (CP_check, SDN_i); buf (D_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:D)) = (0, 0); if (CP == 1'b1 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, posedge CP &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, posedge CP &&& nD_SDFCHK, 0, notifier); $hold (posedge CP &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, posedge CP &&& nD_SDFCHK, 0, notifier); $hold (posedge CP &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module DFSNQD4BWP7T35P140LVT (D, CP, SDN, Q); input D, CP, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, CP_d; pullup (CDN); tsmc_dff (Q_buf, D_d, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_dff (Q_buf, D, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); not (nD, D); not (nCP, CP); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); // Timing logics defined for default constraint check buf (CP_check, SDN_i); buf (D_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:D)) = (0, 0); if (CP == 1'b1 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, posedge CP &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, posedge CP &&& nD_SDFCHK, 0, notifier); $hold (posedge CP &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, posedge CP &&& nD_SDFCHK, 0, notifier); $hold (posedge CP &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module FA1D0BWP7T35P140LVT (A, B, CI, S, CO); input A, B, CI; output S, CO; xor (I0_out, A, B); xor (S, I0_out, CI); and (I1_out, A, B); and (I2_out, B, CI); and (I3_out, A, CI); or (CO, I1_out, I2_out, I3_out); specify if (B == 1'b1 && CI == 1'b0) (A => CO) = (0, 0); if (B == 1'b0 && CI == 1'b1) (A => CO) = (0, 0); if (A == 1'b1 && CI == 1'b0) (B => CO) = (0, 0); if (A == 1'b0 && CI == 1'b1) (B => CO) = (0, 0); if (A == 1'b1 && B == 1'b0) (CI => CO) = (0, 0); if (A == 1'b0 && B == 1'b1) (CI => CO) = (0, 0); if (B == 1'b1 && CI == 1'b1) (A => S) = (0, 0); if (B == 1'b0 && CI == 1'b0) (A => S) = (0, 0); if (B == 1'b1 && CI == 1'b0) (A => S) = (0, 0); if (B == 1'b0 && CI == 1'b1) (A => S) = (0, 0); if (A == 1'b1 && CI == 1'b1) (B => S) = (0, 0); if (A == 1'b0 && CI == 1'b0) (B => S) = (0, 0); if (A == 1'b1 && CI == 1'b0) (B => S) = (0, 0); if (A == 1'b0 && CI == 1'b1) (B => S) = (0, 0); if (A == 1'b1 && B == 1'b1) (CI => S) = (0, 0); if (A == 1'b0 && B == 1'b0) (CI => S) = (0, 0); if (A == 1'b1 && B == 1'b0) (CI => S) = (0, 0); if (A == 1'b0 && B == 1'b1) (CI => S) = (0, 0); endspecify endmodule `endcelldefine `celldefine module FA1D1BWP7T35P140LVT (A, B, CI, S, CO); input A, B, CI; output S, CO; xor (I0_out, A, B); xor (S, I0_out, CI); and (I1_out, A, B); and (I2_out, B, CI); and (I3_out, A, CI); or (CO, I1_out, I2_out, I3_out); specify if (B == 1'b1 && CI == 1'b0) (A => CO) = (0, 0); if (B == 1'b0 && CI == 1'b1) (A => CO) = (0, 0); if (A == 1'b1 && CI == 1'b0) (B => CO) = (0, 0); if (A == 1'b0 && CI == 1'b1) (B => CO) = (0, 0); if (A == 1'b1 && B == 1'b0) (CI => CO) = (0, 0); if (A == 1'b0 && B == 1'b1) (CI => CO) = (0, 0); if (B == 1'b1 && CI == 1'b1) (A => S) = (0, 0); if (B == 1'b0 && CI == 1'b0) (A => S) = (0, 0); if (B == 1'b1 && CI == 1'b0) (A => S) = (0, 0); if (B == 1'b0 && CI == 1'b1) (A => S) = (0, 0); if (A == 1'b1 && CI == 1'b1) (B => S) = (0, 0); if (A == 1'b0 && CI == 1'b0) (B => S) = (0, 0); if (A == 1'b1 && CI == 1'b0) (B => S) = (0, 0); if (A == 1'b0 && CI == 1'b1) (B => S) = (0, 0); if (A == 1'b1 && B == 1'b1) (CI => S) = (0, 0); if (A == 1'b0 && B == 1'b0) (CI => S) = (0, 0); if (A == 1'b1 && B == 1'b0) (CI => S) = (0, 0); if (A == 1'b0 && B == 1'b1) (CI => S) = (0, 0); endspecify endmodule `endcelldefine `celldefine module FA1D2BWP7T35P140LVT (A, B, CI, S, CO); input A, B, CI; output S, CO; xor (I0_out, A, B); xor (S, I0_out, CI); and (I1_out, A, B); and (I2_out, B, CI); and (I3_out, A, CI); or (CO, I1_out, I2_out, I3_out); specify if (B == 1'b1 && CI == 1'b0) (A => CO) = (0, 0); if (B == 1'b0 && CI == 1'b1) (A => CO) = (0, 0); if (A == 1'b1 && CI == 1'b0) (B => CO) = (0, 0); if (A == 1'b0 && CI == 1'b1) (B => CO) = (0, 0); if (A == 1'b1 && B == 1'b0) (CI => CO) = (0, 0); if (A == 1'b0 && B == 1'b1) (CI => CO) = (0, 0); if (B == 1'b1 && CI == 1'b1) (A => S) = (0, 0); if (B == 1'b0 && CI == 1'b0) (A => S) = (0, 0); if (B == 1'b1 && CI == 1'b0) (A => S) = (0, 0); if (B == 1'b0 && CI == 1'b1) (A => S) = (0, 0); if (A == 1'b1 && CI == 1'b1) (B => S) = (0, 0); if (A == 1'b0 && CI == 1'b0) (B => S) = (0, 0); if (A == 1'b1 && CI == 1'b0) (B => S) = (0, 0); if (A == 1'b0 && CI == 1'b1) (B => S) = (0, 0); if (A == 1'b1 && B == 1'b1) (CI => S) = (0, 0); if (A == 1'b0 && B == 1'b0) (CI => S) = (0, 0); if (A == 1'b1 && B == 1'b0) (CI => S) = (0, 0); if (A == 1'b0 && B == 1'b1) (CI => S) = (0, 0); endspecify endmodule `endcelldefine `celldefine module FA1D4BWP7T35P140LVT (A, B, CI, S, CO); input A, B, CI; output S, CO; xor (I0_out, A, B); xor (S, I0_out, CI); and (I1_out, A, B); and (I2_out, B, CI); and (I3_out, A, CI); or (CO, I1_out, I2_out, I3_out); specify if (B == 1'b1 && CI == 1'b0) (A => CO) = (0, 0); if (B == 1'b0 && CI == 1'b1) (A => CO) = (0, 0); if (A == 1'b1 && CI == 1'b0) (B => CO) = (0, 0); if (A == 1'b0 && CI == 1'b1) (B => CO) = (0, 0); if (A == 1'b1 && B == 1'b0) (CI => CO) = (0, 0); if (A == 1'b0 && B == 1'b1) (CI => CO) = (0, 0); if (B == 1'b1 && CI == 1'b1) (A => S) = (0, 0); if (B == 1'b0 && CI == 1'b0) (A => S) = (0, 0); if (B == 1'b1 && CI == 1'b0) (A => S) = (0, 0); if (B == 1'b0 && CI == 1'b1) (A => S) = (0, 0); if (A == 1'b1 && CI == 1'b1) (B => S) = (0, 0); if (A == 1'b0 && CI == 1'b0) (B => S) = (0, 0); if (A == 1'b1 && CI == 1'b0) (B => S) = (0, 0); if (A == 1'b0 && CI == 1'b1) (B => S) = (0, 0); if (A == 1'b1 && B == 1'b1) (CI => S) = (0, 0); if (A == 1'b0 && B == 1'b0) (CI => S) = (0, 0); if (A == 1'b1 && B == 1'b0) (CI => S) = (0, 0); if (A == 1'b0 && B == 1'b1) (CI => S) = (0, 0); endspecify endmodule `endcelldefine `celldefine module FA1OPTCD1BWP7T35P140LVT (A, B, CI, S, CO); input A, B, CI; output S, CO; xor (I0_out, A, B); xor (S, I0_out, CI); and (I1_out, A, B); and (I2_out, B, CI); and (I3_out, A, CI); or (CO, I1_out, I2_out, I3_out); specify if (B == 1'b1 && CI == 1'b0) (A => CO) = (0, 0); if (B == 1'b0 && CI == 1'b1) (A => CO) = (0, 0); if (A == 1'b1 && CI == 1'b0) (B => CO) = (0, 0); if (A == 1'b0 && CI == 1'b1) (B => CO) = (0, 0); if (A == 1'b1 && B == 1'b0) (CI => CO) = (0, 0); if (A == 1'b0 && B == 1'b1) (CI => CO) = (0, 0); if (B == 1'b1 && CI == 1'b1) (A => S) = (0, 0); if (B == 1'b0 && CI == 1'b0) (A => S) = (0, 0); if (B == 1'b1 && CI == 1'b0) (A => S) = (0, 0); if (B == 1'b0 && CI == 1'b1) (A => S) = (0, 0); if (A == 1'b1 && CI == 1'b1) (B => S) = (0, 0); if (A == 1'b0 && CI == 1'b0) (B => S) = (0, 0); if (A == 1'b1 && CI == 1'b0) (B => S) = (0, 0); if (A == 1'b0 && CI == 1'b1) (B => S) = (0, 0); if (A == 1'b1 && B == 1'b1) (CI => S) = (0, 0); if (A == 1'b0 && B == 1'b0) (CI => S) = (0, 0); if (A == 1'b1 && B == 1'b0) (CI => S) = (0, 0); if (A == 1'b0 && B == 1'b1) (CI => S) = (0, 0); endspecify endmodule `endcelldefine `celldefine module FA1OPTSD1BWP7T35P140LVT (A, B, CI, S, CO); input A, B, CI; output S, CO; xor (I0_out, A, B); xor (S, I0_out, CI); and (I1_out, A, B); and (I2_out, B, CI); and (I3_out, A, CI); or (CO, I1_out, I2_out, I3_out); specify if (B == 1'b1 && CI == 1'b0) (A => CO) = (0, 0); if (B == 1'b0 && CI == 1'b1) (A => CO) = (0, 0); if (A == 1'b1 && CI == 1'b0) (B => CO) = (0, 0); if (A == 1'b0 && CI == 1'b1) (B => CO) = (0, 0); if (A == 1'b1 && B == 1'b0) (CI => CO) = (0, 0); if (A == 1'b0 && B == 1'b1) (CI => CO) = (0, 0); if (B == 1'b1 && CI == 1'b1) (A => S) = (0, 0); if (B == 1'b0 && CI == 1'b0) (A => S) = (0, 0); if (B == 1'b1 && CI == 1'b0) (A => S) = (0, 0); if (B == 1'b0 && CI == 1'b1) (A => S) = (0, 0); if (A == 1'b1 && CI == 1'b1) (B => S) = (0, 0); if (A == 1'b0 && CI == 1'b0) (B => S) = (0, 0); if (A == 1'b1 && CI == 1'b0) (B => S) = (0, 0); if (A == 1'b0 && CI == 1'b1) (B => S) = (0, 0); if (A == 1'b1 && B == 1'b1) (CI => S) = (0, 0); if (A == 1'b0 && B == 1'b0) (CI => S) = (0, 0); if (A == 1'b1 && B == 1'b0) (CI => S) = (0, 0); if (A == 1'b0 && B == 1'b1) (CI => S) = (0, 0); endspecify endmodule `endcelldefine `celldefine module FILL16BWP7T35P140LVT; // No function endmodule `endcelldefine `celldefine module FILL2BWP7T35P140LVT; // No function endmodule `endcelldefine `celldefine module FILL32BWP7T35P140LVT; // No function endmodule `endcelldefine `celldefine module FILL3BWP7T35P140LVT; // No function endmodule `endcelldefine `celldefine module FILL4BWP7T35P140LVT; // No function endmodule `endcelldefine `celldefine module FILL64BWP7T35P140LVT; // No function endmodule `endcelldefine `celldefine module FILL8BWP7T35P140LVT; // No function endmodule `endcelldefine `celldefine module GAN2D1BWP7T30P140LVT (A1, A2, Z); input A1, A2; output Z; and (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GAN2D2BWP7T30P140LVT (A1, A2, Z); input A1, A2; output Z; and (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GAOI21D1BWP7T30P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; and (I0_out, A1, A2); or (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GAOI21D2BWP7T30P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; and (I0_out, A1, A2); or (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GAOI22D1BWP7T30P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; and (I0_out, A1, A2); and (I1_out, B1, B2); or (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GBUFFD1BWP7T30P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GBUFFD2BWP7T30P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GBUFFD3BWP7T30P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GBUFFD4BWP7T30P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GBUFFD8BWP7T30P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GDCAP10BWP7T30P140LVT; // No function endmodule `endcelldefine `celldefine module GDCAP12BWP7T30P140LVT; // No function endmodule `endcelldefine `celldefine module GDCAP2BWP7T30P140LVT; // No function endmodule `endcelldefine `celldefine module GDCAP3BWP7T30P140LVT; // No function endmodule `endcelldefine `celldefine module GDCAP4BWP7T30P140LVT; // No function endmodule `endcelldefine `celldefine module GDCAPBWP7T30P140LVT; // No function endmodule `endcelldefine `celldefine module GDFCNQD1BWP7T30P140LVT (D, CP, CDN, Q); input D, CP, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, CP_d; pullup (SDN); tsmc_dff (Q_buf, D_d, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_dff (Q_buf, D, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (CP_D_SDFCHK, CP_D, 1'b1); tsmc_xbuf (CP_nD_SDFCHK, CP_nD, 1'b1); tsmc_xbuf (nCP_D_SDFCHK, nCP_D, 1'b1); tsmc_xbuf (nCP_nD_SDFCHK, nCP_nD, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nCP, CP); and (CP_D, CP, D); and (CP_nD, CP, nD); and (nCP_D, nCP, D); and (nCP_nD, nCP, nD); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (CP_check, CDN_i); buf (D_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:D)) = (0, 0); $width (negedge CDN &&& CP_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, posedge CP &&& D_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module GDFQD1BWP7T30P140LVT (D, CP, Q); input D, CP; output Q; reg notifier; `ifdef NTC wire D_d, CP_d; pullup (CDN); pullup (SDN); tsmc_dff (Q_buf, D_d, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_dff (Q_buf, D, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); // Timing logics defined for default constraint check pullup (CP_check); pullup (D_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:D)) = (0, 0); $width (posedge CP &&& D_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_DEFCHK, posedge D, 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& D_DEFCHK, negedge D, 0, 0, notifier,,, CP_d, D_d); `else $setuphold (posedge CP &&& D_DEFCHK, posedge D, 0, 0, notifier); $setuphold (posedge CP &&& D_DEFCHK, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module GFILL10BWP7T30P140LVT; // No function endmodule `endcelldefine `celldefine module GFILL12BWP7T30P140LVT; // No function endmodule `endcelldefine `celldefine module GFILL2BWP7T30P140LVT; // No function endmodule `endcelldefine `celldefine module GFILL3BWP7T30P140LVT; // No function endmodule `endcelldefine `celldefine module GFILL4BWP7T30P140LVT; // No function endmodule `endcelldefine `celldefine module GFILLBWP7T30P140LVT; // No function endmodule `endcelldefine `celldefine module GINVD1BWP7T30P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GINVD2BWP7T30P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GINVD3BWP7T30P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GINVD4BWP7T30P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GINVD8BWP7T30P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GMUX2D1BWP7T30P140LVT (I0, I1, S, Z); input I0, I1, S; output Z; tsmc_mux (Z, I0, I1, S); specify if (I1 == 1'b1 && S == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GMUX2D2BWP7T30P140LVT (I0, I1, S, Z); input I0, I1, S; output Z; tsmc_mux (Z, I0, I1, S); specify if (I1 == 1'b1 && S == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GMUX2ND1BWP7T30P140LVT (I0, I1, S, ZN); input I0, I1, S; output ZN; tsmc_mux (I0_out, I0, I1, S); not (ZN, I0_out); specify if (I1 == 1'b1 && S == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => ZN) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GMUX2ND2BWP7T30P140LVT (I0, I1, S, ZN); input I0, I1, S; output ZN; tsmc_mux (I0_out, I0, I1, S); not (ZN, I0_out); specify if (I1 == 1'b1 && S == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => ZN) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GND2D1BWP7T30P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GND2D2BWP7T30P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GND2D3BWP7T30P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GND2D4BWP7T30P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GND3D1BWP7T30P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; and (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GND3D2BWP7T30P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; and (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GNR2D1BWP7T30P140LVT (A1, A2, ZN); input A1, A2; output ZN; or (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GNR2D2BWP7T30P140LVT (A1, A2, ZN); input A1, A2; output ZN; or (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GNR3D1BWP7T30P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; or (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GNR3D2BWP7T30P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; or (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GOAI21D1BWP7T30P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GOAI21D2BWP7T30P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GOR2D1BWP7T30P140LVT (A1, A2, Z); input A1, A2; output Z; or (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GOR2D2BWP7T30P140LVT (A1, A2, Z); input A1, A2; output Z; or (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GSDFCNQD1BWP7T30P140LVT (SI, D, SE, CP, CDN, Q); input SI, D, SE, CP, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module GTIEHBWP7T30P140LVT (Z); output Z; buf (Z, 1'b1); endmodule `endcelldefine `celldefine module GTIELBWP7T30P140LVT (ZN); output ZN; buf (ZN, 1'b0); endmodule `endcelldefine `celldefine module GXNR2D1BWP7T30P140LVT (A1, A2, ZN); input A1, A2; output ZN; xor (I0_out, A1, A2); not (ZN, I0_out); specify if (A2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0) (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GXNR2D2BWP7T30P140LVT (A1, A2, ZN); input A1, A2; output ZN; xor (I0_out, A1, A2); not (ZN, I0_out); specify if (A2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0) (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GXOR2D1BWP7T30P140LVT (A1, A2, Z); input A1, A2; output Z; xor (Z, A1, A2); specify if (A2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1) (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module GXOR2D2BWP7T30P140LVT (A1, A2, Z); input A1, A2; output Z; xor (Z, A1, A2); specify if (A2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1) (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module HA1D0BWP7T35P140LVT (A, B, S, CO); input A, B; output S, CO; xor (S, A, B); and (CO, A, B); specify (A => CO) = (0, 0); (B => CO) = (0, 0); if (B == 1'b0) (A => S) = (0, 0); if (B == 1'b1) (A => S) = (0, 0); if (A == 1'b0) (B => S) = (0, 0); if (A == 1'b1) (B => S) = (0, 0); endspecify endmodule `endcelldefine `celldefine module HA1D1BWP7T35P140LVT (A, B, S, CO); input A, B; output S, CO; xor (S, A, B); and (CO, A, B); specify (A => CO) = (0, 0); (B => CO) = (0, 0); if (B == 1'b0) (A => S) = (0, 0); if (B == 1'b1) (A => S) = (0, 0); if (A == 1'b0) (B => S) = (0, 0); if (A == 1'b1) (B => S) = (0, 0); endspecify endmodule `endcelldefine `celldefine module HA1D2BWP7T35P140LVT (A, B, S, CO); input A, B; output S, CO; xor (S, A, B); and (CO, A, B); specify (A => CO) = (0, 0); (B => CO) = (0, 0); if (B == 1'b0) (A => S) = (0, 0); if (B == 1'b1) (A => S) = (0, 0); if (A == 1'b0) (B => S) = (0, 0); if (A == 1'b1) (B => S) = (0, 0); endspecify endmodule `endcelldefine `celldefine module HA1D4BWP7T35P140LVT (A, B, S, CO); input A, B; output S, CO; xor (S, A, B); and (CO, A, B); specify (A => CO) = (0, 0); (B => CO) = (0, 0); if (B == 1'b0) (A => S) = (0, 0); if (B == 1'b1) (A => S) = (0, 0); if (A == 1'b0) (B => S) = (0, 0); if (A == 1'b1) (B => S) = (0, 0); endspecify endmodule `endcelldefine `celldefine module IND2D0BWP7T35P140LVT (A1, B1, ZN); input A1, B1; output ZN; not (I0_out, A1); and (I1_out, I0_out, B1); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module IND2D1BWP7T35P140LVT (A1, B1, ZN); input A1, B1; output ZN; not (I0_out, A1); and (I1_out, I0_out, B1); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module IND2D2BWP7T35P140LVT (A1, B1, ZN); input A1, B1; output ZN; not (I0_out, A1); and (I1_out, I0_out, B1); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module IND2D4BWP7T35P140LVT (A1, B1, ZN); input A1, B1; output ZN; not (I0_out, A1); and (I1_out, I0_out, B1); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module IND2OPTPAD12BWP7T35P140LVT (A1, B1, ZN); input A1, B1; output ZN; not (I0_out, A1); and (I1_out, I0_out, B1); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module IND2OPTPAD1BWP7T35P140LVT (A1, B1, ZN); input A1, B1; output ZN; not (I0_out, A1); and (I1_out, I0_out, B1); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module IND2OPTPAD2BWP7T35P140LVT (A1, B1, ZN); input A1, B1; output ZN; not (I0_out, A1); and (I1_out, I0_out, B1); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module IND2OPTPAD4BWP7T35P140LVT (A1, B1, ZN); input A1, B1; output ZN; not (I0_out, A1); and (I1_out, I0_out, B1); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module IND2OPTPAD8BWP7T35P140LVT (A1, B1, ZN); input A1, B1; output ZN; not (I0_out, A1); and (I1_out, I0_out, B1); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module IND3D0BWP7T35P140LVT (A1, B1, B2, ZN); input A1, B1, B2; output ZN; not (I0_out, A1); and (I1_out, I0_out, B1, B2); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module IND3D1BWP7T35P140LVT (A1, B1, B2, ZN); input A1, B1, B2; output ZN; not (I0_out, A1); and (I1_out, I0_out, B1, B2); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module IND3D2BWP7T35P140LVT (A1, B1, B2, ZN); input A1, B1, B2; output ZN; not (I0_out, A1); and (I1_out, I0_out, B1, B2); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module IND3D4BWP7T35P140LVT (A1, B1, B2, ZN); input A1, B1, B2; output ZN; not (I0_out, A1); and (I1_out, I0_out, B1, B2); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module IND4D0BWP7T35P140LVT (A1, B1, B2, B3, ZN); input A1, B1, B2, B3; output ZN; not (I0_out, A1); and (I1_out, I0_out, B1, B2, B3); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); (B2 => ZN) = (0, 0); (B3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module IND4D1BWP7T35P140LVT (A1, B1, B2, B3, ZN); input A1, B1, B2, B3; output ZN; not (I0_out, A1); and (I1_out, I0_out, B1, B2, B3); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); (B2 => ZN) = (0, 0); (B3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module IND4D2BWP7T35P140LVT (A1, B1, B2, B3, ZN); input A1, B1, B2, B3; output ZN; not (I0_out, A1); and (I1_out, I0_out, B1, B2, B3); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); (B2 => ZN) = (0, 0); (B3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module IND4D4BWP7T35P140LVT (A1, B1, B2, B3, ZN); input A1, B1, B2, B3; output ZN; not (I0_out, A1); and (I1_out, I0_out, B1, B2, B3); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); (B2 => ZN) = (0, 0); (B3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INR2D0BWP7T35P140LVT (A1, B1, ZN); input A1, B1; output ZN; not (I0_out, A1); or (I1_out, I0_out, B1); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INR2D1BWP7T35P140LVT (A1, B1, ZN); input A1, B1; output ZN; not (I0_out, A1); or (I1_out, I0_out, B1); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INR2D2BWP7T35P140LVT (A1, B1, ZN); input A1, B1; output ZN; not (I0_out, A1); or (I1_out, I0_out, B1); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INR2D4BWP7T35P140LVT (A1, B1, ZN); input A1, B1; output ZN; not (I0_out, A1); or (I1_out, I0_out, B1); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INR2OPTPAD12BWP7T35P140LVT (A1, B1, ZN); input A1, B1; output ZN; not (I0_out, A1); or (I1_out, I0_out, B1); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INR2OPTPAD1BWP7T35P140LVT (A1, B1, ZN); input A1, B1; output ZN; not (I0_out, A1); or (I1_out, I0_out, B1); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INR2OPTPAD2BWP7T35P140LVT (A1, B1, ZN); input A1, B1; output ZN; not (I0_out, A1); or (I1_out, I0_out, B1); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INR2OPTPAD4BWP7T35P140LVT (A1, B1, ZN); input A1, B1; output ZN; not (I0_out, A1); or (I1_out, I0_out, B1); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INR2OPTPAD8BWP7T35P140LVT (A1, B1, ZN); input A1, B1; output ZN; not (I0_out, A1); or (I1_out, I0_out, B1); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INR3D0BWP7T35P140LVT (A1, B1, B2, ZN); input A1, B1, B2; output ZN; not (I0_out, A1); or (I1_out, I0_out, B1, B2); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INR3D1BWP7T35P140LVT (A1, B1, B2, ZN); input A1, B1, B2; output ZN; not (I0_out, A1); or (I1_out, I0_out, B1, B2); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INR3D2BWP7T35P140LVT (A1, B1, B2, ZN); input A1, B1, B2; output ZN; not (I0_out, A1); or (I1_out, I0_out, B1, B2); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INR3D4BWP7T35P140LVT (A1, B1, B2, ZN); input A1, B1, B2; output ZN; not (I0_out, A1); or (I1_out, I0_out, B1, B2); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INR4D0BWP7T35P140LVT (A1, B1, B2, B3, ZN); input A1, B1, B2, B3; output ZN; not (I0_out, A1); or (I1_out, I0_out, B1, B2, B3); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); (B2 => ZN) = (0, 0); (B3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INR4D1BWP7T35P140LVT (A1, B1, B2, B3, ZN); input A1, B1, B2, B3; output ZN; not (I0_out, A1); or (I1_out, I0_out, B1, B2, B3); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); (B2 => ZN) = (0, 0); (B3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INR4D2BWP7T35P140LVT (A1, B1, B2, B3, ZN); input A1, B1, B2, B3; output ZN; not (I0_out, A1); or (I1_out, I0_out, B1, B2, B3); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); (B2 => ZN) = (0, 0); (B3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INR4D4BWP7T35P140LVT (A1, B1, B2, B3, ZN); input A1, B1, B2, B3; output ZN; not (I0_out, A1); or (I1_out, I0_out, B1, B2, B3); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (B1 => ZN) = (0, 0); (B2 => ZN) = (0, 0); (B3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INVD0BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INVD12BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INVD16BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INVD1BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INVD20BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INVD2BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INVD3BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INVD4BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INVD6BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module INVD8BWP7T35P140LVT (I, ZN); input I; output ZN; not (ZN, I); specify (I => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LHCND1BWP7T35P140LVT (D, E, CDN, Q, QN); input D, E, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, E_d; pullup (SDN); tsmc_dla (Q_buf, D_d, E_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_dla (Q_buf, D, E, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (D_nE_SDFCHK, D_nE, 1'b1); tsmc_xbuf (nD_nE_SDFCHK, nD_nE, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nE, E); and (D_nE, D, nE); and (nD_nE, nD, nE); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (D_check, CDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (D == 1'b1 && E == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && E == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && E == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); if (D == 1'b1 && E == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b1 && E == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b0 && E == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); ifnone (posedge CDN => (QN-:1'b0)) = (0, 0); (D => QN) = (0, 0); (posedge E => (QN-:D)) = (0, 0); $width (negedge CDN &&& D_nE_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_nE_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_D_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge E &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, negedge E &&& D_SDFCHK, 0,0, notifier, , , CDN_d, E_d); `else $setuphold (negedge E &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, negedge E &&& D_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (negedge E &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge E &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, negedge E &&& D_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHCND2BWP7T35P140LVT (D, E, CDN, Q, QN); input D, E, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, E_d; pullup (SDN); tsmc_dla (Q_buf, D_d, E_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_dla (Q_buf, D, E, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (D_nE_SDFCHK, D_nE, 1'b1); tsmc_xbuf (nD_nE_SDFCHK, nD_nE, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nE, E); and (D_nE, D, nE); and (nD_nE, nD, nE); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (D_check, CDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (D == 1'b1 && E == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && E == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && E == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); if (D == 1'b1 && E == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b1 && E == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b0 && E == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); ifnone (posedge CDN => (QN-:1'b0)) = (0, 0); (D => QN) = (0, 0); (posedge E => (QN-:D)) = (0, 0); $width (negedge CDN &&& D_nE_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_nE_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_D_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge E &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, negedge E &&& D_SDFCHK, 0,0, notifier, , , CDN_d, E_d); `else $setuphold (negedge E &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, negedge E &&& D_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (negedge E &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge E &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, negedge E &&& D_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHCND4BWP7T35P140LVT (D, E, CDN, Q, QN); input D, E, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, E_d; pullup (SDN); tsmc_dla (Q_buf, D_d, E_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_dla (Q_buf, D, E, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (D_nE_SDFCHK, D_nE, 1'b1); tsmc_xbuf (nD_nE_SDFCHK, nD_nE, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nE, E); and (D_nE, D, nE); and (nD_nE, nD, nE); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (D_check, CDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (D == 1'b1 && E == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && E == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && E == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); if (D == 1'b1 && E == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b1 && E == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b0 && E == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); ifnone (posedge CDN => (QN-:1'b0)) = (0, 0); (D => QN) = (0, 0); (posedge E => (QN-:D)) = (0, 0); $width (negedge CDN &&& D_nE_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_nE_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_D_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge E &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, negedge E &&& D_SDFCHK, 0,0, notifier, , , CDN_d, E_d); `else $setuphold (negedge E &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, negedge E &&& D_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (negedge E &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge E &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, negedge E &&& D_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHCNQD1BWP7T35P140LVT (D, E, CDN, Q); input D, E, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, E_d; pullup (SDN); tsmc_dla (Q_buf, D_d, E_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_dla (Q_buf, D, E, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (D_nE_SDFCHK, D_nE, 1'b1); tsmc_xbuf (nD_nE_SDFCHK, nD_nE, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nE, E); and (D_nE, D, nE); and (nD_nE, nD, nE); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (D_check, CDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (D == 1'b1 && E == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && E == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && E == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); $width (negedge CDN &&& D_nE_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_nE_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_D_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge E &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, negedge E &&& D_SDFCHK, 0,0, notifier, , , CDN_d, E_d); `else $setuphold (negedge E &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, negedge E &&& D_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (negedge E &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge E &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, negedge E &&& D_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHCNQD2BWP7T35P140LVT (D, E, CDN, Q); input D, E, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, E_d; pullup (SDN); tsmc_dla (Q_buf, D_d, E_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_dla (Q_buf, D, E, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (D_nE_SDFCHK, D_nE, 1'b1); tsmc_xbuf (nD_nE_SDFCHK, nD_nE, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nE, E); and (D_nE, D, nE); and (nD_nE, nD, nE); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (D_check, CDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (D == 1'b1 && E == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && E == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && E == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); $width (negedge CDN &&& D_nE_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_nE_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_D_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge E &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, negedge E &&& D_SDFCHK, 0,0, notifier, , , CDN_d, E_d); `else $setuphold (negedge E &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, negedge E &&& D_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (negedge E &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge E &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, negedge E &&& D_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHCNQD4BWP7T35P140LVT (D, E, CDN, Q); input D, E, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, E_d; pullup (SDN); tsmc_dla (Q_buf, D_d, E_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_dla (Q_buf, D, E, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (D_nE_SDFCHK, D_nE, 1'b1); tsmc_xbuf (nD_nE_SDFCHK, nD_nE, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nE, E); and (D_nE, D, nE); and (nD_nE, nD, nE); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (D_check, CDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (D == 1'b1 && E == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && E == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && E == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); $width (negedge CDN &&& D_nE_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_nE_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_D_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge E &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, negedge E &&& D_SDFCHK, 0,0, notifier, , , CDN_d, E_d); `else $setuphold (negedge E &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, negedge E &&& D_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (negedge E &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge E &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, negedge E &&& D_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHCSND1BWP7T35P140LVT (D, E, CDN, SDN, Q, QN); input D, E, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, E_d; tsmc_dla (Q_buf, D_d, E_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_dla (Q_buf, D, E, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (D_nE_SDN_SDFCHK, D_nE_SDN, 1'b1); tsmc_xbuf (nD_nE_SDN_SDFCHK, nD_nE_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_nE_SDFCHK, CDN_D_nE, 1'b1); tsmc_xbuf (CDN_nD_nE_SDFCHK, CDN_nD_nE, 1'b1); tsmc_xbuf (D_nE_SDFCHK, D_nE, 1'b1); tsmc_xbuf (nD_nE_SDFCHK, nD_nE, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nE, E); and (D_nE_SDN, D, nE, SDN); and (nD_nE_SDN, nD, nE, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_D_nE, CDN, D, nE); and (CDN_nD_nE, CDN, nD, nE); and (D_nE, D, nE); and (nD_nE, nD, nE); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (D_check, SDN_i, CDN_i); buf (E_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); specify if (D == 1'b1 && E == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && E == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && E == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); if (CDN == 1'b1 && D == 1'b1 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && E == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && E == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && E == 1'b0) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && E == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && E == 1'b0) (SDN => Q) = (0, 0); if (D == 1'b1 && E == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b1 && E == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b0 && E == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); ifnone (posedge CDN => (QN-:1'b0)) = (0, 0); (D => QN) = (0, 0); (posedge E => (QN-:D)) = (0, 0); if (CDN == 1'b1 && D == 1'b1 && E == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && E == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && E == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && E == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && E == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && E == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && E == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& D_nE_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_nE_SDN_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_D_nE_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nD_nE_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& D_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (posedge CDN &&& D_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, negedge E &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, E_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, negedge E &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, E_d); `else $setuphold (posedge SDN &&& D_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (posedge CDN &&& D_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, negedge E &&& D_SDN_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, negedge E &&& CDN_nD_SDFCHK, 0, notifier); $hold (negedge E &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& D_nE_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nD_nE_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (negedge E &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge E &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& D_nE_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nD_nE_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, negedge E &&& D_SDN_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, negedge E &&& CDN_nD_SDFCHK, 0, notifier); $hold (negedge E &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHCSND2BWP7T35P140LVT (D, E, CDN, SDN, Q, QN); input D, E, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, E_d; tsmc_dla (Q_buf, D_d, E_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_dla (Q_buf, D, E, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (D_nE_SDN_SDFCHK, D_nE_SDN, 1'b1); tsmc_xbuf (nD_nE_SDN_SDFCHK, nD_nE_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_nE_SDFCHK, CDN_D_nE, 1'b1); tsmc_xbuf (CDN_nD_nE_SDFCHK, CDN_nD_nE, 1'b1); tsmc_xbuf (D_nE_SDFCHK, D_nE, 1'b1); tsmc_xbuf (nD_nE_SDFCHK, nD_nE, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nE, E); and (D_nE_SDN, D, nE, SDN); and (nD_nE_SDN, nD, nE, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_D_nE, CDN, D, nE); and (CDN_nD_nE, CDN, nD, nE); and (D_nE, D, nE); and (nD_nE, nD, nE); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (D_check, SDN_i, CDN_i); buf (E_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); specify if (D == 1'b1 && E == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && E == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && E == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); if (CDN == 1'b1 && D == 1'b1 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && E == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && E == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && E == 1'b0) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && E == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && E == 1'b0) (SDN => Q) = (0, 0); if (D == 1'b1 && E == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b1 && E == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b0 && E == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); ifnone (posedge CDN => (QN-:1'b0)) = (0, 0); (D => QN) = (0, 0); (posedge E => (QN-:D)) = (0, 0); if (CDN == 1'b1 && D == 1'b1 && E == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && E == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && E == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && E == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && E == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && E == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && E == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& D_nE_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_nE_SDN_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_D_nE_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nD_nE_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& D_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (posedge CDN &&& D_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, negedge E &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, E_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, negedge E &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, E_d); `else $setuphold (posedge SDN &&& D_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (posedge CDN &&& D_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, negedge E &&& D_SDN_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, negedge E &&& CDN_nD_SDFCHK, 0, notifier); $hold (negedge E &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& D_nE_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nD_nE_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (negedge E &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge E &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& D_nE_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nD_nE_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, negedge E &&& D_SDN_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, negedge E &&& CDN_nD_SDFCHK, 0, notifier); $hold (negedge E &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHCSND4BWP7T35P140LVT (D, E, CDN, SDN, Q, QN); input D, E, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, E_d; tsmc_dla (Q_buf, D_d, E_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_dla (Q_buf, D, E, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (D_nE_SDN_SDFCHK, D_nE_SDN, 1'b1); tsmc_xbuf (nD_nE_SDN_SDFCHK, nD_nE_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_nE_SDFCHK, CDN_D_nE, 1'b1); tsmc_xbuf (CDN_nD_nE_SDFCHK, CDN_nD_nE, 1'b1); tsmc_xbuf (D_nE_SDFCHK, D_nE, 1'b1); tsmc_xbuf (nD_nE_SDFCHK, nD_nE, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nE, E); and (D_nE_SDN, D, nE, SDN); and (nD_nE_SDN, nD, nE, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_D_nE, CDN, D, nE); and (CDN_nD_nE, CDN, nD, nE); and (D_nE, D, nE); and (nD_nE, nD, nE); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (D_check, SDN_i, CDN_i); buf (E_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); specify if (D == 1'b1 && E == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && E == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && E == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); if (CDN == 1'b1 && D == 1'b1 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && E == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && E == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && E == 1'b0) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && E == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && E == 1'b0) (SDN => Q) = (0, 0); if (D == 1'b1 && E == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b1 && E == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b0 && E == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); ifnone (posedge CDN => (QN-:1'b0)) = (0, 0); (D => QN) = (0, 0); (posedge E => (QN-:D)) = (0, 0); if (CDN == 1'b1 && D == 1'b1 && E == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && E == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && E == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && E == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && E == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && E == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && E == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& D_nE_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_nE_SDN_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_D_nE_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nD_nE_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& D_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (posedge CDN &&& D_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, negedge E &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, E_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, negedge E &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, E_d); `else $setuphold (posedge SDN &&& D_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (posedge CDN &&& D_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, negedge E &&& D_SDN_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, negedge E &&& CDN_nD_SDFCHK, 0, notifier); $hold (negedge E &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& D_nE_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nD_nE_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (negedge E &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge E &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& D_nE_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nD_nE_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, negedge E &&& D_SDN_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, negedge E &&& CDN_nD_SDFCHK, 0, notifier); $hold (negedge E &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHCSNQD1BWP7T35P140LVT (D, E, CDN, SDN, Q); input D, E, CDN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, E_d; tsmc_dla (Q_buf, D_d, E_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_dla (Q_buf, D, E, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (D_nE_SDN_SDFCHK, D_nE_SDN, 1'b1); tsmc_xbuf (nD_nE_SDN_SDFCHK, nD_nE_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_nE_SDFCHK, CDN_D_nE, 1'b1); tsmc_xbuf (CDN_nD_nE_SDFCHK, CDN_nD_nE, 1'b1); tsmc_xbuf (D_nE_SDFCHK, D_nE, 1'b1); tsmc_xbuf (nD_nE_SDFCHK, nD_nE, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nE, E); and (D_nE_SDN, D, nE, SDN); and (nD_nE_SDN, nD, nE, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_D_nE, CDN, D, nE); and (CDN_nD_nE, CDN, nD, nE); and (D_nE, D, nE); and (nD_nE, nD, nE); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (D_check, SDN_i, CDN_i); buf (E_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); specify if (D == 1'b1 && E == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && E == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && E == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); if (CDN == 1'b1 && D == 1'b1 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && E == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && E == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && E == 1'b0) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && E == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && E == 1'b0) (SDN => Q) = (0, 0); $width (negedge CDN &&& D_nE_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_nE_SDN_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_D_nE_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nD_nE_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& D_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (posedge CDN &&& D_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, negedge E &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, E_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, negedge E &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, E_d); `else $setuphold (posedge SDN &&& D_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (posedge CDN &&& D_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, negedge E &&& D_SDN_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, negedge E &&& CDN_nD_SDFCHK, 0, notifier); $hold (negedge E &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& D_nE_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nD_nE_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (negedge E &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge E &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& D_nE_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nD_nE_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, negedge E &&& D_SDN_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, negedge E &&& CDN_nD_SDFCHK, 0, notifier); $hold (negedge E &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHCSNQD2BWP7T35P140LVT (D, E, CDN, SDN, Q); input D, E, CDN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, E_d; tsmc_dla (Q_buf, D_d, E_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_dla (Q_buf, D, E, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (D_nE_SDN_SDFCHK, D_nE_SDN, 1'b1); tsmc_xbuf (nD_nE_SDN_SDFCHK, nD_nE_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_nE_SDFCHK, CDN_D_nE, 1'b1); tsmc_xbuf (CDN_nD_nE_SDFCHK, CDN_nD_nE, 1'b1); tsmc_xbuf (D_nE_SDFCHK, D_nE, 1'b1); tsmc_xbuf (nD_nE_SDFCHK, nD_nE, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nE, E); and (D_nE_SDN, D, nE, SDN); and (nD_nE_SDN, nD, nE, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_D_nE, CDN, D, nE); and (CDN_nD_nE, CDN, nD, nE); and (D_nE, D, nE); and (nD_nE, nD, nE); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (D_check, SDN_i, CDN_i); buf (E_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); specify if (D == 1'b1 && E == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && E == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && E == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); if (CDN == 1'b1 && D == 1'b1 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && E == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && E == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && E == 1'b0) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && E == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && E == 1'b0) (SDN => Q) = (0, 0); $width (negedge CDN &&& D_nE_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_nE_SDN_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_D_nE_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nD_nE_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& D_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (posedge CDN &&& D_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, negedge E &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, E_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, negedge E &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, E_d); `else $setuphold (posedge SDN &&& D_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (posedge CDN &&& D_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, negedge E &&& D_SDN_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, negedge E &&& CDN_nD_SDFCHK, 0, notifier); $hold (negedge E &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& D_nE_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nD_nE_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (negedge E &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge E &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& D_nE_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nD_nE_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, negedge E &&& D_SDN_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, negedge E &&& CDN_nD_SDFCHK, 0, notifier); $hold (negedge E &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHCSNQD4BWP7T35P140LVT (D, E, CDN, SDN, Q); input D, E, CDN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, E_d; tsmc_dla (Q_buf, D_d, E_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_dla (Q_buf, D, E, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (D_nE_SDN_SDFCHK, D_nE_SDN, 1'b1); tsmc_xbuf (nD_nE_SDN_SDFCHK, nD_nE_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_nE_SDFCHK, CDN_D_nE, 1'b1); tsmc_xbuf (CDN_nD_nE_SDFCHK, CDN_nD_nE, 1'b1); tsmc_xbuf (D_nE_SDFCHK, D_nE, 1'b1); tsmc_xbuf (nD_nE_SDFCHK, nD_nE, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); not (nE, E); and (D_nE_SDN, D, nE, SDN); and (nD_nE_SDN, nD, nE, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_D_nE, CDN, D, nE); and (CDN_nD_nE, CDN, nD, nE); and (D_nE, D, nE); and (nD_nE, nD, nE); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (D_check, SDN_i, CDN_i); buf (E_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); specify if (D == 1'b1 && E == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && E == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && E == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); if (CDN == 1'b1 && D == 1'b1 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && E == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && E == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && E == 1'b0) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && E == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && E == 1'b0) (SDN => Q) = (0, 0); $width (negedge CDN &&& D_nE_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_nE_SDN_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (posedge E &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_D_nE_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nD_nE_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& D_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (posedge CDN &&& D_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, negedge E &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, E_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, negedge E &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, E_d); `else $setuphold (posedge SDN &&& D_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_nE_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (posedge CDN &&& D_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_nE_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, negedge E &&& D_SDN_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, negedge E &&& CDN_nD_SDFCHK, 0, notifier); $hold (negedge E &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& D_nE_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nD_nE_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (negedge E &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge E &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& D_nE_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nD_nE_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, negedge E &&& D_SDN_SDFCHK, 0, notifier); $hold (negedge E &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, negedge E &&& CDN_nD_SDFCHK, 0, notifier); $hold (negedge E &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHD1BWP7T35P140LVT (D, E, Q, QN); input D, E; output Q, QN; reg notifier; `ifdef NTC wire D_d, E_d; pullup (CDN); pullup (SDN); tsmc_dla (Q_buf, D_d, E_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_dla (Q_buf, D, E, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); specify (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); (D => QN) = (0, 0); (posedge E => (QN-:D)) = (0, 0); $width (posedge E &&& D_SDFCHK, 0, 0, notifier); $width (posedge E &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge E, posedge D, 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E, negedge D, 0, 0, notifier,,, E_d, D_d); `else $setuphold (negedge E, posedge D, 0, 0, notifier); $setuphold (negedge E, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHD2BWP7T35P140LVT (D, E, Q, QN); input D, E; output Q, QN; reg notifier; `ifdef NTC wire D_d, E_d; pullup (CDN); pullup (SDN); tsmc_dla (Q_buf, D_d, E_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_dla (Q_buf, D, E, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); specify (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); (D => QN) = (0, 0); (posedge E => (QN-:D)) = (0, 0); $width (posedge E &&& D_SDFCHK, 0, 0, notifier); $width (posedge E &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge E, posedge D, 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E, negedge D, 0, 0, notifier,,, E_d, D_d); `else $setuphold (negedge E, posedge D, 0, 0, notifier); $setuphold (negedge E, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHD4BWP7T35P140LVT (D, E, Q, QN); input D, E; output Q, QN; reg notifier; `ifdef NTC wire D_d, E_d; pullup (CDN); pullup (SDN); tsmc_dla (Q_buf, D_d, E_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_dla (Q_buf, D, E, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); specify (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); (D => QN) = (0, 0); (posedge E => (QN-:D)) = (0, 0); $width (posedge E &&& D_SDFCHK, 0, 0, notifier); $width (posedge E &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge E, posedge D, 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E, negedge D, 0, 0, notifier,,, E_d, D_d); `else $setuphold (negedge E, posedge D, 0, 0, notifier); $setuphold (negedge E, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHQD1BWP7T35P140LVT (D, E, Q); input D, E; output Q; reg notifier; `ifdef NTC wire D_d, E_d; pullup (CDN); pullup (SDN); tsmc_dla (Q_buf, D_d, E_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_dla (Q_buf, D, E, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); specify (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); $width (posedge E &&& D_SDFCHK, 0, 0, notifier); $width (posedge E &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge E, posedge D, 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E, negedge D, 0, 0, notifier,,, E_d, D_d); `else $setuphold (negedge E, posedge D, 0, 0, notifier); $setuphold (negedge E, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHQD2BWP7T35P140LVT (D, E, Q); input D, E; output Q; reg notifier; `ifdef NTC wire D_d, E_d; pullup (CDN); pullup (SDN); tsmc_dla (Q_buf, D_d, E_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_dla (Q_buf, D, E, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); specify (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); $width (posedge E &&& D_SDFCHK, 0, 0, notifier); $width (posedge E &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge E, posedge D, 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E, negedge D, 0, 0, notifier,,, E_d, D_d); `else $setuphold (negedge E, posedge D, 0, 0, notifier); $setuphold (negedge E, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHQD4BWP7T35P140LVT (D, E, Q); input D, E; output Q; reg notifier; `ifdef NTC wire D_d, E_d; pullup (CDN); pullup (SDN); tsmc_dla (Q_buf, D_d, E_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_dla (Q_buf, D, E, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); specify (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); $width (posedge E &&& D_SDFCHK, 0, 0, notifier); $width (posedge E &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge E, posedge D, 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E, negedge D, 0, 0, notifier,,, E_d, D_d); `else $setuphold (negedge E, posedge D, 0, 0, notifier); $setuphold (negedge E, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHSND1BWP7T35P140LVT (D, E, SDN, Q, QN); input D, E, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, E_d; pullup (CDN); tsmc_dla (Q_buf, D_d, E_d, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (SDN_i, SDN); pullup (CDN); tsmc_dla (Q_buf, D, E, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (D_nE_SDFCHK, D_nE, 1'b1); tsmc_xbuf (nD_nE_SDFCHK, nD_nE, 1'b1); not (nD, D); not (nE, E); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (D_nE, D, nE); and (nD_nE, nD, nE); // Timing logics defined for default constraint check buf (D_check, SDN_i); buf (E_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); specify (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); if (D == 1'b1 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && E == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); ifnone (posedge SDN => (Q-:1'b0)) = (0, 0); (D => QN) = (0, 0); (posedge E => (QN-:D)) = (0, 0); if (D == 1'b1 && E == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (D == 1'b0 && E == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (D == 1'b0 && E == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); ifnone (posedge SDN => (QN+:1'b1)) = (0, 0); $width (posedge E &&& D_SDN_SDFCHK, 0, 0, notifier); $width (posedge E &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& D_nE_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nD_nE_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge E &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, negedge E &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, E_d); `else $setuphold (negedge E &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, negedge E &&& nD_SDFCHK, 0, notifier); $hold (negedge E &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (negedge E &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge E &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, negedge E &&& nD_SDFCHK, 0, notifier); $hold (negedge E &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHSND2BWP7T35P140LVT (D, E, SDN, Q, QN); input D, E, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, E_d; pullup (CDN); tsmc_dla (Q_buf, D_d, E_d, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (SDN_i, SDN); pullup (CDN); tsmc_dla (Q_buf, D, E, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (D_nE_SDFCHK, D_nE, 1'b1); tsmc_xbuf (nD_nE_SDFCHK, nD_nE, 1'b1); not (nD, D); not (nE, E); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (D_nE, D, nE); and (nD_nE, nD, nE); // Timing logics defined for default constraint check buf (D_check, SDN_i); buf (E_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); specify (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); if (D == 1'b1 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && E == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); ifnone (posedge SDN => (Q-:1'b0)) = (0, 0); (D => QN) = (0, 0); (posedge E => (QN-:D)) = (0, 0); if (D == 1'b1 && E == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (D == 1'b0 && E == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (D == 1'b0 && E == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); ifnone (posedge SDN => (QN+:1'b1)) = (0, 0); $width (posedge E &&& D_SDN_SDFCHK, 0, 0, notifier); $width (posedge E &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& D_nE_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nD_nE_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge E &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, negedge E &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, E_d); `else $setuphold (negedge E &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, negedge E &&& nD_SDFCHK, 0, notifier); $hold (negedge E &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (negedge E &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge E &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, negedge E &&& nD_SDFCHK, 0, notifier); $hold (negedge E &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHSND4BWP7T35P140LVT (D, E, SDN, Q, QN); input D, E, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, E_d; pullup (CDN); tsmc_dla (Q_buf, D_d, E_d, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (SDN_i, SDN); pullup (CDN); tsmc_dla (Q_buf, D, E, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (D_nE_SDFCHK, D_nE, 1'b1); tsmc_xbuf (nD_nE_SDFCHK, nD_nE, 1'b1); not (nD, D); not (nE, E); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (D_nE, D, nE); and (nD_nE, nD, nE); // Timing logics defined for default constraint check buf (D_check, SDN_i); buf (E_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); specify (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); if (D == 1'b1 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && E == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); ifnone (posedge SDN => (Q-:1'b0)) = (0, 0); (D => QN) = (0, 0); (posedge E => (QN-:D)) = (0, 0); if (D == 1'b1 && E == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (D == 1'b0 && E == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (D == 1'b0 && E == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); ifnone (posedge SDN => (QN+:1'b1)) = (0, 0); $width (posedge E &&& D_SDN_SDFCHK, 0, 0, notifier); $width (posedge E &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& D_nE_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nD_nE_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge E &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, negedge E &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, E_d); `else $setuphold (negedge E &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, negedge E &&& nD_SDFCHK, 0, notifier); $hold (negedge E &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (negedge E &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge E &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, negedge E &&& nD_SDFCHK, 0, notifier); $hold (negedge E &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHSNQD1BWP7T35P140LVT (D, E, SDN, Q); input D, E, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, E_d; pullup (CDN); tsmc_dla (Q_buf, D_d, E_d, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_dla (Q_buf, D, E, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (D_nE_SDFCHK, D_nE, 1'b1); tsmc_xbuf (nD_nE_SDFCHK, nD_nE, 1'b1); not (nD, D); not (nE, E); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (D_nE, D, nE); and (nD_nE, nD, nE); // Timing logics defined for default constraint check buf (D_check, SDN_i); buf (E_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); specify (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); if (D == 1'b1 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && E == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); ifnone (posedge SDN => (Q-:1'b0)) = (0, 0); $width (posedge E &&& D_SDN_SDFCHK, 0, 0, notifier); $width (posedge E &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& D_nE_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nD_nE_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge E &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, negedge E &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, E_d); `else $setuphold (negedge E &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, negedge E &&& nD_SDFCHK, 0, notifier); $hold (negedge E &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (negedge E &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge E &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, negedge E &&& nD_SDFCHK, 0, notifier); $hold (negedge E &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHSNQD2BWP7T35P140LVT (D, E, SDN, Q); input D, E, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, E_d; pullup (CDN); tsmc_dla (Q_buf, D_d, E_d, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_dla (Q_buf, D, E, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (D_nE_SDFCHK, D_nE, 1'b1); tsmc_xbuf (nD_nE_SDFCHK, nD_nE, 1'b1); not (nD, D); not (nE, E); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (D_nE, D, nE); and (nD_nE, nD, nE); // Timing logics defined for default constraint check buf (D_check, SDN_i); buf (E_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); specify (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); if (D == 1'b1 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && E == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); ifnone (posedge SDN => (Q-:1'b0)) = (0, 0); $width (posedge E &&& D_SDN_SDFCHK, 0, 0, notifier); $width (posedge E &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& D_nE_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nD_nE_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge E &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, negedge E &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, E_d); `else $setuphold (negedge E &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, negedge E &&& nD_SDFCHK, 0, notifier); $hold (negedge E &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (negedge E &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge E &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, negedge E &&& nD_SDFCHK, 0, notifier); $hold (negedge E &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LHSNQD4BWP7T35P140LVT (D, E, SDN, Q); input D, E, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, E_d; pullup (CDN); tsmc_dla (Q_buf, D_d, E_d, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_dla (Q_buf, D, E, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (D_nE_SDFCHK, D_nE, 1'b1); tsmc_xbuf (nD_nE_SDFCHK, nD_nE, 1'b1); not (nD, D); not (nE, E); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (D_nE, D, nE); and (nD_nE, nD, nE); // Timing logics defined for default constraint check buf (D_check, SDN_i); buf (E_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (E_DEFCHK, E_check, 1'b1); specify (D => Q) = (0, 0); (posedge E => (Q+:D)) = (0, 0); if (D == 1'b1 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && E == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && E == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); ifnone (posedge SDN => (Q-:1'b0)) = (0, 0); $width (posedge E &&& D_SDN_SDFCHK, 0, 0, notifier); $width (posedge E &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& D_nE_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nD_nE_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge E &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, negedge E &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, E_d); `else $setuphold (negedge E &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, E_d, D_d); $setuphold (negedge E &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, E_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, negedge E &&& nD_SDFCHK, 0, notifier); $hold (negedge E &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (negedge E &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge E &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, negedge E &&& nD_SDFCHK, 0, notifier); $hold (negedge E &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNCND1BWP7T35P140LVT (D, EN, CDN, Q, QN); input D, EN, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, EN_d; pullup (SDN); not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (D_EN_SDFCHK, D_EN, 1'b1); tsmc_xbuf (nD_EN_SDFCHK, nD_EN, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); and (D_EN, D, EN); and (nD_EN, nD, EN); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (D_check, CDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (D == 1'b1 && EN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && EN == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && EN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); if (D == 1'b1 && EN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b1 && EN == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b0 && EN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); ifnone (posedge CDN => (QN-:1'b0)) = (0, 0); (D => QN) = (0, 0); (negedge EN => (QN-:D)) = (0, 0); $width (negedge CDN &&& D_EN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_EN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_D_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge EN &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, posedge EN &&& D_SDFCHK, 0,0, notifier, , , CDN_d, EN_d); `else $setuphold (posedge EN &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, posedge EN &&& D_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge EN &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge EN &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, posedge EN &&& D_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNCND2BWP7T35P140LVT (D, EN, CDN, Q, QN); input D, EN, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, EN_d; pullup (SDN); not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (D_EN_SDFCHK, D_EN, 1'b1); tsmc_xbuf (nD_EN_SDFCHK, nD_EN, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); and (D_EN, D, EN); and (nD_EN, nD, EN); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (D_check, CDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (D == 1'b1 && EN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && EN == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && EN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); if (D == 1'b1 && EN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b1 && EN == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b0 && EN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); ifnone (posedge CDN => (QN-:1'b0)) = (0, 0); (D => QN) = (0, 0); (negedge EN => (QN-:D)) = (0, 0); $width (negedge CDN &&& D_EN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_EN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_D_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge EN &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, posedge EN &&& D_SDFCHK, 0,0, notifier, , , CDN_d, EN_d); `else $setuphold (posedge EN &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, posedge EN &&& D_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge EN &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge EN &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, posedge EN &&& D_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNCND4BWP7T35P140LVT (D, EN, CDN, Q, QN); input D, EN, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, EN_d; pullup (SDN); not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (D_EN_SDFCHK, D_EN, 1'b1); tsmc_xbuf (nD_EN_SDFCHK, nD_EN, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); and (D_EN, D, EN); and (nD_EN, nD, EN); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (D_check, CDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (D == 1'b1 && EN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && EN == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && EN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); if (D == 1'b1 && EN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b1 && EN == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b0 && EN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); ifnone (posedge CDN => (QN-:1'b0)) = (0, 0); (D => QN) = (0, 0); (negedge EN => (QN-:D)) = (0, 0); $width (negedge CDN &&& D_EN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_EN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_D_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge EN &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, posedge EN &&& D_SDFCHK, 0,0, notifier, , , CDN_d, EN_d); `else $setuphold (posedge EN &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, posedge EN &&& D_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge EN &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge EN &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, posedge EN &&& D_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNCNQD1BWP7T35P140LVT (D, EN, CDN, Q); input D, EN, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, EN_d; pullup (SDN); not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (D_EN_SDFCHK, D_EN, 1'b1); tsmc_xbuf (nD_EN_SDFCHK, nD_EN, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); and (D_EN, D, EN); and (nD_EN, nD, EN); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (D_check, CDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (D == 1'b1 && EN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && EN == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && EN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); $width (negedge CDN &&& D_EN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_EN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_D_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge EN &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, posedge EN &&& D_SDFCHK, 0,0, notifier, , , CDN_d, EN_d); `else $setuphold (posedge EN &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, posedge EN &&& D_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge EN &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge EN &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, posedge EN &&& D_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNCNQD2BWP7T35P140LVT (D, EN, CDN, Q); input D, EN, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, EN_d; pullup (SDN); not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (D_EN_SDFCHK, D_EN, 1'b1); tsmc_xbuf (nD_EN_SDFCHK, nD_EN, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); and (D_EN, D, EN); and (nD_EN, nD, EN); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (D_check, CDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (D == 1'b1 && EN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && EN == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && EN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); $width (negedge CDN &&& D_EN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_EN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_D_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge EN &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, posedge EN &&& D_SDFCHK, 0,0, notifier, , , CDN_d, EN_d); `else $setuphold (posedge EN &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, posedge EN &&& D_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge EN &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge EN &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, posedge EN &&& D_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNCNQD4BWP7T35P140LVT (D, EN, CDN, Q); input D, EN, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire D_d, EN_d; pullup (SDN); not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CDN_SDFCHK, CDN, 1'b1); tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (D_EN_SDFCHK, D_EN, 1'b1); tsmc_xbuf (nD_EN_SDFCHK, nD_EN, 1'b1); tsmc_xbuf (CDN_D_SDFCHK, CDN_D, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); and (D_EN, D, EN); and (nD_EN, nD, EN); and (CDN_D, CDN, D); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check buf (D_check, CDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify if (D == 1'b1 && EN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && EN == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && EN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); $width (negedge CDN &&& D_EN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_EN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_D_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_nD_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge EN &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recrem (posedge CDN &&& D_SDFCHK, posedge EN &&& D_SDFCHK, 0,0, notifier, , , CDN_d, EN_d); `else $setuphold (posedge EN &&& CDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recovery (posedge CDN &&& D_SDFCHK, posedge EN &&& D_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge EN &&& CDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge EN &&& CDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge CDN &&& D_SDFCHK, posedge EN &&& D_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNCSND1BWP7T35P140LVT (D, EN, CDN, SDN, Q, QN); input D, EN, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, EN_d; not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (D_EN_SDN_SDFCHK, D_EN_SDN, 1'b1); tsmc_xbuf (nD_EN_SDN_SDFCHK, nD_EN_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_EN_SDFCHK, CDN_D_EN, 1'b1); tsmc_xbuf (CDN_nD_EN_SDFCHK, CDN_nD_EN, 1'b1); tsmc_xbuf (D_EN_SDFCHK, D_EN, 1'b1); tsmc_xbuf (nD_EN_SDFCHK, nD_EN, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); and (D_EN_SDN, D, EN, SDN); and (nD_EN_SDN, nD, EN, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_D_EN, CDN, D, EN); and (CDN_nD_EN, CDN, nD, EN); and (D_EN, D, EN); and (nD_EN, nD, EN); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (D_check, SDN_i, CDN_i); buf (EN_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (EN_DEFCHK, EN_check, 1'b1); specify if (D == 1'b1 && EN == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && EN == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && EN == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); if (CDN == 1'b1 && D == 1'b1 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && EN == 1'b0) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && EN == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && EN == 1'b0) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && EN == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && EN == 1'b0) (SDN => Q) = (0, 0); if (D == 1'b1 && EN == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b1 && EN == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b0 && EN == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); ifnone (posedge CDN => (QN-:1'b0)) = (0, 0); (D => QN) = (0, 0); (negedge EN => (QN-:D)) = (0, 0); if (CDN == 1'b1 && D == 1'b1 && EN == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && EN == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && EN == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && EN == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && EN == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && EN == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && EN == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& D_EN_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_EN_SDN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_D_EN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nD_EN_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& D_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge CDN &&& D_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, posedge EN &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, EN_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, posedge EN &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, EN_d); `else $setuphold (posedge SDN &&& D_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge CDN &&& D_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge EN &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge EN &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge EN &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& D_EN_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nD_EN_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& D_EN_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nD_EN_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge EN &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge EN &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge EN &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNCSND2BWP7T35P140LVT (D, EN, CDN, SDN, Q, QN); input D, EN, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, EN_d; not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (D_EN_SDN_SDFCHK, D_EN_SDN, 1'b1); tsmc_xbuf (nD_EN_SDN_SDFCHK, nD_EN_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_EN_SDFCHK, CDN_D_EN, 1'b1); tsmc_xbuf (CDN_nD_EN_SDFCHK, CDN_nD_EN, 1'b1); tsmc_xbuf (D_EN_SDFCHK, D_EN, 1'b1); tsmc_xbuf (nD_EN_SDFCHK, nD_EN, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); and (D_EN_SDN, D, EN, SDN); and (nD_EN_SDN, nD, EN, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_D_EN, CDN, D, EN); and (CDN_nD_EN, CDN, nD, EN); and (D_EN, D, EN); and (nD_EN, nD, EN); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (D_check, SDN_i, CDN_i); buf (EN_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (EN_DEFCHK, EN_check, 1'b1); specify if (D == 1'b1 && EN == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && EN == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && EN == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); if (CDN == 1'b1 && D == 1'b1 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && EN == 1'b0) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && EN == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && EN == 1'b0) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && EN == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && EN == 1'b0) (SDN => Q) = (0, 0); if (D == 1'b1 && EN == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b1 && EN == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b0 && EN == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); ifnone (posedge CDN => (QN-:1'b0)) = (0, 0); (D => QN) = (0, 0); (negedge EN => (QN-:D)) = (0, 0); if (CDN == 1'b1 && D == 1'b1 && EN == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && EN == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && EN == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && EN == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && EN == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && EN == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && EN == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& D_EN_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_EN_SDN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_D_EN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nD_EN_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& D_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge CDN &&& D_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, posedge EN &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, EN_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, posedge EN &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, EN_d); `else $setuphold (posedge SDN &&& D_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge CDN &&& D_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge EN &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge EN &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge EN &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& D_EN_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nD_EN_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& D_EN_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nD_EN_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge EN &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge EN &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge EN &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNCSND4BWP7T35P140LVT (D, EN, CDN, SDN, Q, QN); input D, EN, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, EN_d; not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (D_EN_SDN_SDFCHK, D_EN_SDN, 1'b1); tsmc_xbuf (nD_EN_SDN_SDFCHK, nD_EN_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_EN_SDFCHK, CDN_D_EN, 1'b1); tsmc_xbuf (CDN_nD_EN_SDFCHK, CDN_nD_EN, 1'b1); tsmc_xbuf (D_EN_SDFCHK, D_EN, 1'b1); tsmc_xbuf (nD_EN_SDFCHK, nD_EN, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); and (D_EN_SDN, D, EN, SDN); and (nD_EN_SDN, nD, EN, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_D_EN, CDN, D, EN); and (CDN_nD_EN, CDN, nD, EN); and (D_EN, D, EN); and (nD_EN, nD, EN); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (D_check, SDN_i, CDN_i); buf (EN_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (EN_DEFCHK, EN_check, 1'b1); specify if (D == 1'b1 && EN == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && EN == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && EN == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); if (CDN == 1'b1 && D == 1'b1 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && EN == 1'b0) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && EN == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && EN == 1'b0) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && EN == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && EN == 1'b0) (SDN => Q) = (0, 0); if (D == 1'b1 && EN == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b1 && EN == 1'b0 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (D == 1'b0 && EN == 1'b1 && SDN == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); ifnone (posedge CDN => (QN-:1'b0)) = (0, 0); (D => QN) = (0, 0); (negedge EN => (QN-:D)) = (0, 0); if (CDN == 1'b1 && D == 1'b1 && EN == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && EN == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && EN == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && EN == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && EN == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && EN == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && EN == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& D_EN_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_EN_SDN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_D_EN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nD_EN_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& D_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge CDN &&& D_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, posedge EN &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, EN_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, posedge EN &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, EN_d); `else $setuphold (posedge SDN &&& D_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge CDN &&& D_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge EN &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge EN &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge EN &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& D_EN_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nD_EN_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& D_EN_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nD_EN_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge EN &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge EN &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge EN &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNCSNQD1BWP7T35P140LVT (D, EN, CDN, SDN, Q); input D, EN, CDN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, EN_d; not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); buf (SDN_i, SDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (D_EN_SDN_SDFCHK, D_EN_SDN, 1'b1); tsmc_xbuf (nD_EN_SDN_SDFCHK, nD_EN_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_EN_SDFCHK, CDN_D_EN, 1'b1); tsmc_xbuf (CDN_nD_EN_SDFCHK, CDN_nD_EN, 1'b1); tsmc_xbuf (D_EN_SDFCHK, D_EN, 1'b1); tsmc_xbuf (nD_EN_SDFCHK, nD_EN, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); and (D_EN_SDN, D, EN, SDN); and (nD_EN_SDN, nD, EN, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_D_EN, CDN, D, EN); and (CDN_nD_EN, CDN, nD, EN); and (D_EN, D, EN); and (nD_EN, nD, EN); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (D_check, SDN_i, CDN_i); buf (EN_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (EN_DEFCHK, EN_check, 1'b1); specify if (D == 1'b1 && EN == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && EN == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && EN == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); if (CDN == 1'b1 && D == 1'b1 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && EN == 1'b0) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && EN == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && EN == 1'b0) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && EN == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && EN == 1'b0) (SDN => Q) = (0, 0); $width (negedge CDN &&& D_EN_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_EN_SDN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_D_EN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nD_EN_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& D_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge CDN &&& D_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, posedge EN &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, EN_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, posedge EN &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, EN_d); `else $setuphold (posedge SDN &&& D_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge CDN &&& D_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge EN &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge EN &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge EN &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& D_EN_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nD_EN_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& D_EN_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nD_EN_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge EN &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge EN &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge EN &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNCSNQD2BWP7T35P140LVT (D, EN, CDN, SDN, Q); input D, EN, CDN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, EN_d; not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); buf (SDN_i, SDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (D_EN_SDN_SDFCHK, D_EN_SDN, 1'b1); tsmc_xbuf (nD_EN_SDN_SDFCHK, nD_EN_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_EN_SDFCHK, CDN_D_EN, 1'b1); tsmc_xbuf (CDN_nD_EN_SDFCHK, CDN_nD_EN, 1'b1); tsmc_xbuf (D_EN_SDFCHK, D_EN, 1'b1); tsmc_xbuf (nD_EN_SDFCHK, nD_EN, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); and (D_EN_SDN, D, EN, SDN); and (nD_EN_SDN, nD, EN, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_D_EN, CDN, D, EN); and (CDN_nD_EN, CDN, nD, EN); and (D_EN, D, EN); and (nD_EN, nD, EN); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (D_check, SDN_i, CDN_i); buf (EN_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (EN_DEFCHK, EN_check, 1'b1); specify if (D == 1'b1 && EN == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && EN == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && EN == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); if (CDN == 1'b1 && D == 1'b1 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && EN == 1'b0) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && EN == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && EN == 1'b0) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && EN == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && EN == 1'b0) (SDN => Q) = (0, 0); $width (negedge CDN &&& D_EN_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_EN_SDN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_D_EN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nD_EN_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& D_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge CDN &&& D_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, posedge EN &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, EN_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, posedge EN &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, EN_d); `else $setuphold (posedge SDN &&& D_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge CDN &&& D_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge EN &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge EN &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge EN &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& D_EN_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nD_EN_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& D_EN_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nD_EN_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge EN &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge EN &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge EN &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNCSNQD4BWP7T35P140LVT (D, EN, CDN, SDN, Q); input D, EN, CDN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire D_d, EN_d; not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); buf (SDN_i, SDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (D_EN_SDN_SDFCHK, D_EN_SDN, 1'b1); tsmc_xbuf (nD_EN_SDN_SDFCHK, nD_EN_SDN, 1'b1); tsmc_xbuf (CDN_D_SDN_SDFCHK, CDN_D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDN_SDFCHK, CDN_nD_SDN, 1'b1); tsmc_xbuf (CDN_D_EN_SDFCHK, CDN_D_EN, 1'b1); tsmc_xbuf (CDN_nD_EN_SDFCHK, CDN_nD_EN, 1'b1); tsmc_xbuf (D_EN_SDFCHK, D_EN, 1'b1); tsmc_xbuf (nD_EN_SDFCHK, nD_EN, 1'b1); tsmc_xbuf (CDN_SDN_SDFCHK, CDN_SDN, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (CDN_nD_SDFCHK, CDN_nD, 1'b1); not (nD, D); and (D_EN_SDN, D, EN, SDN); and (nD_EN_SDN, nD, EN, SDN); and (CDN_D_SDN, CDN, D, SDN); and (CDN_nD_SDN, CDN, nD, SDN); and (CDN_D_EN, CDN, D, EN); and (CDN_nD_EN, CDN, nD, EN); and (D_EN, D, EN); and (nD_EN, nD, EN); and (CDN_SDN, CDN, SDN); and (D_SDN, D, SDN); and (CDN_nD, CDN, nD); // Timing logics defined for default constraint check and (D_check, SDN_i, CDN_i); buf (EN_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (EN_DEFCHK, EN_check, 1'b1); specify if (D == 1'b1 && EN == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b1 && EN == 1'b0 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (D == 1'b0 && EN == 1'b1 && SDN == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); ifnone (posedge CDN => (Q+:1'b1)) = (0, 0); (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); if (CDN == 1'b1 && D == 1'b1 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && D == 1'b0 && EN == 1'b0) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && EN == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b1 && EN == 1'b0) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && EN == 1'b1) (SDN => Q) = (0, 0); if (CDN == 1'b0 && D == 1'b0 && EN == 1'b0) (SDN => Q) = (0, 0); $width (negedge CDN &&& D_EN_SDN_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nD_EN_SDN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_D_SDN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& CDN_nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_D_EN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nD_EN_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& D_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge CDN &&& D_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recrem (posedge CDN &&& D_SDN_SDFCHK, posedge EN &&& D_SDN_SDFCHK, 0,0, notifier, , , CDN_d, EN_d); $recrem (posedge SDN &&& CDN_nD_SDFCHK, posedge EN &&& CDN_nD_SDFCHK, 0,0, notifier, , , SDN_d, EN_d); `else $setuphold (posedge SDN &&& D_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nD_EN_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge CDN &&& D_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nD_EN_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge EN &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge EN &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge EN &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& D_EN_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nD_EN_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge EN &&& CDN_SDN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& D_EN_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nD_EN_SDFCHK, posedge SDN , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SDFCHK, posedge EN &&& D_SDN_SDFCHK, 0, notifier); $hold (posedge EN &&& D_SDN_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_nD_SDFCHK, posedge EN &&& CDN_nD_SDFCHK, 0, notifier); $hold (posedge EN &&& CDN_nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LND1BWP7T35P140LVT (D, EN, Q, QN); input D, EN; output Q, QN; reg notifier; `ifdef NTC wire D_d, EN_d; pullup (CDN); pullup (SDN); not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); specify (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); (D => QN) = (0, 0); (negedge EN => (QN-:D)) = (0, 0); $width (negedge EN &&& D_SDFCHK, 0, 0, notifier); $width (negedge EN &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge EN, posedge D, 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN, negedge D, 0, 0, notifier,,, EN_d, D_d); `else $setuphold (posedge EN, posedge D, 0, 0, notifier); $setuphold (posedge EN, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LND2BWP7T35P140LVT (D, EN, Q, QN); input D, EN; output Q, QN; reg notifier; `ifdef NTC wire D_d, EN_d; pullup (CDN); pullup (SDN); not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); specify (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); (D => QN) = (0, 0); (negedge EN => (QN-:D)) = (0, 0); $width (negedge EN &&& D_SDFCHK, 0, 0, notifier); $width (negedge EN &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge EN, posedge D, 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN, negedge D, 0, 0, notifier,,, EN_d, D_d); `else $setuphold (posedge EN, posedge D, 0, 0, notifier); $setuphold (posedge EN, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LND4BWP7T35P140LVT (D, EN, Q, QN); input D, EN; output Q, QN; reg notifier; `ifdef NTC wire D_d, EN_d; pullup (CDN); pullup (SDN); not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); specify (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); (D => QN) = (0, 0); (negedge EN => (QN-:D)) = (0, 0); $width (negedge EN &&& D_SDFCHK, 0, 0, notifier); $width (negedge EN &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge EN, posedge D, 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN, negedge D, 0, 0, notifier,,, EN_d, D_d); `else $setuphold (posedge EN, posedge D, 0, 0, notifier); $setuphold (posedge EN, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNQD1BWP7T35P140LVT (D, EN, Q); input D, EN; output Q; reg notifier; `ifdef NTC wire D_d, EN_d; pullup (CDN); pullup (SDN); not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); specify (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); $width (negedge EN &&& D_SDFCHK, 0, 0, notifier); $width (negedge EN &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge EN, posedge D, 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN, negedge D, 0, 0, notifier,,, EN_d, D_d); `else $setuphold (posedge EN, posedge D, 0, 0, notifier); $setuphold (posedge EN, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNQD2BWP7T35P140LVT (D, EN, Q); input D, EN; output Q; reg notifier; `ifdef NTC wire D_d, EN_d; pullup (CDN); pullup (SDN); not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); specify (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); $width (negedge EN &&& D_SDFCHK, 0, 0, notifier); $width (negedge EN &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge EN, posedge D, 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN, negedge D, 0, 0, notifier,,, EN_d, D_d); `else $setuphold (posedge EN, posedge D, 0, 0, notifier); $setuphold (posedge EN, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNQD4BWP7T35P140LVT (D, EN, Q); input D, EN; output Q; reg notifier; `ifdef NTC wire D_d, EN_d; pullup (CDN); pullup (SDN); not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDFCHK, D, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); not (nD, D); specify (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); $width (negedge EN &&& D_SDFCHK, 0, 0, notifier); $width (negedge EN &&& nD_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge EN, posedge D, 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN, negedge D, 0, 0, notifier,,, EN_d, D_d); `else $setuphold (posedge EN, posedge D, 0, 0, notifier); $setuphold (posedge EN, negedge D, 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNSND1BWP7T35P140LVT (D, EN, SDN, Q, QN); input D, EN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, EN_d; pullup (CDN); not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (D_EN_SDFCHK, D_EN, 1'b1); tsmc_xbuf (nD_EN_SDFCHK, nD_EN, 1'b1); not (nD, D); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (D_EN, D, EN); and (nD_EN, nD, EN); // Timing logics defined for default constraint check buf (D_check, SDN_i); buf (EN_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (EN_DEFCHK, EN_check, 1'b1); specify (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); if (D == 1'b1 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && EN == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); ifnone (posedge SDN => (Q-:1'b0)) = (0, 0); (D => QN) = (0, 0); (negedge EN => (QN-:D)) = (0, 0); if (D == 1'b1 && EN == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (D == 1'b0 && EN == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (D == 1'b0 && EN == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); ifnone (posedge SDN => (QN+:1'b1)) = (0, 0); $width (negedge EN &&& D_SDN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& D_EN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nD_EN_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge EN &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, posedge EN &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, EN_d); `else $setuphold (posedge EN &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, posedge EN &&& nD_SDFCHK, 0, notifier); $hold (posedge EN &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge EN &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge EN &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, posedge EN &&& nD_SDFCHK, 0, notifier); $hold (posedge EN &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNSND2BWP7T35P140LVT (D, EN, SDN, Q, QN); input D, EN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, EN_d; pullup (CDN); not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (D_EN_SDFCHK, D_EN, 1'b1); tsmc_xbuf (nD_EN_SDFCHK, nD_EN, 1'b1); not (nD, D); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (D_EN, D, EN); and (nD_EN, nD, EN); // Timing logics defined for default constraint check buf (D_check, SDN_i); buf (EN_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (EN_DEFCHK, EN_check, 1'b1); specify (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); if (D == 1'b1 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && EN == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); ifnone (posedge SDN => (Q-:1'b0)) = (0, 0); (D => QN) = (0, 0); (negedge EN => (QN-:D)) = (0, 0); if (D == 1'b1 && EN == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (D == 1'b0 && EN == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (D == 1'b0 && EN == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); ifnone (posedge SDN => (QN+:1'b1)) = (0, 0); $width (negedge EN &&& D_SDN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& D_EN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nD_EN_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge EN &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, posedge EN &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, EN_d); `else $setuphold (posedge EN &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, posedge EN &&& nD_SDFCHK, 0, notifier); $hold (posedge EN &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge EN &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge EN &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, posedge EN &&& nD_SDFCHK, 0, notifier); $hold (posedge EN &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNSND4BWP7T35P140LVT (D, EN, SDN, Q, QN); input D, EN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, EN_d; pullup (CDN); not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (D_EN_SDFCHK, D_EN, 1'b1); tsmc_xbuf (nD_EN_SDFCHK, nD_EN, 1'b1); not (nD, D); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (D_EN, D, EN); and (nD_EN, nD, EN); // Timing logics defined for default constraint check buf (D_check, SDN_i); buf (EN_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (EN_DEFCHK, EN_check, 1'b1); specify (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); if (D == 1'b1 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && EN == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); ifnone (posedge SDN => (Q-:1'b0)) = (0, 0); (D => QN) = (0, 0); (negedge EN => (QN-:D)) = (0, 0); if (D == 1'b1 && EN == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (D == 1'b0 && EN == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (D == 1'b0 && EN == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); ifnone (posedge SDN => (QN+:1'b1)) = (0, 0); $width (negedge EN &&& D_SDN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& D_EN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nD_EN_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge EN &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, posedge EN &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, EN_d); `else $setuphold (posedge EN &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, posedge EN &&& nD_SDFCHK, 0, notifier); $hold (posedge EN &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge EN &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge EN &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, posedge EN &&& nD_SDFCHK, 0, notifier); $hold (posedge EN &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNSNQD1BWP7T35P140LVT (D, EN, SDN, Q); input D, EN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, EN_d; pullup (CDN); not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (D_EN_SDFCHK, D_EN, 1'b1); tsmc_xbuf (nD_EN_SDFCHK, nD_EN, 1'b1); not (nD, D); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (D_EN, D, EN); and (nD_EN, nD, EN); // Timing logics defined for default constraint check buf (D_check, SDN_i); buf (EN_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (EN_DEFCHK, EN_check, 1'b1); specify (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); if (D == 1'b1 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && EN == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); ifnone (posedge SDN => (Q-:1'b0)) = (0, 0); $width (negedge EN &&& D_SDN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& D_EN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nD_EN_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge EN &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, posedge EN &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, EN_d); `else $setuphold (posedge EN &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, posedge EN &&& nD_SDFCHK, 0, notifier); $hold (posedge EN &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge EN &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge EN &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, posedge EN &&& nD_SDFCHK, 0, notifier); $hold (posedge EN &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNSNQD2BWP7T35P140LVT (D, EN, SDN, Q); input D, EN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, EN_d; pullup (CDN); not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (D_EN_SDFCHK, D_EN, 1'b1); tsmc_xbuf (nD_EN_SDFCHK, nD_EN, 1'b1); not (nD, D); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (D_EN, D, EN); and (nD_EN, nD, EN); // Timing logics defined for default constraint check buf (D_check, SDN_i); buf (EN_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (EN_DEFCHK, EN_check, 1'b1); specify (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); if (D == 1'b1 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && EN == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); ifnone (posedge SDN => (Q-:1'b0)) = (0, 0); $width (negedge EN &&& D_SDN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& D_EN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nD_EN_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge EN &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, posedge EN &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, EN_d); `else $setuphold (posedge EN &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, posedge EN &&& nD_SDFCHK, 0, notifier); $hold (posedge EN &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge EN &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge EN &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, posedge EN &&& nD_SDFCHK, 0, notifier); $hold (posedge EN &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module LNSNQD4BWP7T35P140LVT (D, EN, SDN, Q); input D, EN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire D_d, EN_d; pullup (CDN); not (E, EN_d); tsmc_dla (Q_buf, D_d, E, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); not (E, EN); tsmc_dla (Q_buf, D, E, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (SDN_SDFCHK, SDN, 1'b1); tsmc_xbuf (nD_SDFCHK, nD, 1'b1); tsmc_xbuf (D_SDN_SDFCHK, D_SDN, 1'b1); tsmc_xbuf (nD_SDN_SDFCHK, nD_SDN, 1'b1); tsmc_xbuf (D_EN_SDFCHK, D_EN, 1'b1); tsmc_xbuf (nD_EN_SDFCHK, nD_EN, 1'b1); not (nD, D); and (D_SDN, D, SDN); and (nD_SDN, nD, SDN); and (D_EN, D, EN); and (nD_EN, nD, EN); // Timing logics defined for default constraint check buf (D_check, SDN_i); buf (EN_check, SDN_i); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (EN_DEFCHK, EN_check, 1'b1); specify (D => Q) = (0, 0); (negedge EN => (Q+:D)) = (0, 0); if (D == 1'b1 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && EN == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (D == 1'b0 && EN == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); ifnone (posedge SDN => (Q-:1'b0)) = (0, 0); $width (negedge EN &&& D_SDN_SDFCHK, 0, 0, notifier); $width (negedge EN &&& nD_SDN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& D_EN_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nD_EN_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge EN &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recrem (posedge SDN &&& nD_SDFCHK, posedge EN &&& nD_SDFCHK, 0,0, notifier, , , SDN_d, EN_d); `else $setuphold (posedge EN &&& SDN_SDFCHK, posedge D , 0, 0, notifier,,, EN_d, D_d); $setuphold (posedge EN &&& SDN_SDFCHK, negedge D , 0, 0, notifier,,, EN_d, D_d); $recovery (posedge SDN &&& nD_SDFCHK, posedge EN &&& nD_SDFCHK, 0, notifier); $hold (posedge EN &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge EN &&& SDN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge EN &&& SDN_SDFCHK, negedge D , 0, 0, notifier); $recovery (posedge SDN &&& nD_SDFCHK, posedge EN &&& nD_SDFCHK, 0, notifier); $hold (posedge EN &&& nD_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module MAOI222D0BWP7T35P140LVT (A, B, C, ZN); input A, B, C; output ZN; and (I0_out, A, B); and (I1_out, B, C); and (I2_out, A, C); or (I3_out, I0_out, I1_out, I2_out); not (ZN, I3_out); specify if (B == 1'b1 && C == 1'b0) (A => ZN) = (0, 0); if (B == 1'b0 && C == 1'b1) (A => ZN) = (0, 0); if (A == 1'b1 && C == 1'b0) (B => ZN) = (0, 0); if (A == 1'b0 && C == 1'b1) (B => ZN) = (0, 0); if (A == 1'b1 && B == 1'b0) (C => ZN) = (0, 0); if (A == 1'b0 && B == 1'b1) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MAOI222D1BWP7T35P140LVT (A, B, C, ZN); input A, B, C; output ZN; and (I0_out, A, B); and (I1_out, B, C); and (I2_out, A, C); or (I3_out, I0_out, I1_out, I2_out); not (ZN, I3_out); specify if (B == 1'b1 && C == 1'b0) (A => ZN) = (0, 0); if (B == 1'b0 && C == 1'b1) (A => ZN) = (0, 0); if (A == 1'b1 && C == 1'b0) (B => ZN) = (0, 0); if (A == 1'b0 && C == 1'b1) (B => ZN) = (0, 0); if (A == 1'b1 && B == 1'b0) (C => ZN) = (0, 0); if (A == 1'b0 && B == 1'b1) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MAOI222D2BWP7T35P140LVT (A, B, C, ZN); input A, B, C; output ZN; and (I0_out, A, B); and (I1_out, B, C); and (I2_out, A, C); or (I3_out, I0_out, I1_out, I2_out); not (ZN, I3_out); specify if (B == 1'b1 && C == 1'b0) (A => ZN) = (0, 0); if (B == 1'b0 && C == 1'b1) (A => ZN) = (0, 0); if (A == 1'b1 && C == 1'b0) (B => ZN) = (0, 0); if (A == 1'b0 && C == 1'b1) (B => ZN) = (0, 0); if (A == 1'b1 && B == 1'b0) (C => ZN) = (0, 0); if (A == 1'b0 && B == 1'b1) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MAOI222D4BWP7T35P140LVT (A, B, C, ZN); input A, B, C; output ZN; and (I0_out, A, B); and (I1_out, B, C); and (I2_out, A, C); or (I3_out, I0_out, I1_out, I2_out); not (ZN, I3_out); specify if (B == 1'b1 && C == 1'b0) (A => ZN) = (0, 0); if (B == 1'b0 && C == 1'b1) (A => ZN) = (0, 0); if (A == 1'b1 && C == 1'b0) (B => ZN) = (0, 0); if (A == 1'b0 && C == 1'b1) (B => ZN) = (0, 0); if (A == 1'b1 && B == 1'b0) (C => ZN) = (0, 0); if (A == 1'b0 && B == 1'b1) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MAOI22D0BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; and (I0_out, A1, A2); not (I1_out, I0_out); or (I2_out, B1, B2); and (ZN, I1_out, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MAOI22D1BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; and (I0_out, A1, A2); not (I1_out, I0_out); or (I2_out, B1, B2); and (ZN, I1_out, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MAOI22D2BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; and (I0_out, A1, A2); not (I1_out, I0_out); or (I2_out, B1, B2); and (ZN, I1_out, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MAOI22D4BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; and (I0_out, A1, A2); not (I1_out, I0_out); or (I2_out, B1, B2); and (ZN, I1_out, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MAOI22OPTBD2BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; and (I0_out, A1, A2); not (I1_out, I0_out); or (I2_out, B1, B2); and (ZN, I1_out, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MAOI22OPTBD4BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; and (I0_out, A1, A2); not (I1_out, I0_out); or (I2_out, B1, B2); and (ZN, I1_out, I2_out); specify if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MOAI22D0BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; or (I0_out, A1, A2); not (I1_out, I0_out); and (I2_out, B1, B2); or (ZN, I1_out, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MOAI22D1BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; or (I0_out, A1, A2); not (I1_out, I0_out); and (I2_out, B1, B2); or (ZN, I1_out, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MOAI22D2BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; or (I0_out, A1, A2); not (I1_out, I0_out); and (I2_out, B1, B2); or (ZN, I1_out, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MOAI22D4BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; or (I0_out, A1, A2); not (I1_out, I0_out); and (I2_out, B1, B2); or (ZN, I1_out, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MOAI22OPTBD2BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; or (I0_out, A1, A2); not (I1_out, I0_out); and (I2_out, B1, B2); or (ZN, I1_out, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MOAI22OPTBD4BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; or (I0_out, A1, A2); not (I1_out, I0_out); and (I2_out, B1, B2); or (ZN, I1_out, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX2D0BWP7T35P140LVT (I0, I1, S, Z); input I0, I1, S; output Z; tsmc_mux (Z, I0, I1, S); specify if (I1 == 1'b1 && S == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX2D1BWP7T35P140LVT (I0, I1, S, Z); input I0, I1, S; output Z; tsmc_mux (Z, I0, I1, S); specify if (I1 == 1'b1 && S == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX2D2BWP7T35P140LVT (I0, I1, S, Z); input I0, I1, S; output Z; tsmc_mux (Z, I0, I1, S); specify if (I1 == 1'b1 && S == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX2D4BWP7T35P140LVT (I0, I1, S, Z); input I0, I1, S; output Z; tsmc_mux (Z, I0, I1, S); specify if (I1 == 1'b1 && S == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX2ND0BWP7T35P140LVT (I0, I1, S, ZN); input I0, I1, S; output ZN; tsmc_mux (I0_out, I0, I1, S); not (ZN, I0_out); specify if (I1 == 1'b1 && S == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => ZN) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX2ND1BWP7T35P140LVT (I0, I1, S, ZN); input I0, I1, S; output ZN; tsmc_mux (I0_out, I0, I1, S); not (ZN, I0_out); specify if (I1 == 1'b1 && S == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => ZN) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX2ND2BWP7T35P140LVT (I0, I1, S, ZN); input I0, I1, S; output ZN; tsmc_mux (I0_out, I0, I1, S); not (ZN, I0_out); specify if (I1 == 1'b1 && S == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => ZN) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX2ND4BWP7T35P140LVT (I0, I1, S, ZN); input I0, I1, S; output ZN; tsmc_mux (I0_out, I0, I1, S); not (ZN, I0_out); specify if (I1 == 1'b1 && S == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => ZN) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX2NOPTND1BWP7T35P140LVT (I0, I1, S, ZN); input I0, I1, S; output ZN; tsmc_mux (I0_out, I0, I1, S); not (ZN, I0_out); specify if (I1 == 1'b1 && S == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => ZN) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX2NOPTND2BWP7T35P140LVT (I0, I1, S, ZN); input I0, I1, S; output ZN; tsmc_mux (I0_out, I0, I1, S); not (ZN, I0_out); specify if (I1 == 1'b1 && S == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => ZN) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX2NOPTND4BWP7T35P140LVT (I0, I1, S, ZN); input I0, I1, S; output ZN; tsmc_mux (I0_out, I0, I1, S); not (ZN, I0_out); specify if (I1 == 1'b1 && S == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => ZN) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX2NOPTND6BWP7T35P140LVT (I0, I1, S, ZN); input I0, I1, S; output ZN; tsmc_mux (I0_out, I0, I1, S); not (ZN, I0_out); specify if (I1 == 1'b1 && S == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => ZN) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX2OPTD1BWP7T35P140LVT (I0, I1, S, Z); input I0, I1, S; output Z; tsmc_mux (Z, I0, I1, S); specify if (I1 == 1'b1 && S == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX2OPTD2BWP7T35P140LVT (I0, I1, S, Z); input I0, I1, S; output Z; tsmc_mux (Z, I0, I1, S); specify if (I1 == 1'b1 && S == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX2OPTD4BWP7T35P140LVT (I0, I1, S, Z); input I0, I1, S; output Z; tsmc_mux (Z, I0, I1, S); specify if (I1 == 1'b1 && S == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX2OPTD6BWP7T35P140LVT (I0, I1, S, Z); input I0, I1, S; output Z; tsmc_mux (Z, I0, I1, S); specify if (I1 == 1'b1 && S == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && S == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && S == 1'b1) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1) (S => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0) (S => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX3D0BWP7T35P140LVT (I0, I1, I2, S0, S1, Z); input I0, I1, I2, S0, S1; output Z; tsmc_mux (I0_out, I0, I1, S0); tsmc_mux (Z, I0_out, I2, S1); specify if (I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX3D1BWP7T35P140LVT (I0, I1, I2, S0, S1, Z); input I0, I1, I2, S0, S1; output Z; tsmc_mux (I0_out, I0, I1, S0); tsmc_mux (Z, I0_out, I2, S1); specify if (I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX3D2BWP7T35P140LVT (I0, I1, I2, S0, S1, Z); input I0, I1, I2, S0, S1; output Z; tsmc_mux (I0_out, I0, I1, S0); tsmc_mux (Z, I0_out, I2, S1); specify if (I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX3D4BWP7T35P140LVT (I0, I1, I2, S0, S1, Z); input I0, I1, I2, S0, S1; output Z; tsmc_mux (I0_out, I0, I1, S0); tsmc_mux (Z, I0_out, I2, S1); specify if (I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX3ND0BWP7T35P140LVT (I0, I1, I2, S0, S1, ZN); input I0, I1, I2, S0, S1; output ZN; tsmc_mux (I0_out, I0, I1, S0); tsmc_mux (I1_out, I0_out, I2, S1); not (ZN, I1_out); specify if (I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX3ND1BWP7T35P140LVT (I0, I1, I2, S0, S1, ZN); input I0, I1, I2, S0, S1; output ZN; tsmc_mux (I0_out, I0, I1, S0); tsmc_mux (I1_out, I0_out, I2, S1); not (ZN, I1_out); specify if (I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX3ND2BWP7T35P140LVT (I0, I1, I2, S0, S1, ZN); input I0, I1, I2, S0, S1; output ZN; tsmc_mux (I0_out, I0, I1, S0); tsmc_mux (I1_out, I0_out, I2, S1); not (ZN, I1_out); specify if (I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX3ND4BWP7T35P140LVT (I0, I1, I2, S0, S1, ZN); input I0, I1, I2, S0, S1; output ZN; tsmc_mux (I0_out, I0, I1, S0); tsmc_mux (I1_out, I0_out, I2, S1); not (ZN, I1_out); specify if (I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX4D0BWP7T35P140LVT (I0, I1, I2, I3, S0, S1, Z); input I0, I1, I2, I3, S0, S1; output Z; tsmc_mux (I0_out, I0, I1, S0); tsmc_mux (I1_out, I2, I3, S0); tsmc_mux (Z, I0_out, I1_out, S1); specify if (I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX4D1BWP7T35P140LVT (I0, I1, I2, I3, S0, S1, Z); input I0, I1, I2, I3, S0, S1; output Z; tsmc_mux (I0_out, I0, I1, S0); tsmc_mux (I1_out, I2, I3, S0); tsmc_mux (Z, I0_out, I1_out, S1); specify if (I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX4D2BWP7T35P140LVT (I0, I1, I2, I3, S0, S1, Z); input I0, I1, I2, I3, S0, S1; output Z; tsmc_mux (I0_out, I0, I1, S0); tsmc_mux (I1_out, I2, I3, S0); tsmc_mux (Z, I0_out, I1_out, S1); specify if (I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX4D4BWP7T35P140LVT (I0, I1, I2, I3, S0, S1, Z); input I0, I1, I2, I3, S0, S1; output Z; tsmc_mux (I0_out, I0, I1, S0); tsmc_mux (I1_out, I2, I3, S0); tsmc_mux (Z, I0_out, I1_out, S1); specify if (I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b0) (S0 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1) (S1 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX4ND0BWP7T35P140LVT (I0, I1, I2, I3, S0, S1, ZN); input I0, I1, I2, I3, S0, S1; output ZN; tsmc_mux (I0_out, I0, I1, S0); tsmc_mux (I1_out, I2, I3, S0); tsmc_mux (I2_out, I0_out, I1_out, S1); not (ZN, I2_out); specify if (I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX4ND1BWP7T35P140LVT (I0, I1, I2, I3, S0, S1, ZN); input I0, I1, I2, I3, S0, S1; output ZN; tsmc_mux (I0_out, I0, I1, S0); tsmc_mux (I1_out, I2, I3, S0); tsmc_mux (I2_out, I0_out, I1_out, S1); not (ZN, I2_out); specify if (I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX4ND2BWP7T35P140LVT (I0, I1, I2, I3, S0, S1, ZN); input I0, I1, I2, I3, S0, S1; output ZN; tsmc_mux (I0_out, I0, I1, S0); tsmc_mux (I1_out, I2, I3, S0); tsmc_mux (I2_out, I0_out, I1_out, S1); not (ZN, I2_out); specify if (I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module MUX4ND4BWP7T35P140LVT (I0, I1, I2, I3, S0, S1, ZN); input I0, I1, I2, I3, S0, S1; output ZN; tsmc_mux (I0_out, I0, I1, S0); tsmc_mux (I1_out, I2, I3, S0); tsmc_mux (I2_out, I0_out, I1_out, S1); not (ZN, I2_out); specify if (I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b0) (I0 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1 && S1 == 1'b0) (I1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I3 == 1'b1 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I3 == 1'b0 && S0 == 1'b0 && S1 == 1'b1) (I2 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && S0 == 1'b1 && S1 == 1'b1) (I3 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b1) (S0 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S1 == 1'b0) (S0 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b0 && I3 == 1'b0 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b1 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b1 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b1 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b1 && I3 == 1'b0 && S0 == 1'b0) (S1 => ZN) = (0, 0); if (I0 == 1'b0 && I1 == 1'b0 && I2 == 1'b0 && I3 == 1'b1 && S0 == 1'b1) (S1 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND2D0BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND2D12BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND2D16BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND2D1BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND2D2BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND2D3BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND2D4BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND2D8BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND2OPTPAD12BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND2OPTPAD16BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND2OPTPAD1BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND2OPTPAD2BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND2OPTPAD4BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND2OPTPAD6BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND2OPTPAD8BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; and (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND3D0BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; and (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND3D1BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; and (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND3D2BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; and (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND3D3BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; and (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND3D4BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; and (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND3D8BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; and (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND3OPTPAD12BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; and (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND3OPTPAD16BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; and (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND3OPTPAD1BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; and (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND3OPTPAD2BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; and (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND3OPTPAD4BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; and (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND3OPTPAD6BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; and (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND3OPTPAD8BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; and (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND4D0BWP7T35P140LVT (A1, A2, A3, A4, ZN); input A1, A2, A3, A4; output ZN; and (I0_out, A1, A2, A3, A4); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); (A4 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND4D1BWP7T35P140LVT (A1, A2, A3, A4, ZN); input A1, A2, A3, A4; output ZN; and (I0_out, A1, A2, A3, A4); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); (A4 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND4D2BWP7T35P140LVT (A1, A2, A3, A4, ZN); input A1, A2, A3, A4; output ZN; and (I0_out, A1, A2, A3, A4); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); (A4 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND4D3BWP7T35P140LVT (A1, A2, A3, A4, ZN); input A1, A2, A3, A4; output ZN; and (I0_out, A1, A2, A3, A4); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); (A4 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND4D4BWP7T35P140LVT (A1, A2, A3, A4, ZN); input A1, A2, A3, A4; output ZN; and (I0_out, A1, A2, A3, A4); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); (A4 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ND4D8BWP7T35P140LVT (A1, A2, A3, A4, ZN); input A1, A2, A3, A4; output ZN; and (I0_out, A1, A2, A3, A4); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); (A4 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR2D0BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; or (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR2D12BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; or (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR2D16BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; or (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR2D1BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; or (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR2D2BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; or (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR2D3BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; or (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR2D4BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; or (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR2D8BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; or (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR2OPTPAD12BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; or (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR2OPTPAD16BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; or (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR2OPTPAD1BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; or (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR2OPTPAD2BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; or (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR2OPTPAD4BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; or (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR2OPTPAD6BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; or (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR2OPTPAD8BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; or (I0_out, A1, A2); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR3D0BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; or (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR3D1BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; or (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR3D2BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; or (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR3D3BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; or (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR3D4BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; or (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR3D8BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; or (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR3OPTPAD12BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; or (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR3OPTPAD16BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; or (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR3OPTPAD1BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; or (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR3OPTPAD2BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; or (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR3OPTPAD4BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; or (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR3OPTPAD6BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; or (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR3OPTPAD8BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; or (I0_out, A1, A2, A3); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR4D0BWP7T35P140LVT (A1, A2, A3, A4, ZN); input A1, A2, A3, A4; output ZN; or (I0_out, A1, A2, A3, A4); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); (A4 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR4D1BWP7T35P140LVT (A1, A2, A3, A4, ZN); input A1, A2, A3, A4; output ZN; or (I0_out, A1, A2, A3, A4); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); (A4 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR4D2BWP7T35P140LVT (A1, A2, A3, A4, ZN); input A1, A2, A3, A4; output ZN; or (I0_out, A1, A2, A3, A4); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); (A4 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR4D3BWP7T35P140LVT (A1, A2, A3, A4, ZN); input A1, A2, A3, A4; output ZN; or (I0_out, A1, A2, A3, A4); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); (A4 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR4D4BWP7T35P140LVT (A1, A2, A3, A4, ZN); input A1, A2, A3, A4; output ZN; or (I0_out, A1, A2, A3, A4); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); (A4 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module NR4D8BWP7T35P140LVT (A1, A2, A3, A4, ZN); input A1, A2, A3, A4; output ZN; or (I0_out, A1, A2, A3, A4); not (ZN, I0_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); (A4 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA211D0BWP7T35P140LVT (A1, A2, B, C, Z); input A1, A2, B, C; output Z; or (I0_out, A1, A2); and (Z, I0_out, B, C); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && C == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b1) (C => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA211D1BWP7T35P140LVT (A1, A2, B, C, Z); input A1, A2, B, C; output Z; or (I0_out, A1, A2); and (Z, I0_out, B, C); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && C == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b1) (C => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA211D2BWP7T35P140LVT (A1, A2, B, C, Z); input A1, A2, B, C; output Z; or (I0_out, A1, A2); and (Z, I0_out, B, C); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && C == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b1) (C => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA211D4BWP7T35P140LVT (A1, A2, B, C, Z); input A1, A2, B, C; output Z; or (I0_out, A1, A2); and (Z, I0_out, B, C); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && C == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b1) (C => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA21D0BWP7T35P140LVT (A1, A2, B, Z); input A1, A2, B; output Z; or (I0_out, A1, A2); and (Z, I0_out, B); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA21D1BWP7T35P140LVT (A1, A2, B, Z); input A1, A2, B; output Z; or (I0_out, A1, A2); and (Z, I0_out, B); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA21D2BWP7T35P140LVT (A1, A2, B, Z); input A1, A2, B; output Z; or (I0_out, A1, A2); and (Z, I0_out, B); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA21D4BWP7T35P140LVT (A1, A2, B, Z); input A1, A2, B; output Z; or (I0_out, A1, A2); and (Z, I0_out, B); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA221D0BWP7T35P140LVT (A1, A2, B1, B2, C, Z); input A1, A2, B1, B2, C; output Z; or (I0_out, A1, A2); or (I1_out, B1, B2); and (Z, I0_out, I1_out, C); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA221D1BWP7T35P140LVT (A1, A2, B1, B2, C, Z); input A1, A2, B1, B2, C; output Z; or (I0_out, A1, A2); or (I1_out, B1, B2); and (Z, I0_out, I1_out, C); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA221D2BWP7T35P140LVT (A1, A2, B1, B2, C, Z); input A1, A2, B1, B2, C; output Z; or (I0_out, A1, A2); or (I1_out, B1, B2); and (Z, I0_out, I1_out, C); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA221D4BWP7T35P140LVT (A1, A2, B1, B2, C, Z); input A1, A2, B1, B2, C; output Z; or (I0_out, A1, A2); or (I1_out, B1, B2); and (Z, I0_out, I1_out, C); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA222D0BWP7T35P140LVT (A1, A2, B1, B2, C1, C2, Z); input A1, A2, B1, B2, C1, C2; output Z; or (I0_out, A1, A2); or (I1_out, B1, B2); or (I2_out, C1, C2); and (Z, I0_out, I1_out, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA222D1BWP7T35P140LVT (A1, A2, B1, B2, C1, C2, Z); input A1, A2, B1, B2, C1, C2; output Z; or (I0_out, A1, A2); or (I1_out, B1, B2); or (I2_out, C1, C2); and (Z, I0_out, I1_out, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA222D2BWP7T35P140LVT (A1, A2, B1, B2, C1, C2, Z); input A1, A2, B1, B2, C1, C2; output Z; or (I0_out, A1, A2); or (I1_out, B1, B2); or (I2_out, C1, C2); and (Z, I0_out, I1_out, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA222D4BWP7T35P140LVT (A1, A2, B1, B2, C1, C2, Z); input A1, A2, B1, B2, C1, C2; output Z; or (I0_out, A1, A2); or (I1_out, B1, B2); or (I2_out, C1, C2); and (Z, I0_out, I1_out, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA22D0BWP7T35P140LVT (A1, A2, B1, B2, Z); input A1, A2, B1, B2; output Z; or (I0_out, A1, A2); or (I1_out, B1, B2); and (Z, I0_out, I1_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA22D1BWP7T35P140LVT (A1, A2, B1, B2, Z); input A1, A2, B1, B2; output Z; or (I0_out, A1, A2); or (I1_out, B1, B2); and (Z, I0_out, I1_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA22D2BWP7T35P140LVT (A1, A2, B1, B2, Z); input A1, A2, B1, B2; output Z; or (I0_out, A1, A2); or (I1_out, B1, B2); and (Z, I0_out, I1_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA22D4BWP7T35P140LVT (A1, A2, B1, B2, Z); input A1, A2, B1, B2; output Z; or (I0_out, A1, A2); or (I1_out, B1, B2); and (Z, I0_out, I1_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA31D0BWP7T35P140LVT (A1, A2, A3, B, Z); input A1, A2, A3, B; output Z; or (I0_out, A1, A2, A3); and (Z, I0_out, B); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (B => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA31D1BWP7T35P140LVT (A1, A2, A3, B, Z); input A1, A2, A3, B; output Z; or (I0_out, A1, A2, A3); and (Z, I0_out, B); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (B => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA31D2BWP7T35P140LVT (A1, A2, A3, B, Z); input A1, A2, A3, B; output Z; or (I0_out, A1, A2, A3); and (Z, I0_out, B); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (B => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA31D4BWP7T35P140LVT (A1, A2, A3, B, Z); input A1, A2, A3, B; output Z; or (I0_out, A1, A2, A3); and (Z, I0_out, B); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (B => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (B => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (B => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA32D0BWP7T35P140LVT (A1, A2, A3, B1, B2, Z); input A1, A2, A3, B1, B2; output Z; or (I0_out, A1, A2, A3); or (I1_out, B1, B2); and (Z, I0_out, I1_out); specify if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA32D1BWP7T35P140LVT (A1, A2, A3, B1, B2, Z); input A1, A2, A3, B1, B2; output Z; or (I0_out, A1, A2, A3); or (I1_out, B1, B2); and (Z, I0_out, I1_out); specify if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA32D2BWP7T35P140LVT (A1, A2, A3, B1, B2, Z); input A1, A2, A3, B1, B2; output Z; or (I0_out, A1, A2, A3); or (I1_out, B1, B2); and (Z, I0_out, I1_out); specify if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA32D4BWP7T35P140LVT (A1, A2, A3, B1, B2, Z); input A1, A2, A3, B1, B2; output Z; or (I0_out, A1, A2, A3); or (I1_out, B1, B2); and (Z, I0_out, I1_out); specify if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0) (B2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA33D0BWP7T35P140LVT (A1, A2, A3, B1, B2, B3, Z); input A1, A2, A3, B1, B2, B3; output Z; or (I0_out, A1, A2, A3); or (I1_out, B1, B2, B3); and (Z, I0_out, I1_out); specify if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA33D1BWP7T35P140LVT (A1, A2, A3, B1, B2, B3, Z); input A1, A2, A3, B1, B2, B3; output Z; or (I0_out, A1, A2, A3); or (I1_out, B1, B2, B3); and (Z, I0_out, I1_out); specify if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA33D2BWP7T35P140LVT (A1, A2, A3, B1, B2, B3, Z); input A1, A2, A3, B1, B2, B3; output Z; or (I0_out, A1, A2, A3); or (I1_out, B1, B2, B3); and (Z, I0_out, I1_out); specify if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OA33D4BWP7T35P140LVT (A1, A2, A3, B1, B2, B3, Z); input A1, A2, A3, B1, B2, B3; output Z; or (I0_out, A1, A2, A3); or (I1_out, B1, B2, B3); and (Z, I0_out, I1_out); specify if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI211D0BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B, C); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI211D1BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B, C); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI211D2BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B, C); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI211D4BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B, C); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI211OPTBD12BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B, C); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI211OPTBD1BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B, C); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI211OPTBD2BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B, C); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI211OPTBD4BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B, C); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI211OPTBD6BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B, C); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI211OPTBD8BWP7T35P140LVT (A1, A2, B, C, ZN); input A1, A2, B, C; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B, C); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && C == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B == 1'b1) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI21D0BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI21D1BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI21D2BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI21D4BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI21OPTBD12BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI21OPTBD1BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI21OPTBD2BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI21OPTBD4BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI21OPTBD6BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI21OPTBD8BWP7T35P140LVT (A1, A2, B, ZN); input A1, A2, B; output ZN; or (I0_out, A1, A2); and (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI221D0BWP7T35P140LVT (A1, A2, B1, B2, C, ZN); input A1, A2, B1, B2, C; output ZN; or (I0_out, A1, A2); or (I1_out, B1, B2); and (I2_out, I0_out, I1_out, C); not (ZN, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI221D1BWP7T35P140LVT (A1, A2, B1, B2, C, ZN); input A1, A2, B1, B2, C; output ZN; or (I0_out, A1, A2); or (I1_out, B1, B2); and (I2_out, I0_out, I1_out, C); not (ZN, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI221D2BWP7T35P140LVT (A1, A2, B1, B2, C, ZN); input A1, A2, B1, B2, C; output ZN; or (I0_out, A1, A2); or (I1_out, B1, B2); and (I2_out, I0_out, I1_out, C); not (ZN, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI221D4BWP7T35P140LVT (A1, A2, B1, B2, C, ZN); input A1, A2, B1, B2, C; output ZN; or (I0_out, A1, A2); or (I1_out, B1, B2); and (I2_out, I0_out, I1_out, C); not (ZN, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0) (C => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1) (C => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI222D0BWP7T35P140LVT (A1, A2, B1, B2, C1, C2, ZN); input A1, A2, B1, B2, C1, C2; output ZN; or (I0_out, A1, A2); or (I1_out, B1, B2); or (I2_out, C1, C2); and (I3_out, I0_out, I1_out, I2_out); not (ZN, I3_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI222D1BWP7T35P140LVT (A1, A2, B1, B2, C1, C2, ZN); input A1, A2, B1, B2, C1, C2; output ZN; or (I0_out, A1, A2); or (I1_out, B1, B2); or (I2_out, C1, C2); and (I3_out, I0_out, I1_out, I2_out); not (ZN, I3_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI222D2BWP7T35P140LVT (A1, A2, B1, B2, C1, C2, ZN); input A1, A2, B1, B2, C1, C2; output ZN; or (I0_out, A1, A2); or (I1_out, B1, B2); or (I2_out, C1, C2); and (I3_out, I0_out, I1_out, I2_out); not (ZN, I3_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI222D4BWP7T35P140LVT (A1, A2, B1, B2, C1, C2, ZN); input A1, A2, B1, B2, C1, C2; output ZN; or (I0_out, A1, A2); or (I1_out, B1, B2); or (I2_out, C1, C2); and (I3_out, I0_out, I1_out, I2_out); not (ZN, I3_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b1 && C2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0 && C2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b1 && C2 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && C1 == 1'b0 && C2 == 1'b1) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C2 == 1'b0) (C1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b1 && B2 == 1'b0 && C1 == 1'b0) (C2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0 && B2 == 1'b1 && C1 == 1'b0) (C2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI22D0BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; or (I0_out, A1, A2); or (I1_out, B1, B2); and (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI22D1BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; or (I0_out, A1, A2); or (I1_out, B1, B2); and (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI22D2BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; or (I0_out, A1, A2); or (I1_out, B1, B2); and (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI22D4BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; or (I0_out, A1, A2); or (I1_out, B1, B2); and (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI22OPTPBD12BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; or (I0_out, A1, A2); or (I1_out, B1, B2); and (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI22OPTPBD1BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; or (I0_out, A1, A2); or (I1_out, B1, B2); and (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI22OPTPBD2BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; or (I0_out, A1, A2); or (I1_out, B1, B2); and (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI22OPTPBD4BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; or (I0_out, A1, A2); or (I1_out, B1, B2); and (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI22OPTPBD6BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; or (I0_out, A1, A2); or (I1_out, B1, B2); and (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI22OPTPBD8BWP7T35P140LVT (A1, A2, B1, B2, ZN); input A1, A2, B1, B2; output ZN; or (I0_out, A1, A2); or (I1_out, B1, B2); and (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI31D0BWP7T35P140LVT (A1, A2, A3, B, ZN); input A1, A2, A3, B; output ZN; or (I0_out, A1, A2, A3); and (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI31D1BWP7T35P140LVT (A1, A2, A3, B, ZN); input A1, A2, A3, B; output ZN; or (I0_out, A1, A2, A3); and (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI31D2BWP7T35P140LVT (A1, A2, A3, B, ZN); input A1, A2, A3, B; output ZN; or (I0_out, A1, A2, A3); and (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI31D4BWP7T35P140LVT (A1, A2, A3, B, ZN); input A1, A2, A3, B; output ZN; or (I0_out, A1, A2, A3); and (I1_out, I0_out, B); not (ZN, I1_out); specify (A1 => ZN) = (0, 0); (A2 => ZN) = (0, 0); (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (B => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (B => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (B => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI32D0BWP7T35P140LVT (A1, A2, A3, B1, B2, ZN); input A1, A2, A3, B1, B2; output ZN; or (I0_out, A1, A2, A3); or (I1_out, B1, B2); and (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI32D1BWP7T35P140LVT (A1, A2, A3, B1, B2, ZN); input A1, A2, A3, B1, B2; output ZN; or (I0_out, A1, A2, A3); or (I1_out, B1, B2); and (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI32D2BWP7T35P140LVT (A1, A2, A3, B1, B2, ZN); input A1, A2, A3, B1, B2; output ZN; or (I0_out, A1, A2, A3); or (I1_out, B1, B2); and (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI32D4BWP7T35P140LVT (A1, A2, A3, B1, B2, ZN); input A1, A2, A3, B1, B2; output ZN; or (I0_out, A1, A2, A3); or (I1_out, B1, B2); and (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0) (B2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI33D0BWP7T35P140LVT (A1, A2, A3, B1, B2, B3, ZN); input A1, A2, A3, B1, B2, B3; output ZN; or (I0_out, A1, A2, A3); or (I1_out, B1, B2, B3); and (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI33D1BWP7T35P140LVT (A1, A2, A3, B1, B2, B3, ZN); input A1, A2, A3, B1, B2, B3; output ZN; or (I0_out, A1, A2, A3); or (I1_out, B1, B2, B3); and (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI33D2BWP7T35P140LVT (A1, A2, A3, B1, B2, B3, ZN); input A1, A2, A3, B1, B2, B3; output ZN; or (I0_out, A1, A2, A3); or (I1_out, B1, B2, B3); and (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OAI33D4BWP7T35P140LVT (A1, A2, A3, B1, B2, B3, ZN); input A1, A2, A3, B1, B2, B3; output ZN; or (I0_out, A1, A2, A3); or (I1_out, B1, B2, B3); and (I2_out, I0_out, I1_out); not (ZN, I2_out); specify if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A1 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b1 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b1 && B3 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && B1 == 1'b0 && B2 == 1'b0 && B3 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B2 == 1'b0 && B3 == 1'b0) (B1 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B3 == 1'b0) (B2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1 && B1 == 1'b0 && B2 == 1'b0) (B3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR2D0BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; or (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR2D1BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; or (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR2D2BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; or (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR2D4BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; or (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR2D8BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; or (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR2OPTPAD12BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; or (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR2OPTPAD1BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; or (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR2OPTPAD2BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; or (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR2OPTPAD4BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; or (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR2OPTPAD8BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; or (Z, A1, A2); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR3D0BWP7T35P140LVT (A1, A2, A3, Z); input A1, A2, A3; output Z; or (Z, A1, A2, A3); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR3D1BWP7T35P140LVT (A1, A2, A3, Z); input A1, A2, A3; output Z; or (Z, A1, A2, A3); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR3D2BWP7T35P140LVT (A1, A2, A3, Z); input A1, A2, A3; output Z; or (Z, A1, A2, A3); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR3D4BWP7T35P140LVT (A1, A2, A3, Z); input A1, A2, A3; output Z; or (Z, A1, A2, A3); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR3D8BWP7T35P140LVT (A1, A2, A3, Z); input A1, A2, A3; output Z; or (Z, A1, A2, A3); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR4D0BWP7T35P140LVT (A1, A2, A3, A4, Z); input A1, A2, A3, A4; output Z; or (Z, A1, A2, A3, A4); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); (A4 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR4D1BWP7T35P140LVT (A1, A2, A3, A4, Z); input A1, A2, A3, A4; output Z; or (Z, A1, A2, A3, A4); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); (A4 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR4D2BWP7T35P140LVT (A1, A2, A3, A4, Z); input A1, A2, A3, A4; output Z; or (Z, A1, A2, A3, A4); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); (A4 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR4D4BWP7T35P140LVT (A1, A2, A3, A4, Z); input A1, A2, A3, A4; output Z; or (Z, A1, A2, A3, A4); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); (A4 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module OR4D8BWP7T35P140LVT (A1, A2, A3, A4, Z); input A1, A2, A3, A4; output Z; or (Z, A1, A2, A3, A4); specify (A1 => Z) = (0, 0); (A2 => Z) = (0, 0); (A3 => Z) = (0, 0); (A4 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module SDFCND0BWP7T35P140LVT (SI, D, SE, CP, CDN, Q, QN); input SI, D, SE, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCND1BWP7T35P140LVT (SI, D, SE, CP, CDN, Q, QN); input SI, D, SE, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCND2BWP7T35P140LVT (SI, D, SE, CP, CDN, Q, QN); input SI, D, SE, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCND4BWP7T35P140LVT (SI, D, SE, CP, CDN, Q, QN); input SI, D, SE, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNOPTAD1BWP7T35P140LVT (SI, D, SE, CP, CDN, Q, QN); input SI, D, SE, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNOPTAD2BWP7T35P140LVT (SI, D, SE, CP, CDN, Q, QN); input SI, D, SE, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNOPTAD4BWP7T35P140LVT (SI, D, SE, CP, CDN, Q, QN); input SI, D, SE, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNOPTBD1BWP7T35P140LVT (SI, D, SE, CP, CDN, Q, QN); input SI, D, SE, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNOPTBD2BWP7T35P140LVT (SI, D, SE, CP, CDN, Q, QN); input SI, D, SE, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNOPTBD4BWP7T35P140LVT (SI, D, SE, CP, CDN, Q, QN); input SI, D, SE, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNOPTCD1BWP7T35P140LVT (SI, D, SE, CP, CDN, Q, QN); input SI, D, SE, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNOPTCD2BWP7T35P140LVT (SI, D, SE, CP, CDN, Q, QN); input SI, D, SE, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNOPTCD4BWP7T35P140LVT (SI, D, SE, CP, CDN, Q, QN); input SI, D, SE, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNQD0BWP7T35P140LVT (SI, D, SE, CP, CDN, Q); input SI, D, SE, CP, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNQD1BWP7T35P140LVT (SI, D, SE, CP, CDN, Q); input SI, D, SE, CP, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNQD2BWP7T35P140LVT (SI, D, SE, CP, CDN, Q); input SI, D, SE, CP, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNQD4BWP7T35P140LVT (SI, D, SE, CP, CDN, Q); input SI, D, SE, CP, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNQOPTAD1BWP7T35P140LVT (SI, D, SE, CP, CDN, Q); input SI, D, SE, CP, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNQOPTAD2BWP7T35P140LVT (SI, D, SE, CP, CDN, Q); input SI, D, SE, CP, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNQOPTAD4BWP7T35P140LVT (SI, D, SE, CP, CDN, Q); input SI, D, SE, CP, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNQOPTBD1BWP7T35P140LVT (SI, D, SE, CP, CDN, Q); input SI, D, SE, CP, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNQOPTBD2BWP7T35P140LVT (SI, D, SE, CP, CDN, Q); input SI, D, SE, CP, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCNQOPTBD4BWP7T35P140LVT (SI, D, SE, CP, CDN, Q); input SI, D, SE, CP, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCSND0BWP7T35P140LVT (SI, D, SE, CP, CDN, SDN, Q, QN); input SI, D, SE, CP, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SE_SI_SDFCHK, CP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_SE_nSI_SDFCHK, CP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_SI_SDFCHK, CP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_nSI_SDFCHK, CP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_SI_SDFCHK, CP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_nSI_SDFCHK, CP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_SI_SDFCHK, CP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_nSI_SDFCHK, CP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_SI_SDFCHK, nCP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_nSI_SDFCHK, nCP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_SI_SDFCHK, nCP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_nSI_SDFCHK, nCP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_SI_SDFCHK, nCP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_nSI_SDFCHK, nCP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_SI_SDFCHK, nCP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_nSI_SDFCHK, nCP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_SI_SDFCHK, CDN_CP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_nSI_SDFCHK, CDN_CP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_SI_SDFCHK, CDN_CP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_nSI_SDFCHK, CDN_CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_SI_SDFCHK, CDN_CP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_nSI_SDFCHK, CDN_CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_SI_SDFCHK, CDN_CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_nSI_SDFCHK, CDN_CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_SI_SDFCHK, CDN_nCP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_SI_SDFCHK, CDN_nCP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_nSI_SDFCHK, CDN_nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_SI_SDFCHK, CDN_nCP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_nSI_SDFCHK, CDN_nCP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_nSI_SDFCHK, CDN_nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_SI_SDFCHK, CDN_nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_nSI_SDFCHK, CDN_nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SDN_SE_SI, CP, D, SDN, SE, SI); and (CP_D_SDN_SE_nSI, CP, D, SDN, SE, nSI); and (CP_D_SDN_nSE_SI, CP, D, SDN, nSE, SI); and (CP_D_SDN_nSE_nSI, CP, D, SDN, nSE, nSI); and (CP_nD_SDN_SE_SI, CP, nD, SDN, SE, SI); and (CP_nD_SDN_SE_nSI, CP, nD, SDN, SE, nSI); and (CP_nD_SDN_nSE_SI, CP, nD, SDN, nSE, SI); and (CP_nD_SDN_nSE_nSI, CP, nD, SDN, nSE, nSI); and (nCP_D_SDN_SE_SI, nCP, D, SDN, SE, SI); and (nCP_D_SDN_SE_nSI, nCP, D, SDN, SE, nSI); and (nCP_D_SDN_nSE_SI, nCP, D, SDN, nSE, SI); and (nCP_D_SDN_nSE_nSI, nCP, D, SDN, nSE, nSI); and (nCP_nD_SDN_SE_SI, nCP, nD, SDN, SE, SI); and (nCP_nD_SDN_SE_nSI, nCP, nD, SDN, SE, nSI); and (nCP_nD_SDN_nSE_SI, nCP, nD, SDN, nSE, SI); and (nCP_nD_SDN_nSE_nSI, nCP, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CP_D_SE_SI, CDN, CP, D, SE, SI); and (CDN_CP_D_SE_nSI, CDN, CP, D, SE, nSI); and (CDN_CP_D_nSE_SI, CDN, CP, D, nSE, SI); and (CDN_CP_D_nSE_nSI, CDN, CP, D, nSE, nSI); and (CDN_CP_nD_SE_SI, CDN, CP, nD, SE, SI); and (CDN_CP_nD_SE_nSI, CDN, CP, nD, SE, nSI); and (CDN_CP_nD_nSE_SI, CDN, CP, nD, nSE, SI); and (CDN_CP_nD_nSE_nSI, CDN, CP, nD, nSE, nSI); and (CDN_nCP_D_SE_SI, CDN, nCP, D, SE, SI); and (CDN_nCP_D_nSE_SI, CDN, nCP, D, nSE, SI); and (CDN_nCP_D_nSE_nSI, CDN, nCP, D, nSE, nSI); and (CDN_nCP_nD_SE_SI, CDN, nCP, nD, SE, SI); and (CDN_nCP_D_SE_nSI, CDN, nCP, D, SE, nSI); and (CDN_nCP_nD_SE_nSI, CDN, nCP, nD, SE, nSI); and (CDN_nCP_nD_nSE_SI, CDN, nCP, nD, nSE, SI); and (CDN_nCP_nD_nSE_nSI, CDN, nCP, nD, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CP_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCSND1BWP7T35P140LVT (SI, D, SE, CP, CDN, SDN, Q, QN); input SI, D, SE, CP, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SE_SI_SDFCHK, CP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_SE_nSI_SDFCHK, CP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_SI_SDFCHK, CP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_nSI_SDFCHK, CP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_SI_SDFCHK, CP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_nSI_SDFCHK, CP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_SI_SDFCHK, CP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_nSI_SDFCHK, CP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_SI_SDFCHK, nCP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_nSI_SDFCHK, nCP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_SI_SDFCHK, nCP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_nSI_SDFCHK, nCP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_SI_SDFCHK, nCP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_nSI_SDFCHK, nCP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_SI_SDFCHK, nCP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_nSI_SDFCHK, nCP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_SI_SDFCHK, CDN_CP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_nSI_SDFCHK, CDN_CP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_SI_SDFCHK, CDN_CP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_nSI_SDFCHK, CDN_CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_SI_SDFCHK, CDN_CP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_nSI_SDFCHK, CDN_CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_SI_SDFCHK, CDN_CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_nSI_SDFCHK, CDN_CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_SI_SDFCHK, CDN_nCP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_SI_SDFCHK, CDN_nCP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_nSI_SDFCHK, CDN_nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_SI_SDFCHK, CDN_nCP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_nSI_SDFCHK, CDN_nCP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_nSI_SDFCHK, CDN_nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_SI_SDFCHK, CDN_nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_nSI_SDFCHK, CDN_nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SDN_SE_SI, CP, D, SDN, SE, SI); and (CP_D_SDN_SE_nSI, CP, D, SDN, SE, nSI); and (CP_D_SDN_nSE_SI, CP, D, SDN, nSE, SI); and (CP_D_SDN_nSE_nSI, CP, D, SDN, nSE, nSI); and (CP_nD_SDN_SE_SI, CP, nD, SDN, SE, SI); and (CP_nD_SDN_SE_nSI, CP, nD, SDN, SE, nSI); and (CP_nD_SDN_nSE_SI, CP, nD, SDN, nSE, SI); and (CP_nD_SDN_nSE_nSI, CP, nD, SDN, nSE, nSI); and (nCP_D_SDN_SE_SI, nCP, D, SDN, SE, SI); and (nCP_D_SDN_SE_nSI, nCP, D, SDN, SE, nSI); and (nCP_D_SDN_nSE_SI, nCP, D, SDN, nSE, SI); and (nCP_D_SDN_nSE_nSI, nCP, D, SDN, nSE, nSI); and (nCP_nD_SDN_SE_SI, nCP, nD, SDN, SE, SI); and (nCP_nD_SDN_SE_nSI, nCP, nD, SDN, SE, nSI); and (nCP_nD_SDN_nSE_SI, nCP, nD, SDN, nSE, SI); and (nCP_nD_SDN_nSE_nSI, nCP, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CP_D_SE_SI, CDN, CP, D, SE, SI); and (CDN_CP_D_SE_nSI, CDN, CP, D, SE, nSI); and (CDN_CP_D_nSE_SI, CDN, CP, D, nSE, SI); and (CDN_CP_D_nSE_nSI, CDN, CP, D, nSE, nSI); and (CDN_CP_nD_SE_SI, CDN, CP, nD, SE, SI); and (CDN_CP_nD_SE_nSI, CDN, CP, nD, SE, nSI); and (CDN_CP_nD_nSE_SI, CDN, CP, nD, nSE, SI); and (CDN_CP_nD_nSE_nSI, CDN, CP, nD, nSE, nSI); and (CDN_nCP_D_SE_SI, CDN, nCP, D, SE, SI); and (CDN_nCP_D_nSE_SI, CDN, nCP, D, nSE, SI); and (CDN_nCP_D_nSE_nSI, CDN, nCP, D, nSE, nSI); and (CDN_nCP_nD_SE_SI, CDN, nCP, nD, SE, SI); and (CDN_nCP_D_SE_nSI, CDN, nCP, D, SE, nSI); and (CDN_nCP_nD_SE_nSI, CDN, nCP, nD, SE, nSI); and (CDN_nCP_nD_nSE_SI, CDN, nCP, nD, nSE, SI); and (CDN_nCP_nD_nSE_nSI, CDN, nCP, nD, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CP_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCSND2BWP7T35P140LVT (SI, D, SE, CP, CDN, SDN, Q, QN); input SI, D, SE, CP, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SE_SI_SDFCHK, CP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_SE_nSI_SDFCHK, CP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_SI_SDFCHK, CP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_nSI_SDFCHK, CP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_SI_SDFCHK, CP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_nSI_SDFCHK, CP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_SI_SDFCHK, CP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_nSI_SDFCHK, CP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_SI_SDFCHK, nCP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_nSI_SDFCHK, nCP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_SI_SDFCHK, nCP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_nSI_SDFCHK, nCP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_SI_SDFCHK, nCP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_nSI_SDFCHK, nCP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_SI_SDFCHK, nCP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_nSI_SDFCHK, nCP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_SI_SDFCHK, CDN_CP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_nSI_SDFCHK, CDN_CP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_SI_SDFCHK, CDN_CP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_nSI_SDFCHK, CDN_CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_SI_SDFCHK, CDN_CP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_nSI_SDFCHK, CDN_CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_SI_SDFCHK, CDN_CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_nSI_SDFCHK, CDN_CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_SI_SDFCHK, CDN_nCP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_SI_SDFCHK, CDN_nCP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_nSI_SDFCHK, CDN_nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_SI_SDFCHK, CDN_nCP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_nSI_SDFCHK, CDN_nCP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_nSI_SDFCHK, CDN_nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_SI_SDFCHK, CDN_nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_nSI_SDFCHK, CDN_nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SDN_SE_SI, CP, D, SDN, SE, SI); and (CP_D_SDN_SE_nSI, CP, D, SDN, SE, nSI); and (CP_D_SDN_nSE_SI, CP, D, SDN, nSE, SI); and (CP_D_SDN_nSE_nSI, CP, D, SDN, nSE, nSI); and (CP_nD_SDN_SE_SI, CP, nD, SDN, SE, SI); and (CP_nD_SDN_SE_nSI, CP, nD, SDN, SE, nSI); and (CP_nD_SDN_nSE_SI, CP, nD, SDN, nSE, SI); and (CP_nD_SDN_nSE_nSI, CP, nD, SDN, nSE, nSI); and (nCP_D_SDN_SE_SI, nCP, D, SDN, SE, SI); and (nCP_D_SDN_SE_nSI, nCP, D, SDN, SE, nSI); and (nCP_D_SDN_nSE_SI, nCP, D, SDN, nSE, SI); and (nCP_D_SDN_nSE_nSI, nCP, D, SDN, nSE, nSI); and (nCP_nD_SDN_SE_SI, nCP, nD, SDN, SE, SI); and (nCP_nD_SDN_SE_nSI, nCP, nD, SDN, SE, nSI); and (nCP_nD_SDN_nSE_SI, nCP, nD, SDN, nSE, SI); and (nCP_nD_SDN_nSE_nSI, nCP, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CP_D_SE_SI, CDN, CP, D, SE, SI); and (CDN_CP_D_SE_nSI, CDN, CP, D, SE, nSI); and (CDN_CP_D_nSE_SI, CDN, CP, D, nSE, SI); and (CDN_CP_D_nSE_nSI, CDN, CP, D, nSE, nSI); and (CDN_CP_nD_SE_SI, CDN, CP, nD, SE, SI); and (CDN_CP_nD_SE_nSI, CDN, CP, nD, SE, nSI); and (CDN_CP_nD_nSE_SI, CDN, CP, nD, nSE, SI); and (CDN_CP_nD_nSE_nSI, CDN, CP, nD, nSE, nSI); and (CDN_nCP_D_SE_SI, CDN, nCP, D, SE, SI); and (CDN_nCP_D_nSE_SI, CDN, nCP, D, nSE, SI); and (CDN_nCP_D_nSE_nSI, CDN, nCP, D, nSE, nSI); and (CDN_nCP_nD_SE_SI, CDN, nCP, nD, SE, SI); and (CDN_nCP_D_SE_nSI, CDN, nCP, D, SE, nSI); and (CDN_nCP_nD_SE_nSI, CDN, nCP, nD, SE, nSI); and (CDN_nCP_nD_nSE_SI, CDN, nCP, nD, nSE, SI); and (CDN_nCP_nD_nSE_nSI, CDN, nCP, nD, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CP_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCSND4BWP7T35P140LVT (SI, D, SE, CP, CDN, SDN, Q, QN); input SI, D, SE, CP, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SE_SI_SDFCHK, CP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_SE_nSI_SDFCHK, CP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_SI_SDFCHK, CP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_nSI_SDFCHK, CP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_SI_SDFCHK, CP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_nSI_SDFCHK, CP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_SI_SDFCHK, CP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_nSI_SDFCHK, CP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_SI_SDFCHK, nCP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_nSI_SDFCHK, nCP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_SI_SDFCHK, nCP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_nSI_SDFCHK, nCP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_SI_SDFCHK, nCP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_nSI_SDFCHK, nCP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_SI_SDFCHK, nCP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_nSI_SDFCHK, nCP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_SI_SDFCHK, CDN_CP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_nSI_SDFCHK, CDN_CP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_SI_SDFCHK, CDN_CP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_nSI_SDFCHK, CDN_CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_SI_SDFCHK, CDN_CP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_nSI_SDFCHK, CDN_CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_SI_SDFCHK, CDN_CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_nSI_SDFCHK, CDN_CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_SI_SDFCHK, CDN_nCP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_SI_SDFCHK, CDN_nCP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_nSI_SDFCHK, CDN_nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_SI_SDFCHK, CDN_nCP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_nSI_SDFCHK, CDN_nCP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_nSI_SDFCHK, CDN_nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_SI_SDFCHK, CDN_nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_nSI_SDFCHK, CDN_nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SDN_SE_SI, CP, D, SDN, SE, SI); and (CP_D_SDN_SE_nSI, CP, D, SDN, SE, nSI); and (CP_D_SDN_nSE_SI, CP, D, SDN, nSE, SI); and (CP_D_SDN_nSE_nSI, CP, D, SDN, nSE, nSI); and (CP_nD_SDN_SE_SI, CP, nD, SDN, SE, SI); and (CP_nD_SDN_SE_nSI, CP, nD, SDN, SE, nSI); and (CP_nD_SDN_nSE_SI, CP, nD, SDN, nSE, SI); and (CP_nD_SDN_nSE_nSI, CP, nD, SDN, nSE, nSI); and (nCP_D_SDN_SE_SI, nCP, D, SDN, SE, SI); and (nCP_D_SDN_SE_nSI, nCP, D, SDN, SE, nSI); and (nCP_D_SDN_nSE_SI, nCP, D, SDN, nSE, SI); and (nCP_D_SDN_nSE_nSI, nCP, D, SDN, nSE, nSI); and (nCP_nD_SDN_SE_SI, nCP, nD, SDN, SE, SI); and (nCP_nD_SDN_SE_nSI, nCP, nD, SDN, SE, nSI); and (nCP_nD_SDN_nSE_SI, nCP, nD, SDN, nSE, SI); and (nCP_nD_SDN_nSE_nSI, nCP, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CP_D_SE_SI, CDN, CP, D, SE, SI); and (CDN_CP_D_SE_nSI, CDN, CP, D, SE, nSI); and (CDN_CP_D_nSE_SI, CDN, CP, D, nSE, SI); and (CDN_CP_D_nSE_nSI, CDN, CP, D, nSE, nSI); and (CDN_CP_nD_SE_SI, CDN, CP, nD, SE, SI); and (CDN_CP_nD_SE_nSI, CDN, CP, nD, SE, nSI); and (CDN_CP_nD_nSE_SI, CDN, CP, nD, nSE, SI); and (CDN_CP_nD_nSE_nSI, CDN, CP, nD, nSE, nSI); and (CDN_nCP_D_SE_SI, CDN, nCP, D, SE, SI); and (CDN_nCP_D_nSE_SI, CDN, nCP, D, nSE, SI); and (CDN_nCP_D_nSE_nSI, CDN, nCP, D, nSE, nSI); and (CDN_nCP_nD_SE_SI, CDN, nCP, nD, SE, SI); and (CDN_nCP_D_SE_nSI, CDN, nCP, D, SE, nSI); and (CDN_nCP_nD_SE_nSI, CDN, nCP, nD, SE, nSI); and (CDN_nCP_nD_nSE_SI, CDN, nCP, nD, nSE, SI); and (CDN_nCP_nD_nSE_nSI, CDN, nCP, nD, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CP_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCSNQD0BWP7T35P140LVT (SI, D, SE, CP, CDN, SDN, Q); input SI, D, SE, CP, CDN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SE_SI_SDFCHK, CP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_SE_nSI_SDFCHK, CP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_SI_SDFCHK, CP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_nSI_SDFCHK, CP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_SI_SDFCHK, CP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_nSI_SDFCHK, CP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_SI_SDFCHK, CP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_nSI_SDFCHK, CP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_SI_SDFCHK, nCP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_nSI_SDFCHK, nCP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_SI_SDFCHK, nCP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_nSI_SDFCHK, nCP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_SI_SDFCHK, nCP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_nSI_SDFCHK, nCP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_SI_SDFCHK, nCP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_nSI_SDFCHK, nCP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_SI_SDFCHK, CDN_CP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_nSI_SDFCHK, CDN_CP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_SI_SDFCHK, CDN_CP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_nSI_SDFCHK, CDN_CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_SI_SDFCHK, CDN_CP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_nSI_SDFCHK, CDN_CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_SI_SDFCHK, CDN_CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_nSI_SDFCHK, CDN_CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_SI_SDFCHK, CDN_nCP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_SI_SDFCHK, CDN_nCP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_nSI_SDFCHK, CDN_nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_SI_SDFCHK, CDN_nCP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_nSI_SDFCHK, CDN_nCP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_nSI_SDFCHK, CDN_nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_SI_SDFCHK, CDN_nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_nSI_SDFCHK, CDN_nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SDN_SE_SI, CP, D, SDN, SE, SI); and (CP_D_SDN_SE_nSI, CP, D, SDN, SE, nSI); and (CP_D_SDN_nSE_SI, CP, D, SDN, nSE, SI); and (CP_D_SDN_nSE_nSI, CP, D, SDN, nSE, nSI); and (CP_nD_SDN_SE_SI, CP, nD, SDN, SE, SI); and (CP_nD_SDN_SE_nSI, CP, nD, SDN, SE, nSI); and (CP_nD_SDN_nSE_SI, CP, nD, SDN, nSE, SI); and (CP_nD_SDN_nSE_nSI, CP, nD, SDN, nSE, nSI); and (nCP_D_SDN_SE_SI, nCP, D, SDN, SE, SI); and (nCP_D_SDN_SE_nSI, nCP, D, SDN, SE, nSI); and (nCP_D_SDN_nSE_SI, nCP, D, SDN, nSE, SI); and (nCP_D_SDN_nSE_nSI, nCP, D, SDN, nSE, nSI); and (nCP_nD_SDN_SE_SI, nCP, nD, SDN, SE, SI); and (nCP_nD_SDN_SE_nSI, nCP, nD, SDN, SE, nSI); and (nCP_nD_SDN_nSE_SI, nCP, nD, SDN, nSE, SI); and (nCP_nD_SDN_nSE_nSI, nCP, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CP_D_SE_SI, CDN, CP, D, SE, SI); and (CDN_CP_D_SE_nSI, CDN, CP, D, SE, nSI); and (CDN_CP_D_nSE_SI, CDN, CP, D, nSE, SI); and (CDN_CP_D_nSE_nSI, CDN, CP, D, nSE, nSI); and (CDN_CP_nD_SE_SI, CDN, CP, nD, SE, SI); and (CDN_CP_nD_SE_nSI, CDN, CP, nD, SE, nSI); and (CDN_CP_nD_nSE_SI, CDN, CP, nD, nSE, SI); and (CDN_CP_nD_nSE_nSI, CDN, CP, nD, nSE, nSI); and (CDN_nCP_D_SE_SI, CDN, nCP, D, SE, SI); and (CDN_nCP_D_nSE_SI, CDN, nCP, D, nSE, SI); and (CDN_nCP_D_nSE_nSI, CDN, nCP, D, nSE, nSI); and (CDN_nCP_nD_SE_SI, CDN, nCP, nD, SE, SI); and (CDN_nCP_D_SE_nSI, CDN, nCP, D, SE, nSI); and (CDN_nCP_nD_SE_nSI, CDN, nCP, nD, SE, nSI); and (CDN_nCP_nD_nSE_SI, CDN, nCP, nD, nSE, SI); and (CDN_nCP_nD_nSE_nSI, CDN, nCP, nD, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CP_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCSNQD1BWP7T35P140LVT (SI, D, SE, CP, CDN, SDN, Q); input SI, D, SE, CP, CDN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SE_SI_SDFCHK, CP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_SE_nSI_SDFCHK, CP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_SI_SDFCHK, CP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_nSI_SDFCHK, CP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_SI_SDFCHK, CP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_nSI_SDFCHK, CP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_SI_SDFCHK, CP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_nSI_SDFCHK, CP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_SI_SDFCHK, nCP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_nSI_SDFCHK, nCP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_SI_SDFCHK, nCP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_nSI_SDFCHK, nCP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_SI_SDFCHK, nCP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_nSI_SDFCHK, nCP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_SI_SDFCHK, nCP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_nSI_SDFCHK, nCP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_SI_SDFCHK, CDN_CP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_nSI_SDFCHK, CDN_CP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_SI_SDFCHK, CDN_CP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_nSI_SDFCHK, CDN_CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_SI_SDFCHK, CDN_CP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_nSI_SDFCHK, CDN_CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_SI_SDFCHK, CDN_CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_nSI_SDFCHK, CDN_CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_SI_SDFCHK, CDN_nCP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_SI_SDFCHK, CDN_nCP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_nSI_SDFCHK, CDN_nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_SI_SDFCHK, CDN_nCP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_nSI_SDFCHK, CDN_nCP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_nSI_SDFCHK, CDN_nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_SI_SDFCHK, CDN_nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_nSI_SDFCHK, CDN_nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SDN_SE_SI, CP, D, SDN, SE, SI); and (CP_D_SDN_SE_nSI, CP, D, SDN, SE, nSI); and (CP_D_SDN_nSE_SI, CP, D, SDN, nSE, SI); and (CP_D_SDN_nSE_nSI, CP, D, SDN, nSE, nSI); and (CP_nD_SDN_SE_SI, CP, nD, SDN, SE, SI); and (CP_nD_SDN_SE_nSI, CP, nD, SDN, SE, nSI); and (CP_nD_SDN_nSE_SI, CP, nD, SDN, nSE, SI); and (CP_nD_SDN_nSE_nSI, CP, nD, SDN, nSE, nSI); and (nCP_D_SDN_SE_SI, nCP, D, SDN, SE, SI); and (nCP_D_SDN_SE_nSI, nCP, D, SDN, SE, nSI); and (nCP_D_SDN_nSE_SI, nCP, D, SDN, nSE, SI); and (nCP_D_SDN_nSE_nSI, nCP, D, SDN, nSE, nSI); and (nCP_nD_SDN_SE_SI, nCP, nD, SDN, SE, SI); and (nCP_nD_SDN_SE_nSI, nCP, nD, SDN, SE, nSI); and (nCP_nD_SDN_nSE_SI, nCP, nD, SDN, nSE, SI); and (nCP_nD_SDN_nSE_nSI, nCP, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CP_D_SE_SI, CDN, CP, D, SE, SI); and (CDN_CP_D_SE_nSI, CDN, CP, D, SE, nSI); and (CDN_CP_D_nSE_SI, CDN, CP, D, nSE, SI); and (CDN_CP_D_nSE_nSI, CDN, CP, D, nSE, nSI); and (CDN_CP_nD_SE_SI, CDN, CP, nD, SE, SI); and (CDN_CP_nD_SE_nSI, CDN, CP, nD, SE, nSI); and (CDN_CP_nD_nSE_SI, CDN, CP, nD, nSE, SI); and (CDN_CP_nD_nSE_nSI, CDN, CP, nD, nSE, nSI); and (CDN_nCP_D_SE_SI, CDN, nCP, D, SE, SI); and (CDN_nCP_D_nSE_SI, CDN, nCP, D, nSE, SI); and (CDN_nCP_D_nSE_nSI, CDN, nCP, D, nSE, nSI); and (CDN_nCP_nD_SE_SI, CDN, nCP, nD, SE, SI); and (CDN_nCP_D_SE_nSI, CDN, nCP, D, SE, nSI); and (CDN_nCP_nD_SE_nSI, CDN, nCP, nD, SE, nSI); and (CDN_nCP_nD_nSE_SI, CDN, nCP, nD, nSE, SI); and (CDN_nCP_nD_nSE_nSI, CDN, nCP, nD, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CP_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCSNQD2BWP7T35P140LVT (SI, D, SE, CP, CDN, SDN, Q); input SI, D, SE, CP, CDN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SE_SI_SDFCHK, CP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_SE_nSI_SDFCHK, CP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_SI_SDFCHK, CP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_nSI_SDFCHK, CP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_SI_SDFCHK, CP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_nSI_SDFCHK, CP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_SI_SDFCHK, CP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_nSI_SDFCHK, CP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_SI_SDFCHK, nCP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_nSI_SDFCHK, nCP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_SI_SDFCHK, nCP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_nSI_SDFCHK, nCP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_SI_SDFCHK, nCP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_nSI_SDFCHK, nCP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_SI_SDFCHK, nCP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_nSI_SDFCHK, nCP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_SI_SDFCHK, CDN_CP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_nSI_SDFCHK, CDN_CP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_SI_SDFCHK, CDN_CP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_nSI_SDFCHK, CDN_CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_SI_SDFCHK, CDN_CP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_nSI_SDFCHK, CDN_CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_SI_SDFCHK, CDN_CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_nSI_SDFCHK, CDN_CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_SI_SDFCHK, CDN_nCP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_SI_SDFCHK, CDN_nCP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_nSI_SDFCHK, CDN_nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_SI_SDFCHK, CDN_nCP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_nSI_SDFCHK, CDN_nCP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_nSI_SDFCHK, CDN_nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_SI_SDFCHK, CDN_nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_nSI_SDFCHK, CDN_nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SDN_SE_SI, CP, D, SDN, SE, SI); and (CP_D_SDN_SE_nSI, CP, D, SDN, SE, nSI); and (CP_D_SDN_nSE_SI, CP, D, SDN, nSE, SI); and (CP_D_SDN_nSE_nSI, CP, D, SDN, nSE, nSI); and (CP_nD_SDN_SE_SI, CP, nD, SDN, SE, SI); and (CP_nD_SDN_SE_nSI, CP, nD, SDN, SE, nSI); and (CP_nD_SDN_nSE_SI, CP, nD, SDN, nSE, SI); and (CP_nD_SDN_nSE_nSI, CP, nD, SDN, nSE, nSI); and (nCP_D_SDN_SE_SI, nCP, D, SDN, SE, SI); and (nCP_D_SDN_SE_nSI, nCP, D, SDN, SE, nSI); and (nCP_D_SDN_nSE_SI, nCP, D, SDN, nSE, SI); and (nCP_D_SDN_nSE_nSI, nCP, D, SDN, nSE, nSI); and (nCP_nD_SDN_SE_SI, nCP, nD, SDN, SE, SI); and (nCP_nD_SDN_SE_nSI, nCP, nD, SDN, SE, nSI); and (nCP_nD_SDN_nSE_SI, nCP, nD, SDN, nSE, SI); and (nCP_nD_SDN_nSE_nSI, nCP, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CP_D_SE_SI, CDN, CP, D, SE, SI); and (CDN_CP_D_SE_nSI, CDN, CP, D, SE, nSI); and (CDN_CP_D_nSE_SI, CDN, CP, D, nSE, SI); and (CDN_CP_D_nSE_nSI, CDN, CP, D, nSE, nSI); and (CDN_CP_nD_SE_SI, CDN, CP, nD, SE, SI); and (CDN_CP_nD_SE_nSI, CDN, CP, nD, SE, nSI); and (CDN_CP_nD_nSE_SI, CDN, CP, nD, nSE, SI); and (CDN_CP_nD_nSE_nSI, CDN, CP, nD, nSE, nSI); and (CDN_nCP_D_SE_SI, CDN, nCP, D, SE, SI); and (CDN_nCP_D_nSE_SI, CDN, nCP, D, nSE, SI); and (CDN_nCP_D_nSE_nSI, CDN, nCP, D, nSE, nSI); and (CDN_nCP_nD_SE_SI, CDN, nCP, nD, SE, SI); and (CDN_nCP_D_SE_nSI, CDN, nCP, D, SE, nSI); and (CDN_nCP_nD_SE_nSI, CDN, nCP, nD, SE, nSI); and (CDN_nCP_nD_nSE_SI, CDN, nCP, nD, nSE, SI); and (CDN_nCP_nD_nSE_nSI, CDN, nCP, nD, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CP_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFCSNQD4BWP7T35P140LVT (SI, D, SE, CP, CDN, SDN, Q); input SI, D, SE, CP, CDN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SE_SI_SDFCHK, CP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_SE_nSI_SDFCHK, CP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_SI_SDFCHK, CP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_nSI_SDFCHK, CP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_SI_SDFCHK, CP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_nSI_SDFCHK, CP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_SI_SDFCHK, CP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_nSI_SDFCHK, CP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_SI_SDFCHK, nCP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_nSI_SDFCHK, nCP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_SI_SDFCHK, nCP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_nSI_SDFCHK, nCP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_SI_SDFCHK, nCP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_nSI_SDFCHK, nCP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_SI_SDFCHK, nCP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_nSI_SDFCHK, nCP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_SI_SDFCHK, CDN_CP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_nSI_SDFCHK, CDN_CP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_SI_SDFCHK, CDN_CP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_nSI_SDFCHK, CDN_CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_SI_SDFCHK, CDN_CP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_nSI_SDFCHK, CDN_CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_SI_SDFCHK, CDN_CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_nSI_SDFCHK, CDN_CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_SI_SDFCHK, CDN_nCP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_SI_SDFCHK, CDN_nCP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_nSI_SDFCHK, CDN_nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_SI_SDFCHK, CDN_nCP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_nSI_SDFCHK, CDN_nCP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_nSI_SDFCHK, CDN_nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_SI_SDFCHK, CDN_nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_nSI_SDFCHK, CDN_nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SDN_SE_SI, CP, D, SDN, SE, SI); and (CP_D_SDN_SE_nSI, CP, D, SDN, SE, nSI); and (CP_D_SDN_nSE_SI, CP, D, SDN, nSE, SI); and (CP_D_SDN_nSE_nSI, CP, D, SDN, nSE, nSI); and (CP_nD_SDN_SE_SI, CP, nD, SDN, SE, SI); and (CP_nD_SDN_SE_nSI, CP, nD, SDN, SE, nSI); and (CP_nD_SDN_nSE_SI, CP, nD, SDN, nSE, SI); and (CP_nD_SDN_nSE_nSI, CP, nD, SDN, nSE, nSI); and (nCP_D_SDN_SE_SI, nCP, D, SDN, SE, SI); and (nCP_D_SDN_SE_nSI, nCP, D, SDN, SE, nSI); and (nCP_D_SDN_nSE_SI, nCP, D, SDN, nSE, SI); and (nCP_D_SDN_nSE_nSI, nCP, D, SDN, nSE, nSI); and (nCP_nD_SDN_SE_SI, nCP, nD, SDN, SE, SI); and (nCP_nD_SDN_SE_nSI, nCP, nD, SDN, SE, nSI); and (nCP_nD_SDN_nSE_SI, nCP, nD, SDN, nSE, SI); and (nCP_nD_SDN_nSE_nSI, nCP, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CP_D_SE_SI, CDN, CP, D, SE, SI); and (CDN_CP_D_SE_nSI, CDN, CP, D, SE, nSI); and (CDN_CP_D_nSE_SI, CDN, CP, D, nSE, SI); and (CDN_CP_D_nSE_nSI, CDN, CP, D, nSE, nSI); and (CDN_CP_nD_SE_SI, CDN, CP, nD, SE, SI); and (CDN_CP_nD_SE_nSI, CDN, CP, nD, SE, nSI); and (CDN_CP_nD_nSE_SI, CDN, CP, nD, nSE, SI); and (CDN_CP_nD_nSE_nSI, CDN, CP, nD, nSE, nSI); and (CDN_nCP_D_SE_SI, CDN, nCP, D, SE, SI); and (CDN_nCP_D_nSE_SI, CDN, nCP, D, nSE, SI); and (CDN_nCP_D_nSE_nSI, CDN, nCP, D, nSE, nSI); and (CDN_nCP_nD_SE_SI, CDN, nCP, nD, SE, SI); and (CDN_nCP_D_SE_nSI, CDN, nCP, D, SE, nSI); and (CDN_nCP_nD_SE_nSI, CDN, nCP, nD, SE, nSI); and (CDN_nCP_nD_nSE_SI, CDN, nCP, nD, nSE, SI); and (CDN_nCP_nD_nSE_nSI, CDN, nCP, nD, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CP_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFD0BWP7T35P140LVT (SI, D, SE, CP, Q, QN); input SI, D, SE, CP; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFD1BWP7T35P140LVT (SI, D, SE, CP, Q, QN); input SI, D, SE, CP; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFD2BWP7T35P140LVT (SI, D, SE, CP, Q, QN); input SI, D, SE, CP; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFD4BWP7T35P140LVT (SI, D, SE, CP, Q, QN); input SI, D, SE, CP; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCND0BWP7T35P140LVT (SI, D, SE, CP, CN, Q, QN); input SI, D, SE, CP, CN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d; pullup (CDN); pullup (SDN); and (D1, CN_d, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); and (D1, CN, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SDFCHK, CN_D_SE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SDFCHK, CN_D_nSE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SDFCHK, CN_D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SDFCHK, CN_nD_SE_SI, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SDFCHK, nCN_D_SE_SI, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SDFCHK, nCN_nD_SE_SI, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SDFCHK, CN_D_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SDFCHK, CN_nD_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SDFCHK, nCN_D_SE_nSI, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SDFCHK, nCN_D_nSE_SI, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SDFCHK, nCN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SDFCHK, nCN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SDFCHK, nCN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SDFCHK, nCN_nD_nSE_nSI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nSE_SI_SDFCHK, CN_nSE_SI, 1'b1); tsmc_xbuf (CN_nSE_nSI_SDFCHK, CN_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SI_SDFCHK, CN_nD_SI, 1'b1); tsmc_xbuf (nCN_D_SI_SDFCHK, nCN_D_SI, 1'b1); tsmc_xbuf (nCN_nD_SI_SDFCHK, nCN_nD_SI, 1'b1); tsmc_xbuf (CN_D_nSI_SDFCHK, CN_D_nSI, 1'b1); tsmc_xbuf (CN_D_SE_SDFCHK, CN_D_SE, 1'b1); tsmc_xbuf (CN_nD_SE_SDFCHK, CN_nD_SE, 1'b1); tsmc_xbuf (nCN_D_SE_SDFCHK, nCN_D_SE, 1'b1); tsmc_xbuf (nCN_nD_SE_SDFCHK, nCN_nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); and (CN_D_SE_SI, CN, D, SE, SI); and (CN_D_nSE_SI, CN, D, nSE, SI); and (CN_D_nSE_nSI, CN, D, nSE, nSI); and (CN_nD_SE_SI, CN, nD, SE, SI); and (nCN_D_SE_SI, nCN, D, SE, SI); and (nCN_nD_SE_SI, nCN, nD, SE, SI); and (CN_D_SE_nSI, CN, D, SE, nSI); and (CN_nD_SE_nSI, CN, nD, SE, nSI); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); and (nCN_D_SE_nSI, nCN, D, SE, nSI); and (nCN_D_nSE_SI, nCN, D, nSE, SI); and (nCN_D_nSE_nSI, nCN, D, nSE, nSI); and (nCN_nD_SE_nSI, nCN, nD, SE, nSI); and (nCN_nD_nSE_SI, nCN, nD, nSE, SI); and (nCN_nD_nSE_nSI, nCN, nD, nSE, nSI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (CN_nSE_SI, CN, nSE, SI); and (CN_nSE_nSI, CN, nSE, nSI); and (CN_nD_SI, CN, nD, SI); and (nCN_D_SI, nCN, D, SI); and (nCN_nD_SI, nCN, nD, SI); and (CN_D_nSI, CN, D, nSI); and (CN_D_SE, CN, D, SE); and (CN_nD_SE, CN, nD, SE); and (nCN_D_SE, nCN, D, SE); and (nCN_nD_SE, nCN, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D && CN)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D && CN)))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCND1BWP7T35P140LVT (SI, D, SE, CP, CN, Q, QN); input SI, D, SE, CP, CN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d; pullup (CDN); pullup (SDN); and (D1, CN_d, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); and (D1, CN, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SDFCHK, CN_D_SE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SDFCHK, CN_D_nSE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SDFCHK, CN_D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SDFCHK, CN_nD_SE_SI, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SDFCHK, nCN_D_SE_SI, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SDFCHK, nCN_nD_SE_SI, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SDFCHK, CN_D_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SDFCHK, CN_nD_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SDFCHK, nCN_D_SE_nSI, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SDFCHK, nCN_D_nSE_SI, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SDFCHK, nCN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SDFCHK, nCN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SDFCHK, nCN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SDFCHK, nCN_nD_nSE_nSI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nSE_SI_SDFCHK, CN_nSE_SI, 1'b1); tsmc_xbuf (CN_nSE_nSI_SDFCHK, CN_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SI_SDFCHK, CN_nD_SI, 1'b1); tsmc_xbuf (nCN_D_SI_SDFCHK, nCN_D_SI, 1'b1); tsmc_xbuf (nCN_nD_SI_SDFCHK, nCN_nD_SI, 1'b1); tsmc_xbuf (CN_D_nSI_SDFCHK, CN_D_nSI, 1'b1); tsmc_xbuf (CN_D_SE_SDFCHK, CN_D_SE, 1'b1); tsmc_xbuf (CN_nD_SE_SDFCHK, CN_nD_SE, 1'b1); tsmc_xbuf (nCN_D_SE_SDFCHK, nCN_D_SE, 1'b1); tsmc_xbuf (nCN_nD_SE_SDFCHK, nCN_nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); and (CN_D_SE_SI, CN, D, SE, SI); and (CN_D_nSE_SI, CN, D, nSE, SI); and (CN_D_nSE_nSI, CN, D, nSE, nSI); and (CN_nD_SE_SI, CN, nD, SE, SI); and (nCN_D_SE_SI, nCN, D, SE, SI); and (nCN_nD_SE_SI, nCN, nD, SE, SI); and (CN_D_SE_nSI, CN, D, SE, nSI); and (CN_nD_SE_nSI, CN, nD, SE, nSI); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); and (nCN_D_SE_nSI, nCN, D, SE, nSI); and (nCN_D_nSE_SI, nCN, D, nSE, SI); and (nCN_D_nSE_nSI, nCN, D, nSE, nSI); and (nCN_nD_SE_nSI, nCN, nD, SE, nSI); and (nCN_nD_nSE_SI, nCN, nD, nSE, SI); and (nCN_nD_nSE_nSI, nCN, nD, nSE, nSI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (CN_nSE_SI, CN, nSE, SI); and (CN_nSE_nSI, CN, nSE, nSI); and (CN_nD_SI, CN, nD, SI); and (nCN_D_SI, nCN, D, SI); and (nCN_nD_SI, nCN, nD, SI); and (CN_D_nSI, CN, D, nSI); and (CN_D_SE, CN, D, SE); and (CN_nD_SE, CN, nD, SE); and (nCN_D_SE, nCN, D, SE); and (nCN_nD_SE, nCN, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D && CN)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D && CN)))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCND2BWP7T35P140LVT (SI, D, SE, CP, CN, Q, QN); input SI, D, SE, CP, CN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d; pullup (CDN); pullup (SDN); and (D1, CN_d, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); and (D1, CN, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SDFCHK, CN_D_SE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SDFCHK, CN_D_nSE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SDFCHK, CN_D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SDFCHK, CN_nD_SE_SI, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SDFCHK, nCN_D_SE_SI, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SDFCHK, nCN_nD_SE_SI, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SDFCHK, CN_D_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SDFCHK, CN_nD_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SDFCHK, nCN_D_SE_nSI, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SDFCHK, nCN_D_nSE_SI, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SDFCHK, nCN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SDFCHK, nCN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SDFCHK, nCN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SDFCHK, nCN_nD_nSE_nSI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nSE_SI_SDFCHK, CN_nSE_SI, 1'b1); tsmc_xbuf (CN_nSE_nSI_SDFCHK, CN_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SI_SDFCHK, CN_nD_SI, 1'b1); tsmc_xbuf (nCN_D_SI_SDFCHK, nCN_D_SI, 1'b1); tsmc_xbuf (nCN_nD_SI_SDFCHK, nCN_nD_SI, 1'b1); tsmc_xbuf (CN_D_nSI_SDFCHK, CN_D_nSI, 1'b1); tsmc_xbuf (CN_D_SE_SDFCHK, CN_D_SE, 1'b1); tsmc_xbuf (CN_nD_SE_SDFCHK, CN_nD_SE, 1'b1); tsmc_xbuf (nCN_D_SE_SDFCHK, nCN_D_SE, 1'b1); tsmc_xbuf (nCN_nD_SE_SDFCHK, nCN_nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); and (CN_D_SE_SI, CN, D, SE, SI); and (CN_D_nSE_SI, CN, D, nSE, SI); and (CN_D_nSE_nSI, CN, D, nSE, nSI); and (CN_nD_SE_SI, CN, nD, SE, SI); and (nCN_D_SE_SI, nCN, D, SE, SI); and (nCN_nD_SE_SI, nCN, nD, SE, SI); and (CN_D_SE_nSI, CN, D, SE, nSI); and (CN_nD_SE_nSI, CN, nD, SE, nSI); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); and (nCN_D_SE_nSI, nCN, D, SE, nSI); and (nCN_D_nSE_SI, nCN, D, nSE, SI); and (nCN_D_nSE_nSI, nCN, D, nSE, nSI); and (nCN_nD_SE_nSI, nCN, nD, SE, nSI); and (nCN_nD_nSE_SI, nCN, nD, nSE, SI); and (nCN_nD_nSE_nSI, nCN, nD, nSE, nSI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (CN_nSE_SI, CN, nSE, SI); and (CN_nSE_nSI, CN, nSE, nSI); and (CN_nD_SI, CN, nD, SI); and (nCN_D_SI, nCN, D, SI); and (nCN_nD_SI, nCN, nD, SI); and (CN_D_nSI, CN, D, nSI); and (CN_D_SE, CN, D, SE); and (CN_nD_SE, CN, nD, SE); and (nCN_D_SE, nCN, D, SE); and (nCN_nD_SE, nCN, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D && CN)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D && CN)))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCND4BWP7T35P140LVT (SI, D, SE, CP, CN, Q, QN); input SI, D, SE, CP, CN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d; pullup (CDN); pullup (SDN); and (D1, CN_d, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); and (D1, CN, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SDFCHK, CN_D_SE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SDFCHK, CN_D_nSE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SDFCHK, CN_D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SDFCHK, CN_nD_SE_SI, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SDFCHK, nCN_D_SE_SI, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SDFCHK, nCN_nD_SE_SI, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SDFCHK, CN_D_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SDFCHK, CN_nD_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SDFCHK, nCN_D_SE_nSI, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SDFCHK, nCN_D_nSE_SI, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SDFCHK, nCN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SDFCHK, nCN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SDFCHK, nCN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SDFCHK, nCN_nD_nSE_nSI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nSE_SI_SDFCHK, CN_nSE_SI, 1'b1); tsmc_xbuf (CN_nSE_nSI_SDFCHK, CN_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SI_SDFCHK, CN_nD_SI, 1'b1); tsmc_xbuf (nCN_D_SI_SDFCHK, nCN_D_SI, 1'b1); tsmc_xbuf (nCN_nD_SI_SDFCHK, nCN_nD_SI, 1'b1); tsmc_xbuf (CN_D_nSI_SDFCHK, CN_D_nSI, 1'b1); tsmc_xbuf (CN_D_SE_SDFCHK, CN_D_SE, 1'b1); tsmc_xbuf (CN_nD_SE_SDFCHK, CN_nD_SE, 1'b1); tsmc_xbuf (nCN_D_SE_SDFCHK, nCN_D_SE, 1'b1); tsmc_xbuf (nCN_nD_SE_SDFCHK, nCN_nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); and (CN_D_SE_SI, CN, D, SE, SI); and (CN_D_nSE_SI, CN, D, nSE, SI); and (CN_D_nSE_nSI, CN, D, nSE, nSI); and (CN_nD_SE_SI, CN, nD, SE, SI); and (nCN_D_SE_SI, nCN, D, SE, SI); and (nCN_nD_SE_SI, nCN, nD, SE, SI); and (CN_D_SE_nSI, CN, D, SE, nSI); and (CN_nD_SE_nSI, CN, nD, SE, nSI); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); and (nCN_D_SE_nSI, nCN, D, SE, nSI); and (nCN_D_nSE_SI, nCN, D, nSE, SI); and (nCN_D_nSE_nSI, nCN, D, nSE, nSI); and (nCN_nD_SE_nSI, nCN, nD, SE, nSI); and (nCN_nD_nSE_SI, nCN, nD, nSE, SI); and (nCN_nD_nSE_nSI, nCN, nD, nSE, nSI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (CN_nSE_SI, CN, nSE, SI); and (CN_nSE_nSI, CN, nSE, nSI); and (CN_nD_SI, CN, nD, SI); and (nCN_D_SI, nCN, D, SI); and (nCN_nD_SI, nCN, nD, SI); and (CN_D_nSI, CN, D, nSI); and (CN_D_SE, CN, D, SE); and (CN_nD_SE, CN, nD, SE); and (nCN_D_SE, nCN, D, SE); and (nCN_nD_SE, nCN, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D && CN)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D && CN)))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCNQD0BWP7T35P140LVT (SI, D, SE, CP, CN, Q); input SI, D, SE, CP, CN; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d; pullup (CDN); pullup (SDN); and (D1, CN_d, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); and (D1, CN, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SDFCHK, CN_D_SE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SDFCHK, CN_D_nSE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SDFCHK, CN_D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SDFCHK, CN_nD_SE_SI, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SDFCHK, nCN_D_SE_SI, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SDFCHK, nCN_nD_SE_SI, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SDFCHK, CN_D_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SDFCHK, CN_nD_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SDFCHK, nCN_D_SE_nSI, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SDFCHK, nCN_D_nSE_SI, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SDFCHK, nCN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SDFCHK, nCN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SDFCHK, nCN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SDFCHK, nCN_nD_nSE_nSI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nSE_SI_SDFCHK, CN_nSE_SI, 1'b1); tsmc_xbuf (CN_nSE_nSI_SDFCHK, CN_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SI_SDFCHK, CN_nD_SI, 1'b1); tsmc_xbuf (nCN_D_SI_SDFCHK, nCN_D_SI, 1'b1); tsmc_xbuf (nCN_nD_SI_SDFCHK, nCN_nD_SI, 1'b1); tsmc_xbuf (CN_D_nSI_SDFCHK, CN_D_nSI, 1'b1); tsmc_xbuf (CN_D_SE_SDFCHK, CN_D_SE, 1'b1); tsmc_xbuf (CN_nD_SE_SDFCHK, CN_nD_SE, 1'b1); tsmc_xbuf (nCN_D_SE_SDFCHK, nCN_D_SE, 1'b1); tsmc_xbuf (nCN_nD_SE_SDFCHK, nCN_nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); and (CN_D_SE_SI, CN, D, SE, SI); and (CN_D_nSE_SI, CN, D, nSE, SI); and (CN_D_nSE_nSI, CN, D, nSE, nSI); and (CN_nD_SE_SI, CN, nD, SE, SI); and (nCN_D_SE_SI, nCN, D, SE, SI); and (nCN_nD_SE_SI, nCN, nD, SE, SI); and (CN_D_SE_nSI, CN, D, SE, nSI); and (CN_nD_SE_nSI, CN, nD, SE, nSI); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); and (nCN_D_SE_nSI, nCN, D, SE, nSI); and (nCN_D_nSE_SI, nCN, D, nSE, SI); and (nCN_D_nSE_nSI, nCN, D, nSE, nSI); and (nCN_nD_SE_nSI, nCN, nD, SE, nSI); and (nCN_nD_nSE_SI, nCN, nD, nSE, SI); and (nCN_nD_nSE_nSI, nCN, nD, nSE, nSI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (CN_nSE_SI, CN, nSE, SI); and (CN_nSE_nSI, CN, nSE, nSI); and (CN_nD_SI, CN, nD, SI); and (nCN_D_SI, nCN, D, SI); and (nCN_nD_SI, nCN, nD, SI); and (CN_D_nSI, CN, D, nSI); and (CN_D_SE, CN, D, SE); and (CN_nD_SE, CN, nD, SE); and (nCN_D_SE, nCN, D, SE); and (nCN_nD_SE, nCN, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D && CN)))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCNQD1BWP7T35P140LVT (SI, D, SE, CP, CN, Q); input SI, D, SE, CP, CN; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d; pullup (CDN); pullup (SDN); and (D1, CN_d, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); and (D1, CN, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SDFCHK, CN_D_SE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SDFCHK, CN_D_nSE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SDFCHK, CN_D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SDFCHK, CN_nD_SE_SI, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SDFCHK, nCN_D_SE_SI, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SDFCHK, nCN_nD_SE_SI, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SDFCHK, CN_D_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SDFCHK, CN_nD_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SDFCHK, nCN_D_SE_nSI, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SDFCHK, nCN_D_nSE_SI, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SDFCHK, nCN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SDFCHK, nCN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SDFCHK, nCN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SDFCHK, nCN_nD_nSE_nSI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nSE_SI_SDFCHK, CN_nSE_SI, 1'b1); tsmc_xbuf (CN_nSE_nSI_SDFCHK, CN_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SI_SDFCHK, CN_nD_SI, 1'b1); tsmc_xbuf (nCN_D_SI_SDFCHK, nCN_D_SI, 1'b1); tsmc_xbuf (nCN_nD_SI_SDFCHK, nCN_nD_SI, 1'b1); tsmc_xbuf (CN_D_nSI_SDFCHK, CN_D_nSI, 1'b1); tsmc_xbuf (CN_D_SE_SDFCHK, CN_D_SE, 1'b1); tsmc_xbuf (CN_nD_SE_SDFCHK, CN_nD_SE, 1'b1); tsmc_xbuf (nCN_D_SE_SDFCHK, nCN_D_SE, 1'b1); tsmc_xbuf (nCN_nD_SE_SDFCHK, nCN_nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); and (CN_D_SE_SI, CN, D, SE, SI); and (CN_D_nSE_SI, CN, D, nSE, SI); and (CN_D_nSE_nSI, CN, D, nSE, nSI); and (CN_nD_SE_SI, CN, nD, SE, SI); and (nCN_D_SE_SI, nCN, D, SE, SI); and (nCN_nD_SE_SI, nCN, nD, SE, SI); and (CN_D_SE_nSI, CN, D, SE, nSI); and (CN_nD_SE_nSI, CN, nD, SE, nSI); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); and (nCN_D_SE_nSI, nCN, D, SE, nSI); and (nCN_D_nSE_SI, nCN, D, nSE, SI); and (nCN_D_nSE_nSI, nCN, D, nSE, nSI); and (nCN_nD_SE_nSI, nCN, nD, SE, nSI); and (nCN_nD_nSE_SI, nCN, nD, nSE, SI); and (nCN_nD_nSE_nSI, nCN, nD, nSE, nSI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (CN_nSE_SI, CN, nSE, SI); and (CN_nSE_nSI, CN, nSE, nSI); and (CN_nD_SI, CN, nD, SI); and (nCN_D_SI, nCN, D, SI); and (nCN_nD_SI, nCN, nD, SI); and (CN_D_nSI, CN, D, nSI); and (CN_D_SE, CN, D, SE); and (CN_nD_SE, CN, nD, SE); and (nCN_D_SE, nCN, D, SE); and (nCN_nD_SE, nCN, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D && CN)))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCNQD2BWP7T35P140LVT (SI, D, SE, CP, CN, Q); input SI, D, SE, CP, CN; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d; pullup (CDN); pullup (SDN); and (D1, CN_d, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); and (D1, CN, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SDFCHK, CN_D_SE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SDFCHK, CN_D_nSE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SDFCHK, CN_D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SDFCHK, CN_nD_SE_SI, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SDFCHK, nCN_D_SE_SI, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SDFCHK, nCN_nD_SE_SI, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SDFCHK, CN_D_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SDFCHK, CN_nD_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SDFCHK, nCN_D_SE_nSI, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SDFCHK, nCN_D_nSE_SI, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SDFCHK, nCN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SDFCHK, nCN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SDFCHK, nCN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SDFCHK, nCN_nD_nSE_nSI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nSE_SI_SDFCHK, CN_nSE_SI, 1'b1); tsmc_xbuf (CN_nSE_nSI_SDFCHK, CN_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SI_SDFCHK, CN_nD_SI, 1'b1); tsmc_xbuf (nCN_D_SI_SDFCHK, nCN_D_SI, 1'b1); tsmc_xbuf (nCN_nD_SI_SDFCHK, nCN_nD_SI, 1'b1); tsmc_xbuf (CN_D_nSI_SDFCHK, CN_D_nSI, 1'b1); tsmc_xbuf (CN_D_SE_SDFCHK, CN_D_SE, 1'b1); tsmc_xbuf (CN_nD_SE_SDFCHK, CN_nD_SE, 1'b1); tsmc_xbuf (nCN_D_SE_SDFCHK, nCN_D_SE, 1'b1); tsmc_xbuf (nCN_nD_SE_SDFCHK, nCN_nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); and (CN_D_SE_SI, CN, D, SE, SI); and (CN_D_nSE_SI, CN, D, nSE, SI); and (CN_D_nSE_nSI, CN, D, nSE, nSI); and (CN_nD_SE_SI, CN, nD, SE, SI); and (nCN_D_SE_SI, nCN, D, SE, SI); and (nCN_nD_SE_SI, nCN, nD, SE, SI); and (CN_D_SE_nSI, CN, D, SE, nSI); and (CN_nD_SE_nSI, CN, nD, SE, nSI); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); and (nCN_D_SE_nSI, nCN, D, SE, nSI); and (nCN_D_nSE_SI, nCN, D, nSE, SI); and (nCN_D_nSE_nSI, nCN, D, nSE, nSI); and (nCN_nD_SE_nSI, nCN, nD, SE, nSI); and (nCN_nD_nSE_SI, nCN, nD, nSE, SI); and (nCN_nD_nSE_nSI, nCN, nD, nSE, nSI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (CN_nSE_SI, CN, nSE, SI); and (CN_nSE_nSI, CN, nSE, nSI); and (CN_nD_SI, CN, nD, SI); and (nCN_D_SI, nCN, D, SI); and (nCN_nD_SI, nCN, nD, SI); and (CN_D_nSI, CN, D, nSI); and (CN_D_SE, CN, D, SE); and (CN_nD_SE, CN, nD, SE); and (nCN_D_SE, nCN, D, SE); and (nCN_nD_SE, nCN, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D && CN)))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCNQD4BWP7T35P140LVT (SI, D, SE, CP, CN, Q); input SI, D, SE, CP, CN; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d; pullup (CDN); pullup (SDN); and (D1, CN_d, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); and (D1, CN, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SDFCHK, CN_D_SE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SDFCHK, CN_D_nSE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SDFCHK, CN_D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SDFCHK, CN_nD_SE_SI, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SDFCHK, nCN_D_SE_SI, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SDFCHK, nCN_nD_SE_SI, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SDFCHK, CN_D_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SDFCHK, CN_nD_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SDFCHK, nCN_D_SE_nSI, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SDFCHK, nCN_D_nSE_SI, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SDFCHK, nCN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SDFCHK, nCN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SDFCHK, nCN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SDFCHK, nCN_nD_nSE_nSI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nSE_SI_SDFCHK, CN_nSE_SI, 1'b1); tsmc_xbuf (CN_nSE_nSI_SDFCHK, CN_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SI_SDFCHK, CN_nD_SI, 1'b1); tsmc_xbuf (nCN_D_SI_SDFCHK, nCN_D_SI, 1'b1); tsmc_xbuf (nCN_nD_SI_SDFCHK, nCN_nD_SI, 1'b1); tsmc_xbuf (CN_D_nSI_SDFCHK, CN_D_nSI, 1'b1); tsmc_xbuf (CN_D_SE_SDFCHK, CN_D_SE, 1'b1); tsmc_xbuf (CN_nD_SE_SDFCHK, CN_nD_SE, 1'b1); tsmc_xbuf (nCN_D_SE_SDFCHK, nCN_D_SE, 1'b1); tsmc_xbuf (nCN_nD_SE_SDFCHK, nCN_nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); and (CN_D_SE_SI, CN, D, SE, SI); and (CN_D_nSE_SI, CN, D, nSE, SI); and (CN_D_nSE_nSI, CN, D, nSE, nSI); and (CN_nD_SE_SI, CN, nD, SE, SI); and (nCN_D_SE_SI, nCN, D, SE, SI); and (nCN_nD_SE_SI, nCN, nD, SE, SI); and (CN_D_SE_nSI, CN, D, SE, nSI); and (CN_nD_SE_nSI, CN, nD, SE, nSI); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); and (nCN_D_SE_nSI, nCN, D, SE, nSI); and (nCN_D_nSE_SI, nCN, D, nSE, SI); and (nCN_D_nSE_nSI, nCN, D, nSE, nSI); and (nCN_nD_SE_nSI, nCN, nD, SE, nSI); and (nCN_nD_nSE_SI, nCN, nD, nSE, SI); and (nCN_nD_nSE_nSI, nCN, nD, nSE, nSI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (CN_nSE_SI, CN, nSE, SI); and (CN_nSE_nSI, CN, nSE, nSI); and (CN_nD_SI, CN, nD, SI); and (nCN_D_SI, nCN, D, SI); and (nCN_nD_SI, nCN, nD, SI); and (CN_D_nSI, CN, D, nSI); and (CN_D_SE, CN, D, SE); and (CN_nD_SE, CN, nD, SE); and (nCN_D_SE, nCN, D, SE); and (nCN_nD_SE, nCN, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D && CN)))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCNQOPTBD1BWP7T35P140LVT (SI, D, SE, CP, CN, Q); input SI, D, SE, CP, CN; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d; pullup (CDN); pullup (SDN); and (D1, CN_d, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); and (D1, CN, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SDFCHK, CN_D_SE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SDFCHK, CN_D_nSE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SDFCHK, CN_D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SDFCHK, CN_nD_SE_SI, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SDFCHK, nCN_D_SE_SI, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SDFCHK, nCN_nD_SE_SI, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SDFCHK, CN_D_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SDFCHK, CN_nD_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SDFCHK, nCN_D_SE_nSI, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SDFCHK, nCN_D_nSE_SI, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SDFCHK, nCN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SDFCHK, nCN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SDFCHK, nCN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SDFCHK, nCN_nD_nSE_nSI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nSE_SI_SDFCHK, CN_nSE_SI, 1'b1); tsmc_xbuf (CN_nSE_nSI_SDFCHK, CN_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SI_SDFCHK, CN_nD_SI, 1'b1); tsmc_xbuf (nCN_D_SI_SDFCHK, nCN_D_SI, 1'b1); tsmc_xbuf (nCN_nD_SI_SDFCHK, nCN_nD_SI, 1'b1); tsmc_xbuf (CN_D_nSI_SDFCHK, CN_D_nSI, 1'b1); tsmc_xbuf (CN_D_SE_SDFCHK, CN_D_SE, 1'b1); tsmc_xbuf (CN_nD_SE_SDFCHK, CN_nD_SE, 1'b1); tsmc_xbuf (nCN_D_SE_SDFCHK, nCN_D_SE, 1'b1); tsmc_xbuf (nCN_nD_SE_SDFCHK, nCN_nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); and (CN_D_SE_SI, CN, D, SE, SI); and (CN_D_nSE_SI, CN, D, nSE, SI); and (CN_D_nSE_nSI, CN, D, nSE, nSI); and (CN_nD_SE_SI, CN, nD, SE, SI); and (nCN_D_SE_SI, nCN, D, SE, SI); and (nCN_nD_SE_SI, nCN, nD, SE, SI); and (CN_D_SE_nSI, CN, D, SE, nSI); and (CN_nD_SE_nSI, CN, nD, SE, nSI); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); and (nCN_D_SE_nSI, nCN, D, SE, nSI); and (nCN_D_nSE_SI, nCN, D, nSE, SI); and (nCN_D_nSE_nSI, nCN, D, nSE, nSI); and (nCN_nD_SE_nSI, nCN, nD, SE, nSI); and (nCN_nD_nSE_SI, nCN, nD, nSE, SI); and (nCN_nD_nSE_nSI, nCN, nD, nSE, nSI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (CN_nSE_SI, CN, nSE, SI); and (CN_nSE_nSI, CN, nSE, nSI); and (CN_nD_SI, CN, nD, SI); and (nCN_D_SI, nCN, D, SI); and (nCN_nD_SI, nCN, nD, SI); and (CN_D_nSI, CN, D, nSI); and (CN_D_SE, CN, D, SE); and (CN_nD_SE, CN, nD, SE); and (nCN_D_SE, nCN, D, SE); and (nCN_nD_SE, nCN, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D && CN)))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCNQOPTBD2BWP7T35P140LVT (SI, D, SE, CP, CN, Q); input SI, D, SE, CP, CN; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d; pullup (CDN); pullup (SDN); and (D1, CN_d, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); and (D1, CN, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SDFCHK, CN_D_SE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SDFCHK, CN_D_nSE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SDFCHK, CN_D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SDFCHK, CN_nD_SE_SI, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SDFCHK, nCN_D_SE_SI, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SDFCHK, nCN_nD_SE_SI, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SDFCHK, CN_D_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SDFCHK, CN_nD_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SDFCHK, nCN_D_SE_nSI, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SDFCHK, nCN_D_nSE_SI, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SDFCHK, nCN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SDFCHK, nCN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SDFCHK, nCN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SDFCHK, nCN_nD_nSE_nSI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nSE_SI_SDFCHK, CN_nSE_SI, 1'b1); tsmc_xbuf (CN_nSE_nSI_SDFCHK, CN_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SI_SDFCHK, CN_nD_SI, 1'b1); tsmc_xbuf (nCN_D_SI_SDFCHK, nCN_D_SI, 1'b1); tsmc_xbuf (nCN_nD_SI_SDFCHK, nCN_nD_SI, 1'b1); tsmc_xbuf (CN_D_nSI_SDFCHK, CN_D_nSI, 1'b1); tsmc_xbuf (CN_D_SE_SDFCHK, CN_D_SE, 1'b1); tsmc_xbuf (CN_nD_SE_SDFCHK, CN_nD_SE, 1'b1); tsmc_xbuf (nCN_D_SE_SDFCHK, nCN_D_SE, 1'b1); tsmc_xbuf (nCN_nD_SE_SDFCHK, nCN_nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); and (CN_D_SE_SI, CN, D, SE, SI); and (CN_D_nSE_SI, CN, D, nSE, SI); and (CN_D_nSE_nSI, CN, D, nSE, nSI); and (CN_nD_SE_SI, CN, nD, SE, SI); and (nCN_D_SE_SI, nCN, D, SE, SI); and (nCN_nD_SE_SI, nCN, nD, SE, SI); and (CN_D_SE_nSI, CN, D, SE, nSI); and (CN_nD_SE_nSI, CN, nD, SE, nSI); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); and (nCN_D_SE_nSI, nCN, D, SE, nSI); and (nCN_D_nSE_SI, nCN, D, nSE, SI); and (nCN_D_nSE_nSI, nCN, D, nSE, nSI); and (nCN_nD_SE_nSI, nCN, nD, SE, nSI); and (nCN_nD_nSE_SI, nCN, nD, nSE, SI); and (nCN_nD_nSE_nSI, nCN, nD, nSE, nSI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (CN_nSE_SI, CN, nSE, SI); and (CN_nSE_nSI, CN, nSE, nSI); and (CN_nD_SI, CN, nD, SI); and (nCN_D_SI, nCN, D, SI); and (nCN_nD_SI, nCN, nD, SI); and (CN_D_nSI, CN, D, nSI); and (CN_D_SE, CN, D, SE); and (CN_nD_SE, CN, nD, SE); and (nCN_D_SE, nCN, D, SE); and (nCN_nD_SE, nCN, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D && CN)))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCNQOPTBD4BWP7T35P140LVT (SI, D, SE, CP, CN, Q); input SI, D, SE, CP, CN; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d; pullup (CDN); pullup (SDN); and (D1, CN_d, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); and (D1, CN, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SDFCHK, CN_D_SE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SDFCHK, CN_D_nSE_SI, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SDFCHK, CN_D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SDFCHK, CN_nD_SE_SI, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SDFCHK, nCN_D_SE_SI, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SDFCHK, nCN_nD_SE_SI, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SDFCHK, CN_D_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SDFCHK, CN_nD_SE_nSI, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SDFCHK, nCN_D_SE_nSI, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SDFCHK, nCN_D_nSE_SI, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SDFCHK, nCN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SDFCHK, nCN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SDFCHK, nCN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SDFCHK, nCN_nD_nSE_nSI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (CN_nSE_SI_SDFCHK, CN_nSE_SI, 1'b1); tsmc_xbuf (CN_nSE_nSI_SDFCHK, CN_nSE_nSI, 1'b1); tsmc_xbuf (CN_nD_SI_SDFCHK, CN_nD_SI, 1'b1); tsmc_xbuf (nCN_D_SI_SDFCHK, nCN_D_SI, 1'b1); tsmc_xbuf (nCN_nD_SI_SDFCHK, nCN_nD_SI, 1'b1); tsmc_xbuf (CN_D_nSI_SDFCHK, CN_D_nSI, 1'b1); tsmc_xbuf (CN_D_SE_SDFCHK, CN_D_SE, 1'b1); tsmc_xbuf (CN_nD_SE_SDFCHK, CN_nD_SE, 1'b1); tsmc_xbuf (nCN_D_SE_SDFCHK, nCN_D_SE, 1'b1); tsmc_xbuf (nCN_nD_SE_SDFCHK, nCN_nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); and (CN_D_SE_SI, CN, D, SE, SI); and (CN_D_nSE_SI, CN, D, nSE, SI); and (CN_D_nSE_nSI, CN, D, nSE, nSI); and (CN_nD_SE_SI, CN, nD, SE, SI); and (nCN_D_SE_SI, nCN, D, SE, SI); and (nCN_nD_SE_SI, nCN, nD, SE, SI); and (CN_D_SE_nSI, CN, D, SE, nSI); and (CN_nD_SE_nSI, CN, nD, SE, nSI); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); and (nCN_D_SE_nSI, nCN, D, SE, nSI); and (nCN_D_nSE_SI, nCN, D, nSE, SI); and (nCN_D_nSE_nSI, nCN, D, nSE, nSI); and (nCN_nD_SE_nSI, nCN, nD, SE, nSI); and (nCN_nD_nSE_SI, nCN, nD, nSE, SI); and (nCN_nD_nSE_nSI, nCN, nD, nSE, nSI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (CN_nSE_SI, CN, nSE, SI); and (CN_nSE_nSI, CN, nSE, nSI); and (CN_nD_SI, CN, nD, SI); and (nCN_D_SI, nCN, D, SI); and (nCN_nD_SI, nCN, nD, SI); and (CN_D_nSI, CN, D, nSI); and (CN_D_SE, CN, D, SE); and (CN_nD_SE, CN, nD, SE); and (nCN_D_SE, nCN, D, SE); and (nCN_nD_SE, nCN, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D && CN)))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCSND0BWP7T35P140LVT (SI, D, SE, CP, CN, SN, Q, QN); input SI, D, SE, CP, CN, SN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (DS, S, D_d); and (D1, DS, CN_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (DS, S, D); and (D1, DS, CN); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SN_SDFCHK, CN_D_SE_SI_SN, 1'b1); tsmc_xbuf (CN_D_SE_SI_nSN_SDFCHK, CN_D_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SN_SDFCHK, CN_D_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_D_nSE_SI_nSN_SDFCHK, CN_D_nSE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SN_SDFCHK, CN_D_nSE_nSI_SN, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_nSN_SDFCHK, CN_D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SN_SDFCHK, CN_nD_SE_SI_SN, 1'b1); tsmc_xbuf (CN_nD_SE_SI_nSN_SDFCHK, CN_nD_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_nSN_SDFCHK, CN_nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_nSN_SDFCHK, CN_nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SN_SDFCHK, nCN_D_SE_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_SI_nSN_SDFCHK, nCN_D_SE_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SN_SDFCHK, nCN_nD_SE_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_nSN_SDFCHK, nCN_nD_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SN_SDFCHK, CN_D_SE_nSI_SN, 1'b1); tsmc_xbuf (CN_D_SE_nSI_nSN_SDFCHK, CN_D_SE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SN_SDFCHK, CN_nD_SE_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_nSN_SDFCHK, CN_nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SN_SDFCHK, CN_nD_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SN_SDFCHK, CN_nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SN_SDFCHK, nCN_D_SE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_nSN_SDFCHK, nCN_D_SE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SN_SDFCHK, nCN_D_nSE_SI_SN, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_nSN_SDFCHK, nCN_D_nSE_SI_nSN, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SN_SDFCHK, nCN_D_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_nSN_SDFCHK, nCN_D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SN_SDFCHK, nCN_nD_SE_nSI_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_nSN_SDFCHK, nCN_nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SN_SDFCHK, nCN_nD_nSE_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_nSN_SDFCHK, nCN_nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SN_SDFCHK, nCN_nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_nSN_SDFCHK, nCN_nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (D_nSE_SI_SN_SDFCHK, D_nSE_SI_SN, 1'b1); tsmc_xbuf (D_nSE_nSI_SN_SDFCHK, D_nSE_nSI_SN, 1'b1); tsmc_xbuf (D_nSE_SI_nSN_SDFCHK, D_nSE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_nSI_nSN_SDFCHK, D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_nSN_SDFCHK, nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_nSI_nSN_SDFCHK, nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nSE_SI_SN_SDFCHK, CN_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_nSE_nSI_SN_SDFCHK, CN_nSE_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_SI_SN_SDFCHK, CN_nD_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SI_SN_SDFCHK, nCN_D_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SI_nSN_SDFCHK, nCN_D_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SI_nSN_SDFCHK, nCN_nD_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SI_SN_SDFCHK, nCN_nD_SI_SN, 1'b1); tsmc_xbuf (CN_D_nSI_SN_SDFCHK, CN_D_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_nSI_nSN_SDFCHK, CN_nD_nSI_nSN, 1'b1); tsmc_xbuf (CN_D_nSI_nSN_SDFCHK, CN_D_nSI_nSN, 1'b1); tsmc_xbuf (CN_D_SE_SN_SDFCHK, CN_D_SE_SN, 1'b1); tsmc_xbuf (CN_D_SE_nSN_SDFCHK, CN_D_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_SN_SDFCHK, CN_nD_SE_SN, 1'b1); tsmc_xbuf (CN_nD_SE_nSN_SDFCHK, CN_nD_SE_nSN, 1'b1); tsmc_xbuf (nCN_D_SE_SN_SDFCHK, nCN_D_SE_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSN_SDFCHK, nCN_D_SE_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_SN_SDFCHK, nCN_nD_SE_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSN_SDFCHK, nCN_nD_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); not (nSN, SN); and (CN_D_SE_SI_SN, CN, D, SE, SI, SN); and (CN_D_SE_SI_nSN, CN, D, SE, SI, nSN); and (CN_D_nSE_SI_SN, CN, D, nSE, SI, SN); and (CN_D_nSE_SI_nSN, CN, D, nSE, SI, nSN); and (CN_D_nSE_nSI_SN, CN, D, nSE, nSI, SN); and (CN_D_nSE_nSI_nSN, CN, D, nSE, nSI, nSN); and (CN_nD_SE_SI_SN, CN, nD, SE, SI, SN); and (CN_nD_SE_SI_nSN, CN, nD, SE, SI, nSN); and (CN_nD_nSE_SI_nSN, CN, nD, nSE, SI, nSN); and (CN_nD_nSE_nSI_nSN, CN, nD, nSE, nSI, nSN); and (nCN_D_SE_SI_SN, nCN, D, SE, SI, SN); and (nCN_D_SE_SI_nSN, nCN, D, SE, SI, nSN); and (nCN_nD_SE_SI_SN, nCN, nD, SE, SI, SN); and (nCN_nD_SE_SI_nSN, nCN, nD, SE, SI, nSN); and (CN_D_SE_nSI_SN, CN, D, SE, nSI, SN); and (CN_D_SE_nSI_nSN, CN, D, SE, nSI, nSN); and (CN_nD_SE_nSI_SN, CN, nD, SE, nSI, SN); and (CN_nD_SE_nSI_nSN, CN, nD, SE, nSI, nSN); and (CN_nD_nSE_SI_SN, CN, nD, nSE, SI, SN); and (CN_nD_nSE_nSI_SN, CN, nD, nSE, nSI, SN); and (nCN_D_SE_nSI_SN, nCN, D, SE, nSI, SN); and (nCN_D_SE_nSI_nSN, nCN, D, SE, nSI, nSN); and (nCN_D_nSE_SI_SN, nCN, D, nSE, SI, SN); and (nCN_D_nSE_SI_nSN, nCN, D, nSE, SI, nSN); and (nCN_D_nSE_nSI_SN, nCN, D, nSE, nSI, SN); and (nCN_D_nSE_nSI_nSN, nCN, D, nSE, nSI, nSN); and (nCN_nD_SE_nSI_SN, nCN, nD, SE, nSI, SN); and (nCN_nD_SE_nSI_nSN, nCN, nD, SE, nSI, nSN); and (nCN_nD_nSE_SI_SN, nCN, nD, nSE, SI, SN); and (nCN_nD_nSE_SI_nSN, nCN, nD, nSE, SI, nSN); and (nCN_nD_nSE_nSI_SN, nCN, nD, nSE, nSI, SN); and (nCN_nD_nSE_nSI_nSN, nCN, nD, nSE, nSI, nSN); and (D_nSE_SI_SN, D, nSE, SI, SN); and (D_nSE_nSI_SN, D, nSE, nSI, SN); and (D_nSE_SI_nSN, D, nSE, SI, nSN); and (D_nSE_nSI_nSN, D, nSE, nSI, nSN); and (nD_nSE_SI_nSN, nD, nSE, SI, nSN); and (nD_nSE_nSI_nSN, nD, nSE, nSI, nSN); and (CN_nSE_SI_SN, CN, nSE, SI, SN); and (CN_nSE_nSI_SN, CN, nSE, nSI, SN); and (CN_nD_SI_SN, CN, nD, SI, SN); and (nCN_D_SI_SN, nCN, D, SI, SN); and (nCN_D_SI_nSN, nCN, D, SI, nSN); and (nCN_nD_SI_nSN, nCN, nD, SI, nSN); and (nCN_nD_SI_SN, nCN, nD, SI, SN); and (CN_D_nSI_SN, CN, D, nSI, SN); and (CN_nD_nSI_nSN, CN, nD, nSI, nSN); and (CN_D_nSI_nSN, CN, D, nSI, nSN); and (CN_D_SE_SN, CN, D, SE, SN); and (CN_D_SE_nSN, CN, D, SE, nSN); and (CN_nD_SE_SN, CN, nD, SE, SN); and (CN_nD_SE_nSN, CN, nD, SE, nSN); and (nCN_D_SE_SN, nCN, D, SE, SN); and (nCN_D_SE_nSN, nCN, D, SE, nSN); and (nCN_nD_SE_SN, nCN, nD, SE, SN); and (nCN_nD_SE_nSN, nCN, nD, SE, nSN); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d, SN_d); and (SN_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN, SN); and (SN_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && CN && D) || (!(SE) && CN && !(D) && !(SN))))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && CN && D) || (!(SE) && CN && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCSND1BWP7T35P140LVT (SI, D, SE, CP, CN, SN, Q, QN); input SI, D, SE, CP, CN, SN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (DS, S, D_d); and (D1, DS, CN_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (DS, S, D); and (D1, DS, CN); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SN_SDFCHK, CN_D_SE_SI_SN, 1'b1); tsmc_xbuf (CN_D_SE_SI_nSN_SDFCHK, CN_D_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SN_SDFCHK, CN_D_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_D_nSE_SI_nSN_SDFCHK, CN_D_nSE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SN_SDFCHK, CN_D_nSE_nSI_SN, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_nSN_SDFCHK, CN_D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SN_SDFCHK, CN_nD_SE_SI_SN, 1'b1); tsmc_xbuf (CN_nD_SE_SI_nSN_SDFCHK, CN_nD_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_nSN_SDFCHK, CN_nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_nSN_SDFCHK, CN_nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SN_SDFCHK, nCN_D_SE_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_SI_nSN_SDFCHK, nCN_D_SE_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SN_SDFCHK, nCN_nD_SE_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_nSN_SDFCHK, nCN_nD_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SN_SDFCHK, CN_D_SE_nSI_SN, 1'b1); tsmc_xbuf (CN_D_SE_nSI_nSN_SDFCHK, CN_D_SE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SN_SDFCHK, CN_nD_SE_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_nSN_SDFCHK, CN_nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SN_SDFCHK, CN_nD_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SN_SDFCHK, CN_nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SN_SDFCHK, nCN_D_SE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_nSN_SDFCHK, nCN_D_SE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SN_SDFCHK, nCN_D_nSE_SI_SN, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_nSN_SDFCHK, nCN_D_nSE_SI_nSN, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SN_SDFCHK, nCN_D_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_nSN_SDFCHK, nCN_D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SN_SDFCHK, nCN_nD_SE_nSI_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_nSN_SDFCHK, nCN_nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SN_SDFCHK, nCN_nD_nSE_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_nSN_SDFCHK, nCN_nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SN_SDFCHK, nCN_nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_nSN_SDFCHK, nCN_nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (D_nSE_SI_SN_SDFCHK, D_nSE_SI_SN, 1'b1); tsmc_xbuf (D_nSE_nSI_SN_SDFCHK, D_nSE_nSI_SN, 1'b1); tsmc_xbuf (D_nSE_SI_nSN_SDFCHK, D_nSE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_nSI_nSN_SDFCHK, D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_nSN_SDFCHK, nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_nSI_nSN_SDFCHK, nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nSE_SI_SN_SDFCHK, CN_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_nSE_nSI_SN_SDFCHK, CN_nSE_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_SI_SN_SDFCHK, CN_nD_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SI_SN_SDFCHK, nCN_D_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SI_nSN_SDFCHK, nCN_D_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SI_nSN_SDFCHK, nCN_nD_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SI_SN_SDFCHK, nCN_nD_SI_SN, 1'b1); tsmc_xbuf (CN_D_nSI_SN_SDFCHK, CN_D_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_nSI_nSN_SDFCHK, CN_nD_nSI_nSN, 1'b1); tsmc_xbuf (CN_D_nSI_nSN_SDFCHK, CN_D_nSI_nSN, 1'b1); tsmc_xbuf (CN_D_SE_SN_SDFCHK, CN_D_SE_SN, 1'b1); tsmc_xbuf (CN_D_SE_nSN_SDFCHK, CN_D_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_SN_SDFCHK, CN_nD_SE_SN, 1'b1); tsmc_xbuf (CN_nD_SE_nSN_SDFCHK, CN_nD_SE_nSN, 1'b1); tsmc_xbuf (nCN_D_SE_SN_SDFCHK, nCN_D_SE_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSN_SDFCHK, nCN_D_SE_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_SN_SDFCHK, nCN_nD_SE_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSN_SDFCHK, nCN_nD_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); not (nSN, SN); and (CN_D_SE_SI_SN, CN, D, SE, SI, SN); and (CN_D_SE_SI_nSN, CN, D, SE, SI, nSN); and (CN_D_nSE_SI_SN, CN, D, nSE, SI, SN); and (CN_D_nSE_SI_nSN, CN, D, nSE, SI, nSN); and (CN_D_nSE_nSI_SN, CN, D, nSE, nSI, SN); and (CN_D_nSE_nSI_nSN, CN, D, nSE, nSI, nSN); and (CN_nD_SE_SI_SN, CN, nD, SE, SI, SN); and (CN_nD_SE_SI_nSN, CN, nD, SE, SI, nSN); and (CN_nD_nSE_SI_nSN, CN, nD, nSE, SI, nSN); and (CN_nD_nSE_nSI_nSN, CN, nD, nSE, nSI, nSN); and (nCN_D_SE_SI_SN, nCN, D, SE, SI, SN); and (nCN_D_SE_SI_nSN, nCN, D, SE, SI, nSN); and (nCN_nD_SE_SI_SN, nCN, nD, SE, SI, SN); and (nCN_nD_SE_SI_nSN, nCN, nD, SE, SI, nSN); and (CN_D_SE_nSI_SN, CN, D, SE, nSI, SN); and (CN_D_SE_nSI_nSN, CN, D, SE, nSI, nSN); and (CN_nD_SE_nSI_SN, CN, nD, SE, nSI, SN); and (CN_nD_SE_nSI_nSN, CN, nD, SE, nSI, nSN); and (CN_nD_nSE_SI_SN, CN, nD, nSE, SI, SN); and (CN_nD_nSE_nSI_SN, CN, nD, nSE, nSI, SN); and (nCN_D_SE_nSI_SN, nCN, D, SE, nSI, SN); and (nCN_D_SE_nSI_nSN, nCN, D, SE, nSI, nSN); and (nCN_D_nSE_SI_SN, nCN, D, nSE, SI, SN); and (nCN_D_nSE_SI_nSN, nCN, D, nSE, SI, nSN); and (nCN_D_nSE_nSI_SN, nCN, D, nSE, nSI, SN); and (nCN_D_nSE_nSI_nSN, nCN, D, nSE, nSI, nSN); and (nCN_nD_SE_nSI_SN, nCN, nD, SE, nSI, SN); and (nCN_nD_SE_nSI_nSN, nCN, nD, SE, nSI, nSN); and (nCN_nD_nSE_SI_SN, nCN, nD, nSE, SI, SN); and (nCN_nD_nSE_SI_nSN, nCN, nD, nSE, SI, nSN); and (nCN_nD_nSE_nSI_SN, nCN, nD, nSE, nSI, SN); and (nCN_nD_nSE_nSI_nSN, nCN, nD, nSE, nSI, nSN); and (D_nSE_SI_SN, D, nSE, SI, SN); and (D_nSE_nSI_SN, D, nSE, nSI, SN); and (D_nSE_SI_nSN, D, nSE, SI, nSN); and (D_nSE_nSI_nSN, D, nSE, nSI, nSN); and (nD_nSE_SI_nSN, nD, nSE, SI, nSN); and (nD_nSE_nSI_nSN, nD, nSE, nSI, nSN); and (CN_nSE_SI_SN, CN, nSE, SI, SN); and (CN_nSE_nSI_SN, CN, nSE, nSI, SN); and (CN_nD_SI_SN, CN, nD, SI, SN); and (nCN_D_SI_SN, nCN, D, SI, SN); and (nCN_D_SI_nSN, nCN, D, SI, nSN); and (nCN_nD_SI_nSN, nCN, nD, SI, nSN); and (nCN_nD_SI_SN, nCN, nD, SI, SN); and (CN_D_nSI_SN, CN, D, nSI, SN); and (CN_nD_nSI_nSN, CN, nD, nSI, nSN); and (CN_D_nSI_nSN, CN, D, nSI, nSN); and (CN_D_SE_SN, CN, D, SE, SN); and (CN_D_SE_nSN, CN, D, SE, nSN); and (CN_nD_SE_SN, CN, nD, SE, SN); and (CN_nD_SE_nSN, CN, nD, SE, nSN); and (nCN_D_SE_SN, nCN, D, SE, SN); and (nCN_D_SE_nSN, nCN, D, SE, nSN); and (nCN_nD_SE_SN, nCN, nD, SE, SN); and (nCN_nD_SE_nSN, nCN, nD, SE, nSN); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d, SN_d); and (SN_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN, SN); and (SN_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && CN && D) || (!(SE) && CN && !(D) && !(SN))))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && CN && D) || (!(SE) && CN && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCSND2BWP7T35P140LVT (SI, D, SE, CP, CN, SN, Q, QN); input SI, D, SE, CP, CN, SN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (DS, S, D_d); and (D1, DS, CN_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (DS, S, D); and (D1, DS, CN); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SN_SDFCHK, CN_D_SE_SI_SN, 1'b1); tsmc_xbuf (CN_D_SE_SI_nSN_SDFCHK, CN_D_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SN_SDFCHK, CN_D_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_D_nSE_SI_nSN_SDFCHK, CN_D_nSE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SN_SDFCHK, CN_D_nSE_nSI_SN, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_nSN_SDFCHK, CN_D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SN_SDFCHK, CN_nD_SE_SI_SN, 1'b1); tsmc_xbuf (CN_nD_SE_SI_nSN_SDFCHK, CN_nD_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_nSN_SDFCHK, CN_nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_nSN_SDFCHK, CN_nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SN_SDFCHK, nCN_D_SE_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_SI_nSN_SDFCHK, nCN_D_SE_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SN_SDFCHK, nCN_nD_SE_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_nSN_SDFCHK, nCN_nD_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SN_SDFCHK, CN_D_SE_nSI_SN, 1'b1); tsmc_xbuf (CN_D_SE_nSI_nSN_SDFCHK, CN_D_SE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SN_SDFCHK, CN_nD_SE_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_nSN_SDFCHK, CN_nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SN_SDFCHK, CN_nD_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SN_SDFCHK, CN_nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SN_SDFCHK, nCN_D_SE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_nSN_SDFCHK, nCN_D_SE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SN_SDFCHK, nCN_D_nSE_SI_SN, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_nSN_SDFCHK, nCN_D_nSE_SI_nSN, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SN_SDFCHK, nCN_D_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_nSN_SDFCHK, nCN_D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SN_SDFCHK, nCN_nD_SE_nSI_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_nSN_SDFCHK, nCN_nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SN_SDFCHK, nCN_nD_nSE_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_nSN_SDFCHK, nCN_nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SN_SDFCHK, nCN_nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_nSN_SDFCHK, nCN_nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (D_nSE_SI_SN_SDFCHK, D_nSE_SI_SN, 1'b1); tsmc_xbuf (D_nSE_nSI_SN_SDFCHK, D_nSE_nSI_SN, 1'b1); tsmc_xbuf (D_nSE_SI_nSN_SDFCHK, D_nSE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_nSI_nSN_SDFCHK, D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_nSN_SDFCHK, nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_nSI_nSN_SDFCHK, nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nSE_SI_SN_SDFCHK, CN_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_nSE_nSI_SN_SDFCHK, CN_nSE_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_SI_SN_SDFCHK, CN_nD_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SI_SN_SDFCHK, nCN_D_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SI_nSN_SDFCHK, nCN_D_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SI_nSN_SDFCHK, nCN_nD_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SI_SN_SDFCHK, nCN_nD_SI_SN, 1'b1); tsmc_xbuf (CN_D_nSI_SN_SDFCHK, CN_D_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_nSI_nSN_SDFCHK, CN_nD_nSI_nSN, 1'b1); tsmc_xbuf (CN_D_nSI_nSN_SDFCHK, CN_D_nSI_nSN, 1'b1); tsmc_xbuf (CN_D_SE_SN_SDFCHK, CN_D_SE_SN, 1'b1); tsmc_xbuf (CN_D_SE_nSN_SDFCHK, CN_D_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_SN_SDFCHK, CN_nD_SE_SN, 1'b1); tsmc_xbuf (CN_nD_SE_nSN_SDFCHK, CN_nD_SE_nSN, 1'b1); tsmc_xbuf (nCN_D_SE_SN_SDFCHK, nCN_D_SE_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSN_SDFCHK, nCN_D_SE_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_SN_SDFCHK, nCN_nD_SE_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSN_SDFCHK, nCN_nD_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); not (nSN, SN); and (CN_D_SE_SI_SN, CN, D, SE, SI, SN); and (CN_D_SE_SI_nSN, CN, D, SE, SI, nSN); and (CN_D_nSE_SI_SN, CN, D, nSE, SI, SN); and (CN_D_nSE_SI_nSN, CN, D, nSE, SI, nSN); and (CN_D_nSE_nSI_SN, CN, D, nSE, nSI, SN); and (CN_D_nSE_nSI_nSN, CN, D, nSE, nSI, nSN); and (CN_nD_SE_SI_SN, CN, nD, SE, SI, SN); and (CN_nD_SE_SI_nSN, CN, nD, SE, SI, nSN); and (CN_nD_nSE_SI_nSN, CN, nD, nSE, SI, nSN); and (CN_nD_nSE_nSI_nSN, CN, nD, nSE, nSI, nSN); and (nCN_D_SE_SI_SN, nCN, D, SE, SI, SN); and (nCN_D_SE_SI_nSN, nCN, D, SE, SI, nSN); and (nCN_nD_SE_SI_SN, nCN, nD, SE, SI, SN); and (nCN_nD_SE_SI_nSN, nCN, nD, SE, SI, nSN); and (CN_D_SE_nSI_SN, CN, D, SE, nSI, SN); and (CN_D_SE_nSI_nSN, CN, D, SE, nSI, nSN); and (CN_nD_SE_nSI_SN, CN, nD, SE, nSI, SN); and (CN_nD_SE_nSI_nSN, CN, nD, SE, nSI, nSN); and (CN_nD_nSE_SI_SN, CN, nD, nSE, SI, SN); and (CN_nD_nSE_nSI_SN, CN, nD, nSE, nSI, SN); and (nCN_D_SE_nSI_SN, nCN, D, SE, nSI, SN); and (nCN_D_SE_nSI_nSN, nCN, D, SE, nSI, nSN); and (nCN_D_nSE_SI_SN, nCN, D, nSE, SI, SN); and (nCN_D_nSE_SI_nSN, nCN, D, nSE, SI, nSN); and (nCN_D_nSE_nSI_SN, nCN, D, nSE, nSI, SN); and (nCN_D_nSE_nSI_nSN, nCN, D, nSE, nSI, nSN); and (nCN_nD_SE_nSI_SN, nCN, nD, SE, nSI, SN); and (nCN_nD_SE_nSI_nSN, nCN, nD, SE, nSI, nSN); and (nCN_nD_nSE_SI_SN, nCN, nD, nSE, SI, SN); and (nCN_nD_nSE_SI_nSN, nCN, nD, nSE, SI, nSN); and (nCN_nD_nSE_nSI_SN, nCN, nD, nSE, nSI, SN); and (nCN_nD_nSE_nSI_nSN, nCN, nD, nSE, nSI, nSN); and (D_nSE_SI_SN, D, nSE, SI, SN); and (D_nSE_nSI_SN, D, nSE, nSI, SN); and (D_nSE_SI_nSN, D, nSE, SI, nSN); and (D_nSE_nSI_nSN, D, nSE, nSI, nSN); and (nD_nSE_SI_nSN, nD, nSE, SI, nSN); and (nD_nSE_nSI_nSN, nD, nSE, nSI, nSN); and (CN_nSE_SI_SN, CN, nSE, SI, SN); and (CN_nSE_nSI_SN, CN, nSE, nSI, SN); and (CN_nD_SI_SN, CN, nD, SI, SN); and (nCN_D_SI_SN, nCN, D, SI, SN); and (nCN_D_SI_nSN, nCN, D, SI, nSN); and (nCN_nD_SI_nSN, nCN, nD, SI, nSN); and (nCN_nD_SI_SN, nCN, nD, SI, SN); and (CN_D_nSI_SN, CN, D, nSI, SN); and (CN_nD_nSI_nSN, CN, nD, nSI, nSN); and (CN_D_nSI_nSN, CN, D, nSI, nSN); and (CN_D_SE_SN, CN, D, SE, SN); and (CN_D_SE_nSN, CN, D, SE, nSN); and (CN_nD_SE_SN, CN, nD, SE, SN); and (CN_nD_SE_nSN, CN, nD, SE, nSN); and (nCN_D_SE_SN, nCN, D, SE, SN); and (nCN_D_SE_nSN, nCN, D, SE, nSN); and (nCN_nD_SE_SN, nCN, nD, SE, SN); and (nCN_nD_SE_nSN, nCN, nD, SE, nSN); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d, SN_d); and (SN_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN, SN); and (SN_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && CN && D) || (!(SE) && CN && !(D) && !(SN))))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && CN && D) || (!(SE) && CN && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCSND4BWP7T35P140LVT (SI, D, SE, CP, CN, SN, Q, QN); input SI, D, SE, CP, CN, SN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (DS, S, D_d); and (D1, DS, CN_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (DS, S, D); and (D1, DS, CN); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SN_SDFCHK, CN_D_SE_SI_SN, 1'b1); tsmc_xbuf (CN_D_SE_SI_nSN_SDFCHK, CN_D_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SN_SDFCHK, CN_D_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_D_nSE_SI_nSN_SDFCHK, CN_D_nSE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SN_SDFCHK, CN_D_nSE_nSI_SN, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_nSN_SDFCHK, CN_D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SN_SDFCHK, CN_nD_SE_SI_SN, 1'b1); tsmc_xbuf (CN_nD_SE_SI_nSN_SDFCHK, CN_nD_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_nSN_SDFCHK, CN_nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_nSN_SDFCHK, CN_nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SN_SDFCHK, nCN_D_SE_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_SI_nSN_SDFCHK, nCN_D_SE_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SN_SDFCHK, nCN_nD_SE_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_nSN_SDFCHK, nCN_nD_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SN_SDFCHK, CN_D_SE_nSI_SN, 1'b1); tsmc_xbuf (CN_D_SE_nSI_nSN_SDFCHK, CN_D_SE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SN_SDFCHK, CN_nD_SE_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_nSN_SDFCHK, CN_nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SN_SDFCHK, CN_nD_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SN_SDFCHK, CN_nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SN_SDFCHK, nCN_D_SE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_nSN_SDFCHK, nCN_D_SE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SN_SDFCHK, nCN_D_nSE_SI_SN, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_nSN_SDFCHK, nCN_D_nSE_SI_nSN, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SN_SDFCHK, nCN_D_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_nSN_SDFCHK, nCN_D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SN_SDFCHK, nCN_nD_SE_nSI_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_nSN_SDFCHK, nCN_nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SN_SDFCHK, nCN_nD_nSE_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_nSN_SDFCHK, nCN_nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SN_SDFCHK, nCN_nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_nSN_SDFCHK, nCN_nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (D_nSE_SI_SN_SDFCHK, D_nSE_SI_SN, 1'b1); tsmc_xbuf (D_nSE_nSI_SN_SDFCHK, D_nSE_nSI_SN, 1'b1); tsmc_xbuf (D_nSE_SI_nSN_SDFCHK, D_nSE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_nSI_nSN_SDFCHK, D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_nSN_SDFCHK, nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_nSI_nSN_SDFCHK, nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nSE_SI_SN_SDFCHK, CN_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_nSE_nSI_SN_SDFCHK, CN_nSE_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_SI_SN_SDFCHK, CN_nD_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SI_SN_SDFCHK, nCN_D_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SI_nSN_SDFCHK, nCN_D_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SI_nSN_SDFCHK, nCN_nD_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SI_SN_SDFCHK, nCN_nD_SI_SN, 1'b1); tsmc_xbuf (CN_D_nSI_SN_SDFCHK, CN_D_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_nSI_nSN_SDFCHK, CN_nD_nSI_nSN, 1'b1); tsmc_xbuf (CN_D_nSI_nSN_SDFCHK, CN_D_nSI_nSN, 1'b1); tsmc_xbuf (CN_D_SE_SN_SDFCHK, CN_D_SE_SN, 1'b1); tsmc_xbuf (CN_D_SE_nSN_SDFCHK, CN_D_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_SN_SDFCHK, CN_nD_SE_SN, 1'b1); tsmc_xbuf (CN_nD_SE_nSN_SDFCHK, CN_nD_SE_nSN, 1'b1); tsmc_xbuf (nCN_D_SE_SN_SDFCHK, nCN_D_SE_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSN_SDFCHK, nCN_D_SE_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_SN_SDFCHK, nCN_nD_SE_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSN_SDFCHK, nCN_nD_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); not (nSN, SN); and (CN_D_SE_SI_SN, CN, D, SE, SI, SN); and (CN_D_SE_SI_nSN, CN, D, SE, SI, nSN); and (CN_D_nSE_SI_SN, CN, D, nSE, SI, SN); and (CN_D_nSE_SI_nSN, CN, D, nSE, SI, nSN); and (CN_D_nSE_nSI_SN, CN, D, nSE, nSI, SN); and (CN_D_nSE_nSI_nSN, CN, D, nSE, nSI, nSN); and (CN_nD_SE_SI_SN, CN, nD, SE, SI, SN); and (CN_nD_SE_SI_nSN, CN, nD, SE, SI, nSN); and (CN_nD_nSE_SI_nSN, CN, nD, nSE, SI, nSN); and (CN_nD_nSE_nSI_nSN, CN, nD, nSE, nSI, nSN); and (nCN_D_SE_SI_SN, nCN, D, SE, SI, SN); and (nCN_D_SE_SI_nSN, nCN, D, SE, SI, nSN); and (nCN_nD_SE_SI_SN, nCN, nD, SE, SI, SN); and (nCN_nD_SE_SI_nSN, nCN, nD, SE, SI, nSN); and (CN_D_SE_nSI_SN, CN, D, SE, nSI, SN); and (CN_D_SE_nSI_nSN, CN, D, SE, nSI, nSN); and (CN_nD_SE_nSI_SN, CN, nD, SE, nSI, SN); and (CN_nD_SE_nSI_nSN, CN, nD, SE, nSI, nSN); and (CN_nD_nSE_SI_SN, CN, nD, nSE, SI, SN); and (CN_nD_nSE_nSI_SN, CN, nD, nSE, nSI, SN); and (nCN_D_SE_nSI_SN, nCN, D, SE, nSI, SN); and (nCN_D_SE_nSI_nSN, nCN, D, SE, nSI, nSN); and (nCN_D_nSE_SI_SN, nCN, D, nSE, SI, SN); and (nCN_D_nSE_SI_nSN, nCN, D, nSE, SI, nSN); and (nCN_D_nSE_nSI_SN, nCN, D, nSE, nSI, SN); and (nCN_D_nSE_nSI_nSN, nCN, D, nSE, nSI, nSN); and (nCN_nD_SE_nSI_SN, nCN, nD, SE, nSI, SN); and (nCN_nD_SE_nSI_nSN, nCN, nD, SE, nSI, nSN); and (nCN_nD_nSE_SI_SN, nCN, nD, nSE, SI, SN); and (nCN_nD_nSE_SI_nSN, nCN, nD, nSE, SI, nSN); and (nCN_nD_nSE_nSI_SN, nCN, nD, nSE, nSI, SN); and (nCN_nD_nSE_nSI_nSN, nCN, nD, nSE, nSI, nSN); and (D_nSE_SI_SN, D, nSE, SI, SN); and (D_nSE_nSI_SN, D, nSE, nSI, SN); and (D_nSE_SI_nSN, D, nSE, SI, nSN); and (D_nSE_nSI_nSN, D, nSE, nSI, nSN); and (nD_nSE_SI_nSN, nD, nSE, SI, nSN); and (nD_nSE_nSI_nSN, nD, nSE, nSI, nSN); and (CN_nSE_SI_SN, CN, nSE, SI, SN); and (CN_nSE_nSI_SN, CN, nSE, nSI, SN); and (CN_nD_SI_SN, CN, nD, SI, SN); and (nCN_D_SI_SN, nCN, D, SI, SN); and (nCN_D_SI_nSN, nCN, D, SI, nSN); and (nCN_nD_SI_nSN, nCN, nD, SI, nSN); and (nCN_nD_SI_SN, nCN, nD, SI, SN); and (CN_D_nSI_SN, CN, D, nSI, SN); and (CN_nD_nSI_nSN, CN, nD, nSI, nSN); and (CN_D_nSI_nSN, CN, D, nSI, nSN); and (CN_D_SE_SN, CN, D, SE, SN); and (CN_D_SE_nSN, CN, D, SE, nSN); and (CN_nD_SE_SN, CN, nD, SE, SN); and (CN_nD_SE_nSN, CN, nD, SE, nSN); and (nCN_D_SE_SN, nCN, D, SE, SN); and (nCN_D_SE_nSN, nCN, D, SE, nSN); and (nCN_nD_SE_SN, nCN, nD, SE, SN); and (nCN_nD_SE_nSN, nCN, nD, SE, nSN); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d, SN_d); and (SN_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN, SN); and (SN_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && CN && D) || (!(SE) && CN && !(D) && !(SN))))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && CN && D) || (!(SE) && CN && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCSNQD0BWP7T35P140LVT (SI, D, SE, CP, CN, SN, Q); input SI, D, SE, CP, CN, SN; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (DS, S, D_d); and (D1, DS, CN_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (DS, S, D); and (D1, DS, CN); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SN_SDFCHK, CN_D_SE_SI_SN, 1'b1); tsmc_xbuf (CN_D_SE_SI_nSN_SDFCHK, CN_D_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SN_SDFCHK, CN_D_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_D_nSE_SI_nSN_SDFCHK, CN_D_nSE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SN_SDFCHK, CN_D_nSE_nSI_SN, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_nSN_SDFCHK, CN_D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SN_SDFCHK, CN_nD_SE_SI_SN, 1'b1); tsmc_xbuf (CN_nD_SE_SI_nSN_SDFCHK, CN_nD_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_nSN_SDFCHK, CN_nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_nSN_SDFCHK, CN_nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SN_SDFCHK, nCN_D_SE_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_SI_nSN_SDFCHK, nCN_D_SE_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SN_SDFCHK, nCN_nD_SE_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_nSN_SDFCHK, nCN_nD_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SN_SDFCHK, CN_D_SE_nSI_SN, 1'b1); tsmc_xbuf (CN_D_SE_nSI_nSN_SDFCHK, CN_D_SE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SN_SDFCHK, CN_nD_SE_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_nSN_SDFCHK, CN_nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SN_SDFCHK, CN_nD_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SN_SDFCHK, CN_nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SN_SDFCHK, nCN_D_SE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_nSN_SDFCHK, nCN_D_SE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SN_SDFCHK, nCN_D_nSE_SI_SN, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_nSN_SDFCHK, nCN_D_nSE_SI_nSN, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SN_SDFCHK, nCN_D_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_nSN_SDFCHK, nCN_D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SN_SDFCHK, nCN_nD_SE_nSI_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_nSN_SDFCHK, nCN_nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SN_SDFCHK, nCN_nD_nSE_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_nSN_SDFCHK, nCN_nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SN_SDFCHK, nCN_nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_nSN_SDFCHK, nCN_nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (D_nSE_SI_SN_SDFCHK, D_nSE_SI_SN, 1'b1); tsmc_xbuf (D_nSE_nSI_SN_SDFCHK, D_nSE_nSI_SN, 1'b1); tsmc_xbuf (D_nSE_SI_nSN_SDFCHK, D_nSE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_nSI_nSN_SDFCHK, D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_nSN_SDFCHK, nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_nSI_nSN_SDFCHK, nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nSE_SI_SN_SDFCHK, CN_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_nSE_nSI_SN_SDFCHK, CN_nSE_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_SI_SN_SDFCHK, CN_nD_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SI_SN_SDFCHK, nCN_D_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SI_nSN_SDFCHK, nCN_D_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SI_SN_SDFCHK, nCN_nD_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_SI_nSN_SDFCHK, nCN_nD_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSI_SN_SDFCHK, CN_D_nSI_SN, 1'b1); tsmc_xbuf (CN_D_nSI_nSN_SDFCHK, CN_D_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSI_nSN_SDFCHK, CN_nD_nSI_nSN, 1'b1); tsmc_xbuf (CN_D_SE_SN_SDFCHK, CN_D_SE_SN, 1'b1); tsmc_xbuf (CN_D_SE_nSN_SDFCHK, CN_D_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_nSN_SDFCHK, CN_nD_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_SN_SDFCHK, CN_nD_SE_SN, 1'b1); tsmc_xbuf (nCN_D_SE_SN_SDFCHK, nCN_D_SE_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSN_SDFCHK, nCN_D_SE_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_SN_SDFCHK, nCN_nD_SE_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSN_SDFCHK, nCN_nD_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); not (nSN, SN); and (CN_D_SE_SI_SN, CN, D, SE, SI, SN); and (CN_D_SE_SI_nSN, CN, D, SE, SI, nSN); and (CN_D_nSE_SI_SN, CN, D, nSE, SI, SN); and (CN_D_nSE_SI_nSN, CN, D, nSE, SI, nSN); and (CN_D_nSE_nSI_SN, CN, D, nSE, nSI, SN); and (CN_D_nSE_nSI_nSN, CN, D, nSE, nSI, nSN); and (CN_nD_SE_SI_SN, CN, nD, SE, SI, SN); and (CN_nD_SE_SI_nSN, CN, nD, SE, SI, nSN); and (CN_nD_nSE_SI_nSN, CN, nD, nSE, SI, nSN); and (CN_nD_nSE_nSI_nSN, CN, nD, nSE, nSI, nSN); and (nCN_D_SE_SI_SN, nCN, D, SE, SI, SN); and (nCN_D_SE_SI_nSN, nCN, D, SE, SI, nSN); and (nCN_nD_SE_SI_SN, nCN, nD, SE, SI, SN); and (nCN_nD_SE_SI_nSN, nCN, nD, SE, SI, nSN); and (CN_D_SE_nSI_SN, CN, D, SE, nSI, SN); and (CN_D_SE_nSI_nSN, CN, D, SE, nSI, nSN); and (CN_nD_SE_nSI_SN, CN, nD, SE, nSI, SN); and (CN_nD_SE_nSI_nSN, CN, nD, SE, nSI, nSN); and (CN_nD_nSE_SI_SN, CN, nD, nSE, SI, SN); and (CN_nD_nSE_nSI_SN, CN, nD, nSE, nSI, SN); and (nCN_D_SE_nSI_SN, nCN, D, SE, nSI, SN); and (nCN_D_SE_nSI_nSN, nCN, D, SE, nSI, nSN); and (nCN_D_nSE_SI_SN, nCN, D, nSE, SI, SN); and (nCN_D_nSE_SI_nSN, nCN, D, nSE, SI, nSN); and (nCN_D_nSE_nSI_SN, nCN, D, nSE, nSI, SN); and (nCN_D_nSE_nSI_nSN, nCN, D, nSE, nSI, nSN); and (nCN_nD_SE_nSI_SN, nCN, nD, SE, nSI, SN); and (nCN_nD_SE_nSI_nSN, nCN, nD, SE, nSI, nSN); and (nCN_nD_nSE_SI_SN, nCN, nD, nSE, SI, SN); and (nCN_nD_nSE_SI_nSN, nCN, nD, nSE, SI, nSN); and (nCN_nD_nSE_nSI_SN, nCN, nD, nSE, nSI, SN); and (nCN_nD_nSE_nSI_nSN, nCN, nD, nSE, nSI, nSN); and (D_nSE_SI_SN, D, nSE, SI, SN); and (D_nSE_nSI_SN, D, nSE, nSI, SN); and (D_nSE_SI_nSN, D, nSE, SI, nSN); and (D_nSE_nSI_nSN, D, nSE, nSI, nSN); and (nD_nSE_SI_nSN, nD, nSE, SI, nSN); and (nD_nSE_nSI_nSN, nD, nSE, nSI, nSN); and (CN_nSE_SI_SN, CN, nSE, SI, SN); and (CN_nSE_nSI_SN, CN, nSE, nSI, SN); and (CN_nD_SI_SN, CN, nD, SI, SN); and (nCN_D_SI_SN, nCN, D, SI, SN); and (nCN_D_SI_nSN, nCN, D, SI, nSN); and (nCN_nD_SI_SN, nCN, nD, SI, SN); and (nCN_nD_SI_nSN, nCN, nD, SI, nSN); and (CN_D_nSI_SN, CN, D, nSI, SN); and (CN_D_nSI_nSN, CN, D, nSI, nSN); and (CN_nD_nSI_nSN, CN, nD, nSI, nSN); and (CN_D_SE_SN, CN, D, SE, SN); and (CN_D_SE_nSN, CN, D, SE, nSN); and (CN_nD_SE_nSN, CN, nD, SE, nSN); and (CN_nD_SE_SN, CN, nD, SE, SN); and (nCN_D_SE_SN, nCN, D, SE, SN); and (nCN_D_SE_nSN, nCN, D, SE, nSN); and (nCN_nD_SE_SN, nCN, nD, SE, SN); and (nCN_nD_SE_nSN, nCN, nD, SE, nSN); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d, SN_d); and (SN_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN, SN); and (SN_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && CN && D) || (!(SE) && CN && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCSNQD1BWP7T35P140LVT (SI, D, SE, CP, CN, SN, Q); input SI, D, SE, CP, CN, SN; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (DS, S, D_d); and (D1, DS, CN_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (DS, S, D); and (D1, DS, CN); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SN_SDFCHK, CN_D_SE_SI_SN, 1'b1); tsmc_xbuf (CN_D_SE_SI_nSN_SDFCHK, CN_D_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SN_SDFCHK, CN_D_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_D_nSE_SI_nSN_SDFCHK, CN_D_nSE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SN_SDFCHK, CN_D_nSE_nSI_SN, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_nSN_SDFCHK, CN_D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SN_SDFCHK, CN_nD_SE_SI_SN, 1'b1); tsmc_xbuf (CN_nD_SE_SI_nSN_SDFCHK, CN_nD_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_nSN_SDFCHK, CN_nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_nSN_SDFCHK, CN_nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SN_SDFCHK, nCN_D_SE_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_SI_nSN_SDFCHK, nCN_D_SE_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SN_SDFCHK, nCN_nD_SE_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_nSN_SDFCHK, nCN_nD_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SN_SDFCHK, CN_D_SE_nSI_SN, 1'b1); tsmc_xbuf (CN_D_SE_nSI_nSN_SDFCHK, CN_D_SE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SN_SDFCHK, CN_nD_SE_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_nSN_SDFCHK, CN_nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SN_SDFCHK, CN_nD_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SN_SDFCHK, CN_nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SN_SDFCHK, nCN_D_SE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_nSN_SDFCHK, nCN_D_SE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SN_SDFCHK, nCN_D_nSE_SI_SN, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_nSN_SDFCHK, nCN_D_nSE_SI_nSN, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SN_SDFCHK, nCN_D_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_nSN_SDFCHK, nCN_D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SN_SDFCHK, nCN_nD_SE_nSI_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_nSN_SDFCHK, nCN_nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SN_SDFCHK, nCN_nD_nSE_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_nSN_SDFCHK, nCN_nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SN_SDFCHK, nCN_nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_nSN_SDFCHK, nCN_nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (D_nSE_SI_SN_SDFCHK, D_nSE_SI_SN, 1'b1); tsmc_xbuf (D_nSE_nSI_SN_SDFCHK, D_nSE_nSI_SN, 1'b1); tsmc_xbuf (D_nSE_SI_nSN_SDFCHK, D_nSE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_nSI_nSN_SDFCHK, D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_nSN_SDFCHK, nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_nSI_nSN_SDFCHK, nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nSE_SI_SN_SDFCHK, CN_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_nSE_nSI_SN_SDFCHK, CN_nSE_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_SI_SN_SDFCHK, CN_nD_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SI_SN_SDFCHK, nCN_D_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SI_nSN_SDFCHK, nCN_D_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SI_SN_SDFCHK, nCN_nD_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_SI_nSN_SDFCHK, nCN_nD_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSI_SN_SDFCHK, CN_D_nSI_SN, 1'b1); tsmc_xbuf (CN_D_nSI_nSN_SDFCHK, CN_D_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSI_nSN_SDFCHK, CN_nD_nSI_nSN, 1'b1); tsmc_xbuf (CN_D_SE_SN_SDFCHK, CN_D_SE_SN, 1'b1); tsmc_xbuf (CN_D_SE_nSN_SDFCHK, CN_D_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_nSN_SDFCHK, CN_nD_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_SN_SDFCHK, CN_nD_SE_SN, 1'b1); tsmc_xbuf (nCN_D_SE_SN_SDFCHK, nCN_D_SE_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSN_SDFCHK, nCN_D_SE_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_SN_SDFCHK, nCN_nD_SE_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSN_SDFCHK, nCN_nD_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); not (nSN, SN); and (CN_D_SE_SI_SN, CN, D, SE, SI, SN); and (CN_D_SE_SI_nSN, CN, D, SE, SI, nSN); and (CN_D_nSE_SI_SN, CN, D, nSE, SI, SN); and (CN_D_nSE_SI_nSN, CN, D, nSE, SI, nSN); and (CN_D_nSE_nSI_SN, CN, D, nSE, nSI, SN); and (CN_D_nSE_nSI_nSN, CN, D, nSE, nSI, nSN); and (CN_nD_SE_SI_SN, CN, nD, SE, SI, SN); and (CN_nD_SE_SI_nSN, CN, nD, SE, SI, nSN); and (CN_nD_nSE_SI_nSN, CN, nD, nSE, SI, nSN); and (CN_nD_nSE_nSI_nSN, CN, nD, nSE, nSI, nSN); and (nCN_D_SE_SI_SN, nCN, D, SE, SI, SN); and (nCN_D_SE_SI_nSN, nCN, D, SE, SI, nSN); and (nCN_nD_SE_SI_SN, nCN, nD, SE, SI, SN); and (nCN_nD_SE_SI_nSN, nCN, nD, SE, SI, nSN); and (CN_D_SE_nSI_SN, CN, D, SE, nSI, SN); and (CN_D_SE_nSI_nSN, CN, D, SE, nSI, nSN); and (CN_nD_SE_nSI_SN, CN, nD, SE, nSI, SN); and (CN_nD_SE_nSI_nSN, CN, nD, SE, nSI, nSN); and (CN_nD_nSE_SI_SN, CN, nD, nSE, SI, SN); and (CN_nD_nSE_nSI_SN, CN, nD, nSE, nSI, SN); and (nCN_D_SE_nSI_SN, nCN, D, SE, nSI, SN); and (nCN_D_SE_nSI_nSN, nCN, D, SE, nSI, nSN); and (nCN_D_nSE_SI_SN, nCN, D, nSE, SI, SN); and (nCN_D_nSE_SI_nSN, nCN, D, nSE, SI, nSN); and (nCN_D_nSE_nSI_SN, nCN, D, nSE, nSI, SN); and (nCN_D_nSE_nSI_nSN, nCN, D, nSE, nSI, nSN); and (nCN_nD_SE_nSI_SN, nCN, nD, SE, nSI, SN); and (nCN_nD_SE_nSI_nSN, nCN, nD, SE, nSI, nSN); and (nCN_nD_nSE_SI_SN, nCN, nD, nSE, SI, SN); and (nCN_nD_nSE_SI_nSN, nCN, nD, nSE, SI, nSN); and (nCN_nD_nSE_nSI_SN, nCN, nD, nSE, nSI, SN); and (nCN_nD_nSE_nSI_nSN, nCN, nD, nSE, nSI, nSN); and (D_nSE_SI_SN, D, nSE, SI, SN); and (D_nSE_nSI_SN, D, nSE, nSI, SN); and (D_nSE_SI_nSN, D, nSE, SI, nSN); and (D_nSE_nSI_nSN, D, nSE, nSI, nSN); and (nD_nSE_SI_nSN, nD, nSE, SI, nSN); and (nD_nSE_nSI_nSN, nD, nSE, nSI, nSN); and (CN_nSE_SI_SN, CN, nSE, SI, SN); and (CN_nSE_nSI_SN, CN, nSE, nSI, SN); and (CN_nD_SI_SN, CN, nD, SI, SN); and (nCN_D_SI_SN, nCN, D, SI, SN); and (nCN_D_SI_nSN, nCN, D, SI, nSN); and (nCN_nD_SI_SN, nCN, nD, SI, SN); and (nCN_nD_SI_nSN, nCN, nD, SI, nSN); and (CN_D_nSI_SN, CN, D, nSI, SN); and (CN_D_nSI_nSN, CN, D, nSI, nSN); and (CN_nD_nSI_nSN, CN, nD, nSI, nSN); and (CN_D_SE_SN, CN, D, SE, SN); and (CN_D_SE_nSN, CN, D, SE, nSN); and (CN_nD_SE_nSN, CN, nD, SE, nSN); and (CN_nD_SE_SN, CN, nD, SE, SN); and (nCN_D_SE_SN, nCN, D, SE, SN); and (nCN_D_SE_nSN, nCN, D, SE, nSN); and (nCN_nD_SE_SN, nCN, nD, SE, SN); and (nCN_nD_SE_nSN, nCN, nD, SE, nSN); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d, SN_d); and (SN_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN, SN); and (SN_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && CN && D) || (!(SE) && CN && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCSNQD2BWP7T35P140LVT (SI, D, SE, CP, CN, SN, Q); input SI, D, SE, CP, CN, SN; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (DS, S, D_d); and (D1, DS, CN_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (DS, S, D); and (D1, DS, CN); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SN_SDFCHK, CN_D_SE_SI_SN, 1'b1); tsmc_xbuf (CN_D_SE_SI_nSN_SDFCHK, CN_D_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SN_SDFCHK, CN_D_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_D_nSE_SI_nSN_SDFCHK, CN_D_nSE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SN_SDFCHK, CN_D_nSE_nSI_SN, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_nSN_SDFCHK, CN_D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SN_SDFCHK, CN_nD_SE_SI_SN, 1'b1); tsmc_xbuf (CN_nD_SE_SI_nSN_SDFCHK, CN_nD_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_nSN_SDFCHK, CN_nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_nSN_SDFCHK, CN_nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SN_SDFCHK, nCN_D_SE_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_SI_nSN_SDFCHK, nCN_D_SE_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SN_SDFCHK, nCN_nD_SE_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_nSN_SDFCHK, nCN_nD_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SN_SDFCHK, CN_D_SE_nSI_SN, 1'b1); tsmc_xbuf (CN_D_SE_nSI_nSN_SDFCHK, CN_D_SE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SN_SDFCHK, CN_nD_SE_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_nSN_SDFCHK, CN_nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SN_SDFCHK, CN_nD_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SN_SDFCHK, CN_nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SN_SDFCHK, nCN_D_SE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_nSN_SDFCHK, nCN_D_SE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SN_SDFCHK, nCN_D_nSE_SI_SN, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_nSN_SDFCHK, nCN_D_nSE_SI_nSN, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SN_SDFCHK, nCN_D_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_nSN_SDFCHK, nCN_D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SN_SDFCHK, nCN_nD_SE_nSI_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_nSN_SDFCHK, nCN_nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SN_SDFCHK, nCN_nD_nSE_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_nSN_SDFCHK, nCN_nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SN_SDFCHK, nCN_nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_nSN_SDFCHK, nCN_nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (D_nSE_SI_SN_SDFCHK, D_nSE_SI_SN, 1'b1); tsmc_xbuf (D_nSE_nSI_SN_SDFCHK, D_nSE_nSI_SN, 1'b1); tsmc_xbuf (D_nSE_SI_nSN_SDFCHK, D_nSE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_nSI_nSN_SDFCHK, D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_nSN_SDFCHK, nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_nSI_nSN_SDFCHK, nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nSE_SI_SN_SDFCHK, CN_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_nSE_nSI_SN_SDFCHK, CN_nSE_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_SI_SN_SDFCHK, CN_nD_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SI_SN_SDFCHK, nCN_D_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SI_nSN_SDFCHK, nCN_D_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SI_SN_SDFCHK, nCN_nD_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_SI_nSN_SDFCHK, nCN_nD_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSI_SN_SDFCHK, CN_D_nSI_SN, 1'b1); tsmc_xbuf (CN_D_nSI_nSN_SDFCHK, CN_D_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSI_nSN_SDFCHK, CN_nD_nSI_nSN, 1'b1); tsmc_xbuf (CN_D_SE_SN_SDFCHK, CN_D_SE_SN, 1'b1); tsmc_xbuf (CN_D_SE_nSN_SDFCHK, CN_D_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_nSN_SDFCHK, CN_nD_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_SN_SDFCHK, CN_nD_SE_SN, 1'b1); tsmc_xbuf (nCN_D_SE_SN_SDFCHK, nCN_D_SE_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSN_SDFCHK, nCN_D_SE_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_SN_SDFCHK, nCN_nD_SE_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSN_SDFCHK, nCN_nD_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); not (nSN, SN); and (CN_D_SE_SI_SN, CN, D, SE, SI, SN); and (CN_D_SE_SI_nSN, CN, D, SE, SI, nSN); and (CN_D_nSE_SI_SN, CN, D, nSE, SI, SN); and (CN_D_nSE_SI_nSN, CN, D, nSE, SI, nSN); and (CN_D_nSE_nSI_SN, CN, D, nSE, nSI, SN); and (CN_D_nSE_nSI_nSN, CN, D, nSE, nSI, nSN); and (CN_nD_SE_SI_SN, CN, nD, SE, SI, SN); and (CN_nD_SE_SI_nSN, CN, nD, SE, SI, nSN); and (CN_nD_nSE_SI_nSN, CN, nD, nSE, SI, nSN); and (CN_nD_nSE_nSI_nSN, CN, nD, nSE, nSI, nSN); and (nCN_D_SE_SI_SN, nCN, D, SE, SI, SN); and (nCN_D_SE_SI_nSN, nCN, D, SE, SI, nSN); and (nCN_nD_SE_SI_SN, nCN, nD, SE, SI, SN); and (nCN_nD_SE_SI_nSN, nCN, nD, SE, SI, nSN); and (CN_D_SE_nSI_SN, CN, D, SE, nSI, SN); and (CN_D_SE_nSI_nSN, CN, D, SE, nSI, nSN); and (CN_nD_SE_nSI_SN, CN, nD, SE, nSI, SN); and (CN_nD_SE_nSI_nSN, CN, nD, SE, nSI, nSN); and (CN_nD_nSE_SI_SN, CN, nD, nSE, SI, SN); and (CN_nD_nSE_nSI_SN, CN, nD, nSE, nSI, SN); and (nCN_D_SE_nSI_SN, nCN, D, SE, nSI, SN); and (nCN_D_SE_nSI_nSN, nCN, D, SE, nSI, nSN); and (nCN_D_nSE_SI_SN, nCN, D, nSE, SI, SN); and (nCN_D_nSE_SI_nSN, nCN, D, nSE, SI, nSN); and (nCN_D_nSE_nSI_SN, nCN, D, nSE, nSI, SN); and (nCN_D_nSE_nSI_nSN, nCN, D, nSE, nSI, nSN); and (nCN_nD_SE_nSI_SN, nCN, nD, SE, nSI, SN); and (nCN_nD_SE_nSI_nSN, nCN, nD, SE, nSI, nSN); and (nCN_nD_nSE_SI_SN, nCN, nD, nSE, SI, SN); and (nCN_nD_nSE_SI_nSN, nCN, nD, nSE, SI, nSN); and (nCN_nD_nSE_nSI_SN, nCN, nD, nSE, nSI, SN); and (nCN_nD_nSE_nSI_nSN, nCN, nD, nSE, nSI, nSN); and (D_nSE_SI_SN, D, nSE, SI, SN); and (D_nSE_nSI_SN, D, nSE, nSI, SN); and (D_nSE_SI_nSN, D, nSE, SI, nSN); and (D_nSE_nSI_nSN, D, nSE, nSI, nSN); and (nD_nSE_SI_nSN, nD, nSE, SI, nSN); and (nD_nSE_nSI_nSN, nD, nSE, nSI, nSN); and (CN_nSE_SI_SN, CN, nSE, SI, SN); and (CN_nSE_nSI_SN, CN, nSE, nSI, SN); and (CN_nD_SI_SN, CN, nD, SI, SN); and (nCN_D_SI_SN, nCN, D, SI, SN); and (nCN_D_SI_nSN, nCN, D, SI, nSN); and (nCN_nD_SI_SN, nCN, nD, SI, SN); and (nCN_nD_SI_nSN, nCN, nD, SI, nSN); and (CN_D_nSI_SN, CN, D, nSI, SN); and (CN_D_nSI_nSN, CN, D, nSI, nSN); and (CN_nD_nSI_nSN, CN, nD, nSI, nSN); and (CN_D_SE_SN, CN, D, SE, SN); and (CN_D_SE_nSN, CN, D, SE, nSN); and (CN_nD_SE_nSN, CN, nD, SE, nSN); and (CN_nD_SE_SN, CN, nD, SE, SN); and (nCN_D_SE_SN, nCN, D, SE, SN); and (nCN_D_SE_nSN, nCN, D, SE, nSN); and (nCN_nD_SE_SN, nCN, nD, SE, SN); and (nCN_nD_SE_nSN, nCN, nD, SE, nSN); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d, SN_d); and (SN_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN, SN); and (SN_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && CN && D) || (!(SE) && CN && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKCSNQD4BWP7T35P140LVT (SI, D, SE, CP, CN, SN, Q); input SI, D, SE, CP, CN, SN; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, CN_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (DS, S, D_d); and (D1, DS, CN_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (DS, S, D); and (D1, DS, CN); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CN_D_SE_SI_SN_SDFCHK, CN_D_SE_SI_SN, 1'b1); tsmc_xbuf (CN_D_SE_SI_nSN_SDFCHK, CN_D_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSE_SI_SN_SDFCHK, CN_D_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_D_nSE_SI_nSN_SDFCHK, CN_D_nSE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_SN_SDFCHK, CN_D_nSE_nSI_SN, 1'b1); tsmc_xbuf (CN_D_nSE_nSI_nSN_SDFCHK, CN_D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_SI_SN_SDFCHK, CN_nD_SE_SI_SN, 1'b1); tsmc_xbuf (CN_nD_SE_SI_nSN_SDFCHK, CN_nD_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_nSN_SDFCHK, CN_nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_nSN_SDFCHK, CN_nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_D_SE_SI_SN_SDFCHK, nCN_D_SE_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_SI_nSN_SDFCHK, nCN_D_SE_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_SN_SDFCHK, nCN_nD_SE_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_SI_nSN_SDFCHK, nCN_nD_SE_SI_nSN, 1'b1); tsmc_xbuf (CN_D_SE_nSI_SN_SDFCHK, CN_D_SE_nSI_SN, 1'b1); tsmc_xbuf (CN_D_SE_nSI_nSN_SDFCHK, CN_D_SE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_SN_SDFCHK, CN_nD_SE_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_SE_nSI_nSN_SDFCHK, CN_nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SN_SDFCHK, CN_nD_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SN_SDFCHK, CN_nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_SN_SDFCHK, nCN_D_SE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSI_nSN_SDFCHK, nCN_D_SE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_SN_SDFCHK, nCN_D_nSE_SI_SN, 1'b1); tsmc_xbuf (nCN_D_nSE_SI_nSN_SDFCHK, nCN_D_nSE_SI_nSN, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_SN_SDFCHK, nCN_D_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_D_nSE_nSI_nSN_SDFCHK, nCN_D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_SN_SDFCHK, nCN_nD_SE_nSI_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSI_nSN_SDFCHK, nCN_nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_SN_SDFCHK, nCN_nD_nSE_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_nSE_SI_nSN_SDFCHK, nCN_nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_SN_SDFCHK, nCN_nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nCN_nD_nSE_nSI_nSN_SDFCHK, nCN_nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (D_nSE_SI_SN_SDFCHK, D_nSE_SI_SN, 1'b1); tsmc_xbuf (D_nSE_nSI_SN_SDFCHK, D_nSE_nSI_SN, 1'b1); tsmc_xbuf (D_nSE_SI_nSN_SDFCHK, D_nSE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_nSI_nSN_SDFCHK, D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_nSN_SDFCHK, nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_nSI_nSN_SDFCHK, nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (CN_nSE_SI_SN_SDFCHK, CN_nSE_SI_SN, 1'b1); tsmc_xbuf (CN_nSE_nSI_SN_SDFCHK, CN_nSE_nSI_SN, 1'b1); tsmc_xbuf (CN_nD_SI_SN_SDFCHK, CN_nD_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SI_SN_SDFCHK, nCN_D_SI_SN, 1'b1); tsmc_xbuf (nCN_D_SI_nSN_SDFCHK, nCN_D_SI_nSN, 1'b1); tsmc_xbuf (nCN_nD_SI_SN_SDFCHK, nCN_nD_SI_SN, 1'b1); tsmc_xbuf (nCN_nD_SI_nSN_SDFCHK, nCN_nD_SI_nSN, 1'b1); tsmc_xbuf (CN_D_nSI_SN_SDFCHK, CN_D_nSI_SN, 1'b1); tsmc_xbuf (CN_D_nSI_nSN_SDFCHK, CN_D_nSI_nSN, 1'b1); tsmc_xbuf (CN_nD_nSI_nSN_SDFCHK, CN_nD_nSI_nSN, 1'b1); tsmc_xbuf (CN_D_SE_SN_SDFCHK, CN_D_SE_SN, 1'b1); tsmc_xbuf (CN_D_SE_nSN_SDFCHK, CN_D_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_nSN_SDFCHK, CN_nD_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_SE_SN_SDFCHK, CN_nD_SE_SN, 1'b1); tsmc_xbuf (nCN_D_SE_SN_SDFCHK, nCN_D_SE_SN, 1'b1); tsmc_xbuf (nCN_D_SE_nSN_SDFCHK, nCN_D_SE_nSN, 1'b1); tsmc_xbuf (nCN_nD_SE_SN_SDFCHK, nCN_nD_SE_SN, 1'b1); tsmc_xbuf (nCN_nD_SE_nSN_SDFCHK, nCN_nD_SE_nSN, 1'b1); tsmc_xbuf (CN_nD_nSE_SI_SDFCHK, CN_nD_nSE_SI, 1'b1); tsmc_xbuf (CN_nD_nSE_nSI_SDFCHK, CN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCN, CN); not (nSN, SN); and (CN_D_SE_SI_SN, CN, D, SE, SI, SN); and (CN_D_SE_SI_nSN, CN, D, SE, SI, nSN); and (CN_D_nSE_SI_SN, CN, D, nSE, SI, SN); and (CN_D_nSE_SI_nSN, CN, D, nSE, SI, nSN); and (CN_D_nSE_nSI_SN, CN, D, nSE, nSI, SN); and (CN_D_nSE_nSI_nSN, CN, D, nSE, nSI, nSN); and (CN_nD_SE_SI_SN, CN, nD, SE, SI, SN); and (CN_nD_SE_SI_nSN, CN, nD, SE, SI, nSN); and (CN_nD_nSE_SI_nSN, CN, nD, nSE, SI, nSN); and (CN_nD_nSE_nSI_nSN, CN, nD, nSE, nSI, nSN); and (nCN_D_SE_SI_SN, nCN, D, SE, SI, SN); and (nCN_D_SE_SI_nSN, nCN, D, SE, SI, nSN); and (nCN_nD_SE_SI_SN, nCN, nD, SE, SI, SN); and (nCN_nD_SE_SI_nSN, nCN, nD, SE, SI, nSN); and (CN_D_SE_nSI_SN, CN, D, SE, nSI, SN); and (CN_D_SE_nSI_nSN, CN, D, SE, nSI, nSN); and (CN_nD_SE_nSI_SN, CN, nD, SE, nSI, SN); and (CN_nD_SE_nSI_nSN, CN, nD, SE, nSI, nSN); and (CN_nD_nSE_SI_SN, CN, nD, nSE, SI, SN); and (CN_nD_nSE_nSI_SN, CN, nD, nSE, nSI, SN); and (nCN_D_SE_nSI_SN, nCN, D, SE, nSI, SN); and (nCN_D_SE_nSI_nSN, nCN, D, SE, nSI, nSN); and (nCN_D_nSE_SI_SN, nCN, D, nSE, SI, SN); and (nCN_D_nSE_SI_nSN, nCN, D, nSE, SI, nSN); and (nCN_D_nSE_nSI_SN, nCN, D, nSE, nSI, SN); and (nCN_D_nSE_nSI_nSN, nCN, D, nSE, nSI, nSN); and (nCN_nD_SE_nSI_SN, nCN, nD, SE, nSI, SN); and (nCN_nD_SE_nSI_nSN, nCN, nD, SE, nSI, nSN); and (nCN_nD_nSE_SI_SN, nCN, nD, nSE, SI, SN); and (nCN_nD_nSE_SI_nSN, nCN, nD, nSE, SI, nSN); and (nCN_nD_nSE_nSI_SN, nCN, nD, nSE, nSI, SN); and (nCN_nD_nSE_nSI_nSN, nCN, nD, nSE, nSI, nSN); and (D_nSE_SI_SN, D, nSE, SI, SN); and (D_nSE_nSI_SN, D, nSE, nSI, SN); and (D_nSE_SI_nSN, D, nSE, SI, nSN); and (D_nSE_nSI_nSN, D, nSE, nSI, nSN); and (nD_nSE_SI_nSN, nD, nSE, SI, nSN); and (nD_nSE_nSI_nSN, nD, nSE, nSI, nSN); and (CN_nSE_SI_SN, CN, nSE, SI, SN); and (CN_nSE_nSI_SN, CN, nSE, nSI, SN); and (CN_nD_SI_SN, CN, nD, SI, SN); and (nCN_D_SI_SN, nCN, D, SI, SN); and (nCN_D_SI_nSN, nCN, D, SI, nSN); and (nCN_nD_SI_SN, nCN, nD, SI, SN); and (nCN_nD_SI_nSN, nCN, nD, SI, nSN); and (CN_D_nSI_SN, CN, D, nSI, SN); and (CN_D_nSI_nSN, CN, D, nSI, nSN); and (CN_nD_nSI_nSN, CN, nD, nSI, nSN); and (CN_D_SE_SN, CN, D, SE, SN); and (CN_D_SE_nSN, CN, D, SE, nSN); and (CN_nD_SE_nSN, CN, nD, SE, nSN); and (CN_nD_SE_SN, CN, nD, SE, SN); and (nCN_D_SE_SN, nCN, D, SE, SN); and (nCN_D_SE_nSN, nCN, D, SE, nSN); and (nCN_nD_SE_SN, nCN, nD, SE, SN); and (nCN_nD_SE_nSN, nCN, nD, SE, nSN); and (CN_nD_nSE_SI, CN, nD, nSE, SI); and (CN_nD_nSE_nSI, CN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, CN_d, SN_d); and (SN_check, SE_int_not, CN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, CN, SN); and (SN_check, SE_int_not, CN); `endif buf (CN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (CN_DEFCHK, CN_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && CN && D) || (!(SE) && CN && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& CN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nCN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nCN_nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier,,, CP_d, CN_d); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_SN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, posedge CN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, negedge CN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nCN_nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& CN_nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKSND0BWP7T35P140LVT (SI, D, SE, CP, SN, Q, QN); input SI, D, SE, CP, SN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (D1, S, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (D1, S, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SN_SDFCHK, D_SE_SI_SN, 1'b1); tsmc_xbuf (D_SE_SI_nSN_SDFCHK, D_SE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_SI_SN_SDFCHK, D_nSE_SI_SN, 1'b1); tsmc_xbuf (D_nSE_SI_nSN_SDFCHK, D_nSE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_nSI_SN_SDFCHK, D_nSE_nSI_SN, 1'b1); tsmc_xbuf (D_nSE_nSI_nSN_SDFCHK, D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nD_SE_SI_SN_SDFCHK, nD_SE_SI_SN, 1'b1); tsmc_xbuf (nD_SE_SI_nSN_SDFCHK, nD_SE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_nSN_SDFCHK, nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_nSI_nSN_SDFCHK, nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (D_SE_nSI_SN_SDFCHK, D_SE_nSI_SN, 1'b1); tsmc_xbuf (D_SE_nSI_nSN_SDFCHK, D_SE_nSI_nSN, 1'b1); tsmc_xbuf (nD_SE_nSI_SN_SDFCHK, nD_SE_nSI_SN, 1'b1); tsmc_xbuf (nD_SE_nSI_nSN_SDFCHK, nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_SN_SDFCHK, nD_nSE_SI_SN, 1'b1); tsmc_xbuf (nD_nSE_nSI_SN_SDFCHK, nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nSE_SI_SN_SDFCHK, nSE_SI_SN, 1'b1); tsmc_xbuf (nSE_nSI_SN_SDFCHK, nSE_nSI_SN, 1'b1); tsmc_xbuf (nD_SI_SN_SDFCHK, nD_SI_SN, 1'b1); tsmc_xbuf (D_nSI_SN_SDFCHK, D_nSI_SN, 1'b1); tsmc_xbuf (nD_nSI_nSN_SDFCHK, nD_nSI_nSN, 1'b1); tsmc_xbuf (D_nSI_nSN_SDFCHK, D_nSI_nSN, 1'b1); tsmc_xbuf (D_SE_SN_SDFCHK, D_SE_SN, 1'b1); tsmc_xbuf (D_SE_nSN_SDFCHK, D_SE_nSN, 1'b1); tsmc_xbuf (nD_SE_SN_SDFCHK, nD_SE_SN, 1'b1); tsmc_xbuf (nD_SE_nSN_SDFCHK, nD_SE_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nSN, SN); and (D_SE_SI_SN, D, SE, SI, SN); and (D_SE_SI_nSN, D, SE, SI, nSN); and (D_nSE_SI_SN, D, nSE, SI, SN); and (D_nSE_SI_nSN, D, nSE, SI, nSN); and (D_nSE_nSI_SN, D, nSE, nSI, SN); and (D_nSE_nSI_nSN, D, nSE, nSI, nSN); and (nD_SE_SI_SN, nD, SE, SI, SN); and (nD_SE_SI_nSN, nD, SE, SI, nSN); and (nD_nSE_SI_nSN, nD, nSE, SI, nSN); and (nD_nSE_nSI_nSN, nD, nSE, nSI, nSN); and (D_SE_nSI_SN, D, SE, nSI, SN); and (D_SE_nSI_nSN, D, SE, nSI, nSN); and (nD_SE_nSI_SN, nD, SE, nSI, SN); and (nD_SE_nSI_nSN, nD, SE, nSI, nSN); and (nD_nSE_SI_SN, nD, nSE, SI, SN); and (nD_nSE_nSI_SN, nD, nSE, nSI, SN); and (nSE_SI_SN, nSE, SI, SN); and (nSE_nSI_SN, nSE, nSI, SN); and (nD_SI_SN, nD, SI, SN); and (D_nSI_SN, D, nSI, SN); and (nD_nSI_nSN, nD, nSI, nSN); and (D_nSI_nSN, D, nSI, nSN); and (D_SE_SN, D, SE, SN); and (D_SE_nSN, D, SE, nSN); and (nD_SE_SN, nD, SE, SN); and (nD_SE_nSN, nD, SE, nSN); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, SN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, SN); `endif buf (SN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D) || (!(SE) && !(D) && !(SN))))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D) || (!(SE) && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKSND1BWP7T35P140LVT (SI, D, SE, CP, SN, Q, QN); input SI, D, SE, CP, SN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (D1, S, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (D1, S, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SN_SDFCHK, D_SE_SI_SN, 1'b1); tsmc_xbuf (D_SE_SI_nSN_SDFCHK, D_SE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_SI_SN_SDFCHK, D_nSE_SI_SN, 1'b1); tsmc_xbuf (D_nSE_SI_nSN_SDFCHK, D_nSE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_nSI_SN_SDFCHK, D_nSE_nSI_SN, 1'b1); tsmc_xbuf (D_nSE_nSI_nSN_SDFCHK, D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nD_SE_SI_SN_SDFCHK, nD_SE_SI_SN, 1'b1); tsmc_xbuf (nD_SE_SI_nSN_SDFCHK, nD_SE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_nSN_SDFCHK, nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_nSI_nSN_SDFCHK, nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (D_SE_nSI_SN_SDFCHK, D_SE_nSI_SN, 1'b1); tsmc_xbuf (D_SE_nSI_nSN_SDFCHK, D_SE_nSI_nSN, 1'b1); tsmc_xbuf (nD_SE_nSI_SN_SDFCHK, nD_SE_nSI_SN, 1'b1); tsmc_xbuf (nD_SE_nSI_nSN_SDFCHK, nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_SN_SDFCHK, nD_nSE_SI_SN, 1'b1); tsmc_xbuf (nD_nSE_nSI_SN_SDFCHK, nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nSE_SI_SN_SDFCHK, nSE_SI_SN, 1'b1); tsmc_xbuf (nSE_nSI_SN_SDFCHK, nSE_nSI_SN, 1'b1); tsmc_xbuf (nD_SI_SN_SDFCHK, nD_SI_SN, 1'b1); tsmc_xbuf (D_nSI_SN_SDFCHK, D_nSI_SN, 1'b1); tsmc_xbuf (nD_nSI_nSN_SDFCHK, nD_nSI_nSN, 1'b1); tsmc_xbuf (D_nSI_nSN_SDFCHK, D_nSI_nSN, 1'b1); tsmc_xbuf (D_SE_SN_SDFCHK, D_SE_SN, 1'b1); tsmc_xbuf (D_SE_nSN_SDFCHK, D_SE_nSN, 1'b1); tsmc_xbuf (nD_SE_SN_SDFCHK, nD_SE_SN, 1'b1); tsmc_xbuf (nD_SE_nSN_SDFCHK, nD_SE_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nSN, SN); and (D_SE_SI_SN, D, SE, SI, SN); and (D_SE_SI_nSN, D, SE, SI, nSN); and (D_nSE_SI_SN, D, nSE, SI, SN); and (D_nSE_SI_nSN, D, nSE, SI, nSN); and (D_nSE_nSI_SN, D, nSE, nSI, SN); and (D_nSE_nSI_nSN, D, nSE, nSI, nSN); and (nD_SE_SI_SN, nD, SE, SI, SN); and (nD_SE_SI_nSN, nD, SE, SI, nSN); and (nD_nSE_SI_nSN, nD, nSE, SI, nSN); and (nD_nSE_nSI_nSN, nD, nSE, nSI, nSN); and (D_SE_nSI_SN, D, SE, nSI, SN); and (D_SE_nSI_nSN, D, SE, nSI, nSN); and (nD_SE_nSI_SN, nD, SE, nSI, SN); and (nD_SE_nSI_nSN, nD, SE, nSI, nSN); and (nD_nSE_SI_SN, nD, nSE, SI, SN); and (nD_nSE_nSI_SN, nD, nSE, nSI, SN); and (nSE_SI_SN, nSE, SI, SN); and (nSE_nSI_SN, nSE, nSI, SN); and (nD_SI_SN, nD, SI, SN); and (D_nSI_SN, D, nSI, SN); and (nD_nSI_nSN, nD, nSI, nSN); and (D_nSI_nSN, D, nSI, nSN); and (D_SE_SN, D, SE, SN); and (D_SE_nSN, D, SE, nSN); and (nD_SE_SN, nD, SE, SN); and (nD_SE_nSN, nD, SE, nSN); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, SN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, SN); `endif buf (SN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D) || (!(SE) && !(D) && !(SN))))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D) || (!(SE) && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKSND2BWP7T35P140LVT (SI, D, SE, CP, SN, Q, QN); input SI, D, SE, CP, SN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (D1, S, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (D1, S, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SN_SDFCHK, D_SE_SI_SN, 1'b1); tsmc_xbuf (D_SE_SI_nSN_SDFCHK, D_SE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_SI_SN_SDFCHK, D_nSE_SI_SN, 1'b1); tsmc_xbuf (D_nSE_SI_nSN_SDFCHK, D_nSE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_nSI_SN_SDFCHK, D_nSE_nSI_SN, 1'b1); tsmc_xbuf (D_nSE_nSI_nSN_SDFCHK, D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nD_SE_SI_SN_SDFCHK, nD_SE_SI_SN, 1'b1); tsmc_xbuf (nD_SE_SI_nSN_SDFCHK, nD_SE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_nSN_SDFCHK, nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_nSI_nSN_SDFCHK, nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (D_SE_nSI_SN_SDFCHK, D_SE_nSI_SN, 1'b1); tsmc_xbuf (D_SE_nSI_nSN_SDFCHK, D_SE_nSI_nSN, 1'b1); tsmc_xbuf (nD_SE_nSI_SN_SDFCHK, nD_SE_nSI_SN, 1'b1); tsmc_xbuf (nD_SE_nSI_nSN_SDFCHK, nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_SN_SDFCHK, nD_nSE_SI_SN, 1'b1); tsmc_xbuf (nD_nSE_nSI_SN_SDFCHK, nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nSE_SI_SN_SDFCHK, nSE_SI_SN, 1'b1); tsmc_xbuf (nSE_nSI_SN_SDFCHK, nSE_nSI_SN, 1'b1); tsmc_xbuf (nD_SI_SN_SDFCHK, nD_SI_SN, 1'b1); tsmc_xbuf (D_nSI_SN_SDFCHK, D_nSI_SN, 1'b1); tsmc_xbuf (nD_nSI_nSN_SDFCHK, nD_nSI_nSN, 1'b1); tsmc_xbuf (D_nSI_nSN_SDFCHK, D_nSI_nSN, 1'b1); tsmc_xbuf (D_SE_SN_SDFCHK, D_SE_SN, 1'b1); tsmc_xbuf (D_SE_nSN_SDFCHK, D_SE_nSN, 1'b1); tsmc_xbuf (nD_SE_SN_SDFCHK, nD_SE_SN, 1'b1); tsmc_xbuf (nD_SE_nSN_SDFCHK, nD_SE_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nSN, SN); and (D_SE_SI_SN, D, SE, SI, SN); and (D_SE_SI_nSN, D, SE, SI, nSN); and (D_nSE_SI_SN, D, nSE, SI, SN); and (D_nSE_SI_nSN, D, nSE, SI, nSN); and (D_nSE_nSI_SN, D, nSE, nSI, SN); and (D_nSE_nSI_nSN, D, nSE, nSI, nSN); and (nD_SE_SI_SN, nD, SE, SI, SN); and (nD_SE_SI_nSN, nD, SE, SI, nSN); and (nD_nSE_SI_nSN, nD, nSE, SI, nSN); and (nD_nSE_nSI_nSN, nD, nSE, nSI, nSN); and (D_SE_nSI_SN, D, SE, nSI, SN); and (D_SE_nSI_nSN, D, SE, nSI, nSN); and (nD_SE_nSI_SN, nD, SE, nSI, SN); and (nD_SE_nSI_nSN, nD, SE, nSI, nSN); and (nD_nSE_SI_SN, nD, nSE, SI, SN); and (nD_nSE_nSI_SN, nD, nSE, nSI, SN); and (nSE_SI_SN, nSE, SI, SN); and (nSE_nSI_SN, nSE, nSI, SN); and (nD_SI_SN, nD, SI, SN); and (D_nSI_SN, D, nSI, SN); and (nD_nSI_nSN, nD, nSI, nSN); and (D_nSI_nSN, D, nSI, nSN); and (D_SE_SN, D, SE, SN); and (D_SE_nSN, D, SE, nSN); and (nD_SE_SN, nD, SE, SN); and (nD_SE_nSN, nD, SE, nSN); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, SN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, SN); `endif buf (SN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D) || (!(SE) && !(D) && !(SN))))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D) || (!(SE) && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKSND4BWP7T35P140LVT (SI, D, SE, CP, SN, Q, QN); input SI, D, SE, CP, SN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (D1, S, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (D1, S, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SN_SDFCHK, D_SE_SI_SN, 1'b1); tsmc_xbuf (D_SE_SI_nSN_SDFCHK, D_SE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_SI_SN_SDFCHK, D_nSE_SI_SN, 1'b1); tsmc_xbuf (D_nSE_SI_nSN_SDFCHK, D_nSE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_nSI_SN_SDFCHK, D_nSE_nSI_SN, 1'b1); tsmc_xbuf (D_nSE_nSI_nSN_SDFCHK, D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nD_SE_SI_SN_SDFCHK, nD_SE_SI_SN, 1'b1); tsmc_xbuf (nD_SE_SI_nSN_SDFCHK, nD_SE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_nSN_SDFCHK, nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_nSI_nSN_SDFCHK, nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (D_SE_nSI_SN_SDFCHK, D_SE_nSI_SN, 1'b1); tsmc_xbuf (D_SE_nSI_nSN_SDFCHK, D_SE_nSI_nSN, 1'b1); tsmc_xbuf (nD_SE_nSI_SN_SDFCHK, nD_SE_nSI_SN, 1'b1); tsmc_xbuf (nD_SE_nSI_nSN_SDFCHK, nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_SN_SDFCHK, nD_nSE_SI_SN, 1'b1); tsmc_xbuf (nD_nSE_nSI_SN_SDFCHK, nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nSE_SI_SN_SDFCHK, nSE_SI_SN, 1'b1); tsmc_xbuf (nSE_nSI_SN_SDFCHK, nSE_nSI_SN, 1'b1); tsmc_xbuf (nD_SI_SN_SDFCHK, nD_SI_SN, 1'b1); tsmc_xbuf (D_nSI_SN_SDFCHK, D_nSI_SN, 1'b1); tsmc_xbuf (nD_nSI_nSN_SDFCHK, nD_nSI_nSN, 1'b1); tsmc_xbuf (D_nSI_nSN_SDFCHK, D_nSI_nSN, 1'b1); tsmc_xbuf (D_SE_SN_SDFCHK, D_SE_SN, 1'b1); tsmc_xbuf (D_SE_nSN_SDFCHK, D_SE_nSN, 1'b1); tsmc_xbuf (nD_SE_SN_SDFCHK, nD_SE_SN, 1'b1); tsmc_xbuf (nD_SE_nSN_SDFCHK, nD_SE_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nSN, SN); and (D_SE_SI_SN, D, SE, SI, SN); and (D_SE_SI_nSN, D, SE, SI, nSN); and (D_nSE_SI_SN, D, nSE, SI, SN); and (D_nSE_SI_nSN, D, nSE, SI, nSN); and (D_nSE_nSI_SN, D, nSE, nSI, SN); and (D_nSE_nSI_nSN, D, nSE, nSI, nSN); and (nD_SE_SI_SN, nD, SE, SI, SN); and (nD_SE_SI_nSN, nD, SE, SI, nSN); and (nD_nSE_SI_nSN, nD, nSE, SI, nSN); and (nD_nSE_nSI_nSN, nD, nSE, nSI, nSN); and (D_SE_nSI_SN, D, SE, nSI, SN); and (D_SE_nSI_nSN, D, SE, nSI, nSN); and (nD_SE_nSI_SN, nD, SE, nSI, SN); and (nD_SE_nSI_nSN, nD, SE, nSI, nSN); and (nD_nSE_SI_SN, nD, nSE, SI, SN); and (nD_nSE_nSI_SN, nD, nSE, nSI, SN); and (nSE_SI_SN, nSE, SI, SN); and (nSE_nSI_SN, nSE, nSI, SN); and (nD_SI_SN, nD, SI, SN); and (D_nSI_SN, D, nSI, SN); and (nD_nSI_nSN, nD, nSI, nSN); and (D_nSI_nSN, D, nSI, nSN); and (D_SE_SN, D, SE, SN); and (D_SE_nSN, D, SE, nSN); and (nD_SE_SN, nD, SE, SN); and (nD_SE_nSN, nD, SE, nSN); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, SN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, SN); `endif buf (SN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D) || (!(SE) && !(D) && !(SN))))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D) || (!(SE) && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKSNQD0BWP7T35P140LVT (SI, D, SE, CP, SN, Q); input SI, D, SE, CP, SN; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (D1, S, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (D1, S, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SN_SDFCHK, D_SE_SI_SN, 1'b1); tsmc_xbuf (D_SE_SI_nSN_SDFCHK, D_SE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_SI_SN_SDFCHK, D_nSE_SI_SN, 1'b1); tsmc_xbuf (D_nSE_SI_nSN_SDFCHK, D_nSE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_nSI_SN_SDFCHK, D_nSE_nSI_SN, 1'b1); tsmc_xbuf (D_nSE_nSI_nSN_SDFCHK, D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nD_SE_SI_SN_SDFCHK, nD_SE_SI_SN, 1'b1); tsmc_xbuf (nD_SE_SI_nSN_SDFCHK, nD_SE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_nSN_SDFCHK, nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_nSI_nSN_SDFCHK, nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (D_SE_nSI_SN_SDFCHK, D_SE_nSI_SN, 1'b1); tsmc_xbuf (D_SE_nSI_nSN_SDFCHK, D_SE_nSI_nSN, 1'b1); tsmc_xbuf (nD_SE_nSI_SN_SDFCHK, nD_SE_nSI_SN, 1'b1); tsmc_xbuf (nD_SE_nSI_nSN_SDFCHK, nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_SN_SDFCHK, nD_nSE_SI_SN, 1'b1); tsmc_xbuf (nD_nSE_nSI_SN_SDFCHK, nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nSE_SI_SN_SDFCHK, nSE_SI_SN, 1'b1); tsmc_xbuf (nSE_nSI_SN_SDFCHK, nSE_nSI_SN, 1'b1); tsmc_xbuf (nD_SI_SN_SDFCHK, nD_SI_SN, 1'b1); tsmc_xbuf (D_nSI_SN_SDFCHK, D_nSI_SN, 1'b1); tsmc_xbuf (D_nSI_nSN_SDFCHK, D_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSI_nSN_SDFCHK, nD_nSI_nSN, 1'b1); tsmc_xbuf (D_SE_SN_SDFCHK, D_SE_SN, 1'b1); tsmc_xbuf (D_SE_nSN_SDFCHK, D_SE_nSN, 1'b1); tsmc_xbuf (nD_SE_nSN_SDFCHK, nD_SE_nSN, 1'b1); tsmc_xbuf (nD_SE_SN_SDFCHK, nD_SE_SN, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nSN, SN); and (D_SE_SI_SN, D, SE, SI, SN); and (D_SE_SI_nSN, D, SE, SI, nSN); and (D_nSE_SI_SN, D, nSE, SI, SN); and (D_nSE_SI_nSN, D, nSE, SI, nSN); and (D_nSE_nSI_SN, D, nSE, nSI, SN); and (D_nSE_nSI_nSN, D, nSE, nSI, nSN); and (nD_SE_SI_SN, nD, SE, SI, SN); and (nD_SE_SI_nSN, nD, SE, SI, nSN); and (nD_nSE_SI_nSN, nD, nSE, SI, nSN); and (nD_nSE_nSI_nSN, nD, nSE, nSI, nSN); and (D_SE_nSI_SN, D, SE, nSI, SN); and (D_SE_nSI_nSN, D, SE, nSI, nSN); and (nD_SE_nSI_SN, nD, SE, nSI, SN); and (nD_SE_nSI_nSN, nD, SE, nSI, nSN); and (nD_nSE_SI_SN, nD, nSE, SI, SN); and (nD_nSE_nSI_SN, nD, nSE, nSI, SN); and (nSE_SI_SN, nSE, SI, SN); and (nSE_nSI_SN, nSE, nSI, SN); and (nD_SI_SN, nD, SI, SN); and (D_nSI_SN, D, nSI, SN); and (D_nSI_nSN, D, nSI, nSN); and (nD_nSI_nSN, nD, nSI, nSN); and (D_SE_SN, D, SE, SN); and (D_SE_nSN, D, SE, nSN); and (nD_SE_nSN, nD, SE, nSN); and (nD_SE_SN, nD, SE, SN); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, SN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, SN); `endif buf (SN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D) || (!(SE) && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKSNQD1BWP7T35P140LVT (SI, D, SE, CP, SN, Q); input SI, D, SE, CP, SN; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (D1, S, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (D1, S, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SN_SDFCHK, D_SE_SI_SN, 1'b1); tsmc_xbuf (D_SE_SI_nSN_SDFCHK, D_SE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_SI_SN_SDFCHK, D_nSE_SI_SN, 1'b1); tsmc_xbuf (D_nSE_SI_nSN_SDFCHK, D_nSE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_nSI_SN_SDFCHK, D_nSE_nSI_SN, 1'b1); tsmc_xbuf (D_nSE_nSI_nSN_SDFCHK, D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nD_SE_SI_SN_SDFCHK, nD_SE_SI_SN, 1'b1); tsmc_xbuf (nD_SE_SI_nSN_SDFCHK, nD_SE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_nSN_SDFCHK, nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_nSI_nSN_SDFCHK, nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (D_SE_nSI_SN_SDFCHK, D_SE_nSI_SN, 1'b1); tsmc_xbuf (D_SE_nSI_nSN_SDFCHK, D_SE_nSI_nSN, 1'b1); tsmc_xbuf (nD_SE_nSI_SN_SDFCHK, nD_SE_nSI_SN, 1'b1); tsmc_xbuf (nD_SE_nSI_nSN_SDFCHK, nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_SN_SDFCHK, nD_nSE_SI_SN, 1'b1); tsmc_xbuf (nD_nSE_nSI_SN_SDFCHK, nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nSE_SI_SN_SDFCHK, nSE_SI_SN, 1'b1); tsmc_xbuf (nSE_nSI_SN_SDFCHK, nSE_nSI_SN, 1'b1); tsmc_xbuf (nD_SI_SN_SDFCHK, nD_SI_SN, 1'b1); tsmc_xbuf (D_nSI_SN_SDFCHK, D_nSI_SN, 1'b1); tsmc_xbuf (D_nSI_nSN_SDFCHK, D_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSI_nSN_SDFCHK, nD_nSI_nSN, 1'b1); tsmc_xbuf (D_SE_SN_SDFCHK, D_SE_SN, 1'b1); tsmc_xbuf (D_SE_nSN_SDFCHK, D_SE_nSN, 1'b1); tsmc_xbuf (nD_SE_nSN_SDFCHK, nD_SE_nSN, 1'b1); tsmc_xbuf (nD_SE_SN_SDFCHK, nD_SE_SN, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nSN, SN); and (D_SE_SI_SN, D, SE, SI, SN); and (D_SE_SI_nSN, D, SE, SI, nSN); and (D_nSE_SI_SN, D, nSE, SI, SN); and (D_nSE_SI_nSN, D, nSE, SI, nSN); and (D_nSE_nSI_SN, D, nSE, nSI, SN); and (D_nSE_nSI_nSN, D, nSE, nSI, nSN); and (nD_SE_SI_SN, nD, SE, SI, SN); and (nD_SE_SI_nSN, nD, SE, SI, nSN); and (nD_nSE_SI_nSN, nD, nSE, SI, nSN); and (nD_nSE_nSI_nSN, nD, nSE, nSI, nSN); and (D_SE_nSI_SN, D, SE, nSI, SN); and (D_SE_nSI_nSN, D, SE, nSI, nSN); and (nD_SE_nSI_SN, nD, SE, nSI, SN); and (nD_SE_nSI_nSN, nD, SE, nSI, nSN); and (nD_nSE_SI_SN, nD, nSE, SI, SN); and (nD_nSE_nSI_SN, nD, nSE, nSI, SN); and (nSE_SI_SN, nSE, SI, SN); and (nSE_nSI_SN, nSE, nSI, SN); and (nD_SI_SN, nD, SI, SN); and (D_nSI_SN, D, nSI, SN); and (D_nSI_nSN, D, nSI, nSN); and (nD_nSI_nSN, nD, nSI, nSN); and (D_SE_SN, D, SE, SN); and (D_SE_nSN, D, SE, nSN); and (nD_SE_nSN, nD, SE, nSN); and (nD_SE_SN, nD, SE, SN); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, SN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, SN); `endif buf (SN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D) || (!(SE) && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKSNQD2BWP7T35P140LVT (SI, D, SE, CP, SN, Q); input SI, D, SE, CP, SN; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (D1, S, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (D1, S, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SN_SDFCHK, D_SE_SI_SN, 1'b1); tsmc_xbuf (D_SE_SI_nSN_SDFCHK, D_SE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_SI_SN_SDFCHK, D_nSE_SI_SN, 1'b1); tsmc_xbuf (D_nSE_SI_nSN_SDFCHK, D_nSE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_nSI_SN_SDFCHK, D_nSE_nSI_SN, 1'b1); tsmc_xbuf (D_nSE_nSI_nSN_SDFCHK, D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nD_SE_SI_SN_SDFCHK, nD_SE_SI_SN, 1'b1); tsmc_xbuf (nD_SE_SI_nSN_SDFCHK, nD_SE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_nSN_SDFCHK, nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_nSI_nSN_SDFCHK, nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (D_SE_nSI_SN_SDFCHK, D_SE_nSI_SN, 1'b1); tsmc_xbuf (D_SE_nSI_nSN_SDFCHK, D_SE_nSI_nSN, 1'b1); tsmc_xbuf (nD_SE_nSI_SN_SDFCHK, nD_SE_nSI_SN, 1'b1); tsmc_xbuf (nD_SE_nSI_nSN_SDFCHK, nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_SN_SDFCHK, nD_nSE_SI_SN, 1'b1); tsmc_xbuf (nD_nSE_nSI_SN_SDFCHK, nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nSE_SI_SN_SDFCHK, nSE_SI_SN, 1'b1); tsmc_xbuf (nSE_nSI_SN_SDFCHK, nSE_nSI_SN, 1'b1); tsmc_xbuf (nD_SI_SN_SDFCHK, nD_SI_SN, 1'b1); tsmc_xbuf (D_nSI_SN_SDFCHK, D_nSI_SN, 1'b1); tsmc_xbuf (D_nSI_nSN_SDFCHK, D_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSI_nSN_SDFCHK, nD_nSI_nSN, 1'b1); tsmc_xbuf (D_SE_SN_SDFCHK, D_SE_SN, 1'b1); tsmc_xbuf (D_SE_nSN_SDFCHK, D_SE_nSN, 1'b1); tsmc_xbuf (nD_SE_nSN_SDFCHK, nD_SE_nSN, 1'b1); tsmc_xbuf (nD_SE_SN_SDFCHK, nD_SE_SN, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nSN, SN); and (D_SE_SI_SN, D, SE, SI, SN); and (D_SE_SI_nSN, D, SE, SI, nSN); and (D_nSE_SI_SN, D, nSE, SI, SN); and (D_nSE_SI_nSN, D, nSE, SI, nSN); and (D_nSE_nSI_SN, D, nSE, nSI, SN); and (D_nSE_nSI_nSN, D, nSE, nSI, nSN); and (nD_SE_SI_SN, nD, SE, SI, SN); and (nD_SE_SI_nSN, nD, SE, SI, nSN); and (nD_nSE_SI_nSN, nD, nSE, SI, nSN); and (nD_nSE_nSI_nSN, nD, nSE, nSI, nSN); and (D_SE_nSI_SN, D, SE, nSI, SN); and (D_SE_nSI_nSN, D, SE, nSI, nSN); and (nD_SE_nSI_SN, nD, SE, nSI, SN); and (nD_SE_nSI_nSN, nD, SE, nSI, nSN); and (nD_nSE_SI_SN, nD, nSE, SI, SN); and (nD_nSE_nSI_SN, nD, nSE, nSI, SN); and (nSE_SI_SN, nSE, SI, SN); and (nSE_nSI_SN, nSE, nSI, SN); and (nD_SI_SN, nD, SI, SN); and (D_nSI_SN, D, nSI, SN); and (D_nSI_nSN, D, nSI, nSN); and (nD_nSI_nSN, nD, nSI, nSN); and (D_SE_SN, D, SE, SN); and (D_SE_nSN, D, SE, nSN); and (nD_SE_nSN, nD, SE, nSN); and (nD_SE_SN, nD, SE, SN); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, SN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, SN); `endif buf (SN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D) || (!(SE) && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFKSNQD4BWP7T35P140LVT (SI, D, SE, CP, SN, Q); input SI, D, SE, CP, SN; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d, SN_d; pullup (CDN); pullup (SDN); not (S, SN_d); or (D1, S, D_d); tsmc_mux (D2, D1, SI_d, SE_d); tsmc_dff (Q_buf, D2, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); not (S, SN); or (D1, S, D); tsmc_mux (D2, D1, SI, SE); tsmc_dff (Q_buf, D2, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SN_SDFCHK, D_SE_SI_SN, 1'b1); tsmc_xbuf (D_SE_SI_nSN_SDFCHK, D_SE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_SI_SN_SDFCHK, D_nSE_SI_SN, 1'b1); tsmc_xbuf (D_nSE_SI_nSN_SDFCHK, D_nSE_SI_nSN, 1'b1); tsmc_xbuf (D_nSE_nSI_SN_SDFCHK, D_nSE_nSI_SN, 1'b1); tsmc_xbuf (D_nSE_nSI_nSN_SDFCHK, D_nSE_nSI_nSN, 1'b1); tsmc_xbuf (nD_SE_SI_SN_SDFCHK, nD_SE_SI_SN, 1'b1); tsmc_xbuf (nD_SE_SI_nSN_SDFCHK, nD_SE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_nSN_SDFCHK, nD_nSE_SI_nSN, 1'b1); tsmc_xbuf (nD_nSE_nSI_nSN_SDFCHK, nD_nSE_nSI_nSN, 1'b1); tsmc_xbuf (D_SE_nSI_SN_SDFCHK, D_SE_nSI_SN, 1'b1); tsmc_xbuf (D_SE_nSI_nSN_SDFCHK, D_SE_nSI_nSN, 1'b1); tsmc_xbuf (nD_SE_nSI_SN_SDFCHK, nD_SE_nSI_SN, 1'b1); tsmc_xbuf (nD_SE_nSI_nSN_SDFCHK, nD_SE_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSE_SI_SN_SDFCHK, nD_nSE_SI_SN, 1'b1); tsmc_xbuf (nD_nSE_nSI_SN_SDFCHK, nD_nSE_nSI_SN, 1'b1); tsmc_xbuf (nSE_SI_SN_SDFCHK, nSE_SI_SN, 1'b1); tsmc_xbuf (nSE_nSI_SN_SDFCHK, nSE_nSI_SN, 1'b1); tsmc_xbuf (nD_SI_SN_SDFCHK, nD_SI_SN, 1'b1); tsmc_xbuf (D_nSI_SN_SDFCHK, D_nSI_SN, 1'b1); tsmc_xbuf (D_nSI_nSN_SDFCHK, D_nSI_nSN, 1'b1); tsmc_xbuf (nD_nSI_nSN_SDFCHK, nD_nSI_nSN, 1'b1); tsmc_xbuf (D_SE_SN_SDFCHK, D_SE_SN, 1'b1); tsmc_xbuf (D_SE_nSN_SDFCHK, D_SE_nSN, 1'b1); tsmc_xbuf (nD_SE_nSN_SDFCHK, nD_SE_nSN, 1'b1); tsmc_xbuf (nD_SE_SN_SDFCHK, nD_SE_SN, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nSN, SN); and (D_SE_SI_SN, D, SE, SI, SN); and (D_SE_SI_nSN, D, SE, SI, nSN); and (D_nSE_SI_SN, D, nSE, SI, SN); and (D_nSE_SI_nSN, D, nSE, SI, nSN); and (D_nSE_nSI_SN, D, nSE, nSI, SN); and (D_nSE_nSI_nSN, D, nSE, nSI, nSN); and (nD_SE_SI_SN, nD, SE, SI, SN); and (nD_SE_SI_nSN, nD, SE, SI, nSN); and (nD_nSE_SI_nSN, nD, nSE, SI, nSN); and (nD_nSE_nSI_nSN, nD, nSE, nSI, nSN); and (D_SE_nSI_SN, D, SE, nSI, SN); and (D_SE_nSI_nSN, D, SE, nSI, nSN); and (nD_SE_nSI_SN, nD, SE, nSI, SN); and (nD_SE_nSI_nSN, nD, SE, nSI, nSN); and (nD_nSE_SI_SN, nD, nSE, SI, SN); and (nD_nSE_nSI_SN, nD, nSE, nSI, SN); and (nSE_SI_SN, nSE, SI, SN); and (nSE_nSI_SN, nSE, nSI, SN); and (nD_SI_SN, nD, SI, SN); and (D_nSI_SN, D, nSI, SN); and (D_nSI_nSN, D, nSI, nSN); and (nD_nSI_nSN, nD, nSI, nSN); and (D_SE_SN, D, SE, SN); and (D_SE_nSN, D, SE, nSN); and (nD_SE_nSN, nD, SE, nSN); and (nD_SE_SN, nD, SE, SN); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); and (D_check, SE_int_not, SN_d); `else not (SE_int_not, SE); buf (SI_check, SE); and (D_check, SE_int_not, SN); `endif buf (SN_check, SE_int_not); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); tsmc_xbuf (SN_DEFCHK, SN_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D) || (!(SE) && !(D) && !(SN))))) = (0, 0); $width (posedge CP &&& D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_nSN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SN_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SN_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier,,, CP_d, SN_d); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier,,, CP_d, SN_d); `else $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SN_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSI_nSN_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_nSN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SN_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_SI_SDFCHK, negedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SN , 0, 0, notifier); $setuphold (posedge CP &&& nD_nSE_nSI_SDFCHK, negedge SN , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFMD0BWP7T35P140LVT (DA, DB, SA, SI, SE, CP, Q, QN); input DA, DB, SA, SI, SE, CP; output Q, QN; reg notifier; `ifdef NTC wire DA_d, DB_d, SA_d, SI_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D, DB_d, DA_d, SA_d); tsmc_mux (D_i, D, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D, DB, DA, SA); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (DA_DB_SA_SE_SI_SDFCHK, DA_DB_SA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSE_SI_SDFCHK, DA_DB_SA_nSE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSE_nSI_SDFCHK, DA_DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_SI_SDFCHK, DA_DB_nSA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSE_SI_SDFCHK, DA_DB_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSE_nSI_SDFCHK, DA_DB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_SI_SDFCHK, DA_nDB_SA_SE_SI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSE_SI_SDFCHK, DA_nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSE_nSI_SDFCHK, DA_nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_SI_SDFCHK, DA_nDB_nSA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_SI_SDFCHK, nDA_DB_SA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_SI_SDFCHK, nDA_DB_nSA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSE_SI_SDFCHK, nDA_DB_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSE_nSI_SDFCHK, nDA_DB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_SI_SDFCHK, nDA_nDB_SA_SE_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_SI_SDFCHK, nDA_nDB_nSA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_SE_nSI_SDFCHK, DA_DB_SA_SE_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_nSI_SDFCHK, DA_DB_nSA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_nSI_SDFCHK, DA_nDB_SA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_nSI_SDFCHK, DA_nDB_nSA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_nSE_SI_SDFCHK, DA_nDB_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_nSA_nSE_nSI_SDFCHK, DA_nDB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_nSI_SDFCHK, nDA_DB_SA_SE_nSI, 1'b1); tsmc_xbuf (nDA_DB_SA_nSE_SI_SDFCHK, nDA_DB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_nSE_nSI_SDFCHK, nDA_DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_nSI_SDFCHK, nDA_DB_nSA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_nSI_SDFCHK, nDA_nDB_SA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_nSE_SI_SDFCHK, nDA_nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nDB_SA_nSE_nSI_SDFCHK, nDA_nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_nSI_SDFCHK, nDA_nDB_nSA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_nSE_SI_SDFCHK, nDA_nDB_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_nSE_nSI_SDFCHK, nDA_nDB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DB_SA_nSE_SI_SDFCHK, DB_SA_nSE_SI, 1'b1); tsmc_xbuf (DB_SA_nSE_nSI_SDFCHK, DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDB_SA_nSE_SI_SDFCHK, nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDB_SA_nSE_nSI_SDFCHK, nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nSA_nSE_SI_SDFCHK, DA_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_nSA_nSE_nSI_SDFCHK, DA_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nSA_nSE_SI_SDFCHK, nDA_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nSA_nSE_nSI_SDFCHK, nDA_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSE_SI_SDFCHK, DA_nDB_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_nSE_nSI_SDFCHK, DA_nDB_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSE_SI_SDFCHK, nDA_DB_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSE_nSI_SDFCHK, nDA_DB_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SI_SDFCHK, DA_nDB_nSA_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_SI_SDFCHK, nDA_DB_SA_SI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SI_SDFCHK, nDA_nDB_SA_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SI_SDFCHK, nDA_nDB_nSA_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSI_SDFCHK, DA_DB_SA_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSI_SDFCHK, DA_nDB_SA_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSI_SDFCHK, DA_DB_nSA_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSI_SDFCHK, nDA_DB_nSA_nSI, 1'b1); tsmc_xbuf (DA_DB_SA_SE_SDFCHK, DA_DB_SA_SE, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_SDFCHK, DA_nDB_SA_SE, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_SDFCHK, DA_DB_nSA_SE, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_SDFCHK, DA_nDB_nSA_SE, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_SDFCHK, nDA_DB_SA_SE, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_SDFCHK, nDA_nDB_SA_SE, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_SDFCHK, nDA_DB_nSA_SE, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_SDFCHK, nDA_nDB_nSA_SE, 1'b1); not (nDA, DA); not (nDB, DB); not (nSA, SA); not (nSI, SI); not (nSE, SE); and (DA_DB_SA_SE_SI, DA, DB, SA, SE, SI); and (DA_DB_SA_nSE_SI, DA, DB, SA, nSE, SI); and (DA_DB_SA_nSE_nSI, DA, DB, SA, nSE, nSI); and (DA_DB_nSA_SE_SI, DA, DB, nSA, SE, SI); and (DA_DB_nSA_nSE_SI, DA, DB, nSA, nSE, SI); and (DA_DB_nSA_nSE_nSI, DA, DB, nSA, nSE, nSI); and (DA_nDB_SA_SE_SI, DA, nDB, SA, SE, SI); and (DA_nDB_SA_nSE_SI, DA, nDB, SA, nSE, SI); and (DA_nDB_SA_nSE_nSI, DA, nDB, SA, nSE, nSI); and (DA_nDB_nSA_SE_SI, DA, nDB, nSA, SE, SI); and (nDA_DB_SA_SE_SI, nDA, DB, SA, SE, SI); and (nDA_DB_nSA_SE_SI, nDA, DB, nSA, SE, SI); and (nDA_DB_nSA_nSE_SI, nDA, DB, nSA, nSE, SI); and (nDA_DB_nSA_nSE_nSI, nDA, DB, nSA, nSE, nSI); and (nDA_nDB_SA_SE_SI, nDA, nDB, SA, SE, SI); and (nDA_nDB_nSA_SE_SI, nDA, nDB, nSA, SE, SI); and (DA_DB_SA_SE_nSI, DA, DB, SA, SE, nSI); and (DA_DB_nSA_SE_nSI, DA, DB, nSA, SE, nSI); and (DA_nDB_SA_SE_nSI, DA, nDB, SA, SE, nSI); and (DA_nDB_nSA_SE_nSI, DA, nDB, nSA, SE, nSI); and (DA_nDB_nSA_nSE_SI, DA, nDB, nSA, nSE, SI); and (DA_nDB_nSA_nSE_nSI, DA, nDB, nSA, nSE, nSI); and (nDA_DB_SA_SE_nSI, nDA, DB, SA, SE, nSI); and (nDA_DB_SA_nSE_SI, nDA, DB, SA, nSE, SI); and (nDA_DB_SA_nSE_nSI, nDA, DB, SA, nSE, nSI); and (nDA_DB_nSA_SE_nSI, nDA, DB, nSA, SE, nSI); and (nDA_nDB_SA_SE_nSI, nDA, nDB, SA, SE, nSI); and (nDA_nDB_SA_nSE_SI, nDA, nDB, SA, nSE, SI); and (nDA_nDB_SA_nSE_nSI, nDA, nDB, SA, nSE, nSI); and (nDA_nDB_nSA_SE_nSI, nDA, nDB, nSA, SE, nSI); and (nDA_nDB_nSA_nSE_SI, nDA, nDB, nSA, nSE, SI); and (nDA_nDB_nSA_nSE_nSI, nDA, nDB, nSA, nSE, nSI); and (DB_SA_nSE_SI, DB, SA, nSE, SI); and (DB_SA_nSE_nSI, DB, SA, nSE, nSI); and (nDB_SA_nSE_SI, nDB, SA, nSE, SI); and (nDB_SA_nSE_nSI, nDB, SA, nSE, nSI); and (DA_nSA_nSE_SI, DA, nSA, nSE, SI); and (DA_nSA_nSE_nSI, DA, nSA, nSE, nSI); and (nDA_nSA_nSE_SI, nDA, nSA, nSE, SI); and (nDA_nSA_nSE_nSI, nDA, nSA, nSE, nSI); and (DA_nDB_nSE_SI, DA, nDB, nSE, SI); and (DA_nDB_nSE_nSI, DA, nDB, nSE, nSI); and (nDA_DB_nSE_SI, nDA, DB, nSE, SI); and (nDA_DB_nSE_nSI, nDA, DB, nSE, nSI); and (DA_nDB_nSA_SI, DA, nDB, nSA, SI); and (nDA_DB_SA_SI, nDA, DB, SA, SI); and (nDA_nDB_SA_SI, nDA, nDB, SA, SI); and (nDA_nDB_nSA_SI, nDA, nDB, nSA, SI); and (DA_DB_SA_nSI, DA, DB, SA, nSI); and (DA_nDB_SA_nSI, DA, nDB, SA, nSI); and (DA_DB_nSA_nSI, DA, DB, nSA, nSI); and (nDA_DB_nSA_nSI, nDA, DB, nSA, nSI); and (DA_DB_SA_SE, DA, DB, SA, SE); and (DA_nDB_SA_SE, DA, nDB, SA, SE); and (DA_DB_nSA_SE, DA, DB, nSA, SE); and (DA_nDB_nSA_SE, DA, nDB, nSA, SE); and (nDA_DB_SA_SE, nDA, DB, SA, SE); and (nDA_nDB_SA_SE, nDA, nDB, SA, SE); and (nDA_DB_nSA_SE, nDA, DB, nSA, SE); and (nDA_nDB_nSA_SE, nDA, nDB, nSA, SE); // Timing logics defined for default constraint check `ifdef NTC not (SA_int_not, SA_d); not (SE_int_not, SE_d); buf (SI_check, SE_d); and (DA_check, SA_d, SE_int_not); `else not (SA_int_not, SA); not (SE_int_not, SE); buf (SI_check, SE); and (DA_check, SA, SE_int_not); `endif buf (SA_check, SE_int_not); and (DB_check, SA_int_not, SE_int_not); or (CP_check, SI_check, DA_check, SA_check, DB_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (DB_DEFCHK, DB_check, 1'b1); tsmc_xbuf (DA_DEFCHK, DA_check, 1'b1); tsmc_xbuf (SA_DEFCHK, SA_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && SA && DA) || (!(SE) && !(SA) && DB)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && SA && DA) || (!(SE) && !(SA) && DB)))) = (0, 0); $width (posedge CP &&& DA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFMD1BWP7T35P140LVT (DA, DB, SA, SI, SE, CP, Q, QN); input DA, DB, SA, SI, SE, CP; output Q, QN; reg notifier; `ifdef NTC wire DA_d, DB_d, SA_d, SI_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D, DB_d, DA_d, SA_d); tsmc_mux (D_i, D, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D, DB, DA, SA); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (DA_DB_SA_SE_SI_SDFCHK, DA_DB_SA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSE_SI_SDFCHK, DA_DB_SA_nSE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSE_nSI_SDFCHK, DA_DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_SI_SDFCHK, DA_DB_nSA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSE_SI_SDFCHK, DA_DB_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSE_nSI_SDFCHK, DA_DB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_SI_SDFCHK, DA_nDB_SA_SE_SI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSE_SI_SDFCHK, DA_nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSE_nSI_SDFCHK, DA_nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_SI_SDFCHK, DA_nDB_nSA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_SI_SDFCHK, nDA_DB_SA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_SI_SDFCHK, nDA_DB_nSA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSE_SI_SDFCHK, nDA_DB_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSE_nSI_SDFCHK, nDA_DB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_SI_SDFCHK, nDA_nDB_SA_SE_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_SI_SDFCHK, nDA_nDB_nSA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_SE_nSI_SDFCHK, DA_DB_SA_SE_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_nSI_SDFCHK, DA_DB_nSA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_nSI_SDFCHK, DA_nDB_SA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_nSI_SDFCHK, DA_nDB_nSA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_nSE_SI_SDFCHK, DA_nDB_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_nSA_nSE_nSI_SDFCHK, DA_nDB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_nSI_SDFCHK, nDA_DB_SA_SE_nSI, 1'b1); tsmc_xbuf (nDA_DB_SA_nSE_SI_SDFCHK, nDA_DB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_nSE_nSI_SDFCHK, nDA_DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_nSI_SDFCHK, nDA_DB_nSA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_nSI_SDFCHK, nDA_nDB_SA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_nSE_SI_SDFCHK, nDA_nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nDB_SA_nSE_nSI_SDFCHK, nDA_nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_nSI_SDFCHK, nDA_nDB_nSA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_nSE_SI_SDFCHK, nDA_nDB_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_nSE_nSI_SDFCHK, nDA_nDB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DB_SA_nSE_SI_SDFCHK, DB_SA_nSE_SI, 1'b1); tsmc_xbuf (DB_SA_nSE_nSI_SDFCHK, DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDB_SA_nSE_SI_SDFCHK, nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDB_SA_nSE_nSI_SDFCHK, nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nSA_nSE_SI_SDFCHK, DA_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_nSA_nSE_nSI_SDFCHK, DA_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nSA_nSE_SI_SDFCHK, nDA_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nSA_nSE_nSI_SDFCHK, nDA_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSE_SI_SDFCHK, DA_nDB_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_nSE_nSI_SDFCHK, DA_nDB_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSE_SI_SDFCHK, nDA_DB_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSE_nSI_SDFCHK, nDA_DB_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SI_SDFCHK, DA_nDB_nSA_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_SI_SDFCHK, nDA_DB_SA_SI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SI_SDFCHK, nDA_nDB_SA_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SI_SDFCHK, nDA_nDB_nSA_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSI_SDFCHK, DA_DB_SA_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSI_SDFCHK, DA_nDB_SA_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSI_SDFCHK, DA_DB_nSA_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSI_SDFCHK, nDA_DB_nSA_nSI, 1'b1); tsmc_xbuf (DA_DB_SA_SE_SDFCHK, DA_DB_SA_SE, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_SDFCHK, DA_nDB_SA_SE, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_SDFCHK, DA_DB_nSA_SE, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_SDFCHK, DA_nDB_nSA_SE, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_SDFCHK, nDA_DB_SA_SE, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_SDFCHK, nDA_nDB_SA_SE, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_SDFCHK, nDA_DB_nSA_SE, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_SDFCHK, nDA_nDB_nSA_SE, 1'b1); not (nDA, DA); not (nDB, DB); not (nSA, SA); not (nSI, SI); not (nSE, SE); and (DA_DB_SA_SE_SI, DA, DB, SA, SE, SI); and (DA_DB_SA_nSE_SI, DA, DB, SA, nSE, SI); and (DA_DB_SA_nSE_nSI, DA, DB, SA, nSE, nSI); and (DA_DB_nSA_SE_SI, DA, DB, nSA, SE, SI); and (DA_DB_nSA_nSE_SI, DA, DB, nSA, nSE, SI); and (DA_DB_nSA_nSE_nSI, DA, DB, nSA, nSE, nSI); and (DA_nDB_SA_SE_SI, DA, nDB, SA, SE, SI); and (DA_nDB_SA_nSE_SI, DA, nDB, SA, nSE, SI); and (DA_nDB_SA_nSE_nSI, DA, nDB, SA, nSE, nSI); and (DA_nDB_nSA_SE_SI, DA, nDB, nSA, SE, SI); and (nDA_DB_SA_SE_SI, nDA, DB, SA, SE, SI); and (nDA_DB_nSA_SE_SI, nDA, DB, nSA, SE, SI); and (nDA_DB_nSA_nSE_SI, nDA, DB, nSA, nSE, SI); and (nDA_DB_nSA_nSE_nSI, nDA, DB, nSA, nSE, nSI); and (nDA_nDB_SA_SE_SI, nDA, nDB, SA, SE, SI); and (nDA_nDB_nSA_SE_SI, nDA, nDB, nSA, SE, SI); and (DA_DB_SA_SE_nSI, DA, DB, SA, SE, nSI); and (DA_DB_nSA_SE_nSI, DA, DB, nSA, SE, nSI); and (DA_nDB_SA_SE_nSI, DA, nDB, SA, SE, nSI); and (DA_nDB_nSA_SE_nSI, DA, nDB, nSA, SE, nSI); and (DA_nDB_nSA_nSE_SI, DA, nDB, nSA, nSE, SI); and (DA_nDB_nSA_nSE_nSI, DA, nDB, nSA, nSE, nSI); and (nDA_DB_SA_SE_nSI, nDA, DB, SA, SE, nSI); and (nDA_DB_SA_nSE_SI, nDA, DB, SA, nSE, SI); and (nDA_DB_SA_nSE_nSI, nDA, DB, SA, nSE, nSI); and (nDA_DB_nSA_SE_nSI, nDA, DB, nSA, SE, nSI); and (nDA_nDB_SA_SE_nSI, nDA, nDB, SA, SE, nSI); and (nDA_nDB_SA_nSE_SI, nDA, nDB, SA, nSE, SI); and (nDA_nDB_SA_nSE_nSI, nDA, nDB, SA, nSE, nSI); and (nDA_nDB_nSA_SE_nSI, nDA, nDB, nSA, SE, nSI); and (nDA_nDB_nSA_nSE_SI, nDA, nDB, nSA, nSE, SI); and (nDA_nDB_nSA_nSE_nSI, nDA, nDB, nSA, nSE, nSI); and (DB_SA_nSE_SI, DB, SA, nSE, SI); and (DB_SA_nSE_nSI, DB, SA, nSE, nSI); and (nDB_SA_nSE_SI, nDB, SA, nSE, SI); and (nDB_SA_nSE_nSI, nDB, SA, nSE, nSI); and (DA_nSA_nSE_SI, DA, nSA, nSE, SI); and (DA_nSA_nSE_nSI, DA, nSA, nSE, nSI); and (nDA_nSA_nSE_SI, nDA, nSA, nSE, SI); and (nDA_nSA_nSE_nSI, nDA, nSA, nSE, nSI); and (DA_nDB_nSE_SI, DA, nDB, nSE, SI); and (DA_nDB_nSE_nSI, DA, nDB, nSE, nSI); and (nDA_DB_nSE_SI, nDA, DB, nSE, SI); and (nDA_DB_nSE_nSI, nDA, DB, nSE, nSI); and (DA_nDB_nSA_SI, DA, nDB, nSA, SI); and (nDA_DB_SA_SI, nDA, DB, SA, SI); and (nDA_nDB_SA_SI, nDA, nDB, SA, SI); and (nDA_nDB_nSA_SI, nDA, nDB, nSA, SI); and (DA_DB_SA_nSI, DA, DB, SA, nSI); and (DA_nDB_SA_nSI, DA, nDB, SA, nSI); and (DA_DB_nSA_nSI, DA, DB, nSA, nSI); and (nDA_DB_nSA_nSI, nDA, DB, nSA, nSI); and (DA_DB_SA_SE, DA, DB, SA, SE); and (DA_nDB_SA_SE, DA, nDB, SA, SE); and (DA_DB_nSA_SE, DA, DB, nSA, SE); and (DA_nDB_nSA_SE, DA, nDB, nSA, SE); and (nDA_DB_SA_SE, nDA, DB, SA, SE); and (nDA_nDB_SA_SE, nDA, nDB, SA, SE); and (nDA_DB_nSA_SE, nDA, DB, nSA, SE); and (nDA_nDB_nSA_SE, nDA, nDB, nSA, SE); // Timing logics defined for default constraint check `ifdef NTC not (SA_int_not, SA_d); not (SE_int_not, SE_d); buf (SI_check, SE_d); and (DA_check, SA_d, SE_int_not); `else not (SA_int_not, SA); not (SE_int_not, SE); buf (SI_check, SE); and (DA_check, SA, SE_int_not); `endif buf (SA_check, SE_int_not); and (DB_check, SA_int_not, SE_int_not); or (CP_check, SI_check, DA_check, SA_check, DB_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (DB_DEFCHK, DB_check, 1'b1); tsmc_xbuf (DA_DEFCHK, DA_check, 1'b1); tsmc_xbuf (SA_DEFCHK, SA_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && SA && DA) || (!(SE) && !(SA) && DB)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && SA && DA) || (!(SE) && !(SA) && DB)))) = (0, 0); $width (posedge CP &&& DA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFMD2BWP7T35P140LVT (DA, DB, SA, SI, SE, CP, Q, QN); input DA, DB, SA, SI, SE, CP; output Q, QN; reg notifier; `ifdef NTC wire DA_d, DB_d, SA_d, SI_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D, DB_d, DA_d, SA_d); tsmc_mux (D_i, D, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D, DB, DA, SA); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (DA_DB_SA_SE_SI_SDFCHK, DA_DB_SA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSE_SI_SDFCHK, DA_DB_SA_nSE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSE_nSI_SDFCHK, DA_DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_SI_SDFCHK, DA_DB_nSA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSE_SI_SDFCHK, DA_DB_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSE_nSI_SDFCHK, DA_DB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_SI_SDFCHK, DA_nDB_SA_SE_SI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSE_SI_SDFCHK, DA_nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSE_nSI_SDFCHK, DA_nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_SI_SDFCHK, DA_nDB_nSA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_SI_SDFCHK, nDA_DB_SA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_SI_SDFCHK, nDA_DB_nSA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSE_SI_SDFCHK, nDA_DB_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSE_nSI_SDFCHK, nDA_DB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_SI_SDFCHK, nDA_nDB_SA_SE_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_SI_SDFCHK, nDA_nDB_nSA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_SE_nSI_SDFCHK, DA_DB_SA_SE_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_nSI_SDFCHK, DA_DB_nSA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_nSI_SDFCHK, DA_nDB_SA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_nSI_SDFCHK, DA_nDB_nSA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_nSE_SI_SDFCHK, DA_nDB_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_nSA_nSE_nSI_SDFCHK, DA_nDB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_nSI_SDFCHK, nDA_DB_SA_SE_nSI, 1'b1); tsmc_xbuf (nDA_DB_SA_nSE_SI_SDFCHK, nDA_DB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_nSE_nSI_SDFCHK, nDA_DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_nSI_SDFCHK, nDA_DB_nSA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_nSI_SDFCHK, nDA_nDB_SA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_nSE_SI_SDFCHK, nDA_nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nDB_SA_nSE_nSI_SDFCHK, nDA_nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_nSI_SDFCHK, nDA_nDB_nSA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_nSE_SI_SDFCHK, nDA_nDB_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_nSE_nSI_SDFCHK, nDA_nDB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DB_SA_nSE_SI_SDFCHK, DB_SA_nSE_SI, 1'b1); tsmc_xbuf (DB_SA_nSE_nSI_SDFCHK, DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDB_SA_nSE_SI_SDFCHK, nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDB_SA_nSE_nSI_SDFCHK, nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nSA_nSE_SI_SDFCHK, DA_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_nSA_nSE_nSI_SDFCHK, DA_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nSA_nSE_SI_SDFCHK, nDA_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nSA_nSE_nSI_SDFCHK, nDA_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSE_SI_SDFCHK, DA_nDB_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_nSE_nSI_SDFCHK, DA_nDB_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSE_SI_SDFCHK, nDA_DB_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSE_nSI_SDFCHK, nDA_DB_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SI_SDFCHK, DA_nDB_nSA_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_SI_SDFCHK, nDA_DB_SA_SI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SI_SDFCHK, nDA_nDB_SA_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SI_SDFCHK, nDA_nDB_nSA_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSI_SDFCHK, DA_DB_SA_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSI_SDFCHK, DA_nDB_SA_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSI_SDFCHK, DA_DB_nSA_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSI_SDFCHK, nDA_DB_nSA_nSI, 1'b1); tsmc_xbuf (DA_DB_SA_SE_SDFCHK, DA_DB_SA_SE, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_SDFCHK, DA_nDB_SA_SE, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_SDFCHK, DA_DB_nSA_SE, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_SDFCHK, DA_nDB_nSA_SE, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_SDFCHK, nDA_DB_SA_SE, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_SDFCHK, nDA_nDB_SA_SE, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_SDFCHK, nDA_DB_nSA_SE, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_SDFCHK, nDA_nDB_nSA_SE, 1'b1); not (nDA, DA); not (nDB, DB); not (nSA, SA); not (nSI, SI); not (nSE, SE); and (DA_DB_SA_SE_SI, DA, DB, SA, SE, SI); and (DA_DB_SA_nSE_SI, DA, DB, SA, nSE, SI); and (DA_DB_SA_nSE_nSI, DA, DB, SA, nSE, nSI); and (DA_DB_nSA_SE_SI, DA, DB, nSA, SE, SI); and (DA_DB_nSA_nSE_SI, DA, DB, nSA, nSE, SI); and (DA_DB_nSA_nSE_nSI, DA, DB, nSA, nSE, nSI); and (DA_nDB_SA_SE_SI, DA, nDB, SA, SE, SI); and (DA_nDB_SA_nSE_SI, DA, nDB, SA, nSE, SI); and (DA_nDB_SA_nSE_nSI, DA, nDB, SA, nSE, nSI); and (DA_nDB_nSA_SE_SI, DA, nDB, nSA, SE, SI); and (nDA_DB_SA_SE_SI, nDA, DB, SA, SE, SI); and (nDA_DB_nSA_SE_SI, nDA, DB, nSA, SE, SI); and (nDA_DB_nSA_nSE_SI, nDA, DB, nSA, nSE, SI); and (nDA_DB_nSA_nSE_nSI, nDA, DB, nSA, nSE, nSI); and (nDA_nDB_SA_SE_SI, nDA, nDB, SA, SE, SI); and (nDA_nDB_nSA_SE_SI, nDA, nDB, nSA, SE, SI); and (DA_DB_SA_SE_nSI, DA, DB, SA, SE, nSI); and (DA_DB_nSA_SE_nSI, DA, DB, nSA, SE, nSI); and (DA_nDB_SA_SE_nSI, DA, nDB, SA, SE, nSI); and (DA_nDB_nSA_SE_nSI, DA, nDB, nSA, SE, nSI); and (DA_nDB_nSA_nSE_SI, DA, nDB, nSA, nSE, SI); and (DA_nDB_nSA_nSE_nSI, DA, nDB, nSA, nSE, nSI); and (nDA_DB_SA_SE_nSI, nDA, DB, SA, SE, nSI); and (nDA_DB_SA_nSE_SI, nDA, DB, SA, nSE, SI); and (nDA_DB_SA_nSE_nSI, nDA, DB, SA, nSE, nSI); and (nDA_DB_nSA_SE_nSI, nDA, DB, nSA, SE, nSI); and (nDA_nDB_SA_SE_nSI, nDA, nDB, SA, SE, nSI); and (nDA_nDB_SA_nSE_SI, nDA, nDB, SA, nSE, SI); and (nDA_nDB_SA_nSE_nSI, nDA, nDB, SA, nSE, nSI); and (nDA_nDB_nSA_SE_nSI, nDA, nDB, nSA, SE, nSI); and (nDA_nDB_nSA_nSE_SI, nDA, nDB, nSA, nSE, SI); and (nDA_nDB_nSA_nSE_nSI, nDA, nDB, nSA, nSE, nSI); and (DB_SA_nSE_SI, DB, SA, nSE, SI); and (DB_SA_nSE_nSI, DB, SA, nSE, nSI); and (nDB_SA_nSE_SI, nDB, SA, nSE, SI); and (nDB_SA_nSE_nSI, nDB, SA, nSE, nSI); and (DA_nSA_nSE_SI, DA, nSA, nSE, SI); and (DA_nSA_nSE_nSI, DA, nSA, nSE, nSI); and (nDA_nSA_nSE_SI, nDA, nSA, nSE, SI); and (nDA_nSA_nSE_nSI, nDA, nSA, nSE, nSI); and (DA_nDB_nSE_SI, DA, nDB, nSE, SI); and (DA_nDB_nSE_nSI, DA, nDB, nSE, nSI); and (nDA_DB_nSE_SI, nDA, DB, nSE, SI); and (nDA_DB_nSE_nSI, nDA, DB, nSE, nSI); and (DA_nDB_nSA_SI, DA, nDB, nSA, SI); and (nDA_DB_SA_SI, nDA, DB, SA, SI); and (nDA_nDB_SA_SI, nDA, nDB, SA, SI); and (nDA_nDB_nSA_SI, nDA, nDB, nSA, SI); and (DA_DB_SA_nSI, DA, DB, SA, nSI); and (DA_nDB_SA_nSI, DA, nDB, SA, nSI); and (DA_DB_nSA_nSI, DA, DB, nSA, nSI); and (nDA_DB_nSA_nSI, nDA, DB, nSA, nSI); and (DA_DB_SA_SE, DA, DB, SA, SE); and (DA_nDB_SA_SE, DA, nDB, SA, SE); and (DA_DB_nSA_SE, DA, DB, nSA, SE); and (DA_nDB_nSA_SE, DA, nDB, nSA, SE); and (nDA_DB_SA_SE, nDA, DB, SA, SE); and (nDA_nDB_SA_SE, nDA, nDB, SA, SE); and (nDA_DB_nSA_SE, nDA, DB, nSA, SE); and (nDA_nDB_nSA_SE, nDA, nDB, nSA, SE); // Timing logics defined for default constraint check `ifdef NTC not (SA_int_not, SA_d); not (SE_int_not, SE_d); buf (SI_check, SE_d); and (DA_check, SA_d, SE_int_not); `else not (SA_int_not, SA); not (SE_int_not, SE); buf (SI_check, SE); and (DA_check, SA, SE_int_not); `endif buf (SA_check, SE_int_not); and (DB_check, SA_int_not, SE_int_not); or (CP_check, SI_check, DA_check, SA_check, DB_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (DB_DEFCHK, DB_check, 1'b1); tsmc_xbuf (DA_DEFCHK, DA_check, 1'b1); tsmc_xbuf (SA_DEFCHK, SA_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && SA && DA) || (!(SE) && !(SA) && DB)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && SA && DA) || (!(SE) && !(SA) && DB)))) = (0, 0); $width (posedge CP &&& DA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFMD4BWP7T35P140LVT (DA, DB, SA, SI, SE, CP, Q, QN); input DA, DB, SA, SI, SE, CP; output Q, QN; reg notifier; `ifdef NTC wire DA_d, DB_d, SA_d, SI_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D, DB_d, DA_d, SA_d); tsmc_mux (D_i, D, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D, DB, DA, SA); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (DA_DB_SA_SE_SI_SDFCHK, DA_DB_SA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSE_SI_SDFCHK, DA_DB_SA_nSE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSE_nSI_SDFCHK, DA_DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_SI_SDFCHK, DA_DB_nSA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSE_SI_SDFCHK, DA_DB_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSE_nSI_SDFCHK, DA_DB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_SI_SDFCHK, DA_nDB_SA_SE_SI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSE_SI_SDFCHK, DA_nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSE_nSI_SDFCHK, DA_nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_SI_SDFCHK, DA_nDB_nSA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_SI_SDFCHK, nDA_DB_SA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_SI_SDFCHK, nDA_DB_nSA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSE_SI_SDFCHK, nDA_DB_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSE_nSI_SDFCHK, nDA_DB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_SI_SDFCHK, nDA_nDB_SA_SE_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_SI_SDFCHK, nDA_nDB_nSA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_SE_nSI_SDFCHK, DA_DB_SA_SE_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_nSI_SDFCHK, DA_DB_nSA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_nSI_SDFCHK, DA_nDB_SA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_nSI_SDFCHK, DA_nDB_nSA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_nSE_SI_SDFCHK, DA_nDB_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_nSA_nSE_nSI_SDFCHK, DA_nDB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_nSI_SDFCHK, nDA_DB_SA_SE_nSI, 1'b1); tsmc_xbuf (nDA_DB_SA_nSE_SI_SDFCHK, nDA_DB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_nSE_nSI_SDFCHK, nDA_DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_nSI_SDFCHK, nDA_DB_nSA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_nSI_SDFCHK, nDA_nDB_SA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_nSE_SI_SDFCHK, nDA_nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nDB_SA_nSE_nSI_SDFCHK, nDA_nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_nSI_SDFCHK, nDA_nDB_nSA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_nSE_SI_SDFCHK, nDA_nDB_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_nSE_nSI_SDFCHK, nDA_nDB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DB_SA_nSE_SI_SDFCHK, DB_SA_nSE_SI, 1'b1); tsmc_xbuf (DB_SA_nSE_nSI_SDFCHK, DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDB_SA_nSE_SI_SDFCHK, nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDB_SA_nSE_nSI_SDFCHK, nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nSA_nSE_SI_SDFCHK, DA_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_nSA_nSE_nSI_SDFCHK, DA_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nSA_nSE_SI_SDFCHK, nDA_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nSA_nSE_nSI_SDFCHK, nDA_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSE_SI_SDFCHK, DA_nDB_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_nSE_nSI_SDFCHK, DA_nDB_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSE_SI_SDFCHK, nDA_DB_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSE_nSI_SDFCHK, nDA_DB_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SI_SDFCHK, DA_nDB_nSA_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_SI_SDFCHK, nDA_DB_SA_SI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SI_SDFCHK, nDA_nDB_SA_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SI_SDFCHK, nDA_nDB_nSA_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSI_SDFCHK, DA_DB_SA_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSI_SDFCHK, DA_nDB_SA_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSI_SDFCHK, DA_DB_nSA_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSI_SDFCHK, nDA_DB_nSA_nSI, 1'b1); tsmc_xbuf (DA_DB_SA_SE_SDFCHK, DA_DB_SA_SE, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_SDFCHK, DA_nDB_SA_SE, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_SDFCHK, DA_DB_nSA_SE, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_SDFCHK, DA_nDB_nSA_SE, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_SDFCHK, nDA_DB_SA_SE, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_SDFCHK, nDA_nDB_SA_SE, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_SDFCHK, nDA_DB_nSA_SE, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_SDFCHK, nDA_nDB_nSA_SE, 1'b1); not (nDA, DA); not (nDB, DB); not (nSA, SA); not (nSI, SI); not (nSE, SE); and (DA_DB_SA_SE_SI, DA, DB, SA, SE, SI); and (DA_DB_SA_nSE_SI, DA, DB, SA, nSE, SI); and (DA_DB_SA_nSE_nSI, DA, DB, SA, nSE, nSI); and (DA_DB_nSA_SE_SI, DA, DB, nSA, SE, SI); and (DA_DB_nSA_nSE_SI, DA, DB, nSA, nSE, SI); and (DA_DB_nSA_nSE_nSI, DA, DB, nSA, nSE, nSI); and (DA_nDB_SA_SE_SI, DA, nDB, SA, SE, SI); and (DA_nDB_SA_nSE_SI, DA, nDB, SA, nSE, SI); and (DA_nDB_SA_nSE_nSI, DA, nDB, SA, nSE, nSI); and (DA_nDB_nSA_SE_SI, DA, nDB, nSA, SE, SI); and (nDA_DB_SA_SE_SI, nDA, DB, SA, SE, SI); and (nDA_DB_nSA_SE_SI, nDA, DB, nSA, SE, SI); and (nDA_DB_nSA_nSE_SI, nDA, DB, nSA, nSE, SI); and (nDA_DB_nSA_nSE_nSI, nDA, DB, nSA, nSE, nSI); and (nDA_nDB_SA_SE_SI, nDA, nDB, SA, SE, SI); and (nDA_nDB_nSA_SE_SI, nDA, nDB, nSA, SE, SI); and (DA_DB_SA_SE_nSI, DA, DB, SA, SE, nSI); and (DA_DB_nSA_SE_nSI, DA, DB, nSA, SE, nSI); and (DA_nDB_SA_SE_nSI, DA, nDB, SA, SE, nSI); and (DA_nDB_nSA_SE_nSI, DA, nDB, nSA, SE, nSI); and (DA_nDB_nSA_nSE_SI, DA, nDB, nSA, nSE, SI); and (DA_nDB_nSA_nSE_nSI, DA, nDB, nSA, nSE, nSI); and (nDA_DB_SA_SE_nSI, nDA, DB, SA, SE, nSI); and (nDA_DB_SA_nSE_SI, nDA, DB, SA, nSE, SI); and (nDA_DB_SA_nSE_nSI, nDA, DB, SA, nSE, nSI); and (nDA_DB_nSA_SE_nSI, nDA, DB, nSA, SE, nSI); and (nDA_nDB_SA_SE_nSI, nDA, nDB, SA, SE, nSI); and (nDA_nDB_SA_nSE_SI, nDA, nDB, SA, nSE, SI); and (nDA_nDB_SA_nSE_nSI, nDA, nDB, SA, nSE, nSI); and (nDA_nDB_nSA_SE_nSI, nDA, nDB, nSA, SE, nSI); and (nDA_nDB_nSA_nSE_SI, nDA, nDB, nSA, nSE, SI); and (nDA_nDB_nSA_nSE_nSI, nDA, nDB, nSA, nSE, nSI); and (DB_SA_nSE_SI, DB, SA, nSE, SI); and (DB_SA_nSE_nSI, DB, SA, nSE, nSI); and (nDB_SA_nSE_SI, nDB, SA, nSE, SI); and (nDB_SA_nSE_nSI, nDB, SA, nSE, nSI); and (DA_nSA_nSE_SI, DA, nSA, nSE, SI); and (DA_nSA_nSE_nSI, DA, nSA, nSE, nSI); and (nDA_nSA_nSE_SI, nDA, nSA, nSE, SI); and (nDA_nSA_nSE_nSI, nDA, nSA, nSE, nSI); and (DA_nDB_nSE_SI, DA, nDB, nSE, SI); and (DA_nDB_nSE_nSI, DA, nDB, nSE, nSI); and (nDA_DB_nSE_SI, nDA, DB, nSE, SI); and (nDA_DB_nSE_nSI, nDA, DB, nSE, nSI); and (DA_nDB_nSA_SI, DA, nDB, nSA, SI); and (nDA_DB_SA_SI, nDA, DB, SA, SI); and (nDA_nDB_SA_SI, nDA, nDB, SA, SI); and (nDA_nDB_nSA_SI, nDA, nDB, nSA, SI); and (DA_DB_SA_nSI, DA, DB, SA, nSI); and (DA_nDB_SA_nSI, DA, nDB, SA, nSI); and (DA_DB_nSA_nSI, DA, DB, nSA, nSI); and (nDA_DB_nSA_nSI, nDA, DB, nSA, nSI); and (DA_DB_SA_SE, DA, DB, SA, SE); and (DA_nDB_SA_SE, DA, nDB, SA, SE); and (DA_DB_nSA_SE, DA, DB, nSA, SE); and (DA_nDB_nSA_SE, DA, nDB, nSA, SE); and (nDA_DB_SA_SE, nDA, DB, SA, SE); and (nDA_nDB_SA_SE, nDA, nDB, SA, SE); and (nDA_DB_nSA_SE, nDA, DB, nSA, SE); and (nDA_nDB_nSA_SE, nDA, nDB, nSA, SE); // Timing logics defined for default constraint check `ifdef NTC not (SA_int_not, SA_d); not (SE_int_not, SE_d); buf (SI_check, SE_d); and (DA_check, SA_d, SE_int_not); `else not (SA_int_not, SA); not (SE_int_not, SE); buf (SI_check, SE); and (DA_check, SA, SE_int_not); `endif buf (SA_check, SE_int_not); and (DB_check, SA_int_not, SE_int_not); or (CP_check, SI_check, DA_check, SA_check, DB_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (DB_DEFCHK, DB_check, 1'b1); tsmc_xbuf (DA_DEFCHK, DA_check, 1'b1); tsmc_xbuf (SA_DEFCHK, SA_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && SA && DA) || (!(SE) && !(SA) && DB)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && SA && DA) || (!(SE) && !(SA) && DB)))) = (0, 0); $width (posedge CP &&& DA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFMQD0BWP7T35P140LVT (DA, DB, SA, SI, SE, CP, Q); input DA, DB, SA, SI, SE, CP; output Q; reg notifier; `ifdef NTC wire DA_d, DB_d, SA_d, SI_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D, DB_d, DA_d, SA_d); tsmc_mux (D_i, D, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D, DB, DA, SA); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (DA_DB_SA_SE_SI_SDFCHK, DA_DB_SA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSE_SI_SDFCHK, DA_DB_SA_nSE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSE_nSI_SDFCHK, DA_DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_SI_SDFCHK, DA_DB_nSA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSE_SI_SDFCHK, DA_DB_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSE_nSI_SDFCHK, DA_DB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_SI_SDFCHK, DA_nDB_SA_SE_SI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSE_SI_SDFCHK, DA_nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSE_nSI_SDFCHK, DA_nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_SI_SDFCHK, DA_nDB_nSA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_SI_SDFCHK, nDA_DB_SA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_SI_SDFCHK, nDA_DB_nSA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSE_SI_SDFCHK, nDA_DB_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSE_nSI_SDFCHK, nDA_DB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_SI_SDFCHK, nDA_nDB_SA_SE_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_SI_SDFCHK, nDA_nDB_nSA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_SE_nSI_SDFCHK, DA_DB_SA_SE_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_nSI_SDFCHK, DA_DB_nSA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_nSI_SDFCHK, DA_nDB_SA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_nSI_SDFCHK, DA_nDB_nSA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_nSE_SI_SDFCHK, DA_nDB_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_nSA_nSE_nSI_SDFCHK, DA_nDB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_nSI_SDFCHK, nDA_DB_SA_SE_nSI, 1'b1); tsmc_xbuf (nDA_DB_SA_nSE_SI_SDFCHK, nDA_DB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_nSE_nSI_SDFCHK, nDA_DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_nSI_SDFCHK, nDA_DB_nSA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_nSI_SDFCHK, nDA_nDB_SA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_nSE_SI_SDFCHK, nDA_nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nDB_SA_nSE_nSI_SDFCHK, nDA_nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_nSI_SDFCHK, nDA_nDB_nSA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_nSE_SI_SDFCHK, nDA_nDB_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_nSE_nSI_SDFCHK, nDA_nDB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DB_SA_nSE_SI_SDFCHK, DB_SA_nSE_SI, 1'b1); tsmc_xbuf (DB_SA_nSE_nSI_SDFCHK, DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDB_SA_nSE_SI_SDFCHK, nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDB_SA_nSE_nSI_SDFCHK, nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nSA_nSE_SI_SDFCHK, DA_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_nSA_nSE_nSI_SDFCHK, DA_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nSA_nSE_SI_SDFCHK, nDA_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nSA_nSE_nSI_SDFCHK, nDA_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSE_SI_SDFCHK, DA_nDB_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_nSE_nSI_SDFCHK, DA_nDB_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSE_SI_SDFCHK, nDA_DB_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSE_nSI_SDFCHK, nDA_DB_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SI_SDFCHK, DA_nDB_nSA_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_SI_SDFCHK, nDA_DB_SA_SI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SI_SDFCHK, nDA_nDB_SA_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SI_SDFCHK, nDA_nDB_nSA_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSI_SDFCHK, DA_DB_SA_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSI_SDFCHK, DA_DB_nSA_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSI_SDFCHK, DA_nDB_SA_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSI_SDFCHK, nDA_DB_nSA_nSI, 1'b1); tsmc_xbuf (DA_DB_SA_SE_SDFCHK, DA_DB_SA_SE, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_SDFCHK, DA_DB_nSA_SE, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_SDFCHK, DA_nDB_SA_SE, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_SDFCHK, nDA_DB_nSA_SE, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_SDFCHK, DA_nDB_nSA_SE, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_SDFCHK, nDA_DB_SA_SE, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_SDFCHK, nDA_nDB_SA_SE, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_SDFCHK, nDA_nDB_nSA_SE, 1'b1); not (nDA, DA); not (nDB, DB); not (nSA, SA); not (nSI, SI); not (nSE, SE); and (DA_DB_SA_SE_SI, DA, DB, SA, SE, SI); and (DA_DB_SA_nSE_SI, DA, DB, SA, nSE, SI); and (DA_DB_SA_nSE_nSI, DA, DB, SA, nSE, nSI); and (DA_DB_nSA_SE_SI, DA, DB, nSA, SE, SI); and (DA_DB_nSA_nSE_SI, DA, DB, nSA, nSE, SI); and (DA_DB_nSA_nSE_nSI, DA, DB, nSA, nSE, nSI); and (DA_nDB_SA_SE_SI, DA, nDB, SA, SE, SI); and (DA_nDB_SA_nSE_SI, DA, nDB, SA, nSE, SI); and (DA_nDB_SA_nSE_nSI, DA, nDB, SA, nSE, nSI); and (DA_nDB_nSA_SE_SI, DA, nDB, nSA, SE, SI); and (nDA_DB_SA_SE_SI, nDA, DB, SA, SE, SI); and (nDA_DB_nSA_SE_SI, nDA, DB, nSA, SE, SI); and (nDA_DB_nSA_nSE_SI, nDA, DB, nSA, nSE, SI); and (nDA_DB_nSA_nSE_nSI, nDA, DB, nSA, nSE, nSI); and (nDA_nDB_SA_SE_SI, nDA, nDB, SA, SE, SI); and (nDA_nDB_nSA_SE_SI, nDA, nDB, nSA, SE, SI); and (DA_DB_SA_SE_nSI, DA, DB, SA, SE, nSI); and (DA_DB_nSA_SE_nSI, DA, DB, nSA, SE, nSI); and (DA_nDB_SA_SE_nSI, DA, nDB, SA, SE, nSI); and (DA_nDB_nSA_SE_nSI, DA, nDB, nSA, SE, nSI); and (DA_nDB_nSA_nSE_SI, DA, nDB, nSA, nSE, SI); and (DA_nDB_nSA_nSE_nSI, DA, nDB, nSA, nSE, nSI); and (nDA_DB_SA_SE_nSI, nDA, DB, SA, SE, nSI); and (nDA_DB_SA_nSE_SI, nDA, DB, SA, nSE, SI); and (nDA_DB_SA_nSE_nSI, nDA, DB, SA, nSE, nSI); and (nDA_DB_nSA_SE_nSI, nDA, DB, nSA, SE, nSI); and (nDA_nDB_SA_SE_nSI, nDA, nDB, SA, SE, nSI); and (nDA_nDB_SA_nSE_SI, nDA, nDB, SA, nSE, SI); and (nDA_nDB_SA_nSE_nSI, nDA, nDB, SA, nSE, nSI); and (nDA_nDB_nSA_SE_nSI, nDA, nDB, nSA, SE, nSI); and (nDA_nDB_nSA_nSE_SI, nDA, nDB, nSA, nSE, SI); and (nDA_nDB_nSA_nSE_nSI, nDA, nDB, nSA, nSE, nSI); and (DB_SA_nSE_SI, DB, SA, nSE, SI); and (DB_SA_nSE_nSI, DB, SA, nSE, nSI); and (nDB_SA_nSE_SI, nDB, SA, nSE, SI); and (nDB_SA_nSE_nSI, nDB, SA, nSE, nSI); and (DA_nSA_nSE_SI, DA, nSA, nSE, SI); and (DA_nSA_nSE_nSI, DA, nSA, nSE, nSI); and (nDA_nSA_nSE_SI, nDA, nSA, nSE, SI); and (nDA_nSA_nSE_nSI, nDA, nSA, nSE, nSI); and (DA_nDB_nSE_SI, DA, nDB, nSE, SI); and (DA_nDB_nSE_nSI, DA, nDB, nSE, nSI); and (nDA_DB_nSE_SI, nDA, DB, nSE, SI); and (nDA_DB_nSE_nSI, nDA, DB, nSE, nSI); and (DA_nDB_nSA_SI, DA, nDB, nSA, SI); and (nDA_DB_SA_SI, nDA, DB, SA, SI); and (nDA_nDB_SA_SI, nDA, nDB, SA, SI); and (nDA_nDB_nSA_SI, nDA, nDB, nSA, SI); and (DA_DB_SA_nSI, DA, DB, SA, nSI); and (DA_DB_nSA_nSI, DA, DB, nSA, nSI); and (DA_nDB_SA_nSI, DA, nDB, SA, nSI); and (nDA_DB_nSA_nSI, nDA, DB, nSA, nSI); and (DA_DB_SA_SE, DA, DB, SA, SE); and (DA_DB_nSA_SE, DA, DB, nSA, SE); and (DA_nDB_SA_SE, DA, nDB, SA, SE); and (nDA_DB_nSA_SE, nDA, DB, nSA, SE); and (DA_nDB_nSA_SE, DA, nDB, nSA, SE); and (nDA_DB_SA_SE, nDA, DB, SA, SE); and (nDA_nDB_SA_SE, nDA, nDB, SA, SE); and (nDA_nDB_nSA_SE, nDA, nDB, nSA, SE); // Timing logics defined for default constraint check `ifdef NTC not (SA_int_not, SA_d); not (SE_int_not, SE_d); buf (SI_check, SE_d); and (DA_check, SA_d, SE_int_not); `else not (SA_int_not, SA); not (SE_int_not, SE); buf (SI_check, SE); and (DA_check, SA, SE_int_not); `endif buf (SA_check, SE_int_not); and (DB_check, SA_int_not, SE_int_not); or (CP_check, SI_check, DA_check, SA_check, DB_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (DB_DEFCHK, DB_check, 1'b1); tsmc_xbuf (DA_DEFCHK, DA_check, 1'b1); tsmc_xbuf (SA_DEFCHK, SA_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && SA && DA) || (!(SE) && !(SA) && DB)))) = (0, 0); $width (posedge CP &&& DA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFMQD1BWP7T35P140LVT (DA, DB, SA, SI, SE, CP, Q); input DA, DB, SA, SI, SE, CP; output Q; reg notifier; `ifdef NTC wire DA_d, DB_d, SA_d, SI_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D, DB_d, DA_d, SA_d); tsmc_mux (D_i, D, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D, DB, DA, SA); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (DA_DB_SA_SE_SI_SDFCHK, DA_DB_SA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSE_SI_SDFCHK, DA_DB_SA_nSE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSE_nSI_SDFCHK, DA_DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_SI_SDFCHK, DA_DB_nSA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSE_SI_SDFCHK, DA_DB_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSE_nSI_SDFCHK, DA_DB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_SI_SDFCHK, DA_nDB_SA_SE_SI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSE_SI_SDFCHK, DA_nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSE_nSI_SDFCHK, DA_nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_SI_SDFCHK, DA_nDB_nSA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_SI_SDFCHK, nDA_DB_SA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_SI_SDFCHK, nDA_DB_nSA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSE_SI_SDFCHK, nDA_DB_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSE_nSI_SDFCHK, nDA_DB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_SI_SDFCHK, nDA_nDB_SA_SE_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_SI_SDFCHK, nDA_nDB_nSA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_SE_nSI_SDFCHK, DA_DB_SA_SE_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_nSI_SDFCHK, DA_DB_nSA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_nSI_SDFCHK, DA_nDB_SA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_nSI_SDFCHK, DA_nDB_nSA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_nSE_SI_SDFCHK, DA_nDB_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_nSA_nSE_nSI_SDFCHK, DA_nDB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_nSI_SDFCHK, nDA_DB_SA_SE_nSI, 1'b1); tsmc_xbuf (nDA_DB_SA_nSE_SI_SDFCHK, nDA_DB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_nSE_nSI_SDFCHK, nDA_DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_nSI_SDFCHK, nDA_DB_nSA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_nSI_SDFCHK, nDA_nDB_SA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_nSE_SI_SDFCHK, nDA_nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nDB_SA_nSE_nSI_SDFCHK, nDA_nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_nSI_SDFCHK, nDA_nDB_nSA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_nSE_SI_SDFCHK, nDA_nDB_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_nSE_nSI_SDFCHK, nDA_nDB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DB_SA_nSE_SI_SDFCHK, DB_SA_nSE_SI, 1'b1); tsmc_xbuf (DB_SA_nSE_nSI_SDFCHK, DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDB_SA_nSE_SI_SDFCHK, nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDB_SA_nSE_nSI_SDFCHK, nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nSA_nSE_SI_SDFCHK, DA_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_nSA_nSE_nSI_SDFCHK, DA_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nSA_nSE_SI_SDFCHK, nDA_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nSA_nSE_nSI_SDFCHK, nDA_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSE_SI_SDFCHK, DA_nDB_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_nSE_nSI_SDFCHK, DA_nDB_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSE_SI_SDFCHK, nDA_DB_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSE_nSI_SDFCHK, nDA_DB_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SI_SDFCHK, DA_nDB_nSA_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_SI_SDFCHK, nDA_DB_SA_SI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SI_SDFCHK, nDA_nDB_SA_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SI_SDFCHK, nDA_nDB_nSA_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSI_SDFCHK, DA_DB_SA_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSI_SDFCHK, DA_DB_nSA_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSI_SDFCHK, DA_nDB_SA_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSI_SDFCHK, nDA_DB_nSA_nSI, 1'b1); tsmc_xbuf (DA_DB_SA_SE_SDFCHK, DA_DB_SA_SE, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_SDFCHK, DA_DB_nSA_SE, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_SDFCHK, DA_nDB_SA_SE, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_SDFCHK, nDA_DB_nSA_SE, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_SDFCHK, DA_nDB_nSA_SE, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_SDFCHK, nDA_DB_SA_SE, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_SDFCHK, nDA_nDB_SA_SE, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_SDFCHK, nDA_nDB_nSA_SE, 1'b1); not (nDA, DA); not (nDB, DB); not (nSA, SA); not (nSI, SI); not (nSE, SE); and (DA_DB_SA_SE_SI, DA, DB, SA, SE, SI); and (DA_DB_SA_nSE_SI, DA, DB, SA, nSE, SI); and (DA_DB_SA_nSE_nSI, DA, DB, SA, nSE, nSI); and (DA_DB_nSA_SE_SI, DA, DB, nSA, SE, SI); and (DA_DB_nSA_nSE_SI, DA, DB, nSA, nSE, SI); and (DA_DB_nSA_nSE_nSI, DA, DB, nSA, nSE, nSI); and (DA_nDB_SA_SE_SI, DA, nDB, SA, SE, SI); and (DA_nDB_SA_nSE_SI, DA, nDB, SA, nSE, SI); and (DA_nDB_SA_nSE_nSI, DA, nDB, SA, nSE, nSI); and (DA_nDB_nSA_SE_SI, DA, nDB, nSA, SE, SI); and (nDA_DB_SA_SE_SI, nDA, DB, SA, SE, SI); and (nDA_DB_nSA_SE_SI, nDA, DB, nSA, SE, SI); and (nDA_DB_nSA_nSE_SI, nDA, DB, nSA, nSE, SI); and (nDA_DB_nSA_nSE_nSI, nDA, DB, nSA, nSE, nSI); and (nDA_nDB_SA_SE_SI, nDA, nDB, SA, SE, SI); and (nDA_nDB_nSA_SE_SI, nDA, nDB, nSA, SE, SI); and (DA_DB_SA_SE_nSI, DA, DB, SA, SE, nSI); and (DA_DB_nSA_SE_nSI, DA, DB, nSA, SE, nSI); and (DA_nDB_SA_SE_nSI, DA, nDB, SA, SE, nSI); and (DA_nDB_nSA_SE_nSI, DA, nDB, nSA, SE, nSI); and (DA_nDB_nSA_nSE_SI, DA, nDB, nSA, nSE, SI); and (DA_nDB_nSA_nSE_nSI, DA, nDB, nSA, nSE, nSI); and (nDA_DB_SA_SE_nSI, nDA, DB, SA, SE, nSI); and (nDA_DB_SA_nSE_SI, nDA, DB, SA, nSE, SI); and (nDA_DB_SA_nSE_nSI, nDA, DB, SA, nSE, nSI); and (nDA_DB_nSA_SE_nSI, nDA, DB, nSA, SE, nSI); and (nDA_nDB_SA_SE_nSI, nDA, nDB, SA, SE, nSI); and (nDA_nDB_SA_nSE_SI, nDA, nDB, SA, nSE, SI); and (nDA_nDB_SA_nSE_nSI, nDA, nDB, SA, nSE, nSI); and (nDA_nDB_nSA_SE_nSI, nDA, nDB, nSA, SE, nSI); and (nDA_nDB_nSA_nSE_SI, nDA, nDB, nSA, nSE, SI); and (nDA_nDB_nSA_nSE_nSI, nDA, nDB, nSA, nSE, nSI); and (DB_SA_nSE_SI, DB, SA, nSE, SI); and (DB_SA_nSE_nSI, DB, SA, nSE, nSI); and (nDB_SA_nSE_SI, nDB, SA, nSE, SI); and (nDB_SA_nSE_nSI, nDB, SA, nSE, nSI); and (DA_nSA_nSE_SI, DA, nSA, nSE, SI); and (DA_nSA_nSE_nSI, DA, nSA, nSE, nSI); and (nDA_nSA_nSE_SI, nDA, nSA, nSE, SI); and (nDA_nSA_nSE_nSI, nDA, nSA, nSE, nSI); and (DA_nDB_nSE_SI, DA, nDB, nSE, SI); and (DA_nDB_nSE_nSI, DA, nDB, nSE, nSI); and (nDA_DB_nSE_SI, nDA, DB, nSE, SI); and (nDA_DB_nSE_nSI, nDA, DB, nSE, nSI); and (DA_nDB_nSA_SI, DA, nDB, nSA, SI); and (nDA_DB_SA_SI, nDA, DB, SA, SI); and (nDA_nDB_SA_SI, nDA, nDB, SA, SI); and (nDA_nDB_nSA_SI, nDA, nDB, nSA, SI); and (DA_DB_SA_nSI, DA, DB, SA, nSI); and (DA_DB_nSA_nSI, DA, DB, nSA, nSI); and (DA_nDB_SA_nSI, DA, nDB, SA, nSI); and (nDA_DB_nSA_nSI, nDA, DB, nSA, nSI); and (DA_DB_SA_SE, DA, DB, SA, SE); and (DA_DB_nSA_SE, DA, DB, nSA, SE); and (DA_nDB_SA_SE, DA, nDB, SA, SE); and (nDA_DB_nSA_SE, nDA, DB, nSA, SE); and (DA_nDB_nSA_SE, DA, nDB, nSA, SE); and (nDA_DB_SA_SE, nDA, DB, SA, SE); and (nDA_nDB_SA_SE, nDA, nDB, SA, SE); and (nDA_nDB_nSA_SE, nDA, nDB, nSA, SE); // Timing logics defined for default constraint check `ifdef NTC not (SA_int_not, SA_d); not (SE_int_not, SE_d); buf (SI_check, SE_d); and (DA_check, SA_d, SE_int_not); `else not (SA_int_not, SA); not (SE_int_not, SE); buf (SI_check, SE); and (DA_check, SA, SE_int_not); `endif buf (SA_check, SE_int_not); and (DB_check, SA_int_not, SE_int_not); or (CP_check, SI_check, DA_check, SA_check, DB_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (DB_DEFCHK, DB_check, 1'b1); tsmc_xbuf (DA_DEFCHK, DA_check, 1'b1); tsmc_xbuf (SA_DEFCHK, SA_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && SA && DA) || (!(SE) && !(SA) && DB)))) = (0, 0); $width (posedge CP &&& DA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFMQD2BWP7T35P140LVT (DA, DB, SA, SI, SE, CP, Q); input DA, DB, SA, SI, SE, CP; output Q; reg notifier; `ifdef NTC wire DA_d, DB_d, SA_d, SI_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D, DB_d, DA_d, SA_d); tsmc_mux (D_i, D, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D, DB, DA, SA); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (DA_DB_SA_SE_SI_SDFCHK, DA_DB_SA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSE_SI_SDFCHK, DA_DB_SA_nSE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSE_nSI_SDFCHK, DA_DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_SI_SDFCHK, DA_DB_nSA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSE_SI_SDFCHK, DA_DB_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSE_nSI_SDFCHK, DA_DB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_SI_SDFCHK, DA_nDB_SA_SE_SI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSE_SI_SDFCHK, DA_nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSE_nSI_SDFCHK, DA_nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_SI_SDFCHK, DA_nDB_nSA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_SI_SDFCHK, nDA_DB_SA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_SI_SDFCHK, nDA_DB_nSA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSE_SI_SDFCHK, nDA_DB_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSE_nSI_SDFCHK, nDA_DB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_SI_SDFCHK, nDA_nDB_SA_SE_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_SI_SDFCHK, nDA_nDB_nSA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_SE_nSI_SDFCHK, DA_DB_SA_SE_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_nSI_SDFCHK, DA_DB_nSA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_nSI_SDFCHK, DA_nDB_SA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_nSI_SDFCHK, DA_nDB_nSA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_nSE_SI_SDFCHK, DA_nDB_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_nSA_nSE_nSI_SDFCHK, DA_nDB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_nSI_SDFCHK, nDA_DB_SA_SE_nSI, 1'b1); tsmc_xbuf (nDA_DB_SA_nSE_SI_SDFCHK, nDA_DB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_nSE_nSI_SDFCHK, nDA_DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_nSI_SDFCHK, nDA_DB_nSA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_nSI_SDFCHK, nDA_nDB_SA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_nSE_SI_SDFCHK, nDA_nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nDB_SA_nSE_nSI_SDFCHK, nDA_nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_nSI_SDFCHK, nDA_nDB_nSA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_nSE_SI_SDFCHK, nDA_nDB_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_nSE_nSI_SDFCHK, nDA_nDB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DB_SA_nSE_SI_SDFCHK, DB_SA_nSE_SI, 1'b1); tsmc_xbuf (DB_SA_nSE_nSI_SDFCHK, DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDB_SA_nSE_SI_SDFCHK, nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDB_SA_nSE_nSI_SDFCHK, nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nSA_nSE_SI_SDFCHK, DA_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_nSA_nSE_nSI_SDFCHK, DA_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nSA_nSE_SI_SDFCHK, nDA_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nSA_nSE_nSI_SDFCHK, nDA_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSE_SI_SDFCHK, DA_nDB_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_nSE_nSI_SDFCHK, DA_nDB_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSE_SI_SDFCHK, nDA_DB_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSE_nSI_SDFCHK, nDA_DB_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SI_SDFCHK, DA_nDB_nSA_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_SI_SDFCHK, nDA_DB_SA_SI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SI_SDFCHK, nDA_nDB_SA_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SI_SDFCHK, nDA_nDB_nSA_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSI_SDFCHK, DA_DB_SA_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSI_SDFCHK, DA_DB_nSA_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSI_SDFCHK, DA_nDB_SA_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSI_SDFCHK, nDA_DB_nSA_nSI, 1'b1); tsmc_xbuf (DA_DB_SA_SE_SDFCHK, DA_DB_SA_SE, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_SDFCHK, DA_DB_nSA_SE, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_SDFCHK, DA_nDB_SA_SE, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_SDFCHK, nDA_DB_nSA_SE, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_SDFCHK, DA_nDB_nSA_SE, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_SDFCHK, nDA_DB_SA_SE, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_SDFCHK, nDA_nDB_SA_SE, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_SDFCHK, nDA_nDB_nSA_SE, 1'b1); not (nDA, DA); not (nDB, DB); not (nSA, SA); not (nSI, SI); not (nSE, SE); and (DA_DB_SA_SE_SI, DA, DB, SA, SE, SI); and (DA_DB_SA_nSE_SI, DA, DB, SA, nSE, SI); and (DA_DB_SA_nSE_nSI, DA, DB, SA, nSE, nSI); and (DA_DB_nSA_SE_SI, DA, DB, nSA, SE, SI); and (DA_DB_nSA_nSE_SI, DA, DB, nSA, nSE, SI); and (DA_DB_nSA_nSE_nSI, DA, DB, nSA, nSE, nSI); and (DA_nDB_SA_SE_SI, DA, nDB, SA, SE, SI); and (DA_nDB_SA_nSE_SI, DA, nDB, SA, nSE, SI); and (DA_nDB_SA_nSE_nSI, DA, nDB, SA, nSE, nSI); and (DA_nDB_nSA_SE_SI, DA, nDB, nSA, SE, SI); and (nDA_DB_SA_SE_SI, nDA, DB, SA, SE, SI); and (nDA_DB_nSA_SE_SI, nDA, DB, nSA, SE, SI); and (nDA_DB_nSA_nSE_SI, nDA, DB, nSA, nSE, SI); and (nDA_DB_nSA_nSE_nSI, nDA, DB, nSA, nSE, nSI); and (nDA_nDB_SA_SE_SI, nDA, nDB, SA, SE, SI); and (nDA_nDB_nSA_SE_SI, nDA, nDB, nSA, SE, SI); and (DA_DB_SA_SE_nSI, DA, DB, SA, SE, nSI); and (DA_DB_nSA_SE_nSI, DA, DB, nSA, SE, nSI); and (DA_nDB_SA_SE_nSI, DA, nDB, SA, SE, nSI); and (DA_nDB_nSA_SE_nSI, DA, nDB, nSA, SE, nSI); and (DA_nDB_nSA_nSE_SI, DA, nDB, nSA, nSE, SI); and (DA_nDB_nSA_nSE_nSI, DA, nDB, nSA, nSE, nSI); and (nDA_DB_SA_SE_nSI, nDA, DB, SA, SE, nSI); and (nDA_DB_SA_nSE_SI, nDA, DB, SA, nSE, SI); and (nDA_DB_SA_nSE_nSI, nDA, DB, SA, nSE, nSI); and (nDA_DB_nSA_SE_nSI, nDA, DB, nSA, SE, nSI); and (nDA_nDB_SA_SE_nSI, nDA, nDB, SA, SE, nSI); and (nDA_nDB_SA_nSE_SI, nDA, nDB, SA, nSE, SI); and (nDA_nDB_SA_nSE_nSI, nDA, nDB, SA, nSE, nSI); and (nDA_nDB_nSA_SE_nSI, nDA, nDB, nSA, SE, nSI); and (nDA_nDB_nSA_nSE_SI, nDA, nDB, nSA, nSE, SI); and (nDA_nDB_nSA_nSE_nSI, nDA, nDB, nSA, nSE, nSI); and (DB_SA_nSE_SI, DB, SA, nSE, SI); and (DB_SA_nSE_nSI, DB, SA, nSE, nSI); and (nDB_SA_nSE_SI, nDB, SA, nSE, SI); and (nDB_SA_nSE_nSI, nDB, SA, nSE, nSI); and (DA_nSA_nSE_SI, DA, nSA, nSE, SI); and (DA_nSA_nSE_nSI, DA, nSA, nSE, nSI); and (nDA_nSA_nSE_SI, nDA, nSA, nSE, SI); and (nDA_nSA_nSE_nSI, nDA, nSA, nSE, nSI); and (DA_nDB_nSE_SI, DA, nDB, nSE, SI); and (DA_nDB_nSE_nSI, DA, nDB, nSE, nSI); and (nDA_DB_nSE_SI, nDA, DB, nSE, SI); and (nDA_DB_nSE_nSI, nDA, DB, nSE, nSI); and (DA_nDB_nSA_SI, DA, nDB, nSA, SI); and (nDA_DB_SA_SI, nDA, DB, SA, SI); and (nDA_nDB_SA_SI, nDA, nDB, SA, SI); and (nDA_nDB_nSA_SI, nDA, nDB, nSA, SI); and (DA_DB_SA_nSI, DA, DB, SA, nSI); and (DA_DB_nSA_nSI, DA, DB, nSA, nSI); and (DA_nDB_SA_nSI, DA, nDB, SA, nSI); and (nDA_DB_nSA_nSI, nDA, DB, nSA, nSI); and (DA_DB_SA_SE, DA, DB, SA, SE); and (DA_DB_nSA_SE, DA, DB, nSA, SE); and (DA_nDB_SA_SE, DA, nDB, SA, SE); and (nDA_DB_nSA_SE, nDA, DB, nSA, SE); and (DA_nDB_nSA_SE, DA, nDB, nSA, SE); and (nDA_DB_SA_SE, nDA, DB, SA, SE); and (nDA_nDB_SA_SE, nDA, nDB, SA, SE); and (nDA_nDB_nSA_SE, nDA, nDB, nSA, SE); // Timing logics defined for default constraint check `ifdef NTC not (SA_int_not, SA_d); not (SE_int_not, SE_d); buf (SI_check, SE_d); and (DA_check, SA_d, SE_int_not); `else not (SA_int_not, SA); not (SE_int_not, SE); buf (SI_check, SE); and (DA_check, SA, SE_int_not); `endif buf (SA_check, SE_int_not); and (DB_check, SA_int_not, SE_int_not); or (CP_check, SI_check, DA_check, SA_check, DB_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (DB_DEFCHK, DB_check, 1'b1); tsmc_xbuf (DA_DEFCHK, DA_check, 1'b1); tsmc_xbuf (SA_DEFCHK, SA_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && SA && DA) || (!(SE) && !(SA) && DB)))) = (0, 0); $width (posedge CP &&& DA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFMQD4BWP7T35P140LVT (DA, DB, SA, SI, SE, CP, Q); input DA, DB, SA, SI, SE, CP; output Q; reg notifier; `ifdef NTC wire DA_d, DB_d, SA_d, SI_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D, DB_d, DA_d, SA_d); tsmc_mux (D_i, D, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D, DB, DA, SA); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (DA_DB_SA_SE_SI_SDFCHK, DA_DB_SA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSE_SI_SDFCHK, DA_DB_SA_nSE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSE_nSI_SDFCHK, DA_DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_SI_SDFCHK, DA_DB_nSA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSE_SI_SDFCHK, DA_DB_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSE_nSI_SDFCHK, DA_DB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_SI_SDFCHK, DA_nDB_SA_SE_SI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSE_SI_SDFCHK, DA_nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSE_nSI_SDFCHK, DA_nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_SI_SDFCHK, DA_nDB_nSA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_SI_SDFCHK, nDA_DB_SA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_SI_SDFCHK, nDA_DB_nSA_SE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSE_SI_SDFCHK, nDA_DB_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSE_nSI_SDFCHK, nDA_DB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_SI_SDFCHK, nDA_nDB_SA_SE_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_SI_SDFCHK, nDA_nDB_nSA_SE_SI, 1'b1); tsmc_xbuf (DA_DB_SA_SE_nSI_SDFCHK, DA_DB_SA_SE_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_nSI_SDFCHK, DA_DB_nSA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_nSI_SDFCHK, DA_nDB_SA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_nSI_SDFCHK, DA_nDB_nSA_SE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_nSE_SI_SDFCHK, DA_nDB_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_nSA_nSE_nSI_SDFCHK, DA_nDB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_nSI_SDFCHK, nDA_DB_SA_SE_nSI, 1'b1); tsmc_xbuf (nDA_DB_SA_nSE_SI_SDFCHK, nDA_DB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_nSE_nSI_SDFCHK, nDA_DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_nSI_SDFCHK, nDA_DB_nSA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_nSI_SDFCHK, nDA_nDB_SA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_SA_nSE_SI_SDFCHK, nDA_nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nDB_SA_nSE_nSI_SDFCHK, nDA_nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_nSI_SDFCHK, nDA_nDB_nSA_SE_nSI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_nSE_SI_SDFCHK, nDA_nDB_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_nSE_nSI_SDFCHK, nDA_nDB_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DB_SA_nSE_SI_SDFCHK, DB_SA_nSE_SI, 1'b1); tsmc_xbuf (DB_SA_nSE_nSI_SDFCHK, DB_SA_nSE_nSI, 1'b1); tsmc_xbuf (nDB_SA_nSE_SI_SDFCHK, nDB_SA_nSE_SI, 1'b1); tsmc_xbuf (nDB_SA_nSE_nSI_SDFCHK, nDB_SA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nSA_nSE_SI_SDFCHK, DA_nSA_nSE_SI, 1'b1); tsmc_xbuf (DA_nSA_nSE_nSI_SDFCHK, DA_nSA_nSE_nSI, 1'b1); tsmc_xbuf (nDA_nSA_nSE_SI_SDFCHK, nDA_nSA_nSE_SI, 1'b1); tsmc_xbuf (nDA_nSA_nSE_nSI_SDFCHK, nDA_nSA_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSE_SI_SDFCHK, DA_nDB_nSE_SI, 1'b1); tsmc_xbuf (DA_nDB_nSE_nSI_SDFCHK, DA_nDB_nSE_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSE_SI_SDFCHK, nDA_DB_nSE_SI, 1'b1); tsmc_xbuf (nDA_DB_nSE_nSI_SDFCHK, nDA_DB_nSE_nSI, 1'b1); tsmc_xbuf (DA_nDB_nSA_SI_SDFCHK, DA_nDB_nSA_SI, 1'b1); tsmc_xbuf (nDA_DB_SA_SI_SDFCHK, nDA_DB_SA_SI, 1'b1); tsmc_xbuf (nDA_nDB_SA_SI_SDFCHK, nDA_nDB_SA_SI, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SI_SDFCHK, nDA_nDB_nSA_SI, 1'b1); tsmc_xbuf (DA_DB_SA_nSI_SDFCHK, DA_DB_SA_nSI, 1'b1); tsmc_xbuf (DA_DB_nSA_nSI_SDFCHK, DA_DB_nSA_nSI, 1'b1); tsmc_xbuf (DA_nDB_SA_nSI_SDFCHK, DA_nDB_SA_nSI, 1'b1); tsmc_xbuf (nDA_DB_nSA_nSI_SDFCHK, nDA_DB_nSA_nSI, 1'b1); tsmc_xbuf (DA_DB_SA_SE_SDFCHK, DA_DB_SA_SE, 1'b1); tsmc_xbuf (DA_DB_nSA_SE_SDFCHK, DA_DB_nSA_SE, 1'b1); tsmc_xbuf (DA_nDB_SA_SE_SDFCHK, DA_nDB_SA_SE, 1'b1); tsmc_xbuf (nDA_DB_nSA_SE_SDFCHK, nDA_DB_nSA_SE, 1'b1); tsmc_xbuf (DA_nDB_nSA_SE_SDFCHK, DA_nDB_nSA_SE, 1'b1); tsmc_xbuf (nDA_DB_SA_SE_SDFCHK, nDA_DB_SA_SE, 1'b1); tsmc_xbuf (nDA_nDB_SA_SE_SDFCHK, nDA_nDB_SA_SE, 1'b1); tsmc_xbuf (nDA_nDB_nSA_SE_SDFCHK, nDA_nDB_nSA_SE, 1'b1); not (nDA, DA); not (nDB, DB); not (nSA, SA); not (nSI, SI); not (nSE, SE); and (DA_DB_SA_SE_SI, DA, DB, SA, SE, SI); and (DA_DB_SA_nSE_SI, DA, DB, SA, nSE, SI); and (DA_DB_SA_nSE_nSI, DA, DB, SA, nSE, nSI); and (DA_DB_nSA_SE_SI, DA, DB, nSA, SE, SI); and (DA_DB_nSA_nSE_SI, DA, DB, nSA, nSE, SI); and (DA_DB_nSA_nSE_nSI, DA, DB, nSA, nSE, nSI); and (DA_nDB_SA_SE_SI, DA, nDB, SA, SE, SI); and (DA_nDB_SA_nSE_SI, DA, nDB, SA, nSE, SI); and (DA_nDB_SA_nSE_nSI, DA, nDB, SA, nSE, nSI); and (DA_nDB_nSA_SE_SI, DA, nDB, nSA, SE, SI); and (nDA_DB_SA_SE_SI, nDA, DB, SA, SE, SI); and (nDA_DB_nSA_SE_SI, nDA, DB, nSA, SE, SI); and (nDA_DB_nSA_nSE_SI, nDA, DB, nSA, nSE, SI); and (nDA_DB_nSA_nSE_nSI, nDA, DB, nSA, nSE, nSI); and (nDA_nDB_SA_SE_SI, nDA, nDB, SA, SE, SI); and (nDA_nDB_nSA_SE_SI, nDA, nDB, nSA, SE, SI); and (DA_DB_SA_SE_nSI, DA, DB, SA, SE, nSI); and (DA_DB_nSA_SE_nSI, DA, DB, nSA, SE, nSI); and (DA_nDB_SA_SE_nSI, DA, nDB, SA, SE, nSI); and (DA_nDB_nSA_SE_nSI, DA, nDB, nSA, SE, nSI); and (DA_nDB_nSA_nSE_SI, DA, nDB, nSA, nSE, SI); and (DA_nDB_nSA_nSE_nSI, DA, nDB, nSA, nSE, nSI); and (nDA_DB_SA_SE_nSI, nDA, DB, SA, SE, nSI); and (nDA_DB_SA_nSE_SI, nDA, DB, SA, nSE, SI); and (nDA_DB_SA_nSE_nSI, nDA, DB, SA, nSE, nSI); and (nDA_DB_nSA_SE_nSI, nDA, DB, nSA, SE, nSI); and (nDA_nDB_SA_SE_nSI, nDA, nDB, SA, SE, nSI); and (nDA_nDB_SA_nSE_SI, nDA, nDB, SA, nSE, SI); and (nDA_nDB_SA_nSE_nSI, nDA, nDB, SA, nSE, nSI); and (nDA_nDB_nSA_SE_nSI, nDA, nDB, nSA, SE, nSI); and (nDA_nDB_nSA_nSE_SI, nDA, nDB, nSA, nSE, SI); and (nDA_nDB_nSA_nSE_nSI, nDA, nDB, nSA, nSE, nSI); and (DB_SA_nSE_SI, DB, SA, nSE, SI); and (DB_SA_nSE_nSI, DB, SA, nSE, nSI); and (nDB_SA_nSE_SI, nDB, SA, nSE, SI); and (nDB_SA_nSE_nSI, nDB, SA, nSE, nSI); and (DA_nSA_nSE_SI, DA, nSA, nSE, SI); and (DA_nSA_nSE_nSI, DA, nSA, nSE, nSI); and (nDA_nSA_nSE_SI, nDA, nSA, nSE, SI); and (nDA_nSA_nSE_nSI, nDA, nSA, nSE, nSI); and (DA_nDB_nSE_SI, DA, nDB, nSE, SI); and (DA_nDB_nSE_nSI, DA, nDB, nSE, nSI); and (nDA_DB_nSE_SI, nDA, DB, nSE, SI); and (nDA_DB_nSE_nSI, nDA, DB, nSE, nSI); and (DA_nDB_nSA_SI, DA, nDB, nSA, SI); and (nDA_DB_SA_SI, nDA, DB, SA, SI); and (nDA_nDB_SA_SI, nDA, nDB, SA, SI); and (nDA_nDB_nSA_SI, nDA, nDB, nSA, SI); and (DA_DB_SA_nSI, DA, DB, SA, nSI); and (DA_DB_nSA_nSI, DA, DB, nSA, nSI); and (DA_nDB_SA_nSI, DA, nDB, SA, nSI); and (nDA_DB_nSA_nSI, nDA, DB, nSA, nSI); and (DA_DB_SA_SE, DA, DB, SA, SE); and (DA_DB_nSA_SE, DA, DB, nSA, SE); and (DA_nDB_SA_SE, DA, nDB, SA, SE); and (nDA_DB_nSA_SE, nDA, DB, nSA, SE); and (DA_nDB_nSA_SE, DA, nDB, nSA, SE); and (nDA_DB_SA_SE, nDA, DB, SA, SE); and (nDA_nDB_SA_SE, nDA, nDB, SA, SE); and (nDA_nDB_nSA_SE, nDA, nDB, nSA, SE); // Timing logics defined for default constraint check `ifdef NTC not (SA_int_not, SA_d); not (SE_int_not, SE_d); buf (SI_check, SE_d); and (DA_check, SA_d, SE_int_not); `else not (SA_int_not, SA); not (SE_int_not, SE); buf (SI_check, SE); and (DA_check, SA, SE_int_not); `endif buf (SA_check, SE_int_not); and (DB_check, SA_int_not, SE_int_not); or (CP_check, SI_check, DA_check, SA_check, DB_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (DB_DEFCHK, DB_check, 1'b1); tsmc_xbuf (DA_DEFCHK, DA_check, 1'b1); tsmc_xbuf (SA_DEFCHK, SA_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && SA && DA) || (!(SE) && !(SA) && DB)))) = (0, 0); $width (posedge CP &&& DA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& DA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& DA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_DB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_SA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nDA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nDA_nDB_nSA_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier,,, CP_d, DA_d); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier,,, CP_d, DB_d); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier,,, CP_d, SA_d); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_SI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, posedge DA , 0, 0, notifier); $setuphold (posedge CP &&& nDB_SA_nSE_nSI_SDFCHK, negedge DA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_SI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, posedge DB , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nSA_nSE_nSI_SDFCHK, negedge DB , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_SI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, posedge SA , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSE_nSI_SDFCHK, negedge SA , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& DA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_DB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_SA_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nDA_nDB_nSA_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNCND0BWP7T35P140LVT (SI, D, SE, CPN, CDN, Q, QN); input SI, D, SE, CPN, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CPN_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CPN_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); `else $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNCND1BWP7T35P140LVT (SI, D, SE, CPN, CDN, Q, QN); input SI, D, SE, CPN, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CPN_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CPN_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); `else $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNCND2BWP7T35P140LVT (SI, D, SE, CPN, CDN, Q, QN); input SI, D, SE, CPN, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CPN_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CPN_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); `else $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNCND4BWP7T35P140LVT (SI, D, SE, CPN, CDN, Q, QN); input SI, D, SE, CPN, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CPN_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CPN_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); `else $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNCSND0BWP7T35P140LVT (SI, D, SE, CPN, CDN, SDN, Q, QN); input SI, D, SE, CPN, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CPN_d; tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CPN_D_SDN_SE_SI_SDFCHK, CPN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SDN_SE_nSI_SDFCHK, CPN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CPN_D_SDN_nSE_SI_SDFCHK, CPN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_SDN_nSE_nSI_SDFCHK, CPN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SDN_SE_SI_SDFCHK, CPN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CPN_nD_SDN_SE_nSI_SDFCHK, CPN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SDN_nSE_SI_SDFCHK, CPN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_SDN_nSE_nSI_SDFCHK, CPN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SDN_SE_SI_SDFCHK, nCPN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SDN_SE_nSI_SDFCHK, nCPN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SDN_nSE_SI_SDFCHK, nCPN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_SDN_nSE_nSI_SDFCHK, nCPN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_SE_SI_SDFCHK, nCPN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_SE_nSI_SDFCHK, nCPN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_nSE_SI_SDFCHK, nCPN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_nSE_nSI_SDFCHK, nCPN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_D_SE_SI_SDFCHK, CDN_CPN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_nSE_SI_SDFCHK, CDN_CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_nSE_nSI_SDFCHK, CDN_CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_SE_SI_SDFCHK, CDN_CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_SE_nSI_SDFCHK, CDN_CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_SE_nSI_SDFCHK, CDN_CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_nSE_SI_SDFCHK, CDN_CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CPN_nD_nSE_nSI_SDFCHK, CDN_CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_D_SE_SI_SDFCHK, CDN_nCPN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_D_SE_nSI_SDFCHK, CDN_nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_D_nSE_SI_SDFCHK, CDN_nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_D_nSE_nSI_SDFCHK, CDN_nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_SE_SI_SDFCHK, CDN_nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_SE_nSI_SDFCHK, CDN_nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_nSE_SI_SDFCHK, CDN_nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_nSE_nSI_SDFCHK, CDN_nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (CPN_D_SDN_SE_SI, CPN, D, SDN, SE, SI); and (CPN_D_SDN_SE_nSI, CPN, D, SDN, SE, nSI); and (CPN_D_SDN_nSE_SI, CPN, D, SDN, nSE, SI); and (CPN_D_SDN_nSE_nSI, CPN, D, SDN, nSE, nSI); and (CPN_nD_SDN_SE_SI, CPN, nD, SDN, SE, SI); and (CPN_nD_SDN_SE_nSI, CPN, nD, SDN, SE, nSI); and (CPN_nD_SDN_nSE_SI, CPN, nD, SDN, nSE, SI); and (CPN_nD_SDN_nSE_nSI, CPN, nD, SDN, nSE, nSI); and (nCPN_D_SDN_SE_SI, nCPN, D, SDN, SE, SI); and (nCPN_D_SDN_SE_nSI, nCPN, D, SDN, SE, nSI); and (nCPN_D_SDN_nSE_SI, nCPN, D, SDN, nSE, SI); and (nCPN_D_SDN_nSE_nSI, nCPN, D, SDN, nSE, nSI); and (nCPN_nD_SDN_SE_SI, nCPN, nD, SDN, SE, SI); and (nCPN_nD_SDN_SE_nSI, nCPN, nD, SDN, SE, nSI); and (nCPN_nD_SDN_nSE_SI, nCPN, nD, SDN, nSE, SI); and (nCPN_nD_SDN_nSE_nSI, nCPN, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CPN_D_SE_SI, CDN, CPN, D, SE, SI); and (CDN_CPN_D_nSE_SI, CDN, CPN, D, nSE, SI); and (CDN_CPN_D_nSE_nSI, CDN, CPN, D, nSE, nSI); and (CDN_CPN_nD_SE_SI, CDN, CPN, nD, SE, SI); and (CDN_CPN_D_SE_nSI, CDN, CPN, D, SE, nSI); and (CDN_CPN_nD_SE_nSI, CDN, CPN, nD, SE, nSI); and (CDN_CPN_nD_nSE_SI, CDN, CPN, nD, nSE, SI); and (CDN_CPN_nD_nSE_nSI, CDN, CPN, nD, nSE, nSI); and (CDN_nCPN_D_SE_SI, CDN, nCPN, D, SE, SI); and (CDN_nCPN_D_SE_nSI, CDN, nCPN, D, SE, nSI); and (CDN_nCPN_D_nSE_SI, CDN, nCPN, D, nSE, SI); and (CDN_nCPN_D_nSE_nSI, CDN, nCPN, D, nSE, nSI); and (CDN_nCPN_nD_SE_SI, CDN, nCPN, nD, SE, SI); and (CDN_nCPN_nD_SE_nSI, CDN, nCPN, nD, SE, nSI); and (CDN_nCPN_nD_nSE_SI, CDN, nCPN, nD, nSE, SI); and (CDN_nCPN_nD_nSE_nSI, CDN, nCPN, nD, nSE, nSI); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CPN_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CPN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNCSND1BWP7T35P140LVT (SI, D, SE, CPN, CDN, SDN, Q, QN); input SI, D, SE, CPN, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CPN_d; tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CPN_D_SDN_SE_SI_SDFCHK, CPN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SDN_SE_nSI_SDFCHK, CPN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CPN_D_SDN_nSE_SI_SDFCHK, CPN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_SDN_nSE_nSI_SDFCHK, CPN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SDN_SE_SI_SDFCHK, CPN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CPN_nD_SDN_SE_nSI_SDFCHK, CPN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SDN_nSE_SI_SDFCHK, CPN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_SDN_nSE_nSI_SDFCHK, CPN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SDN_SE_SI_SDFCHK, nCPN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SDN_SE_nSI_SDFCHK, nCPN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SDN_nSE_SI_SDFCHK, nCPN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_SDN_nSE_nSI_SDFCHK, nCPN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_SE_SI_SDFCHK, nCPN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_SE_nSI_SDFCHK, nCPN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_nSE_SI_SDFCHK, nCPN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_nSE_nSI_SDFCHK, nCPN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_D_SE_SI_SDFCHK, CDN_CPN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_nSE_SI_SDFCHK, CDN_CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_nSE_nSI_SDFCHK, CDN_CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_SE_SI_SDFCHK, CDN_CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_SE_nSI_SDFCHK, CDN_CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_SE_nSI_SDFCHK, CDN_CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_nSE_SI_SDFCHK, CDN_CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CPN_nD_nSE_nSI_SDFCHK, CDN_CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_D_SE_SI_SDFCHK, CDN_nCPN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_D_SE_nSI_SDFCHK, CDN_nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_D_nSE_SI_SDFCHK, CDN_nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_D_nSE_nSI_SDFCHK, CDN_nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_SE_SI_SDFCHK, CDN_nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_SE_nSI_SDFCHK, CDN_nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_nSE_SI_SDFCHK, CDN_nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_nSE_nSI_SDFCHK, CDN_nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (CPN_D_SDN_SE_SI, CPN, D, SDN, SE, SI); and (CPN_D_SDN_SE_nSI, CPN, D, SDN, SE, nSI); and (CPN_D_SDN_nSE_SI, CPN, D, SDN, nSE, SI); and (CPN_D_SDN_nSE_nSI, CPN, D, SDN, nSE, nSI); and (CPN_nD_SDN_SE_SI, CPN, nD, SDN, SE, SI); and (CPN_nD_SDN_SE_nSI, CPN, nD, SDN, SE, nSI); and (CPN_nD_SDN_nSE_SI, CPN, nD, SDN, nSE, SI); and (CPN_nD_SDN_nSE_nSI, CPN, nD, SDN, nSE, nSI); and (nCPN_D_SDN_SE_SI, nCPN, D, SDN, SE, SI); and (nCPN_D_SDN_SE_nSI, nCPN, D, SDN, SE, nSI); and (nCPN_D_SDN_nSE_SI, nCPN, D, SDN, nSE, SI); and (nCPN_D_SDN_nSE_nSI, nCPN, D, SDN, nSE, nSI); and (nCPN_nD_SDN_SE_SI, nCPN, nD, SDN, SE, SI); and (nCPN_nD_SDN_SE_nSI, nCPN, nD, SDN, SE, nSI); and (nCPN_nD_SDN_nSE_SI, nCPN, nD, SDN, nSE, SI); and (nCPN_nD_SDN_nSE_nSI, nCPN, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CPN_D_SE_SI, CDN, CPN, D, SE, SI); and (CDN_CPN_D_nSE_SI, CDN, CPN, D, nSE, SI); and (CDN_CPN_D_nSE_nSI, CDN, CPN, D, nSE, nSI); and (CDN_CPN_nD_SE_SI, CDN, CPN, nD, SE, SI); and (CDN_CPN_D_SE_nSI, CDN, CPN, D, SE, nSI); and (CDN_CPN_nD_SE_nSI, CDN, CPN, nD, SE, nSI); and (CDN_CPN_nD_nSE_SI, CDN, CPN, nD, nSE, SI); and (CDN_CPN_nD_nSE_nSI, CDN, CPN, nD, nSE, nSI); and (CDN_nCPN_D_SE_SI, CDN, nCPN, D, SE, SI); and (CDN_nCPN_D_SE_nSI, CDN, nCPN, D, SE, nSI); and (CDN_nCPN_D_nSE_SI, CDN, nCPN, D, nSE, SI); and (CDN_nCPN_D_nSE_nSI, CDN, nCPN, D, nSE, nSI); and (CDN_nCPN_nD_SE_SI, CDN, nCPN, nD, SE, SI); and (CDN_nCPN_nD_SE_nSI, CDN, nCPN, nD, SE, nSI); and (CDN_nCPN_nD_nSE_SI, CDN, nCPN, nD, nSE, SI); and (CDN_nCPN_nD_nSE_nSI, CDN, nCPN, nD, nSE, nSI); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CPN_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CPN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNCSND2BWP7T35P140LVT (SI, D, SE, CPN, CDN, SDN, Q, QN); input SI, D, SE, CPN, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CPN_d; tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CPN_D_SDN_SE_SI_SDFCHK, CPN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SDN_SE_nSI_SDFCHK, CPN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CPN_D_SDN_nSE_SI_SDFCHK, CPN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_SDN_nSE_nSI_SDFCHK, CPN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SDN_SE_SI_SDFCHK, CPN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CPN_nD_SDN_SE_nSI_SDFCHK, CPN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SDN_nSE_SI_SDFCHK, CPN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_SDN_nSE_nSI_SDFCHK, CPN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SDN_SE_SI_SDFCHK, nCPN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SDN_SE_nSI_SDFCHK, nCPN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SDN_nSE_SI_SDFCHK, nCPN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_SDN_nSE_nSI_SDFCHK, nCPN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_SE_SI_SDFCHK, nCPN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_SE_nSI_SDFCHK, nCPN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_nSE_SI_SDFCHK, nCPN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_nSE_nSI_SDFCHK, nCPN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_D_SE_SI_SDFCHK, CDN_CPN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_nSE_SI_SDFCHK, CDN_CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_nSE_nSI_SDFCHK, CDN_CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_SE_SI_SDFCHK, CDN_CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_SE_nSI_SDFCHK, CDN_CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_SE_nSI_SDFCHK, CDN_CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_nSE_SI_SDFCHK, CDN_CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CPN_nD_nSE_nSI_SDFCHK, CDN_CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_D_SE_SI_SDFCHK, CDN_nCPN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_D_SE_nSI_SDFCHK, CDN_nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_D_nSE_SI_SDFCHK, CDN_nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_D_nSE_nSI_SDFCHK, CDN_nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_SE_SI_SDFCHK, CDN_nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_SE_nSI_SDFCHK, CDN_nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_nSE_SI_SDFCHK, CDN_nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_nSE_nSI_SDFCHK, CDN_nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (CPN_D_SDN_SE_SI, CPN, D, SDN, SE, SI); and (CPN_D_SDN_SE_nSI, CPN, D, SDN, SE, nSI); and (CPN_D_SDN_nSE_SI, CPN, D, SDN, nSE, SI); and (CPN_D_SDN_nSE_nSI, CPN, D, SDN, nSE, nSI); and (CPN_nD_SDN_SE_SI, CPN, nD, SDN, SE, SI); and (CPN_nD_SDN_SE_nSI, CPN, nD, SDN, SE, nSI); and (CPN_nD_SDN_nSE_SI, CPN, nD, SDN, nSE, SI); and (CPN_nD_SDN_nSE_nSI, CPN, nD, SDN, nSE, nSI); and (nCPN_D_SDN_SE_SI, nCPN, D, SDN, SE, SI); and (nCPN_D_SDN_SE_nSI, nCPN, D, SDN, SE, nSI); and (nCPN_D_SDN_nSE_SI, nCPN, D, SDN, nSE, SI); and (nCPN_D_SDN_nSE_nSI, nCPN, D, SDN, nSE, nSI); and (nCPN_nD_SDN_SE_SI, nCPN, nD, SDN, SE, SI); and (nCPN_nD_SDN_SE_nSI, nCPN, nD, SDN, SE, nSI); and (nCPN_nD_SDN_nSE_SI, nCPN, nD, SDN, nSE, SI); and (nCPN_nD_SDN_nSE_nSI, nCPN, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CPN_D_SE_SI, CDN, CPN, D, SE, SI); and (CDN_CPN_D_nSE_SI, CDN, CPN, D, nSE, SI); and (CDN_CPN_D_nSE_nSI, CDN, CPN, D, nSE, nSI); and (CDN_CPN_nD_SE_SI, CDN, CPN, nD, SE, SI); and (CDN_CPN_D_SE_nSI, CDN, CPN, D, SE, nSI); and (CDN_CPN_nD_SE_nSI, CDN, CPN, nD, SE, nSI); and (CDN_CPN_nD_nSE_SI, CDN, CPN, nD, nSE, SI); and (CDN_CPN_nD_nSE_nSI, CDN, CPN, nD, nSE, nSI); and (CDN_nCPN_D_SE_SI, CDN, nCPN, D, SE, SI); and (CDN_nCPN_D_SE_nSI, CDN, nCPN, D, SE, nSI); and (CDN_nCPN_D_nSE_SI, CDN, nCPN, D, nSE, SI); and (CDN_nCPN_D_nSE_nSI, CDN, nCPN, D, nSE, nSI); and (CDN_nCPN_nD_SE_SI, CDN, nCPN, nD, SE, SI); and (CDN_nCPN_nD_SE_nSI, CDN, nCPN, nD, SE, nSI); and (CDN_nCPN_nD_nSE_SI, CDN, nCPN, nD, nSE, SI); and (CDN_nCPN_nD_nSE_nSI, CDN, nCPN, nD, nSE, nSI); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CPN_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CPN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNCSND4BWP7T35P140LVT (SI, D, SE, CPN, CDN, SDN, Q, QN); input SI, D, SE, CPN, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CPN_d; tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CPN_D_SDN_SE_SI_SDFCHK, CPN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SDN_SE_nSI_SDFCHK, CPN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CPN_D_SDN_nSE_SI_SDFCHK, CPN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_SDN_nSE_nSI_SDFCHK, CPN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SDN_SE_SI_SDFCHK, CPN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CPN_nD_SDN_SE_nSI_SDFCHK, CPN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SDN_nSE_SI_SDFCHK, CPN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_SDN_nSE_nSI_SDFCHK, CPN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SDN_SE_SI_SDFCHK, nCPN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SDN_SE_nSI_SDFCHK, nCPN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SDN_nSE_SI_SDFCHK, nCPN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_SDN_nSE_nSI_SDFCHK, nCPN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_SE_SI_SDFCHK, nCPN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_SE_nSI_SDFCHK, nCPN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_nSE_SI_SDFCHK, nCPN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_nSE_nSI_SDFCHK, nCPN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_D_SE_SI_SDFCHK, CDN_CPN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_nSE_SI_SDFCHK, CDN_CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_nSE_nSI_SDFCHK, CDN_CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_SE_SI_SDFCHK, CDN_CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_SE_nSI_SDFCHK, CDN_CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_SE_nSI_SDFCHK, CDN_CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_nSE_SI_SDFCHK, CDN_CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CPN_nD_nSE_nSI_SDFCHK, CDN_CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_D_SE_SI_SDFCHK, CDN_nCPN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_D_SE_nSI_SDFCHK, CDN_nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_D_nSE_SI_SDFCHK, CDN_nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_D_nSE_nSI_SDFCHK, CDN_nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_SE_SI_SDFCHK, CDN_nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_SE_nSI_SDFCHK, CDN_nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_nSE_SI_SDFCHK, CDN_nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_nSE_nSI_SDFCHK, CDN_nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (CPN_D_SDN_SE_SI, CPN, D, SDN, SE, SI); and (CPN_D_SDN_SE_nSI, CPN, D, SDN, SE, nSI); and (CPN_D_SDN_nSE_SI, CPN, D, SDN, nSE, SI); and (CPN_D_SDN_nSE_nSI, CPN, D, SDN, nSE, nSI); and (CPN_nD_SDN_SE_SI, CPN, nD, SDN, SE, SI); and (CPN_nD_SDN_SE_nSI, CPN, nD, SDN, SE, nSI); and (CPN_nD_SDN_nSE_SI, CPN, nD, SDN, nSE, SI); and (CPN_nD_SDN_nSE_nSI, CPN, nD, SDN, nSE, nSI); and (nCPN_D_SDN_SE_SI, nCPN, D, SDN, SE, SI); and (nCPN_D_SDN_SE_nSI, nCPN, D, SDN, SE, nSI); and (nCPN_D_SDN_nSE_SI, nCPN, D, SDN, nSE, SI); and (nCPN_D_SDN_nSE_nSI, nCPN, D, SDN, nSE, nSI); and (nCPN_nD_SDN_SE_SI, nCPN, nD, SDN, SE, SI); and (nCPN_nD_SDN_SE_nSI, nCPN, nD, SDN, SE, nSI); and (nCPN_nD_SDN_nSE_SI, nCPN, nD, SDN, nSE, SI); and (nCPN_nD_SDN_nSE_nSI, nCPN, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CPN_D_SE_SI, CDN, CPN, D, SE, SI); and (CDN_CPN_D_nSE_SI, CDN, CPN, D, nSE, SI); and (CDN_CPN_D_nSE_nSI, CDN, CPN, D, nSE, nSI); and (CDN_CPN_nD_SE_SI, CDN, CPN, nD, SE, SI); and (CDN_CPN_D_SE_nSI, CDN, CPN, D, SE, nSI); and (CDN_CPN_nD_SE_nSI, CDN, CPN, nD, SE, nSI); and (CDN_CPN_nD_nSE_SI, CDN, CPN, nD, nSE, SI); and (CDN_CPN_nD_nSE_nSI, CDN, CPN, nD, nSE, nSI); and (CDN_nCPN_D_SE_SI, CDN, nCPN, D, SE, SI); and (CDN_nCPN_D_SE_nSI, CDN, nCPN, D, SE, nSI); and (CDN_nCPN_D_nSE_SI, CDN, nCPN, D, nSE, SI); and (CDN_nCPN_D_nSE_nSI, CDN, nCPN, D, nSE, nSI); and (CDN_nCPN_nD_SE_SI, CDN, nCPN, nD, SE, SI); and (CDN_nCPN_nD_SE_nSI, CDN, nCPN, nD, SE, nSI); and (CDN_nCPN_nD_nSE_SI, CDN, nCPN, nD, nSE, SI); and (CDN_nCPN_nD_nSE_nSI, CDN, nCPN, nD, nSE, nSI); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CPN_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CPN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFND0BWP7T35P140LVT (SI, D, SE, CPN, Q, QN); input SI, D, SE, CPN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CPN_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CPN_check); pullup (SE_check); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CPN &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge CPN &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); `else $setuphold (negedge CPN &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFND1BWP7T35P140LVT (SI, D, SE, CPN, Q, QN); input SI, D, SE, CPN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CPN_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CPN_check); pullup (SE_check); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CPN &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge CPN &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); `else $setuphold (negedge CPN &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFND2BWP7T35P140LVT (SI, D, SE, CPN, Q, QN); input SI, D, SE, CPN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CPN_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CPN_check); pullup (SE_check); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CPN &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge CPN &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); `else $setuphold (negedge CPN &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFND4BWP7T35P140LVT (SI, D, SE, CPN, Q, QN); input SI, D, SE, CPN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CPN_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CPN_check); pullup (SE_check); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CPN &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge CPN &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); `else $setuphold (negedge CPN &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNSND0BWP7T35P140LVT (SI, D, SE, CPN, SDN, Q, QN); input SI, D, SE, CPN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CPN_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CPN_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNSND1BWP7T35P140LVT (SI, D, SE, CPN, SDN, Q, QN); input SI, D, SE, CPN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CPN_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CPN_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNSND2BWP7T35P140LVT (SI, D, SE, CPN, SDN, Q, QN); input SI, D, SE, CPN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CPN_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CPN_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNSND4BWP7T35P140LVT (SI, D, SE, CPN, SDN, Q, QN); input SI, D, SE, CPN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CPN_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CPN_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNSYNCND1BWP7T35P140LVT (SI, D, SE, CPN, CDN, Q, QN); input SI, D, SE, CPN, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CPN_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CPN_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); `else $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNSYNCND2BWP7T35P140LVT (SI, D, SE, CPN, CDN, Q, QN); input SI, D, SE, CPN, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CPN_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CPN_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); `else $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNSYNCND4BWP7T35P140LVT (SI, D, SE, CPN, CDN, Q, QN); input SI, D, SE, CPN, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CPN_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CPN_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); `else $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, negedge CPN &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, negedge CPN &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, negedge CPN &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, negedge CPN &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNSYNCSND1BWP7T35P140LVT (SI, D, SE, CPN, CDN, SDN, Q, QN); input SI, D, SE, CPN, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CPN_d; tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CPN_D_SDN_SE_SI_SDFCHK, CPN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SDN_SE_nSI_SDFCHK, CPN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CPN_D_SDN_nSE_SI_SDFCHK, CPN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_SDN_nSE_nSI_SDFCHK, CPN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SDN_SE_SI_SDFCHK, CPN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CPN_nD_SDN_SE_nSI_SDFCHK, CPN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SDN_nSE_SI_SDFCHK, CPN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_SDN_nSE_nSI_SDFCHK, CPN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SDN_SE_SI_SDFCHK, nCPN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SDN_SE_nSI_SDFCHK, nCPN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SDN_nSE_SI_SDFCHK, nCPN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_SDN_nSE_nSI_SDFCHK, nCPN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_SE_SI_SDFCHK, nCPN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_SE_nSI_SDFCHK, nCPN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_nSE_SI_SDFCHK, nCPN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_nSE_nSI_SDFCHK, nCPN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_D_SE_SI_SDFCHK, CDN_CPN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_nSE_SI_SDFCHK, CDN_CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_nSE_nSI_SDFCHK, CDN_CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_SE_SI_SDFCHK, CDN_CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_SE_nSI_SDFCHK, CDN_CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_SE_nSI_SDFCHK, CDN_CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_nSE_SI_SDFCHK, CDN_CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CPN_nD_nSE_nSI_SDFCHK, CDN_CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_D_SE_SI_SDFCHK, CDN_nCPN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_D_SE_nSI_SDFCHK, CDN_nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_D_nSE_SI_SDFCHK, CDN_nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_D_nSE_nSI_SDFCHK, CDN_nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_SE_SI_SDFCHK, CDN_nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_SE_nSI_SDFCHK, CDN_nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_nSE_SI_SDFCHK, CDN_nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_nSE_nSI_SDFCHK, CDN_nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (CPN_D_SDN_SE_SI, CPN, D, SDN, SE, SI); and (CPN_D_SDN_SE_nSI, CPN, D, SDN, SE, nSI); and (CPN_D_SDN_nSE_SI, CPN, D, SDN, nSE, SI); and (CPN_D_SDN_nSE_nSI, CPN, D, SDN, nSE, nSI); and (CPN_nD_SDN_SE_SI, CPN, nD, SDN, SE, SI); and (CPN_nD_SDN_SE_nSI, CPN, nD, SDN, SE, nSI); and (CPN_nD_SDN_nSE_SI, CPN, nD, SDN, nSE, SI); and (CPN_nD_SDN_nSE_nSI, CPN, nD, SDN, nSE, nSI); and (nCPN_D_SDN_SE_SI, nCPN, D, SDN, SE, SI); and (nCPN_D_SDN_SE_nSI, nCPN, D, SDN, SE, nSI); and (nCPN_D_SDN_nSE_SI, nCPN, D, SDN, nSE, SI); and (nCPN_D_SDN_nSE_nSI, nCPN, D, SDN, nSE, nSI); and (nCPN_nD_SDN_SE_SI, nCPN, nD, SDN, SE, SI); and (nCPN_nD_SDN_SE_nSI, nCPN, nD, SDN, SE, nSI); and (nCPN_nD_SDN_nSE_SI, nCPN, nD, SDN, nSE, SI); and (nCPN_nD_SDN_nSE_nSI, nCPN, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CPN_D_SE_SI, CDN, CPN, D, SE, SI); and (CDN_CPN_D_nSE_SI, CDN, CPN, D, nSE, SI); and (CDN_CPN_D_nSE_nSI, CDN, CPN, D, nSE, nSI); and (CDN_CPN_nD_SE_SI, CDN, CPN, nD, SE, SI); and (CDN_CPN_D_SE_nSI, CDN, CPN, D, SE, nSI); and (CDN_CPN_nD_SE_nSI, CDN, CPN, nD, SE, nSI); and (CDN_CPN_nD_nSE_SI, CDN, CPN, nD, nSE, SI); and (CDN_CPN_nD_nSE_nSI, CDN, CPN, nD, nSE, nSI); and (CDN_nCPN_D_SE_SI, CDN, nCPN, D, SE, SI); and (CDN_nCPN_D_SE_nSI, CDN, nCPN, D, SE, nSI); and (CDN_nCPN_D_nSE_SI, CDN, nCPN, D, nSE, SI); and (CDN_nCPN_D_nSE_nSI, CDN, nCPN, D, nSE, nSI); and (CDN_nCPN_nD_SE_SI, CDN, nCPN, nD, SE, SI); and (CDN_nCPN_nD_SE_nSI, CDN, nCPN, nD, SE, nSI); and (CDN_nCPN_nD_nSE_SI, CDN, nCPN, nD, nSE, SI); and (CDN_nCPN_nD_nSE_nSI, CDN, nCPN, nD, nSE, nSI); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CPN_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CPN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNSYNCSND2BWP7T35P140LVT (SI, D, SE, CPN, CDN, SDN, Q, QN); input SI, D, SE, CPN, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CPN_d; tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CPN_D_SDN_SE_SI_SDFCHK, CPN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SDN_SE_nSI_SDFCHK, CPN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CPN_D_SDN_nSE_SI_SDFCHK, CPN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_SDN_nSE_nSI_SDFCHK, CPN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SDN_SE_SI_SDFCHK, CPN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CPN_nD_SDN_SE_nSI_SDFCHK, CPN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SDN_nSE_SI_SDFCHK, CPN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_SDN_nSE_nSI_SDFCHK, CPN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SDN_SE_SI_SDFCHK, nCPN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SDN_SE_nSI_SDFCHK, nCPN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SDN_nSE_SI_SDFCHK, nCPN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_SDN_nSE_nSI_SDFCHK, nCPN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_SE_SI_SDFCHK, nCPN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_SE_nSI_SDFCHK, nCPN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_nSE_SI_SDFCHK, nCPN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_nSE_nSI_SDFCHK, nCPN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_D_SE_SI_SDFCHK, CDN_CPN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_nSE_SI_SDFCHK, CDN_CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_nSE_nSI_SDFCHK, CDN_CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_SE_SI_SDFCHK, CDN_CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_SE_nSI_SDFCHK, CDN_CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_SE_nSI_SDFCHK, CDN_CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_nSE_SI_SDFCHK, CDN_CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CPN_nD_nSE_nSI_SDFCHK, CDN_CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_D_SE_SI_SDFCHK, CDN_nCPN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_D_SE_nSI_SDFCHK, CDN_nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_D_nSE_SI_SDFCHK, CDN_nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_D_nSE_nSI_SDFCHK, CDN_nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_SE_SI_SDFCHK, CDN_nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_SE_nSI_SDFCHK, CDN_nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_nSE_SI_SDFCHK, CDN_nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_nSE_nSI_SDFCHK, CDN_nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (CPN_D_SDN_SE_SI, CPN, D, SDN, SE, SI); and (CPN_D_SDN_SE_nSI, CPN, D, SDN, SE, nSI); and (CPN_D_SDN_nSE_SI, CPN, D, SDN, nSE, SI); and (CPN_D_SDN_nSE_nSI, CPN, D, SDN, nSE, nSI); and (CPN_nD_SDN_SE_SI, CPN, nD, SDN, SE, SI); and (CPN_nD_SDN_SE_nSI, CPN, nD, SDN, SE, nSI); and (CPN_nD_SDN_nSE_SI, CPN, nD, SDN, nSE, SI); and (CPN_nD_SDN_nSE_nSI, CPN, nD, SDN, nSE, nSI); and (nCPN_D_SDN_SE_SI, nCPN, D, SDN, SE, SI); and (nCPN_D_SDN_SE_nSI, nCPN, D, SDN, SE, nSI); and (nCPN_D_SDN_nSE_SI, nCPN, D, SDN, nSE, SI); and (nCPN_D_SDN_nSE_nSI, nCPN, D, SDN, nSE, nSI); and (nCPN_nD_SDN_SE_SI, nCPN, nD, SDN, SE, SI); and (nCPN_nD_SDN_SE_nSI, nCPN, nD, SDN, SE, nSI); and (nCPN_nD_SDN_nSE_SI, nCPN, nD, SDN, nSE, SI); and (nCPN_nD_SDN_nSE_nSI, nCPN, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CPN_D_SE_SI, CDN, CPN, D, SE, SI); and (CDN_CPN_D_nSE_SI, CDN, CPN, D, nSE, SI); and (CDN_CPN_D_nSE_nSI, CDN, CPN, D, nSE, nSI); and (CDN_CPN_nD_SE_SI, CDN, CPN, nD, SE, SI); and (CDN_CPN_D_SE_nSI, CDN, CPN, D, SE, nSI); and (CDN_CPN_nD_SE_nSI, CDN, CPN, nD, SE, nSI); and (CDN_CPN_nD_nSE_SI, CDN, CPN, nD, nSE, SI); and (CDN_CPN_nD_nSE_nSI, CDN, CPN, nD, nSE, nSI); and (CDN_nCPN_D_SE_SI, CDN, nCPN, D, SE, SI); and (CDN_nCPN_D_SE_nSI, CDN, nCPN, D, SE, nSI); and (CDN_nCPN_D_nSE_SI, CDN, nCPN, D, nSE, SI); and (CDN_nCPN_D_nSE_nSI, CDN, nCPN, D, nSE, nSI); and (CDN_nCPN_nD_SE_SI, CDN, nCPN, nD, SE, SI); and (CDN_nCPN_nD_SE_nSI, CDN, nCPN, nD, SE, nSI); and (CDN_nCPN_nD_nSE_SI, CDN, nCPN, nD, nSE, SI); and (CDN_nCPN_nD_nSE_nSI, CDN, nCPN, nD, nSE, nSI); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CPN_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CPN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNSYNCSND4BWP7T35P140LVT (SI, D, SE, CPN, CDN, SDN, Q, QN); input SI, D, SE, CPN, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CPN_d; tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CPN_D_SDN_SE_SI_SDFCHK, CPN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SDN_SE_nSI_SDFCHK, CPN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CPN_D_SDN_nSE_SI_SDFCHK, CPN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_SDN_nSE_nSI_SDFCHK, CPN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SDN_SE_SI_SDFCHK, CPN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CPN_nD_SDN_SE_nSI_SDFCHK, CPN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SDN_nSE_SI_SDFCHK, CPN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_SDN_nSE_nSI_SDFCHK, CPN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SDN_SE_SI_SDFCHK, nCPN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SDN_SE_nSI_SDFCHK, nCPN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SDN_nSE_SI_SDFCHK, nCPN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_SDN_nSE_nSI_SDFCHK, nCPN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_SE_SI_SDFCHK, nCPN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_SE_nSI_SDFCHK, nCPN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_nSE_SI_SDFCHK, nCPN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SDN_nSE_nSI_SDFCHK, nCPN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_D_SE_SI_SDFCHK, CDN_CPN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_nSE_SI_SDFCHK, CDN_CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_nSE_nSI_SDFCHK, CDN_CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_SE_SI_SDFCHK, CDN_CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CPN_D_SE_nSI_SDFCHK, CDN_CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_SE_nSI_SDFCHK, CDN_CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CPN_nD_nSE_SI_SDFCHK, CDN_CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CPN_nD_nSE_nSI_SDFCHK, CDN_CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_D_SE_SI_SDFCHK, CDN_nCPN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_D_SE_nSI_SDFCHK, CDN_nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_D_nSE_SI_SDFCHK, CDN_nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_D_nSE_nSI_SDFCHK, CDN_nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_SE_SI_SDFCHK, CDN_nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_SE_nSI_SDFCHK, CDN_nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_nSE_SI_SDFCHK, CDN_nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCPN_nD_nSE_nSI_SDFCHK, CDN_nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (CPN_D_SDN_SE_SI, CPN, D, SDN, SE, SI); and (CPN_D_SDN_SE_nSI, CPN, D, SDN, SE, nSI); and (CPN_D_SDN_nSE_SI, CPN, D, SDN, nSE, SI); and (CPN_D_SDN_nSE_nSI, CPN, D, SDN, nSE, nSI); and (CPN_nD_SDN_SE_SI, CPN, nD, SDN, SE, SI); and (CPN_nD_SDN_SE_nSI, CPN, nD, SDN, SE, nSI); and (CPN_nD_SDN_nSE_SI, CPN, nD, SDN, nSE, SI); and (CPN_nD_SDN_nSE_nSI, CPN, nD, SDN, nSE, nSI); and (nCPN_D_SDN_SE_SI, nCPN, D, SDN, SE, SI); and (nCPN_D_SDN_SE_nSI, nCPN, D, SDN, SE, nSI); and (nCPN_D_SDN_nSE_SI, nCPN, D, SDN, nSE, SI); and (nCPN_D_SDN_nSE_nSI, nCPN, D, SDN, nSE, nSI); and (nCPN_nD_SDN_SE_SI, nCPN, nD, SDN, SE, SI); and (nCPN_nD_SDN_SE_nSI, nCPN, nD, SDN, SE, nSI); and (nCPN_nD_SDN_nSE_SI, nCPN, nD, SDN, nSE, SI); and (nCPN_nD_SDN_nSE_nSI, nCPN, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CPN_D_SE_SI, CDN, CPN, D, SE, SI); and (CDN_CPN_D_nSE_SI, CDN, CPN, D, nSE, SI); and (CDN_CPN_D_nSE_nSI, CDN, CPN, D, nSE, nSI); and (CDN_CPN_nD_SE_SI, CDN, CPN, nD, SE, SI); and (CDN_CPN_D_SE_nSI, CDN, CPN, D, SE, nSI); and (CDN_CPN_nD_SE_nSI, CDN, CPN, nD, SE, nSI); and (CDN_CPN_nD_nSE_SI, CDN, CPN, nD, nSE, SI); and (CDN_CPN_nD_nSE_nSI, CDN, CPN, nD, nSE, nSI); and (CDN_nCPN_D_SE_SI, CDN, nCPN, D, SE, SI); and (CDN_nCPN_D_SE_nSI, CDN, nCPN, D, SE, nSI); and (CDN_nCPN_D_nSE_SI, CDN, nCPN, D, nSE, SI); and (CDN_nCPN_D_nSE_nSI, CDN, nCPN, D, nSE, nSI); and (CDN_nCPN_nD_SE_SI, CDN, nCPN, nD, SE, SI); and (CDN_nCPN_nD_SE_nSI, CDN, nCPN, nD, SE, nSI); and (CDN_nCPN_nD_nSE_SI, CDN, nCPN, nD, nSE, SI); and (CDN_nCPN_nD_nSE_nSI, CDN, nCPN, nD, nSE, nSI); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CPN_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CPN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CPN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCPN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CPN_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCPN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, negedge CPN &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNSYND1BWP7T35P140LVT (SI, D, SE, CPN, Q, QN); input SI, D, SE, CPN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CPN_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CPN_check); pullup (SE_check); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CPN &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge CPN &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); `else $setuphold (negedge CPN &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNSYND2BWP7T35P140LVT (SI, D, SE, CPN, Q, QN); input SI, D, SE, CPN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CPN_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CPN_check); pullup (SE_check); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CPN &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge CPN &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); `else $setuphold (negedge CPN &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNSYND4BWP7T35P140LVT (SI, D, SE, CPN, Q, QN); input SI, D, SE, CPN; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CPN_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CPN_check); pullup (SE_check); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CPN &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (negedge CPN &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); `else $setuphold (negedge CPN &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNSYNSND1BWP7T35P140LVT (SI, D, SE, CPN, SDN, Q, QN); input SI, D, SE, CPN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CPN_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CPN_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNSYNSND2BWP7T35P140LVT (SI, D, SE, CPN, SDN, Q, QN); input SI, D, SE, CPN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CPN_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CPN_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFNSYNSND4BWP7T35P140LVT (SI, D, SE, CPN, SDN, Q, QN); input SI, D, SE, CPN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CPN_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); not (CP, CPN_d); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); not (CP, CPN); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CPN_D_SE_SI_SDFCHK, CPN_D_SE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_SI_SDFCHK, CPN_D_nSE_SI, 1'b1); tsmc_xbuf (CPN_D_nSE_nSI_SDFCHK, CPN_D_nSE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_SI_SDFCHK, CPN_nD_SE_SI, 1'b1); tsmc_xbuf (CPN_D_SE_nSI_SDFCHK, CPN_D_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_SE_nSI_SDFCHK, CPN_nD_SE_nSI, 1'b1); tsmc_xbuf (CPN_nD_nSE_SI_SDFCHK, CPN_nD_nSE_SI, 1'b1); tsmc_xbuf (CPN_nD_nSE_nSI_SDFCHK, CPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_D_SE_SI_SDFCHK, nCPN_D_SE_SI, 1'b1); tsmc_xbuf (nCPN_D_SE_nSI_SDFCHK, nCPN_D_SE_nSI, 1'b1); tsmc_xbuf (nCPN_D_nSE_SI_SDFCHK, nCPN_D_nSE_SI, 1'b1); tsmc_xbuf (nCPN_D_nSE_nSI_SDFCHK, nCPN_D_nSE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_SE_SI_SDFCHK, nCPN_nD_SE_SI, 1'b1); tsmc_xbuf (nCPN_nD_SE_nSI_SDFCHK, nCPN_nD_SE_nSI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_SI_SDFCHK, nCPN_nD_nSE_SI, 1'b1); tsmc_xbuf (nCPN_nD_nSE_nSI_SDFCHK, nCPN_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCPN, CPN); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CPN_D_SE_SI, CPN, D, SE, SI); and (CPN_D_nSE_SI, CPN, D, nSE, SI); and (CPN_D_nSE_nSI, CPN, D, nSE, nSI); and (CPN_nD_SE_SI, CPN, nD, SE, SI); and (CPN_D_SE_nSI, CPN, D, SE, nSI); and (CPN_nD_SE_nSI, CPN, nD, SE, nSI); and (CPN_nD_nSE_SI, CPN, nD, nSE, SI); and (CPN_nD_nSE_nSI, CPN, nD, nSE, nSI); and (nCPN_D_SE_SI, nCPN, D, SE, SI); and (nCPN_D_SE_nSI, nCPN, D, SE, nSI); and (nCPN_D_nSE_SI, nCPN, D, nSE, SI); and (nCPN_D_nSE_nSI, nCPN, D, nSE, nSI); and (nCPN_nD_SE_SI, nCPN, nD, SE, SI); and (nCPN_nD_SE_nSI, nCPN, nD, SE, nSI); and (nCPN_nD_nSE_SI, nCPN, nD, nSE, SI); and (nCPN_nD_nSE_nSI, nCPN, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CPN_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CPN_DEFCHK, CPN_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (negedge CPN => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (negedge CPN => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CPN == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CPN &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CPN &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCPN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CPN_d); `else $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CPN_d, D_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CPN_d, SE_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CPN_d, SI_d); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CPN_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (negedge CPN &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (negedge CPN &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, negedge CPN &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, negedge CPN &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, negedge CPN &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, negedge CPN &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (negedge CPN &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (negedge CPN &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFOPTAD1BWP7T35P140LVT (SI, D, SE, CP, Q, QN); input SI, D, SE, CP; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFOPTAD2BWP7T35P140LVT (SI, D, SE, CP, Q, QN); input SI, D, SE, CP; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFOPTAD4BWP7T35P140LVT (SI, D, SE, CP, Q, QN); input SI, D, SE, CP; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFOPTBD1BWP7T35P140LVT (SI, D, SE, CP, Q, QN); input SI, D, SE, CP; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFOPTBD2BWP7T35P140LVT (SI, D, SE, CP, Q, QN); input SI, D, SE, CP; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFOPTBD4BWP7T35P140LVT (SI, D, SE, CP, Q, QN); input SI, D, SE, CP; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFQD0BWP7T35P140LVT (SI, D, SE, CP, Q); input SI, D, SE, CP; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFQD1BWP7T35P140LVT (SI, D, SE, CP, Q); input SI, D, SE, CP; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFQD2BWP7T35P140LVT (SI, D, SE, CP, Q); input SI, D, SE, CP; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFQD4BWP7T35P140LVT (SI, D, SE, CP, Q); input SI, D, SE, CP; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFQND0BWP7T35P140LVT (SI, D, SE, CP, QN); input SI, D, SE, CP; output QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (D_nSI, D, nSI); and (nD_SI, nD, SI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFQND1BWP7T35P140LVT (SI, D, SE, CP, QN); input SI, D, SE, CP; output QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (D_nSI, D, nSI); and (nD_SI, nD, SI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFQND2BWP7T35P140LVT (SI, D, SE, CP, QN); input SI, D, SE, CP; output QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (D_nSI, D, nSI); and (nD_SI, nD, SI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFQND4BWP7T35P140LVT (SI, D, SE, CP, QN); input SI, D, SE, CP; output QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (D_nSI, D, nSI); and (nD_SI, nD, SI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFQNOPTBD1BWP7T35P140LVT (SI, D, SE, CP, QN); input SI, D, SE, CP; output QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (D_nSI, D, nSI); and (nD_SI, nD, SI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFQNOPTBD2BWP7T35P140LVT (SI, D, SE, CP, QN); input SI, D, SE, CP; output QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (D_nSI, D, nSI); and (nD_SI, nD, SI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFQNOPTBD4BWP7T35P140LVT (SI, D, SE, CP, QN); input SI, D, SE, CP; output QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (D_nSI, D, nSI); and (nD_SI, nD, SI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFQOPTAD1BWP7T35P140LVT (SI, D, SE, CP, Q); input SI, D, SE, CP; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFQOPTAD2BWP7T35P140LVT (SI, D, SE, CP, Q); input SI, D, SE, CP; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFQOPTAD4BWP7T35P140LVT (SI, D, SE, CP, Q); input SI, D, SE, CP; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFQOPTBD1BWP7T35P140LVT (SI, D, SE, CP, Q); input SI, D, SE, CP; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFQOPTBD2BWP7T35P140LVT (SI, D, SE, CP, Q); input SI, D, SE, CP; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFQOPTBD4BWP7T35P140LVT (SI, D, SE, CP, Q); input SI, D, SE, CP; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSND0BWP7T35P140LVT (SI, D, SE, CP, SDN, Q, QN); input SI, D, SE, CP, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSND1BWP7T35P140LVT (SI, D, SE, CP, SDN, Q, QN); input SI, D, SE, CP, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSND2BWP7T35P140LVT (SI, D, SE, CP, SDN, Q, QN); input SI, D, SE, CP, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSND4BWP7T35P140LVT (SI, D, SE, CP, SDN, Q, QN); input SI, D, SE, CP, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSNOPTBD1BWP7T35P140LVT (SI, D, SE, CP, SDN, Q, QN); input SI, D, SE, CP, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSNOPTBD2BWP7T35P140LVT (SI, D, SE, CP, SDN, Q, QN); input SI, D, SE, CP, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSNOPTBD4BWP7T35P140LVT (SI, D, SE, CP, SDN, Q, QN); input SI, D, SE, CP, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSNQD0BWP7T35P140LVT (SI, D, SE, CP, SDN, Q); input SI, D, SE, CP, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSNQD1BWP7T35P140LVT (SI, D, SE, CP, SDN, Q); input SI, D, SE, CP, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSNQD2BWP7T35P140LVT (SI, D, SE, CP, SDN, Q); input SI, D, SE, CP, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSNQD4BWP7T35P140LVT (SI, D, SE, CP, SDN, Q); input SI, D, SE, CP, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSNQOPTBD1BWP7T35P140LVT (SI, D, SE, CP, SDN, Q); input SI, D, SE, CP, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSNQOPTBD2BWP7T35P140LVT (SI, D, SE, CP, SDN, Q); input SI, D, SE, CP, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSNQOPTBD4BWP7T35P140LVT (SI, D, SE, CP, SDN, Q); input SI, D, SE, CP, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNCND1BWP7T35P140LVT (SI, D, SE, CP, CDN, Q, QN); input SI, D, SE, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNCND2BWP7T35P140LVT (SI, D, SE, CP, CDN, Q, QN); input SI, D, SE, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNCND4BWP7T35P140LVT (SI, D, SE, CP, CDN, Q, QN); input SI, D, SE, CP, CDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNCNQD1BWP7T35P140LVT (SI, D, SE, CP, CDN, Q); input SI, D, SE, CP, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNCNQD2BWP7T35P140LVT (SI, D, SE, CP, CDN, Q); input SI, D, SE, CP, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNCNQD4BWP7T35P140LVT (SI, D, SE, CP, CDN, Q); input SI, D, SE, CP, CDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d; buf (CDN_i, CDN_d); `else buf (CDN_i, CDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SI_SDFCHK, CDN_D_SE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_SI_SDFCHK, CDN_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_nSE_nSI_SDFCHK, CDN_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_SI_SDFCHK, CDN_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nSE_SI_SDFCHK, CDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nSE_nSI_SDFCHK, CDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SI_SDFCHK, CDN_nD_SI, 1'b1); tsmc_xbuf (CDN_D_nSI_SDFCHK, CDN_D_nSI, 1'b1); tsmc_xbuf (CDN_D_SE_SDFCHK, CDN_D_SE, 1'b1); tsmc_xbuf (CDN_nD_SE_SDFCHK, CDN_nD_SE, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_D_SE_SI, CDN, D, SE, SI); and (CDN_D_nSE_SI, CDN, D, nSE, SI); and (CDN_D_nSE_nSI, CDN, D, nSE, nSI); and (CDN_nD_SE_SI, CDN, nD, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); and (CDN_nSE_SI, CDN, nSE, SI); and (CDN_nSE_nSI, CDN, nSE, nSI); and (CDN_nD_SI, CDN, nD, SI); and (CDN_D_nSI, CDN, D, nSI); and (CDN_D_SE, CDN, D, SE); and (CDN_nD_SE, CDN, nD, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SE); `endif and (D_check, CDN_i, SE_int_not); buf (CP_check, CDN_i); buf (SE_check, CDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (negedge CDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif `else $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SE_SI_SDFCHK, posedge CP &&& D_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_SI_SDFCHK, posedge CP &&& D_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_nSE_nSI_SDFCHK, posedge CP &&& D_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SE_SI_SDFCHK, posedge CP &&& nD_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SE_SI_SDFCHK, posedge CDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNCSND1BWP7T35P140LVT (SI, D, SE, CP, CDN, SDN, Q, QN); input SI, D, SE, CP, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SE_SI_SDFCHK, CP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_SE_nSI_SDFCHK, CP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_SI_SDFCHK, CP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_nSI_SDFCHK, CP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_SI_SDFCHK, CP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_nSI_SDFCHK, CP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_SI_SDFCHK, CP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_nSI_SDFCHK, CP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_SI_SDFCHK, nCP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_nSI_SDFCHK, nCP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_SI_SDFCHK, nCP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_nSI_SDFCHK, nCP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_SI_SDFCHK, nCP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_nSI_SDFCHK, nCP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_SI_SDFCHK, nCP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_nSI_SDFCHK, nCP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_SI_SDFCHK, CDN_CP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_nSI_SDFCHK, CDN_CP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_SI_SDFCHK, CDN_CP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_nSI_SDFCHK, CDN_CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_SI_SDFCHK, CDN_CP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_nSI_SDFCHK, CDN_CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_SI_SDFCHK, CDN_CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_nSI_SDFCHK, CDN_CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_SI_SDFCHK, CDN_nCP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_SI_SDFCHK, CDN_nCP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_nSI_SDFCHK, CDN_nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_SI_SDFCHK, CDN_nCP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_nSI_SDFCHK, CDN_nCP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_nSI_SDFCHK, CDN_nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_SI_SDFCHK, CDN_nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_nSI_SDFCHK, CDN_nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SDN_SE_SI, CP, D, SDN, SE, SI); and (CP_D_SDN_SE_nSI, CP, D, SDN, SE, nSI); and (CP_D_SDN_nSE_SI, CP, D, SDN, nSE, SI); and (CP_D_SDN_nSE_nSI, CP, D, SDN, nSE, nSI); and (CP_nD_SDN_SE_SI, CP, nD, SDN, SE, SI); and (CP_nD_SDN_SE_nSI, CP, nD, SDN, SE, nSI); and (CP_nD_SDN_nSE_SI, CP, nD, SDN, nSE, SI); and (CP_nD_SDN_nSE_nSI, CP, nD, SDN, nSE, nSI); and (nCP_D_SDN_SE_SI, nCP, D, SDN, SE, SI); and (nCP_D_SDN_SE_nSI, nCP, D, SDN, SE, nSI); and (nCP_D_SDN_nSE_SI, nCP, D, SDN, nSE, SI); and (nCP_D_SDN_nSE_nSI, nCP, D, SDN, nSE, nSI); and (nCP_nD_SDN_SE_SI, nCP, nD, SDN, SE, SI); and (nCP_nD_SDN_SE_nSI, nCP, nD, SDN, SE, nSI); and (nCP_nD_SDN_nSE_SI, nCP, nD, SDN, nSE, SI); and (nCP_nD_SDN_nSE_nSI, nCP, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CP_D_SE_SI, CDN, CP, D, SE, SI); and (CDN_CP_D_SE_nSI, CDN, CP, D, SE, nSI); and (CDN_CP_D_nSE_SI, CDN, CP, D, nSE, SI); and (CDN_CP_D_nSE_nSI, CDN, CP, D, nSE, nSI); and (CDN_CP_nD_SE_SI, CDN, CP, nD, SE, SI); and (CDN_CP_nD_SE_nSI, CDN, CP, nD, SE, nSI); and (CDN_CP_nD_nSE_SI, CDN, CP, nD, nSE, SI); and (CDN_CP_nD_nSE_nSI, CDN, CP, nD, nSE, nSI); and (CDN_nCP_D_SE_SI, CDN, nCP, D, SE, SI); and (CDN_nCP_D_nSE_SI, CDN, nCP, D, nSE, SI); and (CDN_nCP_D_nSE_nSI, CDN, nCP, D, nSE, nSI); and (CDN_nCP_nD_SE_SI, CDN, nCP, nD, SE, SI); and (CDN_nCP_D_SE_nSI, CDN, nCP, D, SE, nSI); and (CDN_nCP_nD_SE_nSI, CDN, nCP, nD, SE, nSI); and (CDN_nCP_nD_nSE_SI, CDN, nCP, nD, nSE, SI); and (CDN_nCP_nD_nSE_nSI, CDN, nCP, nD, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CP_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNCSND2BWP7T35P140LVT (SI, D, SE, CP, CDN, SDN, Q, QN); input SI, D, SE, CP, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SE_SI_SDFCHK, CP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_SE_nSI_SDFCHK, CP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_SI_SDFCHK, CP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_nSI_SDFCHK, CP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_SI_SDFCHK, CP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_nSI_SDFCHK, CP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_SI_SDFCHK, CP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_nSI_SDFCHK, CP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_SI_SDFCHK, nCP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_nSI_SDFCHK, nCP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_SI_SDFCHK, nCP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_nSI_SDFCHK, nCP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_SI_SDFCHK, nCP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_nSI_SDFCHK, nCP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_SI_SDFCHK, nCP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_nSI_SDFCHK, nCP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_SI_SDFCHK, CDN_CP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_nSI_SDFCHK, CDN_CP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_SI_SDFCHK, CDN_CP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_nSI_SDFCHK, CDN_CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_SI_SDFCHK, CDN_CP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_nSI_SDFCHK, CDN_CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_SI_SDFCHK, CDN_CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_nSI_SDFCHK, CDN_CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_SI_SDFCHK, CDN_nCP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_SI_SDFCHK, CDN_nCP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_nSI_SDFCHK, CDN_nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_SI_SDFCHK, CDN_nCP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_nSI_SDFCHK, CDN_nCP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_nSI_SDFCHK, CDN_nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_SI_SDFCHK, CDN_nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_nSI_SDFCHK, CDN_nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SDN_SE_SI, CP, D, SDN, SE, SI); and (CP_D_SDN_SE_nSI, CP, D, SDN, SE, nSI); and (CP_D_SDN_nSE_SI, CP, D, SDN, nSE, SI); and (CP_D_SDN_nSE_nSI, CP, D, SDN, nSE, nSI); and (CP_nD_SDN_SE_SI, CP, nD, SDN, SE, SI); and (CP_nD_SDN_SE_nSI, CP, nD, SDN, SE, nSI); and (CP_nD_SDN_nSE_SI, CP, nD, SDN, nSE, SI); and (CP_nD_SDN_nSE_nSI, CP, nD, SDN, nSE, nSI); and (nCP_D_SDN_SE_SI, nCP, D, SDN, SE, SI); and (nCP_D_SDN_SE_nSI, nCP, D, SDN, SE, nSI); and (nCP_D_SDN_nSE_SI, nCP, D, SDN, nSE, SI); and (nCP_D_SDN_nSE_nSI, nCP, D, SDN, nSE, nSI); and (nCP_nD_SDN_SE_SI, nCP, nD, SDN, SE, SI); and (nCP_nD_SDN_SE_nSI, nCP, nD, SDN, SE, nSI); and (nCP_nD_SDN_nSE_SI, nCP, nD, SDN, nSE, SI); and (nCP_nD_SDN_nSE_nSI, nCP, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CP_D_SE_SI, CDN, CP, D, SE, SI); and (CDN_CP_D_SE_nSI, CDN, CP, D, SE, nSI); and (CDN_CP_D_nSE_SI, CDN, CP, D, nSE, SI); and (CDN_CP_D_nSE_nSI, CDN, CP, D, nSE, nSI); and (CDN_CP_nD_SE_SI, CDN, CP, nD, SE, SI); and (CDN_CP_nD_SE_nSI, CDN, CP, nD, SE, nSI); and (CDN_CP_nD_nSE_SI, CDN, CP, nD, nSE, SI); and (CDN_CP_nD_nSE_nSI, CDN, CP, nD, nSE, nSI); and (CDN_nCP_D_SE_SI, CDN, nCP, D, SE, SI); and (CDN_nCP_D_nSE_SI, CDN, nCP, D, nSE, SI); and (CDN_nCP_D_nSE_nSI, CDN, nCP, D, nSE, nSI); and (CDN_nCP_nD_SE_SI, CDN, nCP, nD, SE, SI); and (CDN_nCP_D_SE_nSI, CDN, nCP, D, SE, nSI); and (CDN_nCP_nD_SE_nSI, CDN, nCP, nD, SE, nSI); and (CDN_nCP_nD_nSE_SI, CDN, nCP, nD, nSE, SI); and (CDN_nCP_nD_nSE_nSI, CDN, nCP, nD, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CP_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNCSND4BWP7T35P140LVT (SI, D, SE, CP, CDN, SDN, Q, QN); input SI, D, SE, CP, CDN, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); not (QN_buf, Q_buf); and (QN, QN_buf, SDN_i); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SE_SI_SDFCHK, CP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_SE_nSI_SDFCHK, CP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_SI_SDFCHK, CP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_nSI_SDFCHK, CP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_SI_SDFCHK, CP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_nSI_SDFCHK, CP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_SI_SDFCHK, CP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_nSI_SDFCHK, CP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_SI_SDFCHK, nCP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_nSI_SDFCHK, nCP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_SI_SDFCHK, nCP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_nSI_SDFCHK, nCP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_SI_SDFCHK, nCP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_nSI_SDFCHK, nCP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_SI_SDFCHK, nCP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_nSI_SDFCHK, nCP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_SI_SDFCHK, CDN_CP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_nSI_SDFCHK, CDN_CP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_SI_SDFCHK, CDN_CP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_nSI_SDFCHK, CDN_CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_SI_SDFCHK, CDN_CP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_nSI_SDFCHK, CDN_CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_SI_SDFCHK, CDN_CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_nSI_SDFCHK, CDN_CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_SI_SDFCHK, CDN_nCP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_SI_SDFCHK, CDN_nCP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_nSI_SDFCHK, CDN_nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_SI_SDFCHK, CDN_nCP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_nSI_SDFCHK, CDN_nCP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_nSI_SDFCHK, CDN_nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_SI_SDFCHK, CDN_nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_nSI_SDFCHK, CDN_nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SDN_SE_SI, CP, D, SDN, SE, SI); and (CP_D_SDN_SE_nSI, CP, D, SDN, SE, nSI); and (CP_D_SDN_nSE_SI, CP, D, SDN, nSE, SI); and (CP_D_SDN_nSE_nSI, CP, D, SDN, nSE, nSI); and (CP_nD_SDN_SE_SI, CP, nD, SDN, SE, SI); and (CP_nD_SDN_SE_nSI, CP, nD, SDN, SE, nSI); and (CP_nD_SDN_nSE_SI, CP, nD, SDN, nSE, SI); and (CP_nD_SDN_nSE_nSI, CP, nD, SDN, nSE, nSI); and (nCP_D_SDN_SE_SI, nCP, D, SDN, SE, SI); and (nCP_D_SDN_SE_nSI, nCP, D, SDN, SE, nSI); and (nCP_D_SDN_nSE_SI, nCP, D, SDN, nSE, SI); and (nCP_D_SDN_nSE_nSI, nCP, D, SDN, nSE, nSI); and (nCP_nD_SDN_SE_SI, nCP, nD, SDN, SE, SI); and (nCP_nD_SDN_SE_nSI, nCP, nD, SDN, SE, nSI); and (nCP_nD_SDN_nSE_SI, nCP, nD, SDN, nSE, SI); and (nCP_nD_SDN_nSE_nSI, nCP, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CP_D_SE_SI, CDN, CP, D, SE, SI); and (CDN_CP_D_SE_nSI, CDN, CP, D, SE, nSI); and (CDN_CP_D_nSE_SI, CDN, CP, D, nSE, SI); and (CDN_CP_D_nSE_nSI, CDN, CP, D, nSE, nSI); and (CDN_CP_nD_SE_SI, CDN, CP, nD, SE, SI); and (CDN_CP_nD_SE_nSI, CDN, CP, nD, SE, nSI); and (CDN_CP_nD_nSE_SI, CDN, CP, nD, nSE, SI); and (CDN_CP_nD_nSE_nSI, CDN, CP, nD, nSE, nSI); and (CDN_nCP_D_SE_SI, CDN, nCP, D, SE, SI); and (CDN_nCP_D_nSE_SI, CDN, nCP, D, nSE, SI); and (CDN_nCP_D_nSE_nSI, CDN, nCP, D, nSE, nSI); and (CDN_nCP_nD_SE_SI, CDN, nCP, nD, SE, SI); and (CDN_nCP_D_SE_nSI, CDN, nCP, D, SE, nSI); and (CDN_nCP_nD_SE_nSI, CDN, nCP, nD, SE, nSI); and (CDN_nCP_nD_nSE_SI, CDN, nCP, nD, nSE, SI); and (CDN_nCP_nD_nSE_nSI, CDN, nCP, nD, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CP_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (QN-:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (QN-:1'b0)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (SDN => QN) = (0, 0); if (CDN == 1'b0 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (SDN => QN) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNCSNQD1BWP7T35P140LVT (SI, D, SE, CP, CDN, SDN, Q); input SI, D, SE, CP, CDN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SE_SI_SDFCHK, CP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_SE_nSI_SDFCHK, CP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_SI_SDFCHK, CP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_nSI_SDFCHK, CP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_SI_SDFCHK, CP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_nSI_SDFCHK, CP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_SI_SDFCHK, CP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_nSI_SDFCHK, CP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_SI_SDFCHK, nCP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_nSI_SDFCHK, nCP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_SI_SDFCHK, nCP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_nSI_SDFCHK, nCP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_SI_SDFCHK, nCP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_nSI_SDFCHK, nCP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_SI_SDFCHK, nCP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_nSI_SDFCHK, nCP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_SI_SDFCHK, CDN_CP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_nSI_SDFCHK, CDN_CP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_SI_SDFCHK, CDN_CP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_nSI_SDFCHK, CDN_CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_SI_SDFCHK, CDN_CP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_nSI_SDFCHK, CDN_CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_SI_SDFCHK, CDN_CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_nSI_SDFCHK, CDN_CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_SI_SDFCHK, CDN_nCP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_SI_SDFCHK, CDN_nCP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_nSI_SDFCHK, CDN_nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_SI_SDFCHK, CDN_nCP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_nSI_SDFCHK, CDN_nCP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_nSI_SDFCHK, CDN_nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_SI_SDFCHK, CDN_nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_nSI_SDFCHK, CDN_nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SDN_SE_SI, CP, D, SDN, SE, SI); and (CP_D_SDN_SE_nSI, CP, D, SDN, SE, nSI); and (CP_D_SDN_nSE_SI, CP, D, SDN, nSE, SI); and (CP_D_SDN_nSE_nSI, CP, D, SDN, nSE, nSI); and (CP_nD_SDN_SE_SI, CP, nD, SDN, SE, SI); and (CP_nD_SDN_SE_nSI, CP, nD, SDN, SE, nSI); and (CP_nD_SDN_nSE_SI, CP, nD, SDN, nSE, SI); and (CP_nD_SDN_nSE_nSI, CP, nD, SDN, nSE, nSI); and (nCP_D_SDN_SE_SI, nCP, D, SDN, SE, SI); and (nCP_D_SDN_SE_nSI, nCP, D, SDN, SE, nSI); and (nCP_D_SDN_nSE_SI, nCP, D, SDN, nSE, SI); and (nCP_D_SDN_nSE_nSI, nCP, D, SDN, nSE, nSI); and (nCP_nD_SDN_SE_SI, nCP, nD, SDN, SE, SI); and (nCP_nD_SDN_SE_nSI, nCP, nD, SDN, SE, nSI); and (nCP_nD_SDN_nSE_SI, nCP, nD, SDN, nSE, SI); and (nCP_nD_SDN_nSE_nSI, nCP, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CP_D_SE_SI, CDN, CP, D, SE, SI); and (CDN_CP_D_SE_nSI, CDN, CP, D, SE, nSI); and (CDN_CP_D_nSE_SI, CDN, CP, D, nSE, SI); and (CDN_CP_D_nSE_nSI, CDN, CP, D, nSE, nSI); and (CDN_CP_nD_SE_SI, CDN, CP, nD, SE, SI); and (CDN_CP_nD_SE_nSI, CDN, CP, nD, SE, nSI); and (CDN_CP_nD_nSE_SI, CDN, CP, nD, nSE, SI); and (CDN_CP_nD_nSE_nSI, CDN, CP, nD, nSE, nSI); and (CDN_nCP_D_SE_SI, CDN, nCP, D, SE, SI); and (CDN_nCP_D_nSE_SI, CDN, nCP, D, nSE, SI); and (CDN_nCP_D_nSE_nSI, CDN, nCP, D, nSE, nSI); and (CDN_nCP_nD_SE_SI, CDN, nCP, nD, SE, SI); and (CDN_nCP_D_SE_nSI, CDN, nCP, D, SE, nSI); and (CDN_nCP_nD_SE_nSI, CDN, nCP, nD, SE, nSI); and (CDN_nCP_nD_nSE_SI, CDN, nCP, nD, nSE, SI); and (CDN_nCP_nD_nSE_nSI, CDN, nCP, nD, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CP_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNCSNQD2BWP7T35P140LVT (SI, D, SE, CP, CDN, SDN, Q); input SI, D, SE, CP, CDN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SE_SI_SDFCHK, CP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_SE_nSI_SDFCHK, CP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_SI_SDFCHK, CP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_nSI_SDFCHK, CP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_SI_SDFCHK, CP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_nSI_SDFCHK, CP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_SI_SDFCHK, CP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_nSI_SDFCHK, CP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_SI_SDFCHK, nCP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_nSI_SDFCHK, nCP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_SI_SDFCHK, nCP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_nSI_SDFCHK, nCP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_SI_SDFCHK, nCP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_nSI_SDFCHK, nCP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_SI_SDFCHK, nCP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_nSI_SDFCHK, nCP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_SI_SDFCHK, CDN_CP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_nSI_SDFCHK, CDN_CP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_SI_SDFCHK, CDN_CP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_nSI_SDFCHK, CDN_CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_SI_SDFCHK, CDN_CP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_nSI_SDFCHK, CDN_CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_SI_SDFCHK, CDN_CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_nSI_SDFCHK, CDN_CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_SI_SDFCHK, CDN_nCP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_SI_SDFCHK, CDN_nCP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_nSI_SDFCHK, CDN_nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_SI_SDFCHK, CDN_nCP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_nSI_SDFCHK, CDN_nCP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_nSI_SDFCHK, CDN_nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_SI_SDFCHK, CDN_nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_nSI_SDFCHK, CDN_nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SDN_SE_SI, CP, D, SDN, SE, SI); and (CP_D_SDN_SE_nSI, CP, D, SDN, SE, nSI); and (CP_D_SDN_nSE_SI, CP, D, SDN, nSE, SI); and (CP_D_SDN_nSE_nSI, CP, D, SDN, nSE, nSI); and (CP_nD_SDN_SE_SI, CP, nD, SDN, SE, SI); and (CP_nD_SDN_SE_nSI, CP, nD, SDN, SE, nSI); and (CP_nD_SDN_nSE_SI, CP, nD, SDN, nSE, SI); and (CP_nD_SDN_nSE_nSI, CP, nD, SDN, nSE, nSI); and (nCP_D_SDN_SE_SI, nCP, D, SDN, SE, SI); and (nCP_D_SDN_SE_nSI, nCP, D, SDN, SE, nSI); and (nCP_D_SDN_nSE_SI, nCP, D, SDN, nSE, SI); and (nCP_D_SDN_nSE_nSI, nCP, D, SDN, nSE, nSI); and (nCP_nD_SDN_SE_SI, nCP, nD, SDN, SE, SI); and (nCP_nD_SDN_SE_nSI, nCP, nD, SDN, SE, nSI); and (nCP_nD_SDN_nSE_SI, nCP, nD, SDN, nSE, SI); and (nCP_nD_SDN_nSE_nSI, nCP, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CP_D_SE_SI, CDN, CP, D, SE, SI); and (CDN_CP_D_SE_nSI, CDN, CP, D, SE, nSI); and (CDN_CP_D_nSE_SI, CDN, CP, D, nSE, SI); and (CDN_CP_D_nSE_nSI, CDN, CP, D, nSE, nSI); and (CDN_CP_nD_SE_SI, CDN, CP, nD, SE, SI); and (CDN_CP_nD_SE_nSI, CDN, CP, nD, SE, nSI); and (CDN_CP_nD_nSE_SI, CDN, CP, nD, nSE, SI); and (CDN_CP_nD_nSE_nSI, CDN, CP, nD, nSE, nSI); and (CDN_nCP_D_SE_SI, CDN, nCP, D, SE, SI); and (CDN_nCP_D_nSE_SI, CDN, nCP, D, nSE, SI); and (CDN_nCP_D_nSE_nSI, CDN, nCP, D, nSE, nSI); and (CDN_nCP_nD_SE_SI, CDN, nCP, nD, SE, SI); and (CDN_nCP_D_SE_nSI, CDN, nCP, D, SE, nSI); and (CDN_nCP_nD_SE_nSI, CDN, nCP, nD, SE, nSI); and (CDN_nCP_nD_nSE_SI, CDN, nCP, nD, nSE, SI); and (CDN_nCP_nD_nSE_nSI, CDN, nCP, nD, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CP_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNCSNQD4BWP7T35P140LVT (SI, D, SE, CP, CDN, SDN, Q); input SI, D, SE, CP, CDN, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire CDN_d, SDN_d; buf (CDN_i, CDN_d); buf (SDN_i, SDN_d); `else buf (CDN_i, CDN); buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `else buf (CDN_i, CDN); buf (SDN_i, SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN_i, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else reg flag; always @(CDN_i or SDN_i) begin if (!$test$plusargs("cdn_sdn_check_off")) begin flag=((CDN_i===1'b0)&&(SDN_i===1'b0)); if (flag == 1) begin if (CDN_i!==1'b0) begin $display("%m > CDN is released at time %.2fns.", $realtime); end if (SDN_i!==1'b0) begin $display("%m > SDN is released at time %.2fns.", $realtime); end end if (flag == 1) begin $display("%m > Both CDN and SDN are enabled at time %.2fns.", $realtime); end end end tsmc_xbuf (CP_D_SDN_SE_SI_SDFCHK, CP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_SE_nSI_SDFCHK, CP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_SI_SDFCHK, CP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_D_SDN_nSE_nSI_SDFCHK, CP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_SI_SDFCHK, CP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_SE_nSI_SDFCHK, CP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_SI_SDFCHK, CP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_SDN_nSE_nSI_SDFCHK, CP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_SI_SDFCHK, nCP_D_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_SE_nSI_SDFCHK, nCP_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_SI_SDFCHK, nCP_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_SDN_nSE_nSI_SDFCHK, nCP_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_SI_SDFCHK, nCP_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_SE_nSI_SDFCHK, nCP_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_SI_SDFCHK, nCP_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_SDN_nSE_nSI_SDFCHK, nCP_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SI_SDFCHK, CDN_D_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_SI_SDFCHK, CDN_D_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSE_nSI_SDFCHK, CDN_D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SI_SDFCHK, CDN_nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_nSI_SDFCHK, CDN_D_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_nSI_SDFCHK, CDN_nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_SI_SDFCHK, CDN_nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_SDN_nSE_nSI_SDFCHK, CDN_nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_SI_SDFCHK, CDN_CP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_SE_nSI_SDFCHK, CDN_CP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_SI_SDFCHK, CDN_CP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_D_nSE_nSI_SDFCHK, CDN_CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_SI_SDFCHK, CDN_CP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_SE_nSI_SDFCHK, CDN_CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_SI_SDFCHK, CDN_CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_CP_nD_nSE_nSI_SDFCHK, CDN_CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_SI_SDFCHK, CDN_nCP_D_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_SI_SDFCHK, CDN_nCP_D_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_nSE_nSI_SDFCHK, CDN_nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_SI_SDFCHK, CDN_nCP_nD_SE_SI, 1'b1); tsmc_xbuf (CDN_nCP_D_SE_nSI_SDFCHK, CDN_nCP_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_SE_nSI_SDFCHK, CDN_nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_SI_SDFCHK, CDN_nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nCP_nD_nSE_nSI_SDFCHK, CDN_nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_SI_SDFCHK, CDN_SDN_nSE_SI, 1'b1); tsmc_xbuf (CDN_SDN_nSE_nSI_SDFCHK, CDN_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SDN_SI_SDFCHK, CDN_nD_SDN_SI, 1'b1); tsmc_xbuf (CDN_D_SDN_nSI_SDFCHK, CDN_D_SDN_nSI, 1'b1); tsmc_xbuf (CDN_D_SDN_SE_SDFCHK, CDN_D_SDN_SE, 1'b1); tsmc_xbuf (CDN_nD_SDN_SE_SDFCHK, CDN_nD_SDN_SE, 1'b1); tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (CDN_D_SE_nSI_SDFCHK, CDN_D_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_SE_nSI_SDFCHK, CDN_nD_SE_nSI, 1'b1); tsmc_xbuf (CDN_nD_nSE_SI_SDFCHK, CDN_nD_nSE_SI, 1'b1); tsmc_xbuf (CDN_nD_nSE_nSI_SDFCHK, CDN_nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (CP_D_SDN_SE_SI, CP, D, SDN, SE, SI); and (CP_D_SDN_SE_nSI, CP, D, SDN, SE, nSI); and (CP_D_SDN_nSE_SI, CP, D, SDN, nSE, SI); and (CP_D_SDN_nSE_nSI, CP, D, SDN, nSE, nSI); and (CP_nD_SDN_SE_SI, CP, nD, SDN, SE, SI); and (CP_nD_SDN_SE_nSI, CP, nD, SDN, SE, nSI); and (CP_nD_SDN_nSE_SI, CP, nD, SDN, nSE, SI); and (CP_nD_SDN_nSE_nSI, CP, nD, SDN, nSE, nSI); and (nCP_D_SDN_SE_SI, nCP, D, SDN, SE, SI); and (nCP_D_SDN_SE_nSI, nCP, D, SDN, SE, nSI); and (nCP_D_SDN_nSE_SI, nCP, D, SDN, nSE, SI); and (nCP_D_SDN_nSE_nSI, nCP, D, SDN, nSE, nSI); and (nCP_nD_SDN_SE_SI, nCP, nD, SDN, SE, SI); and (nCP_nD_SDN_SE_nSI, nCP, nD, SDN, SE, nSI); and (nCP_nD_SDN_nSE_SI, nCP, nD, SDN, nSE, SI); and (nCP_nD_SDN_nSE_nSI, nCP, nD, SDN, nSE, nSI); and (CDN_D_SDN_SE_SI, CDN, D, SDN, SE, SI); and (CDN_D_SDN_nSE_SI, CDN, D, SDN, nSE, SI); and (CDN_D_SDN_nSE_nSI, CDN, D, SDN, nSE, nSI); and (CDN_nD_SDN_SE_SI, CDN, nD, SDN, SE, SI); and (CDN_D_SDN_SE_nSI, CDN, D, SDN, SE, nSI); and (CDN_nD_SDN_SE_nSI, CDN, nD, SDN, SE, nSI); and (CDN_nD_SDN_nSE_SI, CDN, nD, SDN, nSE, SI); and (CDN_nD_SDN_nSE_nSI, CDN, nD, SDN, nSE, nSI); and (CDN_CP_D_SE_SI, CDN, CP, D, SE, SI); and (CDN_CP_D_SE_nSI, CDN, CP, D, SE, nSI); and (CDN_CP_D_nSE_SI, CDN, CP, D, nSE, SI); and (CDN_CP_D_nSE_nSI, CDN, CP, D, nSE, nSI); and (CDN_CP_nD_SE_SI, CDN, CP, nD, SE, SI); and (CDN_CP_nD_SE_nSI, CDN, CP, nD, SE, nSI); and (CDN_CP_nD_nSE_SI, CDN, CP, nD, nSE, SI); and (CDN_CP_nD_nSE_nSI, CDN, CP, nD, nSE, nSI); and (CDN_nCP_D_SE_SI, CDN, nCP, D, SE, SI); and (CDN_nCP_D_nSE_SI, CDN, nCP, D, nSE, SI); and (CDN_nCP_D_nSE_nSI, CDN, nCP, D, nSE, nSI); and (CDN_nCP_nD_SE_SI, CDN, nCP, nD, SE, SI); and (CDN_nCP_D_SE_nSI, CDN, nCP, D, SE, nSI); and (CDN_nCP_nD_SE_nSI, CDN, nCP, nD, SE, nSI); and (CDN_nCP_nD_nSE_SI, CDN, nCP, nD, nSE, SI); and (CDN_nCP_nD_nSE_nSI, CDN, nCP, nD, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (CDN_SDN_nSE_SI, CDN, SDN, nSE, SI); and (CDN_SDN_nSE_nSI, CDN, SDN, nSE, nSI); and (CDN_nD_SDN_SI, CDN, nD, SDN, SI); and (CDN_D_SDN_nSI, CDN, D, SDN, nSI); and (CDN_D_SDN_SE, CDN, D, SDN, SE); and (CDN_nD_SDN_SE, CDN, nD, SDN, SE); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (CDN_D_SE_nSI, CDN, D, SE, nSI); and (CDN_nD_SE_nSI, CDN, nD, SE, nSI); and (CDN_nD_nSE_SI, CDN, nD, nSE, SI); and (CDN_nD_nSE_nSI, CDN, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, CDN_i, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, CDN_i, SDN_i, SE); `endif and (D_check, CDN_i, SDN_i, SE_int_not); and (CP_check, CDN_i, SDN_i); and (SE_check, CDN_i, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge CDN => (Q+:1'b0)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b1 && SI == 1'b0) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b1) (CDN => Q) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SDN == 1'b0 && SE == 1'b0 && SI == 1'b0) (CDN => Q) = (0, 0); (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CDN == 1'b1 && CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (negedge CDN &&& CP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& CP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CDN &&& nCP_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& CDN_nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CDN_nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0,0, notifier, , , CDN_d, CP_d); $recrem (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier,,, SDN_d, CDN_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier,,, CDN_d, SDN_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge SDN &&& CP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& CP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_D_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_SE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_SI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge CDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& CDN_SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& CP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_D_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_SE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_SI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CDN &&& nCP_nD_nSE_nSI_SDFCHK, posedge SDN , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& CDN_nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge CDN &&& D_SDN_SE_SI_SDFCHK, posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_SI_SDFCHK, posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& D_SDN_nSE_nSI_SDFCHK, posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, notifier); $recovery (posedge CDN &&& nD_SDN_SE_SI_SDFCHK, posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_SI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, posedge CDN , 0, notifier); $hold (posedge CP &&& nD_SDN_SE_SI_SDFCHK, posedge CDN , 0, notifier); $recovery (posedge SDN &&& CDN_D_SE_nSI_SDFCHK, posedge CP &&& CDN_D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_SE_nSI_SDFCHK, posedge CP &&& CDN_nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_SI_SDFCHK, posedge CP &&& CDN_nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& CDN_nD_nSE_nSI_SDFCHK, posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& CDN_D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& CDN_nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYND1BWP7T35P140LVT (SI, D, SE, CP, Q, QN); input SI, D, SE, CP; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYND2BWP7T35P140LVT (SI, D, SE, CP, Q, QN); input SI, D, SE, CP; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYND4BWP7T35P140LVT (SI, D, SE, CP, Q, QN); input SI, D, SE, CP; output Q, QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNQD1BWP7T35P140LVT (SI, D, SE, CP, Q); input SI, D, SE, CP; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNQD2BWP7T35P140LVT (SI, D, SE, CP, Q); input SI, D, SE, CP; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNQD4BWP7T35P140LVT (SI, D, SE, CP, Q); input SI, D, SE, CP; output Q; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); buf (Q, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (nD_SI, nD, SI); and (D_nSI, D, nSI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNQND1BWP7T35P140LVT (SI, D, SE, CP, QN); input SI, D, SE, CP; output QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (D_nSI, D, nSI); and (nD_SI, nD, SI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNQND2BWP7T35P140LVT (SI, D, SE, CP, QN); input SI, D, SE, CP; output QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (D_nSI, D, nSI); and (nD_SI, nD, SI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNQND4BWP7T35P140LVT (SI, D, SE, CP, QN); input SI, D, SE, CP; output QN; reg notifier; `ifdef NTC wire SI_d, D_d, SE_d, CP_d; pullup (CDN); pullup (SDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN, notifier); not (QN, Q_buf); `else pullup (CDN); pullup (SDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN, notifier); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); tsmc_xbuf (D_SE_SI_SDFCHK, D_SE_SI, 1'b1); tsmc_xbuf (D_nSE_SI_SDFCHK, D_nSE_SI, 1'b1); tsmc_xbuf (D_nSE_nSI_SDFCHK, D_nSE_nSI, 1'b1); tsmc_xbuf (nD_SE_SI_SDFCHK, nD_SE_SI, 1'b1); tsmc_xbuf (nSE_SI_SDFCHK, nSE_SI, 1'b1); tsmc_xbuf (nSE_nSI_SDFCHK, nSE_nSI, 1'b1); tsmc_xbuf (D_nSI_SDFCHK, D_nSI, 1'b1); tsmc_xbuf (nD_SI_SDFCHK, nD_SI, 1'b1); tsmc_xbuf (D_SE_SDFCHK, D_SE, 1'b1); tsmc_xbuf (nD_SE_SDFCHK, nD_SE, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); and (D_SE_SI, D, SE, SI); and (D_nSE_SI, D, nSE, SI); and (D_nSE_nSI, D, nSE, nSI); and (nD_SE_SI, nD, SE, SI); and (nSE_SI, nSE, SI); and (nSE_nSI, nSE, nSI); and (D_nSI, D, nSI); and (nD_SI, nD, SI); and (D_SE, D, SE); and (nD_SE, nD, SE); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); buf (SI_check, SE_d); `else not (SE_int_not, SE); buf (SI_check, SE); `endif buf (D_check, SE_int_not); pullup (CP_check); pullup (SE_check); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); $width (posedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SE_SI_SDFCHK, 0, 0, notifier); `ifdef NTC $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); `else $setuphold (posedge CP &&& nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SE_SDFCHK, negedge SI , 0, 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNSND1BWP7T35P140LVT (SI, D, SE, CP, SDN, Q, QN); input SI, D, SE, CP, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNSND2BWP7T35P140LVT (SI, D, SE, CP, SDN, Q, QN); input SI, D, SE, CP, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNSND4BWP7T35P140LVT (SI, D, SE, CP, SDN, Q, QN); input SI, D, SE, CP, SDN; output Q, QN; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); not (QN, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); (posedge CP => (QN-:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (QN-:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (QN-:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNSNQD1BWP7T35P140LVT (SI, D, SE, CP, SDN, Q); input SI, D, SE, CP, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNSNQD2BWP7T35P140LVT (SI, D, SE, CP, SDN, Q); input SI, D, SE, CP, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine module SDFSYNSNQD4BWP7T35P140LVT (SI, D, SE, CP, SDN, Q); input SI, D, SE, CP, SDN; output Q; reg notifier; `ifdef NTC `ifdef RECREM wire SDN_d; buf (SDN_i, SDN_d); `else buf (SDN_i, SDN); `endif wire SI_d, D_d, SE_d, CP_d; pullup (CDN); tsmc_mux (D_i, D_d, SI_d, SE_d); tsmc_dff (Q_buf, D_i, CP_d, CDN, SDN_i, notifier); buf (Q, Q_buf); `else buf (SDN_i, SDN); pullup (CDN); tsmc_mux (D_i, D, SI, SE); tsmc_dff (Q_buf, D_i, CP, CDN, SDN_i, notifier); buf (Q, Q_buf); `endif `ifdef TETRAMAX `else tsmc_xbuf (D_SDN_SE_SI_SDFCHK, D_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_SI_SDFCHK, D_SDN_nSE_SI, 1'b1); tsmc_xbuf (D_SDN_nSE_nSI_SDFCHK, D_SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_SI_SDFCHK, nD_SDN_SE_SI, 1'b1); tsmc_xbuf (D_SDN_SE_nSI_SDFCHK, D_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SE_nSI_SDFCHK, nD_SDN_SE_nSI, 1'b1); tsmc_xbuf (nD_SDN_nSE_SI_SDFCHK, nD_SDN_nSE_SI, 1'b1); tsmc_xbuf (nD_SDN_nSE_nSI_SDFCHK, nD_SDN_nSE_nSI, 1'b1); tsmc_xbuf (CP_D_SE_SI_SDFCHK, CP_D_SE_SI, 1'b1); tsmc_xbuf (CP_D_SE_nSI_SDFCHK, CP_D_SE_nSI, 1'b1); tsmc_xbuf (CP_D_nSE_SI_SDFCHK, CP_D_nSE_SI, 1'b1); tsmc_xbuf (CP_D_nSE_nSI_SDFCHK, CP_D_nSE_nSI, 1'b1); tsmc_xbuf (CP_nD_SE_SI_SDFCHK, CP_nD_SE_SI, 1'b1); tsmc_xbuf (CP_nD_SE_nSI_SDFCHK, CP_nD_SE_nSI, 1'b1); tsmc_xbuf (CP_nD_nSE_SI_SDFCHK, CP_nD_nSE_SI, 1'b1); tsmc_xbuf (CP_nD_nSE_nSI_SDFCHK, CP_nD_nSE_nSI, 1'b1); tsmc_xbuf (nCP_D_SE_SI_SDFCHK, nCP_D_SE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_SI_SDFCHK, nCP_D_nSE_SI, 1'b1); tsmc_xbuf (nCP_D_nSE_nSI_SDFCHK, nCP_D_nSE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_SI_SDFCHK, nCP_nD_SE_SI, 1'b1); tsmc_xbuf (nCP_D_SE_nSI_SDFCHK, nCP_D_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_SE_nSI_SDFCHK, nCP_nD_SE_nSI, 1'b1); tsmc_xbuf (nCP_nD_nSE_SI_SDFCHK, nCP_nD_nSE_SI, 1'b1); tsmc_xbuf (nCP_nD_nSE_nSI_SDFCHK, nCP_nD_nSE_nSI, 1'b1); tsmc_xbuf (SDN_nSE_SI_SDFCHK, SDN_nSE_SI, 1'b1); tsmc_xbuf (SDN_nSE_nSI_SDFCHK, SDN_nSE_nSI, 1'b1); tsmc_xbuf (nD_SDN_SI_SDFCHK, nD_SDN_SI, 1'b1); tsmc_xbuf (D_SDN_nSI_SDFCHK, D_SDN_nSI, 1'b1); tsmc_xbuf (D_SDN_SE_SDFCHK, D_SDN_SE, 1'b1); tsmc_xbuf (nD_SDN_SE_SDFCHK, nD_SDN_SE, 1'b1); tsmc_xbuf (D_SE_nSI_SDFCHK, D_SE_nSI, 1'b1); tsmc_xbuf (nD_SE_nSI_SDFCHK, nD_SE_nSI, 1'b1); tsmc_xbuf (nD_nSE_SI_SDFCHK, nD_nSE_SI, 1'b1); tsmc_xbuf (nD_nSE_nSI_SDFCHK, nD_nSE_nSI, 1'b1); not (nSI, SI); not (nD, D); not (nSE, SE); not (nCP, CP); and (D_SDN_SE_SI, D, SDN, SE, SI); and (D_SDN_nSE_SI, D, SDN, nSE, SI); and (D_SDN_nSE_nSI, D, SDN, nSE, nSI); and (nD_SDN_SE_SI, nD, SDN, SE, SI); and (D_SDN_SE_nSI, D, SDN, SE, nSI); and (nD_SDN_SE_nSI, nD, SDN, SE, nSI); and (nD_SDN_nSE_SI, nD, SDN, nSE, SI); and (nD_SDN_nSE_nSI, nD, SDN, nSE, nSI); and (CP_D_SE_SI, CP, D, SE, SI); and (CP_D_SE_nSI, CP, D, SE, nSI); and (CP_D_nSE_SI, CP, D, nSE, SI); and (CP_D_nSE_nSI, CP, D, nSE, nSI); and (CP_nD_SE_SI, CP, nD, SE, SI); and (CP_nD_SE_nSI, CP, nD, SE, nSI); and (CP_nD_nSE_SI, CP, nD, nSE, SI); and (CP_nD_nSE_nSI, CP, nD, nSE, nSI); and (nCP_D_SE_SI, nCP, D, SE, SI); and (nCP_D_nSE_SI, nCP, D, nSE, SI); and (nCP_D_nSE_nSI, nCP, D, nSE, nSI); and (nCP_nD_SE_SI, nCP, nD, SE, SI); and (nCP_D_SE_nSI, nCP, D, SE, nSI); and (nCP_nD_SE_nSI, nCP, nD, SE, nSI); and (nCP_nD_nSE_SI, nCP, nD, nSE, SI); and (nCP_nD_nSE_nSI, nCP, nD, nSE, nSI); and (SDN_nSE_SI, SDN, nSE, SI); and (SDN_nSE_nSI, SDN, nSE, nSI); and (nD_SDN_SI, nD, SDN, SI); and (D_SDN_nSI, D, SDN, nSI); and (D_SDN_SE, D, SDN, SE); and (nD_SDN_SE, nD, SDN, SE); and (D_SE_nSI, D, SE, nSI); and (nD_SE_nSI, nD, SE, nSI); and (nD_nSE_SI, nD, nSE, SI); and (nD_nSE_nSI, nD, nSE, nSI); // Timing logics defined for default constraint check `ifdef NTC not (SE_int_not, SE_d); and (SI_check, SDN_i, SE_d); `else not (SE_int_not, SE); and (SI_check, SDN_i, SE); `endif and (D_check, SDN_i, SE_int_not); buf (CP_check, SDN_i); buf (SE_check, SDN_i); tsmc_xbuf (CP_DEFCHK, CP_check, 1'b1); tsmc_xbuf (SE_DEFCHK, SE_check, 1'b1); tsmc_xbuf (D_DEFCHK, D_check, 1'b1); tsmc_xbuf (SI_DEFCHK, SI_check, 1'b1); specify (posedge CP => (Q+:((SE && SI) || (!(SE) && D)))) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b1 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b1 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b1 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b1) (negedge SDN => (Q+:1'b1)) = (0, 0); if (CP == 1'b0 && D == 1'b0 && SE == 1'b0 && SI == 1'b0) (negedge SDN => (Q+:1'b1)) = (0, 0); $width (posedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& D_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_SE_nSI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_SI_SDFCHK, 0, 0, notifier); $width (posedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge CP &&& nD_SDN_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& CP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_nSE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_D_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_SE_nSI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_SI_SDFCHK, 0, 0, notifier); $width (negedge SDN &&& nCP_nD_nSE_nSI_SDFCHK, 0, 0, notifier); `ifdef NTC `ifdef RECREM $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recrem (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); $recrem (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0,0, notifier, , , SDN_d, CP_d); `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier,,, CP_d, D_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier,,, CP_d, SE_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier,,, CP_d, SI_d); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier,,, CP_d, SI_d); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif `else $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_SI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, posedge D , 0, 0, notifier); $setuphold (posedge CP &&& SDN_nSE_nSI_SDFCHK, negedge D , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, posedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_nSI_SDFCHK, negedge SE , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& D_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, posedge SI , 0, 0, notifier); $setuphold (posedge CP &&& nD_SDN_SE_SDFCHK, negedge SI , 0, 0, notifier); $recovery (posedge SDN &&& D_SE_nSI_SDFCHK, posedge CP &&& D_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_SE_nSI_SDFCHK, posedge CP &&& nD_SE_nSI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_SI_SDFCHK, posedge CP &&& nD_nSE_SI_SDFCHK, 0, notifier); $recovery (posedge SDN &&& nD_nSE_nSI_SDFCHK, posedge CP &&& nD_nSE_nSI_SDFCHK, 0, notifier); $hold (posedge CP &&& D_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_SE_nSI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_SI_SDFCHK, posedge SDN , 0, notifier); $hold (posedge CP &&& nD_nSE_nSI_SDFCHK, posedge SDN , 0, notifier); `endif endspecify `endif endmodule `endcelldefine `celldefine //module TAPCELLBWP7T35P140; // No function //endmodule `endcelldefine `celldefine module TIEHBWP7T35P140LVT (Z); output Z; buf (Z, 1'b1); endmodule `endcelldefine `celldefine module TIELBWP7T35P140LVT (ZN); output ZN; buf (ZN, 1'b0); endmodule `endcelldefine `celldefine module XNR2D0BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; xor (I0_out, A1, A2); not (ZN, I0_out); specify if (A2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0) (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XNR2D1BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; xor (I0_out, A1, A2); not (ZN, I0_out); specify if (A2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0) (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XNR2D2BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; xor (I0_out, A1, A2); not (ZN, I0_out); specify if (A2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0) (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XNR2D4BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; xor (I0_out, A1, A2); not (ZN, I0_out); specify if (A2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0) (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XNR2OPTND1BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; xor (I0_out, A1, A2); not (ZN, I0_out); specify if (A2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0) (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XNR2OPTND2BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; xor (I0_out, A1, A2); not (ZN, I0_out); specify if (A2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0) (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XNR2OPTND4BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; xor (I0_out, A1, A2); not (ZN, I0_out); specify if (A2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0) (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XNR2OPTND6BWP7T35P140LVT (A1, A2, ZN); input A1, A2; output ZN; xor (I0_out, A1, A2); not (ZN, I0_out); specify if (A2 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0) (A2 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XNR3D0BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; xor (I0_out, A1, A2); xor (I1_out, I0_out, A3); not (ZN, I1_out); specify if (A2 == 1'b1 && A3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XNR3D1BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; xor (I0_out, A1, A2); xor (I1_out, I0_out, A3); not (ZN, I1_out); specify if (A2 == 1'b1 && A3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XNR3D2BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; xor (I0_out, A1, A2); xor (I1_out, I0_out, A3); not (ZN, I1_out); specify if (A2 == 1'b1 && A3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XNR3D4BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; xor (I0_out, A1, A2); xor (I1_out, I0_out, A3); not (ZN, I1_out); specify if (A2 == 1'b1 && A3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XNR3OPTND1BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; xor (I0_out, A1, A2); xor (I1_out, I0_out, A3); not (ZN, I1_out); specify if (A2 == 1'b1 && A3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XNR3OPTND2BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; xor (I0_out, A1, A2); xor (I1_out, I0_out, A3); not (ZN, I1_out); specify if (A2 == 1'b1 && A3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XNR3OPTND4BWP7T35P140LVT (A1, A2, A3, ZN); input A1, A2, A3; output ZN; xor (I0_out, A1, A2); xor (I1_out, I0_out, A3); not (ZN, I1_out); specify if (A2 == 1'b1 && A3 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (A3 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XNR4D0BWP7T35P140LVT (A1, A2, A3, A4, ZN); input A1, A2, A3, A4; output ZN; xor (I0_out, A1, A2); xor (I1_out, I0_out, A3); xor (I2_out, I1_out, A4); not (ZN, I2_out); specify if (A2 == 1'b1 && A3 == 1'b1 && A4 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0 && A4 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1 && A4 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && A4 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && A4 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0 && A4 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1 && A4 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && A4 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && A4 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0 && A4 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1 && A4 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && A4 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && A4 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0 && A4 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1 && A4 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && A4 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A4 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A4 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A4 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A4 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A4 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A4 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A4 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A4 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1) (A4 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (A4 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (A4 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (A4 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (A4 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0) (A4 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (A4 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (A4 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XNR4D1BWP7T35P140LVT (A1, A2, A3, A4, ZN); input A1, A2, A3, A4; output ZN; xor (I0_out, A1, A2); xor (I1_out, I0_out, A3); xor (I2_out, I1_out, A4); not (ZN, I2_out); specify if (A2 == 1'b1 && A3 == 1'b1 && A4 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0 && A4 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1 && A4 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && A4 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && A4 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0 && A4 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1 && A4 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && A4 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && A4 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0 && A4 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1 && A4 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && A4 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && A4 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0 && A4 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1 && A4 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && A4 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A4 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A4 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A4 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A4 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A4 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A4 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A4 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A4 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1) (A4 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (A4 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (A4 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (A4 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (A4 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0) (A4 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (A4 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (A4 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XNR4D2BWP7T35P140LVT (A1, A2, A3, A4, ZN); input A1, A2, A3, A4; output ZN; xor (I0_out, A1, A2); xor (I1_out, I0_out, A3); xor (I2_out, I1_out, A4); not (ZN, I2_out); specify if (A2 == 1'b1 && A3 == 1'b1 && A4 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0 && A4 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1 && A4 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && A4 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && A4 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0 && A4 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1 && A4 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && A4 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && A4 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0 && A4 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1 && A4 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && A4 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && A4 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0 && A4 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1 && A4 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && A4 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A4 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A4 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A4 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A4 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A4 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A4 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A4 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A4 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1) (A4 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (A4 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (A4 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (A4 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (A4 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0) (A4 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (A4 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (A4 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XNR4D4BWP7T35P140LVT (A1, A2, A3, A4, ZN); input A1, A2, A3, A4; output ZN; xor (I0_out, A1, A2); xor (I1_out, I0_out, A3); xor (I2_out, I1_out, A4); not (ZN, I2_out); specify if (A2 == 1'b1 && A3 == 1'b1 && A4 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0 && A4 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1 && A4 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && A4 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && A4 == 1'b0) (A1 => ZN) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0 && A4 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1 && A4 == 1'b1) (A1 => ZN) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && A4 == 1'b0) (A1 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && A4 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0 && A4 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1 && A4 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && A4 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && A4 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0 && A4 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1 && A4 == 1'b1) (A2 => ZN) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && A4 == 1'b0) (A2 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A4 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A4 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A4 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A4 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A4 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A4 == 1'b0) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A4 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A4 == 1'b1) (A3 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1) (A4 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (A4 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (A4 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (A4 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (A4 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0) (A4 => ZN) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (A4 => ZN) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (A4 => ZN) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR2D0BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; xor (Z, A1, A2); specify if (A2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1) (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR2D1BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; xor (Z, A1, A2); specify if (A2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1) (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR2D2BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; xor (Z, A1, A2); specify if (A2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1) (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR2D4BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; xor (Z, A1, A2); specify if (A2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1) (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR2OPTND1BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; xor (Z, A1, A2); specify if (A2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1) (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR2OPTND2BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; xor (Z, A1, A2); specify if (A2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1) (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR2OPTND4BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; xor (Z, A1, A2); specify if (A2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1) (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR2OPTND6BWP7T35P140LVT (A1, A2, Z); input A1, A2; output Z; xor (Z, A1, A2); specify if (A2 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1) (A2 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR3D0BWP7T35P140LVT (A1, A2, A3, Z); input A1, A2, A3; output Z; xor (I0_out, A1, A2); xor (Z, I0_out, A3); specify if (A2 == 1'b1 && A3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (A3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR3D1BWP7T35P140LVT (A1, A2, A3, Z); input A1, A2, A3; output Z; xor (I0_out, A1, A2); xor (Z, I0_out, A3); specify if (A2 == 1'b1 && A3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (A3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR3D2BWP7T35P140LVT (A1, A2, A3, Z); input A1, A2, A3; output Z; xor (I0_out, A1, A2); xor (Z, I0_out, A3); specify if (A2 == 1'b1 && A3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (A3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR3D4BWP7T35P140LVT (A1, A2, A3, Z); input A1, A2, A3; output Z; xor (I0_out, A1, A2); xor (Z, I0_out, A3); specify if (A2 == 1'b1 && A3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (A3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR3OPTND1BWP7T35P140LVT (A1, A2, A3, Z); input A1, A2, A3; output Z; xor (I0_out, A1, A2); xor (Z, I0_out, A3); specify if (A2 == 1'b1 && A3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (A3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR3OPTND2BWP7T35P140LVT (A1, A2, A3, Z); input A1, A2, A3; output Z; xor (I0_out, A1, A2); xor (Z, I0_out, A3); specify if (A2 == 1'b1 && A3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (A3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR3OPTND4BWP7T35P140LVT (A1, A2, A3, Z); input A1, A2, A3; output Z; xor (I0_out, A1, A2); xor (Z, I0_out, A3); specify if (A2 == 1'b1 && A3 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1) (A3 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR4D0BWP7T35P140LVT (A1, A2, A3, A4, Z); input A1, A2, A3, A4; output Z; xor (I0_out, A1, A2); xor (I1_out, I0_out, A3); xor (Z, I1_out, A4); specify if (A2 == 1'b1 && A3 == 1'b1 && A4 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0 && A4 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1 && A4 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && A4 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && A4 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0 && A4 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1 && A4 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && A4 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && A4 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0 && A4 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1 && A4 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && A4 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && A4 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0 && A4 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1 && A4 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && A4 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A4 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A4 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A4 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A4 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A4 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A4 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A4 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A4 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (A4 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0) (A4 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (A4 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (A4 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1) (A4 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (A4 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (A4 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (A4 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR4D1BWP7T35P140LVT (A1, A2, A3, A4, Z); input A1, A2, A3, A4; output Z; xor (I0_out, A1, A2); xor (I1_out, I0_out, A3); xor (Z, I1_out, A4); specify if (A2 == 1'b1 && A3 == 1'b1 && A4 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0 && A4 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1 && A4 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && A4 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && A4 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0 && A4 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1 && A4 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && A4 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && A4 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0 && A4 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1 && A4 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && A4 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && A4 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0 && A4 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1 && A4 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && A4 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A4 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A4 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A4 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A4 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A4 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A4 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A4 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A4 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (A4 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0) (A4 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (A4 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (A4 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1) (A4 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (A4 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (A4 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (A4 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR4D2BWP7T35P140LVT (A1, A2, A3, A4, Z); input A1, A2, A3, A4; output Z; xor (I0_out, A1, A2); xor (I1_out, I0_out, A3); xor (Z, I1_out, A4); specify if (A2 == 1'b1 && A3 == 1'b1 && A4 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0 && A4 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1 && A4 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && A4 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && A4 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0 && A4 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1 && A4 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && A4 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && A4 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0 && A4 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1 && A4 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && A4 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && A4 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0 && A4 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1 && A4 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && A4 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A4 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A4 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A4 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A4 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A4 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A4 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A4 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A4 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (A4 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0) (A4 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (A4 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (A4 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1) (A4 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (A4 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (A4 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (A4 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module XOR4D4BWP7T35P140LVT (A1, A2, A3, A4, Z); input A1, A2, A3, A4; output Z; xor (I0_out, A1, A2); xor (I1_out, I0_out, A3); xor (Z, I1_out, A4); specify if (A2 == 1'b1 && A3 == 1'b1 && A4 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0 && A4 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1 && A4 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && A4 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b1 && A4 == 1'b1) (A1 => Z) = (0, 0); if (A2 == 1'b1 && A3 == 1'b0 && A4 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b1 && A4 == 1'b0) (A1 => Z) = (0, 0); if (A2 == 1'b0 && A3 == 1'b0 && A4 == 1'b1) (A1 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && A4 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0 && A4 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1 && A4 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && A4 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b1 && A4 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A3 == 1'b0 && A4 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b1 && A4 == 1'b0) (A2 => Z) = (0, 0); if (A1 == 1'b0 && A3 == 1'b0 && A4 == 1'b1) (A2 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A4 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A4 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A4 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A4 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A4 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A4 == 1'b1) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A4 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A4 == 1'b0) (A3 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b0) (A4 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b0) (A4 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b1) (A4 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b1) (A4 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b1 && A3 == 1'b1) (A4 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b0 && A3 == 1'b1) (A4 => Z) = (0, 0); if (A1 == 1'b1 && A2 == 1'b0 && A3 == 1'b0) (A4 => Z) = (0, 0); if (A1 == 1'b0 && A2 == 1'b1 && A3 == 1'b0) (A4 => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ISOHID1BWP7T35P140LVT (ISO, I, Z); input ISO, I; output Z; or (Z, I, ISO); specify (I => Z) = (0, 0); (ISO => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ISOHID2BWP7T35P140LVT (ISO, I, Z); input ISO, I; output Z; or (Z, I, ISO); specify (I => Z) = (0, 0); (ISO => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ISOHID4BWP7T35P140LVT (ISO, I, Z); input ISO, I; output Z; or (Z, I, ISO); specify (I => Z) = (0, 0); (ISO => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ISOHID8BWP7T35P140LVT (ISO, I, Z); input ISO, I; output Z; or (Z, I, ISO); specify (I => Z) = (0, 0); (ISO => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ISOLOD1BWP7T35P140LVT (ISO, I, Z); input ISO, I; output Z; not (ISO1, ISO); nand (Z1, ISO1, I); not (Z, Z1); specify (I => Z) = (0, 0); (ISO => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ISOLOD2BWP7T35P140LVT (ISO, I, Z); input ISO, I; output Z; not (ISO1, ISO); nand (Z1, ISO1, I); not (Z, Z1); specify (I => Z) = (0, 0); (ISO => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ISOLOD4BWP7T35P140LVT (ISO, I, Z); input ISO, I; output Z; not (ISO1, ISO); nand (Z1, ISO1, I); not (Z, Z1); specify (I => Z) = (0, 0); (ISO => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ISOLOD8BWP7T35P140LVT (ISO, I, Z); input ISO, I; output Z; not (ISO1, ISO); nand (Z1, ISO1, I); not (Z, Z1); specify (I => Z) = (0, 0); (ISO => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ISOSRHID2BWP7T35P140LVT (ISO, I, Z); input ISO, I; output Z; or (Z, I, ISO); specify (I => Z) = (0, 0); (ISO => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ISOSRHID4BWP7T35P140LVT (ISO, I, Z); input ISO, I; output Z; or (Z, I, ISO); specify (I => Z) = (0, 0); (ISO => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ISOSRHID8BWP7T35P140LVT (ISO, I, Z); input ISO, I; output Z; or (Z, I, ISO); specify (I => Z) = (0, 0); (ISO => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ISOSRLOD2BWP7T35P140LVT (ISO, I, Z); input ISO, I; output Z; not (ISO1, ISO); nand (Z1, ISO1, I); not (Z, Z1); specify (I => Z) = (0, 0); (ISO => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ISOSRLOD4BWP7T35P140LVT (ISO, I, Z); input ISO, I; output Z; not (ISO1, ISO); nand (Z1, ISO1, I); not (Z, Z1); specify (I => Z) = (0, 0); (ISO => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module ISOSRLOD8BWP7T35P140LVT (ISO, I, Z); input ISO, I; output Z; not (ISO1, ISO); nand (Z1, ISO1, I); not (Z, Z1); specify (I => Z) = (0, 0); (ISO => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLHLCD1BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; not (IN, I); nand (Z, IN, NSLEEP); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLHLCD2BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; not (IN, I); nand (Z, IN, NSLEEP); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLHLCD4BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; not (IN, I); nand (Z, IN, NSLEEP); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLHLCD8BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; not (IN, I); nand (Z, IN, NSLEEP); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLHLCLOD1BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; and (Z, I, NSLEEP); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLHLCLOD2BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; and (Z, I, NSLEEP); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLHLCLOD4BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; and (Z, I, NSLEEP); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLHLCLOD8BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; and (Z, I, NSLEEP); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLHLD1BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLHLD2BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLHLD4BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLHLD8BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLLHCD1BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; not (NSLEEPN, NSLEEP); or (Z, I, NSLEEPN); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLLHCD2BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; not (NSLEEPN, NSLEEP); or (Z, I, NSLEEPN); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLLHCD4BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; not (NSLEEPN, NSLEEP); or (Z, I, NSLEEPN); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLLHCD8BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; not (NSLEEPN, NSLEEP); or (Z, I, NSLEEPN); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLLHCLOD1BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; and (Z, I, NSLEEP); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLLHCLOD2BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; and (Z, I, NSLEEP); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLLHCLOD4BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; and (Z, I, NSLEEP); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLLHCLOD8BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; and (Z, I, NSLEEP); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLLHD1BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLLHD2BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLLHD4BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLLHD8BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLSRLHCD2BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; not (NSLEEPN, NSLEEP); or (Z, I, NSLEEPN); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLSRLHCD4BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; not (NSLEEPN, NSLEEP); or (Z, I, NSLEEPN); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLSRLHCD8BWP7T35P140LVT (I, NSLEEP, Z); input I, NSLEEP; output Z; not (NSLEEPN, NSLEEP); or (Z, I, NSLEEPN); specify (I => Z) = (0, 0); (NSLEEP => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLSRLHD2BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLSRLHD4BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine `celldefine module LVLSRLHD8BWP7T35P140LVT (I, Z); input I; output Z; buf (Z, I); specify (I => Z) = (0, 0); endspecify endmodule `endcelldefine primitive tsmc_dff (q, d, cp, cdn, sdn, notifier); output q; input d, cp, cdn, sdn, notifier; reg q; table ? ? 0 ? ? : ? : 0 ; // CDN dominate SDN ? ? 1 0 ? : ? : 1 ; // SDN is set ? ? 1 x ? : 0 : x ; // SDN affect Q ? ? 1 x ? : 1 : 1 ; // Q=1,preset=X ? ? x 1 ? : 0 : 0 ; // Q=0,clear=X 0 (01) ? 1 ? : ? : 0 ; // Latch 0 0 (0x) 1 1 ? : ? : x ; // Weak clock 0 0 ? 1 ? : 0 : 0 ; // Keep 0 (D==Q) 1 (01) 1 ? ? : ? : 1 ; // Latch 1 1 (0x) 1 ? ? : ? : x ; // Weak clock 1 0 1 ? ? : 1 : 1 ; // Keep 1 (D==Q) ? (1?) 1 1 ? : ? : - ; // ignore negative edge of clock ? 0 1 1 ? : ? : - ; // ignore low-level clock ? ? (?1) 1 ? : ? : - ; // ignore positive edge of CDN ? ? 1 (?1) ? : ? : - ; // ignore posative edge of SDN * ? 1 1 ? : ? : - ; // ignore data change on steady clock ? ? ? ? * : ? : x ; // timing check violation endtable endprimitive primitive tsmc_dla (q, d, e, cdn, sdn, notifier); output q; reg q; input d, e, cdn, sdn, notifier; table 1 1 1 ? ? : ? : 1 ; // Latch 1 0 1 ? 1 ? : ? : 0 ; // Latch 0 0 (10) 1 1 ? : ? : 0 ; // Latch 0 after falling edge 1 (10) 1 1 ? : ? : 1 ; // Latch 1 after falling edge * 0 ? ? ? : ? : - ; // no changes ? ? ? 0 ? : ? : 1 ; // preset to 1 ? 0 1 * ? : 1 : 1 ; 1 ? 1 * ? : 1 : 1 ; 1 * 1 ? ? : 1 : 1 ; ? ? 0 1 ? : ? : 0 ; // reset to 0 ? 0 * 1 ? : 0 : 0 ; 0 ? * 1 ? : 0 : 0 ; 0 * ? 1 ? : 0 : 0 ; ? ? ? ? * : ? : x ; // toggle notifier endtable endprimitive primitive tsmc_mux (q, d0, d1, s); output q; input s, d0, d1; table // d0 d1 s : q 0 ? 0 : 0 ; 1 ? 0 : 1 ; ? 0 1 : 0 ; ? 1 1 : 1 ; 0 0 x : 0 ; 1 1 x : 1 ; endtable endprimitive primitive tsmc_xbuf (o, i, dummy); output o; input i, dummy; table // i dummy : o 0 1 : 0 ; 1 1 : 1 ; x 1 : 1 ; endtable endprimitive