forked from M-Labs/artiq
1
0
Fork 0

pipistrello: expose LED{1..4} as RTIO channels.

This commit is contained in:
whitequark 2015-11-23 18:26:45 +08:00
parent 73845279ae
commit 9fc7a42036
2 changed files with 26 additions and 24 deletions

View File

@ -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) platform.add_extension(nist_qc1.papilio_adapter_io)
self.submodules.leds = gpio.GPIOOut(Cat( self.submodules.leds = gpio.GPIOOut(platform.request("user_led", 4))
platform.request("user_led", 0),
platform.request("user_led", 1),
platform.request("user_led", 2),
platform.request("user_led", 3),
))
self.comb += [ self.comb += [
platform.request("ttl_l_tx_en").eq(1), 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 self.submodules += phy
rtio_channels.append(rtio.Channel.from_phy(phy, ofifo_depth=4)) rtio_channels.append(rtio.Channel.from_phy(phy, ofifo_depth=4))
phy = ttl_simple.Output(platform.request("user_led", 4)) for led_number in range(4):
self.submodules += phy phy = ttl_simple.Output(platform.request("user_led", led_number))
rtio_channels.append(rtio.Channel.from_phy(phy, ofifo_depth=4)) self.submodules += phy
rtio_channels.append(rtio.Channel.from_phy(phy, ofifo_depth=4))
self.add_constant("RTIO_REGULAR_TTL_COUNT", len(rtio_channels)) self.add_constant("RTIO_REGULAR_TTL_COUNT", len(rtio_channels))

View File

@ -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: 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 | | RTIO channel | TTL line | Capability |
+==============+==========+============+ +==============+============+============+
| 0 | PMT0 | Input | | 0 | PMT0 | Input |
+--------------+----------+------------+ +--------------+------------+------------+
| 1 | PMT1 | Input | | 1 | PMT1 | Input |
+--------------+----------+------------+ +--------------+------------+------------+
| 2-16 | TTL0-14 | Output | | 2-16 | TTL0-14 | Output |
+--------------+----------+------------+ +--------------+------------+------------+
| 17 | EXT_LED | Output | | 17 | EXT_LED | Output |
+--------------+----------+------------+ +--------------+------------+------------+
| 18 | USER_LED | Output | | 18 | USER_LED_1 | Output |
+--------------+----------+------------+ +--------------+------------+------------+
| 19 | TTL15 | Clock | | 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. 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.