디지털 신호란?
아날로그 신호는 정보를 연속적인 물리량으로 표시. 디지털 신호는 항상 0 또는 1의 값을 가지는 신호.
논리 소자들은 트랜지스터의 조합으로 구성되며 +5V를 1, GND를 0으로 처리
논리회로 (Digital Logic Circuit)
이진(Binary) 신호(0과 1) 를 사용하여 연산 및 제어를 수행하는 전자회로. 컴퓨터, 마이크로컨트롤러, 디지털 시스템의 기본
✔ 이진수(Binary Number) 기반 → 0 (Low), 1 (High)
✔ 논리 게이트(Logic Gate) 를 조합하여 연산 수행
✔ 조합 논리 회로 (Combinational Logic)
✔ 순차 논리 회로(Sequential Logic)
High(1) 상태
정의 : 출력이 ‘논리 1’을 나타내는 상태로, 일반적으로 회로의 전원 전압(VCC 근처) 수준에 가까운 전압값을 가짐
특징 :
디지털 논리에서 ‘1’ 또는 ‘TRUE’로 인식
회로가 이 출력을 적극적으로 구동하여, 신호선을 높은 전압으로 만든 상태
예 : 5V 계열 회로에서는 약 5V 근처, 3.3V 계열 회로에서는 약 3.3V 근처
Low(0) 상태
정의: 출력이 ‘논리 0’을 나타내는 상태로, 회로의 GND(접지) 수준에 가까운 전압값을 가짐
특징:
디지털 논리에서 ‘0’ 또는 ‘FALSE’로 인식
회로가 이 출력을 적극적으로 구동하여, 신호선을 낮은 전압(접지)에 가깝게 만든 상태
예 : 5V 계열 회로에서는 약 0V 근처
High Impedance(Z) 상태
정의 : 출력이 회로에 ‘거의 연결되지 않은(open)’ 상태처럼 보이게 만드는 것.
High Impedance(Z) 특징 :
출력이 버스(bus)나 공용선에서 충돌(conflict) 없이 공유될 수 있도록 함.
예: 여러 디바이스가 한 신호선을 번갈아가며 구동해야 할 때, 실제 데이터를 구동하지 않는 디바이스들은 Z 상태로 만든다.
출력이 확실한 0/1 상태가 아니므로, 외부 회로에서 풀업(pull-up)이나 풀다운(pull-down) 저항을 사용하여 선을 특정 레벨로 유도해야 한다.
풀업/풀다운이 없으면 임의 전압(‘floating’)이 되어 예측 불가능한 값이 될 수 있다.
디지털 IC에서 Tri-state, Three-state, 3-state라고도 불림
‘Z’ 상태는 FPGA/마이크로컨트롤러에서 I/O 핀을 “입력” 모드로 설정할 때도 비슷한 효과(외부로 구동하지 않음)를 얻을 수 있다.
High Z 필요한 이유
버스 구조에서의 충돌 방지
마이크로프로세서와 여러 주변장치가 한 데이터 버스(D0~D7 등)를 공유할 때
한 순간에는 단 한 기기만 버스에 데이터를 내보내고, 나머지 기기들은 Z 상태로 둬야 신호 충돌을 피할 수 있음
양방향 포트 구현
GPIO(일반 목적 입출력)를 한 순간에는 출력으로, 다른 순간에는 입력으로 사용하려면
출력이 필요 없을 때 Z(또는 입력) 상태로 전환해 외부 신호를 안전하게 읽을 수 있음
저전력 동작
Z 상태일 때는 해당 핀에 구동 전류가 흐르지 않아 전체 소모전력을 줄일 수 있음

왼쪽 시프트 (<<)
설명: 비트를 왼쪽으로 이동시키며 오른쪽에 0을 채웁니다.
효과: 각 이동마다 숫자를 2배로 만듭니다.
예시:
5의 이진수: 00000101
5 << 1의 결과: 00001010 (10)
5 << 2의 결과: 00010100 (20)
오른쪽 시프트 (>>)
설명: 비트를 오른쪽으로 이동시키며 왼쪽 비트를 버립니다.
효과: 각 이동마다 숫자를 2로 나눕니다.
예시:
20의 이진수: 00010100
20 >> 1의 결과: 00001010 (10)
20 >> 2의 결과: 00000101 (5)

