Провода (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