01

The concept and application of SkyEye


SkyEye, the full name of Tianmu all-digital real-time simulation software in Chinese, is a hardware behavior-level simulation platform based on visual modeling. It supports users to simulate and model hardware at the behavior level by dragging and dropping.


SkyEye currently supports mainstream embedded hardware platforms, can run mainstream operating systems, and can also adapt to the domestic self-developed operating system Tianmai. By using LLVM-based dynamic binary translation technology, the virtual processor can run at a speed of more than 2000 MIPS on a typical desktop computer.


MetInfo enterprise content manager system | MetInfo CMS

▲Figure-1: Using virtual prototypes to reduce product cycle and cost


MetInfo enterprise content manager system | MetInfo CMS

▲Figure-2: Screenshots of 4 PowerPCs running 4 Tianmai operating systems



02

Advantages of SkyEye


SkyEye can be integrated with third-party languages or models


At present, SkyEye and SystemC have been integrated for timing simulation, and SkyEye and MATLAB or Simulink have been integrated for multi-domain co-simulation.


MetInfo enterprise content manager system | MetInfo CMS

▲Figure-3: MATLAB and SkyEye connection diagram


Hardware modeling based on visual graphics


Hardware modeling based on visual graphics effectively reduces the communication cost between hardware engineers and software engineers. Software engineers do not depend on hardware engineers, but can make changes to the hardware configuration as needed. Through this visual graphics hardware modeling method, software personnel can quickly build a hardware model, and run and debug the same binary file as the real hardware on the hardware model, which can greatly shorten the product development cycle and improve the efficiency of software debugging.


MetInfo enterprise content manager system | MetInfo CMS


▲Figure-4: Hardware modeling based on visual graphics


Containerized simulation platform


The traditional model with virtual machines as the smallest resource scheduling unit has a series of problems such as low resource utilization and complex configuration. In order to adapt to the continuous development of cloud computing services, SkyEye supports Docker containerized deployment, encapsulating the correctly configured SkyEye environment into Docker, and users can directly load Docker to run the simulation environment. The Docker container can be opened and closed at any time, which is very suitable for dynamic expansion and shrinkage, making SkyEye flexibly deployed on the cloud platform. At the same time, through multiple containers, one machine can run multiple services, deploy multiple SkyEye Docker to simulate multiple processor architecture models. SkyEye Docker not only supports terminal mode output, but also supports Telnet mode, which can access the output data of the serial port through port mapping.


MetInfo enterprise content manager system | MetInfo CMS

▲Figure-5: SkyEye Docker deployment principle


FPGA co-simulation


SkyEye realizes the co-simulation with virtual FPGA, which can support the verification method of UVM. The virtual FPGA is connected to SkyEye through the co-simulation bus, and users can independently control the simulation running speed and improve the test efficiency of larger-scale embedded systems. SkyEye itself is a multi-architecture functional level simulation platform, and has rich debugging functions, which can debug multi-core embedded systems.


MetInfo enterprise content manager system | MetInfo CMS

▲Figure-5: SkyEye and virtual FPGA co-simulation


03

SkyEye application case


SkyEye missile simulation case


The simulation of the whole system environment is controlled by the Core i7 management combination to control a series of operational processes such as powering up and launching of the missile. The entire system environment includes the management combination Core i7 application, launch control system application, bomb-on-machine system application and fire control simulator under Windows.


MetInfo enterprise content manager system | MetInfo CMS

▲Figure-7: SkyEye missile simulation case


SkyEye satellite simulation case



The super real-time simulation subsystem is a set of SPARC processor-based attitude and orbit control embedded software development, simulation and verification platform. It supports co-simulation with an external Simulink simulation model and realizes full digital high-speed closed-loop simulation operation for attitude and orbit control. Software development and debugging, system testing.


MetInfo enterprise content manager system | MetInfo CMS

▲Figure-8: SkyEye satellite simulation case


SkyEye payload software simulation case


SkyEye realizes the full digital software simulation of the space station load software with embedded processors such as AT697 and Loongson, enabling the code to run virtual on the software simulation platform, and supporting test tasks such as code quality analysis.


MetInfo enterprise content manager system | MetInfo CMS

▲Figure-9: SkyEye payload software simulation case


SkyEye large-scale avionics system simulation case


