Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
Tags
- s
- coding test
- insertion sort
- 메모리구조
- 알기쉬운 알고리즘
- 혼자 공부하는 C언어
- buffer
- stream
- ㅅ
- JSON
- R
- Graph
- 이것이 자바다
- 윤성우 열혈자료구조
- datastructure
- C programming
- Selection Sorting
- 이스케이프 문자
- Serialization
- C 언어 코딩 도장
- Stack
- 윤성우의 열혈 자료구조
- Algorithm
- list 컬렉션
Archives
- Today
- Total
Engineering Note
플립플롭(Flip-Flop) 동작 원리 본문
플립플롭 블럭다이어그램

D-Flip-Flop 타이밍 다이어그

플립플롭(Flip-Flop) 동작 원리
- 플립플롭 1비트를 저장하는 기본 메모리 소자
핀 구성
- D(data): 저장하고 싶은 입력 값
- CLK(Clock): 언제 그 값을 저장할 지 알려주는 신호
- Q: 저장된 값이 출력 되는 곳
핵심 동작 원리
- 플립플롭은 클럭의 상승 엣지(rising edge) 순간에만 D 입력값을 "스냅샷" 찍듯이 캡처해서 Q로 출력 => 엣지 트리거(edge-triggered) 방식
- 클럭이 낮은(0) 동안이나 높은(1) 동안에는 D가 아무리 바뀌어도 Q는 그대로 유지
- 클럭이 0->1로 올라가는 그 순간에만 D값을 보고 Q로 반영
Setup Time/ Hold Time
- Setup Time : 클럭 엣지가 오기 전에 D가 미리 안정되어 있어야 하는 최소 시간
- Hold Time : 클럭 엣지가 지나간 후에도 D가 바뀌지 않고 유지되어야 하는 최소 시간
SRAM과 차이
- SRAM은 현재 데이터를 쓸지(write enalbe), 지금 읽을지(read enable)을 제어할 수 있지만, 플립플롭은 제어 선택권이 없이, 클럭 엣지가 올 때마다 무조건 D값이 새로 쓰여지고, Q는 항상 무조건 그 저장된 값을 내보내고 있는 구조 => write는 클럭에 종속, read는 항상 켜져있는 상태
CDC(Cross Domain Crossing)란?
- 서로 다른 클럭(주파수가 다르거나, 같은 주파수라도 위상이 다르거나, 비동기 관계인 클럭)을 사용하는 모듈 간에 신호 데이터를 주고받는 상황을 의미
- clkA에서 동작하는 회로의 신호가 clkB에서 동작하는 회로로 넘어갈 때 발생
Metastability란?
- 서로 다른 클럭 도메인간 신호 전달 시 수신측 Flip-Flop이 setup/hod time 위반 상태로 샘플링하면 출력이 불안정해지는 현상
- CDC 상황에서 비동기 클럭 때문에 setup/hold위반이 구조적으로 항상 발생 가능하므로, 메타스태빌리티는 CDC의 핵심리스크
플립플롭이 사용되는곳
- Register
- CPU안에서 계산 중간값이나, 데이터를 붙잡아두는 곳.
- ex) 범용레지스터, 프로그램 카운터(PC), 상태 레지스터
- 플립플롭을 여러 개 나라히 묶어놓은 것. 32bit register = D 플립플롭 32개
- CPU안에서 계산 중간값이나, 데이터를 붙잡아두는 곳.
- 파이프라인 스테이지 사이(Pipeline Register)
- CPU 명령어를 Fetch -> Decode -> Execute -> Memory -> Writeback 처럼 여러 단계로 쪼개서 겹쳐 처리(파이프라이닝)하는데 각 단계 사이에 플립플롭을 넣어서 한 클럭마다 결과를 다음 단계로 출력
- Counter(카운터)
- 클럭분주기, 타이머 등에 사용
- FSM(Finite State Machine)
- UART 프로토콜 제어기, 신호등 컨트롤러, 버스 컨트롤러 처럼 "현재 어떤 상태인지"를 기억해야 하는 제어로직
- Synchronizer(동기화 회로)
- CDC용 2단 플립플롭. 비동기 신호
- Shift Register
- UART, SPI 같은 직렬 통신에서 비트를 한 클럭 마다 한 칸씩 밀어서 처리(직렬 <-> 병렬 변환)할 때 플립플롭 체인 사용
=> SRAM은 플립플롭 대비 대량 데이터를 저장하는데 사용하고, 플립플롭은 제어 로직의 현재 상태를 저장하는데 사용. CPU 설계에서 조합 논리(ALU, 디코더 등)와 플립플롭(레지스터, 파이프라인, FSM)을 번갈아 배치하는 게 디지털 회로 설계의 기본 골격
'Digital Logic Circuits' 카테고리의 다른 글
| [Digital Logic] CDC (Clock Domain Crossing)와 메타스테이블(Metastability) (0) | 2026.08.30 |
|---|
Comments