Download - Unit 9 Multiplexers, Decoder, and Programmable logic Devices ( 멀티플렉서 , 디코더 , 프로그래머블 논리소자 )
Unit 9 Multiplexers, Decoder, and
Programmable logic Devices ( 멀티플렉서 , 디코더 , 프로그래머블 논리소
자 )
강의 개요멀티플렉서 , 디코더 , 프로그래머블 논리소자
멀티플렉서 3-State Buffer 디코더와 인코더 읽기 전용 메모리 Programmable Logic Device
• PLA(Programmable Logic Array)• PAL(Programmable Array Logic)
CPLD(Complex Programmable Logic Devices) FPGA(Field Programmable Gate Array)
9.2 Multiplexer멀티플렉서 (Multiplexer, 데이터 선택기 , MUX )
데이터 입력과 제어 입력으로 구성된 소자 . 제어 입력은 데이타 입력 중에서 하나를 선택하여 출력단과 연결하는
역할을 한다 .
2-to-1 멀티플렉서 및 등가 스위치
0 1'Z A I AI
9.2 Multiplexer 여러 가지 멀티플레서들
3210 ABIIBABIAIBAZ
7654
3210
ABCIICABCIBAICBA
BCIAICBACIBAICBAZ
12
0
n
kkk ImZ
9.2 Multiplexer 멀티플렉서는 디지털 시스템에서 처리되거나 저장되는
데이터를 선택하는데 자주 사용된다 .
4 개의 2-to-1 멀티플렉서를 이용한 데이터 워드 선택 구현 제어입력 A 에 따라 다른 워드 선택
• A = 0 : x0, x1, x2, x3• A = 1 : z0, z1, z2, z3
9.2 Multiplexer Bus
여러 개의 논리 신호가 공통된 기능을 수행하기 위해 그룹화 된 것 여러 개의 선을 다 그리는 대신 하나의 굵은 선과 사선을 이용하여
표현
4 bit 입력과 출력을 가지는 2-to-1 멀티플렉서
4
]3..0[a0a1a
3a2a
a
다양한 멀티플렉서들 선택된 입력 값을 반전시켜 출력하는 멀티플렉서
• Active low 상태 출력을 가짐• 반전이 없는 경우는 Active high 상태 출력을 가진다고 함
Enable 단자를 가지는 멀티플렉서• 멀티플렉서의 입력에 Enable 단자를 추가• E (Enable) = 0 인 경우 입력에 무관하게 출력은 0• E = 1 인 경우 멀티플렉서로 동작• Enable 단자 역시 Active high/low 존재• Enable 단자의 버블 유무로 구별 가능
9.2 Multiplexer
9.3 Three-State Buffers 버퍼 (Buffer)
디지털 시스템의 성능을 저하를 피하기 위해 게이트의 출력을 제한된 수의 다른 소자의 입력에만 연결하는 경우가 있다 .
버퍼는 게이트 출력의 구동 능력을 향상시키기 위해 사용된다 .
• 예시 : 비반전 버퍼를 추가하여 하나의 게이트 출력과 다수의 게이트 입력을 연결
9.3 Three-State Buffers2 개 이상의 게이트 또는 다른 소자들의 출력들이 서로 직접
연결 된다면 정상상태에서 논리회로는 올바르게 동작하지않는다 .
하나의 게이트 출력이 0 이고 또 다른 게이트의 출력이 1 일 때 , 두 출력이 서로 연결된 경우 결과 출력 전압은 0 이나 1 로 뚜렷이
구별되지 않는 중간 값을 갖게 된다 . 어떤 경우에는 게이트가 파손되기도 한다 .
High
Low
9.3 Three-State Buffers 3-state buffer
2 개 이상의 게이트나 다른 논리소자들의 출력을 서로 연결하는 데사용
3-state buffer 와 그 논리적 등가모델
B 는 동작 허용 입력 B=1 일 때 C=A B=0 일 때 C=Z (High Impedance/ 개방회로 )
Three-state or Tri-state Buffer 라 불림
9.3 Three-State Buffers4 가지 3-state buffer 와 그 논리표
Enable 단자 B 와 출력 C 에 버블의 유무에 따라 4 가지 경우 존재
9.3 Three-State Buffers 3-state buffer 를 이용한 데이터 선택
3-state buffer 로 구성된 버스를 3-state 버스라 함 4 개의 발생원으로부터 operand 를 입력 받는 4 비트 덧셈기
• B=0 이면 D=A 이므로 A 입력 선택• B=1 이면 D=C 이므로 C 입력 선택
• 2-to-1 멀티플렉서와 동등
9.3 Three-State Buffers 양방향 입출력을 가진 집적회로
하나의 핀을 때에 따라 입 / 출력으로 사용할 수 있는 회로
버퍼가 동작 가능 상태 : 출력 버퍼가 동작 불가능 상태 : 입력
9.4 Decoders and Encoders 디코더 (Decoder)
n 개의 입력변수를 가진 함수의 모든 최소항 (2^n) 을 생성한다 . 입력변수에 따라 출력 선 중 단 하나만이 1 이 된다 .
3-to-9 라인 디코더와 진리표
9.4 Decoders and Encoders 반전 출력을 가지는 디코더
•4-to-10 디코더•나머지 ABCD 입력은 모두 1•2 진수 입력에 해당하는 10 진수 출력
9.4 Decoders and Encoders 일반적인 n-to-2n 라인 디코더는 n 개의 입력에 대해
아래와 같은 출력을 가진다 .
• m 은 n 개의 입력변수의 최소항• M 은 n 개의 입력변수의 최대항
n 입력 디코더를 이용하여 n- 변수 함수를 최소항 출력들을 선택한 뒤 OR 함으로써 구현 가능
디코더 출력을 반전하면 NAND 게이트로 구현 가능
outputs) (inverted 12 to0 ,
outputs) ed(noninvert 12 to0 ,
niii
nii
iMmy
or
imy
9.4 Decoders and Encoders 디코더 출력 반전 - NAND 게이트를 이용하여 함수 생성
)''''(
),,,(
421
4211
mmm
mmmdcbaf
)''''(
),,,(
974
9742
mmm
mmmdcbaf
9.4 Decoders and Encoders 인코더
디코더의 Inverse Function 2n-to-n 입출력
8-to-3 인코더
• 입력의 하나 이상이 ‘ 1’ 인 경우 우선순위에 의해 결정됨
9.5 Read-Only Memories ROM(Read-Only Memory)
2 진 데이터 배열을 저장하기 위해 상호 연결된 반도체 소자의 배열로구성
읽을 수는 있지만 변경할 수는 없음 예시 : 3 개의 입력선과 4 개의 출력선을 가지는 ROM
ROM 에 저장되는 각각의 출력 패턴을 워드 (word) 라 부른다 .
9.5 Read-Only Memoriesn 개의 입력을 가지는 경우 2n 가지의 다른 조합을 가짐
입력 선은 2n 개의 워드 중 하나의 주소의 역할m 개의 출력을 가지면 워드의 길이는 m 비트n 개의 변수를 가지는 m 개의 함수 구현 가능
9.5 Read-Only Memories 기본적인 ROM 구조
n 개의 패턴이 디코더에 인가 디코더 출력 중 하나가 ‘ 1’ 이 됨 이 출력 선 하나가 메모리 배열의 하나인 워드를 선택하여 출력
9.5 Read-Only Memories 8 워드 4 비트 ROM 내부구조 예시
스위칭 소자에 의해 출력선 F 에 연결된 최소항들은 서로 OR 되어 출력을 생성 함
4)7,6,5,3,2(
''')6,2,1,0(
')7,6,4,3,2(
''')6,4,1,0(
3
2
1
0
BACmF
BCBAmF
ACBmF
ACBAmF
''')6,4,1,0(0 ACBAmF
9.5 Read-Only Memories ROM 을 이용한 다중 출력 조합회로 구현
예제 : 16 진수 -ASCII Code 변환기
• 4 비트 2 진수를 16 비트로 변환• 7 비트 ASCII Code 출력• 진리표의 A4A3A2A1A0 이 ROM 에 저장
9.5 Read-Only Memories 스위칭 소자는 x 표시로 나타낼 수 있음 위 예제의 내부 도표
9.5 Read-Only Memories대표적인 ROM 의 종류
Mask-Programmable ROM• 생산공정시 데이터 배열이 영구적으로 저장
PROM(Programmable ROM) • 아무 내용이 들어있지 않은 빈 상태로 제조하여 공급되고 사용자가
PROM 라이터를 이용하여 내용을 써넣을 수 있음 EEPROM(Electrically Erasable Programmable ROM)
• 디지털 시스템 개발 과정 중 이용• 전하 저장 장치를 사용하여 재 프로그램 가능
– cf) 플래시는 프로그래밍 및 소거 기능을 내장하고 있음
9.6 Programmable Logic Devices Programmable Logic Device
다양한 논리 함수를 제공하도록 프로그램이 가능한 디지털 집적회로 Programmable Logic Array
• ROM 과 동일한 기본 기능을 수행• n 개의 입력과 m 개의 출력을 가질 경우 n 개의 변수를 가진 m 개의
함수 구현 가능
• PLA 는 논리곱의 합 표현을 구현함 (ROM 은 진리표를 그대로 구현 )
• ROM 의 디코더 ->AND Array 로 대체되어 곱 항 실현
• OR 배열은 선택된 곱 항을 OR 하여 출력 실현
9.6 Programmable Logic Devices ROM 과 PLA 의 비교
ROM
ACBF
BCBAF
BACF
ACBAF
3
2
1
0
'''
'
'''
PLA
9.6 Programmable Logic Devices 앞 예제와 등가인 PLA
Product
Term
Inputs Outputs
A B C F0 F1 F2 F3
A’B’
AC’
B
BC’
AC
0
1
-
-
1
0
-
1
1
-
-
0
-
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
ACBF
BCBAF
BACF
ACBAF
3
2
1
0
'''
'
'''
9.6 Programmable Logic Devices PLA 를 이용한 최소 다중 출력 함수 구현
• PLA Table 을 생성한 후 PLA 구조 구현
dca
or
abd
cbabcf
bdacf
bacbbdf
3
2
1
•PLA table 의 각 행은 최소항을 나타냄
9.6 Programmable Logic Devices Programmable Array Logic(PAL)
• AND 배열은 프로그램이 가능하지만 OR 배열은 고정되어 있는 특별한 형태의 PLA
• PAL 은 하나의 입력이 많은 수의 AND 게이트를 구동하기 때문에 버퍼를 사용함
• 프로그램을 하지 않은 상태의 PAL 의 일부분
• 논리적으로 동등한 입력 버퍼
9.6 Programmable Logic Devices 예제 1: I1I’2+I’1I2 함수를 PAL 로 구현
• PAL 의 일부분 사용
21210 IIIIF
9.6 Programmable Logic Devices 예제 2: 전가산기 (Full-Adder) 를 PAL 로 설계하기
• 전가산기의 논리식
inininin XYCCXYYCXCYXSum ''''''
XYYCXCC ininout
9.7 Complex Programmable Logic Devices
CPLD(Complex Programmable Logic Devices) 하나의 칩 안에 여러 개의 PAL 또는 PLA 를 집적하여 연결한
논리소자 기억소자가 같이 집적된다면 하나의 디지털 시스템을 CPLD 안에
구현 가능함 CPLD 내부의 상호 연결은 컴퓨터 소프트웨어로 설계 가능
Xilinx CPLD 구조 및 회로
9.8 Field Programmable Gate Array
FPGA(Field Programmable Gate Array) 프로그램이 가능한 연결선들과 함께 동일한 기능을 가지는 논리
셀들의 배열을 가지는 집적회로
논리 셀들 간의 연결선을 이용하여 함수를 프로그램 할 수 있음
CLB(Configurable Logic Block) 들의 배열로 구성되어 있음
CLB 는 I/O 블록으로 둘러쌓여 있음
FPGA 의 Layout
9.8 Field Programmable Gate Array
CLB• 내부 interconnection 을 위한 다양한
MUX 가짐• 함수 발생기는 LUT(Look-up Table) 에
의해 구현– 4 변수 함수 발생기– ROM– 생성하고자 하는 함수의 진리표 저장
• LUT– 최소항을 몇 개 가지건 하나의 함수
발생기가 필요함
CLB
LUT 구현
' ' ' ' ' ' ' ' ' '
' ' ' ' ' '
F a b c d a b cd a bc d a bcd
ab c d ab cd abc d abcd
9.8 Field Programmable Gate Array
스위칭 함수의 분할• 4 개 이상의 변수를 가지는 스위칭 함수를 4- 변수 함수 발생기를
이용하여 구현하기• 스위칭 함수를 4- 변수를 가지는 서브함수로 분할• 샤논의 정리를 이용 - 변수 xi 에 대하여 n 변수 함수를 전개
– f0 : 원래 함수에서 xi 를 0 으로 하여 얻은 (n-1) 개의 변수를 갖는 함수
– f1 : 원래 함수에서 xi 를 1 로 하여 얻은 (n-1) 개의 변수를 갖는 함수
iii
niiiniii
nii
fxfx
xxxxxfxxxxxxfx
xxxxxf
0
11211121
1121
'
),...,,0,,...,,(),...,,0,,...,,('
),...,,0,,...,,(
9.8 Field Programmable Gate Array
• 예제 1: 5- 변수 함수를 4- 변수 함수 발생기로 구현
– 5 개 변수를 갖는 어떠한 함수도 2 개의 4- 변수 함수 발생기와 하나의 2-to-1 MUX 를 가지고 구현할 수 있음을 나타냄
• 예제 2: 6- 변수 함수를 4- 변수 함수 발생기로 구현– 샤논의 전개이론을 두 번 적용
– G00, G01, G10, G11 은 모두 4- 변수 함수
10'),,,,1(),,,,0('),,,,( affaedcbafedcbfaedcbaf
11101
01000
10
'),,,,1,1(),,,,0,1('
'),,,,1,0(),,,,0,0('
'),,,,,1(),,,,,0('),,,,,(
bGGbfedcbGfedcGbG
bGGbfedcbGfedcGbG
aGGafedcbaGfedcbGafedcbaG
11100100 ''''),,,,,( abGGabbGaGbafedcbaG
9.8 Field Programmable Gate Array
• 4- 입력 함수발생기를 예제 1 번과 2 번 함수의 구현
n (n>4) 변수 함수는 2n-4 개의 4- 변수 함수발생기와 2n-4-to-1 MUX 를 이용하여 구현할 수 있음