Programming File Generation

Discuss the generic proposals for SJTAG
User avatar
Tim Pender
SJTAG Member
Posts: 19
Joined: Wed Mar 12, 2008 9:21 pm
Location: Eastman Kodak, Rochester, NY

Programming File Generation

Post by Tim Pender »

Programming file generation
For example if you have two plds, when you create the STAPL file you need to tell the file generator the number of devices in the chain.
Should a programming file be created for each individual device or all devices?
I would usually create several combinations. u1_only.jbc u2_only.jbc (one device chain) and both u1_u2.jbc (two device chain). If you only created the both_u1_u2.jbc programming file you could not program just one device.
The several piece meal test files were created by our expensive Jtag test development software then export them to our inexpensive stapl player embedded in the product.

Consider file size, if only one device needs to be updated do you really want to program all of the devices.
User avatar
Ian McIntosh
Posts: 504
Joined: Mon Nov 05, 2007 11:49 pm
Location: Leonardo, UK

Post by Ian McIntosh »

I generate the programming files for individual devices only. If I need to program multiple devices at the same time, then I'll "script" those operations together. There are a couple reasons behind this:
  1. There may be a sensitivity to the order in which devices are programmed that may not be reflected by the chain order (or if there are multiple chains), e.g. chain A has a FPGA and a config PROM, chain B has a CPLD. The CPLD controls the power up of the devices in chain A, so I must program chain B before I can use chain A.
  2. As you note, I may only need to update one device in a chain, so why waste time on things that aren't broken? Also, some devices have quite limited re-programmability (e.g. the Lattice Mach4A CPLDS are only spec'd for 100 program ops, if I recall correctly), so why burn them out needlessly?
  3. Parochial point maybe, but the config control paperwork, design proving and QA issues are easier managed if I only update specific devices.