Conceção de Sistemas Digitais

Objectivos

A disciplina pretende dotar os estudantes com conhecimentos básicos de conceção de sistemas digitais, dando ênfase às componentes de especificação comportamental (incluindo diagramas de estado, estadogramas e redes de Petri) e de descrição através da linguagem VHDL que lhes permitam implementar e testar sistemas digitais privilegiando plataformas de implementação baseadas em FPGAs.

Objetivos:

Saber

Capacidade de modelar sistemas digitais com máquinas de estado, com estadogramas e com redes de Petri

Conhecimento das características principais da linguagem VHDL

Conhecimento de técnicas e modelos para simulação e teste de circuitos digitais

 

Fazer

Construir um modelo comportamental de um sistema digital

Codificar em VHDL o modelo comportamental expresso nos formalismos acima mencionados

Elaborar a especificação de teste

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

10918

Créditos

6.0

Professor responsável

A disponibilizar brevemente

Horas

Semanais - A disponibilizar brevemente

Totais - 70

Idioma de ensino

Português

Pré-requisitos

Recomendado conhecimentos de sistemas digitais ao nível introdutório (nomeadamente frequência e aprovação na unidade curricular Sistemas Lógicos, no mínimo)

Bibliografia

"Introduction to Programmable Logic"; K. Parnell and N. Mehta; Xilinx 2004
"Hardware-level Design Languages", L. Gomes, A.Costa; "The Industrial Information Technology Handbook"; R. Zurawski (Editor-in-Chief), section VI – Real time embedded systems; chapter 84; CRC; ISBN 0849319854; 2005; pp. 84-1, 84-18
"Checking experiments in sequential machines", pp. 147-150; A. Bhattacharyya; John Wiley & Sons, 1989
"VHDL for Designers",  S. Sjoholm, Lennart Lindh; Prentice Hall, 1997, ISBN 0-13-473414-9
"Statecharts: a visual formalism for complex systems", vol. 8, pp. 231-274; D. Harel; Science of Computer Programming 1987
"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
"Digital Logic Circuit Analysis and Design", sec. 2.7.4 & c. 12; V. Nelson, H. Troy Nagle, B. Carroll, J. David Irwin; Prentice Hall 1995; ISBN 0-13-463894-8

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 em formalismos de especificação de sistemas (máquinas de estado, estadogramas e redes de Petri), 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.

 

As aulas práticas são aulas de laboratório com a duração de três 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.

Cada grupo de trabalho recebe uma placa de experimentação (com uma FPGA) permitindo a experimentação fora do laboratório.

Método de avaliação

Componente teórica:
A componente teórica da disciplina pode ser realizada através de 3 testes (1º teste 22%, 2º teste 22%, 3º teste 16%) ou exame;
Necessário ter média de testes ou nota de exame superior a 9,5 valores.
Componente prática: peso de 40% na nota final constituída por 2 trabalhos, sendo 20% da nota final associada a cada um dos trabalhos. Nota mínima no segundo trabalho de 10 valores.

Todas as notas serão representadas com duas casas decimais.

As respostas a perguntas semanais realizadas na plataforma Moodle pelos alunos que assitirem as aulas teóricas produzem uma bonificação de até 1 valor na nota da componente teórica (até 1 valor para as notas da componente teórica inferiores a 15 valores, até entre 1 e 0,5 valores para notas entre 15 e 16 valores proporcionalmente, e até entre 0,5 e 0 valores para notas entre 16 e 20 valores proporcionalmente).

Componente teórica efectuada nos dois anos anteriores é equivalente a exame.

Componente prática efectuada nos dois anos anteriores é equivalente a componente prática.

Conteúdo

(1ª parte - 1º teste)
Especificação de Sistemas Digitais: formalismos gráficos versus textuais. Diagramas de Estado: máquinas de Moore e Meally, especificações válidas, técnicas de codificação de estados. Síntese de Sistemas Digitais: implementações síncronas e assíncronas, utilização de dispositivos de lógica programável (PALs, CPLDs, FPGAs).

Linguagens de descrição de hardware, VHDL.

(2ª parte - 2º teste)
Estadogramas (Statecharts): características, profundidade, ortogonalidade, comunicação, história, tradução em máquinas de estado; questões de implementação.

Redes de Petri: características, classes RdP de baixo-nível (ordinárias e generalizadas) e de alto-nível (coloridas), extensões não-autónomas (tempo, eventos e acções), questões de implementação; análise de RdPs, verificação de propriedades, construção do espaço de estados.

(3ª parte - 3º teste)
Modelação e Teste de Sistemas Digitais: modelos, simulação coerente, micro-passos. Teste de Sistemas Digitais: teste de lógica combinatória, observabilidade e controlabilidade, modelos de falhas, teste de circuitos sequenciais, técnicas de varrimento, conceito “projectar para testar”, teste funcional, geração de vectores de teste, técnicas de compressão de respostas, auto-teste embutido (BIST-“built-in self-test”).