Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Verilog

Projeto e Implementação de Contador Ripple Assíncrono em Verilog

Um contador ripple é um contador assíncrono no qual todos os flip-flops, exceto o primeiro, são clockados pela saída do flip-flop anterior.

Projeto

module dff (
    input d,
    input clk,
    input rstn,
    output reg q,
    output qn
);
always @ (posedge clk or negedge rstn)
    if (!rstn) q <= 0;
    else q <= d;
assign qn = ~q;
endmodule

module ripple (
    input clk,
    input rstn,
    output [3:0] out
);
wire q0, qn0;
wire q1, qn1;
wire q2, qn2;
wire q3, qn3;

dff dff0 (
    .d(qn0),
    .clk(clk),
    .rstn(rstn),
    .q(q0),
    .qn(qn0)
);
dff dff1 (
    .d(qn1),
    .clk(q0),
    .rstn(rstn),
    .q(q1),
    .qn(qn1)
);
dff dff2 (
    .d(qn2),
    .clk(q1),
    .rstn(rstn),
    .q(q2),
    .qn(qn2)
);
dff dff3 (
    .d(qn3),
    .clk(q2),
    .rstn(rstn),
    .q(q3),
    .qn(qn3)
);
assign out = {qn3, qn2, qn1, qn0};
endmodule

Esquemático de Hardware

Testbench

module tb_ripple;
reg clk;
reg rstn;
wire [3:0] out;
ripple r0 (
    .clk(clk),
    .rstn(rstn),
    .out(out)
);
always #5 clk = ~clk;
initial begin
    rstn <= 0;
    clk <= 0;
    repeat (4) @ (posedge clk);
    rstn <= 1;
    repeat (25) @ (posedge clk);
    $finish;
end
endmodule

Verilog

  1. Domine o Verilog: Tutorial Completo para Projeto de Circuitos Digitais
  2. Dominando Concatenação Verilog: Guia Prático
  3. Entendendo Atribuições em Verilog: Tipos, Sintaxe e Boas Práticas
  4. Verilog Blocking vs Non-Blocking: Diferenças Essenciais Explicadas
  5. Dominando Funções em Verilog para Design RTL Eficiente
  6. Entendendo Tasks em Verilog: Funções vs Tasks, Sintaxe e Uso
  7. Gerador de Clock Verilog: Guia de Design e Implementação
  8. Dominando Funções Matemáticas do Verilog para Design de Hardware Eficiente
  9. Dominando $timeformat do Verilog: Precisão e Controle de Exibição
  10. Projeto de Contador Mod-N em Verilog: Módulo Parametrizado e Testbench