| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> Vitis HLS 构建项目并生成IP核(Vivado HLS) -> 正文阅读 |
|
[网络协议]Vitis HLS 构建项目并生成IP核(Vivado HLS) |
前言Vitis HLS,可以通过它,用C和C++建立和封装一个IP核,从Vivado 2021的版本开始内置,用于替代Vivado HLS,由于它太新了,网上有关教程很少(2020的版本还是Vivado HLS),所以这个系列的文章,用于记录如何使用Vitis HLS。 使用Vitis HLS开发时,最好不要再使用C语言,而是C++,同时,使用一些旧教程中提到的"ap_cint.h"头文件会报错,这点请看后文提到的“错误1”。所以本文所有代码将使用C++。 新建工程建立工程打开软件后,新建一个工程。 设置好工程目录和工程名。 一路next,它要我们添加两个文件,我们这里略过。到了选择器件一栏。 我这里使用的是xc7z020clg400-2。 点击ok,然后点击finish,就到了开发界面。 编辑源码一开始,我们关注左上角的窗口。 在Source一栏,我们新建两个源文件。 在工程目录下新建一个“src”文件夹用于存放代码文件。这里新建一个h头文件和一个cpp文件。由于使用的是C++,文件名后缀是cpp。 新建好了后,窗口会显示。 这里给出两个文件的代码。
设置端口在led_twinkle.cpp文件下,关注右上角的窗口。 给函数添加一个指令。 按照下面图片设置。注意,这里如果设置成ap_ctrl_none,在C/RTL仿真时会报错,具体参见错误4(当然也可以跳过C/RTL仿真)。 给输出端口也添加一个指令。 同样地,要按下图设置,设置成ap_none会弹警告,具体参见错误4(也可以不理会,设置成ap_none)。 设置好了后,源码中会自动添加有关代码,这里不建议自己添加,最好用软件自动生成。 添加测试在“Test Bench”里,新建一个源文件,叫做led_twinkle_test.cpp。 源码如下。
然后需要设置顶层函数。 选择刚刚设置好的函数。 验证测试要想正确生成IP核,以下四个测试都必须通过。 C语言仿真运行C语言仿真。 除了本身的语法错误会报错,如果用的是C语言写的,而非C++,此处也会报错,见错误1。printf代码的结果,会在这里显示,和C语言的控制台一样,输出一些自己编写的测试信息。 C语言综合运行C语言综合。 如果没有安装最新的补丁,此处可能会报错,见错误2。而如果端口设置错误,会出现错误4。仿真结束后会接口信息等有关的信息。 C/RTL仿真运行C/RTL仿真。 按照如下的设置。 结束之后会出现结果。如果将函数设置成ap_ctrl_none,会报错,具体参见错误4(当然也可以跳过C/RTL仿真)。 导出RTL运行导出RTL。 默认即可,可以不用设置输出目录。 会提示导出成功。 IP核被生成在默认的目录下。 最终结果生成的IP核可以在Vivado中显示了。验证和测试将放到下一篇文章。 如果函数和端口分别设置"ap_ctrl_none"和"ap_none",则是下面这样。在下一篇验证IP核的文章将使用按这样设置产生的IP核。 报错集合错误1
找了很久的答案,发现了问题,是<ap_cint.h>这个头文件出错。从Vitis 2021开始(Vivado 2021),官方明确不再支持这个头文件,同时推荐使用C++开发。而很多老旧教程的代码中依然使用这个头文件,它们用的是C语言。 官方给出的说明和解决方法: 解决方法是将引用的<ap_cint.h>改为<ap_int.h>,同时有关的数据类型需要进行修改。 错误2
其实这里已经提示了,找不到有关的头文件,但是头文件明明是包含在工程中的。 其实是因为使用include的时候,双引号引用和尖括号引用的区别。在本次错误中,错误地使用了双引号引用。 改成双引号引用即可。 错误3
这个报错。控制台中没有给出具体的信息,其实只要安装最新的补丁即可。参考下面的链接。 Export IP Invalid Argument / Revision Number Overflow Issue (Y2K22) 将下载好的补丁解压到软件目录中,按住Shift键再按鼠标右键,打开控制台。 输入README中给出的代码即可。 运行结果。补丁安装成功,重启软件就可以了。 错误4出现警告
出现错误
出现类似错误的,都是因为端口设置出错。很多旧教程中,说到函数要设置成"ap_ctrl_none",以及端口设置成"ap_none",但是这会带来不确定性。正确的做法是设置成"ap_ctrl_hs"以及"ap_hs",这样就不会报错了,结果也是一致的。 但是设置将函数设置成"ap_ctrl_hs",也就是一种双向协议,会引入很多IO口。使用"ap_ctrl_none"也是可以的,就是需要跳过C/RTL仿真。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/30 3:08:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |