IoT 디바이스에서 DDR디버깅 시나리오
이전 포스팅에서는 IoT 디바이스의 DDR 메모리 디버깅과 관련하여 칩인터포저를 통해 어떻게 프로빙에 도움이 되는지 그리고 Virtual Probe가 측정에 어떤 도움을 줄 수 있는 지와 같은 광범위한 내용을 고려했습니다. 이번 포스팅에서는 메모리 칩과 컨트롤러의 문제 대한 몇 가지 예를 살펴보고 오실로스코프를 사용하여 디버깅을 수행하는 방법에 대해서 알아 보겠습니다.
그림 1은 실제로 오실로스코프를 사용하고 있는 사용자가 포착한 오실로스코프 화면입니다. DDR 메모리가 오동작하여 클럭과 데이터 그리고 클럭과 스트로브 사이의 스큐를 측정했습니다. 측정 값이 시간에 따라 어떻게 변하는 지를 확인할 수 있는 트랙(Track) 기능을 사용하여 모든 측정 값들을 플롯했습니다. 기본적으로 플롯 기능은 측정 파라미터를 통해 측정된 모든 값으로 파형을 “시간 대 측정 값”으로 플롯합니다.
그림 1과 그림 2의 예에서 보이고 있는 트랙 파형(빨강색 파형)은 두 신호 사이의 시간차인 스큐를 플롯하고 있으며, 녹색 박스로 표시한 부분에서 스파이크성 피크를 볼 수 있습니다. 그림 2에서 확인할 수 있는 것처럼 두 신호 사이의 스큐는 클럭 한 사이클이 누락되었기 때문에 발생한 것이라는 것을 알 수 있습니다. 디버깅을 수행하는 사용자는 트랙 기능을 수행하기 전까지는 에러의 원인을 파악하지 못했지만, 트랙 기능을 통해 데이터가 올바르게 전송되지 않았던 이유를 확인하였습니다. 파라미터를 트랙하는 기능은 문제의 원인을 파악하는 데 도움이 되는 도구입니다.
그림 3에서보 보이고 있는 예는 DDR 메모리 뱅크를 활성화 시키고, 4 개의 Write 동작을 요청하는 명령이 전송되는 순간의 화면 캡쳐입니다. HDA125를 이용하면 이런 방식으로 커맨드 버스의 특정 상태에서 트리거하여 파형을 포착하고 그 내용을 시각적으로 확인할 수 있습니다. 그림 3의 화면 위에 보여지는 파형은 아날로그 프로브로 포착한 파형이며, 아래쪽에 보이는 디지털 라인은 커맨드 버스에서 발생하고 있는 동작을 보이고 있습니다. 여러분들이 만약 Read 또는 Write를 구분하여 아이 패턴 분석을 수행한다면 HDA125가 READ 신호만 또는 WRITE 신호만 확실하게 구분하여 선택적으로 분석할 수 있는 매우 유용한 기능을 제공합니다.
DDR 디버깅에서는 WRITE와 READ를 동시에 살펴보는 것이 좋습니다. 그림 4는 READ와 클럭, READ와 STROBE, WRITE와 클릭, WRITE와 STROBE와 같은 여러가지 조합의 아이 패턴을 비교하여 보이고 있습니다. 또한 전에 테스트한 디바이스의 아이패턴과 현재 테스트한 아이패턴 결과를 비교하여 관측할 수 도 있습니다. 이런 기능은 HDA125 분석기를 DDR Debug Toolkit이 탑재된 텔레다인 르크로이 오실로스코프를 하나의 셋트로 구성하여 가능해진 기능입니다.
디버깅에서 유용한 기능 중의 하나는 일부의 버스트를 분리하여 DDR 버스에 대한 분석을 수행하는 것입니다. 예를 들어, DDR 신호가 전기적 유휴 상태에서 벗어날 때의 버스트들만 구분하여 아이 다이어그램을 확인할 수 있습니다. 반대로, 버스트기 시작되는 주기는 무시하고 DDR 데이터 신호가 하이 또는 로우 값에 있는 경우들에 만 집중하여 분석할 수 있습니다. 그림 5는 이 두가지의 경우를 설정하는 메뉴를 보이고 있습니다.
이전 포스팅 내용: