Como criar um pulso de atraso em Verilog

Escrito por mike wallace | Traduzido por carolina rico
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Como criar um pulso de atraso em Verilog
O Verilog permite que crie e simule circuitos digitais com um computador (Photos.com/Photos.com/Getty Images)

O Verilog, é uma linguagem de descrição de hardware usada para gerar circuitos digitais para chips programáveis, pode ser usado para escrever códigos que descrevem circuitos digitais, simular seu comportamento e programar hardwares. Um bom exemplo de um circuito Verilog simples é um que cria um pulso após um pequeno atraso. Você pode escrever um programa Verilog que cumpra isso com poucas linhas de código sem qualquer experiência prévia em programação.

Nível de dificuldade:
Moderado

Outras pessoas estão lendo

O que você precisa?

  • Verilog Integrated Development Environment (IDE), como um Altera Quartus II

Lista completaMinimizar

Instruções

  1. 1

    Abra o Verilog IDE e crie um novo projeto, clicando em "File" (arquivo), então selecione "New Project Wizard" (novo assistente de projeto). Uma janela de criação de projetos aparecerá. Selecione um nome e diretório para ele. Por exemplo, pode-se nomear o projeto como "atraso" e colocá-lo no diretório "C:\ Projetos Verilog".

  2. 2

    Pressione o botão "Next" (próximo) para mover pelo resto das páginas, deixando todas as configurações como padrões. Pressione o botão "Finish" (terminar) para criar o projeto.

  3. 3

    Selecione "File", então "New" (novo), para abrir uma janela de criação. Selecione Verilog HDL File" (arquivo Verilog HDL) e pressione o botão "OK" para adicionar um novo arquivo ao projeto. Um arquivo Verilog em branco aparecerá na janela principal de edição de texto.

  4. 4

    Defina um "módulo" que possua o mesmo nome do projeto. Esse irá abrigar todos os códigos para o pulso de atraso do programa. Ao definir um módulo, você pode também definir alguns parâmetros, como entradas e saídas. O módulo de atraso precisa de dois parâmetros: um sinal de relógio e uma saída para o pulso gerado. Escreva o seguinte para definir o módulo com tais parâmetros:

    module delay(clock, pulse);

  5. 5

    Defina dois sinais: um sinal de entrada de relógio e um pulso de saída. O sinal de relógio é usado para contar uma pequena sequência antes de enviar o pulso pela saída. Isso permite que ajuste o atraso baseado no número da transições que ocorrem no relógio. Escreva as seguintes definições de sinais:

    input clock; output pulse;

  6. 6

    Defina um registro que armazene os números atuais das transições que ocorrem no relógio. Como o registro é usado para contar o número de transições, um bom nome seria "contagem". Escreva o seguinte para definir e inicializar o registro:

    reg count; initial begin count = 0;

  7. 7

    Escreva a seguinte declaração para realizar uma sequência de ações com cada tique do sinal do relógio:

    always @(posedge clock)

  8. 8

    Incremente o registro "contagem" por um, aumentando cada transição do relógio:

    count <= count + 1;

  9. 9

    Teste para ver se o registro "contagem" é igual a 10 ou algum outro valor arbitrário. É assim que pode-se ajustar o pulso de atraso. Ele é apenas emitido após um número de transições do relógio. Se a velocidade for de 10 ciclos por segundo, então, o pulso será gerado após um atraso de um segundo. Você pode testar o registro de "contagem" usando uma declaração "if", como segue:

    if (count == 10)

  10. 10

    Coloque um pequeno recuo no sinal de saída "pulso", escrevendo:

    pulse <= 1’b1;

  11. 11

    Termine a declaração "if" com a seguinte afirmação:

    end

  12. 12

    Termine o módulo com a seguinte afirmação:

    endmodule

  13. 13

    Copile e teste seu circuito. Ele gera um pulso que dura por uma única transição no relógio. O pulso é apenas gerado após o atraso predeterminado, nesse caso, 10 transições do relógio. Você pode mudar esse valor para ajustar a geração do pulso de acordo com seu critério.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível