O desenvolvimento de sistemas embebidos tem vindo a tornar-se mais complexo com a crescente aplicação de técnicas de machine learning e inteligência artificial em aplicações de IoT e também em sistemas críticos. Com estas aplicações complexas que requerem mais capacidade de processamento, surge a necessidade de otimizar métricas tais como o desempenho, a eficiência energética e também o tempo de resposta dos sistemas. Uma solução é criar sistemas híbridos de software e hardware com recurso a lógica reprogramável (FPGA), migrando partes mais críticas para o hardware. No entanto, o desenvolvimento de sistemas híbridos de hardware-software com recurso a hardware reconfigurável é usualmente um processo pouco produtivo com recurso a linguagens HDL ou a ferramentas de maior abstração, mas que ainda assim se tornam pouco produtivas para aplicações de maior complexidade.
A framework PYNQ da Xilinx permite o desenvolvimento de sistemas híbridos de software hardware com o uso da linguagem Python e FPGA overlays para aceleração por hardware de aplicações como processamento de vídeo, inteligência artificial, entre outros. Outra questão relevante ao desenvolvimento de sistemas embebidos nesta era tecnológica da Internet of Things é a questão da segurança. A segurança e a fiabilidade dos sistemas têm ido tidas em atenção pelos desenvolvedores de processadores, com a criação de extensões de segurança que permitem isolar aplicações críticas do restante software. O LTZVisor é um hipervisor que explora a tecnologia TrustZone presente em alguns processadores ARM de modo a criar dois mundos de execução independentes para dois sistemas operativos permitindo isolamento entre eles. O objetivo da dissertação é aliar a capacidade de desenvolver sistemas híbridos de software e hardware com recurso a ferramentas e linguagens de programação de alta produtividade, neste caso Python com recurso à framework PYNQ desenvolvida pela Xilinx, ao isolamento entre sistemas operativos disponibilizado pelo LTZVisor.
- Familiarização com a framework PYNQ da Xilinx.
- Porting do LTZVisor para a placa de desenvolvimento PYNQ-Z1.
- Elaboração de um sistema híbrido de software-hardware recorrendo à framework PYNQ e à virtualização assistida por hardware do LTZVisor.