当前位置:首页 > 工业控制 > 电子设计自动化
[导读]多年来一系列的改进使得 HDL 软件仿真器变得愈加完美。现在,它是一款不可限量的工具,是设计验证和假设分析中必不可少的工具,但其还是有自身的局限性,即设计规模不能超过 1 亿个 ASIC 等效门。这种限制较为随意,事实上,仍然可以对更大型的设计进行软件仿真,只是执行速度奇慢无比。

大约在 40 年前,Comprehensive Computing Systems and Services公司在市场上推出了首个名为 TEGAS 的商业数字软件仿真器,该设备主要用于测试生成和软件仿真系统。这一对门级电路进行仿真的系统由一个小型专家团队开发,而在此之前只有针对晶体管级电路进行仿真的模拟仿真软件。TEGAS 是其专用的描述语言。这种语言仅用于生成数字电路测试向量。最终,仍须通过原型板进行设计验证。

随着 20 世纪 80 年代早期计算机辅助工程 (CAE) 行业的兴起,数字软件仿真器或逻辑软件仿真也在电子工程界流行起来,成为设计验证的主要手段。到 20 世纪 90 年代末,数字软件仿真器逐渐发展演变为寄存器传输级 (RTL) 软件仿真器,这种软件仿真器支持两种流行的硬件描述语言 (HDLs)—— Verilog 和 VHDL。现有的 EDA(电子设计自动化,CAE 和 CAD 的产物)供应商用了十多年的时间在同一个工具中支持这两种语言。如今,Synopsys、Cadence 和 Mentor Graphics这三家大型 EDA 供应商,都提供各自的 HDL 软件仿真器,在市场上呈现三足鼎立的状态。

多年来一系列的改进使得 HDL 软件仿真器变得愈加完美。现在,它是一款不可限量的工具,是设计验证和假设分析中必不可少的工具,但其还是有自身的局限性,即设计规模不能超过 1 亿个 ASIC 等效门。这种限制较为随意,事实上,仍然可以对更大型的设计进行软件仿真,只是执行速度奇慢无比。

一个示例

若要使用在 10 Hz 下运行的现代软件仿真器来仿真在 100 MHz 下运行的 1 亿 ASIC 门设计上的一秒钟的真实数据,这绝非易事。在这种设计复杂度下,可能需要花费 1 千万秒的时间。即 2,778 小时,或者 115 天。一秒钟的 100 MHz 真实数据等于 1 亿个时钟周期,这个数字相当大,可能会超出处理典型测试平台的要求。在处理典型测试平台时,一毫秒或者更短时间就足够了,在大内存配置的最新 PC 上运行时,则会将执行时间缩短至一天或更短。这是个合理的目标。

HDL 软件仿真器可以在 PC 场中并行运行,每个 PC 会处理功能完善的测试平台。半导体公司有成千上万台 PC 构成的计算场全天运行。

但 1 亿周期仍不足以处理嵌入式软件设计。由于处理软件在本质上为串行流程,所以对于这项任务来说,有必要按顺序执行数十亿周期。然而,带有 HDL 软件仿真许可的 PC 场却鞭长莫及。软件程序无法在子集中进行拆分,再并行运行。

那么,要如何验证 SoC 设计的嵌入式软件呢?

进入硬件仿真时代

硬件仿真其实由来已久,它给设计人员在流片前提供了一种更为准确的电路行为描述,因为硬件仿真是通过真实的电路和逻辑来实现设计。硬件仿真始于 20 世纪 80 年代末,在 20 世纪 90 年代末盛行,当时主要是通过商业 FPGA 进行实现,用于验证需要较长测试周期的处理器和图形设计。它们也遇到诸如电路建模难度高以及可靠性低等各种问题。其成本也较为高昂,并且作为单用户资源,其投资回报较低。然而,硬件仿真器的出色执行速度仍使其成为长处理周期的必要工具。

还是之前的示例,在 1 MHz 下运行的硬件仿真器需要花费 100 秒来执行 1 秒钟的真实数据以及处理 1 亿次周期。硬件仿真器可以在一小时左右的时间内启动操作系统。而且,硬件仿真器的投入比重新流片便宜得多。

图 1:不同设计规模下软件仿真与硬件仿真性能对比。

HDL 软件仿真器由于缓存缺失和内存交换,其执行速度会随着设计规模增加而急剧下降。不过与之不同的是,在此情况下,硬件仿真器的性能只会受到轻微影响(见图 1)。

由于商用 FPGA 硬件仿真器有一定的限制性,定制芯片硬件仿真器由此应运而生。这种硬件仿真器主要有两种不同类型:由 Mentor Graphics 提供的定制 FPGA 硬件仿真器,又称片上硬件仿真器;以及由 Cadence Design Systems 提供的基于处理器的硬件仿真器。同时,Synopsys 也支持使用比标准 FPGA 硬件仿真器更为先进且功能有所增强的最新商用 FPGA 硬件仿真器。

