Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Verilog

Verilog Priority Encoder: 4-Eingang 8-Bit Selektor

Design

Das Modul pr_en wirkt wie ein 4-zu-1-Multiplexer mit 8-Bit-Dateneingängen. Der 2-Bit-Selektor sel bestimmt, welcher Eingang (a, b, c oder d) auf den Ausgang out durchgereicht wird. Die Sensitivitätsliste enthält alle Eingänge, was eine kombinatorische Logik impliziert.

module pr_en (
    input  logic [7:0] a,
    input  logic [7:0] b,
    input  logic [7:0] c,
    input  logic [7:0] d,
    input  logic [1:0] sel,
    output logic [7:0] out
);

always_comb begin
    unique case (sel)
        2'b00: out = a;
        2'b01: out = b;
        2'b10: out = c;
        default: out = d;
    endcase
end

endmodule

Hardware-Schema

Verilog Priority Encoder: 4-Eingang 8-Bit Selektor

Testbench

Der Test legt zufällige 8-Bit-Werte auf die vier Eingänge an und schaltet den Selektor nacheinander durch alle vier Positionen.

module tb_4to1_mux;
    logic [7:0] a, b, c, d;
    logic [7:0] out;
    logic [1:0] sel;
    int i;

    pr_en u0 (
        .a   (a),
        .b   (b),
        .c   (c),
        .d   (d),
        .sel (sel),
        .out (out)
    );

    initial begin
        sel = 0;
        a = $urandom;
        b = $urandom;
        c = $urandom;
        d = $urandom;
        for (i = 1; i < 4; i++) begin
            #5 sel = i;
        end
        #5 $finish;
    end
endmodule

Verilog

  1. Verilog meistern: Komplettes Tutorial für digitales Schaltungsdesign
  2. Verilog Concatenation meistern: Praktischer Leitfaden
  3. Verilog Assignments verstehen: Typen, Syntax und Best Practices
  4. Verilog Blocking vs. Non-Blocking: Wichtige Unterschiede erklärt
  5. Verilog Functions meistern für effizientes RTL-Design
  6. Verilog Tasks verstehen: Functions vs. Tasks, Syntax und Verwendung
  7. Verilog Clock Generator: Design & Implementierungsleitfaden
  8. Verilog Math Functions meistern für effizientes Hardware-Design
  9. Verilog $timeformat meistern: Präzision und Anzeigesteuerung
  10. Verilog Timescales an jedem Scope verstehen und ausgeben