9 research outputs found

    High-level system-on-chip simulator

    Get PDF
    A high-level simulation is a significant part of the multicore system-on-chip (SoC) software development process. It allows executing programs and performing functional debugging on the high-level model of the SoC without going into details of SoC heterogeneous cores: a specific command set, a processes interaction, a communication system specifics etc. The high-level simulation is also a necessary part of the SW/HW co-design tool flows. This paper presents the developed high-level SoC simulator. This simulator allows executing coarse-grain programs in the configurable SoC-style distributed environment with heterogeneous processing elements and an interconnection. A parallel data-processing workload (SoC program) is been defining as a scheme of interacting processes with a C/C++ implementation and specific characteristics. Various simulation statistics allows investigating characteristics of a developed program (maximal parallelism levels, computation space requirements, amounts of interaction data), abilities of SoC architecture to perform such workload (processing elements and communication system occupation, buffers size distribution, queues etc.) and characteristics of program execution (processing time, latencies, constraints)

    Integrating Simulink, OpenVX, and ROS for Model-Based Design of Embedded Vision Applications

    Get PDF
    OpenVX is increasingly gaining consensus as standard platform to develop portable, optimized and power-efficient embedded vision applications. Nevertheless, adopting OpenVX for rapid prototyping, early algorithm parametrization and validation of complex embedded applications is a very challenging task. This paper presents a comprehensive framework that integrates Simulink, OpenVX, and ROS for model-based design of embedded vision applications. The framework allows applying Matlab-Simulink for the model-based design, parametrization, and validation of computer vision applications. Then, it allows for the automatic synthesis of the application model into an OpenVX description for the hardware and constraints-aware application tuning. Finally, the methodology allows integrating the OpenVX application with Robot Operating System (ROS), which is the de-facto reference standard for developing robotic software applications. The OpenVX-ROS interface allows co-simulating and parametrizing the application by considering the actual robotic environment and the application reuse in any ROS-compliant system. Experimental results have been conducted with two real case studies: An application for digital image stabilization and the ORB descriptor for simultaneous localization and mapping (SLAM), which have been developed through Simulink and, then, automatically synthesized into OpenVX-VisionWorks code for an NVIDIA Jetson TX2 boar

    Technology and design tools for portable software development for embedded systems

    Get PDF
    Nowadays embedded systems are used in broad range of domains such as avionics, space industry, automotive, mobile devices, domestic appliances and so on. There is enormous number of tasks that should be solved using embedded systems. There are many tools and approaches that allow developing of software for domain area experts, but mainly for general purpose computing systems. In this article we propose the complex technology and tools that allows involving domain experts in software development for embedded systems. The proposed technology has various aspects and abilities that can be used to build verifiable and portable software for a wide range of embedded platforms

    Design of onboard Local Area Networks

    Get PDF
    Modern onboard networks, especially those that implement Integrated Modular Avionics (IMA/IMA2G) concept, contain up to thousands of nodes. Integrated computation environment requires hard data interconnection with various requirements and constraints. Manual design of onboard networks becomes extremely hard and it's impossible to produce optimal or even efficient network structures. The presented research is intended for creation of method and tool for automated design of onboard local area networks. This will be used to assist engineers and designers of onboard complexes. We design networks using the SpaceWire communication standard, but the research can be easily modified to support other onboard network types. We develop an algorithm for an automated network construction, the prototype implementation of the algorithm, a probabilistic assessment of the intermediate results of the constructed network. We tested the technology on selected examples of real onboard networks and carried out the final evaluation of the development results. The developed prototype is able to build onboard local area networks based on user-defined parameters and constraints; it has a clear interface and performs the computation in the foreseeable time

    Design and Simulation of Onboard SpaceWire Networks

    Get PDF
    The paper describes SpaceWire Automated Network Design and Simulation (SANDS) - the new CAD system for SpaceWire networks. SANDS system supports the full on-board network design and simulation flow, which begins from the network topology automated generation and finishes with getting the network structure, configuration and parameters setting, simulation results and statistics. The paper also provides use cases for SANDS application

    Code-generator of Parallel Assembly Code for Digital Signal Processor

    No full text
    This paper presents some approaches to the creation of a code generator parallel assembly for digital signal processors (DSP). Generator simplifies the creation of heavy programming constructs and provides parallel execution of DSP-core software through the use of pipeline and parallel constructions

    Code generation for multiprocessor distributed computing systems

    No full text
    Distributed computing systems is a well-known instrument to rise system performance and avoid bottlenecks of shared memory architectures. In some cases, distributed architectures are used in embedded systems: to simplify every single embedded processor, decrease power consumption, increase system tolerance and predictability, etc. However, when working with such systems, software developers face all kinds of complications related to distributed systems programming: workload distribution, communications implementation, computations synchronization etc. For embedded distributed systems it's impossibility to use distributed programming approaches like MPI: they are too “heavy” for embedded systems. We propose the extended application of VIPE visual programming technology that covers a software development for distributed multi-processor systems. VPL program structure and extensible code generation backend allows to automate most aspects of distributed programming and apply a single VPL programs both to shared memory and distributed systems without additional programming effort

    Fast Static Performance Analysis of Parallel Program Schemes

    No full text
    During the embedded system development an estimation of software performance on different hardware is needed. Estimation of the expected acceleration of program execution on various numbers of processors, estimation of computation space etc. Such estimations, as other aspects of performance analysis complex, should help with different problems that arise at the intersection of software and hardware parts. For example, selection of the most successful hardware platform from available options for current program solution or modernization of the program for better resource use of given hardware platform and achieve best performance. In the paper tool of static analysis is considered. It is a part of the complex of program performance analysis in integrated development environment VIPE for perspective multicore embedded systems

    Domain-specific approach to software development for microcontrollers

    No full text
    Microcontrollers are widely used in many areas of embedded systems, from robotics control systems to smart homes. The number of different hardware platforms is increasing with a spread of embedded systems. More and more users are involved in a software development, including not qualified programmers. The application of a domain- specific development technology provides the possibility to program microcontrollers in terms that are familiar to a user but not to a microcontroller. The visual representation of programs ensures the clarity of the processing workflow. A portability to different hardware platforms allows using the microcontrollers with different processors from different manufacturers and an easy switching to the new versions of microcontrollers. In this paper we present initial steps of working with VIPE toolset for support microcontrollers programming for embedded systems
    corecore