Lattice ECP5
The amaranth.vendor.lattice_ecp5
module provides a base platform to support Lattice ECP5 devices.
The Trellis and Diamond toolchains are supported.
- class amaranth.vendor.lattice_ecp5.LatticeECP5Platform(*, toolchain='Trellis')
Trellis toolchain
- Required tools:
yosys
nextpnr-ecp5
ecppack
The environment is populated by running the script specified in the environment variable
AMARANTH_ENV_TRELLIS
, if present.- Available overrides:
verbose
: enables logging of informational messages to standard error.read_verilog_opts
: adds options forread_verilog
Yosys command.synth_opts
: adds options forsynth_ecp5
Yosys command.script_after_read
: inserts commands afterread_ilang
in Yosys script.script_after_synth
: inserts commands aftersynth_ecp5
in Yosys script.yosys_opts
: adds extra options foryosys
.nextpnr_opts
: adds extra options fornextpnr-ecp5
.ecppack_opts
: adds extra options forecppack
.add_preferences
: inserts commands at the end of the LPF file.
- Build products:
{{name}}.rpt
: Yosys log.{{name}}.json
: synthesized RTL.{{name}}.tim
: nextpnr log.{{name}}.config
: ASCII bitstream.{{name}}.bit
: binary bitstream.{{name}}.svf
: JTAG programming vector.
Diamond toolchain
- Required tools:
pnmainc
ddtcmd
The environment is populated by running the script specified in the environment variable
AMARANTH_ENV_DIAMOND
, if present. On Linux, diamond_env as provided by Diamond itself is a good candidate. On Windows, the following script (nameddiamond_env.bat
, for instance) is known to work:@echo off set PATH=C:\lscc\diamond\%DIAMOND_VERSION%\bin\nt64;%PATH%
- Available overrides:
script_project
: inserts commands beforeprj_project save
in Tcl script.script_after_export
: inserts commands afterprj_run Export
in Tcl script.add_preferences
: inserts commands at the end of the LPF file.add_constraints
: inserts commands at the end of the XDC file.
- Build products:
{{name}}_impl/{{name}}_impl.htm
: consolidated log.{{name}}.bit
: binary bitstream.{{name}}.svf
: JTAG programming vector.
- toolchain = None
- property required_tools
A decorator indicating abstract properties.
Deprecated, use ‘property’ with ‘abstractmethod’ instead:
- class C(ABC):
@property @abstractmethod def my_abstract_property(self):
…
- property file_templates
A decorator indicating abstract properties.
Deprecated, use ‘property’ with ‘abstractmethod’ instead:
- class C(ABC):
@property @abstractmethod def my_abstract_property(self):
…
- property command_templates
A decorator indicating abstract properties.
Deprecated, use ‘property’ with ‘abstractmethod’ instead:
- class C(ABC):
@property @abstractmethod def my_abstract_property(self):
…