Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Verilog

Módulo Contador Ring en Verilog: Diseño y Ejemplo de Testbench

Diseño

module ring_ctr #(parameter WIDTH=4) (
  input clk,
  input rstn,
  output reg [WIDTH-1:0] out
);
  always @ (posedge clk) begin
    if (!rstn) out <= 1;
    else begin
      out[WIDTH-1] <= out[0];
      for (int i = 0; i < WIDTH-1; i=i+1) begin
        out[i] <= out[i+1];
      end
    end
  end
endmodule

Testbench

module tb;
  parameter WIDTH = 4;
  reg clk;
  reg rstn;
  wire [WIDTH-1:0] out;
  ring_ctr u0 (.clk (clk), .rstn (rstn), .out (out));
  always #10 clk = ~clk;
  initial begin
    {clk, rstn} <= 0;
    $monitor ("T=%0t out=%b", $time, out);
    repeat (2) @(posedge clk);
    rstn <= 1;
    repeat (15) @(posedge clk);
    $finish;
  end
endmodule

Registro de simulación

ncsim> run
T=0 out=xxxx
T=10 out=0001
T=50 out=1000
T=70 out=0100
T=90 out=0010
T=110 out=0001
T=130 out=1000
T=150 out=0100
T=170 out=0010
T=190 out=0001
T=210 out=1000
T=230 out=0100
T=250 out=0010
T=270 out=0001
T=290 out=1000
T=310 out=0100
La simulación finalizó vía $finish(1) en el tiempo 330 NS + 0

Verilog

  1. Fundamentos de Verilog: Diseñando tu primera compuerta AND
  2. Dominar Verilog: Tutorial completo para diseño de circuitos digitales
  3. Dominar la concatenación en Verilog: Guía práctica
  4. Comprender las asignaciones en Verilog: tipos, sintaxis y mejores prácticas
  5. Bloqueante vs. No bloqueante en Verilog: Diferencias clave explicadas
  6. Dominar las funciones en Verilog para diseño RTL eficiente
  7. Comprender las Tasks en Verilog: Funciones vs Tasks, sintaxis y uso
  8. Generador de reloj en Verilog: Guía de diseño e implementación
  9. Dominar las funciones matemáticas en Verilog para diseño de hardware eficiente
  10. Diseño de Contador Mod-N en Verilog: Módulo Parametrizado y Testbench
  11. Módulo Contador Gray en Verilog – Generador de Código Gray de 4 Bits