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发送信号过程较接收过程复杂,这里不做学习。

SDI core端口说明的更多相关文章

  1. net core 端口设置

    在supervisor的启动配置里面增加环境变量: environment=ASPNETCORE_URLS='http://*:5001'

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

    一.阅读前须知   1.使用 jexus整合asp.net core的优点:       1)支持多站点,同一端口可以同时支持任何多的asp.net core应用程序:      2)应用程序启动.停 ...

  3. ASP.NET Core 快速入门【第二弹-实战篇】

    上篇讲了asp.net core在linux上的环境部署.今天我们将做几个小玩意实战一下.用到的技术和工具有mysql.websocket.AngleSharp(爬虫html解析).nginx多站点部 ...

  4. ASP.NET Core 快速入门(实战篇)

    上篇讲了<asp.net core在linux上的环境部署>.今天我们将做几个小玩意实战一下.用到的技术和工具有mysql.websocket.AngleSharp(爬虫html解析).n ...

  5. net core体系-web应用程序-2项目简单案例

    阅读目录   NO1 留言板(mysql的使用) NO2 聊天室(WebSocket的使用) NO3 找工作(AngleSharp的使用) 部署多个站点 一些其它的细节 部署阿里云 mysql的客户端 ...

  6. GTP+SDI工程播出部分思路整理

    GTP+SDI工程播出部分思路整理 1.video_out_to_sdi模块 关于video_out_to_sdi模块的输出信号: tx_video_a_y[9:0] 这是要输入SDI IP核内的 t ...

  7. .NET Core 学习资料精选:入门

    开源跨平台的.NET Core,还没上车的赶紧的,来不及解释了-- 本系列文章,主要分享一些.NET Core比较优秀的社区资料和微软官方资料.我进行了知识点归类,让大家可以更清晰的学习.NET Co ...

  8. WTM asp.net core应用程序在Ubuntu上和CentOS上部署

    wtm在Ubuntu上和CentOS上部署 项目发布 在Visual Studio中右击Web项目,选择发布,如下图: Ubuntu安装.net core运行时 Ubuntu我是用的Vmware虚拟机 ...

  9. Docker 常用命令(.NET Core示例)

    Docker安装 CentOS Docker 安装 安装 Docker Desktop for Mac.Docker Desktop for Windows 设置docker仓库镜像加速器 迁移Doc ...

随机推荐

  1. 3--Python入门--Python数据集合类型--元组

    在基础数据类型的基础上,Python有6中数据集合的类型: 列表list,最常用的数据类型,以[]为标识 元组tuple,和list很相似,但是不能二次赋值,用()标识 集合set,和list类似,但 ...

  2. C语言基础:数组 分类: iOS学习 c语言基础 2015-06-10 21:40 7人阅读 评论(0) 收藏

    数组:是由一组具有相同数据类型的数据组合而来. 数组定义:元素类型修饰符 数组名[数组个数]={元素1,元素2....};  int arr[ 2 ]={1,2};    //正确 int arr[ ...

  3. Python之路,第十四篇:Python入门与基础14

    python3    模块2 标准模块 随机模块random 假设导入 import  random  as  R 函数: R.random()    返回一个[0 ,1) 之间的随机数 R.getr ...

  4. 20155208徐子涵 2016-2017-2 《Java程序设计》第7周学习总结

    20155208徐子涵 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 第十三章 时间与日期 13.1 认识时间与日期 就目前来说,即使标注为GMT(无论是文 ...

  5. rsync命令 续集 、linux系统日志、screen工具

    1.rsync 通过服务进行监听同步: 开启服务:rsync --daemon  (默认开启873端口) 需要编辑配制文件:/etc/rsyncd.conf port=873log file=/var ...

  6. 神坑,使用gcc对opencv重编译

    工具 cmake-3.9.1 opencv-3.3.0  gcc-6.3.0 前几天为了装eclipse的CDT,把minggw里的make改了,今天突然想学opencv,可是只找到了vc版本,千辛万 ...

  7. Python学习手册

    基础 概念 源码编译为字节码,解释器解释字节码 CPython是python标准实现方式,Jython将源码编译为java字节码,运行在JVM上 优点:快速开发,灵活的核心数据类型,优美的缩进语法,垃 ...

  8. Go Example--错误处理

    package main import ( "errors" "fmt" ) //定义一种错误类型 type argError struct { arg int ...

  9. Commons工具包的使用

    使用步骤: 1.Java  Project下新建Folder文件夹,命名lib 2.lib文件夹下把Commons-io-2.4jar包复制进去 3.右键Commons-io-2.4jar包,点击Bu ...

  10. Tower Defense Toolkit 学习

    代码太多,就不贴了.用到的基本已注释. 游戏中的数据存放在Resources/Database中.游戏运行时,通过Resources.Load加载 UI构成   对象池 using UnityEngi ...