HLS(high-level synthesis)简介
高层次综合(High Level Synthesis, HLS)是Xilinx公司推出的最新一代的FPGA设计工具,它能让用户通过编写C/C++等高级语言代码实现RTL级的硬件功能。随着这款工具的出现,软硬之间的区别越来越模糊,即使你对于硬件完全不懂,你也能编写出符合工程功能要求的RTL代码。
可以将其看作一种简化了学习成本的硬件开发工具,通过使用被大众广泛接受的C/C++等高级语言来实现、操作硬件功能。
HLS与VHDL/Verilog的关系
在笔者个人的理解看来,新兴的HLS与VHDL/Verilog两种工具就像是通往一个目的地的两条不同的路,这三者都只是为人所用的工具,类似于软件开发中的不同编程语言,虽然在效力和功能上互有优劣,但本质上是一类物事。
HLS目前所面临的技术难题
笔者在网上查阅资料时发现,HLS除了入门难度较低以外相比其他硬件开发语言还有一定优势,例如因为其对代码中的循环体进行并行性优化,采用流水、展开、合并、嵌套、数据流等方法,可以大幅提高计算速度,以满足当下对高计算量的需求。
可以说HLS本身的使用效力是高于两种传统硬件语言的,但它也有它的劣势,比如另一位作者便在他的文章中提出了对HLS的一些疑问,虽然Verilog耗时耗力,但是设计自由度高,那位作者对HLS能不能设计出最优方案和它的设计效率持保留意见,并且在他的文中表示HLS并没有想象得那么简单,FPGA内部大型算法可以尝试用HLS,至于外部接口等等还是Verilog。
据笔者猜测,这有可能是在软硬结合中导致出的“翻译”差错,有可能在硬件语言中的一些逻辑在软件语言中是没有的,所以虽然HLS倡导降低难度,但在某种意义上却南辕北辙。