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的验证方法学产生怎样的影响?
emulation与FPGA prototype有何异同?
从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验证中的运用情况如何?的更多相关文章
- 智能IC卡中的文件系统
1.文件系统是COS的重要模块之一,它负责组织.管理.维护IC卡内存储的所有数据. 文件系统的设计和实现既是COS系统中最灵活.最有个性的部分,也是对系统整体结构影响最大的模块之一. 2.在IC卡内, ...
- 驱动开发学习笔记. 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 ...
- 驱动开发学习笔记. 0.04 linux 2.6 platform device register 平台设备注册 1/2 共2篇
驱动开发读书笔记. 0.04 linux 2.6 platform device register 平台设备注册 1/2 共2篇下面这段摘自 linux源码里面的文档 : Documentatio ...
- P2P/WSN信任建模与仿真平台
1.ART Testbed 该平台是基于多代理的信任仿真平台,官网的介绍如下: The Agent Reputation and Trust (ART) Testbed initiative has ...
- Aurora学习笔记连载一:仿真平台搭建
由于公司项目需要,需要学习Aurora协议,才有了这样的连载学习笔记,也算是对自己学习的一份记录吧. 对于Aurora是什么,大家自行百度. 当然,Kevin也在此先提醒大家,本套学习笔记不是你想学就 ...
- 使用SystemC进行硬件仿真
使用SystemC进行硬件仿真 环境 linux-x86-64 bash g++ 下载解压SystemC SystemC下载地址 解压下载的包 tar zxvf systemc-2.3.3.tar.g ...
- 图像处理算法的仿真平台之VGA时序
一 概述 图像处理算法一般是用matla或OpenCV实现的,若是用FPGA实现,设计思路差别极大.matlab和opencv的优势:这些工具的优势在于可以方便地载入图像文件,或输出数据到图像文件, ...
- Modelsim的自动化脚本仿真平台
自动化仿真平台由tcl语言搭建,大规模设计使用此平台让仿真便捷不少.大体上用tcl语言进行modelsim仿真的流程如下: 1. 建立库 2. 映射库到物理目录 3. 编译源代码 4. 启动仿真器 5 ...
- 基于MDK编程STM32程序无法使用,硬件仿真在汇编窗口看到停留在“0x0800XXXX BEAB BKPT 0xAB //进入调试模式”
为方便工作上做测试,移植FreeRTOS到STM32F103xx,先做简单的UART1 printf. 工程编译通过,运行逻辑也确认可行,可就是无法正常打印消息.对比了网上的移植工程也是一致,硬件仿真 ...
随机推荐
- 原创:MVC 5 实例教程(MvcMovieStore 新概念版:mvc5.0,EF6.01) - 1、初露锋芒
说明:MvcMovieStore项目已经发布上线,想了解最新版本功能请登录 MVC 影视(MvcMovie.cn) 进行查阅.如需转载,请注明出处:http://www.cnblogs.com/Dod ...
- XEvent--Demo--使用XEvent来捕获在数据库DB1上发生的锁请求和锁释放
--==============================================================--使用XEvent来捕获在数据库DB1上发生的锁请求和锁释放--=== ...
- TSQL--SQL SERVER 常用系统变量
----------全局变量select @@version as '版本';---------------------------返回当前数据库的版本信息 select APP_NAME ( ) a ...
- Docker私有仓库Registry实战
参考: https://www.cnblogs.com/soar1688/p/6828329.html 1. 关于Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在 ...
- asp.net 错误页面自定义
在我们上网浏览信息的时候,总会有出现404页面的时候,在我们开发的时候也可以自定义这些页面.刚回这次项目中也使用到了,就在网上找到一些方法,今天就把这些方法重新写一遍加深记忆. 在项目的web.con ...
- 记开发个人图书收藏清单小程序开发(九)Web开发——新增图书信息
书房信息初始化已完成,现在开始处理图书信息新增功能. 主要是实现之前New Razor Pages的后台部分. 新增需要保存的Model:Book.InitSpec.cs /Models/Book.I ...
- django系列5.1--ORM对数据库的操作
Django---ORM数据库操作(图书管理系统基本实例) 一.基本知识 MVC模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Mo ...
- Zipper(动态规划)
点击打开链接 描述 Given three strings, you are to determine whether the third string can be formed by combin ...
- jzoj5813
tj:可以知道,隨意構造一個數列x,且x的第i位被n整除的方案是(約數個數)^2m,因為所有數可以隨便選,只要這個數能被n整除即可,方案為約數個數 設一個合法數列a的f值為x,則x小於n^m 假設所有 ...
- Java多线程学习(一)
在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列.Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非 ...