HLS的入门理解

一、HLS的简介

1.HLS

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

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

HLS 是一个很好的研究方向,涉及的技能知识和研究点都非常多,需要懂得编译、OS和数字电路等等,每个都是大头,但我不觉得HLS会是未来硬件描述的最佳解决方案。合适的方案应该提供一个抽象层次更高的硬件描述语言。verilog 适合于RTL 级别的硬件描述,但是RTL 级别的硬件描述其实还是过于底层,因此这也带来了很多繁重的编码和设计工作,类似于汇编程序一样,合适的解决方案类似于软件编程中从汇编走向C/C++的过程,提供一个更高层次的抽象描述,并提供一些基本的微结构组件,用于快速搭建数字系统。像blue spec/ chisel就给我有这种感觉。

无论是HLS还是Verilog,两者代表了两个“极端”的方向。Verilog可以精准的控制电路实现,但实现起来需要较长的周期,而HLS虽然可快速迭代,但其从软件到硬件翻译无论是面积还是资源均难以控制。目前我们的算法加速设计采用SpinalHDL,在保持电路本身特性的同时,借助scala语法能够快速的做电路实现

二、HLS的技术

1.关键技术问题

1、将高级语言转化为RTL电路
2、循环优化,并行处理

2.技术局限性

1、与Verilog相比,能做到的优化十分有限
2、HLS编译器是静态工具,对理解代码的动态特性没有任何帮助
3、对于一些简单的逻辑,HLS实现结果较为臃肿
4、HLS对开发人员的要求比较高。

三、文献参考

HLS编程环境入门--------对HLS的理解

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值