forked from M-Labs/artiq
artiq_ddb_template: add edge counter support
This commit is contained in:
parent
fda3cb2482
commit
86f462f40e
|
@ -83,6 +83,7 @@ class PeripheralManager:
|
||||||
class_names[peripheral["bank_direction_low"]],
|
class_names[peripheral["bank_direction_low"]],
|
||||||
class_names[peripheral["bank_direction_high"]]
|
class_names[peripheral["bank_direction_high"]]
|
||||||
]
|
]
|
||||||
|
channel = count(0)
|
||||||
for i in range(8):
|
for i in range(8):
|
||||||
self.gen("""
|
self.gen("""
|
||||||
device_db["{name}"] = {{
|
device_db["{name}"] = {{
|
||||||
|
@ -94,8 +95,22 @@ class PeripheralManager:
|
||||||
""",
|
""",
|
||||||
name=self.get_name("ttl"),
|
name=self.get_name("ttl"),
|
||||||
class_name=classes[i//4],
|
class_name=classes[i//4],
|
||||||
channel=rtio_offset+i)
|
channel=rtio_offset+next(channel))
|
||||||
return 8
|
if peripheral.get("edge_counter", False):
|
||||||
|
for i in range(8):
|
||||||
|
class_name = classes[i//4]
|
||||||
|
if class_name == "TTLInOut":
|
||||||
|
self.gen("""
|
||||||
|
device_db["{name}"] = {{
|
||||||
|
"type": "local",
|
||||||
|
"module": "artiq.coredevice.edge_counter",
|
||||||
|
"class": "EdgeCounter",
|
||||||
|
"arguments": {{"channel": 0x{channel:06x}}},
|
||||||
|
}}
|
||||||
|
""",
|
||||||
|
name=self.get_name("ttl_counter"),
|
||||||
|
channel=rtio_offset+next(channel))
|
||||||
|
return next(channel)
|
||||||
|
|
||||||
# TODO: support 1-EEM mode
|
# TODO: support 1-EEM mode
|
||||||
def process_urukul(self, rtio_offset, peripheral):
|
def process_urukul(self, rtio_offset, peripheral):
|
||||||
|
|
Loading…
Reference in New Issue