|
6 | 6 | from amaranth.lib import wiring |
7 | 7 | from amaranth.lib.wiring import connect |
8 | 8 |
|
9 | | -from amaranth_soc import csr, wishbone |
| 9 | +from amaranth_soc import csr, wishbone, gpio |
10 | 10 | from amaranth_soc.csr.wishbone import WishboneCSRBridge |
11 | 11 |
|
12 | 12 | from amaranth_vexriscv.vexriscv import VexRiscv |
13 | 13 |
|
14 | | -from amaranth_orchard.base.gpio import GPIOPeripheral |
15 | 14 | from amaranth_orchard.memory.spimemio import SPIMemIO |
16 | 15 | from amaranth_orchard.io.uart import UARTPeripheral |
17 | 16 | from amaranth_orchard.memory.sram import SRAMPeripheral |
@@ -86,12 +85,16 @@ def elaborate(self, platform): |
86 | 85 | # LED GPIOs |
87 | 86 |
|
88 | 87 | led_gpio_provider = platform.providers.LEDGPIOProvider() |
89 | | - led_gpio = GPIOPeripheral(pins=led_gpio_provider.pins) |
90 | | - csr_decoder.add(led_gpio.bus, name="led_gpio", addr=self.csr_led_gpio_base - self.csr_base) |
| 88 | + led_gpio = gpio.Peripheral(pin_count=8, addr_width=4, data_width=8) |
91 | 89 |
|
92 | 90 | m.submodules.led_gpio_provider = led_gpio_provider |
93 | 91 | m.submodules.led_gpio = led_gpio |
94 | 92 |
|
| 93 | + for n in range(8): |
| 94 | + connect(m, led_gpio.pins[n], led_gpio_provider.pins[n]) |
| 95 | + |
| 96 | + csr_decoder.add(led_gpio.bus, name="led_gpio", addr=self.csr_led_gpio_base - self.csr_base) |
| 97 | + |
95 | 98 | # UART |
96 | 99 |
|
97 | 100 | uart_provider = platform.providers.UARTProvider() |
@@ -119,12 +122,16 @@ def elaborate(self, platform): |
119 | 122 | # Button GPIOs |
120 | 123 |
|
121 | 124 | #btn_gpio_provider = platform.providers.ButtonGPIOProvider() |
122 | | - #btn_gpio = GPIOPeripheral(pins=btn_gpio_provider.pins) |
123 | | - #csr_decoder.add(btn_gpio.bus, name="btn_gpio", addr=self.csr_btn_gpio_base - self.csr_base) |
| 125 | + #btn_gpio = gpio.Peripheral(pin_count=2, addr_width=4, data_width=8) |
124 | 126 |
|
125 | 127 | #m.submodules.btn_gpio_provider = btn_gpio_provider |
126 | 128 | #m.submodules.btn_gpio = btn_gpio |
127 | 129 |
|
| 130 | + #for n in range(2): |
| 131 | + # connect(m, btn_gpio.pins[n], btn_gpio_provider.pins[n]) |
| 132 | + |
| 133 | + #csr_decoder.add(btn_gpio.bus, name="btn_gpio", addr=self.csr_btn_gpio_base - self.csr_base) |
| 134 | + |
128 | 135 | # Wishbone-CSR bridge |
129 | 136 |
|
130 | 137 | wb_to_csr = WishboneCSRBridge(csr_decoder.bus, data_width=32) |
|
0 commit comments