格雷码转换
格雷码属于镜像码
代码语言:javascript复制always @(wptr or winc)
begin: Gray_inc
integer i;
for(i=0; i<=ADDRSIZE; i=i 1)
wbin[i]= ^ (wptr>>i); //grey to binary
if (!wfull)
wbnext = wbin winc; //FIFO
else
wbnext = wbin;
wgnext=(wbnext>>1) ^ wbnext; //binary to grey
end
FIFO满状态判断
除最高两位外都相同,前两位的异或值相同(2ndmsb),首位不同。
代码语言:javascript复制 wfull <= ((wgnext[ADDRSIZE] !==wrptr2[ADDRSIZE])&&(w_2ndmsb== wr_2ndmsb)
&& (wgnext[ADDRSIZE-2:0]== wrptr2[ADDRSIZE-2:0]));
亚稳态处理
多级寄存器同步,是一种方式,
https://www.cnblogs.com/xiaoxie2014/p/4149565.html