A method for programming of a plurality of programmable devices arranged
in a JTAG boundary scan chain takes advantage of knowledge of a target
system. The method speeds device programming and reduces system memory
requirements. Raw data is extracted from high-level files. The raw data
is stored in the target system. JTAG boundary scan chain information is
coded into device programming software. Alternatively, the JTAG chain
information is stored as data in the target system. The device
programming software treats JTAG I/O registers of the programmable
devices as concatenated shift registers. Data packets are assembled that
include, for example, a byte of programming information, for each of the
devices. The packets are shifted through into the JTAG chain. Bytes of
the packet are aligned with, and loaded into, respective devices.
Optionally, the validity of data loaded is checked by comparing it to the
stored raw data. Invalid data is reprogrammed.