ЛР 6 для ИВТ. Формирование mcause #43
-
|
Почему mcause формируется как 27'h4000000? А не, допустим, 27'h0000000. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
|
Тоже дань стандарту, согласно которому старший бит причины В данном случае речь о аппаратных асинхронных прерываниях, поэтому код причины формируется как Более подробно об этом можно прочитать в спецификации на привилегированные инструкции на странице 38 |
Beta Was this translation helpful? Give feedback.

Тоже дань стандарту, согласно которому старший бит причины
mcauseдолжен быть единицей, если причиной является прерывание, а не исключение. Например, при считывании неподдерживаемой инструкции (исключение) должен быть код причины в котором старший бит равен 0.В данном случае речь о аппаратных асинхронных прерываниях, поэтому код причины формируется как
{1'b1, 26'b0, номер_входа_прерывания}, или, что тоже самое –{27'h4000000, номер_входа_прерывания}.Более подробно об этом можно прочитать в спецификации на привилегированные инструкции на странице 38