simics简介
Simics是一种支持定义、开发和部署数字系统的模拟器,具有快速、准确、可伸缩和扩展的特点,为工程人员提供了新的系统开发途径。Simics是一种完全系统模拟平台,能快速、确定且可控地运行未经修改的二进制文件。在硬件昂贵、稀缺甚至不存在时,为早期软件开发和测试提供理想的环境。Simics对Intel内部部门是免费使用的。
Simics可以加速系统设计,软件开发和任何数字系统的部署,不论是简单的CPU还是复杂混合的架构,多平台,计算机网络系统。Simics支持混合CPU类型的异构平台,从单CPU到数百SoC通过Ethernet连接的多机架系统。Simics提供不限于ARM, H8, MIPS, SPARC, SH, TI C64, and IA (x86)架构模型及周边系统。
完全系统模拟
Simics可以模拟任何数字系统,基本的CPU+内存,定制的FPGA或ASIC,单个的板卡或插满板卡的机架,大型复杂的混合架构系统模型可以由现成的若干处理器家庭,数百计的IO设备和标准通信,背板和网络协议组成。
可伸缩的目标和主机
Simics容量包含两个维度,它能执行极端庞大和复杂的虚拟模型,也能方便地将Host server从一台PC扩容到服务器集群,保证任何大小的模型能够真实可用。
二进制透明
Simics运行的二进制文件和真实物理系统运行的是一样的,使得开发者可以创建、调试和部署firmware,设备驱动,OS,中间件栈和应用软件。因为Simics使用不经修改的“产品二进制”,所以开发者任意可以使用自己熟悉的第三方开发工具。
更快,更容易开发和调试
利益于硬件不具备的高级功能,调试和测试被简化。非侵入的调试和跟踪,执行可保存和恢复,确定性执行和可重复执行的测试用例,可正向和反向执行,可在任何内部设备上进行检查控制和断点,可以注入任意硬件故障,可保存系统状态和恢复。
无限制的故意注入和系统测试
Simics可以为一个复杂的系统,包括它的准确配置和精确动作进行脚本编程,从而使测试更为容易。任何特定的目标系统安装都可以用运行脚本的方式在几分钟内重现,无需去定位和配置硬件板卡。
主要特性
- Extensibility — 任何人都可以为自己的模拟平台扩展写模型和插件(DML,c/c++,python)
- Inspectability — 调试与分析更容易
- Checkpointing — 可将整个模拟保存到硬盘中
- Determinism — 同状态运行同脚本,行为一致,复现Bug十分方便
- Reversibility — 可反向执行,便于快速聚焦特定行为或Bug
- Scalability — 模拟多CPU,多板卡,多机架系统
- Scripting — Python编写脚本,便于自定义行为模拟