41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
import os
|
|
import subprocess
|
|
|
|
from amaranth.build import *
|
|
from amaranth.vendor.xilinx_7series import *
|
|
from .resources import *
|
|
|
|
|
|
__all__ = ["EBAZ4205Platform"]
|
|
|
|
|
|
class EBAZ4205Platform(Xilinx7SeriesPlatform):
|
|
device = "xc7z010"
|
|
package = "clg400"
|
|
speed = "1"
|
|
default_clk = "clk33_333"
|
|
resources = [
|
|
Resource("clk33_333", 0,
|
|
Pins("N18", dir="i"), Clock(33.333e6), Attrs(IOSTANDARD="LVCMOS33")),
|
|
|
|
*LEDResources(
|
|
pins="W14 W13",
|
|
attrs=Attrs(IOSTANDARD="LVCMOS33")),
|
|
|
|
UARTResource(0,
|
|
rx="B19", tx="B20",
|
|
attrs=Attrs(IOSTANDARD="LVCMOS33")),
|
|
]
|
|
connectors = [
|
|
]
|
|
|
|
def toolchain_program(self, products, name, **kwargs):
|
|
xc3sprog = os.environ.get("XC3SPROG", "xc3sprog")
|
|
with products.extract("{}.bit".format(name)) as bitstream_filename:
|
|
subprocess.run([xc3sprog, "-c", "jtaghs1_fast", "-p", "1", bitstream_filename], check=True)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
from .test.blinky import *
|
|
EBAZ4205Platform().build(Blinky(), do_program=True)
|