Oui. Si vous effectuez des accès en lecture retour à l’arrière où la puce sélectionne des modifications entre les accès et la ligne dans le deuxième CS est déjà ouvert, il y a un risque de conflit de bus. Vous trouverez ci-dessous une situation où une dispute peut survenir lorsque l’ACT = Activer et RD = LIRE :
Côté DDR
ACTE A
RD A
ACTE B
RD B
RD A
Côté local
ligne de lecture A dans CS1
lire la ligne B dans CS2
ligne de lecture A dans CS1
Le contrôleur détecte que sur la deuxième lecture à la ligne A, la ligne est déjà ouverte. Par conséquent, aucun acte n’est nécessaire. Vous trouverez ci-dessous un schéma montrant les signaux dqs qui accompagnent les données de lecture au fur et à mesure qu’elles retournent de la mémoire à la FPGA (au point où la RD B est suivie immédiatement par la RD A).
Il en résulte que la lecture de CS2 peut être perdue. La solution consiste à insérer un NOP comme suit :
Côté DDR
ACTE A
RD A
ACTE B
RD B
NOP
RD A
Côté local
ligne de lecture A dans CS1
lire la ligne B dans CS2
nop (dés-affirmation de la demande de 1 cycle)
ligne de lecture A dans CS1
Pour la version 1.2.0 du Altera cœur du contrôleur SDRAM DDR, cela doit être effectué par l’utilisateur. Pour v2.0 du cœur, cela sera fait automatiquement, devenant transparent pour l’utilisateur.