diff --git a/.github/SUMMARY.md b/.github/SUMMARY.md index 30c44a9..cd24fb0 100644 --- a/.github/SUMMARY.md +++ b/.github/SUMMARY.md @@ -41,6 +41,7 @@ - [Мультиплексоры](Basic%20Verilog%20structures/Multiplexors.md) - [Регистры](Basic%20Verilog%20structures/Registers.md) - [Конкатенация](Basic%20Verilog%20structures/Concatenation.md) +- [О различиях между блокирующими и неблокирующими присваиваниями](Basic%20Verilog%20structures/Assignments.md) - [Контроллеры](Basic%20Verilog%20structures/Controllers.md) - [Тестовое окружение](Basic%20Verilog%20structures/Testbench.md) diff --git a/Basic Verilog structures/Assignments.md b/Basic Verilog structures/Assignments.md index dd85aef..d2c8a45 100644 --- a/Basic Verilog structures/Assignments.md +++ b/Basic Verilog structures/Assignments.md @@ -1,4 +1,4 @@ -# Различие блокирующего и неблокирующего присваивания +# О различиях между блокирующими и неблокирующими присваиваниями Вскоре после начала курса студенты сталкиваются с понятиями "блокирующего" и "неблокирующего" присваивания. Часто объяснения преподавателей по этой теме сопровождаются словами "последовательный" и "параллельный", а также предлагается _просто запомнить_ [[1, стр. 2]](http://www.sunburst-design.com/papers/CummingsSNUG2000SJ_NBA.pdf): diff --git a/Basic Verilog structures/Multiplexors.md b/Basic Verilog structures/Multiplexors.md index 7da124f..3719c16 100644 --- a/Basic Verilog structures/Multiplexors.md +++ b/Basic Verilog structures/Multiplexors.md @@ -71,7 +71,7 @@ assign Y = S==1 ? D1 : D0; Мультиплексор можно описать в любом из этих блоков, разница будет лишь в том, к чему именно будет подключен выход мультиплексора: к проводу, регистру, или защелке. -При присваивании внутри блоков `always` используйте специальный оператор **неблокирующего присваивания** `<=`. Бывает еще оператор **блокирующего присваивания** `=`, объяснение различий в этих операторах требует отдельного документа, поэтому на текущий момент, во избежание проблем в будущем просто запомните: **внутри любого блока always необходимо использовать только оператор неблокирующего присваивания <=**. +При присваивании внутри блоков `always` используйте специальный оператор **неблокирующего присваивания** `<=`. Бывает еще оператор **блокирующего присваивания** `=`, объяснение различий в этих операторах требует отдельного документа, поэтому на текущий момент, во избежание проблем в будущем просто запомните: **внутри любого блока always необходимо использовать только оператор неблокирующего присваивания <=**. Подробно о различиях между блокирующими и неблокирующими присваиваниями рассказано в [этом документе](Assignments.md). ```SystemVerilog logic Y;