[Verilog 문법] 코드 해석

YUN·2026년 1월 31일

디지털 회로 설계

목록 보기
20/20

이번에 Cache 설계할때 시뮬레이션 분석해보며 Verilog 스케줄링에 대해 부족했던 공부를 했다.

1. 해석 순서

  1. delay에 따른 event 혹은 순차논리의 sensitivity list에 포함된 신호가 들어왔을때 회로에 변화가 생긴다
    2-1. non blocking assignment의 경우
    (1) always block의 RHS만 전부 평가
    (2) always block의 LHS 전부 업데이트
    (3) 업데이트된 LHS를 기반으로 흔들리는 조합 회로 평가
    2-2. blocking assignment의 경우
    (1) always block한 줄 단위로 RHS평가 및 LHS 업데이트 바로 바로 수행
    (2) always block 평가 끝나면 -> 변경된 reg 값으로인해 흔들리는 조합 회로 평가
  2. 다시 1로 돌아가기

2. 원인과 결과를 구분하자

ModelSim에서 확인할 수 있는

위와 같은 파형은 전부 결과 이다.

따라서 특정 시간의 변수값을 Simulation 에서 보이는 값으로 판단하면 안된다.

이는 특정 시간의 결과원인을 판단하게되는 모순을 유발한다.

말이 조금 이상할 수 있는데,

쉬운 방법은

Simulation에서 특정 시간의 값이 비어있다고 생각하고, 해당 시간의 값을 평가해서 이를 기반으로 RHS를 평가하는것

이다.

근데 이게 말이 좀 이상할 수 있다...나는 이렇게 생각하긴하는데..

profile
안녕하세요. 전자공학부 학부생의 공부 기록입니다.

0개의 댓글