SkyEye provides an environment for building multi-machine multi-functional target systems for integrated avionics systems (ICP). It can be deployed in a distributed manner, and multiple airborne electronic sub-systems can be cross-linked through multiple transmission data buses to achieve information Measurement, acquisition, transmission, processing, monitoring and display functions, and complete tasks such as flight control, engine control, navigation, and performance management.


MetInfo enterprise content manager system | MetInfo CMS

▲Figure-10: SkyEye large-scale avionics system simulation case


04

SkyEye supports multiple processor models



Instruction set architectureProcessor coreSOC chipCompiler EnvironmentSupported OS
ARMARM9S3C2410、AT91RM9200、OMAPL138、SOPC国威arm-gcc、
RVDS
Linux、VxWorks6.9
ARM11S3C6410arm-gccLinux
CORTEX-MSTM32、STM32F0arm-gcc/
CORTEX-RRM48L952arm-gcc/
CORTEX-AAM335x、IMX6Qarm-gcc/
飞腾FTC662FT-2000ALambdaAE、VxWorks6.9、ACoreOS天脉
workbench
DSPC28xC2812、F28335CCS/
C54xC5416CCS/
C55xC5510CCS/
C64xC6416、C6455、C6474CCS/
C66xC6678CCSLinux
C67xC6701、6713、C6748CCS/
POWERPCMPC603EMPC8245workbenchVxWorks6.9
E200Z6MPC5554
E300MPC8378、MPC5121
E500MPC8560、P1010、P2020
E600MPC755、MPC8641D
E5500T1040
E6500T2080、T4240
SPARCSPARC V7TSC695Fsparc-gcc/
SPARC V8LEON2、BM3803、Tornado2.2VxWorks6.8、RT-Thread
AT697F、BM3823
X86ATOMN270workbenchVxWorks6.8
PENTIUMP2、P3、P4
COREI3、I5、I7
MIPSGS232Loongson 1ELoongson IDELinux、VxWorks6.9
LS132RLoongson 1JLoongson IDE/



05

List of peripherals supported by SkyEye


Peripheral type (on-chip)The development board to which the timer belongs
Timeram3359_timerc541x_timerc64x_timerc6748_timer
at91rm9200_timerc5510_timerc6678_timerleon2_timer
c28_timerc6474_timerc6713_timeromapl138_timer
s3c2410x_timers3c6410_timerstm32f0x_timer
UART16550_uartc2812_uartleon2_uartmpc8245_uart
am3359_uartc5510_uartls3a_uarts3c2410x_uart
at91rm9200_uartc6678_uartmpc5121_uarts3c6410_uart
tsc695f_uartimx6_uart

ctrlam3359_ctrlc6678_ctrlomapl138_emac_ctrls3c6410_sysctrl
at91rm9200_sysctrlf28335_ctrls3c2410x_sysctrl
emifc6713_emifomapl138_emif

gpioam3359_gpioc6713_gpioomapl138_gpios3c6410_gpio
at91rm9200_gpiof28335_gpios3c2410x_gpio
flashc6713_flashf28335_flash

iicam335x_iicc6713_iicf28335_iicmpc8378_iic
omapl138_iicsopa_i2c

pllc64x_pllc6713_pllmpc8641_pllomapl138_pll
intcam335x_intcc6713_intcc674x_aintcomapl138_intc
lcdomapl138_lcd


picmpc5121_ipicmpc8245_picmpc8378_picmpc8641d_pic
p1010_pict2080_pic

pief28335_pie


spiam335x_spif28335_spiomapl138_spis3c6410_spi
othert2080_bmanimx6q_analogc6713_semaphorec6748_sata
t2080_fmanat91rm9200_vicc6748_mcBspc6748_upp
t2080_qmanc2812_xintfc6748_ecapc674x_ehrpwm
am335x_prcmc6713_L2cachec6748_nandf28335_adc
am335x_rtcc6713_edmac6748_rtcf28335_xintf
f28335_canf28335_scileon2_irqmpc8245_pci
f28335_ecapf28335_xinterruptmpc5121_sfifocmpc8245_ddr
f28335_epwmf28335_mcbspmpc5121_dmampc8378_pit
mpc8560_dpramomapl138_emacomapl138_syscfgstm32f0x_usart
mpc8641_rapidioomapl138_mcaspomapl138_usbhoststm32f0x_rcc
omapl138_edmaccomapl138_pscomapl138_usbotgs3c2410x_vic
s3c6410_camifs3c6410_rtcs3c6410_usbhosts3c6410_vic
s3c6410_mfct2080_dcfg



