6. 조합논리의 기능 6-1 기본 가산기 6-2 병렬 2진 가산기 6-3 비교기 6-4 디코더 6. 조합논리의 기능 6-1 기본 가산기 6-2 병렬 2진 가산기 6-3 비교기 6-4 디코더 6-5 인코더 6-6 코드 변환기 6-7 멀티플렉서 6-8 디멀티플렉서 6-9 패리티 생성기/검사기 6-10 고장진단 6-11 프로그램 논리 디지털 시스템 응용
6-1 가산기의 기초 반가산기 (Half-Adder) 2개의 2진 숫자를 더해 Sum과 캐리를 출력 A B Cout 0 0 6-1 가산기의 기초 반가산기 (Half-Adder) 2개의 2진 숫자를 더해 Sum과 캐리를 출력 A B Cout 0 0 0 1 1 1 0 0 0 1 1 0
전가산기(Full-Adder) 캐리를 포함한 3개의 입력 비트를 더해 Sum과 캐리를 출력 A B Cin Cout 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 1 0 0 0 1 1 0 1 1
전가산기의 논리도
반가산기로 구성한 전가산기
6-2 병렬 2진 가산기 일반적인 두 2진수를 더함 각 비트 당 1개씩의 FA 필요 4-비트 병렬 가산기
74LS283 4비트 병렬가산기
가산기의 확장 8bit 가산기 16bit 가산기
1011 1001 예제 6-4 +1001 1110 1 0101 0111
가산기 응용 예 여러명이 동시에 “찬성”과 “반대”로 투표한 결과를 집계하는 투표 집계 시스템
6-4 비교기 (Comparator) 두 2진수의 크기를 비교하여 대소 관계를 결정 XOR 게이트를 기본적인 비교기로 사용 2-비트 2진수 비교기 예
4비트 비교기의 설계 74HC85 4비트 비교기 A3 = 1이고 B3 = 0이면, A > B
예제 6-7 74HC85를 사용한 두 8-비트 2진수의 크기를 비교할 수 있는 비교기 설계
6-5 디코더 (Decoder) 입력 데이타에 있는 특정한 비트 조합(코드)의 존재 유무를 감지하여 이에 해당하는 출력을 생성 n 개의 입력단과, n-비트 조합을 나타내는 하나 이상 최대 2n개의 출력단 (n-비트 디코더) 2진 디코더 1001 감지를 위한 디코더
4비트 디코더 가능한 모든 입력 비트들의 조합 검출-16 출력단 [표 4-6] 4/16 디코더의 디코딩 함수 [그림 4-42] 4선/16선 디코더 (액티브-LOW 출력) 74HC164 : 4/16 디코더
예제 6-7 74HC154를 사용한 5비트 디코더 설계(디코더 확장)
디코더 응용 컴퓨터가 디코더를 이용해 I/O 주변 장치(peripheral)를 선택하는 예 각 I/O 포트는 번지(address) 라는 고유한 번호를 배정
BCD/10진 디코더 (BCD-to-Decimal Decoder) BCD 코드(8421 Code)를 10진 숫자로 변환 BCD/7-세그먼트 디코더 BCD 입력을 디코딩하여 7-세그먼트 출력 소자를 구동
74LS47 : BCD/7-세그먼트 디코더 별도의 구동회로 없이 공통 음극형 7-세그먼트 display를 직접 구동 LT(lamp test)에 LOW, BI/RBO(blanking input/ripple blanking output)에 HIGH가 입력되면 모든 세그먼트가 ON BI/RBO에 LOW가 입력되면 다른 입력에 관계 없이 모든 세그먼트 출력을 HIGH로 만들어 7-세그먼트가 비활성화(inactive) RBI(ripple blanking input)가 LOW일 때 BCD 입력에 0(0000)이 들어오면 디코더는 모든 세그먼트 출력을 HIGH로 하여 7-세그먼트를 비활성화시켜 공란(blank)으로 만들고, RBO에 LOW를 출력
램프 테스트 (Lamp Test) 0 억제 (Zero Suppression) LT 입력에 LOW가 가해지고 BI/RBO에 HIGH가 가해지면 7-세그먼트 표시 장치의 7개 모든 세그먼트가 ON 0 억제 (Zero Suppression) 숫자를 표시할 때 불필요한 0을 제거 리딩 0 억제 : 소숫점 앞의 0을 공란으로 트레일링 0-억제 : 소숫점 뒤의 0을 공란으로
6-6 인코더 (Encoder) 10진/BCD 인코더 (Decimal/BCD Encoder) 진수 BCD 코드 A3 A2 A1 A0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 0 1
10진/BCD 우선순위 인코더(Priority Encoder) A3 = 8 + 9 A2 = 4 + 5 + 6 + 7 A1 = 2 + 3 + 6 + 7 A0 = 1 + 3 + 5 + 7 + 9 10진/BCD 우선순위 인코더(Priority Encoder) 여러 개의 입력이 동시에 들어올 경우 가장 높은 수에 해당하는 BCD 코드만 출력
74147 10진/BCD 인코더 활성-LOW 입력과 활성-LOW BCD 출력을 갖는 10진/BCD 우선순위 인코더 HPRI : 가장 큰수(highest value)가 가장 높는 우선순위를(Priority) 갖고 있다는 의미
인코더 응용 예 : 키보드 인코더
6-7 코드 변환기 (Code Converter) BCD/2진 변환 (BCD-to-Binary Conversion) 1. BCD 코드에서 각 비트의 값(가중치)을 2진수로 표시한다. 2. BCD 코드에서 1인 비트들의 2진 가중치를 모두 더한다. 3. 가산의 결과는 BCD 코드에 대응하는 2진수가 된다. <예> 1000 0111 = 8 7 10의 가중치 1의 가중치 가중치 : 80 40 20 10 8 4 2 1 비트명 : B3 B2 B1 B0 A3 A2 A1 A0
BCD 비트 가중치 2진 표현 64 32 16 8 4 2 1 A0 A1 A2 A3 B0 B1 B2 B3 1 2 4 8 10 20 40 80 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0
74184 : ROM으로 프로그램된 BCD/2진 변환기 74185 : ROM으로 프로그램된 2진/BCD 변환기
8비트 BCD/ 2진 변환 8비트 2진/BCD 변환
2진/그레이 및 그레이/2진 변환 2진/그레이 변환 논리 그레이/2진 변환 논리
6-8 멀티플렉서 (Multiplexer) 여러 곳에서 입력되는 데이터 중에서 하나를 선택하여 출력 2n개 이하의 데이터 입력단, 1개 출력단, 그리고 n개 데이터 선택입력 데이터-선택기 (data-selector)라고도 함 <예> 4-입력 멀티플렉서 데이터 선택입력 S1 S0 선택된 입력 0 0 0 1 1 1 D0 D1 D2 D3
74157 Quadruple 2-Input Multiplexer 2입력 멀티플렉서 4개로 구성 4개의 멀티플렉서들은 데이터-선택입력과 Enable 입력을 공유 입력이 LOW이면 선택된 입력 데이터가 출력
74151A 8-Input Data-Selector / Multiplexer 8개의 데이터 입력단, 3개의 데이터-선택 입력
<예제 6-15> 74LS151과 그 밖의 필요한 논리 회로를 이용하여, 16개의 데이터 입력 중 하나를 선택하여 출력하는 멀티플렉서를 구현하라.
응용 예 7-세그멘트 출력용 MUX 하나의 BCD/7-seg DEC를 사용하여 두자리 숫자를 7-seg display에 출력 데이터-선택 입력의 주파수는 3O Hz 이상으로
논리 함수 발생기 (The Logic Function Generator) 곱의 합 형태 (sum-of-product form)의 논리 함수를 구현 여러개의 게이트를 멀티플렉서 하나로 대치 설계 변경이 용이 A2 A1 A0 Y 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 1 1
n-입력 데이터-선택기(멀티플렉서)를 사용한 (n+1) 비트 입력의 논리 함수 구현 특정 입력 변수 조합(예, A3A2A1)에 대하여 A0와 관계없이 Y가 모두 0이라면, 그 입력은 접지 (0)에 연결한다. 특정 입력 변수 조합(예, A3A2A1)에 대하여 A0와 관계없이 Y가 모두 1이라면, 그 입력은 +V (1)에 연결한다. 특정 입력 변수 조합(예, A3A2A1)에 대하여, Y가 서로 다르고 Y=A0이라면, 그 입력은 A0에 연결한다. 특정 입력 변수 조합(예, A3A2A1)에 대하여, Y가 서로 다르고 이라면, 그 입력은 에 연결한다.
<예제 6-17> 74LS151 8-입력 멀티플렉서를 사용하여 표의 논리 함수를 구현하라. A3 A2 A1 A0 Y 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 A3 A2 A1 A0 Y 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1
6-9 디멀티플렉서 (DeMultiplexer) 멀티플렉서와 반대 기능 : 하나의 입력선으로 데이터를 받아 이것을 여러 개의 출력선 중 하나에 출력 데이터-분배기라고도 함 <예> 1-선/4-선 DEMUX
디멀티플렉서로 사용된 74154 : 4-선/16-선 디코더 DEMUX에서 디코더의 입력선은 데이터-선택선으로 사용 Enable 입력중 하나는 데이터 입력으로 사용
6-10 패리티 생성기/검사기 Parity Generator/Checker Logic 6-10 패리티 생성기/검사기 Parity Generator/Checker Logic 74LS280 9-비트 패리티 생성기/검사기 9-비트 코드(8개 데이터 + 1개 패리티 비트)에 대한 패리티를 검사/생성
에러 검출 기능을 가진 데이터 전송 시스템 패리티 생성기의 ∑ODD 출력은 짝수 패리티 비트로 사용
6-11 고장진단 디코더 글리치
스트로빙 스트로브 펄스를 이용하여 파형 전이가 일어나지 않는 경우에만 디코더를 인에이블시킴으로써 글리치 제거
6-12 프로그램 논리 프로그래밍 기법 하드웨어 관점 일반(Conventional) 프로그래밍 6-12 프로그램 논리 프로그래밍 기법 하드웨어 관점 일반(Conventional) 프로그래밍 인-시스템(In-System) 프로그래밍 소프트웨어 관점 결선도 입력 소프트웨어 하드웨어 기술 언어(HDL) 두 가지 병행
SPLD의 일반(conventional) 프로그래밍 PLD를 PCB에 장착시키기 전 프로그래밍 프로그래밍 소프트웨어 + 컴퓨터 + 프로그래머
논리 컴파일러 : 프로그래밍에 쓰이는 소프트웨어 패키지 HDL : ABEL, CUPL etc. 설계 입력 방법 텍스트형 : 부울식, 진리표, 상태선도 결선도 프로그래머 ZIF 소켓에 PLD 삽입 소프트웨어 구동 프로그램 논리 컴파일러에 의해 생성된 JEDEC 파일을 읽고 이를 PLD의 정해진 핀에 전압을 가하는 명령어로 변환함으로써 PLD 프로그래밍
프로그래밍 과정
인-시스템 프로그래밍 PCB에 장착된 상태에서 프로그래밍 IEEE 표준 1149.1(JTAG)에 의해 규정된 표준 4-선 인터페이스 이용 현장에서 사용중이라도 쉽게 회로 변경 가능 일반 프로그램 GAL과 인-시스템 프로그램 GAL
디지털 시스템 응용 신호등 제어시스템 신호등 동작 순서 시스템 블럭선도 상태 디코더 출력논리 트리거 논리에 대한 진리표 작성
End of Chapter 6