Você pode experimentar corrupção de dados usando qualquer um dos controladores SDRAM DDR (1/2/3) no Altera® SOPC Builder. Isso é causado pela embalagem de linha de explosão usada pelo controlador SDRAM e pelos adaptadores de ruptura SOPC Builder falhando em adaptar a porta escrava do controlador SDRAM a uma porta mestre de estouro sequencial. O limite de ruptura de qualquer porta de escravos pode ser determinado usando a seguinte fórmula:
Tamanho limite de explosão de escravos [bytes] = Largura de dados de escravo [bytes] * Comprimento máximo de explosão de escravo [beats]
Por exemplo, se você usar o controlador DDR SDRAM para um comprimento de explosão x16 de 4 dispositivos, o tamanho do limite de explosão é de 8 bytes. Como resultado, se um mestre de explosão sequencial iniciar uma transação de leitura ou gravação de explosão na memória sem iniciar em um limite de 8 byte, ocorrerá corrupção de dados. Se o mestre postar uma transação de explosão de 2 batidas para o endereço de bytes 4 desta memória, ele acessará bytes 4-7 durante a primeira batida e bytes 0-3 na segunda batida (em vez de endereços 8-11).
Para evitar essa corrupção de dados, você pode usar o seguinte:
- Sempre alinhe as transferências para romper os limites da porta de escravos usando a fórmula acima.
- Arquitete seu mestre para postar rajadas de 1 batida até que o próximo limite mestre de explosão seja alcançado.
- Desative o suporte de explosão do seu mestre ou escravo, no caso dos controladores DDR SDRAM de alto desempenho, você também pode usar o modo de meia-taxa para evitar o suporte de explosão.