Design Feature: September 26, 1996
Four
years ago, Lattice Semiconductor introduced the first nonvolatile in-system
programmable (ISP) device, the ispLSI 1000. Since then, the number of companies
that offer erasable PLDs with ISP has grown to five. Most companies that
produce these devices say they will soon introduce only high-density PLDs with
ISP. These companies claim that designers consider ISP a must-have capability.
According to the manufacturers, if designers aren't using ISP now, then they
will be using it in the near future. The reason for the fast growth and wide
acceptance of ISP devices is no mystery. ISP devices provide tangible benefits
during product development, manufacturing, and field support.
At the design-development stage, you can use the same ISP device package for your prototype system that you will use in production, and you can solder it to the pc board without a socket. ISP allows you to program the device in the system (numerous times, if necessary) until the design functions correctly. The electrically erasable and flash technologies used for the ISP devices let you reprogram devices in either a few seconds or a few minutes, depending on the devices and the programming methods you use. Even before ISP, designers were reprogramming devices or programming new ones to correct design errors. ISP makes the process simpler and faster. You don't have to use special sockets for surface-mount devices or remove them for programming.
Designers that work with PLDs use a wider spectrum of design methodologies than ASIC designers typically use. ASIC designers strive for and often achieve first-pass success. Economic consequences make it imperative. First-pass success takes careful, deliberate work, including full simulation of the device and the system. Some PLD designers use the same methods with the same dedication to first-pass success as ASIC designers. Indeed, some designers perform both types of design. Other designers take a shoot-from-the-hip approach, using little, if any, simulation. Most designers probably fall somewhere in between.
All of the ISP-device families provide at least 100 program/erase cycles, and some guarantee 10,000 cycles (Table 1). To get your design right, 100 attempts should be ample, even for a shoot-from-the-hip designer. If it isn't, you would probably benefit from taking a more thorough approach to simulation, rather than migrating to a PLD family that offers 10,000 program/erase cycles.
The flexibility to program and reprogram a device in-circuit even lets you create a board design and send it off for layout and fabrication as you work out the details of the logic that goes into the PLD. Paralleling your logic- and board-design efforts lets you work with a very aggressive schedule, potentially shortening your time to market.
Sometimes the paralleled-design approach succeeds, but you have to be aware of the pitfalls of assigning a PLD and fixing the pins before designing the logic that goes into the PLD. There are three potential problems: pin fixing, logic capacity, and speed.
Pin
fixing, or "pin locking," is when you assign pins on a device to
specific I/O functions and don't allow them to move later in the design
process. When you assign pins without regard for the logic operations being
performed by the device, pin fixing can get you into trouble. Some
architectures offer extreme design flexibility. For those devices, pin
assignments are unimportant, except for dedicated functions, such as input-only
pins, global clocks, and resets. Logic can move to different macrocells on the
chip to accommodate pin assignments, or routing resources can connect the logic
function with the selected pin. Devices with less pin-fixing flexibility can
suffer from reduced performance or from a complete inability to route if you use
pin fixing with nonoptimum pin assignments.
ISP devices that can accommodate design changes when pin assignments remain fixed can save you time and money by eliminating the need to redesign a pc board. Because the ability to make design changes when pin assignments remain fixed is so important, it's not surprising that each manufacturer of ISP devices claims its architecture supports pin fixing. Although every PLD architecture accommodates some degree of logic change after you lock down your pin assignments, most architectures have limitations in the magnitude of the changes they can accommodate. Examining the architectural details of the device families you are considering should give you some subjective feeling for the flexibility in regard to pin locking.
The more conservative approach to pin locking is to design the logic for the PLD and then to create a pin assignment for the device from that logic implementation. Then, you can lock the pins and have greater confidence that incremental changes to the design will still work with your original pin assignments.
If you select a device with insufficient logic resources, the problem won't be fixed by changing pin assignments. You need a device with more logic resources. Some manufacturers of PLDs provide a simple solution to this problem by providing a range of logic capacities for each package size. By selecting a device that has more or fewer macrocells in the same package, you can alter the logic available later without a new design layout.
A range of logic capacities within the same package means you can move not only to a more expensive device with more logic resources if necessary, but also to a less expensive device with fewer logic resources if it turns out you need fewer macrocells than you originally thought.
If the device you select isn't fast enough, you may be able to change to a higher speed device. Pin fixing, logic capacity, and speed can also end up working together.
For example, you can overcome pin-fixing limitations by taking a second pass through additional logic resources, but the result may be too slow for your application. Changing pin assignments can help you regain lost speed and reduce the logic resources you need.
ISP offers attractive features during the design and prototyping stages of a system. It can speed the design process, and it can bail you out of problems after you have hardware. If you are lulled into complacency by being able to reprogram your way out of any mess, you will eventually be burned. The best approach is a conservative one until you gain the experience to know what changes you can get away with.
How does ISP compare with other types of PLDs? |
| ISP logic traditionally refers to
one generic group of PLDs, the nonvolatile reprogrammable devices sandwiched
between one-time-programmable (OTP) fuse- or antifuse-based devices on one side
and infinitely reprogrammable SRAM-based devices on the other side. There are
also other nonvolatile reprogrammable devices that don't offer ISP's benefits.
The flexibility to reprogram devices both during development and in the field is available not only from ISP devices, but also from SRAM-based PLDs. The infinite-reprogrammability feature of SRAM-based devices is an asset for applications designed to take advantage of the extreme flexibility. Applications that do not require extreme reprogramming flexibility might find the volatile memory of SRAM devices and the need to program them every time they are powered up a liability instead of an asset. OTP devicesOTP devices are not generally ISP and can be divided into two classes. The first are small, fast, power-hungry PLDs, such as the long-popular 22V10 devices. Demand for these types of devices in new designs is dropping as designers opt for denser, less power-hungry logic. The other group of OTP devices include higher density PLDs (including FPGAs) that use antifuse technology from companies such as Actel (Sunnyvale, CA), Crosspoint (Milpitas, CA), and Quicklogic (Santa Clara, CA). The OTP devices have the inherent disadvantage of being programmable only once. They also need to be programmed using device programmers, so the handling and inventory problems discussed in this article apply. The manufacturers of these devices claim their devices are advantageous in providing more routing resources and superior results for logic-synthesis users compared to other PLD technologies. Warren Miller, director of product planning and applications at Actel, says that field changes to OTP devices are often considered impossible, but that isn't entirely the case. The company's 3200DX family has dual-port SRAM that lets you create reprogrammable state machines in the SRAM. You can use registers and loadable counters for reprogrammable counting and timing functions. XOR gates and registers let you program signal polarity. Multiplexers let you route data among multiple sources or destinations. All these techniques for providing field-reprogramming capability in OTP devices hinge on your ability to identify and design in programmable features for future field changes before releasing the design to production. ISP devices often let you execute field upgrades without planning ahead for them. |
ISP devices also let you make significant changes to the manufacturing process. For some companies, the manufacturing advantages of ISP devices are the major economic attraction of using them.
Without ISP, a company must take incoming devices and program, label, and hold them in inventory until ready to assemble on a pc board. Each logic design for a particular PLD must be programmed separately and kept in separate inventory. High-density devices using delicate packages, such as 100-pin PQFPs, are easily damaged unless the company can justify expensive automatic handlers for programming the devices.
ISP eliminates these steps. ISP devices are essentially treated as any other device going onto the pc board. You program ISP devices after they are mounted on the board and just before board test. Design revisions do not result in wasted parts or reprogramming and relabeling. Fewer manufacturing steps not only save time, but also result in fewer opportunities for errors.
Removing additional programming and inventory steps reduces handling of the delicate packages, resulting in fewer bent leads and scrap devices. You also reduce the potential for electrostatic damage with less handling. Although you can get around the programming and extra-handling problem for non-ISP devices by buying preprogrammed devices through a distributor that offers programming, you still have extra inventory and rework problems whenever you make design changes.
Changing programming from its own dedicated step in the manufacturing process and combining it with the board-test function does have some implications that are important to consider. Instead of programming the PLDs on a dedicated programmer, the programming operation takes place on a board tester or a boundary-scan IEEE 1149.1 JTAG tester.
Board testers, such as those from GenRad (Concord, MA), Hewlett- Packard (Santa Clara, CA), and Teradyne (Boston), are much more expensive than device programmers. It is important that programming times remain short to avoid significantly reducing the throughput of the board tester and tying up expensive equipment. Typical programming times on board testers range from a few to tens of seconds, depending on the device architecture, the size of the device, the programming method you use, and the speed of the equipment performing the programming. This programming time adds to whatever test time the board itself requires.
If you must program more than one device on a pc board, the programming times for the individual devices are added together, thus increasing programming time. Advanced Micro Devices (AMD) and Lattice Semiconductor both offer methods to reduce programming times when you program multiple devices on the same pc board.
AMD
offers a parallel-programming scheme. It requires approximately 0.5 sec to
download the programming data for each device on a pc board and approximately 4
sec for the programming cycle that is common to any number of devices. The net
result is that each additional device on a board adds only about 0.5 sec to the
complete download and program-cycle times.
Lattice Semiconductor offers what it calls a "turbo-programming mode" that lets you quickly program multiple devices on a board. The programming lines of all the devices are daisy-chained, and the programming time is almost the same as the time for programming the largest individual device in the daisy chain. For pc boards with many ISP devices, the savings in programming time is substantial.
If additional time on an expensive board tester for programming is undesirable, you can program the devices using other, lower cost methods; however, they require an added manufacturing step. You do not need a complete board tester for the in-system programming. You can program the devices from a PC using a suitable programming cable and software or with an IEEE 1149.1 JTAG tester. A JTAG tester is much less expensive than the typical bed-of-nails board testers, and it can program most ISP devices.
You
can also program the ISP de-vices using a PC with a suitable interface card and
programming cable. PCs tend to be slower because they transfer data at a slower
rate, often considerably slower than programming with a 10-MHz IEEE 1149.1 JTAG
tester. PCs can stretch programming time to minutes per device. PC-programming
methods are suitable for prototype development and production of relatively low
quantities. Higher quantities tend to favor the JTAG systems or complete board
testers.
Programming using a JTAG or proprietary port |
| When Lattice developed the first
ISP devices, it also developed its own programming standard. Subsequent ISP
devices have moved toward using the IEEE 1149.1 JTAG test port. Because JTAG
boundary-scan test is becoming such an important standard for many
manufacturing operations, combining ISP with the JTAG functions seems to make
sense. Currently, each company that offers ISP devices (except Lattice) uses
the JTAG port for programming all of its ISP devices. Lattice makes JTAG-port
programming available only on its 3000 and 6000 family devices. In addition, an
IEEE working group with support from all the ISP device manufacturers (including
Lattice) is developing a standard so that future ISP devices will offer greater
commonality in programming methods and operations.
Even with work in progress on programming standards, there are some competitive issues raised by the companies involved with ISP. Lattice claims its own proprietary ISP protocol is more efficient for devices that do not require the JTAG boundary-scan-test operations. Only one pin is dedicated to programming instead of four. In addition, the company promotes its daisy-chain programming method as a way to save time when programming multiple devices on the same pc board. On the other side of the issue is the fact that the JTAG standard is already used for a variety of board-test operations. For many manufacturers, the JTAG lines are already required on pc boards, so using them for ISP adds no cost or complexity to the pc board. In addition, the JTAG standard provides 32 bits for ID vs the 8 bits provided by the Lattice ISP standard. |
One of the concerns in moving from separate programming and test-before-soldering devices to a pc board and programming after the device is soldered into the pc board is yield. If devices don't program or somehow fail after in-system programming, then you have to remove the device from the pc board and replace it. For ISP to work without expensive reworking of pc boards, you need very high yields after programming. Manufacturers of ISP devices report high programming yields. For high-volume manufacturing operations, you may want to check directly with PLD manufacturers for specific programming yields.
Another interesting possibility open to your design and test strategy when you use ISP devices is the possibility of programming the device twice. The first configuration is designed to aid in your board-test operation. The second program configuration is for your product's primary application. Although the extra program and erase cycle adds to the overall test time, the extra program cycle can prove beneficial for testing some otherwise-difficult-to-test part of your product.
You don't have to limit using additional configurations to your manufacturing-test operation. You might want to take advantage of the reprogramming capability of ISP devices in the field, too. Reprogramming falls into one of two types of operations. The first is reprogramming that is part of the system design. In this case, the reprogramming capability is built into the system and made transparent to the end user.
For example, you might design a system that is able to work with a variety of communication standards but can use only one communication standard at a time. The end user could reprogram the device in the field for compatibility with a select communication standard.
When you use reprogramming as a design feature, then the design is defined up front. You can test the different designs to be sure things such as a lack of logic capacity or pin fixing don't cause a problem.
It is possible for some applications that take advantage of reprogramming to require more than the 100 program/erase cycles offered by some of the devices shown in Table 1. Other devices in Table 1 are guaranteed for 10,000 program/erase cycles. If you need more than 10,000 program/erase cycles then you need to consider SRAM-based PLDs.
The other type of reprogramming is not defined, or at least not completely defined in the original product. You may plan to upgrade your product to add a feature later, but that upgrade isn't completely designed when you release the first product to production. Or, you may simply need to change the product in the field to fix a bug, adapt to a new or changing standard, or add functions to make your product more useful.
Making changes that haven't been completely tested in the original design carry the risk that you may not be able to implement them because of insufficient logic or routing problems brought on by pin fixing. The greater the change, the greater the risk that you may not be able to implement the new design in the old hardware. Although many circuit designs accommodate unplanned circuit changes without difficulty, there is still some risk that you will be unable to make the change.
You
can reprogram the devices in the field using one of two basic methods. The first
method is to connect to the pc board's programming pins with a cable that
connects to a PC or other system used to externally reprogram the device. This
method requires more effort on the part of the person performing the
reprogramming. It's easy for field-service personnel but probably isn't
appropriate for most end users.
The other method of reprogramming in the field is to build the necessary reprogramming circuitry right on the pc board. The manufacturers of ISP devices typically offer application notes to help you design in the reprogramming circuitry. The circuits typically require a microcontroller and a few interface chips. The data itself can come from a variety of sources, including nonvolatile memory, a modem, or a computer. If you use the ISP device in a system that already has a µP, reprogramming may not require any additional hardware.
Looking ahead |
| In-system programmable logic fits into an attractive spot in the universe of PLDs. It's nonvolatility means you have the programmed logic functions when you power up, yet its reprogrammability lets you modify the logic both during development and in the field. ISP technology is sure to be with us for years to come, although the architectures will continue to evolve. Even in today's devices, Lattice has started to branch out into architectures that offer embedded memory available in single- or dual-port varieties and as FIFOs. Expect to see this trend continue as manufacturers of dense ISP devices add more features for designing complete digital systems on a chip. |
Table 1Representative ISP devices | ||||||||||
| Manufacturer | Device | Number of macrocells | Number of registers | Propagation delay (nsec) | Program/ erase cycles | Maximum user I/O pins | 3.3V supply | 5V supply | Price | Notes |
| Altera | EPM9320 | 320 | 484 | 12/15/20 | 100 | 168 | x | $76 (1000) | ||
| EPM9400 | 400 | 580 | 12/15/20 | 100 | 159 | x | $125 (1000) | |||
| EPM9480 | 480 | 676 | 15/20 | 100 | 175 | x | $158 (1000) | |||
| EPM9560 | 560 | 772 | 15/20 | 100 | 216 | x | $191 (1000) | |||
| EPM7032S | 32 | 32 | 5/6/7.5/10/15 | 100 | 36 | x | TBA | Available first half '97 | ||
| EPM7064S | 64 | 64 | 6/7.5/10/15 | 100 | 68 | x | TBA | Available first half '97 | ||
| EPM7096S | 96 | 96 | 6/7.5/10/15 | 100 | 76 | x | TBA | Available first half '97 | ||
| EPM7128S | 128 | 128 | 7.5/10/15 | 100 | 100 | x | $29.45 (1000) | |||
| EPM7160S | 160 | 160 | 7.5/10/15 | 100 | 104 | x | TBA | Available first half '97 | ||
| EPM7192S | 192 | 192 | 10/12/15 | 100 | 124 | x | $74 (1000) | |||
| EPM7256S | 256 | 256 | 10/12/15 | 100 | 164 | x | TBA | Available first half '97 | ||
| EPX880 | 80 | 80 | 12-Oct | 100 | 80 | x | $40 (1000) | |||
| EPX8160 | 160 | 160 | 12-Oct | 100 | 120 | x | $123.75 (1000) | |||
| AMD | MACH111SP | 32 | 32 | 5/7/10/12/15/20 nsec | 100 | 34 | x | $5.12 (1000) | ||
| MACH131SP | 64 | 64 | 5/7/10/12/15 | 100 | 70 | x | $13.15 (1000) | Available Q4 '96 | ||
| MACH211SP | 64 | 64 | 7/10/12/15/20 | 100 | 34 | x | $5.83 (1000) | |||
| MACH221SP | 96 | 96 | 7/10/12/15/20 | 100 | 56 | x | TBA | Available Q1 '97 | ||
| MACH355 | 96 | 96 | 15/20 | 100 | 102 | x | $34.50 (1000) | |||
| MACH445 | 128 | 192 | 12/15/20 | 100 | 70 | x | $28.80 (1000) | |||
| MACH446 | 128 | 192 | 7/10/12/15 | 100 | 70 | x | x | TBA | Available Q4 '96 | |
| MACH231SP | 128 | 128 | 10/12/15/20 | 100 | 70 | x | $22.50 (1000) | |||
| M5-128 | 128 | 128 | 7/10/12/15 | 100 | 124 | x | $24.41 (1000) | Available Q4 '96 | ||
| M5-192 | 192 | 192 | 7/10/12/15 | 100 | 164 | x | $43.31 (1000) | |||
| M5-256 | 256 | 256 | 7/10/12/15 | 100 | 164 | x | $60.48 (1000) | |||
| MACH465 | 256 | 384 | 12/15/20 | 100 | 146 | x | $92.00 (1000) | |||
| MACH466 | 256 | 384 | 12/15/20 | 100 | 146 | x | x | TBA | Available Q4 '96 | |
| M5-320 | 320 | 7/10/12/15 | 100 | 196 | x | x | TBA | Available Q4 '96 | ||
| M5-384 | 384 | 384 | 7/10/12/15 | 100 | 196 | x | x | TBA | Available Q4 '96 | |
| M5-512 | 512 | 512 | 7/10/12/15 | 100 | 260 | x | x | TBA | Available Q4 '96 | |
| Cypress Semiconductor | Flash371i | 32 | 44 | 8.5 | 100 | 32 | x | $4.90 (1000) | Available Q4 '96 | |
| Flash372i | 64 | 76 | 10 | 100 | 32 | x | $8.35 (1000) | Available Q4 '96 | ||
| Flash373i | 64 | 76 | 10 | 100 | 64 | x | $11.25 (1000) | Available Q4 '96 | ||
| Flash374i | 128 | 140 | 12 | 100 | 64 | x | $20.10 (1000) | |||
| Flash375i | 128 | 140 | 12 | 100 | 128 | x | $32.90 (1000) | |||
| Lattice Semiconductor | ispLSI1016 | 64 | 96 | 7.5/10/12/15/20 | 10,000 | 36 | x | $5.80 (1000) | ||
| ispLSI1024 | 96 | 144 | 12/15/20 | 10,000 | 54 | x | $15.15 (1000) | |||
| ispLSI1032 | 128 | 192 | 7.5/10/12/15/20 | 10,000 | 72 | x | $17.60 (1000) | |||
| ispLSI1048 | 192 | 288 | 10/15/20 | 10,000 | 108 | x | $60.50 (1000) | |||
| ispLSI2032 | 32 | 32 | 5.5/7.5/10/15 | 10,000 | 34 | x | $4.95 (1000) | |||
| ispLSI2064 | 64 | 64 | 7.5/10/15 | 10,000 | 68 | x | $12.95 (1000) | |||
| ispLSI2096 | 96 | 96 | 7.5/10/15 | 10,000 | 102 | x | $23.10 (1000) | |||
| ispLSI2128 | 128 | 128 | 15-Oct | 10,000 | 136 | x | $37.35 (1000) | |||
| ispLSI2032LV | 32 | 32 | 15-Oct | 10,000 | 34 | x | $9.30 (1000) | |||
| ispLSI3192 | 192 | 384 | 15-Oct | 10,000 | 192 | x | $104.50 (1000) | |||
| ispLSI3256 | 256 | 384 | 15/20 | 10,000 | 128 | x | $99.00 (1000) | |||
| ispLSI3256E | 256 | 512 | 15-Oct | 10,000 | 256 | x | $165.00 (1000) | |||
| ispLSI6192FF | 192 | 416 | 15/20 | 10,000 | 159 | x | $126.50 (1000) | Includes FIFO and counter/timer | ||
| ispLSI6192SM | 192 | 416 | 15/20 | 10,000 | 159 | x | $121.00 (1000) | Includes single-port RAM and counter/timer | ||
| ispLSI6192DM | 192 | 416 | 15/20 | 10,000 | 159 | x | $126.50 (1000) | Includes dual-port RAM and counter/timer | ||
| ispGDS14 | NA | NA | 7.5 | 10,000 | 14 | x | $1.95 (1000) | 7x7 switch | ||
| ispGDS18 | NA | NA | 7.5 | 10,000 | 18 | x | $2.25 (1000) | 9x9 switch | ||
| ispGDS22 | NA | NA | 7.5 | 10,000 | 22 | x | $3.15 (1000) | 11x11 switch | ||
| ispGAL22V10 | 10 | 10 | 7.5/10/15 | 10,000 | 22 | x | $3.00 (1000) | |||
| Xilinx | XC9536 | 36 | 36 | 5 | 10,000 | 36 | x | $3.60 (10,000) | ||
| XC9572 | 72 | 72 | 7.5 | 10,000 | 72 | x | $10.25 (10,000) | |||
| XC95108 | 108 | 108 | 7.5 | 10,000 | 108 | x | $11.75 (10,000) | |||
| XC95144 | 144 | 144 | 7.5 | 10,000 | 133 | x | $20.75 (10,000) | Available Q1 '97 | ||
| XC95180 | 180 | 180 | 10 | 10,000 | 180 | x | $31.95 (10,000) | Available Q1 '97 | ||
| XC95216 | 216 | 216 | 10 | 10,000 | 180 | x | $41.75 (10,000) | |||
| XC95288 | 288 | 288 | 10 | 10,000 | 260 | x | $65.25 (10,000) | |||
| XC95432 | 432 | 432 | 12 | 10,000 | 260 | x | $99.95 (10,000) | Available first half '97 | ||
| XC95576 | 576 | 576 | 15 | 10,000 | 260 | x | $139.95 (10,000) | Available first half '97 | ||
Comments on table:It's difficult to compare the logic capacities of devices from different manufacturers. The manufacturers' usable-gate numbers bear no similarity to conventional gate arrays and are not included in this table. Macrocells would be a good yardstick except the macrocell architectures vary widely among different device families. The number of registers is of some value for comparisons but is not a uniform measure of logic capacities. The macrocell and register counts for the devices listed in the table should be used only for rough comparisons of capacity. NA=not applicable. | ||||||||||
Manufacturers of ISP PLDs | |||||
| For free information on ISP PLDs such as those described in this article, circle the appropriate numbers on the postage-paid Information Retrieval Service card or use EDN's Express Request service. When you contact any of the following manufacturers directly, please let them know you read about their products in EDN. Note: All Web addresses begin with http:// unless otherwise noted. | |||||
| Altera Corp San Jose, CA (408) 894-7000 fax (408) 944-0952 www.altera.com Circle No. 301 |
AMD Sunnyvale, CA (800) 222-9323 www.amd.com Circle No. 302 |
Cypress Semiconductor San Jose, CA (408) 943-2600 fax (408) 943-6848 www.cypress.com Circle No. 303 |
Lattice Semiconductor Hillsboro, OR (503) 681-0118 fax (503) 681-3037 www.lattice.com Circle No. 304 |
Xilinx Inc San Jose, CA (408) 559-7778 fax (408) 559-7114 www.xilinx.com Circle No. 305 |
|