포스트

임베디드 스터디 - 디지털 시스템

임베디드 스터디 - 디지털 시스템

이번 글 참고자료:
한빛아카데미, 디지털 논리회로4판
ElectronicsTutorials

디지털 시스템의 정의

  • 디지털 신호와 아날로그 신호
    • 아날로그 신호 : 시간에 따라 연속적인 전기/전자적 신호
    • 디지털 신호 : 시간에 따라 불연속적, 이산적인 값을 갖는 신호
  • 디지털 시스템과 아날로그 시스템
    • 아날로그 시스템 : 아날로그 정보를 입력받아 아날로그 정보를 출력하는 시스템
    • 디지털 시스템 : 디지털 정보를 입력받아 디지털 정보를 출력하는 시스템
  • 디지털 시스템의 장점
    1. 내외부 잡음에 강함
    2. 설계가 용이함 (연속적인 값에 비해 두 레벨의 이산신호만 처리하면 된다)
    3. 규격화와 사양 변경에 쉽게 대응 가능함
    4. 정보를 저장, 가공하기 용이함
    5. 정보 처리의 정확성과 정밀도를 높일 수 있음 (비선형 처리, 병렬 처리)
    6. 소형화, 저비용으로 구성 가능

불 대수

모든 항이 0과 1로만 이루어진 논리 연산

불 대수 법칙

법칙AND 연산OR 연산
항등 법칙$A \cdot 1 = A$$A + 0 = A$
영 법칙$A \cdot 0 = 0$$A + 1 = 1$
멱등 법칙$A \cdot A = A$$A + A = A$
보수 법칙$A \cdot \overline{A} = 0$$A + \overline{A} = 1$
교환 법칙$A \cdot B = B \cdot A$$A + B = B + A$
결합 법칙$(A \cdot B) \cdot C = A \cdot (B \cdot C)$$(A + B) + C = A + (B + C)$
분배 법칙$A \cdot (B + C) = (A \cdot B) + (A \cdot C)$$A + (B \cdot C) = (A + B) \cdot (A + C)$
드모르간 법칙$\overline{A \cdot B} = \overline{A} + \overline{B}$$\overline{A + B} = \overline{A} \cdot \overline{B}$

논리식 표준화

논리식을 표현하는 표준은 2가지가 있다.

SOP(Sum of Product)

논리식을 AND/NAND 조합식의 OR/NOR로 구성하는 방법이다.

ex) $AB + \overline{A}BC$

SOP에서는 AND 조합식의 NOT 구성을 허용하지 않는다.

ex) $\overline{ABC}$ 는 허용되지 않음. $\overline{A} \cdot \overline{B} \cdot \overline{C}$ 는 허용됨.

  • 표준 SOP : 모든 단위 조합식(AND/NAND로만 구성된 조합식)에서 모든 입력항을 표현한다.

ex) $AB + \overline{A}BC$ → $ABC + AB\overline{C} + \overline{A}BC$

POS(Product of Sum)

논리식을 OR/NOR 조합식의 AND/NAND로 구성하는 방법이다.

ex) $(\overline{A} + B)(A + \overline{B} + \overline{C})$

POS에서는 OR 조합식의 NOT 구성을 허용하지 않는다.

ex) $\overline{A + B + C}$ 는 허용되지 않음. $\overline{A} + \overline{B} + \overline{C}$ 는 허용됨.

  • 표준 POS : 모든 단위 조합식(OR/NOR로만 구성된 조합식)에서 모든 입력항을 표현한다.

ex) $A + \overline{B} + C = A + \overline{B} + C + D\overline{D} = (A + \overline{B} + C + D)(A + \overline{B} + C + \overline{D})$

논리식 간소화

논리식은 다음 방식으로 간소화할 수 있다.

진리표 기반 불 대수 법칙 적용(Quine-McCluskey 알고리즘)

대표적인 예로 Quine-McCluskey 알고리즘이 있다. Quine-McCluskey 알고리즘은 카르노맵과 원리는 유사하지만 처리 과정에 알고리즘화 가능함.

Q-M 알고리즘은 모든 항을 2진수로 표현한 뒤, 1의 개수에 따라 각 항을 그룹화하며, 각 그룹에서 unit distance인 경우에 대해 간소화를 진행한다.

  • Quine-McCluskey 알고리즘 동작 순서
    1. 모든 항을 2진수로 표현
    2. 1의 개수에 따라 그룹화
    3. 각 그룹간 unit distance 그룹에 대해 결합
    4. 결합이 안되는 항은 PI(Prime Implicant)으로 기록
    5. PI를 모아 EPI(Essential Prime Implicant)를 기록
    6. EPI외의 나머지 항은 최소식으로 선택하여 항을 구성
    7. 최종식 완성

카르노맵 기반 논리식 간소화

  • 카르노맵 규칙
    1. 출력이 같은 항을 2의 제곱수 개수만큼 묶는다
    2. 바로 이웃한 항들끼리 묶는다
    3. 반드시 직사각형이나 정사각형의 형태로 묶어야 한다
      (XOR나 XNOR의 경우 대각선의 형태로 구성되는 점은 참고하기)
    4. 최대한 크게 묶는다
    5. 중복하여 묶어서 간소화된다면 중복하여 묶는다
    6. 무관항의 경우 간소화될 수 있으면 묶어 주고, 그렇지 않으면 묶지 않는다
  • 카르노맵 예시 (3변수 기준)
