Intel Quartus II IP之DP1.4 工程的创建与使用

前述:

Win10电脑安装了Quartus 21.4,这可以满足绝大多数工程,特别是对于简单调用fifo/ram等的工程,但是想要学习Quartus的HDMI/DP等高速接口类IP,首先需要创建HDMI/DP IP的设计demo工程,此时还需要安装Eclipse与WSL(Windows Subsystem for Linux)。

具体安装方法参考:

Intel开发环境Quartus、Eclipse与WSL的安装

如果仅安装了Quartus,没有安装WSL,在创建DP/HDMI的Generate Example Design Completed时报错如下:

b83972707eeb4121b278bbe74838f642.png

9a3fd8066fd64be896f622e0c754d7b8.png原因是没有安装wsl。

按照步骤安装完wsl后再次运行Generate Example Design Completed时成功,如下图:

fee9fd661bd943d68a34cb1a08bc0d3e.png

部分缩写:

PCRPixel Clock Recovery像素时钟恢复
SST
Single Stream Transport单流传输
MSTMulti Stream Transport多流传输
bpcbit per color 
Eclipse CDTC/C++ Development Tool 
 WSL Windows Subsystem for Linux适用于Linux的Windows子系统

一、创建DP IP的demo工程

该工程实现DP的RX 与TX直通工程,也即是DP RX接收到的信号直接传输给DP TX来发送。

目前验证了4K视频从DP RX接口输入后能从DP TX接口输出4K视频。

1、先创建一个包含FPGA芯片的工程

具体创建方法参考如下:

Quartus II 17.1新建一个流水灯-CSDN博客

2、打开DP IP

在IP Catalog中选择Library 》 Interface Protocols 》Audio & Video 》DisplayPort Intel FPGA IP,双击打开,如下两图:

7ef6a7f1b2ea46a0af5b5bcf90c2622c.png

bc34dbd9843d4777b7756b25ee209212.png

3、编辑基本DP参数

分别编辑Source与Sink端的IP参数:

Source端IP参数如下:

eaecd2af890742dcb094169304567ccb.png

Sink端IP参数如下:

cc2baeef9a084efd92967f01cae5ab9e.png

Source与Sink端的IP参数我只设置了两个参数:

Maximum video output color depth为10 bpc(bit per color)

 

勾选了Enable AUX debug stream

4、生成DP的Example Design工程

默认生成的是DP直通工程,即DisplayPort SST Parallel Loopback with PCR,可以实现DP RX接口的4K视频输入并通过DR TX接口输出该4K视频。

279e203c50d7467588a8db17e47e67da.png

2afbad11bfb3409fb73e8263923a2aad.png

接着单击Generate Example Design接口。

78848ab646764f57aacc77df9e6eb7c3.png

等待创建完成,关闭IP Parameter Editor,并在保存位置找到qpf文件并打开即可.

fee9fd661bd943d68a34cb1a08bc0d3e.png

 

二、DP demo工程的使用

打开后上述新建的demo工程并不能直接使用,因为引脚分配还没完成。

1、新建一个top层.v文件

将demo工程的顶层文件例化到top.v文件中。

一般为了通用性,再demo工程上再打包一层,这样的作用是将demo工程默认生成的输入输出wire/reg名称改为其他工程也在使用的名称,这样方便合入其他工程,且其他工程的引脚分配设置可以共用。

2、导入qsf文件

导入在demo板子上成功运行过的qsf文件,该qsf文件包含了引脚的分配与设置(I/O标准等);

导入qsf文件方法:

Assignments 》 Import Assignments,单击添加qsf文件(该qsf文件可以是其他工程里面的),再OK即可。

9929980ec3cf463f8e508db8a37572be.png

713d27a8951b4125a80ba6612b91ec85.png

 

导出qsf文件方法:

Assignments 》 Export Assignments,无特别要求,默认即可。

a96597965bd84b5d9ca672c31c30c43b.png

ec37d1e510dc402c9f6d9107569da7b8.png

错误:RX channel GXB_DP1_RX0P and TX channel GXB_DP1_TX0P are locked to the same duplex channel.

在最初未导入合适的qsf文件时,报错如下:

