Circuitos lógicos digitais
Parta dos sinais digitais e de portas básicas como AND, OR e XOR para projetar circuitos combinacionais, latches, flip-flops, contadores e máquinas de estados. Relacione tabelas-verdade, equações, circuitos e formas de onda, e confira-os nas práticas de RTL. Os aprofundamentos opcionais chegam a caminhos de dados e interfaces.
O que você vai aprender
- Distinguir os valores lógicos das tensões e explicar tabelas-verdade, símbolos e circuitos equivalentes de oito tipos de portas.
- Projetar circuitos combinacionais a partir de uma especificação usando SOP, POS e mapas de Karnaugh, e verificar todas as entradas.
- Definir condições de entrada e casos de fronteira de codificadores, decodificadores, MUX, DEMUX, somadores e comparadores.
- Explicar a diferença entre latches e flip-flops e projetar regras de atualização de reset, enable e clock.
- Implementar contadores, deslocamentos e máquinas de estados em RTL, e analisar temporização, entradas assíncronas e eliminação de rebotes.
- Verificar o projeto com um modelo de referência independente e concluir um detector do padrão 101 com sobreposição.
- Ampliar o projeto para ALU, memórias, FIFO, pipelines e interfaces nas unidades opcionais.
Antes de começar
Os exercícios no navegador usam modelos educacionais; não compilam nem executam HDL. Para executar o código separadamente, siga o guia do Digital Design Studio para seu sistema operacional e entre na conta quando a operação exigir.
Instalação e primeiro uso ↗ · Downloads ↗Programa
- Sinais digitais e representação de números
- Sinais digitais: quando uma tensão representa 0 ou 1Conceito
Distinga valores lógicos de tensões e calcule limites de entrada, margens de ruído e atrasos de propagação.
- Sistemas numéricos e representação de largura fixaConceito
Além de converter bases, calcule intervalos, larguras necessárias e erros de truncamento.
- Portas básicas e tabelas-verdade
- Portas básicas: AND, OR, NOT e BUFFERConceito
Relacione símbolos e tabelas-verdade e combine várias portas para expressar condições.
- NAND, NOR e símbolos de inversãoConceito
Identifique o alcance da negação e relacione símbolos e equações equivalentes por De Morgan.
- XOR e XNOR: igualdade, diferença e paridadeConceito
Distinga a XOR de duas entradas da paridade de várias entradas e explique os limites da detecção de erros.
- Portas universais: construa circuitos apenas com NANDConceito
Demonstre por construção a completude funcional de NAND e NOR e verifique os sinais intermediários de uma XOR.
- Das expressões lógicas ao projeto de circuitos
- Álgebra booleana, transformações equivalentes e custo de implementaçãoConceito
Transforme circuitos por De Morgan e fatoração e distinga equivalência lógica de temporização.
- Da tabela-verdade à expressão: mintermos, maxtermos, SOP e POSConceito
Obtenha a mesma função a partir das linhas com 1 e com 0 e relacione suas notações ao mapa de Karnaugh.
- Mapas de Karnaugh e condições de don’t-careConceito
Simplifique expressões com a adjacência do código Gray e explicite hipóteses sobre entradas não usadas.
- Prática de projeto: da especificação à maioria de três entradasPrática
Converta uma especificação verbal em uma tabela completa e conecte minimização, implementação e teste exaustivo.
- Circuitos de endereçamento e seleção
- Decodificadores, seleção one-hot e entradas válidasConceito
Converta endereços binários em linhas de seleção e defina enable, intervalos e invariantes.
- Codificadores e prioridade: escolha uma entre várias solicitaçõesConceito
Distinga a hipótese one-hot de um codificador simples das saídas valid e de seleção de um codificador de prioridade.
- DEMUX e decodificador: envie dados pelo caminho selecionadoConceito
Compare direção e função de MUX, DEMUX e decodificador e verifique one-hot e one-hot-or-zero.
- Sinais e portas: contratos de largura, direção e tempoConceito
Leia interfaces e separe os critérios de verificação de saídas combinacionais e de estado.
- Da tabela-verdade ao MUX e à expansão de ShannonConceito
Derive a seleção por equações e decomponha qualquer função lógica com um MUX.
- Circuitos aritméticos e largura de bits
- Somadores e propagação do carryConceito
Derive as equações do somador completo e analise função, largura e atraso do carry em cascata.
- Complemento de dois, extensão de sinal e overflowConceito
Distinga a interpretação signed e as condições de overflow com equações e contraexemplos.
- Comparadores e especificação dos limitesConceito
Distinga comparações unsigned e signed dos mesmos bits e verifique condições de fronteira.
- Latches, flip-flops e armazenamento de estado
- O início da memória: realimentação e latches SR e DConceito
Compreenda os dois estados estáveis do acoplamento cruzado, a entrada proibida de SR e a transparência do latch D.
- Flip-flop D: do nível à bordaConceito
Compare os instantes de atualização de latches e flip-flops e relacione registrador, setup e hold.
- Flip-flops, enable e prioridade de controleConceito
Defina manutenção, carga e reset como próximo estado e evite criar gating de clock involuntário.
- Transições síncronas e função do clockConceito
Interprete o sistema síncrono como registradores que leem o mesmo estado anterior.
- Implementação e verificação RTL de um MUX
- Seleção combinacional e latência de uma saída registradaConceito
Analise como interface e latência mudam ao armazenar a saída de um MUX.
- RTL combinacional e atribuições completasConceito
Expresse a mesma função com o operador condicional e always_comb e encontre omissões que inferem latches.
- Prática: teste exaustivo do MUX e análise da saída registradaPrática
Aplique as mesmas entradas aos caminhos combinacional e registrado e verifique pela tabela-verdade e pelos instantes de captura.
- Instantes de amostragem e causalidade nas formas de ondaConceito
Separe estabilização combinacional, captura de clock e ordem de eventos ao ler formas de onda.
- Verificação do MUX: teste exaustivo e propriedadesConceito
Confira separadamente a cobertura combinacional e o armazenamento e reduza os contraexemplos.
- Verificação de projeto: equivalência de seleção e instante de observaçãoVerificação
Distinga verificações resolvidas por tabelas-verdade daquelas que exigem observar o clock.
- Contadores e projeto de estados discretos
- Quantidade de estados, largura do contador e códigos não usadosConceito
Calcule bits de armazenamento a partir do intervalo e defina a recuperação de estados inválidos.
- Próximo estado do contador e prioridade do resetConceito
Integre incremento, manutenção, reset e retorno modular em uma especificação e calcule cada borda.
- Atribuições não bloqueantes e atualização simultâneaConceito
Separe valores anteriores e seguintes para interpretar corretamente contadores e pipelines RTL.
- Prática: verifique reset, retorno modular e invariantes do contadorPrática
Compare cada borda com uma referência e separe os efeitos de inicialização, reset e largura.
- Contadores modulares, saturação e pulsos de términoConceito
Projete a política do máximo e o ciclo exato do sinal de fim de contagem.
- Depuração do contador e contraexemplos mínimosConceito
Projete testes curtos que distingam erros de reset, enable e retorno na fronteira.
- Verificação de projeto: limites de largura, prioridade e retornoVerificação
Resolva fronteiras e controles simultâneos a partir de uma especificação de transição.
- Registradores de deslocamento e fluxo de dados
- Índices de vetor, ordem de bits e sinalConceito
Distinga índices, ordem de transmissão serial e interpretação aritmética ao ler caminhos de dados.
- Entrada serial e limites de quadroConceito
Defina ordem e bordas válidas e calcule a disposição dos bits numa conversão serial-paralela.
- Equações de estado do registrador de deslocamentoConceito
Expresse o movimento como transição vetorial e relacione comprimento de armazenamento com latência.
- Larguras de fatias, concatenação e repetição de bitsConceito
Calcule largura total e preservação do valor ao construir caminhos de dados.
- Prática: verifique o movimento serial e a ordem dos bitsPrática
Use referências binárias e inteiras para verificar direção, descarte de bits e latência após reset.
- Distinga latência em ciclos e taxa de processamentoConceito
Fixe o ponto de observação de uma linha de N estágios e quantifique latência e taxa.
- Verificação do deslocamento e alinhamento entre dados e validConceito
Detecte defeitos ocultos por padrões simétricos e desalinhamentos de um ciclo em valid.
- Verificação de projeto: latência, alinhamento e preservação das entradasVerificação
Confira direção, quantidade de movimentos válidos e referência de observação.
- Temporização, entradas reais e projeto integrado
- Setup, hold e orçamento temporalConceito
Separe atrasos máximos e mínimos e calcule a condição de hold, independente da frequência.
- Hazards lógicos e limites da equivalênciaConceito
Analise como dois circuitos equivalentes em regime estável podem produzir transientes diferentes devido aos atrasos.
- Cruzamentos de domínios de clock e metaestabilidadeConceito
Compreenda o alcance do sincronizador de dois estágios e distinga níveis de um bit, pulsos curtos e transferências multibit.
- Botões reais: sincronização, debounce e um único eventoConceito
Distinga sincronização e rebote dos contatos e projete um filtro de amostras consecutivas.
- Máquinas de estados: separe estado, transição e saídaConceito
Construa uma FSM a partir da tabela e compare Moore, Mealy, estados ilegais e política de solicitações.
- Plano de verificação, cobertura e referência independenteConceito
Distinga testes aprovados do cumprimento dos requisitos e planeje fronteiras, cruzamentos de condições e contraexemplos mínimos.
- Projeto integrado: detector do padrão 101 com sobreposiçãoConceito
Aplique minimização de estados, entrada válida, saída registrada e referência independente em um projeto.
- Aprofundamento opcional · Caminhos de dados aritméticos
- ALU e flags zero, negative, carry e overflowConceito
Implemente ADD/SUB com um somador compartilhado e derive comparações distinguindo carry de overflow signed.
- Barrel shifter e estágios de MUXConceito
Implemente deslocamentos variáveis com estágios de 1,2,4,8 posições e controle direção, sinal e quantidades fora do intervalo.
- Ponto fixo, arredondamento e saturaçãoConceito
Defina intervalos com W,F e implemente arredondamento para o par com guard/sticky e saturação posterior.
- Multiplicador unsigned multiciclo por deslocamento e somaConceito
Distribua a acumulação de produtos parciais em W ciclos e verifique aceitação, conclusão, última soma, largura e invariantes.
- Aprofundamento opcional · Memórias e FIFO
- Memória síncrona e contrato de colisões entre leitura e escritaConceito
Distinga resposta registrada, read-first, write-first e no-change, e separe valid da inicialização de endereços.
- Banco de registradores de duas leituras e uma escrita com bypassConceito
Implemente leituras independentes e escrita síncrona e confira bypass por endereço, inicialização e valid.
- Ponteiros e políticas de fronteira de uma FIFO de clock únicoConceito
Implemente os ponteiros e a ocupação de uma FIFO de profundidade 4 e defina quando push e pop simultâneos são aceitos com a fila vazia ou cheia.
- Plano de verificação de FIFO e memória com scoreboard independenteConceito
Use uma fila de referência independente dos ponteiros e planeje a verificação de fronteiras, reset, valid e leituras de posições não inicializadas.
- Aprofundamento opcional · Pipelines e interfaces
- Ready/valid e um buffer elástico de uma posiçãoConceito
Projete a condição de transferência e a entrada e saída simultâneas para que um caminho de dados que pode parar não perca nem duplique elementos.
- Pipeline de multiplicação e soma e alinhamento de dadosConceito
Divida o cálculo por registradores e mantenha alinhados os dados, valid e os operandos auxiliares de cada transação.
- Pipeline com parada e backpressureConceito
Calcule ready por estágio para evitar perda, duplicação e recálculo durante paradas e movimentações simultâneas.
- Interface de registradores e instante dos efeitos de uma operaçãoConceito
Especifique endereços, escritas por byte e paradas de resposta para que cada solicitação produza exatamente uma alteração de estado.
- Prática integradora: transmissor UART e temporização de quadrosConceito
Combine um contador divisor, um registrador de deslocamento e controle de fluxo para gerar quadros 8N1 e verificar os limites entre bits.