Mirabilis Design成立于2003年,位于美国硅谷,是一家致力于提供加速电子系统和半导体产品设计及创新的EDA工具公司。经过Mirabilis Design工程师多年的艰苦努力和持续实践,通过EDA工具VisualSim,将高层次设计文档(如SysML文档)与原理图、RTL等具体实现方案连接在一起,从而在产品定义阶段,快速制定出满足市场要求的产品定义,并在产品整个生命周期中,持续验证设计变更以满足需求。
Mirabilis Design在EDA、系统仿真和电子架构设计方面具有专业而经验丰富设计服务团队,为全球半导体、数字电路、嵌入式系统等行业提供基于VisualSim的建模和架构探索技术解决方案,覆盖航空、航天、处理器、图像处理、自动驾驶、高性能计算等广泛领域。
Mirabilis Design在全球拥有超过55个客户,成功完成了250个以上的项目;全球前12家半导体公司中的6家、前15家国防产品供应商中的8家、前10家电子产品设计公司中的4家都在使用VisualSim对其产品进行设计。
图1 VisualSim的典型用户
VisualSim是一个面向电子系统和半导体产品的建模、仿真和探索软件平台。它采用基于模型的系统工程(MBSE,Model-based System Engineering)和电子系统级(ESL,Electronic System Level)设计方法填补了设计规范和设计实现之间的鸿沟。对于电子系统产品,VisualSim能够提供系统设计的时序和功耗仿真;对于半导体产品,VisualSim能够提供周期级精确的早期性能和功耗分析。
通过在VisualSim中建模和仿真,架构师能够根据性能和功耗的报告识别、解决系统性能瓶颈,确保不存在过设计或者前设计,实现电子系统整体的性能优化和权衡,确保电子产品的设计规范得到充分的测试和优化,防止在产品实现过程中发生大规模性能偏离的情况。
图2 基于VisualSim的设计流程
图3 VisualSim的图形化界面
1) VisualSim Architect
图形化建模与仿真框架,内部集成多种仿真引擎和基础建模库,支持多次仿真数据的联合处理,生成性能、功耗报告,同时支持与其他编程语言和外部工具的联合仿真。
2) VisualSim Technology IP
面向随机事件、脚本处理、多种硬件、软件行为、网络通信等应用领域的模型库。
3) VisualSim Explorer
通过模型生成文档,并在web浏览器中查看、执行模型。VisualSim Explorer可以部署在企业的私有云中,以便模型在企业内多个团队之间交流和共享。
4) VisualSim Cloud
部署在具有数据安全保障能力的云端VisualSim Architect,用户可在任何地方、任意时间通过web浏览器访问VisualSim Cloud,开展建模和仿真。
1) 通用建模库
Ø 用力生成模型,用于产生分布式和串行仿真用力
Ø 队列模型,长度、等待时间等参数可配置
Ø 服务器模型,根据配置对队列模型中的数据进行处理
Ø 系统资源模型,用于建模系统中的变化量
Ø 数量共享模型,用于建模变量的消耗情况
Ø 通道模型,用于建模离散通信通道
2) 功耗及能源模型库
Ø 提取模型中各组件的功耗信息,并用图形化的方式显示出来
3) 通用处理器模型库
Ø 具有体系结构精确的处理器建模模板
Ø 支持处理器实时仿真
Ø 支持SIMD、MIMD功能
Ø 支持处理器内部的可配置cache和RAM建模和仿真
Ø 支持GPU建模和仿真
Ø 支持DSP建模和仿真
Ø 支持软件行为建模和仿真
4) ARM处理器模型库
Ø Cortex M0模型
Ø Cortex M3模型
Ø Cortex M4模型
Ø Cortex A7模型
Ø Cortex A8模型
Ø Cortex A9模型
Ø Cortex A53模型
Ø Cortex A72模型
Ø Cortex R4模型
5) 其他处理器模型库
Ø RISC-V,面向MIMD和SIMD的参数化RISC-V处理器模型
Ø PowerPC,超过10个不同的PowerPC处理器模型
Ø Coldfire,面向医疗和汽车应用领域的Coldfire处理器模型
Ø Nvidia Drive-PX,面向ADAS系统设计、集成CAN-FD接口的GPU模型
Ø SPARC及leon,面向空间应用的处理器模型
Ø Intel,包括多种服务器、桌面机及ATOM处理器模型
Ø AMD,包括服务器处理器模型和GPU模型
Ø Marvell,PXA320处理器模型
6) 面向半导体产品的总线模型库
Ø AMBA,支持AMBA 1-5总线模型,包括:AHB、APB、AHB总线矩阵、AXI、ACP、Corelink CMN-600、CHI5
Ø CoreConnect,IBM和Xilinx定义的片内总线模型
Ø I2C,同步、多主多从、包交换、串行计算机总线模型
Ø NoC,用于设计片上网络的模型
7) 存储类模型库
Ø cache,随机和周期精确高速缓存模型库
Ø 存储器,支持DRAM、SRAM、NAND等多种类型存储器的模型库
Ø 磁盘,支持硬盘和混合结构磁盘的模型库
Ø Flash,NAND存储器及控制器模型库
Ø SSD,与NVMe连接的SSD模型库
8) 硬件设备模型库
Ø DMA,DMA模型
Ø 桥,支持包括PCIe在内的10种不同的总线桥模型
Ø 串行交互,支持SoC和电子系统交互方式通信背板的模型
Ø FPGA,包括Virtex 4、Zynq 7000、Ultrascale等多种FPGA模型
Ø 时钟树,支持时钟分布仿真的模型
Ø UART,支持同步和异步数据传输的接口模型
9) 板级和系统外部接口模型库
Ø PCI/PCIx模型
Ø PCIe模型
Ø RapidIO模型
Ø IDT Vendor Product模型
Ø FibreChannel模型
Ø NVMe模型
Ø Firewire模型
Ø VME模型
Ø VPX/OpenVPX模型
Ø SpaceWire模型
10) 网络模型库
Ø 1553b模型
Ø AFDX模型
Ø CAN/CAN-FD模型
Ø FlexRay模型
Ø Audio-Video桥模型
Ø 时间敏感网络模型
Ø SPI模型
Ø 基于交互的以太网模型
Ø 令牌环往模型
Ø TTE模型
11) 无线通信模型库
Ø 蓝牙模型
Ø WiFi/802.11模型
Ø 无线传感器模型
Ø 弹性分组环模型
12) 算法模型库
Ø 支持控制系统的建模和仿真
Ø 支持模拟系统的建模和仿真
Ø 支持信号处理系统的建模和仿真
Ø 支持图像处理系统的建模和仿真
13) 定制化开发与集成模型库
Ø 脚本模块,支持通过脚本语言定制模型功能
Ø 接口模块,支持Python、Matlab、Excel、SystemC、Verilog的联合仿真
与 Matlab/Simulink、SPW 等用于算法仿真分析的设计工具不同,VisualSim系统仿真模型的关注焦点在于对系统任务的控制流程、处理流程、数据流通路等硬件-软件协同实现方案的设计和优化上。
VisualSim的系统模型能够为设计团队提供如下的两大类模型执行结果:
VisualSim系统模型给出的第一类执行结果是系统各部分的运行工况图。例如,系统软件任务在不同硬件处理资源中的活动运行图、数据流在硬件传输资源中的活动运行图、流水线结构处理工况图等。
系统运行工况图可以直观地、动态地反映系统工作时的整体时序信息。借助系统运行工况图,项目的硬件设计团队和软件开发团队可以非常方便地进行沟通,了解彼此的设计思路,讨论并推演不同设计方案的可行性,发现潜在的系统设计问题并及时进行调整。例如:运行于想定的硬件平台上的软件部署方案是否按照预想的时序运行?系统的各硬件资源或软件任务之间是否存在竞争或冲突情况?这些冲突对系统整体性能的影响是什么?
VisualSim使这种有效的沟通在项目研发的早期就开始了,而且是在系统整体的层面上进行的,而不是拘泥于底层的实现细节。
VisualSim系统模型给出的第二类仿真结果是系统层面的性能指标。例如:实时系统的全系统处理耗时、实时控制系统的端到端响应延时、多任务调度机制形成的任务执行延时(Latency)、总线或网络的端到端传输延时、总线控制器或网络交换结构的仲裁机制所带来的传输延时、(多)处理器利用率、总线或网络的传输利用率、缓冲利用率、系统或单元模块的功耗等。
系统的性能指标给出的主要是量化的仿真结果。与传统的代码级仿真验证工具不同,事务级系统仿真工具给出的量化结果不是专注于某个具体信号的具体波形数值,而是对所建模的系统模型本身的特性的客观反映。鉴于系统级设计可以有多种层次和多种形式,因此系统层面的指标体系也是多种多样的,系统建模者应根据其关注点进行合理选择。
表 1 通过VisualSim建模得到的主要系统性能参数
系统性能指标 |
能够反映该指标的 VisualSim 模型特性 |
系统处理 | 处理速度(每秒钟能够执行指令数量或任务数量); |
端到端处理延时(耗时)或系统响应时间; | |
处理资源利用率; | |
特性 | RTOS 任务调度机制形成的任务延迟; |
处理器内部执行单元、寄存器文件利用率; | |
处理器内部指令执行 Stall 发生百分比; | |
网络/总线 | 网络/总线速度(频率); |
网络/总线点到点传输延时; | |
网络/总线仲裁机制造成的数据(包)传输延迟; | |
特性 | 网络/总线利用率; |
网络/总线节点的数据吞吐率; | |
网络/总线数据包大小的直方图统计; | |
资源特性 | 用于数据耦合的 Buffer、FIFO 或双口存储器的利用率及溢出情况; 处理器内部流水线工况、Cache 命中率; 系统处理任务的硬件、软件划分对任务执行的影响; 多任务优先级、抢占式调度机制对任务执行的影响; |
I/O 特性 | I/O 点到点传输延时; I/O 节点利用率; I/O 节点数据吞吐率; |
功耗特性 |
系统或单元模块的动态功耗估算,包括瞬态功耗或累计功耗; |
借助 VisualSim系统模型给出的上述处理、传输或资源特性,系统工程师可以掌握系统的实际动态工作负荷情况,并据此合理选择核心处理器件的类型、并行处理所需的器件数量、网络/总线资源的类型和所需数量等。
通过比较和分析不同实现方案的模型执行结果,可以针对系统的成本、体积或重量等特定约束条件进行优化设计。
作为一款高性能智能化电子系统设计工具,VisualSim中集成了大量的标准模型库和覆盖计算机系统、高速通信网络、系统芯片等广泛应用领域的建模案例。这些模型和案例是业界设计的知识集合。借助VisualSim中提供的高效仿真引擎,按照事务级仿真和事务级/周期级混合仿真的有效方法,项目团队可以容易的把目标应用和VisualSim中提供的丰富知识结合起来,完成对目标应用系统及软硬件实现的理解和分析,实现在巨大的设计搜索空间中,智能而迅速的找到一个“正确且适用”的产品架构,避免由于前期系统设计阶段错误而导致的产品实现失败,避免性能不达标设计(Under-design)或者盲目的超余量设计(Over-design)。相比基于SystemC等编程语言的传统系统级设计方法,VisualSim能够帮助设计人员将精力集中到建模本身和理解、分析目标应用上,最大限度的释放设计人员的智慧,将模型开发周期从数月缩短至数天,既保证了传统保证了产品从需求分析到设计实现的连贯性,又保证电子产品的样机首次设计成功率。
国内外计算机、半导体、网络和国防技术等广泛应用领域的大量用户选择VisualSim作为系统级设计工具。VisualSim解决方案为客户提供的核心价值:通过将既往模糊的系统设计经验表述为可视化的可执行系统规约;在系统总体架构层面上进行快速的产品成本、性能和功耗的综合评估;为优化和差异化产品设计创新提供便利,帮助用户在系统设计早期智能化的进行最佳决策。
复杂的系统架构设计必然是一个从模糊到具体的过程,即从初步的方案设想演进为可信的系统规约,这个过程需要花费时间。在VisualSim中,系统模型设计(建模)的过程本身实际上就是对设想架构的研究、思考和细化的过程,这是一个交互的过程:在 VisualSim 中用建模的方式描述你的架构方案设想;VisualSim模型仿真结果回答你所关注的问题;分析这些结果,了解系统特性及其影响因素;评估是否需要对模型进一步改进、优化或细化,再次执行仿真。
在使用 VisualSim进行系统的硬件与软件协同设计的,模型设计者与模型之间的互动作用是非常显著的:在建模之初,建模者引导模型的构建,随着建模工作的不断深入,建模过程会引导建模者不断进行新的思考:当前的模型执行结果说明了什么?是否需要进一步修改、细化模型?如何进一步细化模型?这种模型设计者与模型之间的交互会一直持续,直至系统模型完成,即系统设计方案形成。
在VisualSim中,系统建模的过程本身就是对系统架构进行定义、设计和研究的过程,也是模型设计者整理自己设计思路的过程,而建模者与模型的交互则不断地帮助建模者厘清设计思路,发现系统层面的设计问题。系统设计师正是借助这种演进式的建模与仿真方法来得到明确可信的系统规约。
2) 集中精力调试而非编码(Spending Time Designing Rather than Coding)
与经典的使用C/SystemC 编程进行事务级建模的方法不同,VisualSim通过预定义的参数化组件库来加速建模过程:VisualSim提供通用组件库和模型生成模板,建模工程师在图形化的环境中选择需要的模型组件,通过组装与配置这些组件来快速构建系统模型。VisualSim组件库中很多模型的复杂程度与数万行的C/SystemC 编码相当,并且这些模型都已经过充分的验证。
VisualSim让用户将更多的时间用于设计、研究和尝试各种可能的系统实现方案,而不是把这些时间花费在编写、调试和验证 C/SystemC 模型代码的工作上。
3) 根据需要细化模型(Go Complex Only if Needed)
VisualSim定义了不同的建模层次,在设计的最初阶段,系统模型可以被抽象成为仅由特定时间分布的事务激励以及处理这些事务所需的延迟功能或资源来描述。之后这些延迟功能或资源可以被周期精确级模型所替换,实现更细节层次的建模。上述替换是根据设计师的意愿而有选择地进行的。VisualSim强调建模的目的是回答真正关注的系统架构问题(Model Questions),根据 Model Questions 来合理选择建模层次,VisualSim允许用户将不同层次的模型混合使用,只在需要时再进行模型细化。
VisualSim建议用户以解决真正关注的问题为重心,从简单的模型层次开始,只细化关注的部分,节省系统建模时间。
Copyright ©i-innovating北京国鼎源创智能科技有限公司.
京ICP备2021018369号 Powered by CmsEasy 留言 Rss