Programming the CPLD

Step-by-step

  1. Install the Diamond Programmer by Lattice and clone the CPLD repository, see Install Lattice Toolchain (CPLD) for details.

  2. Remove the programmer (normally used for programming the Zynq) from X8 of the Carrier Board.

../../_images/Programmer_Zynq_position.jpg
  1. Set the DIP-switches S2 on the programmer to (1on-2off-3off-4off).

  2. Plug the programmer onto X1. Make sure that the hole in the programmer aligns exactly with the mounting hole on the carrier board.

../../_images/Programmer_CPLD_position.jpg
  1. Have all jumpers on the Carrier Board plugged on to X2 to create the daisy chain. This step is not necessary for Rev04 and later.

../../_images/jumper_chain.png ../../_images/schematic.png
  1. Start the Diamond Programmer by Lattice and open the file in the git Programm_all5_CPLDs.xcf

../../_images/diamond_programmer_getting_started2.png
  1. Chose the proper CPLD software and chose which CPLDs you want to program. The standard configuration is:

    • D1-D4 with 26Tx_with_enable

    • D5 for the encoder with 30Rx

Note that it is possible to program only one of the CPLDs by the enable check box in each line.

../../_images/diamond_programmer_settings.jpg
  1. Plug in the USB cable and turn on the power of the UltraZohm. The programmer on X1 should light up.

  2. Click on “Program”, after successful programming it should look like this:

../../_images/diamond_programmer_successful_closeup.png
  1. Turn off the UltraZohm. Remove the programmer from X1 of the Carrier Board, put the DIP switches back in their original position (1on-2off-3off-4on) and plug it back to X8 next to the Zynq processor. Make sure that the mounting hole in the programmer aligns exactly with the hole on the carrier board.

../../_images/Programmer_Zynq_position.jpg

Known issues

Not possible to find the CPLDs

../../_images/error_cannot_find_cplds.png

Close all Vivado and Vitis instances and retry. Restart your PC and retry.

See also