1cpu_0: CPU.VexRiscv @ sysbus
2    cpuType: "rv32ima_zicsr_zifencei"
3    hartId: 0
4    timeProvider: clint
5    privilegedArchitecture: PrivilegedArchitecture.Priv1_10
6
7cpu_1: CPU.VexRiscv @ sysbus
8    cpuType: "rv32ima_zicsr_zifencei"
9    hartId: 1
10    timeProvider: clint
11    privilegedArchitecture: PrivilegedArchitecture.Priv1_10
12
13cpu_2: CPU.VexRiscv @ sysbus
14    cpuType: "rv32ima_zicsr_zifencei"
15    hartId: 2
16    timeProvider: clint
17    privilegedArchitecture: PrivilegedArchitecture.Priv1_10
18
19cpu_3: CPU.VexRiscv @ sysbus
20    cpuType: "rv32ima_zicsr_zifencei"
21    hartId: 3
22    timeProvider: clint
23    privilegedArchitecture: PrivilegedArchitecture.Priv1_10
24
25ram: Memory.MappedMemory @ sysbus 0x40000000
26    size: 0x08000000
27
28clint: IRQControllers.CoreLevelInterruptor @ sysbus 0xF0010000
29    frequency: 1000000
30    numberOfTargets: 4
31    // 100 is machine level timer interrupt in VexRiscv
32    // 101 is machine level software interrupt in VexRiscv
33    [0, 1] -> cpu_0@[101, 100]
34    [2, 3] -> cpu_1@[101, 100]
35    [4, 5] -> cpu_2@[101, 100]
36    [6, 7] -> cpu_3@[101, 100]
37
38uart: UART.LiteX_UART @ sysbus 0xF0001800
39