Обновление пакетов

- parameter заменены на localparam, чтоб Vivado не кидал варнинги;
- добавлены недостающие пакеты и указания в методичках.
This commit is contained in:
Andrei Solodovnikov
2023-10-05 10:56:18 +03:00
committed by Andrei Solodovnikov
parent 6ea395c761
commit 58346759f9
5 changed files with 82 additions and 47 deletions

View File

@@ -273,7 +273,7 @@ endmodule
1. В `Design Sources` проекта с предыдущих лаб, создайте `SystemVerilog`-файл `decoder_riscv.sv`.
2. Опишите в нем модуль основного дешифратора с таким же именем и портами, как указано в [задании](#задание).
1. Для удобства дальнейшего описания модуля, рекомендуется сперва создать сигналы `opcode`, `func3`, `func7` и присвоить им соответствующие биты входного сигнала инструкции.
2. При описании модуля вы можете воспользоваться параметрами, объявленными в файле **пакете** `riscv_pkg`, описанном в файле [riscv_pkg.sv](riscv_pkg.sv).
2. При описании модуля вы можете воспользоваться параметрами, объявленными **пакетах** `riscv_pkg`, `csr_pkg`, описанных в файлах [riscv_pkg.sv](riscv_pkg.sv) и [csr_pkg.sv](csr_pkg.sv) соответственно.
3. Модуль может быть описан множеством способов: каждый выходной сигнал может быть описан через собственную комбинационную логику в отдельном блоке `case`, однако проще всего будет описать все сигналы через вложенные `case` внутри одного блока `always_comb`.
4. Внутри блока `always_comb` до начала блока `case` можно указать базовые значения для всех выходных сигналов. Это не то же самое, что вариант `default` в блоке `case`. Здесь вы можете описать состояния, которые будут использованы чаще всего, и в этом случае, присваивание сигналу будет выполняться только в том месте, где появится инструкция, требующая значение этого сигнала, отличное от базового.
5. Далее вы можете описать базовый блок `case`, где будет определен тип операции по ее коду.