异步ram长用于异步FIFO中。其模型如下:
module async_ram #(parameter DT_WID= 8,
parameter ADR_WID= 9)(
input wr_clk,
input wr_en,
input [ADR_WID-1:0] wr_addr,
input [DT_WID-1:0] wr_dt,
input rd_clk,
input rd_en,
input [ADR_WID-1:0] rd_addr,
output [DT_WID-1:0] rd_dt
);
parameter SRAM_DEPTH = 2**ADR_WID;
reg [DT_WID-1:0] mem[SRAM_DEPTH-1:0];
always @(posedeg rd_clk) begin
if (rd_en) begin
rd_dt <= mem[rd_addr];
end
end
always @(posedeg rd_clk) begin
if (wr_en) begin
mem[wr_addr] <= wr_dt;
end
end
endmodule