DDR / VERIFICATION

DDR VIP: 명령 간격과 데이터 검사를 나눕니다

데이터를 다시 읽었다는 사실만으로 DDR 명령의 상태와 시간 제약을 모두 검사한 것은 아닙니다.

명령을 보기 전에 장치 구성을 고정합니다

DDR 세대, 부품 번호, 속도 등급, 온도 범위, 모드 레지스터와 refresh 모드를 한 설정으로 관리합니다. 시간 값의 ns와 clock cycle을 구분하고, 두 최소 조건을 함께 요구하는 항목은 둘 다 만족시킵니다. 표에 나온 숫자만 transaction 제약에 복사하지 않습니다.

검토한 3쪽 슬라이드는 DDR4 BL8 예제 안에 DDR5 설명과 CL22를 섞습니다. 이 코드를 실행 가능한 공통 VIP 예제로 채택하지 않았습니다. Micron의 비교표는 DDR4의 BL8·BC4와 DDR5의 BL16·BC8 OTF를 구분합니다. 정확한 허용 조합은 대상 부품 문서에서 결정합니다.

Micron: DDR4·DDR5 기능 비교

어느 두 명령 사이의 간격인지 적습니다

tRCD는 같은 bank의 ACTIVATE→READ/WRITE 간격입니다. PRECHARGE→다음 ACTIVATE는 tRP, ACTIVATE→PRECHARGE의 최소 활성 시간은 tRAS로 구분합니다. CL은 READ 뒤 데이터 지연과 관련되며, 모든 명령 간격의 이름이 아닙니다. 실제 read latency는 선택한 모드까지 함께 확인합니다.

분기와 관측 지점을 나눈 자체 개념도
  1. 명령 검사: bank 상태와 해당 명령 쌍의 시간 조건

  2. 데이터 검사: 기대값·주소·마스크와 읽은 값 비교

  3. PHY 검사: 훈련 결과와 신호·전원 조건

열린 row에 연속 READ를 내는 간격을 tRCD로 검사하면 다른 제약을 시험하게 됩니다. tCCD 계열과 bank group 관계를 확인합니다. Micron 백서가 구분하는 _L은 같은 bank group 내부, _S는 다른 bank group 사이의 접근입니다. 세대·명령 종류별 제한을 해당 규격에 연결합니다.

Micron: DDR5 bank group 타이밍

리프레시는 모드와 대상 bank를 함께 검사합니다

tREFI를 모든 DDR에서 “7.8µs마다 row 하나”로 구현하지 않습니다. 선택한 장치의 평균 간격, 허용된 연기·선행 범위, 명령 중 사용할 수 없는 bank와 온도 조건을 확인합니다. Self-refresh를 컨트롤러가 주기적으로 보내는 일반 refresh 명령과 같은 동작으로 취급하지 않습니다.

Micron의 DDR5 비교표에는 all-bank와 same-bank refresh가 따로 있습니다. REFsb는 각 bank group에서 bank 하나를 대상으로 하므로, 이름만 보고 장치 전체에서 bank 하나만 갱신한다고 해석하지 않습니다. 검증 모델도 선택한 모드와 같은 범위를 추적해야 합니다.

검사기의 위반 검출과 DUT의 정상 출력을 구분합니다

검사기 자체를 시험할 때는 합법 경계의 명령이 통과하는지, 같은 전제에서 한 clock 빠른 불법 명령을 검출하는지 각각 봅니다. 반면 컨트롤러 DUT에는 높은 요청 부하·bank 충돌 등을 주고 실제 DRAM 인터페이스에서 불법 명령을 내지 않는지 확인합니다. 요청 시점과 실제 명령 발행 시점도 다릅니다.

UVM 컴포넌트가 있다는 사실은 특정 DDR 구성을 검증했다는 증거가 아닙니다. Monitor의 명령 관측, protocol checker의 위반, scoreboard의 데이터 불일치, PHY 훈련 결과를 따로 남깁니다. 데이터 불일치만으로 특정 타이밍 위반을 원인으로 확정하지 않습니다.

Accellera: 재사용 검증 방법론 UVM

재현할 수 있는 조건과 미검증 범위를 남깁니다

부품·데이터시트 개정, clock·온도·모드, 모델·VIP 버전, seed, 최초 위반 명령과 전후 상태를 남깁니다. 정상 경로의 통과와 오류를 잡는 검사의 통과를 구별합니다. 프로토콜 검사는 보드의 전원·신호 품질 검사를 대신하지 않습니다.

이 글은 The Silicon Stack의 DDR VIP 자료를 계기로 작성한 검증 관점입니다. 저장된 PDF 3쪽을 직접 읽었으며 표와 코드의 세대 혼용을 수정했습니다. 원그림·코드는 재배포하지 않고 UVM 시뮬레이션이나 DRAM 실측을 수행한 결과로 표시하지 않습니다.