HLS编程环境入门

一、HLS简介

1.什么是HLS

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

HLS特点

  • 使用高层语言对系统建模,可以将代码密度压缩7到10倍
  • 高层语言能促进IP重用的效率
  • HLS能帮助软件和算法工程师参与、甚至主导芯片或FPGA设计

1.2 VHDL/Verilog 简介

Verilog HDL和VHDL是世界上最流行的两种硬件描述语言,使用它们开发FPGA的流程如下

  • 文本编辑
  • 功能仿真
  • 逻辑综合
  • 布局布线
  • 时序仿真
  • 编程下载

1.3 总结

  • 为了提高设计数字硬件组件的效率,高层综合(HLS)被视为提高设计抽象水平的下一步。但是,HLS工具的结果质量(QoR)往往落后于手动寄存器传输级别(RTL)流程的质量。
  • 平均而言,RTL流程的QoR仍然优于最新的HLS工具。但是,使用HLS工具的平均开发时间仅为RTL流程的三分之一,并且设计人员使用HLS可以获得的生产率是其四倍以上。
  • HLS当前是用于快速原型设计和较短上市时间的可行选择。

二、HLS技术难点

所谓的高层次综合(HLS)就是将C/C++/System C描述的设计意图, “翻译“成用Verilog/System Verilog描述的RTL,多应用于运算逻辑主导的设计。
这就产生了几个问题:

  • HLS输入并不是软件语言。相反,它是对硬件的更抽象的描述。大多数HLS工具可以使用C语言、SystemC或者C++作为输入语言。
  • 从技术上来说,C++是一种“语言”,但从C/C++语言生成硬件电路模型来看,它也意味着算法的抽象级别。
  • 原始的C代码经常会被修改

使用HLS将软件代码综合成实际的硬件电路时,存在几个基本挑战

  • 代码必须由HLS引擎合成,也就是说,必须将代码编写或重构为硬件可综合的格式,其对习惯于使用标准C/C++编写的软件工程师而言非常重要。
  • HLS编码的可综合性准则很重要,工程师必须熟悉这些涵盖数百页文档的准则。
  • 一旦代码可综合,还需要一定程度的底层硬件意识。

三、参考资料

FPGA——HLS简介
vhdl和verilog的区别_vhdl和verilog哪个好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值