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仿真技术领域不断探索进取,同时也深感肩负使命的迫切,我们非常愿意和业界专业人士交流分享,共同成为新时代科技创新的排头兵!


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

    评论

    相关推荐

    用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 682次阅读

    fpga仿真器接口定义

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

    xds100v3仿真器引脚定义

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

    仿真器和烧录器的区别

    仿真器和烧录器的区别  仿真器和烧录器是电子技术领域中常见的两种设备,它们在电子系统的开发和调试过程中起着重要的作用。尽管它们都是用于调试电子设备的工具,但是它们的功能和工作原理有着明显的区别
    的头像 发表于 12-07 15:48 3584次阅读

    JTAG仿真器接口设计

    电子发烧友网站提供《JTAG仿真器接口设计.pdf》资料免费下载
    发表于 11-27 10:05 0次下载
    JTAG<b class='flag-5'>仿真器</b>接口设计

    #OTP仿真器 HC-ICD 黑板 ,让开发更方便!

    仿真器
    上海芯圣电子股份有限公司
    发布于 :2023年11月16日 09:59:15

    #MTP仿真器 HC-ICD PRO,让开发更方便!

    仿真器MTP
    上海芯圣电子股份有限公司
    发布于 :2023年11月15日 09:28:13

    #芯圣8051核仿真器 HC-LINK-V4 , 让开发更方便!

    仿真器Link
    上海芯圣电子股份有限公司
    发布于 :2023年11月14日 10:28:07

    RT1050仿真器有什么要求吗?

    社区试用的原子RT1050开发板,要仿真的话需要单独买个仿真器吗?Jlink V8是不是不能用啊
    发表于 11-08 08:02

    仿真器作用是什么?

    仿真器的作用是什么?
    发表于 10-19 06:43

    普中51仿真器驱动安装的说明手册

    今天来试试普中的仿真器的使用。看到这个普中仿真器,还没有使用过,只是以前在学校上单片机课程的时候接触过,但是不是普中的仿真器,现在也有了自己的仿真器,当然要试一试了,看着听哈玩的,直接
    发表于 10-10 08:05

    单片机仿真器的作用是什么?

    单片机仿真器的作用是什么? 单片机仿真器是一种可用于验证和调试嵌入式系统的重要工具。它可以帮助开发人员,学生和工程师实现先进的软硬件模拟和仿真,为他们提供一个真实的电路环境,快速开发和
    的头像 发表于 09-08 10:39 1485次阅读

    使用vivado的仿真器仿真时,modelsim的transcript界面无法输出C程序的printf语句是为什么?

    我现在将vivado和modelsim做了联合仿真,用来仿真蜂鸟e203协处理扩展实现的功能。现在的问题是:使用vivado的仿真器
    发表于 08-11 06:44

    如何构建一款先进的数字仿真器

    数字仿真器(Simulator)是一种大型EDA工业软件,是数字验证领域的基础工具之一,也是为数不多的签核(sign-off)级工具。其实历史上第一款 EDA 软件SPICE,就是从仿真开始的。
    的头像 发表于 07-08 14:51 388次阅读
    如何构建一款<b class='flag-5'>先进</b>的数字<b class='flag-5'>仿真器</b>