PREVIEW
Register (4-bit)

Register (4-bit)

Memory signal_cellular_alt_2_bar Intermediate schedule 20 min

Interactive Circuit

레지스터

개요

  • 목적: 레지스터는 여러 비트의 이진 데이터를 저장하는 디지털 저장 구성 요소입니다. 1비트를 저장하는 단일 플립플롭과 달리, 레지스터는 완전한 이진 워드를 저장하기 위해 여러 플립플롭으로 구성됩니다.
  • 심볼: 레지스터는 4개의 데이터 입력(D0-D3), 클록 입력(CLK), 로드 인에이블(LD), 클리어(CLR), 그리고 4개의 데이터 출력(Q0-Q3)을 가진 직사각형 블록으로 표현됩니다.
  • DigiSim.io 역할: 디지털 시스템에서 처리 작업 중 이진 정보의 임시 저장을 제공하는 기본 순차 논리 구성 요소로 사용됩니다.

register component

기능 설명

논리 동작

레지스터는 클록 신호에 의해 트리거될 때 데이터 입력에 있는 값을 캡처하여 저장합니다. 저장된 값은 다음 클록 트리거 또는 리셋/클리어 신호가 적용될 때까지 변경되지 않습니다.

진리표 (4비트 레지스터):

CLR LD CLK D[3:0] Q[3:0] (다음 상태) 동작
1 X X xxxx 0000 비동기 클리어
0 1 abcd abcd 동기 로드
0 0 xxxx Q (prev) 유지 (로드 없음)
0 X 0 xxxx Q (prev) 유지 (클록 에지 없음)

참고: ↑는 상승 클록 에지, X는 "무관(don't care)", "prev"는 이전 상태를 나타냅니다. CLR은 활성-HIGH이며 비동기입니다 — CLK에 관계없이 즉시 레지스터를 리셋합니다. 데이터는 상승 클록 에지에서 LD=1일 때만 로드됩니다.

입력 및 출력

  • 입력 (총 7개):

    • D0: Pin 0. 데이터 입력 비트 0 (LSB).
    • D1: Pin 1. 데이터 입력 비트 1.
    • D2: Pin 2. 데이터 입력 비트 2.
    • D3: Pin 3. 데이터 입력 비트 3 (MSB).
    • CLK: Pin 4. 클록 입력 — LD가 HIGH일 때 상승 에지에서 데이터가 로드됩니다.
    • LD (로드): Pin 5. 로드 인에이블 — 상승 클록 에지에서 HIGH일 때 데이터 입력이 레지스터에 래치됩니다.
    • CLR (클리어): Pin 6. 비동기 클리어 — HIGH일 때 클록에 관계없이 모든 저장된 비트를 0으로 리셋합니다.
  • 출력 (총 4개):

    • Q0: Pin 0. 출력 비트 0 (LSB).
    • Q1: Pin 1. 출력 비트 1.
    • Q2: Pin 2. 출력 비트 2.
    • Q3: Pin 3. 출력 비트 3 (MSB).

구성 가능한 매개변수

  • 비트 폭: 레지스터가 저장할 수 있는 비트 수 (일반적으로 4, 8, 16 등).
  • 클록 에지 감도: 레지스터가 상승 또는 하강 클록 에지에 응답하는지 여부입니다.
  • 비동기 vs. 동기 제어: 클리어 및 기타 제어 신호가 클록에 대해 어떻게 동작하는지입니다.
  • 전파 지연: 트리거 이벤트 후 출력이 변경되는 데 걸리는 시간입니다.

DigiSim.io에서의 시각적 표현

레지스터는 왼쪽에 레이블된 입력(D[n:0], CLK, CLR 등)과 오른쪽에 출력(Q[n:0])이 있는 직사각형 블록으로 표시됩니다. 클록 입력은 일반적으로 에지 감도를 나타내는 삼각형 기호로 표시됩니다. 회로에 연결되면 출력에 표시된 값과 연결선의 색상 변화를 통해 현재 상태를 시각적으로 나타냅니다.

교육적 가치

