Chap 9 Fpga
Chap 9 Fpga
Contents
9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 Introduction Multiplexers Three-State Buffers Decoders and Encoders Read-Only Memories Programmable Logic Devices Complex Programmable Logic Devices Field Programmable Gate Arrays
Objectives
1. Explain the function of a multiplexer. Implement a multiplexer using gates. 2. Explain the operation of three-state buffers. Determine the resulting output when three-state buffers outputs are connected together. Use three-state buffers to multiplex signals onto a bus. 3. Explain the operation of a decoder and encoder. Use a decoder with added gates to implement a set of logic functions. Implement a decoder or priority encoder using gates. 4. Explain the operation of a read-only memory (ROM). Use a ROM to implement a set of logic functions. 5. Explain the operation of a programmable logic array (PLA). Use a PLA to implement a set of logic functions. Given a PLA table or an internal connection diagram for a PLA, determine the logic functions realized. 6. Explain the operation of a programmable array logic device (PAL). Determine the programming pattern required to realize a set of logic function with a PAL. 7. Explain the operation of a complex programmable logic device (CPLD) and a field programmable gate array (FPGA). 8. Use Shannons expansion theorem to decompose a switching function.
9.1 Introduction
Multiplexer, Decoder, encoder. Three-state Buffer
9.2 Multiplexers
Fig 9-1. 2-to-1 Multiplexer and Switch Analog
Z = A' I 0 + AI1
9.2 Multiplexers
Fig 9-2. Multiplexer (1)
9.2 Multiplexers
Fig 9-2. Multiplexer (2)
Z = A' B' C ' I 0 + A' B' CI1 + A' BC ' I 2 + A' BCI 3 + AB' C ' I 4 + AB' CI 5 + ABC ' I 6 + ABCI 7
9.2 Multiplexers
Fig 9-2. Multiplexer (3)
Z = mk I k
k =0
2 n 1
9.2 Multiplexers
Fig 9-3. Logic Diagram for 8-to-1 MUX
9.2 Multiplexers
Fig 9-4. Quad Multiplexer Used to Select Data
9.2 Multiplexers
Fig 9-5. Quad Multiplexer with Bus Inputs and Output
B A 0 0 1 1 0 1 0 1 (a)
C Z Z 0 1
B A 0 0 1 1 0 1 0 1 (b)
C Z Z 1 0
B A 0 0 1 1 0 1 0 1 (c)
C 0 1 Z Z
B A 0 0 1 1 0 1 0 1 (d)
C 1 0 Z Z
S1 X 0 1 Z
X X X X X
S2 0 X 0 X 0
1 X X 1 1
Z X 0 1 Z
X = Unknown
a b c 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1
y0 y1 y2 y3 y4 y5 y6 y7 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1
yi = mi ,
i = 0 to 2 n 1 or
yi = mi ' = M i , i = 0 to 2 n 1
y0 y1 y2 y3 y4 y5 y6 y7 a 0 1 X X X X X X X 0 0 1 X X X X X X 0 0 0 1 X X X X X 0 0 0 0 1 X X X X 0 0 0 0 0 1 X X X 0 0 0 0 0 0 1 X X 0 0 0 0 0 0 0 1 X 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1
b 0 0 0 1 1 0 0 1 1
c 0 0 1 0 1 0 1 0 1
d 0 1 1 1 1 1 1 1 1
m output
Variables 100 010 101 110 110 111 101 010 011 110 000 101
11 11 11 11
00 01 10 11
m bits each)
Product Term AB AC B BC AC
Inputs A 0 1 1 B 0 1 1 C 0 0 1 F0 1 1 0 0 0
Outputs F1 0 1 1 0 0 F2 1 0 0 1 0 F3 0 0 1 0 1
a 0 1 1 -
b 1 1 0 0 1
c 0 1 1 1
d 1 1 -
f1 1 1 1 1 0 0
f2 1 0 0 0 1 0
f3 0 1 1 0 0 1
logically equal
= XC in + YC in + XY
a 0 0 1
b 0 0 1
c 0 0 1
d 0 1 1
f 0 1 1
F = a ' b' c' d '+ a ' b' cd + a ' bc' d + a ' bcd '+ ab' c' d + ab' cd '+ abc' d '+ abcd
f (a, b, c, d ) = c' d '+ a' b' c + bcd + ac' = a' (c' d '+b' c + bcd ) + a(c' d '+bcd + c' ) = a' (c' d '+b' c + cd ) + a (c'+bd ) = a' f 0 + af1
f ( x1 , x 2 ,..., xi 1 , xi , xi +1 ,..., xn ) = xi ' f ( x1 , x 2 ,..., xi 1 ,0, xi +1 ,..., xn ) + xi f ( x1 , x 2 ,..., xi 1 ,1, xi +1 ,..., xn ) = xi ' f 0 + xi f i
f (a, b, c, d , e) = a' f (0, b, c, d , e) + af (1, b, c, d , e) = a ' f 0 + af1 G (a, b, c, d , e, f ) = a' G (0, b, c, d , e, f ) + aG (1, b, c, d , e, f ) = a ' G0 + aG1 G0 = b' G (0,0, c, d , e, f ) + bG (0,1, c, d , e, f ) = b' G00 + bG01 G1 = b' G (1,0, c, d , e, f ) + bG (1,1, c, d , e, f ) = b' G10 + bG11