43 / 63 · 이해 확인
설계 확인: 지연·정렬·입력 보존
시프트의 방향뿐 아니라 유효 데이터의 이동 횟수와 관찰 기준을 함께 확인합니다.
내용은 무료로 볼 수 있습니다. 수강 신청하면 학습 기록을 저장할 수 있어요.
지연을 세는 기준을 고정합니다
3비트 레지스터레지스터 여러 비트의 상태를 저장하는 회로입니다. 이 과정의 동기식 레지스터는 클록 에지에서 정해진 입력을 저장합니다. 자세히 보기는 유효 입력이 들어올 때만 q <= {q[1:0], din}을 실행합니다. valid=0이면 q를 유지합니다. 리셋리셋 상태를 미리 정한 초기값으로 되돌리는 제어입니다. 동기식인지 비동기식인지, 다른 제어보다 우선하는지를 함께 정해야 합니다. 자세히 보기 직후 0에서 시작하고, 서로 다른 상승 에지상승 에지 클록이 0에서 1로 바뀌는 순간입니다. CLK=1인 구간 전체를 뜻하는 레벨과 구별합니다. 자세히 보기에서 (valid,din) = (1,1), (0,0), (1,0), (1,1)을 차례로 적용합니다.
이때 총 에지 수는 4이지만 실제 이동은 3번입니다. 상태 추적과 ‘몇 사이클 지연’이라는 설명이 서로 모순되지 않는지 확인하세요.
각 열은 한 상승 에지에서 관찰한 값을 보여 줍니다. 입력은 에지 직전의 값이고, 이름에 after가 붙은 상태는 갱신 직후의 값입니다. 열은 샘플링 순서대로 놓았으며, 실제 전파 지연전파 지연 입력이 바뀐 뒤 출력이 올바른 값으로 안정되기까지 걸리는 시간입니다. 논리식의 등가성과 시간 특성은 별개입니다. 자세히 보기을 나타내지는 않습니다. 문제의 입력 순서를 펼쳤습니다. valid=0인 두 번째 열에서는 상태가 유지됩니다. q가 바뀐 횟수와 그림에 표시된 클록 에지 수를 혼동하지 마세요.
파형 데이터 보기
| 신호 | 파형 | 버스 값 |
|---|---|---|
| edge | 2345 | E0 → E1 → E2 → E3 |
| valid | 101. | |
| din | 10.1 | |
| accepted count | 2.34 | 1 → 2 → 3 |
| q after | 2.34 | 001 → 010 → 101 |
추가 설계 문제
입력마다 8비트 데이터를 받는 파이프라인파이프라인 레지스터를 사이에 두고 계산을 여러 단계로 나누어, 여러 입력을 겹쳐 처리하는 구조입니다. 데이터와 valid, 제어 신호를 같은 단계에 맞춰 전달해야 합니다. 자세히 보기으로 확장한다면, 데이터 레지스터만 세 단계로 만들고 valid를 한 단계만 지연시키는 구현은 틀립니다. 데이터와 valid에 같은 이동 규칙을 적용하거나, 정지 가능한 버퍼의 수락·전달 규칙을 함께 설계해야 합니다.
직접 생각해 보기
이 회로를 valid와 무관하게 매 에지 이동하도록 바꾸면 위 입력열에서 마지막 q는 어떻게 바뀝니까?
해설 보기
invalid 사이클의 din=0까지 저장하므로 001 → 010 → 100 → 001이 됩니다. 최종값은 001이며, 원래의 유효 입력만 이동하는 설계에서 얻는 101과 다릅니다. 유효하지 않은 데이터는 무시한다는 규칙을 구현에서도 지켜야 합니다.
본문의 (valid,din) 입력열을 적용했을 때 마지막 q의 값과 실제 이동 횟수는 얼마인가요?
상태는 000 → 001 → 001 → 010 → 101입니다. valid=0인 두 번째 에지에서는 상태가 유지됩니다. 시프트 방향, 이동 조건, 이동 횟수를 모두 만족해야 정답입니다.