Сила сигнала

Сила сигнала используется для более точного моделирования электрического соединения проводов. В случае, если несколько проводов объединяются в один, то сила сигнала на выходе определяется на основе силы сигналов на объединяющихся проводах, и результирующая сила сигнала будет определяться согласно приоритету, представленному ниже. Комбинация силы (highz1, highz0) недопустима.

Сила
Определение
Ключевое слово
Является значением по умолчанию для

7

Supply drive

supply0, supply1

Проводов, соединённых с заземлением и питанием соответственно

6

Strong drive

strong0, strong1

Всех остальных сигналов

5

Pull drive

pull0, pull1

Подтягивающих резисторов

4

Large capacitive

large

3

Weak drive

weak0, weak1

2

Medium capacitive

medium

1

Small capacitive

small

0

High impedance

highz0, highz1

Представления высокоимпедансного состояния

Пример

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

module strength_example2(output out, input i1, i2); 
  assign(supply1, pull0) out = (i1 | i2);
  assign(strong1, supply0) out = i1 & i2;  
endmodule

module strength_tb;
  reg i1, i2;
  wire out;
  
  strength_example1 st(out, i1, i2);
  //strength_example2 st(out, i1, i2);
  
  initial begin
    $monitor("%0t: i1 = %b, i2 = %b -> out = %b", $time, i1, i2, out);
       i1 = 0; i2 = 0;
    #1 i1 = 0; i2 = 1;
    #1 i1 = 1; i2 = 0;
    #1 i1 = 1; i2 = 1;
  end
endmodule

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

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

Last updated