PREVIEW
Decoder (3-to-8)

Decoder (3-to-8)

Encoders/Decoders signal_cellular_alt_2_bar Intermediate schedule 20 min

Interactive Circuit

3대8 디코더

개요

  • 목적: 3대8 디코더는 3비트 이진 입력 코드를 여덟 개의 상호 배타적 출력 라인으로 변환하는 디지털 조합 회로로, 입력 값에 따라 정확히 하나의 출력 라인을 활성화합니다.
  • 기호: 일반적으로 세 개의 이진 입력(A0, A1, A2), 하나의 활성화 입력(EN), 여덟 개의 출력(Y0-Y7)이 있는 직사각형 블록으로 표현됩니다.
  • DigiSim.io 역할: 주소 디코딩, 메모리 선택, 데이터 디멀티플렉싱 및 제어 신호 생성을 위한 디지털 시스템의 필수 빌딩 블록으로 사용됩니다.

decoder 3to8 component

기능 설명

논리 동작

3대8 디코더는 이진 정보를 원-핫 출력 형식으로 "디코딩"하며, 각 고유한 입력 조합에 대해 여덟 개의 가능한 출력 라인 중 하나만 활성화됩니다. 활성화되면 입력의 이진 값에 해당하는 출력 라인이 활성화되고, 다른 모든 출력은 비활성 상태로 유지됩니다.

진리표:

Enable A2 A1 A0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
0 X X X 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 1
1 0 0 1 0 0 0 0 0 0 1 0
1 0 1 0 0 0 0 0 0 1 0 0
1 0 1 1 0 0 0 0 1 0 0 0
1 1 0 0 0 0 0 1 0 0 0 0
1 1 0 1 0 0 1 0 0 0 0 0
1 1 1 0 0 1 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0

참고: X는 "무관"을 의미합니다. 일부 구현은 활성 로우 출력 또는 활성 로우 활성화를 사용할 수 있으며, 위에 표시된 출력 논리가 반전됩니다.

입력 및 출력

  • 입력:

    • A0: 3비트 이진 입력의 최하위 비트(LSB).
    • A1: 3비트 이진 입력의 중간 비트.
    • A2: 3비트 이진 입력의 최상위 비트(MSB).
    • EN: 디코더의 활성 여부를 제어하는 활성화 입력.
  • 출력:

    • Y0-Y7: 여덟 개의 상호 배타적 출력으로, 디코더가 활성화될 때 한 번에 하나만 활성화됩니다. Y0은 이진 입력 000에, Y1은 001에 해당하며, Y7의 111까지 계속됩니다.

구성 가능한 매개변수

  • 출력 논리: 출력이 활성 하이인지 활성 로우인지 여부.
  • 활성화 논리: 활성화 입력이 활성 하이인지 활성 로우인지 여부.
  • 다중 활성화: 일부 구현은 여러 활성화 입력(AND/OR 기능)을 지원.
  • 전파 지연: 입력 변경 후 출력이 변경되는 데 걸리는 시간.

DigiSim.io에서의 시각적 표현

3대8 디코더는 왼쪽에 입력 핀(A0, A1, A2, EN)과 오른쪽에 여덟 개의 출력 핀(Y0-Y7)이 있는 직사각형 블록으로 표시됩니다. 회로에 연결되면 구성 요소는 연결 와이어의 색상 변화를 통해 활성 출력을 시각적으로 나타냅니다.

교육적 가치

핵심 개념

  • 이진 디코딩: 디지털 시스템이 간결한 이진 코드를 개별 제어 라인으로 변환하는 방법을 보여줍니다.
  • 원-핫 인코딩: 이진 값이 하나의 비트만 활성인 형식으로 표현될 수 있는 방법을 보여줍니다.
  • 주소 디코딩: 메모리 및 I/O 시스템에서 사용되는 기본 기술을 설명합니다.
  • 신호 디멀티플렉싱: 이진 주소 지정에 따라 신호를 전달하는 개념을 제시합니다.
  • 조합 논리: AND 및 NOT 게이트를 사용한 조합 회로 설계의 실용적 예를 제공합니다.

