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

Verilog Esencial: Resumen conciso

Todo código conductual va dentro de module y endmodule. Cualquier diseño digital que crees, irá dentro de un bloque module. Puede tener o no puertos definidos - permiten señales entrar como input o salir como output.

Módulo

El módulo vacío en el ejemplo se llama testbench. Puedes nombrarlo como quieras (alfanumérico con _).

Verilog Esencial: Resumen conciso

module testbench;
endmodule

Veamos otro módulo con señales d, clk, rstb como entradas y q como salida.

Verilog Esencial: Resumen conciso

module dff (input d, clk, rstb, output q);
endmodule

Tipos de Datos

Hay principalmente dos tipos en Verilog:

Un reg retiene valores como variable, mientras wire es análogo a cable eléctrico que debe impulsarse continuamente. Típicamente wire conecta entre módulos y otras señales.

module testbench;
reg d;
reg rst_b;
reg clk;
wire q;
endmodule

Asignaciones

Verilog tiene tres bloques básicos:

always @ (condición)siempre ejecutado cuando condición se cumple
initialejecutado una vez al iniciar simulación
assign [LHS] = [RHS]LHS actualizado cuando RHS cambia

Reglas a recordar:

module testbench;
reg d;
reg rst_b;
reg clk;
wire q;
initial begin
    d = 0;
    rst_b = 0;
    clk = 0;
    #100 $finish;
end
always begin
    #10 clk = ~clk;
end
endmodule

Observa del ejemplo:

Verilog

  1. Dominar Verilog: Tutorial completo para diseño de circuitos digitales
  2. Dominar la concatenación en Verilog: Guía práctica
  3. Comprender las asignaciones en Verilog: tipos, sintaxis y mejores prácticas
  4. Bloqueante vs. No bloqueante en Verilog: Diferencias clave explicadas
  5. Dominar las funciones en Verilog para diseño RTL eficiente
  6. Comprender las Tasks en Verilog: Funciones vs Tasks, sintaxis y uso
  7. Dominar el alcance de referencia jerárquica en Verilog: Evitar colisiones de nombres en módulos y bloques
  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. Dominar $timeformat en Verilog: Control de precisión y visualización
  11. Comprender e imprimir timescales de Verilog en cualquier alcance