From 3b3c6b184e1333bddf1a8ae0e89446fe490739a8 Mon Sep 17 00:00:00 2001 From: Andrei Solodovnikov Date: Sat, 3 Feb 2024 00:34:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=81=D1=81=D1=8B=D0=BB=D0=BE=D0=BA=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BF=D1=80=D0=B8=D1=81=D0=B2=D0=B0=D0=B8=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/SUMMARY.md | 1 + Basic Verilog structures/Assignments.md | 2 +- Basic Verilog structures/Multiplexors.md | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) 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;