SDI core端口说明

本文基于赛灵思的官方文档以及自己的理解:

1.生成SDI core

2.得到SDI core的顶层文件,并对每个端口做出解释

smpte_sdi smpte_sdi (
  .rx_rst(rx_rst),                            // input wire rx_rst 此端口是用来复位SDI核的RX端口的,但是不能复位GTX的RX端口(不需要配置)
  .rx_usrclk(rx_usrclk),                      // input wire rx_usrclk  所有以rx_开头的信号都是与这个时钟同步
  .rx_data_in(rx_data_in),                    // input wire [19 : 0] rx_data_in 数据是从这个端口进入SDI核,只是HD-SDI,3G-SDI模式
  .rx_sd_data_in(rx_sd_data_in),              // input wire [9 : 0] rx_sd_data_in SD-SDI模式的数据从这个端口进入核,进入此端口的数据在发送器中就经过了DRU
  .rx_sd_data_strobe(rx_sd_data_strobe),      // input wire rx_sd_data_strobe 高电平时,表明rx_sd_data_in端口数据有效
  .rx_frame_en(rx_frame_en),                  // input wire rx_frame_en 通常情况置高电平,应该与SDI数据流的格式有关系
  .rx_mode_en(rx_mode_en),                    // input wire [2 : 0] rx_mode_en 接收模式使能,SD or HD or 3G
  .rx_mode(rx_mode),                          // output wire [1 : 0] rx_mode  输出接收数据的SDI是那种模式
  .rx_mode_hd(rx_mode_hd),                    // output wire rx_mode_hd     输出接收数据的模式
  .rx_mode_sd(rx_mode_sd),                    // output wire rx_mode_sd     输出接收数据的模式
  .rx_mode_3g(rx_mode_3g),                    // output wire rx_mode_3g     输出接收数据的模式
  .rx_mode_detect_en(rx_mode_detect_en),      // input wire rx_mode_detect_en  接收数据模式监测使能
  .rx_mode_locked(rx_mode_locked),            // output wire rx_mode_locked  这是一个接收数据模式锁定信号,先搜索,然后确定,确定模式后,最终会稳定在高电平
  .rx_forced_mode(rx_forced_mode),            // input wire [1 : 0] rx_forced_mode 可以自己设定SDI的模式,不过得先关闭SDI模式自动监测功能
  .rx_bit_rate(rx_bit_rate),                  // input wire rx_bit_rate  配置接收数据的比特率
  .rx_t_locked(rx_t_locked),                  // output wire rx_t_locked 当高电平时,表明已经监测到了收到的SDI信号的格式,与frame有关系
  .rx_t_family(rx_t_family),                  // output wire [3 : 0] rx_t_family 此信号显示的接收到的SDI信号是哪一类
  .rx_t_rate(rx_t_rate),                      // output wire [3 : 0] rx_t_rate 此信号显示的SDI信号有关速率的信息
  .rx_t_scan(rx_t_scan),                      // output wire rx_t_scan
  .rx_level_b_3g(rx_level_b_3g),              // output wire rx_level_b_3g   此信号用来判断3g-SDI信号的level
  .rx_ce_sd(rx_ce_sd),                        // output wire rx_ce_sd   时钟信号使能for SD-SDI模式,当SDI是其他模式时候,总是保持高电平
  .rx_nsp(rx_nsp),                            // output wire rx_nsp  与SDI信号的格式有关系,frame
  .rx_line_a(rx_line_a),                      // output wire [10 : 0] rx_line_a  line number
  .rx_a_vpid(rx_a_vpid),                      // output wire [31 : 0] rx_a_vpid  与SDI信号有关系
  .rx_a_vpid_valid(rx_a_vpid_valid),          // output wire rx_a_vpid_valid     与rx_a_vpid信号相结合
  .rx_b_vpid(rx_b_vpid),                      // output wire [31 : 0] rx_b_vpid  同上
  .rx_b_vpid_valid(rx_b_vpid_valid),          // output wire rx_b_vpid_valid     同上
  .rx_crc_err_a(rx_crc_err_a),                // output wire rx_crc_err_a        错误监测显示信号
  .rx_ds1a(rx_ds1a),                          // output wire [9 : 0] rx_ds1a     接收到的数据,在此端口会显示出来
  .rx_ds2a(rx_ds2a),                          // output wire [9 : 0] rx_ds2a     接收到的数据,在此端口会显示出来
  .rx_eav(rx_eav),                            // output wire rx_eav              与SDI数据的格式有关系
  .rx_sav(rx_sav),                            // output wire rx_sav              与SDI数据的格式有关系
  .rx_trs(rx_trs),                            // output wire rx_trs              与SDI数据的格式有关系
  .rx_line_b(rx_line_b),                      // output wire [10 : 0] rx_line_b  line number
  .rx_dout_rdy_3g(rx_dout_rdy_3g),            // output wire rx_dout_rdy_3g
  .rx_crc_err_b(rx_crc_err_b),                // output wire rx_crc_err_b        错误监测显示信号
  .rx_ds1b(rx_ds1b),                          // output wire [9 : 0] rx_ds1b     与SDI数据的格式有关系
  .rx_ds2b(rx_ds2b),                          // output wire [9 : 0] rx_ds2b     与SDI数据的格式有关系
  .rx_edh_errcnt_en(rx_edh_errcnt_en),        // input wire [15 : 0] rx_edh_errcnt_en   设置错误的种类
  .rx_edh_clr_errcnt(rx_edh_clr_errcnt),      // input wire rx_edh_clr_errcnt           清除错误计数器
  .rx_edh_ap(rx_edh_ap),                      // output wire rx_edh_ap                  以下rx_信号均与SDI数据的格式有关系
  .rx_edh_ff(rx_edh_ff),                      // output wire rx_edh_ff
  .rx_edh_anc(rx_edh_anc),                    // output wire rx_edh_anc
  .rx_edh_ap_flags(rx_edh_ap_flags),          // output wire [4 : 0] rx_edh_ap_flags
  .rx_edh_ff_flags(rx_edh_ff_flags),          // output wire [4 : 0] rx_edh_ff_flags
  .rx_edh_anc_flags(rx_edh_anc_flags),        // output wire [4 : 0] rx_edh_anc_flags
  .rx_edh_packet_flags(rx_edh_packet_flags),  // output wire [3 : 0] rx_edh_packet_flags
  .rx_edh_errcnt(rx_edh_errcnt),              // output wire [15 : 0] rx_edh_errcnt
  .tx_rst(tx_rst),                            // input wire tx_rst      发送端口复位
  .tx_usrclk(tx_usrclk),                      // input wire tx_usrclk   发送数据所的时钟
  .tx_ce(tx_ce),                              // input wire [2 : 0] tx_ce   时钟信号使能
  .tx_din_rdy(tx_din_rdy),                    // input wire tx_din_rdy       根据不同的SDI模式来设定
  .tx_mode(tx_mode),                          // input wire [1 : 0] tx_mode   设定发送SDI的模式
  .tx_level_b_3g(tx_level_b_3g),              // input wire tx_level_b_3g      和3g-SDI模式有关系
  .tx_insert_crc(tx_insert_crc),              // input wire tx_insert_crc      CRC值的一个控制开关
  .tx_insert_ln(tx_insert_ln),                // input wire tx_insert_ln       与发送出去的SDI数据有关系
  .tx_insert_edh(tx_insert_edh),              // input wire tx_insert_edh      同上,对发送出去的SDI数据做某种插值
  .tx_insert_vpid(tx_insert_vpid),            // input wire tx_insert_vpid     同上,对发送出去的SDI数据做某种插值
  .tx_overwrite_vpid(tx_overwrite_vpid),      // input wire tx_overwrite_vpid   也是对发送出去的SDI数据做某种处理
  .tx_video_a_y_in(tx_video_a_y_in),          // input wire [9 : 0] tx_video_a_y_in   SDI数据输入端口
  .tx_video_a_c_in(tx_video_a_c_in),          // input wire [9 : 0] tx_video_a_c_in   同上,SDI数据输入端口,只是模式不同罢了
  .tx_video_b_y_in(tx_video_b_y_in),          // input wire [9 : 0] tx_video_b_y_in   同上,SDI数据输入端口,只是模式不同罢了
  .tx_video_b_c_in(tx_video_b_c_in),          // input wire [9 : 0] tx_video_b_c_in   同上,SDI数据输入端口,只是模式不同罢了
  .tx_line_a(tx_line_a),                      // input wire [10 : 0] tx_line_a         line number data
  .tx_line_b(tx_line_b),                      // input wire [10 : 0] tx_line_b         line number data
  .tx_vpid_byte1(tx_vpid_byte1),              // input wire [7 : 0] tx_vpid_byte1       对于输入的SDI数据做处理,相当于做某种补偿
  .tx_vpid_byte2(tx_vpid_byte2),              // input wire [7 : 0] tx_vpid_byte2       对于输入的SDI数据做处理,相当于做某种补偿
  .tx_vpid_byte3(tx_vpid_byte3),              // input wire [7 : 0] tx_vpid_byte3       对于输入的SDI数据做处理,相当于做某种补偿
  .tx_vpid_byte4a(tx_vpid_byte4a),            // input wire [7 : 0] tx_vpid_byte4a      对于输入的SDI数据做处理,相当于做某种补偿
  .tx_vpid_byte4b(tx_vpid_byte4b),            // input wire [7 : 0] tx_vpid_byte4b      对于输入的SDI数据做处理,相当于做某种补偿
  .tx_vpid_line_f1(tx_vpid_line_f1),          // input wire [10 : 0] tx_vpid_line_f1    也是对输入的SDI数据做某种处理
  .tx_vpid_line_f2(tx_vpid_line_f2),          // input wire [10 : 0] tx_vpid_line_f2    也是对输入的SDI数据做某种处理
  .tx_vpid_line_f2_en(tx_vpid_line_f2_en),    // input wire tx_vpid_line_f2_en          对f2处理的控制信号
  .tx_ds1a_out(tx_ds1a_out),                  // output wire [9 : 0] tx_ds1a_out        要发送的数据从这个端口输出来
  .tx_ds2a_out(tx_ds2a_out),                  // output wire [9 : 0] tx_ds2a_out        要发送的数据从这个端口输出来
  .tx_ds1b_out(tx_ds1b_out),                  // output wire [9 : 0] tx_ds1b_out        要发送的数据从这个端口输出来
  .tx_ds2b_out(tx_ds2b_out),                  // output wire [9 : 0] tx_ds2b_out        要发送的数据从这个端口输出来
  .tx_use_dsin(tx_use_dsin),                  // input wire tx_use_dsin                 控制信号,设定发送数据的源
  .tx_ds1a_in(tx_ds1a_in),                    // input wire [9 : 0] tx_ds1a_in          SDI数据流的输入端口
  .tx_ds2a_in(tx_ds2a_in),                    // input wire [9 : 0] tx_ds2a_in          SDI数据流的输入端口
  .tx_ds1b_in(tx_ds1b_in),                    // input wire [9 : 0] tx_ds1b_in          SDI数据流的输入端口
  .tx_ds2b_in(tx_ds2b_in),                    // input wire [9 : 0] tx_ds2b_in          SDI数据流的输入端口
  .tx_sd_bitrep_bypass(tx_sd_bitrep_bypass),  // input wire tx_sd_bitrep_bypass         调整某种模式
  .tx_txdata(tx_txdata),                      // output wire [19 : 0] tx_txdata         SDI数据的输出端口,此端口直接与GTX相连
  .tx_ce_align_err(tx_ce_align_err)          // output wire tx_ce_align_err             一个错误的指示信息
);