핵심 개념

  • 데이터 저장: 디지털 회로가 여러 비트의 정보를 저장할 수 있는 방법을 보여줍니다.
  • 동기 동작: 클록 신호에 의해 트리거되는 동작의 개념을 설명합니다.
  • 메모리 소자: 컴퓨터 메모리 시스템의 기본 구성 요소를 소개합니다.
  • 이진 워드 처리: 컴퓨터가 개별 비트가 아닌 다중 비트 데이터 워드를 처리하는 방법을 보여줍니다.
  • 상태 보존: 디지털 시스템이 클록 사이클 간에 상태를 유지하는 방법을 보여줍니다.

학습 목표

  • 레지스터가 클록 사이클에 걸쳐 이진 데이터를 저장하고 유지하는 방법을 이해합니다.
  • 순차 회로에서 클록 신호와 데이터 캡처 간의 관계를 배웁니다.
  • 데이터 처리 및 임시 저장에서 레지스터의 역할을 인식합니다.
  • 카운터 및 시프트 레지스터와 같은 더 복잡한 순차 회로 설계에 레지스터 개념을 적용합니다.
  • 조합 논리(메모리가 없음)와 순차 논리(상태를 보존함)의 차이를 이해합니다.

사용 예시/시나리오

  • 데이터 저장: CPU에서 계산 결과를 임시로 보관합니다.
  • 주소 레지스터: 페치-실행 사이클 동안 메모리 주소를 저장합니다.
  • 데이터 버퍼: 서로 다른 속도로 동작하는 시스템 간 인터페이스 경계에서 데이터를 보관합니다.
  • 명령 레지스터: CPU에서 현재 명령을 저장합니다.
  • 파이프라인 단계: 파이프라인 아키텍처에서 순차적 처리 단계를 생성합니다.
  • 병렬-직렬 변환: 비트 단위 직렬 전송을 위해 병렬 데이터를 저장합니다.

기술 참고사항

  • 레지스터는 일반적으로 D 플립플롭을 사용하여 구현되며, 저장 비트당 하나의 플립플롭이 사용됩니다.
  • 구성 플립플롭의 셋업 및 홀드 시간 요구 사항이 안정적인 레지스터 동작을 위한 타이밍 제약을 결정합니다.
  • DigiSim.io에서 레지스터는 상태 전환의 명확한 시각적 피드백과 함께 일반적인 에지 트리거 동작을 모델링합니다.
  • 레지스터는 시프트 레지스터, 카운터 및 메모리 배열과 같은 더 복잡한 순차 구성 요소의 기초를 형성합니다.
  • 특수 목적 레지스터에는 누산기(산술 연산용), 상태 레지스터(조건 플래그용) 및 인덱스 레지스터(메모리 주소 지정용)가 포함됩니다.

특성

  • 워드 크기: 일반적으로 4, 8, 16, 32 또는 64비트 (임의의 수 가능)
  • 저장 용량: 레지스터의 비트(플립플롭) 수와 동일
  • 동작 모드:
    • 로드 (쓰기): 새 데이터를 레지스터에 저장
    • 읽기: 현재 저장된 데이터를 출력
    • 클리어/리셋: 모든 비트를 0으로 설정
    • 세트: 모든 비트를 1로 설정
    • 시프트: 레지스터 내에서 데이터를 좌우로 이동
  • 타이밍 제어: 일반적으로 클록 신호와 동기화
  • 속도: 플립플롭 전파 지연에 의해 결정 (일반적인 셋업 시간: 2-5ns)
  • 전력 소비: 플립플롭 수와 스위칭 주파수에 비례

레지스터의 종류

  1. 데이터 레지스터: 범용 데이터 값 저장
  2. 시프트 레지스터: 데이터를 좌우로 시프트할 수 있음
    • SISO (직렬 입력, 직렬 출력)
    • SIPO (직렬 입력, 병렬 출력)
    • PISO (병렬 입력, 직렬 출력)
    • PIPO (병렬 입력, 병렬 출력)
  3. 버퍼 레지스터: 시스템 구성 요소 간의 임시 저장
  4. 주소 레지스터: 메모리 주소 보관
  5. 명령 레지스터: 프로세서 명령 보관
  6. 상태 레지스터: 조건 플래그 및 상태 정보 저장
  7. 누산기 레지스터: 산술 연산을 위한 특수 레지스터

