天天看点

HLS编程环境入门一、HLS是什么?与VHDL/Verilog有什么关系?二、HLS有哪些关键技术问题?目前存在什么技术局限性?三、参考

目录

  • 一、HLS是什么?与VHDL/Verilog有什么关系?
    • 1、HLS是什么?
    • 2、与VHDL/Verilog有什么关系?
    • 3、HLS包含的阶段
  • 二、HLS有哪些关键技术问题?目前存在什么技术局限性?
  • 三、参考

一、HLS是什么?与VHDL/Verilog有什么关系?

1、HLS是什么?

HLS(High level Synthesis)就是从高层次描述,之后综合成可用的网表文件的技术。这里的“高”指采用C、C++等编写程序,而不是传统的HDL语言。然而,实际上Vivado套件中是预先采用Vivado HLS这个软件将C程序转换成为Verilog HDL或者VHDL代码,之后进行下一步操作的,并不是直接综合C代码。通过HLS这个过程可以显著加快FPGA的设计进程,而不用从底层的FPGA语言编起。

2、与VHDL/Verilog有什么关系?

优点:用高级语言完成期望在硬件电路上实现的功能,更加抽象和容易实现。

缺点:尽管是用高级语言描述实现在硬件电路上实现功能,但会有很多限制,例如动态分配内存等函数或定义的禁用,也有很多不足,例如循环的优化始终是个大难题。

3、HLS包含的阶段

1.scheduling:确定每个时钟周期中执行哪些步骤

2.Binding:确定哪些硬件资源会被用到

3.控制逻辑提取:提取控制逻辑,创建一个有限状态机(FSM:Finite state machine)来进行RTL的设计。

二、HLS有哪些关键技术问题?目前存在什么技术局限性?

1.HLS编译器问题

HLS编译器是静态工具,对理解代码的动态特性没有任何帮助。HLS编译器的行为通常难以预测最终的性能和资源利用率。 因此,设计人员必须通过对相应的代码部分应用各种编译指示及其相关的参数设置,来手动探索设计空间,直到达到设计目标。

2.对于一些简单的逻辑,HLS实现结果较为臃肿。

一些简单的逻辑,用HDL实现只需要数十行代码,而HLS的实现结果却相当复杂。

3.HLS对开发人员的要求比较高。

HLS使用的语言显然不是标准C/C++语言,应该是扩展类C/C++语言。例如可以使用int1、int7等类型定义位宽为1、7的变量。HLS开发对从业人员的要求还是比较高的,需要软硬兼通才比较好。

三、参考

具体详情,请看这里

继续阅读