Error(12787): RX channel GXB_DP1_RX0P and TX channel GXB_DP1_TX0P are locked to the same duplex channel. In order for both the RX and TX channel to use the same duplex channel, you must assign them to the same group so the Fitter merges them into a single Avalon Memory-Mapped interface. To assign both channels to a group, use the Transceiver Avalon Memory-Mapped Interface Group logic option. 

查阅到官网如下解释:

54ecc5a6dac7474597573ba0839adc13.png

百度解释:

在Quartus的高速接口中,一对高速接口的动态配置接口是共用的。如果在例化的过程中把RX与TX是分开,那么如果要进行动态配置一定要保证它们的动态配置接口的数据来自同一个源,才能在综合适配时优化成一个接口。

解决方法:

在Assignment Editor中将GXB_DP1_RX0P与GXB_DP1_TX0P均设置为Transceiver Avalon Memory-Mapped Interface Group,并在Value中设置为同一数值0,其他同理即可解决。

1a7f9028fb924ae4ac44ac731bba022a.png

 

3、编译工程并下载sof文件即可

在Programmer中下载sof文件。

下载过程中出错,报PMBUS通信异常:

1ab4e5bf4fa843af8140f118b30ea921.png

error报错如下:

Device has stopped receiving configuration data

Error message received from device:External hardware access error.(subcode 0x0032,Info 0x00400008,Location 0x00001800).

Detected a PMBUS error during configuration. Potential errors: VID setting is incorrect in the Intel Quartus Prime project. The target device fails to communicate to a smart regulator or PMBUS master on a board.

Operation failed.

原因是用了Infineon(英飞凌)的PXE1410,需要在Quartus中进行PMBUS设置:

Assignments 》 Device 》 Device and Pin Options,并按如下几张图设置即可。

ddda001d68f74a47a92e8f357f29020d.png

 

88dc034e873a4bd28ba1d0a85559d529.png

6a8a01e166774454b0725106cd2462d8.png

设置完成后,重新编译生成sof下载到FPGA板卡即可成功实现4K视频输入与4K视频输出。

 

参考链接:

DisplayPort Intel® Stratix® 10 FPGA IP Design Example User Guide
DisplayPort Intel® FPGA IP User Guide

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/330933.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

android studio从空白开始

对我来说,真正的第一步是清理电脑C盘。从剩余8G清理到25G,把原来看不顺眼又不敢删的文件夹和软件全删了,删爽了的后果就是,用两天的时间在把一些环境配置慢慢装回来,node.js,jdk,npm。努力把它们…

SG3225HBN(晶体振荡器)

SG3225HBN晶体振荡器是一款低抖动、HCSL输出晶振,频率范围100MHz ~ 325MHz,3.2 2.5 1.05mm封装常规有源晶振,具有小尺寸,高稳定性,可以在G:-40℃至 85℃,H:-40℃至 105℃ 的温度内…

网页版短信平台主要功能有哪些|短信系统开发搭建源码

网页版短信平台主要功能有哪些|短信系统开发搭建源码 网页版短信平台是一种方便用户进行在线短信管理和发送的工具。它具有多项实用的功能,使用户能够更高效地进行短信通讯。以下是网页版短信平台的主要功能: 1. **短信发送和接收:** 用户可…

linux第一个小程序 --- 进度条【简洁】

行缓冲区的概念 结果:先输入hello world然后休眠三秒后结束 当去掉’\n“ 后,结果就变成了先休眠三秒,然后打印hello world后结束。 该现象就证明了缓冲区的存在。 当缓冲区中遇到’‘\n’或者缓冲区被写满后才会被打印出来,在第…

vue2项目导入高德地图

1、看官网新手入门链接导入原生高德地图: 展示地图-入门教程-地图 JS API 2.0 | 高德地图API 2、uniapp开发h5,使用map组件,使用高德地图: 在配置文件中配置地图为高德,(默认使用的是腾讯)&am…

港科夜闻|香港科大团队研发多功能,可重构和抗破坏单线感测器阵列

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大团队研发多功能、可重构和抗破坏单线感测器阵列。研究人员开发出一种受人类听觉系统启发的感测器阵列设计技术。透过模仿人耳根据音位分布来区分声音的能力,这种新型感测器阵列方法可能优化感测器阵列…

SpringBoot-基础篇

学了好久springBoot但是每一次使用都没有一个固定的方法或者是代码的模版,于是乎使用的时候吗,每次都会遇到很多的问题,所以,总结一篇博客用于日后方便自己开发使用,其中包含项目创建,坐标导入,…

