Skip to content

Commit 1bf8c82

Browse files
authored
[CPU control] large code cleanup (#1099)
2 parents 881930f + 9401b9a commit 1bf8c82

7 files changed

+269
-298
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ mimpid = 0x01040312 -> Version 01.04.03.12 -> v1.4.3.12
2929

3030
| Date | Version | Comment | Ticket |
3131
|:----:|:-------:|:--------|:------:|
32+
| 23.11.2024 | 1.10.6.6 | CPU control: large code edits and cleanups | [#1099](https://github.com/stnolting/neorv32/pull/1099) |
3233
| 10.11.2024 | 1.10.6.5 | :warning: switch to [xPack](https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack) as default prebuilt RISC-V GCC toolchain (now using `riscv-none-elf-` as default gcc prefix) | [#1091](https://github.com/stnolting/neorv32/pull/1091) |
3334
| 10.11.2024 | 1.10.6.4 | rework default processor testbench | [#1093](https://github.com/stnolting/neorv32/pull/1093) |
3435
| 06.11.2024 | 1.10.6.3 | minor rtl edits and cleanups | [#1090](https://github.com/stnolting/neorv32/pull/1090) |

rtl/core/neorv32_bus.vhd

+32-32
Original file line numberDiff line numberDiff line change
@@ -417,38 +417,38 @@ entity neorv32_bus_io_switch is
417417
main_req_i : in bus_req_t; -- host request
418418
main_rsp_o : out bus_rsp_t; -- host response
419419
-- device ports --
420-
dev_00_req_o : out bus_req_t; dev_00_rsp_i : in bus_rsp_t := rsp_terminate_c;
421-
dev_01_req_o : out bus_req_t; dev_01_rsp_i : in bus_rsp_t := rsp_terminate_c;
422-
dev_02_req_o : out bus_req_t; dev_02_rsp_i : in bus_rsp_t := rsp_terminate_c;
423-
dev_03_req_o : out bus_req_t; dev_03_rsp_i : in bus_rsp_t := rsp_terminate_c;
424-
dev_04_req_o : out bus_req_t; dev_04_rsp_i : in bus_rsp_t := rsp_terminate_c;
425-
dev_05_req_o : out bus_req_t; dev_05_rsp_i : in bus_rsp_t := rsp_terminate_c;
426-
dev_06_req_o : out bus_req_t; dev_06_rsp_i : in bus_rsp_t := rsp_terminate_c;
427-
dev_07_req_o : out bus_req_t; dev_07_rsp_i : in bus_rsp_t := rsp_terminate_c;
428-
dev_08_req_o : out bus_req_t; dev_08_rsp_i : in bus_rsp_t := rsp_terminate_c;
429-
dev_09_req_o : out bus_req_t; dev_09_rsp_i : in bus_rsp_t := rsp_terminate_c;
430-
dev_10_req_o : out bus_req_t; dev_10_rsp_i : in bus_rsp_t := rsp_terminate_c;
431-
dev_11_req_o : out bus_req_t; dev_11_rsp_i : in bus_rsp_t := rsp_terminate_c;
432-
dev_12_req_o : out bus_req_t; dev_12_rsp_i : in bus_rsp_t := rsp_terminate_c;
433-
dev_13_req_o : out bus_req_t; dev_13_rsp_i : in bus_rsp_t := rsp_terminate_c;
434-
dev_14_req_o : out bus_req_t; dev_14_rsp_i : in bus_rsp_t := rsp_terminate_c;
435-
dev_15_req_o : out bus_req_t; dev_15_rsp_i : in bus_rsp_t := rsp_terminate_c;
436-
dev_16_req_o : out bus_req_t; dev_16_rsp_i : in bus_rsp_t := rsp_terminate_c;
437-
dev_17_req_o : out bus_req_t; dev_17_rsp_i : in bus_rsp_t := rsp_terminate_c;
438-
dev_18_req_o : out bus_req_t; dev_18_rsp_i : in bus_rsp_t := rsp_terminate_c;
439-
dev_19_req_o : out bus_req_t; dev_19_rsp_i : in bus_rsp_t := rsp_terminate_c;
440-
dev_20_req_o : out bus_req_t; dev_20_rsp_i : in bus_rsp_t := rsp_terminate_c;
441-
dev_21_req_o : out bus_req_t; dev_21_rsp_i : in bus_rsp_t := rsp_terminate_c;
442-
dev_22_req_o : out bus_req_t; dev_22_rsp_i : in bus_rsp_t := rsp_terminate_c;
443-
dev_23_req_o : out bus_req_t; dev_23_rsp_i : in bus_rsp_t := rsp_terminate_c;
444-
dev_24_req_o : out bus_req_t; dev_24_rsp_i : in bus_rsp_t := rsp_terminate_c;
445-
dev_25_req_o : out bus_req_t; dev_25_rsp_i : in bus_rsp_t := rsp_terminate_c;
446-
dev_26_req_o : out bus_req_t; dev_26_rsp_i : in bus_rsp_t := rsp_terminate_c;
447-
dev_27_req_o : out bus_req_t; dev_27_rsp_i : in bus_rsp_t := rsp_terminate_c;
448-
dev_28_req_o : out bus_req_t; dev_28_rsp_i : in bus_rsp_t := rsp_terminate_c;
449-
dev_29_req_o : out bus_req_t; dev_29_rsp_i : in bus_rsp_t := rsp_terminate_c;
450-
dev_30_req_o : out bus_req_t; dev_30_rsp_i : in bus_rsp_t := rsp_terminate_c;
451-
dev_31_req_o : out bus_req_t; dev_31_rsp_i : in bus_rsp_t := rsp_terminate_c
420+
dev_00_req_o : out bus_req_t; dev_00_rsp_i : in bus_rsp_t;
421+
dev_01_req_o : out bus_req_t; dev_01_rsp_i : in bus_rsp_t;
422+
dev_02_req_o : out bus_req_t; dev_02_rsp_i : in bus_rsp_t;
423+
dev_03_req_o : out bus_req_t; dev_03_rsp_i : in bus_rsp_t;
424+
dev_04_req_o : out bus_req_t; dev_04_rsp_i : in bus_rsp_t;
425+
dev_05_req_o : out bus_req_t; dev_05_rsp_i : in bus_rsp_t;
426+
dev_06_req_o : out bus_req_t; dev_06_rsp_i : in bus_rsp_t;
427+
dev_07_req_o : out bus_req_t; dev_07_rsp_i : in bus_rsp_t;
428+
dev_08_req_o : out bus_req_t; dev_08_rsp_i : in bus_rsp_t;
429+
dev_09_req_o : out bus_req_t; dev_09_rsp_i : in bus_rsp_t;
430+
dev_10_req_o : out bus_req_t; dev_10_rsp_i : in bus_rsp_t;
431+
dev_11_req_o : out bus_req_t; dev_11_rsp_i : in bus_rsp_t;
432+
dev_12_req_o : out bus_req_t; dev_12_rsp_i : in bus_rsp_t;
433+
dev_13_req_o : out bus_req_t; dev_13_rsp_i : in bus_rsp_t;
434+
dev_14_req_o : out bus_req_t; dev_14_rsp_i : in bus_rsp_t;
435+
dev_15_req_o : out bus_req_t; dev_15_rsp_i : in bus_rsp_t;
436+
dev_16_req_o : out bus_req_t; dev_16_rsp_i : in bus_rsp_t;
437+
dev_17_req_o : out bus_req_t; dev_17_rsp_i : in bus_rsp_t;
438+
dev_18_req_o : out bus_req_t; dev_18_rsp_i : in bus_rsp_t;
439+
dev_19_req_o : out bus_req_t; dev_19_rsp_i : in bus_rsp_t;
440+
dev_20_req_o : out bus_req_t; dev_20_rsp_i : in bus_rsp_t;
441+
dev_21_req_o : out bus_req_t; dev_21_rsp_i : in bus_rsp_t;
442+
dev_22_req_o : out bus_req_t; dev_22_rsp_i : in bus_rsp_t;
443+
dev_23_req_o : out bus_req_t; dev_23_rsp_i : in bus_rsp_t;
444+
dev_24_req_o : out bus_req_t; dev_24_rsp_i : in bus_rsp_t;
445+
dev_25_req_o : out bus_req_t; dev_25_rsp_i : in bus_rsp_t;
446+
dev_26_req_o : out bus_req_t; dev_26_rsp_i : in bus_rsp_t;
447+
dev_27_req_o : out bus_req_t; dev_27_rsp_i : in bus_rsp_t;
448+
dev_28_req_o : out bus_req_t; dev_28_rsp_i : in bus_rsp_t;
449+
dev_29_req_o : out bus_req_t; dev_29_rsp_i : in bus_rsp_t;
450+
dev_30_req_o : out bus_req_t; dev_30_rsp_i : in bus_rsp_t;
451+
dev_31_req_o : out bus_req_t; dev_31_rsp_i : in bus_rsp_t
452452
);
453453
end neorv32_bus_io_switch;
454454

rtl/core/neorv32_cpu.vhd

+3-3
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ architecture neorv32_cpu_rtl of neorv32_cpu is
123123
signal lsu_err : std_ulogic_vector(3 downto 0); -- lsu alignment/access errors
124124
signal pc_fetch : std_ulogic_vector(XLEN-1 downto 0); -- pc for instruction fetch
125125
signal pc_curr : std_ulogic_vector(XLEN-1 downto 0); -- current pc (for currently executed instruction)
126-
signal pc_next : std_ulogic_vector(XLEN-1 downto 0); -- next pc (return address)
126+
signal pc_ret : std_ulogic_vector(XLEN-1 downto 0); -- return address
127127
signal pmp_ex_fault : std_ulogic; -- pmp instruction fetch fault
128128
signal pmp_rw_fault : std_ulogic; -- pmp read/write access fault
129129
signal irq_machine : std_ulogic_vector(2 downto 0); -- risc-v standard machine-level interrupts
@@ -245,7 +245,7 @@ begin
245245
rf_rs1_i => rs1, -- rf source 1
246246
pc_fetch_o => pc_fetch, -- instruction fetch address
247247
pc_curr_o => pc_curr, -- current PC (corresponding to current instruction)
248-
pc_next_o => pc_next, -- next PC (return address)
248+
pc_ret_o => pc_ret, -- return address
249249
csr_rdata_o => csr_rdata, -- CSR read data
250250
-- external CSR interface --
251251
xcsr_we_o => xcsr_we, -- global write enable
@@ -294,7 +294,7 @@ begin
294294
);
295295

296296
-- all buses are zero unless there is an according operation --
297-
rf_wdata <= alu_res or lsu_rdata or csr_rdata or pc_next;
297+
rf_wdata <= alu_res or lsu_rdata or csr_rdata or pc_ret;
298298

299299

300300
-- ALU (Arithmetic/Logic Unit) and ALU Co-Processors --------------------------------------

0 commit comments

Comments
 (0)