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.
This commit is contained in:
whitequark 2019-06-04 16:09:08 +00:00
parent 4379a5d6fe
commit 452c4b380b

View file

@ -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