blob: 4cc339a1497ad1e56e897d24560449e3ce431229 [file] [log] [blame] [edit]
// ============================================================================
// FFs
module CESR_MUX(input CE, SR, output CE_OUT, SR_OUT);
parameter _TECHMAP_CONSTMSK_CE_ = 0;
parameter _TECHMAP_CONSTVAL_CE_ = 0;
parameter _TECHMAP_CONSTMSK_SR_ = 0;
parameter _TECHMAP_CONSTVAL_SR_ = 0;
localparam CEUSED = _TECHMAP_CONSTMSK_CE_ == 0 || _TECHMAP_CONSTVAL_CE_ == 0;
localparam SRUSED = _TECHMAP_CONSTMSK_SR_ == 0 || _TECHMAP_CONSTVAL_SR_ == 1;
if(CEUSED) begin
assign CE_OUT = CE;
end else begin
CE_VCC ce(
.VCC(CE_OUT)
);
end
if(SRUSED) begin
assign SR_OUT = SR;
end else begin
SR_GND sr(
.GND(SR_OUT)
);
end
endmodule
module FD (output reg Q, input C, D);
parameter [0:0] INIT = 1'b0;
wire CE_SIG;
wire SR_SIG;
CESR_MUX cesr_mux(
.CE(1'b1),
.SR(1'b0),
.CE_OUT(CE_SIG),
.SR_OUT(SR_SIG)
);
FDRE_ZINI #(.ZINI(!|INIT), .IS_C_INVERTED(|0))
_TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(CE_SIG), .R(SR_SIG));
endmodule
module FDRE (output reg Q, input C, CE, D, R);
parameter [0:0] INIT = 1'b0;
wire CE_SIG;
wire SR_SIG;
CESR_MUX cesr_mux(
.CE(CE),
.SR(R),
.CE_OUT(CE_SIG),
.SR_OUT(SR_SIG)
);
FDRE_ZINI #(.ZINI(!|INIT), .IS_C_INVERTED(|0))
_TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(CE_SIG), .R(SR_SIG));
endmodule
module FDSE (output reg Q, input C, CE, D, S);
parameter [0:0] INIT = 1'b1;
wire CE_SIG;
wire SR_SIG;
CESR_MUX cesr_mux(
.CE(CE),
.SR(S),
.CE_OUT(CE_SIG),
.SR_OUT(SR_SIG)
);
FDSE_ZINI #(.ZINI(!|INIT), .IS_C_INVERTED(|0))
_TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(CE_SIG), .S(SR_SIG));
endmodule
module FDCE (output reg Q, input C, CE, D, CLR);
parameter [0:0] INIT = 1'b0;
wire CE_SIG;
wire SR_SIG;
CESR_MUX cesr_mux(
.CE(CE),
.SR(CLR),
.CE_OUT(CE_SIG),
.SR_OUT(SR_SIG)
);
FDCE_ZINI #(.ZINI(!|INIT), .IS_C_INVERTED(|0))
_TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(CE_SIG), .CLR(SR_SIG));
endmodule
module FDPE (output reg Q, input C, CE, D, PRE);
parameter [0:0] INIT = 1'b1;
wire CE_SIG;
wire SR_SIG;
CESR_MUX cesr_mux(
.CE(CE),
.SR(PRE),
.CE_OUT(CE_SIG),
.SR_OUT(SR_SIG)
);
FDPE_ZINI #(.ZINI(!|INIT), .IS_C_INVERTED(|0))
_TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(CE_SIG), .PRE(SR_SIG));
endmodule
module FDRE_1 (output reg Q, input C, CE, D, R);
parameter [0:0] INIT = 1'b0;
wire CE_SIG;
wire SR_SIG;
CESR_MUX cesr_mux(
.CE(CE),
.SR(R),
.CE_OUT(CE_SIG),
.SR_OUT(SR_SIG)
);
FDRE_ZINI #(.ZINI(!|INIT), .IS_C_INVERTED(|1))
_TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(CE_SIG), .R(SR_SIG));
endmodule
module FDSE_1 (output reg Q, input C, CE, D, S);
parameter [0:0] INIT = 1'b1;
wire CE_SIG;
wire SR_SIG;
CESR_MUX cesr_mux(
.CE(CE),
.SR(S),
.CE_OUT(CE_SIG),
.SR_OUT(SR_SIG)
);
FDSE_ZINI #(.ZINI(!|INIT), .IS_C_INVERTED(|1))
_TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(CE_SIG), .S(SR_SIG));
endmodule
module FDCE_1 (output reg Q, input C, CE, D, CLR);
parameter [0:0] INIT = 1'b0;
wire CE_SIG;
wire SR_SIG;
CESR_MUX cesr_mux(
.CE(CE),
.SR(CLR),
.CE_OUT(CE_SIG),
.SR_OUT(SR_SIG)
);
FDCE_ZINI #(.ZINI(!|INIT), .IS_C_INVERTED(|1))
_TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(CE_SIG), .CLR(SR_SIG));
endmodule
module FDPE_1 (output reg Q, input C, CE, D, PRE);
parameter [0:0] INIT = 1'b1;
wire CE_SIG;
wire SR_SIG;
CESR_MUX cesr_mux(
.CE(CE),
.SR(PRE),
.CE_OUT(CE_SIG),
.SR_OUT(SR_SIG)
);
FDPE_ZINI #(.ZINI(!|INIT), .IS_C_INVERTED(|1))
_TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(CE_SIG), .PRE(SR_SIG));
endmodule
// ============================================================================
// LUTs
module LUT1(output O, input I0);
parameter [1:0] INIT = 0;
\$lut #(
.WIDTH(1),
.LUT(INIT)
) _TECHMAP_REPLACE_ (
.A(I0),
.Y(O)
);
endmodule
module LUT2(output O, input I0, I1);
parameter [3:0] INIT = 0;
\$lut #(
.WIDTH(2),
.LUT(INIT)
) _TECHMAP_REPLACE_ (
.A({I1, I0}),
.Y(O)
);
endmodule
module LUT3(output O, input I0, I1, I2);
parameter [7:0] INIT = 0;
\$lut #(
.WIDTH(3),
.LUT(INIT)
) _TECHMAP_REPLACE_ (
.A({I2, I1, I0}),
.Y(O)
);
endmodule
module LUT4(output O, input I0, I1, I2, I3);
parameter [15:0] INIT = 0;
\$lut #(
.WIDTH(4),
.LUT(INIT)
) _TECHMAP_REPLACE_ (
.A({I3, I2, I1, I0}),
.Y(O)
);
endmodule
module LUT5(output O, input I0, I1, I2, I3, I4);
parameter [31:0] INIT = 0;
\$lut #(
.WIDTH(5),
.LUT(INIT)
) _TECHMAP_REPLACE_ (
.A({I4, I3, I2, I1, I0}),
.Y(O)
);
endmodule
module LUT6(output O, input I0, I1, I2, I3, I4, I5);
parameter [63:0] INIT = 0;
wire T0, T1;
\$lut #(
.WIDTH(5),
.LUT(INIT[31:0])
) fpga_lut_0 (
.A({I4, I3, I2, I1, I0}),
.Y(T0)
);
\$lut #(
.WIDTH(5),
.LUT(INIT[63:32])
) fpga_lut_1 (
.A({I4, I3, I2, I1, I0}),
.Y(T1)
);
MUXF6 fpga_mux_0 (.O(O), .I0(T0), .I1(T1), .S(I5));
endmodule
// ============================================================================
// Distributed RAMs
module RAM128X1S (
output O,
input D, WCLK, WE,
input A6, A5, A4, A3, A2, A1, A0
);
parameter [127:0] INIT = 128'bx;
parameter IS_WCLK_INVERTED = 0;
wire low_lut_o6;
wire high_lut_o6;
wire [5:0] A = {A5, A4, A3, A2, A1, A0};
// DPRAM64_for_RAM128X1D is used here because RAM128X1S only consumes half of the
// slice, but WA7USED is slice wide. The packer should be able to pack two
// RAM128X1S in a slice, but it should not be able to pack RAM128X1S and
// a RAM64X1[SD]. It is unclear if RAM32X1[SD] or RAM32X2S can be packed
// with a RAM128X1S, so for now it is forbidden.
//
// Note that a RAM128X1D does not require [SD]PRAM128 because it consumes
// the entire slice.
DPRAM64_for_RAM128X1D #(
.INIT(INIT[63:0]),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED),
.HIGH_WA7_SELECT(0)
) ram0 (
.DI(D),
.A(A),
.WA(A),
.WA7(A6),
.CLK(WCLK),
.WE(WE),
.O(low_lut_o6)
);
DPRAM64_for_RAM128X1D #(
.INIT(INIT[127:64]),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED),
.HIGH_WA7_SELECT(1)
) ram1 (
.DI(D),
.A(A),
.WA(A),
.WA7(A6),
.CLK(WCLK),
.WE(WE),
.O(high_lut_o6)
);
MUXF7 ram_f7_mux (.O(O), .I0(low_lut_o6), .I1(high_lut_o6), .S(A6));
endmodule
module RAM128X1D (
output DPO, SPO,
input D, WCLK, WE,
input [6:0] A, DPRA
);
parameter [127:0] INIT = 128'bx;
parameter IS_WCLK_INVERTED = 0;
wire dlut_o6;
wire clut_o6;
wire blut_o6;
wire alut_o6;
DPRAM64_for_RAM128X1D #(
.INIT(INIT[63:0]),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED),
.HIGH_WA7_SELECT(0)
) ram0 (
.DI(D),
.A(A[5:0]),
.WA(A[5:0]),
.WA7(A[6]),
.CLK(WCLK),
.WE(WE),
.O(dlut_o6)
);
DPRAM64_for_RAM128X1D #(
.INIT(INIT[127:64]),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED),
.HIGH_WA7_SELECT(1)
) ram1 (
.DI(D),
.A(A[5:0]),
.WA(A[5:0]),
.WA7(A[6]),
.CLK(WCLK),
.WE(WE),
.O(clut_o6)
);
DPRAM64_for_RAM128X1D #(
.INIT(INIT[63:0]),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED),
.HIGH_WA7_SELECT(0)
) ram2 (
.DI(D),
.A(DPRA[5:0]),
.WA(A[5:0]),
.WA7(A[6]),
.CLK(WCLK),
.WE(WE),
.O(blut_o6)
);
DPRAM64_for_RAM128X1D #(
.INIT(INIT[127:64]),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED),
.HIGH_WA7_SELECT(0)
) ram3 (
.DI(D),
.A(DPRA[5:0]),
.WA(A[5:0]),
.WA7(A[6]),
.CLK(WCLK),
.WE(WE),
.O(alut_o6)
);
wire SPO_FORCE;
wire DPO_FORCE;
MUXF7 f7b_mux (.O(SPO_FORCE), .I0(dlut_o6), .I1(clut_o6), .S(A[6]));
MUXF7 f7a_mux (.O(DPO_FORCE), .I0(blut_o6), .I1(alut_o6), .S(DPRA[6]));
DRAM_2_OUTPUT_STUB stub (
.SPO(SPO_FORCE), .DPO(DPO_FORCE),
.SPO_OUT(SPO), .DPO_OUT(DPO));
endmodule
module RAM256X1S (
output O,
input D, WCLK, WE,
input [7:0] A
);
parameter [256:0] INIT = 256'bx;
parameter IS_WCLK_INVERTED = 0;
wire dlut_o6;
wire clut_o6;
wire blut_o6;
wire alut_o6;
wire f7b_o;
wire f7a_o;
DPRAM64 #(
.INIT(INIT[63:0]),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED),
.WA7USED(1),
.WA8USED(1),
.HIGH_WA7_SELECT(0),
.HIGH_WA8_SELECT(0)
) ram0 (
.DI(D),
.A(A[5:0]),
.WA(A[5:0]),
.WA7(A[6]),
.WA8(A[7]),
.CLK(WCLK),
.WE(WE),
.O(dlut_o6)
);
DPRAM64 #(
.INIT(INIT[127:64]),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED),
.WA7USED(1),
.WA8USED(1),
.HIGH_WA7_SELECT(1),
.HIGH_WA8_SELECT(0)
) ram1 (
.DI(D),
.A(A[5:0]),
.WA(A[5:0]),
.WA7(A[6]),
.WA8(A[7]),
.CLK(WCLK),
.WE(WE),
.O(clut_o6)
);
DPRAM64 #(
.INIT(INIT[191:128]),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED),
.WA7USED(1),
.WA8USED(1),
.HIGH_WA7_SELECT(0),
.HIGH_WA8_SELECT(1)
) ram2 (
.DI(D),
.A(A[5:0]),
.WA(A[5:0]),
.WA7(A[6]),
.WA8(A[7]),
.CLK(WCLK),
.WE(WE),
.O(blut_o6)
);
DPRAM64 #(
.INIT(INIT[255:192]),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED),
.WA7USED(1),
.WA8USED(1),
.HIGH_WA7_SELECT(1),
.HIGH_WA8_SELECT(1)
) ram3 (
.DI(D),
.A(A[5:0]),
.WA(A[5:0]),
.WA7(A[6]),
.WA8(A[7]),
.CLK(WCLK),
.WE(WE),
.O(alut_o6)
);
MUXF7 f7b_mux (.O(f7b_o), .I0(dlut_o6), .I1(clut_o6), .S(A[6]));
MUXF7 f7a_mux (.O(f7a_o), .I0(blut_o6), .I1(alut_o6), .S(A[6]));
MUXF8 f8_mux (.O(O), .I0(f7b_o), .I1(f7a_o), .S(A[7]));
endmodule
module RAM32X1D (
output DPO, SPO,
input D, WCLK, WE,
input A0, A1, A2, A3, A4,
input DPRA0, DPRA1, DPRA2, DPRA3, DPRA4
);
parameter [31:0] INIT = 32'bx;
parameter IS_WCLK_INVERTED = 0;
wire [4:0] WA = {A4, A3, A2, A1, A0};
wire [4:0] DPRA = {DPRA4, DPRA3, DPRA2, DPRA1, DPRA0};
wire SPO_FORCE, DPO_FORCE;
DPRAM32 #(
.INIT_00(INIT),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) ram0 (
.DI(D),
.A(WA),
.WA(WA),
.CLK(WCLK),
.WE(WE),
.O(SPO_FORCE)
);
DPRAM32 #(
.INIT_00(INIT),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) ram1 (
.DI(D),
.A(DPRA),
.WA(WA),
.CLK(WCLK),
.WE(WE),
.O(DPO_FORCE)
);
DRAM_2_OUTPUT_STUB stub (
.SPO(SPO_FORCE), .DPO(DPO_FORCE),
.SPO_OUT(SPO), .DPO_OUT(DPO));
endmodule
module RAM32X1S (
output O,
input D, WCLK, WE,
input A0, A1, A2, A3, A4
);
parameter [31:0] INIT = 32'bx;
parameter IS_WCLK_INVERTED = 0;
SPRAM32 #(
.INIT_00(INIT),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) dram_S (
.DI(D),
.A({A4, A3, A2, A1, A0}),
.WA({A4, A3, A2, A1, A0}),
.CLK(WCLK),
.WE(WE),
.O(O)
);
endmodule
module RAM32X2S (
output O0, O1,
input D0, D1, WCLK, WE,
input A0, A1, A2, A3, A4
);
parameter [31:0] INIT_00 = 32'bx;
parameter [31:0] INIT_01 = 32'bx;
parameter IS_WCLK_INVERTED = 0;
DPRAM32 #(
.INIT_00(INIT_00),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) ram0 (
.DI(D0),
.A({A4, A3, A2, A1, A0}),
.WA({A4, A3, A2, A1, A0}),
.CLK(WCLK),
.WE(WE),
.O(O0)
);
DPRAM32 #(
.INIT_00(INIT_01),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) ram1 (
.DI(D1),
.A({A4, A3, A2, A1, A0}),
.WA({A4, A3, A2, A1, A0}),
.CLK(WCLK),
.WE(WE),
.O(O1),
);
endmodule
module RAM32M (
output [1:0] DOA, DOB, DOC, DOD,
input [1:0] DIA, DIB, DIC, DID,
input [4:0] ADDRA, ADDRB, ADDRC, ADDRD,
input WE, WCLK
);
parameter [63:0] INIT_A = 64'bx;
parameter [63:0] INIT_B = 64'bx;
parameter [63:0] INIT_C = 64'bx;
parameter [63:0] INIT_D = 64'bx;
parameter IS_WCLK_INVERTED = 0;
wire [1:0] DOD_TO_STUB;
wire [1:0] DOC_TO_STUB;
wire [1:0] DOB_TO_STUB;
wire [1:0] DOA_TO_STUB;
function [31:0] every_other_bit_32;
input [63:0] in;
input odd;
integer i;
for (i = 0; i < 32; i = i + 1) begin
every_other_bit_32[i] = in[i * 2 + odd];
end
endfunction
DPRAM32 #(
.INIT_00(every_other_bit_32(INIT_A, 1'b1)),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) ram_a1 (
.DI(DIA[1]),
.A(ADDRA),
.WA(ADDRD),
.CLK(WCLK),
.WE(WE),
.O(DOA_TO_STUB[1])
);
DPRAM32 #(
.INIT_00(every_other_bit_32(INIT_A, 1'b0)),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) ram_a0 (
.DI(DIA[0]),
.A(ADDRA),
.WA(ADDRD),
.CLK(WCLK),
.WE(WE),
.O(DOA_TO_STUB[0])
);
DPRAM32 #(
.INIT_00(every_other_bit_32(INIT_B, 1'b1)),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) ram_b1 (
.DI(DIB[1]),
.A(ADDRB),
.WA(ADDRD),
.CLK(WCLK),
.WE(WE),
.O(DOB_TO_STUB[1])
);
DPRAM32 #(
.INIT_00(every_other_bit_32(INIT_B, 1'b0)),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) ram_b0 (
.DI(DIB[0]),
.A(ADDRB),
.WA(ADDRD),
.CLK(WCLK),
.WE(WE),
.O(DOB_TO_STUB[0])
);
DPRAM32 #(
.INIT_00(every_other_bit_32(INIT_C, 1'b1)),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) ram_c1 (
.DI(DIC[1]),
.A(ADDRC),
.WA(ADDRD),
.CLK(WCLK),
.WE(WE),
.O(DOC_TO_STUB[1])
);
DPRAM32 #(
.INIT_00(every_other_bit_32(INIT_C, 1'b0)),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) ram_c0 (
.DI(DIC[0]),
.A(ADDRC),
.WA(ADDRD),
.CLK(WCLK),
.WE(WE),
.O(DOC_TO_STUB[0])
);
DPRAM32 #(
.INIT_00(every_other_bit_32(INIT_D, 1'b1)),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) ram_d1 (
.DI(DID[1]),
.A(ADDRD),
.WA(ADDRD),
.CLK(WCLK),
.WE(WE),
.O(DOD_TO_STUB[1])
);
DPRAM32 #(
.INIT_00(every_other_bit_32(INIT_D, 0)),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) ram_d0 (
.DI(DID[0]),
.A(ADDRD),
.WA(ADDRD),
.CLK(WCLK),
.WE(WE),
.O(DOD_TO_STUB[0])
);
DRAM_8_OUTPUT_STUB stub (
.DOD1(DOD_TO_STUB[1]), .DOD1_OUT(DOD[1]),
.DOC1(DOC_TO_STUB[1]), .DOC1_OUT(DOC[1]),
.DOB1(DOB_TO_STUB[1]), .DOB1_OUT(DOB[1]),
.DOA1(DOA_TO_STUB[1]), .DOA1_OUT(DOA[1]),
.DOD0(DOD_TO_STUB[0]), .DOD0_OUT(DOD[0]),
.DOC0(DOC_TO_STUB[0]), .DOC0_OUT(DOC[0]),
.DOB0(DOB_TO_STUB[0]), .DOB0_OUT(DOB[0]),
.DOA0(DOA_TO_STUB[0]), .DOA0_OUT(DOA[0])
);
endmodule
module RAM64M (
output DOA, DOB, DOC, DOD,
input DIA, DIB, DIC, DID,
input [5:0] ADDRA, ADDRB, ADDRC, ADDRD,
input WE, WCLK
);
parameter [63:0] INIT_A = 64'bx;
parameter [63:0] INIT_B = 64'bx;
parameter [63:0] INIT_C = 64'bx;
parameter [63:0] INIT_D = 64'bx;
parameter IS_WCLK_INVERTED = 0;
wire DOD_TO_STUB;
wire DOC_TO_STUB;
wire DOB_TO_STUB;
wire DOA_TO_STUB;
DPRAM64 #(
.INIT(INIT_D),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) dram_d (
.DI(DID),
.A(ADDRD),
.WA(ADDRD),
.CLK(WCLK),
.WE(WE),
.O(DOD_TO_STUB)
);
DPRAM64 #(
.INIT(INIT_C),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) dram_c (
.DI(DIC),
.A(ADDRC),
.WA(ADDRD),
.CLK(WCLK),
.WE(WE),
.O(DOC_TO_STUB)
);
DPRAM64 #(
.INIT(INIT_B),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) dram_b (
.DI(DIB),
.A(ADDRB),
.WA(ADDRD),
.CLK(WCLK),
.WE(WE),
.O(DOB_TO_STUB)
);
DPRAM64 #(
.INIT(INIT_A),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) dram_a (
.DI(DIA),
.A(ADDRA),
.WA(ADDRD),
.CLK(WCLK),
.WE(WE),
.O(DOA_TO_STUB)
);
DRAM_4_OUTPUT_STUB stub (
.DOD(DOD_TO_STUB), .DOD_OUT(DOD),
.DOC(DOC_TO_STUB), .DOC_OUT(DOC),
.DOB(DOB_TO_STUB), .DOB_OUT(DOB),
.DOA(DOA_TO_STUB), .DOA_OUT(DOA)
);
endmodule
module RAM64X1D (
output DPO, SPO,
input D, WCLK, WE,
input A0, A1, A2, A3, A4, A5,
input DPRA0, DPRA1, DPRA2, DPRA3, DPRA4, DPRA5
);
parameter [63:0] INIT = 64'bx;
parameter IS_WCLK_INVERTED = 0;
wire [5:0] WA = {A5, A4, A3, A2, A1, A0};
wire [5:0] DPRA = {DPRA5, DPRA4, DPRA3, DPRA2, DPRA1, DPRA0};
wire SPO_FORCE, DPO_FORCE;
DPRAM64 #(
.INIT(INIT),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) dram1 (
.DI(D),
.A(WA),
.WA(WA),
.CLK(WCLK),
.WE(WE),
.O(SPO_FORCE)
);
wire Dstub;
DI64_STUB stub1 (
.DI(D),
.DO(Dstub)
);
DPRAM64 #(
.INIT(INIT),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) dram0 (
.DI(Dstub),
.A(DPRA),
.WA(WA),
.CLK(WCLK),
.WE(WE),
.O(DPO_FORCE)
);
DRAM_2_OUTPUT_STUB stub (
.SPO(SPO_FORCE), .DPO(DPO_FORCE),
.SPO_OUT(SPO), .DPO_OUT(DPO));
endmodule
module RAM64X1S (
output O,
input D, WCLK, WE,
input A0, A1, A2, A3, A4, A5
);
parameter [63:0] INIT = 64'bx;
parameter IS_WCLK_INVERTED = 0;
DPRAM64 #(
.INIT(INIT),
.IS_WCLK_INVERTED(IS_WCLK_INVERTED)
) dram0 (
.DI(D),
.A({A5, A4, A3, A2, A1, A0}),
.WA({A5, A4, A3, A2, A1, A0}),
.CLK(WCLK),
.WE(WE),
.O(O)
);
endmodule
// ============================================================================
// Block RAMs
module RAMB18E1 (
input CLKARDCLK,
input CLKBWRCLK,
input ENARDEN,
input ENBWREN,
input REGCEAREGCE,
input REGCEB,
input RSTRAMARSTRAM,
input RSTRAMB,
input RSTREGARSTREG,
input RSTREGB,
input [13:0] ADDRARDADDR,
input [13:0] ADDRBWRADDR,
input [15:0] DIADI,
input [15:0] DIBDI,
input [1:0] DIPADIP,
input [1:0] DIPBDIP,
input [1:0] WEA,
input [3:0] WEBWE,
output [15:0] DOADO,
output [15:0] DOBDO,
output [1:0] DOPADOP,
output [1:0] DOPBDOP
);
parameter [17:0] INIT_A = 18'h0;
parameter [17:0] INIT_B = 18'h0;
parameter [17:0] SRVAL_A = 18'h0;
parameter [17:0] SRVAL_B = 18'h0;
parameter INITP_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INITP_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INITP_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INITP_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INITP_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INITP_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INITP_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INITP_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_28 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_29 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_2A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_2B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_2C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_2D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_2E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_2F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_30 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_31 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_32 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_33 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_34 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_35 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_36 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_37 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_38 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_39 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_3A = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_3B = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_3C = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_3D = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_3E = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter INIT_3F = 256'h0000000000000000000000000000000000000000000000000000000000000000;
parameter IS_CLKARDCLK_INVERTED = 1'b0;
parameter IS_CLKBWRCLK_INVERTED = 1'b0;
parameter IS_ENARDEN_INVERTED = 1'b0;
parameter IS_ENBWREN_INVERTED = 1'b0;
parameter IS_RSTRAMARSTRAM_INVERTED = 1'b0;
parameter IS_RSTRAMB_INVERTED = 1'b0;
parameter IS_RSTREGARSTREG_INVERTED = 1'b0;
parameter IS_RSTREGB_INVERTED = 1'b0;
parameter _TECHMAP_CONSTMSK_CLKARDCLK_ = 0;
parameter _TECHMAP_CONSTVAL_CLKARDCLK_ = 0;
parameter _TECHMAP_CONSTMSK_CLKBWRCLK_ = 0;
parameter _TECHMAP_CONSTVAL_CLKBWRCLK_ = 0;
parameter _TECHMAP_CONSTMSK_REGCLKARDRCLK_ = 0;
parameter _TECHMAP_CONSTVAL_REGCLKARDRCLK_ = 0;
parameter _TECHMAP_CONSTMSK_RSTRAMARSTRAM_ = 0;
parameter _TECHMAP_CONSTVAL_RSTRAMARSTRAM_ = 0;
parameter _TECHMAP_CONSTMSK_RSTRAMB_ = 0;
parameter _TECHMAP_CONSTVAL_RSTRAMB_ = 0;
parameter _TECHMAP_CONSTMSK_RSTREGARSTREG_ = 0;
parameter _TECHMAP_CONSTVAL_RSTREGARSTREG_ = 0;
parameter _TECHMAP_CONSTMSK_RSTREGB_ = 0;
parameter _TECHMAP_CONSTVAL_RSTREGB_ = 0;
parameter RAM_MODE = "TDP";
parameter SIM_DEVICE = "7SERIES";
parameter [0:0] DOA_REG = 1'b0;
parameter [0:0] DOB_REG = 1'b0;
parameter integer READ_WIDTH_A = 0;
parameter integer READ_WIDTH_B = 0;
parameter integer WRITE_WIDTH_A = 0;
parameter integer WRITE_WIDTH_B = 0;
parameter WRITE_MODE_A = "WRITE_FIRST";
parameter WRITE_MODE_B = "WRITE_FIRST";
reg _TECHMAP_FAIL_;
reg GENERATE_ERROR;
wire [1023:0] _TECHMAP_DO_ = "proc; clean";
localparam INV_CLKARDCLK = (_TECHMAP_CONSTMSK_CLKARDCLK_ == 1) ? !_TECHMAP_CONSTVAL_CLKARDCLK_ ^ IS_CLKARDCLK_INVERTED :
(_TECHMAP_CONSTVAL_CLKARDCLK_ === 0) ? ~IS_CLKARDCLK_INVERTED : IS_CLKARDCLK_INVERTED;
wire clkardclk = (_TECHMAP_CONSTMSK_CLKARDCLK_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_CLKARDCLK_ === 0) ? 1'b1 : CLKARDCLK;
localparam INV_CLKBWRCLK = (_TECHMAP_CONSTMSK_CLKBWRCLK_ == 1) ? !_TECHMAP_CONSTVAL_CLKBWRCLK_ ^ IS_CLKBWRCLK_INVERTED :
(_TECHMAP_CONSTVAL_CLKBWRCLK_ === 0) ? ~IS_CLKBWRCLK_INVERTED : IS_CLKBWRCLK_INVERTED;
wire clkbwrclk = (_TECHMAP_CONSTMSK_CLKBWRCLK_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_CLKBWRCLK_ === 0) ? 1'b1 : CLKBWRCLK;
localparam INV_RSTRAMARSTRAM = (_TECHMAP_CONSTMSK_RSTRAMARSTRAM_ == 1) ? !_TECHMAP_CONSTVAL_RSTRAMARSTRAM_ ^ IS_RSTRAMARSTRAM_INVERTED :
(_TECHMAP_CONSTVAL_RSTRAMARSTRAM_ === 0) ? ~IS_RSTRAMARSTRAM_INVERTED : IS_RSTRAMARSTRAM_INVERTED;
wire rstramarstram = (_TECHMAP_CONSTMSK_RSTRAMARSTRAM_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_RSTRAMARSTRAM_ === 0) ? 1'b1 : RSTRAMARSTRAM;
localparam INV_RSTRAMB = (_TECHMAP_CONSTMSK_RSTRAMB_ == 1) ? !_TECHMAP_CONSTVAL_RSTRAMB_ ^ IS_RSTRAMB_INVERTED :
(_TECHMAP_CONSTVAL_RSTRAMB_ === 0) ? ~IS_RSTRAMB_INVERTED : IS_RSTRAMB_INVERTED;
wire rstramb = (_TECHMAP_CONSTMSK_RSTRAMB_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_RSTRAMB_ === 0) ? 1'b1 : RSTRAMB;
localparam INV_RSTREGARSTREG = (_TECHMAP_CONSTMSK_RSTREGARSTREG_ == 1) ? !_TECHMAP_CONSTVAL_RSTREGARSTREG_ ^ IS_RSTREGARSTREG_INVERTED :
(_TECHMAP_CONSTVAL_RSTREGARSTREG_ === 0) ? ~IS_RSTREGARSTREG_INVERTED : IS_RSTREGARSTREG_INVERTED;
wire rstregarstreg = (_TECHMAP_CONSTMSK_RSTREGARSTREG_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_RSTREGARSTREG_ === 0) ? 1'b1 : RSTREGARSTREG;
localparam INV_RSTREGB = (_TECHMAP_CONSTMSK_RSTREGB_ == 1) ? !_TECHMAP_CONSTVAL_RSTREGB_ ^ IS_RSTREGB_INVERTED :
(_TECHMAP_CONSTVAL_RSTREGB_ === 0) ? ~IS_RSTREGB_INVERTED : IS_RSTREGB_INVERTED;
wire rstregb = (_TECHMAP_CONSTMSK_RSTREGB_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_RSTREGB_ === 0) ? 1'b1 : RSTREGB;
initial begin
_TECHMAP_FAIL_ <= 0;
if(READ_WIDTH_A != 0
&& READ_WIDTH_A != 1
&& READ_WIDTH_A != 2
&& READ_WIDTH_A != 4
&& READ_WIDTH_A != 9
&& READ_WIDTH_A != 18
&& READ_WIDTH_A != 36)
_TECHMAP_FAIL_ <= GENERATE_ERROR;
if(READ_WIDTH_B != 0
&& READ_WIDTH_B != 1
&& READ_WIDTH_B != 2
&& READ_WIDTH_B != 4
&& READ_WIDTH_B != 9
&& READ_WIDTH_B != 18)
_TECHMAP_FAIL_ <= GENERATE_ERROR;
if(WRITE_WIDTH_A != 0
&& WRITE_WIDTH_A != 1
&& WRITE_WIDTH_A != 2
&& WRITE_WIDTH_A != 4
&& WRITE_WIDTH_A != 9
&& WRITE_WIDTH_A != 18)
_TECHMAP_FAIL_ <= GENERATE_ERROR;
if(WRITE_WIDTH_B != 0
&& WRITE_WIDTH_B != 1
&& WRITE_WIDTH_B != 2
&& WRITE_WIDTH_B != 4
&& WRITE_WIDTH_B != 9
&& WRITE_WIDTH_B != 18
&& WRITE_WIDTH_B != 36)
_TECHMAP_FAIL_ <= GENERATE_ERROR;
if(READ_WIDTH_A > 18 && RAM_MODE != "SDP") begin
_TECHMAP_FAIL_ <= GENERATE_ERROR;
end
if(WRITE_WIDTH_B > 18 && RAM_MODE != "SDP") begin
_TECHMAP_FAIL_ <= GENERATE_ERROR;
end
if(WRITE_MODE_A != "WRITE_FIRST" && WRITE_MODE_A != "NO_CHANGE" && WRITE_MODE_A != "READ_FIRST")
_TECHMAP_FAIL_ <= GENERATE_ERROR;
if(WRITE_MODE_B != "WRITE_FIRST" && WRITE_MODE_B != "NO_CHANGE" && WRITE_MODE_B != "READ_FIRST")
_TECHMAP_FAIL_ <= GENERATE_ERROR;
end
localparam EFF_READ_WIDTH_A = (RAM_MODE == "SDP" && READ_WIDTH_A == 36) ? 18 : READ_WIDTH_A;
localparam EFF_READ_WIDTH_B = (RAM_MODE == "SDP" && READ_WIDTH_A == 36) ? 18 : READ_WIDTH_B;
localparam EFF_WRITE_WIDTH_A = (RAM_MODE == "SDP" && WRITE_WIDTH_B == 36) ? 18 : WRITE_WIDTH_A;
localparam EFF_WRITE_WIDTH_B = (RAM_MODE == "SDP" && WRITE_WIDTH_B == 36) ? 18 : WRITE_WIDTH_B;
wire REGCLKA;
wire REGCLKB;
wire [7:0] WEBWE_WIDE;
wire [3:0] WEA_WIDE;
if(WRITE_WIDTH_A < 18) begin
assign WEA_WIDE[3] = WEA[0];
assign WEA_WIDE[2] = WEA[0];
assign WEA_WIDE[1] = WEA[0];
assign WEA_WIDE[0] = WEA[0];
end else if(WRITE_WIDTH_A == 18) begin
assign WEA_WIDE[3] = WEA[1];
assign WEA_WIDE[2] = WEA[1];
assign WEA_WIDE[1] = WEA[0];
assign WEA_WIDE[0] = WEA[0];
end
if(WRITE_WIDTH_B < 18) begin
assign WEBWE_WIDE[7:4] = 4'b0;
assign WEBWE_WIDE[3] = WEBWE[0];
assign WEBWE_WIDE[2] = WEBWE[0];
assign WEBWE_WIDE[1] = WEBWE[0];
assign WEBWE_WIDE[0] = WEBWE[0];
end else if(WRITE_WIDTH_B == 18) begin
assign WEBWE_WIDE[7:4] = 4'b0;
assign WEBWE_WIDE[3] = WEBWE[1];
assign WEBWE_WIDE[2] = WEBWE[1];
assign WEBWE_WIDE[1] = WEBWE[0];
assign WEBWE_WIDE[0] = WEBWE[0];
end else begin
assign WEA_WIDE[3:0] = 4'b0;
assign WEBWE_WIDE[7] = WEBWE[3];
assign WEBWE_WIDE[6] = WEBWE[3];
assign WEBWE_WIDE[5] = WEBWE[2];
assign WEBWE_WIDE[4] = WEBWE[2];
assign WEBWE_WIDE[3] = WEBWE[1];
assign WEBWE_WIDE[2] = WEBWE[1];
assign WEBWE_WIDE[1] = WEBWE[0];
assign WEBWE_WIDE[0] = WEBWE[0];
end
assign REGCLKA = DOA_REG ? CLKARDCLK : 1'b1;
localparam ZINV_REGCLKARDRCLK = (DOA_REG && !IS_CLKARDCLK_INVERTED);
assign REGCLKB = DOB_REG ? CLKBWRCLK : 1'b1;
localparam ZINV_REGCLKB = (DOB_REG && !IS_CLKBWRCLK_INVERTED);
RAMB18E1_VPR #(
.IN_USE(READ_WIDTH_A != 0 || READ_WIDTH_B != 0 || WRITE_WIDTH_A != 0 || WRITE_WIDTH_B != 0),
.ZINIT_A(INIT_A ^ {18{1'b1}}),
.ZINIT_B(INIT_B ^ {18{1'b1}}),
.ZSRVAL_A(SRVAL_A ^ {18{1'b1}}),
.ZSRVAL_B(SRVAL_B ^ {18{1'b1}}),
.INITP_00(INITP_00),
.INITP_01(INITP_01),
.INITP_02(INITP_02),
.INITP_03(INITP_03),
.INITP_04(INITP_04),
.INITP_05(INITP_05),
.INITP_06(INITP_06),
.INITP_07(INITP_07),
.INIT_00(INIT_00),
.INIT_01(INIT_01),
.INIT_02(INIT_02),
.INIT_03(INIT_03),
.INIT_04(INIT_04),
.INIT_05(INIT_05),
.INIT_06(INIT_06),
.INIT_07(INIT_07),
.INIT_08(INIT_08),
.INIT_09(INIT_09),
.INIT_0A(INIT_0A),
.INIT_0B(INIT_0B),
.INIT_0C(INIT_0C),
.INIT_0D(INIT_0D),
.INIT_0E(INIT_0E),
.INIT_0F(INIT_0F),
.INIT_10(INIT_10),
.INIT_11(INIT_11),
.INIT_12(INIT_12),
.INIT_13(INIT_13),
.INIT_14(INIT_14),
.INIT_15(INIT_15),
.INIT_16(INIT_16),
.INIT_17(INIT_17),
.INIT_18(INIT_18),
.INIT_19(INIT_19),
.INIT_1A(INIT_1A),
.INIT_1B(INIT_1B),
.INIT_1C(INIT_1C),
.INIT_1D(INIT_1D),
.INIT_1E(INIT_1E),
.INIT_1F(INIT_1F),
.INIT_20(INIT_20),
.INIT_21(INIT_21),
.INIT_22(INIT_22),
.INIT_23(INIT_23),
.INIT_24(INIT_24),
.INIT_25(INIT_25),
.INIT_26(INIT_26),
.INIT_27(INIT_27),
.INIT_28(INIT_28),
.INIT_29(INIT_29),
.INIT_2A(INIT_2A),
.INIT_2B(INIT_2B),
.INIT_2C(INIT_2C),
.INIT_2D(INIT_2D),
.INIT_2E(INIT_2E),
.INIT_2F(INIT_2F),
.INIT_30(INIT_30),
.INIT_31(INIT_31),
.INIT_32(INIT_32),
.INIT_33(INIT_33),
.INIT_34(INIT_34),
.INIT_35(INIT_35),
.INIT_36(INIT_36),
.INIT_37(INIT_37),
.INIT_38(INIT_38),
.INIT_39(INIT_39),
.INIT_3A(INIT_3A),
.INIT_3B(INIT_3B),
.INIT_3C(INIT_3C),
.INIT_3D(INIT_3D),
.INIT_3E(INIT_3E),
.INIT_3F(INIT_3F),
.ZINV_CLKARDCLK(!IS_CLKARDCLK_INVERTED ^ INV_CLKARDCLK),
.ZINV_CLKBWRCLK(!IS_CLKBWRCLK_INVERTED ^ INV_CLKBWRCLK),
.ZINV_ENARDEN(!IS_ENARDEN_INVERTED),
.ZINV_ENBWREN(!IS_ENBWREN_INVERTED),
.ZINV_RSTRAMARSTRAM(!IS_RSTRAMARSTRAM_INVERTED ^ INV_RSTRAMARSTRAM),
.ZINV_RSTRAMB(!IS_RSTRAMB_INVERTED ^ INV_RSTRAMB),
.ZINV_RSTREGARSTREG(!IS_RSTREGARSTREG_INVERTED ^ INV_RSTREGARSTREG),
.ZINV_RSTREGB(!IS_RSTREGB_INVERTED ^ INV_RSTREGB),
.ZINV_REGCLKARDRCLK(ZINV_REGCLKARDRCLK),
.ZINV_REGCLKB(ZINV_REGCLKB),
.DOA_REG(DOA_REG),
.DOB_REG(DOB_REG),
// Assign special parameters relative to the RAMB site location.
// These is needed after the findings gathered with https://github.com/SymbiFlow/prjxray/pull/1263
// The rules to assign the correct READ_WIDTH_A parameter are the following:
// - Y0 RAMB18 and SDP mode: READ_WIDTH_A must be 1
// - Y1 RAMB18 and SDP mode: READ_WIDTH_A must be 18
// - No SDP: READ_WIDTH_A assumes the right value based on EFF_READ_WIDTH_A
.Y0_READ_WIDTH_A_1(READ_WIDTH_A == 36 || EFF_READ_WIDTH_A == 1 || EFF_READ_WIDTH_A == 0),
.Y1_READ_WIDTH_A_1(READ_WIDTH_A != 36 && (EFF_READ_WIDTH_A == 1 || EFF_READ_WIDTH_A == 0)),
.Y0_READ_WIDTH_A_18(READ_WIDTH_A != 36 && EFF_READ_WIDTH_A == 18),
.Y1_READ_WIDTH_A_18(READ_WIDTH_A == 36 || EFF_READ_WIDTH_A == 18),
.READ_WIDTH_A_1(EFF_READ_WIDTH_A == 1 || EFF_READ_WIDTH_A == 0),
.READ_WIDTH_A_2(EFF_READ_WIDTH_A == 2),
.READ_WIDTH_A_4(EFF_READ_WIDTH_A == 4),
.READ_WIDTH_A_9(EFF_READ_WIDTH_A == 9),
.READ_WIDTH_A_18(EFF_READ_WIDTH_A == 18),
.SDP_READ_WIDTH_36(READ_WIDTH_A == 36),
.READ_WIDTH_B_1(EFF_READ_WIDTH_B == 1 || EFF_READ_WIDTH_B == 0),
.READ_WIDTH_B_2(EFF_READ_WIDTH_B == 2),
.READ_WIDTH_B_4(EFF_READ_WIDTH_B == 4),
.READ_WIDTH_B_9(EFF_READ_WIDTH_B == 9),
.READ_WIDTH_B_18(EFF_READ_WIDTH_B == 18),
.WRITE_WIDTH_A_1(EFF_WRITE_WIDTH_A == 1 || EFF_WRITE_WIDTH_A == 0),
.WRITE_WIDTH_A_2(EFF_WRITE_WIDTH_A == 2),
.WRITE_WIDTH_A_4(EFF_WRITE_WIDTH_A == 4),
.WRITE_WIDTH_A_9(EFF_WRITE_WIDTH_A == 9),
.WRITE_WIDTH_A_18(EFF_WRITE_WIDTH_A == 18),
.WRITE_WIDTH_B_1(EFF_WRITE_WIDTH_B == 1 || EFF_WRITE_WIDTH_B == 0),
.WRITE_WIDTH_B_2(EFF_WRITE_WIDTH_B == 2),
.WRITE_WIDTH_B_4(EFF_WRITE_WIDTH_B == 4),
.WRITE_WIDTH_B_9(EFF_WRITE_WIDTH_B == 9),
.WRITE_WIDTH_B_18(EFF_WRITE_WIDTH_B == 18 || EFF_WRITE_WIDTH_B == 36),
.SDP_WRITE_WIDTH_36(WRITE_WIDTH_B == 36),
.WRITE_MODE_A_NO_CHANGE(WRITE_MODE_A == "NO_CHANGE" || (WRITE_MODE_A == "WRITE_FIRST" && RAM_MODE == "SDP")),
.WRITE_MODE_A_READ_FIRST(WRITE_MODE_A == "READ_FIRST"),
.WRITE_MODE_B_NO_CHANGE(WRITE_MODE_B == "NO_CHANGE" || (WRITE_MODE_B == "WRITE_FIRST" && RAM_MODE == "SDP")),
.WRITE_MODE_B_READ_FIRST(WRITE_MODE_B == "READ_FIRST")
) _TECHMAP_REPLACE_ (
.CLKARDCLK(clkardclk),
.REGCLKARDRCLK(REGCLKA),
.CLKBWRCLK(clkbwrclk),
.REGCLKB(REGCLKB),
.ENARDEN(ENARDEN),
.ENBWREN(ENBWREN),
.REGCEAREGCE(REGCEAREGCE),
.REGCEB(REGCEB),
.RSTRAMARSTRAM(rstramarstram),
.RSTRAMB(rstramb),
.RSTREGARSTREG(rstregarstreg),
.RSTREGB(rstregb),
.ADDRATIEHIGH(2'b11),
.ADDRARDADDR(ADDRARDADDR),
.ADDRBTIEHIGH(2'b11),
.ADDRBWRADDR(ADDRBWRADDR),
.DIADI(DIADI),
.DIBDI(DIBDI),
.DIPADIP(DIPADIP),
.DIPBDIP(DIPBDIP),
.WEA(WEA_WIDE),
.WEBWE(WEBWE_WIDE),
.DOADO(DOADO),
.DOBDO(DOBDO),
.DOPADOP(DOPADOP),
.DOPBDOP(DOPBDOP)
);
endmodule
function [255:0] every_other_bit_256;
input [511:0] in;
input odd;
integer i;
for (i = 0; i < 256; i = i + 1) begin
every_other_bit_256[i] = in[i * 2 + odd];
end
endfunction
module RAMB36E1 (
input CLKARDCLK,
input CLKBWRCLK,
input ENARDEN,
input ENBWREN,
input REGCEAREGCE,
input REGCEB,
input RSTRAMARSTRAM,
input RSTRAMB,
input RSTREGARSTREG,
input RSTREGB,
input CASCADEINA,
input CASCADEINB,
input INJECTDBITERR,
input INJECTSBITERR,
input [14:0] ADDRARDADDR,
input [14:0] ADDRBWRADDR,
input [31:0] DIADI,
input [31:0] DIBDI,
input [3:0] DIPADIP,
input [3:0] DIPBDIP,
input [3:0] WEA,
input [7:0] WEBWE,
output [31:0] DOADO,
output [31:0] DOBDO,
output [3:0] DOPADOP,
output [3:0] DOPBDOP,
output CASCADEOUTA,
output CASCADEOUTB,
output DBITERR,
output [7:0] ECCPARITY,
output [8:0] RDADDRECC,
output SBITERR
);
parameter [35:0] INIT_A = 36'h0;
parameter [35:0] INIT_B = 36'h0;
parameter [35:0] SRVAL_A = 36'h0;
parameter [35:0] SRVAL_B = 36'h0;
parameter RAM_EXTENSION_A = 1'h0;
parameter RAM_EXTENSION_B = 1'h0;
`define INIT_BLOCK(pre) \
parameter ``pre``0 = 256'h0000000000000000000000000000000000000000000000000000000000000000; \
parameter ``pre``1 = 256'h0000000000000000000000000000000000000000000000000000000000000000; \
parameter ``pre``2 = 256'h0000000000000000000000000000000000000000000000000000000000000000; \
parameter ``pre``3 = 256'h0000000000000000000000000000000000000000000000000000000000000000; \
parameter ``pre``4 = 256'h0000000000000000000000000000000000000000000000000000000000000000; \
parameter ``pre``5 = 256'h0000000000000000000000000000000000000000000000000000000000000000; \
parameter ``pre``6 = 256'h0000000000000000000000000000000000000000000000000000000000000000; \
parameter ``pre``7 = 256'h0000000000000000000000000000000000000000000000000000000000000000; \
parameter ``pre``8 = 256'h0000000000000000000000000000000000000000000000000000000000000000; \
parameter ``pre``9 = 256'h0000000000000000000000000000000000000000000000000000000000000000; \
parameter ``pre``A = 256'h0000000000000000000000000000000000000000000000000000000000000000; \
parameter ``pre``B = 256'h0000000000000000000000000000000000000000000000000000000000000000; \
parameter ``pre``C = 256'h0000000000000000000000000000000000000000000000000000000000000000; \
parameter ``pre``D = 256'h0000000000000000000000000000000000000000000000000000000000000000; \
parameter ``pre``E = 256'h0000000000000000000000000000000000000000000000000000000000000000; \
parameter ``pre``F = 256'h0000000000000000000000000000000000000000000000000000000000000000
`INIT_BLOCK(INITP_0);
`INIT_BLOCK(INIT_0);
`INIT_BLOCK(INIT_1);
`INIT_BLOCK(INIT_2);
`INIT_BLOCK(INIT_3);
`INIT_BLOCK(INIT_4);
`INIT_BLOCK(INIT_5);
`INIT_BLOCK(INIT_6);
`INIT_BLOCK(INIT_7);
`undef INIT_BLOCK
parameter IS_CLKARDCLK_INVERTED = 1'b0;
parameter IS_CLKBWRCLK_INVERTED = 1'b0;
parameter IS_ENARDEN_INVERTED = 1'b0;
parameter IS_ENBWREN_INVERTED = 1'b0;
parameter IS_RSTRAMARSTRAM_INVERTED = 1'b0;
parameter IS_RSTRAMB_INVERTED = 1'b0;
parameter IS_RSTREGARSTREG_INVERTED = 1'b0;
parameter IS_RSTREGB_INVERTED = 1'b0;
parameter _TECHMAP_CONSTMSK_CLKARDCLK_ = 0;
parameter _TECHMAP_CONSTVAL_CLKARDCLK_ = 0;
parameter _TECHMAP_CONSTMSK_CLKBWRCLK_ = 0;
parameter _TECHMAP_CONSTVAL_CLKBWRCLK_ = 0;
parameter _TECHMAP_CONSTMSK_REGCLKARDRCLK_ = 0;
parameter _TECHMAP_CONSTVAL_REGCLKARDRCLK_ = 0;
parameter _TECHMAP_CONSTMSK_RSTRAMARSTRAM_ = 0;
parameter _TECHMAP_CONSTVAL_RSTRAMARSTRAM_ = 0;
parameter _TECHMAP_CONSTMSK_RSTRAMB_ = 0;
parameter _TECHMAP_CONSTVAL_RSTRAMB_ = 0;
parameter _TECHMAP_CONSTMSK_RSTREGARSTREG_ = 0;
parameter _TECHMAP_CONSTVAL_RSTREGARSTREG_ = 0;
parameter _TECHMAP_CONSTMSK_RSTREGB_ = 0;
parameter _TECHMAP_CONSTVAL_RSTREGB_ = 0;
parameter RAM_MODE = "TDP";
parameter SIM_DEVICE = "7SERIES";
parameter [0:0] DOA_REG = 1'b0;
parameter [0:0] DOB_REG = 1'b0;
parameter integer READ_WIDTH_A = 0;
parameter integer READ_WIDTH_B = 0;
parameter integer WRITE_WIDTH_A = 0;
parameter integer WRITE_WIDTH_B = 0;
parameter WRITE_MODE_A = "WRITE_FIRST";
parameter WRITE_MODE_B = "WRITE_FIRST";
reg _TECHMAP_FAIL_;
wire [1023:0] _TECHMAP_DO_ = "proc; clean";
localparam INV_CLKARDCLK = (_TECHMAP_CONSTMSK_CLKARDCLK_ == 1) ? !_TECHMAP_CONSTVAL_CLKARDCLK_ ^ IS_CLKARDCLK_INVERTED :
(_TECHMAP_CONSTVAL_CLKARDCLK_ === 0) ? ~IS_CLKARDCLK_INVERTED : IS_CLKARDCLK_INVERTED;
wire clkardclk = (_TECHMAP_CONSTMSK_CLKARDCLK_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_CLKARDCLK_ === 0) ? 1'b1 : CLKARDCLK;
localparam INV_CLKBWRCLK = (_TECHMAP_CONSTMSK_CLKBWRCLK_ == 1) ? !_TECHMAP_CONSTVAL_CLKBWRCLK_ ^ IS_CLKBWRCLK_INVERTED :
(_TECHMAP_CONSTVAL_CLKBWRCLK_ === 0) ? ~IS_CLKBWRCLK_INVERTED : IS_CLKBWRCLK_INVERTED;
wire clkbwrclk = (_TECHMAP_CONSTMSK_CLKBWRCLK_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_CLKBWRCLK_ === 0) ? 1'b1 : CLKBWRCLK;
localparam INV_RSTRAMARSTRAM = (_TECHMAP_CONSTMSK_RSTRAMARSTRAM_ == 1) ? !_TECHMAP_CONSTVAL_RSTRAMARSTRAM_ ^ IS_RSTRAMARSTRAM_INVERTED :
(_TECHMAP_CONSTVAL_RSTRAMARSTRAM_ === 0) ? ~IS_RSTRAMARSTRAM_INVERTED : IS_RSTRAMARSTRAM_INVERTED;
wire rstramarstram = (_TECHMAP_CONSTMSK_RSTRAMARSTRAM_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_RSTRAMARSTRAM_ === 0) ? 1'b1 : RSTRAMARSTRAM;
localparam INV_RSTRAMB = (_TECHMAP_CONSTMSK_RSTRAMB_ == 1) ? !_TECHMAP_CONSTVAL_RSTRAMB_ ^ IS_RSTRAMB_INVERTED :
(_TECHMAP_CONSTVAL_RSTRAMB_ === 0) ? ~IS_RSTRAMB_INVERTED : IS_RSTRAMB_INVERTED;
wire rstramb = (_TECHMAP_CONSTMSK_RSTRAMB_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_RSTRAMB_ === 0) ? 1'b1 : RSTRAMB;
localparam INV_RSTREGARSTREG = (_TECHMAP_CONSTMSK_RSTREGARSTREG_ == 1) ? !_TECHMAP_CONSTVAL_RSTREGARSTREG_ ^ IS_RSTREGARSTREG_INVERTED :
(_TECHMAP_CONSTVAL_RSTREGARSTREG_ === 0) ? ~IS_RSTREGARSTREG_INVERTED : IS_RSTREGARSTREG_INVERTED;
wire rstregarstreg = (_TECHMAP_CONSTMSK_RSTREGARSTREG_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_RSTREGARSTREG_ === 0) ? 1'b1 : RSTREGARSTREG;
localparam INV_RSTREGB = (_TECHMAP_CONSTMSK_RSTREGB_ == 1) ? !_TECHMAP_CONSTVAL_RSTREGB_ ^ IS_RSTREGB_INVERTED :
(_TECHMAP_CONSTVAL_RSTREGB_ === 0) ? ~IS_RSTREGB_INVERTED : IS_RSTREGB_INVERTED;
wire rstregb = (_TECHMAP_CONSTMSK_RSTREGB_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_RSTREGB_ === 0) ? 1'b1 : RSTREGB;
initial begin
_TECHMAP_FAIL_ <= 0;
`define INVALID_WIDTH(x) \
((x) != 0 \
&& (x) != 1 \
&& (x) != 2 \
&& (x) != 4 \
&& (x) != 9 \
&& (x) != 18 \
&& (x) != 36)
`define INVALID_WIDTH_WIDE(x) \
(`INVALID_WIDTH(x) \
&& (x) != 72)
if(`INVALID_WIDTH_WIDE(READ_WIDTH_A))
_TECHMAP_FAIL_ <= GENERATE_ERROR;
if(`INVALID_WIDTH(READ_WIDTH_B))
_TECHMAP_FAIL_ <= GENERATE_ERROR;
if(`INVALID_WIDTH(WRITE_WIDTH_A))
_TECHMAP_FAIL_ <= GENERATE_ERROR;
if(`INVALID_WIDTH_WIDE(WRITE_WIDTH_B))
_TECHMAP_FAIL_ <= GENERATE_ERROR;
`undef INVALID_WIDTH
`undef INVALID_WIDTH_WIDE
if(READ_WIDTH_A > 36 && RAM_MODE != "SDP") begin
_TECHMAP_FAIL_ <= GENERATE_ERROR;
end
if(WRITE_WIDTH_B > 36 && RAM_MODE != "SDP") begin
_TECHMAP_FAIL_ <= GENERATE_ERROR;
end
if(WRITE_MODE_A != "WRITE_FIRST" && WRITE_MODE_A != "NO_CHANGE" && WRITE_MODE_A != "READ_FIRST")
_TECHMAP_FAIL_ <= GENERATE_ERROR;
if(WRITE_MODE_B != "WRITE_FIRST" && WRITE_MODE_B != "NO_CHANGE" && WRITE_MODE_B != "READ_FIRST")
_TECHMAP_FAIL_ <= GENERATE_ERROR;
end
localparam EFF_READ_WIDTH_A = (RAM_MODE == "SDP" && READ_WIDTH_A > 36) ? 36 : READ_WIDTH_A;
localparam EFF_READ_WIDTH_B = (RAM_MODE == "SDP" && READ_WIDTH_A > 36) ? 36 : READ_WIDTH_B;
localparam EFF_WRITE_WIDTH_A = (RAM_MODE == "SDP" && WRITE_WIDTH_B > 36) ? 36 : WRITE_WIDTH_A;
localparam EFF_WRITE_WIDTH_B = (RAM_MODE == "SDP" && WRITE_WIDTH_B > 36) ? 36 : WRITE_WIDTH_B;
wire REGCLKA;
wire REGCLKB;
assign REGCLKA = DOA_REG ? CLKARDCLK : 1'b1;
localparam ZINV_REGCLKARDRCLK = (DOA_REG && !IS_CLKARDCLK_INVERTED);
assign REGCLKB = DOB_REG ? CLKBWRCLK : 1'b1;
localparam ZINV_REGCLKB = (DOB_REG && !IS_CLKBWRCLK_INVERTED);
wire [7:0] WEBWE_WIDE;
wire [3:0] WEA_WIDE;
wire [3:0] DIPADIP_MAPPED;
wire [3:0] DIPBDIP_MAPPED;
wire [31:0] DIADI_MAPPED;
wire [31:0] DIBDI_MAPPED;
if(WRITE_WIDTH_A == 1) begin
assign DIADI_MAPPED[31:2] = DIADI[31:2];
assign DIADI_MAPPED[1] = DIADI[0];
assign DIADI_MAPPED[0] = DIADI[0];
end else begin
assign DIADI_MAPPED = DIADI;
end
if(WRITE_WIDTH_B == 1) begin
assign DIBDI_MAPPED[31:2] = DIBDI[31:2];
assign DIBDI_MAPPED[1] = DIBDI[0];
assign DIBDI_MAPPED[0] = DIBDI[0];
end else begin
assign DIBDI_MAPPED = DIBDI;
end
if(WRITE_WIDTH_A < 18) begin
assign WEA_WIDE = {4{WEA[0]}};
assign DIPADIP_MAPPED[3:2] = DIPADIP[3:2];
assign DIPADIP_MAPPED[1] = DIPADIP[0];
assign DIPADIP_MAPPED[0] = DIPADIP[0];
end else if(WRITE_WIDTH_A == 18) begin
assign WEA_WIDE[3] = WEA[1];
assign WEA_WIDE[1] = WEA[1];
assign WEA_WIDE[2] = WEA[0];
assign WEA_WIDE[0] = WEA[0];
assign DIPADIP_MAPPED = DIPADIP;
end else if(WRITE_WIDTH_A == 36) begin
assign WEA_WIDE = WEA;
assign DIPADIP_MAPPED = DIPADIP;
end
if(WRITE_WIDTH_B < 18) begin
assign WEBWE_WIDE[7:4] = 4'b0;
assign WEBWE_WIDE[3:0] = {4{WEBWE[0]}};
assign DIPBDIP_MAPPED[3:2] = DIPBDIP[3:2];
assign DIPBDIP_MAPPED[1] = DIPBDIP[0];
assign DIPBDIP_MAPPED[0] = DIPBDIP[0];
end else if(WRITE_WIDTH_B == 18) begin
assign WEBWE_WIDE[7:4] = 4'b0;
assign WEBWE_WIDE[3] = WEBWE[1];
assign WEBWE_WIDE[1] = WEBWE[1];
assign WEBWE_WIDE[2] = WEBWE[0];
assign WEBWE_WIDE[0] = WEBWE[0];
assign DIPBDIP_MAPPED = DIPBDIP;
end else if(WRITE_WIDTH_B == 36) begin
assign WEBWE_WIDE = WEBWE;
assign DIPBDIP_MAPPED = DIPBDIP;
end else if(WRITE_WIDTH_B == 72) begin
assign WEA_WIDE = 4'b0;
assign WEBWE_WIDE = WEBWE;
assign DIPBDIP_MAPPED = DIPBDIP;
end
RAMB36E1_PRIM #(
.IN_USE(READ_WIDTH_A != 0 || READ_WIDTH_B != 0 || WRITE_WIDTH_A != 0 || WRITE_WIDTH_B != 0),
.ZINIT_A(INIT_A ^ {36{1'b1}}),
.ZINIT_B(INIT_B ^ {36{1'b1}}),
.ZSRVAL_A(SRVAL_A ^ {36{1'b1}}),
.ZSRVAL_B(SRVAL_B ^ {36{1'b1}}),
`define INIT_PARAM_BLOCK_L(pre, n, d, upper) \
.``pre``_``n``0(every_other_bit_256({``pre``_``d``1, ``pre``_``d``0}, upper)), \
.``pre``_``n``1(every_other_bit_256({``pre``_``d``3, ``pre``_``d``2}, upper)), \
.``pre``_``n``2(every_other_bit_256({``pre``_``d``5, ``pre``_``d``4}, upper)), \
.``pre``_``n``3(every_other_bit_256({``pre``_``d``7, ``pre``_``d``6}, upper)), \
.``pre``_``n``4(every_other_bit_256({``pre``_``d``9, ``pre``_``d``8}, upper)), \
.``pre``_``n``5(every_other_bit_256({``pre``_``d``B, ``pre``_``d``A}, upper)), \
.``pre``_``n``6(every_other_bit_256({``pre``_``d``D, ``pre``_``d``C}, upper)), \
.``pre``_``n``7(every_other_bit_256({``pre``_``d``F, ``pre``_``d``E}, upper))
`define INIT_PARAM_BLOCK_H(pre, n, d, upper) \
.``pre``_``n``8(every_other_bit_256({``pre``_``d``1, ``pre``_``d``0}, upper)), \
.``pre``_``n``9(every_other_bit_256({``pre``_``d``3, ``pre``_``d``2}, upper)), \
.``pre``_``n``A(every_other_bit_256({``pre``_``d``5, ``pre``_``d``4}, upper)), \
.``pre``_``n``B(every_other_bit_256({``pre``_``d``7, ``pre``_``d``6}, upper)), \
.``pre``_``n``C(every_other_bit_256({``pre``_``d``9, ``pre``_``d``8}, upper)), \
.``pre``_``n``D(every_other_bit_256({``pre``_``d``B, ``pre``_``d``A}, upper)), \
.``pre``_``n``E(every_other_bit_256({``pre``_``d``D, ``pre``_``d``C}, upper)), \
.``pre``_``n``F(every_other_bit_256({``pre``_``d``F, ``pre``_``d``E}, upper))
`define INIT_PARAM_BLOCK(pre, n, lo, hi, upper) \
`INIT_PARAM_BLOCK_L(pre, n, lo, upper), \
`INIT_PARAM_BLOCK_H(pre, n, hi, upper)
`INIT_PARAM_BLOCK_L(INITP, 0, 0, 0),
`INIT_PARAM_BLOCK_H(INITP, 0, 0, 1),
`INIT_PARAM_BLOCK(INIT, 0, 0, 1, 0),
`INIT_PARAM_BLOCK(INIT, 1, 2, 3, 0),
`INIT_PARAM_BLOCK(INIT, 2, 4, 5, 0),
`INIT_PARAM_BLOCK(INIT, 3, 6, 7, 0),
`INIT_PARAM_BLOCK(INIT, 4, 0, 1, 1),
`INIT_PARAM_BLOCK(INIT, 5, 2, 3, 1),
`INIT_PARAM_BLOCK(INIT, 6, 4, 5, 1),
`INIT_PARAM_BLOCK(INIT, 7, 6, 7, 1),
`undef INIT_PARAM_BLOCK_L
`undef INIT_PARAM_BLOCK_H
`undef INIT_PARAM_BLOCK
.ZINV_CLKARDCLK(!IS_CLKARDCLK_INVERTED ^ INV_CLKARDCLK),
.ZINV_CLKBWRCLK(!IS_CLKBWRCLK_INVERTED ^ INV_CLKBWRCLK),
.ZINV_ENARDEN(!IS_ENARDEN_INVERTED),
.ZINV_ENBWREN(!IS_ENBWREN_INVERTED),
.ZINV_RSTRAMARSTRAM(!IS_RSTRAMARSTRAM_INVERTED ^ INV_RSTRAMARSTRAM),
.ZINV_RSTRAMB(!IS_RSTRAMB_INVERTED ^ INV_RSTRAMB),
.ZINV_RSTREGARSTREG(!IS_RSTREGARSTREG_INVERTED ^ INV_RSTREGARSTREG),
.ZINV_RSTREGB(!IS_RSTREGB_INVERTED ^ INV_RSTREGB),
.ZINV_REGCLKARDRCLK(ZINV_REGCLKARDRCLK),
.ZINV_REGCLKB(ZINV_REGCLKB),
.DOA_REG(DOA_REG),
.DOB_REG(DOB_REG),
`define WIDTH_PARAM(name) \
.``name``_1(EFF_``name`` == 2 || EFF_``name`` == 1 || EFF_``name`` == 0), \
.``name``_2(EFF_``name`` == 4), \
.``name``_4(EFF_``name`` == 9), \
.``name``_9(EFF_``name`` == 18), \
.``name``_18(EFF_``name`` == 36)
`WIDTH_PARAM(READ_WIDTH_A),
.SDP_READ_WIDTH_36(READ_WIDTH_A > 36),
`WIDTH_PARAM(READ_WIDTH_B),
`WIDTH_PARAM(WRITE_WIDTH_A),
`WIDTH_PARAM(WRITE_WIDTH_B),
`undef WIDTH_PARAM
.BRAM36_READ_WIDTH_A_1(EFF_READ_WIDTH_A == 1 || EFF_READ_WIDTH_A == 9),
.BRAM36_READ_WIDTH_B_1(EFF_READ_WIDTH_B == 1 || EFF_READ_WIDTH_B == 9),
.BRAM36_WRITE_WIDTH_A_1(EFF_WRITE_WIDTH_A == 1 || EFF_WRITE_WIDTH_A == 9),
.BRAM36_WRITE_WIDTH_B_1(EFF_WRITE_WIDTH_B == 1 || EFF_WRITE_WIDTH_B == 9),
.SDP_WRITE_WIDTH_36(WRITE_WIDTH_B > 36),
.WRITE_MODE_A_NO_CHANGE(WRITE_MODE_A == "NO_CHANGE" || (WRITE_MODE_A == "WRITE_FIRST" && RAM_MODE == "SDP")),
.WRITE_MODE_A_READ_FIRST(WRITE_MODE_A == "READ_FIRST"),
.WRITE_MODE_B_NO_CHANGE(WRITE_MODE_B == "NO_CHANGE" || (WRITE_MODE_B == "WRITE_FIRST" && RAM_MODE == "SDP")),
.WRITE_MODE_B_READ_FIRST(WRITE_MODE_B == "READ_FIRST"),
.RSTREG_PRIORITY_A_RSTREG(1'b1),
.RSTREG_PRIORITY_B_RSTREG(1'b1),
.RAM_EXTENSION_A_NONE_OR_UPPER(1'b1),
.RAM_EXTENSION_B_NONE_OR_UPPER(1'b1),
.RDADDR_COLLISION_HWCONFIG_DELAYED_WRITE(1'b1),
.ZALMOST_EMPTY_OFFSET(13'b1111111111111),
.ZALMOST_FULL_OFFSET(13'b1111111111111)
) _TECHMAP_REPLACE_ (
`define DUP(pre, in) .``pre``U(in), .``pre``L(in)
`DUP(CLKARDCLK, clkardclk),
`DUP(REGCLKARDRCLK, REGCLKA),
`DUP(CLKBWRCLK, clkbwrclk),
`DUP(REGCLKB, REGCLKB),
`DUP(ENARDEN, ENARDEN),
`DUP(ENBWREN, ENBWREN),
`DUP(REGCEAREGCE, REGCEAREGCE),
`DUP(REGCEB, REGCEB),
.RSTRAMARSTRAMU(rstramarstram),
.RSTRAMARSTRAMLRST(rstramarstram),
`DUP(RSTRAMB, rstramb),
`DUP(RSTREGARSTREG, rstregarstreg),
`DUP(RSTREGB, rstregb),
.ADDRARDADDRU(ADDRARDADDR),
.ADDRARDADDRL({1'b1, ADDRARDADDR}),
.ADDRBWRADDRU(ADDRBWRADDR),
.ADDRBWRADDRL({1'b1, ADDRBWRADDR}),
.DIADI(DIADI_MAPPED),
.DIBDI(DIBDI_MAPPED),
.DIPADIP(DIPADIP_MAPPED),
.DIPBDIP(DIPBDIP_MAPPED),
`DUP(WEA, WEA_WIDE),
`DUP(WEBWE, WEBWE_WIDE),
.DOADO(DOADO),
.DOBDO(DOBDO),
.DOPADOP(DOPADOP),
.DOPBDOP(DOPBDOP)
`undef DUP
);
endmodule // RAMB36E1
// ============================================================================
// SRLs
// The following three techmaps map SRLC32E, SRLC16E and SRL16E to their VPR
// counterparts.
//
// The initialization data for VPR SRLs need to have each bit duplicated and
// this is what these techmaps do. For now there is no support for CLK inversion
// as it is slice wide so the parameters is only there for compatibility.
//
// SRLC32E and SRLC16E are mapped directly to SRLC32E_VPR and SRLC16E_VPR
// respectively. Both of those primitives have Q31 (or Q15) outputs which
// correspond to the MC31 output of the physical bel. SRL16E does not
// provide that output hence it is mapped to SRLC16E with Q15 disconnected.
// It is then mapped to SRLC16E_VPR later on.
module SRLC32E (
output Q,
output Q31,
input [4:0] A,
input CE, CLK, D
);
parameter [31:0] INIT = 32'h00000000;
parameter [0:0] IS_CLK_INVERTED = 1'b0;
// Duplicate bits of the init parameter to match the actual INIT data
// representation.
function [63:0] duplicate_bits;
input [31:0] bits;
integer i;
begin
for (i=0; i<32; i=i+1) begin
duplicate_bits[2*i+0] = bits[i];
duplicate_bits[2*i+1] = bits[i];
end
end
endfunction
localparam [63:0] INIT_VPR = duplicate_bits(INIT);
// Substitute
SRLC32E_VPR #
(
.INIT(INIT_VPR)
)
_TECHMAP_REPLACE_
(
.CLK(CLK),
.CE(CE),
.A(A),
.D(D),
.Q(Q),
.Q31(Q31)
);
endmodule
module SRLC16E (
output Q, Q15,
input A0, A1, A2, A3,
input CE, CLK, D
);
parameter [15:0] INIT = 16'h0000;
parameter [ 0:0] IS_CLK_INVERTED = 1'b0;
// Duplicate bits of the init parameter to match the actual INIT data
// representation.
function [31:0] duplicate_bits;
input [15:0] bits;
integer i;
begin
for (i=0; i<15; i=i+1) begin
duplicate_bits[2*i+0] = bits[i];
duplicate_bits[2*i+1] = bits[i];
end
end
endfunction
localparam [31:0] INIT_VPR = duplicate_bits(INIT);
// Substitute
SRLC16E_VPR #
(
.INIT(INIT_VPR)
)
_TECHMAP_REPLACE_
(
.CLK(CLK),
.CE(CE),
.A0(A0),
.A1(A1),
.A2(A2),
.A3(A3),
.D(D),
.Q(Q),
.Q15(Q15)
);
endmodule
module SRL16E (
output Q,
input A0, A1, A2, A3,
input CE, CLK, D
);
parameter [15:0] INIT = 16'h0000;
parameter [ 0:0] IS_CLK_INVERTED = 1'b0;
// Substitute with Q15 disconnected.
SRLC16E #
(
.INIT(INIT),
.IS_CLK_INVERTED(IS_CLK_INVERTED)
)
_TECHMAP_REPLACE_
(
.CLK(CLK),
.CE(CE),
.A0(A0),
.A1(A1),
.A2(A2),
.A3(A3),
.D(D),
.Q(Q),
.Q15()
);
endmodule
// ============================================================================
// IO
module IBUF (
input I,
output O
);
parameter IOSTANDARD = "LVCMOS33";
parameter IBUF_LOW_PWR = 0; // TODO: Map this to fasm
parameter IN_TERM = "NONE"; // Not supported by Vivado ?
parameter PULLTYPE = "NONE"; // Not supported by Vivado ?
parameter IO_LOC_PAIRS = "NONE";
IBUF_VPR # (
.LVCMOS12_LVCMOS15_LVCMOS18_IN(
(IOSTANDARD == "LVCMOS12") ||
(IOSTANDARD == "LVCMOS15") ||
(IOSTANDARD == "LVCMOS18")
),
.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SLEW_FAST(
(IOSTANDARD == "LVCMOS12") ||
(IOSTANDARD == "LVCMOS15") ||
(IOSTANDARD == "LVCMOS18") ||
(IOSTANDARD == "LVCMOS25") ||
(IOSTANDARD == "LVCMOS33") ||
(IOSTANDARD == "LVTTL") ||
(IOSTANDARD == "SSTL135") ||
(IOSTANDARD == "SSTL15")
),
.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVDS_25_LVTTL_SSTL135_SSTL15_TMDS_33_IN_ONLY(
(IOSTANDARD == "LVCMOS12") ||
(IOSTANDARD == "LVCMOS15") ||
(IOSTANDARD == "LVCMOS18") ||
(IOSTANDARD == "LVCMOS25") ||
(IOSTANDARD == "LVCMOS33") ||
(IOSTANDARD == "LVTTL") ||
(IOSTANDARD == "SSTL135") ||
(IOSTANDARD == "SSTL15")
),
.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15_STEPDOWN(
(IOSTANDARD == "LVCMOS12") ||
(IOSTANDARD == "LVCMOS15") ||
(IOSTANDARD == "LVCMOS18") ||
(IOSTANDARD == "SSTL135") ||
(IOSTANDARD == "SSTL15")
),
.LVCMOS25_LVCMOS33_LVTTL_IN(
(IOSTANDARD == "LVCMOS25") ||
(IOSTANDARD == "LVCMOS33") ||
(IOSTANDARD == "LVTTL")
),
.SSTL135_SSTL15_IN(
(IOSTANDARD == "SSTL135") ||
(IOSTANDARD == "SSTL15")
),
.IN_TERM_UNTUNED_SPLIT_40 (IN_TERM == "UNTUNED_SPLIT_40"),
.IN_TERM_UNTUNED_SPLIT_50 (IN_TERM == "UNTUNED_SPLIT_50"),
.IN_TERM_UNTUNED_SPLIT_60 (IN_TERM == "UNTUNED_SPLIT_60"),
.IBUF_LOW_PWR(IBUF_LOW_PWR),
.PULLTYPE_PULLUP(PULLTYPE == "PULLUP"),
.PULLTYPE_PULLDOWN(PULLTYPE == "PULLDOWN"),
.PULLTYPE_NONE(PULLTYPE == "NONE"),
.PULLTYPE_KEEPER(PULLTYPE == "KEEPER"),
.PULLTYPE(PULLTYPE),
.IOSTANDARD(IOSTANDARD),
.IO_LOC_PAIRS(IO_LOC_PAIRS)
) _TECHMAP_REPLACE_ (
.I(I),
.O(O)
);
endmodule
module OBUF (
input I,
output O
);
parameter IOSTANDARD = "LVCMOS33";
parameter DRIVE = 12;
parameter SLEW = "SLOW";
parameter PULLTYPE = "NONE"; // Not supported by Vivado ?
parameter IO_LOC_PAIRS = "NONE";
OBUFT # (
.PULLTYPE(PULLTYPE),
.IOSTANDARD(IOSTANDARD),
.DRIVE(DRIVE),
.SLEW(SLEW),
.IO_LOC_PAIRS(IO_LOC_PAIRS)
) _TECHMAP_REPLACE_ (
.I(I),
.T(1'b0),
.O(O)
);
endmodule
module OBUFT (
input I,
input T,
output O
);
parameter IOSTANDARD = "LVCMOS33";
parameter DRIVE = 12;
parameter SLEW = "SLOW";
parameter PULLTYPE = "NONE"; // Not supported by Vivado ?
parameter IO_LOC_PAIRS = "NONE";
parameter _TECHMAP_CONSTMSK_T_ = 1'bx;
parameter _TECHMAP_CONSTVAL_T_ = 1'bx;
wire t;
// When T=1'b0 Vivado routes it to const1 and enables an inverter in OLOGIC.
// To mimic this behavior insert a specialized inverter that will go to the
// OLOGIC site.
generate if (_TECHMAP_CONSTMSK_T_ == 1'b1 && _TECHMAP_CONSTVAL_T_ == 1'b0) begin
T_INV t_inv (
.TI (1'b1),
.TO (t)
);
end else begin
assign t = T;
end endgenerate
OBUFT_VPR # (
.LVCMOS12_DRIVE_I12(
(IOSTANDARD == "LVCMOS12" && DRIVE == 12)
),
.LVCMOS12_DRIVE_I4(
(IOSTANDARD == "LVCMOS12" && DRIVE == 4)
),
.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SLEW_FAST(
(IOSTANDARD == "LVCMOS12" && SLEW == "FAST") ||
(IOSTANDARD == "LVCMOS15" && SLEW == "FAST") ||
(IOSTANDARD == "LVCMOS18" && SLEW == "FAST") ||
(IOSTANDARD == "LVCMOS25" && SLEW == "FAST") ||
(IOSTANDARD == "LVCMOS33" && SLEW == "FAST") ||
(IOSTANDARD == "LVTTL" && SLEW == "FAST")
),
.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SSTL135_SSTL15_SLEW_SLOW(
(IOSTANDARD == "LVCMOS12" && SLEW == "SLOW") ||
(IOSTANDARD == "LVCMOS15" && SLEW == "SLOW") ||
(IOSTANDARD == "LVCMOS18" && SLEW == "SLOW") ||
(IOSTANDARD == "LVCMOS25" && SLEW == "SLOW") ||
(IOSTANDARD == "LVCMOS33" && SLEW == "SLOW") ||
(IOSTANDARD == "LVTTL" && SLEW == "SLOW") ||
(IOSTANDARD == "SSTL135" && SLEW == "SLOW") ||
(IOSTANDARD == "SSTL15" && SLEW == "SLOW")
),
.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15_STEPDOWN(
(IOSTANDARD == "LVCMOS12") ||
(IOSTANDARD == "LVCMOS15") ||
(IOSTANDARD == "LVCMOS18") ||
(IOSTANDARD == "SSTL135") ||
(IOSTANDARD == "SSTL15")
),
.LVCMOS12_LVCMOS25_DRIVE_I8(
(IOSTANDARD == "LVCMOS12" && DRIVE == 8) ||
(IOSTANDARD == "LVCMOS25" && DRIVE == 8)
),
.LVCMOS15_DRIVE_I12(
(IOSTANDARD == "LVCMOS15" && DRIVE == 12)
),
.LVCMOS15_DRIVE_I8(
(IOSTANDARD == "LVCMOS15" && DRIVE == 8)
),
.LVCMOS15_LVCMOS18_LVCMOS25_DRIVE_I4(
(IOSTANDARD == "LVCMOS15" && DRIVE == 4) ||
(IOSTANDARD == "LVCMOS18" && DRIVE == 4) ||
(IOSTANDARD == "LVCMOS25" && DRIVE == 4)
),
.LVCMOS15_SSTL15_DRIVE_I16_I_FIXED(
(IOSTANDARD == "LVCMOS15" && DRIVE == 16) ||
(IOSTANDARD == "SSTL15")
),
.LVCMOS18_DRIVE_I12_I8(
(IOSTANDARD == "LVCMOS18" && DRIVE == 12) ||
(IOSTANDARD == "LVCMOS18" && DRIVE == 8)
),
.LVCMOS18_DRIVE_I16(
(IOSTANDARD == "LVCMOS18" && DRIVE == 16)
),
.LVCMOS18_DRIVE_I24(
(IOSTANDARD == "LVCMOS18" && DRIVE == 24)
),
.LVCMOS25_DRIVE_I12(
(IOSTANDARD == "LVCMOS25" && DRIVE == 12)
),
.LVCMOS25_DRIVE_I16(
(IOSTANDARD == "LVCMOS25" && DRIVE == 16)
),
.LVCMOS33_DRIVE_I16(
(IOSTANDARD == "LVCMOS33" && DRIVE == 16)
),
.LVCMOS33_LVTTL_DRIVE_I12_I16(
(IOSTANDARD == "LVCMOS33" && DRIVE == 12) ||
(IOSTANDARD == "LVTTL" && DRIVE == 16)
),
.LVCMOS33_LVTTL_DRIVE_I12_I8(
(IOSTANDARD == "LVCMOS33" && DRIVE == 8) ||
(IOSTANDARD == "LVTTL" && DRIVE == 12) ||
(IOSTANDARD == "LVTTL" && DRIVE == 8)
),
.LVCMOS33_LVTTL_DRIVE_I4(
(IOSTANDARD == "LVCMOS33" && DRIVE == 4) ||
(IOSTANDARD == "LVTTL" && DRIVE == 4)
),
.LVTTL_DRIVE_I24(
(IOSTANDARD == "LVTTL" && DRIVE == 24)
),
.SSTL135_DRIVE_I_FIXED(
(IOSTANDARD == "SSTL135")
),
.SSTL135_SSTL15_SLEW_FAST(
(IOSTANDARD == "SSTL135" && SLEW == "FAST") ||
(IOSTANDARD == "SSTL15" && SLEW == "FAST")
),
.PULLTYPE_PULLUP(PULLTYPE == "PULLUP"),
.PULLTYPE_PULLDOWN(PULLTYPE == "PULLDOWN"),
.PULLTYPE_NONE(PULLTYPE == "NONE"),
.PULLTYPE_KEEPER(PULLTYPE == "KEEPER"),
.PULLTYPE(PULLTYPE),
.IOSTANDARD(IOSTANDARD),
.DRIVE(DRIVE),
.SLEW(SLEW),
.IO_LOC_PAIRS(IO_LOC_PAIRS)
) obuft (
.I(I),
.T(t),
.O(O)
);
endmodule
module IOBUF (
input I,
input T,
output O,
inout IO
);
parameter IOSTANDARD = "LVCMOS33";
parameter DRIVE = 12;
parameter SLEW = "SLOW";
parameter IBUF_LOW_PWR = 0; // TODO: Map this to fasm
parameter IN_TERM = "NONE"; // Not supported by Vivado ?
parameter PULLTYPE = "NONE"; // Not supported by Vivado ?
parameter IO_LOC_PAIRS = "NONE";
IOBUF_VPR # (
.LVCMOS12_DRIVE_I12(
(IOSTANDARD == "LVCMOS12" && DRIVE == 12)
),
.LVCMOS12_DRIVE_I4(
(IOSTANDARD == "LVCMOS12" && DRIVE == 4)
),
.LVCMOS12_LVCMOS15_LVCMOS18_IN(
(IOSTANDARD == "LVCMOS12") ||
(IOSTANDARD == "LVCMOS15") ||
(IOSTANDARD == "LVCMOS18")
),
.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SLEW_FAST(
(IOSTANDARD == "LVCMOS12" && SLEW == "FAST") ||
(IOSTANDARD == "LVCMOS15" && SLEW == "FAST") ||
(IOSTANDARD == "LVCMOS18" && SLEW == "FAST") ||
(IOSTANDARD == "LVCMOS25" && SLEW == "FAST") ||
(IOSTANDARD == "LVCMOS33" && SLEW == "FAST") ||
(IOSTANDARD == "LVTTL" && SLEW == "FAST")
),
.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SSTL135_SSTL15_SLEW_SLOW(
(IOSTANDARD == "LVCMOS12" && SLEW == "SLOW") ||
(IOSTANDARD == "LVCMOS15" && SLEW == "SLOW") ||
(IOSTANDARD == "LVCMOS18" && SLEW == "SLOW") ||
(IOSTANDARD == "LVCMOS25" && SLEW == "SLOW") ||
(IOSTANDARD == "LVCMOS33" && SLEW == "SLOW") ||
(IOSTANDARD == "LVTTL" && SLEW == "SLOW") ||
(IOSTANDARD == "SSTL135" && SLEW == "SLOW") ||
(IOSTANDARD == "SSTL15" && SLEW == "SLOW")
),
.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15_STEPDOWN(
(IOSTANDARD == "LVCMOS12") ||
(IOSTANDARD == "LVCMOS15") ||
(IOSTANDARD == "LVCMOS18") ||
(IOSTANDARD == "SSTL135") ||
(IOSTANDARD == "SSTL15")
),
.LVCMOS12_LVCMOS25_DRIVE_I8(
(IOSTANDARD == "LVCMOS12" && DRIVE == 8) ||
(IOSTANDARD == "LVCMOS25" && DRIVE == 8)
),
.LVCMOS15_DRIVE_I12(
(IOSTANDARD == "LVCMOS15" && DRIVE == 12)
),
.LVCMOS15_DRIVE_I8(
(IOSTANDARD == "LVCMOS15" && DRIVE == 8)
),
.LVCMOS15_LVCMOS18_LVCMOS25_DRIVE_I4(
(IOSTANDARD == "LVCMOS15" && DRIVE == 4) ||
(IOSTANDARD == "LVCMOS18" && DRIVE == 4) ||
(IOSTANDARD == "LVCMOS25" && DRIVE == 4)
),
.LVCMOS15_SSTL15_DRIVE_I16_I_FIXED(
(IOSTANDARD == "LVCMOS15" && DRIVE == 16) ||
(IOSTANDARD == "SSTL15")
),
.LVCMOS18_DRIVE_I12_I8(
(IOSTANDARD == "LVCMOS18" && DRIVE == 12) ||
(IOSTANDARD == "LVCMOS18" && DRIVE == 8)
),
.LVCMOS18_DRIVE_I16(
(IOSTANDARD == "LVCMOS18" && DRIVE == 16)
),
.LVCMOS18_DRIVE_I24(
(IOSTANDARD == "LVCMOS18" && DRIVE == 24)
),
.LVCMOS25_DRIVE_I12(
(IOSTANDARD == "LVCMOS25" && DRIVE == 12)
),
.LVCMOS25_DRIVE_I16(
(IOSTANDARD == "LVCMOS25" && DRIVE == 16)
),
.LVCMOS25_LVCMOS33_LVTTL_IN(
(IOSTANDARD == "LVCMOS25") ||
(IOSTANDARD == "LVCMOS33") ||
(IOSTANDARD == "LVTTL")
),
.LVCMOS33_DRIVE_I16(
(IOSTANDARD == "LVCMOS33" && DRIVE == 16)
),
.LVCMOS33_LVTTL_DRIVE_I12_I16(
(IOSTANDARD == "LVCMOS33" && DRIVE == 12) ||
(IOSTANDARD == "LVTTL" && DRIVE == 16)
),
.LVCMOS33_LVTTL_DRIVE_I12_I8(
(IOSTANDARD == "LVCMOS33" && DRIVE == 8) ||
(IOSTANDARD == "LVTTL" && DRIVE == 12) ||
(IOSTANDARD == "LVTTL" && DRIVE == 8)
),
.LVCMOS33_LVTTL_DRIVE_I4(
(IOSTANDARD == "LVCMOS33" && DRIVE == 4) ||
(IOSTANDARD == "LVTTL" && DRIVE == 4)
),
.LVTTL_DRIVE_I24(
(IOSTANDARD == "LVTTL" && DRIVE == 24)
),
.SSTL135_DRIVE_I_FIXED(
(IOSTANDARD == "SSTL135")
),
.SSTL135_SSTL15_IN(
(IOSTANDARD == "SSTL135") ||
(IOSTANDARD == "SSTL15")
),
.SSTL135_SSTL15_SLEW_FAST(
(IOSTANDARD == "SSTL135" && SLEW == "FAST") ||
(IOSTANDARD == "SSTL15" && SLEW == "FAST")
),
.IN_TERM_UNTUNED_SPLIT_40 (IN_TERM == "UNTUNED_SPLIT_40"),
.IN_TERM_UNTUNED_SPLIT_50 (IN_TERM == "UNTUNED_SPLIT_50"),
.IN_TERM_UNTUNED_SPLIT_60 (IN_TERM == "UNTUNED_SPLIT_60"),
.IBUF_LOW_PWR(IBUF_LOW_PWR),
.PULLTYPE_PULLUP(PULLTYPE == "PULLUP"),
.PULLTYPE_PULLDOWN(PULLTYPE == "PULLDOWN"),
.PULLTYPE_NONE(PULLTYPE == "NONE"),
.PULLTYPE_KEEPER(PULLTYPE == "KEEPER"),
.PULLTYPE(PULLTYPE),
.IOSTANDARD(IOSTANDARD),
.DRIVE(DRIVE),
.SLEW(SLEW),
.IO_LOC_PAIRS(IO_LOC_PAIRS)
) _TECHMAP_REPLACE_ (
.I(I),
.T(T),
.O(O),
.IOPAD_$inp(IO),
.IOPAD_$out(IO)
);
endmodule
module OBUFTDS (
input I,
input T,
output O,
output OB
);
parameter IOSTANDARD = "DIFF_SSTL135"; // TODO: Is this the default ?
parameter SLEW = "FAST";
parameter IN_TERM = "NONE"; // Not supported by Vivado ?
parameter PULLTYPE = "NONE"; // Not supported by Vivado ?
parameter IO_LOC_PAIRS = "NONE";
parameter HAS_OSERDES = 0; // Set inside yosys/synth.tcl
parameter _TECHMAP_CONSTMSK_T_ = 1'bx;
parameter _TECHMAP_CONSTVAL_T_ = 1'bx;
wire t;
// When T=1'b0 Vivado routes it to const1 and enables an inverter in OLOGIC.
// BUT, that happens only when there is an OSERDES with "TQ.BUF" mode.
//
// Presence of an OSERDES is detected in the sytnesis script and the parameter
// HAS_OSERDES is set.
generate if (_TECHMAP_CONSTMSK_T_ == 1'b1 && _TECHMAP_CONSTVAL_T_ == 1'b0 && HAS_OSERDES == 1) begin
T_INV t_inv (
.TI (1'b1),
.TO (t)
);
end else begin
assign t = T;
end endgenerate
wire complementary;
OBUFTDS_M_VPR # (
.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SSTL135_SSTL15_SLEW_SLOW(
(IOSTANDARD == "DIFF_SSTL135" && SLEW == "SLOW") ||
(IOSTANDARD == "DIFF_SSTL15" && SLEW == "SLOW")
),
.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15_STEPDOWN(
(IOSTANDARD == "DIFF_SSTL135") ||
(IOSTANDARD == "DIFF_SSTL15")
),
.LVCMOS15_SSTL15_DRIVE_I16_I_FIXED(
(IOSTANDARD == "DIFF_SSTL15")
),
.LVDS_25_DRIVE_I_FIXED(
(IOSTANDARD == "LVDS_25")
),
.LVDS_25_OUT(
(IOSTANDARD == "LVDS_25")
),
.SSTL135_DRIVE_I_FIXED(
(IOSTANDARD == "DIFF_SSTL135")
),
.SSTL135_SSTL15_SLEW_FAST(
(IOSTANDARD == "DIFF_SSTL135" && SLEW == "FAST") ||
(IOSTANDARD == "DIFF_SSTL15" && SLEW == "FAST")
),
.TMDS_33_DRIVE_I_FIXED(
(IOSTANDARD == "TMDS_33")
),
.TMDS_33_OUT(
(IOSTANDARD == "TMDS_33")
),
.IN_TERM_UNTUNED_SPLIT_40 (IN_TERM == "UNTUNED_SPLIT_40"),
.IN_TERM_UNTUNED_SPLIT_50 (IN_TERM == "UNTUNED_SPLIT_50"),
.IN_TERM_UNTUNED_SPLIT_60 (IN_TERM == "UNTUNED_SPLIT_60"),
.PULLTYPE_PULLUP(PULLTYPE == "PULLUP"),
.PULLTYPE_PULLDOWN(PULLTYPE == "PULLDOWN"),
.PULLTYPE_NONE(PULLTYPE == "NONE"),
.PULLTYPE_KEEPER(PULLTYPE == "KEEPER"),
.PULLTYPE(PULLTYPE),
.IOSTANDARD(IOSTANDARD),
.SLEW(SLEW),
.IO_LOC_PAIRS(IO_LOC_PAIRS)
) obuftds_m (
.I(I),
.T(t),
.O(O),
.OB(complementary)
);
OBUFTDS_S_VPR # (
.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SSTL135_SSTL15_SLEW_SLOW(
(IOSTANDARD == "DIFF_SSTL135" && SLEW == "SLOW") ||
(IOSTANDARD == "DIFF_SSTL15" && SLEW == "SLOW")
),
.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15_STEPDOWN(
(IOSTANDARD == "DIFF_SSTL135") ||
(IOSTANDARD == "DIFF_SSTL15")
),
.LVCMOS15_SSTL15_DRIVE_I16_I_FIXED(
(IOSTANDARD == "DIFF_SSTL15")
),
.SSTL135_DRIVE_I_FIXED(
(IOSTANDARD == "DIFF_SSTL135")
),
.SSTL135_SSTL15_SLEW_FAST(
(IOSTANDARD == "DIFF_SSTL135" && SLEW == "FAST") ||
(IOSTANDARD == "DIFF_SSTL15" && SLEW == "FAST")
),
.IN_TERM_UNTUNED_SPLIT_40 (IN_TERM == "UNTUNED_SPLIT_40"),
.IN_TERM_UNTUNED_SPLIT_50 (IN_TERM == "UNTUNED_SPLIT_50"),
.IN_TERM_UNTUNED_SPLIT_60 (IN_TERM == "UNTUNED_SPLIT_60"),
.PULLTYPE_PULLUP(PULLTYPE == "PULLUP"),
.PULLTYPE_PULLDOWN(PULLTYPE == "PULLDOWN"),
.PULLTYPE_NONE(PULLTYPE == "NONE"),
.PULLTYPE_KEEPER(PULLTYPE == "KEEPER"),
.PULLTYPE(PULLTYPE),
.IOSTANDARD(IOSTANDARD),
.SLEW(SLEW),
.IO_LOC_PAIRS(IO_LOC_PAIRS)
) obuftds_s (
.IB(complementary),
.OB(OB)
);
endmodule
module OBUFDS (
input I,
output O,
output OB
);
parameter IOSTANDARD = "DIFF_SSTL135"; // TODO: Is this the default ?
parameter SLEW = "FAST";
parameter PULLTYPE = "NONE"; // Not supported by Vivado ?
parameter IO_LOC_PAIRS = "NONE";
parameter HAS_OSERDES = 0; // Set inside yosys/synth.tcl
OBUFTDS # (
.PULLTYPE(PULLTYPE),
.IOSTANDARD(IOSTANDARD),
.SLEW(SLEW),
.HAS_OSERDES(HAS_OSERDES),
.IO_LOC_PAIRS(IO_LOC_PAIRS)
) _TECHMAP_REPLACE_ (
.I(I),
.T(1'b0),
.O(O),
.OB(OB)
);
endmodule
module IOBUFDS (
input I,
input T,
output O,
inout IO,
inout IOB
);
parameter IOSTANDARD = "DIFF_SSTL135"; // TODO: Is this the default ?
parameter SLEW = "SLOW";
parameter IN_TERM = "NONE"; // Not supported by Vivado ?
parameter PULLTYPE = "NONE"; // Not supported by Vivado ?
parameter IO_LOC_PAIRS = "NONE";
wire complementary_o;
wire complementary_i;
IOBUFDS_M_VPR # (
.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SSTL135_SSTL15_SLEW_SLOW(
(IOSTANDARD == "DIFF_SSTL135" && SLEW == "SLOW") ||
(IOSTANDARD == "DIFF_SSTL15" && SLEW == "SLOW")
),
.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15_STEPDOWN(
(IOSTANDARD == "DIFF_SSTL135") ||
(IOSTANDARD == "DIFF_SSTL15")
),
.LVCMOS15_SSTL15_DRIVE_I16_I_FIXED(
(IOSTANDARD == "DIFF_SSTL15")
),
.LVDS_25_DRIVE_I_FIXED(
(IOSTANDARD == "LVDS_25")
),
.LVDS_25_OUT(
(IOSTANDARD == "LVDS_25")
),
.SSTL135_DRIVE_I_FIXED(
(IOSTANDARD == "DIFF_SSTL135")
),
.LVDS_25_SSTL135_SSTL15_IN_DIFF(
(IOSTANDARD == "DIFF_SSTL135") ||
(IOSTANDARD == "DIFF_SSTL15") ||
(IOSTANDARD == "LVDS_25")
),
.SSTL135_SSTL15_SLEW_FAST(
(IOSTANDARD == "DIFF_SSTL135" && SLEW == "FAST") ||
(IOSTANDARD == "DIFF_SSTL15" && SLEW == "FAST")
),
.TMDS_33_IN_DIFF(
(IOSTANDARD == "TMDS_33")
),
.TMDS_33_DRIVE_I_FIXED(
(IOSTANDARD == "TMDS_33")
),
.TMDS_33_OUT(
(IOSTANDARD == "TMDS_33")
),
.IN_TERM_UNTUNED_SPLIT_40 (IN_TERM == "UNTUNED_SPLIT_40"),
.IN_TERM_UNTUNED_SPLIT_50 (IN_TERM == "UNTUNED_SPLIT_50"),
.IN_TERM_UNTUNED_SPLIT_60 (IN_TERM == "UNTUNED_SPLIT_60"),
.PULLTYPE_PULLUP(PULLTYPE == "PULLUP"),
.PULLTYPE_PULLDOWN(PULLTYPE == "PULLDOWN"),
.PULLTYPE_NONE(PULLTYPE == "NONE"),
.PULLTYPE_KEEPER(PULLTYPE == "KEEPER"),
.PULLTYPE(PULLTYPE),
.IOSTANDARD(IOSTANDARD),
.SLEW(SLEW),
.IO_LOC_PAIRS(IO_LOC_PAIRS)
) iobufds_m (
.I(I),
.T(T),
.O(O),
.IOPAD_$inp(IO),
.IOPAD_$out(IO),
.IB(complementary_i),
.OB(complementary_o)
);
IOBUFDS_S_VPR # (
.LVCMOS12_LVCMOS15_LVCMOS18_LVCMOS25_LVCMOS33_LVTTL_SSTL135_SSTL15_SLEW_SLOW(
(IOSTANDARD == "DIFF_SSTL135" && SLEW == "SLOW") ||
(IOSTANDARD == "DIFF_SSTL15" && SLEW == "SLOW")
),
.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15_STEPDOWN(
(IOSTANDARD == "DIFF_SSTL135") ||
(IOSTANDARD == "DIFF_SSTL15")
),
.LVCMOS15_SSTL15_DRIVE_I16_I_FIXED(
(IOSTANDARD == "DIFF_SSTL15")
),
.SSTL135_DRIVE_I_FIXED(
(IOSTANDARD == "DIFF_SSTL135")
),
.LVDS_25_SSTL135_SSTL15_IN_DIFF(
(IOSTANDARD == "DIFF_SSTL135") ||
(IOSTANDARD == "DIFF_SSTL15") ||
(IOSTANDARD == "LVDS_25")
),
.SSTL135_SSTL15_SLEW_FAST(
(IOSTANDARD == "DIFF_SSTL135" && SLEW == "FAST") ||
(IOSTANDARD == "DIFF_SSTL15" && SLEW == "FAST")
),
.IN_TERM_UNTUNED_SPLIT_40 (IN_TERM == "UNTUNED_SPLIT_40"),
.IN_TERM_UNTUNED_SPLIT_50 (IN_TERM == "UNTUNED_SPLIT_50"),
.IN_TERM_UNTUNED_SPLIT_60 (IN_TERM == "UNTUNED_SPLIT_60"),
.PULLTYPE_PULLUP(PULLTYPE == "PULLUP"),
.PULLTYPE_PULLDOWN(PULLTYPE == "PULLDOWN"),
.PULLTYPE_NONE(PULLTYPE == "NONE"),
.PULLTYPE_KEEPER(PULLTYPE == "KEEPER"),
.PULLTYPE(PULLTYPE),
.IOSTANDARD(IOSTANDARD),
.SLEW(SLEW),
.IO_LOC_PAIRS(IO_LOC_PAIRS)
) iobufds_s (
.IB(complementary_o),
.OB(complementary_i),
.IOPAD_$inp(IOB),
.IOPAD_$out(IOB)
);
endmodule
// ============================================================================
// I/OSERDES
module OSERDESE2 (
input CLK,
input CLKDIV,
input D1,
input D2,
input D3,
input D4,
input D5,
input D6,
input D7,
input D8,
input OCE,
input RST,
input T1,
input T2,
input T3,
input T4,
input TCE,
output OFB,
output OQ,
output TFB,
output TQ
);
parameter DATA_RATE_OQ = "DDR";
parameter DATA_RATE_TQ = "DDR";
parameter DATA_WIDTH = 4;
parameter SERDES_MODE = "MASTER";
parameter TRISTATE_WIDTH = 4;
parameter IO_LOC_PAIRS = "NONE";
if (DATA_RATE_OQ == "DDR" &&
!(DATA_WIDTH == 4 || DATA_WIDTH == 6 || DATA_WIDTH == 8)) begin
wire _TECHMAP_FAIL_;
end
if (DATA_RATE_OQ == "SDR" &&
!(DATA_WIDTH >= 2 || DATA_WIDTH <= 8)) begin
wire _TECHMAP_FAIL_;
end
if ((DATA_RATE_TQ == "SDR" || DATA_RATE_TQ == "BUF") &&
TRISTATE_WIDTH != 1) begin
wire _TECHMAP_FAIL_;
end
if (DATA_RATE_OQ == "SDR" && DATA_RATE_TQ == "DDR") begin
wire _TECHMAP_FAIL_;
end
if (TRISTATE_WIDTH != 1 && TRISTATE_WIDTH != 4) begin
wire _TECHMAP_FAIL_;
end
// Inverter parameters
parameter [0:0] IS_D1_INVERTED = 1'b0;
parameter [0:0] IS_D2_INVERTED = 1'b0;
parameter [0:0] IS_D3_INVERTED = 1'b0;
parameter [0:0] IS_D4_INVERTED = 1'b0;
parameter [0:0] IS_D5_INVERTED = 1'b0;
parameter [0:0] IS_D6_INVERTED = 1'b0;
parameter [0:0] IS_D7_INVERTED = 1'b0;
parameter [0:0] IS_D8_INVERTED = 1'b0;
parameter [0:0] IS_CLKDIV_INVERTED = 1'b0;
parameter [0:0] IS_CLK_INVERTED = 1'b0;
parameter [0:0] IS_T1_INVERTED = 1'b0;
parameter [0:0] IS_T2_INVERTED = 1'b0;
parameter [0:0] IS_T3_INVERTED = 1'b0;
parameter [0:0] IS_T4_INVERTED = 1'b0;
localparam [0:0] INIT_OQ = 1'b0;
localparam [0:0] INIT_TQ = 1'b0;
localparam [0:0] SRVAL_OQ = 1'b0;
localparam [0:0] SRVAL_TQ = 1'b0;
parameter _TECHMAP_CONSTMSK_D1_ = 0;
parameter _TECHMAP_CONSTVAL_D1_ = 0;
parameter _TECHMAP_CONSTMSK_D2_ = 0;
parameter _TECHMAP_CONSTVAL_D2_ = 0;
parameter _TECHMAP_CONSTMSK_D3_ = 0;
parameter _TECHMAP_CONSTVAL_D3_ = 0;
parameter _TECHMAP_CONSTMSK_D4_ = 0;
parameter _TECHMAP_CONSTVAL_D4_ = 0;
parameter _TECHMAP_CONSTMSK_D5_ = 0;
parameter _TECHMAP_CONSTVAL_D5_ = 0;
parameter _TECHMAP_CONSTMSK_D6_ = 0;
parameter _TECHMAP_CONSTVAL_D6_ = 0;
parameter _TECHMAP_CONSTMSK_D7_ = 0;
parameter _TECHMAP_CONSTVAL_D7_ = 0;
parameter _TECHMAP_CONSTMSK_D8_ = 0;
parameter _TECHMAP_CONSTVAL_D8_ = 0;
parameter _TECHMAP_CONSTMSK_TQ_ = 1'bx;
parameter _TECHMAP_CONSTVAL_TQ_ = 1'bx;
localparam INV_D1 = (_TECHMAP_CONSTMSK_D1_ == 1) ? !_TECHMAP_CONSTVAL_D1_ ^ IS_D1_INVERTED :
(_TECHMAP_CONSTVAL_D1_ === 0) ? ~IS_D1_INVERTED : IS_D1_INVERTED;
wire d1 = (_TECHMAP_CONSTMSK_D1_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_D1_ === 0) ? 1'b1 : D1;
localparam INV_D2 = (_TECHMAP_CONSTMSK_D2_ == 1) ? !_TECHMAP_CONSTVAL_D2_ ^ IS_D2_INVERTED :
(_TECHMAP_CONSTVAL_D2_ === 0) ? ~IS_D2_INVERTED : IS_D2_INVERTED;
wire d2 = (_TECHMAP_CONSTMSK_D2_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_D2_ === 0) ? 1'b1 : D2;
localparam INV_D3 = (_TECHMAP_CONSTMSK_D3_ == 1) ? !_TECHMAP_CONSTVAL_D3_ ^ IS_D3_INVERTED :
(_TECHMAP_CONSTVAL_D3_ === 0) ? ~IS_D3_INVERTED : IS_D3_INVERTED;
wire d3 = (_TECHMAP_CONSTMSK_D3_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_D3_ === 0) ? 1'b1 : D3;
localparam INV_D4 = (_TECHMAP_CONSTMSK_D4_ == 1) ? !_TECHMAP_CONSTVAL_D4_ ^ IS_D4_INVERTED :
(_TECHMAP_CONSTVAL_D4_ === 0) ? ~IS_D4_INVERTED : IS_D4_INVERTED;
wire d4 = (_TECHMAP_CONSTMSK_D4_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_D4_ === 0) ? 1'b1 : D4;
localparam INV_D5 = (_TECHMAP_CONSTMSK_D5_ == 1) ? !_TECHMAP_CONSTVAL_D5_ ^ IS_D5_INVERTED :
(_TECHMAP_CONSTVAL_D5_ === 0) ? ~IS_D5_INVERTED : IS_D5_INVERTED;
wire d5 = (_TECHMAP_CONSTMSK_D5_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_D5_ === 0) ? 1'b1 : D5;
localparam INV_D6 = (_TECHMAP_CONSTMSK_D6_ == 1) ? !_TECHMAP_CONSTVAL_D6_ ^ IS_D6_INVERTED :
(_TECHMAP_CONSTVAL_D6_ === 0) ? ~IS_D6_INVERTED : IS_D6_INVERTED;
wire d6 = (_TECHMAP_CONSTMSK_D6_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_D6_ === 0) ? 1'b1 : D6;
localparam INV_D7 = (_TECHMAP_CONSTMSK_D7_ == 1) ? !_TECHMAP_CONSTVAL_D7_ ^ IS_D7_INVERTED :
(_TECHMAP_CONSTVAL_D7_ === 0) ? ~IS_D7_INVERTED : IS_D7_INVERTED;
wire d7 = (_TECHMAP_CONSTMSK_D7_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_D7_ === 0) ? 1'b1 : D7;
localparam INV_D8 = (_TECHMAP_CONSTMSK_D8_ == 1) ? !_TECHMAP_CONSTVAL_D8_ ^ IS_D8_INVERTED :
(_TECHMAP_CONSTVAL_D8_ === 0) ? ~IS_D8_INVERTED : IS_D8_INVERTED;
wire d8 = (_TECHMAP_CONSTMSK_D8_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_D8_ === 0) ? 1'b1 : D8;
localparam TQ_USED = (_TECHMAP_CONSTVAL_TQ_ === 1'bx && (DATA_RATE_TQ == "DDR" || DATA_RATE_TQ == "SDR")) ? 1'b1 : 1'b0;
parameter _TECHMAP_CONSTMSK_T1_ = 0;
parameter _TECHMAP_CONSTVAL_T1_ = 0;
parameter _TECHMAP_CONSTMSK_T2_ = 0;
parameter _TECHMAP_CONSTVAL_T2_ = 0;
parameter _TECHMAP_CONSTMSK_T3_ = 0;
parameter _TECHMAP_CONSTVAL_T3_ = 0;
parameter _TECHMAP_CONSTMSK_T4_ = 0;
parameter _TECHMAP_CONSTVAL_T4_ = 0;
localparam INV_T1 = (_TECHMAP_CONSTMSK_T1_ == 1) ? !_TECHMAP_CONSTVAL_T1_ ^ IS_T1_INVERTED :
(_TECHMAP_CONSTVAL_T1_ === 0) ? ~IS_T1_INVERTED : IS_T1_INVERTED;
wire t1 = (_TECHMAP_CONSTMSK_T1_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_T1_ === 0) ? 1'b1 : T1;
localparam INV_T2 = (_TECHMAP_CONSTMSK_T2_ == 1) ? !_TECHMAP_CONSTVAL_T2_ ^ IS_T2_INVERTED :
(_TECHMAP_CONSTVAL_T2_ === 0) ? ~IS_T2_INVERTED : IS_T2_INVERTED;
wire t2 = (_TECHMAP_CONSTMSK_T2_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_T2_ === 0) ? 1'b1 : T2;
localparam INV_T3 = (_TECHMAP_CONSTMSK_T3_ == 1) ? !_TECHMAP_CONSTVAL_T3_ ^ IS_T3_INVERTED :
(_TECHMAP_CONSTVAL_T3_ === 0) ? ~IS_T3_INVERTED : IS_T3_INVERTED;
wire t3 = (_TECHMAP_CONSTMSK_T3_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_T3_ === 0) ? 1'b1 : T3;
localparam INV_T4 = (_TECHMAP_CONSTMSK_T4_ == 1) ? !_TECHMAP_CONSTVAL_T4_ ^ IS_T4_INVERTED :
(_TECHMAP_CONSTVAL_T4_ === 0) ? ~IS_T4_INVERTED : IS_T4_INVERTED;
wire t4 = (_TECHMAP_CONSTMSK_T4_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_T4_ === 0) ? 1'b1 : T4;
OSERDESE2_VPR #(
.SERDES_MODE_SLAVE (SERDES_MODE == "SLAVE"),
.TRISTATE_WIDTH_W4 (TRISTATE_WIDTH == 4),
.DATA_RATE_OQ_DDR (DATA_RATE_OQ == "DDR"),
.DATA_RATE_OQ_SDR (DATA_RATE_OQ == "SDR"),
.DATA_RATE_TQ_BUF (DATA_RATE_TQ == "BUF"),
.DATA_RATE_TQ_DDR (DATA_RATE_TQ == "DDR"),
.DATA_RATE_TQ_SDR (DATA_RATE_TQ == "SDR"),
.DATA_WIDTH_DDR_W4 (DATA_RATE_OQ == "DDR" && DATA_WIDTH == 4),
.DATA_WIDTH_DDR_W6 (DATA_RATE_OQ == "DDR" && DATA_WIDTH == 6),
.DATA_WIDTH_DDR_W8 (DATA_RATE_OQ == "DDR" && DATA_WIDTH == 8),
.DATA_WIDTH_SDR_W2 (DATA_RATE_OQ == "SDR" && DATA_WIDTH == 2),
.DATA_WIDTH_SDR_W3 (DATA_RATE_OQ == "SDR" && DATA_WIDTH == 3),
.DATA_WIDTH_SDR_W4 (DATA_RATE_OQ == "SDR" && DATA_WIDTH == 4),
.DATA_WIDTH_SDR_W5 (DATA_RATE_OQ == "SDR" && DATA_WIDTH == 5),
.DATA_WIDTH_SDR_W6 (DATA_RATE_OQ == "SDR" && DATA_WIDTH == 6),
.DATA_WIDTH_SDR_W7 (DATA_RATE_OQ == "SDR" && DATA_WIDTH == 7),
.DATA_WIDTH_SDR_W8 (DATA_RATE_OQ == "SDR" && DATA_WIDTH == 8),
.ZINIT_OQ (!INIT_OQ),
.ZINIT_TQ (!INIT_TQ),
.ZSRVAL_OQ (!SRVAL_OQ),
.ZSRVAL_TQ (!SRVAL_TQ),
.IS_CLKDIV_INVERTED (IS_CLKDIV_INVERTED),
.IS_D1_INVERTED (INV_D1),
.IS_D2_INVERTED (INV_D2),
.IS_D3_INVERTED (INV_D3),
.IS_D4_INVERTED (INV_D4),
.IS_D5_INVERTED (INV_D5),
.IS_D6_INVERTED (INV_D6),
.IS_D7_INVERTED (INV_D7),
.IS_D8_INVERTED (INV_D8),
.ZINV_CLK (!IS_CLK_INVERTED),
.ZINV_T1 (!INV_T1),
.ZINV_T2 (!INV_T2),
.ZINV_T3 (!INV_T3),
.ZINV_T4 (!INV_T4),
.TQ_USED (TQ_USED)
) _TECHMAP_REPLACE_ (
.CLK (CLK),
.CLKDIV (CLKDIV),
.D1 (d1),
.D2 (d2),
.D3 (d3),
.D4 (d4),
.D5 (d5),
.D6 (d6),
.D7 (d7),
.D8 (d8),
.OCE (OCE),
.RST (RST),
.T1 (t1),
.T2 (t2),
.T3 (t3),
.T4 (t4),
.TCE (TCE),
.OFB (OFB),
.OQ (OQ),
.TFB (TFB),
.TQ (TQ)
);
endmodule
module ISERDESE2 (
input BITSLIP,
input CE1,
input CE2,
input CLK,
input CLKB,
input CLKDIV,
input RST,
input D,
input DDLY,
output Q1,
output Q2,
output Q3,
output Q4,
output Q5,
output Q6,
output Q7,
output Q8
);
parameter DATA_RATE = "DDR";
parameter DATA_WIDTH = 4;
parameter NUM_CE = 2;
parameter DYN_CLKDIV_INV_EN = "FALSE";
parameter DYN_CLK_INV_EN = "FALSE";
parameter INTERFACE_TYPE = "MEMORY";
parameter IOBDELAY = "NONE";
parameter SERDES_MODE = "MASTER";
parameter [0:0] INIT_Q1 = 1'b0;
parameter [0:0] INIT_Q2 = 1'b0;
parameter [0:0] INIT_Q3 = 1'b0;
parameter [0:0] INIT_Q4 = 1'b0;
parameter [0:0] SRVAL_Q1 = 1'b0;
parameter [0:0] SRVAL_Q2 = 1'b0;
parameter [0:0] SRVAL_Q3 = 1'b0;
parameter [0:0] SRVAL_Q4 = 1'b0;
parameter [0:0] IS_D_INVERTED = 1'b0;
parameter [0:0] IS_CLK_INVERTED = 1'b0;
if (INTERFACE_TYPE == "NETWORKING") begin
if (DATA_RATE == "DDR" &&
(DATA_WIDTH != 4 &&
DATA_WIDTH != 6 &&
DATA_WIDTH != 8)) begin
wire _TECHMAP_FAIL_;
end
if (DATA_RATE == "SDR" &&
(DATA_WIDTH < 2 ||
DATA_WIDTH > 8)) begin
wire _TECHMAP_FAIL_;
end
end
if (INTERFACE_TYPE == "MEMORY" ||
INTERFACE_TYPE == "MEMORY_DDR3" ||
INTERFACE_TYPE == "MEMORY_QDR") begin
if (DATA_RATE == "SDR") begin
wire _TECHMAP_FAIL_;
end
if (DATA_RATE == "DDR" &&
(DATA_WIDTH != 4 &&
DATA_WIDTH != 6 &&
DATA_WIDTH != 8)) begin
wire _TECHMAP_FAIL_;
end
end
if (NUM_CE != 1 && NUM_CE != 2) begin
wire _TECHMAP_FAIL_ = 1'b1;
end
parameter _TECHMAP_CONSTMSK_D_ = 1'b1;
parameter _TECHMAP_CONSTVAL_D_ = 1'bx;
parameter _TECHMAP_CONSTMSK_DDLY_ = 1'b1;
parameter _TECHMAP_CONSTVAL_DDLY_ = 1'bx;
localparam [0:0] MEMORY_DDR3_4 = (INTERFACE_TYPE == "MEMORY_DDR3" && DATA_RATE == "DDR" && DATA_WIDTH == 4);
localparam [0:0] MEMORY_DDR_4 = (INTERFACE_TYPE == "MEMORY" && DATA_RATE == "DDR" && DATA_WIDTH == 4);
localparam [0:0] MEMORY_QDR_4 = (INTERFACE_TYPE == "MEMORY_QDR" && DATA_RATE == "DDR" && DATA_WIDTH == 4);
localparam [0:0] NETWORKING_SDR_2 = (INTERFACE_TYPE == "NETWORKING" && DATA_RATE == "SDR" && DATA_WIDTH == 2);
localparam [0:0] NETWORKING_SDR_3 = (INTERFACE_TYPE == "NETWORKING" && DATA_RATE == "SDR" && DATA_WIDTH == 3);
localparam [0:0] NETWORKING_SDR_4 = (INTERFACE_TYPE == "NETWORKING" && DATA_RATE == "SDR" && DATA_WIDTH == 4);
localparam [0:0] NETWORKING_SDR_5 = (INTERFACE_TYPE == "NETWORKING" && DATA_RATE == "SDR" && DATA_WIDTH == 5);
localparam [0:0] NETWORKING_SDR_6 = (INTERFACE_TYPE == "NETWORKING" && DATA_RATE == "SDR" && DATA_WIDTH == 6);
localparam [0:0] NETWORKING_SDR_7 = (INTERFACE_TYPE == "NETWORKING" && DATA_RATE == "SDR" && DATA_WIDTH == 7);
localparam [0:0] NETWORKING_SDR_8 = (INTERFACE_TYPE == "NETWORKING" && DATA_RATE == "SDR" && DATA_WIDTH == 8);
localparam [0:0] NETWORKING_DDR_4 = (INTERFACE_TYPE == "NETWORKING" && DATA_RATE == "DDR" && DATA_WIDTH == 4);
localparam [0:0] NETWORKING_DDR_6 = (INTERFACE_TYPE == "NETWORKING" && DATA_RATE == "DDR" && DATA_WIDTH == 6);
localparam [0:0] NETWORKING_DDR_8 = (INTERFACE_TYPE == "NETWORKING" && DATA_RATE == "DDR" && DATA_WIDTH == 8);
localparam [0:0] NETWORKING_DDR_10 = (INTERFACE_TYPE == "NETWORKING" && DATA_RATE == "DDR" && DATA_WIDTH == 10);
localparam [0:0] NETWORKING_DDR_14 = (INTERFACE_TYPE == "NETWORKING" && DATA_RATE == "DDR" && DATA_WIDTH == 14);
localparam [0:0] OVERSAMPLE_DDR_4 = (INTERFACE_TYPE == "OVERSAMPLE" && DATA_RATE == "DDR" && DATA_WIDTH == 4);
if (_TECHMAP_CONSTMSK_D_ == 1'b1) begin
ISERDESE2_IDELAY_VPR #(
.MEMORY_DDR3_4 (MEMORY_DDR3_4),
.MEMORY_DDR_4 (MEMORY_DDR_4),
.MEMORY_QDR_4 (MEMORY_QDR_4),
.NETWORKING_SDR_2 (NETWORKING_SDR_2),
.NETWORKING_SDR_3 (NETWORKING_SDR_3),
.NETWORKING_SDR_4 (NETWORKING_SDR_4),
.NETWORKING_SDR_5 (NETWORKING_SDR_5),
.NETWORKING_SDR_6 (NETWORKING_SDR_6),
.NETWORKING_SDR_7 (NETWORKING_SDR_7),
.NETWORKING_SDR_8 (NETWORKING_SDR_8),
.NETWORKING_DDR_4 (NETWORKING_DDR_4),
.NETWORKING_DDR_6 (NETWORKING_DDR_6),
.NETWORKING_DDR_8 (NETWORKING_DDR_8),
.NETWORKING_DDR_10 (NETWORKING_DDR_10),
.NETWORKING_DDR_14 (NETWORKING_DDR_14),
.OVERSAMPLE_DDR_4 (OVERSAMPLE_DDR_4),
.NUM_CE_N1 (NUM_CE == 1),
.NUM_CE_N2 (NUM_CE == 2),
.IOBDELAY_IFD (IOBDELAY == "IFD" || IOBDELAY == "BOTH"),
.IOBDELAY_IBUF (IOBDELAY == "IBUF" || IOBDELAY == "BOTH"),
// Inverters
.ZINIT_Q1 (!INIT_Q1),
.ZINIT_Q2 (!INIT_Q2),
.ZINIT_Q3 (!INIT_Q3),
.ZINIT_Q4 (!INIT_Q4),
.ZSRVAL_Q1 (!SRVAL_Q1),
.ZSRVAL_Q2 (!SRVAL_Q2),
.ZSRVAL_Q3 (!SRVAL_Q3),
.ZSRVAL_Q4 (!SRVAL_Q4),
.ZINV_C (!IS_CLK_INVERTED)
) _TECHMAP_REPLACE_ (
.BITSLIP (BITSLIP),
.CE1 (CE1),
.CE2 (CE2),
.CLK (CLK),
.CLKB (CLKB),
.CLKDIV (CLKDIV),
.RST (RST),
.DDLY (DDLY),
.Q1 (Q1),
.Q2 (Q2),
.Q3 (Q3),
.Q4 (Q4),
.Q5 (Q5),
.Q6 (Q6),
.Q7 (Q7),
.Q8 (Q8)
);
end else if (_TECHMAP_CONSTMSK_DDLY_ == 1'b1) begin
ISERDESE2_NO_IDELAY_VPR #(
.MEMORY_DDR3_4 (MEMORY_DDR3_4),
.MEMORY_DDR_4 (MEMORY_DDR_4),
.MEMORY_QDR_4 (MEMORY_QDR_4),
.NETWORKING_SDR_2 (NETWORKING_SDR_2),
.NETWORKING_SDR_3 (NETWORKING_SDR_3),
.NETWORKING_SDR_4 (NETWORKING_SDR_4),
.NETWORKING_SDR_5 (NETWORKING_SDR_5),
.NETWORKING_SDR_6 (NETWORKING_SDR_6),
.NETWORKING_SDR_7 (NETWORKING_SDR_7),
.NETWORKING_SDR_8 (NETWORKING_SDR_8),
.NETWORKING_DDR_4 (NETWORKING_DDR_4),
.NETWORKING_DDR_6 (NETWORKING_DDR_6),
.NETWORKING_DDR_8 (NETWORKING_DDR_8),
.NETWORKING_DDR_10 (NETWORKING_DDR_10),
.NETWORKING_DDR_14 (NETWORKING_DDR_14),
.OVERSAMPLE_DDR_4 (OVERSAMPLE_DDR_4),
.NUM_CE_N1 (NUM_CE == 1),
.NUM_CE_N2 (NUM_CE == 2),
.IOBDELAY_IFD (IOBDELAY == "IFD" || IOBDELAY == "BOTH"),
.IOBDELAY_IBUF (IOBDELAY == "IBUF" || IOBDELAY == "BOTH"),
// Inverters
.ZINIT_Q1 (!INIT_Q1),
.ZINIT_Q2 (!INIT_Q2),
.ZINIT_Q3 (!INIT_Q3),
.ZINIT_Q4 (!INIT_Q4),
.ZSRVAL_Q1 (!SRVAL_Q1),
.ZSRVAL_Q2 (!SRVAL_Q2),
.ZSRVAL_Q3 (!SRVAL_Q3),
.ZSRVAL_Q4 (!SRVAL_Q4),
.ZINV_D (!IS_D_INVERTED),
.ZINV_C (!IS_CLK_INVERTED)
) _TECHMAP_REPLACE_ (
.BITSLIP (BITSLIP),
.CE1 (CE1),
.CE2 (CE2),
.CLK (CLK),
.CLKB (CLKB),
.CLKDIV (CLKDIV),
.RST (RST),
.D (D),
.Q1 (Q1),
.Q2 (Q2),
.Q3 (Q3),
.Q4 (Q4),
.Q5 (Q5),
.Q6 (Q6),
.Q7 (Q7),
.Q8 (Q8)
);
end else begin
wire _TECHMAP_FAIL_;
end
endmodule
// ============================================================================
// IDDR/ODDR
module IDDR_2CLK (
output Q1,
output Q2,
input C,
input CB,
input CE,
input D,
input R,
input S,
);
parameter DDR_CLK_EDGE = "OPPOSITE_EDGE";
parameter INIT_Q1 = 1'b0;
parameter INIT_Q2 = 1'b0;
parameter [0:0] IS_C_INVERTED = 1'b0;
parameter [0:0] IS_CB_INVERTED = 1'b0;
parameter [0:0] IS_D_INVERTED = 1'b0;
parameter SRTYPE = "SYNC";
parameter _TECHMAP_CONSTMSK_R_ = 1'b1;
parameter _TECHMAP_CONSTVAL_R_ = 1'bx;
parameter _TECHMAP_CONSTMSK_S_ = 1'b1;
parameter _TECHMAP_CONSTVAL_S_ = 1'bx;
localparam [0:0] R_USED = (_TECHMAP_CONSTMSK_R_ != 1'b1);
localparam [0:0] S_USED = (_TECHMAP_CONSTMSK_S_ != 1'b1);
wire SR;
localparam SRVAL = (!R_USED) ? 1'b1 : 1'b0;
localparam SRUSED = 1'b1;
generate if (!R_USED && !S_USED) begin
assign SR = 1'b0;
end else if (R_USED && !S_USED) begin
assign SR = R;
end else if (!R_USED && S_USED) begin
assign SR = S;
end else begin
assign SR = 1'bx;
$error("Both S and R cannot be used simultaneously");
end endgenerate
localparam INIT_Q3 = (DDR_CLK_EDGE != "OPPOSITE_EDGE") ? INIT_Q1 : 1'b1;
localparam INIT_Q4 = (DDR_CLK_EDGE != "OPPOSITE_EDGE") ? INIT_Q2 : 1'b1;
localparam SRVAL34 = (DDR_CLK_EDGE != "OPPOSITE_EDGE") ? SRVAL : 1'b1;
IDDR_VPR #(
.ZINV_D (!IS_D_INVERTED),
.ZINV_C (!IS_C_INVERTED),
.SRTYPE_SYNC (SRTYPE == "SYNC"),
.SAME_EDGE (DDR_CLK_EDGE == "SAME_EDGE"),
.OPPOSITE_EDGE (DDR_CLK_EDGE == "OPPOSITE_EDGE"),
.ZINIT_Q1 (!INIT_Q1),
.ZINIT_Q2 (!INIT_Q2),
.ZINIT_Q3 (!INIT_Q3),
.ZINIT_Q4 (!INIT_Q4),
.ZSRVAL_Q12 (!SRVAL),
.ZSRVAL_Q34 (!SRVAL34)
) _TECHMAP_REPLACE_ (
.CK (C),
.CKB (CB),
.CE (CE),
.SR (SR),
.D (D),
.Q1 (Q1),
.Q2 (Q2)
);
endmodule
module IDDR (
output Q1,
output Q2,
input C,
input CE,
input D,
input R,
input S,
);
parameter DDR_CLK_EDGE = "OPPOSITE_EDGE";
parameter INIT_Q1 = 1'b0;
parameter INIT_Q2 = 1'b0;
parameter [0:0] IS_C_INVERTED = 1'b0;
parameter [0:0] IS_D_INVERTED = 1'b0;
parameter SRTYPE = "SYNC";
IDDR_2CLK # (
.DDR_CLK_EDGE (DDR_CLK_EDGE),
.SRTYPE (SRTYPE),
.INIT_Q1 (INIT_Q1),
.INIT_Q2 (INIT_Q2),
.IS_C_INVERTED (IS_C_INVERTED),
.IS_CB_INVERTED (!IS_C_INVERTED),
.IS_D_INVERTED (IS_D_INVERTED)
) _TECHMAP_REPLACE_ (
.C (C),
.CB (C),
.CE (CE),
.S (S),
.R (R),
.D (D),
.Q1 (Q1),
.Q2 (Q2)
);
endmodule
module ODDR (
input C,
input CE,
input R,
input S,
input D1,
input D2,
output Q
);
parameter DDR_CLK_EDGE = "OPPOSITE_EDGE";
parameter INIT = 1'b0;
parameter [0:0] IS_C_INVERTED = 1'b0;
parameter [0:0] IS_D1_INVERTED = 1'b0;
parameter [0:0] IS_D2_INVERTED = 1'b0;
parameter SRTYPE = "SYNC";
parameter _TECHMAP_CONSTMSK_R_ = 1'b1;
parameter _TECHMAP_CONSTVAL_R_ = 1'bx;
parameter _TECHMAP_CONSTMSK_S_ = 1'b1;
parameter _TECHMAP_CONSTVAL_S_ = 1'bx;
localparam [0:0] R_USED = (_TECHMAP_CONSTMSK_R_ != 1'b1);
localparam [0:0] S_USED = (_TECHMAP_CONSTMSK_S_ != 1'b1);
wire SR;
localparam SRVAL = (!R_USED) ? 1'b1 : 1'b0;
generate if (!R_USED && !S_USED) begin
assign SR = 1'b0;
end else if (R_USED && !S_USED) begin
assign SR = R;
end else if (!R_USED && S_USED) begin
assign SR = S;
end else begin
assign SR = 1'bx;
$error("Both S and R cannot be used simultaneously");
end endgenerate
parameter _TECHMAP_CONSTMSK_D1_ = 0;
parameter _TECHMAP_CONSTVAL_D1_ = 0;
parameter _TECHMAP_CONSTMSK_D2_ = 0;
parameter _TECHMAP_CONSTVAL_D2_ = 0;
localparam INV_D1 = (_TECHMAP_CONSTMSK_D1_ == 1) ? !_TECHMAP_CONSTVAL_D1_ ^ IS_D1_INVERTED :
(_TECHMAP_CONSTVAL_D1_ === 0) ? IS_D1_INVERTED : !IS_D1_INVERTED;
wire d1 = (_TECHMAP_CONSTMSK_D1_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_D1_ === 0) ? 1'b1 : D1;
localparam INV_D2 = (_TECHMAP_CONSTMSK_D2_ == 1) ? !_TECHMAP_CONSTVAL_D2_ ^ IS_D2_INVERTED :
(_TECHMAP_CONSTVAL_D2_ === 0) ? IS_D2_INVERTED : !IS_D2_INVERTED;
wire d2 = (_TECHMAP_CONSTMSK_D2_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_D2_ === 0) ? 1'b1 : D2;
ODDR_VPR # (
.ZINV_CLK (!IS_C_INVERTED),
.INV_D1 (INV_D1),
.INV_D2 (INV_D2),
.ZINV_D1 (!INV_D1),
.ZINV_D2 (!INV_D2),
.SRTYPE_SYNC ( SRTYPE == "SYNC"),
.SAME_EDGE ( (DDR_CLK_EDGE != "OPPOSITE_EDGE") ^ IS_C_INVERTED),
.ZINIT_Q (!INIT),
.ZSRVAL_Q (!SRVAL)
) _TECHMAP_REPLACE_ (
.CK (C),
.CE (CE),
.SR (SR),
.D1 (d1),
.D2 (d2),
.Q (Q)
);
endmodule
// ============================================================================
// IDELAYE2
module IDELAYE2 (
input C,
input CE,
input CINVCTRL,
input CNTVALUEIN0,
input CNTVALUEIN1,
input CNTVALUEIN2,
input CNTVALUEIN3,
input CNTVALUEIN4,
input DATAIN,
input IDATAIN,
input INC,
input LD,
input LDPIPEEN,
input REGRST,
output CNTVALUEOUT0,
output CNTVALUEOUT1,
output CNTVALUEOUT2,
output CNTVALUEOUT3,
output CNTVALUEOUT4,
output DATAOUT
);
parameter CINVCTRL_SEL = "FALSE";
parameter DELAY_SRC = "IDATAIN";
parameter HIGH_PERFORMANCE_MODE = "FALSE";
parameter IDELAY_TYPE = "FIXED";
parameter PIPE_SEL = "FALSE";
parameter REFCLK_FREQUENCY = 200.0;
parameter SIGNAL_PATTERN = "DATA";
parameter [4:0] IDELAY_VALUE = 5'b00000;
parameter [0:0] IS_DATAIN_INVERTED = 1'b0;
parameter [0:0] IS_IDATAIN_INVERTED = 1'b0;
localparam [4:0] ZIDELAY_VALUE = ~IDELAY_VALUE;
localparam [0:0] NOT_USING_CNTVALUEIN = (IDELAY_TYPE == "FIXED" || IDELAY_TYPE == "VARIABLE");
parameter _TECHMAP_CONSTMSK_IDATAIN_ = 1'b1;
parameter _TECHMAP_CONSTVAL_IDATAIN_ = 1'bx;
parameter _TECHMAP_CONSTMSK_DATAIN_ = 1'b1;
parameter _TECHMAP_CONSTVAL_DATAIN_ = 1'bx;
localparam [0:0] IDATAIN_USED = _TECHMAP_CONSTMSK_IDATAIN_ == 1'b0;
localparam [0:0] DATAIN_USED = _TECHMAP_CONSTMSK_DATAIN_ == 1'b0;
IDELAYE2_VPR #(
.IN_USE (IDATAIN_USED | DATAIN_USED),
.IDELAY_VALUE (IDELAY_VALUE),
.ZIDELAY_VALUE (ZIDELAY_VALUE),
.PIPE_SEL (PIPE_SEL == "TRUE"),
.CINVCTRL_SEL (CINVCTRL_SEL == "TRUE"),
.DELAY_SRC_DATAIN (DELAY_SRC == "DATAIN"),
.DELAY_SRC_IDATAIN (DELAY_SRC == "IDATAIN"),
.HIGH_PERFORMANCE_MODE (HIGH_PERFORMANCE_MODE == "TRUE"),
.IDELAY_TYPE_FIXED (IDELAY_TYPE == "FIXED"),
.IDELAY_TYPE_VAR_LOAD (IDELAY_TYPE == "VAR_LOAD"),
.IDELAY_TYPE_VARIABLE (IDELAY_TYPE == "VARIABLE"),
// Inverters
.IS_DATAIN_INVERTED (IS_DATAIN_INVERTED),
.IS_IDATAIN_INVERTED (IS_IDATAIN_INVERTED)
) _TECHMAP_REPLACE_ (
.C (C),
.CE (CE),
.CINVCTRL (CINVCTRL),
// CNTVALUEIN0-4 should be 1 if unused
.CNTVALUEIN0 (CNTVALUEIN0 | NOT_USING_CNTVALUEIN),
.CNTVALUEIN1 (CNTVALUEIN1 | NOT_USING_CNTVALUEIN),
.CNTVALUEIN2 (CNTVALUEIN2 | NOT_USING_CNTVALUEIN),
.CNTVALUEIN3 (CNTVALUEIN3 | NOT_USING_CNTVALUEIN),
.CNTVALUEIN4 (CNTVALUEIN4 | NOT_USING_CNTVALUEIN),
.DATAIN (DATAIN | ~DATAIN_USED),
.IDATAIN (IDATAIN | ~IDATAIN_USED),
.INC (INC),
.LD (LD),
.LDPIPEEN (LDPIPEEN),
.REGRST (REGRST),
.CNTVALUEOUT0 (CNTVALUEOUT0),
.CNTVALUEOUT1 (CNTVALUEOUT1),
.CNTVALUEOUT2 (CNTVALUEOUT2),
.CNTVALUEOUT3 (CNTVALUEOUT3),
.CNTVALUEOUT4 (CNTVALUEOUT4),
.DATAOUT (DATAOUT)
);
endmodule
// ============================================================================
// Clock Buffers
module BUFG (
input I,
output O
);
BUFGCTRL _TECHMAP_REPLACE_ (
.O(O),
.CE0(1'b1),
.CE1(1'b0),
.I0(I),
.I1(1'b1),
.IGNORE0(1'b0),
.IGNORE1(1'b1),
.S0(1'b1),
.S1(1'b0)
);
endmodule
module BUFGCE (
input I,
input CE,
output O,
);
parameter SIM_DEVICE = "7SERIES";
BUFGCTRL _TECHMAP_REPLACE_ (
.O(O),
.CE0(CE),
.CE1(1'b0),
.I0(I),
.I1(1'b1),
.IGNORE0(1'b0),
.IGNORE1(1'b1),
.S0(1'b1),
.S1(1'b0)
);
endmodule
module BUFGMUX (
input I0,
input I1,
input S,
output O
);
BUFGCTRL #(
.IS_CE0_INVERTED(1'b1)
)_TECHMAP_REPLACE_ (
.O(O),
.CE0(S),
.CE1(S),
.I0(I0),
.I1(I1),
.IGNORE0(1'b0),
.IGNORE1(1'b0),
.S0(1'b1),
.S1(1'b1)
);
endmodule
module BUFGCTRL (
output O,
input I0, input I1,
input S0, input S1,
input CE0, input CE1,
input IGNORE0, input IGNORE1
);
parameter [0:0] INIT_OUT = 1'b0;
parameter [0:0] PRESELECT_I0 = 1'b0;
parameter [0:0] PRESELECT_I1 = 1'b0;
parameter [0:0] IS_IGNORE0_INVERTED = 1'b0;
parameter [0:0] IS_IGNORE1_INVERTED = 1'b0;
parameter [0:0] IS_CE0_INVERTED = 1'b0;
parameter [0:0] IS_CE1_INVERTED = 1'b0;
parameter [0:0] IS_S0_INVERTED = 1'b0;
parameter [0:0] IS_S1_INVERTED = 1'b0;
parameter _TECHMAP_CONSTMSK_IGNORE0_ = 0;
parameter _TECHMAP_CONSTVAL_IGNORE0_ = 0;
parameter _TECHMAP_CONSTMSK_IGNORE1_ = 0;
parameter _TECHMAP_CONSTVAL_IGNORE1_ = 0;
parameter _TECHMAP_CONSTMSK_CE0_ = 0;
parameter _TECHMAP_CONSTVAL_CE0_ = 0;
parameter _TECHMAP_CONSTMSK_CE1_ = 0;
parameter _TECHMAP_CONSTVAL_CE1_ = 0;
parameter _TECHMAP_CONSTMSK_S0_ = 0;
parameter _TECHMAP_CONSTVAL_S0_ = 0;
parameter _TECHMAP_CONSTMSK_S1_ = 0;
parameter _TECHMAP_CONSTVAL_S1_ = 0;
localparam [0:0] INV_IGNORE0 = (
_TECHMAP_CONSTMSK_IGNORE0_ == 1 &&
_TECHMAP_CONSTVAL_IGNORE0_ == 0 &&
IS_IGNORE0_INVERTED == 0);
localparam [0:0] INV_IGNORE1 = (
_TECHMAP_CONSTMSK_IGNORE1_ == 1 &&
_TECHMAP_CONSTVAL_IGNORE1_ == 0 &&
IS_IGNORE1_INVERTED == 0);
localparam [0:0] INV_CE0 = (
_TECHMAP_CONSTMSK_CE0_ == 1 &&
_TECHMAP_CONSTVAL_CE0_ == 0 &&
IS_CE0_INVERTED == 0);
localparam [0:0] INV_CE1 = (
_TECHMAP_CONSTMSK_CE1_ == 1 &&
_TECHMAP_CONSTVAL_CE1_ == 0 &&
IS_CE1_INVERTED == 0);
localparam [0:0] INV_S0 = (
_TECHMAP_CONSTMSK_S0_ == 1 &&
_TECHMAP_CONSTVAL_S0_ == 0 &&
IS_S0_INVERTED == 0);
localparam [0:0] INV_S1 = (
_TECHMAP_CONSTMSK_S1_ == 1 &&
_TECHMAP_CONSTVAL_S1_ == 0 &&
IS_S1_INVERTED == 0);
BUFGCTRL_VPR #(
.INIT_OUT(INIT_OUT),
.ZPRESELECT_I0(PRESELECT_I0),
.ZPRESELECT_I1(PRESELECT_I1),
.IS_IGNORE0_INVERTED(!IS_IGNORE0_INVERTED ^ INV_IGNORE0),
.IS_IGNORE1_INVERTED(!IS_IGNORE1_INVERTED ^ INV_IGNORE1),
.ZINV_CE0(!IS_CE0_INVERTED ^ INV_CE0),
.ZINV_CE1(!IS_CE1_INVERTED ^ INV_CE1),
.ZINV_S0(!IS_S0_INVERTED ^ INV_S0),
.ZINV_S1(!IS_S1_INVERTED ^ INV_S1)
) _TECHMAP_REPLACE_ (
.O(O),
.CE0(CE0 ^ INV_CE0),
.CE1(CE1 ^ INV_CE1),
.I0(I0),
.I1(I1),
.IGNORE0(IGNORE0 ^ INV_IGNORE0),
.IGNORE1(IGNORE1 ^ INV_IGNORE1),
.S0(S0 ^ INV_S0),
.S1(S1 ^ INV_S1)
);
endmodule
module BUFH (
input I,
output O
);
BUFHCE _TECHMAP_REPLACE_ (
.O(O),
.I(I),
.CE(1)
);
endmodule
module BUFHCE (
input I,
input CE,
output O
);
parameter [0:0] INIT_OUT = 1'b0;
parameter [0:0] IS_CE_INVERTED = 1'b0;
parameter [0:0] _TECHMAP_CONSTMSK_CE_ = 0;
parameter [0:0] _TECHMAP_CONSTVAL_CE_ = 0;
localparam [0:0] INV_CE = (
_TECHMAP_CONSTMSK_CE_ == 1 &&
_TECHMAP_CONSTVAL_CE_ == 0 &&
IS_CE_INVERTED == 0);
BUFHCE_VPR #(
.INIT_OUT(INIT_OUT),
.ZINV_CE(!IS_CE_INVERTED ^ INV_CE)
) _TECHMAP_REPLACE_ (
.O(O),
.I(I),
.CE(CE)
);
endmodule
// ============================================================================
// PLL/MMCM
`define PLL_FRAC_PRECISION 10
`define PLL_FIXED_WIDTH 32
// Rounds a fixed point number to a given precision
function [`PLL_FIXED_WIDTH:1] pll_round_frac
(
input [`PLL_FIXED_WIDTH:1] decimal,
input [`PLL_FIXED_WIDTH:1] precision
);
if (decimal[(`PLL_FRAC_PRECISION - precision)] == 1'b1) begin
pll_round_frac = decimal + (1'b1 << (`PLL_FRAC_PRECISION - precision));
end else begin
pll_round_frac = decimal;
end
endfunction
// Computes content of the PLLs divider registers
function [13:0] pll_divider_regs
(
input [ 7:0] divide, // Max divide is 128
input [31:0] duty_cycle // Duty cycle is multiplied by 100,000
);
reg [`PLL_FIXED_WIDTH:1] duty_cycle_fix;
reg [`PLL_FIXED_WIDTH:1] duty_cycle_min;
reg [`PLL_FIXED_WIDTH:1] duty_cycle_max;
reg [6:0] high_time;
reg [6:0] low_time;
reg w_edge;
reg no_count;
reg [`PLL_FIXED_WIDTH:1] temp;
if (divide >= 64) begin
duty_cycle_min = ((divide - 64) * 100_000) / divide;
duty_cycle_max = (645 / divide) * 100_00;
if (duty_cycle > duty_cycle_max)
duty_cycle = duty_cycle_max;
if (duty_cycle < duty_cycle_min)
duty_cycle = duty_cycle_min;
end
duty_cycle_fix = (duty_cycle << `PLL_FRAC_PRECISION) / 100_000;
if (divide == 7'h01) begin
high_time = 7'h01;
w_edge = 1'b0;
low_time = 7'h01;
no_count = 1'b1;
end else begin
temp = pll_round_frac(duty_cycle_fix*divide, 1);
high_time = temp[`PLL_FRAC_PRECISION+7:`PLL_FRAC_PRECISION+1];
w_edge = temp[`PLL_FRAC_PRECISION];
if (high_time == 7'h00) begin
high_time = 7'h01;
w_edge = 1'b0;
end
if (high_time == divide) begin
high_time = divide - 1;
w_edge = 1'b1;
end
low_time = divide - high_time;
no_count = 1'b0;
end
pll_divider_regs = {w_edge, no_count, high_time[5:0], low_time[5:0]};
endfunction
// Computes the PLLs phase shift registers
function [10:0] pll_phase_regs
(
input [ 7:0] divide,
input signed [31:0] phase
);
reg [`PLL_FIXED_WIDTH:1] phase_in_cycles;
reg [`PLL_FIXED_WIDTH:1] phase_fixed;
reg [1:0] mx;
reg [5:0] delay_time;
reg [2:0] phase_mux;
reg [`PLL_FIXED_WIDTH:1] temp;
if(phase < 0) begin
phase_fixed = ((phase + 360000) << `PLL_FRAC_PRECISION) / 1000;
end else begin
phase_fixed = (phase << `PLL_FRAC_PRECISION) / 1000;
end
phase_in_cycles = (phase_fixed * divide) / 360;
temp = pll_round_frac(phase_in_cycles, 3);
mx = 2'b00;
phase_mux = temp[`PLL_FRAC_PRECISION:`PLL_FRAC_PRECISION-2];
delay_time = temp[`PLL_FRAC_PRECISION+6:`PLL_FRAC_PRECISION+1];
pll_phase_regs = {mx, phase_mux, delay_time};
endfunction
// Given PLL/MMCM divide, duty_cycle and phase calculates content of the
// CLKREG1 and CLKREG2.
function [31:0] pll_clkregs
(
input [7:0] divide, // Max divide is 128
input [31:0] duty_cycle, // Multiplied by 100,000
input signed [31:0] phase // Phase is given in degrees (-360,000 to 360,000)
);
reg [13:0] pll_div; // EDGE, NO_COUNT, HIGH_TIME[5:0], LOW_TIME[5:0]
reg [10:0] pll_phase; // MX, PHASE_MUX[2:0], DELAY_TIME[5:0]
pll_div = pll_divider_regs(divide, duty_cycle);
pll_phase = pll_phase_regs(divide, phase);
pll_clkregs = {
// CLKREG2: RESERVED[6:0], MX[1:0], EDGE, NO_COUNT, DELAY_TIME[5:0]
6'h00, pll_phase[10:9], pll_div[13:12], pll_phase[5:0],
// CLKREG1: PHASE_MUX[3:0], RESERVED, HIGH_TIME[5:0], LOW_TIME[5:0]
pll_phase[8:6], 1'b0, pll_div[11:0]
};
endfunction
// This function takes the divide value and outputs the necessary lock values
function [39:0] pll_lktable_lookup
(
input [6:0] divide // Max divide is 64
);
reg [2559:0] lookup;
lookup = {
// This table is composed of:
// LockRefDly_LockFBDly_LockCnt_LockSatHigh_UnlockCnt
40'b00110_00110_1111101000_1111101001_0000000001,
40'b00110_00110_1111101000_1111101001_0000000001,
40'b01000_01000_1111101000_1111101001_0000000001,
40'b01011_01011_1111101000_1111101001_0000000001,
40'b01110_01110_1111101000_1111101001_0000000001,
40'b10001_10001_1111101000_1111101001_0000000001,
40'b10011_10011_1111101000_1111101001_0000000001,
40'b10110_10110_1111101000_1111101001_0000000001,
40'b11001_11001_1111101000_1111101001_0000000001,
40'b11100_11100_1111101000_1111101001_0000000001,
40'b11111_11111_1110000100_1111101001_0000000001,
40'b11111_11111_1100111001_1111101001_0000000001,
40'b11111_11111_1011101110_1111101001_0000000001,
40'b11111_11111_1010111100_1111101001_0000000001,
40'b11111_11111_1010001010_1111101001_0000000001,
40'b11111_11111_1001110001_1111101001_0000000001,
40'b11111_11111_1000111111_1111101001_0000000001,
40'b11111_11111_1000100110_1111101001_0000000001,
40'b11111_11111_1000001101_1111101001_0000000001,
40'b11111_11111_0111110100_1111101001_0000000001,
40'b11111_11111_0111011011_1111101001_0000000001,
40'b11111_11111_0111000010_1111101001_0000000001,
40'b11111_11111_0110101001_1111101001_0000000001,
40'b11111_11111_0110010000_1111101001_0000000001,
40'b11111_11111_0110010000_1111101001_0000000001,
40'b11111_11111_0101110111_1111101001_0000000001,
40'b11111_11111_0101011110_1111101001_0000000001,
40'b11111_11111_0101011110_1111101001_0000000001,
40'b11111_11111_0101000101_1111101001_0000000001,
40'b11111_11111_0101000101_1111101001_0000000001,
40'b11111_11111_0100101100_1111101001_0000000001,
40'b11111_11111_0100101100_1111101001_0000000001,
40'b11111_11111_0100101100_1111101001_0000000001,
40'b11111_11111_0100010011_1111101001_0000000001,
40'b11111_11111_0100010011_1111101001_0000000001,
40'b11111_11111_0100010011_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001,
40'b11111_11111_0011111010_1111101001_0000000001
};
pll_lktable_lookup = lookup[ ((64-divide)*40) +: 40];
endfunction
// This function takes the divide value and the bandwidth setting of the PLL
// and outputs the digital filter settings necessary.
function [9:0] pll_table_lookup
(
input [6:0] divide, // Max divide is 64
input [8*9:0] BANDWIDTH
);
reg [639:0] lookup_low;
reg [639:0] lookup_high;
reg [639:0] lookup_optimized;
reg [9:0] lookup_entry;
lookup_low = {
// CP_RES_LFHF
10'b0010_1111_00,
10'b0010_1111_00,
10'b0010_0111_00,
10'b0010_1101_00,
10'b0010_0101_00,
10'b0010_0101_00,
10'b0010_1001_00,
10'b0010_1110_00,
10'b0010_1110_00,
10'b0010_0001_00,
10'b0010_0001_00,
10'b0010_0110_00,
10'b0010_0110_00,
10'b0010_0110_00,
10'b0010_0110_00,
10'b0010_1010_00,
10'b0010_1010_00,
10'b0010_1010_00,
10'b0010_1010_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0011_1100_00,
10'b0011_1100_00,
10'b0011_1100_00,
10'b0011_1100_00,
10'b0011_1100_00,
10'b0011_1100_00,
10'b0011_1100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00
};
lookup_high = {
// CP_RES_LFHF
10'b0011_0111_00,
10'b0011_0111_00,
10'b0101_1111_00,
10'b0111_1111_00,
10'b0111_1011_00,
10'b1101_0111_00,
10'b1110_1011_00,
10'b1110_1101_00,
10'b1111_1101_00,
10'b1111_0111_00,
10'b1111_1011_00,
10'b1111_1101_00,
10'b1111_0011_00,
10'b1110_0101_00,
10'b1111_0101_00,
10'b1111_0101_00,
10'b1111_0101_00,
10'b1111_0101_00,
10'b0111_0110_00,
10'b0111_0110_00,
10'b0111_0110_00,
10'b0111_0110_00,
10'b0101_1100_00,
10'b0101_1100_00,
10'b0101_1100_00,
10'b1100_0001_00,
10'b1100_0001_00,
10'b1100_0001_00,
10'b1100_0001_00,
10'b1100_0001_00,
10'b1100_0001_00,
10'b1100_0001_00,
10'b1100_0001_00,
10'b0100_0010_00,
10'b0100_0010_00,
10'b0100_0010_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0011_0100_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0100_1100_00,
10'b0100_1100_00,
10'b0100_1100_00,
10'b0100_1100_00,
10'b0100_1100_00,
10'b0100_1100_00,
10'b0100_1100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00
};
lookup_optimized = {
// CP_RES_LFHF
10'b0011_0111_00,
10'b0011_0111_00,
10'b0101_1111_00,
10'b0111_1111_00,
10'b0111_1011_00,
10'b1101_0111_00,
10'b1110_1011_00,
10'b1110_1101_00,
10'b1111_1101_00,
10'b1111_0111_00,
10'b1111_1011_00,
10'b1111_1101_00,
10'b1111_0011_00,
10'b1110_0101_00,
10'b1111_0101_00,
10'b1111_0101_00,
10'b1111_0101_00,
10'b1111_0101_00,
10'b0111_0110_00,
10'b0111_0110_00,
10'b0111_0110_00,
10'b0111_0110_00,
10'b0101_1100_00,
10'b0101_1100_00,
10'b0101_1100_00,
10'b1100_0001_00,
10'b1100_0001_00,
10'b1100_0001_00,
10'b1100_0001_00,
10'b1100_0001_00,
10'b1100_0001_00,
10'b1100_0001_00,
10'b1100_0001_00,
10'b0100_0010_00,
10'b0100_0010_00,
10'b0100_0010_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0011_0100_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0100_1100_00,
10'b0100_1100_00,
10'b0100_1100_00,
10'b0100_1100_00,
10'b0100_1100_00,
10'b0100_1100_00,
10'b0100_1100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00
};
if (BANDWIDTH == "LOW") begin
pll_table_lookup = lookup_low[((64-divide)*10) +: 10];
end else if (BANDWIDTH == "HIGH") begin
pll_table_lookup = lookup_high[((64-divide)*10) +: 10];
end else if (BANDWIDTH == "OPTIMIZED") begin
pll_table_lookup = lookup_optimized[((64-divide)*10) +: 10];
end
endfunction
// ............................................................................
// IMPORTANT NOTE: Due to lack of support for real type parameters in Yosys
// the PLL parameters that define duty cycles and phase shifts have to be
// provided as integers! The DUTY_CYCLE is expressed as % of high time times
// 1000 whereas the PHASE is expressed in degrees times 1000.
// PLLE2_ADV
module PLLE2_ADV
(
input CLKFBIN,
input CLKIN1,
input CLKIN2,
input CLKINSEL,
output CLKFBOUT,
output CLKOUT0,
output CLKOUT1,
output CLKOUT2,
output CLKOUT3,
output CLKOUT4,
output CLKOUT5,
input PWRDWN,
input RST,
output LOCKED,
input DCLK,
input DEN,
input DWE,
output DRDY,
input [ 6:0] DADDR,
input [15:0] DI,
output [15:0] DO
);
parameter _TECHMAP_CONSTMSK_CLKINSEL_ = 0;
parameter _TECHMAP_CONSTVAL_CLKINSEL_ = 0;
parameter _TECHMAP_CONSTMSK_RST_ = 0;
parameter _TECHMAP_CONSTVAL_RST_ = 0;
parameter _TECHMAP_CONSTMSK_PWRDWN_ = 0;
parameter _TECHMAP_CONSTVAL_PWRDWN_ = 0;
parameter _TECHMAP_CONSTMSK_CLKFBOUT_ = 0;
parameter _TECHMAP_CONSTVAL_CLKFBOUT_ = 0;
parameter _TECHMAP_CONSTMSK_CLKOUT0_ = 0;
parameter _TECHMAP_CONSTVAL_CLKOUT0_ = 0;
parameter _TECHMAP_CONSTMSK_CLKOUT1_ = 0;
parameter _TECHMAP_CONSTVAL_CLKOUT1_ = 0;
parameter _TECHMAP_CONSTMSK_CLKOUT2_ = 0;
parameter _TECHMAP_CONSTVAL_CLKOUT2_ = 0;
parameter _TECHMAP_CONSTMSK_CLKOUT3_ = 0;
parameter _TECHMAP_CONSTVAL_CLKOUT3_ = 0;
parameter _TECHMAP_CONSTMSK_CLKOUT4_ = 0;
parameter _TECHMAP_CONSTVAL_CLKOUT4_ = 0;
parameter _TECHMAP_CONSTMSK_CLKOUT5_ = 0;
parameter _TECHMAP_CONSTVAL_CLKOUT5_ = 0;
parameter _TECHMAP_CONSTMSK_DCLK_ = 0;
parameter _TECHMAP_CONSTVAL_DCLK_ = 0;
parameter _TECHMAP_CONSTMSK_DEN_ = 0;
parameter _TECHMAP_CONSTVAL_DEN_ = 0;
parameter _TECHMAP_CONSTMSK_DWE_ = 0;
parameter _TECHMAP_CONSTVAL_DWE_ = 0;
parameter IS_CLKINSEL_INVERTED = 1'b0;
parameter IS_RST_INVERTED = 1'b0;
parameter IS_PWRDWN_INVERTED = 1'b0;
parameter BANDWIDTH = "OPTIMIZED";
parameter STARTUP_WAIT = "FALSE";
parameter COMPENSATION = "ZHOLD";
parameter CLKIN1_PERIOD = 0.0;
parameter REF_JITTER1 = 0.01;
parameter CLKIN2_PERIOD = 0.0;
parameter REF_JITTER2 = 0.01;
parameter [5:0] DIVCLK_DIVIDE = 1;
parameter [5:0] CLKFBOUT_MULT = 1;
parameter CLKFBOUT_PHASE = 0;
parameter [6:0] CLKOUT0_DIVIDE = 1;
parameter CLKOUT0_DUTY_CYCLE = 50000;
parameter signed CLKOUT0_PHASE = 0;
parameter [6:0] CLKOUT1_DIVIDE = 1;
parameter CLKOUT1_DUTY_CYCLE = 50000;
parameter signed CLKOUT1_PHASE = 0;
parameter [6:0] CLKOUT2_DIVIDE = 1;
parameter CLKOUT2_DUTY_CYCLE = 50000;
parameter signed CLKOUT2_PHASE = 0;
parameter [6:0] CLKOUT3_DIVIDE = 1;
parameter CLKOUT3_DUTY_CYCLE = 50000;
parameter signed CLKOUT3_PHASE = 0;
parameter [6:0] CLKOUT4_DIVIDE = 1;
parameter CLKOUT4_DUTY_CYCLE = 50000;
parameter signed CLKOUT4_PHASE = 0;
parameter [6:0] CLKOUT5_DIVIDE = 1;
parameter CLKOUT5_DUTY_CYCLE = 50000;
parameter signed CLKOUT5_PHASE = 0;
// Compute PLL's registers content
localparam CLKFBOUT_REGS = pll_clkregs(CLKFBOUT_MULT, 50000, CLKFBOUT_PHASE);
localparam DIVCLK_REGS = pll_clkregs(DIVCLK_DIVIDE, 50000, 0);
localparam CLKOUT0_REGS = pll_clkregs(CLKOUT0_DIVIDE, CLKOUT0_DUTY_CYCLE, CLKOUT0_PHASE);
localparam CLKOUT1_REGS = pll_clkregs(CLKOUT1_DIVIDE, CLKOUT1_DUTY_CYCLE, CLKOUT1_PHASE);
localparam CLKOUT2_REGS = pll_clkregs(CLKOUT2_DIVIDE, CLKOUT2_DUTY_CYCLE, CLKOUT2_PHASE);
localparam CLKOUT3_REGS = pll_clkregs(CLKOUT3_DIVIDE, CLKOUT3_DUTY_CYCLE, CLKOUT3_PHASE);
localparam CLKOUT4_REGS = pll_clkregs(CLKOUT4_DIVIDE, CLKOUT4_DUTY_CYCLE, CLKOUT4_PHASE);
localparam CLKOUT5_REGS = pll_clkregs(CLKOUT5_DIVIDE, CLKOUT5_DUTY_CYCLE, CLKOUT5_PHASE);
// Handle inputs that should have certain logic levels when left unconnected
// If unconnected, CLKINSEL should be set to VCC by default
localparam INV_CLKINSEL = (_TECHMAP_CONSTMSK_CLKINSEL_ == 1) ? !_TECHMAP_CONSTVAL_CLKINSEL_ ^ IS_CLKINSEL_INVERTED:
(_TECHMAP_CONSTVAL_CLKINSEL_ === 0) ? IS_CLKINSEL_INVERTED : IS_CLKINSEL_INVERTED;
wire clkinsel = (_TECHMAP_CONSTMSK_CLKINSEL_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_CLKINSEL_ === 0) ? 1'b1 : CLKINSEL;
localparam INV_PWRDWN = (_TECHMAP_CONSTMSK_PWRDWN_ == 1) ? !_TECHMAP_CONSTVAL_PWRDWN_ ^ IS_PWRDWN_INVERTED:
(_TECHMAP_CONSTVAL_PWRDWN_ === 0) ? ~IS_PWRDWN_INVERTED : IS_PWRDWN_INVERTED;
wire pwrdwn = (_TECHMAP_CONSTMSK_PWRDWN_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_PWRDWN_ === 0) ? 1'b1 : PWRDWN;
localparam INV_RST = (_TECHMAP_CONSTMSK_RST_ == 1) ? !_TECHMAP_CONSTVAL_RST_ ^ IS_RST_INVERTED:
(_TECHMAP_CONSTVAL_RST_ === 0) ? ~IS_RST_INVERTED : IS_RST_INVERTED;
wire rst = (_TECHMAP_CONSTMSK_RST_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_RST_ === 0) ? 1'b1 : RST;
wire dclk = (_TECHMAP_CONSTMSK_DCLK_ == 1) ? _TECHMAP_CONSTVAL_DCLK_ :
(_TECHMAP_CONSTVAL_DCLK_ == 0) ? 1'b0 : DCLK;
wire den = (_TECHMAP_CONSTMSK_DEN_ == 1) ? _TECHMAP_CONSTVAL_DEN_ :
(_TECHMAP_CONSTVAL_DEN_ == 0) ? 1'b0 : DEN;
wire dwe = (_TECHMAP_CONSTMSK_DWE_ == 1) ? _TECHMAP_CONSTVAL_DWE_ :
(_TECHMAP_CONSTVAL_DWE_ == 0) ? 1'b0 : DWE;
// The substituted cell
PLLE2_ADV_VPR #
(
// Inverters
.INV_CLKINSEL(INV_CLKINSEL),
.ZINV_PWRDWN (INV_PWRDWN),
.ZINV_RST (INV_RST),
// Straight mapped parameters
.STARTUP_WAIT(STARTUP_WAIT == "TRUE"),
// Lookup tables
.LKTABLE(pll_lktable_lookup(CLKFBOUT_MULT)),
.TABLE(pll_table_lookup(CLKFBOUT_MULT, BANDWIDTH)),
// FIXME: How to compute values the two below ?
.FILTREG1_RESERVED(12'b0000_00001000),
.LOCKREG3_RESERVED(1'b1),
// Clock feedback settings
.CLKFBOUT_CLKOUT1_HIGH_TIME (CLKFBOUT_REGS[11:6]),
.CLKFBOUT_CLKOUT1_LOW_TIME (CLKFBOUT_REGS[5:0]),
.CLKFBOUT_CLKOUT1_PHASE_MUX (CLKFBOUT_REGS[15:13]),
.CLKFBOUT_CLKOUT2_DELAY_TIME (CLKFBOUT_REGS[21:16]),
.CLKFBOUT_CLKOUT2_EDGE (CLKFBOUT_REGS[23]),
.CLKFBOUT_CLKOUT2_NO_COUNT (CLKFBOUT_REGS[22]),
// Internal VCO divider settings
.DIVCLK_DIVCLK_HIGH_TIME (DIVCLK_REGS[11:6]),
.DIVCLK_DIVCLK_LOW_TIME (DIVCLK_REGS[5:0]),
.DIVCLK_DIVCLK_NO_COUNT (DIVCLK_REGS[22]),
.DIVCLK_DIVCLK_EDGE (DIVCLK_REGS[23]),
// CLKOUT0
.CLKOUT0_CLKOUT1_HIGH_TIME (CLKOUT0_REGS[11:6]),
.CLKOUT0_CLKOUT1_LOW_TIME (CLKOUT0_REGS[5:0]),
.CLKOUT0_CLKOUT1_PHASE_MUX (CLKOUT0_REGS[15:13]),
.CLKOUT0_CLKOUT2_DELAY_TIME (CLKOUT0_REGS[21:16]),
.CLKOUT0_CLKOUT2_EDGE (CLKOUT0_REGS[23]),
.CLKOUT0_CLKOUT2_NO_COUNT (CLKOUT0_REGS[22]),
// CLKOUT1
.CLKOUT1_CLKOUT1_HIGH_TIME (CLKOUT1_REGS[11:6]),
.CLKOUT1_CLKOUT1_LOW_TIME (CLKOUT1_REGS[5:0]),
.CLKOUT1_CLKOUT1_PHASE_MUX (CLKOUT1_REGS[15:13]),
.CLKOUT1_CLKOUT2_DELAY_TIME (CLKOUT1_REGS[21:16]),
.CLKOUT1_CLKOUT2_EDGE (CLKOUT1_REGS[23]),
.CLKOUT1_CLKOUT2_NO_COUNT (CLKOUT1_REGS[22]),
// CLKOUT2
.CLKOUT2_CLKOUT1_HIGH_TIME (CLKOUT2_REGS[11:6]),
.CLKOUT2_CLKOUT1_LOW_TIME (CLKOUT2_REGS[5:0]),
.CLKOUT2_CLKOUT1_PHASE_MUX (CLKOUT2_REGS[15:13]),
.CLKOUT2_CLKOUT2_DELAY_TIME (CLKOUT2_REGS[21:16]),
.CLKOUT2_CLKOUT2_EDGE (CLKOUT2_REGS[23]),
.CLKOUT2_CLKOUT2_NO_COUNT (CLKOUT2_REGS[22]),
// CLKOUT3
.CLKOUT3_CLKOUT1_HIGH_TIME (CLKOUT3_REGS[11:6]),
.CLKOUT3_CLKOUT1_LOW_TIME (CLKOUT3_REGS[5:0]),
.CLKOUT3_CLKOUT1_PHASE_MUX (CLKOUT3_REGS[15:13]),
.CLKOUT3_CLKOUT2_DELAY_TIME (CLKOUT3_REGS[21:16]),
.CLKOUT3_CLKOUT2_EDGE (CLKOUT3_REGS[23]),
.CLKOUT3_CLKOUT2_NO_COUNT (CLKOUT3_REGS[22]),
// CLKOUT4
.CLKOUT4_CLKOUT1_HIGH_TIME (CLKOUT4_REGS[11:6]),
.CLKOUT4_CLKOUT1_LOW_TIME (CLKOUT4_REGS[5:0]),
.CLKOUT4_CLKOUT1_PHASE_MUX (CLKOUT4_REGS[15:13]),
.CLKOUT4_CLKOUT2_DELAY_TIME (CLKOUT4_REGS[21:16]),
.CLKOUT4_CLKOUT2_EDGE (CLKOUT4_REGS[23]),
.CLKOUT4_CLKOUT2_NO_COUNT (CLKOUT4_REGS[22]),
// CLKOUT5
.CLKOUT5_CLKOUT1_HIGH_TIME (CLKOUT5_REGS[11:6]),
.CLKOUT5_CLKOUT1_LOW_TIME (CLKOUT5_REGS[5:0]),
.CLKOUT5_CLKOUT1_PHASE_MUX (CLKOUT5_REGS[15:13]),
.CLKOUT5_CLKOUT2_DELAY_TIME (CLKOUT5_REGS[21:16]),
.CLKOUT5_CLKOUT2_EDGE (CLKOUT5_REGS[23]),
.CLKOUT5_CLKOUT2_NO_COUNT (CLKOUT5_REGS[22]),
// Clock output enable controls
.CLKFBOUT_CLKOUT1_OUTPUT_ENABLE(_TECHMAP_CONSTVAL_CLKFBOUT_ === 1'bX),
.CLKOUT0_CLKOUT1_OUTPUT_ENABLE(_TECHMAP_CONSTVAL_CLKOUT0_ === 1'bX),
.CLKOUT1_CLKOUT1_OUTPUT_ENABLE(_TECHMAP_CONSTVAL_CLKOUT1_ === 1'bX),
.CLKOUT2_CLKOUT1_OUTPUT_ENABLE(_TECHMAP_CONSTVAL_CLKOUT2_ === 1'bX),
.CLKOUT3_CLKOUT1_OUTPUT_ENABLE(_TECHMAP_CONSTVAL_CLKOUT3_ === 1'bX),
.CLKOUT4_CLKOUT1_OUTPUT_ENABLE(_TECHMAP_CONSTVAL_CLKOUT4_ === 1'bX),
.CLKOUT5_CLKOUT1_OUTPUT_ENABLE(_TECHMAP_CONSTVAL_CLKOUT5_ === 1'bX)
)
_TECHMAP_REPLACE_
(
.CLKFBIN(CLKFBIN),
.CLKIN1(CLKIN1),
.CLKIN2(CLKIN2),
.CLKFBOUT(CLKFBOUT),
.CLKOUT0(CLKOUT0),
.CLKOUT1(CLKOUT1),
.CLKOUT2(CLKOUT2),
.CLKOUT3(CLKOUT3),
.CLKOUT4(CLKOUT4),
.CLKOUT5(CLKOUT5),
.CLKINSEL (clkinsel),
.PWRDWN (pwrdwn),
.RST (rst),
.LOCKED (LOCKED),
.DCLK (dclk),
.DEN (den),
.DWE (dwe),
.DRDY (DRDY),
.DADDR(DADDR),
.DI (DI),
.DO (DO)
);
endmodule
// PLLE2_BASE
module PLLE2_BASE
(
input CLKFBIN,
input CLKIN,
output CLKFBOUT,
output CLKOUT0,
output CLKOUT1,
output CLKOUT2,
output CLKOUT3,
output CLKOUT4,
output CLKOUT5,
input RST,
output LOCKED
);
parameter IS_CLKINSEL_INVERTED = 1'b0;
parameter IS_RST_INVERTED = 1'b0;
parameter BANDWIDTH = "OPTIMIZED";
parameter STARTUP_WAIT = "FALSE";
parameter CLKIN1_PERIOD = 0.0;
parameter REF_JITTER1 = 0.1;
parameter [5:0] DIVCLK_DIVIDE = 1;
parameter [5:0] CLKFBOUT_MULT = 1;
parameter signed CLKFBOUT_PHASE = 0;
parameter [6:0] CLKOUT0_DIVIDE = 1;
parameter CLKOUT0_DUTY_CYCLE = 50000;
parameter signed CLKOUT0_PHASE = 0;
parameter [6:0] CLKOUT1_DIVIDE = 1;
parameter CLKOUT1_DUTY_CYCLE = 50000;
parameter signed CLKOUT1_PHASE = 0;
parameter [6:0] CLKOUT2_DIVIDE = 1;
parameter CLKOUT2_DUTY_CYCLE = 50000;
parameter signed CLKOUT2_PHASE = 0;
parameter [6:0] CLKOUT3_DIVIDE = 1;
parameter CLKOUT3_DUTY_CYCLE = 50000;
parameter signed CLKOUT3_PHASE = 0;
parameter [6:0] CLKOUT4_DIVIDE = 1;
parameter CLKOUT4_DUTY_CYCLE = 50000;
parameter signed CLKOUT4_PHASE = 0;
parameter [6:0] CLKOUT5_DIVIDE = 1;
parameter CLKOUT5_DUTY_CYCLE = 50000;
parameter signed CLKOUT5_PHASE = 0;
// The substituted cell
PLLE2_ADV #
(
.IS_CLKINSEL_INVERTED(IS_CLKINSEL_INVERTED),
.IS_RST_INVERTED(IS_RST_INVERTED),
.IS_PWRDWN_INVERTED(1'b0),
.BANDWIDTH(BANDWIDTH),
.STARTUP_WAIT(STARTUP_WAIT),
.CLKIN1_PERIOD(CLKIN1_PERIOD),
.REF_JITTER1(REF_JITTER1),
.DIVCLK_DIVIDE(DIVCLK_DIVIDE),
.CLKFBOUT_MULT(CLKFBOUT_MULT),
.CLKFBOUT_PHASE(CLKFBOUT_PHASE),
.CLKOUT0_DIVIDE(CLKOUT0_DIVIDE),
.CLKOUT0_DUTY_CYCLE(CLKOUT0_DUTY_CYCLE),
.CLKOUT0_PHASE(CLKOUT0_PHASE),
.CLKOUT1_DIVIDE(CLKOUT1_DIVIDE),
.CLKOUT1_DUTY_CYCLE(CLKOUT1_DUTY_CYCLE),
.CLKOUT1_PHASE(CLKOUT1_PHASE),
.CLKOUT2_DIVIDE(CLKOUT2_DIVIDE),
.CLKOUT2_DUTY_CYCLE(CLKOUT2_DUTY_CYCLE),
.CLKOUT2_PHASE(CLKOUT2_PHASE),
.CLKOUT3_DIVIDE(CLKOUT3_DIVIDE),
.CLKOUT3_DUTY_CYCLE(CLKOUT3_DUTY_CYCLE),
.CLKOUT3_PHASE(CLKOUT3_PHASE),
.CLKOUT4_DIVIDE(CLKOUT4_DIVIDE),
.CLKOUT4_DUTY_CYCLE(CLKOUT4_DUTY_CYCLE),
.CLKOUT4_PHASE(CLKOUT4_PHASE),
.CLKOUT5_DIVIDE(CLKOUT5_DIVIDE),
.CLKOUT5_DUTY_CYCLE(CLKOUT5_DUTY_CYCLE),
.CLKOUT5_PHASE(CLKOUT5_PHASE)
)
_TECHMAP_REPLACE_
(
.CLKFBIN(CLKFBIN),
.CLKIN1(CLKIN),
.CLKINSEL(1'b1),
.CLKFBOUT(CLKFBOUT),
.CLKOUT0(CLKOUT0),
.CLKOUT1(CLKOUT1),
.CLKOUT2(CLKOUT2),
.CLKOUT3(CLKOUT3),
.CLKOUT4(CLKOUT4),
.CLKOUT5(CLKOUT5),
.PWRDWN(1'b0),
.RST(RST),
.LOCKED(LOCKED),
.DCLK(1'b0),
.DEN(1'b0),
.DWE(1'b0),
.DRDY(),
.DADDR(7'd0),
.DI(16'd0),
.DO()
);
endmodule
// ............................................................................
// Given MMCM divide, duty_cycle and phase calculates content of the
// CLKREG1 and CLKREG2 when no fractional divide is used.
function [31:0] mmcm_clkregs
(
input [7:0] divide, // Max divide is 128
input [31:0] duty_cycle, // Multiplied by 100,000
input signed [31:0] phase // Phase is given in degrees (-360,000 to 360,000)
);
// Identical to the PLL one
mmcm_clkregs = pll_clkregs(divide, duty_cycle, phase);
endfunction
// Computes content of CLKREG1 and CLKREG2 plus the shared part for fractional
// divider.
function [37:0] mmcm_clkregs_frac
(
input [17:0] divide, // Max divide is 128000 (int + 1000 * frac)
input [31:0] duty_cycle, // Multiplied by 100,000
input signed [31:0] phase // Phase is given in degrees (-360,000 to 360,000)
);
// Decompose the fractional divider
reg [7:0] divide_int;
reg [9:0] divide_frac;
divide_int = (divide / 1000);
divide_frac = (divide % 1000) / 125;
// Calculate wf_fall_time and wf_rise_time
reg [7:0] even_part_high;
reg [7:0] even_part_low;
reg [7:0] odd;
reg [9:0] odd_and_frac;
reg [7:0] lt_frac;
reg [7:0] ht_frac;
reg [7:0] pm_fall;
reg [7:0] pm_rise;
reg [0:0] wf_fall_frac;
reg [0:0] wf_rise_frac;
even_part_high = divide_int >> 1;
even_part_low = even_part_high;
odd = divide_int - even_part_high - even_part_low;
odd_and_frac = (8 * odd) + divide_frac;
lt_frac = even_part_high - (odd_and_frac <= 9);
ht_frac = even_part_low - (odd_and_frac <= 8);
pm_fall = {odd[6:0], 2'b00} + {6'h00, divide_frac[2:1]};
pm_rise = 0;
wf_fall_frac = ((odd_and_frac >= 2) && (odd_and_frac <= 9)) || ((divide_frac == 1) && (divide_int == 2));
wf_rise_frac = (odd_and_frac >= 1) && (odd_and_frac <= 8);
// Calculate phase shift in fractional cycles
reg [31:0] a_per_in_octets;
reg [31:0] a_phase_in_cycles;
reg [63:0] dt_calc;
reg [ 7:0] dt;
reg [ 7:0] pm_rise_frac_filtered;
reg [ 7:0] pm_fall_frac_filtered;
a_per_in_octets = (8 * divide_int) + divide_frac;
a_phase_in_cycles = (phase + 10) * a_per_in_octets / 360000;
dt_calc = ((phase + 10) * a_per_in_octets / 8 ) / 360000;
dt = dt_calc[7:0];
pm_rise_frac_filtered = a_phase_in_cycles % 8;
pm_fall_frac_filtered = (pm_fall + pm_rise_frac_filtered) % 8;
// Pack output data
mmcm_clkregs_frac = {
// Shared: RESERVED[1:0], FRAC_TIME[2:0], FRAC_WF_FALL
2'b11, pm_fall_frac_filtered[2:0], wf_fall_frac,
// CLKREG2: RESERVED[0:0], FRAC[2:0], FRAC_EN[0:0], FRAC_WF_R[0:0], MX[1:0], EDGE, NO_COUNT, DELAY_TIME[5:0]
1'b0, divide_frac[2:0], 1'b1, wf_rise_frac, 4'h0, dt[5:0],
// CLKREG1: PHASE_MUX[2:0], RESERVED, HIGH_TIME[5:0], LOW_TIME[5:0]
pm_rise_frac_filtered[2:0], 1'b0, ht_frac[5:0], lt_frac[5:0]
};
endfunction
// This function takes the divide value and outputs the necessary lock values
function [39:0] mmcm_lktable_lookup
(
input [6:0] divide // Max divide is 64
);
// The look-up table is identical to the one for PLL
mmcm_lktable_lookup = pll_lktable_lookup(divide);
endfunction
// This function takes the divide value and the bandwidth setting of a MMCM
// and outputs the digital filter settings necessary.
function [9:0] mmcm_table_lookup
(
input [6:0] divide, // Max divide is 64
input [8*9:0] BANDWIDTH,
input [0:0] SS_EN
);
reg [639:0] lookup_low;
reg [639:0] lookup_ss;
reg [639:0] lookup_high;
reg [639:0] lookup_optimized;
reg [9:0] lookup_entry;
lookup_low = {
// CP_RES_LFHF
10'b0010_1111_00,
10'b0010_1111_00,
10'b0010_1111_00,
10'b0010_1111_00,
10'b0010_0111_00,
10'b0010_1011_00,
10'b0010_1101_00,
10'b0010_0011_00,
10'b0010_0101_00,
10'b0010_0101_00,
10'b0010_1001_00,
10'b0010_1110_00,
10'b0010_1110_00,
10'b0010_1110_00,
10'b0010_1110_00,
10'b0010_0001_00,
10'b0010_0001_00,
10'b0010_0001_00,
10'b0010_0110_00,
10'b0010_0110_00,
10'b0010_0110_00,
10'b0010_0110_00,
10'b0010_0110_00,
10'b0010_0110_00,
10'b0010_0110_00,
10'b0010_1010_00,
10'b0010_1010_00,
10'b0010_1010_00,
10'b0010_1010_00,
10'b0010_1010_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_1100_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00,
10'b0010_0010_00
};
lookup_ss = {
// CP_RES_LFHF
10'b0010_1111_11,
10'b0010_1111_11,
10'b0010_1111_11,
10'b0010_1111_11,
10'b0010_0111_11,
10'b0010_1011_11,
10'b0010_1101_11,
10'b0010_0011_11,
10'b0010_0101_11,
10'b0010_0101_11,
10'b0010_1001_11,
10'b0010_1110_11,
10'b0010_1110_11,
10'b0010_1110_11,
10'b0010_1110_11,
10'b0010_0001_11,
10'b0010_0001_11,
10'b0010_0001_11,
10'b0010_0110_11,
10'b0010_0110_11,
10'b0010_0110_11,
10'b0010_0110_11,
10'b0010_0110_11,
10'b0010_0110_11,
10'b0010_0110_11,
10'b0010_1010_11,
10'b0010_1010_11,
10'b0010_1010_11,
10'b0010_1010_11,
10'b0010_1010_11,
10'b0010_1100_11,
10'b0010_1100_11,
10'b0010_1100_11,
10'b0010_1100_11,
10'b0010_1100_11,
10'b0010_1100_11,
10'b0010_1100_11,
10'b0010_1100_11,
10'b0010_1100_11,
10'b0010_1100_11,
10'b0010_1100_11,
10'b0010_1100_11,
10'b0010_1100_11,
10'b0010_1100_11,
10'b0010_1100_11,
10'b0010_1100_11,
10'b0010_1100_11,
10'b0010_0010_11,
10'b0010_0010_11,
10'b0010_0010_11,
10'b0010_0010_11,
10'b0010_0010_11,
10'b0010_0010_11,
10'b0010_0010_11,
10'b0010_0010_11,
10'b0010_0010_11,
10'b0010_0010_11,
10'b0010_0010_11,
10'b0010_0010_11,
10'b0010_0010_11,
10'b0010_0010_11,
10'b0010_0010_11,
10'b0010_0010_11,
10'b0010_0010_11
};
lookup_high = {
// CP_RES_LFHF
10'b0010_1111_00,
10'b0100_1111_00,
10'b0101_1011_00,
10'b0111_0111_00,
10'b1101_0111_00,
10'b1110_1011_00,
10'b1110_1101_00,
10'b1111_0011_00,
10'b1110_0101_00,
10'b1111_0101_00,
10'b1111_1001_00,
10'b1101_0001_00,
10'b1111_1001_00,
10'b1111_1001_00,
10'b1111_1001_00,
10'b1111_1001_00,
10'b1111_0101_00,
10'b1111_0101_00,
10'b1100_0001_00,
10'b1100_0001_00,
10'b1100_0001_00,
10'b0101_1100_00,
10'b0101_1100_00,
10'b0101_1100_00,
10'b0101_1100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0111_0001_00,
10'b0111_0001_00,
10'b0100_1100_00,
10'b0100_1100_00,
10'b0100_1100_00,
10'b0100_1100_00,
10'b0110_0001_00,
10'b0110_0001_00,
10'b0101_0110_00,
10'b0101_0110_00,
10'b0101_0110_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0100_1010_00,
10'b0011_1100_00,
10'b0011_1100_00
};
lookup_optimized = {
// CP_RES_LFHF
10'b0010_1111_00,
10'b0100_1111_00,
10'b0101_1011_00,
10'b0111_0111_00,
10'b1101_0111_00,
10'b1110_1011_00,
10'b1110_1101_00,
10'b1111_0011_00,
10'b1110_0101_00,
10'b1111_0101_00,
10'b1111_1001_00,
10'b1101_0001_00,
10'b1111_1001_00,
10'b1111_1001_00,
10'b1111_1001_00,
10'b1111_1001_00,
10'b1111_0101_00,
10'b1111_0101_00,
10'b1100_0001_00,
10'b1100_0001_00,
10'b1100_0001_00,
10'b0101_1100_00,
10'b0101_1100_00,
10'b0101_1100_00,
10'b0101_1100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0011_0100_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0010_1000_00,
10'b0111_0001_00,
10'b0111_0001_00,
10'b0100_1100_00,
10'b0100_1100_00,
10'b0100_1100_00,
10'b0100_1100_00,
10'b0110_0001_00,
10'b0110_0001_00,
10'b0101_0110_00,
10'b0101_0110_00,
10'b0101_0110_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0010_0100_00,
10'b0100_1010_00,
10'b0011_1100_00,
10'b0011_1100_00
};
if (SS_EN == 1'b1) begin
mmcm_table_lookup = lookup_ss[((64-divide)*10) +: 10];
end else begin
if (BANDWIDTH == "LOW") begin
mmcm_table_lookup = lookup_low[((64-divide)*10) +: 10];
end else if (BANDWIDTH == "HIGH") begin
mmcm_table_lookup = lookup_high[((64-divide)*10) +: 10];
end else if (BANDWIDTH == "OPTIMIZED") begin
mmcm_table_lookup = lookup_optimized[((64-divide)*10) +: 10];
end
end
endfunction
// ............................................................................
// IMPORTANT NOTE: Due to lack of support for real type parameters in Yosys
// the MMCM parameters that define duty cycles and phase shifts have to be
// provided as integers! The DUTY_CYCLE is expressed as % of high time times
// 1000 whereas the PHASE is expressed in degrees times 1000. Fractional
// dividers are also expressed as multiplied times 1000.
// MMCME2_ADV
module MMCME2_ADV
(
input CLKFBIN,
input CLKIN1,
input CLKIN2,
input CLKINSEL,
output CLKFBOUT,
output CLKFBOUTB,
output CLKOUT0,
output CLKOUT0B,
output CLKOUT1,
output CLKOUT1B,
output CLKOUT2,
output CLKOUT2B,
output CLKOUT3,
output CLKOUT3B,
output CLKOUT4,
output CLKOUT5,
output CLKOUT6,
output CLKINSTOPPED,
output CLKFBSTOPPED,
input PWRDWN,
input RST,
output LOCKED,
input PSCLK,
input PSEN,
input PSINCDEC,
output PSDONE,
input DCLK,
input DEN,
input DWE,
output DRDY,
input [ 6:0] DADDR,
input [15:0] DI,
output [15:0] DO
);
parameter _TECHMAP_CONSTMSK_CLKINSEL_ = 0;
parameter _TECHMAP_CONSTVAL_CLKINSEL_ = 0;
parameter _TECHMAP_CONSTMSK_RST_ = 0;
parameter _TECHMAP_CONSTVAL_RST_ = 0;
parameter _TECHMAP_CONSTMSK_PWRDWN_ = 0;
parameter _TECHMAP_CONSTVAL_PWRDWN_ = 0;
parameter _TECHMAP_CONSTMSK_CLKFBOUT_ = 0;
parameter _TECHMAP_CONSTVAL_CLKFBOUT_ = 0;
parameter _TECHMAP_CONSTMSK_CLKFBOUTB_= 0;
parameter _TECHMAP_CONSTVAL_CLKFBOUTB_= 0;
parameter _TECHMAP_CONSTMSK_CLKOUT0_ = 0;
parameter _TECHMAP_CONSTVAL_CLKOUT0_ = 0;
parameter _TECHMAP_CONSTMSK_CLKOUT0B_ = 0;
parameter _TECHMAP_CONSTVAL_CLKOUT0B_ = 0;
parameter _TECHMAP_CONSTMSK_CLKOUT1_ = 0;
parameter _TECHMAP_CONSTVAL_CLKOUT1_ = 0;
parameter _TECHMAP_CONSTMSK_CLKOUT1B_ = 0;
parameter _TECHMAP_CONSTVAL_CLKOUT1B_ = 0;
parameter _TECHMAP_CONSTMSK_CLKOUT2_ = 0;
parameter _TECHMAP_CONSTVAL_CLKOUT2_ = 0;
parameter _TECHMAP_CONSTMSK_CLKOUT2B_ = 0;
parameter _TECHMAP_CONSTVAL_CLKOUT2B_ = 0;
parameter _TECHMAP_CONSTMSK_CLKOUT3_ = 0;
parameter _TECHMAP_CONSTVAL_CLKOUT3_ = 0;
parameter _TECHMAP_CONSTMSK_CLKOUT3B_ = 0;
parameter _TECHMAP_CONSTVAL_CLKOUT3B_ = 0;
parameter _TECHMAP_CONSTMSK_CLKOUT4_ = 0;
parameter _TECHMAP_CONSTVAL_CLKOUT4_ = 0;
parameter _TECHMAP_CONSTMSK_CLKOUT5_ = 0;
parameter _TECHMAP_CONSTVAL_CLKOUT5_ = 0;
parameter _TECHMAP_CONSTMSK_CLKOUT6_ = 0;
parameter _TECHMAP_CONSTVAL_CLKOUT6_ = 0;
parameter _TECHMAP_CONSTMSK_PSCLK_ = 0;
parameter _TECHMAP_CONSTVAL_PSCLK_ = 0;
parameter _TECHMAP_CONSTMSK_PSEN_ = 0;
parameter _TECHMAP_CONSTVAL_PSEN_ = 0;
parameter _TECHMAP_CONSTMSK_PSINCDEC_ = 0;
parameter _TECHMAP_CONSTVAL_PSINCDEC_ = 0;
parameter _TECHMAP_CONSTMSK_DCLK_ = 0;
parameter _TECHMAP_CONSTVAL_DCLK_ = 0;
parameter _TECHMAP_CONSTMSK_DEN_ = 0;
parameter _TECHMAP_CONSTVAL_DEN_ = 0;
parameter _TECHMAP_CONSTMSK_DWE_ = 0;
parameter _TECHMAP_CONSTVAL_DWE_ = 0;
parameter IS_CLKINSEL_INVERTED = 1'b0;
parameter IS_RST_INVERTED = 1'b0;
parameter IS_PWRDWN_INVERTED = 1'b0;
parameter IS_PSEN_INVERTED = 1'b0;
parameter IS_PSINCDEC_INVERTED = 1'b0;
parameter BANDWIDTH = "OPTIMIZED";
parameter STARTUP_WAIT = "FALSE";
// Previously, the default COMPENSATION value was ZHOLD, resulting in non-functional
// bitstreams when the feedback loop is closed on-chip.
// Setting it to INTERNAL as the default creates working bitstreams for that case.
// This bug was not previously uncovered since the MMCM tests all explicitly
// specified a COMPENSATION value so the ZHOLD default was never used.
// Setting it here in the techmapper means that existing code using on-chip
// MMCM feedback without specifying a COMPENSATION value can be ported
// unmodified into the toolflow and will result in functional bitstreams.
// A test was added to test the case when relying on the default COMPENSATION value.
parameter COMPENSATION = "INTERNAL";
parameter CLKIN1_PERIOD = 0.0;
parameter REF_JITTER1 = 0.01;
parameter CLKIN2_PERIOD = 0.0;
parameter REF_JITTER2 = 0.01;
parameter [5:0] DIVCLK_DIVIDE = 1;
parameter CLKFBOUT_MULT_F = 5000;
parameter signed [31:0] CLKFBOUT_PHASE = 0;
parameter CLKFBOUT_USE_FINE_PS = "FALSE";
parameter CLKOUT0_DIVIDE_F = 1000;
parameter CLKOUT0_DUTY_CYCLE = 50000;
parameter signed [31:0] CLKOUT0_PHASE = 0;
parameter CLKOUT0_USE_FINE_PS = "FALSE";
parameter CLKOUT1_DIVIDE = 1;
parameter CLKOUT1_DUTY_CYCLE = 50000;
parameter signed [31:0] CLKOUT1_PHASE = 0;
parameter CLKOUT1_USE_FINE_PS = "FALSE";
parameter CLKOUT2_DIVIDE = 1;
parameter CLKOUT2_DUTY_CYCLE = 50000;
parameter signed [31:0] CLKOUT2_PHASE = 0;
parameter CLKOUT2_USE_FINE_PS = "FALSE";
parameter CLKOUT3_DIVIDE = 1;
parameter CLKOUT3_DUTY_CYCLE = 50000;
parameter signed [31:0] CLKOUT3_PHASE = 0;
parameter CLKOUT3_USE_FINE_PS = "FALSE";
parameter CLKOUT4_DIVIDE = 1;
parameter CLKOUT4_DUTY_CYCLE = 50000;
parameter signed [31:0] CLKOUT4_PHASE = 0;
parameter CLKOUT4_USE_FINE_PS = "FALSE";
parameter CLKOUT5_DIVIDE = 1;
parameter CLKOUT5_DUTY_CYCLE = 50000;
parameter signed [31:0] CLKOUT5_PHASE = 0;
parameter CLKOUT5_USE_FINE_PS = "FALSE";
parameter CLKOUT6_DIVIDE = 1;
parameter CLKOUT6_DUTY_CYCLE = 50000;
parameter signed [31:0] CLKOUT6_PHASE = 0;
parameter CLKOUT6_USE_FINE_PS = "FALSE";
parameter CLKOUT4_CASCADE = 0;
parameter SS_EN = "FALSE";
parameter SS_MODE = "CENTER_HIGH";
parameter SS_MOD_PERIOD = 10000;
// Sanity check parameters
if (BANDWIDTH != "HIGH" && BANDWIDTH != "LOW" && BANDWIDTH != "OPTIMIZED") begin
wire _TECHMAP_FAIL_;
$error("BANDWIDTH must be one of: 'HIGH', 'LOW', 'OPTIMIZED'");
end
if (COMPENSATION != "ZHOLD" && COMPENSATION != "EXTERNAL" && COMPENSATION != "INTERNAL" && COMPENSATION != "BUF_IN") begin
wire _TECHMAP_FAIL_;
$error("COMPENSATION must be one of: 'ZHOLD', 'EXTERNAL', 'INTERNAL', 'BUF_IN'");
end
if (DIVCLK_DIVIDE < 1 || DIVCLK_DIVIDE > 106) begin
wire _TECHMAP_FAIL_;
$error("DIVCLK_DIVIDE must range from 1 to 106");
end
if (CLKFBOUT_MULT_F < 2000 || CLKFBOUT_MULT_F > 64000) begin
wire _TECHMAP_FAIL_;
$error("CLKFBOUT_MULT_F must range from 2000 to 64000");
end
if (CLKFBOUT_PHASE < -32'sd360000 || CLKFBOUT_PHASE > 32'sd360000) begin
wire _TECHMAP_FAIL_;
$error("CLKFBOUT_PHASE must range from -360000 to 360000");
end
if (CLKOUT0_DIVIDE_F < 1000 || CLKOUT0_DIVIDE_F > 128000) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT0_DIVIDE_F must range from 1000 to 128000");
end
if (CLKOUT1_DIVIDE < 1 || CLKOUT1_DIVIDE > 128) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT1_DIVIDE must range from 1 to 128");
end
if (CLKOUT2_DIVIDE < 1 || CLKOUT2_DIVIDE > 128) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT2_DIVIDE must range from 1 to 128");
end
if (CLKOUT3_DIVIDE < 1 || CLKOUT3_DIVIDE > 128) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT3_DIVIDE must range from 1 to 128");
end
if (CLKOUT4_DIVIDE < 1 || CLKOUT4_DIVIDE > 128) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT4_DIVIDE must range from 1 to 128");
end
if (CLKOUT5_DIVIDE < 1 || CLKOUT5_DIVIDE > 128) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT5_DIVIDE must range from 1 to 128");
end
if (CLKOUT6_DIVIDE < 1 || CLKOUT6_DIVIDE > 128) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT6_DIVIDE must range from 1 to 128");
end
if (CLKOUT0_PHASE < -'sd360000 || CLKOUT0_PHASE > 'sd360000) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT0_PHASE must range from -360000 to 360000");
end
if (CLKOUT1_PHASE < -'sd360000 || CLKOUT1_PHASE > 'sd360000) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT1_PHASE must range from -360000 to 360000");
end
if (CLKOUT2_PHASE < -'sd360000 || CLKOUT2_PHASE > 'sd360000) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT2_PHASE must range from -360000 to 360000");
end
if (CLKOUT3_PHASE < -'sd360000 || CLKOUT3_PHASE > 'sd360000) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT3_PHASE must range from -360000 to 360000");
end
if (CLKOUT4_PHASE < -'sd360000 || CLKOUT4_PHASE > 'sd360000) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT4_PHASE must range from -360000 to 360000");
end
if (CLKOUT5_PHASE < -'sd360000 || CLKOUT5_PHASE > 'sd360000) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT5_PHASE must range from -360000 to 360000");
end
if (CLKOUT6_PHASE < -'sd360000 || CLKOUT6_PHASE > 'sd360000) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT6_PHASE must range from -360000 to 360000");
end
if (CLKOUT0_DUTY_CYCLE < 1000 || CLKOUT0_DUTY_CYCLE > 99000) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT0_DUTY_CYCLE must range from 1000 to 99000");
end
if (CLKOUT1_DUTY_CYCLE < 1000 || CLKOUT1_DUTY_CYCLE > 99000) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT1_DUTY_CYCLE must range from 1000 to 99000");
end
if (CLKOUT2_DUTY_CYCLE < 1000 || CLKOUT2_DUTY_CYCLE > 99000) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT2_DUTY_CYCLE must range from 1000 to 99000");
end
if (CLKOUT3_DUTY_CYCLE < 1000 || CLKOUT3_DUTY_CYCLE > 99000) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT3_DUTY_CYCLE must range from 1000 to 99000");
end
if (CLKOUT4_DUTY_CYCLE < 1000 || CLKOUT4_DUTY_CYCLE > 99000) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT4_DUTY_CYCLE must range from 1000 to 99000");
end
if (CLKOUT5_DUTY_CYCLE < 1000 || CLKOUT5_DUTY_CYCLE > 99000) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT5_DUTY_CYCLE must range from 1000 to 99000");
end
if (CLKOUT6_DUTY_CYCLE < 1000 || CLKOUT6_DUTY_CYCLE > 99000) begin
wire _TECHMAP_FAIL_;
$error("CLKOUT6_DUTY_CYCLE must range from 1000 to 99000");
end
if (SS_EN != "TRUE" && SS_EN != "FALSE") begin
wire _TECHMAP_FAIL_;
$error("SS_EN must be either 'TRUE' or 'FALSE'");
end
if (SS_MODE != "DOWN_LOW" && SS_MODE != "DOWN_HIGH" && SS_MODE != "CENTER_LOW" && SS_MODE != "CENTER_HIGH") begin
wire _TECHMAP_FAIL_;
$error("SS_MODE must be one of: 'DOWN_LOW', 'DOWN_HIGH', 'CENTER_LOW', 'CENTER_HIGH'");
end
if (SS_MOD_PERIOD < 4000 || SS_MOD_PERIOD > 40000) begin
wire _TECHMAP_FAIL_;
$error("SS_MOD_PERIOD must range from 4000 to 40000");
end
// Round fractional dividers to multiples of 1/8.
// (125 / 2 = 62.5)
localparam CLKFBOUT_MULT_R = ((CLKFBOUT_MULT_F + 62) / 125) * 125;
localparam CLKOUT0_DIVIDE_R = ((CLKOUT0_DIVIDE_F + 62) / 125) * 125;
// Compute integer multipliers needed later for look-up tables
localparam CLKFBOUT_MULT = CLKFBOUT_MULT_R / 1000;
localparam CLKOUT0_DIVIDE = CLKOUT0_DIVIDE_R / 1000;
// Check whether fractional divider needs to be enabled on CLKFBOUT and
// CLKOUT0
localparam CLKFBOUT_FRAC_EN = (CLKFBOUT_MULT_R % 1000) != 0;
localparam CLKOUT0_FRAC_EN = (CLKOUT0_DIVIDE_R % 1000) != 0;
if (CLKOUT0_FRAC_EN && CLKOUT0_DUTY_CYCLE != 50000) begin
wire _TECHMAP_FAIL_;
$error("When CLKOUT0 uses fractional divider the duty cycle must be 50%");
end
// Check whether phase shift of CLKFBOUT and CLKOUT0 is a multiple of 45 deg.
// This is needed for determining content of POWER_REG.
localparam CLKFBOUT_PHASE_45 = (CLKFBOUT_PHASE % 45000) == 0;
localparam CLKOUT0_PHASE_45 = (CLKOUT0_PHASE % 45000) == 0;
// Handle registers controling fractional dividers
localparam CLKFBOUT_CALC = mmcm_clkregs(CLKFBOUT_MULT, 50000, CLKFBOUT_PHASE);
localparam CLKOUT0_CALC = mmcm_clkregs(CLKOUT0_DIVIDE, CLKOUT0_DUTY_CYCLE, CLKOUT0_PHASE);
localparam CLKOUT5_CALC = mmcm_clkregs(CLKOUT5_DIVIDE, CLKOUT5_DUTY_CYCLE, CLKOUT5_PHASE);
localparam CLKOUT6_CALC = mmcm_clkregs(CLKOUT6_DIVIDE, CLKOUT6_DUTY_CYCLE, CLKOUT6_PHASE);
localparam CLKFBOUT_FRAC_CALC = mmcm_clkregs_frac(CLKFBOUT_MULT_R, 50000, CLKFBOUT_PHASE);
localparam CLKOUT0_FRAC_CALC = mmcm_clkregs_frac(CLKOUT0_DIVIDE_R, 50000, CLKOUT0_PHASE);
// Compute PLL's registers content
//
// When no fractional divider is enabled use the *_CALC content.
// For fractional divider use *_FRAC_CALC content but tak the "EDGE" bit
// from *_CALC. This is not documented in XAPP888 but has been observed in
// vendor tools.
//
// Additional part of *_FRAC_CALC data needs to end up in bits of
// CLKOUT5_REGS and CLKOUT6_REGS.
localparam CLKFBOUT_REGS = (CLKFBOUT_FRAC_EN) ? (CLKFBOUT_FRAC_CALC[31:0] | (CLKFBOUT_CALC[23] << 23)): CLKFBOUT_CALC;
localparam DIVCLK_REGS = mmcm_clkregs(DIVCLK_DIVIDE, 50000, 0);
localparam CLKOUT0_REGS = (CLKOUT0_FRAC_EN) ? (CLKOUT0_FRAC_CALC[31:0] | (CLKOUT0_CALC[23] << 23)): CLKOUT0_CALC;
localparam CLKOUT1_REGS = mmcm_clkregs(CLKOUT1_DIVIDE, CLKOUT1_DUTY_CYCLE, CLKOUT1_PHASE);
localparam CLKOUT2_REGS = mmcm_clkregs(CLKOUT2_DIVIDE, CLKOUT2_DUTY_CYCLE, CLKOUT2_PHASE);
localparam CLKOUT3_REGS = mmcm_clkregs(CLKOUT3_DIVIDE, CLKOUT3_DUTY_CYCLE, CLKOUT3_PHASE);
localparam CLKOUT4_REGS = mmcm_clkregs(CLKOUT4_DIVIDE, CLKOUT4_DUTY_CYCLE, CLKOUT4_PHASE);
// Substitute the shared part of CLKOUT5 and CLKOUT6 regs with data for
// CLKOUT0 and CLKFBOUT when factional divider is used for either of them.
//
// Additionaly copy the PHASE_MUX field to the PHASE_MUX_F fiels when
// fractional divider is not used. This behavior is not documented in
// XAPP888 but has been observed.
localparam CLKOUT5_REGS = (CLKOUT0_FRAC_EN) ? {CLKOUT5_CALC[31:30], CLKOUT0_FRAC_CALC[35:32], CLKOUT5_CALC[25:0]} :
{CLKOUT5_CALC[31:30], CLKOUT0_CALC[15:13], CLKOUT5_CALC[26:0]};
localparam CLKOUT6_REGS = (CLKFBOUT_FRAC_EN) ? {CLKOUT6_CALC[31:30], CLKFBOUT_FRAC_CALC[35:32], CLKOUT6_CALC[25:0]} :
{CLKOUT6_CALC[31:30], CLKFBOUT_CALC[15:13], CLKOUT6_CALC[26:0]};
// Handle inputs that should have certain logic levels when left unconnected
localparam INV_CLKINSEL = (_TECHMAP_CONSTMSK_CLKINSEL_ == 1) ? !_TECHMAP_CONSTVAL_CLKINSEL_ : IS_CLKINSEL_INVERTED;
wire clkinsel = (_TECHMAP_CONSTMSK_CLKINSEL_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_CLKINSEL_ == 0) ? 1'b1 :
CLKINSEL;
localparam INV_PWRDWN = (_TECHMAP_CONSTMSK_PWRDWN_ == 1) ? !_TECHMAP_CONSTVAL_PWRDWN_ :
(_TECHMAP_CONSTVAL_PWRDWN_ == 0) ? ~IS_PWRDWN_INVERTED :
IS_PWRDWN_INVERTED;
wire pwrdwn = (_TECHMAP_CONSTMSK_PWRDWN_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_PWRDWN_ == 0) ? 1'b1 : PWRDWN;
localparam INV_RST = (_TECHMAP_CONSTMSK_RST_ == 1) ? !_TECHMAP_CONSTVAL_RST_ :
(_TECHMAP_CONSTVAL_RST_ == 0) ? ~IS_RST_INVERTED :
IS_RST_INVERTED;
wire rst = (_TECHMAP_CONSTMSK_RST_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_RST_ == 0) ? 1'b1 : RST;
wire dclk = (_TECHMAP_CONSTMSK_DCLK_ == 1) ? _TECHMAP_CONSTVAL_DCLK_ :
(_TECHMAP_CONSTVAL_DCLK_ == 0) ? 1'b0 : DCLK;
wire den = (_TECHMAP_CONSTMSK_DEN_ == 1) ? _TECHMAP_CONSTVAL_DEN_ :
(_TECHMAP_CONSTVAL_DEN_ == 0) ? 1'b0 : DEN;
wire dwe = (_TECHMAP_CONSTMSK_DWE_ == 1) ? _TECHMAP_CONSTVAL_DWE_ :
(_TECHMAP_CONSTVAL_DWE_ == 0) ? 1'b0 : DWE;
wire psclk = (_TECHMAP_CONSTMSK_PSCLK_ == 1) ? _TECHMAP_CONSTVAL_PSCLK_ :
(_TECHMAP_CONSTVAL_PSCLK_ == 0) ? 1'b0 : PSCLK;
localparam INV_PSEN = (_TECHMAP_CONSTMSK_PSEN_ == 1) ? !_TECHMAP_CONSTVAL_PSEN_ :
(_TECHMAP_CONSTVAL_PSEN_ == 0) ? ~IS_PSEN_INVERTED :
IS_PSEN_INVERTED;
wire psen = (_TECHMAP_CONSTMSK_PSEN_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_PSEN_ == 0) ? 1'b1 : PSEN;
localparam INV_PSINCDEC = (_TECHMAP_CONSTMSK_PSINCDEC_ == 1) ? !_TECHMAP_CONSTVAL_PSINCDEC_ :
(_TECHMAP_CONSTVAL_PSINCDEC_ == 0) ? ~IS_PSINCDEC_INVERTED :
IS_PSINCDEC_INVERTED;
wire psincdec = (_TECHMAP_CONSTMSK_PSINCDEC_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_PSINCDEC_ == 0) ? 1'b1 : PSINCDEC;
// The substituted cell
MMCME2_ADV_VPR #
(
// Inverters
.INV_CLKINSEL (INV_CLKINSEL),
.ZINV_PWRDWN (INV_PWRDWN),
.ZINV_RST (INV_RST),
.ZINV_PSEN (INV_PSEN),
.ZINV_PSINCDEC (INV_PSINCDEC),
// Compensation
.COMP_ZHOLD (COMPENSATION == "ZHOLD"),
.COMP_Z_ZHOLD (COMPENSATION != "ZHOLD"),
// Spread spectrum
.SS_EN (1'b0), // TODO: Disable for now
// Straight mapped parameters
.STARTUP_WAIT(STARTUP_WAIT == "TRUE"),
// Lookup tables
.LKTABLE(mmcm_lktable_lookup(CLKFBOUT_MULT)),
.TABLE(mmcm_table_lookup(CLKFBOUT_MULT, BANDWIDTH, (SS_EN == "TRUE"))),
// FIXME: How to compute values the two below ?
.FILTREG1_RESERVED(12'b0000_00001000),
.LOCKREG3_RESERVED(1'b1),
// Clock feedback settings
.CLKFBOUT_CLKOUT1_HIGH_TIME (CLKFBOUT_REGS[11:6]),
.CLKFBOUT_CLKOUT1_LOW_TIME (CLKFBOUT_REGS[5:0]),
.CLKFBOUT_CLKOUT1_PHASE_MUX (CLKFBOUT_REGS[15:13]),
.CLKFBOUT_CLKOUT2_DELAY_TIME (CLKFBOUT_REGS[21:16]),
.CLKFBOUT_CLKOUT2_EDGE (CLKFBOUT_REGS[23]),
.CLKFBOUT_CLKOUT2_FRAC (CLKFBOUT_REGS[30:28]),
.CLKFBOUT_CLKOUT2_FRAC_EN (CLKFBOUT_REGS[27]),
.CLKFBOUT_CLKOUT2_FRAC_WF_R (CLKFBOUT_REGS[26]),
.CLKFBOUT_CLKOUT2_NO_COUNT (CLKFBOUT_REGS[22]),
// Internal VCO divider settings
.DIVCLK_DIVCLK_HIGH_TIME (DIVCLK_REGS[11:6]),
.DIVCLK_DIVCLK_LOW_TIME (DIVCLK_REGS[5:0]),
.DIVCLK_DIVCLK_NO_COUNT (DIVCLK_REGS[22]),
.DIVCLK_DIVCLK_EDGE (DIVCLK_REGS[23]),
// CLKOUT0
.CLKOUT0_CLKOUT1_HIGH_TIME (CLKOUT0_REGS[11:6]),
.CLKOUT0_CLKOUT1_LOW_TIME (CLKOUT0_REGS[5:0]),
.CLKOUT0_CLKOUT1_PHASE_MUX (CLKOUT0_REGS[15:13]),
.CLKOUT0_CLKOUT2_DELAY_TIME (CLKOUT0_REGS[21:16]),
.CLKOUT0_CLKOUT2_EDGE (CLKOUT0_REGS[23]),
.CLKOUT0_CLKOUT2_FRAC (CLKOUT0_REGS[30:28]),
.CLKOUT0_CLKOUT2_FRAC_EN (CLKOUT0_REGS[27]),
.CLKOUT0_CLKOUT2_FRAC_WF_R (CLKOUT0_REGS[26]),
.CLKOUT0_CLKOUT2_NO_COUNT (CLKOUT0_REGS[22]),
// CLKOUT1
.CLKOUT1_CLKOUT1_HIGH_TIME (CLKOUT1_REGS[11:6]),
.CLKOUT1_CLKOUT1_LOW_TIME (CLKOUT1_REGS[5:0]),
.CLKOUT1_CLKOUT1_PHASE_MUX (CLKOUT1_REGS[15:13]),
.CLKOUT1_CLKOUT2_DELAY_TIME (CLKOUT1_REGS[21:16]),
.CLKOUT1_CLKOUT2_EDGE (CLKOUT1_REGS[23]),
.CLKOUT1_CLKOUT2_NO_COUNT (CLKOUT1_REGS[22]),
// CLKOUT2
.CLKOUT2_CLKOUT1_HIGH_TIME (CLKOUT2_REGS[11:6]),
.CLKOUT2_CLKOUT1_LOW_TIME (CLKOUT2_REGS[5:0]),
.CLKOUT2_CLKOUT1_PHASE_MUX (CLKOUT2_REGS[15:13]),
.CLKOUT2_CLKOUT2_DELAY_TIME (CLKOUT2_REGS[21:16]),
.CLKOUT2_CLKOUT2_EDGE (CLKOUT2_REGS[23]),
.CLKOUT2_CLKOUT2_NO_COUNT (CLKOUT2_REGS[22]),
// CLKOUT3
.CLKOUT3_CLKOUT1_HIGH_TIME (CLKOUT3_REGS[11:6]),
.CLKOUT3_CLKOUT1_LOW_TIME (CLKOUT3_REGS[5:0]),
.CLKOUT3_CLKOUT1_PHASE_MUX (CLKOUT3_REGS[15:13]),
.CLKOUT3_CLKOUT2_DELAY_TIME (CLKOUT3_REGS[21:16]),
.CLKOUT3_CLKOUT2_EDGE (CLKOUT3_REGS[23]),
.CLKOUT3_CLKOUT2_NO_COUNT (CLKOUT3_REGS[22]),
// CLKOUT4
.CLKOUT4_CLKOUT1_HIGH_TIME (CLKOUT4_REGS[11:6]),
.CLKOUT4_CLKOUT1_LOW_TIME (CLKOUT4_REGS[5:0]),
.CLKOUT4_CLKOUT1_PHASE_MUX (CLKOUT4_REGS[15:13]),
.CLKOUT4_CLKOUT2_DELAY_TIME (CLKOUT4_REGS[21:16]),
.CLKOUT4_CLKOUT2_EDGE (CLKOUT4_REGS[23]),
.CLKOUT4_CLKOUT2_NO_COUNT (CLKOUT4_REGS[22]),
// CLKOUT5
.CLKOUT5_CLKOUT1_HIGH_TIME (CLKOUT5_REGS[11:6]),
.CLKOUT5_CLKOUT1_LOW_TIME (CLKOUT5_REGS[5:0]),
.CLKOUT5_CLKOUT1_PHASE_MUX (CLKOUT5_REGS[15:13]),
.CLKOUT5_CLKOUT2_FRACTIONAL_DELAY_TIME (CLKOUT5_REGS[21:16]),
.CLKOUT5_CLKOUT2_FRACTIONAL_EDGE (CLKOUT5_REGS[23]),
.CLKOUT5_CLKOUT2_FRACTIONAL_NO_COUNT (CLKOUT5_REGS[22]),
.CLKOUT5_CLKOUT2_FRACTIONAL_PHASE_MUX_F (CLKOUT5_REGS[29:27]),
.CLKOUT5_CLKOUT2_FRACTIONAL_FRAC_WF_F (CLKOUT5_REGS[26]),
// CLKOUT6
.CLKOUT6_CLKOUT1_HIGH_TIME (CLKOUT6_REGS[11:6]),
.CLKOUT6_CLKOUT1_LOW_TIME (CLKOUT6_REGS[5:0]),
.CLKOUT6_CLKOUT1_PHASE_MUX (CLKOUT6_REGS[15:13]),
.CLKOUT6_CLKOUT2_FRACTIONAL_DELAY_TIME (CLKOUT6_REGS[21:16]),
.CLKOUT6_CLKOUT2_FRACTIONAL_EDGE (CLKOUT6_REGS[23]),
.CLKOUT6_CLKOUT2_FRACTIONAL_NO_COUNT (CLKOUT6_REGS[22]),
.CLKOUT6_CLKOUT2_FRACTIONAL_PHASE_MUX_F (CLKOUT6_REGS[29:27]),
.CLKOUT6_CLKOUT2_FRACTIONAL_FRAC_WF_F (CLKOUT6_REGS[26]),
// POWER_REG
// FIXME: Check whether this is always thar same content. XAPP888 says that
// "all the bits should be set when performing DRP". The values below has
// been observed to be used by vendor tools in some circumstances.
.POWER_REG ((CLKFBOUT_FRAC_EN || CLKOUT0_FRAC_EN || !CLKOUT0_PHASE_45) ? 16'b10011001_00000000 :
16'b00000001_00000000),
// Clock output enable controls
.CLKFBOUT_CLKOUT1_OUTPUT_ENABLE(_TECHMAP_CONSTVAL_CLKFBOUT_ === 1'bX || _TECHMAP_CONSTVAL_CLKFBOUTB_ === 1'bX),
.CLKOUT0_CLKOUT1_OUTPUT_ENABLE(_TECHMAP_CONSTVAL_CLKOUT0_ === 1'bX || _TECHMAP_CONSTVAL_CLKOUT0B_ === 1'bX),
.CLKOUT1_CLKOUT1_OUTPUT_ENABLE(_TECHMAP_CONSTVAL_CLKOUT1_ === 1'bX || _TECHMAP_CONSTVAL_CLKOUT1B_ === 1'bX),
.CLKOUT2_CLKOUT1_OUTPUT_ENABLE(_TECHMAP_CONSTVAL_CLKOUT2_ === 1'bX || _TECHMAP_CONSTVAL_CLKOUT2B_ === 1'bX),
.CLKOUT3_CLKOUT1_OUTPUT_ENABLE(_TECHMAP_CONSTVAL_CLKOUT3_ === 1'bX || _TECHMAP_CONSTVAL_CLKOUT3B_ === 1'bX),
.CLKOUT4_CLKOUT1_OUTPUT_ENABLE(_TECHMAP_CONSTVAL_CLKOUT4_ === 1'bX),
.CLKOUT5_CLKOUT1_OUTPUT_ENABLE(_TECHMAP_CONSTVAL_CLKOUT5_ === 1'bX),
.CLKOUT6_CLKOUT1_OUTPUT_ENABLE(_TECHMAP_CONSTVAL_CLKOUT6_ === 1'bX)
)
_TECHMAP_REPLACE_
(
.CLKFBIN (CLKFBIN),
.CLKIN1 (CLKIN1),
.CLKIN2 (CLKIN2),
.CLKINSEL (clkinsel),
.CLKFBOUT (CLKFBOUT),
.CLKFBOUTB (CLKFBOUTB),
.CLKOUT0 (CLKOUT0),
.CLKOUT0B (CLKOUT0B),
.CLKOUT1 (CLKOUT1),
.CLKOUT1B (CLKOUT1B),
.CLKOUT2 (CLKOUT2),
.CLKOUT2B (CLKOUT2B),
.CLKOUT3 (CLKOUT3),
.CLKOUT3B (CLKOUT3B),
.CLKOUT4 (CLKOUT4),
.CLKOUT5 (CLKOUT5),
.CLKOUT6 (CLKOUT6),
.CLKINSTOPPED (CLKINSTOPPED),
.CLKFBSTOPPED (CLKFBSTOPPED),
.PWRDWN (pwrdwn),
.RST (rst),
.LOCKED (LOCKED),
.PSCLK (psclk),
.PSEN (psen),
.PSINCDEC (psincdec),
.PSDONE (PSDONE),
.DCLK (dclk),
.DEN (den),
.DWE (dwe),
.DRDY (DRDY),
.DADDR0 (DADDR[0]),
.DADDR1 (DADDR[1]),
.DADDR2 (DADDR[2]),
.DADDR3 (DADDR[3]),
.DADDR4 (DADDR[4]),
.DADDR5 (DADDR[5]),
.DADDR6 (DADDR[6]),
.DI0 (DI[0]),
.DI1 (DI[1]),
.DI2 (DI[2]),
.DI3 (DI[3]),
.DI4 (DI[4]),
.DI5 (DI[5]),
.DI6 (DI[6]),
.DI7 (DI[7]),
.DI8 (DI[8]),
.DI9 (DI[9]),
.DI10 (DI[10]),
.DI11 (DI[11]),
.DI12 (DI[12]),
.DI13 (DI[13]),
.DI14 (DI[14]),
.DI15 (DI[15]),
.DO0 (DO[0]),
.DO1 (DO[1]),
.DO2 (DO[2]),
.DO3 (DO[3]),
.DO4 (DO[4]),
.DO5 (DO[5]),
.DO6 (DO[6]),
.DO7 (DO[7]),
.DO8 (DO[8]),
.DO9 (DO[9]),
.DO10 (DO[10]),
.DO11 (DO[11]),
.DO12 (DO[12]),
.DO13 (DO[13]),
.DO14 (DO[14]),
.DO15 (DO[15])
);
endmodule
// ============================================================================
module INV(
output O,
input I
);
LUT1 #(.INIT(2'b01)) _TECHMAP_REPLACE_ (.O(O), .I0(I));
endmodule
// ============================================================================
// The Zynq PS7
module PS7 (
inout [14: 0] DDRA,
input [ 3: 0] DDRARB,
inout [ 2: 0] DDRBA,
inout DDRCASB,
inout DDRCKE,
inout DDRCKN,
inout DDRCKP,
inout DDRCSB,
inout [ 3: 0] DDRDM,
inout [31: 0] DDRDQ,
inout [ 3: 0] DDRDQSN,
inout [ 3: 0] DDRDQSP,
inout DDRDRSTB,
inout DDRODT,
inout DDRRASB,
inout DDRVRN,
inout DDRVRP,
inout DDRWEB,
input DMA0ACLK,
input DMA0DAREADY,
output [ 1: 0] DMA0DATYPE,
output DMA0DAVALID,
input DMA0DRLAST,
output DMA0DRREADY,
input [ 1: 0] DMA0DRTYPE,
input DMA0DRVALID,
output DMA0RSTN,
input DMA1ACLK,
input DMA1DAREADY,
output [ 1: 0] DMA1DATYPE,
output DMA1DAVALID,
input DMA1DRLAST,
output DMA1DRREADY,
input [ 1: 0] DMA1DRTYPE,
input DMA1DRVALID,
output DMA1RSTN,
input DMA2ACLK,
input DMA2DAREADY,
output [ 1: 0] DMA2DATYPE,
output DMA2DAVALID,
input DMA2DRLAST,
output DMA2DRREADY,
input [ 1: 0] DMA2DRTYPE,
input DMA2DRVALID,
output DMA2RSTN,
input DMA3ACLK,
input DMA3DAREADY,
output [ 1: 0] DMA3DATYPE,
output DMA3DAVALID,
input DMA3DRLAST,
output DMA3DRREADY,
input [ 1: 0] DMA3DRTYPE,
input DMA3DRVALID,
output DMA3RSTN,
input EMIOCAN0PHYRX,
output EMIOCAN0PHYTX,
input EMIOCAN1PHYRX,
output EMIOCAN1PHYTX,
input EMIOENET0EXTINTIN,
input EMIOENET0GMIICOL,
input EMIOENET0GMIICRS,
input EMIOENET0GMIIRXCLK,
input [ 7: 0] EMIOENET0GMIIRXD,
input EMIOENET0GMIIRXDV,
input EMIOENET0GMIIRXER,
input EMIOENET0GMIITXCLK,
output [ 7: 0] EMIOENET0GMIITXD,
output EMIOENET0GMIITXEN,
output EMIOENET0GMIITXER,
input EMIOENET0MDIOI,
output EMIOENET0MDIOMDC,
output EMIOENET0MDIOO,
output EMIOENET0MDIOTN,
output EMIOENET0PTPDELAYREQRX,
output EMIOENET0PTPDELAYREQTX,
output EMIOENET0PTPPDELAYREQRX,
output EMIOENET0PTPPDELAYREQTX,
output EMIOENET0PTPPDELAYRESPRX,
output EMIOENET0PTPPDELAYRESPTX,
output EMIOENET0PTPSYNCFRAMERX,
output EMIOENET0PTPSYNCFRAMETX,
output EMIOENET0SOFRX,
output EMIOENET0SOFTX,
input EMIOENET1EXTINTIN,
input EMIOENET1GMIICOL,
input EMIOENET1GMIICRS,
input EMIOENET1GMIIRXCLK,
input [ 7: 0] EMIOENET1GMIIRXD,
input EMIOENET1GMIIRXDV,
input EMIOENET1GMIIRXER,
input EMIOENET1GMIITXCLK,
output [ 7: 0] EMIOENET1GMIITXD,
output EMIOENET1GMIITXEN,
output EMIOENET1GMIITXER,
input EMIOENET1MDIOI,
output EMIOENET1MDIOMDC,
output EMIOENET1MDIOO,
output EMIOENET1MDIOTN,
output EMIOENET1PTPDELAYREQRX,
output EMIOENET1PTPDELAYREQTX,
output EMIOENET1PTPPDELAYREQRX,
output EMIOENET1PTPPDELAYREQTX,
output EMIOENET1PTPPDELAYRESPRX,
output EMIOENET1PTPPDELAYRESPTX,
output EMIOENET1PTPSYNCFRAMERX,
output EMIOENET1PTPSYNCFRAMETX,
output EMIOENET1SOFRX,
output EMIOENET1SOFTX,
input [63: 0] EMIOGPIOI,
output [63: 0] EMIOGPIOO,
output [63: 0] EMIOGPIOTN,
input EMIOI2C0SCLI,
output EMIOI2C0SCLO,
output EMIOI2C0SCLTN,
input EMIOI2C0SDAI,
output EMIOI2C0SDAO,
output EMIOI2C0SDATN,
input EMIOI2C1SCLI,
output EMIOI2C1SCLO,
output EMIOI2C1SCLTN,
input EMIOI2C1SDAI,
output EMIOI2C1SDAO,
output EMIOI2C1SDATN,
input EMIOPJTAGTCK,
input EMIOPJTAGTDI,
output EMIOPJTAGTDO,
output EMIOPJTAGTDTN,
input EMIOPJTAGTMS,
output EMIOSDIO0BUSPOW,
output [ 2: 0] EMIOSDIO0BUSVOLT,
input EMIOSDIO0CDN,
output EMIOSDIO0CLK,
input EMIOSDIO0CLKFB,
input EMIOSDIO0CMDI,
output EMIOSDIO0CMDO,
output EMIOSDIO0CMDTN,
input [ 3: 0] EMIOSDIO0DATAI,
output [ 3: 0] EMIOSDIO0DATAO,
output [ 3: 0] EMIOSDIO0DATATN,
output EMIOSDIO0LED,
input EMIOSDIO0WP,
output EMIOSDIO1BUSPOW,
output [ 2: 0] EMIOSDIO1BUSVOLT,
input EMIOSDIO1CDN,
output EMIOSDIO1CLK,
input EMIOSDIO1CLKFB,
input EMIOSDIO1CMDI,
output EMIOSDIO1CMDO,
output EMIOSDIO1CMDTN,
input [ 3: 0] EMIOSDIO1DATAI,
output [ 3: 0] EMIOSDIO1DATAO,
output [ 3: 0] EMIOSDIO1DATATN,
output EMIOSDIO1LED,
input EMIOSDIO1WP,
input EMIOSPI0MI,
output EMIOSPI0MO,
output EMIOSPI0MOTN,
input EMIOSPI0SCLKI,
output EMIOSPI0SCLKO,
output EMIOSPI0SCLKTN,
input EMIOSPI0SI,
output EMIOSPI0SO,
input EMIOSPI0SSIN,
output EMIOSPI0SSNTN,
output [ 2: 0] EMIOSPI0SSON,
output EMIOSPI0STN,
input EMIOSPI1MI,
output EMIOSPI1MO,
output EMIOSPI1MOTN,
input EMIOSPI1SCLKI,
output EMIOSPI1SCLKO,
output EMIOSPI1SCLKTN,
input EMIOSPI1SI,
output EMIOSPI1SO,
input EMIOSPI1SSIN,
output EMIOSPI1SSNTN,
output [ 2: 0] EMIOSPI1SSON,
output EMIOSPI1STN,
input EMIOSRAMINTIN,
input EMIOTRACECLK,
output EMIOTRACECTL,
output [31: 0] EMIOTRACEDATA,
input [ 2: 0] EMIOTTC0CLKI,
output [ 2: 0] EMIOTTC0WAVEO,
input [ 2: 0] EMIOTTC1CLKI,
output [ 2: 0] EMIOTTC1WAVEO,
input EMIOUART0CTSN,
input EMIOUART0DCDN,
input EMIOUART0DSRN,
output EMIOUART0DTRN,
input EMIOUART0RIN,
output EMIOUART0RTSN,
input EMIOUART0RX,
output EMIOUART0TX,
input EMIOUART1CTSN,
input EMIOUART1DCDN,
input EMIOUART1DSRN,
output EMIOUART1DTRN,
input EMIOUART1RIN,
output EMIOUART1RTSN,
input EMIOUART1RX,
output EMIOUART1TX,
output [ 1: 0] EMIOUSB0PORTINDCTL,
input EMIOUSB0VBUSPWRFAULT,
output EMIOUSB0VBUSPWRSELECT,
output [ 1: 0] EMIOUSB1PORTINDCTL,
input EMIOUSB1VBUSPWRFAULT,
output EMIOUSB1VBUSPWRSELECT,
input EMIOWDTCLKI,
output EMIOWDTRSTO,
input EVENTEVENTI,
output EVENTEVENTO,
output [ 1: 0] EVENTSTANDBYWFE,
output [ 1: 0] EVENTSTANDBYWFI,
output [ 3: 0] FCLKCLK,
input [ 3: 0] FCLKCLKTRIGN,
output [ 3: 0] FCLKRESETN,
input FPGAIDLEN,
input [ 3: 0] FTMDTRACEINATID,
input FTMDTRACEINCLOCK,
input [31: 0] FTMDTRACEINDATA,
input FTMDTRACEINVALID,
input [31: 0] FTMTF2PDEBUG,
input [ 3: 0] FTMTF2PTRIG,
output [ 3: 0] FTMTF2PTRIGACK,
output [31: 0] FTMTP2FDEBUG,
output [ 3: 0] FTMTP2FTRIG,
input [ 3: 0] FTMTP2FTRIGACK,
input [19: 0] IRQF2P,
output [28: 0] IRQP2F,
input MAXIGP0ACLK,
output [31: 0] MAXIGP0ARADDR,
output [ 1: 0] MAXIGP0ARBURST,
output [ 3: 0] MAXIGP0ARCACHE,
output MAXIGP0ARESETN,
output [11: 0] MAXIGP0ARID,
output [ 3: 0] MAXIGP0ARLEN,
output [ 1: 0] MAXIGP0ARLOCK,
output [ 2: 0] MAXIGP0ARPROT,
output [ 3: 0] MAXIGP0ARQOS,
input MAXIGP0ARREADY,
output [ 1: 0] MAXIGP0ARSIZE,
output MAXIGP0ARVALID,
output [31: 0] MAXIGP0AWADDR,
output [ 1: 0] MAXIGP0AWBURST,
output [ 3: 0] MAXIGP0AWCACHE,
output [11: 0] MAXIGP0AWID,
output [ 3: 0] MAXIGP0AWLEN,
output [ 1: 0] MAXIGP0AWLOCK,
output [ 2: 0] MAXIGP0AWPROT,
output [ 3: 0] MAXIGP0AWQOS,
input MAXIGP0AWREADY,
output [ 1: 0] MAXIGP0AWSIZE,
output MAXIGP0AWVALID,
input [11: 0] MAXIGP0BID,
output MAXIGP0BREADY,
input [ 1: 0] MAXIGP0BRESP,
input MAXIGP0BVALID,
input [31: 0] MAXIGP0RDATA,
input [11: 0] MAXIGP0RID,
input MAXIGP0RLAST,
output MAXIGP0RREADY,
input [ 1: 0] MAXIGP0RRESP,
input MAXIGP0RVALID,
output [31: 0] MAXIGP0WDATA,
output [11: 0] MAXIGP0WID,
output MAXIGP0WLAST,
input MAXIGP0WREADY,
output [ 3: 0] MAXIGP0WSTRB,
output MAXIGP0WVALID,
input MAXIGP1ACLK,
output [31: 0] MAXIGP1ARADDR,
output [ 1: 0] MAXIGP1ARBURST,
output [ 3: 0] MAXIGP1ARCACHE,
output MAXIGP1ARESETN,
output [11: 0] MAXIGP1ARID,
output [ 3: 0] MAXIGP1ARLEN,
output [ 1: 0] MAXIGP1ARLOCK,
output [ 2: 0] MAXIGP1ARPROT,
output [ 3: 0] MAXIGP1ARQOS,
input MAXIGP1ARREADY,
output [ 1: 0] MAXIGP1ARSIZE,
output MAXIGP1ARVALID,
output [31: 0] MAXIGP1AWADDR,
output [ 1: 0] MAXIGP1AWBURST,
output [ 3: 0] MAXIGP1AWCACHE,
output [11: 0] MAXIGP1AWID,
output [ 3: 0] MAXIGP1AWLEN,
output [ 1: 0] MAXIGP1AWLOCK,
output [ 2: 0] MAXIGP1AWPROT,
output [ 3: 0] MAXIGP1AWQOS,
input MAXIGP1AWREADY,
output [ 1: 0] MAXIGP1AWSIZE,
output MAXIGP1AWVALID,
input [11: 0] MAXIGP1BID,
output MAXIGP1BREADY,
input [ 1: 0] MAXIGP1BRESP,
input MAXIGP1BVALID,
input [31: 0] MAXIGP1RDATA,
input [11: 0] MAXIGP1RID,
input MAXIGP1RLAST,
output MAXIGP1RREADY,
input [ 1: 0] MAXIGP1RRESP,
input MAXIGP1RVALID,
output [31: 0] MAXIGP1WDATA,
output [11: 0] MAXIGP1WID,
output MAXIGP1WLAST,
input MAXIGP1WREADY,
output [ 3: 0] MAXIGP1WSTRB,
output MAXIGP1WVALID,
inout [53: 0] MIO,
inout PSCLK,
inout PSPORB,
inout PSSRSTB,
input SAXIACPACLK,
input [31: 0] SAXIACPARADDR,
input [ 1: 0] SAXIACPARBURST,
input [ 3: 0] SAXIACPARCACHE,
output SAXIACPARESETN,
input [ 2: 0] SAXIACPARID,
input [ 3: 0] SAXIACPARLEN,
input [ 1: 0] SAXIACPARLOCK,
input [ 2: 0] SAXIACPARPROT,
input [ 3: 0] SAXIACPARQOS,
output SAXIACPARREADY,
input [ 1: 0] SAXIACPARSIZE,
input [ 4: 0] SAXIACPARUSER,
input SAXIACPARVALID,
input [31: 0] SAXIACPAWADDR,
input [ 1: 0] SAXIACPAWBURST,
input [ 3: 0] SAXIACPAWCACHE,
input [ 2: 0] SAXIACPAWID,
input [ 3: 0] SAXIACPAWLEN,
input [ 1: 0] SAXIACPAWLOCK,
input [ 2: 0] SAXIACPAWPROT,
input [ 3: 0] SAXIACPAWQOS,
output SAXIACPAWREADY,
input [ 1: 0] SAXIACPAWSIZE,
input [ 4: 0] SAXIACPAWUSER,
input SAXIACPAWVALID,
output [ 2: 0] SAXIACPBID,
input SAXIACPBREADY,
output [ 1: 0] SAXIACPBRESP,
output SAXIACPBVALID,
output [63: 0] SAXIACPRDATA,
output [ 2: 0] SAXIACPRID,
output SAXIACPRLAST,
input SAXIACPRREADY,
output [ 1: 0] SAXIACPRRESP,
output SAXIACPRVALID,
input [63: 0] SAXIACPWDATA,
input [ 2: 0] SAXIACPWID,
input SAXIACPWLAST,
output SAXIACPWREADY,
input [ 7: 0] SAXIACPWSTRB,
input SAXIACPWVALID,
input SAXIGP0ACLK,
input [31: 0] SAXIGP0ARADDR,
input [ 1: 0] SAXIGP0ARBURST,
input [ 3: 0] SAXIGP0ARCACHE,
output SAXIGP0ARESETN,
input [ 5: 0] SAXIGP0ARID,
input [ 3: 0] SAXIGP0ARLEN,
input [ 1: 0] SAXIGP0ARLOCK,
input [ 2: 0] SAXIGP0ARPROT,
input [ 3: 0] SAXIGP0ARQOS,
output SAXIGP0ARREADY,
input [ 1: 0] SAXIGP0ARSIZE,
input SAXIGP0ARVALID,
input [31: 0] SAXIGP0AWADDR,
input [ 1: 0] SAXIGP0AWBURST,
input [ 3: 0] SAXIGP0AWCACHE,
input [ 5: 0] SAXIGP0AWID,
input [ 3: 0] SAXIGP0AWLEN,
input [ 1: 0] SAXIGP0AWLOCK,
input [ 2: 0] SAXIGP0AWPROT,
input [ 3: 0] SAXIGP0AWQOS,
output SAXIGP0AWREADY,
input [ 1: 0] SAXIGP0AWSIZE,
input SAXIGP0AWVALID,
output [ 5: 0] SAXIGP0BID,
input SAXIGP0BREADY,
output [ 1: 0] SAXIGP0BRESP,
output SAXIGP0BVALID,
output [31: 0] SAXIGP0RDATA,
output [ 5: 0] SAXIGP0RID,
output SAXIGP0RLAST,
input SAXIGP0RREADY,
output [ 1: 0] SAXIGP0RRESP,
output SAXIGP0RVALID,
input [31: 0] SAXIGP0WDATA,
input [ 5: 0] SAXIGP0WID,
input SAXIGP0WLAST,
output SAXIGP0WREADY,
input [ 3: 0] SAXIGP0WSTRB,
input SAXIGP0WVALID,
input SAXIGP1ACLK,
input [31: 0] SAXIGP1ARADDR,
input [ 1: 0] SAXIGP1ARBURST,
input [ 3: 0] SAXIGP1ARCACHE,
output SAXIGP1ARESETN,
input [ 5: 0] SAXIGP1ARID,
input [ 3: 0] SAXIGP1ARLEN,
input [ 1: 0] SAXIGP1ARLOCK,
input [ 2: 0] SAXIGP1ARPROT,
input [ 3: 0] SAXIGP1ARQOS,
output SAXIGP1ARREADY,
input [ 1: 0] SAXIGP1ARSIZE,
input SAXIGP1ARVALID,
input [31: 0] SAXIGP1AWADDR,
input [ 1: 0] SAXIGP1AWBURST,
input [ 3: 0] SAXIGP1AWCACHE,
input [ 5: 0] SAXIGP1AWID,
input [ 3: 0] SAXIGP1AWLEN,
input [ 1: 0] SAXIGP1AWLOCK,
input [ 2: 0] SAXIGP1AWPROT,
input [ 3: 0] SAXIGP1AWQOS,
output SAXIGP1AWREADY,
input [ 1: 0] SAXIGP1AWSIZE,
input SAXIGP1AWVALID,
output [ 5: 0] SAXIGP1BID,
input SAXIGP1BREADY,
output [ 1: 0] SAXIGP1BRESP,
output SAXIGP1BVALID,
output [31: 0] SAXIGP1RDATA,
output [ 5: 0] SAXIGP1RID,
output SAXIGP1RLAST,
input SAXIGP1RREADY,
output [ 1: 0] SAXIGP1RRESP,
output SAXIGP1RVALID,
input [31: 0] SAXIGP1WDATA,
input [ 5: 0] SAXIGP1WID,
input SAXIGP1WLAST,
output SAXIGP1WREADY,
input [ 3: 0] SAXIGP1WSTRB,
input SAXIGP1WVALID,
input SAXIHP0ACLK,
input [31: 0] SAXIHP0ARADDR,
input [ 1: 0] SAXIHP0ARBURST,
input [ 3: 0] SAXIHP0ARCACHE,
output SAXIHP0ARESETN,
input [ 5: 0] SAXIHP0ARID,
input [ 3: 0] SAXIHP0ARLEN,
input [ 1: 0] SAXIHP0ARLOCK,
input [ 2: 0] SAXIHP0ARPROT,
input [ 3: 0] SAXIHP0ARQOS,
output SAXIHP0ARREADY,
input [ 1: 0] SAXIHP0ARSIZE,
input SAXIHP0ARVALID,
input [31: 0] SAXIHP0AWADDR,
input [ 1: 0] SAXIHP0AWBURST,
input [ 3: 0] SAXIHP0AWCACHE,
input [ 5: 0] SAXIHP0AWID,
input [ 3: 0] SAXIHP0AWLEN,
input [ 1: 0] SAXIHP0AWLOCK,
input [ 2: 0] SAXIHP0AWPROT,
input [ 3: 0] SAXIHP0AWQOS,
output SAXIHP0AWREADY,
input [ 1: 0] SAXIHP0AWSIZE,
input SAXIHP0AWVALID,
output [ 5: 0] SAXIHP0BID,
input SAXIHP0BREADY,
output [ 1: 0] SAXIHP0BRESP,
output SAXIHP0BVALID,
output [ 2: 0] SAXIHP0RACOUNT,
output [ 7: 0] SAXIHP0RCOUNT,
output [63: 0] SAXIHP0RDATA,
input SAXIHP0RDISSUECAP1EN,
output [ 5: 0] SAXIHP0RID,
output SAXIHP0RLAST,
input SAXIHP0RREADY,
output [ 1: 0] SAXIHP0RRESP,
output SAXIHP0RVALID,
output [ 5: 0] SAXIHP0WACOUNT,
output [ 7: 0] SAXIHP0WCOUNT,
input [63: 0] SAXIHP0WDATA,
input [ 5: 0] SAXIHP0WID,
input SAXIHP0WLAST,
output SAXIHP0WREADY,
input SAXIHP0WRISSUECAP1EN,
input [ 7: 0] SAXIHP0WSTRB,
input SAXIHP0WVALID,
input SAXIHP1ACLK,
input [31: 0] SAXIHP1ARADDR,
input [ 1: 0] SAXIHP1ARBURST,
input [ 3: 0] SAXIHP1ARCACHE,
output SAXIHP1ARESETN,
input [ 5: 0] SAXIHP1ARID,
input [ 3: 0] SAXIHP1ARLEN,
input [ 1: 0] SAXIHP1ARLOCK,
input [ 2: 0] SAXIHP1ARPROT,
input [ 3: 0] SAXIHP1ARQOS,
output SAXIHP1ARREADY,
input [ 1: 0] SAXIHP1ARSIZE,
input SAXIHP1ARVALID,
input [31: 0] SAXIHP1AWADDR,
input [ 1: 0] SAXIHP1AWBURST,
input [ 3: 0] SAXIHP1AWCACHE,
input [ 5: 0] SAXIHP1AWID,
input [ 3: 0] SAXIHP1AWLEN,
input [ 1: 0] SAXIHP1AWLOCK,
input [ 2: 0] SAXIHP1AWPROT,
input [ 3: 0] SAXIHP1AWQOS,
output SAXIHP1AWREADY,
input [ 1: 0] SAXIHP1AWSIZE,
input SAXIHP1AWVALID,
output [ 5: 0] SAXIHP1BID,
input SAXIHP1BREADY,
output [ 1: 0] SAXIHP1BRESP,
output SAXIHP1BVALID,
output [ 2: 0] SAXIHP1RACOUNT,
output [ 7: 0] SAXIHP1RCOUNT,
output [63: 0] SAXIHP1RDATA,
input SAXIHP1RDISSUECAP1EN,
output [ 5: 0] SAXIHP1RID,
output SAXIHP1RLAST,
input SAXIHP1RREADY,
output [ 1: 0] SAXIHP1RRESP,
output SAXIHP1RVALID,
output [ 5: 0] SAXIHP1WACOUNT,
output [ 7: 0] SAXIHP1WCOUNT,
input [63: 0] SAXIHP1WDATA,
input [ 5: 0] SAXIHP1WID,
input SAXIHP1WLAST,
output SAXIHP1WREADY,
input SAXIHP1WRISSUECAP1EN,
input [ 7: 0] SAXIHP1WSTRB,
input SAXIHP1WVALID,
input SAXIHP2ACLK,
input [31: 0] SAXIHP2ARADDR,
input [ 1: 0] SAXIHP2ARBURST,
input [ 3: 0] SAXIHP2ARCACHE,
output SAXIHP2ARESETN,
input [ 5: 0] SAXIHP2ARID,
input [ 3: 0] SAXIHP2ARLEN,
input [ 1: 0] SAXIHP2ARLOCK,
input [ 2: 0] SAXIHP2ARPROT,
input [ 3: 0] SAXIHP2ARQOS,
output SAXIHP2ARREADY,
input [ 1: 0] SAXIHP2ARSIZE,
input SAXIHP2ARVALID,
input [31: 0] SAXIHP2AWADDR,
input [ 1: 0] SAXIHP2AWBURST,
input [ 3: 0] SAXIHP2AWCACHE,
input [ 5: 0] SAXIHP2AWID,
input [ 3: 0] SAXIHP2AWLEN,
input [ 1: 0] SAXIHP2AWLOCK,
input [ 2: 0] SAXIHP2AWPROT,
input [ 3: 0] SAXIHP2AWQOS,
output SAXIHP2AWREADY,
input [ 1: 0] SAXIHP2AWSIZE,
input SAXIHP2AWVALID,
output [ 5: 0] SAXIHP2BID,
input SAXIHP2BREADY,
output [ 1: 0] SAXIHP2BRESP,
output SAXIHP2BVALID,
output [ 2: 0] SAXIHP2RACOUNT,
output [ 7: 0] SAXIHP2RCOUNT,
output [63: 0] SAXIHP2RDATA,
input SAXIHP2RDISSUECAP1EN,
output [ 5: 0] SAXIHP2RID,
output SAXIHP2RLAST,
input SAXIHP2RREADY,
output [ 1: 0] SAXIHP2RRESP,
output SAXIHP2RVALID,
output [ 5: 0] SAXIHP2WACOUNT,
output [ 7: 0] SAXIHP2WCOUNT,
input [63: 0] SAXIHP2WDATA,
input [ 5: 0] SAXIHP2WID,
input SAXIHP2WLAST,
output SAXIHP2WREADY,
input SAXIHP2WRISSUECAP1EN,
input [ 7: 0] SAXIHP2WSTRB,
input SAXIHP2WVALID,
input SAXIHP3ACLK,
input [31: 0] SAXIHP3ARADDR,
input [ 1: 0] SAXIHP3ARBURST,
input [ 3: 0] SAXIHP3ARCACHE,
output SAXIHP3ARESETN,
input [ 5: 0] SAXIHP3ARID,
input [ 3: 0] SAXIHP3ARLEN,
input [ 1: 0] SAXIHP3ARLOCK,
input [ 2: 0] SAXIHP3ARPROT,
input [ 3: 0] SAXIHP3ARQOS,
output SAXIHP3ARREADY,
input [ 1: 0] SAXIHP3ARSIZE,
input SAXIHP3ARVALID,
input [31: 0] SAXIHP3AWADDR,
input [ 1: 0] SAXIHP3AWBURST,
input [ 3: 0] SAXIHP3AWCACHE,
input [ 5: 0] SAXIHP3AWID,
input [ 3: 0] SAXIHP3AWLEN,
input [ 1: 0] SAXIHP3AWLOCK,
input [ 2: 0] SAXIHP3AWPROT,
input [ 3: 0] SAXIHP3AWQOS,
output SAXIHP3AWREADY,
input [ 1: 0] SAXIHP3AWSIZE,
input SAXIHP3AWVALID,
output [ 5: 0] SAXIHP3BID,
input SAXIHP3BREADY,
output [ 1: 0] SAXIHP3BRESP,
output SAXIHP3BVALID,
output [ 2: 0] SAXIHP3RACOUNT,
output [ 7: 0] SAXIHP3RCOUNT,
output [63: 0] SAXIHP3RDATA,
input SAXIHP3RDISSUECAP1EN,
output [ 5: 0] SAXIHP3RID,
output SAXIHP3RLAST,
input SAXIHP3RREADY,
output [ 1: 0] SAXIHP3RRESP,
output SAXIHP3RVALID,
output [ 5: 0] SAXIHP3WACOUNT,
output [ 7: 0] SAXIHP3WCOUNT,
input [63: 0] SAXIHP3WDATA,
input [ 5: 0] SAXIHP3WID,
input SAXIHP3WLAST,
output SAXIHP3WREADY,
input SAXIHP3WRISSUECAP1EN,
input [ 7: 0] SAXIHP3WSTRB,
input SAXIHP3WVALID
);
// Techmap specific parameters.
parameter _TECHMAP_CONSTMSK_DDRARB_ = 0;
parameter _TECHMAP_CONSTVAL_DDRARB_ = 0;
parameter _TECHMAP_CONSTMSK_DMA0ACLK_ = 0;
parameter _TECHMAP_CONSTVAL_DMA0ACLK_ = 0;
parameter _TECHMAP_CONSTMSK_DMA0DAREADY_ = 0;
parameter _TECHMAP_CONSTVAL_DMA0DAREADY_ = 0;
parameter _TECHMAP_CONSTMSK_DMA0DRLAST_ = 0;
parameter _TECHMAP_CONSTVAL_DMA0DRLAST_ = 0;
parameter _TECHMAP_CONSTMSK_DMA0DRTYPE_ = 0;
parameter _TECHMAP_CONSTVAL_DMA0DRTYPE_ = 0;
parameter _TECHMAP_CONSTMSK_DMA0DRVALID_ = 0;
parameter _TECHMAP_CONSTVAL_DMA0DRVALID_ = 0;
parameter _TECHMAP_CONSTMSK_DMA1ACLK_ = 0;
parameter _TECHMAP_CONSTVAL_DMA1ACLK_ = 0;
parameter _TECHMAP_CONSTMSK_DMA1DAREADY_ = 0;
parameter _TECHMAP_CONSTVAL_DMA1DAREADY_ = 0;
parameter _TECHMAP_CONSTMSK_DMA1DRLAST_ = 0;
parameter _TECHMAP_CONSTVAL_DMA1DRLAST_ = 0;
parameter _TECHMAP_CONSTMSK_DMA1DRTYPE_ = 0;
parameter _TECHMAP_CONSTVAL_DMA1DRTYPE_ = 0;
parameter _TECHMAP_CONSTMSK_DMA1DRVALID_ = 0;
parameter _TECHMAP_CONSTVAL_DMA1DRVALID_ = 0;
parameter _TECHMAP_CONSTMSK_DMA2ACLK_ = 0;
parameter _TECHMAP_CONSTVAL_DMA2ACLK_ = 0;
parameter _TECHMAP_CONSTMSK_DMA2DAREADY_ = 0;
parameter _TECHMAP_CONSTVAL_DMA2DAREADY_ = 0;
parameter _TECHMAP_CONSTMSK_DMA2DRLAST_ = 0;
parameter _TECHMAP_CONSTVAL_DMA2DRLAST_ = 0;
parameter _TECHMAP_CONSTMSK_DMA2DRTYPE_ = 0;
parameter _TECHMAP_CONSTVAL_DMA2DRTYPE_ = 0;
parameter _TECHMAP_CONSTMSK_DMA2DRVALID_ = 0;
parameter _TECHMAP_CONSTVAL_DMA2DRVALID_ = 0;
parameter _TECHMAP_CONSTMSK_DMA3ACLK_ = 0;
parameter _TECHMAP_CONSTVAL_DMA3ACLK_ = 0;
parameter _TECHMAP_CONSTMSK_DMA3DAREADY_ = 0;
parameter _TECHMAP_CONSTVAL_DMA3DAREADY_ = 0;
parameter _TECHMAP_CONSTMSK_DMA3DRLAST_ = 0;
parameter _TECHMAP_CONSTVAL_DMA3DRLAST_ = 0;
parameter _TECHMAP_CONSTMSK_DMA3DRTYPE_ = 0;
parameter _TECHMAP_CONSTVAL_DMA3DRTYPE_ = 0;
parameter _TECHMAP_CONSTMSK_DMA3DRVALID_ = 0;
parameter _TECHMAP_CONSTVAL_DMA3DRVALID_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOCAN0PHYRX_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOCAN0PHYRX_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOCAN1PHYRX_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOCAN1PHYRX_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOENET0EXTINTIN_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOENET0EXTINTIN_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOENET0GMIICOL_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOENET0GMIICOL_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOENET0GMIICRS_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOENET0GMIICRS_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOENET0GMIIRXCLK_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOENET0GMIIRXCLK_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOENET0GMIIRXD_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOENET0GMIIRXD_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOENET0GMIIRXDV_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOENET0GMIIRXDV_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOENET0GMIIRXER_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOENET0GMIIRXER_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOENET0GMIITXCLK_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOENET0GMIITXCLK_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOENET0MDIOI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOENET0MDIOI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOENET1EXTINTIN_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOENET1EXTINTIN_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOENET1GMIICOL_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOENET1GMIICOL_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOENET1GMIICRS_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOENET1GMIICRS_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOENET1GMIIRXCLK_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOENET1GMIIRXCLK_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOENET1GMIIRXD_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOENET1GMIIRXD_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOENET1GMIIRXDV_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOENET1GMIIRXDV_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOENET1GMIIRXER_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOENET1GMIIRXER_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOENET1GMIITXCLK_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOENET1GMIITXCLK_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOENET1MDIOI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOENET1MDIOI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOGPIOI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOGPIOI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOI2C0SCLI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOI2C0SCLI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOI2C0SDAI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOI2C0SDAI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOI2C1SCLI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOI2C1SCLI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOI2C1SDAI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOI2C1SDAI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOPJTAGTCK_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOPJTAGTCK_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOPJTAGTDI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOPJTAGTDI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOPJTAGTMS_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOPJTAGTMS_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSDIO0CDN_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSDIO0CDN_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSDIO0CLKFB_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSDIO0CLKFB_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSDIO0CMDI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSDIO0CMDI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSDIO0DATAI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSDIO0DATAI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSDIO0WP_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSDIO0WP_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSDIO1CDN_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSDIO1CDN_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSDIO1CLKFB_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSDIO1CLKFB_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSDIO1CMDI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSDIO1CMDI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSDIO1DATAI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSDIO1DATAI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSDIO1WP_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSDIO1WP_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSPI0MI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSPI0MI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSPI0SCLKI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSPI0SCLKI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSPI0SI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSPI0SI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSPI0SSIN_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSPI0SSIN_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSPI1MI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSPI1MI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSPI1SCLKI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSPI1SCLKI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSPI1SI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSPI1SI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSPI1SSIN_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSPI1SSIN_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOSRAMINTIN_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOSRAMINTIN_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOTRACECLK_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOTRACECLK_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOTTC0CLKI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOTTC0CLKI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOTTC1CLKI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOTTC1CLKI_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOUART0CTSN_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOUART0CTSN_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOUART0DCDN_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOUART0DCDN_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOUART0DSRN_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOUART0DSRN_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOUART0RIN_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOUART0RIN_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOUART0RX_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOUART0RX_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOUART1CTSN_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOUART1CTSN_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOUART1DCDN_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOUART1DCDN_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOUART1DSRN_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOUART1DSRN_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOUART1RIN_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOUART1RIN_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOUART1RX_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOUART1RX_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOUSB0VBUSPWRFAULT_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOUSB0VBUSPWRFAULT_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOUSB1VBUSPWRFAULT_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOUSB1VBUSPWRFAULT_ = 0;
parameter _TECHMAP_CONSTMSK_EMIOWDTCLKI_ = 0;
parameter _TECHMAP_CONSTVAL_EMIOWDTCLKI_ = 0;
parameter _TECHMAP_CONSTMSK_EVENTEVENTI_ = 0;
parameter _TECHMAP_CONSTVAL_EVENTEVENTI_ = 0;
parameter _TECHMAP_CONSTMSK_FCLKCLKTRIGN_ = 0;
parameter _TECHMAP_CONSTVAL_FCLKCLKTRIGN_ = 0;
parameter _TECHMAP_CONSTMSK_FPGAIDLEN_ = 0;
parameter _TECHMAP_CONSTVAL_FPGAIDLEN_ = 0;
parameter _TECHMAP_CONSTMSK_FTMDTRACEINATID_ = 0;
parameter _TECHMAP_CONSTVAL_FTMDTRACEINATID_ = 0;
parameter _TECHMAP_CONSTMSK_FTMDTRACEINCLOCK_ = 0;
parameter _TECHMAP_CONSTVAL_FTMDTRACEINCLOCK_ = 0;
parameter _TECHMAP_CONSTMSK_FTMDTRACEINDATA_ = 0;
parameter _TECHMAP_CONSTVAL_FTMDTRACEINDATA_ = 0;
parameter _TECHMAP_CONSTMSK_FTMDTRACEINVALID_ = 0;
parameter _TECHMAP_CONSTVAL_FTMDTRACEINVALID_ = 0;
parameter _TECHMAP_CONSTMSK_FTMTF2PDEBUG_ = 0;
parameter _TECHMAP_CONSTVAL_FTMTF2PDEBUG_ = 0;
parameter _TECHMAP_CONSTMSK_FTMTF2PTRIG_ = 0;
parameter _TECHMAP_CONSTVAL_FTMTF2PTRIG_ = 0;
parameter _TECHMAP_CONSTMSK_FTMTP2FTRIGACK_ = 0;
parameter _TECHMAP_CONSTVAL_FTMTP2FTRIGACK_ = 0;
parameter _TECHMAP_CONSTMSK_IRQF2P_ = 0;
parameter _TECHMAP_CONSTVAL_IRQF2P_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP0ACLK_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP0ACLK_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP0ARREADY_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP0ARREADY_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP0AWREADY_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP0AWREADY_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP0BID_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP0BID_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP0BRESP_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP0BRESP_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP0BVALID_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP0BVALID_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP0RDATA_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP0RDATA_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP0RID_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP0RID_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP0RLAST_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP0RLAST_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP0RRESP_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP0RRESP_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP0RVALID_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP0RVALID_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP0WREADY_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP0WREADY_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP1ACLK_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP1ACLK_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP1ARREADY_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP1ARREADY_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP1AWREADY_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP1AWREADY_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP1BID_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP1BID_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP1BRESP_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP1BRESP_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP1BVALID_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP1BVALID_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP1RDATA_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP1RDATA_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP1RID_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP1RID_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP1RLAST_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP1RLAST_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP1RRESP_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP1RRESP_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP1RVALID_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP1RVALID_ = 0;
parameter _TECHMAP_CONSTMSK_MAXIGP1WREADY_ = 0;
parameter _TECHMAP_CONSTVAL_MAXIGP1WREADY_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPACLK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPACLK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPARADDR_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPARADDR_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPARBURST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPARBURST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPARCACHE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPARCACHE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPARID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPARID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPARLEN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPARLEN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPARLOCK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPARLOCK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPARPROT_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPARPROT_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPARQOS_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPARQOS_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPARSIZE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPARSIZE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPARUSER_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPARUSER_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPARVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPARVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPAWADDR_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPAWADDR_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPAWBURST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPAWBURST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPAWCACHE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPAWCACHE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPAWID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPAWID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPAWLEN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPAWLEN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPAWLOCK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPAWLOCK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPAWPROT_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPAWPROT_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPAWQOS_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPAWQOS_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPAWSIZE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPAWSIZE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPAWUSER_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPAWUSER_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPAWVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPAWVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPBREADY_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPBREADY_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPRREADY_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPRREADY_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPWDATA_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPWDATA_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPWID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPWID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPWLAST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPWLAST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPWSTRB_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPWSTRB_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIACPWVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIACPWVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0ACLK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0ACLK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0ARADDR_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0ARADDR_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0ARBURST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0ARBURST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0ARCACHE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0ARCACHE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0ARID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0ARID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0ARLEN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0ARLEN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0ARLOCK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0ARLOCK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0ARPROT_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0ARPROT_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0ARQOS_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0ARQOS_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0ARSIZE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0ARSIZE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0ARVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0ARVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0AWADDR_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0AWADDR_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0AWBURST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0AWBURST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0AWCACHE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0AWCACHE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0AWID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0AWID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0AWLEN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0AWLEN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0AWLOCK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0AWLOCK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0AWPROT_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0AWPROT_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0AWQOS_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0AWQOS_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0AWSIZE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0AWSIZE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0AWVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0AWVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0BREADY_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0BREADY_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0RREADY_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0RREADY_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0WDATA_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0WDATA_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0WID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0WID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0WLAST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0WLAST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0WSTRB_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0WSTRB_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP0WVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP0WVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1ACLK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1ACLK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1ARADDR_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1ARADDR_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1ARBURST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1ARBURST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1ARCACHE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1ARCACHE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1ARID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1ARID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1ARLEN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1ARLEN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1ARLOCK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1ARLOCK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1ARPROT_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1ARPROT_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1ARQOS_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1ARQOS_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1ARSIZE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1ARSIZE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1ARVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1ARVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1AWADDR_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1AWADDR_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1AWBURST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1AWBURST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1AWCACHE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1AWCACHE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1AWID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1AWID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1AWLEN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1AWLEN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1AWLOCK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1AWLOCK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1AWPROT_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1AWPROT_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1AWQOS_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1AWQOS_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1AWSIZE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1AWSIZE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1AWVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1AWVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1BREADY_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1BREADY_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1RREADY_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1RREADY_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1WDATA_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1WDATA_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1WID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1WID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1WLAST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1WLAST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1WSTRB_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1WSTRB_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIGP1WVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIGP1WVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0ACLK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0ACLK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0ARADDR_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0ARADDR_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0ARBURST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0ARBURST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0ARCACHE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0ARCACHE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0ARID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0ARID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0ARLEN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0ARLEN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0ARLOCK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0ARLOCK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0ARPROT_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0ARPROT_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0ARQOS_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0ARQOS_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0ARSIZE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0ARSIZE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0ARVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0ARVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0AWADDR_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0AWADDR_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0AWBURST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0AWBURST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0AWCACHE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0AWCACHE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0AWID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0AWID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0AWLEN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0AWLEN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0AWLOCK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0AWLOCK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0AWPROT_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0AWPROT_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0AWQOS_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0AWQOS_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0AWSIZE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0AWSIZE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0AWVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0AWVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0BREADY_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0BREADY_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0RDISSUECAP1EN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0RDISSUECAP1EN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0RREADY_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0RREADY_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0WDATA_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0WDATA_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0WID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0WID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0WLAST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0WLAST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0WRISSUECAP1EN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0WRISSUECAP1EN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0WSTRB_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0WSTRB_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP0WVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP0WVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1ACLK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1ACLK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1ARADDR_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1ARADDR_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1ARBURST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1ARBURST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1ARCACHE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1ARCACHE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1ARID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1ARID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1ARLEN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1ARLEN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1ARLOCK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1ARLOCK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1ARPROT_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1ARPROT_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1ARQOS_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1ARQOS_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1ARSIZE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1ARSIZE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1ARVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1ARVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1AWADDR_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1AWADDR_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1AWBURST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1AWBURST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1AWCACHE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1AWCACHE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1AWID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1AWID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1AWLEN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1AWLEN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1AWLOCK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1AWLOCK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1AWPROT_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1AWPROT_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1AWQOS_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1AWQOS_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1AWSIZE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1AWSIZE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1AWVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1AWVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1BREADY_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1BREADY_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1RDISSUECAP1EN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1RDISSUECAP1EN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1RREADY_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1RREADY_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1WDATA_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1WDATA_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1WID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1WID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1WLAST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1WLAST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1WRISSUECAP1EN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1WRISSUECAP1EN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1WSTRB_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1WSTRB_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP1WVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP1WVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2ACLK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2ACLK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2ARADDR_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2ARADDR_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2ARBURST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2ARBURST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2ARCACHE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2ARCACHE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2ARID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2ARID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2ARLEN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2ARLEN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2ARLOCK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2ARLOCK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2ARPROT_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2ARPROT_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2ARQOS_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2ARQOS_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2ARSIZE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2ARSIZE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2ARVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2ARVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2AWADDR_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2AWADDR_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2AWBURST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2AWBURST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2AWCACHE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2AWCACHE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2AWID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2AWID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2AWLEN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2AWLEN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2AWLOCK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2AWLOCK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2AWPROT_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2AWPROT_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2AWQOS_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2AWQOS_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2AWSIZE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2AWSIZE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2AWVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2AWVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2BREADY_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2BREADY_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2RDISSUECAP1EN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2RDISSUECAP1EN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2RREADY_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2RREADY_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2WDATA_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2WDATA_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2WID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2WID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2WLAST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2WLAST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2WRISSUECAP1EN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2WRISSUECAP1EN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2WSTRB_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2WSTRB_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP2WVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP2WVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3ACLK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3ACLK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3ARADDR_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3ARADDR_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3ARBURST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3ARBURST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3ARCACHE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3ARCACHE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3ARID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3ARID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3ARLEN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3ARLEN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3ARLOCK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3ARLOCK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3ARPROT_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3ARPROT_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3ARQOS_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3ARQOS_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3ARSIZE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3ARSIZE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3ARVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3ARVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3AWADDR_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3AWADDR_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3AWBURST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3AWBURST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3AWCACHE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3AWCACHE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3AWID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3AWID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3AWLEN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3AWLEN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3AWLOCK_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3AWLOCK_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3AWPROT_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3AWPROT_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3AWQOS_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3AWQOS_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3AWSIZE_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3AWSIZE_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3AWVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3AWVALID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3BREADY_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3BREADY_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3RDISSUECAP1EN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3RDISSUECAP1EN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3RREADY_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3RREADY_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3WDATA_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3WDATA_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3WID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3WID_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3WLAST_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3WLAST_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3WRISSUECAP1EN_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3WRISSUECAP1EN_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3WSTRB_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3WSTRB_ = 0;
parameter _TECHMAP_CONSTMSK_SAXIHP3WVALID_ = 0;
parameter _TECHMAP_CONSTVAL_SAXIHP3WVALID_ = 0;
// Detect all unconnected inputs and tie them to 0.
wire [3:0] ddrarb = (_TECHMAP_CONSTMSK_DDRARB_ == 4'd0 && _TECHMAP_CONSTVAL_DDRARB_ === 4'd0) ? 4'b0 : DDRARB;
wire [0:0] dma0aclk = (_TECHMAP_CONSTMSK_DMA0ACLK_ == 1'd0 && _TECHMAP_CONSTVAL_DMA0ACLK_ === 1'd0) ? 1'b0 : DMA0ACLK;
wire [0:0] dma0daready = (_TECHMAP_CONSTMSK_DMA0DAREADY_ == 1'd0 && _TECHMAP_CONSTVAL_DMA0DAREADY_ === 1'd0) ? 1'b0 : DMA0DAREADY;
wire [0:0] dma0drlast = (_TECHMAP_CONSTMSK_DMA0DRLAST_ == 1'd0 && _TECHMAP_CONSTVAL_DMA0DRLAST_ === 1'd0) ? 1'b0 : DMA0DRLAST;
wire [1:0] dma0drtype = (_TECHMAP_CONSTMSK_DMA0DRTYPE_ == 2'd0 && _TECHMAP_CONSTVAL_DMA0DRTYPE_ === 2'd0) ? 2'b0 : DMA0DRTYPE;
wire [0:0] dma0drvalid = (_TECHMAP_CONSTMSK_DMA0DRVALID_ == 1'd0 && _TECHMAP_CONSTVAL_DMA0DRVALID_ === 1'd0) ? 1'b0 : DMA0DRVALID;
wire [0:0] dma1aclk = (_TECHMAP_CONSTMSK_DMA1ACLK_ == 1'd0 && _TECHMAP_CONSTVAL_DMA1ACLK_ === 1'd0) ? 1'b0 : DMA1ACLK;
wire [0:0] dma1daready = (_TECHMAP_CONSTMSK_DMA1DAREADY_ == 1'd0 && _TECHMAP_CONSTVAL_DMA1DAREADY_ === 1'd0) ? 1'b0 : DMA1DAREADY;
wire [0:0] dma1drlast = (_TECHMAP_CONSTMSK_DMA1DRLAST_ == 1'd0 && _TECHMAP_CONSTVAL_DMA1DRLAST_ === 1'd0) ? 1'b0 : DMA1DRLAST;
wire [1:0] dma1drtype = (_TECHMAP_CONSTMSK_DMA1DRTYPE_ == 2'd0 && _TECHMAP_CONSTVAL_DMA1DRTYPE_ === 2'd0) ? 2'b0 : DMA1DRTYPE;
wire [0:0] dma1drvalid = (_TECHMAP_CONSTMSK_DMA1DRVALID_ == 1'd0 && _TECHMAP_CONSTVAL_DMA1DRVALID_ === 1'd0) ? 1'b0 : DMA1DRVALID;
wire [0:0] dma2aclk = (_TECHMAP_CONSTMSK_DMA2ACLK_ == 1'd0 && _TECHMAP_CONSTVAL_DMA2ACLK_ === 1'd0) ? 1'b0 : DMA2ACLK;
wire [0:0] dma2daready = (_TECHMAP_CONSTMSK_DMA2DAREADY_ == 1'd0 && _TECHMAP_CONSTVAL_DMA2DAREADY_ === 1'd0) ? 1'b0 : DMA2DAREADY;
wire [0:0] dma2drlast = (_TECHMAP_CONSTMSK_DMA2DRLAST_ == 1'd0 && _TECHMAP_CONSTVAL_DMA2DRLAST_ === 1'd0) ? 1'b0 : DMA2DRLAST;
wire [1:0] dma2drtype = (_TECHMAP_CONSTMSK_DMA2DRTYPE_ == 2'd0 && _TECHMAP_CONSTVAL_DMA2DRTYPE_ === 2'd0) ? 2'b0 : DMA2DRTYPE;
wire [0:0] dma2drvalid = (_TECHMAP_CONSTMSK_DMA2DRVALID_ == 1'd0 && _TECHMAP_CONSTVAL_DMA2DRVALID_ === 1'd0) ? 1'b0 : DMA2DRVALID;
wire [0:0] dma3aclk = (_TECHMAP_CONSTMSK_DMA3ACLK_ == 1'd0 && _TECHMAP_CONSTVAL_DMA3ACLK_ === 1'd0) ? 1'b0 : DMA3ACLK;
wire [0:0] dma3daready = (_TECHMAP_CONSTMSK_DMA3DAREADY_ == 1'd0 && _TECHMAP_CONSTVAL_DMA3DAREADY_ === 1'd0) ? 1'b0 : DMA3DAREADY;
wire [0:0] dma3drlast = (_TECHMAP_CONSTMSK_DMA3DRLAST_ == 1'd0 && _TECHMAP_CONSTVAL_DMA3DRLAST_ === 1'd0) ? 1'b0 : DMA3DRLAST;
wire [1:0] dma3drtype = (_TECHMAP_CONSTMSK_DMA3DRTYPE_ == 2'd0 && _TECHMAP_CONSTVAL_DMA3DRTYPE_ === 2'd0) ? 2'b0 : DMA3DRTYPE;
wire [0:0] dma3drvalid = (_TECHMAP_CONSTMSK_DMA3DRVALID_ == 1'd0 && _TECHMAP_CONSTVAL_DMA3DRVALID_ === 1'd0) ? 1'b0 : DMA3DRVALID;
wire [0:0] emiocan0phyrx = (_TECHMAP_CONSTMSK_EMIOCAN0PHYRX_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOCAN0PHYRX_ === 1'd0) ? 1'b0 : EMIOCAN0PHYRX;
wire [0:0] emiocan1phyrx = (_TECHMAP_CONSTMSK_EMIOCAN1PHYRX_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOCAN1PHYRX_ === 1'd0) ? 1'b0 : EMIOCAN1PHYRX;
wire [0:0] emioenet0extintin = (_TECHMAP_CONSTMSK_EMIOENET0EXTINTIN_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOENET0EXTINTIN_ === 1'd0) ? 1'b0 : EMIOENET0EXTINTIN;
wire [0:0] emioenet0gmiicol = (_TECHMAP_CONSTMSK_EMIOENET0GMIICOL_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOENET0GMIICOL_ === 1'd0) ? 1'b0 : EMIOENET0GMIICOL;
wire [0:0] emioenet0gmiicrs = (_TECHMAP_CONSTMSK_EMIOENET0GMIICRS_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOENET0GMIICRS_ === 1'd0) ? 1'b0 : EMIOENET0GMIICRS;
wire [0:0] emioenet0gmiirxclk = (_TECHMAP_CONSTMSK_EMIOENET0GMIIRXCLK_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOENET0GMIIRXCLK_ === 1'd0) ? 1'b0 : EMIOENET0GMIIRXCLK;
wire [7:0] emioenet0gmiirxd = (_TECHMAP_CONSTMSK_EMIOENET0GMIIRXD_ == 8'd0 && _TECHMAP_CONSTVAL_EMIOENET0GMIIRXD_ === 8'd0) ? 8'b0 : EMIOENET0GMIIRXD;
wire [0:0] emioenet0gmiirxdv = (_TECHMAP_CONSTMSK_EMIOENET0GMIIRXDV_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOENET0GMIIRXDV_ === 1'd0) ? 1'b0 : EMIOENET0GMIIRXDV;
wire [0:0] emioenet0gmiirxer = (_TECHMAP_CONSTMSK_EMIOENET0GMIIRXER_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOENET0GMIIRXER_ === 1'd0) ? 1'b0 : EMIOENET0GMIIRXER;
wire [0:0] emioenet0gmiitxclk = (_TECHMAP_CONSTMSK_EMIOENET0GMIITXCLK_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOENET0GMIITXCLK_ === 1'd0) ? 1'b0 : EMIOENET0GMIITXCLK;
wire [0:0] emioenet0mdioi = (_TECHMAP_CONSTMSK_EMIOENET0MDIOI_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOENET0MDIOI_ === 1'd0) ? 1'b0 : EMIOENET0MDIOI;
wire [0:0] emioenet1extintin = (_TECHMAP_CONSTMSK_EMIOENET1EXTINTIN_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOENET1EXTINTIN_ === 1'd0) ? 1'b0 : EMIOENET1EXTINTIN;
wire [0:0] emioenet1gmiicol = (_TECHMAP_CONSTMSK_EMIOENET1GMIICOL_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOENET1GMIICOL_ === 1'd0) ? 1'b0 : EMIOENET1GMIICOL;
wire [0:0] emioenet1gmiicrs = (_TECHMAP_CONSTMSK_EMIOENET1GMIICRS_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOENET1GMIICRS_ === 1'd0) ? 1'b0 : EMIOENET1GMIICRS;
wire [0:0] emioenet1gmiirxclk = (_TECHMAP_CONSTMSK_EMIOENET1GMIIRXCLK_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOENET1GMIIRXCLK_ === 1'd0) ? 1'b0 : EMIOENET1GMIIRXCLK;
wire [7:0] emioenet1gmiirxd = (_TECHMAP_CONSTMSK_EMIOENET1GMIIRXD_ == 8'd0 && _TECHMAP_CONSTVAL_EMIOENET1GMIIRXD_ === 8'd0) ? 8'b0 : EMIOENET1GMIIRXD;
wire [0:0] emioenet1gmiirxdv = (_TECHMAP_CONSTMSK_EMIOENET1GMIIRXDV_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOENET1GMIIRXDV_ === 1'd0) ? 1'b0 : EMIOENET1GMIIRXDV;
wire [0:0] emioenet1gmiirxer = (_TECHMAP_CONSTMSK_EMIOENET1GMIIRXER_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOENET1GMIIRXER_ === 1'd0) ? 1'b0 : EMIOENET1GMIIRXER;
wire [0:0] emioenet1gmiitxclk = (_TECHMAP_CONSTMSK_EMIOENET1GMIITXCLK_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOENET1GMIITXCLK_ === 1'd0) ? 1'b0 : EMIOENET1GMIITXCLK;
wire [0:0] emioenet1mdioi = (_TECHMAP_CONSTMSK_EMIOENET1MDIOI_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOENET1MDIOI_ === 1'd0) ? 1'b0 : EMIOENET1MDIOI;
wire [63:0] emiogpioi = (_TECHMAP_CONSTMSK_EMIOGPIOI_ == 64'd0 && _TECHMAP_CONSTVAL_EMIOGPIOI_ === 64'd0) ? 64'b0 : EMIOGPIOI;
wire [0:0] emioi2c0scli = (_TECHMAP_CONSTMSK_EMIOI2C0SCLI_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOI2C0SCLI_ === 1'd0) ? 1'b0 : EMIOI2C0SCLI;
wire [0:0] emioi2c0sdai = (_TECHMAP_CONSTMSK_EMIOI2C0SDAI_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOI2C0SDAI_ === 1'd0) ? 1'b0 : EMIOI2C0SDAI;
wire [0:0] emioi2c1scli = (_TECHMAP_CONSTMSK_EMIOI2C1SCLI_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOI2C1SCLI_ === 1'd0) ? 1'b0 : EMIOI2C1SCLI;
wire [0:0] emioi2c1sdai = (_TECHMAP_CONSTMSK_EMIOI2C1SDAI_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOI2C1SDAI_ === 1'd0) ? 1'b0 : EMIOI2C1SDAI;
wire [0:0] emiopjtagtck = (_TECHMAP_CONSTMSK_EMIOPJTAGTCK_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOPJTAGTCK_ === 1'd0) ? 1'b0 : EMIOPJTAGTCK;
wire [0:0] emiopjtagtdi = (_TECHMAP_CONSTMSK_EMIOPJTAGTDI_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOPJTAGTDI_ === 1'd0) ? 1'b0 : EMIOPJTAGTDI;
wire [0:0] emiopjtagtms = (_TECHMAP_CONSTMSK_EMIOPJTAGTMS_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOPJTAGTMS_ === 1'd0) ? 1'b0 : EMIOPJTAGTMS;
wire [0:0] emiosdio0cdn = (_TECHMAP_CONSTMSK_EMIOSDIO0CDN_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOSDIO0CDN_ === 1'd0) ? 1'b0 : EMIOSDIO0CDN;
wire [0:0] emiosdio0clkfb = (_TECHMAP_CONSTMSK_EMIOSDIO0CLKFB_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOSDIO0CLKFB_ === 1'd0) ? 1'b0 : EMIOSDIO0CLKFB;
wire [0:0] emiosdio0cmdi = (_TECHMAP_CONSTMSK_EMIOSDIO0CMDI_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOSDIO0CMDI_ === 1'd0) ? 1'b0 : EMIOSDIO0CMDI;
wire [3:0] emiosdio0datai = (_TECHMAP_CONSTMSK_EMIOSDIO0DATAI_ == 4'd0 && _TECHMAP_CONSTVAL_EMIOSDIO0DATAI_ === 4'd0) ? 4'b0 : EMIOSDIO0DATAI;
wire [0:0] emiosdio0wp = (_TECHMAP_CONSTMSK_EMIOSDIO0WP_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOSDIO0WP_ === 1'd0) ? 1'b0 : EMIOSDIO0WP;
wire [0:0] emiosdio1cdn = (_TECHMAP_CONSTMSK_EMIOSDIO1CDN_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOSDIO1CDN_ === 1'd0) ? 1'b0 : EMIOSDIO1CDN;
wire [0:0] emiosdio1clkfb = (_TECHMAP_CONSTMSK_EMIOSDIO1CLKFB_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOSDIO1CLKFB_ === 1'd0) ? 1'b0 : EMIOSDIO1CLKFB;
wire [0:0] emiosdio1cmdi = (_TECHMAP_CONSTMSK_EMIOSDIO1CMDI_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOSDIO1CMDI_ === 1'd0) ? 1'b0 : EMIOSDIO1CMDI;
wire [3:0] emiosdio1datai = (_TECHMAP_CONSTMSK_EMIOSDIO1DATAI_ == 4'd0 && _TECHMAP_CONSTVAL_EMIOSDIO1DATAI_ === 4'd0) ? 4'b0 : EMIOSDIO1DATAI;
wire [0:0] emiosdio1wp = (_TECHMAP_CONSTMSK_EMIOSDIO1WP_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOSDIO1WP_ === 1'd0) ? 1'b0 : EMIOSDIO1WP;
wire [0:0] emiospi0mi = (_TECHMAP_CONSTMSK_EMIOSPI0MI_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOSPI0MI_ === 1'd0) ? 1'b0 : EMIOSPI0MI;
wire [0:0] emiospi0sclki = (_TECHMAP_CONSTMSK_EMIOSPI0SCLKI_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOSPI0SCLKI_ === 1'd0) ? 1'b0 : EMIOSPI0SCLKI;
wire [0:0] emiospi0si = (_TECHMAP_CONSTMSK_EMIOSPI0SI_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOSPI0SI_ === 1'd0) ? 1'b0 : EMIOSPI0SI;
wire [0:0] emiospi0ssin = (_TECHMAP_CONSTMSK_EMIOSPI0SSIN_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOSPI0SSIN_ === 1'd0) ? 1'b0 : EMIOSPI0SSIN;
wire [0:0] emiospi1mi = (_TECHMAP_CONSTMSK_EMIOSPI1MI_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOSPI1MI_ === 1'd0) ? 1'b0 : EMIOSPI1MI;
wire [0:0] emiospi1sclki = (_TECHMAP_CONSTMSK_EMIOSPI1SCLKI_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOSPI1SCLKI_ === 1'd0) ? 1'b0 : EMIOSPI1SCLKI;
wire [0:0] emiospi1si = (_TECHMAP_CONSTMSK_EMIOSPI1SI_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOSPI1SI_ === 1'd0) ? 1'b0 : EMIOSPI1SI;
wire [0:0] emiospi1ssin = (_TECHMAP_CONSTMSK_EMIOSPI1SSIN_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOSPI1SSIN_ === 1'd0) ? 1'b0 : EMIOSPI1SSIN;
wire [0:0] emiosramintin = (_TECHMAP_CONSTMSK_EMIOSRAMINTIN_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOSRAMINTIN_ === 1'd0) ? 1'b0 : EMIOSRAMINTIN;
wire [0:0] emiotraceclk = (_TECHMAP_CONSTMSK_EMIOTRACECLK_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOTRACECLK_ === 1'd0) ? 1'b0 : EMIOTRACECLK;
wire [2:0] emiottc0clki = (_TECHMAP_CONSTMSK_EMIOTTC0CLKI_ == 3'd0 && _TECHMAP_CONSTVAL_EMIOTTC0CLKI_ === 3'd0) ? 3'b0 : EMIOTTC0CLKI;
wire [2:0] emiottc1clki = (_TECHMAP_CONSTMSK_EMIOTTC1CLKI_ == 3'd0 && _TECHMAP_CONSTVAL_EMIOTTC1CLKI_ === 3'd0) ? 3'b0 : EMIOTTC1CLKI;
wire [0:0] emiouart0ctsn = (_TECHMAP_CONSTMSK_EMIOUART0CTSN_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOUART0CTSN_ === 1'd0) ? 1'b0 : EMIOUART0CTSN;
wire [0:0] emiouart0dcdn = (_TECHMAP_CONSTMSK_EMIOUART0DCDN_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOUART0DCDN_ === 1'd0) ? 1'b0 : EMIOUART0DCDN;
wire [0:0] emiouart0dsrn = (_TECHMAP_CONSTMSK_EMIOUART0DSRN_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOUART0DSRN_ === 1'd0) ? 1'b0 : EMIOUART0DSRN;
wire [0:0] emiouart0rin = (_TECHMAP_CONSTMSK_EMIOUART0RIN_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOUART0RIN_ === 1'd0) ? 1'b0 : EMIOUART0RIN;
wire [0:0] emiouart0rx = (_TECHMAP_CONSTMSK_EMIOUART0RX_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOUART0RX_ === 1'd0) ? 1'b0 : EMIOUART0RX;
wire [0:0] emiouart1ctsn = (_TECHMAP_CONSTMSK_EMIOUART1CTSN_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOUART1CTSN_ === 1'd0) ? 1'b0 : EMIOUART1CTSN;
wire [0:0] emiouart1dcdn = (_TECHMAP_CONSTMSK_EMIOUART1DCDN_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOUART1DCDN_ === 1'd0) ? 1'b0 : EMIOUART1DCDN;
wire [0:0] emiouart1dsrn = (_TECHMAP_CONSTMSK_EMIOUART1DSRN_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOUART1DSRN_ === 1'd0) ? 1'b0 : EMIOUART1DSRN;
wire [0:0] emiouart1rin = (_TECHMAP_CONSTMSK_EMIOUART1RIN_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOUART1RIN_ === 1'd0) ? 1'b0 : EMIOUART1RIN;
wire [0:0] emiouart1rx = (_TECHMAP_CONSTMSK_EMIOUART1RX_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOUART1RX_ === 1'd0) ? 1'b0 : EMIOUART1RX;
wire [0:0] emiousb0vbuspwrfault = (_TECHMAP_CONSTMSK_EMIOUSB0VBUSPWRFAULT_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOUSB0VBUSPWRFAULT_ === 1'd0) ? 1'b0 : EMIOUSB0VBUSPWRFAULT;
wire [0:0] emiousb1vbuspwrfault = (_TECHMAP_CONSTMSK_EMIOUSB1VBUSPWRFAULT_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOUSB1VBUSPWRFAULT_ === 1'd0) ? 1'b0 : EMIOUSB1VBUSPWRFAULT;
wire [0:0] emiowdtclki = (_TECHMAP_CONSTMSK_EMIOWDTCLKI_ == 1'd0 && _TECHMAP_CONSTVAL_EMIOWDTCLKI_ === 1'd0) ? 1'b0 : EMIOWDTCLKI;
wire [0:0] eventeventi = (_TECHMAP_CONSTMSK_EVENTEVENTI_ == 1'd0 && _TECHMAP_CONSTVAL_EVENTEVENTI_ === 1'd0) ? 1'b0 : EVENTEVENTI;
wire [3:0] fclkclktrign = (_TECHMAP_CONSTMSK_FCLKCLKTRIGN_ == 4'd0 && _TECHMAP_CONSTVAL_FCLKCLKTRIGN_ === 4'd0) ? 4'b0 : FCLKCLKTRIGN;
wire [0:0] fpgaidlen = (_TECHMAP_CONSTMSK_FPGAIDLEN_ == 1'd0 && _TECHMAP_CONSTVAL_FPGAIDLEN_ === 1'd0) ? 1'b0 : FPGAIDLEN;
wire [3:0] ftmdtraceinatid = (_TECHMAP_CONSTMSK_FTMDTRACEINATID_ == 4'd0 && _TECHMAP_CONSTVAL_FTMDTRACEINATID_ === 4'd0) ? 4'b0 : FTMDTRACEINATID;
wire [0:0] ftmdtraceinclock = (_TECHMAP_CONSTMSK_FTMDTRACEINCLOCK_ == 1'd0 && _TECHMAP_CONSTVAL_FTMDTRACEINCLOCK_ === 1'd0) ? 1'b0 : FTMDTRACEINCLOCK;
wire [31:0] ftmdtraceindata = (_TECHMAP_CONSTMSK_FTMDTRACEINDATA_ == 32'd0 && _TECHMAP_CONSTVAL_FTMDTRACEINDATA_ === 32'd0) ? 32'b0 : FTMDTRACEINDATA;
wire [0:0] ftmdtraceinvalid = (_TECHMAP_CONSTMSK_FTMDTRACEINVALID_ == 1'd0 && _TECHMAP_CONSTVAL_FTMDTRACEINVALID_ === 1'd0) ? 1'b0 : FTMDTRACEINVALID;
wire [31:0] ftmtf2pdebug = (_TECHMAP_CONSTMSK_FTMTF2PDEBUG_ == 32'd0 && _TECHMAP_CONSTVAL_FTMTF2PDEBUG_ === 32'd0) ? 32'b0 : FTMTF2PDEBUG;
wire [3:0] ftmtf2ptrig = (_TECHMAP_CONSTMSK_FTMTF2PTRIG_ == 4'd0 && _TECHMAP_CONSTVAL_FTMTF2PTRIG_ === 4'd0) ? 4'b0 : FTMTF2PTRIG;
wire [3:0] ftmtp2ftrigack = (_TECHMAP_CONSTMSK_FTMTP2FTRIGACK_ == 4'd0 && _TECHMAP_CONSTVAL_FTMTP2FTRIGACK_ === 4'd0) ? 4'b0 : FTMTP2FTRIGACK;
wire [19:0] irqf2p = (_TECHMAP_CONSTMSK_IRQF2P_ == 20'd0 && _TECHMAP_CONSTVAL_IRQF2P_ === 20'd0) ? 20'b0 : IRQF2P;
wire [0:0] maxigp0aclk = (_TECHMAP_CONSTMSK_MAXIGP0ACLK_ == 1'd0 && _TECHMAP_CONSTVAL_MAXIGP0ACLK_ === 1'd0) ? 1'b0 : MAXIGP0ACLK;
wire [0:0] maxigp0arready = (_TECHMAP_CONSTMSK_MAXIGP0ARREADY_ == 1'd0 && _TECHMAP_CONSTVAL_MAXIGP0ARREADY_ === 1'd0) ? 1'b0 : MAXIGP0ARREADY;
wire [0:0] maxigp0awready = (_TECHMAP_CONSTMSK_MAXIGP0AWREADY_ == 1'd0 && _TECHMAP_CONSTVAL_MAXIGP0AWREADY_ === 1'd0) ? 1'b0 : MAXIGP0AWREADY;
wire [11:0] maxigp0bid = (_TECHMAP_CONSTMSK_MAXIGP0BID_ == 12'd0 && _TECHMAP_CONSTVAL_MAXIGP0BID_ === 12'd0) ? 12'b0 : MAXIGP0BID;
wire [1:0] maxigp0bresp = (_TECHMAP_CONSTMSK_MAXIGP0BRESP_ == 2'd0 && _TECHMAP_CONSTVAL_MAXIGP0BRESP_ === 2'd0) ? 2'b0 : MAXIGP0BRESP;
wire [0:0] maxigp0bvalid = (_TECHMAP_CONSTMSK_MAXIGP0BVALID_ == 1'd0 && _TECHMAP_CONSTVAL_MAXIGP0BVALID_ === 1'd0) ? 1'b0 : MAXIGP0BVALID;
wire [31:0] maxigp0rdata = (_TECHMAP_CONSTMSK_MAXIGP0RDATA_ == 32'd0 && _TECHMAP_CONSTVAL_MAXIGP0RDATA_ === 32'd0) ? 32'b0 : MAXIGP0RDATA;
wire [11:0] maxigp0rid = (_TECHMAP_CONSTMSK_MAXIGP0RID_ == 12'd0 && _TECHMAP_CONSTVAL_MAXIGP0RID_ === 12'd0) ? 12'b0 : MAXIGP0RID;
wire [0:0] maxigp0rlast = (_TECHMAP_CONSTMSK_MAXIGP0RLAST_ == 1'd0 && _TECHMAP_CONSTVAL_MAXIGP0RLAST_ === 1'd0) ? 1'b0 : MAXIGP0RLAST;
wire [1:0] maxigp0rresp = (_TECHMAP_CONSTMSK_MAXIGP0RRESP_ == 2'd0 && _TECHMAP_CONSTVAL_MAXIGP0RRESP_ === 2'd0) ? 2'b0 : MAXIGP0RRESP;
wire [0:0] maxigp0rvalid = (_TECHMAP_CONSTMSK_MAXIGP0RVALID_ == 1'd0 && _TECHMAP_CONSTVAL_MAXIGP0RVALID_ === 1'd0) ? 1'b0 : MAXIGP0RVALID;
wire [0:0] maxigp0wready = (_TECHMAP_CONSTMSK_MAXIGP0WREADY_ == 1'd0 && _TECHMAP_CONSTVAL_MAXIGP0WREADY_ === 1'd0) ? 1'b0 : MAXIGP0WREADY;
wire [0:0] maxigp1aclk = (_TECHMAP_CONSTMSK_MAXIGP1ACLK_ == 1'd0 && _TECHMAP_CONSTVAL_MAXIGP1ACLK_ === 1'd0) ? 1'b0 : MAXIGP1ACLK;
wire [0:0] maxigp1arready = (_TECHMAP_CONSTMSK_MAXIGP1ARREADY_ == 1'd0 && _TECHMAP_CONSTVAL_MAXIGP1ARREADY_ === 1'd0) ? 1'b0 : MAXIGP1ARREADY;
wire [0:0] maxigp1awready = (_TECHMAP_CONSTMSK_MAXIGP1AWREADY_ == 1'd0 && _TECHMAP_CONSTVAL_MAXIGP1AWREADY_ === 1'd0) ? 1'b0 : MAXIGP1AWREADY;
wire [11:0] maxigp1bid = (_TECHMAP_CONSTMSK_MAXIGP1BID_ == 12'd0 && _TECHMAP_CONSTVAL_MAXIGP1BID_ === 12'd0) ? 12'b0 : MAXIGP1BID;
wire [1:0] maxigp1bresp = (_TECHMAP_CONSTMSK_MAXIGP1BRESP_ == 2'd0 && _TECHMAP_CONSTVAL_MAXIGP1BRESP_ === 2'd0) ? 2'b0 : MAXIGP1BRESP;
wire [0:0] maxigp1bvalid = (_TECHMAP_CONSTMSK_MAXIGP1BVALID_ == 1'd0 && _TECHMAP_CONSTVAL_MAXIGP1BVALID_ === 1'd0) ? 1'b0 : MAXIGP1BVALID;
wire [31:0] maxigp1rdata = (_TECHMAP_CONSTMSK_MAXIGP1RDATA_ == 32'd0 && _TECHMAP_CONSTVAL_MAXIGP1RDATA_ === 32'd0) ? 32'b0 : MAXIGP1RDATA;
wire [11:0] maxigp1rid = (_TECHMAP_CONSTMSK_MAXIGP1RID_ == 12'd0 && _TECHMAP_CONSTVAL_MAXIGP1RID_ === 12'd0) ? 12'b0 : MAXIGP1RID;
wire [0:0] maxigp1rlast = (_TECHMAP_CONSTMSK_MAXIGP1RLAST_ == 1'd0 && _TECHMAP_CONSTVAL_MAXIGP1RLAST_ === 1'd0) ? 1'b0 : MAXIGP1RLAST;
wire [1:0] maxigp1rresp = (_TECHMAP_CONSTMSK_MAXIGP1RRESP_ == 2'd0 && _TECHMAP_CONSTVAL_MAXIGP1RRESP_ === 2'd0) ? 2'b0 : MAXIGP1RRESP;
wire [0:0] maxigp1rvalid = (_TECHMAP_CONSTMSK_MAXIGP1RVALID_ == 1'd0 && _TECHMAP_CONSTVAL_MAXIGP1RVALID_ === 1'd0) ? 1'b0 : MAXIGP1RVALID;
wire [0:0] maxigp1wready = (_TECHMAP_CONSTMSK_MAXIGP1WREADY_ == 1'd0 && _TECHMAP_CONSTVAL_MAXIGP1WREADY_ === 1'd0) ? 1'b0 : MAXIGP1WREADY;
wire [0:0] saxiacpaclk = (_TECHMAP_CONSTMSK_SAXIACPACLK_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIACPACLK_ === 1'd0) ? 1'b0 : SAXIACPACLK;
wire [31:0] saxiacparaddr = (_TECHMAP_CONSTMSK_SAXIACPARADDR_ == 32'd0 && _TECHMAP_CONSTVAL_SAXIACPARADDR_ === 32'd0) ? 32'b0 : SAXIACPARADDR;
wire [1:0] saxiacparburst = (_TECHMAP_CONSTMSK_SAXIACPARBURST_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIACPARBURST_ === 2'd0) ? 2'b0 : SAXIACPARBURST;
wire [3:0] saxiacparcache = (_TECHMAP_CONSTMSK_SAXIACPARCACHE_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIACPARCACHE_ === 4'd0) ? 4'b0 : SAXIACPARCACHE;
wire [2:0] saxiacparid = (_TECHMAP_CONSTMSK_SAXIACPARID_ == 3'd0 && _TECHMAP_CONSTVAL_SAXIACPARID_ === 3'd0) ? 3'b0 : SAXIACPARID;
wire [3:0] saxiacparlen = (_TECHMAP_CONSTMSK_SAXIACPARLEN_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIACPARLEN_ === 4'd0) ? 4'b0 : SAXIACPARLEN;
wire [1:0] saxiacparlock = (_TECHMAP_CONSTMSK_SAXIACPARLOCK_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIACPARLOCK_ === 2'd0) ? 2'b0 : SAXIACPARLOCK;
wire [2:0] saxiacparprot = (_TECHMAP_CONSTMSK_SAXIACPARPROT_ == 3'd0 && _TECHMAP_CONSTVAL_SAXIACPARPROT_ === 3'd0) ? 3'b0 : SAXIACPARPROT;
wire [3:0] saxiacparqos = (_TECHMAP_CONSTMSK_SAXIACPARQOS_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIACPARQOS_ === 4'd0) ? 4'b0 : SAXIACPARQOS;
wire [1:0] saxiacparsize = (_TECHMAP_CONSTMSK_SAXIACPARSIZE_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIACPARSIZE_ === 2'd0) ? 2'b0 : SAXIACPARSIZE;
wire [4:0] saxiacparuser = (_TECHMAP_CONSTMSK_SAXIACPARUSER_ == 5'd0 && _TECHMAP_CONSTVAL_SAXIACPARUSER_ === 5'd0) ? 5'b0 : SAXIACPARUSER;
wire [0:0] saxiacparvalid = (_TECHMAP_CONSTMSK_SAXIACPARVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIACPARVALID_ === 1'd0) ? 1'b0 : SAXIACPARVALID;
wire [31:0] saxiacpawaddr = (_TECHMAP_CONSTMSK_SAXIACPAWADDR_ == 32'd0 && _TECHMAP_CONSTVAL_SAXIACPAWADDR_ === 32'd0) ? 32'b0 : SAXIACPAWADDR;
wire [1:0] saxiacpawburst = (_TECHMAP_CONSTMSK_SAXIACPAWBURST_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIACPAWBURST_ === 2'd0) ? 2'b0 : SAXIACPAWBURST;
wire [3:0] saxiacpawcache = (_TECHMAP_CONSTMSK_SAXIACPAWCACHE_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIACPAWCACHE_ === 4'd0) ? 4'b0 : SAXIACPAWCACHE;
wire [2:0] saxiacpawid = (_TECHMAP_CONSTMSK_SAXIACPAWID_ == 3'd0 && _TECHMAP_CONSTVAL_SAXIACPAWID_ === 3'd0) ? 3'b0 : SAXIACPAWID;
wire [3:0] saxiacpawlen = (_TECHMAP_CONSTMSK_SAXIACPAWLEN_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIACPAWLEN_ === 4'd0) ? 4'b0 : SAXIACPAWLEN;
wire [1:0] saxiacpawlock = (_TECHMAP_CONSTMSK_SAXIACPAWLOCK_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIACPAWLOCK_ === 2'd0) ? 2'b0 : SAXIACPAWLOCK;
wire [2:0] saxiacpawprot = (_TECHMAP_CONSTMSK_SAXIACPAWPROT_ == 3'd0 && _TECHMAP_CONSTVAL_SAXIACPAWPROT_ === 3'd0) ? 3'b0 : SAXIACPAWPROT;
wire [3:0] saxiacpawqos = (_TECHMAP_CONSTMSK_SAXIACPAWQOS_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIACPAWQOS_ === 4'd0) ? 4'b0 : SAXIACPAWQOS;
wire [1:0] saxiacpawsize = (_TECHMAP_CONSTMSK_SAXIACPAWSIZE_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIACPAWSIZE_ === 2'd0) ? 2'b0 : SAXIACPAWSIZE;
wire [4:0] saxiacpawuser = (_TECHMAP_CONSTMSK_SAXIACPAWUSER_ == 5'd0 && _TECHMAP_CONSTVAL_SAXIACPAWUSER_ === 5'd0) ? 5'b0 : SAXIACPAWUSER;
wire [0:0] saxiacpawvalid = (_TECHMAP_CONSTMSK_SAXIACPAWVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIACPAWVALID_ === 1'd0) ? 1'b0 : SAXIACPAWVALID;
wire [0:0] saxiacpbready = (_TECHMAP_CONSTMSK_SAXIACPBREADY_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIACPBREADY_ === 1'd0) ? 1'b0 : SAXIACPBREADY;
wire [0:0] saxiacprready = (_TECHMAP_CONSTMSK_SAXIACPRREADY_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIACPRREADY_ === 1'd0) ? 1'b0 : SAXIACPRREADY;
wire [63:0] saxiacpwdata = (_TECHMAP_CONSTMSK_SAXIACPWDATA_ == 64'd0 && _TECHMAP_CONSTVAL_SAXIACPWDATA_ === 64'd0) ? 64'b0 : SAXIACPWDATA;
wire [2:0] saxiacpwid = (_TECHMAP_CONSTMSK_SAXIACPWID_ == 3'd0 && _TECHMAP_CONSTVAL_SAXIACPWID_ === 3'd0) ? 3'b0 : SAXIACPWID;
wire [0:0] saxiacpwlast = (_TECHMAP_CONSTMSK_SAXIACPWLAST_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIACPWLAST_ === 1'd0) ? 1'b0 : SAXIACPWLAST;
wire [7:0] saxiacpwstrb = (_TECHMAP_CONSTMSK_SAXIACPWSTRB_ == 8'd0 && _TECHMAP_CONSTVAL_SAXIACPWSTRB_ === 8'd0) ? 8'b0 : SAXIACPWSTRB;
wire [0:0] saxiacpwvalid = (_TECHMAP_CONSTMSK_SAXIACPWVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIACPWVALID_ === 1'd0) ? 1'b0 : SAXIACPWVALID;
wire [0:0] saxigp0aclk = (_TECHMAP_CONSTMSK_SAXIGP0ACLK_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIGP0ACLK_ === 1'd0) ? 1'b0 : SAXIGP0ACLK;
wire [31:0] saxigp0araddr = (_TECHMAP_CONSTMSK_SAXIGP0ARADDR_ == 32'd0 && _TECHMAP_CONSTVAL_SAXIGP0ARADDR_ === 32'd0) ? 32'b0 : SAXIGP0ARADDR;
wire [1:0] saxigp0arburst = (_TECHMAP_CONSTMSK_SAXIGP0ARBURST_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIGP0ARBURST_ === 2'd0) ? 2'b0 : SAXIGP0ARBURST;
wire [3:0] saxigp0arcache = (_TECHMAP_CONSTMSK_SAXIGP0ARCACHE_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIGP0ARCACHE_ === 4'd0) ? 4'b0 : SAXIGP0ARCACHE;
wire [5:0] saxigp0arid = (_TECHMAP_CONSTMSK_SAXIGP0ARID_ == 6'd0 && _TECHMAP_CONSTVAL_SAXIGP0ARID_ === 6'd0) ? 6'b0 : SAXIGP0ARID;
wire [3:0] saxigp0arlen = (_TECHMAP_CONSTMSK_SAXIGP0ARLEN_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIGP0ARLEN_ === 4'd0) ? 4'b0 : SAXIGP0ARLEN;
wire [1:0] saxigp0arlock = (_TECHMAP_CONSTMSK_SAXIGP0ARLOCK_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIGP0ARLOCK_ === 2'd0) ? 2'b0 : SAXIGP0ARLOCK;
wire [2:0] saxigp0arprot = (_TECHMAP_CONSTMSK_SAXIGP0ARPROT_ == 3'd0 && _TECHMAP_CONSTVAL_SAXIGP0ARPROT_ === 3'd0) ? 3'b0 : SAXIGP0ARPROT;
wire [3:0] saxigp0arqos = (_TECHMAP_CONSTMSK_SAXIGP0ARQOS_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIGP0ARQOS_ === 4'd0) ? 4'b0 : SAXIGP0ARQOS;
wire [1:0] saxigp0arsize = (_TECHMAP_CONSTMSK_SAXIGP0ARSIZE_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIGP0ARSIZE_ === 2'd0) ? 2'b0 : SAXIGP0ARSIZE;
wire [0:0] saxigp0arvalid = (_TECHMAP_CONSTMSK_SAXIGP0ARVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIGP0ARVALID_ === 1'd0) ? 1'b0 : SAXIGP0ARVALID;
wire [31:0] saxigp0awaddr = (_TECHMAP_CONSTMSK_SAXIGP0AWADDR_ == 32'd0 && _TECHMAP_CONSTVAL_SAXIGP0AWADDR_ === 32'd0) ? 32'b0 : SAXIGP0AWADDR;
wire [1:0] saxigp0awburst = (_TECHMAP_CONSTMSK_SAXIGP0AWBURST_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIGP0AWBURST_ === 2'd0) ? 2'b0 : SAXIGP0AWBURST;
wire [3:0] saxigp0awcache = (_TECHMAP_CONSTMSK_SAXIGP0AWCACHE_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIGP0AWCACHE_ === 4'd0) ? 4'b0 : SAXIGP0AWCACHE;
wire [5:0] saxigp0awid = (_TECHMAP_CONSTMSK_SAXIGP0AWID_ == 6'd0 && _TECHMAP_CONSTVAL_SAXIGP0AWID_ === 6'd0) ? 6'b0 : SAXIGP0AWID;
wire [3:0] saxigp0awlen = (_TECHMAP_CONSTMSK_SAXIGP0AWLEN_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIGP0AWLEN_ === 4'd0) ? 4'b0 : SAXIGP0AWLEN;
wire [1:0] saxigp0awlock = (_TECHMAP_CONSTMSK_SAXIGP0AWLOCK_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIGP0AWLOCK_ === 2'd0) ? 2'b0 : SAXIGP0AWLOCK;
wire [2:0] saxigp0awprot = (_TECHMAP_CONSTMSK_SAXIGP0AWPROT_ == 3'd0 && _TECHMAP_CONSTVAL_SAXIGP0AWPROT_ === 3'd0) ? 3'b0 : SAXIGP0AWPROT;
wire [3:0] saxigp0awqos = (_TECHMAP_CONSTMSK_SAXIGP0AWQOS_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIGP0AWQOS_ === 4'd0) ? 4'b0 : SAXIGP0AWQOS;
wire [1:0] saxigp0awsize = (_TECHMAP_CONSTMSK_SAXIGP0AWSIZE_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIGP0AWSIZE_ === 2'd0) ? 2'b0 : SAXIGP0AWSIZE;
wire [0:0] saxigp0awvalid = (_TECHMAP_CONSTMSK_SAXIGP0AWVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIGP0AWVALID_ === 1'd0) ? 1'b0 : SAXIGP0AWVALID;
wire [0:0] saxigp0bready = (_TECHMAP_CONSTMSK_SAXIGP0BREADY_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIGP0BREADY_ === 1'd0) ? 1'b0 : SAXIGP0BREADY;
wire [0:0] saxigp0rready = (_TECHMAP_CONSTMSK_SAXIGP0RREADY_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIGP0RREADY_ === 1'd0) ? 1'b0 : SAXIGP0RREADY;
wire [31:0] saxigp0wdata = (_TECHMAP_CONSTMSK_SAXIGP0WDATA_ == 32'd0 && _TECHMAP_CONSTVAL_SAXIGP0WDATA_ === 32'd0) ? 32'b0 : SAXIGP0WDATA;
wire [5:0] saxigp0wid = (_TECHMAP_CONSTMSK_SAXIGP0WID_ == 6'd0 && _TECHMAP_CONSTVAL_SAXIGP0WID_ === 6'd0) ? 6'b0 : SAXIGP0WID;
wire [0:0] saxigp0wlast = (_TECHMAP_CONSTMSK_SAXIGP0WLAST_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIGP0WLAST_ === 1'd0) ? 1'b0 : SAXIGP0WLAST;
wire [3:0] saxigp0wstrb = (_TECHMAP_CONSTMSK_SAXIGP0WSTRB_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIGP0WSTRB_ === 4'd0) ? 4'b0 : SAXIGP0WSTRB;
wire [0:0] saxigp0wvalid = (_TECHMAP_CONSTMSK_SAXIGP0WVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIGP0WVALID_ === 1'd0) ? 1'b0 : SAXIGP0WVALID;
wire [0:0] saxigp1aclk = (_TECHMAP_CONSTMSK_SAXIGP1ACLK_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIGP1ACLK_ === 1'd0) ? 1'b0 : SAXIGP1ACLK;
wire [31:0] saxigp1araddr = (_TECHMAP_CONSTMSK_SAXIGP1ARADDR_ == 32'd0 && _TECHMAP_CONSTVAL_SAXIGP1ARADDR_ === 32'd0) ? 32'b0 : SAXIGP1ARADDR;
wire [1:0] saxigp1arburst = (_TECHMAP_CONSTMSK_SAXIGP1ARBURST_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIGP1ARBURST_ === 2'd0) ? 2'b0 : SAXIGP1ARBURST;
wire [3:0] saxigp1arcache = (_TECHMAP_CONSTMSK_SAXIGP1ARCACHE_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIGP1ARCACHE_ === 4'd0) ? 4'b0 : SAXIGP1ARCACHE;
wire [5:0] saxigp1arid = (_TECHMAP_CONSTMSK_SAXIGP1ARID_ == 6'd0 && _TECHMAP_CONSTVAL_SAXIGP1ARID_ === 6'd0) ? 6'b0 : SAXIGP1ARID;
wire [3:0] saxigp1arlen = (_TECHMAP_CONSTMSK_SAXIGP1ARLEN_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIGP1ARLEN_ === 4'd0) ? 4'b0 : SAXIGP1ARLEN;
wire [1:0] saxigp1arlock = (_TECHMAP_CONSTMSK_SAXIGP1ARLOCK_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIGP1ARLOCK_ === 2'd0) ? 2'b0 : SAXIGP1ARLOCK;
wire [2:0] saxigp1arprot = (_TECHMAP_CONSTMSK_SAXIGP1ARPROT_ == 3'd0 && _TECHMAP_CONSTVAL_SAXIGP1ARPROT_ === 3'd0) ? 3'b0 : SAXIGP1ARPROT;
wire [3:0] saxigp1arqos = (_TECHMAP_CONSTMSK_SAXIGP1ARQOS_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIGP1ARQOS_ === 4'd0) ? 4'b0 : SAXIGP1ARQOS;
wire [1:0] saxigp1arsize = (_TECHMAP_CONSTMSK_SAXIGP1ARSIZE_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIGP1ARSIZE_ === 2'd0) ? 2'b0 : SAXIGP1ARSIZE;
wire [0:0] saxigp1arvalid = (_TECHMAP_CONSTMSK_SAXIGP1ARVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIGP1ARVALID_ === 1'd0) ? 1'b0 : SAXIGP1ARVALID;
wire [31:0] saxigp1awaddr = (_TECHMAP_CONSTMSK_SAXIGP1AWADDR_ == 32'd0 && _TECHMAP_CONSTVAL_SAXIGP1AWADDR_ === 32'd0) ? 32'b0 : SAXIGP1AWADDR;
wire [1:0] saxigp1awburst = (_TECHMAP_CONSTMSK_SAXIGP1AWBURST_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIGP1AWBURST_ === 2'd0) ? 2'b0 : SAXIGP1AWBURST;
wire [3:0] saxigp1awcache = (_TECHMAP_CONSTMSK_SAXIGP1AWCACHE_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIGP1AWCACHE_ === 4'd0) ? 4'b0 : SAXIGP1AWCACHE;
wire [5:0] saxigp1awid = (_TECHMAP_CONSTMSK_SAXIGP1AWID_ == 6'd0 && _TECHMAP_CONSTVAL_SAXIGP1AWID_ === 6'd0) ? 6'b0 : SAXIGP1AWID;
wire [3:0] saxigp1awlen = (_TECHMAP_CONSTMSK_SAXIGP1AWLEN_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIGP1AWLEN_ === 4'd0) ? 4'b0 : SAXIGP1AWLEN;
wire [1:0] saxigp1awlock = (_TECHMAP_CONSTMSK_SAXIGP1AWLOCK_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIGP1AWLOCK_ === 2'd0) ? 2'b0 : SAXIGP1AWLOCK;
wire [2:0] saxigp1awprot = (_TECHMAP_CONSTMSK_SAXIGP1AWPROT_ == 3'd0 && _TECHMAP_CONSTVAL_SAXIGP1AWPROT_ === 3'd0) ? 3'b0 : SAXIGP1AWPROT;
wire [3:0] saxigp1awqos = (_TECHMAP_CONSTMSK_SAXIGP1AWQOS_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIGP1AWQOS_ === 4'd0) ? 4'b0 : SAXIGP1AWQOS;
wire [1:0] saxigp1awsize = (_TECHMAP_CONSTMSK_SAXIGP1AWSIZE_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIGP1AWSIZE_ === 2'd0) ? 2'b0 : SAXIGP1AWSIZE;
wire [0:0] saxigp1awvalid = (_TECHMAP_CONSTMSK_SAXIGP1AWVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIGP1AWVALID_ === 1'd0) ? 1'b0 : SAXIGP1AWVALID;
wire [0:0] saxigp1bready = (_TECHMAP_CONSTMSK_SAXIGP1BREADY_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIGP1BREADY_ === 1'd0) ? 1'b0 : SAXIGP1BREADY;
wire [0:0] saxigp1rready = (_TECHMAP_CONSTMSK_SAXIGP1RREADY_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIGP1RREADY_ === 1'd0) ? 1'b0 : SAXIGP1RREADY;
wire [31:0] saxigp1wdata = (_TECHMAP_CONSTMSK_SAXIGP1WDATA_ == 32'd0 && _TECHMAP_CONSTVAL_SAXIGP1WDATA_ === 32'd0) ? 32'b0 : SAXIGP1WDATA;
wire [5:0] saxigp1wid = (_TECHMAP_CONSTMSK_SAXIGP1WID_ == 6'd0 && _TECHMAP_CONSTVAL_SAXIGP1WID_ === 6'd0) ? 6'b0 : SAXIGP1WID;
wire [0:0] saxigp1wlast = (_TECHMAP_CONSTMSK_SAXIGP1WLAST_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIGP1WLAST_ === 1'd0) ? 1'b0 : SAXIGP1WLAST;
wire [3:0] saxigp1wstrb = (_TECHMAP_CONSTMSK_SAXIGP1WSTRB_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIGP1WSTRB_ === 4'd0) ? 4'b0 : SAXIGP1WSTRB;
wire [0:0] saxigp1wvalid = (_TECHMAP_CONSTMSK_SAXIGP1WVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIGP1WVALID_ === 1'd0) ? 1'b0 : SAXIGP1WVALID;
wire [0:0] saxihp0aclk = (_TECHMAP_CONSTMSK_SAXIHP0ACLK_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP0ACLK_ === 1'd0) ? 1'b0 : SAXIHP0ACLK;
wire [31:0] saxihp0araddr = (_TECHMAP_CONSTMSK_SAXIHP0ARADDR_ == 32'd0 && _TECHMAP_CONSTVAL_SAXIHP0ARADDR_ === 32'd0) ? 32'b0 : SAXIHP0ARADDR;
wire [1:0] saxihp0arburst = (_TECHMAP_CONSTMSK_SAXIHP0ARBURST_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP0ARBURST_ === 2'd0) ? 2'b0 : SAXIHP0ARBURST;
wire [3:0] saxihp0arcache = (_TECHMAP_CONSTMSK_SAXIHP0ARCACHE_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP0ARCACHE_ === 4'd0) ? 4'b0 : SAXIHP0ARCACHE;
wire [5:0] saxihp0arid = (_TECHMAP_CONSTMSK_SAXIHP0ARID_ == 6'd0 && _TECHMAP_CONSTVAL_SAXIHP0ARID_ === 6'd0) ? 6'b0 : SAXIHP0ARID;
wire [3:0] saxihp0arlen = (_TECHMAP_CONSTMSK_SAXIHP0ARLEN_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP0ARLEN_ === 4'd0) ? 4'b0 : SAXIHP0ARLEN;
wire [1:0] saxihp0arlock = (_TECHMAP_CONSTMSK_SAXIHP0ARLOCK_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP0ARLOCK_ === 2'd0) ? 2'b0 : SAXIHP0ARLOCK;
wire [2:0] saxihp0arprot = (_TECHMAP_CONSTMSK_SAXIHP0ARPROT_ == 3'd0 && _TECHMAP_CONSTVAL_SAXIHP0ARPROT_ === 3'd0) ? 3'b0 : SAXIHP0ARPROT;
wire [3:0] saxihp0arqos = (_TECHMAP_CONSTMSK_SAXIHP0ARQOS_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP0ARQOS_ === 4'd0) ? 4'b0 : SAXIHP0ARQOS;
wire [1:0] saxihp0arsize = (_TECHMAP_CONSTMSK_SAXIHP0ARSIZE_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP0ARSIZE_ === 2'd0) ? 2'b0 : SAXIHP0ARSIZE;
wire [0:0] saxihp0arvalid = (_TECHMAP_CONSTMSK_SAXIHP0ARVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP0ARVALID_ === 1'd0) ? 1'b0 : SAXIHP0ARVALID;
wire [31:0] saxihp0awaddr = (_TECHMAP_CONSTMSK_SAXIHP0AWADDR_ == 32'd0 && _TECHMAP_CONSTVAL_SAXIHP0AWADDR_ === 32'd0) ? 32'b0 : SAXIHP0AWADDR;
wire [1:0] saxihp0awburst = (_TECHMAP_CONSTMSK_SAXIHP0AWBURST_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP0AWBURST_ === 2'd0) ? 2'b0 : SAXIHP0AWBURST;
wire [3:0] saxihp0awcache = (_TECHMAP_CONSTMSK_SAXIHP0AWCACHE_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP0AWCACHE_ === 4'd0) ? 4'b0 : SAXIHP0AWCACHE;
wire [5:0] saxihp0awid = (_TECHMAP_CONSTMSK_SAXIHP0AWID_ == 6'd0 && _TECHMAP_CONSTVAL_SAXIHP0AWID_ === 6'd0) ? 6'b0 : SAXIHP0AWID;
wire [3:0] saxihp0awlen = (_TECHMAP_CONSTMSK_SAXIHP0AWLEN_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP0AWLEN_ === 4'd0) ? 4'b0 : SAXIHP0AWLEN;
wire [1:0] saxihp0awlock = (_TECHMAP_CONSTMSK_SAXIHP0AWLOCK_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP0AWLOCK_ === 2'd0) ? 2'b0 : SAXIHP0AWLOCK;
wire [2:0] saxihp0awprot = (_TECHMAP_CONSTMSK_SAXIHP0AWPROT_ == 3'd0 && _TECHMAP_CONSTVAL_SAXIHP0AWPROT_ === 3'd0) ? 3'b0 : SAXIHP0AWPROT;
wire [3:0] saxihp0awqos = (_TECHMAP_CONSTMSK_SAXIHP0AWQOS_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP0AWQOS_ === 4'd0) ? 4'b0 : SAXIHP0AWQOS;
wire [1:0] saxihp0awsize = (_TECHMAP_CONSTMSK_SAXIHP0AWSIZE_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP0AWSIZE_ === 2'd0) ? 2'b0 : SAXIHP0AWSIZE;
wire [0:0] saxihp0awvalid = (_TECHMAP_CONSTMSK_SAXIHP0AWVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP0AWVALID_ === 1'd0) ? 1'b0 : SAXIHP0AWVALID;
wire [0:0] saxihp0bready = (_TECHMAP_CONSTMSK_SAXIHP0BREADY_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP0BREADY_ === 1'd0) ? 1'b0 : SAXIHP0BREADY;
wire [0:0] saxihp0rdissuecap1en = (_TECHMAP_CONSTMSK_SAXIHP0RDISSUECAP1EN_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP0RDISSUECAP1EN_ === 1'd0) ? 1'b0 : SAXIHP0RDISSUECAP1EN;
wire [0:0] saxihp0rready = (_TECHMAP_CONSTMSK_SAXIHP0RREADY_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP0RREADY_ === 1'd0) ? 1'b0 : SAXIHP0RREADY;
wire [63:0] saxihp0wdata = (_TECHMAP_CONSTMSK_SAXIHP0WDATA_ == 64'd0 && _TECHMAP_CONSTVAL_SAXIHP0WDATA_ === 64'd0) ? 64'b0 : SAXIHP0WDATA;
wire [5:0] saxihp0wid = (_TECHMAP_CONSTMSK_SAXIHP0WID_ == 6'd0 && _TECHMAP_CONSTVAL_SAXIHP0WID_ === 6'd0) ? 6'b0 : SAXIHP0WID;
wire [0:0] saxihp0wlast = (_TECHMAP_CONSTMSK_SAXIHP0WLAST_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP0WLAST_ === 1'd0) ? 1'b0 : SAXIHP0WLAST;
wire [0:0] saxihp0wrissuecap1en = (_TECHMAP_CONSTMSK_SAXIHP0WRISSUECAP1EN_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP0WRISSUECAP1EN_ === 1'd0) ? 1'b0 : SAXIHP0WRISSUECAP1EN;
wire [7:0] saxihp0wstrb = (_TECHMAP_CONSTMSK_SAXIHP0WSTRB_ == 8'd0 && _TECHMAP_CONSTVAL_SAXIHP0WSTRB_ === 8'd0) ? 8'b0 : SAXIHP0WSTRB;
wire [0:0] saxihp0wvalid = (_TECHMAP_CONSTMSK_SAXIHP0WVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP0WVALID_ === 1'd0) ? 1'b0 : SAXIHP0WVALID;
wire [0:0] saxihp1aclk = (_TECHMAP_CONSTMSK_SAXIHP1ACLK_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP1ACLK_ === 1'd0) ? 1'b0 : SAXIHP1ACLK;
wire [31:0] saxihp1araddr = (_TECHMAP_CONSTMSK_SAXIHP1ARADDR_ == 32'd0 && _TECHMAP_CONSTVAL_SAXIHP1ARADDR_ === 32'd0) ? 32'b0 : SAXIHP1ARADDR;
wire [1:0] saxihp1arburst = (_TECHMAP_CONSTMSK_SAXIHP1ARBURST_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP1ARBURST_ === 2'd0) ? 2'b0 : SAXIHP1ARBURST;
wire [3:0] saxihp1arcache = (_TECHMAP_CONSTMSK_SAXIHP1ARCACHE_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP1ARCACHE_ === 4'd0) ? 4'b0 : SAXIHP1ARCACHE;
wire [5:0] saxihp1arid = (_TECHMAP_CONSTMSK_SAXIHP1ARID_ == 6'd0 && _TECHMAP_CONSTVAL_SAXIHP1ARID_ === 6'd0) ? 6'b0 : SAXIHP1ARID;
wire [3:0] saxihp1arlen = (_TECHMAP_CONSTMSK_SAXIHP1ARLEN_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP1ARLEN_ === 4'd0) ? 4'b0 : SAXIHP1ARLEN;
wire [1:0] saxihp1arlock = (_TECHMAP_CONSTMSK_SAXIHP1ARLOCK_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP1ARLOCK_ === 2'd0) ? 2'b0 : SAXIHP1ARLOCK;
wire [2:0] saxihp1arprot = (_TECHMAP_CONSTMSK_SAXIHP1ARPROT_ == 3'd0 && _TECHMAP_CONSTVAL_SAXIHP1ARPROT_ === 3'd0) ? 3'b0 : SAXIHP1ARPROT;
wire [3:0] saxihp1arqos = (_TECHMAP_CONSTMSK_SAXIHP1ARQOS_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP1ARQOS_ === 4'd0) ? 4'b0 : SAXIHP1ARQOS;
wire [1:0] saxihp1arsize = (_TECHMAP_CONSTMSK_SAXIHP1ARSIZE_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP1ARSIZE_ === 2'd0) ? 2'b0 : SAXIHP1ARSIZE;
wire [0:0] saxihp1arvalid = (_TECHMAP_CONSTMSK_SAXIHP1ARVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP1ARVALID_ === 1'd0) ? 1'b0 : SAXIHP1ARVALID;
wire [31:0] saxihp1awaddr = (_TECHMAP_CONSTMSK_SAXIHP1AWADDR_ == 32'd0 && _TECHMAP_CONSTVAL_SAXIHP1AWADDR_ === 32'd0) ? 32'b0 : SAXIHP1AWADDR;
wire [1:0] saxihp1awburst = (_TECHMAP_CONSTMSK_SAXIHP1AWBURST_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP1AWBURST_ === 2'd0) ? 2'b0 : SAXIHP1AWBURST;
wire [3:0] saxihp1awcache = (_TECHMAP_CONSTMSK_SAXIHP1AWCACHE_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP1AWCACHE_ === 4'd0) ? 4'b0 : SAXIHP1AWCACHE;
wire [5:0] saxihp1awid = (_TECHMAP_CONSTMSK_SAXIHP1AWID_ == 6'd0 && _TECHMAP_CONSTVAL_SAXIHP1AWID_ === 6'd0) ? 6'b0 : SAXIHP1AWID;
wire [3:0] saxihp1awlen = (_TECHMAP_CONSTMSK_SAXIHP1AWLEN_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP1AWLEN_ === 4'd0) ? 4'b0 : SAXIHP1AWLEN;
wire [1:0] saxihp1awlock = (_TECHMAP_CONSTMSK_SAXIHP1AWLOCK_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP1AWLOCK_ === 2'd0) ? 2'b0 : SAXIHP1AWLOCK;
wire [2:0] saxihp1awprot = (_TECHMAP_CONSTMSK_SAXIHP1AWPROT_ == 3'd0 && _TECHMAP_CONSTVAL_SAXIHP1AWPROT_ === 3'd0) ? 3'b0 : SAXIHP1AWPROT;
wire [3:0] saxihp1awqos = (_TECHMAP_CONSTMSK_SAXIHP1AWQOS_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP1AWQOS_ === 4'd0) ? 4'b0 : SAXIHP1AWQOS;
wire [1:0] saxihp1awsize = (_TECHMAP_CONSTMSK_SAXIHP1AWSIZE_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP1AWSIZE_ === 2'd0) ? 2'b0 : SAXIHP1AWSIZE;
wire [0:0] saxihp1awvalid = (_TECHMAP_CONSTMSK_SAXIHP1AWVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP1AWVALID_ === 1'd0) ? 1'b0 : SAXIHP1AWVALID;
wire [0:0] saxihp1bready = (_TECHMAP_CONSTMSK_SAXIHP1BREADY_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP1BREADY_ === 1'd0) ? 1'b0 : SAXIHP1BREADY;
wire [0:0] saxihp1rdissuecap1en = (_TECHMAP_CONSTMSK_SAXIHP1RDISSUECAP1EN_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP1RDISSUECAP1EN_ === 1'd0) ? 1'b0 : SAXIHP1RDISSUECAP1EN;
wire [0:0] saxihp1rready = (_TECHMAP_CONSTMSK_SAXIHP1RREADY_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP1RREADY_ === 1'd0) ? 1'b0 : SAXIHP1RREADY;
wire [63:0] saxihp1wdata = (_TECHMAP_CONSTMSK_SAXIHP1WDATA_ == 64'd0 && _TECHMAP_CONSTVAL_SAXIHP1WDATA_ === 64'd0) ? 64'b0 : SAXIHP1WDATA;
wire [5:0] saxihp1wid = (_TECHMAP_CONSTMSK_SAXIHP1WID_ == 6'd0 && _TECHMAP_CONSTVAL_SAXIHP1WID_ === 6'd0) ? 6'b0 : SAXIHP1WID;
wire [0:0] saxihp1wlast = (_TECHMAP_CONSTMSK_SAXIHP1WLAST_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP1WLAST_ === 1'd0) ? 1'b0 : SAXIHP1WLAST;
wire [0:0] saxihp1wrissuecap1en = (_TECHMAP_CONSTMSK_SAXIHP1WRISSUECAP1EN_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP1WRISSUECAP1EN_ === 1'd0) ? 1'b0 : SAXIHP1WRISSUECAP1EN;
wire [7:0] saxihp1wstrb = (_TECHMAP_CONSTMSK_SAXIHP1WSTRB_ == 8'd0 && _TECHMAP_CONSTVAL_SAXIHP1WSTRB_ === 8'd0) ? 8'b0 : SAXIHP1WSTRB;
wire [0:0] saxihp1wvalid = (_TECHMAP_CONSTMSK_SAXIHP1WVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP1WVALID_ === 1'd0) ? 1'b0 : SAXIHP1WVALID;
wire [0:0] saxihp2aclk = (_TECHMAP_CONSTMSK_SAXIHP2ACLK_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP2ACLK_ === 1'd0) ? 1'b0 : SAXIHP2ACLK;
wire [31:0] saxihp2araddr = (_TECHMAP_CONSTMSK_SAXIHP2ARADDR_ == 32'd0 && _TECHMAP_CONSTVAL_SAXIHP2ARADDR_ === 32'd0) ? 32'b0 : SAXIHP2ARADDR;
wire [1:0] saxihp2arburst = (_TECHMAP_CONSTMSK_SAXIHP2ARBURST_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP2ARBURST_ === 2'd0) ? 2'b0 : SAXIHP2ARBURST;
wire [3:0] saxihp2arcache = (_TECHMAP_CONSTMSK_SAXIHP2ARCACHE_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP2ARCACHE_ === 4'd0) ? 4'b0 : SAXIHP2ARCACHE;
wire [5:0] saxihp2arid = (_TECHMAP_CONSTMSK_SAXIHP2ARID_ == 6'd0 && _TECHMAP_CONSTVAL_SAXIHP2ARID_ === 6'd0) ? 6'b0 : SAXIHP2ARID;
wire [3:0] saxihp2arlen = (_TECHMAP_CONSTMSK_SAXIHP2ARLEN_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP2ARLEN_ === 4'd0) ? 4'b0 : SAXIHP2ARLEN;
wire [1:0] saxihp2arlock = (_TECHMAP_CONSTMSK_SAXIHP2ARLOCK_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP2ARLOCK_ === 2'd0) ? 2'b0 : SAXIHP2ARLOCK;
wire [2:0] saxihp2arprot = (_TECHMAP_CONSTMSK_SAXIHP2ARPROT_ == 3'd0 && _TECHMAP_CONSTVAL_SAXIHP2ARPROT_ === 3'd0) ? 3'b0 : SAXIHP2ARPROT;
wire [3:0] saxihp2arqos = (_TECHMAP_CONSTMSK_SAXIHP2ARQOS_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP2ARQOS_ === 4'd0) ? 4'b0 : SAXIHP2ARQOS;
wire [1:0] saxihp2arsize = (_TECHMAP_CONSTMSK_SAXIHP2ARSIZE_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP2ARSIZE_ === 2'd0) ? 2'b0 : SAXIHP2ARSIZE;
wire [0:0] saxihp2arvalid = (_TECHMAP_CONSTMSK_SAXIHP2ARVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP2ARVALID_ === 1'd0) ? 1'b0 : SAXIHP2ARVALID;
wire [31:0] saxihp2awaddr = (_TECHMAP_CONSTMSK_SAXIHP2AWADDR_ == 32'd0 && _TECHMAP_CONSTVAL_SAXIHP2AWADDR_ === 32'd0) ? 32'b0 : SAXIHP2AWADDR;
wire [1:0] saxihp2awburst = (_TECHMAP_CONSTMSK_SAXIHP2AWBURST_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP2AWBURST_ === 2'd0) ? 2'b0 : SAXIHP2AWBURST;
wire [3:0] saxihp2awcache = (_TECHMAP_CONSTMSK_SAXIHP2AWCACHE_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP2AWCACHE_ === 4'd0) ? 4'b0 : SAXIHP2AWCACHE;
wire [5:0] saxihp2awid = (_TECHMAP_CONSTMSK_SAXIHP2AWID_ == 6'd0 && _TECHMAP_CONSTVAL_SAXIHP2AWID_ === 6'd0) ? 6'b0 : SAXIHP2AWID;
wire [3:0] saxihp2awlen = (_TECHMAP_CONSTMSK_SAXIHP2AWLEN_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP2AWLEN_ === 4'd0) ? 4'b0 : SAXIHP2AWLEN;
wire [1:0] saxihp2awlock = (_TECHMAP_CONSTMSK_SAXIHP2AWLOCK_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP2AWLOCK_ === 2'd0) ? 2'b0 : SAXIHP2AWLOCK;
wire [2:0] saxihp2awprot = (_TECHMAP_CONSTMSK_SAXIHP2AWPROT_ == 3'd0 && _TECHMAP_CONSTVAL_SAXIHP2AWPROT_ === 3'd0) ? 3'b0 : SAXIHP2AWPROT;
wire [3:0] saxihp2awqos = (_TECHMAP_CONSTMSK_SAXIHP2AWQOS_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP2AWQOS_ === 4'd0) ? 4'b0 : SAXIHP2AWQOS;
wire [1:0] saxihp2awsize = (_TECHMAP_CONSTMSK_SAXIHP2AWSIZE_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP2AWSIZE_ === 2'd0) ? 2'b0 : SAXIHP2AWSIZE;
wire [0:0] saxihp2awvalid = (_TECHMAP_CONSTMSK_SAXIHP2AWVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP2AWVALID_ === 1'd0) ? 1'b0 : SAXIHP2AWVALID;
wire [0:0] saxihp2bready = (_TECHMAP_CONSTMSK_SAXIHP2BREADY_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP2BREADY_ === 1'd0) ? 1'b0 : SAXIHP2BREADY;
wire [0:0] saxihp2rdissuecap1en = (_TECHMAP_CONSTMSK_SAXIHP2RDISSUECAP1EN_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP2RDISSUECAP1EN_ === 1'd0) ? 1'b0 : SAXIHP2RDISSUECAP1EN;
wire [0:0] saxihp2rready = (_TECHMAP_CONSTMSK_SAXIHP2RREADY_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP2RREADY_ === 1'd0) ? 1'b0 : SAXIHP2RREADY;
wire [63:0] saxihp2wdata = (_TECHMAP_CONSTMSK_SAXIHP2WDATA_ == 64'd0 && _TECHMAP_CONSTVAL_SAXIHP2WDATA_ === 64'd0) ? 64'b0 : SAXIHP2WDATA;
wire [5:0] saxihp2wid = (_TECHMAP_CONSTMSK_SAXIHP2WID_ == 6'd0 && _TECHMAP_CONSTVAL_SAXIHP2WID_ === 6'd0) ? 6'b0 : SAXIHP2WID;
wire [0:0] saxihp2wlast = (_TECHMAP_CONSTMSK_SAXIHP2WLAST_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP2WLAST_ === 1'd0) ? 1'b0 : SAXIHP2WLAST;
wire [0:0] saxihp2wrissuecap1en = (_TECHMAP_CONSTMSK_SAXIHP2WRISSUECAP1EN_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP2WRISSUECAP1EN_ === 1'd0) ? 1'b0 : SAXIHP2WRISSUECAP1EN;
wire [7:0] saxihp2wstrb = (_TECHMAP_CONSTMSK_SAXIHP2WSTRB_ == 8'd0 && _TECHMAP_CONSTVAL_SAXIHP2WSTRB_ === 8'd0) ? 8'b0 : SAXIHP2WSTRB;
wire [0:0] saxihp2wvalid = (_TECHMAP_CONSTMSK_SAXIHP2WVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP2WVALID_ === 1'd0) ? 1'b0 : SAXIHP2WVALID;
wire [0:0] saxihp3aclk = (_TECHMAP_CONSTMSK_SAXIHP3ACLK_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP3ACLK_ === 1'd0) ? 1'b0 : SAXIHP3ACLK;
wire [31:0] saxihp3araddr = (_TECHMAP_CONSTMSK_SAXIHP3ARADDR_ == 32'd0 && _TECHMAP_CONSTVAL_SAXIHP3ARADDR_ === 32'd0) ? 32'b0 : SAXIHP3ARADDR;
wire [1:0] saxihp3arburst = (_TECHMAP_CONSTMSK_SAXIHP3ARBURST_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP3ARBURST_ === 2'd0) ? 2'b0 : SAXIHP3ARBURST;
wire [3:0] saxihp3arcache = (_TECHMAP_CONSTMSK_SAXIHP3ARCACHE_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP3ARCACHE_ === 4'd0) ? 4'b0 : SAXIHP3ARCACHE;
wire [5:0] saxihp3arid = (_TECHMAP_CONSTMSK_SAXIHP3ARID_ == 6'd0 && _TECHMAP_CONSTVAL_SAXIHP3ARID_ === 6'd0) ? 6'b0 : SAXIHP3ARID;
wire [3:0] saxihp3arlen = (_TECHMAP_CONSTMSK_SAXIHP3ARLEN_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP3ARLEN_ === 4'd0) ? 4'b0 : SAXIHP3ARLEN;
wire [1:0] saxihp3arlock = (_TECHMAP_CONSTMSK_SAXIHP3ARLOCK_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP3ARLOCK_ === 2'd0) ? 2'b0 : SAXIHP3ARLOCK;
wire [2:0] saxihp3arprot = (_TECHMAP_CONSTMSK_SAXIHP3ARPROT_ == 3'd0 && _TECHMAP_CONSTVAL_SAXIHP3ARPROT_ === 3'd0) ? 3'b0 : SAXIHP3ARPROT;
wire [3:0] saxihp3arqos = (_TECHMAP_CONSTMSK_SAXIHP3ARQOS_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP3ARQOS_ === 4'd0) ? 4'b0 : SAXIHP3ARQOS;
wire [1:0] saxihp3arsize = (_TECHMAP_CONSTMSK_SAXIHP3ARSIZE_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP3ARSIZE_ === 2'd0) ? 2'b0 : SAXIHP3ARSIZE;
wire [0:0] saxihp3arvalid = (_TECHMAP_CONSTMSK_SAXIHP3ARVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP3ARVALID_ === 1'd0) ? 1'b0 : SAXIHP3ARVALID;
wire [31:0] saxihp3awaddr = (_TECHMAP_CONSTMSK_SAXIHP3AWADDR_ == 32'd0 && _TECHMAP_CONSTVAL_SAXIHP3AWADDR_ === 32'd0) ? 32'b0 : SAXIHP3AWADDR;
wire [1:0] saxihp3awburst = (_TECHMAP_CONSTMSK_SAXIHP3AWBURST_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP3AWBURST_ === 2'd0) ? 2'b0 : SAXIHP3AWBURST;
wire [3:0] saxihp3awcache = (_TECHMAP_CONSTMSK_SAXIHP3AWCACHE_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP3AWCACHE_ === 4'd0) ? 4'b0 : SAXIHP3AWCACHE;
wire [5:0] saxihp3awid = (_TECHMAP_CONSTMSK_SAXIHP3AWID_ == 6'd0 && _TECHMAP_CONSTVAL_SAXIHP3AWID_ === 6'd0) ? 6'b0 : SAXIHP3AWID;
wire [3:0] saxihp3awlen = (_TECHMAP_CONSTMSK_SAXIHP3AWLEN_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP3AWLEN_ === 4'd0) ? 4'b0 : SAXIHP3AWLEN;
wire [1:0] saxihp3awlock = (_TECHMAP_CONSTMSK_SAXIHP3AWLOCK_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP3AWLOCK_ === 2'd0) ? 2'b0 : SAXIHP3AWLOCK;
wire [2:0] saxihp3awprot = (_TECHMAP_CONSTMSK_SAXIHP3AWPROT_ == 3'd0 && _TECHMAP_CONSTVAL_SAXIHP3AWPROT_ === 3'd0) ? 3'b0 : SAXIHP3AWPROT;
wire [3:0] saxihp3awqos = (_TECHMAP_CONSTMSK_SAXIHP3AWQOS_ == 4'd0 && _TECHMAP_CONSTVAL_SAXIHP3AWQOS_ === 4'd0) ? 4'b0 : SAXIHP3AWQOS;
wire [1:0] saxihp3awsize = (_TECHMAP_CONSTMSK_SAXIHP3AWSIZE_ == 2'd0 && _TECHMAP_CONSTVAL_SAXIHP3AWSIZE_ === 2'd0) ? 2'b0 : SAXIHP3AWSIZE;
wire [0:0] saxihp3awvalid = (_TECHMAP_CONSTMSK_SAXIHP3AWVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP3AWVALID_ === 1'd0) ? 1'b0 : SAXIHP3AWVALID;
wire [0:0] saxihp3bready = (_TECHMAP_CONSTMSK_SAXIHP3BREADY_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP3BREADY_ === 1'd0) ? 1'b0 : SAXIHP3BREADY;
wire [0:0] saxihp3rdissuecap1en = (_TECHMAP_CONSTMSK_SAXIHP3RDISSUECAP1EN_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP3RDISSUECAP1EN_ === 1'd0) ? 1'b0 : SAXIHP3RDISSUECAP1EN;
wire [0:0] saxihp3rready = (_TECHMAP_CONSTMSK_SAXIHP3RREADY_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP3RREADY_ === 1'd0) ? 1'b0 : SAXIHP3RREADY;
wire [63:0] saxihp3wdata = (_TECHMAP_CONSTMSK_SAXIHP3WDATA_ == 64'd0 && _TECHMAP_CONSTVAL_SAXIHP3WDATA_ === 64'd0) ? 64'b0 : SAXIHP3WDATA;
wire [5:0] saxihp3wid = (_TECHMAP_CONSTMSK_SAXIHP3WID_ == 6'd0 && _TECHMAP_CONSTVAL_SAXIHP3WID_ === 6'd0) ? 6'b0 : SAXIHP3WID;
wire [0:0] saxihp3wlast = (_TECHMAP_CONSTMSK_SAXIHP3WLAST_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP3WLAST_ === 1'd0) ? 1'b0 : SAXIHP3WLAST;
wire [0:0] saxihp3wrissuecap1en = (_TECHMAP_CONSTMSK_SAXIHP3WRISSUECAP1EN_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP3WRISSUECAP1EN_ === 1'd0) ? 1'b0 : SAXIHP3WRISSUECAP1EN;
wire [7:0] saxihp3wstrb = (_TECHMAP_CONSTMSK_SAXIHP3WSTRB_ == 8'd0 && _TECHMAP_CONSTVAL_SAXIHP3WSTRB_ === 8'd0) ? 8'b0 : SAXIHP3WSTRB;
wire [0:0] saxihp3wvalid = (_TECHMAP_CONSTMSK_SAXIHP3WVALID_ == 1'd0 && _TECHMAP_CONSTVAL_SAXIHP3WVALID_ === 1'd0) ? 1'b0 : SAXIHP3WVALID;
// Replacement cell.
PS7_VPR _TECHMAP_REPLACE_ (
.DDRARB (ddrarb),
.DMA0ACLK (dma0aclk),
.DMA0DAREADY (dma0daready),
.DMA0DATYPE (DMA0DATYPE),
.DMA0DAVALID (DMA0DAVALID),
.DMA0DRLAST (dma0drlast),
.DMA0DRREADY (DMA0DRREADY),
.DMA0DRTYPE (dma0drtype),
.DMA0DRVALID (dma0drvalid),
.DMA0RSTN (DMA0RSTN),
.DMA1ACLK (dma1aclk),
.DMA1DAREADY (dma1daready),
.DMA1DATYPE (DMA1DATYPE),
.DMA1DAVALID (DMA1DAVALID),
.DMA1DRLAST (dma1drlast),
.DMA1DRREADY (DMA1DRREADY),
.DMA1DRTYPE (dma1drtype),
.DMA1DRVALID (dma1drvalid),
.DMA1RSTN (DMA1RSTN),
.DMA2ACLK (dma2aclk),
.DMA2DAREADY (dma2daready),
.DMA2DATYPE (DMA2DATYPE),
.DMA2DAVALID (DMA2DAVALID),
.DMA2DRLAST (dma2drlast),
.DMA2DRREADY (DMA2DRREADY),
.DMA2DRTYPE (dma2drtype),
.DMA2DRVALID (dma2drvalid),
.DMA2RSTN (DMA2RSTN),
.DMA3ACLK (dma3aclk),
.DMA3DAREADY (dma3daready),
.DMA3DATYPE (DMA3DATYPE),
.DMA3DAVALID (DMA3DAVALID),
.DMA3DRLAST (dma3drlast),
.DMA3DRREADY (DMA3DRREADY),
.DMA3DRTYPE (dma3drtype),
.DMA3DRVALID (dma3drvalid),
.DMA3RSTN (DMA3RSTN),
.EMIOCAN0PHYRX (emiocan0phyrx),
.EMIOCAN0PHYTX (EMIOCAN0PHYTX),
.EMIOCAN1PHYRX (emiocan1phyrx),
.EMIOCAN1PHYTX (EMIOCAN1PHYTX),
.EMIOENET0EXTINTIN (emioenet0extintin),
.EMIOENET0GMIICOL (emioenet0gmiicol),
.EMIOENET0GMIICRS (emioenet0gmiicrs),
.EMIOENET0GMIIRXCLK (emioenet0gmiirxclk),
.EMIOENET0GMIIRXD (emioenet0gmiirxd),
.EMIOENET0GMIIRXDV (emioenet0gmiirxdv),
.EMIOENET0GMIIRXER (emioenet0gmiirxer),
.EMIOENET0GMIITXCLK (emioenet0gmiitxclk),
.EMIOENET0GMIITXD (EMIOENET0GMIITXD),
.EMIOENET0GMIITXEN (EMIOENET0GMIITXEN),
.EMIOENET0GMIITXER (EMIOENET0GMIITXER),
.EMIOENET0MDIOI (emioenet0mdioi),
.EMIOENET0MDIOMDC (EMIOENET0MDIOMDC),
.EMIOENET0MDIOO (EMIOENET0MDIOO),
.EMIOENET0MDIOTN (EMIOENET0MDIOTN),
.EMIOENET0PTPDELAYREQRX (EMIOENET0PTPDELAYREQRX),
.EMIOENET0PTPDELAYREQTX (EMIOENET0PTPDELAYREQTX),
.EMIOENET0PTPPDELAYREQRX (EMIOENET0PTPPDELAYREQRX),
.EMIOENET0PTPPDELAYREQTX (EMIOENET0PTPPDELAYREQTX),
.EMIOENET0PTPPDELAYRESPRX (EMIOENET0PTPPDELAYRESPRX),
.EMIOENET0PTPPDELAYRESPTX (EMIOENET0PTPPDELAYRESPTX),
.EMIOENET0PTPSYNCFRAMERX (EMIOENET0PTPSYNCFRAMERX),
.EMIOENET0PTPSYNCFRAMETX (EMIOENET0PTPSYNCFRAMETX),
.EMIOENET0SOFRX (EMIOENET0SOFRX),
.EMIOENET0SOFTX (EMIOENET0SOFTX),
.EMIOENET1EXTINTIN (emioenet1extintin),
.EMIOENET1GMIICOL (emioenet1gmiicol),
.EMIOENET1GMIICRS (emioenet1gmiicrs),
.EMIOENET1GMIIRXCLK (emioenet1gmiirxclk),
.EMIOENET1GMIIRXD (emioenet1gmiirxd),
.EMIOENET1GMIIRXDV (emioenet1gmiirxdv),
.EMIOENET1GMIIRXER (emioenet1gmiirxer),
.EMIOENET1GMIITXCLK (emioenet1gmiitxclk),
.EMIOENET1GMIITXD (EMIOENET1GMIITXD),
.EMIOENET1GMIITXEN (EMIOENET1GMIITXEN),
.EMIOENET1GMIITXER (EMIOENET1GMIITXER),
.EMIOENET1MDIOI (emioenet1mdioi),
.EMIOENET1MDIOMDC (EMIOENET1MDIOMDC),
.EMIOENET1MDIOO (EMIOENET1MDIOO),
.EMIOENET1MDIOTN (EMIOENET1MDIOTN),
.EMIOENET1PTPDELAYREQRX (EMIOENET1PTPDELAYREQRX),
.EMIOENET1PTPDELAYREQTX (EMIOENET1PTPDELAYREQTX),
.EMIOENET1PTPPDELAYREQRX (EMIOENET1PTPPDELAYREQRX),
.EMIOENET1PTPPDELAYREQTX (EMIOENET1PTPPDELAYREQTX),
.EMIOENET1PTPPDELAYRESPRX (EMIOENET1PTPPDELAYRESPRX),
.EMIOENET1PTPPDELAYRESPTX (EMIOENET1PTPPDELAYRESPTX),
.EMIOENET1PTPSYNCFRAMERX (EMIOENET1PTPSYNCFRAMERX),
.EMIOENET1PTPSYNCFRAMETX (EMIOENET1PTPSYNCFRAMETX),
.EMIOENET1SOFRX (EMIOENET1SOFRX),
.EMIOENET1SOFTX (EMIOENET1SOFTX),
.EMIOGPIOI (emiogpioi),
.EMIOGPIOO (EMIOGPIOO),
.EMIOGPIOTN (EMIOGPIOTN),
.EMIOI2C0SCLI (emioi2c0scli),
.EMIOI2C0SCLO (EMIOI2C0SCLO),
.EMIOI2C0SCLTN (EMIOI2C0SCLTN),
.EMIOI2C0SDAI (emioi2c0sdai),
.EMIOI2C0SDAO (EMIOI2C0SDAO),
.EMIOI2C0SDATN (EMIOI2C0SDATN),
.EMIOI2C1SCLI (emioi2c1scli),
.EMIOI2C1SCLO (EMIOI2C1SCLO),
.EMIOI2C1SCLTN (EMIOI2C1SCLTN),
.EMIOI2C1SDAI (emioi2c1sdai),
.EMIOI2C1SDAO (EMIOI2C1SDAO),
.EMIOI2C1SDATN (EMIOI2C1SDATN),
.EMIOPJTAGTCK (emiopjtagtck),
.EMIOPJTAGTDI (emiopjtagtdi),
.EMIOPJTAGTDO (EMIOPJTAGTDO),
.EMIOPJTAGTDTN (EMIOPJTAGTDTN),
.EMIOPJTAGTMS (emiopjtagtms),
.EMIOSDIO0BUSPOW (EMIOSDIO0BUSPOW),
.EMIOSDIO0BUSVOLT (EMIOSDIO0BUSVOLT),
.EMIOSDIO0CDN (emiosdio0cdn),
.EMIOSDIO0CLK (EMIOSDIO0CLK),
.EMIOSDIO0CLKFB (emiosdio0clkfb),
.EMIOSDIO0CMDI (emiosdio0cmdi),
.EMIOSDIO0CMDO (EMIOSDIO0CMDO),
.EMIOSDIO0CMDTN (EMIOSDIO0CMDTN),
.EMIOSDIO0DATAI (emiosdio0datai),
.EMIOSDIO0DATAO (EMIOSDIO0DATAO),
.EMIOSDIO0DATATN (EMIOSDIO0DATATN),
.EMIOSDIO0LED (EMIOSDIO0LED),
.EMIOSDIO0WP (emiosdio0wp),
.EMIOSDIO1BUSPOW (EMIOSDIO1BUSPOW),
.EMIOSDIO1BUSVOLT (EMIOSDIO1BUSVOLT),
.EMIOSDIO1CDN (emiosdio1cdn),
.EMIOSDIO1CLK (EMIOSDIO1CLK),
.EMIOSDIO1CLKFB (emiosdio1clkfb),
.EMIOSDIO1CMDI (emiosdio1cmdi),
.EMIOSDIO1CMDO (EMIOSDIO1CMDO),
.EMIOSDIO1CMDTN (EMIOSDIO1CMDTN),
.EMIOSDIO1DATAI (emiosdio1datai),
.EMIOSDIO1DATAO (EMIOSDIO1DATAO),
.EMIOSDIO1DATATN (EMIOSDIO1DATATN),
.EMIOSDIO1LED (EMIOSDIO1LED),
.EMIOSDIO1WP (emiosdio1wp),
.EMIOSPI0MI (emiospi0mi),
.EMIOSPI0MO (EMIOSPI0MO),
.EMIOSPI0MOTN (EMIOSPI0MOTN),
.EMIOSPI0SCLKI (emiospi0sclki),
.EMIOSPI0SCLKO (EMIOSPI0SCLKO),
.EMIOSPI0SCLKTN (EMIOSPI0SCLKTN),
.EMIOSPI0SI (emiospi0si),
.EMIOSPI0SO (EMIOSPI0SO),
.EMIOSPI0SSIN (emiospi0ssin),
.EMIOSPI0SSNTN (EMIOSPI0SSNTN),
.EMIOSPI0SSON (EMIOSPI0SSON),
.EMIOSPI0STN (EMIOSPI0STN),
.EMIOSPI1MI (emiospi1mi),
.EMIOSPI1MO (EMIOSPI1MO),
.EMIOSPI1MOTN (EMIOSPI1MOTN),
.EMIOSPI1SCLKI (emiospi1sclki),
.EMIOSPI1SCLKO (EMIOSPI1SCLKO),
.EMIOSPI1SCLKTN (EMIOSPI1SCLKTN),
.EMIOSPI1SI (emiospi1si),
.EMIOSPI1SO (EMIOSPI1SO),
.EMIOSPI1SSIN (emiospi1ssin),
.EMIOSPI1SSNTN (EMIOSPI1SSNTN),
.EMIOSPI1SSON (EMIOSPI1SSON),
.EMIOSPI1STN (EMIOSPI1STN),
.EMIOSRAMINTIN (emiosramintin),
.EMIOTRACECLK (emiotraceclk),
.EMIOTRACECTL (EMIOTRACECTL),
.EMIOTRACEDATA (EMIOTRACEDATA),
.EMIOTTC0CLKI (emiottc0clki),
.EMIOTTC0WAVEO (EMIOTTC0WAVEO),
.EMIOTTC1CLKI (emiottc1clki),
.EMIOTTC1WAVEO (EMIOTTC1WAVEO),
.EMIOUART0CTSN (emiouart0ctsn),
.EMIOUART0DCDN (emiouart0dcdn),
.EMIOUART0DSRN (emiouart0dsrn),
.EMIOUART0DTRN (EMIOUART0DTRN),
.EMIOUART0RIN (emiouart0rin),
.EMIOUART0RTSN (EMIOUART0RTSN),
.EMIOUART0RX (emiouart0rx),
.EMIOUART0TX (EMIOUART0TX),
.EMIOUART1CTSN (emiouart1ctsn),
.EMIOUART1DCDN (emiouart1dcdn),
.EMIOUART1DSRN (emiouart1dsrn),
.EMIOUART1DTRN (EMIOUART1DTRN),
.EMIOUART1RIN (emiouart1rin),
.EMIOUART1RTSN (EMIOUART1RTSN),
.EMIOUART1RX (emiouart1rx),
.EMIOUART1TX (EMIOUART1TX),
.EMIOUSB0PORTINDCTL (EMIOUSB0PORTINDCTL),
.EMIOUSB0VBUSPWRFAULT (emiousb0vbuspwrfault),
.EMIOUSB0VBUSPWRSELECT (EMIOUSB0VBUSPWRSELECT),
.EMIOUSB1PORTINDCTL (EMIOUSB1PORTINDCTL),
.EMIOUSB1VBUSPWRFAULT (emiousb1vbuspwrfault),
.EMIOUSB1VBUSPWRSELECT (EMIOUSB1VBUSPWRSELECT),
.EMIOWDTCLKI (emiowdtclki),
.EMIOWDTRSTO (EMIOWDTRSTO),
.EVENTEVENTI (eventeventi),
.EVENTEVENTO (EVENTEVENTO),
.EVENTSTANDBYWFE (EVENTSTANDBYWFE),
.EVENTSTANDBYWFI (EVENTSTANDBYWFI),
.FCLKCLK (FCLKCLK),
.FCLKCLKTRIGN (fclkclktrign),
.FCLKRESETN (FCLKRESETN),
.FPGAIDLEN (fpgaidlen),
.FTMDTRACEINATID (ftmdtraceinatid),
.FTMDTRACEINCLOCK (ftmdtraceinclock),
.FTMDTRACEINDATA (ftmdtraceindata),
.FTMDTRACEINVALID (ftmdtraceinvalid),
.FTMTF2PDEBUG (ftmtf2pdebug),
.FTMTF2PTRIG (ftmtf2ptrig),
.FTMTF2PTRIGACK (FTMTF2PTRIGACK),
.FTMTP2FDEBUG (FTMTP2FDEBUG),
.FTMTP2FTRIG (FTMTP2FTRIG),
.FTMTP2FTRIGACK (ftmtp2ftrigack),
.IRQF2P (irqf2p),
.IRQP2F (IRQP2F),
.MAXIGP0ACLK (maxigp0aclk),
.MAXIGP0ARADDR (MAXIGP0ARADDR),
.MAXIGP0ARBURST (MAXIGP0ARBURST),
.MAXIGP0ARCACHE (MAXIGP0ARCACHE),
.MAXIGP0ARESETN (MAXIGP0ARESETN),
.MAXIGP0ARID (MAXIGP0ARID),
.MAXIGP0ARLEN (MAXIGP0ARLEN),
.MAXIGP0ARLOCK (MAXIGP0ARLOCK),
.MAXIGP0ARPROT (MAXIGP0ARPROT),
.MAXIGP0ARQOS (MAXIGP0ARQOS),
.MAXIGP0ARREADY (maxigp0arready),
.MAXIGP0ARSIZE (MAXIGP0ARSIZE),
.MAXIGP0ARVALID (MAXIGP0ARVALID),
.MAXIGP0AWADDR (MAXIGP0AWADDR),
.MAXIGP0AWBURST (MAXIGP0AWBURST),
.MAXIGP0AWCACHE (MAXIGP0AWCACHE),
.MAXIGP0AWID (MAXIGP0AWID),
.MAXIGP0AWLEN (MAXIGP0AWLEN),
.MAXIGP0AWLOCK (MAXIGP0AWLOCK),
.MAXIGP0AWPROT (MAXIGP0AWPROT),
.MAXIGP0AWQOS (MAXIGP0AWQOS),
.MAXIGP0AWREADY (maxigp0awready),
.MAXIGP0AWSIZE (MAXIGP0AWSIZE),
.MAXIGP0AWVALID (MAXIGP0AWVALID),
.MAXIGP0BID (maxigp0bid),
.MAXIGP0BREADY (MAXIGP0BREADY),
.MAXIGP0BRESP (maxigp0bresp),
.MAXIGP0BVALID (maxigp0bvalid),
.MAXIGP0RDATA (maxigp0rdata),
.MAXIGP0RID (maxigp0rid),
.MAXIGP0RLAST (maxigp0rlast),
.MAXIGP0RREADY (MAXIGP0RREADY),
.MAXIGP0RRESP (maxigp0rresp),
.MAXIGP0RVALID (maxigp0rvalid),
.MAXIGP0WDATA (MAXIGP0WDATA),
.MAXIGP0WID (MAXIGP0WID),
.MAXIGP0WLAST (MAXIGP0WLAST),
.MAXIGP0WREADY (maxigp0wready),
.MAXIGP0WSTRB (MAXIGP0WSTRB),
.MAXIGP0WVALID (MAXIGP0WVALID),
.MAXIGP1ACLK (maxigp1aclk),
.MAXIGP1ARADDR (MAXIGP1ARADDR),
.MAXIGP1ARBURST (MAXIGP1ARBURST),
.MAXIGP1ARCACHE (MAXIGP1ARCACHE),
.MAXIGP1ARESETN (MAXIGP1ARESETN),
.MAXIGP1ARID (MAXIGP1ARID),
.MAXIGP1ARLEN (MAXIGP1ARLEN),
.MAXIGP1ARLOCK (MAXIGP1ARLOCK),
.MAXIGP1ARPROT (MAXIGP1ARPROT),
.MAXIGP1ARQOS (MAXIGP1ARQOS),
.MAXIGP1ARREADY (maxigp1arready),
.MAXIGP1ARSIZE (MAXIGP1ARSIZE),
.MAXIGP1ARVALID (MAXIGP1ARVALID),
.MAXIGP1AWADDR (MAXIGP1AWADDR),
.MAXIGP1AWBURST (MAXIGP1AWBURST),
.MAXIGP1AWCACHE (MAXIGP1AWCACHE),
.MAXIGP1AWID (MAXIGP1AWID),
.MAXIGP1AWLEN (MAXIGP1AWLEN),
.MAXIGP1AWLOCK (MAXIGP1AWLOCK),
.MAXIGP1AWPROT (MAXIGP1AWPROT),
.MAXIGP1AWQOS (MAXIGP1AWQOS),
.MAXIGP1AWREADY (maxigp1awready),
.MAXIGP1AWSIZE (MAXIGP1AWSIZE),
.MAXIGP1AWVALID (MAXIGP1AWVALID),
.MAXIGP1BID (maxigp1bid),
.MAXIGP1BREADY (MAXIGP1BREADY),
.MAXIGP1BRESP (maxigp1bresp),
.MAXIGP1BVALID (maxigp1bvalid),
.MAXIGP1RDATA (maxigp1rdata),
.MAXIGP1RID (maxigp1rid),
.MAXIGP1RLAST (maxigp1rlast),
.MAXIGP1RREADY (MAXIGP1RREADY),
.MAXIGP1RRESP (maxigp1rresp),
.MAXIGP1RVALID (maxigp1rvalid),
.MAXIGP1WDATA (MAXIGP1WDATA),
.MAXIGP1WID (MAXIGP1WID),
.MAXIGP1WLAST (MAXIGP1WLAST),
.MAXIGP1WREADY (maxigp1wready),
.MAXIGP1WSTRB (MAXIGP1WSTRB),
.MAXIGP1WVALID (MAXIGP1WVALID),
.SAXIACPACLK (saxiacpaclk),
.SAXIACPARADDR (saxiacparaddr),
.SAXIACPARBURST (saxiacparburst),
.SAXIACPARCACHE (saxiacparcache),
.SAXIACPARESETN (SAXIACPARESETN),
.SAXIACPARID (saxiacparid),
.SAXIACPARLEN (saxiacparlen),
.SAXIACPARLOCK (saxiacparlock),
.SAXIACPARPROT (saxiacparprot),
.SAXIACPARQOS (saxiacparqos),
.SAXIACPARREADY (SAXIACPARREADY),
.SAXIACPARSIZE (saxiacparsize),
.SAXIACPARUSER (saxiacparuser),
.SAXIACPARVALID (saxiacparvalid),
.SAXIACPAWADDR (saxiacpawaddr),
.SAXIACPAWBURST (saxiacpawburst),
.SAXIACPAWCACHE (saxiacpawcache),
.SAXIACPAWID (saxiacpawid),
.SAXIACPAWLEN (saxiacpawlen),
.SAXIACPAWLOCK (saxiacpawlock),
.SAXIACPAWPROT (saxiacpawprot),
.SAXIACPAWQOS (saxiacpawqos),
.SAXIACPAWREADY (SAXIACPAWREADY),
.SAXIACPAWSIZE (saxiacpawsize),
.SAXIACPAWUSER (saxiacpawuser),
.SAXIACPAWVALID (saxiacpawvalid),
.SAXIACPBID (SAXIACPBID),
.SAXIACPBREADY (saxiacpbready),
.SAXIACPBRESP (SAXIACPBRESP),
.SAXIACPBVALID (SAXIACPBVALID),
.SAXIACPRDATA (SAXIACPRDATA),
.SAXIACPRID (SAXIACPRID),
.SAXIACPRLAST (SAXIACPRLAST),
.SAXIACPRREADY (saxiacprready),
.SAXIACPRRESP (SAXIACPRRESP),
.SAXIACPRVALID (SAXIACPRVALID),
.SAXIACPWDATA (saxiacpwdata),
.SAXIACPWID (saxiacpwid),
.SAXIACPWLAST (saxiacpwlast),
.SAXIACPWREADY (SAXIACPWREADY),
.SAXIACPWSTRB (saxiacpwstrb),
.SAXIACPWVALID (saxiacpwvalid),
.SAXIGP0ACLK (saxigp0aclk),
.SAXIGP0ARADDR (saxigp0araddr),
.SAXIGP0ARBURST (saxigp0arburst),
.SAXIGP0ARCACHE (saxigp0arcache),
.SAXIGP0ARESETN (SAXIGP0ARESETN),
.SAXIGP0ARID (saxigp0arid),
.SAXIGP0ARLEN (saxigp0arlen),
.SAXIGP0ARLOCK (saxigp0arlock),
.SAXIGP0ARPROT (saxigp0arprot),
.SAXIGP0ARQOS (saxigp0arqos),
.SAXIGP0ARREADY (SAXIGP0ARREADY),
.SAXIGP0ARSIZE (saxigp0arsize),
.SAXIGP0ARVALID (saxigp0arvalid),
.SAXIGP0AWADDR (saxigp0awaddr),
.SAXIGP0AWBURST (saxigp0awburst),
.SAXIGP0AWCACHE (saxigp0awcache),
.SAXIGP0AWID (saxigp0awid),
.SAXIGP0AWLEN (saxigp0awlen),
.SAXIGP0AWLOCK (saxigp0awlock),
.SAXIGP0AWPROT (saxigp0awprot),
.SAXIGP0AWQOS (saxigp0awqos),
.SAXIGP0AWREADY (SAXIGP0AWREADY),
.SAXIGP0AWSIZE (saxigp0awsize),
.SAXIGP0AWVALID (saxigp0awvalid),
.SAXIGP0BID (SAXIGP0BID),
.SAXIGP0BREADY (saxigp0bready),
.SAXIGP0BRESP (SAXIGP0BRESP),
.SAXIGP0BVALID (SAXIGP0BVALID),
.SAXIGP0RDATA (SAXIGP0RDATA),
.SAXIGP0RID (SAXIGP0RID),
.SAXIGP0RLAST (SAXIGP0RLAST),
.SAXIGP0RREADY (saxigp0rready),
.SAXIGP0RRESP (SAXIGP0RRESP),
.SAXIGP0RVALID (SAXIGP0RVALID),
.SAXIGP0WDATA (saxigp0wdata),
.SAXIGP0WID (saxigp0wid),
.SAXIGP0WLAST (saxigp0wlast),
.SAXIGP0WREADY (SAXIGP0WREADY),
.SAXIGP0WSTRB (saxigp0wstrb),
.SAXIGP0WVALID (saxigp0wvalid),
.SAXIGP1ACLK (saxigp1aclk),
.SAXIGP1ARADDR (saxigp1araddr),
.SAXIGP1ARBURST (saxigp1arburst),
.SAXIGP1ARCACHE (saxigp1arcache),
.SAXIGP1ARESETN (SAXIGP1ARESETN),
.SAXIGP1ARID (saxigp1arid),
.SAXIGP1ARLEN (saxigp1arlen),
.SAXIGP1ARLOCK (saxigp1arlock),
.SAXIGP1ARPROT (saxigp1arprot),
.SAXIGP1ARQOS (saxigp1arqos),
.SAXIGP1ARREADY (SAXIGP1ARREADY),
.SAXIGP1ARSIZE (saxigp1arsize),
.SAXIGP1ARVALID (saxigp1arvalid),
.SAXIGP1AWADDR (saxigp1awaddr),
.SAXIGP1AWBURST (saxigp1awburst),
.SAXIGP1AWCACHE (saxigp1awcache),
.SAXIGP1AWID (saxigp1awid),
.SAXIGP1AWLEN (saxigp1awlen),
.SAXIGP1AWLOCK (saxigp1awlock),
.SAXIGP1AWPROT (saxigp1awprot),
.SAXIGP1AWQOS (saxigp1awqos),
.SAXIGP1AWREADY (SAXIGP1AWREADY),
.SAXIGP1AWSIZE (saxigp1awsize),
.SAXIGP1AWVALID (saxigp1awvalid),
.SAXIGP1BID (SAXIGP1BID),
.SAXIGP1BREADY (saxigp1bready),
.SAXIGP1BRESP (SAXIGP1BRESP),
.SAXIGP1BVALID (SAXIGP1BVALID),
.SAXIGP1RDATA (SAXIGP1RDATA),
.SAXIGP1RID (SAXIGP1RID),
.SAXIGP1RLAST (SAXIGP1RLAST),
.SAXIGP1RREADY (saxigp1rready),
.SAXIGP1RRESP (SAXIGP1RRESP),
.SAXIGP1RVALID (SAXIGP1RVALID),
.SAXIGP1WDATA (saxigp1wdata),
.SAXIGP1WID (saxigp1wid),
.SAXIGP1WLAST (saxigp1wlast),
.SAXIGP1WREADY (SAXIGP1WREADY),
.SAXIGP1WSTRB (saxigp1wstrb),
.SAXIGP1WVALID (saxigp1wvalid),
.SAXIHP0ACLK (saxihp0aclk),
.SAXIHP0ARADDR (saxihp0araddr),
.SAXIHP0ARBURST (saxihp0arburst),
.SAXIHP0ARCACHE (saxihp0arcache),
.SAXIHP0ARESETN (SAXIHP0ARESETN),
.SAXIHP0ARID (saxihp0arid),
.SAXIHP0ARLEN (saxihp0arlen),
.SAXIHP0ARLOCK (saxihp0arlock),
.SAXIHP0ARPROT (saxihp0arprot),
.SAXIHP0ARQOS (saxihp0arqos),
.SAXIHP0ARREADY (SAXIHP0ARREADY),
.SAXIHP0ARSIZE (saxihp0arsize),
.SAXIHP0ARVALID (saxihp0arvalid),
.SAXIHP0AWADDR (saxihp0awaddr),
.SAXIHP0AWBURST (saxihp0awburst),
.SAXIHP0AWCACHE (saxihp0awcache),
.SAXIHP0AWID (saxihp0awid),
.SAXIHP0AWLEN (saxihp0awlen),
.SAXIHP0AWLOCK (saxihp0awlock),
.SAXIHP0AWPROT (saxihp0awprot),
.SAXIHP0AWQOS (saxihp0awqos),
.SAXIHP0AWREADY (SAXIHP0AWREADY),
.SAXIHP0AWSIZE (saxihp0awsize),
.SAXIHP0AWVALID (saxihp0awvalid),
.SAXIHP0BID (SAXIHP0BID),
.SAXIHP0BREADY (saxihp0bready),
.SAXIHP0BRESP (SAXIHP0BRESP),
.SAXIHP0BVALID (SAXIHP0BVALID),
.SAXIHP0RACOUNT (SAXIHP0RACOUNT),
.SAXIHP0RCOUNT (SAXIHP0RCOUNT),
.SAXIHP0RDATA (SAXIHP0RDATA),
.SAXIHP0RDISSUECAP1EN (saxihp0rdissuecap1en),
.SAXIHP0RID (SAXIHP0RID),
.SAXIHP0RLAST (SAXIHP0RLAST),
.SAXIHP0RREADY (saxihp0rready),
.SAXIHP0RRESP (SAXIHP0RRESP),
.SAXIHP0RVALID (SAXIHP0RVALID),
.SAXIHP0WACOUNT (SAXIHP0WACOUNT),
.SAXIHP0WCOUNT (SAXIHP0WCOUNT),
.SAXIHP0WDATA (saxihp0wdata),
.SAXIHP0WID (saxihp0wid),
.SAXIHP0WLAST (saxihp0wlast),
.SAXIHP0WREADY (SAXIHP0WREADY),
.SAXIHP0WRISSUECAP1EN (saxihp0wrissuecap1en),
.SAXIHP0WSTRB (saxihp0wstrb),
.SAXIHP0WVALID (saxihp0wvalid),
.SAXIHP1ACLK (saxihp1aclk),
.SAXIHP1ARADDR (saxihp1araddr),
.SAXIHP1ARBURST (saxihp1arburst),
.SAXIHP1ARCACHE (saxihp1arcache),
.SAXIHP1ARESETN (SAXIHP1ARESETN),
.SAXIHP1ARID (saxihp1arid),
.SAXIHP1ARLEN (saxihp1arlen),
.SAXIHP1ARLOCK (saxihp1arlock),
.SAXIHP1ARPROT (saxihp1arprot),
.SAXIHP1ARQOS (saxihp1arqos),
.SAXIHP1ARREADY (SAXIHP1ARREADY),
.SAXIHP1ARSIZE (saxihp1arsize),
.SAXIHP1ARVALID (saxihp1arvalid),
.SAXIHP1AWADDR (saxihp1awaddr),
.SAXIHP1AWBURST (saxihp1awburst),
.SAXIHP1AWCACHE (saxihp1awcache),
.SAXIHP1AWID (saxihp1awid),
.SAXIHP1AWLEN (saxihp1awlen),
.SAXIHP1AWLOCK (saxihp1awlock),
.SAXIHP1AWPROT (saxihp1awprot),
.SAXIHP1AWQOS (saxihp1awqos),
.SAXIHP1AWREADY (SAXIHP1AWREADY),
.SAXIHP1AWSIZE (saxihp1awsize),
.SAXIHP1AWVALID (saxihp1awvalid),
.SAXIHP1BID (SAXIHP1BID),
.SAXIHP1BREADY (saxihp1bready),
.SAXIHP1BRESP (SAXIHP1BRESP),
.SAXIHP1BVALID (SAXIHP1BVALID),
.SAXIHP1RACOUNT (SAXIHP1RACOUNT),
.SAXIHP1RCOUNT (SAXIHP1RCOUNT),
.SAXIHP1RDATA (SAXIHP1RDATA),
.SAXIHP1RDISSUECAP1EN (saxihp1rdissuecap1en),
.SAXIHP1RID (SAXIHP1RID),
.SAXIHP1RLAST (SAXIHP1RLAST),
.SAXIHP1RREADY (saxihp1rready),
.SAXIHP1RRESP (SAXIHP1RRESP),
.SAXIHP1RVALID (SAXIHP1RVALID),
.SAXIHP1WACOUNT (SAXIHP1WACOUNT),
.SAXIHP1WCOUNT (SAXIHP1WCOUNT),
.SAXIHP1WDATA (saxihp1wdata),
.SAXIHP1WID (saxihp1wid),
.SAXIHP1WLAST (saxihp1wlast),
.SAXIHP1WREADY (SAXIHP1WREADY),
.SAXIHP1WRISSUECAP1EN (saxihp1wrissuecap1en),
.SAXIHP1WSTRB (saxihp1wstrb),
.SAXIHP1WVALID (saxihp1wvalid),
.SAXIHP2ACLK (saxihp2aclk),
.SAXIHP2ARADDR (saxihp2araddr),
.SAXIHP2ARBURST (saxihp2arburst),
.SAXIHP2ARCACHE (saxihp2arcache),
.SAXIHP2ARESETN (SAXIHP2ARESETN),
.SAXIHP2ARID (saxihp2arid),
.SAXIHP2ARLEN (saxihp2arlen),
.SAXIHP2ARLOCK (saxihp2arlock),
.SAXIHP2ARPROT (saxihp2arprot),
.SAXIHP2ARQOS (saxihp2arqos),
.SAXIHP2ARREADY (SAXIHP2ARREADY),
.SAXIHP2ARSIZE (saxihp2arsize),
.SAXIHP2ARVALID (saxihp2arvalid),
.SAXIHP2AWADDR (saxihp2awaddr),
.SAXIHP2AWBURST (saxihp2awburst),
.SAXIHP2AWCACHE (saxihp2awcache),
.SAXIHP2AWID (saxihp2awid),
.SAXIHP2AWLEN (saxihp2awlen),
.SAXIHP2AWLOCK (saxihp2awlock),
.SAXIHP2AWPROT (saxihp2awprot),
.SAXIHP2AWQOS (saxihp2awqos),
.SAXIHP2AWREADY (SAXIHP2AWREADY),
.SAXIHP2AWSIZE (saxihp2awsize),
.SAXIHP2AWVALID (saxihp2awvalid),
.SAXIHP2BID (SAXIHP2BID),
.SAXIHP2BREADY (saxihp2bready),
.SAXIHP2BRESP (SAXIHP2BRESP),
.SAXIHP2BVALID (SAXIHP2BVALID),
.SAXIHP2RACOUNT (SAXIHP2RACOUNT),
.SAXIHP2RCOUNT (SAXIHP2RCOUNT),
.SAXIHP2RDATA (SAXIHP2RDATA),
.SAXIHP2RDISSUECAP1EN (saxihp2rdissuecap1en),
.SAXIHP2RID (SAXIHP2RID),
.SAXIHP2RLAST (SAXIHP2RLAST),
.SAXIHP2RREADY (saxihp2rready),
.SAXIHP2RRESP (SAXIHP2RRESP),
.SAXIHP2RVALID (SAXIHP2RVALID),
.SAXIHP2WACOUNT (SAXIHP2WACOUNT),
.SAXIHP2WCOUNT (SAXIHP2WCOUNT),
.SAXIHP2WDATA (saxihp2wdata),
.SAXIHP2WID (saxihp2wid),
.SAXIHP2WLAST (saxihp2wlast),
.SAXIHP2WREADY (SAXIHP2WREADY),
.SAXIHP2WRISSUECAP1EN (saxihp2wrissuecap1en),
.SAXIHP2WSTRB (saxihp2wstrb),
.SAXIHP2WVALID (saxihp2wvalid),
.SAXIHP3ACLK (saxihp3aclk),
.SAXIHP3ARADDR (saxihp3araddr),
.SAXIHP3ARBURST (saxihp3arburst),
.SAXIHP3ARCACHE (saxihp3arcache),
.SAXIHP3ARESETN (SAXIHP3ARESETN),
.SAXIHP3ARID (saxihp3arid),
.SAXIHP3ARLEN (saxihp3arlen),
.SAXIHP3ARLOCK (saxihp3arlock),
.SAXIHP3ARPROT (saxihp3arprot),
.SAXIHP3ARQOS (saxihp3arqos),
.SAXIHP3ARREADY (SAXIHP3ARREADY),
.SAXIHP3ARSIZE (saxihp3arsize),
.SAXIHP3ARVALID (saxihp3arvalid),
.SAXIHP3AWADDR (saxihp3awaddr),
.SAXIHP3AWBURST (saxihp3awburst),
.SAXIHP3AWCACHE (saxihp3awcache),
.SAXIHP3AWID (saxihp3awid),
.SAXIHP3AWLEN (saxihp3awlen),
.SAXIHP3AWLOCK (saxihp3awlock),
.SAXIHP3AWPROT (saxihp3awprot),
.SAXIHP3AWQOS (saxihp3awqos),
.SAXIHP3AWREADY (SAXIHP3AWREADY),
.SAXIHP3AWSIZE (saxihp3awsize),
.SAXIHP3AWVALID (saxihp3awvalid),
.SAXIHP3BID (SAXIHP3BID),
.SAXIHP3BREADY (saxihp3bready),
.SAXIHP3BRESP (SAXIHP3BRESP),
.SAXIHP3BVALID (SAXIHP3BVALID),
.SAXIHP3RACOUNT (SAXIHP3RACOUNT),
.SAXIHP3RCOUNT (SAXIHP3RCOUNT),
.SAXIHP3RDATA (SAXIHP3RDATA),
.SAXIHP3RDISSUECAP1EN (saxihp3rdissuecap1en),
.SAXIHP3RID (SAXIHP3RID),
.SAXIHP3RLAST (SAXIHP3RLAST),
.SAXIHP3RREADY (saxihp3rready),
.SAXIHP3RRESP (SAXIHP3RRESP),
.SAXIHP3RVALID (SAXIHP3RVALID),
.SAXIHP3WACOUNT (SAXIHP3WACOUNT),
.SAXIHP3WCOUNT (SAXIHP3WCOUNT),
.SAXIHP3WDATA (saxihp3wdata),
.SAXIHP3WID (saxihp3wid),
.SAXIHP3WLAST (saxihp3wlast),
.SAXIHP3WREADY (SAXIHP3WREADY),
.SAXIHP3WRISSUECAP1EN (saxihp3wrissuecap1en),
.SAXIHP3WSTRB (saxihp3wstrb),
.SAXIHP3WVALID (saxihp3wvalid)
);
endmodule
module CARRY4_FIX(output O0, O1, O2, O3, CO0, CO1, CO2, CO3, input CYINIT, CIN, DI0, DI1, DI2, DI3, S0, S1, S2, S3);
parameter CYINIT_AX = 1'b0;
parameter CYINIT_C0 = 1'b0;
parameter CYINIT_C1 = 1'b0;
if(CYINIT_AX) begin
CARRY4_VPR #(
.CYINIT_AX(1'b1),
.CYINIT_C0(1'b0),
.CYINIT_C1(1'b0)
) _TECHMAP_REPLACE_ (
.CO0(CO0),
.CO1(CO1),
.CO2(CO2),
.CO3(CO3),
.CYINIT(CYINIT),
.O0(O0),
.O1(O1),
.O2(O2),
.O3(O3),
.DI0(DI0),
.DI1(DI1),
.DI2(DI2),
.DI3(DI3),
.S0(S0),
.S1(S1),
.S2(S2),
.S3(S3)
);
end else if(CYINIT_C0 || CYINIT_C1) begin
CARRY4_VPR #(
.CYINIT_AX(1'b0),
.CYINIT_C0(CYINIT_C0),
.CYINIT_C1(CYINIT_C1)
) _TECHMAP_REPLACE_ (
.CO0(CO0),
.CO1(CO1),
.CO2(CO2),
.CO3(CO3),
.O0(O0),
.O1(O1),
.O2(O2),
.O3(O3),
.DI0(DI0),
.DI1(DI1),
.DI2(DI2),
.DI3(DI3),
.S0(S0),
.S1(S1),
.S2(S2),
.S3(S3)
);
end else begin
CARRY4_VPR #(
.CYINIT_AX(1'b0),
.CYINIT_C0(1'b0),
.CYINIT_C1(1'b0)
) _TECHMAP_REPLACE_ (
.CO0(CO0),
.CO1(CO1),
.CO2(CO2),
.CO3(CO3),
.O0(O0),
.O1(O1),
.O2(O2),
.O3(O3),
.DI0(DI0),
.DI1(DI1),
.DI2(DI2),
.DI3(DI3),
.S0(S0),
.S1(S1),
.S2(S2),
.S3(S3),
.CIN(CIN)
);
end
endmodule
module IBUFDS_GTE2 (
output O,
output ODIV2,
input CEB,
input I,
input IB
);
parameter CLKCM_CFG = "TRUE";
parameter CLKRCV_TRST = "TRUE";
parameter [1:0] CLKSWING_CFG = 2'b11;
parameter IO_LOC_PAIRS = "NONE";
wire ipad_p_O, ipad_n_O;
IPAD_GTP_VPR IPAD_P (
.I(I),
.O(ipad_p_O)
);
IPAD_GTP_VPR IPAD_N (
.I(IB),
.O(ipad_n_O)
);
IBUFDS_GTE2_VPR #(
.CLKCM_CFG(CLKCM_CFG == "TRUE"),
.CLKRCV_TRST(CLKRCV_TRST == "TRUE"),
.CLKSWING_CFG(CLKSWING_CFG),
.IO_LOC_PAIRS(IO_LOC_PAIRS)
) IBUFDS_GTE2_INST (
.O(O),
.ODIV2(ODIV2),
.CEB(CEB),
.I(ipad_p_O),
.IB(ipad_n_O)
);
endmodule
module GTPE2_COMMON (
output DRPRDY,
output PLL0FBCLKLOST,
output PLL0LOCK,
output PLL0OUTCLK,
output PLL0OUTREFCLK,
output PLL0REFCLKLOST,
output PLL1FBCLKLOST,
output PLL1LOCK,
output PLL1OUTCLK,
output PLL1OUTREFCLK,
output PLL1REFCLKLOST,
output REFCLKOUTMONITOR0,
output REFCLKOUTMONITOR1,
output [15:0] DRPDO,
output [15:0] PMARSVDOUT,
output [7:0] DMONITOROUT,
input BGBYPASSB,
input BGMONITORENB,
input BGPDB,
input BGRCALOVRDENB,
input DRPCLK,
input DRPEN,
input DRPWE,
input GTREFCLK0,
input GTREFCLK1,
input GTGREFCLK0,
input GTGREFCLK1,
input PLL0LOCKDETCLK,
input PLL0LOCKEN,
input PLL0PD,
input PLL0RESET,
input PLL1LOCKDETCLK,
input PLL1LOCKEN,
input PLL1PD,
input PLL1RESET,
input RCALENB,
input [15:0] DRPDI,
input [2:0] PLL0REFCLKSEL,
input [2:0] PLL1REFCLKSEL,
input [4:0] BGRCALOVRD,
input [7:0] DRPADDR,
input [7:0] PMARSVD
);
parameter [63:0] BIAS_CFG = 64'h0000000000000000;
parameter [31:0] COMMON_CFG = 32'h00000000;
parameter [26:0] PLL0_CFG = 27'h01F03DC;
parameter [0:0] PLL0_DMON_CFG = 1'b0;
parameter [23:0] PLL0_INIT_CFG = 24'h00001E;
parameter [8:0] PLL0_LOCK_CFG = 9'h1E8;
parameter [26:0] PLL1_CFG = 27'h01F03DC;
parameter [0:0] PLL1_DMON_CFG = 1'b0;
parameter [23:0] PLL1_INIT_CFG = 24'h00001E;
parameter [8:0] PLL1_LOCK_CFG = 9'h1E8;
parameter [7:0] PLL_CLKOUT_CFG = 8'b00000000;
parameter [15:0] RSVD_ATTR0 = 16'h0000;
parameter [15:0] RSVD_ATTR1 = 16'h0000;
parameter integer PLL0_REFCLK_DIV = 1;
parameter integer PLL0_FBDIV = 4;
parameter integer PLL0_FBDIV_45 = 5;
parameter integer PLL1_REFCLK_DIV = 1;
parameter integer PLL1_FBDIV = 4;
parameter integer PLL1_FBDIV_45 = 5;
localparam [4:0] PLL0_REFCLK_DIV_BIN = PLL0_REFCLK_DIV == 1 ? 5'b10000 : 5'b00000;
localparam [4:0] PLL1_REFCLK_DIV_BIN = PLL1_REFCLK_DIV == 1 ? 5'b10000 : 5'b00000;
localparam [5:0] PLL0_FBDIV_BIN = PLL0_FBDIV == 1 ? 6'b010000 :
PLL0_FBDIV == 2 ? 6'b000000 :
PLL0_FBDIV == 3 ? 6'b000001 :
PLL0_FBDIV == 4 ? 6'b000010 :
/*PLL0_FBDIV == 5*/ 6'b000011;
localparam [5:0] PLL1_FBDIV_BIN = PLL1_FBDIV == 1 ? 6'b010000 :
PLL1_FBDIV == 2 ? 6'b000000 :
PLL1_FBDIV == 3 ? 6'b000001 :
PLL1_FBDIV == 4 ? 6'b000010 :
/*PLL1_FBDIV == 5*/ 6'b000011;
localparam PLL0_FBDIV_45_BIN = PLL0_FBDIV_45 == 4 ? 1'b0 : 1'b1;
localparam PLL1_FBDIV_45_BIN = PLL1_FBDIV_45 == 4 ? 1'b0 : 1'b1;
parameter [0:0] IS_DRPCLK_INVERTED = 1'b0;
parameter [0:0] IS_PLL0LOCKDETCLK_INVERTED = 1'b0;
parameter [0:0] IS_PLL1LOCKDETCLK_INVERTED = 1'b0;
parameter [0:0] IS_GTGREFCLK0_INVERTED = 1'b0;
parameter [0:0] IS_GTGREFCLK1_INVERTED = 1'b0;
parameter _TECHMAP_CONSTMSK_DRPCLK_ = 0;
parameter _TECHMAP_CONSTVAL_DRPCLK_ = 0;
parameter _TECHMAP_CONSTMSK_PLL0LOCKDETCLK_ = 0;
parameter _TECHMAP_CONSTVAL_PLL0LOCKDETCLK_ = 0;
parameter _TECHMAP_CONSTMSK_PLL1LOCKDETCLK_ = 0;
parameter _TECHMAP_CONSTVAL_PLL1LOCKDETCLK_ = 0;
localparam [0:0] INV_DRPCLK = (_TECHMAP_CONSTMSK_DRPCLK_ == 1) ? !_TECHMAP_CONSTVAL_DRPCLK_ ^ IS_DRPCLK_INVERTED :
(_TECHMAP_CONSTVAL_DRPCLK_ == 0) ? ~IS_DRPCLK_INVERTED : IS_DRPCLK_INVERTED;
wire drpclk = (_TECHMAP_CONSTMSK_DRPCLK_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_DRPCLK_ == 0) ? 1'b1 : DRPCLK;
localparam [0:0] INV_PLL0LOCKDETCLK = (_TECHMAP_CONSTMSK_PLL0LOCKDETCLK_ == 1) ? !_TECHMAP_CONSTVAL_PLL0LOCKDETCLK_ ^ IS_PLL0LOCKDETCLK_INVERTED :
(_TECHMAP_CONSTVAL_PLL0LOCKDETCLK_ == 0) ? ~IS_PLL0LOCKDETCLK_INVERTED : IS_PLL0LOCKDETCLK_INVERTED;
wire pll0lockdetclk = (_TECHMAP_CONSTMSK_PLL0LOCKDETCLK_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_PLL0LOCKDETCLK_ == 0) ? 1'b1 : PLL0LOCKDETCLK;
localparam [0:0] INV_PLL1LOCKDETCLK = (_TECHMAP_CONSTMSK_PLL1LOCKDETCLK_ == 1) ? !_TECHMAP_CONSTVAL_PLL1LOCKDETCLK_ ^ IS_PLL1LOCKDETCLK_INVERTED :
(_TECHMAP_CONSTVAL_PLL1LOCKDETCLK_ == 0) ? ~IS_PLL1LOCKDETCLK_INVERTED : IS_PLL1LOCKDETCLK_INVERTED;
wire pll1lockdetclk = (_TECHMAP_CONSTMSK_PLL1LOCKDETCLK_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_PLL1LOCKDETCLK_ == 0) ? 1'b1 : PLL1LOCKDETCLK;
parameter _TECHMAP_CONSTMSK_GTREFCLK0_ = 0;
parameter _TECHMAP_CONSTVAL_GTREFCLK0_ = 0;
parameter _TECHMAP_CONSTMSK_GTREFCLK1_ = 0;
parameter _TECHMAP_CONSTVAL_GTREFCLK1_ = 0;
localparam [0:0] GTREFCLK0_USED = (_TECHMAP_CONSTMSK_GTREFCLK0_ == 1) ? 1'b0 :
(_TECHMAP_CONSTVAL_GTREFCLK0_ === 0) ? 1'b0 : 1'b1;
localparam [0:0] GTREFCLK1_USED = (_TECHMAP_CONSTMSK_GTREFCLK1_ == 1) ? 1'b0 :
(_TECHMAP_CONSTVAL_GTREFCLK1_ === 0) ? 1'b0 : 1'b1;
localparam [0:0] BOTH_GTREFCLK_USED = GTREFCLK0_USED && GTREFCLK1_USED;
localparam [0:0] NONE_GTREFCLK_USED = !(GTREFCLK0_USED || GTREFCLK1_USED);
if (NONE_GTREFCLK_USED) begin
wire _TECHMAP_FAIL_ = 1'b1;
end
if (BOTH_GTREFCLK_USED) begin
GTPE2_COMMON_VPR #(
.BIAS_CFG (BIAS_CFG),
.COMMON_CFG (COMMON_CFG),
.PLL0_CFG (PLL0_CFG),
.PLL0_DMON_CFG (PLL0_DMON_CFG),
.PLL0_FBDIV (PLL0_FBDIV_BIN),
.PLL0_FBDIV_45 (PLL0_FBDIV_45_BIN),
.PLL0_INIT_CFG (PLL0_INIT_CFG),
.PLL0_LOCK_CFG (PLL0_LOCK_CFG),
.PLL0_REFCLK_DIV (PLL0_REFCLK_DIV_BIN),
.PLL1_CFG (PLL1_CFG),
.PLL1_DMON_CFG (PLL1_DMON_CFG),
.PLL1_FBDIV (PLL1_FBDIV_BIN),
.PLL1_FBDIV_45 (PLL1_FBDIV_45_BIN),
.PLL1_INIT_CFG (PLL1_INIT_CFG),
.PLL1_LOCK_CFG (PLL1_LOCK_CFG),
.PLL1_REFCLK_DIV (PLL1_REFCLK_DIV_BIN),
.PLL_CLKOUT_CFG (PLL_CLKOUT_CFG),
.RSVD_ATTR0 (RSVD_ATTR0),
.RSVD_ATTR1 (RSVD_ATTR1),
.INV_DRPCLK (INV_DRPCLK),
.INV_PLL0LOCKDETCLK (INV_PLL0LOCKDETCLK),
.INV_PLL1LOCKDETCLK (INV_PLL1LOCKDETCLK),
.GTREFCLK0_USED (GTREFCLK0_USED == 1'b1),
.GTREFCLK1_USED (GTREFCLK1_USED == 1'b1),
.BOTH_GTREFCLK_USED (BOTH_GTREFCLK_USED),
.ENABLE_DRP (1'b1),
.IBUFDS_GTE2_CLKSWING_CFG (2'b11)
) _TECHMAP_REPLACE_ (
.DRPRDY (DRPRDY),
.PLL0FBCLKLOST (PLL0FBCLKLOST),
.PLL0LOCK (PLL0LOCK),
.PLL0OUTCLK (PLL0OUTCLK),
.PLL0OUTREFCLK (PLL0OUTREFCLK),
.PLL0REFCLKLOST (PLL0REFCLKLOST),
.PLL1FBCLKLOST (PLL1FBCLKLOST),
.PLL1LOCK (PLL1LOCK),
.PLL1OUTCLK (PLL1OUTCLK),
.PLL1OUTREFCLK (PLL1OUTREFCLK),
.PLL1REFCLKLOST (PLL1REFCLKLOST),
.REFCLKOUTMONITOR0 (REFCLKOUTMONITOR0),
.REFCLKOUTMONITOR1 (REFCLKOUTMONITOR1),
.DRPDO (DRPDO),
.PMARSVDOUT (PMARSVDOUT),
.DMONITOROUT (DMONITOROUT),
.BGBYPASSB (BGBYPASSB),
.BGMONITORENB (BGMONITORENB),
.BGPDB (BGPDB),
.BGRCALOVRDENB (BGRCALOVRDENB),
.DRPCLK (drpclk),
.DRPEN (DRPEN),
.DRPWE (DRPWE),
.GTREFCLK0 (GTREFCLK0),
.GTREFCLK1 (GTREFCLK1),
.PLL0LOCKDETCLK (pll0lockdetclk),
.PLL0LOCKEN (PLL0LOCKEN),
.PLL0PD (PLL0PD),
.PLL0RESET (PLL0RESET),
.PLL1LOCKDETCLK (pll1lockdetclk),
.PLL1LOCKEN (PLL1LOCKEN),
.PLL1PD (PLL1PD),
.PLL1RESET (PLL1RESET),
.RCALENB (RCALENB),
.DRPDI (DRPDI),
.PLL0REFCLKSEL (PLL0REFCLKSEL),
.PLL1REFCLKSEL (PLL1REFCLKSEL),
.BGRCALOVRD (BGRCALOVRD),
.DRPADDR (DRPADDR),
.PMARSVD (PMARSVD)
);
end else if (GTREFCLK0_USED) begin
GTPE2_COMMON_VPR #(
.BIAS_CFG (BIAS_CFG),
.COMMON_CFG (COMMON_CFG),
.PLL0_CFG (PLL0_CFG),
.PLL0_DMON_CFG (PLL0_DMON_CFG),
.PLL0_FBDIV (PLL0_FBDIV_BIN),
.PLL0_FBDIV_45 (PLL0_FBDIV_45_BIN),
.PLL0_INIT_CFG (PLL0_INIT_CFG),
.PLL0_LOCK_CFG (PLL0_LOCK_CFG),
.PLL0_REFCLK_DIV (PLL0_REFCLK_DIV_BIN),
.PLL1_CFG (PLL1_CFG),
.PLL1_DMON_CFG (PLL1_DMON_CFG),
.PLL1_FBDIV (PLL1_FBDIV_BIN),
.PLL1_FBDIV_45 (PLL1_FBDIV_45_BIN),
.PLL1_INIT_CFG (PLL1_INIT_CFG),
.PLL1_LOCK_CFG (PLL1_LOCK_CFG),
.PLL1_REFCLK_DIV (PLL1_REFCLK_DIV_BIN),
.PLL_CLKOUT_CFG (PLL_CLKOUT_CFG),
.RSVD_ATTR0 (RSVD_ATTR0),
.RSVD_ATTR1 (RSVD_ATTR1),
.INV_DRPCLK (INV_DRPCLK),
.INV_PLL0LOCKDETCLK (INV_PLL0LOCKDETCLK),
.INV_PLL1LOCKDETCLK (INV_PLL1LOCKDETCLK),
.GTREFCLK0_USED (GTREFCLK0_USED == 1'b1),
.GTREFCLK1_USED (GTREFCLK1_USED == 1'b1),
.BOTH_GTREFCLK_USED (BOTH_GTREFCLK_USED),
.ENABLE_DRP (1'b1),
.IBUFDS_GTE2_CLKSWING_CFG (2'b11)
) _TECHMAP_REPLACE_ (
.DRPRDY (DRPRDY),
.PLL0FBCLKLOST (PLL0FBCLKLOST),
.PLL0LOCK (PLL0LOCK),
.PLL0OUTCLK (PLL0OUTCLK),
.PLL0OUTREFCLK (PLL0OUTREFCLK),
.PLL0REFCLKLOST (PLL0REFCLKLOST),
.PLL1FBCLKLOST (PLL1FBCLKLOST),
.PLL1LOCK (PLL1LOCK),
.PLL1OUTCLK (PLL1OUTCLK),
.PLL1OUTREFCLK (PLL1OUTREFCLK),
.PLL1REFCLKLOST (PLL1REFCLKLOST),
.REFCLKOUTMONITOR0 (REFCLKOUTMONITOR0),
.REFCLKOUTMONITOR1 (REFCLKOUTMONITOR1),
.DRPDO (DRPDO),
.PMARSVDOUT (PMARSVDOUT),
.DMONITOROUT (DMONITOROUT),
.BGBYPASSB (BGBYPASSB),
.BGMONITORENB (BGMONITORENB),
.BGPDB (BGPDB),
.BGRCALOVRDENB (BGRCALOVRDENB),
.DRPCLK (drpclk),
.DRPEN (DRPEN),
.DRPWE (DRPWE),
.GTREFCLK0 (GTREFCLK0),
.PLL0LOCKDETCLK (pll0lockdetclk),
.PLL0LOCKEN (PLL0LOCKEN),
.PLL0PD (PLL0PD),
.PLL0RESET (PLL0RESET),
.PLL1LOCKDETCLK (pll1lockdetclk),
.PLL1LOCKEN (PLL1LOCKEN),
.PLL1PD (PLL1PD),
.PLL1RESET (PLL1RESET),
.RCALENB (RCALENB),
.DRPDI (DRPDI),
.PLL0REFCLKSEL (PLL0REFCLKSEL),
.PLL1REFCLKSEL (PLL1REFCLKSEL),
.BGRCALOVRD (BGRCALOVRD),
.DRPADDR (DRPADDR),
.PMARSVD (PMARSVD)
);
end else begin
GTPE2_COMMON_VPR #(
.BIAS_CFG (BIAS_CFG),
.COMMON_CFG (COMMON_CFG),
.PLL0_CFG (PLL0_CFG),
.PLL0_DMON_CFG (PLL0_DMON_CFG),
.PLL0_FBDIV (PLL0_FBDIV_BIN),
.PLL0_FBDIV_45 (PLL0_FBDIV_45_BIN),
.PLL0_INIT_CFG (PLL0_INIT_CFG),
.PLL0_LOCK_CFG (PLL0_LOCK_CFG),
.PLL0_REFCLK_DIV (PLL0_REFCLK_DIV_BIN),
.PLL1_CFG (PLL1_CFG),
.PLL1_DMON_CFG (PLL1_DMON_CFG),
.PLL1_FBDIV (PLL1_FBDIV_BIN),
.PLL1_FBDIV_45 (PLL1_FBDIV_45_BIN),
.PLL1_INIT_CFG (PLL1_INIT_CFG),
.PLL1_LOCK_CFG (PLL1_LOCK_CFG),
.PLL1_REFCLK_DIV (PLL1_REFCLK_DIV_BIN),
.PLL_CLKOUT_CFG (PLL_CLKOUT_CFG),
.RSVD_ATTR0 (RSVD_ATTR0),
.RSVD_ATTR1 (RSVD_ATTR1),
.INV_DRPCLK (INV_DRPCLK),
.INV_PLL0LOCKDETCLK (INV_PLL0LOCKDETCLK),
.INV_PLL1LOCKDETCLK (INV_PLL1LOCKDETCLK),
.GTREFCLK0_USED (GTREFCLK0_USED == 1'b1),
.GTREFCLK1_USED (GTREFCLK1_USED == 1'b1),
.BOTH_GTREFCLK_USED (BOTH_GTREFCLK_USED),
.ENABLE_DRP (1'b1),
.IBUFDS_GTE2_CLKSWING_CFG (2'b11)
) _TECHMAP_REPLACE_ (
.DRPRDY (DRPRDY),
.PLL0FBCLKLOST (PLL0FBCLKLOST),
.PLL0LOCK (PLL0LOCK),
.PLL0OUTCLK (PLL0OUTCLK),
.PLL0OUTREFCLK (PLL0OUTREFCLK),
.PLL0REFCLKLOST (PLL0REFCLKLOST),
.PLL1FBCLKLOST (PLL1FBCLKLOST),
.PLL1LOCK (PLL1LOCK),
.PLL1OUTCLK (PLL1OUTCLK),
.PLL1OUTREFCLK (PLL1OUTREFCLK),
.PLL1REFCLKLOST (PLL1REFCLKLOST),
.REFCLKOUTMONITOR0 (REFCLKOUTMONITOR0),
.REFCLKOUTMONITOR1 (REFCLKOUTMONITOR1),
.DRPDO (DRPDO),
.PMARSVDOUT (PMARSVDOUT),
.DMONITOROUT (DMONITOROUT),
.BGBYPASSB (BGBYPASSB),
.BGMONITORENB (BGMONITORENB),
.BGPDB (BGPDB),
.BGRCALOVRDENB (BGRCALOVRDENB),
.DRPCLK (drpclk),
.DRPEN (DRPEN),
.DRPWE (DRPWE),
.GTREFCLK1 (GTREFCLK1),
.PLL0LOCKDETCLK (pll0lockdetclk),
.PLL0LOCKEN (PLL0LOCKEN),
.PLL0PD (PLL0PD),
.PLL0RESET (PLL0RESET),
.PLL1LOCKDETCLK (pll1lockdetclk),
.PLL1LOCKEN (PLL1LOCKEN),
.PLL1PD (PLL1PD),
.PLL1RESET (PLL1RESET),
.RCALENB (RCALENB),
.DRPDI (DRPDI),
.PLL0REFCLKSEL (PLL0REFCLKSEL),
.PLL1REFCLKSEL (PLL1REFCLKSEL),
.BGRCALOVRD (BGRCALOVRD),
.DRPADDR (DRPADDR),
.PMARSVD (PMARSVD)
);
end
endmodule
module GTPE2_CHANNEL (
output DRPRDY,
output EYESCANDATAERROR,
output GTPTXN,
output GTPTXP,
output PHYSTATUS,
output PMARSVDOUT0,
output PMARSVDOUT1,
output RXBYTEISALIGNED,
output RXBYTEREALIGN,
output RXCDRLOCK,
output RXCHANBONDSEQ,
output RXCHANISALIGNED,
output RXCHANREALIGN,
output RXCOMINITDET,
output RXCOMMADET,
output RXCOMSASDET,
output RXCOMWAKEDET,
output RXDLYSRESETDONE,
output RXELECIDLE,
output RXHEADERVALID,
output RXOSINTDONE,
output RXOSINTSTARTED,
output RXOSINTSTROBEDONE,
output RXOSINTSTROBESTARTED,
output RXOUTCLK,
output RXOUTCLKFABRIC,
output RXOUTCLKPCS,
output RXPHALIGNDONE,
output RXPMARESETDONE,
output RXPRBSERR,
output RXRATEDONE,
output RXRESETDONE,
output RXSYNCDONE,
output RXSYNCOUT,
output RXVALID,
output TXCOMFINISH,
output TXDLYSRESETDONE,
output TXGEARBOXREADY,
output TXOUTCLK,
output TXOUTCLKFABRIC,
output TXOUTCLKPCS,
output TXPHALIGNDONE,
output TXPHINITDONE,
output TXPMARESETDONE,
output TXRATEDONE,
output TXRESETDONE,
output TXSYNCDONE,
output TXSYNCOUT,
output [14:0] DMONITOROUT,
output [15:0] DRPDO,
output [15:0] PCSRSVDOUT,
output [1:0] RXCLKCORCNT,
output [1:0] RXDATAVALID,
output [1:0] RXSTARTOFSEQ,
output [1:0] TXBUFSTATUS,
output [2:0] RXBUFSTATUS,
output [2:0] RXHEADER,
output [2:0] RXSTATUS,
output [31:0] RXDATA,
output [3:0] RXCHARISCOMMA,
output [3:0] RXCHARISK,
output [3:0] RXCHBONDO,
output [3:0] RXDISPERR,
output [3:0] RXNOTINTABLE,
output [4:0] RXPHMONITOR,
output [4:0] RXPHSLIPMONITOR,
input CFGRESET,
input CLKRSVD0,
input CLKRSVD1,
input DMONFIFORESET,
input DMONITORCLK,
input DRPCLK,
input DRPEN,
input DRPWE,
input EYESCANMODE,
input EYESCANRESET,
input EYESCANTRIGGER,
input GTPRXN,
input GTPRXP,
input GTRESETSEL,
input GTRXRESET,
input GTTXRESET,
input PLL0CLK,
input PLL0REFCLK,
input PLL1CLK,
input PLL1REFCLK,
input PMARSVDIN0,
input PMARSVDIN1,
input PMARSVDIN2,
input PMARSVDIN3,
input PMARSVDIN4,
input RESETOVRD,
input RX8B10BEN,
input RXBUFRESET,
input RXCDRFREQRESET,
input RXCDRHOLD,
input RXCDROVRDEN,
input RXCDRRESET,
input RXCDRRESETRSV,
input RXCHBONDEN,
input RXCHBONDMASTER,
input RXCHBONDSLAVE,
input RXCOMMADETEN,
input RXDDIEN,
input RXDFEXYDEN,
input RXDLYBYPASS,
input RXDLYEN,
input RXDLYOVRDEN,
input RXDLYSRESET,
input RXGEARBOXSLIP,
input RXLPMHFHOLD,
input RXLPMHFOVRDEN,
input RXLPMLFHOLD,
input RXLPMLFOVRDEN,
input RXLPMOSINTNTRLEN,
input RXLPMRESET,
input RXMCOMMAALIGNEN,
input RXOOBRESET,
input RXOSCALRESET,
input RXOSHOLD,
input RXOSINTEN,
input RXOSINTHOLD,
input RXOSINTNTRLEN,
input RXOSINTOVRDEN,
input RXOSINTPD,
input RXOSINTSTROBE,
input RXOSINTTESTOVRDEN,
input RXOSOVRDEN,
input RXPCOMMAALIGNEN,
input RXPCSRESET,
input RXPHALIGN,
input RXPHALIGNEN,
input RXPHDLYPD,
input RXPHDLYRESET,
input RXPHOVRDEN,
input RXPMARESET,
input RXPOLARITY,
input RXPRBSCNTRESET,
input RXRATEMODE,
input RXSLIDE,
input RXSYNCALLIN,
input RXSYNCIN,
input RXSYNCMODE,
input RXUSERRDY,
input RXUSRCLK2,
input RXUSRCLK,
input SETERRSTATUS,
input SIGVALIDCLK,
input TX8B10BEN,
input TXCOMINIT,
input TXCOMSAS,
input TXCOMWAKE,
input TXDEEMPH,
input TXDETECTRX,
input TXDIFFPD,
input TXDLYBYPASS,
input TXDLYEN,
input TXDLYHOLD,
input TXDLYOVRDEN,
input TXDLYSRESET,
input TXDLYUPDOWN,
input TXELECIDLE,
input TXINHIBIT,
input TXPCSRESET,
input TXPDELECIDLEMODE,
input TXPHALIGN,
input TXPHALIGNEN,
input TXPHDLYPD,
input TXPHDLYRESET,
input TXPHDLYTSTCLK,
input TXPHINIT,
input TXPHOVRDEN,
input TXPIPPMEN,
input TXPIPPMOVRDEN,
input TXPIPPMPD,
input TXPIPPMSEL,
input TXPISOPD,
input TXPMARESET,
input TXPOLARITY,
input TXPOSTCURSORINV,
input TXPRBSFORCEERR,
input TXPRECURSORINV,
input TXRATEMODE,
input TXSTARTSEQ,
input TXSWING,
input TXSYNCALLIN,
input TXSYNCIN,
input TXSYNCMODE,
input TXUSERRDY,
input TXUSRCLK2,
input TXUSRCLK,
input [13:0] RXADAPTSELTEST,
input [15:0] DRPDI,
input [15:0] GTRSVD,
input [15:0] PCSRSVDIN,
input [19:0] TSTIN,
input [1:0] RXELECIDLEMODE,
input [1:0] RXPD,
input [1:0] RXSYSCLKSEL,
input [1:0] TXPD,
input [1:0] TXSYSCLKSEL,
input [2:0] LOOPBACK,
input [2:0] RXCHBONDLEVEL,
input [2:0] RXOUTCLKSEL,
input [2:0] RXPRBSSEL,
input [2:0] RXRATE,
input [2:0] TXBUFDIFFCTRL,
input [2:0] TXHEADER,
input [2:0] TXMARGIN,
input [2:0] TXOUTCLKSEL,
input [2:0] TXPRBSSEL,
input [2:0] TXRATE,
input [31:0] TXDATA,
input [3:0] RXCHBONDI,
input [3:0] RXOSINTCFG,
input [3:0] RXOSINTID0,
input [3:0] TX8B10BBYPASS,
input [3:0] TXCHARDISPMODE,
input [3:0] TXCHARDISPVAL,
input [3:0] TXCHARISK,
input [3:0] TXDIFFCTRL,
input [4:0] TXPIPPMSTEPSIZE,
input [4:0] TXPOSTCURSOR,
input [4:0] TXPRECURSOR,
input [6:0] TXMAINCURSOR,
input [6:0] TXSEQUENCE,
input [8:0] DRPADDR
);
parameter [0:0] ACJTAG_DEBUG_MODE = 1'b0;
parameter [0:0] ACJTAG_MODE = 1'b0;
parameter [0:0] ACJTAG_RESET = 1'b0;
parameter [19:0] ADAPT_CFG0 = 20'b00000000000000000000;
parameter ALIGN_COMMA_DOUBLE = "FALSE";
parameter [9:0] ALIGN_COMMA_ENABLE = 10'b0001111111;
parameter [1:0] ALIGN_COMMA_WORD = 1;
parameter ALIGN_MCOMMA_DET = "TRUE";
parameter [9:0] ALIGN_MCOMMA_VALUE = 10'b1010000011;
parameter ALIGN_PCOMMA_DET = "TRUE";
parameter [9:0] ALIGN_PCOMMA_VALUE = 10'b0101111100;
parameter CBCC_DATA_SOURCE_SEL = "DECODED";
parameter [42:0] CFOK_CFG = 43'b1001001000000000000000001000000111010000000;
parameter [6:0] CFOK_CFG2 = 7'b0100000;
parameter [6:0] CFOK_CFG3 = 7'b0100000;
parameter [0:0] CFOK_CFG4 = 1'b0;
parameter [1:0] CFOK_CFG5 = 2'b00;
parameter [3:0] CFOK_CFG6 = 4'b0000;
parameter CHAN_BOND_KEEP_ALIGN = "FALSE";
parameter [3:0] CHAN_BOND_MAX_SKEW = 7;
parameter [9:0] CHAN_BOND_SEQ_1_1 = 10'b0101111100;
parameter [9:0] CHAN_BOND_SEQ_1_2 = 10'b0000000000;
parameter [9:0] CHAN_BOND_SEQ_1_3 = 10'b0000000000;
parameter [9:0] CHAN_BOND_SEQ_1_4 = 10'b0000000000;
parameter [3:0] CHAN_BOND_SEQ_1_ENABLE = 4'b1111;
parameter [9:0] CHAN_BOND_SEQ_2_1 = 10'b0100000000;
parameter [9:0] CHAN_BOND_SEQ_2_2 = 10'b0100000000;
parameter [9:0] CHAN_BOND_SEQ_2_3 = 10'b0100000000;
parameter [9:0] CHAN_BOND_SEQ_2_4 = 10'b0100000000;
parameter [3:0] CHAN_BOND_SEQ_2_ENABLE = 4'b1111;
parameter CHAN_BOND_SEQ_2_USE = "FALSE";
parameter integer CHAN_BOND_SEQ_LEN = 1;
parameter [0:0] CLK_COMMON_SWING = 1'b0;
parameter CLK_CORRECT_USE = "TRUE";
parameter CLK_COR_KEEP_IDLE = "FALSE";
parameter [5:0] CLK_COR_MAX_LAT = 20;
parameter [5:0] CLK_COR_MIN_LAT = 18;
parameter CLK_COR_PRECEDENCE = "TRUE";
parameter [4:0] CLK_COR_REPEAT_WAIT = 0;
parameter [9:0] CLK_COR_SEQ_1_1 = 10'b0100011100;
parameter [9:0] CLK_COR_SEQ_1_2 = 10'b0000000000;
parameter [9:0] CLK_COR_SEQ_1_3 = 10'b0000000000;
parameter [9:0] CLK_COR_SEQ_1_4 = 10'b0000000000;
parameter [3:0] CLK_COR_SEQ_1_ENABLE = 4'b1111;
parameter [9:0] CLK_COR_SEQ_2_1 = 10'b0100000000;
parameter [9:0] CLK_COR_SEQ_2_2 = 10'b0100000000;
parameter [9:0] CLK_COR_SEQ_2_3 = 10'b0100000000;
parameter [9:0] CLK_COR_SEQ_2_4 = 10'b0100000000;
parameter [3:0] CLK_COR_SEQ_2_ENABLE = 4'b1111;
parameter CLK_COR_SEQ_2_USE = "FALSE";
parameter integer CLK_COR_SEQ_LEN = 1;
parameter DEC_MCOMMA_DETECT = "TRUE";
parameter DEC_PCOMMA_DETECT = "TRUE";
parameter DEC_VALID_COMMA_ONLY = "TRUE";
parameter [23:0] DMONITOR_CFG = 24'h000A00;
parameter [0:0] ES_CLK_PHASE_SEL = 1'b0;
parameter [5:0] ES_CONTROL = 6'b000000;
parameter ES_ERRDET_EN = "FALSE";
parameter ES_EYE_SCAN_EN = "FALSE";
parameter [11:0] ES_HORZ_OFFSET = 12'h010;
parameter [9:0] ES_PMA_CFG = 10'b0000000000;
parameter [4:0] ES_PRESCALE = 5'b00000;
parameter [79:0] ES_QUALIFIER = 80'h00000000000000000000;
parameter [79:0] ES_QUAL_MASK = 80'h00000000000000000000;
parameter [79:0] ES_SDATA_MASK = 80'h00000000000000000000;
parameter [8:0] ES_VERT_OFFSET = 9'b000000000;
parameter [3:0] FTS_DESKEW_SEQ_ENABLE = 4'b1111;
parameter [3:0] FTS_LANE_DESKEW_CFG = 4'b1111;
parameter FTS_LANE_DESKEW_EN = "FALSE";
parameter [2:0] GEARBOX_MODE = 3'b000;
parameter [0:0] LOOPBACK_CFG = 1'b0;
parameter [1:0] OUTREFCLK_SEL_INV = 2'b11;
parameter PCS_PCIE_EN = "FALSE";
parameter [47:0] PCS_RSVD_ATTR = 48'h000000000000;
parameter [11:0] PD_TRANS_TIME_FROM_P2 = 12'h03C;
parameter [7:0] PD_TRANS_TIME_NONE_P2 = 8'h19;
parameter [7:0] PD_TRANS_TIME_TO_P2 = 8'h64;
parameter [0:0] PMA_LOOPBACK_CFG = 1'b0;
parameter [31:0] PMA_RSV = 32'h00000333;
parameter [31:0] PMA_RSV2 = 32'h00002050;
parameter [1:0] PMA_RSV3 = 2'b00;
parameter [3:0] PMA_RSV4 = 4'b0000;
parameter [0:0] PMA_RSV5 = 1'b0;
parameter [0:0] PMA_RSV6 = 1'b0;
parameter [0:0] PMA_RSV7 = 1'b0;
parameter [4:0] RXBUFRESET_TIME = 5'b00001;
parameter RXBUF_ADDR_MODE = "FULL";
parameter [3:0] RXBUF_EIDLE_HI_CNT = 4'b1000;
parameter [3:0] RXBUF_EIDLE_LO_CNT = 4'b0000;
parameter RXBUF_EN = "TRUE";
parameter RXBUF_RESET_ON_CB_CHANGE = "TRUE";
parameter RXBUF_RESET_ON_COMMAALIGN = "FALSE";
parameter RXBUF_RESET_ON_EIDLE = "FALSE";
parameter RXBUF_RESET_ON_RATE_CHANGE = "TRUE";
parameter [5:0] RXBUF_THRESH_OVFLW = 61;
parameter RXBUF_THRESH_OVRD = "FALSE";
parameter [5:0] RXBUF_THRESH_UNDFLW = 4;
parameter [4:0] RXCDRFREQRESET_TIME = 5'b00001;
parameter [4:0] RXCDRPHRESET_TIME = 5'b00001;
parameter [82:0] RXCDR_CFG = 83'h0000107FE406001041010;
parameter [0:0] RXCDR_FR_RESET_ON_EIDLE = 1'b0;
parameter [0:0] RXCDR_HOLD_DURING_EIDLE = 1'b0;
parameter [5:0] RXCDR_LOCK_CFG = 6'b001001;
parameter [0:0] RXCDR_PH_RESET_ON_EIDLE = 1'b0;
parameter [15:0] RXDLY_CFG = 16'h0010;
parameter [8:0] RXDLY_LCFG = 9'h020;
parameter [15:0] RXDLY_TAP_CFG = 16'h0000;
parameter RXGEARBOX_EN = "FALSE";
parameter [4:0] RXISCANRESET_TIME = 5'b00001;
parameter [6:0] RXLPMRESET_TIME = 7'b0001111;
parameter [0:0] RXLPM_BIAS_STARTUP_DISABLE = 1'b0;
parameter [3:0] RXLPM_CFG = 4'b0110;
parameter [0:0] RXLPM_CFG1 = 1'b0;
parameter [0:0] RXLPM_CM_CFG = 1'b0;
parameter [8:0] RXLPM_GC_CFG = 9'b111100010;
parameter [2:0] RXLPM_GC_CFG2 = 3'b001;
parameter [13:0] RXLPM_HF_CFG = 14'b00001111110000;
parameter [4:0] RXLPM_HF_CFG2 = 5'b01010;
parameter [3:0] RXLPM_HF_CFG3 = 4'b0000;
parameter [0:0] RXLPM_HOLD_DURING_EIDLE = 1'b0;
parameter [0:0] RXLPM_INCM_CFG = 1'b0;
parameter [0:0] RXLPM_IPCM_CFG = 1'b0;
parameter [17:0] RXLPM_LF_CFG = 18'b000000001111110000;
parameter [4:0] RXLPM_LF_CFG2 = 5'b01010;
parameter [2:0] RXLPM_OSINT_CFG = 3'b100;
parameter [6:0] RXOOB_CFG = 7'b0000110;
parameter RXOOB_CLK_CFG = "PMA";
parameter [4:0] RXOSCALRESET_TIME = 5'b00011;
parameter [4:0] RXOSCALRESET_TIMEOUT = 5'b00000;
parameter integer RXOUT_DIV = 2;
parameter [4:0] RXPCSRESET_TIME = 5'b00001;
parameter [23:0] RXPHDLY_CFG = 24'h084000;
parameter [23:0] RXPH_CFG = 24'hC00002;
parameter [4:0] RXPH_MONITOR_SEL = 5'b00000;
parameter [2:0] RXPI_CFG0 = 3'b000;
parameter [0:0] RXPI_CFG1 = 1'b0;
parameter [0:0] RXPI_CFG2 = 1'b0;
parameter [4:0] RXPMARESET_TIME = 5'b00011;
parameter [0:0] RXPRBS_ERR_LOOPBACK = 1'b0;
parameter [3:0] RXSLIDE_AUTO_WAIT = 7;
parameter RXSLIDE_MODE = "OFF";
parameter [0:0] RXSYNC_MULTILANE = 1'b0;
parameter [0:0] RXSYNC_OVRD = 1'b0;
parameter [0:0] RXSYNC_SKIP_DA = 1'b0;
parameter [15:0] RX_BIAS_CFG = 16'b0000111100110011;
parameter [5:0] RX_BUFFER_CFG = 6'b000000;
parameter integer RX_CLK25_DIV = 7;
parameter [0:0] RX_CLKMUX_EN = 1'b1;
parameter [1:0] RX_CM_SEL = 2'b11;
parameter [3:0] RX_CM_TRIM = 4'b0100;
parameter integer RX_DATA_WIDTH = 20;
parameter [5:0] RX_DDI_SEL = 6'b000000;
parameter [13:0] RX_DEBUG_CFG = 14'b00000000000000;
parameter RX_DEFER_RESET_BUF_EN = "TRUE";
parameter RX_DISPERR_SEQ_MATCH = "TRUE";
parameter [12:0] RX_OS_CFG = 13'b0001111110000;
parameter integer RX_SIG_VALID_DLY = 10;
parameter RX_XCLK_SEL = "RXREC";
parameter [6:0] SAS_MAX_COM = 64;
parameter [5:0] SAS_MIN_COM = 36;
parameter [3:0] SATA_BURST_SEQ_LEN = 4'b1111;
parameter [2:0] SATA_BURST_VAL = 3'b100;
parameter [2:0] SATA_EIDLE_VAL = 3'b100;
parameter [5:0] SATA_MAX_BURST = 8;
parameter [5:0] SATA_MAX_INIT = 21;
parameter [5:0] SATA_MAX_WAKE = 7;
parameter [5:0] SATA_MIN_BURST = 4;
parameter [5:0] SATA_MIN_INIT = 12;
parameter [5:0] SATA_MIN_WAKE = 4;
parameter SATA_PLL_CFG = "VCO_3000MHZ";
parameter SHOW_REALIGN_COMMA = "TRUE";
parameter SIM_RECEIVER_DETECT_PASS = "TRUE";
parameter SIM_RESET_SPEEDUP = "TRUE";
parameter SIM_TX_EIDLE_DRIVE_LEVEL = "X";
parameter SIM_VERSION = "1.0";
parameter [14:0] TERM_RCAL_CFG = 15'b100001000010000;
parameter [2:0] TERM_RCAL_OVRD = 3'b000;
parameter [7:0] TRANS_TIME_RATE = 8'h0E;
parameter [31:0] TST_RSV = 32'h00000000;
parameter TXBUF_EN = "TRUE";
parameter TXBUF_RESET_ON_RATE_CHANGE = "FALSE";
parameter [15:0] TXDLY_CFG = 16'h0010;
parameter [8:0] TXDLY_LCFG = 9'h020;
parameter [15:0] TXDLY_TAP_CFG = 16'h0000;
parameter TXGEARBOX_EN = "FALSE";
parameter [0:0] TXOOB_CFG = 1'b0;
parameter integer TXOUT_DIV = 2;
parameter [4:0] TXPCSRESET_TIME = 5'b00001;
parameter [23:0] TXPHDLY_CFG = 24'h084000;
parameter [15:0] TXPH_CFG = 16'h0400;
parameter [4:0] TXPH_MONITOR_SEL = 5'b00000;
parameter [1:0] TXPI_CFG0 = 2'b00;
parameter [1:0] TXPI_CFG1 = 2'b00;
parameter [1:0] TXPI_CFG2 = 2'b00;
parameter [0:0] TXPI_CFG3 = 1'b0;
parameter [0:0] TXPI_CFG4 = 1'b0;
parameter [2:0] TXPI_CFG5 = 3'b000;
parameter [0:0] TXPI_GREY_SEL = 1'b0;
parameter [0:0] TXPI_INVSTROBE_SEL = 1'b0;
parameter TXPI_PPMCLK_SEL = "TXUSRCLK2";
parameter [7:0] TXPI_PPM_CFG = 8'b00000000;
parameter [2:0] TXPI_SYNFREQ_PPM = 3'b000;
parameter [4:0] TXPMARESET_TIME = 5'b00001;
parameter [0:0] TXSYNC_MULTILANE = 1'b0;
parameter [0:0] TXSYNC_OVRD = 1'b0;
parameter [0:0] TXSYNC_SKIP_DA = 1'b0;
parameter integer TX_CLK25_DIV = 7;
parameter [0:0] TX_CLKMUX_EN = 1'b1;
parameter integer TX_DATA_WIDTH = 20;
parameter [5:0] TX_DEEMPH0 = 6'b000000;
parameter [5:0] TX_DEEMPH1 = 6'b000000;
parameter TX_DRIVE_MODE = "DIRECT";
parameter [2:0] TX_EIDLE_ASSERT_DELAY = 3'b110;
parameter [2:0] TX_EIDLE_DEASSERT_DELAY = 3'b100;
parameter TX_LOOPBACK_DRIVE_HIZ = "FALSE";
parameter [0:0] TX_MAINCURSOR_SEL = 1'b0;
parameter [6:0] TX_MARGIN_FULL_0 = 7'b1001110;
parameter [6:0] TX_MARGIN_FULL_1 = 7'b1001001;
parameter [6:0] TX_MARGIN_FULL_2 = 7'b1000101;
parameter [6:0] TX_MARGIN_FULL_3 = 7'b1000010;
parameter [6:0] TX_MARGIN_FULL_4 = 7'b1000000;
parameter [6:0] TX_MARGIN_LOW_0 = 7'b1000110;
parameter [6:0] TX_MARGIN_LOW_1 = 7'b1000100;
parameter [6:0] TX_MARGIN_LOW_2 = 7'b1000010;
parameter [6:0] TX_MARGIN_LOW_3 = 7'b1000000;
parameter [6:0] TX_MARGIN_LOW_4 = 7'b1000000;
parameter [0:0] TX_PREDRIVER_MODE = 1'b0;
parameter [13:0] TX_RXDETECT_CFG = 14'h1832;
parameter [2:0] TX_RXDETECT_REF = 3'b100;
parameter TX_XCLK_SEL = "TXUSR";
parameter [0:0] UCODEER_CLR = 1'b0;
parameter [0:0] USE_PCS_CLK_PHASE_SEL = 1'b0;
parameter IO_LOC_PAIRS = "NONE";
localparam [1:0] CHAN_BOND_SEQ_LEN_BIN = CHAN_BOND_SEQ_LEN - 1;
localparam [1:0] CLK_COR_SEQ_LEN_BIN = CLK_COR_SEQ_LEN - 1;
localparam [4:0] RX_CLK25_DIV_BIN = RX_CLK25_DIV - 1;
localparam [4:0] TX_CLK25_DIV_BIN = TX_CLK25_DIV - 1;
localparam [4:0] RX_SIG_VALID_DLY_BIN = RX_SIG_VALID_DLY - 1;
localparam [2:0] RX_DATA_WIDTH_BIN = RX_DATA_WIDTH == 16 ? 3'b010 :
RX_DATA_WIDTH == 20 ? 3'b011 :
RX_DATA_WIDTH == 32 ? 3'b100 :
/*RX_DATA_WIDTH == 40*/ 3'b101;
localparam [2:0] TX_DATA_WIDTH_BIN = TX_DATA_WIDTH == 16 ? 3'b010 :
TX_DATA_WIDTH == 20 ? 3'b011 :
TX_DATA_WIDTH == 32 ? 3'b100 :
/*TX_DATA_WIDTH == 40*/ 3'b101;
localparam [1:0] RXOUT_DIV_BIN = RXOUT_DIV == 1 ? 2'b00 :
RXOUT_DIV == 2 ? 2'b01 :
RXOUT_DIV == 4 ? 2'b10 :
/*RXOUT_DIV == 8*/ 2'b11;
localparam [1:0] TXOUT_DIV_BIN = TXOUT_DIV == 1 ? 2'b00 :
TXOUT_DIV == 2 ? 2'b01 :
TXOUT_DIV == 4 ? 2'b10 :
/*TXOUT_DIV == 8*/ 2'b11;
parameter _TECHMAP_CONSTMSK_TXUSRCLK_ = 0;
parameter _TECHMAP_CONSTVAL_TXUSRCLK_ = 0;
parameter _TECHMAP_CONSTMSK_TXUSRCLK2_ = 0;
parameter _TECHMAP_CONSTVAL_TXUSRCLK2_ = 0;
parameter _TECHMAP_CONSTMSK_TXPHDLYTSTCLK_ = 0;
parameter _TECHMAP_CONSTVAL_TXPHDLYTSTCLK_ = 0;
parameter _TECHMAP_CONSTMSK_SIGVALIDCLK_ = 0;
parameter _TECHMAP_CONSTVAL_SIGVALIDCLK_ = 0;
parameter _TECHMAP_CONSTMSK_RXUSRCLK_ = 0;
parameter _TECHMAP_CONSTVAL_RXUSRCLK_ = 0;
parameter _TECHMAP_CONSTMSK_RXUSRCLK2_ = 0;
parameter _TECHMAP_CONSTVAL_RXUSRCLK2_ = 0;
parameter _TECHMAP_CONSTVAL_DRPCLK_ = 0;
parameter _TECHMAP_CONSTMSK_DRPCLK_ = 0;
parameter _TECHMAP_CONSTVAL_DMONITORCLK_ = 0;
parameter _TECHMAP_CONSTMSK_DMONITORCLK_ = 0;
parameter _TECHMAP_CONSTVAL_CLKRSVD0_ = 0;
parameter _TECHMAP_CONSTMSK_CLKRSVD0_ = 0;
parameter _TECHMAP_CONSTVAL_CLKRSVD1_ = 0;
parameter _TECHMAP_CONSTMSK_CLKRSVD1_ = 0;
parameter [0:0] IS_TXUSRCLK_INVERTED = 1'b0;
parameter [0:0] IS_TXUSRCLK2_INVERTED = 1'b0;
parameter [0:0] IS_TXPHDLYTSTCLK_INVERTED = 1'b0;
parameter [0:0] IS_SIGVALIDCLK_INVERTED = 1'b0;
parameter [0:0] IS_RXUSRCLK_INVERTED = 1'b0;
parameter [0:0] IS_RXUSRCLK2_INVERTED = 1'b0;
parameter [0:0] IS_DRPCLK_INVERTED = 1'b0;
parameter [0:0] IS_DMONITORCLK_INVERTED = 1'b0;
parameter [0:0] IS_CLKRSVD0_INVERTED = 1'b0;
parameter [0:0] IS_CLKRSVD1_INVERTED = 1'b0;
localparam [0:0] INV_TXUSRCLK = (_TECHMAP_CONSTMSK_TXUSRCLK_ == 1) ? !_TECHMAP_CONSTVAL_TXUSRCLK_ ^ IS_TXUSRCLK_INVERTED :
(_TECHMAP_CONSTVAL_TXUSRCLK_ == 0) ? ~IS_TXUSRCLK_INVERTED : IS_TXUSRCLK_INVERTED;
wire txusrclk = (_TECHMAP_CONSTMSK_TXUSRCLK_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_TXUSRCLK_ == 0) ? 1'b1 : TXUSRCLK;
localparam [0:0] INV_TXUSRCLK2 = (_TECHMAP_CONSTMSK_TXUSRCLK2_ == 1) ? !_TECHMAP_CONSTVAL_TXUSRCLK2_ ^ IS_TXUSRCLK2_INVERTED :
(_TECHMAP_CONSTVAL_TXUSRCLK2_ == 0) ? ~IS_TXUSRCLK2_INVERTED : IS_TXUSRCLK2_INVERTED;
wire txusrclk2 = (_TECHMAP_CONSTMSK_TXUSRCLK2_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_TXUSRCLK2_ == 0) ? 1'b1 : TXUSRCLK2;
localparam [0:0] INV_TXPHDLYTSTCLK = (_TECHMAP_CONSTMSK_TXPHDLYTSTCLK_ == 1) ? !_TECHMAP_CONSTVAL_TXPHDLYTSTCLK_ ^ IS_TXPHDLYTSTCLK_INVERTED :
(_TECHMAP_CONSTVAL_TXPHDLYTSTCLK_ == 0) ? ~IS_TXPHDLYTSTCLK_INVERTED : IS_TXPHDLYTSTCLK_INVERTED;
wire txphdlytstclk = (_TECHMAP_CONSTMSK_TXPHDLYTSTCLK_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_TXPHDLYTSTCLK_ == 0) ? 1'b1 : TXPHDLYTSTCLK;
localparam [0:0] INV_SIGVALIDCLK = (_TECHMAP_CONSTMSK_SIGVALIDCLK_ == 1) ? !_TECHMAP_CONSTVAL_SIGVALIDCLK_ ^ IS_SIGVALIDCLK_INVERTED :
(_TECHMAP_CONSTVAL_SIGVALIDCLK_ == 0) ? ~IS_SIGVALIDCLK_INVERTED : IS_SIGVALIDCLK_INVERTED;
wire sigvalidclk = (_TECHMAP_CONSTMSK_SIGVALIDCLK_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_SIGVALIDCLK_ == 0) ? 1'b1 : SIGVALIDCLK;
localparam [0:0] INV_RXUSRCLK = (_TECHMAP_CONSTMSK_RXUSRCLK_ == 1) ? !_TECHMAP_CONSTVAL_RXUSRCLK_ ^ IS_RXUSRCLK_INVERTED :
(_TECHMAP_CONSTVAL_RXUSRCLK_ == 0) ? ~IS_RXUSRCLK_INVERTED : IS_RXUSRCLK_INVERTED;
wire rxusrclk = (_TECHMAP_CONSTMSK_RXUSRCLK_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_RXUSRCLK_ == 0) ? 1'b1 : RXUSRCLK;
localparam [0:0] INV_RXUSRCLK2 = (_TECHMAP_CONSTMSK_RXUSRCLK2_ == 1) ? !_TECHMAP_CONSTVAL_RXUSRCLK2_ ^ IS_RXUSRCLK2_INVERTED :
(_TECHMAP_CONSTVAL_RXUSRCLK2_ == 0) ? ~IS_RXUSRCLK2_INVERTED : IS_RXUSRCLK2_INVERTED;
wire rxusrclk2 = (_TECHMAP_CONSTMSK_RXUSRCLK2_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_RXUSRCLK2_ == 0) ? 1'b1 : RXUSRCLK2;
localparam [0:0] INV_DRPCLK = (_TECHMAP_CONSTMSK_DRPCLK_ == 1) ? !_TECHMAP_CONSTVAL_DRPCLK_ ^ IS_DRPCLK_INVERTED :
(_TECHMAP_CONSTVAL_DRPCLK_ == 0) ? ~IS_DRPCLK_INVERTED : IS_DRPCLK_INVERTED;
wire drpclk = (_TECHMAP_CONSTMSK_DRPCLK_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_DRPCLK_ == 0) ? 1'b1 : DRPCLK;
localparam [0:0] INV_DMONITORCLK = (_TECHMAP_CONSTMSK_DMONITORCLK_ == 1) ? !_TECHMAP_CONSTVAL_DMONITORCLK_ ^ IS_DMONITORCLK_INVERTED :
(_TECHMAP_CONSTVAL_DMONITORCLK_ == 0) ? ~IS_DMONITORCLK_INVERTED : IS_DMONITORCLK_INVERTED;
wire dmonitorclk = (_TECHMAP_CONSTMSK_DMONITORCLK_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_DMONITORCLK_ == 0) ? 1'b1 : DMONITORCLK;
localparam [0:0] INV_CLKRSVD0 = (_TECHMAP_CONSTMSK_CLKRSVD0_ == 1) ? !_TECHMAP_CONSTVAL_CLKRSVD0_ ^ IS_CLKRSVD0_INVERTED :
(_TECHMAP_CONSTVAL_CLKRSVD0_ == 0) ? ~IS_CLKRSVD0_INVERTED : IS_CLKRSVD0_INVERTED;
wire clkrsvd0 = (_TECHMAP_CONSTMSK_CLKRSVD0_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_CLKRSVD0_ == 0) ? 1'b1 : CLKRSVD0;
localparam [0:0] INV_CLKRSVD1 = (_TECHMAP_CONSTMSK_CLKRSVD1_ == 1) ? !_TECHMAP_CONSTVAL_CLKRSVD1_ ^ IS_CLKRSVD1_INVERTED :
(_TECHMAP_CONSTVAL_CLKRSVD1_ == 0) ? ~IS_CLKRSVD1_INVERTED : IS_CLKRSVD1_INVERTED;
wire clkrsvd1 = (_TECHMAP_CONSTMSK_CLKRSVD1_ == 1) ? 1'b1 :
(_TECHMAP_CONSTVAL_CLKRSVD1_ == 0) ? 1'b1 : CLKRSVD1;
parameter IN_USE = 1'b0;
wire gtprxn, gtprxp;
IPAD_GTP_VPR ibuf_rx_n (.I(GTPRXN), .O(gtprxn));
IPAD_GTP_VPR ibuf_rx_p (.I(GTPRXP), .O(gtprxp));
wire gtptxn, gtptxp;
OPAD_GTP_VPR obuf_tx_n (.I(gtptxn), .O(GTPTXN));
OPAD_GTP_VPR obuf_tx_p (.I(gtptxp), .O(GTPTXP));
GTPE2_CHANNEL_VPR #(
.ACJTAG_DEBUG_MODE (ACJTAG_DEBUG_MODE),
.ACJTAG_MODE (ACJTAG_MODE),
.ACJTAG_RESET (ACJTAG_RESET),
.ADAPT_CFG0 (ADAPT_CFG0),
.ALIGN_COMMA_DOUBLE (ALIGN_COMMA_DOUBLE == "TRUE"),
.ALIGN_COMMA_ENABLE (ALIGN_COMMA_ENABLE),
.ALIGN_COMMA_WORD (ALIGN_COMMA_WORD),
.ALIGN_MCOMMA_DET (ALIGN_MCOMMA_DET == "TRUE"),
.ALIGN_MCOMMA_VALUE (ALIGN_MCOMMA_VALUE),
.ALIGN_PCOMMA_DET (ALIGN_PCOMMA_DET == "TRUE"),
.ALIGN_PCOMMA_VALUE (ALIGN_PCOMMA_VALUE),
.CBCC_DATA_SOURCE_SEL_DECODED (CBCC_DATA_SOURCE_SEL == "DECODED"),
.CFOK_CFG (CFOK_CFG),
.CFOK_CFG2 (CFOK_CFG2),
.CFOK_CFG3 (CFOK_CFG3),
.CFOK_CFG4 (CFOK_CFG4),
.CFOK_CFG5 (CFOK_CFG5),
.CFOK_CFG6 (CFOK_CFG6),
.CHAN_BOND_KEEP_ALIGN (CHAN_BOND_KEEP_ALIGN == "TRUE"),
.CHAN_BOND_MAX_SKEW (CHAN_BOND_MAX_SKEW),
.CHAN_BOND_SEQ_1_1 (CHAN_BOND_SEQ_1_1),
.CHAN_BOND_SEQ_1_2 (CHAN_BOND_SEQ_1_2),
.CHAN_BOND_SEQ_1_3 (CHAN_BOND_SEQ_1_3),
.CHAN_BOND_SEQ_1_4 (CHAN_BOND_SEQ_1_4),
.CHAN_BOND_SEQ_1_ENABLE (CHAN_BOND_SEQ_1_ENABLE),
.CHAN_BOND_SEQ_2_1 (CHAN_BOND_SEQ_2_1),
.CHAN_BOND_SEQ_2_2 (CHAN_BOND_SEQ_2_2),
.CHAN_BOND_SEQ_2_3 (CHAN_BOND_SEQ_2_3),
.CHAN_BOND_SEQ_2_4 (CHAN_BOND_SEQ_2_4),
.CHAN_BOND_SEQ_2_ENABLE (CHAN_BOND_SEQ_2_ENABLE),
.CHAN_BOND_SEQ_2_USE (CHAN_BOND_SEQ_2_USE == "TRUE"),
.CHAN_BOND_SEQ_LEN (CHAN_BOND_SEQ_LEN_BIN),
.CLK_COMMON_SWING (CLK_COMMON_SWING),
.CLK_CORRECT_USE (CLK_CORRECT_USE == "TRUE"),
.CLK_COR_KEEP_IDLE (CLK_COR_KEEP_IDLE == "TRUE"),
.CLK_COR_MAX_LAT (CLK_COR_MAX_LAT),
.CLK_COR_MIN_LAT (CLK_COR_MIN_LAT),
.CLK_COR_PRECEDENCE (CLK_COR_PRECEDENCE == "TRUE"),
.CLK_COR_REPEAT_WAIT (CLK_COR_REPEAT_WAIT),
.CLK_COR_SEQ_1_1 (CLK_COR_SEQ_1_1),
.CLK_COR_SEQ_1_2 (CLK_COR_SEQ_1_2),
.CLK_COR_SEQ_1_3 (CLK_COR_SEQ_1_3),
.CLK_COR_SEQ_1_4 (CLK_COR_SEQ_1_4),
.CLK_COR_SEQ_1_ENABLE (CLK_COR_SEQ_1_ENABLE),
.CLK_COR_SEQ_2_1 (CLK_COR_SEQ_2_1),
.CLK_COR_SEQ_2_2 (CLK_COR_SEQ_2_2),
.CLK_COR_SEQ_2_3 (CLK_COR_SEQ_2_3),
.CLK_COR_SEQ_2_4 (CLK_COR_SEQ_2_4),
.CLK_COR_SEQ_2_ENABLE (CLK_COR_SEQ_2_ENABLE),
.CLK_COR_SEQ_2_USE (CLK_COR_SEQ_2_USE == "TRUE"),
.CLK_COR_SEQ_LEN (CLK_COR_SEQ_LEN_BIN),
.DEC_MCOMMA_DETECT (DEC_MCOMMA_DETECT == "TRUE"),
.DEC_PCOMMA_DETECT (DEC_PCOMMA_DETECT == "TRUE"),
.DEC_VALID_COMMA_ONLY (DEC_VALID_COMMA_ONLY == "TRUE"),
.DMONITOR_CFG (DMONITOR_CFG),
.ES_CLK_PHASE_SEL (ES_CLK_PHASE_SEL),
.ES_CONTROL (ES_CONTROL),
.ES_ERRDET_EN (ES_ERRDET_EN == "TRUE"),
.ES_EYE_SCAN_EN (ES_EYE_SCAN_EN == "TRUE"),
.ES_HORZ_OFFSET (ES_HORZ_OFFSET),
.ES_PMA_CFG (ES_PMA_CFG),
.ES_PRESCALE (ES_PRESCALE),
.ES_QUALIFIER (ES_QUALIFIER),
.ES_QUAL_MASK (ES_QUAL_MASK),
.ES_SDATA_MASK (ES_SDATA_MASK),
.ES_VERT_OFFSET (ES_VERT_OFFSET),
.FTS_DESKEW_SEQ_ENABLE (FTS_DESKEW_SEQ_ENABLE),
.FTS_LANE_DESKEW_CFG (FTS_LANE_DESKEW_CFG),
.FTS_LANE_DESKEW_EN (FTS_LANE_DESKEW_EN == "TRUE"),
.GEARBOX_MODE (GEARBOX_MODE),
.LOOPBACK_CFG (LOOPBACK_CFG),
.OUTREFCLK_SEL_INV (OUTREFCLK_SEL_INV),
.PCS_PCIE_EN (PCS_PCIE_EN == "TRUE"),
.PCS_RSVD_ATTR (PCS_RSVD_ATTR),
.PD_TRANS_TIME_FROM_P2 (PD_TRANS_TIME_FROM_P2),
.PD_TRANS_TIME_NONE_P2 (PD_TRANS_TIME_NONE_P2),
.PD_TRANS_TIME_TO_P2 (PD_TRANS_TIME_TO_P2),
.PMA_LOOPBACK_CFG (PMA_LOOPBACK_CFG),
.PMA_RSV (PMA_RSV),
.PMA_RSV2 (PMA_RSV2),
.PMA_RSV3 (PMA_RSV3),
.PMA_RSV4 (PMA_RSV4),
.PMA_RSV5 (PMA_RSV5),
.PMA_RSV6 (PMA_RSV6),
.PMA_RSV7 (PMA_RSV7),
.RXBUFRESET_TIME (RXBUFRESET_TIME),
.RXBUF_ADDR_MODE_FAST (RXBUF_ADDR_MODE == "FAST"),
.RXBUF_EIDLE_HI_CNT (RXBUF_EIDLE_HI_CNT),
.RXBUF_EIDLE_LO_CNT (RXBUF_EIDLE_LO_CNT),
.RXBUF_EN (RXBUF_EN == "TRUE"),
.RXBUF_RESET_ON_CB_CHANGE (RXBUF_RESET_ON_CB_CHANGE == "TRUE"),
.RXBUF_RESET_ON_COMMAALIGN (RXBUF_RESET_ON_COMMAALIGN == "TRUE"),
.RXBUF_RESET_ON_EIDLE (RXBUF_RESET_ON_EIDLE == "TRUE"),
.RXBUF_RESET_ON_RATE_CHANGE (RXBUF_RESET_ON_RATE_CHANGE == "TRUE"),
.RXBUF_THRESH_OVFLW (RXBUF_THRESH_OVFLW),
.RXBUF_THRESH_OVRD (RXBUF_THRESH_OVRD == "TRUE"),
.RXBUF_THRESH_UNDFLW (RXBUF_THRESH_UNDFLW),
.RXCDRFREQRESET_TIME (RXCDRFREQRESET_TIME),
.RXCDRPHRESET_TIME (RXCDRPHRESET_TIME),
.RXCDR_CFG (RXCDR_CFG),
.RXCDR_FR_RESET_ON_EIDLE (RXCDR_FR_RESET_ON_EIDLE),
.RXCDR_HOLD_DURING_EIDLE (RXCDR_HOLD_DURING_EIDLE),
.RXCDR_LOCK_CFG (RXCDR_LOCK_CFG),
.RXCDR_PH_RESET_ON_EIDLE (RXCDR_PH_RESET_ON_EIDLE),
.RXDLY_CFG (RXDLY_CFG),
.RXDLY_LCFG (RXDLY_LCFG),
.RXDLY_TAP_CFG (RXDLY_TAP_CFG),
.RXGEARBOX_EN (RXGEARBOX_EN == "TRUE"),
.RXISCANRESET_TIME (RXISCANRESET_TIME),
.RXLPMRESET_TIME (RXLPMRESET_TIME),
.RXLPM_BIAS_STARTUP_DISABLE (RXLPM_BIAS_STARTUP_DISABLE),
.RXLPM_CFG (RXLPM_CFG),
.RXLPM_CFG1 (RXLPM_CFG1),
.RXLPM_CM_CFG (RXLPM_CM_CFG),
.RXLPM_GC_CFG (RXLPM_GC_CFG),
.RXLPM_GC_CFG2 (RXLPM_GC_CFG2),
.RXLPM_HF_CFG (RXLPM_HF_CFG),
.RXLPM_HF_CFG2 (RXLPM_HF_CFG2),
.RXLPM_HF_CFG3 (RXLPM_HF_CFG3),
.RXLPM_HOLD_DURING_EIDLE (RXLPM_HOLD_DURING_EIDLE),
.RXLPM_INCM_CFG (RXLPM_INCM_CFG),
.RXLPM_IPCM_CFG (RXLPM_IPCM_CFG),
.RXLPM_LF_CFG (RXLPM_LF_CFG),
.RXLPM_LF_CFG2 (RXLPM_LF_CFG2),
.RXLPM_OSINT_CFG (RXLPM_OSINT_CFG),
.RXOOB_CFG (RXOOB_CFG),
.RXOOB_CLK_CFG_FABRIC (RXOOB_CLK_CFG == "FABRIC"),
.RXOSCALRESET_TIME (RXOSCALRESET_TIME),
.RXOSCALRESET_TIMEOUT (RXOSCALRESET_TIMEOUT),
.RXOUT_DIV (RXOUT_DIV_BIN),
.RXPCSRESET_TIME (RXPCSRESET_TIME),
.RXPHDLY_CFG (RXPHDLY_CFG),
.RXPH_CFG (RXPH_CFG),
.RXPH_MONITOR_SEL (RXPH_MONITOR_SEL),
.RXPI_CFG0 (RXPI_CFG0),
.RXPI_CFG1 (RXPI_CFG1),
.RXPI_CFG2 (RXPI_CFG2),
.RXPMARESET_TIME (RXPMARESET_TIME),
.RXPRBS_ERR_LOOPBACK (RXPRBS_ERR_LOOPBACK),
.RXSLIDE_AUTO_WAIT (RXSLIDE_AUTO_WAIT),
.RXSLIDE_MODE_AUTO (RXSLIDE_MODE == "AUTO"),
.RXSLIDE_MODE_PCS (RXSLIDE_MODE == "PCS"),
.RXSLIDE_MODE_PMA (RXSLIDE_MODE == "PMA"),
.RXSYNC_MULTILANE (RXSYNC_MULTILANE),
.RXSYNC_OVRD (RXSYNC_OVRD),
.RXSYNC_SKIP_DA (RXSYNC_SKIP_DA),
.RX_BIAS_CFG (RX_BIAS_CFG),
.RX_BUFFER_CFG (RX_BUFFER_CFG),
.RX_CLK25_DIV (RX_CLK25_DIV_BIN),
.RX_CLKMUX_EN (RX_CLKMUX_EN),
.RX_CM_SEL (RX_CM_SEL),
.RX_CM_TRIM (RX_CM_TRIM),
.RX_DATA_WIDTH (RX_DATA_WIDTH_BIN),
.RX_DDI_SEL (RX_DDI_SEL),
.RX_DEBUG_CFG (RX_DEBUG_CFG),
.RX_DEFER_RESET_BUF_EN (RX_DEFER_RESET_BUF_EN == "TRUE"),
.RX_DISPERR_SEQ_MATCH (RX_DISPERR_SEQ_MATCH == "TRUE"),
.RX_OS_CFG (RX_OS_CFG),
.RX_SIG_VALID_DLY (RX_SIG_VALID_DLY_BIN),
.RX_XCLK_SEL_RXUSR (RX_XCLK_SEL == "RXUSR"),
.SAS_MAX_COM (SAS_MAX_COM),
.SAS_MIN_COM (SAS_MIN_COM),
.SATA_BURST_SEQ_LEN (SATA_BURST_SEQ_LEN),
.SATA_BURST_VAL (SATA_BURST_VAL),
.SATA_EIDLE_VAL (SATA_EIDLE_VAL),
.SATA_MAX_BURST (SATA_MAX_BURST),
.SATA_MAX_INIT (SATA_MAX_INIT),
.SATA_MAX_WAKE (SATA_MAX_WAKE),
.SATA_MIN_BURST (SATA_MIN_BURST),
.SATA_MIN_INIT (SATA_MIN_INIT),
.SATA_MIN_WAKE (SATA_MIN_WAKE),
.SATA_PLL_CFG_VCO_1500MHZ (SATA_PLL_CFG == "VCO_1500MHZ"),
.SATA_PLL_CFG_VCO_750MHZ (SATA_PLL_CFG == "VCO_750MHZ"),
.SHOW_REALIGN_COMMA (SHOW_REALIGN_COMMA == "TRUE"),
.SIM_RECEIVER_DETECT_PASS (SIM_RECEIVER_DETECT_PASS),
.SIM_RESET_SPEEDUP (SIM_RESET_SPEEDUP),
.SIM_TX_EIDLE_DRIVE_LEVEL (SIM_TX_EIDLE_DRIVE_LEVEL),
.SIM_VERSION (SIM_VERSION),
.TERM_RCAL_CFG (TERM_RCAL_CFG),
.TERM_RCAL_OVRD (TERM_RCAL_OVRD),
.TRANS_TIME_RATE (TRANS_TIME_RATE),
.TST_RSV (TST_RSV),
.TXBUF_EN (TXBUF_EN == "TRUE"),
.TXBUF_RESET_ON_RATE_CHANGE (TXBUF_RESET_ON_RATE_CHANGE == "TRUE"),
.TXDLY_CFG (TXDLY_CFG),
.TXDLY_LCFG (TXDLY_LCFG),
.TXDLY_TAP_CFG (TXDLY_TAP_CFG),
.TXGEARBOX_EN (TXGEARBOX_EN == "TRUE"),
.TXOOB_CFG (TXOOB_CFG),
.TXOUT_DIV (TXOUT_DIV_BIN),
.TXPCSRESET_TIME (TXPCSRESET_TIME),
.TXPHDLY_CFG (TXPHDLY_CFG),
.TXPH_CFG (TXPH_CFG),
.TXPH_MONITOR_SEL (TXPH_MONITOR_SEL),
.TXPI_CFG0 (TXPI_CFG0),
.TXPI_CFG1 (TXPI_CFG1),
.TXPI_CFG2 (TXPI_CFG2),
.TXPI_CFG3 (TXPI_CFG3),
.TXPI_CFG4 (TXPI_CFG4),
.TXPI_CFG5 (TXPI_CFG5),
.TXPI_GREY_SEL (TXPI_GREY_SEL),
.TXPI_INVSTROBE_SEL (TXPI_INVSTROBE_SEL),
.TXPI_PPMCLK_SEL_TXUSRCLK2 (TXPI_PPMCLK_SEL == "TXUSRCLK2"),
.TXPI_PPM_CFG (TXPI_PPM_CFG),
.TXPI_SYNFREQ_PPM (TXPI_SYNFREQ_PPM),
.TXPMARESET_TIME (TXPMARESET_TIME),
.TXSYNC_MULTILANE (TXSYNC_MULTILANE),
.TXSYNC_OVRD (TXSYNC_OVRD),
.TXSYNC_SKIP_DA (TXSYNC_SKIP_DA),
.TX_CLK25_DIV (TX_CLK25_DIV_BIN),
.TX_CLKMUX_EN (TX_CLKMUX_EN),
.TX_DATA_WIDTH (TX_DATA_WIDTH_BIN),
.TX_DEEMPH0 (TX_DEEMPH0),
.TX_DEEMPH1 (TX_DEEMPH1),
.TX_DRIVE_MODE_PIPE (TX_DRIVE_MODE == "PIPE"),
.TX_EIDLE_ASSERT_DELAY (TX_EIDLE_ASSERT_DELAY),
.TX_EIDLE_DEASSERT_DELAY (TX_EIDLE_DEASSERT_DELAY),
.TX_LOOPBACK_DRIVE_HIZ (TX_LOOPBACK_DRIVE_HIZ == "TRUE"),
.TX_MAINCURSOR_SEL (TX_MAINCURSOR_SEL),
.TX_MARGIN_FULL_0 (TX_MARGIN_FULL_0),
.TX_MARGIN_FULL_1 (TX_MARGIN_FULL_1),
.TX_MARGIN_FULL_2 (TX_MARGIN_FULL_2),
.TX_MARGIN_FULL_3 (TX_MARGIN_FULL_3),
.TX_MARGIN_FULL_4 (TX_MARGIN_FULL_4),
.TX_MARGIN_LOW_0 (TX_MARGIN_LOW_0),
.TX_MARGIN_LOW_1 (TX_MARGIN_LOW_1),
.TX_MARGIN_LOW_2 (TX_MARGIN_LOW_2),
.TX_MARGIN_LOW_3 (TX_MARGIN_LOW_3),
.TX_MARGIN_LOW_4 (TX_MARGIN_LOW_4),
.TX_PREDRIVER_MODE (TX_PREDRIVER_MODE),
.TX_RXDETECT_CFG (TX_RXDETECT_CFG),
.TX_RXDETECT_REF (TX_RXDETECT_REF),
.TX_XCLK_SEL_TXUSR (TX_XCLK_SEL == "TXUSR"),
.UCODEER_CLR (UCODEER_CLR),
.USE_PCS_CLK_PHASE_SEL (USE_PCS_CLK_PHASE_SEL),
.INV_TXUSRCLK (INV_TXUSRCLK),
.INV_TXUSRCLK2 (INV_TXUSRCLK2),
.INV_TXPHDLYTSTCLK (INV_TXPHDLYTSTCLK),
.INV_SIGVALIDCLK (INV_SIGVALIDCLK),
.INV_RXUSRCLK (INV_RXUSRCLK),
.INV_RXUSRCLK2 (INV_RXUSRCLK2),
.INV_DRPCLK (INV_DRPCLK),
.INV_DMONITORCLK (INV_DMONITORCLK),
.INV_CLKRSVD0 (INV_CLKRSVD0),
.INV_CLKRSVD1 (INV_CLKRSVD1),
.IO_LOC_PAIRS (IO_LOC_PAIRS)
) gtp_channel (
.GTPRXN (gtprxn),
.GTPRXP (gtprxp),
.GTPTXN (gtptxn),
.GTPTXP (gtptxp),
.DRPRDY (DRPRDY),
.EYESCANDATAERROR (EYESCANDATAERROR),
.PHYSTATUS (PHYSTATUS),
.PMARSVDOUT0 (PMARSVDOUT0),
.PMARSVDOUT1 (PMARSVDOUT1),
.RXBYTEISALIGNED (RXBYTEISALIGNED),
.RXBYTEREALIGN (RXBYTEREALIGN),
.RXCDRLOCK (RXCDRLOCK),
.RXCHANBONDSEQ (RXCHANBONDSEQ),
.RXCHANISALIGNED (RXCHANISALIGNED),
.RXCHANREALIGN (RXCHANREALIGN),
.RXCOMINITDET (RXCOMINITDET),
.RXCOMMADET (RXCOMMADET),
.RXCOMSASDET (RXCOMSASDET),
.RXCOMWAKEDET (RXCOMWAKEDET),
.RXDLYSRESETDONE (RXDLYSRESETDONE),
.RXELECIDLE (RXELECIDLE),
.RXHEADERVALID (RXHEADERVALID),
.RXOSINTDONE (RXOSINTDONE),
.RXOSINTSTARTED (RXOSINTSTARTED),
.RXOSINTSTROBEDONE (RXOSINTSTROBEDONE),
.RXOSINTSTROBESTARTED (RXOSINTSTROBESTARTED),
.RXOUTCLK (RXOUTCLK),
.RXOUTCLKFABRIC (RXOUTCLKFABRIC),
.RXOUTCLKPCS (RXOUTCLKPCS),
.RXPHALIGNDONE (RXPHALIGNDONE),
.RXPMARESETDONE (RXPMARESETDONE),
.RXPRBSERR (RXPRBSERR),
.RXRATEDONE (RXRATEDONE),
.RXRESETDONE (RXRESETDONE),
.RXSYNCDONE (RXSYNCDONE),
.RXSYNCOUT (RXSYNCOUT),
.RXVALID (RXVALID),
.TXCOMFINISH (TXCOMFINISH),
.TXDLYSRESETDONE (TXDLYSRESETDONE),
.TXGEARBOXREADY (TXGEARBOXREADY),
.TXOUTCLK (TXOUTCLK),
.TXOUTCLKFABRIC (TXOUTCLKFABRIC),
.TXOUTCLKPCS (TXOUTCLKPCS),
.TXPHALIGNDONE (TXPHALIGNDONE),
.TXPHINITDONE (TXPHINITDONE),
.TXPMARESETDONE (TXPMARESETDONE),
.TXRATEDONE (TXRATEDONE),
.TXRESETDONE (TXRESETDONE),
.TXSYNCDONE (TXSYNCDONE),
.TXSYNCOUT (TXSYNCOUT),
.DMONITOROUT (DMONITOROUT),
.DRPDO (DRPDO),
.PCSRSVDOUT (PCSRSVDOUT),
.RXCLKCORCNT (RXCLKCORCNT),
.RXDATAVALID (RXDATAVALID),
.RXSTARTOFSEQ (RXSTARTOFSEQ),
.TXBUFSTATUS (TXBUFSTATUS),
.RXBUFSTATUS (RXBUFSTATUS),
.RXHEADER (RXHEADER),
.RXSTATUS (RXSTATUS),
.RXDATA (RXDATA),
.RXCHARISCOMMA (RXCHARISCOMMA),
.RXCHARISK (RXCHARISK),
.RXCHBONDO (RXCHBONDO),
.RXDISPERR (RXDISPERR),
.RXNOTINTABLE (RXNOTINTABLE),
.RXPHMONITOR (RXPHMONITOR),
.RXPHSLIPMONITOR (RXPHSLIPMONITOR),
.CFGRESET (CFGRESET),
.CLKRSVD0 (clkrsvd0),
.CLKRSVD1 (clkrsvd1),
.DMONFIFORESET (DMONFIFORESET),
.DMONITORCLK (dmonitorclk),
.DRPCLK (drpclk),
.DRPEN (DRPEN),
.DRPWE (DRPWE),
.EYESCANMODE (EYESCANMODE),
.EYESCANRESET (EYESCANRESET),
.EYESCANTRIGGER (EYESCANTRIGGER),
.GTRESETSEL (GTRESETSEL),
.GTRXRESET (GTRXRESET),
.GTTXRESET (GTTXRESET),
.PMARSVDIN0 (PMARSVDIN0),
.PMARSVDIN1 (PMARSVDIN1),
.PMARSVDIN2 (PMARSVDIN2),
.PMARSVDIN3 (PMARSVDIN3),
.PMARSVDIN4 (PMARSVDIN4),
.RESETOVRD (RESETOVRD),
.RX8B10BEN (RX8B10BEN),
.RXBUFRESET (RXBUFRESET),
.RXCDRFREQRESET (RXCDRFREQRESET),
.RXCDRHOLD (RXCDRHOLD),
.RXCDROVRDEN (RXCDROVRDEN),
.RXCDRRESET (RXCDRRESET),
.RXCDRRESETRSV (RXCDRRESETRSV),
.RXCHBONDEN (RXCHBONDEN),
.RXCHBONDMASTER (RXCHBONDMASTER),
.RXCHBONDSLAVE (RXCHBONDSLAVE),
.RXCOMMADETEN (RXCOMMADETEN),
.RXDDIEN (RXDDIEN),
.RXDFEXYDEN (RXDFEXYDEN),
.RXDLYBYPASS (RXDLYBYPASS),
.RXDLYEN (RXDLYEN),
.RXDLYOVRDEN (RXDLYOVRDEN),
.RXDLYSRESET (RXDLYSRESET),
.RXGEARBOXSLIP (RXGEARBOXSLIP),
.RXLPMHFHOLD (RXLPMHFHOLD),
.RXLPMHFOVRDEN (RXLPMHFOVRDEN),
.RXLPMLFHOLD (RXLPMLFHOLD),
.RXLPMLFOVRDEN (RXLPMLFOVRDEN),
.RXLPMOSINTNTRLEN (RXLPMOSINTNTRLEN),
.RXLPMRESET (RXLPMRESET),
.RXMCOMMAALIGNEN (RXMCOMMAALIGNEN),
.RXOOBRESET (RXOOBRESET),
.RXOSCALRESET (RXOSCALRESET),
.RXOSHOLD (RXOSHOLD),
.RXOSINTEN (RXOSINTEN),
.RXOSINTHOLD (RXOSINTHOLD),
.RXOSINTNTRLEN (RXOSINTNTRLEN),
.RXOSINTOVRDEN (RXOSINTOVRDEN),
.RXOSINTPD (RXOSINTPD),
.RXOSINTSTROBE (RXOSINTSTROBE),
.RXOSINTTESTOVRDEN (RXOSINTTESTOVRDEN),
.RXOSOVRDEN (RXOSOVRDEN),
.RXPCOMMAALIGNEN (RXPCOMMAALIGNEN),
.RXPCSRESET (RXPCSRESET),
.RXPHALIGN (RXPHALIGN),
.RXPHALIGNEN (RXPHALIGNEN),
.RXPHDLYPD (RXPHDLYPD),
.RXPHDLYRESET (RXPHDLYRESET),
.RXPHOVRDEN (RXPHOVRDEN),
.RXPMARESET (RXPMARESET),
.RXPOLARITY (RXPOLARITY),
.RXPRBSCNTRESET (RXPRBSCNTRESET),
.RXRATEMODE (RXRATEMODE),
.RXSLIDE (RXSLIDE),
.RXSYNCALLIN (RXSYNCALLIN),
.RXSYNCIN (RXSYNCIN),
.RXSYNCMODE (RXSYNCMODE),
.RXUSERRDY (RXUSERRDY),
.RXUSRCLK2 (rxusrclk2),
.RXUSRCLK (rxusrclk),
.SETERRSTATUS (SETERRSTATUS),
.SIGVALIDCLK (sigvalidclk),
.TX8B10BEN (TX8B10BEN),
.TXCOMINIT (TXCOMINIT),
.TXCOMSAS (TXCOMSAS),
.TXCOMWAKE (TXCOMWAKE),
.TXDEEMPH (TXDEEMPH),
.TXDETECTRX (TXDETECTRX),
.TXDIFFPD (TXDIFFPD),
.TXDLYBYPASS (TXDLYBYPASS),
.TXDLYEN (TXDLYEN),
.TXDLYHOLD (TXDLYHOLD),
.TXDLYOVRDEN (TXDLYOVRDEN),
.TXDLYSRESET (TXDLYSRESET),
.TXDLYUPDOWN (TXDLYUPDOWN),
.TXELECIDLE (TXELECIDLE),
.TXINHIBIT (TXINHIBIT),
.TXPCSRESET (TXPCSRESET),
.TXPDELECIDLEMODE (TXPDELECIDLEMODE),
.TXPHALIGN (TXPHALIGN),
.TXPHALIGNEN (TXPHALIGNEN),
.TXPHDLYPD (TXPHDLYPD),
.TXPHDLYRESET (TXPHDLYRESET),
.TXPHDLYTSTCLK (txphdlytstclk),
.TXPHINIT (TXPHINIT),
.TXPHOVRDEN (TXPHOVRDEN),
.TXPIPPMEN (TXPIPPMEN),
.TXPIPPMOVRDEN (TXPIPPMOVRDEN),
.TXPIPPMPD (TXPIPPMPD),
.TXPIPPMSEL (TXPIPPMSEL),
.TXPISOPD (TXPISOPD),
.TXPMARESET (TXPMARESET),
.TXPOLARITY (TXPOLARITY),
.TXPOSTCURSORINV (TXPOSTCURSORINV),
.TXPRBSFORCEERR (TXPRBSFORCEERR),
.TXPRECURSORINV (TXPRECURSORINV),
.TXRATEMODE (TXRATEMODE),
.TXSTARTSEQ (TXSTARTSEQ),
.TXSWING (TXSWING),
.TXSYNCALLIN (TXSYNCALLIN),
.TXSYNCIN (TXSYNCIN),
.TXSYNCMODE (TXSYNCMODE),
.TXUSERRDY (TXUSERRDY),
.TXUSRCLK2 (txusrclk2),
.TXUSRCLK (txusrclk),
.RXADAPTSELTEST (RXADAPTSELTEST),
.DRPDI (DRPDI),
.GTRSVD (GTRSVD),
.PCSRSVDIN (PCSRSVDIN),
.TSTIN (TSTIN),
.RXELECIDLEMODE (RXELECIDLEMODE),
.RXPD (RXPD),
.RXSYSCLKSEL (RXSYSCLKSEL),
.TXPD (TXPD),
.TXSYSCLKSEL (TXSYSCLKSEL),
.LOOPBACK (LOOPBACK),
.RXCHBONDLEVEL (RXCHBONDLEVEL),
.RXOUTCLKSEL (RXOUTCLKSEL),
.RXPRBSSEL (RXPRBSSEL),
.RXRATE (RXRATE),
.TXBUFDIFFCTRL (TXBUFDIFFCTRL),
.TXHEADER (TXHEADER),
.TXMARGIN (TXMARGIN),
.TXOUTCLKSEL (TXOUTCLKSEL),
.TXPRBSSEL (TXPRBSSEL),
.TXRATE (TXRATE),
.TXDATA (TXDATA),
.RXCHBONDI (RXCHBONDI),
.RXOSINTCFG (RXOSINTCFG),
.RXOSINTID0 (RXOSINTID0),
.TX8B10BBYPASS (TX8B10BBYPASS),
.TXCHARDISPMODE (TXCHARDISPMODE),
.TXCHARDISPVAL (TXCHARDISPVAL),
.TXCHARISK (TXCHARISK),
.TXDIFFCTRL (TXDIFFCTRL),
.TXPIPPMSTEPSIZE (TXPIPPMSTEPSIZE),
.TXPOSTCURSOR (TXPOSTCURSOR),
.TXPRECURSOR (TXPRECURSOR),
.TXMAINCURSOR (TXMAINCURSOR),
.TXSEQUENCE (TXSEQUENCE),
.DRPADDR (DRPADDR)
);
endmodule
module PCIE_2_1 (
output CFGAERECRCCHECKEN,
output CFGAERECRCGENEN,
input [4:0] CFGAERINTERRUPTMSGNUM,
output CFGAERROOTERRCORRERRRECEIVED,
output CFGAERROOTERRCORRERRREPORTINGEN,
output CFGAERROOTERRFATALERRRECEIVED,
output CFGAERROOTERRFATALERRREPORTINGEN,
output CFGAERROOTERRNONFATALERRRECEIVED,
output CFGAERROOTERRNONFATALERRREPORTINGEN,
output CFGBRIDGESERREN,
output CFGCOMMANDBUSMASTERENABLE,
output CFGCOMMANDINTERRUPTDISABLE,
output CFGCOMMANDIOENABLE,
output CFGCOMMANDMEMENABLE,
output CFGCOMMANDSERREN,
output CFGDEVCONTROL2ARIFORWARDEN,
output CFGDEVCONTROL2ATOMICEGRESSBLOCK,
output CFGDEVCONTROL2ATOMICREQUESTEREN,
output CFGDEVCONTROL2CPLTIMEOUTDIS,
output [3:0] CFGDEVCONTROL2CPLTIMEOUTVAL,
output CFGDEVCONTROL2IDOCPLEN,
output CFGDEVCONTROL2IDOREQEN,
output CFGDEVCONTROL2LTREN,
output CFGDEVCONTROL2TLPPREFIXBLOCK,
output CFGDEVCONTROLAUXPOWEREN,
output CFGDEVCONTROLCORRERRREPORTINGEN,
output CFGDEVCONTROLENABLERO,
output CFGDEVCONTROLEXTTAGEN,
output CFGDEVCONTROLFATALERRREPORTINGEN,
output [2:0] CFGDEVCONTROLMAXPAYLOAD,
output [2:0] CFGDEVCONTROLMAXREADREQ,
output CFGDEVCONTROLNONFATALREPORTINGEN,
output CFGDEVCONTROLNOSNOOPEN,
output CFGDEVCONTROLPHANTOMEN,
output CFGDEVCONTROLURERRREPORTINGEN,
input [15:0] CFGDEVID,
output CFGDEVSTATUSCORRERRDETECTED,
output CFGDEVSTATUSFATALERRDETECTED,
output CFGDEVSTATUSNONFATALERRDETECTED,
output CFGDEVSTATUSURDETECTED,
input [7:0] CFGDSBUSNUMBER,
input [4:0] CFGDSDEVICENUMBER,
input [2:0] CFGDSFUNCTIONNUMBER,
input [63:0] CFGDSN,
input CFGERRACSN,
input [127:0] CFGERRAERHEADERLOG,
output CFGERRAERHEADERLOGSETN,
input CFGERRATOMICEGRESSBLOCKEDN,
input CFGERRCORN,
input CFGERRCPLABORTN,
output CFGERRCPLRDYN,
input CFGERRCPLTIMEOUTN,
input CFGERRCPLUNEXPECTN,
input CFGERRECRCN,
input CFGERRINTERNALCORN,
input CFGERRINTERNALUNCORN,
input CFGERRLOCKEDN,
input CFGERRMALFORMEDN,
input CFGERRMCBLOCKEDN,
input CFGERRNORECOVERYN,
input CFGERRPOISONEDN,
input CFGERRPOSTEDN,
input [47:0] CFGERRTLPCPLHEADER,
input CFGERRURN,
input CFGFORCECOMMONCLOCKOFF,
input CFGFORCEEXTENDEDSYNCON,
input [2:0] CFGFORCEMPS,
input CFGINTERRUPTASSERTN,
input [7:0] CFGINTERRUPTDI,
output [7:0] CFGINTERRUPTDO,
output [2:0] CFGINTERRUPTMMENABLE,
output CFGINTERRUPTMSIENABLE,
output CFGINTERRUPTMSIXENABLE,
output CFGINTERRUPTMSIXFM,
input CFGINTERRUPTN,
output CFGINTERRUPTRDYN,
input CFGINTERRUPTSTATN,
output [1:0] CFGLINKCONTROLASPMCONTROL,
output CFGLINKCONTROLAUTOBANDWIDTHINTEN,
output CFGLINKCONTROLBANDWIDTHINTEN,
output CFGLINKCONTROLCLOCKPMEN,
output CFGLINKCONTROLCOMMONCLOCK,
output CFGLINKCONTROLEXTENDEDSYNC,
output CFGLINKCONTROLHWAUTOWIDTHDIS,
output CFGLINKCONTROLLINKDISABLE,
output CFGLINKCONTROLRCB,
output CFGLINKCONTROLRETRAINLINK,
output CFGLINKSTATUSAUTOBANDWIDTHSTATUS,
output CFGLINKSTATUSBANDWIDTHSTATUS,
output [1:0] CFGLINKSTATUSCURRENTSPEED,
output CFGLINKSTATUSDLLACTIVE,
output CFGLINKSTATUSLINKTRAINING,
output [3:0] CFGLINKSTATUSNEGOTIATEDWIDTH,
input [3:0] CFGMGMTBYTEENN,
input [31:0] CFGMGMTDI,
output [31:0] CFGMGMTDO,
input [9:0] CFGMGMTDWADDR,
input CFGMGMTRDENN,
output CFGMGMTRDWRDONEN,
input CFGMGMTWRENN,
input CFGMGMTWRREADONLYN,
input CFGMGMTWRRW1CASRWN,
output [15:0] CFGMSGDATA,
output CFGMSGRECEIVED,
output CFGMSGRECEIVEDASSERTINTA,
output CFGMSGRECEIVEDASSERTINTB,
output CFGMSGRECEIVEDASSERTINTC,
output CFGMSGRECEIVEDASSERTINTD,
output CFGMSGRECEIVEDDEASSERTINTA,
output CFGMSGRECEIVEDDEASSERTINTB,
output CFGMSGRECEIVEDDEASSERTINTC,
output CFGMSGRECEIVEDDEASSERTINTD,
output CFGMSGRECEIVEDERRCOR,
output CFGMSGRECEIVEDERRFATAL,
output CFGMSGRECEIVEDERRNONFATAL,
output CFGMSGRECEIVEDPMASNAK,
output CFGMSGRECEIVEDPMETO,
output CFGMSGRECEIVEDPMETOACK,
output CFGMSGRECEIVEDPMPME,
output CFGMSGRECEIVEDSETSLOTPOWERLIMIT,
output CFGMSGRECEIVEDUNLOCK,
input [4:0] CFGPCIECAPINTERRUPTMSGNUM,
output [2:0] CFGPCIELINKSTATE,
output CFGPMCSRPMEEN,
output CFGPMCSRPMESTATUS,
output [1:0] CFGPMCSRPOWERSTATE,
input [1:0] CFGPMFORCESTATE,
input CFGPMFORCESTATEENN,
input CFGPMHALTASPML0SN,
input CFGPMHALTASPML1N,
output CFGPMRCVASREQL1N,
output CFGPMRCVENTERL1N,
output CFGPMRCVENTERL23N,
output CFGPMRCVREQACKN,
input CFGPMSENDPMETON,
input CFGPMTURNOFFOKN,
input CFGPMWAKEN,
input [7:0] CFGPORTNUMBER,
input [7:0] CFGREVID,
output CFGROOTCONTROLPMEINTEN,
output CFGROOTCONTROLSYSERRCORRERREN,
output CFGROOTCONTROLSYSERRFATALERREN,
output CFGROOTCONTROLSYSERRNONFATALERREN,
output CFGSLOTCONTROLELECTROMECHILCTLPULSE,
input [15:0] CFGSUBSYSID,
input [15:0] CFGSUBSYSVENDID,
output CFGTRANSACTION,
output [6:0] CFGTRANSACTIONADDR,
output CFGTRANSACTIONTYPE,
input CFGTRNPENDINGN,
output [6:0] CFGVCTCVCMAP,
input [15:0] CFGVENDID,
input CMRSTN,
input CMSTICKYRSTN,
input [1:0] DBGMODE,
output DBGSCLRA,
output DBGSCLRB,
output DBGSCLRC,
output DBGSCLRD,
output DBGSCLRE,
output DBGSCLRF,
output DBGSCLRG,
output DBGSCLRH,
output DBGSCLRI,
output DBGSCLRJ,
output DBGSCLRK,
input DBGSUBMODE,
output [63:0] DBGVECA,
output [63:0] DBGVECB,
output [11:0] DBGVECC,
input DLRSTN,
input [8:0] DRPADDR,
input DRPCLK,
input [15:0] DRPDI,
output [15:0] DRPDO,
input DRPEN,
output DRPRDY,
input DRPWE,
input FUNCLVLRSTN,
output LL2BADDLLPERR,
output LL2BADTLPERR,
output [4:0] LL2LINKSTATUS,
output LL2PROTOCOLERR,
output LL2RECEIVERERR,
output LL2REPLAYROERR,
output LL2REPLAYTOERR,
input LL2SENDASREQL1,
input LL2SENDENTERL1,
input LL2SENDENTERL23,
input LL2SENDPMACK,
input LL2SUSPENDNOW,
output LL2SUSPENDOK,
output LL2TFCINIT1SEQ,
output LL2TFCINIT2SEQ,
input LL2TLPRCV,
output LL2TXIDLE,
output LNKCLKEN,
output [12:0] MIMRXRADDR,
input [67:0] MIMRXRDATA,
output MIMRXREN,
output [12:0] MIMRXWADDR,
output [67:0] MIMRXWDATA,
output MIMRXWEN,
output [12:0] MIMTXRADDR,
input [68:0] MIMTXRDATA,
output MIMTXREN,
output [12:0] MIMTXWADDR,
output [68:0] MIMTXWDATA,
output MIMTXWEN,
input PIPECLK,
input PIPERX0CHANISALIGNED,
input [1:0] PIPERX0CHARISK,
input [15:0] PIPERX0DATA,
input PIPERX0ELECIDLE,
input PIPERX0PHYSTATUS,
output PIPERX0POLARITY,
input [2:0] PIPERX0STATUS,
input PIPERX0VALID,
input PIPERX1CHANISALIGNED,
input [1:0] PIPERX1CHARISK,
input [15:0] PIPERX1DATA,
input PIPERX1ELECIDLE,
input PIPERX1PHYSTATUS,
output PIPERX1POLARITY,
input [2:0] PIPERX1STATUS,
input PIPERX1VALID,
input PIPERX2CHANISALIGNED,
input [1:0] PIPERX2CHARISK,
input [15:0] PIPERX2DATA,
input PIPERX2ELECIDLE,
input PIPERX2PHYSTATUS,
output PIPERX2POLARITY,
input [2:0] PIPERX2STATUS,
input PIPERX2VALID,
input PIPERX3CHANISALIGNED,
input [1:0] PIPERX3CHARISK,
input [15:0] PIPERX3DATA,
input PIPERX3ELECIDLE,
input PIPERX3PHYSTATUS,
output PIPERX3POLARITY,
input [2:0] PIPERX3STATUS,
input PIPERX3VALID,
input PIPERX4CHANISALIGNED,
input [1:0] PIPERX4CHARISK,
input [15:0] PIPERX4DATA,
input PIPERX4ELECIDLE,
input PIPERX4PHYSTATUS,
output PIPERX4POLARITY,
input [2:0] PIPERX4STATUS,
input PIPERX4VALID,
input PIPERX5CHANISALIGNED,
input [1:0] PIPERX5CHARISK,
input [15:0] PIPERX5DATA,
input PIPERX5ELECIDLE,
input PIPERX5PHYSTATUS,
output PIPERX5POLARITY,
input [2:0] PIPERX5STATUS,
input PIPERX5VALID,
input PIPERX6CHANISALIGNED,
input [1:0] PIPERX6CHARISK,
input [15:0] PIPERX6DATA,
input PIPERX6ELECIDLE,
input PIPERX6PHYSTATUS,
output PIPERX6POLARITY,
input [2:0] PIPERX6STATUS,
input PIPERX6VALID,
input PIPERX7CHANISALIGNED,
input [1:0] PIPERX7CHARISK,
input [15:0] PIPERX7DATA,
input PIPERX7ELECIDLE,
input PIPERX7PHYSTATUS,
output PIPERX7POLARITY,
input [2:0] PIPERX7STATUS,
input PIPERX7VALID,
output [1:0] PIPETX0CHARISK,
output PIPETX0COMPLIANCE,
output [15:0] PIPETX0DATA,
output PIPETX0ELECIDLE,
output [1:0] PIPETX0POWERDOWN,
output [1:0] PIPETX1CHARISK,
output PIPETX1COMPLIANCE,
output [15:0] PIPETX1DATA,
output PIPETX1ELECIDLE,
output [1:0] PIPETX1POWERDOWN,
output [1:0] PIPETX2CHARISK,
output PIPETX2COMPLIANCE,
output [15:0] PIPETX2DATA,
output PIPETX2ELECIDLE,
output [1:0] PIPETX2POWERDOWN,
output [1:0] PIPETX3CHARISK,
output PIPETX3COMPLIANCE,
output [15:0] PIPETX3DATA,
output PIPETX3ELECIDLE,
output [1:0] PIPETX3POWERDOWN,
output [1:0] PIPETX4CHARISK,
output PIPETX4COMPLIANCE,
output [15:0] PIPETX4DATA,
output PIPETX4ELECIDLE,
output [1:0] PIPETX4POWERDOWN,
output [1:0] PIPETX5CHARISK,
output PIPETX5COMPLIANCE,
output [15:0] PIPETX5DATA,
output PIPETX5ELECIDLE,
output [1:0] PIPETX5POWERDOWN,
output [1:0] PIPETX6CHARISK,
output PIPETX6COMPLIANCE,
output [15:0] PIPETX6DATA,
output PIPETX6ELECIDLE,
output [1:0] PIPETX6POWERDOWN,
output [1:0] PIPETX7CHARISK,
output PIPETX7COMPLIANCE,
output [15:0] PIPETX7DATA,
output PIPETX7ELECIDLE,
output [1:0] PIPETX7POWERDOWN,
output PIPETXDEEMPH,
output [2:0] PIPETXMARGIN,
output PIPETXRATE,
output PIPETXRCVRDET,
output PIPETXRESET,
input [4:0] PL2DIRECTEDLSTATE,
output PL2L0REQ,
output PL2LINKUP,
output PL2RECEIVERERR,
output PL2RECOVERY,
output PL2RXELECIDLE,
output [1:0] PL2RXPMSTATE,
output PL2SUSPENDOK,
input [2:0] PLDBGMODE,
output [11:0] PLDBGVEC,
output PLDIRECTEDCHANGEDONE,
input PLDIRECTEDLINKAUTON,
input [1:0] PLDIRECTEDLINKCHANGE,
input PLDIRECTEDLINKSPEED,
input [1:0] PLDIRECTEDLINKWIDTH,
input [5:0] PLDIRECTEDLTSSMNEW,
input PLDIRECTEDLTSSMNEWVLD,
input PLDIRECTEDLTSSMSTALL,
input PLDOWNSTREAMDEEMPHSOURCE,
output [2:0] PLINITIALLINKWIDTH,
output [1:0] PLLANEREVERSALMODE,
output PLLINKGEN2CAP,
output PLLINKPARTNERGEN2SUPPORTED,
output PLLINKUPCFGCAP,
output [5:0] PLLTSSMSTATE,
output PLPHYLNKUPN,
output PLRECEIVEDHOTRST,
input PLRSTN,
output [1:0] PLRXPMSTATE,
output PLSELLNKRATE,
output [1:0] PLSELLNKWIDTH,
input PLTRANSMITHOTRST,
output [2:0] PLTXPMSTATE,
input PLUPSTREAMPREFERDEEMPH,
output RECEIVEDFUNCLVLRSTN,
input SYSRSTN,
input TL2ASPMSUSPENDCREDITCHECK,
output TL2ASPMSUSPENDCREDITCHECKOK,
output TL2ASPMSUSPENDREQ,
output TL2ERRFCPE,
output [63:0] TL2ERRHDR,
output TL2ERRMALFORMED,
output TL2ERRRXOVERFLOW,
output TL2PPMSUSPENDOK,
input TL2PPMSUSPENDREQ,
input TLRSTN,
output [11:0] TRNFCCPLD,
output [7:0] TRNFCCPLH,
output [11:0] TRNFCNPD,
output [7:0] TRNFCNPH,
output [11:0] TRNFCPD,
output [7:0] TRNFCPH,
input [2:0] TRNFCSEL,
output TRNLNKUP,
output [7:0] TRNRBARHIT,
output [127:0] TRNRD,
output [63:0] TRNRDLLPDATA,
output [1:0] TRNRDLLPSRCRDY,
input TRNRDSTRDY,
output TRNRECRCERR,
output TRNREOF,
output TRNRERRFWD,
input TRNRFCPRET,
input TRNRNPOK,
input TRNRNPREQ,
output [1:0] TRNRREM,
output TRNRSOF,
output TRNRSRCDSC,
output TRNRSRCRDY,
output [5:0] TRNTBUFAV,
input TRNTCFGGNT,
output TRNTCFGREQ,
input [127:0] TRNTD,
input [31:0] TRNTDLLPDATA,
output TRNTDLLPDSTRDY,
input TRNTDLLPSRCRDY,
output [3:0] TRNTDSTRDY,
input TRNTECRCGEN,
input TRNTEOF,
output TRNTERRDROP,
input TRNTERRFWD,
input [1:0] TRNTREM,
input TRNTSOF,
input TRNTSRCDSC,
input TRNTSRCRDY,
input TRNTSTR,
input USERCLK,
input USERCLK2,
output USERRSTN
);
parameter [11:0] AER_BASE_PTR = 12'd0;
parameter AER_CAP_ECRC_CHECK_CAPABLE = "FALSE";
parameter AER_CAP_ECRC_GEN_CAPABLE = "FALSE";
parameter [15:0] AER_CAP_ID = 16'd0;
parameter AER_CAP_MULTIHEADER = "FALSE";
parameter [11:0] AER_CAP_NEXTPTR = 12'd0;
parameter AER_CAP_ON = "FALSE";
parameter [23:0] AER_CAP_OPTIONAL_ERR_SUPPORT = 24'd0;
parameter AER_CAP_PERMIT_ROOTERR_UPDATE = "FALSE";
parameter [3:0] AER_CAP_VERSION = 4'd0;
parameter ALLOW_X8_GEN2 = "FALSE";
parameter [31:0] BAR0 = 32'd0;
parameter [31:0] BAR1 = 32'd0;
parameter [31:0] BAR2 = 32'd0;
parameter [31:0] BAR3 = 32'd0;
parameter [31:0] BAR4 = 32'd0;
parameter [31:0] BAR5 = 32'd0;
parameter [7:0] CAPABILITIES_PTR = 8'd0;
parameter [31:0] CARDBUS_CIS_POINTER = 32'd0;
parameter [23:0] CLASS_CODE = 24'd0;
parameter CMD_INTX_IMPLEMENTED = "FALSE";
parameter CPL_TIMEOUT_DISABLE_SUPPORTED = "FALSE";
parameter [3:0] CPL_TIMEOUT_RANGES_SUPPORTED = 4'd0;
parameter [6:0] CRM_MODULE_RSTS = 7'd0;
parameter DEV_CAP2_ARI_FORWARDING_SUPPORTED = "FALSE";
parameter DEV_CAP2_ATOMICOP32_COMPLETER_SUPPORTED = "FALSE";
parameter DEV_CAP2_ATOMICOP64_COMPLETER_SUPPORTED = "FALSE";
parameter DEV_CAP2_ATOMICOP_ROUTING_SUPPORTED = "FALSE";
parameter DEV_CAP2_CAS128_COMPLETER_SUPPORTED = "FALSE";
parameter DEV_CAP2_ENDEND_TLP_PREFIX_SUPPORTED = "FALSE";
parameter DEV_CAP2_EXTENDED_FMT_FIELD_SUPPORTED = "FALSE";
parameter DEV_CAP2_LTR_MECHANISM_SUPPORTED = "FALSE";
parameter [1:0] DEV_CAP2_MAX_ENDEND_TLP_PREFIXES = 2'd0;
parameter DEV_CAP2_NO_RO_ENABLED_PRPR_PASSING = "FALSE";
parameter [1:0] DEV_CAP2_TPH_COMPLETER_SUPPORTED = 2'd0;
parameter DEV_CAP_ENABLE_SLOT_PWR_LIMIT_SCALE = "FALSE";
parameter DEV_CAP_ENABLE_SLOT_PWR_LIMIT_VALUE = "FALSE";
parameter DEV_CAP_EXT_TAG_SUPPORTED = "FALSE";
parameter DEV_CAP_FUNCTION_LEVEL_RESET_CAPABLE = "FALSE";
parameter [2:0] DEV_CAP_MAX_PAYLOAD_SUPPORTED = 3'd0;
parameter DEV_CAP_ROLE_BASED_ERROR = "FALSE";
parameter [2:0] DEV_CAP_RSVD_14_12 = 3'd0;
parameter [1:0] DEV_CAP_RSVD_17_16 = 2'd0;
parameter [2:0] DEV_CAP_RSVD_31_29 = 3'd0;
parameter DEV_CONTROL_AUX_POWER_SUPPORTED = "FALSE";
parameter DEV_CONTROL_EXT_TAG_DEFAULT = "FALSE";
parameter DISABLE_ASPM_L1_TIMER = "FALSE";
parameter DISABLE_BAR_FILTERING = "FALSE";
parameter DISABLE_ERR_MSG = "FALSE";
parameter DISABLE_ID_CHECK = "FALSE";
parameter DISABLE_LANE_REVERSAL = "FALSE";
parameter DISABLE_LOCKED_FILTER = "FALSE";
parameter DISABLE_PPM_FILTER = "FALSE";
parameter DISABLE_RX_POISONED_RESP = "FALSE";
parameter DISABLE_RX_TC_FILTER = "FALSE";
parameter DISABLE_SCRAMBLING = "FALSE";
parameter [7:0] DNSTREAM_LINK_NUM = 8'd0;
parameter [11:0] DSN_BASE_PTR = 12'd0;
parameter [15:0] DSN_CAP_ID = 16'd0;
parameter [11:0] DSN_CAP_NEXTPTR = 12'd0;
parameter DSN_CAP_ON = "FALSE";
parameter [3:0] DSN_CAP_VERSION = 4'd0;
parameter [10:0] ENABLE_MSG_ROUTE = 11'd0;
parameter ENABLE_RX_TD_ECRC_TRIM = "FALSE";
parameter ENDEND_TLP_PREFIX_FORWARDING_SUPPORTED = "FALSE";
parameter ENTER_RVRY_EI_L0 = "FALSE";
parameter EXIT_LOOPBACK_ON_EI = "FALSE";
parameter [31:0] EXPANSION_ROM = 32'd0;
parameter [5:0] EXT_CFG_CAP_PTR = 6'd0;
parameter [9:0] EXT_CFG_XP_CAP_PTR = 10'd0;
parameter [7:0] HEADER_TYPE = 8'd0;
parameter [4:0] INFER_EI = 5'd0;
parameter [7:0] INTERRUPT_PIN = 8'd0;
parameter INTERRUPT_STAT_AUTO = "FALSE";
parameter IS_SWITCH = "FALSE";
parameter [9:0] LAST_CONFIG_DWORD = 10'd0;
parameter LINK_CAP_ASPM_OPTIONALITY = "FALSE";
parameter [1:0] LINK_CAP_ASPM_SUPPORT = 2'd0;
parameter LINK_CAP_CLOCK_POWER_MANAGEMENT = "FALSE";
parameter LINK_CAP_DLL_LINK_ACTIVE_REPORTING_CAP = "FALSE";
parameter LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP = "FALSE";
parameter [3:0] LINK_CAP_MAX_LINK_SPEED = 4'd0;
parameter [5:0] LINK_CAP_MAX_LINK_WIDTH = 6'd0;
parameter [0:0] LINK_CAP_RSVD_23 = 1'd0;
parameter LINK_CAP_SURPRISE_DOWN_ERROR_CAPABLE = "FALSE";
parameter LINK_CTRL2_DEEMPHASIS = "FALSE";
parameter LINK_CTRL2_HW_AUTONOMOUS_SPEED_DISABLE = "FALSE";
parameter [3:0] LINK_CTRL2_TARGET_LINK_SPEED = 4'd0;
parameter LINK_STATUS_SLOT_CLOCK_CONFIG = "FALSE";
parameter [14:0] LL_ACK_TIMEOUT = 15'd0;
parameter LL_ACK_TIMEOUT_EN = "FALSE";
parameter [1:0] LL_ACK_TIMEOUT_FUNC = 2'd0;
parameter [14:0] LL_REPLAY_TIMEOUT = 15'd0;
parameter LL_REPLAY_TIMEOUT_EN = "FALSE";
parameter [1:0] LL_REPLAY_TIMEOUT_FUNC = 2'd0;
parameter [5:0] LTSSM_MAX_LINK_WIDTH = 6'd0;
parameter MPS_FORCE = "FALSE";
parameter [7:0] MSIX_BASE_PTR = 8'd0;
parameter [7:0] MSIX_CAP_ID = 8'd0;
parameter [7:0] MSIX_CAP_NEXTPTR = 8'd0;
parameter MSIX_CAP_ON = "FALSE";
parameter [2:0] MSIX_CAP_PBA_BIR = 3'd0;
parameter [28:0] MSIX_CAP_PBA_OFFSET = 29'd0;
parameter [2:0] MSIX_CAP_TABLE_BIR = 3'd0;
parameter [28:0] MSIX_CAP_TABLE_OFFSET = 29'd0;
parameter [10:0] MSIX_CAP_TABLE_SIZE = 11'd0;
parameter [7:0] MSI_BASE_PTR = 8'd0;
parameter MSI_CAP_64_BIT_ADDR_CAPABLE = "FALSE";
parameter [7:0] MSI_CAP_ID = 8'd0;
parameter [2:0] MSI_CAP_MULTIMSGCAP = 3'd0;
parameter [7:0] MSI_CAP_NEXTPTR = 8'd0;
parameter MSI_CAP_ON = "FALSE";
parameter MSI_CAP_PER_VECTOR_MASKING_CAPABLE = "FALSE";
parameter [7:0] N_FTS_COMCLK_GEN1 = 8'd255;
parameter [7:0] N_FTS_COMCLK_GEN2 = 8'd255;
parameter [7:0] N_FTS_GEN1 = 8'd255;
parameter [7:0] N_FTS_GEN2 = 8'd255;
parameter [7:0] PCIE_BASE_PTR = 8'd0;
parameter [7:0] PCIE_CAP_CAPABILITY_ID = 8'd0;
parameter [3:0] PCIE_CAP_CAPABILITY_VERSION = 4'd0;
parameter [3:0] PCIE_CAP_DEVICE_PORT_TYPE = 4'd0;
parameter [7:0] PCIE_CAP_NEXTPTR = 8'd0;
parameter PCIE_CAP_ON = "FALSE";
parameter [1:0] PCIE_CAP_RSVD_15_14 = 2'd0;
parameter PCIE_CAP_SLOT_IMPLEMENTED = "FALSE";
parameter [3:0] PCIE_REVISION = 4'd2;
parameter PL_FAST_TRAIN = "FALSE";
parameter [14:0] PM_ASPML0S_TIMEOUT = 15'd0;
parameter PM_ASPML0S_TIMEOUT_EN = "FALSE";
parameter [1:0] PM_ASPML0S_TIMEOUT_FUNC = 2'd0;
parameter PM_ASPM_FASTEXIT = "FALSE";
parameter [7:0] PM_BASE_PTR = 8'd0;
parameter PM_CAP_D1SUPPORT = "FALSE";
parameter PM_CAP_D2SUPPORT = "FALSE";
parameter PM_CAP_DSI = "FALSE";
parameter [7:0] PM_CAP_ID = 8'd0;
parameter [7:0] PM_CAP_NEXTPTR = 8'd0;
parameter PM_CAP_ON = "FALSE";
parameter [4:0] PM_CAP_PMESUPPORT = 5'd0;
parameter PM_CAP_PME_CLOCK = "FALSE";
parameter [0:0] PM_CAP_RSVD_04 = 1'd0;
parameter [2:0] PM_CAP_VERSION = 3'd3;
parameter PM_CSR_B2B3 = "FALSE";
parameter PM_CSR_BPCCEN = "FALSE";
parameter PM_CSR_NOSOFTRST = "FALSE";
parameter [7:0] PM_DATA0 = 8'd0;
parameter [7:0] PM_DATA1 = 8'd0;
parameter [7:0] PM_DATA2 = 8'd0;
parameter [7:0] PM_DATA3 = 8'd0;
parameter [7:0] PM_DATA4 = 8'd0;
parameter [7:0] PM_DATA5 = 8'd0;
parameter [7:0] PM_DATA6 = 8'd0;
parameter [7:0] PM_DATA7 = 8'd0;
parameter [1:0] PM_DATA_SCALE0 = 2'd0;
parameter [1:0] PM_DATA_SCALE1 = 2'd0;
parameter [1:0] PM_DATA_SCALE2 = 2'd0;
parameter [1:0] PM_DATA_SCALE3 = 2'd0;
parameter [1:0] PM_DATA_SCALE4 = 2'd0;
parameter [1:0] PM_DATA_SCALE5 = 2'd0;
parameter [1:0] PM_DATA_SCALE6 = 2'd0;
parameter [1:0] PM_DATA_SCALE7 = 2'd0;
parameter PM_MF = "FALSE";
parameter [11:0] RBAR_BASE_PTR = 12'd0;
parameter [4:0] RBAR_CAP_CONTROL_ENCODEDBAR0 = 5'd0;
parameter [4:0] RBAR_CAP_CONTROL_ENCODEDBAR1 = 5'd0;
parameter [4:0] RBAR_CAP_CONTROL_ENCODEDBAR2 = 5'd0;
parameter [4:0] RBAR_CAP_CONTROL_ENCODEDBAR3 = 5'd0;
parameter [4:0] RBAR_CAP_CONTROL_ENCODEDBAR4 = 5'd0;
parameter [4:0] RBAR_CAP_CONTROL_ENCODEDBAR5 = 5'd0;
parameter [15:0] RBAR_CAP_ID = 16'd0;
parameter [2:0] RBAR_CAP_INDEX0 = 3'd0;
parameter [2:0] RBAR_CAP_INDEX1 = 3'd0;
parameter [2:0] RBAR_CAP_INDEX2 = 3'd0;
parameter [2:0] RBAR_CAP_INDEX3 = 3'd0;
parameter [2:0] RBAR_CAP_INDEX4 = 3'd0;
parameter [2:0] RBAR_CAP_INDEX5 = 3'd0;
parameter [11:0] RBAR_CAP_NEXTPTR = 12'd0;
parameter RBAR_CAP_ON = "FALSE";
parameter [31:0] RBAR_CAP_SUP0 = 32'd0;
parameter [31:0] RBAR_CAP_SUP1 = 32'd0;
parameter [31:0] RBAR_CAP_SUP2 = 32'd0;
parameter [31:0] RBAR_CAP_SUP3 = 32'd0;
parameter [31:0] RBAR_CAP_SUP4 = 32'd0;
parameter [31:0] RBAR_CAP_SUP5 = 32'd0;
parameter [3:0] RBAR_CAP_VERSION = 4'd0;
parameter [2:0] RBAR_NUM = 3'd0;
parameter [1:0] RECRC_CHK = 2'd0;
parameter RECRC_CHK_TRIM = "FALSE";
parameter ROOT_CAP_CRS_SW_VISIBILITY = "FALSE";
parameter [1:0] RP_AUTO_SPD = 2'd0;
parameter [4:0] RP_AUTO_SPD_LOOPCNT = 5'd0;
parameter SELECT_DLL_IF = "FALSE";
parameter SLOT_CAP_ATT_BUTTON_PRESENT = "FALSE";
parameter SLOT_CAP_ATT_INDICATOR_PRESENT = "FALSE";
parameter SLOT_CAP_ELEC_INTERLOCK_PRESENT = "FALSE";
parameter SLOT_CAP_HOTPLUG_CAPABLE = "FALSE";
parameter SLOT_CAP_HOTPLUG_SURPRISE = "FALSE";
parameter SLOT_CAP_MRL_SENSOR_PRESENT = "FALSE";
parameter SLOT_CAP_NO_CMD_COMPLETED_SUPPORT = "FALSE";
parameter [12:0] SLOT_CAP_PHYSICAL_SLOT_NUM = 13'd0;
parameter SLOT_CAP_POWER_CONTROLLER_PRESENT = "FALSE";
parameter SLOT_CAP_POWER_INDICATOR_PRESENT = "FALSE";
parameter [7:0] SLOT_CAP_SLOT_POWER_LIMIT_VALUE = 8'd0;
parameter [0:0] SPARE_BIT0 = 1'd0;
parameter [0:0] SPARE_BIT1 = 1'd0;
parameter [0:0] SPARE_BIT2 = 1'd0;
parameter [0:0] SPARE_BIT3 = 1'd0;
parameter [0:0] SPARE_BIT4 = 1'd0;
parameter [0:0] SPARE_BIT5 = 1'd0;
parameter [0:0] SPARE_BIT6 = 1'd0;
parameter [0:0] SPARE_BIT7 = 1'd0;
parameter [0:0] SPARE_BIT8 = 1'd0;
parameter [7:0] SPARE_BYTE0 = 8'd0;
parameter [7:0] SPARE_BYTE1 = 8'd0;
parameter [7:0] SPARE_BYTE2 = 8'd0;
parameter [7:0] SPARE_BYTE3 = 8'd0;
parameter [31:0] SPARE_WORD0 = 32'd0;
parameter [31:0] SPARE_WORD1 = 32'd0;
parameter [31:0] SPARE_WORD2 = 32'd0;
parameter [31:0] SPARE_WORD3 = 32'd0;
parameter SSL_MESSAGE_AUTO = "FALSE";
parameter TECRC_EP_INV = "FALSE";
parameter TL_RBYPASS = "FALSE";
parameter [1:0] TL_RX_RAM_RDATA_LATENCY = 2'd1;
parameter TL_TFC_DISABLE = "FALSE";
parameter TL_TX_CHECKS_DISABLE = "FALSE";
parameter [1:0] TL_TX_RAM_RDATA_LATENCY = 2'd1;
parameter TRN_DW = "FALSE";
parameter TRN_NP_FC = "FALSE";
parameter UPCONFIG_CAPABLE = "FALSE";
parameter UPSTREAM_FACING = "FALSE";
parameter UR_ATOMIC = "FALSE";
parameter UR_CFG1 = "FALSE";
parameter UR_INV_REQ = "FALSE";
parameter UR_PRS_RESPONSE = "FALSE";
parameter USER_CLK2_DIV2 = "FALSE";
parameter USE_RID_PINS = "FALSE";
parameter VC0_CPL_INFINITE = "FALSE";
parameter [12:0] VC0_RX_RAM_LIMIT = 13'd0;
parameter [6:0] VC0_TOTAL_CREDITS_CH = 7'd36;
parameter [6:0] VC0_TOTAL_CREDITS_NPH = 7'd12;
parameter [6:0] VC0_TOTAL_CREDITS_PH = 7'd32;
parameter [11:0] VC_BASE_PTR = 12'd0;
parameter [15:0] VC_CAP_ID = 16'd0;
parameter [11:0] VC_CAP_NEXTPTR = 12'd0;
parameter VC_CAP_ON = "FALSE";
parameter VC_CAP_REJECT_SNOOP_TRANSACTIONS = "FALSE";
parameter [3:0] VC_CAP_VERSION = 4'd0;
parameter [11:0] VSEC_BASE_PTR = 12'd0;
parameter [15:0] VSEC_CAP_HDR_ID = 16'd0;
parameter [11:0] VSEC_CAP_HDR_LENGTH = 12'd0;
parameter [3:0] VSEC_CAP_HDR_REVISION = 4'd0;
parameter [15:0] VSEC_CAP_ID = 16'd0;
parameter VSEC_CAP_IS_LINK_VISIBLE = "FALSE";
parameter [11:0] VSEC_CAP_NEXTPTR = 12'd0;
parameter VSEC_CAP_ON = "FALSE";
parameter [3:0] VSEC_CAP_VERSION = 4'd0;
parameter [2:0] DEV_CAP_ENDPOINT_L0S_LATENCY = 3'd0;
parameter [2:0] DEV_CAP_ENDPOINT_L1_LATENCY = 3'd0;
parameter [1:0] DEV_CAP_PHANTOM_FUNCTIONS_SUPPORT = 2'd0;
parameter [2:0] LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN1 = 3'd0;
parameter [2:0] LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN2 = 3'd0;
parameter [2:0] LINK_CAP_L0S_EXIT_LATENCY_GEN1 = 3'd0;
parameter [2:0] LINK_CAP_L0S_EXIT_LATENCY_GEN2 = 3'd0;
parameter [2:0] LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN1 = 3'd0;
parameter [2:0] LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN2 = 3'd0;
parameter [2:0] LINK_CAP_L1_EXIT_LATENCY_GEN1 = 3'd0;
parameter [2:0] LINK_CAP_L1_EXIT_LATENCY_GEN2 = 3'd0;
parameter [0:0] LINK_CONTROL_RCB = 1'd0;
parameter [0:0] MSI_CAP_MULTIMSG_EXTENSION = 1'd0;
parameter [2:0] PM_CAP_AUXCURRENT = 3'd0;
parameter [1:0] SLOT_CAP_SLOT_POWER_LIMIT_SCALE = 2'd0;
parameter [2:0] USER_CLK_FREQ = 3'd0;
parameter [2:0] PL_AUTO_CONFIG = 3'd0;
parameter [0:0] TL_RX_RAM_RADDR_LATENCY = 1'd0;
parameter [0:0] TL_RX_RAM_WRITE_LATENCY = 1'd0;
parameter [0:0] TL_TX_RAM_RADDR_LATENCY = 1'd0;
parameter [0:0] TL_TX_RAM_WRITE_LATENCY = 1'd0;
parameter [10:0] VC0_TOTAL_CREDITS_CD = 11'd0;
parameter [10:0] VC0_TOTAL_CREDITS_NPD = 11'd0;
parameter [10:0] VC0_TOTAL_CREDITS_PD = 11'd0;
parameter [4:0] VC0_TX_LASTPACKET = 5'd0;
parameter [1:0] CFG_ECRC_ERR_CPLSTAT = 2'd0;
PCIE_2_1_VPR #(
.AER_BASE_PTR(AER_BASE_PTR),
.AER_CAP_ECRC_CHECK_CAPABLE(AER_CAP_ECRC_CHECK_CAPABLE == "TRUE"),
.AER_CAP_ECRC_GEN_CAPABLE(AER_CAP_ECRC_GEN_CAPABLE == "TRUE"),
.AER_CAP_ID(AER_CAP_ID),
.AER_CAP_MULTIHEADER(AER_CAP_MULTIHEADER == "TRUE"),
.AER_CAP_NEXTPTR(AER_CAP_NEXTPTR),
.AER_CAP_ON(AER_CAP_ON == "TRUE"),
.AER_CAP_OPTIONAL_ERR_SUPPORT(AER_CAP_OPTIONAL_ERR_SUPPORT),
.AER_CAP_PERMIT_ROOTERR_UPDATE(AER_CAP_PERMIT_ROOTERR_UPDATE == "TRUE"),
.AER_CAP_VERSION(AER_CAP_VERSION),
.ALLOW_X8_GEN2(ALLOW_X8_GEN2 == "TRUE"),
.BAR0(BAR0),
.BAR1(BAR1),
.BAR2(BAR2),
.BAR3(BAR3),
.BAR4(BAR4),
.BAR5(BAR5),
.CAPABILITIES_PTR(CAPABILITIES_PTR),
.CARDBUS_CIS_POINTER(CARDBUS_CIS_POINTER),
.CLASS_CODE(CLASS_CODE),
.CMD_INTX_IMPLEMENTED(CMD_INTX_IMPLEMENTED == "TRUE"),
.CPL_TIMEOUT_DISABLE_SUPPORTED(CPL_TIMEOUT_DISABLE_SUPPORTED == "TRUE"),
.CPL_TIMEOUT_RANGES_SUPPORTED(CPL_TIMEOUT_RANGES_SUPPORTED),
.CRM_MODULE_RSTS(CRM_MODULE_RSTS),
.DEV_CAP2_ARI_FORWARDING_SUPPORTED(DEV_CAP2_ARI_FORWARDING_SUPPORTED == "TRUE"),
.DEV_CAP2_ATOMICOP32_COMPLETER_SUPPORTED(DEV_CAP2_ATOMICOP32_COMPLETER_SUPPORTED == "TRUE"),
.DEV_CAP2_ATOMICOP64_COMPLETER_SUPPORTED(DEV_CAP2_ATOMICOP64_COMPLETER_SUPPORTED == "TRUE"),
.DEV_CAP2_ATOMICOP_ROUTING_SUPPORTED(DEV_CAP2_ATOMICOP_ROUTING_SUPPORTED == "TRUE"),
.DEV_CAP2_CAS128_COMPLETER_SUPPORTED(DEV_CAP2_CAS128_COMPLETER_SUPPORTED == "TRUE"),
.DEV_CAP2_ENDEND_TLP_PREFIX_SUPPORTED(DEV_CAP2_ENDEND_TLP_PREFIX_SUPPORTED == "TRUE"),
.DEV_CAP2_EXTENDED_FMT_FIELD_SUPPORTED(DEV_CAP2_EXTENDED_FMT_FIELD_SUPPORTED == "TRUE"),
.DEV_CAP2_LTR_MECHANISM_SUPPORTED(DEV_CAP2_LTR_MECHANISM_SUPPORTED == "TRUE"),
.DEV_CAP2_MAX_ENDEND_TLP_PREFIXES(DEV_CAP2_MAX_ENDEND_TLP_PREFIXES),
.DEV_CAP2_NO_RO_ENABLED_PRPR_PASSING(DEV_CAP2_NO_RO_ENABLED_PRPR_PASSING == "TRUE"),
.DEV_CAP2_TPH_COMPLETER_SUPPORTED(DEV_CAP2_TPH_COMPLETER_SUPPORTED),
.DEV_CAP_ENABLE_SLOT_PWR_LIMIT_SCALE(DEV_CAP_ENABLE_SLOT_PWR_LIMIT_SCALE == "TRUE"),
.DEV_CAP_ENABLE_SLOT_PWR_LIMIT_VALUE(DEV_CAP_ENABLE_SLOT_PWR_LIMIT_VALUE == "TRUE"),
.DEV_CAP_EXT_TAG_SUPPORTED(DEV_CAP_EXT_TAG_SUPPORTED == "TRUE"),
.DEV_CAP_FUNCTION_LEVEL_RESET_CAPABLE(DEV_CAP_FUNCTION_LEVEL_RESET_CAPABLE == "TRUE"),
.DEV_CAP_MAX_PAYLOAD_SUPPORTED(DEV_CAP_MAX_PAYLOAD_SUPPORTED),
.DEV_CAP_ROLE_BASED_ERROR(DEV_CAP_ROLE_BASED_ERROR == "TRUE"),
.DEV_CAP_RSVD_14_12(DEV_CAP_RSVD_14_12),
.DEV_CAP_RSVD_17_16(DEV_CAP_RSVD_17_16),
.DEV_CAP_RSVD_31_29(DEV_CAP_RSVD_31_29),
.DEV_CONTROL_AUX_POWER_SUPPORTED(DEV_CONTROL_AUX_POWER_SUPPORTED == "TRUE"),
.DEV_CONTROL_EXT_TAG_DEFAULT(DEV_CONTROL_EXT_TAG_DEFAULT == "TRUE"),
.DISABLE_ASPM_L1_TIMER(DISABLE_ASPM_L1_TIMER == "TRUE"),
.DISABLE_BAR_FILTERING(DISABLE_BAR_FILTERING == "TRUE"),
.DISABLE_ERR_MSG(DISABLE_ERR_MSG == "TRUE"),
.DISABLE_ID_CHECK(DISABLE_ID_CHECK == "TRUE"),
.DISABLE_LANE_REVERSAL(DISABLE_LANE_REVERSAL == "TRUE"),
.DISABLE_LOCKED_FILTER(DISABLE_LOCKED_FILTER == "TRUE"),
.DISABLE_PPM_FILTER(DISABLE_PPM_FILTER == "TRUE"),
.DISABLE_RX_POISONED_RESP(DISABLE_RX_POISONED_RESP == "TRUE"),
.DISABLE_RX_TC_FILTER(DISABLE_RX_TC_FILTER == "TRUE"),
.DISABLE_SCRAMBLING(DISABLE_SCRAMBLING == "TRUE"),
.DNSTREAM_LINK_NUM(DNSTREAM_LINK_NUM),
.DSN_BASE_PTR(DSN_BASE_PTR),
.DSN_CAP_ID(DSN_CAP_ID),
.DSN_CAP_NEXTPTR(DSN_CAP_NEXTPTR),
.DSN_CAP_ON(DSN_CAP_ON == "TRUE"),
.DSN_CAP_VERSION(DSN_CAP_VERSION),
.ENABLE_MSG_ROUTE(ENABLE_MSG_ROUTE),
.ENABLE_RX_TD_ECRC_TRIM(ENABLE_RX_TD_ECRC_TRIM == "TRUE"),
.ENDEND_TLP_PREFIX_FORWARDING_SUPPORTED(ENDEND_TLP_PREFIX_FORWARDING_SUPPORTED == "TRUE"),
.ENTER_RVRY_EI_L0(ENTER_RVRY_EI_L0 == "TRUE"),
.EXIT_LOOPBACK_ON_EI(EXIT_LOOPBACK_ON_EI == "TRUE"),
.EXPANSION_ROM(EXPANSION_ROM),
.EXT_CFG_CAP_PTR(EXT_CFG_CAP_PTR),
.EXT_CFG_XP_CAP_PTR(EXT_CFG_XP_CAP_PTR),
.HEADER_TYPE(HEADER_TYPE),
.INFER_EI(INFER_EI),
.INTERRUPT_PIN(INTERRUPT_PIN),
.INTERRUPT_STAT_AUTO(INTERRUPT_STAT_AUTO == "TRUE"),
.IS_SWITCH(IS_SWITCH == "TRUE"),
.LAST_CONFIG_DWORD(LAST_CONFIG_DWORD),
.LINK_CAP_ASPM_OPTIONALITY(LINK_CAP_ASPM_OPTIONALITY == "TRUE"),
.LINK_CAP_ASPM_SUPPORT(LINK_CAP_ASPM_SUPPORT),
.LINK_CAP_CLOCK_POWER_MANAGEMENT(LINK_CAP_CLOCK_POWER_MANAGEMENT == "TRUE"),
.LINK_CAP_DLL_LINK_ACTIVE_REPORTING_CAP(LINK_CAP_DLL_LINK_ACTIVE_REPORTING_CAP == "TRUE"),
.LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP(LINK_CAP_LINK_BANDWIDTH_NOTIFICATION_CAP == "TRUE"),
.LINK_CAP_MAX_LINK_SPEED(LINK_CAP_MAX_LINK_SPEED),
.LINK_CAP_MAX_LINK_WIDTH(LINK_CAP_MAX_LINK_WIDTH),
.LINK_CAP_RSVD_23(LINK_CAP_RSVD_23),
.LINK_CAP_SURPRISE_DOWN_ERROR_CAPABLE(LINK_CAP_SURPRISE_DOWN_ERROR_CAPABLE == "TRUE"),
.LINK_CTRL2_DEEMPHASIS(LINK_CTRL2_DEEMPHASIS == "TRUE"),
.LINK_CTRL2_HW_AUTONOMOUS_SPEED_DISABLE(LINK_CTRL2_HW_AUTONOMOUS_SPEED_DISABLE == "TRUE"),
.LINK_CTRL2_TARGET_LINK_SPEED(LINK_CTRL2_TARGET_LINK_SPEED),
.LINK_STATUS_SLOT_CLOCK_CONFIG(LINK_STATUS_SLOT_CLOCK_CONFIG == "TRUE"),
.LL_ACK_TIMEOUT(LL_ACK_TIMEOUT),
.LL_ACK_TIMEOUT_EN(LL_ACK_TIMEOUT_EN == "TRUE"),
.LL_ACK_TIMEOUT_FUNC(LL_ACK_TIMEOUT_FUNC),
.LL_REPLAY_TIMEOUT(LL_REPLAY_TIMEOUT),
.LL_REPLAY_TIMEOUT_EN(LL_REPLAY_TIMEOUT_EN == "TRUE"),
.LL_REPLAY_TIMEOUT_FUNC(LL_REPLAY_TIMEOUT_FUNC),
.LTSSM_MAX_LINK_WIDTH(LTSSM_MAX_LINK_WIDTH),
.MPS_FORCE(MPS_FORCE == "TRUE"),
.MSIX_BASE_PTR(MSIX_BASE_PTR),
.MSIX_CAP_ID(MSIX_CAP_ID),
.MSIX_CAP_NEXTPTR(MSIX_CAP_NEXTPTR),
.MSIX_CAP_ON(MSIX_CAP_ON == "TRUE"),
.MSIX_CAP_PBA_BIR(MSIX_CAP_PBA_BIR),
.MSIX_CAP_PBA_OFFSET(MSIX_CAP_PBA_OFFSET),
.MSIX_CAP_TABLE_BIR(MSIX_CAP_TABLE_BIR),
.MSIX_CAP_TABLE_OFFSET(MSIX_CAP_TABLE_OFFSET),
.MSIX_CAP_TABLE_SIZE(MSIX_CAP_TABLE_SIZE),
.MSI_BASE_PTR(MSI_BASE_PTR),
.MSI_CAP_64_BIT_ADDR_CAPABLE(MSI_CAP_64_BIT_ADDR_CAPABLE == "TRUE"),
.MSI_CAP_ID(MSI_CAP_ID),
.MSI_CAP_MULTIMSGCAP(MSI_CAP_MULTIMSGCAP),
.MSI_CAP_NEXTPTR(MSI_CAP_NEXTPTR),
.MSI_CAP_ON(MSI_CAP_ON == "TRUE"),
.MSI_CAP_PER_VECTOR_MASKING_CAPABLE(MSI_CAP_PER_VECTOR_MASKING_CAPABLE == "TRUE"),
.N_FTS_COMCLK_GEN1(N_FTS_COMCLK_GEN1),
.N_FTS_COMCLK_GEN2(N_FTS_COMCLK_GEN2),
.N_FTS_GEN1(N_FTS_GEN1),
.N_FTS_GEN2(N_FTS_GEN2),
.PCIE_BASE_PTR(PCIE_BASE_PTR),
.PCIE_CAP_CAPABILITY_ID(PCIE_CAP_CAPABILITY_ID),
.PCIE_CAP_CAPABILITY_VERSION(PCIE_CAP_CAPABILITY_VERSION),
.PCIE_CAP_DEVICE_PORT_TYPE(PCIE_CAP_DEVICE_PORT_TYPE),
.PCIE_CAP_NEXTPTR(PCIE_CAP_NEXTPTR),
.PCIE_CAP_ON(PCIE_CAP_ON == "TRUE"),
.PCIE_CAP_RSVD_15_14(PCIE_CAP_RSVD_15_14),
.PCIE_CAP_SLOT_IMPLEMENTED(PCIE_CAP_SLOT_IMPLEMENTED == "TRUE"),
.PCIE_REVISION(PCIE_REVISION),
.PL_FAST_TRAIN(PL_FAST_TRAIN == "TRUE"),
.PM_ASPML0S_TIMEOUT(PM_ASPML0S_TIMEOUT),
.PM_ASPML0S_TIMEOUT_EN(PM_ASPML0S_TIMEOUT_EN == "TRUE"),
.PM_ASPML0S_TIMEOUT_FUNC(PM_ASPML0S_TIMEOUT_FUNC),
.PM_ASPM_FASTEXIT(PM_ASPM_FASTEXIT == "TRUE"),
.PM_BASE_PTR(PM_BASE_PTR),
.PM_CAP_D1SUPPORT(PM_CAP_D1SUPPORT == "TRUE"),
.PM_CAP_D2SUPPORT(PM_CAP_D2SUPPORT == "TRUE"),
.PM_CAP_DSI(PM_CAP_DSI == "TRUE"),
.PM_CAP_ID(PM_CAP_ID),
.PM_CAP_NEXTPTR(PM_CAP_NEXTPTR),
.PM_CAP_ON(PM_CAP_ON == "TRUE"),
.PM_CAP_PMESUPPORT(PM_CAP_PMESUPPORT),
.PM_CAP_PME_CLOCK(PM_CAP_PME_CLOCK == "TRUE"),
.PM_CAP_RSVD_04(PM_CAP_RSVD_04),
.PM_CAP_VERSION(PM_CAP_VERSION),
.PM_CSR_B2B3(PM_CSR_B2B3 == "TRUE"),
.PM_CSR_BPCCEN(PM_CSR_BPCCEN == "TRUE"),
.PM_CSR_NOSOFTRST(PM_CSR_NOSOFTRST == "TRUE"),
.PM_DATA0(PM_DATA0),
.PM_DATA1(PM_DATA1),
.PM_DATA2(PM_DATA2),
.PM_DATA3(PM_DATA3),
.PM_DATA4(PM_DATA4),
.PM_DATA5(PM_DATA5),
.PM_DATA6(PM_DATA6),
.PM_DATA7(PM_DATA7),
.PM_DATA_SCALE0(PM_DATA_SCALE0),
.PM_DATA_SCALE1(PM_DATA_SCALE1),
.PM_DATA_SCALE2(PM_DATA_SCALE2),
.PM_DATA_SCALE3(PM_DATA_SCALE3),
.PM_DATA_SCALE4(PM_DATA_SCALE4),
.PM_DATA_SCALE5(PM_DATA_SCALE5),
.PM_DATA_SCALE6(PM_DATA_SCALE6),
.PM_DATA_SCALE7(PM_DATA_SCALE7),
.PM_MF(PM_MF == "TRUE"),
.RBAR_BASE_PTR(RBAR_BASE_PTR),
.RBAR_CAP_CONTROL_ENCODEDBAR0(RBAR_CAP_CONTROL_ENCODEDBAR0),
.RBAR_CAP_CONTROL_ENCODEDBAR1(RBAR_CAP_CONTROL_ENCODEDBAR1),
.RBAR_CAP_CONTROL_ENCODEDBAR2(RBAR_CAP_CONTROL_ENCODEDBAR2),
.RBAR_CAP_CONTROL_ENCODEDBAR3(RBAR_CAP_CONTROL_ENCODEDBAR3),
.RBAR_CAP_CONTROL_ENCODEDBAR4(RBAR_CAP_CONTROL_ENCODEDBAR4),
.RBAR_CAP_CONTROL_ENCODEDBAR5(RBAR_CAP_CONTROL_ENCODEDBAR5),
.RBAR_CAP_ID(RBAR_CAP_ID),
.RBAR_CAP_INDEX0(RBAR_CAP_INDEX0),
.RBAR_CAP_INDEX1(RBAR_CAP_INDEX1),
.RBAR_CAP_INDEX2(RBAR_CAP_INDEX2),
.RBAR_CAP_INDEX3(RBAR_CAP_INDEX3),
.RBAR_CAP_INDEX4(RBAR_CAP_INDEX4),
.RBAR_CAP_INDEX5(RBAR_CAP_INDEX5),
.RBAR_CAP_NEXTPTR(RBAR_CAP_NEXTPTR),
.RBAR_CAP_ON(RBAR_CAP_ON == "TRUE"),
.RBAR_CAP_SUP0(RBAR_CAP_SUP0),
.RBAR_CAP_SUP1(RBAR_CAP_SUP1),
.RBAR_CAP_SUP2(RBAR_CAP_SUP2),
.RBAR_CAP_SUP3(RBAR_CAP_SUP3),
.RBAR_CAP_SUP4(RBAR_CAP_SUP4),
.RBAR_CAP_SUP5(RBAR_CAP_SUP5),
.RBAR_CAP_VERSION(RBAR_CAP_VERSION),
.RBAR_NUM(RBAR_NUM),
.RECRC_CHK(RECRC_CHK),
.RECRC_CHK_TRIM(RECRC_CHK_TRIM == "TRUE"),
.ROOT_CAP_CRS_SW_VISIBILITY(ROOT_CAP_CRS_SW_VISIBILITY == "TRUE"),
.RP_AUTO_SPD(RP_AUTO_SPD),
.RP_AUTO_SPD_LOOPCNT(RP_AUTO_SPD_LOOPCNT),
.SELECT_DLL_IF(SELECT_DLL_IF == "TRUE"),
.SLOT_CAP_ATT_BUTTON_PRESENT(SLOT_CAP_ATT_BUTTON_PRESENT == "TRUE"),
.SLOT_CAP_ATT_INDICATOR_PRESENT(SLOT_CAP_ATT_INDICATOR_PRESENT == "TRUE"),
.SLOT_CAP_ELEC_INTERLOCK_PRESENT(SLOT_CAP_ELEC_INTERLOCK_PRESENT == "TRUE"),
.SLOT_CAP_HOTPLUG_CAPABLE(SLOT_CAP_HOTPLUG_CAPABLE == "TRUE"),
.SLOT_CAP_HOTPLUG_SURPRISE(SLOT_CAP_HOTPLUG_SURPRISE == "TRUE"),
.SLOT_CAP_MRL_SENSOR_PRESENT(SLOT_CAP_MRL_SENSOR_PRESENT == "TRUE"),
.SLOT_CAP_NO_CMD_COMPLETED_SUPPORT(SLOT_CAP_NO_CMD_COMPLETED_SUPPORT == "TRUE"),
.SLOT_CAP_PHYSICAL_SLOT_NUM(SLOT_CAP_PHYSICAL_SLOT_NUM),
.SLOT_CAP_POWER_CONTROLLER_PRESENT(SLOT_CAP_POWER_CONTROLLER_PRESENT == "TRUE"),
.SLOT_CAP_POWER_INDICATOR_PRESENT(SLOT_CAP_POWER_INDICATOR_PRESENT == "TRUE"),
.SLOT_CAP_SLOT_POWER_LIMIT_VALUE(SLOT_CAP_SLOT_POWER_LIMIT_VALUE),
.SPARE_BIT0(SPARE_BIT0),
.SPARE_BIT1(SPARE_BIT1),
.SPARE_BIT2(SPARE_BIT2),
.SPARE_BIT3(SPARE_BIT3),
.SPARE_BIT4(SPARE_BIT4),
.SPARE_BIT5(SPARE_BIT5),
.SPARE_BIT6(SPARE_BIT6),
.SPARE_BIT7(SPARE_BIT7),
.SPARE_BIT8(SPARE_BIT8),
.SPARE_BYTE0(SPARE_BYTE0),
.SPARE_BYTE1(SPARE_BYTE1),
.SPARE_BYTE2(SPARE_BYTE2),
.SPARE_BYTE3(SPARE_BYTE3),
.SPARE_WORD0(SPARE_WORD0),
.SPARE_WORD1(SPARE_WORD1),
.SPARE_WORD2(SPARE_WORD2),
.SPARE_WORD3(SPARE_WORD3),
.SSL_MESSAGE_AUTO(SSL_MESSAGE_AUTO == "TRUE"),
.TECRC_EP_INV(TECRC_EP_INV == "TRUE"),
.TL_RBYPASS(TL_RBYPASS == "TRUE"),
.TL_RX_RAM_RDATA_LATENCY(TL_RX_RAM_RDATA_LATENCY),
.TL_TFC_DISABLE(TL_TFC_DISABLE == "TRUE"),
.TL_TX_CHECKS_DISABLE(TL_TX_CHECKS_DISABLE == "TRUE"),
.TL_TX_RAM_RDATA_LATENCY(TL_TX_RAM_RDATA_LATENCY),
.TRN_DW(TRN_DW == "TRUE"),
.TRN_NP_FC(TRN_NP_FC == "TRUE"),
.UPCONFIG_CAPABLE(UPCONFIG_CAPABLE == "TRUE"),
.UPSTREAM_FACING(UPSTREAM_FACING == "TRUE"),
.UR_ATOMIC(UR_ATOMIC == "TRUE"),
.UR_CFG1(UR_CFG1 == "TRUE"),
.UR_INV_REQ(UR_INV_REQ == "TRUE"),
.UR_PRS_RESPONSE(UR_PRS_RESPONSE == "TRUE"),
.USER_CLK2_DIV2(USER_CLK2_DIV2 == "TRUE"),
.USE_RID_PINS(USE_RID_PINS == "TRUE"),
.VC0_CPL_INFINITE(VC0_CPL_INFINITE == "TRUE"),
.VC0_RX_RAM_LIMIT(VC0_RX_RAM_LIMIT),
.VC0_TOTAL_CREDITS_CH(VC0_TOTAL_CREDITS_CH),
.VC0_TOTAL_CREDITS_NPH(VC0_TOTAL_CREDITS_NPH),
.VC0_TOTAL_CREDITS_PH(VC0_TOTAL_CREDITS_PH),
.VC_BASE_PTR(VC_BASE_PTR),
.VC_CAP_ID(VC_CAP_ID),
.VC_CAP_NEXTPTR(VC_CAP_NEXTPTR),
.VC_CAP_ON(VC_CAP_ON == "TRUE"),
.VC_CAP_REJECT_SNOOP_TRANSACTIONS(VC_CAP_REJECT_SNOOP_TRANSACTIONS == "TRUE"),
.VC_CAP_VERSION(VC_CAP_VERSION),
.VSEC_BASE_PTR(VSEC_BASE_PTR),
.VSEC_CAP_HDR_ID(VSEC_CAP_HDR_ID),
.VSEC_CAP_HDR_LENGTH(VSEC_CAP_HDR_LENGTH),
.VSEC_CAP_HDR_REVISION(VSEC_CAP_HDR_REVISION),
.VSEC_CAP_ID(VSEC_CAP_ID),
.VSEC_CAP_IS_LINK_VISIBLE(VSEC_CAP_IS_LINK_VISIBLE == "TRUE"),
.VSEC_CAP_NEXTPTR(VSEC_CAP_NEXTPTR),
.VSEC_CAP_ON(VSEC_CAP_ON == "TRUE"),
.VSEC_CAP_VERSION(VSEC_CAP_VERSION),
.DEV_CAP_ENDPOINT_L0S_LATENCY(DEV_CAP_ENDPOINT_L0S_LATENCY),
.DEV_CAP_ENDPOINT_L1_LATENCY(DEV_CAP_ENDPOINT_L1_LATENCY),
.DEV_CAP_PHANTOM_FUNCTIONS_SUPPORT(DEV_CAP_PHANTOM_FUNCTIONS_SUPPORT),
.LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN1(LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN1),
.LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN2(LINK_CAP_L0S_EXIT_LATENCY_COMCLK_GEN2),
.LINK_CAP_L0S_EXIT_LATENCY_GEN1(LINK_CAP_L0S_EXIT_LATENCY_GEN1),
.LINK_CAP_L0S_EXIT_LATENCY_GEN2(LINK_CAP_L0S_EXIT_LATENCY_GEN2),
.LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN1(LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN1),
.LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN2(LINK_CAP_L1_EXIT_LATENCY_COMCLK_GEN2),
.LINK_CAP_L1_EXIT_LATENCY_GEN1(LINK_CAP_L1_EXIT_LATENCY_GEN1),
.LINK_CAP_L1_EXIT_LATENCY_GEN2(LINK_CAP_L1_EXIT_LATENCY_GEN2),
.LINK_CONTROL_RCB(LINK_CONTROL_RCB),
.MSI_CAP_MULTIMSG_EXTENSION(MSI_CAP_MULTIMSG_EXTENSION),
.PM_CAP_AUXCURRENT(PM_CAP_AUXCURRENT),
.SLOT_CAP_SLOT_POWER_LIMIT_SCALE(SLOT_CAP_SLOT_POWER_LIMIT_SCALE),
.USER_CLK_FREQ(USER_CLK_FREQ),
.PL_AUTO_CONFIG(PL_AUTO_CONFIG),
.TL_RX_RAM_RADDR_LATENCY(TL_RX_RAM_RADDR_LATENCY),
.TL_RX_RAM_WRITE_LATENCY(TL_RX_RAM_WRITE_LATENCY),
.TL_TX_RAM_RADDR_LATENCY(TL_TX_RAM_RADDR_LATENCY),
.TL_TX_RAM_WRITE_LATENCY(TL_TX_RAM_WRITE_LATENCY),
.VC0_TOTAL_CREDITS_CD(VC0_TOTAL_CREDITS_CD),
.VC0_TOTAL_CREDITS_NPD(VC0_TOTAL_CREDITS_NPD),
.VC0_TOTAL_CREDITS_PD(VC0_TOTAL_CREDITS_PD),
.VC0_TX_LASTPACKET(VC0_TX_LASTPACKET),
.CFG_ECRC_ERR_CPLSTAT(CFG_ECRC_ERR_CPLSTAT)
) _TECHMAP_REPLACE_ (
.CFGAERECRCCHECKEN(CFGAERECRCCHECKEN),
.CFGAERECRCGENEN(CFGAERECRCGENEN),
.CFGAERINTERRUPTMSGNUM(CFGAERINTERRUPTMSGNUM),
.CFGAERROOTERRCORRERRRECEIVED(CFGAERROOTERRCORRERRRECEIVED),
.CFGAERROOTERRCORRERRREPORTINGEN(CFGAERROOTERRCORRERRREPORTINGEN),
.CFGAERROOTERRFATALERRRECEIVED(CFGAERROOTERRFATALERRRECEIVED),
.CFGAERROOTERRFATALERRREPORTINGEN(CFGAERROOTERRFATALERRREPORTINGEN),
.CFGAERROOTERRNONFATALERRRECEIVED(CFGAERROOTERRNONFATALERRRECEIVED),
.CFGAERROOTERRNONFATALERRREPORTINGEN(CFGAERROOTERRNONFATALERRREPORTINGEN),
.CFGBRIDGESERREN(CFGBRIDGESERREN),
.CFGCOMMANDBUSMASTERENABLE(CFGCOMMANDBUSMASTERENABLE),
.CFGCOMMANDINTERRUPTDISABLE(CFGCOMMANDINTERRUPTDISABLE),
.CFGCOMMANDIOENABLE(CFGCOMMANDIOENABLE),
.CFGCOMMANDMEMENABLE(CFGCOMMANDMEMENABLE),
.CFGCOMMANDSERREN(CFGCOMMANDSERREN),
.CFGDEVCONTROL2ARIFORWARDEN(CFGDEVCONTROL2ARIFORWARDEN),
.CFGDEVCONTROL2ATOMICEGRESSBLOCK(CFGDEVCONTROL2ATOMICEGRESSBLOCK),
.CFGDEVCONTROL2ATOMICREQUESTEREN(CFGDEVCONTROL2ATOMICREQUESTEREN),
.CFGDEVCONTROL2CPLTIMEOUTDIS(CFGDEVCONTROL2CPLTIMEOUTDIS),
.CFGDEVCONTROL2CPLTIMEOUTVAL(CFGDEVCONTROL2CPLTIMEOUTVAL),
.CFGDEVCONTROL2IDOCPLEN(CFGDEVCONTROL2IDOCPLEN),
.CFGDEVCONTROL2IDOREQEN(CFGDEVCONTROL2IDOREQEN),
.CFGDEVCONTROL2LTREN(CFGDEVCONTROL2LTREN),
.CFGDEVCONTROL2TLPPREFIXBLOCK(CFGDEVCONTROL2TLPPREFIXBLOCK),
.CFGDEVCONTROLAUXPOWEREN(CFGDEVCONTROLAUXPOWEREN),
.CFGDEVCONTROLCORRERRREPORTINGEN(CFGDEVCONTROLCORRERRREPORTINGEN),
.CFGDEVCONTROLENABLERO(CFGDEVCONTROLENABLERO),
.CFGDEVCONTROLEXTTAGEN(CFGDEVCONTROLEXTTAGEN),
.CFGDEVCONTROLFATALERRREPORTINGEN(CFGDEVCONTROLFATALERRREPORTINGEN),
.CFGDEVCONTROLMAXPAYLOAD(CFGDEVCONTROLMAXPAYLOAD),
.CFGDEVCONTROLMAXREADREQ(CFGDEVCONTROLMAXREADREQ),
.CFGDEVCONTROLNONFATALREPORTINGEN(CFGDEVCONTROLNONFATALREPORTINGEN),
.CFGDEVCONTROLNOSNOOPEN(CFGDEVCONTROLNOSNOOPEN),
.CFGDEVCONTROLPHANTOMEN(CFGDEVCONTROLPHANTOMEN),
.CFGDEVCONTROLURERRREPORTINGEN(CFGDEVCONTROLURERRREPORTINGEN),
.CFGDEVID(CFGDEVID),
.CFGDEVSTATUSCORRERRDETECTED(CFGDEVSTATUSCORRERRDETECTED),
.CFGDEVSTATUSFATALERRDETECTED(CFGDEVSTATUSFATALERRDETECTED),
.CFGDEVSTATUSNONFATALERRDETECTED(CFGDEVSTATUSNONFATALERRDETECTED),
.CFGDEVSTATUSURDETECTED(CFGDEVSTATUSURDETECTED),
.CFGDSBUSNUMBER(CFGDSBUSNUMBER),
.CFGDSDEVICENUMBER(CFGDSDEVICENUMBER),
.CFGDSFUNCTIONNUMBER(CFGDSFUNCTIONNUMBER),
.CFGDSN(CFGDSN),
.CFGERRACSN(CFGERRACSN),
.CFGERRAERHEADERLOG(CFGERRAERHEADERLOG),
.CFGERRAERHEADERLOGSETN(CFGERRAERHEADERLOGSETN),
.CFGERRATOMICEGRESSBLOCKEDN(CFGERRATOMICEGRESSBLOCKEDN),
.CFGERRCORN(CFGERRCORN),
.CFGERRCPLABORTN(CFGERRCPLABORTN),
.CFGERRCPLRDYN(CFGERRCPLRDYN),
.CFGERRCPLTIMEOUTN(CFGERRCPLTIMEOUTN),
.CFGERRCPLUNEXPECTN(CFGERRCPLUNEXPECTN),
.CFGERRECRCN(CFGERRECRCN),
.CFGERRINTERNALCORN(CFGERRINTERNALCORN),
.CFGERRINTERNALUNCORN(CFGERRINTERNALUNCORN),
.CFGERRLOCKEDN(CFGERRLOCKEDN),
.CFGERRMALFORMEDN(CFGERRMALFORMEDN),
.CFGERRMCBLOCKEDN(CFGERRMCBLOCKEDN),
.CFGERRNORECOVERYN(CFGERRNORECOVERYN),
.CFGERRPOISONEDN(CFGERRPOISONEDN),
.CFGERRPOSTEDN(CFGERRPOSTEDN),
.CFGERRTLPCPLHEADER(CFGERRTLPCPLHEADER),
.CFGERRURN(CFGERRURN),
.CFGFORCECOMMONCLOCKOFF(CFGFORCECOMMONCLOCKOFF),
.CFGFORCEEXTENDEDSYNCON(CFGFORCEEXTENDEDSYNCON),
.CFGFORCEMPS(CFGFORCEMPS),
.CFGINTERRUPTASSERTN(CFGINTERRUPTASSERTN),
.CFGINTERRUPTDI(CFGINTERRUPTDI),
.CFGINTERRUPTDO(CFGINTERRUPTDO),
.CFGINTERRUPTMMENABLE(CFGINTERRUPTMMENABLE),
.CFGINTERRUPTMSIENABLE(CFGINTERRUPTMSIENABLE),
.CFGINTERRUPTMSIXENABLE(CFGINTERRUPTMSIXENABLE),
.CFGINTERRUPTMSIXFM(CFGINTERRUPTMSIXFM),
.CFGINTERRUPTN(CFGINTERRUPTN),
.CFGINTERRUPTRDYN(CFGINTERRUPTRDYN),
.CFGINTERRUPTSTATN(CFGINTERRUPTSTATN),
.CFGLINKCONTROLASPMCONTROL(CFGLINKCONTROLASPMCONTROL),
.CFGLINKCONTROLAUTOBANDWIDTHINTEN(CFGLINKCONTROLAUTOBANDWIDTHINTEN),
.CFGLINKCONTROLBANDWIDTHINTEN(CFGLINKCONTROLBANDWIDTHINTEN),
.CFGLINKCONTROLCLOCKPMEN(CFGLINKCONTROLCLOCKPMEN),
.CFGLINKCONTROLCOMMONCLOCK(CFGLINKCONTROLCOMMONCLOCK),
.CFGLINKCONTROLEXTENDEDSYNC(CFGLINKCONTROLEXTENDEDSYNC),
.CFGLINKCONTROLHWAUTOWIDTHDIS(CFGLINKCONTROLHWAUTOWIDTHDIS),
.CFGLINKCONTROLLINKDISABLE(CFGLINKCONTROLLINKDISABLE),
.CFGLINKCONTROLRCB(CFGLINKCONTROLRCB),
.CFGLINKCONTROLRETRAINLINK(CFGLINKCONTROLRETRAINLINK),
.CFGLINKSTATUSAUTOBANDWIDTHSTATUS(CFGLINKSTATUSAUTOBANDWIDTHSTATUS),
.CFGLINKSTATUSBANDWIDTHSTATUS(CFGLINKSTATUSBANDWIDTHSTATUS),
.CFGLINKSTATUSCURRENTSPEED(CFGLINKSTATUSCURRENTSPEED),
.CFGLINKSTATUSDLLACTIVE(CFGLINKSTATUSDLLACTIVE),
.CFGLINKSTATUSLINKTRAINING(CFGLINKSTATUSLINKTRAINING),
.CFGLINKSTATUSNEGOTIATEDWIDTH(CFGLINKSTATUSNEGOTIATEDWIDTH),
.CFGMGMTBYTEENN(CFGMGMTBYTEENN),
.CFGMGMTDI(CFGMGMTDI),
.CFGMGMTDO(CFGMGMTDO),
.CFGMGMTDWADDR(CFGMGMTDWADDR),
.CFGMGMTRDENN(CFGMGMTRDENN),
.CFGMGMTRDWRDONEN(CFGMGMTRDWRDONEN),
.CFGMGMTWRENN(CFGMGMTWRENN),
.CFGMGMTWRREADONLYN(CFGMGMTWRREADONLYN),
.CFGMGMTWRRW1CASRWN(CFGMGMTWRRW1CASRWN),
.CFGMSGDATA(CFGMSGDATA),
.CFGMSGRECEIVED(CFGMSGRECEIVED),
.CFGMSGRECEIVEDASSERTINTA(CFGMSGRECEIVEDASSERTINTA),
.CFGMSGRECEIVEDASSERTINTB(CFGMSGRECEIVEDASSERTINTB),
.CFGMSGRECEIVEDASSERTINTC(CFGMSGRECEIVEDASSERTINTC),
.CFGMSGRECEIVEDASSERTINTD(CFGMSGRECEIVEDASSERTINTD),
.CFGMSGRECEIVEDDEASSERTINTA(CFGMSGRECEIVEDDEASSERTINTA),
.CFGMSGRECEIVEDDEASSERTINTB(CFGMSGRECEIVEDDEASSERTINTB),
.CFGMSGRECEIVEDDEASSERTINTC(CFGMSGRECEIVEDDEASSERTINTC),
.CFGMSGRECEIVEDDEASSERTINTD(CFGMSGRECEIVEDDEASSERTINTD),
.CFGMSGRECEIVEDERRCOR(CFGMSGRECEIVEDERRCOR),
.CFGMSGRECEIVEDERRFATAL(CFGMSGRECEIVEDERRFATAL),
.CFGMSGRECEIVEDERRNONFATAL(CFGMSGRECEIVEDERRNONFATAL),
.CFGMSGRECEIVEDPMASNAK(CFGMSGRECEIVEDPMASNAK),
.CFGMSGRECEIVEDPMETO(CFGMSGRECEIVEDPMETO),
.CFGMSGRECEIVEDPMETOACK(CFGMSGRECEIVEDPMETOACK),
.CFGMSGRECEIVEDPMPME(CFGMSGRECEIVEDPMPME),
.CFGMSGRECEIVEDSETSLOTPOWERLIMIT(CFGMSGRECEIVEDSETSLOTPOWERLIMIT),
.CFGMSGRECEIVEDUNLOCK(CFGMSGRECEIVEDUNLOCK),
.CFGPCIECAPINTERRUPTMSGNUM(CFGPCIECAPINTERRUPTMSGNUM),
.CFGPCIELINKSTATE(CFGPCIELINKSTATE),
.CFGPMCSRPMEEN(CFGPMCSRPMEEN),
.CFGPMCSRPMESTATUS(CFGPMCSRPMESTATUS),
.CFGPMCSRPOWERSTATE(CFGPMCSRPOWERSTATE),
.CFGPMFORCESTATE(CFGPMFORCESTATE),
.CFGPMFORCESTATEENN(CFGPMFORCESTATEENN),
.CFGPMHALTASPML0SN(CFGPMHALTASPML0SN),
.CFGPMHALTASPML1N(CFGPMHALTASPML1N),
.CFGPMRCVASREQL1N(CFGPMRCVASREQL1N),
.CFGPMRCVENTERL1N(CFGPMRCVENTERL1N),
.CFGPMRCVENTERL23N(CFGPMRCVENTERL23N),
.CFGPMRCVREQACKN(CFGPMRCVREQACKN),
.CFGPMSENDPMETON(CFGPMSENDPMETON),
.CFGPMTURNOFFOKN(CFGPMTURNOFFOKN),
.CFGPMWAKEN(CFGPMWAKEN),
.CFGPORTNUMBER(CFGPORTNUMBER),
.CFGREVID(CFGREVID),
.CFGROOTCONTROLPMEINTEN(CFGROOTCONTROLPMEINTEN),
.CFGROOTCONTROLSYSERRCORRERREN(CFGROOTCONTROLSYSERRCORRERREN),
.CFGROOTCONTROLSYSERRFATALERREN(CFGROOTCONTROLSYSERRFATALERREN),
.CFGROOTCONTROLSYSERRNONFATALERREN(CFGROOTCONTROLSYSERRNONFATALERREN),
.CFGSLOTCONTROLELECTROMECHILCTLPULSE(CFGSLOTCONTROLELECTROMECHILCTLPULSE),
.CFGSUBSYSID(CFGSUBSYSID),
.CFGSUBSYSVENDID(CFGSUBSYSVENDID),
.CFGTRANSACTION(CFGTRANSACTION),
.CFGTRANSACTIONADDR(CFGTRANSACTIONADDR),
.CFGTRANSACTIONTYPE(CFGTRANSACTIONTYPE),
.CFGTRNPENDINGN(CFGTRNPENDINGN),
.CFGVCTCVCMAP(CFGVCTCVCMAP),
.CFGVENDID(CFGVENDID),
.CMRSTN(CMRSTN),
.CMSTICKYRSTN(CMSTICKYRSTN),
.DBGMODE(DBGMODE),
.DBGSCLRA(DBGSCLRA),
.DBGSCLRB(DBGSCLRB),
.DBGSCLRC(DBGSCLRC),
.DBGSCLRD(DBGSCLRD),
.DBGSCLRE(DBGSCLRE),
.DBGSCLRF(DBGSCLRF),
.DBGSCLRG(DBGSCLRG),
.DBGSCLRH(DBGSCLRH),
.DBGSCLRI(DBGSCLRI),
.DBGSCLRJ(DBGSCLRJ),
.DBGSCLRK(DBGSCLRK),
.DBGSUBMODE(DBGSUBMODE),
.DBGVECA(DBGVECA),
.DBGVECB(DBGVECB),
.DBGVECC(DBGVECC),
.DLRSTN(DLRSTN),
.DRPADDR(DRPADDR),
.DRPCLK(DRPCLK),
.DRPDI(DRPDI),
.DRPDO(DRPDO),
.DRPEN(DRPEN),
.DRPRDY(DRPRDY),
.DRPWE(DRPWE),
.FUNCLVLRSTN(FUNCLVLRSTN),
.LL2BADDLLPERR(LL2BADDLLPERR),
.LL2BADTLPERR(LL2BADTLPERR),
.LL2LINKSTATUS(LL2LINKSTATUS),
.LL2PROTOCOLERR(LL2PROTOCOLERR),
.LL2RECEIVERERR(LL2RECEIVERERR),
.LL2REPLAYROERR(LL2REPLAYROERR),
.LL2REPLAYTOERR(LL2REPLAYTOERR),
.LL2SENDASREQL1(LL2SENDASREQL1),
.LL2SENDENTERL1(LL2SENDENTERL1),
.LL2SENDENTERL23(LL2SENDENTERL23),
.LL2SENDPMACK(LL2SENDPMACK),
.LL2SUSPENDNOW(LL2SUSPENDNOW),
.LL2SUSPENDOK(LL2SUSPENDOK),
.LL2TFCINIT1SEQ(LL2TFCINIT1SEQ),
.LL2TFCINIT2SEQ(LL2TFCINIT2SEQ),
.LL2TLPRCV(LL2TLPRCV),
.LL2TXIDLE(LL2TXIDLE),
.LNKCLKEN(LNKCLKEN),
.MIMRXRADDR(MIMRXRADDR),
.MIMRXRDATA(MIMRXRDATA),
.MIMRXREN(MIMRXREN),
.MIMRXWADDR(MIMRXWADDR),
.MIMRXWDATA(MIMRXWDATA),
.MIMRXWEN(MIMRXWEN),
.MIMTXRADDR(MIMTXRADDR),
.MIMTXRDATA(MIMTXRDATA),
.MIMTXREN(MIMTXREN),
.MIMTXWADDR(MIMTXWADDR),
.MIMTXWDATA(MIMTXWDATA),
.MIMTXWEN(MIMTXWEN),
.PIPECLK(PIPECLK),
.PIPERX0CHANISALIGNED(PIPERX0CHANISALIGNED),
.PIPERX0CHARISK(PIPERX0CHARISK),
.PIPERX0DATA(PIPERX0DATA),
.PIPERX0ELECIDLE(PIPERX0ELECIDLE),
.PIPERX0PHYSTATUS(PIPERX0PHYSTATUS),
.PIPERX0POLARITY(PIPERX0POLARITY),
.PIPERX0STATUS(PIPERX0STATUS),
.PIPERX0VALID(PIPERX0VALID),
.PIPERX1CHANISALIGNED(PIPERX1CHANISALIGNED),
.PIPERX1CHARISK(PIPERX1CHARISK),
.PIPERX1DATA(PIPERX1DATA),
.PIPERX1ELECIDLE(PIPERX1ELECIDLE),
.PIPERX1PHYSTATUS(PIPERX1PHYSTATUS),
.PIPERX1POLARITY(PIPERX1POLARITY),
.PIPERX1STATUS(PIPERX1STATUS),
.PIPERX1VALID(PIPERX1VALID),
.PIPERX2CHANISALIGNED(PIPERX2CHANISALIGNED),
.PIPERX2CHARISK(PIPERX2CHARISK),
.PIPERX2DATA(PIPERX2DATA),
.PIPERX2ELECIDLE(PIPERX2ELECIDLE),
.PIPERX2PHYSTATUS(PIPERX2PHYSTATUS),
.PIPERX2POLARITY(PIPERX2POLARITY),
.PIPERX2STATUS(PIPERX2STATUS),
.PIPERX2VALID(PIPERX2VALID),
.PIPERX3CHANISALIGNED(PIPERX3CHANISALIGNED),
.PIPERX3CHARISK(PIPERX3CHARISK),
.PIPERX3DATA(PIPERX3DATA),
.PIPERX3ELECIDLE(PIPERX3ELECIDLE),
.PIPERX3PHYSTATUS(PIPERX3PHYSTATUS),
.PIPERX3POLARITY(PIPERX3POLARITY),
.PIPERX3STATUS(PIPERX3STATUS),
.PIPERX3VALID(PIPERX3VALID),
.PIPERX4CHANISALIGNED(PIPERX4CHANISALIGNED),
.PIPERX4CHARISK(PIPERX4CHARISK),
.PIPERX4DATA(PIPERX4DATA),
.PIPERX4ELECIDLE(PIPERX4ELECIDLE),
.PIPERX4PHYSTATUS(PIPERX4PHYSTATUS),
.PIPERX4POLARITY(PIPERX4POLARITY),
.PIPERX4STATUS(PIPERX4STATUS),
.PIPERX4VALID(PIPERX4VALID),
.PIPERX5CHANISALIGNED(PIPERX5CHANISALIGNED),
.PIPERX5CHARISK(PIPERX5CHARISK),
.PIPERX5DATA(PIPERX5DATA),
.PIPERX5ELECIDLE(PIPERX5ELECIDLE),
.PIPERX5PHYSTATUS(PIPERX5PHYSTATUS),
.PIPERX5POLARITY(PIPERX5POLARITY),
.PIPERX5STATUS(PIPERX5STATUS),
.PIPERX5VALID(PIPERX5VALID),
.PIPERX6CHANISALIGNED(PIPERX6CHANISALIGNED),
.PIPERX6CHARISK(PIPERX6CHARISK),
.PIPERX6DATA(PIPERX6DATA),
.PIPERX6ELECIDLE(PIPERX6ELECIDLE),
.PIPERX6PHYSTATUS(PIPERX6PHYSTATUS),
.PIPERX6POLARITY(PIPERX6POLARITY),
.PIPERX6STATUS(PIPERX6STATUS),
.PIPERX6VALID(PIPERX6VALID),
.PIPERX7CHANISALIGNED(PIPERX7CHANISALIGNED),
.PIPERX7CHARISK(PIPERX7CHARISK),
.PIPERX7DATA(PIPERX7DATA),
.PIPERX7ELECIDLE(PIPERX7ELECIDLE),
.PIPERX7PHYSTATUS(PIPERX7PHYSTATUS),
.PIPERX7POLARITY(PIPERX7POLARITY),
.PIPERX7STATUS(PIPERX7STATUS),
.PIPERX7VALID(PIPERX7VALID),
.PIPETX0CHARISK(PIPETX0CHARISK),
.PIPETX0COMPLIANCE(PIPETX0COMPLIANCE),
.PIPETX0DATA(PIPETX0DATA),
.PIPETX0ELECIDLE(PIPETX0ELECIDLE),
.PIPETX0POWERDOWN(PIPETX0POWERDOWN),
.PIPETX1CHARISK(PIPETX1CHARISK),
.PIPETX1COMPLIANCE(PIPETX1COMPLIANCE),
.PIPETX1DATA(PIPETX1DATA),
.PIPETX1ELECIDLE(PIPETX1ELECIDLE),
.PIPETX1POWERDOWN(PIPETX1POWERDOWN),
.PIPETX2CHARISK(PIPETX2CHARISK),
.PIPETX2COMPLIANCE(PIPETX2COMPLIANCE),
.PIPETX2DATA(PIPETX2DATA),
.PIPETX2ELECIDLE(PIPETX2ELECIDLE),
.PIPETX2POWERDOWN(PIPETX2POWERDOWN),
.PIPETX3CHARISK(PIPETX3CHARISK),
.PIPETX3COMPLIANCE(PIPETX3COMPLIANCE),
.PIPETX3DATA(PIPETX3DATA),
.PIPETX3ELECIDLE(PIPETX3ELECIDLE),
.PIPETX3POWERDOWN(PIPETX3POWERDOWN),
.PIPETX4CHARISK(PIPETX4CHARISK),
.PIPETX4COMPLIANCE(PIPETX4COMPLIANCE),
.PIPETX4DATA(PIPETX4DATA),
.PIPETX4ELECIDLE(PIPETX4ELECIDLE),
.PIPETX4POWERDOWN(PIPETX4POWERDOWN),
.PIPETX5CHARISK(PIPETX5CHARISK),
.PIPETX5COMPLIANCE(PIPETX5COMPLIANCE),
.PIPETX5DATA(PIPETX5DATA),
.PIPETX5ELECIDLE(PIPETX5ELECIDLE),
.PIPETX5POWERDOWN(PIPETX5POWERDOWN),
.PIPETX6CHARISK(PIPETX6CHARISK),
.PIPETX6COMPLIANCE(PIPETX6COMPLIANCE),
.PIPETX6DATA(PIPETX6DATA),
.PIPETX6ELECIDLE(PIPETX6ELECIDLE),
.PIPETX6POWERDOWN(PIPETX6POWERDOWN),
.PIPETX7CHARISK(PIPETX7CHARISK),
.PIPETX7COMPLIANCE(PIPETX7COMPLIANCE),
.PIPETX7DATA(PIPETX7DATA),
.PIPETX7ELECIDLE(PIPETX7ELECIDLE),
.PIPETX7POWERDOWN(PIPETX7POWERDOWN),
.PIPETXDEEMPH(PIPETXDEEMPH),
.PIPETXMARGIN(PIPETXMARGIN),
.PIPETXRATE(PIPETXRATE),
.PIPETXRCVRDET(PIPETXRCVRDET),
.PIPETXRESET(PIPETXRESET),
.PL2DIRECTEDLSTATE(PL2DIRECTEDLSTATE),
.PL2L0REQ(PL2L0REQ),
.PL2LINKUP(PL2LINKUP),
.PL2RECEIVERERR(PL2RECEIVERERR),
.PL2RECOVERY(PL2RECOVERY),
.PL2RXELECIDLE(PL2RXELECIDLE),
.PL2RXPMSTATE(PL2RXPMSTATE),
.PL2SUSPENDOK(PL2SUSPENDOK),
.PLDBGMODE(PLDBGMODE),
.PLDBGVEC(PLDBGVEC),
.PLDIRECTEDCHANGEDONE(PLDIRECTEDCHANGEDONE),
.PLDIRECTEDLINKAUTON(PLDIRECTEDLINKAUTON),
.PLDIRECTEDLINKCHANGE(PLDIRECTEDLINKCHANGE),
.PLDIRECTEDLINKSPEED(PLDIRECTEDLINKSPEED),
.PLDIRECTEDLINKWIDTH(PLDIRECTEDLINKWIDTH),
.PLDIRECTEDLTSSMNEW(PLDIRECTEDLTSSMNEW),
.PLDIRECTEDLTSSMNEWVLD(PLDIRECTEDLTSSMNEWVLD),
.PLDIRECTEDLTSSMSTALL(PLDIRECTEDLTSSMSTALL),
.PLDOWNSTREAMDEEMPHSOURCE(PLDOWNSTREAMDEEMPHSOURCE),
.PLINITIALLINKWIDTH(PLINITIALLINKWIDTH),
.PLLANEREVERSALMODE(PLLANEREVERSALMODE),
.PLLINKGEN2CAP(PLLINKGEN2CAP),
.PLLINKPARTNERGEN2SUPPORTED(PLLINKPARTNERGEN2SUPPORTED),
.PLLINKUPCFGCAP(PLLINKUPCFGCAP),
.PLLTSSMSTATE(PLLTSSMSTATE),
.PLPHYLNKUPN(PLPHYLNKUPN),
.PLRECEIVEDHOTRST(PLRECEIVEDHOTRST),
.PLRSTN(PLRSTN),
.PLRXPMSTATE(PLRXPMSTATE),
.PLSELLNKRATE(PLSELLNKRATE),
.PLSELLNKWIDTH(PLSELLNKWIDTH),
.PLTRANSMITHOTRST(PLTRANSMITHOTRST),
.PLTXPMSTATE(PLTXPMSTATE),
.PLUPSTREAMPREFERDEEMPH(PLUPSTREAMPREFERDEEMPH),
.RECEIVEDFUNCLVLRSTN(RECEIVEDFUNCLVLRSTN),
.SYSRSTN(SYSRSTN),
.TL2ASPMSUSPENDCREDITCHECK(TL2ASPMSUSPENDCREDITCHECK),
.TL2ASPMSUSPENDCREDITCHECKOK(TL2ASPMSUSPENDCREDITCHECKOK),
.TL2ASPMSUSPENDREQ(TL2ASPMSUSPENDREQ),
.TL2ERRFCPE(TL2ERRFCPE),
.TL2ERRHDR(TL2ERRHDR),
.TL2ERRMALFORMED(TL2ERRMALFORMED),
.TL2ERRRXOVERFLOW(TL2ERRRXOVERFLOW),
.TL2PPMSUSPENDOK(TL2PPMSUSPENDOK),
.TL2PPMSUSPENDREQ(TL2PPMSUSPENDREQ),
.TLRSTN(TLRSTN),
.TRNFCCPLD(TRNFCCPLD),
.TRNFCCPLH(TRNFCCPLH),
.TRNFCNPD(TRNFCNPD),
.TRNFCNPH(TRNFCNPH),
.TRNFCPD(TRNFCPD),
.TRNFCPH(TRNFCPH),
.TRNFCSEL(TRNFCSEL),
.TRNLNKUP(TRNLNKUP),
.TRNRBARHIT(TRNRBARHIT),
.TRNRD(TRNRD),
.TRNRDLLPDATA(TRNRDLLPDATA),
.TRNRDLLPSRCRDY(TRNRDLLPSRCRDY),
.TRNRDSTRDY(TRNRDSTRDY),
.TRNRECRCERR(TRNRECRCERR),
.TRNREOF(TRNREOF),
.TRNRERRFWD(TRNRERRFWD),
.TRNRFCPRET(TRNRFCPRET),
.TRNRNPOK(TRNRNPOK),
.TRNRNPREQ(TRNRNPREQ),
.TRNRREM(TRNRREM),
.TRNRSOF(TRNRSOF),
.TRNRSRCDSC(TRNRSRCDSC),
.TRNRSRCRDY(TRNRSRCRDY),
.TRNTBUFAV(TRNTBUFAV),
.TRNTCFGGNT(TRNTCFGGNT),
.TRNTCFGREQ(TRNTCFGREQ),
.TRNTD(TRNTD),
.TRNTDLLPDATA(TRNTDLLPDATA),
.TRNTDLLPDSTRDY(TRNTDLLPDSTRDY),
.TRNTDLLPSRCRDY(TRNTDLLPSRCRDY),
.TRNTDSTRDY(TRNTDSTRDY),
.TRNTECRCGEN(TRNTECRCGEN),
.TRNTEOF(TRNTEOF),
.TRNTERRDROP(TRNTERRDROP),
.TRNTERRFWD(TRNTERRFWD),
.TRNTREM(TRNTREM),
.TRNTSOF(TRNTSOF),
.TRNTSRCDSC(TRNTSRCDSC),
.TRNTSRCRDY(TRNTSRCRDY),
.TRNTSTR(TRNTSTR),
.USERCLK(USERCLK),
.USERCLK2(USERCLK2),
.USERRSTN(USERRSTN)
);
endmodule