emulator总结

什么是硬件仿真器


做IC设计的人应该都知道软件仿真和FPGA原型验证,可以把硬件仿真器理解为这二者之间的产物,它同时具备二者的优点。

软件仿真(simulator)全面,支持UVM、assert、coverage收集、可以很方便的dump 波形来debug,但速度很慢,尤其是在做大分辨率图像处理的时候,一条case甚至可以跑一个礼拜,且相当耗内存,所以在debug一些大分辨率或者多帧之后才出现错误的case时如果只用仿真的话,效率就会很低。

FPGA原型验证(FPGA prototype verification)速度快,可以认为是待验证设计的低速版,是实实在在的芯片了,与待验证设计一起协同工作的其他部分都是工作在实际频率的,比如ddr、flash、phy等,但在debug时不是很方便需要用内嵌逻辑分析仪来抓取信号一点点排查问题,尤其是一些大型设计,单颗FPGA根本放不下,需要多颗通过PCIe级联,debug时更是灾难。

基于软件仿真和FPGA原型验证的不足,硬件仿真器就应运而生。Emulator是软件仿真的硬件化,但还不是真实的硬件,是个虚拟的世界。它通过厂商定制化的流程,将rtl映射到各自的硬件仿真平台上,可以像软件仿真一样dump全部的波形,dump的波形是fsdb格式直接可以用verdi打开查看。由于是映射到专门的硬件上,所以速度比软件仿真快很多。

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

目前有哪些硬件仿真器


做EDA工具的三家巨头都有各自的emulator,Cadence Palladium(帕拉丁), Synopsys ZeBu, Mentor Veloce(韦洛切),但又有不同。

Palladium有的系列使用定制化cpu,有的是用FPGA。Zebu使用Xilinx V7 FPGA。Veloce使用定制化ASIC芯片等,在使用上也各有自己的一套流程,具体可以看对应的userguide。

帕拉丁采用了服务器刀片式机架,可以根据客户需求来扩容,支持资源共享,一般都是把这台机器放在固定机房,和服务器使用类似,比如公司不同site都可以远程访问,编译时不需在固定的服务器,只有在使用Emulator时,只需要用cadence提供的命令load bit即可,然后就可以用像使用FPGA一样来跑case,如果需要debug,设置好触发条件即可,然后dump 波形,上传波形,最后直接用verdi打开波形。

帕拉丁Z1使用cadence自己定制的超标量处理器,分配效率极高,像Z1的每一个机架上配有50W个这样的超标量处理器,最多可以扩展到16个机架,根据验证需要,每次可以指定某几个机架进行服务。这也就解释了为什么emulator和FPGA原型验证不同,它本质上是用一块处理器来仿真一小块设计的逻辑部分,将结果在处理器之间传递,然后成千上万的处理器集群并行工作,依次达到加速的目的。

目前帕拉丁Z2也已经推出,采用xilinx Virtex UltraScale+VU19P FPGA,具体详情可以查看cadence官网。

总结
Emulartor是介于软件仿真和FPGA原型验证之间的,具有二者的有点,速度快,方便调试;
Emulator本质上是通过处理器集群来加速验证任务,并不是实际的电路,在于外设协调时,需要用速度适配器来进行转换,这也是为什么FPGA上的问题emulator有时候不能复现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/60913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前海华海金融创新中心的工地餐点探寻

​前海的工地餐大部分都是13元一份的哈。我在前海华海金融创新中心的工地餐点吃过一份猪杂饭,现做13元一份。我一般打包后回公司吃或直接桂湾公园找个环境优美的地方吃饭。 ​我点的这份猪杂汤粉主要是瘦肉、猪肝、肉饼片、豆芽和生菜,老板依旧贴心问需要…

reduce-scatter:适合分布式计算;Reduce、LayerNorm和Broadcast算子的执行顺序对计算结果的影响,以及它们对资源消耗的影响

目录 Gather Scatter Reduce reduce-scatter:适合分布式计算 Reduce、LayerNorm和Broadcast算子的执行顺序对计算结果的影响,以及它们对资源消耗的影响 计算结果理论正确性 资源消耗方面 Gather 这个也很好理解,就是把多个进程的数据拼凑在一起。 Scatter 不同于Br…

移门缓冲支架:减少噪音,提升生活质量

移门缓冲支架不仅是一个简单的五金配件,更是提升家居生活质量的有效工具。通过减少门关闭时的噪音,移门缓冲支架能够创造一个安静、舒适的生活环境。以下是移门缓冲支架在减少噪音、提升生活质量方面的详细解析: 1. 显著降低关门噪音问题&…

模型运行速度笔记: s/epoch VS s/iter

1 概念介绍 在模型训练中: s/epoch 表示每个epoch所需的秒数,即完成一轮完整数据集训练的时间。s/iter 表示每个iteration(迭代)所需的秒数,即处理一个batch的时间。 它们的关系是: 2 举例 比如我tra…

JavaWeb笔记整理——Spring Task、WebSocket

目录 SpringTask ​cron表达式 WebSocket SpringTask cron表达式 WebSocket

PET-文件包含-FINISHED

include发生错误报warning,继续执行。require发生错误直接error,不继续执行 无视扩展名,只要能解析,就能当可执行文件执行,哪怕文件后缀或没后缀 1 条件竞争 pass17 只需要知道tmp的路径。把xieshell.jpg上传&…

rust逆向初探

