From 452c4b380b15b9d53abd6c66e637b1466cf00f98 Mon Sep 17 00:00:00 2001 From: whitequark Date: Tue, 4 Jun 2019 16:09:08 +0000 Subject: [PATCH] vendor.lattice_ice40: normalize device names. Right now the device name in the board file is just the option nextpnr uses, but that's overnormalized and doesn't quite match the chip names used elsewhere. It is even worse for ECP5 in terms of mismatch with chip names, and for ECP5 we need to support other toolchains as well, so let's handle this uniformly everywhere. --- nmigen/vendor/lattice_ice40.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/nmigen/vendor/lattice_ice40.py b/nmigen/vendor/lattice_ice40.py index ab33856..5b4d7aa 100644 --- a/nmigen/vendor/lattice_ice40.py +++ b/nmigen/vendor/lattice_ice40.py @@ -35,6 +35,18 @@ class LatticeICE40Platform(TemplatedPlatform): device = abstractproperty() package = abstractproperty() + _nextpnr_device_options = { + "iCE40LP384": "--lp384", + "iCE40LP1K": "--lp1k", + "iCE40LP4K": "--lp8k", + "iCE40LP8K": "--lp8k", + "iCE40HX1K": "--hx1k", + "iCE40HX4K": "--hx8k", + "iCE40HX8K": "--hx8k", + "iCE40UP5K": "--up5k", + "iCE5LP4K": "--u4k", + } + file_templates = { **TemplatedPlatform.build_script_templates, "{{name}}.il": r""" @@ -83,8 +95,8 @@ class LatticeICE40Platform(TemplatedPlatform): {{quiet("-q")}} {{get_override("nextpnr_opts")|default(["--placer","heap"])|join(" ")}} -l {{name}}.tim - --{{platform.device}} - --package {{platform.package}} + {{platform._nextpnr_device_options[platform.device]}} + --package {{platform.package|lower}} --json {{name}}.json --pcf {{name}}.pcf --pre-pack {{name}}_pre_pack.py -- 2.30.2