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 Prioriteitsencoder: Betrouwbare 4-Input 8-bit Selector

Ontwerp

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

Hardware Schema

Schema van de prioriteitsencoder/multiplexer

Testbench

module tb_4to1_mux;
  reg [7:0] a, b, c, 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. 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 Timescales begrijpen en printen in elke Scope
  11. Verilog File I/O onder de knie: Openen, Lezen, Schrijven en Sluiten