异步FIFO写入数据问题 DVI控制时序
现在遇到一个问题:DVI视频信号中的DE信号和像素数据是与像素时钟同步的,DE的上升沿和第一个像素数据的边沿是对齐的(见图)。如果不用行场同步信号去计数获得有效像素数据的起始边沿,而是利用DE信号,用异步FIFO作为解码接收缓存,由于FIFO的写请求与数据写入有一个时钟周期的延时,将DE作为写请求信号,必然会导致起码第一个数据的丢失问题。这个问题如何解决,怎么做第一个数据才不会丢失呢? DE是你自己产生的么,如果是,你可以生成一个比DE快一个周期的信号不就行了么 zkf0100007 发表于 2014-5-26 09:26DE是你自己产生的么,如果是,你可以生成一个比DE快一个周期的信号不就行了么 ...
DE信号不是自己产生的,是DVI解码芯片。 .数据也延迟一拍 楼上正解,不提前DE就延迟数据,效果是一样的 “由于FIFO的写请求与数据写入有一个时钟周期的延时”
这话什么意思? 蓝色风暴@FPGA 发表于 2014-5-26 15:29
“由于FIFO的写请求与数据写入有一个时钟周期的延时”
这话什么意思?
异步FIFO的写时钟上升沿如果恰好与写请求上升沿对齐,这个时候准备好的数据在下一个时钟周期才能写入FIFO。而我现在想用DE做写请求信号,这个时候的DE和数据是在同一个时钟沿出现,那么第一个数据会丢失 Lydon 发表于 2014-5-26 18:24
异步FIFO的写时钟上升沿如果恰好与写请求上升沿对齐,这个时候准备好的数据在下一个时钟周期才能写入FIFO ...
还是没明白,既然DE与数据是对齐的,那么有多少个DE,就能写多少个数据进FIFO 蓝色风暴@FPGA 发表于 2014-5-27 09:51
还是没明白,既然DE与数据是对齐的,那么有多少个DE,就能写多少个数据进FIFO ...
写入时钟wrclk的每个上升沿会判断写入请求信号wrreq是否有效,若是有效则FIFO会相应的锁存当前的写入数据data。从基本时序上分析,wrclk的上升沿需要对准wrreq和data的中央,这是外部传输过来的源信号必须满足的基本关系。而当前写入时钟wrclk的上升沿对准的是写入请求信号wrreq(也就是DE)的上升沿,那么只有在下一个时钟上升沿才能把数据写入,此时已经是第二个像素数据了 Fourier00 发表于 2014-5-26 14:02
.数据也延迟一拍
数据延迟怎么做好呢? Lydon 发表于 2014-5-27 10:20
写入时钟wrclk的每个上升沿会判断写入请求信号wrreq是否有效,若是有效则FIFO会相应的锁存当前的写入数据 ...
“而当前写入时钟wrclk的上升沿对准的是写入请求信号wrreq(也就是DE)的上升沿”
这只能说明你的输入源有问题,或者你可以用下降沿 Lydon 发表于 2014-5-27 10:26 数据延迟怎么做好呢?
用寄存器就可以
页:
[1]