FPGA Update

The logic on the CoCoVGA main board is mostly contained within the larger surface-mounted FPGA. FPGA stands for Field Programmable Gate Array. This means that in the field (such as in your home or office), you may upgrade the configuration of the hardware logic gates within the FPGA chip using a hardware release provided via this web site. This programming/configuration is performed serially by way of a protocol defined by and therefore known as JTAG (Joint Test Action Group).

From time-to-time, new CoCoVGA FPGA hardware releases may be made to fix bugs or provide feature enhancements. These can be used either temporarily (by programming the CoCoVGA FPGA directly) or permanently, by updating the flash memory on the CoCoVGA main board.

Requirements

You will need:

  1. an Altera Byte Blaster USB cable
  2. Quartus Prime Pro Edition Programmer and Tools software for your PC (more details in step 2, below)
  3. an FPGA image from the Downloads page, either:
    • .sof file for temporary updates - OR -
    • .jic file for permanent updates

Pictured below is one example of an Altera Byte Blaster USB cable:

If you happen to have one with a circuit-board style adapter, instead, use these pictures to help you orient the adapter and USB Blaster correctly:

Procedure

  1. If you have not already installed your CoCoVGA main board in your computer, please do so. See Installation for more information.
  2. If you do not already have it installed, download and install the Quartus Prime Pro Edition Programmer and Tools provided on Intel/Altera's web site. It may be necessary to sign up for a free account. From the link, select the Additional Software tab, then under Stand-Alone Software, check only Quartus Prime Pro Edition Programmer and Tools and click Download Selected Files. (At this time, only the Windows version of the Quartus Prime Programmer has been tested. It may be possible to use the Linux version of the Quartus Prime Programmer if permissions are set properly.)
  3. Turn off your computer which has CoCoVGA installed in it and disconnect disk drives, IDE/SDC/MMC/flash and other data storage peripherals.
  4. Plug in your Altera Byte Blaster USB cable, first to an available USB port on your computer, and then to the small JTAG header connector on your CoCoVGA main board (labeled "JTAG").
  5. Turn on the computer which has CoCoVGA installed in it.
  6. Start up the Quartus Prime Programmer Pro Edition.
  7. Click "Hardware Setup..." and select the USB Blaster plugged into one of your USB ports. Close this pop-up. If your computer is unable to recognize the USB Blaster it may not show up in the list, in which case, please see Troubleshooting, below.
  8. If you have an AMC2 board, then skip to step 11, otherwise, continue with step 9.
  9. (Only for F1, AMC3, KMC1, T1) Click the "Auto Detect" button. The programmer will ask you to select a device. Click the radio button by EP4CE6 and then OK. A window may pop up saying that "The auto-detected device chain does not match the Programmer's device list." Click Yes.
  10. (Only for F1, AMC3, KMC1, T1) Left click once on the "UNKNOWN_29604093" device and then right click once on the same device, select Edit > Change Device... Scroll to the bottom of the "Device family" list and click "User Defined". (In the "Device name" list, if "XC9572XL-VQ64" is not listed, click New... and enter this name into the "Device Name:" blank. If a mask is required, the default is ok. Then click OK.) In the "Device name" list, click the checkbox next to "XC9572XL-VQ64" and then OK.
  11. Left click once on the "EP4CE6E22" device and then the "Change File..." button from the left (or alternatively, right click on the "EP4CE6E22" device and select Edit > Change File). Select the .sof or .jic file you would like to program. For a .sof file, ensure that Program/Configure is checked for only the EP4CE6E22 (which should be the first and perhaps only device in the list). For a .jic file, ensure that Program/Configure is checked for the EPCS16 device (this will also check the EP4CE6, which is ok). Verify and Blank-Check are optional, but should also only be applied to the EP4CE6E22 or EPCS16 device.
  12. Click Start to begin programming.
  13. See below for next steps - generally, a temporary .sof causes automatic FPGA reconfiguration whereas a .jic is permanent and requires power cycling your system upon completion of the programming step.

.sof

If programming a temporary .sof, the "Progress:" bar should reach "100% (Successful)" and then CoCoVGA should reconfigure itself and you should see the appropriate version number in the banner. This configuration will stay present and active within the FPGA until you either reboot your CoCo or Dragon or press the "RECONFIG" button on the CoCoVGA main board.

AMC2 example:

AMC3, F1, KMC1, T1 example:

.jic

If programming a permanent .jic, wait until the "Progress:" bar has reached "100% (Successful)" and then power-cycle your CoCo or Dragon. Once your VGA monitor syncs, you should see the appropriate version number in the banner.

AMC2 example:

AMC3, F1, KMC1, T1 example:

Troubleshooting

Marty Jenkins, after having some difficulty with recognizing his USB blaster from Windows, provided this document which may help those who are having trouble with their FPGA update in versions of Windows from 7 to 10. Thank you, Marty!