首页 > 技术 > 内容

FPGA设计中的HLS 工具应用

时间:2025-12-07  作者:Diven  阅读:0

1 概述

集成电路行业飞速发展的今天,缩短产品开发的周期而又不牺牲验证过程,这不可避免地成为了商业市场的一个关键因素。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。

猜您喜欢


电动车已经成为越来越多人的出行选择,而电动车DC转换器作为电动车的核心部件,是很重要的配件。能够将电动车电池输出的直流电转换为各种电子设备所需的直流电,保障行车...
2024-01-11 00:00:00
贴片排阻因其体积小、性能稳定而被应用于各种电子设备中。捷比信作为知名的电子元器件品牌,其贴片排阻产品因质量优良和型号丰富受到关注。本文将围绕“捷比信贴片排阻型号...
2013-12-08 11:58:47
贴片电阻4701表示阻值为470欧姆,误差为1%。贴片电阻的阻值通常用数字代码标注,对于三位数字的标注方法,前两位数字表示有效数字,第三位数字表示10的n次方,...
2024-11-29 10:25:52
随着电子产品的小型化和智能化,贴片电阻作为电子元器件中常见且重要的组成部分,应用于各种电路设计中。贴片电阻体积小巧,性能稳定,其表面通常印有一组数字或字母,这些...
2025-12-05 06:00:43
焊枪作为焊接工艺中不可少的工具,主要用于将金属材料加热至熔融状态,从而实现各类金属的连接和修复。作用不仅限于焊接,还包括切割、雕刻等多种功能。焊枪通过高温火焰或...
2011-11-07 00:00:00
贴片电阻3320是一种常用的电子元件,因其尺寸为3.2mm x 2.0mm而得名。在各种电子电路中是很重要的配件,例如调节电流、分压、限流等。 3320贴片电阻...
2024-11-29 10:26:19
贴片电阻,顾名思义,是一种表面贴装型的电阻器,以其小巧的体积和优异的性能,广泛应用于各种电子电路中。它就像电路中的小小守护者,默默地发挥着重要的作用。贴片电阻的...
2024-11-26 11:30:00
分流器(Shunt Resistor)作为测量电流和保护电路的重要组成部分,受到关注。susumu作为知名的电子元件制造商,其分流器产品以高精度和高可靠性。市场...
2019-03-25 20:00:30
9月20日,2023琴珠澳集成电路产业促进峰会暨第十八届“中国芯”颁奖仪式在珠海隆重举行。“中国芯”优秀产品评选活动由中国电子信息产业发展研究院在工信部电子信息...
2023-09-25 10:25:00
电子电路中,电容器是重要元件。固态电容和电解电容都是常用类型。各有优缺点。本文将探讨固态电容与电解电容的容量代换。固态电容的特点固态电容是使用固体电解质。的稳定...
2025-03-26 14:00:02