构建vitis HLS 项目

Posted 姚家湾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构建vitis HLS 项目相关的知识,希望对你有一定的参考价值。

HLS 使用类似C语言来编写算法。这是构建一个简单的HLS项目的流程。供初学者交流

打开Vitis HLS ,建立新项目

选择元器件型号

 

 

导入源代码led.cpp,led.h

#include "led.h"

void flash_led(led_t *led_o , led_t led_i)
#pragma HLS INTERFACE mode=ap_ovld port=led_i
#pragma HLS INTERFACE mode=ap_ovld port=led_o
cnt_t i;
 for(i=0;i<CNT_MAX;i++)
 if(i==FLASH_FLAG)
 *led_o = ~led_i;

 
 

导入测试程序

#include "led.h"
#include <stdio.h>
int main()
led_t led_i=0x01;
led_t led_o;
const int SHIFT_TIME = 4;
int i;
for(i=0;i<SHIFT_TIME;i++)
 flash_led(&led_o , led_i);
 led_i = led_o;
 printf("shift_out is %d \\n",(int)(led_o&0x01));
 

下面通过C语言仿真,综合,仿真,导出IP四大步骤。

 

C语言仿真

相对比较简单。完成后会显示:

INFO: [SIM 2] *************** CSIM start ***************
INFO: [SIM 4] CSIM will launch GCC as the compiler.
   Compiling ../../../code/led.cpp in debug mode
   Generating csim.exe
shift_out is 0 
shift_out is 1 
shift_out is 0 
shift_out is 1 
INFO: [SIM 1] CSim done with 0 errors.
INFO: [SIM 3] *************** CSIM finish ***************

C语言综合

C/RTL仿真 

这个时间比较长,耐心等待

注意:按下面的方式勾选:

 

是通过vivado 进行仿真的,结束后会自动打开vivado。产生如下窗口:

 

具体的操作没有过多地琢磨。 

导出RTL

导出RTL IP包的时产生了错误

查找网络发现是vitis HLS 需要打一个补丁  y2k22_patch-1.2

具体的做法查看

Export IP Invalid Argument / Revision Number Overflow Issue (Y2K22)

于是,从这个网页下载补丁,在E:Xilinx 目录下解压。进入windows powershell 命令

如下操作:

PS E:\\xilinx> e:/xilinx/Vivado\\2021.2\\tps\\win64\\python-3.8.3\\python.exe  E:\\Xilinx\\y2k22_patch\\patch.py
[2022-04-14] INFO: This script (version: 1.2) patches Xilinx Tools for HLS Y2k22 bug for the following release:
                2014.*, 2015.*, 2016.*, 2017.*, 2018.*, 2019.*, 2020.* and 2021.*
[2022-04-14] UPDATE: E:\\xilinx\\Vitis_HLS\\2021.2\\common\\scripts
[2022-04-14] COPY: E:\\xilinx/y2k22_patch/automg_patch_20220104.tcl  to E:\\xilinx\\Vitis_HLS\\2021.2\\common\\scripts\\automg_patch_20220104.tcl
PS E:\\xilinx>

完成后,再次打开vitis HLS ,生成成功。生成的IP 被放在

F:\\vitisHLS_workspace\\lab_HIS_led\\solution1\\impl\\ip

中,名称为ydsoc_hls_flash_led_1_0.zip

在vivado 在导入

新建一个项目

在settings中选择user repository

open block design

在IP Catalog中发现了我们需要的东西

 双击它,导入。

 在diagram 中看到了

 

以上是关于构建vitis HLS 项目的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Mercurial 用于 Xilinx Vitis IDE 项目

Vivado HLS Coding Style-22维卷积:C代码构建高效硬件

是否有任何详细的教程或案例研究用于使用带有 HLS 回退的 MPEG-DASH 构建在线视频交付服务?

Zynq 开发板上直接使用g++ 编译应用软件

高层次综合(HLS)常用时间术语的解释

何时为 Web 应用程序使用 HLS 或 DASH 格式