응용 분야

  1. 마이크로프로세서 및 마이크로컨트롤러: CPU 레지스터용
  2. 메모리 시스템: 주소 및 데이터 레지스터로 사용
  3. I/O 인터페이스: 서로 다른 속도 도메인 간의 버퍼링
  4. 산술 논리 장치 (ALU): 피연산자 저장용
  5. 데이터 변환: ADC 및 DAC에서 사용
  6. 신호 처리: 데이터 버퍼링 및 파이프라이닝용
  7. 통신 시스템: 병렬-직렬 및 직렬-병렬 변환
  8. 카운터: 이진 카운터의 저장 소자로 사용
  9. 상태 머신: 순차 회로의 상태 저장용
  10. 디스플레이 드라이버: 디스플레이 데이터 보관

구현

레지스터는 다음을 사용하여 구현할 수 있습니다:

  1. 플립플롭:

    • D 플립플롭 (가장 일반적)
    • JK 플립플롭
    • T 플립플롭
  2. 집적 회로:

    • 74174/74175: 헥스/쿼드 D형 플립플롭
    • 74273: 클리어가 있는 옥탈 D형 플립플롭
    • 74377/74378: 클록 인에이블이 있는 옥탈 D형 플립플롭
    • 74595: 출력 래치가 있는 8비트 시프트 레지스터
    • 74299: 8비트 범용 시프트 레지스터
  3. 메모리 기술:

    • 정적 RAM 셀
    • 동적 RAM 셀 (리프레시 필요)
    • FPGA의 플립플롭 배열

회로 구현

D 플립플롭을 사용한 기본 4비트 레지스터:

graph LR
    D0[D bit 0] --> FF0[D Flip-Flop 0]
    D1[D bit 1] --> FF1[D Flip-Flop 1]
    D2[D bit 2] --> FF2[D Flip-Flop 2]
    D3[D bit 3] --> FF3[D Flip-Flop 3]
    
    CLK[Clock] --> FF0
    CLK --> FF1
    CLK --> FF2
    CLK --> FF3
    
    FF0 --> Q0[Q bit 0]
    FF1 --> Q1[Q bit 1]
    FF2 --> Q2[Q bit 2]
    FF3 --> Q3[Q bit 3]

구조: 모든 플립플롭이 동기 동작을 위해 공통 클록 신호를 공유합니다.

관련 구성 요소

  • 플립플롭: 레지스터의 기본 구성 요소 (D, JK, T)
  • 래치: 레지스터와 유사하지만 에지 트리거 대신 레벨 트리거
  • 카운터: 펄스를 세기 위해 레지스터를 사용하는 순차 회로
  • 시프트 레지스터: 시프팅 연산을 위한 특수 레지스터
  • 메모리 모듈: 더 큰 저장 소자 배열 (RAM, ROM)
  • 멀티플렉서: 데이터 선택을 위해 레지스터와 함께 자주 사용
  • 버스 시스템: 데이터 전송을 위해 여러 레지스터를 연결
  • 마이크로프로세서: 다양한 목적의 여러 레지스터를 포함
  • 메모리 버퍼: 메모리 시스템과의 인터페이스를 위한 특수 레지스터
  • I/O 컨트롤러: 서로 다른 시스템 간의 데이터 버퍼링에 레지스터를 사용

school 학습 경로

arrow_back 사전 요구 사항

help_outline 자주 묻는 질문

레지스터란 무엇인가요?

레지스터는 여러 비트를 동시에 저장하는 플립플롭 그룹입니다. 4비트 레지스터는 공통 클럭을 공유하는 4개의 D 플립플롭으로 4비트를 저장합니다.

병렬 로드란 무엇인가요?

병렬 로드는 클럭 에지에서 모든 비트가 동시에 로드되는 것을 의미하며, 비트가 하나씩 시프트되는 직렬 로드와 대조됩니다.

play_arrow 실시간 회로 실행

다른 컴포넌트 보기