mirror of https://github.com/YosysHQ/yosys.git
57 lines
1.1 KiB
Verilog
57 lines
1.1 KiB
Verilog
module \$__NX_PDPSC512K (CLK2, A1ADDR, A1DATA, A1EN, B1ADDR, B1DATA, B1EN);
|
|
parameter CFG_ABITS = 14;
|
|
parameter CFG_DBITS = 32;
|
|
parameter CFG_ENABLE_A = 4;
|
|
|
|
parameter CLKPOL2 = 1;
|
|
parameter [524287:0] INIT = 524287'b0;
|
|
|
|
input CLK2;
|
|
|
|
input [CFG_ABITS-1:0] A1ADDR;
|
|
input [CFG_DBITS-1:0] A1DATA;
|
|
input [CFG_ENABLE_A-1:0] A1EN;
|
|
|
|
input [CFG_ABITS-1:0] B1ADDR;
|
|
output [CFG_DBITS-1:0] B1DATA;
|
|
input B1EN;
|
|
|
|
wire clk;
|
|
wire [31:0] rd;
|
|
assign B1DATA = rd[CFG_DBITS-1:0];
|
|
|
|
generate
|
|
if (CLKPOL2)
|
|
assign clk = CLK2;
|
|
else
|
|
INV clk_inv_i (.A(CLK2), .Z(clk));
|
|
endgenerate
|
|
|
|
wire we = |A1EN;
|
|
|
|
localparam INIT_CHUNK_SIZE = 4096;
|
|
|
|
function [5119:0] permute_init;
|
|
input [INIT_CHUNK_SIZE-1:0] chunk;
|
|
integer i;
|
|
begin
|
|
for (i = 0; i < 128; i = i + 1'b1)
|
|
permute_init[i * 40 +: 40] = {8'b0, chunk[i * 32 +: 32]};
|
|
end
|
|
endfunction
|
|
|
|
generate
|
|
PDPSC512K #(
|
|
.OUTREG("NO_REG"),
|
|
.ECC_BYTE_SEL("BYTE_EN"),
|
|
`include "lrams_init.vh"
|
|
.GSR("DISABLED")
|
|
) _TECHMAP_REPLACE_ (
|
|
.CLK(clk), .RSTR(1'b0),
|
|
.DI(A1DATA), .ADW(A1ADDR), .CEW(we), .WE(we), .CSW(1'b1),
|
|
.ADR(B1ADDR), .DO(rd), .CER(B1EN), .CSR(1'b1),
|
|
);
|
|
endgenerate
|
|
|
|
endmodule
|