FPGA设计中的HLS 工具应用

时间:2025-11-01  作者: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。

猜您喜欢

彩灯作为一种景观,安装在建筑物的适当地方一是作为装饰增添节日气氛,二是有一种广告宣传的作用,也可用在舞台上增强晚会灯光效果。实现彩灯控制的方案很多,不同的控制方...
2020-07-29 17:28:00

zxva消防电源监控模块是一款专为消防系统设计的智能监控设备,旨在保障消防系统供电稳定可靠,为生命财产安全保驾护航。该模块具备实时监控、故障报警、数据记录等功能...
2024-05-08 00:00:00

滑动开关是常见的电气开关,应用于各种电子设备中。工作原理简单,通过滑动操作实现电路的开关控制。用户只需轻轻一推,即可轻松切换电源状态,操作简便,极大地方便了日常...
2013-07-28 00:00:00

电流探头是重要的电测工具,应用于电气工程和电子技术领域。主要作用是测量电流的大小和波形,帮助工程师和技术人员实时监测电路的工作状态。通过电流探头,可以精确获取电...
2019-05-29 00:00:00

薄膜电阻作为电子元器件中的重要组成部分,应用于各种电路设计中。万裕(SAMXON)作为知名的电子元件品牌,其薄膜电阻产品因性能稳定、品质优良而受到市场青睐。本文...
2016-08-11 04:32:04

包装袋在现代生活中是重要的配件,具有多重作用。是保护商品的屏障,有效防止灰尘、水分和外力对产品造成损害,确保商品在运输和储存过程中保持完好。包装袋在吸引消费者方...
2011-06-06 00:00:00

人工智能(AI)长期以来一直是科幻作家和学者的主题。将人脑的复杂性复制到计算机中的挑战催生了新一代的科学家、数学家和计算机算法开发人员。持续的研究现在已经让位于...
2022-08-02 15:13:00

1 引言射频识别技术(RFID)是利用射频方式进行远距离通信以达到物品识别目的,可用来追踪和管理几乎所有物理对象。在工业自动化、商业自动化、交通运输控制管理、...
2020-12-07 10:23:00

LED分段驱动器在现代照明系统中是很重要的配件。当无法正常工作时,可能会导致整套照明系统效率降低。对于一般用户来说,了解如何判断LED分段驱动器是否损坏,是维护...
2024-06-21 00:00:00

熔断器作为电路保护的重要元件,其品牌和产品种类日益丰富。在众多熔断器品牌中,Bussmann(巴斯曼)作为一个历史悠久且技术领先的品牌,凭借其高品质和可靠性,得...
2021-08-13 10:31:30