0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

先进仿真器需要具备什么功能?

话说科技 2021-03-26 17:37 次阅读


芯片有别于其他产品,一个显著特性就是它的一次性工程费用(NRE)非常的高昂。芯片内一个微小逻辑错误可能导致上千万美金损失。这也意味在流片前,工程师需要花大量时间利用数字仿真器来验证芯片,保证其功能的正确。

仿真技术是芯片验证必不可少的一个环节,它是保证芯片功能正常的关键手段。仿真主要是通过计算机结合测试激励(stimuli)来模拟芯片在真实环境下的运行状况;同时工程师可以通过各种调试手段来判断运行结果是否符合预期。数字仿真器主要是针对数字电路的仿真,设计工程师需要应用硬件描述语言(HDL)来设计电路,而验证工程师也需要用抽象层的HDL来搭建测试环境;仿真工具需要解释编译这些HDL代码,并计算出仿真结果,以便工程师检查结果。

图一 数字仿真器流程

二十年前,一百万门的设计可以被称作超大规模集成电路,而今数千万门的电路已经司空见惯。数字芯片集成度越来越高,伴随的设计验证语言和方法学不断推陈出新,各种应用平台也层出不穷。这一系列的技术发展都给数字仿真器带来了前所未有的挑战。设计具有竞争力的片上系统(SoC)需要合理地利用各种高精尖的技术。对于数字仿真器来说,它面临的挑战不仅仅是芯片规模上的增长,还有伴随而来的一系列问题,包括:算力受限、调试效率低下、平台单一化等。芯华章在数字仿真器领域做了深入的研究和探索。放眼未来,我们认为一款好的数字仿真器应该具备以下条件:

一、语义解析的合规性(conformity)

仿真器对语法正确解析决定了它能否正确理解设计意图,同时也可以避免相同的编码在不同的仿真器下产生不同仿真结果。设计仿真器最大的挑战在于对HDL语法全面的解析。Verilog标准(IEEE1364)和SystemVerilog标准(IEEE1800)定义的这两种语言的语义非常的复杂,关键字众多,各种组合情况近乎无穷。如SystemVerilog中的interface,在interface中可以做assert,可以在其中使用task,function,还可在其中扩展各种modport等。要做到全面完整的测试,需要在构建仿真器的测试用例时考虑的语法的各个方面,以及各种边界场景。

通常人们认为,计算机语言是形式化(formal)的表达式,不存在歧义,但实际上,IEEE标准中存在很多模糊的界定,尤其在对发生竞争冒险(race condition)时的行为没有明确的规定,处理这些问题,就需要开发者的经验和技巧。

二、良好的性能 (performance)

衡量仿真器的性能量化指标之一是:运行(runtime)时的CPU处理速度和内存消耗。现今的大规模集成电路动辄上亿门,如果还是依赖传统的仿真技术,当设计和环境的规模一旦达到某个数值,大部分商业仿真器性能都会显著下降,造成效率低下。这其实是因为传统的工具基本都是基于单机(single host)构架来设计的。在网络互联日益发达的今天,分布式数据库和多核并行计算等理论越来越成熟,仿真器也必须考虑并利用这些新技术取得更多性能上的突破。

三、卓越的调试功能(debuggability)

调试的重点在于可观测性和可控制性。在数字电路调试中可观测性表现形式有多种,如波形,记录文本(log file),电路图(schematics),源代码,事务级数据表图等等。调试工具的核心功能是针对不同的场景提供能够各种有效的数据表现形式,并在不同数据形式间的可以同步数据标注(annotation)。此外,降低工具的使用门槛,让初级用户非常快速地掌握调试技术,并且提供通用语言的二次开发的接口,也是优秀的调试工具需要着重考虑的。

四、支持跨平台(platform-independent)

