6.1 (I/O resources, 60 min.) Obtain the specifications for the latest version of your choice of FPGA vendor from a data book or online data sheet and complete a table in the same format as Tables 6.6 and 6.7 .
6.2 (I/O timing, 60 min.) On-chip delays are only half the battle in a typical design. Using data book parameters for an FPGA that you choose, estimate (worst-case commercial) how long it takes to bring a signal on-chip; through an input register (a flip-flop); through a combinational function (assume an inverter); and back off chip again through another (flip-flop) register. Give your answer in three parts:
I/O cell functions 1
TS, (RIO) 2 , 10SRC, 10SNK
(TS), (RI) 3 , 5/3, 4SRC, 12SNK
32 (QL6X8) 4
I/O cell functions 5
TS, SR, (RIO) 6 , 8SRC, 12SNK
Xilinx (XC8100) 7
TS, PU, IT/C (global), JTAG, PCI, 4SRC, 4/24SNK 8
- a. The delay from a CMOS-level pad input (trip-point of 0.5) to the D input of the input register plus the flip-flop setup time.
- b. The delay (measured from the clock, so include the clock-to-Q delay) through the inverter to the output register plus the setup time.
- c. The delay from the output register (measured from the clock edge) to the output pad (trip point of 0.5) with a 50 pF load.
In each case give your answers: (i) Using data book symbols (specify which symbols and where in the data books you found them); and (ii) as calculated values, in nanoseconds, using a speed grade that you specify. State and explain very clearly any assumptions that you need to make about the clock to determine the setup times.
6.3 (Clock timing, 30 min.) When we calculate FPGA timing we need to include the time it takes to bring the clock onto the chip. For an FPGA you choose, estimate (worst-case commercial) the delay from the clock pad (0.5 trip-point) to the clock pin of an internal flip-flop
- a. in terms of data book symbols (specify which and where you found them— t AB on p. 2-32 of the ABC 1994 data book, for example), and
- b. as calculated values in nanoseconds.
6.4 (**Bipolar drivers, 60 min.) The circuit in Figure 6.3 uses npn transistors.
- a. Design a similar circuit that uses pnp transistors.
- b. The pnp circuit may work better, why?
- c. Design an even better circuit that uses npn and pnp transistors.
- d. Explain why your circuit is even better.
- e. Draw a diagram for a controller using op-amps instead of bipolar transistors.
6.5 (Xilinx output buffers, 15 min.) For the Xilinx XC2000 and XC3000 series 9 : I OLpeak = 120 mA and I OHpeak = 80 mA; for the XC4000 family: I OLpeak = 160 mA and I OHpeak = 130 mA; and for the XC7300 series: I OLpeak = 100 mA and I OHpeak = 65 mA. For a typical 0.8–1.0 m m process:
- a. Calculate the effective sizes of the transistors in the Xilinx output buffer.
- b. Why might these only be “effective” sizes?
- c. The Xilinx data book gives values for “source current and output high impedance” shown in Table 6.8 . Graph the buffer characteristics when sourcing current.
- d. Explain which parts in Table 6.8 use complementary output buffers and which use totem-pole outputs and explain how you can tell.
- e. Can you explain how Xilinx arrived at the figures for impedance?
- f. Comment on the method that Xilinx used.
- g. Suggest and calculate a better measure of impedance.
V O (output voltage) 10 / V
6.6 (Xilinx logic levels, 10 min.) Most manufacturers measure V OLmax with V DD set to its minimum value, Xilinx measures V OLmax at V DDmax . For example, for the Xilinx XC4000 11 : V OLmax = 0.4 V at I OLmax = 12 mA and V DDmax . A footnote also explains that V OLmax is measured with “50 % of the outputs simultaneously sinking 12 mA.”
- a. Can you explain why Xilinx measures V OLmax this way?
- b. What information do you need to know to estimate V OLmax if all the other outputs were not sourcing or sinking any current.
6.7 (Output levels, 10 min.) In Figure 6.7 (b–d) the PAD signal is labeled with different levels: In Figure 6.7 (b) the PAD high and low levels are V OHmin and V OLmax respectively, in Figure 6.7 (c) they are V DD and V OLmax , and in Figure 6.7 (c) they are V OHmin and V SS .
- a. Explain why this is.
- b. In no more than 20 words explain the difference between V DD and V OHmin as well as the difference between V OLmax and V SS .
6.8 (TTL and CMOS outputs, 10 min.) The ACT 2 figures for t DLH and t DHL in Figure 6.7 are for the CMOS levels. For TTL levels the figures are (with the CMOS figures in parentheses): t DLH = 10.6 ns (13.5 ns), and t DHL = 13.4 ns (11.2 ns). The output buffer is the same in both cases, but the delays are measured using different levels. Explain the differences in these delays quantitatively.
6.9 (Bus-keeper contention, 30 min.) Figure 6.25 shows a three-state bus, similar to Figure 6.5 , that has a bus keeper on CHIP1 and a pull-up resistor that is part of a Xilinx IOB on CHIP2—we have a type of bus-keeper contention. For the XC3000 the pull-up current is 0.02–0.17 mA and thus RL1 is between 5 and 50 k W (1994 data book, p. 2-155).
- a. Explain what might happen when both the bus drivers turn off.
- b. Have you considered all possibilities?
- c. Is bus-keeper contention a problem?
- d. In the PCI specification control signals are required to be sustained three-state. A driver must deassert a control signal to the inactive state (high for the PCI control signals) for at least one clock cycle before three-stating the line. This means that a driver has to “put the signal back where it found it.” Does this affect your answers?
- e. Suggest a “fix” that stops you having to worry about any potential problems.
6.10 (Short-circuit, 10 min.) What happens if you short-circuit the output of a complementary output buffer to (a) GND and (b) VDD? (c) What difference does it make if the output buffer is complementary or a totem-pole?
- a. Why do we adjust the resistors in Figure 6.10 (c) so that the Thévenin equivalent voltage source is 1.6 V?
- b. What current does a driver have to sink if we want V OLmax = 0.4 V?
- c. What current does a driver have to source if we want V OHmin = 2.4 V?
6.13 (*Temperature) (a) (30 min.) You are about to ship a product and you have a problem with an FPGA. A high case temperature is causing it to be slower than you thought. You calculated the power dissipation, but you forgot that the InLet microprocessor is toasting the next door FPGA. You have no easy way to calculate T J now, so we need to measure it in order to redesign the FPGA with fixed I/O locations. You remember that a diode forward voltage has a temperature coefficient of about –2 mV°C –1 and there are clamp diodes on the FPGA I/O. Explain, using circuit diagrams, how to measure the T J of an FPGA in-circuit using: a voltage supply, DVM, thermometer, resistors, spoon, and a coffee maker. (b) (**120 min.) Try it.
6.14 (Delay measurement, 10 min.) Sumo Silicon has a new process ready before we do and Sumo’s data book timing figures are much better than ours. Explain how to reduce our logic delays by changing our measurement circuits and trip points.
6.15 (Data sheets, 10 min.) In the 1994 data book Xilinx specifies V ILmin = 0.3 V (and V ILmax = 0.8 V) for the XC2000L. Why does this surprise you and what do you think the value for VILmin really is? FPGA vendors produce thousands of pages of data every year with virtually no errors. It is important to have the confidence to question a potential error.
6.17 (Thresholds, 10 min.) With some FPGAs it is possible to configure an output at TTL thresholds and an input (on the same pad) at CMOS thresholds. Can you think of a reason why you might want to do this?
- a. From Eq. 6.4 show that if we make two measurements of t r and MTBF then:
- b. MTBU is extremely sensitive to variations in t c , show that:
- c. Show that the variation in MTBU is related to the variation in t c by the following expression:
6.20 (***Alternative metastability solutions, 120 min.) Write a minitutorial on metastability solutions. The best sources for this type of information are usually application notes written by FPGA and TTL manufacturers, many of which are available on the Web (TI is a good source on this topic).
6.21 (Altera 8000 I/O, 10 min) Figure 6.26 shows the Altera FLEX 8000 I/O characteristics. Determine as much as you are able to from these figures.
- a. Derive an equation for the number of logic modules, number of I/O modules, number of modules connected to the clock and system clock frequency in terms of the package parameters and the worst-case T A .
- b. Assume:
- c. Next vary each of the assumptions you made in part b. Draw graphs showing the variation of clock frequency as you vary each of the above parameters, including the power dissipation limit (a spreadsheet will help).
- d. Can you draw any conclusions from this exercise?
6.24 (Plugs and sockets, 30 min.) Draw the plugs and sockets (to scale) for the technologies in Table 6.9 .
Output levels driving CMOS 13
6.25 (TTL compatibility, 30 min.) Explain very carefully, giving an example using actual figures from the tables, how you would determine the compatibility between the TTL and CMOS logic thresholds shown in Table 6.9 and Table 6.10 and the FPGA logic thresholds in Table 6.1 .
TTL Family 15
6.26 (ECL, 30 min.) Emitter-coupled logic (ECL) uses a positive supply, V CC = 0 V, and a negative supply, V EE = –5.2 V. The highest logic voltage allowed is –0.81 V and the lowest is –1.85 V. Table 6.11 shows the ECL 10K thresholds.
- a. Calculate the high-level and low-level noise margins.
- b. Find out the 100K thresholds and
- c. calculate the 100K noise margins.
TABLE 6.11 ECL logic thresholds (Problem 6.26 ).
- a. Draw the transfer curve for an inverting buffer with very high gain that has a switching threshold centered at 2.2 V and 300 mV hysteresis.
- b. If the center of the characteristic shifts by –0.3 V and +0.4 V and the hysteresis varies from 260 mV to 350 mV, calculate V IHmin and V ILmax .
6.30 (**Driving TTL, 60 min.) Find out the input current requirements of different TTL families and write a minitutorial on the I/O requirements (in particular the current) when driving high and low levels onto a bus.
1. Code definitions are listed in Table 6.4 .
3. Xilinx EPLD uses a mixture of I/O blocks, input-only blocks, and output-only blocks. The I/O blocks and input only blocks contain the equivalent of a D flip-flop (configured to be a flip-flop or latch).
5. Code definitions are listed in Table 6.4 .