$AB \setminus C$$0$$1$
$00$$m_0$$m_1$
$01$$m_2$$m_3$
$11$$m_6$$m_7$
$10$$m_4$$m_5$

주의: 변수의 순서는 그레이 코드(Gray Code) 순서($00 \to 01 \to 11 \to 10$)를 따라야 인접성이 유지된다.

수의 표현

  • 2진법 : $0$, $1$로 구성
  • 8진법 : $0$ ~ $7$로 구성
  • 16진법 : $0$ ~ $9$, $A(10)$, $B(11)$, $C(12)$, $D(13)$, $E(14)$, $F(15)$로 구성
  • 10진법 : $0$ ~ $9$로 구성

  • BCD(Binary Coded Decimal)
    • 8421 코드 라고도 불림
    • 10진법 체계를 2진수로 표현한 형태, 한 자리수마다 1byte(4bit)을 사용
    • BCD 기반의 연산과정에서 9를 넘어가는 수에 대해 $0110_2$$(6)$을 더하여 다음 자리수로 넘김
  • Gray Code
    • 숫자가 올라갈 때마다 1bit만 변화하는 이진 표현 방법
      • 2진법 수의 표현은 디지털 시스템 안에서 잘못된 데이터 처리를 야기할 수 있음
        예) $0111_2 \to 1000_2$ 으로 전환 시 4개의 비트가 전환되는데, 이 과정에서 $1111_2, 1011_2, 1001_2$ 등 변환 중간에 디지털 시스템이 변수를 인식하는 케이스가 발생할 수 있음
    • 기존 2진법의 형태로 수를 나열할 때, 다음 그림과 같이 그레이코드가 변함
      2진법과 그레이 코드 대응 관계 시각화 다이어그램
    • Gray Code ←→ 2진법 변환 방법
      • 2진법 → Gray Code
        1. 첫 비트(LSB)는 유지
        2. 두 번째 비트부터 2진법의 이전 비트와 XOR 연산

        ex) $1011_2$ → $1,(1\oplus0),(0\oplus1),(1\oplus1) = 1110_{gray}$

      • Gray Code → 2진법
        1. 첫 비트(LSB)는 유지
        2. 두 번째 비트부터 동일자릿수 Gray Code와 이전 2진수 비트를 XOR 연산

        ex) $1011_{gray}$ → $1,(1\oplus0),(1\oplus1),(0\oplus1) = 1101_2$

  • $R$ 진법의 보수 연산
    • ($R-1$)의 보수 : 최대값 - $N$
    • ($R$)의 보수 : ($R-1$)의 보수 $+1$
    • 예시
      • $100$의 $9$의 보수 : $999 - 100 = 899$
      • $(100)_2$의 $2$의 보수 : $(111)_2 - (100)_2 + (001)_2 = (100)_2$

2진법 부동소수점 표현

  • IEEE 754 : 부호(Sign), 지수(Exponent), 가수(Fraction/Mantissa) 의 세 부분으로 구성
형식전체 비트부호 (Sign)지수 (Exponent)가수 (Fraction)바이어스 (Bias)
단정밀도 (Single)32-bit1-bit8-bit23-bit127
배정밀도 (Double)64-bit1-bit11-bit52-bit1023
  • 부호 비트 ($S$)
    • 0: 양수 ($+$)
    • 1: 음수 ($-$)
  • 지수부 ($E$) : Bias 표현법
    • 실제 지수 $e = E - \text{Bias}$
  • 가수부 ($M$) : 정규화
    • 모든 숫자는 $1.xxxx…$ 형태로 정규화하여 저장. 이때 소수점 앞의 $1$은 항상 존재하므로 생략하고 소수점 아래 부분만 저장(Hidden Bit 방식).
  • 특수 값 표현
상태지수부 ($E$)가수부 ($F$)의미
Zero000을 표현 ($+0$ 또는 $-0$)
Denormalized00이 아님아주 작은 수 (정규화 불가능)
Infinity모든 비트 10무한대 ($\infty$)
NaN모든 비트 10이 아님숫자가 아님 (Not a Number)

2진법 고정소수점 표현

형식전체 비트부호 (Sign)정수부 (Integer)소수부 (Fraction)
32bit 데이터32-bit1-bit16-bit15-bit
64bit 데이터64-bit1-bit32-bit31-bit
  • 부호 비트 ($S$)
    • 0: 양수 ($+$)
    • 1: 음수 ($-$)
  • 정수부 ($E$) : 일반 2진수 사용

  • 소수부 ($M$) : $2^{-n}$ 가중치로 표현

  • Q 포맷 : 고정 소수점의 표현 규격. $Qm.n$으로 표현.$m$은 정수비트, $n$은 소수비트

  • 부동소수점 vs 고정소수점 :
    고정소수점은 소수점 위치가 고정 → 연산 속도 빠름, 하드웨어 단순 부동소수점(IEEE 754)은 소수점 위치가 유동 → 넓은 표현 범위, 하드웨어 복잡 (FPU 필요)
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.