학습 목표

  • 이진 값이 상호 배타적 출력 신호로 디코딩될 수 있는 방법을 이해합니다.
  • 디지털 시스템에서 이진 주소 지정과 구성 요소 선택 간의 관계를 학습합니다.
  • 디코더가 최소한의 입력 라인을 사용하여 여러 하위 시스템을 효율적으로 제어할 수 있는 방법을 인식합니다.
  • 메모리 주소 지정, 주변 장치 선택 및 제어 신호 생성에 디코더 개념을 적용합니다.
  • 디코더를 캐스케이드하거나 결합하여 더 큰 디코딩 구조를 만드는 방법을 이해합니다.

사용 예시/시나리오

  • 메모리 칩 선택: 디코더를 사용하여 주소 비트에 따라 여덟 개의 메모리 칩 중 하나를 선택.
  • I/O 장치 주소 지정: 여덟 개의 가능한 옵션에서 특정 주변 장치 활성화.
  • 명령어 디코딩: 프로세서에서 명령어 연산 코드에 따라 제어 신호 생성.
  • 멀티플렉싱된 디스플레이 제어: 다중 자릿수 디스플레이 시스템에서 활성화할 자릿수 선택.
  • 테스트 포인트 선택: 여덟 개의 가능한 테스트 포인트 중 하나로 테스트 신호 라우팅.
  • 상태 머신 구현: 디지털 컨트롤러에서 상태별 제어 신호 생성.
  • 데이터 라우팅: 3비트 선택자에 따라 여덟 개의 가능한 목적지 중 하나로 데이터 전달.

기술 참고사항

  • 3대8 디코더는 세 개의 인버터와 여덟 개의 4입력 AND 게이트를 사용하여 구현할 수 있습니다.
  • 각 출력 라인은 부울 함수를 따릅니다: Y(n) = EN • An • Am • Ak (여기서 n은 출력 번호이고, An, Am, Ak는 주소 비트 또는 그 보수입니다).
  • 일반적인 IC 구현에는 74138(활성 로우 출력의 3대8 디코더)과 74238(활성 하이 출력의 3대8 디코더)이 포함됩니다.
  • 두 개의 3대8 디코더를 추가 주소 비트와 함께 캐스케이드하여 4대16 디코더를 만들 수 있습니다.
  • 전파 지연은 기술에 따라 표준 IC 구현에서 일반적으로 10-25ns입니다.
  • DigiSim.io에서 디코더는 적절한 출력 활성화를 포함하여 표준 디코더 IC의 동작을 정확하게 모델링합니다.

특성

  • 입력 구성:

    • 세 개의 이진 주소 입력(A0, A1, A2)
    • 선택적 활성화 입력(EN)
    • 사용된 논리 패밀리와 일치하는 입력 부하
    • 표준 논리 레벨(일반적으로 TTL 또는 CMOS 호환)
    • 일부 구현에서 활성 로우 활성화 포함 가능
    • 여러 활성화 입력(AND/OR 기능) 포함 가능
    • 정전기 방전에 대한 입력 보호 일반적
  • 출력 구성:

    • 여덟 개의 상호 배타적 출력(Y0-Y7)
    • 구현에 따라 활성 하이 또는 활성 로우 출력
    • 원-핫 인코딩(활성화 시 한 번에 하나의 출력만 활성)
    • 디코더가 비활성화되면 모든 출력 비활성화
    • 표준 디지털 부하 구동 가능
    • 와이어 OR 기능을 위한 오픈 콜렉터/오픈 드레인 변형 포함 가능
    • 일부 구현에서 래치된 출력 제공
    • 출력 부하가 전파 지연에 영향
  • 기능:

    • 3비트 이진 코드를 여덟 개의 출력 라인 중 하나로 변환
    • 상호 배타적 출력(원-핫 인코딩)
    • 활성화 입력이 전체 동작 제어
    • 조합 논리 동작(클럭 불필요)
    • 더 큰 디코더를 위해 캐스케이드 가능
    • 이진에서 단항으로의 변환기
    • 칩 선택을 위해 활성 로우 출력과 함께 자주 사용
    • 출력은 현재 입력 상태에 의해서만 결정
  • 전파 지연:

    • 입력에서 출력: 일반적으로 7-20ns
    • 활성화에서 출력: 일반적으로 8-25ns
    • 기술에 따라 다름(TTL, CMOS 등)
    • 모든 출력 라인에서 일관된 지연이 바람직
    • 고속 메모리 시스템에서 중요한 매개변수
    • 출력 부하에 의해 영향
    • 온도 및 전압에 민감
    • 시스템 타이밍 및 주소 셋업 요구 사항에 영향
  • 팬아웃:

    • 일반적으로 10-20개의 표준 부하 구동
    • 논리 패밀리에 의해 정의된 출력 전류 능력
    • 높은 팬아웃 상황에서는 버퍼링 필요 가능
    • 칩 선택 애플리케이션에서 중요한 매개변수
    • 활성 출력이 대상 장치에 충분한 구동력 제공 필요
    • 논리 패밀리 사양과 일치
    • 같은 패밀리의 장치 간에 차이 가능
  • 소비 전력:

    • 낮음에서 중간 수준의 전력 요구
    • CMOS 구현에서 정적 전력 최소
    • 동적 전력은 스위칭 주파수에 따라 증가
    • 활성 출력 수에 비례
    • 기술에 따라 다름(CMOS가 가장 낮은 정적 전력)
    • 팬아웃 부하에 따라 전력 증가
    • 일반적인 값: 능동 5-25mW, 대기 <1mW(CMOS)
  • 회로 복잡성:

    • 중간 정도의 복잡성
    • 기본 논리 게이트로 구현
    • AND 기반 또는 NAND 기반 구현이 일반적
    • 8개의 별도 디코드 경로 필요
    • 활성화 기능을 위한 추가 논리
    • 집적 구현이 외부 부품 수를 줄임
    • 제공하는 기능 대비 최소한의 복잡성

