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 amaranth.vendor.lattice_machxo_2_3l.LatticeMachXO2Or3LPlatform

amaranth.vendor.lattice_machxo_2_3l.LatticeMachXO3LPlatform

alias of amaranth.vendor.lattice_machxo_2_3l.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.