相对于同步FIFO,内部读写时钟是同一个时钟源,异步FIFO,内部读写时钟是独立的。所以,异步FIFO的参数有:
宽度:每个数据的位数;
深度:FIFO最多能存储多少个N位的数据。
还有Din:输入
nWr:写使能
Wr_Clk:写时钟
nRd:读使能
Rd_Clk:读时钟
Dout:输出;
Buff:缓存
以下是异步FIFO的实现:
/*功能定义:用来实现异步FIFO;
定义:异步FIFO是先入先出的存储器,和一般存储器不一样,没有外部读写地址线,
靠内部读写指针自动增1实现读写,因此不能像一般存储器一样读写任意地址的数据;
异步FIFO设计难点:第一、二进制码怎么转换成BCD码;第二、转换后怎么检测“空”、“满”标志;
vefilog实现异步FIFO的思想:数据的写入和读出->读写地址的生成(自加1)->两级触发器级联同步异步信号
(读时钟域同步写指针、写时钟域同步读指针)->检测空、满标志->更新空、满标志*/
//注:除FIFO_Entry_Addr和FIFO_Exit_AddrFIFO 内部的读地址和写地址是Asize位,其余读写指针都是Asize+1位
module Asyn_FIFO(Din,Rd_Clk,nRd,nWr,Wr_Clk,Dout,Empty,Full);
input [Asize-1:0] Din;
input Rd_Clk;
input nRd;
input nWr;
input Wr_Clk;
output reg[Asize-1:0] Dout;
output reg Empty;
output reg Full;
reg [Asize-1:0] Buffer[Dsize-1];
reg [Bsize:0] Rd_Addr_Bin;
reg [Bsize:0] Wr_Addr_Bin;
wire [Bsize:0] Rd_NextAd

本文介绍了异步FIFO的基本概念,其内部读写时钟独立,关键参数包括数据宽度和深度。讨论了异步FIFO的主要信号,如Din、nWr、Wr_Clk、nRd、Rd_Clk、Dout以及Buffer的作用,并概述了其实现过程。
最低0.47元/天 解锁文章
3600

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



