三个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支持更物理层的信息。

Hardware Emulation Platform (硬件仿真平台) 在IC验证中的运用情况如何?的更多相关文章

  1. 智能IC卡中的文件系统

    1.文件系统是COS的重要模块之一,它负责组织.管理.维护IC卡内存储的所有数据. 文件系统的设计和实现既是COS系统中最灵活.最有个性的部分,也是对系统整体结构影响最大的模块之一. 2.在IC卡内, ...

  2. 驱动开发学习笔记. 0.05 linux 2.6 platform device register 平台设备注册 2/2 共2篇

    驱动开发读书笔记. 0.05 linux 2.6 platform device register 平台设备注册 2/2 共2篇 下面这段摘自 linux源码里面的文档 : 内核版本2.6.22Doc ...

  3. 驱动开发学习笔记. 0.04 linux 2.6 platform device register 平台设备注册 1/2 共2篇

    驱动开发读书笔记. 0.04  linux 2.6 platform device register 平台设备注册  1/2 共2篇下面这段摘自 linux源码里面的文档 : Documentatio ...

  4. P2P/WSN信任建模与仿真平台

    1.ART Testbed 该平台是基于多代理的信任仿真平台,官网的介绍如下: The Agent Reputation and Trust (ART) Testbed initiative has ...

  5. Aurora学习笔记连载一:仿真平台搭建

    由于公司项目需要,需要学习Aurora协议,才有了这样的连载学习笔记,也算是对自己学习的一份记录吧. 对于Aurora是什么,大家自行百度. 当然,Kevin也在此先提醒大家,本套学习笔记不是你想学就 ...

  6. 使用SystemC进行硬件仿真

    使用SystemC进行硬件仿真 环境 linux-x86-64 bash g++ 下载解压SystemC SystemC下载地址 解压下载的包 tar zxvf systemc-2.3.3.tar.g ...

  7. 图像处理算法的仿真平台之VGA时序

    一  概述 图像处理算法一般是用matla或OpenCV实现的,若是用FPGA实现,设计思路差别极大.matlab和opencv的优势:这些工具的优势在于可以方便地载入图像文件,或输出数据到图像文件, ...

  8. Modelsim的自动化脚本仿真平台

    自动化仿真平台由tcl语言搭建,大规模设计使用此平台让仿真便捷不少.大体上用tcl语言进行modelsim仿真的流程如下: 1. 建立库 2. 映射库到物理目录 3. 编译源代码 4. 启动仿真器 5 ...

  9. 基于MDK编程STM32程序无法使用,硬件仿真在汇编窗口看到停留在“0x0800XXXX BEAB BKPT 0xAB //进入调试模式”

    为方便工作上做测试,移植FreeRTOS到STM32F103xx,先做简单的UART1 printf. 工程编译通过,运行逻辑也确认可行,可就是无法正常打印消息.对比了网上的移植工程也是一致,硬件仿真 ...

随机推荐

  1. 使用Array.prototype.indexOf()的几点注意

    对应indexOf这个方法,在日常开发中比较常见的应该是String.prototype.indexOf()方法,Array.prototype.indexOf()方法和其有很大的相似性,本文不想去描 ...

  2. solr特点四: SpellCheck(拼写检查)

    接下来,我将介绍如何向应用程序添加 “您是不是要找……”(拼写检查). 提供拼写建议 Lucene 和 Solr 很久以前就开始提供拼写检查功能了,但直到添加了 SearchComponent架构之后 ...

  3. Jenkins HA高可用参考

    商用版Jenkins(CloudBee)提供HA插件,开源版本可以借助etcd服务发现+心跳脚本+sync的方式实现高可用.

  4. .NET Core调用WCF的最佳实践

    现在.NET Core貌似很火,与其他.NET开发者交流不说上几句.NET Core都感觉自己落伍了一样.但是冷静背后我们要也看到.NET Core目前还有太多不足,别的不多说,与自家的服务框架WCF ...

  5. 基于ASP.NET生成条形码(code128)

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Dr ...

  6. 类似gitlab代码提交的热力图怎么做?

    本文由  网易云发布. 作者:张淞(本篇文章仅限知乎内部分享,如需转载,请取得作者同意授权.) 昨夜,网易有数产品经理路过开发的显示屏前见到了类型这样的一张图: 于是想到有数能不能做出这样的图来?作为 ...

  7. Delphi XE7中使用JSON

    Delphi XE7有一个对JSON处理的单元,在你需要使用JSON的单元里面引入"System.json",随后你就可以用Delphi自己的json处理类了.我写的小例子只是对包 ...

  8. 微信小程序遇到的问题

    1.小程序navigator点击时不显示背景颜色 详情见官方文档:https://developers.weixin.qq.com/miniprogram/dev/component/navigato ...

  9. CF77E Martian Food(圆的反演or 笛卡尔定理+韦达定理)

    题面 传送门 这题有两种方法(然而两种我都想不到) 方法一 前置芝士 笛卡尔定理 我们定义一个圆的曲率为\(k=\pm {1\over r}\),其中\(r\)是圆的半径 若在平面上有两两相切,且六个 ...

  10. Windows 如何完整备份驱动

    软件:DriverBackUp 系统环境:Windows7 首先将DriverBackUp.exe放到桌面,然后运行,我们会看到提示信息提示我们驱动程序被备份到了D盘 然后我们会看到备份界面 这里我们 ...