一篇综述洞悉医学大型语言模型的原理,应用和挑战

在过去的一年中,随着 GPT-4、LLaMA、Mistral,PaLM 等先进技术的突飞猛进,大型语言模型(Large Language Models)已经引领全球人工智能进入了一个全新的基础模型时代,这一时代不仅开启了技术创新的新篇章&…

[足式机器人]Part2 Dr. CAN学习笔记- Kalman Filter卡尔曼滤波器Ch05-5+6

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记 - Kalman Filter卡尔曼滤波器 Ch05-56 5. An Example 2D例子6. Extended Kalman Filter扩展卡尔曼滤波器(EKF) 5. An Example 2D例子 6. Extended Kalman Filter扩展卡尔曼…

postman测试文件上传接口设置说明

Postman介绍及下载链接地址 Download Postman | Get Started for Free 打开postman 选择POST方法,然后设置goform 设置Header参数 设置Body参数,选择数据form-data 添加文件, 选择为文件属性 添加需要上传的文件

Electron Apple SignIn 登录

本人写博客,向来主张:代码要完整,代码可运行,文中不留下任何疑惑。 最讨厌写博客,代码只留下片段,文中关键的东西没写清楚。之前看了那么多文章,就是不告诉我clientId从哪来的。 官方资料地址&…

c++学习笔记-STL案例-机房预约系统4-管理员模块

前言 衔接上一篇“c学习笔记-STL案例-机房预约系统3-登录模块”,本文主要设计管理员模块,从管理员登录和注销、添加账号、显示账号、查看机房、清空预约五个功能进行分析和实现。 目录 7 管理员模块 7.1 管理员登录和注销 7.1.1 构造函数 ​编辑7.1.2…

【算法】队列+bfs算法 解决树的相关算法题(C++)

文章目录 1. 前言2. 算法题429.N叉树的层序遍历103.二叉树的锯齿形层序遍历662.二叉树最大宽度515.在每个树行中找最大值 1. 前言 队列 与 宽度优先算法(BFS)是解决很多算法问题的常见工具。 BFS通过逐层遍历图或树的节点来寻找解决问题的最短路径或最…

画图案例分享

案例 1 from scipy.misc import derivative from scipy.integrate import quad import matplotlib.pyplot as plt import numpy as np import pandas as pd from scipy.stats import norm import warningsplt.style.use(ggplot) np.random.seed(37) warnings.filterwarnings(i…

《Linux C编程实战》笔记:出错处理

这一节书上把它放到线程这一章,按理说应该在前面就讲了 头文件errno.h定义了变量errno,它存储了错误发生时的错误码,通过错误码可以得到错误的信息 程序开始执行时,变量errno被初始化为0。很多库函数在执行过程中遇到错误时就会…

排序算法9----计数排序(C)

计数排序是一种非比较排序,不比较大小 。 1、思想 计数排序又称为鸽巢原理,是对哈希直接定址法的变形应用。 2、步骤 1、统计数据:统计每个数据出现了多少次。(建立一个count数组,范围从[MIN,MAX],MAX代表arr中…

关于gltf模型格式文件的学习

目录 glTF模型 小黄鸭的gltf模型 字段分析 scene nodes meshes primitives attributes indices mode material accessors bufferView byteOffset count componentType type materials textures images samplers magFilter与minFilter wrapS与wrapT 进行…

10个用于Android开发的有用的Kotlin库及示例

10个用于Android开发的有用的Kotlin库及示例 在Android开发领域,Kotlin已成为一门领先的语言,带来了现代语法和功能的浪潮。随着Kotlin的崛起,涌现出了许多专为其定制的库,进一步增强了开发体验。本文将深入介绍其中的10个库&…

2024年美赛数学建模思路 - 案例:异常检测

文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 建模资料 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常…

C语言从入门到实战——动态内存管理

动态内存管理 前言一、 为什么要有动态内存分配二、 malloc和free2.1 malloc2.2 free 三、calloc和realloc3.1 calloc3.2 realloc 四、常见的动态内存的错误4.1 对NULL指针的解引用操作4.2 对动态开辟空间的越界访问4.3 对非动态开辟内存使用free释放4.4 使用free释放一块动态开…