本帖最后由 XLDZZ 于 2011-5-29 18:00 编辑
下文是我自己写的异步fifo代码 写的比较简单(没有使用价值,没加FULL,EMPTY等型号) 只是为了学习fifo的写法 还请坛内的高手指点 有无错误
module V_TEST(
RST_B,
CLK_W,
CLK_R,
DATA_IN,
DATA_OUT
);
input RST_B;
input CLK_W;
input CLK_R;
input DATA_IN;
output DATA_OUT;
wire RST_B;
wire CLK_W;
wire CLK_R;
wire[7 :0]DATA_IN;
reg [7 :0]DATA_OUT;
reg [12 :0] POINT_W;
reg [12 :0] POINT_R;
reg [7 :0] FIFO[4096:0]; //异步FIFO
[email=always@(posedge]always@(posedge[/email] CLK_W or negedge RST_B)//(敏感信号列表 CLK_W和RST_B)
begin
if(!RST_B)
begin
POINT_W<=0;
end
else
begin
POINT_W<=POINT_W+1'B1;
FIFO[POINT_W]<=DATA_IN;
end
end
[email=always@(posedge]always@(posedge[/email] CLK_R or negedge RST_B)//(敏感信号列表 CLK_R和RST_B)
begin
if(!RST_B)
begin
POINT_R<=0;
end
else
begin
POINT_R<=POINT_R+1'B1;
DATA_OUT<=FIFO[POINT_R];
end
end
endmodule |