mirror of https://github.com/YosysHQ/yosys.git
Xilinx DRAMS: RAM64X1D, RAM128X1D
This commit is contained in:
parent
25781e329b
commit
229825e1b8
|
@ -1,7 +1,7 @@
|
|||
|
||||
bram $__XILINX_RAM32X1D
|
||||
bram $__XILINX_RAM64X1D
|
||||
init 1
|
||||
abits 5
|
||||
abits 6
|
||||
dbits 1
|
||||
groups 2
|
||||
ports 1 1
|
||||
|
@ -12,6 +12,23 @@ bram $__XILINX_RAM32X1D
|
|||
clkpol 0 2
|
||||
endbram
|
||||
|
||||
match $__XILINX_RAM32X1D
|
||||
bram $__XILINX_RAM128X1D
|
||||
init 1
|
||||
abits 7
|
||||
dbits 1
|
||||
groups 2
|
||||
ports 1 1
|
||||
wrmode 0 1
|
||||
enable 0 1
|
||||
transp 0 0
|
||||
clocks 0 1
|
||||
clkpol 0 2
|
||||
endbram
|
||||
|
||||
match $__XILINX_RAM64X1D
|
||||
or_next_if_better
|
||||
endmatch
|
||||
|
||||
match $__XILINX_RAM128X1D
|
||||
endmatch
|
||||
|
||||
|
|
|
@ -1,11 +1,20 @@
|
|||
|
||||
module RAM32X1D (
|
||||
module RAM64X1D (
|
||||
output DPO, SPO,
|
||||
input A0, A1, A2, A3, A4, D,
|
||||
input DPRA0, DPRA1, DPRA2, DPRA3, DPRA4,
|
||||
input WCLK, WE
|
||||
input D, WCLK, WE,
|
||||
input A0, A1, A2, A3, A4, A5,
|
||||
input DPRA0, DPRA1, DPRA2, DPRA3, DPRA4, DPRA5
|
||||
);
|
||||
parameter INIT = 32'h0;
|
||||
parameter INIT = 64'h0;
|
||||
parameter IS_WCLK_INVERTED = 1'b0;
|
||||
endmodule
|
||||
|
||||
module RAM128X1D (
|
||||
output DPO, SPO,
|
||||
input D, WCLK, WE,
|
||||
input [6:0] A, DPRA
|
||||
);
|
||||
parameter INIT = 128'h0;
|
||||
parameter IS_WCLK_INVERTED = 1'b0;
|
||||
endmodule
|
||||
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
|
||||
module \$__XILINX_RAM32X1D (CLK1, A1ADDR, A1DATA, B1ADDR, B1DATA, B1EN);
|
||||
parameter [31:0] INIT = 32'bx;
|
||||
module \$__XILINX_RAM64X1D (CLK1, A1ADDR, A1DATA, B1ADDR, B1DATA, B1EN);
|
||||
parameter [63:0] INIT = 64'bx;
|
||||
parameter CLKPOL2 = 1;
|
||||
input CLK1;
|
||||
|
||||
input [4:0] A1ADDR;
|
||||
input [5:0] A1ADDR;
|
||||
output A1DATA;
|
||||
|
||||
input [4:0] B1ADDR;
|
||||
input [5:0] B1ADDR;
|
||||
input B1DATA;
|
||||
input B1EN;
|
||||
|
||||
RAM32X1D #(
|
||||
RAM64X1D #(
|
||||
.INIT(INIT),
|
||||
.IS_WCLK_INVERTED(!CLKPOL2)
|
||||
) _TECHMAP_REPLACE_ (
|
||||
|
@ -20,6 +20,7 @@ module \$__XILINX_RAM32X1D (CLK1, A1ADDR, A1DATA, B1ADDR, B1DATA, B1EN);
|
|||
.DPRA2(A1ADDR[2]),
|
||||
.DPRA3(A1ADDR[3]),
|
||||
.DPRA4(A1ADDR[4]),
|
||||
.DPRA5(A1ADDR[5]),
|
||||
.DPO(A1DATA),
|
||||
|
||||
.A0(B1ADDR[0]),
|
||||
|
@ -27,6 +28,33 @@ module \$__XILINX_RAM32X1D (CLK1, A1ADDR, A1DATA, B1ADDR, B1DATA, B1EN);
|
|||
.A2(B1ADDR[2]),
|
||||
.A3(B1ADDR[3]),
|
||||
.A4(B1ADDR[4]),
|
||||
.A5(B1ADDR[5]),
|
||||
.D(B1DATA),
|
||||
.WCLK(CLK1),
|
||||
.WE(B1EN)
|
||||
);
|
||||
endmodule
|
||||
|
||||
module \$__XILINX_RAM128X1D (CLK1, A1ADDR, A1DATA, B1ADDR, B1DATA, B1EN);
|
||||
parameter [127:0] INIT = 128'bx;
|
||||
parameter CLKPOL2 = 1;
|
||||
input CLK1;
|
||||
|
||||
input [6:0] A1ADDR;
|
||||
output A1DATA;
|
||||
|
||||
input [6:0] B1ADDR;
|
||||
input B1DATA;
|
||||
input B1EN;
|
||||
|
||||
RAM128X1D #(
|
||||
.INIT(INIT),
|
||||
.IS_WCLK_INVERTED(!CLKPOL2)
|
||||
) _TECHMAP_REPLACE_ (
|
||||
.DPRA(A1ADDR),
|
||||
.DPO(A1DATA),
|
||||
|
||||
.A(B1ADDR),
|
||||
.D(B1DATA),
|
||||
.WCLK(CLK1),
|
||||
.WE(B1EN)
|
||||
|
|
Loading…
Reference in New Issue