From 9f0aabe284830a3c9fef30bb94cdc74d22cc99d7 Mon Sep 17 00:00:00 2001 From: Andrei Solodovnikov Date: Wed, 4 Oct 2023 23:55:36 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9B=D0=A011.=20=D0=A3=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D0=BE=20=D1=83=D0=BF=D0=BE=D0=BC=D0=B8=D0=BD=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BE=D0=B1=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B8=20=D0=BE=D0=B1?= =?UTF-8?q?=D1=80=D0=B0=D1=82=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BA=D0=B5=D0=B9?= =?UTF-8?q?=D1=81=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Для реализации логики приоритетного мультиплексора предлагалось использовать case (1'b1). В статье "SystemVerilog's priority & unique - A Solution to Verilog's 'full_case' & 'parallel_case' Evil Twins!" не рекомендуется подобная практика. --- Labs/11. Interrupt integration/README.md | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/Labs/11. Interrupt integration/README.md b/Labs/11. Interrupt integration/README.md index 6d84ad2..af7b8cb 100644 --- a/Labs/11. Interrupt integration/README.md +++ b/Labs/11. Interrupt integration/README.md @@ -21,13 +21,5 @@ 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 - case(1'b1) - a: ... - b: ... - c: ... - ``` - + 2. Большой мультиплексор на схеме, определяющий записываемое в `PC` значение является мультиплексором с приоритетами (в первую очередь проверяется сигнал `trap`, затем, если он равен нулю, проверяется сигнал `mret`, и только если оба предыдущих равны нулю выдается значение `default`). Такой мультиплексор лучше описать с помощью цепочки `if-else-if`. 2. После интеграции модулей, проверьте процессорную систему с помощью программы из ЛР10 с помощью предоставленного тестбенча.