Peripheral type (custom/off-chip)The development board to which the timer belongs
Timerc645x_timerthey_timerrm48x_timert104x_timer
c687_timermpc8378_timersopc_timer
UARTc687uarthtey_uartp1010_duartsopc_uart
ft2000a_uartloongson_uart

ctrlbm3803_sysctrlc2812_sysctrlc5510_sysctrlsopc_ictl
sparc_fight_ctrlsparc_sysctrl

emifc2812_emifc6678_emifrm48x_emif
gpioc5510_gpioc6748_gpiosopc_gpiox86_gpio
c64x_gpioft2000_gpio

flashamd_flasham29lv160b_flashs29gl01gs_flashloongson_flash
at697f_flashs29a016d_flash

iicat607f_iicrm48x_iicft2000_iicxdht_iic
pllc6678_pll


intcam3359_intcc6678_intcnm3823_intcxdht_intc
lcds3c6410_lcduc1608_lcd

piec2812_pie


spiat697f_spift2000_spirm48x_spim25p128_spi
c6678_spiloongson_spisopc_spixdht_spi
otherad7705c687_cldlloongson_collectrm48x_sys
rs485_hdlcc687_epicloongson_configs3c6410_keypad
am35x_heccc6k_lvdsloongson_hpets3c6410_sdhci
arinc_bu67118can_advloongson_ipmbsopc_a429
at697f_1553_bccan_bridgeloongson_pwmsopc_boot
at697f_1553b_bc_ramf28335_can_sja1000loongson_secsopc_dmac
at697f_1553b_rtft2000a_crumpc8641d_etsecsopc_fpga
bu_61580ft2000a_dmacmpc8378_usbsopc_fpu
bu_61580_ramft2000a_gicp2020_l2_cachesopc_wdt
c2812_xinterruptft2000a_gmacp2020_ecmusb_storage
c5510_mcbspft2000a_lpcp2020_elbcw5100_end
c618_sib_busft2000a_mcup2020_gutsx86_ad
c6678_iicft2000a_pciep2020_picx86_bu61580
c6678_cicft2000a_wdgrm48x_adcx86_bu_61580_ram
c6678_ddr2htey_gpsrm48x_esmx86_rs422
c6678_dschtey_clientrm48x_giox86_sja1000
c6678_edmahtey_cmd_filerm48x_ioxdht_can
c6678_msmchtey_hdlcrm48x_pbistzn122_atm
c6678_mt19f1gleon2_iorm48x_pcr
c6678_n25q128loongson_1553b_rtrm48x_pmm
c6678_srioloongson_adcrm48x_sci


Connector (bus device between multiple boards)
Lvds_busad_linkercan_linkeri2c_busspi_bus
Rs232_busarinc_429_busdmc_linkerio_linkerstd1553b_linker
Rs422_busatm_linkergpio_gaters422_bridgetsi578_linker
Rs485_busbu61580_bridgegpio_linkerrs422_linkerttp_bus


06

Embedded software testing tools


Target code coverage test tool


This product is a tool for object code testing based on simulation technology. Run the user's executable program on the built virtual target system to generate execution results, calculate code coverage, display statement coverage, branch coverage, function coverage and other information (support export coverage reports in HTML and Excel) . This tool supports the related requirements of DO-178B's A-level software target code test coverage, and also supports target code coverage tests of embedded software on various platforms, such as ARM, PowerPC, DSP, MIPS, SPARC, etc.


MetInfo enterprise content manager system | MetInfo CMS

▲Figure-11: Target code coverage test tool


Simulation-based automatic fault injection tool


This product is an automated fault injection tool based on symbolic execution technology and simulation platform technology. Because it is based on simulation technology, the tool can flexibly inject any faults into any hardware; at the same time, it can also symbolize hardware based on symbolic execution technology, and accurately inject faults that can affect system behavior. The advantage of this tool is that it can avoid repeated injections and missed injections in traditional fault injection.


MetInfo enterprise content manager system | MetInfo CMS

▲Figure-12: Interface of automatic fault injection tool based on simulation


电话咨询
在线咨询
解决方案
QQ客服