디지털 논리의 표현 디지털 회로 디지털 회로 구현 dolicom@naver.com http://blog.naver.com/dolicom
논리 논리 게이트
논리 게이트 논리게이트(Logic gate) 0 또는 1로 구성된 2진 정보를 취급하는 논리회 (logic circuit) 일반적으로 2개 이상의 입력 단자와 하나의 출력 단자 기본 게이트 : AND OR NOT 기본 게이트로 부터 EOR NAND NOR등으로 조합
논리게이트의 종류 - 기본게이트 AND OR NOT X Y S 1 X Y S 1 X S 1
논리게이트의 종류 - 기본게이트 XOR NAND NOR X Y S 1 X Y S 1 X Y S 1
버퍼 (buffer) buffer OE OE X S X S X S X S 1 OE X S 1 Z OE X S 1 Z
조합 논리회로 반가산기(half adder) 2비트의 산술 덧셈을 하는 로직 입력 출력 X Y S C 1
전가산기(full adder) 전가산기(full adder) 두 개의 2 진수 X, Y와 자리올림수 C1을 포함하여 3 비트를 더하는 조합 논리 회로 입력 출력 X Y C1 S C 1
바이트 ADDER 두 바이트 더하는 회로는 반가산기 전가산기를 연결하여 만든다. . . . y7 x7 y6 x6 y1 x1 c7 c6 c5 . . . c1 c0 전가산기 전가산기 전가산기 반가산기 s7 s6 s1 s0
논리회로의 구현
논리 회로의 구현과 칩의 종류
TTL과 CMOS 신호 전압
74LS541 핀 구조
순차 논리 회로 클럭 (Clock)
Clock 디지털 회로의 순차논리회로의 동기(변화시점)을 결정 한다. CPU 및 대부분의 디지털 회로에서는 필요하다. Timer 모듈은 디지털회로의 카운터를 기반으로 하드웨어적으로 동작하는 시간 모듈이다. 시계는 모두 이 클럭을 사용 한다.
클럭의 모양 0과 1을 변화할 때 약간의 시간이 걸린다. 클럭은 0과 1이 같은 시간동안 반복된다. CPU는 듀티(Duty) 50% 클럭 사용 1 0과 1을 변화할 때 약간의 시간이 걸린다. 순차회로는 주로 클럭의 0과1의 변화시점(엣지)에서 상태가 변화는 동기가 일어난다.
주파수 발진 회로 예
클럭의 사용 수정발진자( Quartz Crystal Oscillator) CPU 내의 모든 동작은 이 클럭에 맞추어 동작 30pF 발진회로 C1 30pF GND CPU
외부 클럭을 사용 외부에서 완전한 클럭을 만들어 사용 GND Vcc CPU 클럭 발진회로 사용 하지 않음 사용하지 않음 CPU XTAL1 발진회로 사용 하지 않음 사용하지 않음 XTAL2 GND CPU
수정 발진자 부품 Quartz 수정 전극1 전극2 기호 구조 모양
순차 논리 회로 순차논리회로
래치 (latch) 기억장치 : 입력에 의해 상태가 전환되기 전까지 2진 상태 유지 SR 래치 - NOR 게이트 이용
래치 (latch) 기억장치 : 입력에 의해 상태가 전환되기 전까지 2진 상태 유지 SR 래치 - NAND 게이트 이용
순차회로 (Sequence Circuit) G S Q G Q R
D 래치 (latch) 두개의 입력 : D(data), C(control) 데이터 저장기능 D C Q
D Flip-flop D Q CLK Qnext > X X 1 X 1 X 1 D Q Q : 상태유지 CLK Q : 상태유지 D Q CLK Qnext D CLK Q > X ↑, 0 ,1 Q : 상태유지 X 1 X ↑, 0 ,1 Q : 상태유지 1 X 1
74LS74A
8비트 D 래치(latch) 11번 핀 G가 1일 때 모든 입력 D가 래치에 저장된다. 1번 핀 OutputControl이 0일 때 저장 상태가 Q에 나타난다.
8비트 D 플립플롭(Flip-flop) 11번 핀 CLOCK 이 ↑이면 모든 입력 D 가 저장 된다. 1번 핀이 0이면 모든 Q의 출력이 반영 된다.
Binary Counter
논리 회로의 프로그램 PLD PAL/GAL 프로그램 툴
PLD 모든 조합 회로는 AND, OR, NOT의 기본 로직으로 표시할 수 있다. 사용자가 필요한 논리기능을 프로그램 할 수 있다. PAL : AND 배열을 프로그램하고 OR 배열은 고정. 한 번 회로를 결정하면 회로를 바꿀 수 없다. GAL : PAL과 같은 기능을 하나 재 프로그램이 가능.
PAL 구조 Y = A B + BC + ABC = AB(C+!C) + (A+!A)BC +ABC = ABC + AB!C + ABC + !ABC + ABC = !ABC + AB!C + ABC PT0 + PT1 + PT2 PT0 = !A B C => F1 F2 F4 PT1 = A B !C => F6 F8 F11 PT2 = A B C => F12 F14 F16 PT0 : XOOXOX => 011010 PT1 : OXOXXO => 101001 PT2 : OXOXOX => 101010 O : fuse 연결 X : 연결 안됨 – 논리 1로 입력
PLD 2 SPLD (Simple Programmable Logic) PAL과 유사한 구조. 게이트 수는 약 200개 정도. CPLD (Complex Programmable Logic Device) 특별한 논리함수를 구현을 위한 Embedded Array Block을 가지고 있다. FPGA (Field Programmable Gate Array) PLD의 블록간의 연결에 Array구조와 Row구조 사용 게이트의 용량이 많다.
PAL/GAL GAL 22V10 PAL 16L8
PAL/GAL 칩
PAL/GAL의 프로그램 예 논리를 표현하는 파일을 만든다. PLD 컴파일러로 논리 표현을 PAL/GAL에 쓸 수 있도록 JED 파일을 만든다. 이것을 롬라이터로 PAL/GAL에 쓴다. (보통 롬라이터에 쓰는것을 ‘굽는다’라함) PCB 장착하고 동작 시킨다. 유틸리티 컴파일러 : PALASM, WinCUPL(Atmel), ABEL 롬라이터 : 장치 및 라이터 프로그램 (구입)
PAL/GAL 프로그램 예 PALASM 예 ;PALASM Design Description ;--------- 선언부 (Declaration Segment) ------------------- TITLE TUTOR1.PDS PATTERN A REVISION 1.0 AUTHOR J.ENGINEER COMPANY ADVANCED MICRO DEVICES DATE 01/01/90 CHIP DECODER PAL16L8 ;-------- 핀 정의 (PIN Declarations) ----------------------- PIN 2 X COMBINATORIAL ; INPUT PIN 3 Y COMBINATORIAL ; INPUT PIN 4 Z COMBINATORIAL ; INPUT PIN 10 GND ; INPUT PIN 12 A COMBINATORIAL ; OUTPUT PIN 13 B COMBINATORIAL ; OUTPUT PIN 14 C COMBINATORIAL ; OUTPUT PIN 15 D COMBINATORIAL ; OUTPUT PIN 16 E COMBINATORIAL ; OUTPUT PIN 17 F COMBINATORIAL ; OUTPUT PIN 18 G COMBINATORIAL ; OUTPUT PIN 19 H COMBINATORIAL ; OUTPUT PIN 20 VCC ; INPUT ;------- 기능 정의 (Boolean Equation Segment) --------------- EQUATIONS /A = /X * /Y * /Z /B = /X * /Y * Z /C = /X * Y * /Z /D = /X * Y * Z /E = X * /Y * /Z /F = X * /Y * Z /G = X * Y * /Z /H = X * Y * Z PAL/GAL 프로그램 예 PALASM 예
PAL/GAL 예 ;----------- Simulation Segment ------------ SIMULATION TRACE_ON X Y Z A B C D E F G H SETF /X /Y /Z CHECK /A B C D E F G H SETF /X /Y Z CHECK A /B C D E F G H SETF /X Y /Z CHECK A B /C D E F G H SETF /X Y Z CHECK A B C /D E F G H SETF X /Y /Z CHECK A B C D /E F G H SETF X /Y Z CHECK A B C D E /F G H SETF X Y /Z CHECK A B C D E F /G H SETF X Y Z CHECK A B C D E F G /H TRACE_OFF ;--------------------------------------
WinCUPL 회로 예 Name SimSch; Partno atf22v10c; Date 2004/06/21; Rev 01; Designer SongSukChun; Company icom; Assembly None; Location None; Device g22v10; /****************************************************************/ /* Test simple circuit */ /** Inputs **/ Pin 2 = IN1; /* Input pin 1 */ Pin [5..7] = [A1..3]; /* Input vector */ /** Outputs **/ Pin 14 = OUT1; /* Output 1 */ Pin [17..19] = [O1..3]; /* Output vector */ /* Perform 4, 1-bit, additions and keep the final carry */ OUT1 = IN1 & A1 & A2 & A3 # !IN1 & !A1 & !A2 & !A3; O1 = A1 & !A2 & !A3; O2 = !A1 & A2 & !A3; O3 = !A1 & !A2 & A3; WinCUPL 회로 예
WinCUPL 툴
JED 파일 JEDEC 파일 – 컴파일 결과 CUPL(WM) 5.0a Serial# 60008009 Device g22v10 Library DLIB-h-40-1 Created Tue Jun 22 15:39:59 2004 Name SimSch Partno atf22v10c Revision 01 Date 2004/06/21 Designer SongSukChun Company icom Assembly None Location None *QP24 *QF5892 *G0 *F0 *L02144 00000000000011111111111111111111 *L02176 11111111111111111111111111111111 *L02208 11111111101110110111111111111111 *L02240 11110000000000000000000000000000 *L02880 00000000000000000000000011111111 *L02912 11111111111111111111111111111111 *L02944 11111111111111111111101101111011 *L02976 11111111111111110000000000000000 . . . *L05792 00000000000000000000000011111100 *L05824 00110110000101110100011001100011 *L05856 00100011001001110110001100010011 *C35E2 *E775 JED 파일 JEDEC 파일 – 컴파일 결과
PLD 파일에서의 논리 표현 WinCUPL PALASM /A = /X * /Y * /Z /B = /X * /Y * Z AND OR NOT * + / /A = /X * /Y * /Z /B = /X * /Y * Z WinCUPL 논리 표현 AND OR NOT & # ! OUT1 = IN1 & A1 & A2 & A3 # !IN1 & !A1 & !A2 & !A3;