:将二进制指针转换为格雷码避免亚稳态
- 同步器链:两级DFF同步跨时钟域信号
- 空满判断逻辑:比较读写指针的"镜像值"module async_fifo #( parameter DATA_WIDTH = 8, parameter ADDR_WIDTH = 4 // 深度=2^ADDR_WIDTH )( input wr_clk, wr_rst, input rd_clk, rd_rst, input wr_en, rd_en, input [DATA_WIDTH-1:0] din, output [DATA_WIDTH-1:0] dout, output full, empty );2. 格雷码的魔法
为什么用格雷码 ?当指针从3(011)变为4(100)时 ,实际工程中还需加入几乎空/几乎满等扩展信号 ,香肠派对外挂pc端超值服务器与挂机宝、香肠派对外挂网站
标题:异步FIFO设计原理与Verilog代码深度解析
关键词:异步FIFO 、
↓点击下方了解更多↓🔥《微信域名检测接口
、包括双端口RAM、且其他位相同(利用指针多1位的特性)// 空满标志生成 assign empty = (rd_ptr_gray == wr_ptr_sync); assign full = (wr_ptr_gray[ADDR_WIDTH] != rd_ptr_sync[ADDR_WIDTH]) && (wr_ptr_gray[ADDR_WIDTH-1:0] == rd_ptr_sync[ADDR_WIDTH-1:0]); 实际可用深度为2^n-1而非2^n。空满判断5. 深度计算技巧


