Corelis - An EWA Company  
   
Bringing You High Performance...
 
 

Boundary-Scan Blog

   
   
« JTAG Programming of CPLDs & FPGAs: Indirectly Programmable Configuration DeviceJTAG Boundary-scan Tip: Phase-locked Loops (PLLs) in Clock Buffers »

JTAG Programming of CPLDs & FPGAs

07/28/10

Permalink 08:00:56 pm, by admin Email , 478 words
Categories: JTAG Boundary-Scan

JTAG Programming of CPLDs & FPGAs

Introduction
In-system programming (ISP) of CPLDs & FPGAs is a key application of JTAG. Most modern CPLDs & FPGAs include a JTAG port for programming and boundary-scan tests, and each vendor provides the software to generate an SVF or STAPL/JAM file for execution in ScanExpress Runner or Programmer.

In this topic we'll discuss the basic topologies—with respect to JTAG and ISP—of CPLDs, FPGAs, and Configuration Devices and how each one affects our approach to ISP. For the purposes of this discussion, we’ll keep the topic vendor agnostic—the methods for each vendor are remarkably similar.

CPLDs
CPLDs present the simplest case: the lack of external configuration devices means that you’ll be directly programming the logic device through JTAG. Creating a JTAG programming file should be a straightforward process when using the appropriate vendor’s software—usually a matter specifying the part number, the configuration data, then generating the SVF or STAPL/JAM file.

It should be noted that some CPLDs internal “configure” on power up, loading data from an internal Flash to an internal SRAM. In this respect, they resemble FPGAs. Additionally, some modern FPGAs include non-volatile memory as well, further blurring the lines between FPGAs and CPLDs. Fear not—with respect to ISP, these CPLDs may be treated the same as traditional CPLDs.

FPGAs
FPGAs present some complications due to their volatile nature. Rarely will it be necessary to program an FPGA through JTAG—instead, we want to program the configuration device such that the next time (and any subsequent times) the board boots, it will load the new configuration data. 

FPGA and configuration device connections usually come in one of two flavors:
  1. The FPGA and configuration device are both connected to the scan chain. The configuration device may be programmed directly through JTAG.

  2. FPGA is on the scan chain, but the configuration device does not have a JTAG port. The configuration device must be programmed indirectly through the FPGA.

JTAG Programmable Configuration Device
We’ll first examine the case of a JTAG programmable configuration device, as shown below. Since we have direct JTAG access to the configuration device, it is simply a matter of scanning out the correct instructions and data. The vendor’s generated SVF or STAPL/JAM file will be ideal.

JTAG programmable configuration device
Figure 1: JTAG programmable configuration device

Note that since the FPGA’s connection (other than TDO to TDI) is not necessary for programming, the FPGA’s boundary-scan register does not need to be scanned each time. Configuration devices generally have few pins. Taking these two factors together, we observe that programming through JTAG is very efficient in this case, and can result in significantly better programming times than the cases we’ll explore next.

When a JTAG connection is available on the configuration device or CPLD, programming is about as simple as it can get. In the next post, we’ll discuss how to deal with FPGAs that utilize non-JTAG configuration devices.

Leave a comment at our forum >

Media Contact: Ryan Jones

Search

RSS Feed - Latest Posts

This site features posts from the Corelis Support and Engineering team for the purpose of helping to educate other engineers and students alike about Boundary-Scan technology, testing, and maximizing productivity.

XML Feeds

May 2012
Sun Mon Tue Wed Thu Fri Sat
 << <   > >>
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
Online Marketing BlogCatalog Globe of Blogs Bloggapedia, Blog Directory - Find It! Blog Listings