何时使用软件仿真,何时使用硬件仿真
扫描二维码
随时随地手机看文章
大约在40年前,ComprehensiveComputingSystemsandServices公司在市场上推出了首个名为TEGAS的商业数字器,该设备主要用于测试生成和系统。这一对门级电路进行仿真的系统由一个小型专家团队开发,而在此之前只有针对晶体管级电路进行仿真的模拟仿真软件。TEGAS是其专用的描述语言。这种语言仅用于生成数字电路测试向量。最终,仍须通过原型板进行设计验证。
随着20世纪80年代早期计算机辅助工程(CAE)行业的兴起,数字器或逻辑软件仿真也在电子工程界流行起来,成为设计验证的主要手段。到20世纪90年代末,数字软件仿真器逐渐发展演变为寄存器传输级(RTL)软件仿真器,这种软件仿真器支持两种流行的硬件描述语言(HDLs)——Verilog和VHDL。现有的EDA(电子设计自动化,CAE和CAD的产物)供应商用了十多年的时间在同一个工具中支持这两种语言。如今,Synopsys、Cadence和MentorGraphics这三家大型EDA供应商,都提供各自的HDL软件仿真器,在市场上呈现三足鼎立的状态。
多年来一系列的改进使得HDL软件仿真器变得愈加完美。现在,它是一款不可限量的工具,是设计验证和假设分析中必不可少的工具,但其还是有自身的局限性,即设计规模不能超过1亿个ASIC等效门。这种限制较为随意,事实上,仍然可以对更大型的设计进行软件仿真,只是执行速度奇慢无比。
一个示例
若要使用在10Hz下运行的现代软件仿真器来仿真在100MHz下运行的1亿ASIC门设计上的一秒钟的真实数据,这绝非易事。在这种设计复杂度下,可能需要花费1千万秒的时间。即2,778小时,或者115天。一秒钟的100MHz真实数据等于1亿个时钟周期,这个数字相当大,可能会超出处理典型测试平台的要求。在处理典型测试平台时,一毫秒或者更短时间就足够了,在大内存配置的最新PC上运行时,则会将执行时间缩短至一天或更短。这是个合理的目标。
HDL软件仿真器可以在PC场中并行运行,每个PC会处理功能完善的测试平台。半导体公司有成千上万台PC构成的计算场全天运行。
但1亿周期仍不足以处理嵌入式软件设计。由于处理软件在本质上为串行流程,所以对于这项任务来说,有必要按顺序执行数十亿周期。然而,带有HDL软件仿真许可的PC场却鞭长莫及。软件程序无法在子集中进行拆分,再并行运行。
那么,要如何验证SoC设计的嵌入式软件呢?
进入时代
其实由来已久,它给设计人员在流片前提供了一种更为准确的电路行为描述,因为是通过真实的电路和逻辑来实现设计。硬件仿真始于20世纪80年代末,在20世纪90年代末盛行,当时主要是通过商业FPGA进行实现,用于验证需要较长测试周期的处理器和图形设计。它们也遇到诸如电路建模难度高以及可靠性低等各种问题。其成本也较为高昂,并且作为单用户资源,其投资回报较低。然而,硬件仿真器的出色执行速度仍使其成为长处理周期的必要工具。
还是之前的示例,在1MHz下运行的硬件仿真器需要花费100秒来执行1秒钟的真实数据以及处理1亿次周期。硬件仿真器可以在一小时左右的时间内启动操作系统。而且,硬件仿真器的投入比重新流片便宜得多。
图1:不同设计规模下软件仿真与硬件仿真性能对比
HDL软件仿真器由于缓存缺失和内存交换,其执行速度会随着设计规模增加而急剧下降。不过与之不同的是,在此情况下,硬件仿真器的性能只会受到轻微影响(见图1)。
由于商用FPGA硬件仿真器有一定的限制性,定制芯片硬件仿真器由此应运而生。这种硬件仿真器主要有两种不同类型:由MentorGraphics提供的定制FPGA硬件仿真器,又称片上硬件仿真器;以及由CadenceDesignSystems提供的基于处理器的硬件仿真器。同时,Synopsys也支持使用比标准FPGA硬件仿真器更为先进且功能有所增强的最新商用FPGA硬件仿真器。
直到十年前,硬件仿真器才在电路硬件仿真(ICE)模式中被单独部署为物理测试环境。由于当流片提供激励和处理响应时,被测设计(DUT)将最终驻留在此环境中。因为难以进行设置,ICE模式现在并不常见,而对更加灵活的测试环境的需求却在不断增长。应用硬件桥没有可控性/可再现性,并且由于安装时间和维护成本的增加,其还会增加测试环境的复杂度。由于可合成的测试平台能在硬件仿真器内部进行映射,并且无需依赖外部环境便可以硬件仿真器的最高速度执行,因此该测试平台区域还有其他可行的替代方案。不过遗憾的是,它们不易开发。
基于事务的验证或加速(TBV或TBX)是业内最看好的方法,具有两方面的优势。首先,能采用少一个数量级的代码行,在更高抽象层次写入测试平台,简便而又不易出错。其次,由于在硬件仿真器内部映射晶体管的总线功能模型(BFM)实现了急剧加速,这些测试平台比传统RTL平台执行更快。另一个益处是,当用户切换设计或新用户登录时,TBV或TBX不需要人为监督来处理速度适配器。这种方式也适合于远程访问。
何时使用软件仿真,何时使用硬件仿真
HDL软件仿真器适用于设计周期早期阶段的硬件调试,早期阶段的设计主要专注于模块级别。凭借易用、快速设置、极速设计编译等特点,它们可以极其灵活地调试硬件设计。它们还支持每天进行多次设计迭代…只要设计规模合理。但在数千万门级别时会出现问题,这在现在看来只是典型的系统级设计验证。如上所述,它们并不适合嵌入式软件验证。
相反,硬件仿真能找到几乎所有设计缺陷,无论是在硬件中还是在SoC嵌入式软件中。硬件仿真可处理任何设计规模,但需要较长时间进行环境搭建,至少一天,也可能更长时间。而且,相比软件仿真器,其编译速度相对较慢,大约需要一小时以上才能完成编译(见图2)。
图2:基于性能、设计能力和设置/编译时间的软件仿真与硬件仿真对比
现代硬件仿真器支持多个并发用户,包括通过远程访问,因此可增加投资回报。
0次