re-bba-rb/re-bba/ReBba/amaranth_boards/ebaz4205.py

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)