SDI Wrapper的用户接口桥接模块设计

SDI核,内部逻辑会检测SAV和EAV。
对于RX侧,
SDI核会检测到SAV和EAV,并用几个指示信号来指示,
rx_trs----指示出当前接收到的rxds1a和rxds2a上的数据,是SAV或者EAV的特殊码字。
rx_sav----指示当前trs的最后一个XYZ特殊码字,是一个SAV的特殊码字。
rx_eav----指示当前trs的最后一个XYZ特殊码字,是一个EAV的特殊码字。

rx_line_a----指示当前行号。行号的更新,是在EAV接收后,从紧着着接收的LN0+LN1中转换出来的。所以,在检测到rx_eav有效后,再延迟2个周期,就更新最新接收的行号。

对于UI侧,就需要使用这几个指示信号,重构成video format的数据流,输入到Video In to AXIS核。

对于TX侧,
SDI核会检测输入的
tx_video_a_y_in和tx_video_a_c_in
中的SAV和EAV,
并在采样XYZ特殊码字的同时,采样tx_line_a和tx_line_b。
通常会选择tx_insert_ln,所以如果XYZ码字是EAV的特殊码字,那么后续就将接收的tx_line_a转换成LN0+LN1。
通常会选择tx_insert_crc,所以,后续就会自动生成CRC,并发送。

对于UI侧,就需要将AXIS to Video Out输出的video format的数据流,重构成SMPTE格式的数据流,包括YC数据流和line number。

+++++++++++++++++++++++++++++++++++++
对于TX侧,桥接模块的设计要点如下:
1)需要一个FIFO,用来缓冲数据。并且隔离两个时钟域。
选择FWFT模式,depth选择4096,sync stage选择2.
2)VTC输出的指示信号中,vvalid需要用vblank取反得到,active_video_en和hblank本身就是取反关系。
fifo_wr需要vvalid和hvalid配合,两者相与实现。
3)需要一个SMPTE时序生成器。
fifo_rd由SMPTE时序生成器产生。
在这个生成器中,使用FSM生成所需的时序。
以1080p为例,
主要时序步有,
EAV,LN,CRC,HANC,SAV,APDATA,
默认状态是IDLE。
状态机中的主要任务,就是在各个时序步中,生成对应的dout和tx_line_number数据。

++++++++++++++++++++++++++++++++++++
对于RX侧,桥接模块的设计要点如下:
1)SDI Wrapper输出的指示信号中,rx_eav和rx_sav可以用来判断有效数据的起始位置,rx_line_number可以用来判断frame的起始行。
2)需要一个video format转换器,生成VTC所需要的时序输入信号,
vblank和vvalid是取反关系,
hblank和hvalid是取反关系,
hvalid就是active_video_en信号。
3)rx_sav和rx_line_number配合,可以生成vvalid信号。
rx_sav可以生成hvalid信号。
4)当检测到rx_eav的trs时,hblank拉高,当检测到rx_sav时,hblank拉低。
当检测到rx_sav时,同时检查rx_line_number,如果在对应的范围内,就拉高vblank,或者拉低vblank。

Supongo que te gusta

Origin blog.csdn.net/weixin_42418557/article/details/119797684
Recomendado
Clasificación