1
0
mirror of https://github.com/olofk/serv.git synced 2026-05-04 23:35:17 +00:00

Add parameter to disable CSR/interrupts

Also disables timer in servant if CSR/interrupts are disabled
This commit is contained in:
Olof Kindgren
2019-12-01 20:54:54 +01:00
parent fca1527dd7
commit b48b02b8df
8 changed files with 137 additions and 62 deletions

View File

@@ -42,12 +42,16 @@ module serv_rf_if
input wire [4:0] i_rs2_raddr,
output wire o_rs2);
parameter WITH_CSR = 1;
`include "serv_params.vh"
/*
********** Write side ***********
*/
generate
if (WITH_CSR) begin
wire rd = (i_ctrl_rd ) |
(i_alu_rd & i_rd_alu_en) |
(i_csr_rd & i_rd_csr_en) |
@@ -57,7 +61,7 @@ module serv_rf_if
assign o_wdata0 = i_trap ? mtval : rd;
assign o_wdata1 = i_trap ? i_mepc : i_csr;
//port 0 rd mtval
//port 1 csr mepc
//mepc 100010
@@ -90,6 +94,28 @@ module serv_rf_if
assign o_csr = i_rdata1 & i_csr_en;
assign o_csr_pc = i_rdata1;
end else begin
wire rd = (i_ctrl_rd ) |
(i_alu_rd & i_rd_alu_en) |
(i_mem_rd);
assign o_wdata0 = rd;
assign o_wdata1 = 1'b0;
assign o_wreg0 = {1'b0,i_rd_waddr};
assign o_wen0 =i_rd_wen;
assign o_wen1 = 1'b0;
/*
********** Read side ***********
*/
assign o_rreg0 = {1'b0, i_rs1_raddr};
assign o_rreg1 = {1'b0, i_rs2_raddr};
assign o_rs1 = i_rdata0;
assign o_rs2 = i_rdata1;
end // else: !if(WITH_CSR)
endgenerate
endmodule