12 / 24 · 개념
이전 값으로 다음 값 계산하기
비차단 대입과 리셋의 우선순위를 코드로 읽습니다.
내용은 무료로 볼 수 있습니다. 수강 신청하면 학습 기록을 저장할 수 있어요.
학습 목표
- 오른쪽 식이 사용하는 이전 상태 찾기
- 리셋 분기와 증가 분기의 우선순위 읽기
다음 상태를 따로 계산하기
count <= count + 2'b01에서 오른쪽 count는 갱신 전 값입니다. 현재 01이면 다음 값 10을 계산한 뒤 저장합니다. 오른쪽과 왼쪽을 순서대로 덮어 쓰는 메모장처럼 해석하지 마세요.
비차단 대입 <=는 평가한 값을 나중의 비차단 갱신 단계에서 반영합니다. 같은 에지에 갱신되는 여러 레지스터의 연결을 읽을 때도 이전 값과 다음 값을 구분하는 습관이 도움이 됩니다.
always_ff @(posedge clk)
if (rst) count <= 2'b00;
else count <= count + 2'b01;한 에지에서 실행되는 분기는 하나
if와 else는 둘 중 하나만 선택합니다. rst=1이면 00을 저장하고 증가 분기는 실행하지 않습니다. 그래서 리셋 에지에서 00으로 만들자마자 01까지 증가하지 않습니다.
손으로 추적할 때는 현재 count, 현재 rst, 선택된 분기, 다음 count 네 칸을 적으세요. 이 표를 코드와 비교하면 리셋 우선순위와 순환 지점을 함께 확인할 수 있습니다.
직접 생각해 보기
count=11, rst=1인 상승 에지에서 결과는 00일까요, 01일까요?
해설 보기
00입니다. 리셋 분기가 선택되므로 같은 에지에 증가 분기는 실행되지 않습니다.
✓ 학습 완료