-
Notifications
You must be signed in to change notification settings - Fork 0
registrador de interrupcao por software
Diogo Valadares Reis dos Santos edited this page Aug 26, 2025
·
1 revision
[English]
O Registrador de Interrupção por Software, assim como o Dispositivo de Tempo Real, é um componente CSR mapeado em memória. Neste caso, ele atua como um sinal de interrupção para o registrador mip (Machine Interrupt Pending). Esse registrador permite que o software e outros núcleos de processamento (harts) disparem uma interrupção ao escrever nele. Ele é implementado como um registrador simples conectado a um único byte de memória.
Esse registrador só pode ser escrito — não é possível lê-lo diretamente. Para acessar seu valor, é necessário utilizar o registrador mip via instrução CSR.
wire is_software_interrupt_address = (address_bus == 32'h81000014);
assign software_interrupt = software_interrupt_reg;
reg software_interrupt_reg;
always @(posedge clock) begin
if (reset)
software_interrupt_reg <= 0;
else if (write && is_software_interrupt_address)
software_interrupt_reg <= data_bus[0];
end-
- 1.1 Introduction
- 1.2 RISC-V Implementation
- 1.2.1 Available Instruction Set
- 1.2.2 Available Non-ISA Features
-
- 2.1 ALU
- 2.2 Register File
- 2.3 Program Counter
- 2.4 Input Buffer
- 2.5 RAM
- 2.6 Operation Controller
- 2.7 CSR Controller
-
- 3.1 Input Devices
- 3.1.1 Keyboard
- 3.1.2 Switches and Joystick
- 3.1.3 Random Number Generator
- 3.1.4 Real-Time Device
- 3.2 Output Devices
- 3.2.1 Screen
- 3.2.2 Terminal
- 3.2.3 Software Interrupt Register
- 3.1 Input Devices