1emulator_ram: Memory.MappedMemory @ {
2        sysbus 0x20000000
3    }
4    size: 0x10000000
5
6ddr: Memory.MappedMemory @ {
7        sysbus 0xc0000000
8    }
9    size: 0x10000000
10
11uart: UART.LiteX_UART @ {
12        sysbus 0xf0001000
13    }
14    -> cpu@0
15
16eth: Network.LiteX_Ethernet @ {
17        sysbus 0xF0003800;
18
19        sysbus new Bus.BusMultiRegistration { address: 0x30000000; size: 0x2000; region: "buffer" };
20        sysbus new Bus.BusMultiRegistration { address: 0xB0000000; size: 0x2000; region: "buffer" }
21    }
22    -> cpu@2
23
24spi: SPI.LiteX_SPI @ {
25    sysbus 0xF0006800
26}
27
28spi_loopback: SPI.SPILoopback @ spi
29
30i2c: I2C.LiteX_I2C @ {
31    sysbus 0xF0007000
32}
33
34si7021: Sensors.SI70xx @ i2c 5
35    model: Model.SI7021
36
37gpio_out: GPIOPort.LiteX_GPIO @ {
38    sysbus 0xF0005800
39}
40    type: Type.Out
41    0 -> led@0
42
43gpio_in: GPIOPort.LiteX_GPIO @ {
44    sysbus 0xF0006000
45}
46    type: Type.In
47
48cpuTimer: Timers.LiteX_CPUTimer @ {
49        sysbus 0xF0000800
50    }
51    // according to the LiteX Configuration this should be 10.000.000 Hz, but I modified it in order to obtain 10ms tick
52    frequency: 40000000
53    // IRQ #100 is Machine Timer Interrupt
54    -> cpu@100
55
56cpu: CPU.VexRiscv @ sysbus
57    cpuType: "rv32ima_zicsr_zifencei"
58    privilegedArchitecture: PrivilegedArchitecture.Priv1_10
59    timeProvider: cpuTimer
60
61led : Miscellaneous.LED @ gpio_out 0
62
63button: Miscellaneous.Button @ gpio_in 0
64    -> gpio_in@0
65