您的位置 首页 被动

FPGA规划中的HLS 东西使用

FPGA设计中的HLS 工具应用-在集成电路行业飞速发展的今天,缩短产品开发的周期而又不牺牲验证过程,这不可避免地成为了商业市场的一个关键因素。Xilinx Vivado High Level Synthesis (即Vivado HLS,高层综合)。这个工具直接使用C、C++或SystemC 开发的高层描述来综合数字硬件,这样就不再需要人工做出用于硬件的设计,像是VHDL 或Verilog 这样的文件,而是由HLS 工具来做这个事情。

1 概述

集成电路职业飞速发展的今日,缩短产品开发的周期而又不献身验证进程,这不可避免地成为了商业商场的一个关键因素。Xilinx Vivado High Level Synthesis (即Vivado HLS,高层归纳)。这个东西直接运用C、C++或SystemC 开发的高层描绘来归纳数字硬件,这样就不再需求人工做出用于硬件的规划,像是VHDL 或Verilog 这样的文件,而是由HLS 东西来做这个工作。

FPGA规划中的HLS 东西运用

图 1 FPGA规划中的笼统层次

从图1 可知,笼统的层次越高可见的细节就越少,关于规划者来说规划起来越简单。

2 labs 1 vivado hls 生成RTL级文件
本次试验以fir(Finite Impulse Response)滤波器,有限长单位冲激响应滤波器为例。
Fir.c源代码:

FPGA规划中的HLS 东西运用

fir_test.c源码:
******************************************************************************/
#include
#include
#include "fir.h"

int main () {
  const int    SAMPLES=600;
  FILE         *fp;

  data_t signal, output;
  coef_t taps[N] = {0,-10,-9,23,56,63,56,23,-9,-10,0,};

  int i, ramp_up;
  signal = 0;
  ramp_up = 1;
  
  fp=fopen("out.dat","w");
  for (i=0;i<=SAMPLES;i++) {
  if (ramp_up == 1) 
  signal = signal + 1;
  else 
  signal = signal – 1;

// Execute the funcTIon with latest input
    fir(&output,taps,signal);
    
    if ((ramp_up == 1) && (signal >= 75))
    ramp_up = 0;
    else if ((ramp_up == 0) && (signal <= -75))
    ramp_up = 1;
   
// Save the results.
    fprintf(fp,"%i %d %d\n",i,signal,output);
  }
  fclose(fp);
  
  printf ("Comparing against output data \n");
  if (system("diff -w out.dat out.gold.dat")) {

fprintf(stdout, "*******************************************\n");
fprintf(stdout, "FAIL: Output DOES NOT match the golden output\n");
fprintf(stdout, "*******************************************\n");
     return 1;
  } else {
fprintf(stdout, "*******************************************\n");
fprintf(stdout, "PASS: The output matches the golden output!\n");
fprintf(stdout, "*******************************************\n");
     return 0;
  }
}

本次试验将经过vivado hls将fir.c生成verilog代码,完结c到verilog的转化,展现了怎么创立一个高层次的组成项目,验证C代码,组成对RTL进行规划,并对RTL进行验证。

第一步:创立工程

翻开Vivado hls点击创立新工程

FPGA规划中的HLS 东西运用

工程姓名:fir_prj下一步

FPGA规划中的HLS 东西运用
点击阅读,增加fir.c文件下一步

FPGA规划中的HLS 东西运用

增加fir_test.c文件以及out.gold.dat文件下一步

FPGA规划中的HLS 东西运用

Part挑选自己开发板对应的器材。

FPGA规划中的HLS 东西运用

点击ok

FPGA规划中的HLS 东西运用

点击finish

FPGA规划中的HLS 东西运用

工程创立完结。Source 包含咱们的规划源文件,Test Bench是咱们的仿真文件。

FPGA规划中的HLS 东西运用

第二步:验证C源代码

FPGA规划中的HLS 东西运用

点击project>run c simulaTIon 点击ok

FPGA规划中的HLS 东西运用

C代码仿真完结 0 errors

FPGA规划中的HLS 东西运用

第三步:高档归纳

点击soluTIon > run c synthesis>acTIve solution

FPGA规划中的HLS 东西运用

归纳完结。

第四步:RTL验证
点击solution>run c/rtl cosimulation   ok

FPGA规划中的HLS 东西运用

FPGA规划中的HLS 东西运用

第五步:IP创立

Verilog代码以及ip现已生成。

FPGA规划中的HLS 东西运用

FPGA规划中的HLS 东西运用

Fir滤波器工程也现已生成。

FPGA规划中的HLS 东西运用

至此vivado hls的根本运用,以及fir滤波器从c代码现已彻底转化为verilog和vhdl的代码以及ip。下节将演示怎么运用vivado增加fir滤波器ip。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/338887.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部