diff --git a/Basic Verilog structures/Modules.md b/Basic Verilog structures/Modules.md index c04478e..e421ac0 100644 --- a/Basic Verilog structures/Modules.md +++ b/Basic Verilog structures/Modules.md @@ -83,6 +83,9 @@ module box( endmodule ``` +> [!IMPORTANT] +> Обратите внимание, что объявление сигнала типа `logic` нельзя объединять с непрерывным присваиванием этому сигналу. Иными словами, описанный выше сигнал `c` нельзя описать одной строчкой `logic c = a`. Данное выражение будет синтезировано, но оно означает лишь, что в момент создания сигнала `c`, ему будет присвоено значение сигнала `a`. Дальнейшие изменения в значении сигнала `a` никак не отразятся на значении сигнала `c` — именно для этого нужен оператор непрерывного присваивания `assign`. + Стоит, однако, заметить, что аналогия со спайкой проводов имеет свои недостатки: после неё некоторые студенты начинают думать, что расположение "спаиваемых" сигналов относительно знака равно не имеет значения, однако это не так. В непрерывном присваивании участвует две компоненты: выражение-приемник сигнала и выражение-источник сигнала. Обычно, выражением-приемником является провод (либо группа проводов). Выражение-источник сигнала может быть совершенно различным. В примере, приведенном выше, выражением-источником так же был провод, но вместо него мог использоваться и регистр, и выражение, построенное из цепочки арифметических или логических вентилей.