传统的EDA工具大多数和单一CPU构架耦合度高,例如某些EDA工具仅支持x86的平台。一旦需要迁移到另一种平台上,所需要的研发工作量是巨大的。如今,处理器生态越来越多样化,未来的平台不再是某个单一处理器的平台,降低EDA工具对底层CPU构架的耦合度,可以让用户更加有效地把工具部署在任何平台上,也让产品有更多应用空间,比如:在移动端的和云端的交互仿真,在移动端和服务器端的联合仿真,利用FPGA和GPGPU的异构加速仿真等。

LLVM的存在为跨平台提供了技术支撑。LLVM是Chris Lattner博士于2000年开发的一种编译器的框架系统,他的目的在于提供一种可以适配多平台的编译系统,让前端语言和后端目标平台解耦。利用LLVM框架开发的仿真软件,理论上可以适配到任意目标平台,甚至可以部署在分布式操作系统上,产品应用范围显著扩大。

芯华章在跨平台方面做了研究探索,2020年11月,芯华章的仿真器利用LLVM技术已经成功将软件运行在国产CPU架构上。这一步工程量看似不大,但是现实意义非凡:这是中国EDA企业率先利用LLVM技术实现跨平台支持,从某种意义上,它说也推动了传统保守的EDA行业朝着更开放的技术领域拓展。

五、特定场景应用(scenario-based applications)

不同的应用场景对仿真器有不同的特殊要求,先进的仿真器需要具备各种场景下所需的功能。在大规模设计中,整个设计和验证环境的编译时间可能高达数十小时,这种速度在调试频繁的设计初期是无法接受。因此,如果仿真器能够只针对修改过的设计部分进行重编译,而保留大部分没改变已有编译结果(snapshot),那么重编译一次的时间就会大大减少,效率就得以提升。这种技术通常叫做:增量式编译(incremental elaboration),或者分区式编译(partition compilation)。

消费电子芯片中涉及到大量的冷复位和热复位,在这些复位情况下的不定态传播(x-state propagation)很大几率会造成芯片潜在的非确定性(indeterministic)功能故障。因此,检查不定态(X-state)在复位情况下的传播极为重要。传统的仿真器通常仅能在门级仿真(Gate Level Simulation)时检查这些功能,但是门级仿真已经属于设计后期,且仿真效率低下,即便检查出问题再修改,对项目进度来说也是压力巨大。如果仿真器能够在设计前期对RTL就能快速检查不定态传播,那么就可以节省更多后仿真时间。

当然,还有很多其他的场景应用,如基于多进程多核加速,基于异构系统的仿真等,囿于文章篇幅这里不能一一展开,我们将在今后的文章中择机叙述。

图二 先进仿真器

数字仿真在浩瀚的科学海洋只是某个分支,但也是一个技术密集型的多学科的领域,它涉及到各种技术,包括:编译原理、数据库、运筹学、形式逻辑、拓扑学、控制理论等。

