mirror of
https://github.com/MPSU/APS.git
synced 2025-09-15 17:20:10 +00:00
Обновление указания по использованию присваиваний
Ранее давалось более простое правило: "Используй неблокирующее присваивание во всех блоках always", которое конфликтует с правилами, описанными в документе по присваиваниям. Правила были обновлены, таким образом, чтобы сохранить простоту и устранить конфликт.
This commit is contained in:
@@ -71,7 +71,10 @@ assign Y = S==1 ? D1 : D0;
|
||||
|
||||
Мультиплексор можно описать в любом из этих блоков, разница будет лишь в том, к чему именно будет подключен выход мультиплексора: к проводу, регистру, или защелке.
|
||||
|
||||
При присваивании внутри блоков `always` используйте специальный оператор **неблокирующего присваивания** `<=`. Бывает еще оператор **блокирующего присваивания** `=`, объяснение различий в этих операторах требует отдельного документа, поэтому на текущий момент, во избежание проблем в будущем просто запомните: **внутри любого блока always необходимо использовать только оператор неблокирующего присваивания <=**. Подробно о различиях между блокирующими и неблокирующими присваиваниями рассказано в [этом документе](Assignments.md).
|
||||
При присваивании внутри блоков `always` используйте специальный оператор **неблокирующего присваивания** `<=`. Бывает еще оператор **блокирующего присваивания** `=`. Подробно о различиях этих операторов рассказано в [этом документе](Assignments.md). До его прочтения запомните:
|
||||
|
||||
- внутри блока `always_ff` необходимо использовать оператор неблокирующего присваивания (`<=`);
|
||||
- внутри блока `always_comb` необходимо использовать оператор блокирующего присваивания (`=`).
|
||||
|
||||
```SystemVerilog
|
||||
logic Y;
|
||||
|
Reference in New Issue
Block a user