Skip to content

registrador de interrupcao por software

Diogo Valadares Reis dos Santos edited this page Aug 26, 2025 · 1 revision

[English]

[← Previous Page | Next Page →]

O Registrador de Interrupção por Software

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.

image

Código em SystemVerilog

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

Clone this wiki locally