Page 114 - 《软件学报》2020年第10期
P. 114
3090 Journal of Software 软件学报 Vol.31, No.10, October 2020
1.2 高层次综合
事实上,在基于寄存器传输级抽象的硬件描述语言流行之前,学术界就已经开始将算法级或行为级描述映
射成硬件设计的研究.这些早期的工作大约从 20 世纪 70 年代一直持续到 90 年代初,在这段时间涌现了许多论
文和学术著作.其中影响力较大的是 Paulin 与 Knight [21] 、Camposano 与 Wolf [22] 、Gajski [23] 以及 De Micheli [24]
等学者的工作.这些工作探索了高层次综合的基本原理和概念,并发展出了高层次综合工具的基本特征:专用输
入语言加编译综合器.尽管对后世影响深远,但这些工作的商业化尝试都失败了.在当时的背景下,硬件工程师
才刚开始接受寄存器传输级的设计抽象,硬件描述语言都还没有普及,高层次综合技术的引入过于超前,具体来
说该技术当时存在以下两个问题.
(1) 较高的学习成本和较低的硬件设计质量.高层次综合工具一般使用特别定义的行为或算法描述语言
作为输入语言,这些语言与硬件描述语言相比更加专用化且没有通用的规范,基本依赖于厂商的支
持.同时在可以预计的硬件设计质量下降的前提下,开发人员没有学习的欲望;
(2) 适用的专用领域没有广泛的市场.当时的许多高层次综合工具是为数字信号处理器(DSP)的开发设
计的,这类设计的特点是专注数据流和结构化的硬件,这在大部分开发人员都在进行非结构化随机逻
辑集成这类侧重控制流设计的背景下是不合时宜的.
虽然早期学术成果商业化的尝试失败了,但是高层次综合提升开发效率的前景以及硬件描述语言蓬勃发
展的现状依然吸引了 Synopsys、Cadence 和 Mentor Graphics 这些大型的电子设计自动化(EDA)公司投入到了
高层次综合工具的研发中,典型的代表包括 Synopsys 公司的 Behavioral Compiler [25] 、Cadence 公司的 Visual
Architect 和 Mentor Graphics 公司的 Monet Tool [26] .在 20 世纪 90 年代中后期,这些产品一度吸引了广泛的关注.
这些工具的特点是使用单独设计的行为级描述语言作为输入语言,并直接生成门电路级的设计.不过,这次尝试
依然未能取得期待中的成功,并且在之前的基础上又暴露出了有关产品定位的新问题.
(1) 错误的目标群体,并以经典硬件描述语言为竞争对手.这时期的商业产品以正在接受寄存器传输级抽
象、开始使用 VHDL 和 Verilog 等硬件描述语言的硬件设计师为目标用户,提出了基于算法或行为级
抽象的新语言和相应的综合器.这些工具直接从高抽象级别的描述综合生成门电路级的设计,与硬件
描述语言并不兼容且互相替代,这迫使工程师们必须从中做出选择.在已经逐步接受硬件描述语言的
背景下,当时的硬件工程师们关心的问题是,新的工具能否用相同的工作量设计出更高质量的硬件、
是否可在硬件设计质量不变的情况下减少工作量,以及学习曲线是否陡峭.但是,新的工具不仅学习曲
线陡峭,而且几乎不能提高硬件设计质量或者是降低工作量;
(2) 没有清晰地界定基于控制流的设计和基于数据流的设计,导致未能发挥出自身优势.控制流设计大多
包含随机逻辑和跳转结构,而数据流的设计则大多为结构化硬件.基于寄存器传输级的综合器可同时
处理好控制流和数据流的设计.高层次综合由于具有更高的抽象级别,很难生成性能理想的复杂控制
流硬件,但是对于更适合抽象和采取针对优化的数据流设计,高层次综合往往能够生成性能更加良好
的硬件.但是,这时的高层次综合工具未能专注于自身的特长,反而试图在一个框架上来完成各种类型
的硬件设计,以致失去了自身的竞争优势.
时间进入 21 世纪,由于超大规模集成电路的持续发展,Verilog 和 VHDL 的开发效率处于瓶颈状态,同时,由
于异构计算和硬件加速的兴起,大量软件工程师和系统架构师开始尝试协同设计.在软硬件工程师对硬件开发
效率应加以提高的共同需求下,之前高层次综合推广的失利未能阻止工业界和学术界的新一轮尝试.与之前的
环境相比,在新世纪高层次综合的应用有了以下优势.
(1) 大数据处理相关应用的规模不断扩大,针对特定类型应用的硬件设计工具拥有了可观市场,尤其是有
关人工智能和数据库的应用.这些应用在规模大的同时更侧重数据流的处理,让高层次综合有了用武
之地.
(2) 经典硬件描述语言开发效率已经达到瓶颈,开发人员有了对更高层次抽象的明确需求.
在这一阶段,不断有新的高层次综合工具取得学术上和工业上的成功,以至于到了 2019 年依然不断有新的