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: