HLS编程入门

HLS简要介绍

高层次综合(High-level Synthesis)简称HLS,指的是将高层次语言描述的逻辑结构,自动转换成低抽象级语言描述的电路模型的过程。所谓的高层次语言,包括C、C++、SystemC等,通常有着较高的抽象度,并且往往不具有时钟或时序的概念。相比之下,诸如Verilog、VHDL、SystemVerilog等低层次语言,通常用来描述时钟周期精确(cycle-accurate)的寄存器传输级电路模型,这也是当前ASIC或FPGA设计最为普遍使用的电路建模和描述方法。

HLS关键技术型问题

AutoPilot的工作流程框图如下图所示。在前端,它使用了基于LLVM的编译器架构,能够处理可综合的ANSI C、C++,以及OSCI SystemC等语言编写的模型。这个名为llvm-gcc的前端编译器会将高层语言模型转换为中间表达式(IR),并进行一系列针对代码复杂度、冗余、并行性等方面的代码优化。然后再根据具体的硬件平台,综合生成RTL代码、验证与仿真环境,以及必须的时序和布局约束等。

AutoPilot的成功之处在于,它的HLS结果在某些应用领域完胜人工优化RTL取得的结果。例如,在一个无线MIMO系统中使用的Sphere解码器IP中,AutoPilot将4000行C代码算法成功综合到Virtex5 FPGA上,运行在225MHz,并取得了比赛灵思Sphere解码器IP更少的逻辑资源使用量,见下图。这个结果放在现在也令人十分震撼,它很好的证明了HLS有潜力取得比RTL IP更为出色的性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值