Andrei Solodovnikov
19bc1afcbf
ЛР12. Убрано использование ready
2023-11-28 11:17:49 +03:00
Andrei Solodovnikov
9bbbe0c820
ЛР12. Обновление методички
2023-11-27 00:22:01 +03:00
Andrei Solodovnikov
80c4b5ea2f
ЛР5. Исправление значения func7 для mret в сводной таблице
2023-11-26 15:20:45 +03:00
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