-
Notifications
You must be signed in to change notification settings - Fork 0
Software Interrupt Register
Diogo Valadares Reis dos Santos edited this page Aug 26, 2025
·
3 revisions
The Software Interrupt Register, similar to the Real-Time Device, is a memory-mapped CSR component. In this case, it serves as an interrupt signal for the mip CSR. This register allows software and other harts (processor cores) to trigger an interrupt by writing to it. It is implemented as a simple register connected to a single byte of memory.
It can only be written to and cannot be read directly. To read its value, you must access it through the mip 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