F-Tile HDMI英特尔® FPGA IP设计示例用户指南

ID 709314
日期 8/10/2023
Public
文档目录

2.3.1. 创建RX-Only或TX-Only设计

对于高级用户,您可以使用英特尔Agilex 7 HDMI RX-TX Retransmit设计来创建一个TX-only或RX-only设计。

若要创建一个RX-only设计,请移除HDMI TX Top和RX-TX Link模块。但是,您需要CPU Subsystem来设置RX Core的EDID值。

图 10. HDMI 2.1 RX-only结构图
若要创建一个TX-only设计,请移除HDMI RX Top和RX-TX Link模块。但是,您需要CPU Subsystem从Sink读取EDID并用于Link Training Process。
图 11. HDMI 2.1 TX-only结构图

若要使用RX-only或TX-only组件,需要从设计中删除不相关的模块。

表 8.  RX-Only和TX-Only设计要求
用户要求 保留 删除 添加
HDMI RX only RX Top
  • TX Top
  • RX-TX Link
  • CPU Subsystem
  • Transceiver Arbiter
HDMI TX only
  • TX Top
  • CPU Sub-System
  • RX Top
  • RX-TX Link
  • Transceiver Arbiter
Video Pattern Generator

(自定义模块或者从Video and Image Processing (VIP) Suite生成)

除了RTL变更之外,您也需要编辑main.c脚本。

  • 对于HDMI TX-only设计,通过执行以下操作来解耦HDMI RX锁定状态的等待:
    1. 删除以下命令行:

      rx_hdmi_lock = READ_PIO(PIO_IN0_BASE, PIO_RX_LOCKED_OFFSET, PIO_RX_LOCKED_WIDTH);

      while (rx_hdmi_lock == 0) {

      if (check_hpd_isr()) { break; }

      // rx_vid_lock = READ_PIO(PIO_IN0_BASE, PIO_VID_LOCKED_OFFSET, PIO_VID_LOCKED_WIDTH);

      rx_hdmi_lock = READ_PIO(PIO_IN0_BASE, PIO_RX_LOCKED_OFFSET, PIO_RX_LOCKED_WIDTH);

      // Reconfig Tx after rx is locked

      if (rx_hdmi_lock == 1) {

      if (READ_PIO(PIO_IN0_BASE, PIO_LOOPBACK_MODE_OFFSET, PIO_LOOPBACK_MODE_WIDTH) == 1) {

      rx_frl_rate = READ_PIO(PIO_IN0_BASE, PIO_RX_FRL_RATE_OFFSET, PIO_RX_FRL_RATE_WIDTH);

      tx_xcvr_reconfig(rx_frl_rate);

      } else {

      tx_xcvr_reconfig(tx_frl_rate);

      } } }

    2. 替换为:

      tx_xcvr_reconfig(tx_frl_rate);

  • 对于HDMI RX-only设计,在main.c脚本中只保留以下命令行:

    REDRIVER_INIT();

    hdmi_rx_init();