对其中的个别信号解释以及解码:

rx_t_family:

rx_t_rate:

rx_edh_errcnt_en:

3.SDI接收操作

4.SDI接收信号的框图

5.SDI发送信号过程较接收过程复杂,这里不做学习。

时间: 2024-10-11 01:12:22

SDI core端口说明的相关文章

ASP.NET Core "完整发布,自带运行时" 到jexus

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 一.阅读前须知   1.使用 jexus整合asp.net core的优点:       1)支持多站点,同一端口可以同时支持任何多的asp.net core应用程序:      2)应用程序启动.停止.重启与站点的启动.停止.重启等操作一致,

GTX_SDI搭建流程

1.GTX wrapper 因为顶层的GTX wrapper在实际的SDI工程中用不到,我们只是需要GTX wrapper模块中的部分文件.因此,在SDI工程中,我们并不需要生成GTX wrapper,应对办法是,新建一个工程,生成GTX wrapper,然后提取出我们所需要的文件,添加在SDI工程中. 第一步:新建vivado工程,配置GTX wrapper. 第一页,可以编辑component name,GT Type 第二页,配置Protocol:hd sdi,在SDI工程中一般不会选择U

「翻译」.NET Core3.1发布

我们很高兴宣布.NET Core 3.1的发布.实际上,这只是对我们两个多月前发布的.NET Core 3.0的一小部分修复和完善.最重要的是.NET Core 3.1是长期支持(LTS)版本,并且将支持三年.和过去一样,我们希望花一些时间来发布下一个LTS版本.额外的两个月(在.NET Core 3.0之后)使我们能够选择和实施在已经非常稳定的基础上进行的正确改进. 您可以下载适用于Windows,macOS和Linux的.NET Core 3.1: .NET Core 3.1 SDK和运行时

