第11周作业—HLS编程环境入门
1、HLS是什么?与VHDL/Verilog有什么关系?
当前最流行的硬件设计语言有两种,即 VHDL 与 Verilog HDL,两者各有优劣,也各有相当多的拥护者。VHDL 语言由美国军方所推出,最早通过国际电机工程师学会(IEEE)的标准,在北美及欧洲应用非常普遍。而 Verilog HDL 语言则由 Gateway 公司提出,这家公司辗转被Cadence所购并,并得到Synopsys的支持。在得到这两大 EDA 公司的支持后,也随后通过了 IEEE 标准,在美国、日本及中国台湾地区使用非常普遍。
两者结构基本相似,并行语句的种类也类似;
VHDL语言需要进行大量说明,程序通常比较长;
Verilog HDL通常不进行说明,或只进行非常简短的说明,程序比较简短。
2、 HLS有哪些关键技术问题?目前存在什么技术局限性?
1.HLS编译器问题
HLS编译器是静态工具,对理解代码的动态特性没有任何帮助。==HLS编译器的行为通常难以预测最终的性能和资源利用率。==因此,设计人员必须通过对相应的代码部分应用各种编译指示及其相关的参数设置,来手动探索设计空间,直到达到设计目标。
2.对于一些简单的逻辑,HLS实现结果较为臃肿。
一些简单的逻辑,用HDL实现只需要数十行代码,而HLS的实现结果却相当复杂。
3.HLS对开发人员的要求比较高。
HLS使用的语言显然不是标准C/C++语言,应该是扩展类C/C++语言。例如可以使用int1、int7等类型定义位宽为1、7的变量。HLS开发对从业人员的要求还是比较高的,需要软硬兼通才比较好。