73742231ddde4213b37b115596947c64640f6ebf
[litex.git] / migen / build / lattice / platform.py
1 from migen.build.generic_platform import GenericPlatform
2 from migen.build.lattice import common, diamond
3
4
5 class LatticePlatform(GenericPlatform):
6 bitstream_ext = ".bit"
7
8 def __init__(self, *args, toolchain="diamond", **kwargs):
9 GenericPlatform.__init__(self, *args, **kwargs)
10 if toolchain == "diamond":
11 self.toolchain = diamond.LatticeDiamondToolchain()
12 else:
13 raise ValueError("Unknown toolchain")
14
15 def get_verilog(self, *args, special_overrides=dict(), **kwargs):
16 so = dict(common.lattice_special_overrides)
17 so.update(special_overrides)
18 return GenericPlatform.get_verilog(self, *args, special_overrides=so, **kwargs)
19
20 def build(self, *args, **kwargs):
21 return self.toolchain.build(self, *args, **kwargs)
22
23 def add_period_constraint(self, clk, period):
24 if hasattr(clk, "p"):
25 clk = clk.p
26 self.toolchain.add_period_constraint(self, clk, period)