1.single port sram
module single_port_sram
#(parameter D_WIDTH = 8,A_WIDTH = 4)
(
input clk,
input reset_n,
input csen_n,
input wren_n,
input [A_WIDTH-1:0] addr,
input [D_WIDTH-1 :0] wdata,
output reg [D_WIDTH-1 :0 ] rdata
);
reg [D_WIDTH-1 :0] mem [2**A_WIDTH-1:0];
always @(posedge clk or negedge reset_n)begin
if(~reset_n)begin
for (i=0 ; i<2**A_WIDTH;i=i+1)
mem[i]<={D_WIDTH{1'b0}};
end
else if(!csen_n & !wren_n)
mem[addr] <= wdata;
end
always@(posedge clk)begin
if(wren_n&(!csen_n))
rdata<= mem[addr];
else
rdata <= {D_WIDTH {1'bz}};
end
endmodule
版权声明:本文为ygyglg原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。