高级综合(High-level Synthesis,缩写 HLS),又译高层次综合,另又称C合成(C synthesis)、电子系统层次合成(Electronic System Level synthesis,缩写 ESL synthesis),是将电路设计规范的算法级或行为级描述在一定的约束条件下转化为电路结构描述的方法过程。高层次综合又称为行为级综合、算法级综合等。它使设计者能够在更高层次进行电子设计,更快速有效地在较高层次设计验证仿真,而较低层次的工作由工具自动完成,从而让数字电路系统设计工程师可以有更多的精力和更充分的条件去进行设计空间的搜索,寻求最佳的设计方案。

HLS 的过程通常基本包括预处理编译转换调度分配控制器综合RTL生成、和反编译等几个部分。编译、转换部分决定了软件的兼容性和易用性,调度(schedule)和分配(binding)主要决定了产生的 RTL 的性能、资源大小等。

发展

编辑

高层次综合技术的发展经历了三个阶段。尽管早在20世纪80年代初就开始了关于高层次综合技术的研究,并且在90年代推出了一些商业工具,高层次综合设计方法直到最近两三年才获取了一定的成功,得到了集成电路设计公司更多的接受和应用。

第一阶段从80年代初到90年代初,关于 HLS 的研究主要集中在学术科研机构,他们完成了高层次综合的早期的许多研究工作,包括许多关于 HLS 的基本的概念和技术。当时集成电路设计自动化系统开始了迅猛的发展,但限于当时的技术水平和 IC 工业界提出的需求,多数研究努力都停留在较低的设计层次上。因此高层次综合技术被认为是学院派的探索,主要限于在大学和一些基础性研究所中进行学术研究。

第二阶段从90年代初到2000年初,主要是几大 EDA 公司开始尝试推动商业化高层次综合技术,包括SynopsysCadenceMentor,均推出了商业工具,多以行为级的 HDL 为输入语言。但是由于当时 RTL 设计方法能够满足复杂度的需求,HLS 技术的成熟度不够,并且当时的设计主要都是面向控制的,而 HLS 对控制行为的综合 QoR(Quality of Result)较差;以及其它一些因素导致这些工具在商业上都很不成功,而退出市场。

从2000年初到现在,第三阶段的发展是众多 EDA 公司和学术机构一起在推动 HLS 技术的发展和应用,HLS 技术开始走向成熟和商业应用。新的高层次综合技术的解决了导致前两代 HLS 技术商业化失败的三个主要问题:

  1. 输入语言采用了类 C语言而非前两代的 HDL 语言,如 C、C++SystemC 以及 SpecCHandelC 等,这能够使得系统模型得到复用,进行进一步的软硬件实现。
  2. 实现了对时序(timing)比较精确的评估和调度。
  3. 实现了对验证环境的重复使用,通过 TLM 建模技术可以将系统验证环境复用于 RTL 级验证,降低了验证的复杂度。

HLS采用的输入语言主要有C、C++、SystemC、SystemVerilog等。

参考文献

编辑