同步数据流语言高阶运算消去的可信翻译

同步数据流语言(例如Lustre,Signal等)广泛应用于工业界的核心安全级控制系统,如航空、核电等高安全等级的关键领域,与语言相关的软件的安全性也越来越受到人们的关注,特别是一些基础软件,如操作系统、编译器等.确认这些软件的安全可靠非常重要,同时,随着软件系统的复杂度的提高,软件的安全性保证也变得越来越困难,依靠传统的测试、代码审核和过程管控等方法来保证软件的安全性是远远不够的.近年来,形式化验证方法已成功地应用于可信编译器的实现中,CompCert是其中的杰出代表.形式化验证方法从数学角度对软件系统进行描述,从逻辑上对软件系统的正确运行进行验证,能够充分地保证软件系统可信,可以最大程度地提高软件系统的可信度.国产自主可控的嵌入式仿真软件SkyEye和同步数据流语言高阶运算消去的可信翻译

我们项目组基于形式化验证方法开展了一项从Lustre*语言到C子集Clight的可信翻译器的研究工作,称为L2C项目,图 1是该项目的整体框架.

Lustre是一种类Lustre语言,它是以Lustre V6的核心语言为基础,并加上一些类似于Scade的扩展. Lustre语言中除了通常的算术和逻辑表达式之外,还包含了struct,list,switch和array等表达式,这些表达式的执行规则类似于C语言中的相应表达式.此外,Lustre*从Scade中继承了一些高阶运算和对于数组和结构体的操作.Clight来源于CompCert项目,是一种兼容于关键嵌入式软件推荐使用的较大的C语言子集.

L2C项目的开发采用辅助证明工具Coq实现,集程序、性质和证明于一体,最终代码被抽取为Ocaml代码,与前端的Ocaml代码集成,得到完整编译过程的代码.通过图 1的最后一步,Lustre*源程序最终被翻译到CompCert项目的Clight AST,Clight语言的语法语义采用CompCert的定义.

同步数据流语言Lustre与Clight相比有着巨大的差异,Lustre具有时钟同步、数据流、并发及流数据对象等特征,而Clight则具有顺序控制流特征,语言跨度较大.直接进行翻译及证明将会非常复杂,因此,我们将项目分为多个层次,保证每个层次语法和语义跨度不大,每个层次完成特定的工作,比如时钟归一化、拓扑排序、时态算子消除等工作.& lt; span style=‘font-family:宋体;color:black’>本文的研究工作高阶消去翻译及正确性证明,包含于如图 1所示的LustreTLustreR层的Reducing过程中.

高性能嵌入式仿真软件SkyEye

随着科技的发展,系统工程的设计体量逐渐庞大起来,尤其是对于轨道交通、航空航天、核电站等安全关键领域中,如何在复杂度逐年变大的同时保证其安全性和可靠性,是近年来各大公司需要研究的课题。最近比较火热的基于模型的系统工程(MBSE)技术则给大家提供了一种全新的技术方向,分享一种全数字实时仿真的安全关键领域解决方案,提供一种新的解决思路。国产自主可控的嵌入式仿真软件SkyEye和同步数据流语言高阶运算消去的可信翻译,提供高效的运算速度,提高研发效率和安全性。

新一代全数字仿真平台SkyEye

基于模型的全数字研发解决方案MBSE工具软件SkyEye是能够满足模拟或仿真外部硬件行为进行软件运行和测试需求的工具。该工具运用国际流行的仿真、测试脚本语言来编写外部硬件逻辑行为所产生外部激励事件以构成嵌入式软件的外部信号激励或数据输入,从而满足软件在全数字仿真运行环境下无须人的干预而闭环运行的要求。

作为基于嵌入式应用的特点,嵌入式软件全数字仿真测试支撑平台SkyEye要为嵌入式系统提供全数字仿真测试环境或测试平台,实现对嵌入式系统进行实时、闭环的系统测试。在该平台上完成被测软件的分析、运行和测试,最重要的是要实现嵌入式系统外部事件的全数字仿真平台,使得嵌入式软件就像在真实硬件环境下连续不中断地运行。国产自主可控的嵌入式仿真软件SkyEye和同步数据流语言高阶运算消去的可信翻译

SkyEye的优势

作为一种全数字实时仿真的安全关键领域解决方案,SkyEye可与第三方语言或者模型集成,目前已实现SkyEye与SystemC集成进行时序仿真,以及SkyEye与工业软件MATLAB或者Simulink集成进行多领域协同仿真。

  1. 更灵活快速的虚拟目标系统搭建–通过可视化图形界面拖拽虚拟硬件组件快速搭建。
  2. 仿真状态可控性、确定性和重复性–在虚拟系统上运行的二进制文件与实际目标上运行的二进制文件相同,仿真过程可以通过运行、暂停控制、可以随时重复执行,每次运行结果是确定的,可以使用软件复现问题。
  3. 提供GDB源码调试和汇编级调试工具,使开发者更高效的分析和定位问题。
  4. 提供代码覆盖率和生成报告功能,进行源码和目标码的覆盖率分析。
  5. 提供故障注入功能,可以进行内存和IO的故障注入进行测试。
  6. 提供协同仿真工具,支持与其他异构模型协同仿真。
  7. 提供外设建模工具和二次开发API接口,方便用户进行二次开发。
  8. 提供Python API接口,可以进行自动化测试脚本构建所需测试环境。
  9. Docker容器化支持。
  10. 界面提供自动化测试功能,可以选择所需测试用例自动运行并给出测试结果与其他异构模型协同仿真。

