Lattice MachXO2 and MachXO3L

The amaranth.vendor.lattice_machxo_2_3l module provides a base platform to support Lattice MachXO2 and MachXO3L devices.

The Diamond toolchain is supported.

amaranth.vendor.lattice_machxo_2_3l.LatticeMachXO2Platform

alias of LatticeMachXO2Or3LPlatform

amaranth.vendor.lattice_machxo_2_3l.LatticeMachXO3LPlatform

alias of LatticeMachXO2Or3LPlatform

Note

Both of the above are aliases for the actual platform below, however only the aliased definitions are actually exported from the module for use.

class amaranth.vendor.lattice_machxo_2_3l.LatticeMachXO2Or3LPlatform
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 (named diamond_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 before prj_project save in Tcl script.

  • script_after_export: inserts commands after prj_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}}.jed: JEDEC fuse file.

  • {{name}}.bit: binary bitstream.

  • {{name}}.svf: JTAG programming vector for FLASH programming.

  • {{name}}_flash.svf: JTAG programming vector for FLASH programming.

  • {{name}}_sram.svf: JTAG programming vector for SRAM programming.