FPGA中利用fifo时钟域转换---慢时钟域转快时钟域

FPGA中利用fifo时钟域转换—慢时钟域转快时钟域

一、时间计算方法

FIFO的输入数据的时钟是40MHz,FIFO输出数据取60MHz,刚好是40MHz的1.5倍,将慢时钟域转快时钟域。另外,fifo输出的数据,要输出给上位机,一帧数据要传输640*512=327680个像素数据,要求帧频为100Hz,对应的时间是1/100Hz=10ms,即要求10ms内将327680个数据传输完毕。验证fifo的输出时钟60MHz是否满足要求的方法:输出一帧数据的时间 = 一帧的总数据量/频率,T=(640 ×1.5 ×512 )/ 60M=8.192 ms

什么是频率:单位时间内周期变化的次数。1 Hz 表示每秒发生一次

二、注意的问题

1、FPGA中的计数器其实就是在计时。FIFO输入端的时钟频率小,输出时钟频率快,为了保证输入FIFO的数据与输出数据速度相等,即FIFO不至于读空,行计数器计数的最大值也必须放大1.5倍,即640*1.5=960,从FIFO中读数据时前640个计数时数据有效,这640个计数期间可以至一个标志rd_en位为1,作为FIFO读使能信号,960中的后320个计时为FIFO读数据消隐期,此时rd_en=0,即不读数据。这样输入FIFO的数据读出FIFO的数据时间上就可以匹配上,不至于将FIFO读空。

2、先预存一行640个数据到FIFO中,存第二行数据的同时,读取第一行的数据,这样FIFO就不会被读空;

3、FIFO输出后面的模块必须要60M的时钟来接收数据,不然数据会不正确。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值