直到十年前,硬件仿真器才在电路硬件仿真 (ICE) 模式中被单独部署为物理测试环境。由于当流片提供激励和处理响应时,被测设计 (DUT) 将最终驻留在此环境中。因为难以进行设置,ICE 模式现在并不常见,而对更加灵活的测试环境的需求却在不断增长。应用硬件桥没有可控性/可再现性,并且由于安装时间和维护成本的增加,其还会增加测试环境的复杂度。由于可合成的测试平台能在硬件仿真器内部进行映射,并且无需依赖外部环境便可以硬件仿真器的最高速度执行,因此该测试平台区域还有其他可行的替代方案。不过遗憾的是,它们不易开发。

基于事务的验证或加速(TBV 或 TBX)是业内最看好的方法,具有两方面的优势。首先,能采用少一个数量级的代码行,在更高抽象层次写入测试平台,简便而又不易出错。其次,由于在硬件仿真器内部映射晶体管的总线功能模型 (BFM) 实现了急剧加速,这些测试平台比传统 RTL 平台执行更快。另一个益处是,当用户切换设计或新用户登录时,TBV 或 TBX 不需要人为监督来处理速度适配器。这种方式也适合于远程访问。

何时使用软件仿真,何时使用硬件仿真

HDL 软件仿真器适用于设计周期早期阶段的硬件调试,早期阶段的设计主要专注于模块级别。凭借易用、快速设置、极速设计编译等特点,它们可以极其灵活地调试硬件设计。它们还支持每天进行多次设计迭代…只要设计规模合理。但在数千万门级别时会出现问题,这在现在看来只是典型的系统级设计验证。如上所述,它们并不适合嵌入式软件验证。

相反,硬件仿真能找到几乎所有设计缺陷,无论是在硬件中还是在 SoC 嵌入式软件中。硬件仿真可处理任何设计规模,但需要较长时间进行环境搭建,至少一天,也可能更长时间。而且,相比软件仿真器,其编译速度相对较慢,大约需要一小时以上才能完成编译(见图 2)。

图 2:基于性能、设计能力和设置/编译时间的软件仿真与硬件仿真对比。

现代硬件仿真器支持多个并发用户,包括通过远程访问,因此可增加投资回报。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

目前市面上比较流行的单片机仿真软件有Keil、ATMEL Studio、Iar Embedded Workbench、Proteus等。其中Keil是一款常用的ARM单片机软件开发工具,它主要用于开发ARM架构的单片机程...

关键字: 单片机 Keil 软件仿真

传统软件仿真工具已经无法满足工程师对仿真时间效益的需求,必须借助硬件仿真加速技术特有的高速、高可见性与准确性等优势,来提升验证效率,排除设计缺陷与漏洞,满足产品开发时间要求,并有效控制SoC开发成本,让芯片公司在设计验证...

关键字: 软件仿真 EDA SoC

(全球TMT2022年9月27日讯)新思科技近日宣布推出业内首款基于其ZeBu® EP1硬件仿真系统的硬件仿真与原型验证统一硬件系统,致力为SoC验证和前期软件开发提供更高水平的性能和灵活性。新思科技ZeBu...

关键字: 硬件仿真 新思科技 硬件系统 编译

该统一硬件提供灵活的容量,既可为硬件验证提供更快的编译,又可为软件开发提供更佳的性能 加利福尼亚州山景城2022年9月27日 /美通社/ -- 新思科技(纳斯达克股票代码:SNPS)近日宣布推出业内首款基于其ZeBu&...

关键字: 芯片 硬件仿真 新思科技 软件开发

对于功能验证,思科做了几件事。它为前门初始化设计了一个测试平台。它采用了所有的 C++/System C 测试检查器和模拟检查,甚至是实时检查,并将它们移植到仿真器中。它还使用 Mentor 的以太网数据包生成器监视器...

关键字: 硬件仿真 网络设计

为网络应用设计 ASIC 面临着独特的挑战。一是这些设备的带宽和延迟性能测试比其他类型的 IC 所需的仿真周期要长得多。当然,扩展模拟会减慢整个设计过程。为了解决这些问题和其他问题,思科工程师采用了将仿真与仿真相结合的做...

关键字: 硬件仿真 网络设计

Dynamic Duo 2.0已经获得了来自NVIDIA、AMD和Arm的高度赞赏,他们在实践中均获得了大幅的硅前效率提升。张永专表示当前中国本土的很多芯片厂商也对Dynamic Duo 2.0非常感兴趣,Cadence...

关键字: cadence EDA 硬件仿真 原型验证

     2008年伊始,国内电信业重组成为人们讨论的焦点,就人们已经预测的重组方案来说,未来的运营商都将拥有自己的固定和移动网络,并且兼营两部分业务,为了成本的最低化

关键字: 运放电路 软件仿真

单片机编程软件的重要性不言而喻,对于单片机编程软件,大家或多或少有所接触。在往期单片机编程软件文章中,小编介绍过IAR单片机编程软件、Keil单片机编程软件。在本文中,小编将再次基于Keil软件,介绍这款单片机编程软件的...

关键字: keil 单片机编程软件 软件仿真 指数

在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的组成部分。通常使用单片机串口通过RS232/RS485电平转换芯片与上位机连接,以进行上位机与下位机的数据交换、参数设置、组成网络以及各种外部设备的连接等...

关键字: 51单片机 keil 串口调试 软件仿真
关闭
关闭