Files
APS/Labs/11. Interrupt integration/README.md

2.7 KiB
Raw Blame History

Лабораторная работа 11 "Интеграция подсистемы прерываний"

После реализации подсистемы прерываний, её необходимо интегрировать в процессорную систему. Для этого необходимо обновить модуль riscv_core по приведенной ниже схеме:

../../.pic/Labs/lab_08_lsu/fig_01.drawio.png

Схема выделения новых частей относительно старой версии модуля

../../.pic/Labs/lab_11_irq_integration/fig_01.drawio.png

Задание

Интегрировать модули csr_controller и irq_controller в модуль riscv_core.

Порядок выполнения работы

  1. Интегрируйте модули csr_controller и irq_controller в модуль riscv_core.

    1. Обратите внимание, что что в модуле riscv_core появились новые входные и выходные сигналы. Эти сигналы должны быть подключены и в модуле riscv_unit (просто в виде проводов, которые с другой стороны не подключены ни к чему, в следующей лабораторной мы найдем им применение).
    2. Большой мультиплексор на схеме, определяющий записываемое в PC значение является мультиплексором с приоритетами (в первую очередь проверяется сигнал trap, затем, если он равен нулю, проверяется сигнал mret, и только если оба предыдущих равны нулю выдается значение default). Такой мультиплексор можно описать как на цепочке выражений if-else-if, так и с помощью выражения case в качестве управляющего сигнала которого подана единица, а выбор осуществляется не по значениям, а по сигналам:
    case(1'b1)
    a: ...
    b: ...
    c: ...
    
  2. После интеграции модулей, проверьте процессорную систему с помощью программы из ЛР10 с помощью предоставленного тестбенча.