O cumprimento da disciplina busca dar ao aluno, ao final do semestre, condições de:
1. Dominar conceitos fundamentais de estrutura, representação e projeto de sistemas digitais combinacionais e sequenciais.
2. Demonstrar habilidade de entender e realizar operações utilizando lógica Booleana.
3. Demonstrar habilidade para usar uma linguagem de descrição de hardware (HDL) para a modelagem de sistemas combinacionais e sequenciais simples.
4. Ser capazes de projetar blocos básicos de um computador, quais sejam: operadores lógicos e aritméticos, registradores, contadores, memórias e máquinas de estados.
5. Ser capazes de compreender e avaliar formas de representação funcionais e temporais associadas a descrições HDL de blocos básicos de um processador.
6. Dominar o conceito de máquinas de estado finitas e seu emprego para modelar sistemas digitais.
1.1 Álgebra booleana e otimização lógica
1.1.1 Operadores lógicos;
1.1.2 Tabela verdade;
1.1.3 Expressões e equações Booleanas;
1.1.4 Soma de produtos e produto de somas;
1.1.5 Teoremas para álgebra Booleana;
1.1.6 Relações de equivalência;
1.1.7 Mapas de Karnaugh e Quine-McCluskey;
1.2 Introdução a sistemas digitais combinacionais;
1.2.1 O fluxo de projeto de sistemas digitais;
1.2.2 Representação de circuitos digitais em diferentes níveis de abstração;
1.2.3 Revisão de sistemas de numeração: binário, hexadecimal, etc;
1.2.4 Portas lógicas elementares;
1.3 Introdução a uma linguagem de descrição de hardware (HDL);
1.3.1 Componentes combinacionais primitivos: not, and, or, xor, etc;
1.3.2 Aritmética binária: soma e subtração, com e sem sinal;
1.3.3 Modelagem de componentes combinacionais compostos: operadores aritméticos, multiplexadores, somadores, subtratores, comparadores, codificadores, decodificadores, ULAs;
1.3.4 Simulação de circuitos e o projeto de testbenches;
1.3.5 Simulação de circuitos combinacionais com atrasos.
2.1 Introdução a circuitos digitais sequenciais;
2.1.1 Circuitos digitais: combinacionais versus sequenciais;
2.1.2 A realimentação de saídas e a memorização dinâmica de informações;
2.2 Modelagem de circuitos sequenciais síncronos;
2.2.1 Representações de circuitos sequenciais síncronos;
2.2.2 Modelagem sequencial em HDL: processos;
2.2.3 Elementos de memória unitários: latches, flip-flops, registradores;
2.2.4 Outros elementos de memória: contadores, temporizadores, e registradores deslocamento;
2.2.5 Elementos de memória bidimensionais: bancos de registradores e memórias (RAM, ROM, etc.)
2.2.6 Máquinas de estado finitas: Moore e Mealy;
2.3 Modelagem de sistemas digitais completos: trabalho integrador.