D 플립플롭과 래치의 차이: 클럭이 바뀌는 순간에만 저장하는 이유
·
임베디드 실무
D 플립플롭은 클럭이 0에서 1로 바뀌는 순간의 D 값만 Q에 저장하고, 다음에 클럭이 바뀔 때까지 그 값을 들고 있는 회로입니다. D 래치는 클럭이 1인 동안 D를 계속 따라가지만, 플립플롭은 클럭이 바뀌는 순간 한 번만 받아들여요.플립플롭을 왜 알아야 할까3편에서 SR 래치로 1비트를 기억했는데, MCU 레지스터는 이 래치 그대로 만들지 않는다고 했습니다. 그럼 무엇으로 만들까요?MCU는 안쪽 회로 대부분이 하나의 박자(클럭)에 맞춰 움직입니다. 데이터시트에서 "클럭 상승 엣지(클럭이 0에서 1로 바뀌는 순간)에서 값이 갱신된다"는 문장을 자주 만나는데, 이 문장을 읽으려면 플립플롭이 무엇인지 알아야 해요. 타이밍 표의 셋업 시간, 홀드 시간 같은 항목도 이 구조에서 나온 값입니다.용어 정리 (눌러서..
SR 래치: 입력을 끊어도 값이 남는 이유
·
임베디드 실무
게이트의 출력을 다시 입력으로 되돌리면 회로가 스스로 값을 붙잡아 기억합니다. NOR 게이트 두 개를 이렇게 엮은 것이 SR 래치예요. S를 잠깐 1로 만들면 출력이 1로, R을 잠깐 1로 만들면 0으로 바뀌고, 손을 떼도 그 값이 그대로 남습니다.게이트는 기억하지 못한다1편과 2편의 게이트는 지금 들어온 입력만 보고 출력을 정했습니다. 스위치에서 손을 떼면 전구도 바로 꺼졌죠. 이런 회로를 조합 논리라고 합니다.그런데 MCU 레지스터는 값을 한 번 써 두면 다시 쓸 때까지 그대로 들고 있어요. 지금 입력에 더해 기억해 둔 값까지 보고 움직이는 회로를 순차 논리라고 하는데, 게이트만으로 어떻게 이런 기억을 만들 수 있을까요?엘리베이터 호출 버튼을 떠올려 보세요. 버튼을 한 번 누르고 손을 떼도 불이 켜진..
반가산기와 전가산기: 게이트로 1 + 1을 계산하는 법
·
임베디드 실무
2진수 한 자리 덧셈은 게이트 두 개면 됩니다. 합은 XOR, 올림은 AND가 만들고, 이 둘을 묶은 것이 반가산기예요. 아랫자리에서 올라온 올림까지 받으면 전가산기가 되고, 전가산기를 이어 붙이면 몇 자리든 더할 수 있습니다.게이트는 0과 1만 아는데 어떻게 더할까C에서 a + b는 한 줄이지만, 칩 안의 게이트는 "둘 다", "하나라도", "반대로" 같은 판단밖에 못 합니다. 이런 게이트로 어떻게 숫자를 더할까요?이 원리를 알아 두면 덧셈 결과가 이상할 때 원인이 바로 보입니다. 8비트 변수에 값을 계속 더하다가 결과가 갑자기 작아지는 건, 맨 윗자리에서 넘친 올림이 버려졌기 때문이에요. 8비트 MCU라면 이때 CPU가 상태 레지스터의 캐리 플래그에 흔적을 남깁니다.용어 정리 (눌러서 펼치기)용어원래..
논리 게이트 AND OR NOT: 컴퓨터는 0과 1로 어떻게 판단할까?
·
임베디드 실무
C 코드의 a & b는 칩 안에서 AND 게이트가 계산합니다. 컴퓨터가 하는 판단은 전부 AND(둘 다), OR(하나라도), NOT(반대로) 세 가지 게이트를 조합해서 만들 수 있어요.논리 게이트를 왜 알아야 할까펌웨어 개발은 결국 MCU 레지스터에 0과 1을 쓰고 읽는 일입니다. 라이브러리 함수 한 줄도 안에서는 "3번 비트만 1로 바꾸고 나머지는 그대로 둔다" 같은 비트 연산을 하고 있어요. 평소에는 라이브러리가 이걸 감춰 주지만, LED가 안 켜지거나 통신이 멈추면 데이터시트를 펴고 레지스터 비트를 직접 들여다봐야 합니다.그때 쓰는 C의 비트 연산 &, |, ~는 각각 AND, OR, NOT 게이트와 같은 규칙을 따릅니다. 게이트에서 출발해 레지스터까지 올라가 보면, 데이터시트의 비트 설명을 외우지..
스테이트차트 상태와 천이란? LED 깜빡임으로 이해하기 [초급]
·
🔷 C언어 30강/MBDD Statechart
LED 깜빡임은 상태 2개와 천이 2개로 그릴 수 있습니다. 편집기는 이 그림에서 C 코드를 그대로 생성하고, 상태는 상수로, 천이 조건은 if 문으로 바뀝니다.이 글의 예제는 편집기에서 직접 실습할 수 있습니다브라우저에서 상태도를 그려 보고, 온라인에서 바로 빌드하고, 단위 테스트(UT)를 돌려 실시간으로 동작을 확인할 수 있습니다.실습용 편집기: https://jsyoon-git.github.io/Statechart_C_Studio/ (접속하면 LED 점멸 예제가 열려 있고, Generate C를 누르면 코드가 나옵니다)소스와 설명(GitHub): https://github.com/JSYoon-git/Statechart_C_Studio단위 테스트(UT)는 시나리오 탭에서 돌립니다. 내 컴퓨터에서 간단..
18진수
Embedded-Korea