llc1991

小白一个,记录下自己学习过程

HLS学习-- 建立工程的流程

0
阅读(3075)

首先简单介绍下HLS建立工程的流程:

  1. 首先建立一个算法核心模块文件,后缀可以为 .cpp ; 然后建立一个对应的接口文件,也就是 .h 文件,

    在 .h 中先ifndef  enif 一下,一面重复定义

  2. 创建一个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_time;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