构建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代码构建高效硬件