Hardware Description Language Aula 9 –Verilog HDL Prof. Afonso Ferreira Miguel, MSc
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 Vetores unidirecionais Vetores bidirecionais Sinais simples (wire)
Especificação de vetores
Definição dos sinais input output inout
Definição dos sinais
Saídas registradas
Primitivas predefinidas
Label Primitiva
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)
Criando primitivas Combinacional Seqüencial
Criando primitivas - Combinacionais
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 Arquivo teste2.v Mesma ordem dos parâmetros
Instanciando Módulos Conectando porta pelo nome Nome do pino no módulo instanciado Nome do pino no módulo principal Neste caso, a ordem não importa
Instanciando Módulos Saídas não utilizadas Para instâncias conectadas pela ordem, apenas omitir o parâmetro, deixando a vírgula Para instâncias conectadas pelo nome, apenas 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
Flip-flop D Ocorrendo uma rampa positiva em clock, a saída (q) recebe a entrada (d) Importante: Toda variável que recebe atribuição em um always deve ser registrada
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).