Skip to content

Commit 8be265b

Browse files
wanda-phiwhitequark
authored andcommitted
machxo3_sk: add MachXO3L and MachXO3LF variants.
1 parent 0e1054b commit 8be265b

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

amaranth_boards/machxo3_sk.py

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
import os
2+
import argparse
23
import subprocess
34

45
from amaranth.build import *
56
from amaranth.vendor import LatticeMachXO3LPlatform
67
from .resources import *
78

89

9-
__all__ = ["MachXO3SKPlatform"]
10+
__all__ = ["MachXO3LSKPlatform", "MachXO3LFSKPlatform"]
1011

1112

12-
class MachXO3SKPlatform(LatticeMachXO3LPlatform):
13-
device = "LCMXO3LF-6900C"
13+
class _MachXO3SKPlatform(LatticeMachXO3LPlatform):
1414
package = "BG256"
1515
speed = "5"
1616
default_clk = "clk12"
@@ -69,6 +69,27 @@ def toolchain_program(self, products, name):
6969
subprocess.check_call([openFPGALoader, bitstream_filename])
7070

7171

72+
class MachXO3LSKPlatform(_MachXO3SKPlatform):
73+
device = "LCMXO3L-6900C"
74+
75+
76+
class MachXO3LFSKPlatform(_MachXO3SKPlatform):
77+
device = "LCMXO3LF-6900C"
78+
79+
7280
if __name__ == "__main__":
7381
from .test.blinky import *
74-
MachXO3SKPlatform().build(Blinky(), do_program=True)
82+
83+
variants = {
84+
'MachXO3L': MachXO3LSKPlatform,
85+
'MachXO3LF': MachXO3LFSKPlatform,
86+
}
87+
88+
# Figure out which FPGA variant we want to target...
89+
parser = argparse.ArgumentParser()
90+
parser.add_argument('variant', choices=variants.keys())
91+
parser.add_argument('toolchain', nargs="?", choices=["Trellis", "Diamond"], default="Trellis")
92+
args = parser.parse_args()
93+
94+
platform = variants[args.variant]
95+
platform(toolchain=args.toolchain).build(Blinky(), do_program=True)

0 commit comments

Comments
 (0)