ЛР12. Обновление методички

This commit is contained in:
Andrei Solodovnikov
2023-09-22 11:02:58 +03:00
parent 62e8e1a93e
commit e16cb09099
13 changed files with 152 additions and 115 deletions

View File

@@ -18,7 +18,9 @@
## Порядок выполнения работы
1. Интегрируйте модули `csr_controller` и `irq_controller` в модуль `riscv_core`.
1. Обратите внимание, что что в модуле `riscv_core` появились новые входные и выходные сигналы. Эти сигналы должны быть подключены и в модуле `riscv_unit` (просто в виде проводов, которые с другой стороны не подключены ни к чему, в следующей лабораторной мы найдем им применение).
1. Обратите внимание, что что в модуле `riscv_core` появились новые входные и выходные сигналы: `irq_req_i` и `irq_ret_o`. Эти сигналы должны быть использованы при подключении `riscv_core` в модуле `riscv_unit`.
1. На вход `irq_req_i` пока что необходимо подать `32'd0` (в следующей лабораторной это будет изменено).
2. При подключении сигнала `irq_ret_o` можно ничего не указывать (до следующей лабораторной к нему ничего не будет подключено).
2. Большой мультиплексор на схеме, определяющий записываемое в `PC` значение является мультиплексором с приоритетами (в первую очередь проверяется сигнал `trap`, затем, если он равен нулю, проверяется сигнал `mret`, и только если оба предыдущих равны нулю выдается значение `default`). Такой мультиплексор можно описать как на цепочке выражений `if-else-if`, так и с помощью выражения `case` в качестве управляющего сигнала которого подана единица, а выбор осуществляется не по значениям, а по сигналам:
```SystemVerilog