구현 방법

  1. 게이트 수준 구현

    • 기본 논리 게이트(AND, NOT)로 구성
    • 각 출력에 4입력 AND 게이트(3개 주소 입력 + 활성화) 필요
    • 필요에 따라 입력 인버터가 보수 신호 생성
    • 활성화 신호가 모든 출력에 공통
    • 디코더 기능의 직접 구현
    • 디코더 동작의 명확한 교육적 예제
    • 직관적이지만 많은 게이트 필요
    • 규칙적인 구조가 레이아웃을 단순화
  2. NAND/NOR 구현

    • 적절한 반전이 있는 NAND 또는 NOR 게이트 사용
    • 특정 논리 패밀리에서 종종 더 효율적
    • 자연스럽게 활성 로우 출력을 생성할 수 있음
    • TTL 구현에서 일반적
    • 기술에서 일반적인 게이트 유형 활용
    • 부품 수 절감 가능
    • 향상된 성능 제공 가능
    • 많은 집적 회로에서의 표준 접근
  3. 집적 회로 구현

    • 전용 디코더 IC: 74xx138(3대8 디코더)
    • 다양한 기능: 활성화, 래치, 오픈 콜렉터
    • 다양한 논리 패밀리에서 사용 가능
    • 잘 정의된 타이밍 및 부하 특성
    • 표준 인터페이스 및 핀 배치
    • 메모리 및 주변 장치 주소 디코딩에 자주 사용
    • 캐스케이딩을 위한 다중 활성화 입력
    • 비용 효율적이고 공간 효율적인 솔루션
  4. 캐스케이드된 2대4 디코더

    • 활성화 제어가 있는 두 개의 2대4 디코더
    • MSB가 어떤 디코더가 활성인지 선택
    • 보다 모듈식 접근
    • 더 작고 일반적인 구성 요소 사용
    • 2대4 디코더가 이미 사용 가능할 때 잠재적으로 유용
    • 2단계 디코딩은 타이밍에 영향을 줄 수 있음
    • 디코더 캐스케이딩 원리를 보여줌
    • 더 큰 디코더를 위한 빌딩 블록
  5. PLA/ROM 구현

    • 프로그래머블 논리 배열 접근
    • AND-OR 구조 사용
    • FPGA 및 CPLD 구현에 활용
    • 다양한 디코딩 체계에 구성 가능
    • 맞춤형 주소 지정 체계에 유연
    • 더 복잡하지만 매우 다재다능
    • 최신 프로그래머블 장치에서 일반적
    • 속도 또는 리소스 사용에 최적화 가능
  6. 디멀티플렉서 기반 구현

    • 입력이 하이에 연결된 1대8 디멀티플렉서
    • 주소 입력이 라우팅 제어
    • 디코더와 기능적으로 동등
    • 디코더 기능에 대한 대안적 관점
    • 기존 디멀티플렉서 구성 요소 활용 가능
    • 디코딩과 디멀티플렉싱 간의 관계를 보여줌
    • 특정 맥락에서 설계 또는 리소스 이점 제공 가능
  7. 멀티플렉서 기반 구현

    • 구성된 멀티플렉서로 디코더 기능 구현 가능
    • 덜 직관적이지만 다재다능한 접근
    • FPGA 구현에서 일반적
    • 사용 가능한 리소스를 효율적으로 활용
    • 멀티플렉서가 풍부할 때 선호될 수 있음
    • 다른 구조의 기능적 동등성을 보여줌
    • 고급 구현 기술

