2214 - Diamond: What is the procedure to prevent unused IO logic from getting optimized out during Synthesis and MAP in Lattice Diamond, while using GUI or Active-HDL batch mode?

2214 - Diamond: What is the procedure to prevent unused IO logic from getting optimized out during Synthesis and MAP in Lattice Diamond, while using GUI or Active-HDL batch mode?

Lattice Diamond tool prevents unused, unconnected IO logic from getting generated, but sometimes user might want to keep a particular IO assignment and the related logic.

Below is the procedure to prevent unwanted optimization:

  • add the following attributes for preventing the optimization during synthesis to the source code:
    • e.g. input clk, rst, test /* synthesis syn_force_pads=1 syn_noprune=1*/;
  • In the Lattice Diamond active Strategy, go to MAP> Design > command line options >add "-u"

This argument will prohibit Mapper from removing unused logic.

 For Active-HDL batch mode:

There is a check box in the Mapper window called “remove unused logic”. Unchecking this box will add "-u" to the mapper command line options resulting in the “-s 5 -o” section of the mapper command line arguments being changed to “-s 5 –u -o”. This will let the user keep unused IO logic.