文章 ID: 000080660 内容类型: 故障排除 上次审核日期: 2021 年 08 月 27 日

为什么在 DisplayPort IP 内核接收器连接到英特尔® GPU 时,DisplayPort IP 内核演示示例设计无法显示图像?

环境

  • 英特尔® Quartus® Prime Pro Edition
  • 英特尔® Nios® II 处理器
  • DisplayPort* 英特尔® FPGA IP
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    说明

    由于 DisplayPort IP 内核硬件演示示例设计(版本 16.0 及更早版本)出现问题,当 DisplayPort IP 内核接口连接到英特尔® GPU 时,可能无法看到此图像。虽然 RX 和 TX MSA 值看起来可能正确,但显示器上不会显示任何图像。这是因为英特尔 GPU 使用的时钟模式与 DisplayPort IP 内核源不匹配。英特尔 GPU 使用同步时钟,而 DisplayPort IP 内核源使用异步时钟。这会导致硬件演示示例设计的两个问题。

    首先,硬件演示示例设计使用固定的 NVID 值用于像素时钟恢复 (PCR) 模块。此设置适用于使用异步时钟且不适用于英特尔 GPU 的 GPU。

    其次,由于他们的时钟模式,英特尔 GPU 将 RX MSA MISC0 寄存器的位 0 设置为 1,而 DisplayPort IP 内核源将 TX MSA MISC0 寄存器的位 0 设置为 0。尽管这些位在规格范围内存在差异,但Nios® II软件(特别是 EDID 传递代码)期望 RX MSA MISC0 与 TX MSA MISC0 完全匹配,如果出现不匹配,将禁用 DisplayPort IP 内核源。

    解决方法

    首先,修改顶层 Verilog 文件以使用 PCR 模块的固定 NVID 值来禁用。在主项目目录中,修改文件 a10_dp_demo.v 更改一行,

    从:

    defparam bitec_clkrec_i.FIXED_NVID = 1;

    自:

    defparam bitec_clkrec_i.FIXED_NVID = 0;

    第二,在比较 RX MSA MISC0 和 TX MSA MISC0 寄存器时,修改Nios II软件以忽略位 0。在主项目目录中,修改文件 main.c 以更改两行,

    从:

    rx_misc0 = IORD(btc_dprx_baseaddr(0)、DPRX0_REG_MSA_MISC0)和 0xFFFF;

    tx_misc0 = IORD(btc_dptx_baseaddr()、DPTX0_REG_MSA_MISC0)和 0xFFFF;

    自:

    rx_misc0 = IORD(btc_dprx_baseaddr(0)、DPRX0_REG_MSA_MISC0)& 0xFFFE;

    tx_misc0 = IORD(btc_dptx_baseaddr()、DPTX0_REG_MSA_MISC0)& 0xFFFE;

    进行这些修改后,运行脚本 build_sw.sh 以重建软件项目,然后在 Quartus® Prime 软件中重新编译项目。或者,您可以重新运行脚本 runall.tcl,这将为您执行这两个步骤。

    这两个问题都在 Quartus® Prime 软件 v16.1 DisplayPort 硬件演示示例设计中得到了修复。

    相关产品

    本文适用于 4 产品

    英特尔® Arria® 10 FPGA 和 SoC FPGA
    Arria® V FPGA 和 SoC FPGA
    Cyclone® V FPGA 和 SoC FPGA
    Stratix® V FPGA

    本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。