Изменение регистра в ссылках на заголовки (#151)

По умолчанию, якоря на параграфы страницы генерируются в VSCode в
нижнем регистре.
Гиперссылки работают нормально при просмотре страниц непосредственно
в репозитории github, но при просмотре в электронной книге mdbook, эти
гиперссылки не открываются. Для того чтобы они работали, необходимо
чтобы регистр якорей ссылки совпадал с регистром параграфов страницы.


---------

Co-authored-by: Andrei Solodovnikov <voultboy@yandex.ru>
This commit is contained in:
Rufubi
2025-11-02 19:33:22 +00:00
committed by GitHub
parent 71a9c0141b
commit a01f986d8e
41 changed files with 391 additions and 391 deletions

View File

@@ -1,10 +1,10 @@
# Список типичных ошибок в SystemVerilog
- [Список типичных ошибок в SystemVerilog](#список-типичных-ошибок-в-systemverilog)
- [Список типичных ошибок в SystemVerilog](#Список-типичных-ошибок-в-systemverilog)
- [имя сигнала is not a type](#имя-сигнала-is-not-a-type)
- [cannot find port on this module](#cannot-find-port-on-this-module)
- [Использование сигнала без его объявления (или до его объявления)](#использование-сигнала-без-его-объявления-или-до-его-объявления)
- [Объявление выхода модуля его входом](#объявление-выхода-модуля-его-входом)
- [Использование сигнала без его объявления (или до его объявления)](#Использование-сигнала-без-его-объявления-или-до-его-объявления)
- [Объявление выхода модуля его входом](#Объявление-выхода-модуля-его-входом)
- [](#)
## имя сигнала is not a type
@@ -101,4 +101,4 @@ INFO: [Synth 8-11241] undeclared symbol 'ab', assumed default net type 'wire'
Очень часто в попытке сэкономить себе немного времени студенты выполняют операцию копирования. В частности, копирования строк вида `input logic [7:0]` в процессе описания портов модуля. В случае, если по итогу подобного копирования, выход модуля будет объявлен как его вход (т.е. с помощью ключевого слова `input` вместо `output`).
##
##

View File

@@ -2,7 +2,7 @@
Для того, чтобы лучше понять, что от вас требуется в рамках лабораторной работы по периферийным устройствам, рассмотрим процесс разработки структурной схемы (не SystemVerilog-описания) для контроллера светодиодов.
В первую очередь, здесь будет продублирована выдержка из спецификации на этот контроллер (общая часть раздела "[Описание контроллеров периферийных устройств](../Labs/13.%20Peripheral%20units/README.md#описание-контроллеров-периферийных-устройств)", а также подраздел "[Светодиоды](../Labs/13.%20Peripheral%20units/README.md#светодиоды)"):
В первую очередь, здесь будет продублирована выдержка из спецификации на этот контроллер (общая часть раздела "[Описание контроллеров периферийных устройств](../Labs/13.%20Peripheral%20units/README.md#описание-контроллеров-периферийных-устройств)", а также подраздел "[Светодиоды](../Labs/13.%20Peripheral%20units/#Светодиоды)"):
## Спецификация контроллера

View File

@@ -207,13 +207,13 @@ assign one_bit_result = bus1024[select];
1. Мультиплексор — это **комбинационный** блок, подающий на выход один из нескольких входных сигналов.
2. Мультиплексор можно описать множеством способов, среди них:
1. использование [тернарного условного оператора](#тернарный-условный-оператор);
2. использование конструкции [`if-else`](#блок-if-else) внутри блока [`always`](#блок-always);
3. использование конструкции [`case`](#case-блок) внутри блока [`always`](#блок-always);
4. использование [оператора '[]'](#оператор-адресации).
1. использование [тернарного условного оператора](#Тернарный-условный-оператор);
2. использование конструкции [`if-else`](#Блок-if-else) внутри блока [`always`](#Блок-always);
3. использование конструкции [`case`](#case-блок) внутри блока [`always`](#Блок-always);
4. использование [оператора '[]'](#Оператор-адресации).
3. Во избежание появления [защелок](Latches.md) при описании мультиплексора, необходимо убедиться что у блоков `if` есть соответствующие им блоки `else`, а в блоке `case` описаны все комбинации управляющего сигнала (при необходимости, множество оставшихся комбинаций можно покрыть с помощью комбинации `default`). Появление непреднамеренной защелки в дизайне ведет к ухудшению временных характеристик, избыточному использованию ресурсов, а также непредсказуемому поведению схемы из-за возможного удержания сигнала.
4. Важно отметить, что блоки `if-else` и `case` могут использоваться не только для описания мультиплексоров.
5. Конструкции `if-else` и `case` в рамках данных лабораторных работ можно описывать только внутри блока [`always`](#блок-always). При работе с этим блоком необходимо помнить следующие особенности:
5. Конструкции `if-else` и `case` в рамках данных лабораторных работ можно описывать только внутри блока [`always`](#Блок-always). При работе с этим блоком необходимо помнить следующие особенности:
1. Существует несколько типов блока `always`: `always_comb`, `always_ff`, `always_latch`, определяющих то, к чему будет подключена описанная в этом блоке логика: проводу, регистру или защелке соответственно. В данных лабораторных работах вам нужно будет пользоваться блоками `always_ff` и `always_comb`, причем:
1. внутри блока `always_ff` необходимо использовать оператор неблокирующего присваивания (`<=`);
2. внутри блока `always_comb` необходимо использовать оператор блокирующего присваивания (`=`).