SkyEye —— 天目全数字实时仿真软件
SkyEye是基于可视化建模的硬件行为级仿真平台,支持用户通过拖拽的方式对硬件进行行为级别的仿真和建模。
基于SkyEye搭建的嵌入式系统虚拟化运行环境,工程师可不受物理硬件限制,随时访问目标系统,快速搭建虚拟硬件模型并提前进行开发、测试和验证工作,实现高效率、高质量的软件交付。SkyEye支持主流的嵌入式硬件平台,可运行国内外主流的操作系统,对国产生态的支持尤为出色。通过利用基于LLVM的动态二进制翻译技术,SkyEye可使虚拟处理器在典型的桌面计算机上运行速度达到2000MIPS以上。
SkyEye有效解决了嵌入式软件研发时过分依赖硬件资源的问题,填补了国内嵌入式虚拟仿真领域的空白,为嵌入式软件研发模式带来了革新式的变化。
▲利用虚拟原型来降低产品的周期和成本
应用场景
虚拟实验室
为嵌入式开发团队提供任意数量的虚拟实验室,软件设计、开发、测试不再依赖于硬件。
安全测试
支持在虚拟测试环境中任意注入故障,可随时暂停或反向执行,稳定复现缺陷。
DevOps
实现硬件虚拟化,使嵌入式软件的持续集成变得可能,高效助力DevOps实践。
数字孪生
构建物理实体的数字孪生体,支持基于孪生数据进行分析、预测,并优化物理实体。
主要功能
建模&仿真
1.可模拟完整目标系统(包含标准SoC、处理器核心、外设、内存、存储器、总线等)并进行调试;
2.支持图形化拖拽搭建硬件模型;
3.可进行GPU和FPGA功能性仿真。
调试&测试
1.支持正向、逆向、插入断点、单步执行以提高调试效率;
2.系统级信息可视化(内存、反汇编、处理器寄存器、设备寄存器、地址映射);
3.支持硬件行为级的故障注入。
便捷&协作
1.可对当前系统状态进行快照保存,并随时恢复;
2.可通过自动化脚本执行重复性任务;
3.可封装在Docker中部署到云环境;
4.可与现有软件开发环境或自动化流程进行集成。
SkyEye的优势
▲SkyEye与MATLAB连接图
SkyEye可与第三方语言或者模型集成
目前已实现SkyEye与SystemC集成进行时序仿真,以及SkyEye与MATLAB/Simulink集成进行多领域协同仿真。
▲基于可视化图形的硬件建模
基于可视化图形的硬件建模
基于可视化图形的硬件建模,有效降低了硬件工程师和软件工程师之间的沟通成本。软件工程师可以不依赖于硬件工程师,而根据需要对硬件的配置进行改动。通过这种可视化图形的硬件建模方式,软件人员能够快速搭建硬件模型,并在硬件模型上运行和调试与真实硬件相同的二进制文件,可大大缩短产品研发周期,提高软件调试效率。
▲SkyEye Docker部署原理
容器化的仿真平台
传统的以虚拟机为最小资源调度单位的模式存在资源利用率低、配置复杂等一系列问题。为适应云计算服务的不断发展,SkyEye支持Docker容器化部署,将配置无误的SkyEye环境封装到Docker,用户可直接加载Docker来运行仿真环境。Docker容器可以随时开随时关,非常适合动态扩容和缩容,使得SkyEye可以弹性部署在云平台上。同时,通过多个容器,一台机器可以跑多个服务,部署多个SkyEye Docker仿真出多个处理器架构模型。SkyEye Docker不仅支持终端模式输出,还支持Telnet模式,可通过端口映射的方式访问串口的输出数据。
▲SkyEye与虚拟FPGA协同仿真
FPGA协同仿真
SkyEye实现了与虚拟FPGA的协同仿真,可以支持UVM的验证方法。虚拟的FPGA通过协同仿真总线与SkyEye相连,用户可以自主控制仿真运行速度,提高较大规模嵌入式系统的测试效率。SkyEye本身是多架构的功能级别仿真平台,且有丰富的调试功能,可以对多核的嵌入式系统进行调试。