SkyEye简介:
天目全数字实时仿真软件SkyEye作为基于可视化建模的硬件行为级仿真平台,能够为嵌入式软件提供虚拟化运行环境,开发、测试人员可在该虚拟运行环境上进行软件开发、软件测试和软件验证活动。小到芯片,大到系统,SkyEye均可进行模拟。
01.背景介绍
1936年,被誉为“计算机科学与人工智能之父”的艾伦·图灵在其著作中证明了一个能够执行任何可计算序列的通用计算机的可行性[1],奠定了计算机仿真技术的理论基础。20世纪50年代,世界上第一台“商用程序内藏式电子计算机”EDSAC项目便使用了这一理论,其所使用的错误诊断技术中的“STEP-BY-STEP”技术已具备当前处理器仿真中常用的“解释执行”特性[2]。
(资料图片)
随着计算机硬件性能飞速提高和软件技术的不断进步,计算机仿真技术也取得了长足的发展,并进入广泛实用阶段,已被应用于移植异构计算机、研制处理器、开发和测试操作系统以及应用软件、检测病毒、虚拟化服务器等领域。
在应用仿真的诸多领域之中,嵌入式软件开发测试凭借以下特点,在仿真技术的适用性上显得尤为突出:
(1) 复杂的交叉开发环境:仿真能够避免可执行文件的下载操作;
(2) 相对低速的嵌入式处理器:仿真所造成的性能损耗能够被PC机运行速度克服,甚至超过真实目标机的运行速度;
(3) 高可靠性要求的嵌入式软件:避免物理测试环境的缺乏及其固有缺陷。
使用仿真技术来构建嵌入式软件虚拟验证系统的方式越来越受到重视。
02.全数字实时仿真
作为仿真技术中最为适合嵌入式软件的类型,全数字实时仿真技术指在达到仿真目标硬件平台实时性要求的基础上,对仿真目标进行纯软件模拟。
嵌入式领域中的全数字实时仿真,指通过软件方式对嵌入式板块的SoC以及各种外设进行建模,并实现功能级别的仿真,其实时性能够和真实硬件相媲美。其主要价值在于可以脱离硬件,及时甚至提早进行功能开发和非干预的验证,且仿真结果和硬件平台的运行结果保持一致。
03.SkyEye仿真龙芯2K1000处理器
龙芯中科作为国内知名的自主CPU设计供应商,面向国家信息化建设需求,现已推出三个系列(龙芯一、二、三号)多款CPU,且自研LoongArch指令集。本文主要聚焦于龙芯二号系列产品:龙芯2K1000处理器。
龙芯2K1000处理器主要面向于网络应用,兼顾平板应用及工控领域应用。采用40nm工艺,片内集成2个GS264处理器核,与MIPS64体系结构兼容,主频1GHz,64位DDR3控制器,以及各种系统IO接口。
龙芯2K1000结构图如下:
▲ 龙芯2K1000结构图
使用SkyEye平台对龙芯2K1000进行仿真,共分为三步:
第一步:基于SkyEye的设备建模工具,完成龙芯2K1000板卡上CPU和外设功能级的建模,形成动态链接库提供给SkyEye仿真引擎使用。
第二步:按照龙芯2K1000结构图,在SkyEye Workstation的建模区域,通过拖拽基本模块(第一步中完成的)、配置外设和总线属性完成龙芯2K1000板卡级的建模,此时已经得到一块全数字的仿真板卡。
第三步:创建SkyEye的启动脚本,对应物理板卡的烧录流程。
SkyEye已经支持龙芯2K1000,并在该仿真板卡成功运行Linux3.10(使用gcc4.9编译),在串口中可以输入Shell命令和Linux进行交互。以下为运行过程:
参考文献
[1] Turing A M. On Computable Numbers, with an Application to the Entscheidungsproblem[J]. Proceedings of the London Mathematical Society, 1936, 42(1):230-265.
[2] Gill S. The Diagnosis of Mistakes in Programmes on the EDSAC[J]. Proceedings of the Royal Society A Mathematical Physical & Enginee ring Sciences, 1951, 206(1087):538-554.