Conceção de Sistemas Digitais
Objetivos
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
Luís Filipe Santos Gomes
Horas
Semanais - 4
Totais - 56
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 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.
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 momentos de avaliação (1º teste, com peso de 22%, 2º teste 22%, 3º teste 16%) ou exame (todos presenciais, se possivel); Necessário ter média de testes ou nota de exame superior a 9,5 valores.
Componente prática:
A componente prática será constituída por 2 trabalhos, sendo 20% da nota final associada a cada um dos trabalhos. Necessário ter média dos trabalhos superior a 9,5 valores.
Um trabalho adicional facultativo poderá introduzir uma bonificação de até 1 valor na nota pratica (com limite em 20 valores)
Todas as notas serão representadas com duas casas decimais.
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”).
Cursos
Cursos onde a unidade curricular é leccionada: