zoukankan      html  css  js  c++  java
  • SDI core端口说明

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

  • 相关阅读:
    MySQL百万级、千万级数据多表关联SQL语句调优
    不就是SELECT COUNT语句吗,居然有这么多学问
    分布式锁讲解
    Java 中堆和栈的区别
    Java中的回调机制
    在Eclipse上Maven环境配置使用
    项目忽然出现 The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 解决方法
    HttpServletResponse
    com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
    深入浅出java常量池
  • 原文地址:https://www.cnblogs.com/chensimin1990/p/6830353.html
Copyright © 2011-2022 走看看