Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Verilog

Verilog Asynchrone Ripple Teller: Ontwerp & Implementatie

Een ripple teller is een asynchrone teller waarbij alle flip-flops behalve de eerste geclockt worden door de output van de voorgaande flip-flop.

Ripple teller blokdiagram

Ontwerp

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, q1, qn1, q2, qn2, 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

Hardware Schema

Gesynthetiseerd schema van de ripple teller

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. Verilog beheersen: Complete tutorial voor digitale schakelingontwerp
  2. Verilog concatenatie beheersen: Een praktische gids
  3. Verilog-toewijzingen begrijpen: types, syntax en best practices
  4. Verilog Blocking vs. Non-Blocking: belangrijkste verschillen uitgelegd
  5. Verilog-functies beheersen voor efficiënt RTL-ontwerp
  6. Verilog Tasks begrijpen: Functions vs Tasks, Syntax en Gebruik
  7. Verilog Clock Generator: Ontwerp & Implementatie Gids
  8. Verilog Math Functions beheersen voor efficiënt Hardware-ontwerp
  9. Verilog $timeformat beheersen: Precisie en Weergave-controle
  10. Verilog Mod-N Teller Ontwerp: Geparametriseerde Module & Testbench
  11. Verilog Gray-code Teller Module – 4-bit Gray Code Generator