1255 - Lattice Diamond: How to locate DCS in preference file for FPGA?

1255 - Lattice Diamond: How to locate DCS in preference file for FPGA?

Lattice Diamond: DCS is a Digital clock select, a clock multiplexer, which is available in devices such as LatticeSC/M, LatticeXP2, LatticeECP2/M and LatticeECP3.

How to assign DCS locations in .lpf preference file?

The syntax is shown in the following example:

LOCATE COMP "xxxx" SITE "DCSTB" ;

The "xxxx" is the instantiation name in your VHDL or Verilog code.

The DCS locations in LatticeSC family are at four edges -- two per edge.
DCSTA, DCSTB
DCSLA, DCSLB
DCSRA, DCSRB
DCSBA, DCSBB
where the letter right after "DCS" shows the edge the DCS is located: T is top, L is left, R is right, B is bottom.

The DCS locations in LatticeXP2, LatticeECP2/M and LatticeECP3 families are near the Center Switch Box -- two per quadrant.
ULDCS1, ULDCS0
URDCS1, URDCS0
LLDCS1, LLDCS0
LRDCS1, LRDCS0
where UL is upper-left, UR is upper-right, LL is lower-left, LR is lower-right.

These examples (in VHDL or Verilog) can be found in apps note for those devices that has DCS available.  Here is one for XP2, ECP2/M and ECP3 in Verilog:

DCS dcs_inst (.CLK1(DCS_clkin1), .CLK0(DCS_clkin0), .SEL(DCS_sel), .DCSOUT(DCS_clkout));

In the preference file, you can assign its location like this:

LOCATE COMP "dcs_inst" SITE "LLDCS0" ;