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:基于仿真的自动故障注入工具界面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于那些想进行嵌入式系统软件开发和学习,或者想研究嵌入式Linux等操作系统和一些底层系统软件(如TCP/IP等)的研究和开发人员来说,可能存在如下几方面的问题:(1)经常苦于经费不足,缺少足够的硬件开发板和完善的软件开发环境,相关的书籍对一些最新软件的分析还不够面,无法深入研究和开发嵌入式软件。(2)高层次的软件设计和开发一般不用太考虑底层硬件的实现细节,如果直接处于一个具体的硬件环境下,在开发和研究中可能会陷入硬件的具体细节中不能自拔,而不能把精力放到高层次的软件设计和开发上。(3)如果硬件开发环境不太稳定(这种情况经常见到),且对具体的硬件不是很了解,则可能在排除问题上花费大量的不必要的时间。(4)如果你想自己尝试设计一个操作系统,则先在一个提供源码级调试的软件仿真器上进行开发,可能会大大提高你的开发进度。<br><br>对于想了解、学习一般操作系统的实现原理,Linux/μCLinux操作系统或TCP/IP等系统级软件的实现的人员,目前一般采用的方法是看书和读源代码,这是一种静态的学习方法,效率较低,比较枯燥,缺少亲自实践的感觉。要想深入分析和开发软件,就要动手编程,不能只是看看书,读读代码,只有通过亲手实践才能够掌握软件设计的核心内容。上面所指出的问题和需求促使SkyEye项目的诞生。 <br><br>3.SkyEye的目标和意义 <br>SkyEye是一个开源软件(OpenSource Software)项目,中文名字是"天目"。SkyEye的目标是在通用的Linux和Windows平台上实现一个纯软件集成开发环境,模拟常见的嵌入式计算机系统(这里假定"仿真"和"模拟"的意思基本相同);可在SkyEye上运行μCLinux以及μC/OS-II等多种嵌入式操作系统和各种系统软件(如TCP/IP,图形子系统,文件子系统等),并可对它们进行源码级的分析和测试。<br><br>3.SkyEye的目标和意义 <br>SkyEye是一个开源软件(OpenSource Software)项目,中文名字是"天目"。SkyEye的目标是在通用的Linux和Windows平台上实现一个纯软件集成开发环境,模拟常见的嵌入式计算机系统(这里假定"仿真"和"模拟"的意思基本相同);可在SkyEye上运行μCLinux以及μC/OS-II等多种嵌入式操作系统和各种系统软件(如TCP/IP,图形子系统,文件子系统等),并可对它们进行源码级的分析和测试。<br><br>纯软件的模拟器有许多种,如模拟一个芯片时序逻辑的模拟器、只模拟CPU指令的模拟器、模拟整个硬件开发板的模拟器、模拟一个PDA的模拟器等。存在一些纯软件仿真器或模拟器,如Stanford大学的SimOS模拟器,它仿真的是MIPS系列CPU和相关外设,可以在其上运行SGI公司的Irix操作系统和软件,目前基本上停止了进一步的开发;PSIM是一个仿真PowerPC指令集的模拟器,目前只支持简单的命令行应用程序;xcopilot是一个PDA模拟器,它是由Greg Hewgill出于个人喜好编写的,它仿真的是M68K CPU,通过它可以给基于PalmOS的软件开发者提供一个模拟开发环境。Bochs是一个仿真x86 CPU的开源项目,目前还支持AMD64 CPU,在它上面可以运行Linux操作系统。其它一些商业的仿真软件如vmware和virtualPC可以仿真一个真实的x86计算机,而Virtutech Simics仿真器可以仿真多种CPU和硬件,功能强大,可用于硬件和系统软件的评测。<br><br>SkyEye是一个指令级模拟器,可以模拟多种嵌入式开发板,可支持多种CPU指令集,在SkyEye上运行的操作系统意识不到它是在一个虚拟的环境中运行,而且开发人员可以通过SkyEye调试操作系统和系统软件。由于SkyEye的目标不是验证硬件逻辑,而是协助开发、调试和学习系统软件,所以在实现上SkyEye与真实的硬件环境相比还是有一定差别的。SkyEye在时钟节拍的时序上不保证与硬件完相同,对软件透明的一些硬件仿真进行了一定的简化。这样带来的好处是SkyEye的执行效率更高。SkyEye的推出具有下面三方面的意义:<br><br>通过SkyEye仿真集成环境可以很方便地进入到嵌入式系统软件学习和开发的广阔天地中。尤其对于缺少嵌入式硬件开发环境和软件开发环境的用户来说,它将是一个非常有效的学习工具和开发手段,因为SkyEye的整个软件系统都是Open Source的,且基于GPL协议(μCOS-II除外)。因此,如果要学习Linux操作系统或者进行嵌入式系统开发,但苦于没有硬件支持,SkyEye仿真环境软件是一个很好的选择! <br>如果想研究与具体硬件无关的系统软件(如TCP/IP协议栈等

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小熊coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值