Altifigence Academy

26 / 63 · 개념

파형의 샘플링 시점과 인과관계

조합 논리가 안정되는 시점과 클록 에지에서 값을 저장하는 시점, 이벤트 처리 순서를 구분해 파형을 읽습니다.

같은 시각에도 처리 순서가 있습니다

파형에서 여러 신호가 같은 시각에 바뀌어 보여도, 그 변화를 일으키는 처리에는 순서가 있습니다. 이벤트 기반 RTL 시뮬레이터에서는 활성 이벤트와 nonblockingnonblocking 순차 RTL에서 <=로 표현하는 대입입니다. 우변을 평가한 뒤 갱신을 예약하므로 같은 에지의 레지스터들이 이전 상태를 기준으로 계산할 수 있습니다. 자세히 보기 갱신 등이 처리된 후 값이 안정됩니다. 실제 소자에서는 clock-to-Q와 조합 전파 지연전파 지연 입력이 바뀐 뒤 출력이 올바른 값으로 안정되기까지 걸리는 시간입니다. 논리식의 등가성과 시간 특성은 별개입니다. 자세히 보기을 거쳐 변합니다. 두 모델을 구분해서 해석해야 합니다.

이 실습에서는 입력 적용 → 조합 평가 → 상승 에지상승 에지 클록이 0에서 1로 바뀌는 순간입니다. CLK=1인 구간 전체를 뜻하는 레벨과 구별합니다. 자세히 보기 캡처 → 상태 갱신 순서로 예측표를 만듭니다. 사용하는 도구의 이벤트 스케줄에서 입력 적용 시점과 결과 기록 시점을 함께 확인하세요. 아래의 네 단계는 예측표에서 구분할 처리 순서이며, 네 클록 주기를 뜻하지 않습니다.

자극 적용과 관찰 지점을 분리하기
  1. 입력 구동: a, b, sel을 변경
  2. 조합 평가: y = sel ? b : a
  3. 상승 에지: 에지 직전 y를 캡처
  4. 갱신 후 관찰: sampled_y를 비교

RTL과 별도로 예상값을 계산합니다

yk=sk‾ak+skbk,qk+1=yky_k=\overline{s_k}a_k+s_kb_k,\qquad q_{k+1}=y_k

각 입력 묶음의 y를 계산하고, 그 값이 어느 에지에서 q에 반영되는지 별도의 열에 적습니다. 실제 결과와 예상 결과가 처음 달라진 행을 찾으면 원인이 입력 적용, 선택 함수, 저장 동작 중 어디에 있는지 좁힐 수 있습니다.

전환과 안정 상태를 구분하기

선택선이 바뀌는 동안 두 데이터가 같으면 최종 출력은 같아야 하지만 내부 경로 지연 차이로 짧은 glitch가 생길 수 있습니다. 반대로 결과가 달라지는 정상 전환을 모두 glitch라고 부르면 안 됩니다. 논리 파형 비교와 물리 타이밍 분석은 확인하는 내용이 서로 다릅니다.

일반적인 테스트벤치에서 DUT와 같은 상승 에지에 자극을 바꾸고 즉시 값을 읽으면 race가 생길 수 있습니다. 자극 구동과 관찰 시점을 분리하거나 clocking block 같은 명확한 동기화 방식을 사용합니다. 현재 제공하는 Digital Design Studio 실습은 입력 JSON과 도구의 단일 클록 규칙을 사용하므로 임의의 #delay 테스트벤치를 추가하지 않습니다.

직접 생각해 보기

파형의 최종 y와 sampled_y가 모두 1이면 중간 사이클도 올바르다고 결론 내릴 수 있을까요?

해설 보기

아닙니다. 선택선을 거꾸로 연결하거나 한 사이클 늦게 저장해도 마지막 입력이 a=b=1이면 최종값은 같을 수 있습니다. 매 에지의 예상값과 비교하고, a와 b가 다른 구간의 sel 전환을 반드시 포함해야 합니다.

선택은 이 브라우저에만 적용됩니다. 언제든 푸터에서 변경할 수 있습니다.