📄 example_en_32bit_a.v
字号:
#1 EQZ = IE;
always @ (posedge IQC or posedge IQR)
if (IQR)
#1 IQQ = 1'b0;
else if (IQE)
#1 IQQ = IP;
always @ (posedge IQC or posedge IQR)
if (IQR)
#1 OQQ = 1'b0;
else
#1 OQQ = OQI;
`else
/* synopsys translate_off */
always @ (posedge IQC)
if (~IQR & EQE)
#1 EQZ = IE;
else if (IQR)
#1 EQZ = 1'b0;
always @ (posedge IQC)
if (~IQR & IQE)
#1 IQQ = IP;
else if (IQR)
#1 IQQ = 1'b0; always @ (posedge IQC)
if (~IQR)
#1 OQQ = OQI;
else if (IQR)
#1 OQQ = 1'b0;
/* synopsys translate_on */
`endif
endmodule // eio_cell
`endif
`ifdef ckcell_25um
`else
`define ckcell_25um
module ckcell_25um( IP , IC );
output IC;
input IP;
parameter syn_macro = 1;
parameter ql_frag = 1;
// exemplar attribute ckcell_25um noopt true
assign #1 IC = IP;
endmodule // ckcell_25um
`endif
`ifdef dff_2
`else
`define dff_2
module dff_2( CLK , D1, D2, Q1, Q2 );
input CLK /* synthesis syn_isclock=1 */;
//exemplar attribute CLK syn_isclock true
input D1, D2;
output Q1, Q2;
// exemplar attribute dff_2 dont_touch true
parameter syn_macro = 1;
supply1 vcc;
supply0 gnd;
super_logic I2 ( .A1(vcc), .A2(gnd), .A3(vcc), .A4(gnd), .A5(vcc), .A6(gnd),
.B1(vcc), .B2(gnd), .C1(vcc), .C2(gnd), .D1(vcc), .D2(gnd),
.E1(D1), .E2(gnd), .F1(vcc), .F2(gnd), .F3(vcc), .F4(gnd),
.F5(vcc), .F6(gnd), .MP(gnd), .MS(vcc), .NP(gnd), .NS(vcc),
.OP(gnd), .OS(vcc), .PP(vcc), .PS(D2), .Q2Z(Q2), .QC(CLK),
.QR(gnd), .QS(gnd), .QZ(Q1), .AZ(), .FZ(), .NZ(), .OZ() );
endmodule // dff_2
`endif
`ifdef counter_en_8bit_ii_a
`else
`define counter_en_8bit_ii_a
module counter_en_8bit_ii_a( clear , clk, enable, count );
input clear;
input clk /* synthesis syn_isclock=1 */;
//exemplar attribute clk syn_isclock true
output [7:0] count;
input enable;
// exemplar attribute counter_en_8bit_ii_a dont_touch true
parameter syn_macro = 1;
wire enable_8bit;
counter_en_4bit_s I4 ( .clear(clear), .clk(clk), .enable(enable_8bit),
.qa_r(count[7]), .qb_r(count[6]), .qc_r(count[5]),
.qd_r(count[4]) );
counter_en_4bit_a I5 ( .clear(clear), .clk(clk), .enable(enable),
.enablehbit_a(enable_8bit), .qa_r(count[3]),
.qb_r(count[2]), .qc_r(count[1]), .qd_r(count[0]) );
endmodule // counter_en_8bit_ii_a
`endif
`ifdef counter_en_8bit_i_a
`else
`define counter_en_8bit_i_a
module counter_en_8bit_i_a( clear , clk, enable, count, en_8bit_a );
input clear;
input clk /* synthesis syn_isclock=1 */;
//exemplar attribute clk syn_isclock true
output [7:0] count;
output en_8bit_a;
input enable;
// exemplar attribute counter_en_8bit_i_a dont_touch true
parameter syn_macro = 1;
wire en_8bit3_a;
wire en_8bit2_a;
wire en_8bit1_a;
wire enableh4bit;
supply1 vcc;
supply0 gnd;
counter_en_4bit_a I8 ( .clear(clear), .clk(clk), .enable(enable),
.enablehbit_a(enableh4bit), .qa_r(count[3]),
.qb_r(count[2]), .qc_r(count[1]), .qd_r(count[0]) );
counter_en_4bit_a I9 ( .clear(clear), .clk(clk), .enable(enableh4bit),
.qa_r(count[7]), .qb_r(count[6]), .qc_r(count[5]),
.qd_r(count[4]) );
super_logic I1 ( .A1(count[0]), .A2(gnd), .A3(count[1]), .A4(gnd), .A5(count[2]),
.A6(gnd), .AZ(en_8bit1_a), .B1(vcc), .B2(gnd), .C1(vcc), .C2(gnd),
.D1(vcc), .D2(gnd), .E1(vcc), .E2(gnd), .F1(count[6]), .F2(gnd),
.F3(count[7]), .F4(gnd), .F5(enable), .F6(gnd), .FZ(en_8bit2_a),
.MP(gnd), .MS(gnd), .NP(gnd), .NS(gnd), .OP(gnd), .OS(gnd),
.PP(gnd), .PS(gnd), .QC(gnd), .QR(gnd), .QS(gnd), .NZ(), .OZ(), .Q2Z(), .QZ() );
super_logic I2 ( .A1(count[3]), .A2(gnd), .A3(count[4]), .A4(gnd), .A5(count[5]),
.A6(gnd), .AZ(en_8bit3_a), .B1(vcc), .B2(gnd), .C1(vcc), .C2(gnd),
.D1(vcc), .D2(gnd), .E1(vcc), .E2(gnd), .F1(en_8bit1_a), .F2(gnd),
.F3(en_8bit2_a), .F4(gnd), .F5(en_8bit3_a), .F6(gnd),
.FZ(en_8bit_a), .MP(gnd), .MS(gnd), .NP(gnd), .NS(gnd), .OP(gnd),
.OS(gnd), .PP(gnd), .PS(gnd), .QC(gnd), .QR(gnd), .QS(gnd), .NZ(), .OZ(), .Q2Z(), .QZ() );
endmodule // counter_en_8bit_i_a
`endif
`ifdef super_cell
`else
`define super_cell
module super_cell( A1 , A2, A3, A4, A5, A6, B1, B2, C1, C2, D1, D2, E1, E2, F1,
F2, F3, F4, F5, F6, MP, MS, NP, NS, OP, OS, PP, PS, QC, QR,
QS, AZ, FZ, NZ, OZ, Q2Z, QZ );
input A1, A2, A3, A4, A5, A6;
output AZ;
input B1, B2, C1, C2, D1, D2, E1, E2, F1, F2, F3, F4, F5, F6;
output FZ;
input MP, MS, NP, NS;
output NZ;
input OP, OS;
output OZ;
input PP, PS;
output Q2Z;
input QC, QR, QS;
output QZ;
parameter syn_macro = 1;
parameter ql_frag = 1;
// exemplar attribute super_cell noopt true
wire TOPMUX_Z, MIDMUX_Z, BOTMUX_Z, FFMUX_Z, CLKMUX_Z;
wire MZ;
reg QZ, Q2Z;
assign #1 AZ = A1 & ~A2 & A3 & ~A4 & A5 & ~A6;
assign #1 TOPMUX_Z = OP ? AZ : OS;
assign #1 MZ = MIDMUX_Z ? (C1 & ~C2) : (B1 & ~B2);
assign #1 MIDMUX_Z = MP ? FZ : MS;
assign #1 NZ = BOTMUX_Z ? (E1 & ~E2) : (D1 & ~D2);
assign #1 BOTMUX_Z = NP ? FZ : NS;
assign #1 FZ = F1 & ~F2 & F3 & ~F4 & F5 & ~F6;
assign #1 OZ = TOPMUX_Z ? NZ : MZ;
assign #1 FFMUX_Z = PP ? PS : NZ;
`ifdef synthesis
always @ (posedge QC or posedge QR or posedge QS)
if (QR)
#1 QZ = 1'b0;
else if (QS)
#1 QZ = 1'b1;
else
#1 QZ = OZ;
always @ (posedge QC or posedge QR or posedge QS)
if (QR)
#1 Q2Z = 1'b0;
else if (QS)
#1 Q2Z = 1'b1;
else
#1 Q2Z = FFMUX_Z;
`else
/* synopsys translate_off */
always @ (posedge QC)
if (~QR && ~QS)
#1 QZ = OZ;
always @ (QR or QS)
if (QR)
#1 QZ = 1'b0;
else if (QS)
#1 QZ = 1'b1;
always @ (posedge QC)
if (~QR && ~QS)
#1 Q2Z = FFMUX_Z;
always @ (QR or QS)
if (QR)
#1 Q2Z = 1'b0;
else if (QS)
#1 Q2Z = 1'b1;
/* synopsys translate_on */
`endif
endmodule // super_cell
`endif
`ifdef counter_en_4bit_s
`else
`define counter_en_4bit_s
module counter_en_4bit_s( clear , clk, enable, qa_r, qb_r, qc_r, qd_r );
input clear;
input clk /* synthesis syn_isclock=1 */;
//exemplar attribute clk syn_isclock true
input enable;
output qa_r, qb_r, qc_r, qd_r;
// exemplar attribute counter_en_4bit_s dont_touch true
parameter syn_macro = 1;
wire ED_a;
wire ABCDE_a;
wire BCD_a;
supply0 GND;
supply1 VCC;
super_logic I1 ( .A1(BCD_a), .A2(GND), .A3(ED_a), .A4(GND), .A5(qa_r), .A6(GND),
.AZ(ABCDE_a), .B1(ED_a), .B2(qc_r), .C1(qc_r), .C2(ED_a),
.D1(qb_r), .D2(GND), .E1(VCC), .E2(qb_r), .F1(qc_r), .F2(GND),
.F3(qd_r), .F4(GND), .F5(VCC), .F6(GND), .FZ(ED_a), .MP(GND),
.MS(qc_r), .NP(enable), .NS(GND), .OP(GND), .OS(GND), .PP(GND),
.PS(GND), .Q2Z(qb_r), .QC(clk), .QR(clear), .QS(GND), .QZ(qc_r), .NZ(), .OZ() );
super_logic I2 ( .A1(VCC), .A2(GND), .A3(VCC), .A4(GND), .A5(VCC), .A6(GND),
.B1(qa_r), .B2(GND), .C1(VCC), .C2(qa_r), .D1(enable), .D2(qd_r),
.E1(qd_r), .E2(enable), .F1(qb_r), .F2(GND), .F3(qc_r), .F4(GND),
.F5(qd_r), .F6(GND), .FZ(BCD_a), .MP(enable), .MS(GND), .NP(GND),
.NS(qd_r), .OP(GND), .OS(GND), .PP(GND), .PS(GND), .Q2Z(qd_r),
.QC(clk), .QR(clear), .QS(GND), .QZ(qa_r), .AZ(), .NZ(), .OZ() );
endmodule // counter_en_4bit_s
`endif
`ifdef counter_en_4bit_a
`else
`define counter_en_4bit_a
module counter_en_4bit_a( clear , clk, enable, enablehbit_a, qa_r, qb_r, qc_r, qd_r );
input clear;
input clk /* synthesis syn_isclock=1 */;
//exemplar attribute clk syn_isclock true
input enable;
output enablehbit_a, qa_r, qb_r, qc_r, qd_r;
// exemplar attribute counter_en_4bit_a dont_touch true
parameter syn_macro = 1;
wire ED_a;
wire BCD_a;
supply0 GND;
supply1 VCC;
super_logic I1 ( .A1(BCD_a), .A2(GND), .A3(ED_a), .A4(GND), .A5(qa_r), .A6(GND),
.AZ(enablehbit_a), .B1(ED_a), .B2(qc_r), .C1(qc_r), .C2(ED_a),
.D1(qb_r), .D2(GND), .E1(VCC), .E2(qb_r), .F1(enable), .F2(GND),
.F3(qd_r), .F4(GND), .F5(VCC), .F6(GND), .FZ(ED_a), .MP(GND),
.MS(qc_r), .NP(qc_r), .NS(GND), .OP(GND), .OS(GND), .PP(GND),
.PS(GND), .Q2Z(qb_r), .QC(clk), .QR(clear), .QS(GND), .QZ(qc_r), .NZ(), .OZ() );
super_logic I2 ( .A1(VCC), .A2(GND), .A3(VCC), .A4(GND), .A5(VCC), .A6(GND),
.B1(qa_r), .B2(GND), .C1(VCC), .C2(qa_r), .D1(enable), .D2(qd_r),
.E1(qd_r), .E2(enable), .F1(qb_r), .F2(GND), .F3(qc_r), .F4(GND),
.F5(qd_r), .F6(GND), .FZ(BCD_a), .MP(enable), .MS(GND), .NP(GND),
.NS(qd_r), .OP(GND), .OS(GND), .PP(GND), .PS(GND), .Q2Z(qd_r),
.QC(clk), .QR(clear), .QS(GND), .QZ(qa_r), .AZ(), .NZ(), .OZ() );
endmodule // counter_en_4bit_a
`endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -