FIFO的读写

1.同步时钟FIFO的读写(用同一个时钟)
具体的工程可见FPGA的工程中:
不空的标志出现从第一个数据写入,最后一个数据读出的时间;
满标志出现在最后一个数据的写入,到第一个数据的读出之前的时间段;
















2.异步步时钟FIFO的读写:
异步FIFO实例,对FPGA片内DCFIFO进行读写测试,FIFO的读写时钟不同,且写入位宽为8bit,读出位宽为16bit
1.在本设计中FIFO的读写使能通过计数器隔离开,先写后读。
2.设计中仿真数据没有32位,故满标志一直未满;
3.1
图一整体的读写时序
3.2写时序的开始ba数据开始
写操作时序
(fifo_wren通过计数器给出)12.5M时钟写入宽度为8bits

3.2读时序
FIFO的读时钟是写时钟的4倍,即50M,读出的位宽设置为16bits;
4说明:
从图一可以得知FIFO的读写时钟频率与位宽没有直接的关系,FIFO就是一个装置,读时钟越快,读的宽度越大,把FIFO的读空的时间越短而已;














5.fifo的读写使能都为1,边读边写(个人理解);、

fifo_controller uut_fifo_controller(
.rst(!rst_n), // input rst
.wr_clk(wr_clk), // input wr_clk//PLL输出12.5MHz时钟
.rd_clk(rd_clk), // input rd_clk//PLL输出50MHz时钟
.din(fifo_wrdb), // input [7 : 0] din
.wr_en(1), // input wr_en
.rd_en(1), // input rd_en
.dout(fifo_rddb), // output [15 : 0] dout
.full(fifo_full), // output full
.empty(fifo_empty) // output empty
);
边读边写的整体时序
说明:边读边写的特点
1.写时序的时间=读时序的时间
2.与读写时钟的频率无关,不是读时钟50M,数据就是50M,
具体要计算读出数据的频率,
写时钟频率*写数据宽度= 读数据宽度*读出数据的频率( 不是读时钟频率
如:12.5*writ_dth(8)=rd_width(16)*6.25( 不是50M)








评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值