응용

  1. 메모리 주소 디코딩

    • RAM/ROM 칩 선택
    • 메모리 뱅크 활성화
    • 주소 공간 분할
    • 메모리 매핑 I/O 선택
    • 캐시 웨이 선택
    • 페이지 선택
    • 메모리 인터리빙 제어
  2. 주변 장치 선택

    • I/O 장치 주소 지정
    • 주변 장치 칩 선택
    • 버스 슬레이브 선택
    • 포트 주소 지정
    • 장치 멀티플렉싱
    • 채널 선택
    • 하드웨어 리소스 할당
  3. 명령어 디코딩

    • CPU 명령어 디코딩
    • 연산 코드 디코딩
    • 마이크로코드 주소 지정
    • 실행 장치 선택
    • 상태 머신 구현
    • 제어 신호 생성
    • 연산 선택
  4. 디멀티플렉싱

    • 데이터 라우팅 제어
    • 채널 선택
    • 출력 포트 방향
    • 신호 분배
    • 버스 라우팅
    • 데이터 경로 제어
    • 선택적 브로드캐스팅
  5. 제어 신호 생성

    • 시퀀서 구현
    • 상태 머신 출력
    • 제어 워드 생성
    • 타이밍 신호 생성
    • 선택적 리셋/프리셋
    • 모드 선택
    • 시스템 구성
  6. 디스플레이 시스템

    • 디스플레이 자릿수 선택
    • LED 매트릭스 행/열 구동
    • LCD 세그먼트 선택
    • 디스플레이 메모리 주소 지정
    • 문자 생성기 주소 지정
    • 디스플레이 모드 제어
    • 세그먼트 디코더
  7. 테스팅 및 디버깅

    • 테스트 포인트 선택
    • 진단 출력 라우팅
    • 디버그 신호 선택
    • 내장 자체 테스트 제어
    • 스캔 체인 제어
    • 오류 코드 생성
    • 결함 격리

제한 사항

  1. 팬아웃 제한

    • 제한된 전류 구동 능력
    • 고부하 애플리케이션에는 버퍼링 필요 가능
    • 활성 출력이 모든 연결된 장치를 구동해야 함
    • 부하가 높은 출력은 지연 증가
    • 최대 동작 속도를 제한할 수 있음
    • 칩 선택 애플리케이션에서 중요
    • 추가 버퍼 단계가 필요할 수 있음
  2. 전파 지연 영향

    • 주소 셋업 타임 요구 사항
    • 최대 동작 주파수 제한
    • 메모리 접근 타이밍에서의 중요 경로
    • 타이밍 해저드를 도입할 수 있음
    • 주소 변경에서 출력 안정화까지의 지연
    • 캐스케이드된 디코더는 지연 증가
    • 동기 설계에서 시스템 클럭 속도에 영향
  3. 소비 전력 고려 사항

    • 많은 출력이 동시에 변경될 때 상당한 전력
    • 동작 주파수에 따라 증가
    • 배터리 작동 장치에서 중요
    • 전환 중 공급 전압 강하를 유발할 수 있음
    • 고속 애플리케이션에서의 그라운드 바운스
    • 고속 시스템에서의 열 관리
    • 주소 전환 중 전력 스파이크
  4. 확장성 문제

    • 선형적 입력 증가에 대한 기하급수적 출력 증가
    • 대형 디코더에는 상당한 리소스 필요
    • 더 큰 디코더의 핀 수 제한
    • 캐스케이딩으로 인한 추가 지연
    • 크기에 따라 복잡성이 급격히 증가
    • 크기에 따라 소비 전력 증가
    • 테스팅 복잡성이 기하급수적으로 증가
  5. 동작 해저드

    • 입력 전환 중 글리치
    • 전환 중 여러 출력이 일시적으로 활성화
    • 주소 셋업 및 홀드 타임 위반
    • 활성화 입력에서의 노이즈 민감도
    • 대규모 캐스케이드 시스템에서의 부분 디코딩
    • 활성화 신호 타이밍이 중요
    • 비동기 시스템에서의 경쟁 조건

