HLS学习-- 建立工程的流程
0赞首先简单介绍下HLS建立工程的流程:
首先建立一个算法核心模块文件,后缀可以为 .cpp ; 然后建立一个对应的接口文件,也就是 .h 文件,
在 .h 中先ifndef enif 一下,一面重复定义
创建一个testbench 文件 .cpp ,testbench 文件里面的函数必须为 main 函数,他是我们的 testbench 启动寻找的入口函数,所以其 mian 函数的类型我 int 类型,因为返回值方便HLS 软件对代码进行分析,
在main 函数中主要是给测试,包括想怎么利用算法模块,在testbench里面 描述出基于算法的工作过程
这才是testbench存在的核心。
#include "shift_led_2.h"
int main(){
led_t led_o=0x06; //首先是激励,所以需要有输入和输出
led_t led_i;
const led_t shift_time=10;
cnt32 i;
for(i=0;i { shift(&led_o,led_i); //算法模块 led_i=led_o; fprintf(stdout,"led_o=%x",led_o&0x7); } } 3. .h 文件是在结束testbench 后不容许存在于 src 文件中,所以要删掉,但是我还是没弄懂为什么不能有 .h 文件 4. project -> run C simulation 5. run c synthesis -> active solution 这样就转化为verilog 了 这是所谓的 C 综合,把C文件综合成 verilog 文件 6. 进行优化操作 7.进行 C和RTL 联合仿真 选择:1. 选择modelsim 仿真,然后跟踪 all 所有。 8 . 查看波形,根据波形选择那些接口需要在vivado中需要使用到。 9. 介绍怎么把自己设计的代码生成私有的ip,以及在vivado中调用方法: a. typedef #define const