출처: https://njh208804.tistory.com/38 [우당탕탕 회로둥이:티스토리]
(Basic Logic Gates)
논리회로는 기본적인 논리 연산을 수행하는 "게이트(Gate)" 로 구성

- AND 게이트 [ 𝑌=𝐴⋅𝐵 ] : 모든 입력이 1일 때만 1 출력
OR 게이트 [ 𝑌=𝐴+𝐵 ] : 입력 중 하나라도 1이면 1 출력
NOT 게이트 [ 𝑌=𝐴' ] : 입력을 반전 (0→1, 1→0)

- NAND 게이트 [ 𝑌=(𝐴⋅𝐵)' ] : AND의 반대 (모든 입력이 1이면 0 출력)
NOR 게이트 [ 𝑌=(𝐴+𝐵)'] : OR의 반대 (모든 입력이 0이면 1 출력)
XOR 게이트 [ 𝑌=𝐴⊕𝐵 = A′B+AB′] : 입력이 다르면 1, 같으면 0 출력
XNOR 게이트 [ 𝑌=𝐴⊕𝐵' ] : 입력이 같으면 1, 다르면 0 출력
(Combinational Logic Circuit)
2개의 피연산자(오퍼랜드,operand) 만을 더하는 가산기
이전 단에서 올라오는 캐리(올림수)를 고려 안함

입력 : A, B
출력 :
합 (Sum) = 𝐴⊕𝐵 = A′B+AB′
자리올림 (Carry) = 𝐴⋅𝐵
두 개의 입력 (0 또는 1)을 받아들이고, 이들을 더하여 합과 자리 올림 값을 출력. 자리 올림 값은 해당 자리에서 다음 자리로 전달된다.
ex) 1+1을 더할 때, 반가산기는 합을 0으로 출력, 자리 올림(carry) 값 1로 출력.
2개의 피연산자 및 이전의 캐리(올림수)도 포함해서 더하는 가산기

전 가산기 = 반 가산기 2개 + OR 게이트 1개

입력 : A, B, Cin
출력 :
S = (A⊕B) ⊕ Cin
Cout = Cin (A⊕B) + AB
전가산기는 반가산기와 달리, 세 개의 입력 (A, B, Carry-in)을 받아들이고, 이들을 더하여 합과 자리 올림 값을 출력.
Carry-in은 이전 단계에서의 자리 올림 값을 나타냄.
여러 자릿수의 이진수를 더할 때 사용

✔ 입력 : 4비트 (A0, A1, A2, A3)
✔ 출력: 2비트 (F0, F1)
✔ 활성화된 입력의 번호를 이진 코드로 변환
F0 = A3+A0
F1 = A1′ A0′
2X4 Decoder

✔ 입력: 2비트 (A, B)
✔ 출력: 4비트 (D0, D1, D2, D3)
✔ 입력값에 따라 하나의 출력만 1(High), 나머지는 0(Low)
D0 = A′B′
D1 = A′B
D2 = AB′
D3 = AB
디코더-인코더 관계

멀티플렉서 (MUX)
4X1 MUX

✔ 입력 : X1, X2, X3, X4
✔ 선택 신호 : C1 C2
✔ 출력 : Y = (C1′⋅C2′⋅X1)+(C1′⋅C2⋅X2)+(C1⋅C2′⋅X3)+(C1⋅C2⋅X4)

디멀티플렉서 (DEMUX)


클럭 입력을 갖지 않는, 2진 기억소자 (쌍안정회로)

✔ 2개의 입력 (D 및 Enable) 만을 갖는 래치
✔ 비동기 RS 래치의 문제(S=1, R=1 금지 상태)를 해결
✔ Enable(또는 Clock) 신호에 따라 데이터(D)를 저장

1 비트 저장 및 투과(전달) 능력 있음
High 또는 Low) 유지즉, Enable 1이면 출력은 그대로 입력을 따라감


RS 래치는 2개의 NOR 게이트 또는 NAND 게이트로 구성




✔ 출력(Q)이 현재 입력뿐만 아니라 이전 상태에도 영향을 받음
✔ 클록(Clock) 신호가 있을 때만 동작 (비동기 플립플롭 제외)
클럭 입력을 갖는, 2진 기억소자(쌍안정회로)
RS 플립플롭 (Set-Reset Flip-Flop) :
기본적인 기억 기능 (S=Set, R=Reset)
D 플립플롭 (Data Flip-Flop) :
데이터 저장 (D 입력을 클록에서 Q로 전달)
JK 플립플롭 (Jump-Kill Flip-Flop) :
RS 플립플롭의 단점을 개선, 1-1 입력 시 토글(Toggle)
T 플립플롭 (Toggle Flip-Flop) :
매 클록마다 상태가 반전됨 (카운터 회로에 사용)
SR래치에 클럭 결합


✔ 입력 : S (Set), R (Reset)
✔ 출력 : Q, Q' (Q의 반대값)
✔ S=1 → Q=1 (Set), R=1 → Q=0 (Reset)
단점 : S=1, R=1 입력 시 출력이 정의되지 않음
→ 해결책 : JK 플립플롭 사용
✔ 입력: D (Data), Clock (CLK)
✔ 출력: Q, Q'
✔ 클록이 들어올 때 D의 값을 저장하여 출력 Q로 전달



클록이 변할 때만 값이 저장됨
비동기식 래치보다 신뢰성이 높음
레지스터, 메모리 저장장치 등에 사용됨
D 플립플롭은, 지연 소자(Delay Element)의 일종
입력이 다음 활성 클럭이 나타낼 때까지 지연된 후 출력됨
다음 출력 값 Q(t+1) 이 이전의 출력 값 Q(t) 와는 무관
활성 클럭 직전의 입력 D(t) 값으로 됨

특성 방정식 : Q(T+1) = D
✔ RS 플립플롭의 금지 상태(S=1, R=1 문제)를 해결
✔ J=1, K=1일 때 상태가 반전됨 (토글, Toggle 동작)


특성 방정식 : Q(T+1) = JQ' + K'Q
✔ 입력: T (Toggle), Clock (CLK)
✔ 출력: Q, Q'
✔ T=1이면 클록이 변할 때마다 Q 값이 반전됨



JK 플립플롭의 J와 K 입력을 묶어서 하나의 입력신호 T로 동작시키는 플립플롭이다.- 입력이 0이 되면 이전상태(Q)의 값이 그대로 출력된다.
입력이 1이 되면 이전상태(Q)의 보수 값이 출력된다.
이전 상태를 기반으로 반전(Toggle)
2진 카운터, 분주기(Frequency Divider) 등에 사용됨
특성 방정식 : Q(T+1) = T⊕Q = TQ' + T'Q
Ref
https://ckim0531.tistory.com/entry/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC-2%EA%B3%BC%EB%AA%A9-%EC%A0%84%EC%9E%90%EA%B3%84%EC%82%B0%EA%B8%B0-%EA%B5%AC%EC%A1%B0-1-%EB%85%BC%EB%A6%AC%ED%9A%8C%EB%A1%9C-%EB%85%BC%EB%A6%AC-%EA%B2%8C%EC%9D%B4%ED%8A%B8
https://velog.io/@boseong-choi/ca-1
http://www.ktword.co.kr/test/view/view.php?no=4890
https://woodforest.tistory.com/124
https://aanrt.tistory.com/17
http://www.ktword.co.kr/test/view/view.php?id=273&m_temp1=3520
https://devraphy.tistory.com/297
출처: https://njh208804.tistory.com/102#1. High(1) 상태-1 [우당탕탕 회로둥이:티스토리]