ALTERA® SOPC Builder의 DDR(1/2/3) SDRAM 컨트롤러를 사용하여 데이터 손상이 발생할 수 있습니다. 이는 SDRAM 컨트롤러와 SOPC Builder 버스트 어댑터가 SDRAM 컨트롤러 슬레이브 포트를 순차적으로 터지는 마스터 포트에 적응하지 못하는 버스트 라인 래핑으로 인해 발생합니다. 모든 슬레이브 포트의 버스트 경계는 다음 공식을 사용하여 결정할 수 있습니다.
슬레이브 버스트 경계 크기 [바이트] = 슬레이브 데이터 폭 [바이트] * 슬레이브 최대 버스트 길이 [비트]
예를 들어, 4 장치의 x16 버스트 길이에 DDR SDRAM 컨트롤러를 사용하는 경우 버스트 경계 크기는 8바이트입니다. 따라서 순차적 버스트 마스터가 8 바이트 경계에서 시작하지 않고 메모리에 버스트 읽기 또는 쓰기 트랜잭션을 시작하면 데이터 손상이 발생합니다. 마스터가 이 메모리의 바이트 주소 4에 2 비트 버스트 트랜잭션을 게시하면 첫 번째 비트 동안 바이트 4-7에 액세스하고 두 번째 비트에서 0-3 바이트(주소 8-11 대신)에 액세스합니다.
이 데이터 손상 방지를 위해 다음을 사용할 수 있습니다.
- 위의 공식을 사용하여 항상 전송을 슬레이브 포트의 버스트 경계에 정렬합니다.
- 마스터를 설계하여 다음 마스터 버스트 경계에 도달할 때까지 1 비트의 버스트를 게시합니다.
- 마스터 또는 슬레이브의 버스트 지원을 비활성화하면 고성능 DDR SDRAM 컨트롤러의 경우 반값 모드를 사용하여 버스트 지원을 피할 수 있습니다.