• Hardware Emulation Platform (硬件仿真平台) 在IC验证中的运用情况如何?


    三个EDA公司都有自己的hardware emulation verification platform: Cadence Palladium, Synopsys ZeBu, Mentor Veloce. 这些工具在IC验证工作中的使用情况如何?与传统的仿真(simulation)相比,emulation platform将对IC的验证方法学产生怎样的影响?


    这些工具在IC验证工作中的使用情况如何?

    可视为Simulator的补充(不是替代),软件仿真的硬件化,极大提高了仿真效率。

    越来越多的公司开始采购使用emulator,除了像华为、中兴这样的大公司,很多研究所和新兴小公司也在纷纷购买,emulator成为平台化中心的特点越来越明显,也影响了其它EDA工具的采购,买emulator送simulator和其它tool license啦。(想想花了这么多钱买了台emulator,然后厂商说,亲,搭配我们家的simulator、Power分析工具、DFT工具更好用噢,一起买有优惠噢。你买不买?)


    与传统的仿真(simulation)相比,emulation platform将对IC的验证方法学产生怎样的影响?

    没啥影响,比如UVM、assert、coverage等功能simulator都支持,emulator在硬件部分并不支持,但是可以通过与PC相连接,在PC端运行支持相应的功能,也可称之为co-simulation了。可以说,simulator功能最全,emulator不那么全,但可以跑得更快。

    emulation与FPGA prototype有何异同?
    最大的不同是:emulation可以验证极大规模的芯片设计,如2billion gate,这涉及到多达100块板卡,每张板卡上按16个验证芯片单元算,也就是使用超过了1600块验证芯片单元,里面用到的芯片间切割、布线、时序分析都是极复杂;而FPGA prototype一般用于小规模芯片验证,四颗以上切割、布线就很困难,且速度就下降得很厉害,基本与emulator一个级别了。(emulator贵不是白给的)

    从tool的角度讲,emulator一般使用厂商独家定制的全flow tool,由之前的综合、切割、布线、时序分析、运行、trigger、上下载、查看波形等都专门为此设计和优化,并且为专门的team来处理用户使用过程的各种问题,经过很长时间的积累后,就变得很稳定与强大;而FPGA prototype综合、切割、布线、FPGA芯片、平台设计与制造、外插板卡等都可能是不同的供应商,所使用FPGA芯片也是通用芯片,没有针对大规模验证需求专门优化,也导致了在大规模设计验证上的重重困难。

    emulator可认为是软件simulator的硬件化,是虚拟世界;FPGA prototype是物理芯片流片前的原型化,是真实世界。simulator/emulator都有设计频率和运行频率的差别,比如设计里使用100MHZ的时钟,运行的时候只有100KHZ,一帧图像仿真可能要几个小时才能结束。要与外界硬件连接也必须使用各种专门的转接卡,如speed adapter,来解决emulator与真实世界里硬件的速度不匹配的问题;而FPGA里跑的时钟频率就是真实频率,可能为了将就FPGA的可运行频率进行降频,比如ASIC芯片能运行在1GHZ以上的,在FPGA原型时只跑100MHZ。就算如此,FPGA prototype的运行速度也惊人,所以可能在上面接各种真实的器件,如DDR内存条、FLASH模块、PHY卡、与电脑连接跑实际的运行,可认为就是块真实的电路芯片。

    通常认为emulator理解为介于simulator和FPGA prototyping间的产物,同时拥有二者的优点,如方便debug波形、可使用force/release命令、检查覆盖率、打印display信息、同时运行速度比较快(约2Mhz)等,最大的缺点估计是太贵。

    成为Veloce AE一段时间后,发现Emulator的功能和特点不止这些。C/M/S三家的产品各有自己的特点吧,比如Palladium使用定制化处理器、Veloce使用定制化ASIC芯片、Zebu使用Xilinx V7 FPGA等,在使用上也各有自己的一套流程。

    Emulator基本上可分为三种模式,基于cycle级的软硬件联合仿真、基于事务级Transaction的软硬件联合仿真(Veloce叫TBX)、基于ICE模式的,基本上重点使用后两种。ICE模式运行速度最快,接近于FPGA的运行模式,就是DUT和TB都可综合例化在硬件中,另外还可外接硬件作为激励源,比如PCIE、Ethernet、SATA等设备,通过SpeedBridge来解决真实硬件和Emulator的速度差问题。缺点也很明显,就是TB要是可综合的,或者使用向量模式,限制了其使用方式。

    基于事务级Transaction的软硬件联合仿真(TBX),就是DUT运行在硬件上,有一套实现连接软硬件,包括软件侧、硬件侧、通道,对用户而言,DUT例化连接相应的模块,该模块将很多硬件行为包括时序信息等抽象成很少的信息量,传输通道只需传少量数据,软件侧调用对应的function就可以了,软件不能随意控制硬件侧仿佛的行为,称之为事务级Transaction。这样做的好处自然是极大减少了软硬侧数据的交互量,大大加快了仿真速度。

    使用TBX方式,可认为Simulator的硬件化,速度上比不上ICE模式,但是功能上比ICE强大得多。软件侧通常验证上使用的工具、方法、流程基本都可以使用,比如UVM、覆盖率、功耗验证、SC/SV/C/C++、Qemu上接操作系统如Windows/Linux等。

    另外,Emulator资源可更方便的多人共享使用,基本可认为和服务器相似。一家公司有多个site,在美国、欧洲、印度、中国等,都可远程访问,实现资源利用率最大化。编译是不需在固定的服务器完成的,使用Emulator时,只需简单的命令就自动将BIN文件下载到Emulator、配置、运行,按需要dump波形并上传,方便事后查看,而将Emulator让出来给其他人使用,并且像simulator那样可随意运行任意时间停止下来、下一步命令后继续运行。相比较FPGA原型平台,基本上是放在实验室,一段时间一个人单独使用,不容易远程,且每次搭环境花时间不容易,debug抓波形比较麻烦,且定位时需要反复去运行去抓取issue,与硬件周边相关的设置占用时间很长。

    Emulator需要使用大量经过验证的专有library和model,比如各种DDR RAM、transactor库、VIP等,比FPGA支持更物理层的信息。

  • 相关阅读:
    java学习笔记(4)多态
    scala学习笔记(1)
    java复习(3)继承下
    java复习(3)继承
    java复习(2)
    java中常见的异常种类
    数组的内存结构
    Castle ActiveRecord学习(一)简介
    OAuth2.0 Owin 授权问题
    将对象转为json,加入到HttpResponseMessage中
  • 原文地址:https://www.cnblogs.com/YINBin/p/7157260.html
Copyright © 2020-2023  润新知