本文标题:高性能嵌入式仿真软件SkyEye

本文链接:http://www.digiproto.com

国产自主可控的嵌入式仿真软件SkyEye和同步数据流语言高阶运算消去的可信翻译相关推荐

  1. 国产自主可控的MBSE建模与仿真平台SkyEye

    转载: 2020年6月,哈工大.哈工程被美国商务部列入实体清单,禁用MATLAB事件频繁登上热搜,工业软件被称为「卡脖子」技术. 截止到2020年12月,中国已有超过300家企业和机构被列入美国&qu ...

  2. 国产自主可控的MBSE解决方案和全数字仿真平台(SkyEye)

    2020年6月,哈工大.哈工程被美国商务部列入实体清单,禁用MATLAB事件频繁登上热搜,工业软件被称为「卡脖子」技术. 截止到2020年12月,中国已有超过300家企业和机构被列入美国"实 ...

  3. 国产主可控的嵌入式仿真测试软件SkyEye与可信编译器L2C的核心翻译介绍

    为了满足国内某安全攸关领域的需求, L2C编译器的开发始于2010年9月, 其目标是设计实现一个经过形式化验证的可信编译器, 其源语言是面向领域的同步数据流语言Lustre*(Lustre语言的一个变 ...

  4. 国产自主可控的代码自动生成工具SkyEye

    传统的系统开发过程,都是由工程师根据项目需求书来编写代码完成系统的开发,但随着功能的扩充和版本的迭代,系统中庞大的代码量很难确保正确无误,给后期测试和仿真带来了很大的压力和成本,在航空航天.卫星系统. ...

  5. 国产自主可控的形式化验证代码自动生成工具ModelCoder可替代Matlab/Sumlink

    在安全关键领域,基于模型的软件工程或者软件开发已逐渐进入了我国的装备研制过程中.使用SimuLink或者SCADE等嵌入式软件建模工具对算法或者控制逻辑进行可视化建模,然后生成高可靠的二进制代码逐渐成 ...

  6. 支持多达70余种嵌入式核心的嵌入式仿真软件SkyEye

    SkyEye 介绍 SkyEye,中文全称天目全数字实时仿真软件,应用软件仿真技术,逼真地模拟出被测软件的物理环境.用图形化方式构建虚拟目标系统,有效降低了硬件工程师和软件工程师之间的沟通成本,软件工 ...

  7. 【三维CAD软件】上海道宁为您带来国际一流的国产自主可控的三维CAD软件——天工CAD

    天工CAD©融合了 新迪数字收购的 国际一流三维CAD软件技术和 十几年CAD软件研发积累 是一款国产自主可控的三维CAD软件 产品成熟度和技术能力比肩国际先进水平 满足工业企业研发设计需求 软件功能 ...

  8. 联想国产化业务客户经理聂耘鑫:联想国产自主可控业务

    编者按:为进一步推广上海市国企应用自主可控信息技术,9月26日,由上海市国有资产管理委员会.上海市经济和信息化委员会.上海市版权局指导,上海市国有资产信息中心主办,畅享网提供媒体支持的"自主 ...

  9. 我国区块链技术发展仍处于早期发展阶段 要建设国产自主可控的联盟链

    浙江大学区块链研究中心常务副主任.浙江省区块链技术研究院院长蔡亮近日接受中国证券报记者专访时表示,当下区块链产业应用领域进一步扩展深化,行业应用价值开始凸显.随着区块链初步满足应用需求,软硬件一体化. ...

最新文章

  1. 脑洞大开!Adobe等新研究把「自拍」变「他拍」,魔幻修图效果感人
  2. iOS 获取网络状态
  3. 从近两年的CVPR会议来看,目标检测的研究方向是怎么样的?
  4. Visual C++ 中的重大更改
  5. 2020\Simulation_2\1.12.5MB
  6. LINUX系统用户操作命令
  7. 非极大值抑制(non-maximum suppression)的理解与实现
  8. [PCB设计] 1、硬件原理图设计规范(一)——基本原则
  9. Thinkpad T400 解决PCI 内存控制器设备黄色感叹号问题
  10. 《软件架构/架构师书库》读后感
  11. mysql五日均线_终于有人把“5日均线做短线”的精髓讲透了!
  12. 新型城镇化3.0时代 数据交换是“智慧城市”的核心
  13. 基于stm32/单片机/DSP/Java的毕业设计 课程设计
  14. linux 4g 拨号,4G模块Linux PPP拨号说明
  15. 自学游戏建模,有什么适合新手学习的3D建模软件?
  16. 基于java的千千影评网站的设计与实现(论文+程序设计源码+数据库文件)
  17. 在数据表中添加一个字段的SQL语句怎么写
  18. iOS14桌面伪透明
  19. concat、concatenate、add
  20. MapStruct - 原理讲解

热门文章

  1. can总线报文是固定的吗_新能源汽车CAN总线Bus Off处理流程
  2. SpringBoot使用Mina框架进行服务端与客户端数据通信
  3. String s1=new String(“abc“); 和String s1=“abc“区别
  4. Nginx学习_狂神
  5. Query String Parameters、Form Data、Request Payload的区别
  6. spring中context:property-placeholder标签详解
  7. Idea插件——Translation 翻译插件安装与使用
  8. 取消语法检测_中考取消了考纲,学生要如何得高分
  9. 背景图层和普通图层的区别_图层样式(一)—高级混合选项
  10. 继上一篇博客--javaweb通过接口来实现多个文件压缩和下载(包括单文件下载,多文件批量下载)