.net core 启动域名及端口配置

前两天转载一篇.net core 启动分析,由于发布时候一直纠结在默认5000端口上,所以好好研究了一下. 1.IIS集成 如果通过IIS当宿主的话,那这些都不是事情,强大的IIS可以帮助我们对站点的域名.端口等等等等的配置.至于如何在IIS上部署asp.net core的web应用,就不是这里的重点.大致简单的描述一下: 需要下载Net Core SDK 与 Server Hosting,下载地址https://www.microsoft.com/net/download 安装完查看.net

Asp.Net Core发布绑定域名和端口

一.WebHostBuilder配置URL和端口进行侦听 UseUrls() 1.默认的ASP.NET Core项目绑定http://localhost:5000.通过使用UseUrls扩展方法--编辑urls命令行参数 2.指定格式:http://xxx:xxx,如:http://*:81 var host = new WebHostBuilder() // .UseUrls("http://localhost:5003","http://www.sqlme.com:80&

Do you kown Asp.Net Core -- 配置Kestrel端口

Kestrel介绍 在Asp.Net Core中,我们的web application 其实是运行在Kestrel服务上,它是一个基于libuv开源的跨平台可运行 Asp.Net Core 的web服务器. 在开发阶段,我们可以直接使用Kestrel服务器用来测试,也可以使用IISExpress.在使用IISExpress其实也需要启动一个Kestrel服务器,通过IISExpress反向代理请求到Kestrel,很多时候我更喜欢使用Kestrel,因为可以实时看到log. 配置端口 在Sock

asp.net core通过控制台启动,设置端口与运行环境

发布好的asp.net core mvc项目, 如果想在window下启动的话,可以用下面的命令 dotnet MyProject.dll --urls="https://localhost:7001;http://localhost:7000" --environment=Development 默认端口为5000(https为5001) 默认环境为Production 原文地址:https://www.cnblogs.com/builderman/p/9160228.html

ASP.NET Core 如何在运行Docker容器时指定容器外部端口(docker compose)

原文:ASP.NET Core 如何在运行Docker容器时指定容器外部端口(docker compose) 前面我写了一系列关于持续集成的文章,最终构建出来的镜像运行之后,应该会发现每次构建运行之后端口都变了,这对于我们来说是十分不方便的,所以我们可以通过修改docker compose的配置文件来完成我们的需求. 熟悉Docker的都应该知道容器运行时其内部会有一个端口以映射到我们外部的端口,我们需要固定的就是这个外部端口. 打开 docker-compose.override.yml 文件

.Net Core实战教程(二):设置Kestrel的IP与端口的几种方法

.Net Core实战教程(二):设置Kestrel的IP与端口的几种方法 1.直接写在代码方式 Program.cs代码如下: using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; using M