Apresentação da disciplina: docentes, horários das aulas, funcionamento das aulas teórico-práticas, inscrição nos turnos, metodologia de trabalho, sistema de avaliação adoptado, documentação, programa das aulas teóricas e teórico-práticas, planeamento das aulas teórico-práticas.
Introdução aos sistemas digitais: comparação entre sistemas digitais e analógicos, connceito da abstracção digital, comparação entre sistemas síncronos e assíncronos, portas lógicas e flip-flops, ferramentas de CAD, circuitos integrados, PLDs e níveis de abstracção no projecto de sistemas digitais.
Álgebra de Boole: introdução, sinais binários, comparação entre sistemas combinacionais e sequenciais, portas lógicas elementares e álgebra da comutação (axiomas e alguns teoremas).
Álgebra de Boole: álgebra da comutação (alguns teoremas), princípio da dualidade, representação normalizada de funções lógicas (tabelas e expressões algébricas tipo SOP ou POS).
Álgebra de Boole: representação normalizada de funções lógicas (tabelas e expressões algébricas tipo SOP ou POS) e exemplos.
Conceitos sobre sistemas combinacionais: minimização de funções (métricas usadas para orientar a minimização, essência da minimização e exemplos ilustrativos), Mapas de Karnaugh (mapas para 2, 3, 4, 5 e 6 variáveis, correspondência entre uma tabela de verdade e um mapa de Karnaugh, a essência da simplificação - adjacência entre células equivale ao teorema T10/T10').
Conceitos sobre sistemas combinacionais: Mapas de Karnaugh (regras para combinação/simplificação de células a 1/0, algumas definições - soma mínima, soma completa, implicante maior e implicante essencial, algoritmo de simplificação com mapas de Karnaugh, definição de célula-a-1 distinguida, de implicante essencial e reformulação do algoritmo de simplificação com mapas de Karnaugh quando se usam don’t cares).
Conceitos sobre sistemas combinacionais: Exemplo de simplificação de uma função de 4 variáveis com mapas de Karnaugh. Definição de glitch e de hazard estático/dinâmico e aplicação dos mapas de Karnaugh para detectar e eliminar hazards estáticos.
Linguagem VHDL: o fluxo de projecto, entidades e arquitecturas. Principais características da linguagem, ferramentas de síntese, definição de entidade e arquitectura, hierarquia, sinais e variáveis, tipos de dados pré-definidos e definidos pelo utilizador (incluindo arrays).
Linguagem VHDL: atribuição de valores a arrays, manuseamento de arrays, semântica e sintaxe da função e do procedimento.
Linguagem VHDL: definição de biblioteca e de package e tipo de informação neles guardada. Projecto estrutural (instruções concorrentes e declaração/instanciação de componentes, aplicação da instrução for...generate na criação de estruturas repetitivas, utilização de constantes genéricas na definição de entidades parametrizadas). Projecto fluxo de dados (atribuição concorrente a um sinal, atribuição concorrente e condicional).
Não houve aula (férias de Páscoa).
Não houve aula (férias de Páscoa).
Não houve aula (férias de Páscoa).
Linguagem VHDL: Projecto fluxo de dados (atribuição selectiva). Projecto comportamental (semântica e sintaxe do processo, utilização de sinais/variáveis em processos, lista de sensibilidade dum processo, forma de execução dum processo e instruções sequenciais if, case, loop, for e while). Modelação da dimensão temporal dum circuito utilizando after ou wait, processo de simulação - lista com eventos e matriz com a lista de sensibilidade, definição dum ciclo de simulação e conceito de delta delay).
Linguagem VHDL: análise detalhada do processo de simulação através de um exemplo com 2 processos concorrentes, utilizando after, lista de sensibilidade e wait. Ilustração dum testbench) e síntese (algumas regras de codificação que permitem obter código sintetizável).
Conceitos sobre sistemas sequenciais: circuitos combinacionais vs sequenciais, conceito de estado (variáveis de estado, máquinas de estados finitas, sinal de relógio), elementos bi-estáveis (circuito bi-estável mais simples, análise do bi-estável segundo uma perspectiva analógica), latches (latch S-R, latch /S-/R, latch S-R com enable, latch D), flip-flops (flip-flop D sensível à transição positiva/negativa).
Conceitos sobre sistemas sequenciais: flip-flops (flip-flop D com entradas assíncronas e/ou enable, flip-flop J-K com estrutura mestre/escravo, flip-flop J-K sensível à transição, flip-flop T sem/com enable). Projecto de máquinas de estados - FSMs (definição formal de FSM, máquinas do tipo Moore e Mealy, estrutura duma FSM, passos envolvidos no projecto duma FSM).
Conceitos sobre sistemas sequenciais: Exemplo de projecto duma máquina de estados (descrição textual da FSM, construção da tabela de estados e saídas, diagrama de estados, atribuição de códigos aos estados - atribuição mais simples, decomposta, do tipo one-hot, do tipo quase one-hot, abordagens risco/custo mínimo para lidar com os códigos de estados não usados, obtenção da tabela de excitação, tabela de excitação, tabela de verdade, tratamento dos estados não usados, obtenção da expressão das saídas combinacionais usando simplificação com mapas de Karnaugh e diagrama lógico da máquina de estados).
Não houve aula (feriado).
Conceitos sobre sistemas sequenciais: Segundo exemplo de projecto duma máquina de estados - sistema de controlo das luzes dum carro (diagrama de estados, alteração do diagrama de estados para eliminar ambiguidades e tabela de estados). Descrição de máquinas de estados em VHDL (suporte da linguagem para descrever máquinas de estados - atributo event, tipos de dados enumerados e construtor CASE, utilização do atributo event para modelar um flip-flop D, abordagens alternativas para descrever máquinas de estados em VHDL, formas que se podem usar para atribuir códigos aos estados, descrição em VHDL do sistema de controlo das luzes dum carro).
Questões práticas de sistemas combinacionais: PLDs (estrutura dos dispositivos de lógica programável do tipo PLA e PAL), descodificadores (definição, descodificador binário 2 para 4 e 3 para 8, hierarquia de descodificadores, descrição em VHDL estrutural, fluxo de dados e comportamental) e descodificadores de 7-segmentos.
Não houve aula (jornadas JOIN).
Não houve aula (enterro da gata).
Não houve aula (enterro da gata).
Questões práticas de sistemas combinacionais: codificadores (definição, codificadores binários 8:3, codificador de pedidos, codificador de prioridade), buffers tri-state (conceito de alta impedância, definição e utilidade em barramentos), multiplexadores (definição, multiplexador 8:1, multiplexador 2:1 de 4-bits, desmultiplexador, descrição em VHDL), portas XOR e circuitos detectores de paridade (detector de paridade impar/par, detectores com estrutura daisy-chain/árvore, detector de paridade em VHDL).
Questões práticas de sistemas combinacionais: comparadores (definição, comparador de 4-bits com portas OR e XOR, comparador com estrutura "iterativa", comparador de 4-bits 74x85 e aplicação do CI 74x85 num comparador de 12-bits), somadores, subtractores e ALUs (semi-somador de 1 bit, somador completo de 1 bit, somador de ripple, subtractor completo de 1 bit, subtractor de ripple, ALU de 4-bits 74x181), multiplicadores (algoritmo/implementação tradicional dos multiplicadores, descrição em VHDL).
Questões Práticas de Sistemas Sequenciais: introdução e contadores (definição, modulus, contador módulo-m, contador binário, contador de ripple, contadores de ripple / série / paralelo síncronos, exemplo de um contador descrito em VHDL), PLDs sequenciais (PAL combinacional vs sequencial, a PAL sequencial 16R8).
Memória ROM: introdução aos tipos de memória, as várias classificações das memórias, a memória só de leitura (ROM), a ROM vista como um circuito combinacional, a estrutura interna duma ROM.
TP2 (3as feiras - 16:00 .. 19h00)
27.Fev.07
06.Mar.07
13.Mar.07
Módulo 2 - Formas canónicas POS e SOP.
Módulo 3 - Mapas de Karnaugh.
20.Mar.07
Módulo 4 - Introdução à linguagem VHDL
Modelação data flow,
estrutural e comportamental (somador, multiplexer e paridade).
27.Mar.07
Não houve aula
03.Abr.07
Férias de Páscoa.
10.Abr.07
Férias de Páscoa.
17.Abr.07
Módulo 4 (Conclusão)
Simulação em VHDL.
Módulo 6 - Sistemas Sequenciais
Diagrama de blocos, diagrama de
estados, tabela de estados, tabela de verdade e simplificação.
24.Abr.07
Módulo 6 - Sistemas Sequenciais (Continuação)
Descrição e simulação em VHDL.
Síntese.
01.Mai.07
Feriado.
08.Mai.07
Projecto.
15.Mai.07
Enterro da Gata.
22.Mai.07
Projecto
29.Mai.07
Projecto
05.Jun.07
Projecto - avaliação final.