23 / 63 · 개념
조합 선택과 레지스터 출력의 지연
MUX 결과를 레지스터에 저장했을 때 인터페이스와 지연이 어떻게 달라지는지 분석합니다.
내용은 무료로 볼 수 있습니다. 수강 신청하면 학습 기록을 저장할 수 있어요.
출력에 레지스터를 붙이는 이유
MUX멀티플렉서 선택 신호에 따라 여러 입력 중 하나를 출력으로 연결하는 조합회로입니다. 선택 비트와 입력 번호의 대응을 명세해야 합니다. 자세히 보기의 조합 출력은 선택선이나 데이터가 바뀔 때마다 달라질 수 있습니다. 뒤에 레지스터레지스터 여러 비트의 상태를 저장하는 회로입니다. 이 과정의 동기식 레지스터는 클록 에지에서 정해진 입력을 저장합니다. 자세히 보기를 두면 다음 단계가 클록 경계에서 정해진 값을 사용하도록 만들 수 있지만, 관찰 시점과 지연이 달라집니다.
에지 k 직전에 준비된 입력을 라 하고, 그 에지 이후 저장값을 로 표기하면 다음과 같습니다.
지연을 말할 때 입력을 언제 넣고 출력을 언제 관찰하는지 반드시 함께 정의하세요. 입력과 출력을 둘 다 레지스터 출력으로 정의한 인터페이스에서는 중간 레지스터 단계 수가 사이클 지연을 결정합니다.
입력과 출력의 변화 시점 정리하기
| 에지 직전 | a | b | sel | y | 에지 직후 q |
|---|---|---|---|---|---|
| 1 | 0 | 1 | 0 | 0 | 0 |
| 2 | 0 | 1 | 1 | 1 | 1 |
| 3 | 1 | 0 | 1 | 0 | 0 |
에지 1과 2 사이에 sel이 바뀌면 y는 먼저 변하고 q는 에지 2까지 유지됩니다. 입력 변화와 q의 변화를 같은 시점에서 비교하면 한 사이클 어긋난 오류처럼 보일 수 있습니다.
각 열은 일정한 시간 간격이 아니라 값을 관찰한 순서를 나타냅니다. a=0, b=1로 두었습니다. sel이 바뀐 뒤 다음 에지 전까지 q가 유지되는 구간을 보세요.
파형 데이터 보기
| 신호 | 파형 | 버스 값 |
|---|---|---|
| event | 23452 | E1 after → sel → 1 → E2 after → sel → 0 → E3 after |
| sel | 01.0. | |
| y | 01.0. | |
| q | 0.1.0 |
레지스터가 해결하지 않는 것
입력이 캡처 에지 주변에서 불안정하면 레지스터를 붙여도 안전한 동작을 보장할 수 없습니다. 다른 클록 도메인에서 온 선택 신호를 사용하려면 별도로 동기화해야 합니다. 또한 조합 출력 y의 glitch가 완전히 없어진다는 뜻도 아닙니다. 인터페이스가 q만 사용하는지, 다른 경로에서 y도 사용하는지를 함께 검토해야 합니다.
직접 생각해 보기
같은 클록을 쓰는 입력 레지스터 → MUX → 출력 레지스터를 생각하세요. 입력 레지스터가 에지 k에서 바뀐 새 값은 보통 출력 레지스터의 어느 에지에 반영되나요?
해설 보기
정상적인 단일 사이클 동기 경로라면 에지 k+1에 캡처합니다. 에지 k에서 출력 레지스터는 입력 레지스터의 이전 값을 보며, 새 값은 clock-to-Q 지연과 조합 지연을 거쳐 다음 에지에서 저장됩니다. 같은 에지에서 새 값이 즉시 두 레지스터를 통과한다고 계산하면 안 됩니다.