目录
- 创建工程
- 创建源文件并编写C代码
- C仿真
- 综合
- 仿真
- 导出RTL
- CG
- 导出RTL错误处理:
创建工程
创建源文件并编写C代码
- 创建源文件(Souces下的
hlsv.h
和hlsv.cpp
,Test Bench下的test_hlsv1.cpp
):
- hlsv1.h
#ifndef HLSV1
#define HLSV1
#include <ap_int.h>
typedef ap_int<1> led_t;
void hlsv(ap_int<1> *led);
#endif
- hlsv1.cpp
#include "hlsv1.h"
void hlsv1(led_t *led_o){
#pragma HLS INTERFACE ap_ctrl_none port=return
#pragma HLS INTERFACE ap_ovld port=led_o
int i;
for(i=0;i<100000000;i++){
if(i<=59990000){
*led_o = ~(*led_o);
}else{
*led_o = (*led_o);
}
}
}
- test_hlsv1.cpp
#include "hlsv.h"
#include <stdio.h>
int main(){
led_t led;
for(int i=0;i<6;i++){
hlsv(&led);
printf("%d",led);
}
}
C仿真
- 注:可以勾选上
Clean Build
综合
仿真
- 如果选择ModelSim需要安装ModelSim软件:
- 之前错误代码的仿真结果:
- 修改正确后:
导出RTL
CG
- 调整背景颜色:
Preferences -> Appearance -> Theme -> Light
- 在调试时进行C仿真、RTL仿真均成功,且在线调试也成功,后来发现时间间隔设置太小导致led灯一直处于打开状态。
导出RTL错误处理:
- 根据文章“Vivado HLS | Export RTL报错 “ERROR: [IMPL 213-28] Failed to generate IP.“”的提示:
- 下载补丁zip文件:
- 解压到XILINX安装目录,并执行
python .\y2k22_patch\patch.py