SCML
强烈推荐使用synopsys 建模基础组件库SCML,根据下面的链接获取,目前已经是2.8版本。其中包含了register,memory,parameter,socket,trace等各类建模基础组件。
https://www.synopsys.com/cgi-bin/slcw/kits/reg.cgihttps://www.synopsys.com/cgi-bin/slcw/kits/reg.cgi
systemc project
一些开源的systemc库,github上基本都能下载到,包括常用的,riscv cpu,xilinx/qemu,UVM-c(与uvm连接),systemc verification 等,这些资源能让你很快的搭建起来一个系统级仿真平台,并进行功能级验证,注意是功能,不是性能。https://systemc.org/resources/projects/https://systemc.org/resources/projects/
虚拟样机(Virtual Prototyping)
定义
用于嵌入式软件开发的传统工具和方法不足以解决当今复杂的嵌入式系统,特别是多核芯片和 SoC 及其紧迫的开发时间表。
虚拟原型是在主机系统上运行的可执行软件模型。它在足够的水平上模拟硬件,包括 CPU 指令集、内存映射、寄存器和中断,可以针对软件开发进行定制。从软件角度来看,它与所模拟的硬件二进制兼容,允许用户运行整个软件堆栈的未修改的二进制映像,其中包括从低级设备和固件到操作系统到中间件,最后到正在运行的应用程序的所有内容。发达。它是开发软件的目标系统的完整功能表示。
虚拟样机如何工作?
虚拟原型抽象了与软件开发人员无关的硬件细节。使用指令集模拟器,虚拟原型在标准 PC 上执行嵌入式目标代码。系统外围设备在事务级别进行建模,其细节足以运行未修改的软件映像;例如,寄存器行为是准确的,而时序则不准确。
仿真速度非常高,可以交互式执行大型软件堆栈,例如在 AUTOSAR 或 Android 操作系统之上运行的应用程序。虚拟原型使用虚拟和现实世界的 I/O 连接到现实世界的接口,如 USB、PCIe、以太网和串行设备。
虚拟样机的优点和好处
早期可用性、二进制兼容性和高性能使得虚拟原型能够在实际物理硬件可用之前很久(在许多情况下甚至在芯片设计完成之前)用于开发、调试、集成和验证系统软件。
- 早期软件开发。虚拟原型支持早期软件开发,减少了开发和测试新产品所需的总时间,这种方法现在被称为“左移”。
- 硬件/软件集成。从软件角度来看,虚拟原型可以让传统上依赖FPGA原型的软硬件集成更早地开始。
- 全球发展。由于不需要物理硬件,虚拟原型可以在全球团队之间共享和访问,从而提高软件团队的开发效率和吞吐量。
- 可调试性。系统软件和硬件的独特、相关的可视性;访问硬件内部结构以实现可见性和故障注入;与 CI 和 TDD 等软件设计范例的兼容性有助于调试。
- 兼容性。可与您现有的一组软件工具(编译器、调试器和模拟器)一起使用。
何时使用虚拟样机?
虚拟原型最好在开发周期中尽快部署,例如在:
- 调试与测试
- 验证与验证
- 回归设置
- 硬件原型设计可提高速度
虚拟样机和 Synopsys
Synopsys 提供全方位的虚拟原型解决方案,包括用于早期架构分析的Platform Architect™ 、用于使用业界最大的事务级模型 (TLM) 组合创建用于软件开发的虚拟原型的Virtualizer™ 、即用型Virtualizer 开发适用于许多汽车平台的套件 (VDK)以及交钥匙和启动服务,以确保项目成功。