boards/ulx3s: add device selection parameter
authorFlorent Kermarrec <florent@enjoy-digital.fr>
Mon, 4 Mar 2019 08:40:14 +0000 (09:40 +0100)
committerFlorent Kermarrec <florent@enjoy-digital.fr>
Mon, 4 Mar 2019 08:40:14 +0000 (09:40 +0100)
ULX3S can be populated with LFE5U-45F (default) or LFE5U-85F

litex/boards/platforms/ulx3s.py
litex/boards/targets/ulx3s.py

index c1815848b674411abb2a6d5098c9b45423e153ab..b10ab673d59cacc289c80f461a5b0011307d5bdb 100644 (file)
@@ -69,5 +69,5 @@ class Platform(LatticePlatform):
     default_clk_name = "clk100"
     default_clk_period = 10
 
-    def __init__(self, **kwargs):
-        LatticePlatform.__init__(self, "LFE5U-45F-6BG381C", _io, **kwargs)
+    def __init__(self, device="LFE5U-45F", **kwargs):
+        LatticePlatform.__init__(self, device + "-6BG381C", _io, **kwargs)
index 28da467fb420145d6c6e1de1fe8396c116c278eb..ed7e7350cb38a7574dd9241342288526d38b3c9e 100755 (executable)
@@ -46,8 +46,7 @@ class _CRG(Module):
 # BaseSoC ------------------------------------------------------------------------------------------
 
 class BaseSoC(SoCSDRAM):
-    def __init__(self, toolchain="diamond", **kwargs):
-        platform = ulx3s.Platform(toolchain=toolchain)
+    def __init__(self, platform, **kwargs):
         sys_clk_freq = int(50e6)
         SoCSDRAM.__init__(self, platform, clk_freq=sys_clk_freq,
                           integrated_rom_size=0x8000,
@@ -68,11 +67,14 @@ def main():
     parser = argparse.ArgumentParser(description="LiteX SoC on ULX3S")
     parser.add_argument("--gateware-toolchain", dest="toolchain", default="diamond",
         help='gateware toolchain to use, diamond (default) or  trellis')
+    parser.add_argument("--device", dest="device", default="LFE5U-45F",
+        help='FPGA device, ULX3S can be populated with LFE5U-45F (default) or LFE5U-85F')
     builder_args(parser)
     soc_sdram_args(parser)
     args = parser.parse_args()
 
-    soc = BaseSoC(toolchain=args.toolchain, **soc_sdram_argdict(args))
+    platform = ulx3s.Platform(device=args.device, toolchain=args.toolchain)
+    soc = BaseSoC(platform, **soc_sdram_argdict(args))
     builder = Builder(soc, **builder_argdict(args))
     builder.build()