Co-design e Sistemas Reconfiguráveis
Objetivos
Objetivos:
Saber
Conhecimento de metodologias de co-design de sistemas hardware-software
Conhecimento de técnicas de partição de modelos em máquinas de estado, estadogramas ou redes de Petri
Conhecimentos de plataformas de suporte a computação reconfigurável
Fazer
Partição de modelo do sistema em componentes
Codificar em VHDL os componentes obtidos expressos nos formalismos acima mencionados
Verificação experimental num sistema didático baseado em FPGA
Competências Não-técnicas
Capacidade de gestão do tempo e cumprimento de prazos
Capacidade de trabalhar em equipa e de colaborar numa equipa
Atitude de exigência e qualidade
Caracterização geral
Código
2852
Créditos
6.0
Professor responsável
Luís Filipe Santos Gomes
Horas
Semanais - 4
Totais - 56
Idioma de ensino
Português
Pré-requisitos
A disponibilizar brevemente
Bibliografia
(1) G. De Micheli, R. K. Gupta; “Hardware-Software Co-Design”; Readings in hardware/software co-design; ACADEMIC PRESS; ISBN 1-55860-702-1; 2001
(2) "VHDL for Designers", Stefan Sjoholm, Lennart Lindh; Prentice Hall, 1997, ISBN 0-13-473414-9
(3) "Statecharts: a visual formalism for complex systems", vol. 8, pp. 231-274; David Harel; Science of Computer Programming 1987
(4) "Petri Nets and Industrial Applications: A Tutorial", Richard Zurawski and MengChu Zhou; IEEE Transactions on Industrial Electronics, Vol.41, no. 6, December 1994, pp. 567-583
(5) Several journal and Conference papers (having lecturers as authors).
Método de ensino
Aulas de exposição com duas horas semanais onde, sempre que possível, se fomenta a discussão de temas permitindo dar ênfase diferenciada em aspetos conceptuais, nomeadamente a partição de modelos no âmbito de uma metodologia de desenvolvimento baseada em modelos, bem como em aspetos de implementação e de tecnologia de sistemas digitais, nomeadamente as linguagens de descrição de hardware (VHDL) e plataformas utilizando dispositivos reconfiguráveis tipo FPGAs, bem como a linguagem C e plataformas utilizando microcontroladores.
As aulas práticas são aulas de laboratório com a duração de duas horas semanais, onde os alunos realizam mini-projetos “da especificação à implementação”, com crescente grau de autonomia, utilizando ferramentas computacionais de nível profissional, bem como ferramentas produzidas como resultado da investigação no departamento.
Cada grupo de trabalho recebe placas de experimentação (uma FPGA e um Arduino) permitindo a experimentação fora do laboratório.
Método de avaliação
A avaliação é garantida através de 1 trabalho individual, com suporte de um poster e apresentação oral (40%) e da realização de dois mini-projetos em grupos de 2 ou 3 estudantes (prática) (cada 30%).
As notas das várias partes são apresentadas com duas casas decimais, sendo o resultado calculado com base na média ponderada de acordo com os pesos indicados.
Conteúdo
1 - Motivação para o co-design de hardware/software e para os sistemas reconfiguráveis.
2 - Metodologias de desenvolvimento, representações unificadas, formalismos gráficos (máquinas de estados, estadogramas, redes de Petri) e linguagens de descrição de nível sistema (SystemC) , de hardware (VHDL) e de software (C/C++).
3 - Partição de modelos em componentes hardware e software e métricas de avaliação; co-simulação, co-verificação e co-síntese. Ênfase em máquinas de estado, estadogramas e redes de Petri.
4 - Plataformas de computação reconfigurável; dos dispositivos de lógica programável (CPLDs e FPGAs) aos sistemas-num-integrado (SoC).
5- Análise de sistemas GALS – Globalmente Assíncronos Localmente Síncronos
6 - Análise de aplicações de elevado desempenho. Implementações síncronas versus assíncronas.
Cursos
Cursos onde a unidade curricular é leccionada: