smbxfdbz 发表于 2024-3-13 14:52:53

AXIS这种接口读片内block memory,接口逻辑怎么设计比较好?

AXIS是用ready和valid握手,这种通信逻辑比较适合对接first-word-fall-through类型的fifo,rd_en连到ready上,valid连到~empty上就行了

但是读memory,感觉接口逻辑很难设计,因为mem地址有效后,一般要两个周期才会输出有效数据,输出有效数据后,ready还不一定有效,必须等valid和ready同时有效后,才能读下个地址,感觉不加FWFT类型的FIFO很难实现满带宽传输。
有没有更简捷一些的方式处理这种AXIS读取mem的接口逻辑呢?请坛友指教一下,感谢!

wye11083 发表于 2024-3-13 15:15:40

这个必须用fwft。至于bram延迟,需要自己写逻辑处理(预读)。或者,连续读连续写(忽略wready)。axi协议这样设计简化了数据同步的处理。

smbxfdbz 发表于 2024-3-23 00:09:34

wye11083 发表于 2024-3-13 15:15
这个必须用fwft。至于bram延迟,需要自己写逻辑处理(预读)。或者,连续读连续写(忽略wready)。axi协议 ...
(引用自2楼)

谢谢大神回复,再向您请教个问题

如下图所示,我想用FPGA驱动显示器2与显示器1同步刷新,显示器1会给FPGA一个帧同步信号
FPGA的DP IP是用AXIS输入视频数据(视频数据由FPGA内部生成),DP IP内部是用AXIS Video Bridge+VTC将AXIS转换成常规Video格式,由于FPGA 的DP接口与电脑的DP接口时钟源是不同的,所以帧率始终会有误差,无法完全同步。
如果每个AXIS帧都用显示器1的帧同步信号同步一次,图像会跳,感觉是帧率误差导致AXIS Video Bridge失锁,无论怎么配都无法完全同步

有没有什么办法能处理这种不同时钟源视频之间的同步问题呢?请大神帮忙出谋划策一下,感谢!




wye11083 发表于 2024-3-23 00:11:17

smbxfdbz 发表于 2024-3-23 00:09
谢谢大神回复,再向您请教个问题

如下图所示,我想用FPGA驱动显示器2与显示器1同步刷新,显示器1会给FPG ...
(引用自3楼)

多路只能加缓存了。

smbxfdbz 发表于 2024-3-23 00:16:23

wye11083 发表于 2024-3-23 00:11
多路只能加缓存了。
(引用自4楼)

缓存也一样呀,我FPGA里的数据是实时生成的,跟从缓存里读是一个效果

关键还是时钟源不同,帧率总会有点误差,这种该怎么处理呢。Xilinx的AXIS Video Bridge是否能处理一定的帧率抖动呢?

wye11083 发表于 2024-3-23 00:36:21

smbxfdbz 发表于 2024-3-23 00:16
缓存也一样呀,我FPGA里的数据是实时生成的,跟从缓存里读是一个效果

关键还是时钟源不同,帧率总会有点 ...
(引用自5楼)

帧加ping pong缓存。

smbxfdbz 发表于 2024-3-23 11:18:37

wye11083 发表于 2024-3-23 00:36
帧加ping pong缓存。
(引用自6楼)

假如数据就是黑白图交替
FPGA驱动一台DP显示器与另一台同步刷新,两台时钟不同源的DP source接口输出的帧率总会有细微误差,导致无法同步
无论怎么缓存,这种硬件上的刷新频率误差,还是会存在呀,这个问题怎么处理比较好呢?

wye11083 发表于 2024-3-23 11:35:26

smbxfdbz 发表于 2024-3-23 11:18
假如数据就是黑白图交替
FPGA驱动一台DP显示器与另一台同步刷新,两台时钟不同源的DP source接口输出的帧 ...
(引用自7楼)

慢的重复一帧不得了。

smbxfdbz 发表于 2024-3-23 11:59:24

wye11083 发表于 2024-3-23 11:35
慢的重复一帧不得了。
(引用自8楼)

我需要同步到每帧的行对齐这种级别,重复帧这种方式实现不了系统需要的对齐精度

wye11083 发表于 2024-3-23 16:58:34

smbxfdbz 发表于 2024-3-23 11:59
我需要同步到每帧的行对齐这种级别,重复帧这种方式实现不了系统需要的对齐精度 ...
(引用自9楼)

这个要求上帝来了也解决不了{:dizzy:}

smbxfdbz 发表于 2024-3-23 21:53:40

wye11083 发表于 2024-3-23 16:58
这个要求上帝来了也解决不了
(引用自10楼)

大神,你觉得这个思路是否可行:

FPGA端用VCXO微调时钟频率去锁定显示器1端的帧率,虽然做不到完全同步,但感觉可以检测帧率误差,动态追踪

wye11083 发表于 2024-3-23 22:15:10

smbxfdbz 发表于 2024-3-23 21:53
大神,你觉得这个思路是否可行:

FPGA端用VCXO微调时钟频率去锁定显示器1端的帧率,虽然做不到完全同步 ...
(引用自11楼)

?那你为啥不直接用in1的时钟呢?至于in234就没办法了。不同源时钟不可能完全同步,几秒频偏几十us非常普遍。

smbxfdbz 发表于 2024-3-23 22:44:01

wye11083 发表于 2024-3-23 22:15
?那你为啥不直接用in1的时钟呢?至于in234就没办法了。不同源时钟不可能完全同步,几秒频偏几十us非常普 ...
(引用自12楼)

显示器1是电脑显卡直接驱动的,走的DP接口,他的时钟FPGA这边拿不到,只能从TCON上拿到个帧同步信号
所以FPGA用了个freerun的时钟
页: [1]
查看完整版本: AXIS这种接口读片内block memory,接口逻辑怎么设计比较好?