Hardware Description Language Aula 9 –Verilog HDL Prof. Afonso Ferreira Miguel, MSc Estrutura Geral Estrutura Geral Sinais x Operações em Verilog Sinais em Verilog Em Verilog, sinais (nós) podem ser de 3 tipos básicos: • wire ou tri; • wand ou triand; • wor ou trior. Tipos de informações em Verilog Sinais simples (wire) Vetores unidirecionais Vetores bidirecionais Especificação de vetores Definição dos sinais • input • output • inout Definição dos sinais Saídas registradas Saídas registradas Primitivas predefinidas Primitivas predefinidas Primitiva Label Atribuições contínuas Funções Lógicas Básicas Exemplos de atribuições: Não esquecer do assign • Exercício 1 Implementar e simular um Semi-Somador e um Somador-Completo em Verilog-HDL. – Compilar e simular os circuitos finais Lembrando... •Semi somador: S = A XOR B C = A AND B •Somador Completo S = (A XOR B) XOR Cin Cout = ((A XOR B) AND Cin) OR (A AND B) Instanciando Módulos Conectando porta pela ordem do pino Para instanciar um módulo, basta informar: nome_modulo nome_instancia (parâm.) Obs. Importante: O módulo instanciado e o principal não precisam estar no mesmo arquivo. Instanciando Módulos - Exemplo Conectando porta pela ordem do pino Arquivo teste_xor.v Mesma ordem dos parâmetros Arquivo teste2.v Instanciando Módulos Conectando porta pelo nome Neste caso, a ordem não importa Nome do pino no módulo principal Nome do pino no módulo instanciado Instanciando Módulos Saídas não utilizadas Para instâncias conectadas pela ordem, apenas Para omitirinstâncias o conectadas parâmetro, pelo nome, apenas deixando a vírgula omitir o parâmetro Constantes inteiras Inteiros simples Inteiros com tamanho predefinido Inteiros negativos Alta impedância Seleção de bits em um vetor Concatenação Atribuição condicional Abordagem Comportamental Abordagem Comportamental Abordagem Comportamental Flip-flop D Importante: Toda variável que recebe atribuição em um always deve ser registrada Ocorrendo uma rampa positiva em clock, a saída (q) recebe a entrada (d) Abordagem Comportamental Flip-flop D com clear negado Importante: Utilizar parênteses Abordagem Comportamental Latch com clear negado Abordagem Comportamental Contador de 8 bits Abordagem Comportamental Contador de 8 bits com clear Abordagem Comportamental Contador de 8 bits com clear com load Abordagem Comportamental Utilizando o comando FOR • Exercício 2 – Implementar em AHDL um contador MOD5 decrescente que realize a contagem (6, 5, 4, 3, 2, 6, 5, ...) e tenha um botão de reset (que inicializa com 6).