首页 > 技术 > 内容

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。

猜您喜欢


贴片电阻,就是贴装在电路板表面的一种电阻器。体型微小,却在电子电路中是很重要的配件。 的主要功能是限制电流的流动,并根据欧姆定律(I=U/R)精准地控制电路中的...
2024-11-29 10:26:03
梅花槽刀把螺钉是现代工业中常用的紧固件,其设计独特,适用于多种场合。梅花槽的形状与传统的十字或一字螺钉不同,能够提供更好的抓握力,减少滑脱现象。梅花槽刀把螺钉的...
2010-02-11 00:00:00
汽车保险丝作为保护电路安全的重要元件,其质量和性能直接关系到车辆的安全性和稳定性。绿联(UGREEN)作为知名的电子配件品牌,其推出的UGREEN9汽车保险丝凭...
2022-08-26 16:49:30
现代汽车电气系统中,车用保险丝作为保护电路免受过载和短路损害的重要元件,其质量和性能直接关系到车辆的安全运行。为了统一行业标准,确保车用保险丝的安全性与可靠性,...
2025-12-06 01:00:41
汽车保险丝作为保护电路安全的重要元件,其选型显得尤为关键。WMDA作为知名的汽车保险丝品牌,凭借其优良的品质和性能,受到众多车主和维修人员的青睐。那么,如何正确...
2024-07-04 04:06:30
焊接围裙是专为焊接作业设计的防护服装,旨在保护焊接工人免受高温、火花和熔融金属的伤害。通常由耐高温、耐磨损的材料制成,如皮革或特种合成纤维,以确保在焊接过程中提...
2008-12-02 00:00:00
压敏电阻是一种具有非线性电阻特性的电子元件,应用于电路保护、浪涌抑制等领域。的工作原理是当电压超过一定阈值时,电阻值会迅速降低,从而保护电路不受过电压的影响。在...
2025-03-19 07:30:34
扁锉是常用的手工工具,应用于金属加工、木工和工艺制作中。了解扁锉的参数对于选择合适的工具非常重要。扁锉的长度通常在200毫米到400毫米之间,长度不同适用于不同...
2009-11-08 00:00:00
电子元器件是对各种电子元件和电子器件(半导体)的总称。在生产加工时没有改变原材料分子成分的产品称为元件,在电路中无需加电源即可在有信号时工作,包括电阻、电容、电...
2023-10-08 15:46:00
电子元器件中,贴片电阻因其体积小、性能稳定而被应用。贴片121电阻作为常见的规格,常让初学者和一些电子爱好者产生疑问:“贴片121电阻到底是多大?”本文将围绕这...
2025-11-11 15:30:39