Files
Adat/gateware/attic/tinybx_luna.py
2026-03-13 19:58:28 +03:00

57 lines
1.4 KiB
Python

"""
use the LUNA usb config for the tinyFPGA-Bx
add some pins (at random) for adat and debug
create an audio clock domain
Issues:
The audio clock is just a carbon copy of usb 12MHz because the Bx only has one PLL.
"""
import os
import logging
import subprocess
from amaranth import *
from amaranth.build import *
from amaranth_boards.resources import *
from luna.gateware.platform.tinyfpga import TinyFPGABxPlatform, TinyFPGABxDomainGenerator
class TinyBxAdatDomainGenerator(Elaboratable):
""" Creates audio clock domains on top of the LUNA domains for the TinyFPGA Bx. """
def elaborate(self, platform):
m = TinyFPGABxDomainGenerator.elaborate(self, platform)
# Create our domains...
m.domains.adat = ClockDomain()
m.d.comb += [
ClockSignal("adat").eq(ClockSignal("usb")),
ResetSignal("adat").eq(ResetSignal("usb")),
]
return m
class TinyBxAdatPlatform(TinyFPGABxPlatform):
clock_domain_generator = TinyBxAdatDomainGenerator
number_of_channels = 4
bitwidth = 24
def __init__(self):
self.resources += [
Resource("adat", 0,
Subsignal("tx", Pins("A2", dir="o")),
Subsignal("rx", Pins("A1", dir="i")),
Attrs(IO_STANDARD="SB_LVCMOS")),
Resource("debug_led", 0, Pins("C9 A9 B8 A8 B7 A7 B6 A6", dir="o"),
Attrs(IO_STANDARD="SB_LVCMOS")),
]
super().__init__(toolchain="IceStorm")