®
Altera Corporation 213
Concurrent Programming
through the JTAG
Interface for MAX Devices
February 1998, ver. 2 Product Information Bulletin 26
A-PIB-026-02
Introduction
In a high-volume printed circuit board (PCB) manufacturing
environment, time-to-market is critical for designers. For this reason,
Altera offers designers and manufacturing engineers programming
options that minimize production time and increase throughput. One of
these options is concurrent programming, which is the simultaneous
programming of multiple complex programmable logic devices (CPLDs)
that support in-system programmability (ISP). This product information
bulletin compares concurrent programming to traditional CPLD
programming (i.e., sequential programming), and discusses concurrent
programming through the IEEE 1149.1 Joint Test Action Group (JTAG)
interface for Altera
¨
MAX
¨
9000 (including MAX 9000A), MAX 7000S,
and MAX 7000A devices.
Concurrent
Programming
vs. Sequential
Programming
Concurrent programming can decrease in-system programming time
when programming a board with multiple ISP-capable CPLDs or with
only a few CPLDs. The time required to program multiple ISP-capable
CPLDs is slightly longer than the time required to program the largest
device on a PCB. In contrast, sequential programming requires devices to
be programmed one device at a time; thus, the sequential programming
time is equal to the sum of the individual programming times for each
CPLD.
Table 1 compares concurrent programming and sequential programming
times for a PCB with 18 devices. With sequential programming, an
additional 65 seconds is needed to program the PCB compared to
concurrent programming. In a high-volume manufacturing environment,
where thousands of boards may need to be programmed and tested,
concurrent programming can substantially reduce the time needed to
bring a product to market.
Table 1. Comparison of Concurrent Programming vs. Sequential Programming
Programming Devices per Board Programming Time per
Device (Seconds) Total Programming
Time (Seconds)
Concurrent programming 18 4 7
Sequential programming 18 4 72