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

Codificador de Prioridad en Verilog: Selector Confiable de 4 Entradas a 8 Bits

Diseño

module pr_en (
  input [7:0] a,
  input [7:0] b,
  input [7:0] c,
  input [7:0] d,
  input [1:0] sel,
  output reg [7:0] out
);
  always @ (a or b or c or d or sel) begin
    if (sel == 2'b00) out <= a;
    else if (sel == 2'b01) out <= b;
    else if (sel == 2'b10) out <= c;
    else out <= d;
  end
endmodule

Esquema Hardware

Testbench

module tb_4to1_mux;
  reg [7:0] a;
  reg [7:0] b;
  reg [7:0] c;
  reg [7:0] d;
  wire [7:0] out;
  reg [1:0] sel;
  integer i;
  pr_en pr_en0 ( .a (a), .b (b), .c (c), .d (d), .sel (sel), .out (out));
  initial begin
    sel <= 0;
    a <= $random; b <= $random; c <= $random; d <= $random;
    for (i = 1; i < 4; i=i+1) begin #5 sel <= i; end
    #5 $finish;
  end
endmodule

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. Generador de reloj en Verilog: Guía de diseño e implementación
  8. Dominar las funciones matemáticas en Verilog para diseño de hardware eficiente
  9. Dominar $timeformat en Verilog: Control de precisión y visualización
  10. Comprender e imprimir timescales de Verilog en cualquier alcance
  11. Dominando la E/S de Archivos en Verilog: Abrir, Leer, Escribir y Cerrar