rust 逆向葵花宝典 rust逆向技巧 rust逆向三板斧: [!NOTE] 快速定位关键函数 (真正的main函数):观察输出、输入,字符串搜索,断点等方法。定位关键 加密区 :根据输入的flag,打硬件断点,快速捕获…

vue项目npm run serve出现【- Network: unavailable】(从排查到放弃)

1. 问题现象 环境: 系统:win11node:v16.20.2“vue”: “2.6.10” 执行npm run serve启动vue项目,期望: App running at:- Local: http://localhost:9528/ - Network: http://x.x.x.x:9528/实际: App runn…

项目技术栈-解决方案-web3去中心化

web3去中心化 Web3 DApp区块链:钱包:智能合约:UI:ETH系开发技能树DeFi应用 去中心化金融P2P 去中心化网络参考Web3 DApp 区块链: 以以太坊(Ethereum)为主流,也包括Solana、Aptos等其他非EVM链。 区块链本身是软件,需要运行在一系列节点上,这些节点组成P2P网络或者半…

贝叶斯网络——基于概率的图模型(详解)

贝叶斯网络(Bayesian Network,简称BN)是一种基于概率图模型的表示方法,用于表示变量之间的依赖关系,并通过条件概率推断变量间的关系。它通过有向无环图(DAG)来描述变量之间的依赖关系&#xff…

组件间通信(组件间传递数据)

组件间通信(组件间传递数据) 在 Vue.js 中,组件间通信是开发者需要经常处理的任务,特别是在构建具有多层次组件的复杂应用时。根据组件之间的关系和数据流的复杂程度,可以采用不同的通信方式。以下是常用的几种组件间通信方式: …

使用Element UI实现前端分页,及el-table表格跨页选择数据,切换分页保留分页数据,限制多选数量

文章目录 一、前端分页1、模板部分 (\<template>)2、数据部分 (data)3、计算属性 (computed)4、方法 (methods) 二、跨页选择1、模板部分 (\<template>)2、数据部分 (data)3、方法 (methods) 三、限制数量1、模板部分 (\<template>)2、数据部分 (data)3、方法…

GitLab 如何跨版本升级?

本分分享 GitLab 跨版本升级的一些注意事项。 众所周知&#xff0c;GitLab 的升级必须要严格遵循升级路径&#xff0c;否则就会出现问题&#xff0c;导致升级失败。因此&#xff0c;在 GitLab 升级之前需要做好两件事情&#xff1a; 当前版本的确认升级路径的确认 极狐GitLa…

网上商城系统设计与Spring Boot框架

3 系统分析 当用户确定开发一款程序时&#xff0c;是需要遵循下面的顺序进行工作&#xff0c;概括为&#xff1a;系统分析–>系统设计–>系统开发–>系统测试&#xff0c;无论这个过程是否有变更或者迭代&#xff0c;都是按照这样的顺序开展工作的。系统分析就是分析系…

LabVIEW 实现 find_nearest_neighbors 功能(二维平面上的最近邻查找)

1. 背景介绍 在数据分析和图像处理领域&#xff0c;经常需要查找给定点的最近邻居点。在LabVIEW中&#xff0c;计算二维平面上多个点之间的欧氏距离&#xff0c;并返回距离最近的几个点是一种常见操作。find_nearest_neighbors 函数用于实现这个功能。 2. 欧氏距离计算 在二维…

Python如何从HTML提取img标签下的src属性

目录 前提准备步骤1. 解析HTML内容2. 查找所有的img标签3. 提取src属性 完整代码 前提准备 在处理网页数据时&#xff0c;我们经常需要从HTML中提取特定的信息&#xff0c;比如图片的URL。 这通常通过获取img标签的src属性来实现。 在开始之前&#xff0c;你需要确保已经安装…

nacos-operator在k8s集群上部署nacos-server2.4.3版本踩坑实录

文章目录 操作步骤1. 拉取仓库代码2. 安装nacos-operator3. 安装nacos-server 坑点一坑点二nacos-ui页面访问同一集群环境下微服务连接nacos地址配置待办参考文档 操作步骤 1. 拉取仓库代码 &#xff08;这一步主要用到代码中的相关yml文件&#xff0c;稍加修改用于部署容器&…

鸿蒙版APP-图书购物商城案例

鸿蒙版-小麦图书APP是基于鸿蒙ArkTS-API12环境进行开发&#xff0c;不包含后台管理系统&#xff0c;只有APP端&#xff0c;页面图书数据是从第三方平台(聚合数据)获取进行展示的&#xff0c;包含登录&#xff0c;图书类别切换&#xff0c;图书列表展示&#xff0c;图书详情查看…

Vulnhub靶场案例渗透[8]- HackableII

文章目录 一、靶场搭建1. 靶场描述2. 下载靶机环境3. 靶场搭建 二、渗透靶场1. 确定靶机IP2. 探测靶场开放端口及对应服务3. 扫描网络目录结构4. ftp文件上传漏洞5. 反弹shell6. 提权 一、靶场搭建 1. 靶场描述 difficulty: easy This works better with VirtualBox rather t…

Pycharm 配置 Poetry

Python 环境安装 参考以下&#xff1a; 官网安装步骤 CODA方式安装 Poetry 安装 Poetry在windows下的安装使用 1.下载软件包 下载地址 2.获取安装脚本下载地址 3.使用命令安装 打开cmd&#xff0c;进入安装包和脚本文件所在目录&#xff0c;执行命令&#xff1a; python …