mirror of
https://github.com/MPSU/APS.git
synced 2025-09-16 09:40:10 +00:00
Для реализации логики приоритетного мультиплексора предлагалось использовать case (1'b1). В статье "SystemVerilog's priority & unique - A Solution to Verilog's 'full_case' & 'parallel_case' Evil Twins!" не рекомендуется подобная практика.
Лабораторная работа 11 "Интеграция подсистемы прерываний"
После реализации подсистемы прерываний, её необходимо интегрировать в процессорную систему. Для этого необходимо обновить модуль riscv_core
по приведенной ниже схеме:
Задание
Интегрировать модули csr_controller
и irq_controller
в модуль riscv_core
.
Порядок выполнения работы
- Интегрируйте модули
csr_controller
иirq_controller
в модульriscv_core
.- Обратите внимание, что что в модуле
riscv_core
появились новые входные и выходные сигналы:irq_req_i
иirq_ret_o
. Эти сигналы должны быть использованы при подключенииriscv_core
в модулеriscv_unit
.- На вход
irq_req_i
пока что необходимо подать32'd0
(в следующей лабораторной это будет изменено). - При подключении сигнала
irq_ret_o
можно ничего не указывать (до следующей лабораторной к нему ничего не будет подключено).
- На вход
- Большой мультиплексор на схеме, определяющий записываемое в
PC
значение является мультиплексором с приоритетами (в первую очередь проверяется сигналtrap
, затем, если он равен нулю, проверяется сигналmret
, и только если оба предыдущих равны нулю выдается значениеdefault
). Такой мультиплексор лучше описать с помощью цепочкиif-else-if
.
- Обратите внимание, что что в модуле
- После интеграции модулей, проверьте процессорную систему с помощью программы из ЛР10 с помощью предоставленного тестбенча.