预制与定制FPGA式原型板加入协同仿真(co-emulation and co-simulation)功能,能够提供高速、高能见度平台,实现SoC的快速、早期验证。
系统芯片(SoC)设计的规模与复杂度不断地攀升。同时,产品在市场上的存活时间不断地紧缩,当今的电子市场也对于上市所需的前置时间非常敏感。这些全都加深了SoC设计与验证团队的压力。事实上,现在广为接受的说法就是,验证占了整体SoC开发时间的70%。所以,能够降低验证成本、加速验证执行以及在开发初期尽早进行验证的作法,都是众人注目的焦点。
这篇文章首先介绍构成典型SoC设计与验证环境的主要因素;也会说明传统验证解决方案的优缺点,包括软件仿真、硬件辅助加速与仿真,还有FPGA式原型板的使用。接着会说明创新而且价格合理的做法,让标准FPGA式原型板能够转变成为完善的桌上型硬件仿真器。我们推荐的这种做法是一种典范转移(paradigm shift),能使既有的硬件仿真 (in-circuit emulation) 功能自动化,并且增添全新协同仿真功能,大幅提高预制与定制设计FPGA式原型板的验证效率。
典型的SoC设计与验证环境
首先,让我们来看看典型SoC设计与验证环境的前端部分。至少,这包含某些形式的设计输入、软件仿真方式的功能验证,还有逻辑综合,如图1所示。甚至,这种设计环境现在大多也包括SpringSoft的Verdi自动化侦错系统。Verdi系统让用户能够分析自己软件仿真器的结果并执行侦错,还可以自动使任何门级结果与对应的RTL源代码发生关连。
图1:简化的SoC前端设计与验证环境。
各式各样功能验证的问题之一,就是要收集与储存的数据量。以软件仿真器为例,监视大量信号会大幅拖慢仿真速度,而且冗长的仿真进度又会导致更大量的数据;所以,许多设计与验证环境都使用了SpringSoft的Siloti能见度自动增强系统,来减少记录设计中许多信号数据的负担。Siloti系统用来找出仿真进行中最低限度必须记录的信号;然后Siloti系统会运用这些信号,自动且迅速的产生所有需要但未记录的信号数据。
软件仿真的主要优势就是对设计有完全的能见度;而主要的缺点就是慢,即使在威力强大、高阶工作站上执行,并采用Siloti能见度自动增强技术 – 当今大型SoC设计的软件仿真只能勉强达到几Hz的仿真速度(也就是说,每秒钟只能有几次设计的实时主系统频率周期)。这表示,软件仿真通常仅适用于设计的一小部分,或者适用于全芯片设计的数十个频率周期而已。但是,完全验证现代化SoC需要成千上万甚至数百万频率周期,这时就需要某种形式的硬件辅助验证,如图2所示。
……