330 likes | 678 Views
디지털 시스템 20 10 년 1학기 교수: 송상훈 연구실: 율곡관 603- B Office Hour: 화 , 목 14:00 ~ 15:00. 성적 평가: 중간 시험 : 3 0 % 기말 시험 : 30% 프로젝트 및 숙제 : 30% 출석 10% 교재 : “ 디지털 논리설계 ” 최종필 외 6 인 역( Alan B. Marcovitz) [ 한국맥그로힐 ]. 강의내용. 수 체계 2진수, 8진수, 16진수 Signed number, 2’s complement BCD
E N D
디지털 시스템 • 2010년 1학기 • 교수: 송상훈 • 연구실: 율곡관 603-B • Office Hour: 화, 목 14:00 ~ 15:00
성적 평가: • 중간 시험 : 30% • 기말 시험 : 30% • 프로젝트 및 숙제 : 30% • 출석 10% • 교재: • “디지털 논리설계” 최종필 외 6인 역(Alan B. Marcovitz) • [한국맥그로힐]
강의내용 • 수 체계 • 2진수, 8진수, 16진수 • Signed number, 2’s complement • BCD • 스위칭대수와 논리회로 • Boolean expression, gate, truth table • 간소화 기법(karnaugh map) • Minimizing logic circuits • SOP, POS • 대형 조합회로 • Adder, decoder, encoder, multiplexer • ROM, PLA, PAL • 순차회로 해석 및 설계 • Latch, Flop Flop • Design and analysis of synchronous sequential system • Shift register, counter
Chapter 1 Introduction • 수 체계 • 2진수, 8진수, 16진수 • Signed number, 2’s complement • BCD 및 다른 코드
V V 0 1 0 1 0 1 1 0 t t Digital Vs. Analog Digital: discrete values Analog: continuous values
논리회로 설계 • 두가지 신호 값: 0, 1 • 입력: (A, B, …) 클럭(clock) - 규칙적으로 0과 1값을 반복적으로 발생 • 출력 : (W, X, …)
2 진 값의 물리적 표현 • 두 가지의 전압( 0V, 5V) • 스위치의 위와 아래 방향 • 전등의 on과 off • 자계의 두 방향
디지털 시스템 동작 표현 방법 • 진리표 형태 • 대수식 형태 • 회로도
진리표에 의한 시스템 동작 표현 예제 1.1 세 개의 입력 A, B, C와 한 개의 출력 Z를 갖는 시스템은 두개의 입력이 1일 때만 Z=1이다. 진리표
조합회로와 순서회로 • 조합회로(combinational circuit) • 출력이 입력의 현재 값에만 의존한다 • 예제 1.1에서 A, B, C의 현재 값을 안다면, Z가 지금 어떤 값을 갖는 지를 결정할 수 있다. • 순서회로(sequential circuit) • 출력이 현재 입력만이 아니고 과거의 입력에도 영향을 받는다. • 즉, 과거의 입력 상태들을 알아야 하기 때문에 메모리(memory)가 필요하게 된다.
순서회로의 예 • 예제 1.3 • 하나의 입력 A와 클럭, 그리고 하나의 출력 Z로 구성된 시스템에서 마지막 3개의 연속된 클럭에서 입력이 1일 때만 출력이 1이 된다.
실습 • BreadBoard 를 이용한 하드웨어 방법 • BreadBoard 시뮬레이터: WinBreadBoard • MaxPlus II 시뮬레이터
수 체계(number system) • 정수 표현(Integers using positional number systems) N=an-1rn-1 + an-2rn-2 +…+ a2r2 + a1r + a0 n: number of digits, r: radix(base) ai: coefficients0 ai < r bits =binary+digits
Positional Number System 764210= 7103+6 102+4 10+2 1011112 = 125 + 0 24 + 123 + 122 + 12 + 1 =32 + 8 + 4 + 2 + 1 = 4710 2의 지수승 값이 자주 사용된다.
Binary number system Note: • N bit 양의 정수의 범위: 0 .. 2n-1 • 2n– 1 = 111….1
10진수에서 2진수로 변환 예제 1.6: 2의 지수 승 값을 이용 29 = 512, 28 = 256,27 = 128,26 = 64, .. 74610 = 512 + 128 + 64 + 32 + 8 + 2 74610 = 129 + 0 28 + 127 + 126 + 125 + 024 +123 + 022 +12+0 = 10111010102 예제 1.7: 2 로 계속 나누면서 나머지를 취함 105/2=52 rem 1 1 52/2=26 rem 0 01 26/2=13 rem 0 001 13=1101 이기 때문에 1101 001
16진수 (Hexadecimal) 16진수: 9보다 큰 숫자는 첫 영문자 6개를 사용 10 A 11 B 12 C 13 D 14 E 15 F 예제 1.9: 2 진수에서 16진수로 변환 10111010102 = 0010 1110 10102 = 2EA16
16진수 변환 (Hexadecimal) 예제 1.10: 16진수에서 10진수로 변환 2EA16 = 2162 + 1416 + 10 = 512 + 224 + 10 = 74610 예제 1.11: 10진수에서 16진수로 변환 746/16=46 나머지 10 A 46/16=2 나머지 14 EA 2/16=0 나머지 2 2EA16
2 진 덧셈 (Binary Addition) 예제 1.12 1 1 0 1 1 0 6 0 1 1 1 7 1 1 0 1 13 한 비트씩 덧셈: 합 비트(sum bit) 와 캐리 비트 발생 오버플로우(Overflow): 연산결과가 숫자범위를 벗어날때 예) 두개의 n 비트 정수를 더할때, (n+1) 비트 결과 값이 될 때.
1bit 가산기 진리표 cin a b cout s
4비트 가산기 C0 는 0 이다.
부호화 수 (signed number) • 무부호화 수(unsigned numbers) : 양의 정수 ( positive integers) • 부호화 수 (signed numbers) : 양수 와 음수 (positive and negative numbers) • 부호화 수를 나타내는 방법 • Signedmagnitude • Two’s complement • One’s complement
Signed Magnitude(부호화크기) • 첫번째 비트는 부호를 나타낸다. (양수=0, 음수=1) +5 0101 -5 1101 -3 1011
2의 보수 (2’s complement) • 부호화 수의 대부분은 2의 보수 형태를 사용한다. • 음수에 대한 2의 보수 형태를 구하는 3단계 • 크기에 해당하는 2 진수 값을 찾는다. • 각 비트에 대한 보수를 취한다. • 1을 더한다. 예제 1.15 • 5: 0101 1: 0001 0: 0000 • 1010 1110 1111 • +1 +1 +1 -5: 1011 -1: 1111 0000
오버플로우 예제 1.16: overflow +5 0101 +4 0100 (0) 1001 (looks like –7) 예제 1.17: overflow -5 1011 -4 1100 (1) 0111 (looks like +7)
2진수 뺄셈 • 뺄셈: 2의 보수를 취하여 더한다. • a-b = a+(-b) • 예제 1.18 : 7 - 5 • 5: 0101 7: 0111 • 1010 -5: +1011 • + 1 2 (1) 0010 • -5: 1011
오버플로우 • 예제 1.21: • 무부호화 수의 오버플로우 • 부호화 수의 오버플로우 • 5-7 7-(-5) • 1 1 • 0101 0111 • 1000 0100 • (0) 1110 1100 • (a) (b)
BCD: Binary Coded Decimal *가중치 (weighted) 코드: 8421, 5421, 2421 코드