diff --git a/artiq/gateware/targets/pipistrello.py b/artiq/gateware/targets/pipistrello.py index e0696ef9d..8abeb46ef 100755 --- a/artiq/gateware/targets/pipistrello.py +++ b/artiq/gateware/targets/pipistrello.py @@ -128,12 +128,7 @@ trce -v 12 -fastpaths -tsi {build_name}.tsi -o {build_name}.twr {build_name}.ncd """ platform.add_extension(nist_qc1.papilio_adapter_io) - self.submodules.leds = gpio.GPIOOut(Cat( - platform.request("user_led", 0), - platform.request("user_led", 1), - platform.request("user_led", 2), - platform.request("user_led", 3), - )) + self.submodules.leds = gpio.GPIOOut(platform.request("user_led", 4)) self.comb += [ platform.request("ttl_l_tx_en").eq(1), @@ -170,9 +165,10 @@ trce -v 12 -fastpaths -tsi {build_name}.tsi -o {build_name}.twr {build_name}.ncd self.submodules += phy rtio_channels.append(rtio.Channel.from_phy(phy, ofifo_depth=4)) - phy = ttl_simple.Output(platform.request("user_led", 4)) - self.submodules += phy - rtio_channels.append(rtio.Channel.from_phy(phy, ofifo_depth=4)) + for led_number in range(4): + phy = ttl_simple.Output(platform.request("user_led", led_number)) + self.submodules += phy + rtio_channels.append(rtio.Channel.from_phy(phy, ofifo_depth=4)) self.add_constant("RTIO_REGULAR_TTL_COUNT", len(rtio_channels)) diff --git a/doc/manual/core_device.rst b/doc/manual/core_device.rst index d01a992a6..942a4b844 100644 --- a/doc/manual/core_device.rst +++ b/doc/manual/core_device.rst @@ -54,21 +54,27 @@ The low-cost Pipistrello FPGA board can be used as a lower-cost but slower alter When plugged to an adapter, the NIST QC1 hardware can be used. The TTL lines are mapped to RTIO channels as follows: -+--------------+----------+------------+ -| RTIO channel | TTL line | Capability | -+==============+==========+============+ -| 0 | PMT0 | Input | -+--------------+----------+------------+ -| 1 | PMT1 | Input | -+--------------+----------+------------+ -| 2-16 | TTL0-14 | Output | -+--------------+----------+------------+ -| 17 | EXT_LED | Output | -+--------------+----------+------------+ -| 18 | USER_LED | Output | -+--------------+----------+------------+ -| 19 | TTL15 | Clock | -+--------------+----------+------------+ ++--------------+------------+------------+ +| RTIO channel | TTL line | Capability | ++==============+============+============+ +| 0 | PMT0 | Input | ++--------------+------------+------------+ +| 1 | PMT1 | Input | ++--------------+------------+------------+ +| 2-16 | TTL0-14 | Output | ++--------------+------------+------------+ +| 17 | EXT_LED | Output | ++--------------+------------+------------+ +| 18 | USER_LED_1 | Output | ++--------------+------------+------------+ +| 19 | USER_LED_2 | Output | ++--------------+------------+------------+ +| 20 | USER_LED_3 | Output | ++--------------+------------+------------+ +| 21 | USER_LED_4 | Output | ++--------------+------------+------------+ +| 22 | TTL15 | Clock | ++--------------+------------+------------+ The input only limitation on channels 0 and 1 comes from the QC-DAQ adapter. When the adapter is not used (and physically unplugged from the Pipistrello board), the corresponding pins on the Pipistrello can be used as outputs. Do not configure these channels as outputs when the adapter is plugged, as this would cause electrical contention.