Commit Graph

35 Commits

Author SHA1 Message Date
Andrei Solodovnikov
0c72f3a0c0 ЛР10. Уточнение принципа работы регистра mtvec 2023-11-23 16:21:52 +03:00
Andrei Solodovnikov
a47e4d441c ЛР3,7,12. Убрано использование магических констант при работе с памятью
Данная логика не используется в реальных проектах и добавляет большие
мультиплексоры, отрицательно сказывающиеся на таймингах схемы.
2023-11-15 17:59:41 +03:00
Andrei Solodovnikov
8ee7df7656 ЛР6. Изменение разрядности wb_src_sel на схеме
Выход декодера двухразрядный, в будущих лабах это будет использовано.

Closes #23
2023-11-14 19:38:34 +03:00
Andrei Solodovnikov
522dd525b3 ЛР10-11. Исправление микроархитектуры
Логика генерации нового значения PC содержала ошибку.

Fixes #25
2023-11-14 18:00:14 +03:00
Andrei Solodovnikov
fdc9d8c664 ЛР6. Разрыв общего сигнала rst_i между ядром и столлом
Студентов сбивал с толку общий сигнал, терялось понимание направления
сигналов.
2023-11-14 11:30:10 +03:00
Andrei Solodovnikov
2790eb87f1 ЛР6. Исправление схемы
Один из выходных сигналов декодера имел неверное имя.
2023-11-14 11:28:32 +03:00
Andrei Solodovnikov
8feee4531b ЛР11. Обновление микроархитектуры ядра 2023-11-07 15:14:08 +03:00
Andrei Solodovnikov
8b870423c9 Update README.md 2023-11-07 15:05:45 +03:00
Andrei Solodovnikov
154f212562 ЛР10. Обновление методички
- Упрощен контроллер прерываний и логика генерации mcause.
- Обновлен код примера обработчика перехвата.
2023-11-02 13:10:57 +03:00
Andrei Solodovnikov
505b5c5818 ЛР10. Переработка mcause
Приведение генерации причины перехвата в соответствие с машин модом.
Это необходимо для проверки проца с помощью spike.
2023-10-16 22:42:06 +03:00
Andrei Solodovnikov
8ab6419fbc ЛР10-11. Исправление микроархитектуры
Ранее, для того чтобы не маскировать сигналы, отвечающие за изменение
архитектурного состояния процессора, инструкция исполнялась до конца, а
уже после происходил перехват инструкции с записью в mepc следующего
значения PC.

Однако по спецификации, в mepc должен попадать адрес перехватываемой
инструкции (важно для проверки обработки исключений).

Таким образом, логика перехвата была изменена: маскируются все
управляющие сигналы, а в mepc записывается адрес текущей инструкции.
2023-10-13 17:14:54 +03:00
Andrei Solodovnikov
4ebfae228c ЛР8. Исправление схемы 2023-10-13 12:59:33 +03:00
Andrei Solodovnikov
f8d15a2e8e Шаги имплементации. Обновление схемы 2023-10-11 14:38:07 +03:00
Andrei Solodovnikov
17c3756092 ЛР6. Исправление схемы 2023-10-08 20:23:29 +03:00
Andrei Solodovnikov
33190117b1 ЛР6. Добавление сигналов на схему ядра 2023-10-06 10:51:50 +03:00
Andrei Solodovnikov
9751077e86 ЛР5. Обновление таблицы с описанием инструкций
Поскольку в методичке в явном виде сказано назначить illegal_instr
значение 1 при инструкциях ecall/ebreak, данное поведение было
отраежено и в таблице с описанием инструкций.
2023-10-05 12:09:10 +03:00
Andrei Solodovnikov
6ea395c761 ЛР5. Исправление опечатки
Исправлено слово "jump" в расшифровке инструкций jal/jalr.
2023-10-05 10:21:48 +03:00
Andrei Solodovnikov
44311a34ed ЛР5,10,11. Исправление микроархитектуры
Для повышения читаемости, приоритетный мультиплексор разбит на каскад
двухвходовых мультиплексоров.
2023-10-05 10:21:48 +03:00
Andrei Solodovnikov
1dab75418f Исправление микроархитектурной реализации jalr
Предыдущая реализация не выполняла требование спецификации по обнулению
младшего бита суммы, используемой в качестве нового значения
программного счетчика.

Подробнее см. RISC-V Unprivileged ISA V20191213 стр. 21

Closes #12
2023-10-04 22:23:09 +03:00
Andrei Solodovnikov
9c230e3bc6 ЛР11, ЛР5. Исправление поведения сигнала jalr на схеме 2023-10-04 14:02:05 +03:00
Andrei Solodovnikov
17c57634d9 ЛР11.Исправление схÐмикрсхемы ядраÐ 2023-10-02 08:31:25 +03:00
Andrei Solodovnikov
e16cb09099 ЛР12. Обновление методички 2023-09-24 10:49:29 +03:00
Andrei Solodovnikov
9febccbd1f ЛР12. Обновление схемы 2023-09-18 21:59:25 +03:00
Andrei Solodovnikov
cf806ccca7 Добавлена доп литература и полезные ссылки 2023-09-16 21:14:25 +03:00
Andrei Solodovnikov
c4bfaae20f Добавлен основной README 2023-09-15 12:04:38 +03:00
Andrei Solodovnikov
9ab04c3c43 Обновлен документ с преподавателями 2023-09-14 21:58:45 +03:00
Andrei Solodovnikov
3769cdb972 ЛР10-11. Добавлена методичка по прерываниям 2023-09-14 21:58:27 +03:00
Andrei Solodovnikov
e266b76927 ЛР8. Добавлены исходники для таблицы 2023-09-14 13:29:00 +03:00
Andrei Solodovnikov
d665991ba3 ЛР5. Обновление методички
Добавлена поддержка инструкций CSR + mret, чтобы в последствии не
возвращаться к этому модулю.
2023-09-14 13:28:30 +03:00
Andrei Solodovnikov
73c615b558 ЛР8. Добавление методички 2023-09-10 21:09:14 +03:00
Andrei Solodovnikov
182a848b43 Обновление структуры лаб 2023-09-10 21:09:13 +03:00
Andrei Solodovnikov
edb6b5a7d0 ЛР3. Переделка
Возврат к истокам: 32-разрядные ячейки памяти.
2023-09-10 20:57:14 +03:00
Andrei Solodovnikov
0e0f893a2a Начало обновления документа с преподавателями 2023-09-08 13:16:10 +03:00
Andrei Solodovnikov
64483f7080 ЛР6. Исправление программы и микроархитектуры
В программе осуществлялся невыровненный доступ в память, использовался
непонятный лейбл, инструкция ветвления прыгала на следующую инструкцию,
что затруднит проверку результата ветвления.
В микроархитектуре была ошибка с генерацией разрешения записи в
регистровый файл.
2023-09-08 11:19:57 +03:00
Andrei Solodovnikov
f4c0960704 Initial commit 2023-09-07 17:06:55 +03:00