在十四五计划指导下,我们深深意识到科学技术,尤其是EDA技术,从来没有像今天这样深刻影响着国家的前途命运。芯华章在EDA仿真技术领域不断探索进取,同时也深感肩负使命的迫切,我们非常愿意和业界专业人士交流分享,共同成为新时代科技创新的排头兵!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
收藏 人收藏

    评论

    相关推荐

    ISOM871x高速单通道光仿真器评估模块

    电子发烧友网站提供《ISOM871x高速单通道光仿真器评估模块.pdf》资料免费下载
    发表于 11-15 14:29 0次下载
    ISOM871x高速单通道光<b class='flag-5'>仿真器</b>评估模块

    使用PSpice仿真器对TI智能高侧开关中的热行为进行建模

    电子发烧友网站提供《使用PSpice仿真器对TI智能高侧开关中的热行为进行建模.pdf》资料免费下载
    发表于 09-24 09:26 0次下载
    使用PSpice<b class='flag-5'>仿真器</b>对TI智能高侧开关中的热行为进行建模

    光耦仿真器简介

    电子发烧友网站提供《光耦仿真器简介.pdf》资料免费下载
    发表于 08-28 11:45 0次下载
    光耦<b class='flag-5'>仿真器</b>简介

    TI磁感应仿真器功能简介

    电子发烧友网站提供《TI磁感应仿真器功能简介.pdf》资料免费下载
    发表于 08-28 09:48 0次下载
    TI磁感应<b class='flag-5'>仿真器</b><b class='flag-5'>功能</b>简介

    隔离认证标准揭秘:光耦合与光耦仿真器

    电子发烧友网站提供《隔离认证标准揭秘:光耦合与光耦仿真器.pdf》资料免费下载
    发表于 08-27 10:49 0次下载
    隔离认证标准揭秘:光耦合<b class='flag-5'>器</b>与光耦<b class='flag-5'>仿真器</b>

    仿真器的使用方法有哪些

    仿真器是一种用于模拟和测试电子系统、软件或硬件的工具。它可以帮助工程师在实际硬件或软件部署之前,对设计进行验证和调试。 仿真器的基本概念 仿真器是一种软件或硬件工具,用于模拟和测试电子系统、软件或
    的头像 发表于 08-22 09:16 834次阅读

    请问StarFive VisionFive2支持劳特巴赫的仿真器吗?

    1、StarFive VisionFive2支持劳特巴赫的仿真器吗? 2、VisionFive2当前可以支持哪些仿真器? 2、赛昉官方能否提供支持VisionFive2的仿真器供我们购买?
    发表于 05-21 07:48

    用ST-LINK仿真器IAR调试STM8板子,仿真器总是报错如何解决?

    Thu Feb 23, 2017 13:48:17: Failed to get execution status: SWIM error [30004]: Comm timeout ,之前没用过STM8,新买仿真器仿真器总是出现这个错误,如何解决
    发表于 05-08 07:46

    fpga仿真器是什么?它有哪些优势?

    FPGA仿真器是一种用于模拟FPGA(现场可编程门阵列)硬件行为的软件工具。它通过模拟FPGA内部的逻辑电路、时序和接口等,帮助工程师在FPGA设计过程中进行功能验证和性能测试。FPGA仿真器在FPGA开发流程中扮演着至关重要的
    的头像 发表于 03-15 15:15 1740次阅读

    fpga原型验证平台与硬件仿真器的区别

    FPGA原型验证平台与硬件仿真器在芯片设计和验证过程中各自发挥着独特的作用,它们之间存在明显的区别。
    的头像 发表于 03-15 15:07 1107次阅读

    fpga仿真器接口定义

    FPGA(Field-Programmable Gate Array,现场可编程门阵列)仿真器接口的定义主要依赖于仿真器的具体设计和所支持的通信协议。在FPGA的设计和仿真过程中,接口的定义对于实现与
    的头像 发表于 03-15 14:01 1243次阅读

    光耦仿真器的优势有哪些

    光耦仿真器与业内最常见的光耦合引脚对引脚兼容,有助于无缝集成到现有设计中,同时提供相同的信号行为。
    的头像 发表于 01-30 15:07 567次阅读

    快速原型开发板如何连接EZ-CUBE3仿真器

    EZ-CUBE3是具有Flash存储编程功能的片上调试仿真器,可以用于调试MCU程序或将程序烧写到MCU的内置Flash中。
    的头像 发表于 01-25 09:19 2665次阅读
    快速原型开发板如何连接EZ-CUBE3<b class='flag-5'>仿真器</b>

    NuMaker_Uni脱离仿真器代码无法运行怎么解决?

    RT,使用NuMaker_Uni控制OLED,连接仿真器下载代码正常,拔掉仿真器通过电池供电的5V端口供电MCU代码不运行(代码中有控制LED闪烁,LED不亮),用示波器测试了Vcc,RESET等电压均正常。
    发表于 01-17 06:48

    xds100v3仿真器引脚定义

    xds100v3仿真器是德州仪器(Texas Instruments)推出的一款用于嵌入式系统开发和调试的仿真器。它具有良好的性能和稳定性,可以提供准确的调试和仿真功能,方便开发人员开
    的头像 发表于 01-05 13:40 4710次阅读