회로 구현 상세

AND 게이트를 사용한 기본 3대8 디코더

graph TB
    A0[A0] --> NOT0[NOT]
    A1[A1] --> NOT1[NOT]
    A2[A2] --> NOT2[NOT]
    EN[Enable]
    
    NOT0 --> AND0[AND]
    NOT1 --> AND0
    NOT2 --> AND0
    EN --> AND0
    AND0 --> Y0[Y0: 000]
    
    A0 --> AND1[AND]
    NOT1 --> AND1
    NOT2 --> AND1
    EN --> AND1
    AND1 --> Y1[Y1: 001]
    
    NOT0 --> AND2[AND]
    A1 --> AND2
    NOT2 --> AND2
    EN --> AND2
    AND2 --> Y2[Y2: 010]
    
    A0 --> AND3[AND]
    A1 --> AND3
    NOT2 --> AND3
    EN --> AND3
    AND3 --> Y3[Y3: 011]
    
    NOT0 --> AND4[AND]
    NOT1 --> AND4
    A2 --> AND4
    EN --> AND4
    AND4 --> Y4[Y4: 100]
    
    A0 --> AND7[AND]
    A1 --> AND7
    A2 --> AND7
    EN --> AND7
    AND7 --> Y7[Y7: 111]

논리: 각 출력은 해당하는 3비트 주소 패턴이 존재하고 활성화될 때 활성화됩니다.

74HC138 3대8 디코더 집적 회로

핀 구성:

Pin Group Signal Function
Inputs A, B, C Address inputs (A0-A2)
Enables G1 Active-HIGH enable
Enables /G2A, /G2B Active-LOW enables
Outputs Y0-Y7 Active-LOW outputs
Power Vcc, GND +5V and Ground

활성화 조건: G1=1 AND /G2A=0 AND /G2B=0일 때 디코더 활성화

출력 선택: C:B:A 주소에 따라 한 번에 하나의 출력만 LOW

참고: 74HC138은 활성 로우 출력(Y0-Y7)과 세 개의 활성화 입력을 가집니다: G1(활성 하이), G2A 및 G2B(둘 다 활성 로우). 디코더는 G1=1, G2A=0, G2B=0일 때 활성화됩니다.

관련 구성 요소

  • 2대4 디코더: 두 개의 입력과 네 개의 출력을 가진 더 작은 디코더
  • 4대16 디코더: 네 개의 입력과 열여섯 개의 출력을 가진 더 큰 디코더
  • 이진-7세그먼트 디코더: 이진 값을 7세그먼트 디스플레이 패턴으로 변환
  • BCD-십진수 디코더: 이진화 십진수를 열 개의 출력으로 변환
  • 우선순위 인코더: 여러 활성 입력을 처리하여 우선순위에 따라 이진으로 변환하는 역방향 연산
  • 디멀티플렉서: 하나의 입력을 여러 출력 중 하나로 라우팅
  • 주소 디코더: 메모리 주소 지정에 특화된 디코더
  • 명령어 디코더: CPU 명령어 처리에 특화된 디코더
  • 버스 디코더: 컴퓨터 시스템에서 버스 주소 디코딩에 사용
  • 이진-그레이 코드 변환기: 디지털 시스템에서의 관련 변환 구성 요소

school 학습 경로

arrow_back 사전 요구 사항

arrow_forward 다음 단계

help_outline 자주 묻는 질문

디코더는 메모리 시스템에서 어떻게 작동하나요?

3개의 주소 비트가 8개 메모리 칩 중 1개를 선택합니다. 선택된 칩만 읽기/쓰기 작업에 응답하도록 활성화됩니다.

디코더와 ROM의 관계는 무엇인가요?

디코더는 본질적으로 각 주소가 원-핫 패턴을 출력하는 ROM입니다. ROM은 이를 프로그래밍 가능한 출력 패턴으로 확장합니다.

play_arrow 실시간 회로 실행

다른 컴포넌트 보기