文章目录
前言
本文详细介绍同步FIFO和异步FIFO设计并且附详细rtl设计代码和testbench代码,供大家参考
一、FIFO是什么?
FIFO (先入先出, First In First Out )存储器,在 FPGA 和数字 IC 设计中非常常用。 根据接入的读写时钟信号是否同步,可以分为同步 FIFO 和异步 FIFO 。FIFO 底层基于双口 RAM 。同步 FIFO 的读写时钟一致,异步 FIFO 读时钟和写时钟不同。
同步FIFO 主要应用于速率匹配(数据缓冲)
异步 FIFO 主要用于多 bit 信号的跨时钟域处理。
二、同步FIFO设计
FIFO底层基于双端口RAM实现
1.接口说明
图片来自牛客网


根据同步 FIFO 的接口和双口 RAM 的接口,在借助双口 RAM 实现同步 FIFO 时,只需要加入读、写控制逻辑即可。在写逻辑中,用于产生写地址和写满信号; 在读逻辑中,用于产生读地址和读空信号。 读写控制逻辑还需要受到读写使能信号的控制。
2.读写地址逻辑
对于写地址而言:
(1) 写使能有效(要写入);
(2) 没写满(能写入);
//写数据逻辑
always @(posedge i_clk or posedge i_rst)begin
if(i_rst)
r_waddr <= 'd0;
else if(i_wr_en && !o_wfull

本文详细介绍了同步FIFO和异步FIFO的设计,包括它们的接口、地址逻辑、空满信号的判断方法,以及格雷码在异步设计中的应用。同时提供了相应的RTL代码和testbench示例。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



