文章目录
- **SkyEye的概念和应用**
- **SkyEye的优势**
- **SkyEye可与第三方语言或者模型集成**
- **基于可视化图形的硬件建模**
- **容器化的仿真平台**
- **FPGA协同仿真**
- **SkyEye的应用案例**
- **SkyEye大规模航电系统仿真案例
- **SkyEye\**\*\*飞行器显控系统GPU仿真案例\*\**\***
- **SkyEye支持多种处理器模型**
- **SkyEye已支持的外设列表**
- **嵌入式软件测试工具**
- **目标码覆盖率测试工具**
- **基于仿真的自动故障注入工具**
SkyEye的概念和应用
SkyEye,中文全称天目全数字实时仿真软件,是基于可视化建模的硬件行为级仿真平台,支持用户通过拖拽的方式对硬件进行行为级别的仿真和建模。
SkyEye目前支持主流的嵌入式硬件平台,可以运行主流的操作系统,此外还能适配国内自主研发的操作系统天脉。通过利用基于LLVM的动态二进制翻译技术,使虚拟处理器在典型的桌面计算机上运行速度可以达到2000MIPS以上。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zHU56CFS-1669731460766)(https://www.digiproto.com/upload/202208/1659582432294989.png)]
▲图1:利用虚拟原型来降低产品的周期和成本
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q04NVaxf-1669731460808)(https://www.digiproto.com/upload/202207/1657868192391940.png)]
▲图2:4个PowerPC运行4个天脉操作系统的截图
SkyEye的优势
SkyEye可与第三方语言或者模型集成
目前已实现SkyEye与SystemC集成进行时序仿真,以及SkyEye与MATLAB或者Simulink集成进行多领域协同仿真。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2vHO1VBM-1669731460811)(https://www.digiproto.com/upload/202208/1659583038510395.png)]
▲图3:MATLAB与SkyEye连接图
基于可视化图形的硬件建模
基于可视化图形的硬件建模,有效降低了硬件工程师和软件工程师之间的沟通成本。软件工程师可以不依赖于硬件工程师,而根据需要对硬件的配置进行改动。通过这种可视化图形的硬件建模方式,软件人员能够快速搭建硬件模型,并在硬件模型上运行和调试与真实硬件相同的二进制文件,可大大缩短产品研发周期,提高软件调试效率。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-83XE1AQl-1669731460814)(https://www.digiproto.com/upload/202111/1637733466144468.png)]
▲图4:基于可视化图形的硬件建模
容器化的仿真平台
传统的以虚拟机为最小资源调度单位的模式出现资源利用率低、配置复杂等一系列问题。为适应云计算服务的不断发展,SkyEye支持Docker容器化部署,将配置无误的SkyEye环境封装到Docker,用户可直接加载Docker来运行仿真环境。Docker容器可以随时开随时关,非常适合动态扩容和缩容,使得SkyEye可以弹性的部署在云平台上。同时,通过多个容器,一台机器可以跑多个服务,部署多个SkyEye Docker仿真出多个处理器架构模型。SkyEye Docker不仅支持终端模式输出,还支持Telnet模式,可通过端口映射的方式访问串口的输出数据。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w1MkzgU8-1669731460816)(https://www.digiproto.com/upload/202208/1659583049990824.png)]
▲图5:SkyEye Docker部署原理
FPGA协同仿真
SkyEye实现了与虚拟FPGA的协同仿真,可以支持UVM的验证方法。虚拟的FPGA通过协同仿真总线与SkyEye相连,用户可以自主的控制仿真运行速度,提高较大规模嵌入式系统的测试效率。SkyEye本身是多架构的功能级别仿真平台,且有丰富的调试功能,可以对多核的嵌入式系统进行调试。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hbTO2FIA-1669731460817)(https://www.digiproto.com/upload/202208/1659583399641274.png)]
▲图6:SkyEye与虚拟FPGA协同仿真
SkyEye的应用案例
**SkyEye大规模航电系统仿真案例
**
SkyEye为综合航空电子系统(ICP)提供多机多功能目标系统搭建的环境,可以采用分布式部署方式,通过多路传输数据总线把多种机载电子分系统交联在一起,能实现信息的测量、采集、传输、处理、监控和显示功能,并完成飞行控制、发动机控制、导航、性能管理等任务。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QPpU0OB7-1669731460818)(https://www.digiproto.com/upload/202208/1659583438686179.png)]
▲图10:SkyEye大规模航电系统仿真案例
SkyEye***飞行器显控系统GPU仿真案例***
机载显控系统承担着航电系统的集中显示和任务管理功能,使得飞行员能高效获得并管理所需信息,有效减少飞行员工作负荷。在开发设计阶段就对显控系统进行仿真,可以有效地减少飞机航电系统的设计周期。
飞行器显控系统JM7200仿真通过截获目标程序调用OpenGL的API并转译到宿主机上运行的方式实现,本质是调动了宿主机的GPU能力对目标机的GPU进行半虚拟化仿真。JM7200是国产GPU,不仅可满足更高性能的嵌入式系统要求,还可用于台式计算机、笔记本计算机等桌面系统的显示要求。
SkyEye将目标机OpenGL库替换为encoder编码库,将目标程序进行重编译。在目标程序运行OpenGL库的API时进行监视并缓存调用信息,同时调用解码器decoder进行解码后在宿主机上运行,从而达到GPU图像仿真的效果。该方案可移植性强,只要是基于OpenGL库开发的应用程序和支持OpenGL的GPU均可仿真,且由于OpenGL库向下兼容的特性,具有很强的兼容性。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oeQQwRRu-1669731460819)(https://www.digiproto.com/upload/202210/1667195897631066.png)]
▲图11:SkyEye 运行 OpenGL demo
SkyEye支持多种处理器模型
SkyEye已支持的外设列表
嵌入式软件测试工具
目标码覆盖率测试工具
该产品是基于仿真技术进行目标码测试的工具。通过在搭建的虚拟目标系统上运行用户的可执行程序,生成执行结果,计算代码覆盖率,展示语句覆盖率、分支覆盖率、函数覆盖率等信息(支持以HTML及Excel形式导出覆盖率报告)。该工具支持DO-178B中A级软件目标码测试覆盖性的相关要求,同时支持各种平台的嵌入式软件的目标码覆盖率测试,如ARM, PowerPC, DSP, MIPS, SPARC等。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dRI9OmZs-1669731460820)(https://www.digiproto.com/upload/202111/1637733538388856.png)]
▲图12:目标码覆盖率测试工具
基于仿真的自动故障注入工具
该产品是基于符号执行技术和仿真平台技术的自动化故障注入工具。由于基于仿真技术,该工具可以灵活地对任意硬件注入任意故障;同时还可基于符号执行技术,将硬件符号化,准确注入能够影响系统行为的故障。这一工具的优势在于可以避免传统方式的故障注入中的重复注入和遗漏注入。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oKw1CqwT-1669731460822)(https://www.digiproto.com/upload/202111/1637733558473341.png)]
▲图13:基于仿真的自动故障注入工具界面