1 / 78

디지털 산술과 연산회로

디지털 산술과 연산회로. 단원목차. 1. 디지털 연산 2. 부호화 이진수 3. 부호화 이진 연산 4. 16 진 연산 5. 수와 알파뉴메릭 코드 6. 이진 가산기와 감산기 7. BCD 가산기 8. MAX+PLUS II 에서의 캐리생성. 디지털 산술. 부호화 이진수 : 부호 (+/-) 를 한 비트 ( 일반적으로 MSB), 나머지 비트를 크기로 하는 고정된 길이의 이진수 .

Download Presentation

디지털 산술과 연산회로

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 디지털 산술과 연산회로

  2. 단원목차 1. 디지털 연산 2. 부호화 이진수 3. 부호화 이진 연산 4. 16진 연산 5. 수와 알파뉴메릭 코드 6. 이진 가산기와 감산기 7. BCD 가산기 8. MAX+PLUS II 에서의 캐리생성

  3. 디지털 산술 • 부호화 이진수: 부호 (+/-) 를 한 비트 (일반적으로 MSB), 나머지 비트를 크기로 하는 고정된 길이의 이진수. • 무부호 이진수: 부호비트를 규정하지않는 고정된 길이의 이진수. 모든 비트는 크기이고 부호는 양(+)으로 고려된다.

  4. 무부호 이진 연산 • 합(sum): 둘 또는 그 이상의 이진수(오퍼랜드)의 가산연산의 결과. • 캐리(carry): N-비트 가산동작 동안에 다음의 최상위 비트로 자리올림이 발생하는 비트. • 만약 결과가 N-비트에서 허용할 수 있는 것보다 클 경우, 캐리비트는 1이 된다.

  5. 기본 규칙(무부호) • One Bit 무부호 가산 0 + 0 = 0 0 1 + 0 = 0 1 1 + 1 = 1 0 1 + 1 + 1 = 1 1 C_IN A B C_OUT SUM

  6. 이진 가산 예 • 이진 가산 1 Carry to next 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 + 1 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 1 0 0 0 0 0 1 Carry Out Bit

  7. 감산 • 감산 X = A – B에서, A=피감수(Minuend), B=감수(Subtrahend), X =차(Difference). • 만약 A < B이면 빌림 비트가 요구된다. • 감산은 마이크로프로세서에서 사용하는 2의 보수 가산과 같은 많은 형태가 있다. (PC에서 처럼)

  8. 감산 규칙 • 1비트 이진 감산 0 - 0 = 0 0 1 - 0 = 0 1 1 - 1 = 0 0 10 - 1 = 0 1 BORROWIN A B

  9. 이진 감산 예 • 빌림이 있는 이진 감산 1110 110(10) Borrow Stage -1001 100 1 010 1 10000 0111(10) Borrow ripples to LSB - 101 10 1 0101 1

  10. 부호화 이진수(1) • 부호비트: 일반적으로 MSB 비트로, 수가 양일 때는 ‘0’, 음일 때는 ‘1’을 나타낸다 • 크기비트: 크기를 나타내는 비트 • 참 크기 형태: 크기비트가 참(TRUE) 크기를 나타내는 부호화 이진형태 (보수형태가 아님).

  11. 부호화 이진수(2) • 1’s Complement: 모든 비트를 보수화해서 음수를 만드는 부호화 이진수의 형태. • 2’s Complement: 모든 비트를 보수화 한 후, 1을 더해서 음수를 만드는 부호화 이진수 형태(1’s complement +1).

  12. 참 크기 형태 • 5 Bit Numbers/ Negative = S=1 +25 = 011001 sign bit = MSB = S = 0 -25 = 111001 Same as +25 with S=1 -12 = 101100 +12 = 001100 True magnitude

  13. 1의 보수 형태 • 8-Bit 1’s Complement (Negative = S = 1) 57 = 0011 1001 -57 = 1100 0110 All Bits Inverted 72 = 0100 1000 -72 = 1011 0111

  14. 2의 보수 형태 • MPU(PC) 연산에서 사용 +72 = 01001000 -72 = 10110111 + 1 10111000 +57 = 00111001 -57 = 11000110 + 1 10111111

  15. 부호화 이진 가산(8-Bit) • 부호화 가산(Positive S = 0) +30 = 0001 1110 +75 = 0100 1011 +105= 0110 1001 부호비트를 갖는 이진 가산과 유사

  16. 1의 보수에 의한 감산 • 1의 보수를 더하고 캐리를 더함 +80 = 0101 0000 (+80) = 0101 0000 -65 => 0100 0001 (+65) = 1011 1110 (1’s Comp 65) 10000 1110 + 1(end-around carry) 0000 1111 (+15) ‘End around carry’가산방법을 사용

  17. 2의 보수 감산 • 피감수에 2의 보수를 가산 +80 = 0101 0000 0101 0000 +65 = 0100 0001 +1011 1111 -65 = 1011 1110 +1 1 0000 1111 Discard Carry Bit from result

  18. 음수 결과 • 만약 감산을 위해 참 크기 형식으로 하면, 결과가 부정확해짐.(p228 참조) • 만약 결과가 1의 보수 혹은 2의 보수로부터 얻고, 결과가 음(S=1) 이면, 크기는 결과를 보수화 하여 얻어진다.

  19. 음수 결과 예 • 2’s Complement Negative Result (65-80) +65 = 0100 0001 0100 0001 -80 = 1011 0000 (2’s C.) +1011 0000 1111 0001 Invert 0000 1110 Add 1 + 1 Final Result = -15 0000 1111 = 15(Neg.) 결과의 부호비트가 1이면 그것은 음수이고 2의 보수 형태이다.

  20. 부호화 수의 범위 • N개의 크기비트를 갖는 양수의 범위는 0 to 2N - 1. • N개의 크기비트를 갖는 음수의 범위는 -1 to -2N. • 8-Bit 예 8 Bit Number Range is -2N <= X <= +2N - 1 or -128 to +127

  21. 부호 비트 오버플로우 • Overflow: 합이나 차의 결과가 크기 비트로 표현될 수 있는 것보다 클 경우 부호화 이진수의 부호비트로 캐리가 에러가 되는 현상. • 결과는 잘못된 양수나 음수가 된다.

  22. 잘못된 음수 오버플로우 • 8-Bit Addition +75 = 0100 1011 +96 = + 0110 0000 1010 1011 Result is Negative (False) 두 양수를 더해서 결과가 +127 보다 클 경우 오버플로우가 발생한다.

  23. 잘못된 양수 오버플로우 • 8-Bit 두 음수의 가산 -80 = 1011 0000 (2’s comp. form) -65 = +1011 1111 (2’s comp. form) 0110 1111 Result is Positive(False) 두 음수의 가산결과, 8-비트 수의 범위(-128)를 초과하여 그릇된 양수가 얻어짐.

  24. 16진 가산 • 0에서 9 숫자의 범위를 갖는 십진 가산과 유사함. • 예 F + 1 = 10 F + F = 1E

  25. BCD Codes • BCD(Binary Coded Decimal) 코드: • 4-비트 이진 값으로 십진수를 표현하는데 사용하는 코드. • 0-9에 대해서는 0000에서 1001가 대응되고, 1010에서 1111는 유효하지 않음. • 각 비트 위치가 십진 가중치를 가지므로 일명 8421 코드라 함.

  26. BCD 예 • (4987)10 = 0100 1001 1000 0111 (BCD) • (84)10 = 1000 0100 • 각 자리는 4-Bit 이진 그룹이다.

  27. 과잉(Excess)-3 코드 • 참 크기의 4-비트 이진 값에 3(0011)을 더해서 얻어지는 BCD 코드. • 과잉-3은 자기보수(self complementing ) 코드이다. 만약, 과잉-3 수의 비트가 반전되면, 등가 십진수의 9의 보수가 된다. • 과잉-3 코드는 십진연산을 디지털적으로 수행할 때 유용하다.

  28. Excess-3 예 • 3 = 0011 + 0011 = 0110 = 6 in E-3. • 1 = 0001 + 0011 = 0100 = 4 in E-3 • 9’s Complement of 1(0100 in E-3) = (9 - 1) = 8 • If we take 1’s complement for 1011(8 in E-3 code). => 0100 • Self Complement : /(E-3 code) = 9’s 보수)

  29. Gray Code 그레이코드 비 가중치 코드고 연산코드가 아님; 즉, 비트 위치마다 가중 값이 없다. 그레이 코드의 중요한 특징은 한 코드 수와 다음 코드 수 사이에는 단지 한 비트만 변한다.  Shaft position encoder(응용) 4-bit Gray code Decimal Binary Gray code Decimal Binary Gray code 0 0000 0000 8 1000 1100 1 0001 0001 9 1001 1101 2 0010 0011 10 1010 1111 3 0011 0010 11 1011 1110 4 0100 0110 12 1100 1010 5 0101 0111 13 1101 1011 6 0110 0101 14 1110 1001 7 0111 0100 15 1111 1000

  30. 그레이코드 변환 • Binary-to-Gray code conversion • MSB in the Gray code is the same as MSB in the binary number. • Going from left to right, add each adjacent pair of binary code bits to get • the next Gray code bit. Discard carries. • Ex) 1 0 1 1 0 (Binary) (For 4-bit code • g3 = b3 • g2 = b3 xorb2 • 1 1 1 0 1 (Gray) g1 = b2 xorb1 • g0 = b1 xorb0) • Gray-to-Binary code conversion • MSB in the Binary code is the same as MSB in the Gray code. • Add each binary code bit generated to the Gray code bit in the next • adjacent position. Discard carries. • (For 4-bit code • Ex) 1 1 0 1 1 (Gray) b3 = g3 • b2 = b3 xorg2 • b1 = b2 xorg1 • 1 0 0 1 0 (Binary) b0 = b1 xorg0)

  31. ASCII 코드 • American Standard Code for Information Interchange. • 데스트 문자, 수, 구두점, 특수제어를 위해 7-비트의 수문자 코드 • 확장된 8-bit 형태가 더 넓게 사용된다. • Table 6.5 참조

  32. 이진 가산기 • Half Adder(HA): • 두 비트를 가산하여 합과 캐리를 출력하는 회로. • Full Adder(FA): • 다른 반가산기 또는 전가산기로부터 캐리비트와 두 오퍼랜드 비트를 더하여 합과 캐리를 출력하는 회로.

  33. 반가산기 가산 • 이진 두 비트 가산규칙 0 + 0 = 00 0 + 1 = 01 1 + 1 = 10 Figure 6.1 Half Adder

  34. 반가산기 회로 • 기본 식 S = A xor B, C = A and B • 여기서 S = Sum, C = Carry. • 반가산기의 진리표 Figure 6.2 A B C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0

  35. 전가산기 • 반가산기에 CIN을 더한다. • 식은 다음과 같이 수정된다. • C = ((A xor B) and CIN) or (A and B). • S = A xor B xor CIN. • 전가산기는 두개의 반가산기와 OR 게이트로 구성될 수 있다.

  36. 전가산기 회로 • 두개의 반가산기를 사용한 전가산기 회로 Figure 6.6

  37. 병렬 가산기 • N-Bit Multiple Adder (FA Stages) A1 A S A2 A S AN A 0 CI CO CI CO CI B1 B B2 B BN B S1 S2 SN

  38. 리플 캐리(1) • N-비트 병렬 가산기에서(FA Stages) 캐리출력은 마지막 단의 전가산기(FA_N)에서 발생한다. • 이것을 리플캐리 가산기라 한다. 왜냐하면, 최종 캐리출력(Last Stage)은 LSB단으로 입력된 캐리입력 CIN이 리플되어 전파해 오기 때문이다. Figure 6.11

  39. 리플 캐리(2) • 각 단은 CIN에서 COUT까지 하나의 AND Gate와 하나의 OR Gate의 전파지연을 가진다. • 4-Bit 리플 캐리 가산기는 최종 COUT까지 8 Gates(4 x 2 = 8)의 전파지연을 가진다. • PC의 MPU 에서처럼 32-Bit 가산기는 대략 64 Gates의 지연을 보여준다.

  40. 캐리 예견(1) • Fast Carry 또는 Look Ahead Carry: • 최종 COUT 을 오퍼랜드 비트들(A1 ~ AN, B1 ~ BN) 로부터 직접 발생시키는 조합회로 망. • •리플캐리에서처럼 각 전가산기 단의 동작에 의존하는 것과는 다르다.

  41. 캐리 예견(2) • 캐리 예견(Fast Carry)은 리플캐리에 비해서 작은 전파지연을 가진다. • 4-비트 가산기 경우, 리플캐리는 8 게이트 지연이 있으나, 빠른캐리는 단지 3 게이트 지연이 있다. • Cn = AnBn + Cn-1(An + Bn)

  42. 4-bit Fast Carry Circuit Fig. 6.12

  43. 2의 보수 감산기(1) • 2의 보수 가산에 의한 감산의 개념은 병렬 전산기의 사용을 가능하게 한다. • 이것은 감산을 위해 MPU ALU (Arithmetic Logic Unit)에서 사용할 수 있다. • 감산동작은 감수의 보수에다 1을 더한 후, 피감수를 가산함으로 이루어 진다.

  44. 2의 보수 감산기(1) Fig. 6.14 Ex) 0101-0011 2’s comp. of “0011” 0011 1100(1’s) +1 1101 0101(+5) + 1101(-3) 1 0010(+2) discard carry

  45. 2의 보수 감산기(2) • 차 = A - B = A + (!B + 1). • 이러한 동작은 B1 ~ BN 을 반전하고, LSB단의 CIN을 +5V에 연결한 N-비트 병렬 가산기에서 수행될 수 있다. • 회로는 가산 또는 감산 동작을 선택적으로 수행하기 위해 수정될 수 있다. Figure 6.16

  46. 2의 보수 가/감산기 Fig. 6.15

  47. 구조적(Structured) VHDL 설계(1) • 계층(Hierarchy): 일련의 계층(레벨)과 관련된 설계 엔티티의 그룹으로, 완전한 설계는 하위 부분들로 구성된 상부설계로 이루어진다. • Component: 완전한VHDL Design Entity는 계층적 설계에서 상위 레벨 파일의 일부로 사용될 수 있다.

  48. 구조적 VHDL 설계(2) • Port: VHDL 설계 엔티티 또는 컴포넌트에서의 입력이나 출력 • Component Declaration Statement: VHDL 설계 엔티티에 사용되는 컴포넌트의 I/O 포트 이름을 정의하는 문. • Component Instantiation Statement: VHDL 컴포넌트의 포트이름을 상위레벨의 VHDL 설계 엔티티의 포트이름, 내부신호, 또는 변수들에 사상시키는 문. • 다음의 슬라이드는 하나의 전가산기 컴포넌트를 사용하여 4-비트 병렬 이진 가산기 VHDL 설계를 보여준다.

  49. Figure 6.13 (4-bit parallel adder with ripple carry)

  50. 전가산기 VHDL • 기본적인 전가산기 ENTITY full_adder IS PORT( a, b, c_in : IN BIT; c_out, sum : OUT BIT); END full_adder; ARCHITECTURE adder OF full_adder IS BEGIN C_OUT <= ((a XOR b) AND C_IN) OR (a AND b); SUM <= (a XOR b) XOR c_in; END adder;

More Related