集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 801|回复: 0

请教异步fifo设计时的一个问题

[复制链接]
zhiweiqiang33 发表于 2012-11-13 11:01:49 | 显示全部楼层 |阅读模式
assign    usedword=(wptr>rptr)?(wptr-rptr)full?4'hFempty?4'h016-rptr+wptr)));
always @ (posedge w_clk or posedge clear)
if(clear)
  begin
   wptr<=4'h0;
   pwptr<=4'h0;
  end
else if(!full && wr) begin
  mem[wptr]<=data_in;
  pwptr<=wptr;
  wptr<=(&wptr)?4'h0wptr+1);
end   
always @ (posedge r_clk or posedge clear)
if(clear)
  begin
   rptr<=4'h0;
   prptr<=4'h0;
   data_out<=8'h00;
  end
else if(!empty && rd) begin
  data_out<=mem[rptr];
  prptr<=rptr;
  rptr<=(&rptr)?4'h0rptr+1);
end
reg  n_full=1'b0;
assign full=(wptr==rptr)?n_full:1'b0;
assign empty=(wptr==rptr)?(~n_full):1'b0;
always @ (posedge w_clk or posedge r_clk)
if(w_clk)    n_full<=(wptr==prptr);
else          n_full<=(wptr==prptr);
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-6-26 21:19 , Processed in 0.063237 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表