Lattice MachXO2 and MachXO3L

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

The Diamond toolchain is supported.


alias of nmigen.vendor.lattice_machxo_2_3l.LatticeMachXO2Or3LPlatform


alias of nmigen.vendor.lattice_machxo_2_3l.LatticeMachXO2Or3LPlatform


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 nmigen.vendor.lattice_machxo_2_3l.LatticeMachXO2Or3LPlatform
Required tools:
  • pnmainc

  • ddtcmd

The environment is populated by running the script specified in the environment variable NMIGEN_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.