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. 工程编译通过,运行逻辑也确认可行,可就是无法正常打印消息.对比了网上的移植工程也是一致,硬件仿真 ...
随机推荐
- Vue基本使用---对象提供的属性功能
一 过滤器 过滤器就是vue允许开发者自定义的文本格式化函数, 可以使用在两个地方:输出内容和操作数据中. 1.1 定义过滤器的两种方式 1.1.1 使用Vue.filter()进行全局定义 Vue. ...
- 在SQL Server 2008中执行透明数据加密
问题 安全是任何公司的一个主要考量.数据库备份容易被偷并被恢复到另一个SQL Server实例上.当我们浏览SQL Server 2008的新特性时,我们对一个叫做透明数据加密的特性很感兴趣,我们可以 ...
- Java Web系列:Spring Security 基础
Spring Security虽然比JAAS进步很大,但还是先天不足,达不到ASP.NET中的认证和授权的方便快捷.这里演示登录.注销.记住我的常规功能,认证上自定义提供程序避免对数据库的依赖,授权上 ...
- Index--复合索引的思考1
在创建复合索引时,除了考虑索引键的选取外,还需考虑索引键的先后顺序.下面借助一些场景来讲解. 场景1表dbo.UserLoginStats记录每个用户每天的登录统计,目前表中存放10亿数据,每天新增数 ...
- Npoi将excel数据导入到sqlserver数据库
/// <summary> /// 将excel导入到datatable /// </summary> /// <param name="filePath&qu ...
- PHP中define()和dirname(__FILE__)
1,define() 函数定义一个常量.常量类似变量,不同之处在于: (1)在设定以后,常量的值无法更改 (2)常量名不需要开头的美元符号 ($) (3)作用域不影响对常量的访问 (4)常量值只能是字 ...
- [JS] jq绑定事件的参数传递
$(function(){ var obj = {name:"select",param:"2"}; $("#select").click( ...
- 线程池(Linux实现)
讨论QQ群:135202158 本文技术参考了sourceforge项目c thread pool,链接:http://sourceforge.net/projects/cthpool/ 线程池如上一 ...
- Redis存储
redis库提供了两个类:Redis和StrictRedis来实现Redis的命令操作,前者是为了兼容老版本库的集中方法,一般就用StrictRedis 一. redis基本操作 . 设置redis密 ...
- tf.nn.conv2d()需要搞清楚的几个变量。
惯例先展示函数: tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None) 除去name参数用以指 ...