Провода (wire)

Провода соединяют вместе структурные компоненты модулей. По умолчанию имеют разрядность 1. Наиболее часто используемые провода:

wire

wand

wor

Если провод имеет несколько источников сигнала (например, выходы двух элементов подключены к одному проводу), то значение результирующего сигнала определяется согласно силе сигнала для wire или указанной логической операции для wand и wor.

Синтаксис

wire errl, err2;               // Два обычный провода
wand еггЗ, err4;               // Два провода с «монтажным» И
wire [7:0] busl, bus2;         // Две шины (пучок проводов) размером 8 (8бит)
wire vectored[0:7] bus3, bus4; // Две шины (пучок проводов) размером 8 (8бит)
wire (highz1, strong0) [0:7] opbus; // Шина с открытым коллектором

По умолчанию на выходе логических элементов и открытых транзисторов, подключенных к питанию или сильному сигналу, будет сильный сигнал.

Пример

module st_(output wire out, input wire i1, i2); 
  or (supply1, strong0) o1(out, i1, i2);  
  and (strong1, supply0) a1(out, i1, i2); 
endmodule

module wire_tb;
  reg i1, i2;
  wire out;  
  st_ st(out, i1, i2);
  
  initial begin
    $monitor("Time [%0t]: i1 = %b, i2 = %b -> out = %b", $time, i1, i2, out);
       i1 = 0; i2 = 0;
    #1 i1 = 0; i2 = 1;
  end
endmodule

Результат исполнения

Time [0]: i1 = 0, i2 = 0 -> out = 0
Time [1]: i1 = 0, i2 = 1 -> out = x

Last updated