深度16,数据宽度16, 地址宽度7bit
//同步双端口ram,位宽16,深度128
module DP_RAM #(
parameter ADDR_WIDTH = 7,
parameter DATA_WIDTH = 16,
parameter DATA_DEPTH = 16
) (
input cs_n,
input [DATA_WIDTH-1:0]wr_data,
input [ADDR_WIDTH-1:0]wr_addr,
input wr_en,
input [ADDR_WIDTH-1:0]rd_addr,
input rd_en,
output [DATA_WIDTH-1:0]rd_data_o,
input clk,rst_n
);
reg [DATA_WIDTH-1:0] mem [DATA_DEPTH-1 : 0];
reg [DATA_WIDTH-1:0]rd_data;
integer i;
//initialization
// synopsys_translate_off
initial begin
for(i=0; i < DATA_DEPTH; i = i + 1) begin
mem[i] = 16'h0000;
end
end
// synopsys_translate_on
always@(posedge clk or negedge rst_n)
begin
if ((~cs_n) && wr_en)
begin
mem[wr_addr] <= wr_data;
end
end
always@(posedge clk or negedge rst_n)
begin
if ((!c