FPGA设计中的HLS 工具应用

时间:2025-09-10  作者:Diven  阅读:0

1 概述

FPGA设计中的HLS 工具应用

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

图 1 FPGA设计中的抽象层次

从图1 可知,抽象的层次越高可见的细节就越少,对于设计者来说设计起来越容易。

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

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点击创建新工程


工程名字:fir_prj下一步


点击浏览,添加fir.c文件下一步

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

Part选择自己开发板对应的器件。

点击ok

点击finish

工程创建完成。Source 包括我们的设计源文件,Test Bench是我们的仿真文件。

第二步:验证C源代码

点击project>run c simulation 点击ok


C代码仿真完成 0 errors

第三步:高级综合

点击solution > run c synthesis>active solution


综合完成。

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

第五步:IP创建

Verilog代码以及ip已经生成。


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

至此vivado hls的基本使用,以及fir滤波器从c代码已经完全转化为verilog和vhdl的代码以及ip。下节将演示如何使用vivado添加fir滤波器ip。

猜您喜欢

随着全球储能市场的蓬勃发展,储能BMS(电池管理系统)作为保障储能系统安全稳定运行的核心部件,其重要性日益凸显。面对市场上琳琅满目的BMS厂家,如何选择一家技术...
2024-07-08 00:00:00

电容是电子元件中常见的。的作用是储存电能。了解电容的材料很重要。本文将介绍电容内部的材料。电解液电容里面常有电解液。电解液是导电的。通常是液体或胶状的。电解液的...
2025-03-27 12:30:35


现代电子技术中,贴片电阻作为重要的电子元器件,被应用于各种电路中。了解如何正确读取和识别贴片电阻的参数,对于电子工程师和爱好者而言非常重要。本文将详细介绍贴片电...
2025-04-16 17:00:45

DC-DC转换器作为现代电子设备中重要的组件,发挥着关键的作用,尤其在便携式电子设备、汽车电子和可再生能源系统中。通过了解DC-DC转换器的基本组成,我们可以更...
2023-12-22 00:00:00

塑封机是用于将纸张、照片或其材料进行封装的设备。通过加热和压力的结合,将塑料薄膜与被封装物体紧密结合,形成一层保护膜。这种膜不仅能够防止水分、污垢和其外部因素的...
2009-09-26 00:00:00

贴片电阻,顾名思义,就是表面贴装的电阻器。它体型微小,通常呈长方形,广泛应用于各种电子电路中。其主要功能是限制电流的流动,并根据欧姆定律(V=IR,电压=电流x...
2024-11-26 11:29:50

采样电阻作为关键的电子元件,在电路设计和性能优化中是重要配件。紫泰荆采样电阻作为市场上受到关注的品牌,其产品凭借优良的品质和技术优势,赢得了众多客户的青睐。本文...
2021-10-07 12:26:27

二极管是电子电路中常用的半导体元件,其主要功能是允许电流在一个方向流动,而阻止反向电流。反向恢复时间是二极管在切换状态时的重要参数,对电路的性能有着直接影响。本...
2025-03-30 21:30:34

采样电阻作为电流检测的重要元件,是关键配件。捷比信作为业内知名品牌,其采样电阻产品以高精度和稳定性,应用于电源管理、电机驱动和电池监测等领域。本文将围绕“捷比信...
2021-10-31 12:50:51