# 6.1  DC Output

Figure 6.1 shows a robot arm driven by three small motors together with switches to control the motors. The motor armature current varies between 50 mA and nearly 0.5 A when the motor is stalled. Can we replace the switches with an FPGA and drive the motors directly?

 FIGURE 6.1  A robot arm. (a) Three small DC motors drive the arm. (b) Switches control each motor.

Figure 6.2 shows a CMOS complementary output buffer used in many FPGA I/O cells and its DC characteristics. Data books typically specify the output characteristics at two points, A (V OHmin , I OHmax ) and B ( V OLmax , I OLmax ), as shown in Figure 6.2 (d). As an example, values for the Xilinx XC5200 are as follows 1 :

• V OLmax = 0.4 V, low-level output voltage at I OLmax = 8.0 mA.
• V OHmin = 4.0 V, high-level output voltage at I OHmax = –8.0 mA.

By convention the output current , I O , is positive if it flows into the output. Input currents, if there are any, are positive if they flow into the inputs. The Xilinx XC5200 specifications show that the output buffer can force the output pad to 0.4 V or lower and sink no more than 8 mA if the load requires it. CMOS logic inputs that may be connected to the pad draw minute amounts of current, but bipolar TTL inputs can require several milliamperes. Similarly, when the output is 4 V, the buffer can source 8 mA. It is common to say that V OLmax = 0.4 V and V OHmin = 4.0 V for a technology—without referring to the current values at which these are measured—strictly this is incorrect.

 FIGURE 6.2  (a) A CMOS complementary output buffer. (b) Pull-down transistor M2 (M1 is off) sinks (to GND) a current I OL through a pull-up resistor, R 1 . (c) Pull-up transistor M1 (M2 is off) sources (from VDD) current –I OH ( I OH is negative) through a pull-down resistor, R 2 . (d) Output characteristics.

If we force the output voltage , V O , of an output buffer, using a voltage supply, and measure the output current, IO , that results, we find that a buffer is capable of sourcing and sinking far more than the specified I OHmax and I OLmax values. Most vendors do not specify output characteristics because they are difficult to measure in production. Thus we normally do not know the value of I OLpeak or I OHpeak ; typical values range from 50 to 200 mA.

Can we drive the motors by connecting several output buffers in parallel to reach a peak drive current of 0.5 A? Some FPGA vendors do specifically allow you to connect adjacent output cells in parallel to increase the output drive. If the output cells are not adjacent or are on different chips, there is a risk of contention. Contention will occur if, due to delays in the signal arriving at two output cells, one output buffer tries to drive an output high while the other output buffer is trying to drive the same output low. If this happens we essentially short VDD to GND for a brief period. Although contention for short periods may not be destructive, it increases power dissipation and should be avoided. 2

It is thus possible to parallel outputs to increase the DC drive capability, but it is not a good idea to do so because we may damage or destroy the chip (by exceeding the maximum metal electromigration limits). Figure 6.3 shows an alternative—a simple circuit to boost the drive capability of the output buffers. If we need more power we could use two operational amplifiers ( op-amps ) connected as voltage followers in a bridge configuration. For even more power we could use discrete power MOSFETs or power op-amps.

 FIGURE 6.3  A circuit to drive a small electric motor (0.5 A) using ASIC I/O buffers. Any npn transistors with a reasonable gain ( b ª 100) that are capable of handling the peak current (0.5 A) will work with an output buffer that is capable of sourcing more than 5 mA. The 470 W resistors drop up to 5 V if an output buffer current approaches 10 mA, reducing the drive to the output transistors.

## 6.1.1 Totem-Pole Output

Figure 6.4 (a) and (b) shows a totem-pole output buffer and its DC characteristics. It is similar to the TTL totem-pole output from which it gets its name (the totem-pole circuit has two stacked transistors of the same type, whereas a complementary output uses transistors of opposite types). The high-level voltage, V OHmin , for a totem pole is lower than VDD . Typically V OHmin is in the range of 3.5 V to 4.0 V (with VDD = 5 V), which makes rising and falling delays more symmetrical and more closely matches TTL voltage levels. The disadvantage is that the totem pole will typically only drive the output as high as 3–4 V; so this would not be a good choice of FPGA output buffer to work with the circuit shown in Figure 6.3 .

 FIGURE 6.4  Output buffer characteristics. (a) A CMOS totem-pole output stage (both M1 and M2 are n -channel transistors). (b) Totem-pole output characteristics. (c) Clamp diodes, D1 and D2, in an output buffer (these diodes are present in all output buffers—totem-pole or complementary). (d) The clamp diodes start to conduct as the output voltage exceeds the supply voltage bounds.

## 6.1.2 Clamp Diodes

Figure 6.4 (c) show the connection of clamp diodes (D1 and D2) that prevent the I/O pad from voltage excursions greater than V DD and less than V SS . Figure 6.4 (d) shows the resulting characteristics.

1. XC5200 data sheet, October 1995 (v. 3.0).

2. Actel specifies a maximum I/O current of ± 20 mA for ACT3 family (1994 data book, p. 1-93) and its ES family. Altera specifies the maximum DC output current per pin, for example ± 25 mA for the FLEX 10k (July 1995, v. 1 data sheet, p. 42).