Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Verilog

Приоритетный энкодер на Verilog: 4 входа, 8-битный селектор

Проект

module pr_en (
  input  [7:0] a, b, c, 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

Аппаратная схема

Тестбенч

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: полное руководство по проектированию цифровых схем
  2. Освоение конкатенации в Verilog: практическое руководство
  3. Понимание назначений в Verilog: типы, синтаксис и лучшие практики
  4. Блокирующие и неблокирующие назначения в Verilog: ключевые различия
  5. Мастерство функций в Verilog для эффективного RTL дизайна
  6. Понимание задач (Tasks) в Verilog: отличия от функций, синтаксис и применение
  7. Генератор тактового сигнала в Verilog: проектирование и реализация
  8. Мастерство математических функций Verilog для эффективного аппаратного дизайна
  9. Мастерство $timeformat в Verilog: точность и контроль отображения времени
  10. Понимание и печать timescale в Verilog в любой области видимости