微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于FIFO的一段设计代码问题,有点看不懂,,求解答

关于FIFO的一段设计代码问题,有点看不懂,,求解答

时间:10-02 整理:3721RD 点击:
alway@(posedge wclk or posedge reset)if(reset)
full<=1'b0;
else if(waddr_gray_next==wclk_raddr_reg2&&wen=1'b0)
full<=1'b1;
elseif(waddr_gray!=wclk_raddr_reg2)
full<=1'b0;
else
full<=full
wclk是是写时钟,full高有效,waddr_gray格雷码的写地址,wclk_raddr_reg2是读地址,wen是读使能,低有效,
问题有以下几点
1,waddr_gray_next==wclk_raddr_reg这个判决条件,,为啥不是waddr_gray==wclk_raddr_reg?

2,elseif(waddr_gray!=wclk_raddr_reg2)这句话是否多余,,有什么作用,,我自己看不出有什么作用

跪求知道的大神解释哈,,

如果waddr_gray==wclk_raddr_reg,同时写的话,就有可能FIFO溢出了
elseif(waddr_gray!=wclk_raddr_reg2)是在full置高后清零的


哦,那个next意思是如果深度为N,那么数据写入为N-1个的时候就判定为满,这样留了一个空地址,也就是所谓的几乎满判定吗?

wclk_raddr_reg2是读地址,full是用于写的,因此并不能认为写到n-1就不写了,这得看你的读写时钟关系以及wclk_raddr_reg值的设定

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top