blob: 869742a5044b27501b8c78ef5b6ff47397fa1c57 [file] [log] [blame]
`default_nettype none
module Ram_1w_1rs #(
parameter wordCount = 256,
parameter wordWidth = 32,
parameter clockCrossing = 1'b0,
parameter technology = "auto",
parameter readUnderWrite = "dontCare",
parameter wrAddressWidth = 8,
parameter wrDataWidth = 32,
parameter wrMaskWidth = 1,
parameter wrMaskEnable = 1'b0,
parameter rdAddressWidth = 8,
parameter rdDataWidth = 32
) (
`ifdef USE_POWER_PINS
inout vccd1, // User area 1 1.8V supply
inout vssd1, // User area 1 digital ground
`endif
input wr_clk, //i
input wr_en, //i
input [wrMaskWidth-1:0] wr_mask, //i
input [wrAddressWidth-1:0] wr_addr, //i
input [wrDataWidth-1:0] wr_data, //i
input rd_clk, //i
input rd_en, //i
input [rdAddressWidth-1:0] rd_addr, //i
output reg [rdDataWidth-1:0] rd_data //o
);
wire wr_mask0;
assign wr_mask0 = wrMaskEnable?wr_mask:4'hf;
sky130_sram_1kbyte_1rw1r_32x256_8 ram (
`ifdef USE_POWER_PINS
.vccd1(vccd1),
.vssd1(vssd1),
`endif
.clk0 (wr_clk),
.csb0 (~wr_en),
.web0 (~wr_en),
.wmask0 (wr_mask0),
.addr0 (wr_addr),
.din0 (wr_data),
.dout0 (),
.clk1 (rd_clk),
.csb1 (~rd_en),
.addr1 (rd_addr),
.dout1 (rd_data)
);
endmodule
`default_nettype wire