Dissertação de mestrado integrado em Engenharia Electrónica Industrial e ComputadoresWe live in a world where the need for computer-based systems with better performances
is growing fast, and part of these systems are embedded systems. This
kind of systems are everywhere around us, and we use them everyday even without
noticing. Nevertheless, there are issues related to embedded systems in what comes
to real-time requirements, because the failure of such systems can be harmful
to the user or its environment.
For this reason, a common technique to meet real-time requirements in difficult
scenarios is accelerating software applications by using parallelization techniques
and dedicated hardware components. This dissertations’ goal is to adopt a methodology
of hardware-software co-design aided by co-simulation, making the design
flow more efficient and reliable. An isolated validation does not guarantee integral
system functionality, but the use of an integrated co-simulation environment
allows detecting system problems before moving to the physical implementation.
In this dissertation, an integrated co-simulation environment will be developed,
using the Quick EMUlator (QEMU) as a tool for emulating embedded software
platforms in a Linux-based environment. A SystemVerilog Direct Programming
Interface (DPI) Library was developed in order to allow SystemVerilog simulators
that support DPI to perform co-simulation with QEMU. A library for DLL
blocks was also developed in order to allow PSIMR to communicate with QEMU.
Together with QEMU, these libraries open up the possibility to co-simulate several
parts of a system that includes power electronics and hardware acceleration
together with an emulated embedded platform.
In order to validate the functionality of the developed co-simulation environment,
a demonstration application scenario was developed following a design flow that
takes advantage of the mentioned simulation environment capabilities.Vivemos num mundo em que a procura por sistemas computer-based com desempenhos
cada vez melhores domina o mercado. Estamos rodeados por este tipo de
sistemas, usando-os todos os dias sem nos apercebermos disso, sendo grande parte
deles sistemas embebidos. Ainda assim, existem problemas relacionados com os
sistemas embebidos no que toca aos requisitos de tempo-real, porque uma falha
destes sistemas pode ser perigosa para o utilizador ou o ambiente que o rodeia.
Devido a isto, uma técnica comum para se conseguir cumprir os requisitos de
tempo-real em aplicações críticas é a aceleração de aplicações de software, utilizando
técnicas de paralelização e o uso de componentes de hardware dedicados.
O objetivo desta dissertação é adotar uma metodologia de co-design de hardwaresoftware
apoiada em co-simulação, tornando o design flow mais eficiente e fiável.
Uma validação isolada não garante a funcionalidade do sistema completo, mas a
utilização de um ambiente de co-simulação permite detetar problemas no sistema
antes deste ser implementado na plataforma alvo.
Nesta dissertação será desenvolvido um ambiente de co-simulação usando o QEMU
como emulador para as plataformas de software "embebido" baseadas em Linux.
Uma biblioteca para SystemVerilog DPI foi desenvolvida, que permite a co-simulação
entre o QEMU e simuladores de Register-Transfer Level (RTL) que suportem SystemVerilog.
Foi também desenvolvida uma biblioteca para os blocos Dynamic Link
Library (DLL) do PSIMR , de modo a permitir a ligação ao QEMU. Em conjunto,
as bibliotecas desenvolvidas permitem a co-simulação de diversas partes do sistema,
nomeadamente do hardware de eletrónica de potência e dos aceleradores de
hardware, juntamente com a plataforma embebida emulada no QEMU.Para validar as funcionalidades do ambiente de co-simulação desenvolvido, foi explorado
um cenário de aplicação que tem por base esse mesmo ambiente