intel AN 889 8K DisplayPort 视频格式转换设计实例ample
关于 8K DisplayPort 视频格式转换设计实例ample
8K DisplayPort 视频格式转换设计实例ample 将 Intel DisplayPort 1.4 视频连接 IP 与视频处理管道集成在一起。 该设计为高达每秒 8 帧的 30K 或每秒 4 帧的 60K 视频流提供高质量缩放、色彩空间转换和帧速率转换。
该设计具有高度的软件和硬件可配置性,可实现快速系统配置和重新设计。 该设计以英特尔® Arria® 10 设备为目标,并使用英特尔 Quartus® Prime v8 视频和图像处理套件中最新的 19.2K 就绪英特尔 FPGA IP。
关于 DisplayPort 英特尔 FPGA IP
要创建具有 DisplayPort 接口的英特尔 Arria 10 FPGA 设计,请实例化 DisplayPort 英特尔 FPGA IP。 但是,此 DisplayPort IP 仅实现 DisplayPort 的协议编码或解码。 它不包括实现接口的高速串行组件所需的收发器、PLL 或收发器重配置功能。 英特尔提供独立的收发器、PLL 和重新配置 IP 组件。 选择、参数化和连接这些组件以创建完全兼容的 DisplayPort 接收器或发射器接口需要专业知识。
英特尔为非收发器专家的人员提供此设计。 DisplayPort IP 的参数编辑器 GUI 允许您构建设计。
您可以在 Platform Designer 或 IP 目录中创建 DisplayPort IP 的实例(可以是仅接收器、仅发射器或接收器和发射器组合)。 当您参数化 DisplayPort IP 实例时,您可以选择生成一个 examp该特定配置的设计。 接收器和发射器的组合设计是一个简单的直通,其中接收器的输出直接馈入发射器。 固定直通设计创建功能齐全的接收器 PHY、发送器 PHY 和实现所有收发器和 PLL 逻辑的重新配置块。 您可以直接复制设计的相关部分,也可以将设计作为参考。 该设计生成 DisplayPort Intel Arria 10 FPGA IP Design Example 然后添加许多 files 直接生成到 Intel Quartus Prime 工程使用的编译列表中。 这些包括:
- Files 为收发器、PLL 和重配置块创建参数化 IP 实例。
- Verilog 硬件描述语言 files 将这些 IP 连接到更高级别的接收器 PHY、发送器 PHY 和收发器重配置仲裁器块
- Synopsys 设计约束 (SDC) files 设置相关的时序约束。
8K DisplayPort 视频格式转换设计实例的特点ample
- 输入:
- DisplayPort 1.4 连接支持从 720×480 到 3840×2160 的分辨率,帧速率高达 60 fps,分辨率高达 7680×4320,帧速率为 30 fps。
- 热插拔支持。
- 支持 RGB 和 YCbCr(4:4:4、4:2:2 和 4:2:0)颜色格式
输入。 - 软件自动检测输入格式并适当地设置处理管道。
- 输出:
- DisplayPort 1.4 连接可选择(通过 DIP 开关)1080 fps 的 1080p、2160i 或 60p 分辨率,或 2160 fps 的 30p。
- 热插拔支持。
- DIP 开关将所需的输出颜色格式设置为 RGB、YCbCr 4:4:4、YCbCr 4:2:2 或 YCbCr 4:2:0。
- 单个 10 位 8K RGB 处理管道,具有软件可配置缩放和帧速率转换:
- 12 抽头 Lanczos 缩减器。
- 16 相、4 抽头 Lanczos 升频器。
- 三重缓冲视频帧缓冲区提供帧率转换。
- 具有 alpha 混合功能的混音器允许 OSD 图标叠加。
8K DisplayPort 视频格式转换设计实例入门ample
硬件和软件要求
8K DisplayPort 视频格式转换设计实例amp文件需要特定的硬件和软件。
硬件:
- 英特尔 Arria 10 GX FPGA 开发套件,包括 DDR4 Hilo 子卡
- Bitec DisplayPort 1.4 FMC 子卡(修订版 11)
- DisplayPort 1.4 信号源,可生成高达 3840x2160p60 或 7680x4320p30 的视频
- DisplayPort 1.4 接收器,可显示高达 3840x2160p60 的视频
- VESA 认证的 DisplayPort 1.4 电缆。
软件:
- Windows 或 Linux 操作系统
- 英特尔 Quartus Prime 设计套件 v19.2,其中包括:
- 英特尔 Quartus Prime 专业版
- 平台设计师
- Nios® II EDS
- 英特尔 FPGA IP 库(包括视频和图像处理套件)
该设计仅适用于此版本的英特尔 Quartus Prime。
下载并安装 Intel 8K DisplayPort 视频格式转换设计实例ample
该设计可在英特尔设计商店购买。
- 下载存档项目 file udx10_dp.par。
- 从存档中提取英特尔 Quartus Prime 工程:
- a. 打开英特尔 Quartus Prime 专业版。
- b. 点击 File ➤ 打开项目。
打开项目窗口打开。 - c. 导航到并选择 udx10_dp.par file.
- d. 单击“打开”。
- e. 在 Open Design Template 窗口中,将 Destination 文件夹设置为提取项目的所需位置。 设计模板的条目 file 和项目名称应该是正确的,你不需要改变它们。
- f. 单击“确定”。
设计 File用于英特尔 8K DisplayPort 视频格式转换设计 Example
表 1. 设计 Files
File 或文件夹名称 | 描述 |
ip | 包含 IP 实例 files 用于设计中的所有英特尔 FPGA IP 实例:
• DisplayPort IP(发送器和接收器) • 在设计的顶层生成时钟的 PLL • 构成处理管道的Platform Designer 系统的所有IP。 |
主图像 | 包含pre_compiled.sof,是预编译板编程 file 为设计。 |
非acds_ip | 包含此设计中 Intel Quartus Prime 不包含的额外 IP 的源代码。 |
南达科他州 | 包含一个 SDC file 描述了此设计所需的额外时序约束。 发展局 file自动包含在 IP 实例中的 s 不处理这些约束。 |
软件 | 包含用于在嵌入式 Nios II 处理器上运行的软件的源代码、库和构建脚本,以控制设计的高级功能。 |
udx10_dp | Intel Quartus Prime 生成输出的文件夹 files 用于 Platform Designer 系统。 udx10_dp.sopcinfo 输出 file 允许您生成内存初始化 file 用于 Nios II 处理器软件存储器。 您无需首先生成完整的 Platform Designer 系统。 |
非acds_ip.ipx | 这个IPX file 向 Platform Designer 声明 non_acds_ip 文件夹中的所有 IP,使其出现在 IP 库中。 |
自述文件.txt | 构建和运行设计的简要说明。 |
顶级.qpf | 英特尔 Quartus Prime 项目 file 为设计。 |
顶.qsf | 英特尔 Quartus Prime 工程设置 file 为设计。 这个 file 列出所有 file需要构建设计,以及引脚分配和许多其他项目设置。 |
顶部 v | 顶层 Verilog HDL file 为设计。 |
udx10_dp.qsys | Platform Designer 系统包含视频处理流水线、Nios II 处理器及其外设。 |
编译 8K DisplayPort 视频格式转换设计实例ample
Intel提供预编译板编程 file 对于 master_image 目录 (pre_compiled.sof) 中的设计,允许您在不运行完整编译的情况下运行设计。
步骤:
- 在 Intel Quartus Prime 软件中,打开 top.qpf 工程 file. 下载的存档创建这个 file 当你解压缩项目时。
- 点击 File ➤ 打开并选择 ip/dp_rx_tx/dp_rx_tx.ip。 DisplayPort IP 的参数编辑器 GUI 打开,显示设计中 DisplayPort 实例的参数。
- 单击生成示例ample 设计(不是生成)。
- 生成完成后,关闭参数编辑器。
- In File 资源管理器,导航到软件目录并解压缩 vip_control_src.zip 存档以生成 vip_control_src 目录。
- 在 BASH 终端中,导航到软件/脚本并运行 shell 脚本 build_sw.sh。
该脚本为设计构建 Nios II 软件。 它同时创建了一个 .elf file 您可以在运行时下载到电路板,以及一个 .hex file 编译成板载编程.sof file. - 在 Intel Quartus Prime 软件中,点击 Processing > Start Compilation。
- Intel Quartus Prime 生成 udx10_dp.qsys Platform Designer 系统。
- Intel Quartus Prime 将工程设置为 top.qpf。
编译在输出中创建 top.sof_file完成时的 s 目录。
View安装和重新生成 Platform Designer 系统
- 单击工具 ➤ 平台设计器。
- 为 Platform Designer 系统选项选择 system name.qsys。
- 单击“打开”。
Platform Designer 打开系统。 - Review 系 统 。
- 重新生成系统:
- a. 单击生成 HDL...。
- b. 在生成窗口中,为选定的生成目标打开清除输出目录。
- c. 点击生成
编译 8K DisplayPort 视频格式转换设计实例amp使用 Nios II Software Build Tools for Eclipse 文件
您为设计设置一个交互式 Nios II Eclipse 工作区,以生成一个使用与构建脚本相同的文件夹的工作区。 如果您之前运行过构建脚本,则应在创建 Eclipse 工作区之前删除 software/vip_control 和 software/vip_control_bsp 文件夹。 如果您在任何时候重新运行构建脚本,它都会覆盖 Eclipse 工作区。
步骤:
- 导航到软件目录并解压缩 vip_control_src.zip 存档以生成 vip_control_src 目录。
- 在安装的项目目录下,新建一个文件夹,命名为workspace。
- 在 Intel Quartus Prime 软件中,点击 Tools > Nios II Software Build Tools for Eclipse。
- a. 在 Workspace Launcher 窗口中,选择您创建的工作区文件夹。
- b. 单击“确定”。
- 在 Nios II – Eclipse 窗口中,单击 File ➤ 新 ➤ 来自模板的 Nios II 应用程序和 BSP。
Nios II Application and BSP from Template 对话框出现。- a. 在 SOPC 信息 File 框中,选择 udx10_dp/ udx10_dp.sopcinfo file. Nios II SBT for Eclipse 使用 .sopcinfo 中的处理器名称填充 CPU 名称 file.
- b. 在“项目名称”框中,键入 vip_control。
- c. 从模板列表中选择空白项目。
- d. 单击“下一步”。
- e. 选择 Create a new BSP project based on the application project template with the project name vip_control_bsp.
- f. 打开使用默认位置。
- g. 单击 Finish 创建应用程序和基于 .sopcinfo 的 BSP file.
BSP 生成后,vip_control 和vip_control_bsp 项目出现在Project Explorer 选项卡中。
- 在 Windows 资源管理器中,将 software/vip_control_src 目录的内容复制到新创建的 software/vip_control 目录中。
- 在 Nios II – Eclipse 窗口的 Project Explorer 选项卡中,右键单击 vip_control_bsp 文件夹并选择 Nios II > BSP Editior。
- a. 从 sys_clk_timer 的下拉菜单中选择 None。
- b. 从 timest 的下拉菜单中选择 cpu_timeramp_定时器。
- c. 打开 enable_small_c_library。
- d. 单击生成。
- e. 生成完成后,单击退出。
- 在 Project Explorer 选项卡中,右键单击 vip_control 目录并单击 Properties。
- a. 在 vip_control 窗口的 Properties 中,展开 Nios II Application properties 并单击 Nios II Application Paths。
- b. 单击库项目旁边的添加...。
- c. 在“库项目”窗口中,导航到 udx10.dp\spftware\vip_control_src 目录并选择 bkc_dprx.syslib 目录。
- d. 单击确定。 出现一条消息 Convert to a relative path。 单击是。
- e. 对 bkc_dptx.syslib 和 bkc_dptxll_syslib 目录重复第 7 页上的步骤 8.b 和第 7 页上的 8.c
- f. 单击“确定”。
- 选择 Project ➤ Build All 生成 file software/vip_control 目录下的 vip_control.elf。
- 构建 mem_init file 对于英特尔 Quartus Prime 编译:
- a. 在 Project Explorer 窗口中右键单击 vip_control。
- b. 选择制作目标 ➤ 构建…。
- C。 选择 mem_init_generate。
d. 单击构建。
英特尔 Quartus Prime 软件生成
udx10_dp_onchip_memory2_0_onchip_memory2_0.hex file 在 software/vip_control/mem_init 目录中。
- 在连接板上运行设计后,运行 vip_control.elf 编程 file 由 Eclipse build 创建。
- a. 在 Nios II -Eclipse 窗口的 Project Explorer 选项卡中右键单击 vip_control 文件夹。
- b. 选择 Run As ➤ Nios II Hardware。 如果您打开了 Nios II 终端窗口,请在下载新软件之前将其关闭。
设置英特尔 Arria 10 GX FPGA 开发套件
描述如何设置套件以运行 8K DisplayPort 视频格式转换设计实例amp勒。
图 1. 带有 HiLo 子卡的英特尔 Arria 10 GX 开发套件
该图显示了移除蓝色散热片的电路板,以显示 DDR4 Hilo 卡的位置。 英特尔建议您不要在散热器未就位的情况下运行设计。
步骤:
- 使用 FMC 端口 A 将 Bitec DisplayPort 1.4 FMC 卡安装到开发板上。
- 确保电源开关 (SW1) 已关闭,然后连接电源连接器。
- 将 USB 电缆连接到您的计算机和开发板上的 MicroUSB 连接器 (J3)。
- 在 DisplayPort 源和 Bitec DisplayPort 1.4 FMC 卡的接收器端口之间连接 DisplayPort 1.4 电缆,并确保源处于活动状态。
- 在 DisplayPort 显示器和 Bitec DisplayPort 1.4 FMC 卡的发射器端口之间连接 DisplayPort 1.4 电缆,并确保显示器处于活动状态。
- 使用 SW1 打开电路板。
板状态 LED、按钮和 DIP 开关
英特尔 Arria 10 GX FPGA 开发套件具有八个状态 LED(具有绿色和红色发射器)、三个用户按钮和八个用户 DIP 开关。 8K DisplayPort 视频格式转换设计实例ample 点亮 LED 以指示 DisplayPort 接收器链路的状态。 按钮和 DIP 开关允许您更改设计设置。
状态指示灯
表 2. 状态 LED
引领 | 描述 |
红色 LED | |
0 | 正在进行 DDR4 EMIF 校准。 |
1 | DDR4 EMIF 校准失败。 |
7:2 | 没用过。 |
绿色 LED | |
0 | 当 DisplayPort 接收器链路训练成功完成且设计接收到稳定的视频时亮起。 |
5:1 | DisplayPort 接收器通道数:00001 = 1 通道
00010 = 2 车道 00100 = 4 车道 |
7:6 | DisplayPort 接收器通道速度:00 = 1.62 Gbps
01 = 2.7 Gbps 10 = 5.4 Gbps 11 = 8.1 Gbps |
下表列出了每个 LED 指示的状态。 每个 LED 位置都有可以独立点亮的红色和绿色指示灯。 任何发出橙色光的 LED 都表示红色和绿色指示灯均亮起。
用户按钮
用户按钮 0 控制 Intel 徽标在输出显示右上角的显示。 在启动时,该设计启用徽标的显示。 按下按钮 0 可切换徽标显示的启用。 用户按钮 1 控制设计的缩放模式。 当热插拔源或接收器时,设计默认为:
- 直通模式,如果输入分辨率小于或等于输出分辨率
- 缩小模式,如果输入分辨率大于输出分辨率
每次按下用户按钮 1 时,设计都会切换到下一个缩放模式(passthrough > upscale,upscale > downscale,downscale > passthrough)。 用户按钮 2 未使用。
用户拨码开关
DIP 开关控制可选的 Nios II 终端打印和通过 DisplayPort 发送器驱动的输出视频格式的设置。
表 3. DIP 开关
下表列出了每个 DIP 开关的功能。 DIP 开关编号为 1 到 8(不是 0 到 7),与开关组件上印刷的数字相匹配。 要将每个开关设置为 ON,请将白色开关移向 LCD,远离电路板上的 LED。
转变 | 功能 |
1 | 设置为 ON 时启用 Nios II 终端打印。 |
2 | 设置每种颜色的输出位数:
关闭 = 8 位 ON = 10 位 |
4:3 | 设置输出颜色空间和 sampling:SW4 OFF,SW3 OFF = RGB 4:4:4 SW4 OFF,SW3 ON = YCbCr 4:4:4 SW4 ON,SW3 OFF = YCbCr 4:2:2 SW4 ON,SW3 ON = YCbCr 4:2:0 |
6:5 | 设置输出分辨率和帧率:SW4 OFF,SW3 OFF = 4K60
SW4 关闭,SW3 打开 = 4K30 SW4 打开,SW3 关闭 = 1080p60 SW4 打开,SW3 打开 = 1080i60 |
8:7 | 未使用 |
运行 8K DisplayPort 视频格式转换设计实例ample
您必须下载已编译的 .sof file 用于设计到英特尔 Arria 10 GX FPGA 开发套件来运行设计。
步骤:
- 在 Intel Quartus Prime 软件中,点击 Tools > Programmer。
- 在 Programmer 窗口中,单击 Auto Detect 扫描 JTAG 链接并发现连接的设备。
如果出现弹出窗口要求您更新编程器的设备列表,请单击“是”。 - 在设备列表中,选择标记为 10AX115S2F45 的行。
- 单击“更改” File…
- 使用预编译版本的编程 file Intel 作为设计下载的一部分包括在内,请选择 master_image/pre_compiled.sof。
- 使用您的编程 file 本地编译创建,选择output_files/top.sof。
- 在设备列表的 10AX115S2F45 行中打开 Program/Configure。
- 单击“开始”。
当程序员完成时,设计会自动运行。 - 打开 Nios II 终端以接收来自设计的输出文本消息,否则设计会在多个开关更改后锁定(仅当您将用户 DIP 开关 1 设置为 ON 时)。
- a. 打开终端窗口并输入 nios2-terminal
- b. 按 Enter 键。
连接在输入端。 在没有源的情况下,输出是黑屏,屏幕右上角有 Intel 徽标。
8K DisplayPort 视频格式转换设计实例功能说明ample
Platform Designer 系统 udx10_dp.qsys 包含 DisplayPort 接收器和发送器协议 IP、视频管道 IP 和 Nios II 处理器组件。 该设计将 Platform Designer 系统连接到 DisplayPort 接收器和发送器 PHY 逻辑(其中包含接口收发器)以及 Verilog HDL RTL 设计中顶层的收发器重新配置逻辑 file (top.v)。 该设计包括 DisplayPort 输入和 DisplayPort 输出之间的单一视频处理路径。
图 2. 框图
该图显示了 8K DisplayPort 视频格式转换设计实例中的块amp乐。 该图没有显示连接到 Nios II 的一些通用外设、Nios II 处理器之间的 Avalon-MM 以及系统的其他组件。 该设计从左侧的 DisplayPort 源接受视频,通过视频管道从左到右处理视频,然后将视频传递到右侧的 DisplayPort 接收器。
DisplayPort 接收器 PHY 和 DisplayPort 接收器 IP
Bitec DisplayPort FMC 卡为来自 DisplayPort 源的 DisplayPort 1.4 信号提供缓冲器。 DisplayPort 接收器 PHY 和 DisplayPort 接收器 IP 的组合解码传入信号以创建视频流。 DisplayPort 接收器 PHY 包含用于反序列化传入数据的收发器,DisplayPort 接收器 IP 解码 DisplayPort 协议。 组合的 DisplayPort 接收器 IP 无需任何软件即可处理传入的 DisplayPort 信号。 来自 DisplayPort 接收器 IP 的最终视频信号是一种原生的分组流格式。 该设计将 DisplayPort 接收器配置为 10 位输出。
DisplayPort 到时钟视频 IP
DisplayPort 接收器输出的打包流数据格式与时钟视频输入 IP 期望的时钟视频数据格式不直接兼容。 DisplayPort to Clocked Video IP 是此设计的自定义 IP。 它将 DisplayPort 输出转换为兼容的时钟视频格式,您可以直接连接到时钟视频输入。 DisplayPort to Clocked Video IP 可以修改有线信号标准,并可以改变每个像素内颜色平面的顺序。 DisplayPort 标准指定的颜色顺序不同于 Intel 视频管道 IP 顺序。 Nios II 处理器控制颜色交换。 它使用其 Avalon-MM 从接口从 DisplayPort 接收器 IP 读取当前的传输色彩空间。 它将 DisplayPort 定向到时钟视频 IP,以通过其 Avalon-MM 从接口应用适当的校正。
时钟视频输入
时钟视频输入处理从 DisplayPort 到时钟视频 IP 的时钟视频接口信号,并将其转换为 Avalon-ST 视频信号格式。 这种信号格式从视频中去除所有水平和垂直消隐信息,只留下活动图像数据。 IP 将其打包为每个视频帧一个数据包。 它还添加了额外的元数据包(称为控制包),用于描述每个视频帧的分辨率。 通过处理管道的 Avalon-ST 视频流是四个并行像素,每个像素三个符号。 时钟视频输入为从 DisplayPort 接收器 IP 的可变速率时钟视频信号到视频 IP 管道的固定时钟速率 (300 MHz) 的转换提供时钟交叉。
流清洁器
流清理器确保传递到处理管道的 Avalon-ST 视频信号没有错误。 DisplayPort 源的热插拔可能导致设计将不完整的数据帧呈现给时钟视频输入 IP,并在生成的 Avalon-ST 视频流中产生错误。 包含每个帧的视频数据的数据包的大小与相关控制数据包报告的大小不匹配。 流清理器检测到这些情况,并在有问题的视频数据包末尾添加额外的数据(灰色像素)以完成帧并匹配控制数据包中的规范。
色度分辨率amp勒(输入)
设计从 DisplayPort 输入接收的视频数据可能是 4:4:4、4:2:2 或 4:2:0 色度amp引领。 输入色度ampler 接收任何格式的传入视频,并在所有情况下将其转换为 4:4:4。 为了提供更高的视觉质量,色度分辨率ampler 使用计算量最大的过滤算法。 Nios II处理器读取当前色度samp通过其 Avalon-MM 从接口从 DisplayPort 接收器 IP 获取 ling 格式。 它将格式传达给色度分辨率ampler 通过其 Avalon-MM 从接口。
色彩空间转换器(输入)
来自 DisplayPort 的输入视频数据可以使用 RGB 或 YCbCr 色彩空间。 输入色彩空间转换器以任何格式接收传入视频,并在所有情况下将其转换为 RGB。 Nios II 处理器使用其 Avalon-MM 从接口从 DisplayPort 接收器 IP 读取当前色彩空间; 它将正确的转换系数加载到色度分辨率ampler 通过其 Avalon-MM 从接口。
快船
剪辑器从传入的视频流中选择一个活动区域并丢弃其余部分。 Nios II 处理器上运行的软件控制定义了要选择的区域。 该区域取决于 DisplayPort 源接收到的数据的分辨率以及输出分辨率和缩放模式。 处理器通过其 Avalon-MM 从接口将该区域传送至 Clipper。
洁牙机
该设计根据收到的输入分辨率和您需要的输出分辨率对传入的视频数据应用缩放。 您还可以在三种缩放模式(放大、缩小和直通)之间进行选择。 两个标量 IP 提供缩放功能:一个实现任何所需的缩减;另一个另一个实现升级。 该设计需要两个定标器。
- 当定标器实施缩减时,它不会在每个时钟周期的输出端产生有效数据。 对于前amp例如,如果实现 2 倍的降频比,当设计接收每条偶数输入线时,输出端的有效信号每隔一个时钟周期为高电平,然后对于所有奇数输入线为低电平。 这种突发行为是降低输出数据速率过程的基础,但与下游混频器 IP 不兼容,后者通常期望更一致的数据速率以避免输出下溢。 该设计需要在任何降频和混合器之间使用帧缓冲器。 帧缓冲区允许混合器以其需要的速率读取数据。
- 当缩放器实现放大时,它会在每个时钟周期产生有效数据,因此下面的混频器没有问题。 但是,它可能不会在每个时钟周期都接受新的输入数据。 以 2 倍高档作为前任amp例如,在偶数输出线上,它每隔一个时钟周期接受一个新的数据节拍,然后在奇数输出线上不接受新的输入数据。 但是,如果上游 Clipper 正在应用重要剪辑(例如在放大期间),则它可能会以完全不同的速率生成数据。 因此,Clipper 和 upscale 通常必须由 Frame Buffer 隔开,要求 Scaler 在流水线中位于 Frame Buffer 之后。 缩放器必须位于帧缓冲区之前以进行缩减,因此该设计在帧缓冲区的任一侧实现了两个单独的缩放器:一个用于缩放;另一个用于缩放。 另一个用于降级。
两个定标器还降低了帧缓冲器所需的最大 DDR4 带宽。 您必须始终在帧缓冲区之前应用缩减,从而最大限度地减少写入端的数据速率。 始终在帧缓冲区之后应用升级,这会最大限度地降低读取端的数据速率。 每个定标器从传入视频流中的控制数据包获得所需的输入分辨率,而带有 Avalon-MM 从接口的 Nios II 处理器为每个定标器设置输出分辨率。
帧缓冲器
帧缓冲器使用 DDR4 内存执行三重缓冲,允许视频和图像处理管道在传入和传出帧速率之间执行帧速率转换。 该设计可以接受任何输入帧速率,但总像素速率不得超过每秒 1 千兆像素。 Nios II 软件根据您选择的输出模式将输出帧速率设置为 30 或 60 fps。 输出帧速率是时钟视频输出设置和输出视频像素时钟的函数。 时钟视频输出应用于流水线的背压决定了帧缓冲区的读取端从 DDR4 拉取视频帧的速率。
混合器
混合器生成固定大小的黑色背景图像,Nios II 处理器对其进行编程以匹配当前输出图像的大小。 混音器有两个输入。 第一个输入连接到升频器以允许设计显示当前视频管道的输出。 第二个输入连接到图标生成器块。 该设计仅在时钟视频输入端检测到活跃、稳定的视频时启用混频器的第一个输入。 因此,该设计在输出端保持稳定的输出图像,同时在输入端进行热插拔。 设计 alpha 将第二个输入混合到混合器,连接到图标生成器,在背景和视频管道图像上以 50% 的透明度混合。
色彩空间转换器(输出)
输出色彩空间转换器根据软件的运行时设置将输入 RGB 视频数据转换为 RGB 或 YCbCr 色彩空间。
色度分辨率amp勒(输出)
输出色度ampler 将格式从 4:4:4 转换为 4:4:4、4:2:2 或 4:2:0 格式之一。 软件设置格式。 输出色度ampler 还使用过滤算法来实现高质量的视频。
时钟视频输出
时钟视频输出将 Avalon-ST 视频流转换为时钟视频格式。 时钟视频输出将水平和垂直消隐以及同步定时信息添加到视频中。 Nios II 处理器根据您请求的输出分辨率和帧速率对时钟视频输出中的相关设置进行编程。 时钟视频输出将时钟从固定的 300 MHz 流水线时钟转换为时钟视频的可变速率。
时钟视频到 DisplayPort
DisplayPort 发送器组件接受格式化为时钟视频的数据。 Platform Designer 中导线信号和管道接口声明的差异阻止您将时钟视频输出直接连接到 DisplayPort 发送器 IP。 时钟视频到 DisplayPort 组件是特定于设计的定制 IP,可提供时钟视频输出和 DisplayPort 发送器 IP 之间所需的简单转换。 它还交换每个像素中颜色平面的顺序,以说明 Avalon-ST Video 和 DisplayPort 使用的不同颜色格式标准。
DisplayPort 发送器 IP 和 DisplayPort 发送器 PHY
DisplayPort 发射器 IP 和 DisplayPort 发射器 PHY 一起工作,将视频流从时钟视频转换为兼容的 DisplayPort 流。 DisplayPort 发送器 IP 处理 DisplayPort 协议并对有效的 DisplayPort 数据进行编码,而 DisplayPort 发送器 PHY 包含收发器并创建高速串行输出。
Nios II 处理器和外设
Platform Designer 系统包含一个 Nios II 处理器,它管理 DisplayPort 接收器和发送器 IP 以及处理流水线的运行时设置。 Nios II 处理器连接到这些基本外设:
- 用于存储程序及其数据的片上存储器。
- AJTAG UART 显示软件 printf 输出(通过 Nios II 终端)。
- 根据 DisplayPort 最短事件持续时间规范的要求,系统计时器会在软件的各个点生成毫秒级延迟。
- LED 显示系统状态。
- 按钮开关允许在缩放模式之间切换以及启用和禁用英特尔徽标的显示。
- DIP 开关允许切换输出格式以及启用和禁用消息打印到 Nios II 终端。
DisplayPort 源和接收器上的热插拔事件触发中断,触发 Nios II 处理器正确配置 DisplayPort 发送器和流水线。 软件代码中的主循环还监控按钮和 DIP 开关上的值,并相应地更改管道设置。
I²C 控制器
该设计包含两个 I²C 控制器(Si5338 和 PS8460),用于编辑英特尔 Arria 10 10 GX FPGA 开发套件上其他三个组件的设置。 英特尔 Arria 5338 GX FPGA 开发套件上的两个 Si10 时钟发生器连接到同一 I²C 总线。 第一个为 DDR4 EMIF 生成参考时钟。 默认情况下,此时钟设置为 100 MHz 以用于 1066 MHz DDR4,但此设计以 4 MHz 运行 DDR1200,这需要 150 MHz 的参考时钟。 在启动时,Nios II 处理器通过 I²C 控制器外设更改第一个 Si5338 寄存器映射中的设置,以将 DDR4 参考时钟的速度提高到 150MHz。 第二个 Si5338 时钟发生器为管道和 DisplayPort 发送器 IP 之间的时钟视频接口生成 vid_clk。 您必须针对设计支持的每个不同输出分辨率和帧速率调整此时钟的速度。 当 Nios II 处理器需要时,您可以在运行时调整速度。 Bitec DisplayPort 1.4 FMC 子卡使用 Parade PS8460 抖动清除中继器和重定时器。 在启动时,Nios II 处理器会编辑该组件的默认设置以满足设计要求。
软体说明
8K DisplayPort 视频格式转换设计实例amp文件包括来自英特尔视频和图像处理套件的 IP 以及 DisplayPort 接口 IP 如果设置正确,所有这些 IP 都可以处理数据帧而无需任何进一步干预。 您必须实施外部高级控制来设置 IP,以便在系统发生变化时开始以及何时发生变化,例如 DisplayPort 接收器或发射器热插拔事件或用户按钮活动。 在此设计中,运行定制控制软件的 Nios II 处理器提供高级控制。 启动软件时:
- 将 DDR4 参考时钟设置为 150 MHz 以允许 1200 MHz DDR 速度,然后重置外部存储器接口 IP 以在新的参考时钟上重新校准。
- 设置 PS8460 DisplayPort 中继器和重定时器。
- 初始化 DisplayPort 接收器和发射器接口。
- 初始化处理管道 IP。
初始化完成后,软件进入连续的 while 循环,检查并响应大量事件。
缩放模式的变化
该设计支持三种基本缩放模式; 直通、高档和低档。 在直通模式下,设计不缩放输入视频,在放大模式下,设计放大输入视频,在缩小模式下,设计缩小输入视频。
处理流水线中的四个块; Clipper、downscaler、upscaler 和 Mixer 决定了每种模式下最终输出的呈现方式。 该软件根据您选择的当前输入分辨率、输出分辨率和缩放模式来控制每个块的设置。 在大多数情况下,Clipper 会原封不动地传递输入,并且 Mixer 背景大小与输入视频的最终缩放版本大小相同。 但是,如果输入视频分辨率大于输出大小,则在不先裁剪输入视频的情况下无法对输入视频应用放大。 如果输入分辨率小于输出,则软件无法在不应用大于输入视频层的混合器背景层的情况下应用缩小,这会在输出视频周围添加黑条。
表 4. 处理块流水线
该表列出了四个处理流水线块在缩放模式、输入分辨率和输出分辨率的九种组合中的每一种中的动作。
模式 | 进 > 出 | 进=出 | 进 < 出 |
直通 | 剪辑到输出大小 没有缩小 | 无剪辑
没有降档 |
无剪辑
没有降档 |
持续… |
模式 | 进 > 出 | 进=出 | 进 < 出 |
没有高档
无黑边 |
没有高档
无黑边 |
没有高档
黑色边框填充到输出尺寸 |
|
高档 | 裁剪到 2/3 的输出大小 没有缩小
放大到输出尺寸 无黑色边框 |
裁剪到 2/3 的输出大小 没有缩小
放大到输出尺寸 无黑色边框 |
无剪辑
没有降档 放大到输出尺寸 无黑色边框 |
缩小规模 | 无剪辑
缩小到输出尺寸 没有放大 无黑边 |
无剪辑
缩小到输出尺寸 没有放大 无黑边 |
无剪辑
缩小到输入大小的 2/3 没有放大 黑色边框填充到输出尺寸 |
通过按下用户按钮 1 在模式之间切换。软件在每次循环运行时监视按钮上的值(它执行软件去抖动)并适当地配置处理管道中的 IP。
DisplayPort 输入的变化
在每次循环运行时,软件都会轮询时钟视频输入的状态,寻找输入视频流稳定性的变化。 在以下情况下,软件认为视频稳定:
- 时钟视频输入报告时钟视频已成功锁定。
- 自上次循环运行以来,输入分辨率和颜色空间没有变化。
如果输入稳定但失去锁定或视频流的属性发生变化,软件将停止时钟视频输入通过管道发送视频。 它还将 Mixer 设置为停止显示输入视频层。 在任何接收器热插拔事件或分辨率更改期间,输出保持活动状态(显示黑屏和英特尔徽标)。
如果输入不稳定但现在稳定,软件会配置管道以显示新的输入分辨率和色彩空间,重新启动 CVI 的输出,并设置混合器再次显示输入视频层。 混合器层的重新启用不是立即的,因为帧缓冲区可能仍在重复来自先前输入的旧帧,并且设计必须清除这些帧。 然后您可以重新启用显示以避免出现故障。 帧缓冲区记录从 DDR4 读取的帧数,Nios II 处理器可以读取这些帧数。 该软件amp当输入变得稳定时记录此计数,并在计数增加四帧时重新启用混合器层,这可确保设计从缓冲区中清除所有旧帧。
DisplayPort 发送器热插拔事件
DisplayPort 发射器上的热插拔事件会在软件中触发一个中断,该中断会设置一个标志以警告主软件循环输出发生变化。 当设计检测到发射器热插拔时,软件会读取新显示器的 EDID,以确定其支持的分辨率和色彩空间。 如果您将 DIP 开关设置为新显示器无法支持的模式,则软件会回退到要求较低的显示模式。 然后配置管道、DisplayPort 发送器 IP 和为新输出模式生成发送器 vid_clk 的 Si5338 部件。 当输入发生变化时,输入视频的混合器层不会显示,因为软件会编辑管道的设置。 该软件不会重新启用
当新设置通过帧时,显示直到四帧之后
缓冲。
更改用户 DIP 开关设置
用户 DIP 开关 2 到 6 的位置控制通过 DisplayPort 发射器驱动的输出格式(分辨率、帧速率、颜色空间和每种颜色的位数)。 当软件检测到这些 DIP 开关发生变化时,它会运行一个与变送器热插拔几乎相同的序列。 您无需查询发射器的 EDID,因为它不会改变。
AN 889 的修订历史:8K DisplayPort 视频格式转换设计示例ample
表 5. AN 889 的修订历史:8K DisplayPort 视频格式转换设计示例ample
文档版本 | 更改 |
2019.05.30 | 初始版本。 |
英特尔公司。 版权所有。 英特尔、英特尔标识和其他英特尔标志是英特尔公司或其子公司的商标。 英特尔保证其 FPGA 和半导体产品的性能符合英特尔的标准保证,符合当前规格,但保留随时更改任何产品和服务的权利,恕不另行通知。 除非英特尔明确书面同意,否则英特尔不承担因应用或使用此处描述的任何信息、产品或服务而产生的任何责任或义务。 建议英特尔客户在依赖任何已发布的信息以及下订单购买产品或服务之前获取最新版本的设备规格。
*其他名称和品牌可能是其他所有者的财产。
文件/资源
![]() |
intel AN 889 8K DisplayPort 视频格式转换设计实例ample [pdf] 用户指南 AN 889 8K DisplayPort 视频格式转换设计实例ample, AN 889, 8K DisplayPort 视频格式转换设计实例ample,格式转换设计实例ample,转换设计Example |