aboutsummaryrefslogtreecommitdiff
path: root/amaranth_boards/ebaz4205.py
blob: eb4a6928e96ce48425c2906a1feaa56d55f04f06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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)