software/bios/sdram: allow setting CLK/CMD delay from user design and configure it...
authorFlorent Kermarrec <florent@enjoy-digital.fr>
Thu, 27 Feb 2020 11:25:37 +0000 (12:25 +0100)
committerFlorent Kermarrec <florent@enjoy-digital.fr>
Thu, 27 Feb 2020 11:26:27 +0000 (12:26 +0100)
commit78a32235739ab8f7a557bfb119d96567019259fc
tree1f5f89735011742d04051ebab5849eebe412bb38
parenteab5161d4746a89f52e5a105745cdb3703fb3e2d
software/bios/sdram: allow setting CLK/CMD delay from user design and configure it before write/read leveling.

Setting a manual delay on CLK/CMD vs DQ/DQS is required on some configuration to center the write leveling window:

Before (delay = 0 taps):
Write leveling:
m0: |11000000000000011111111111| delay: 15
m1: |00000000000000111111111111| delay: 14
m2: |11110000000000000111111111| delay: 17
m3: |11110000000000000011111111| delay: 18
m4: |11111111110000000000000111| delay: 00
m5: |11111111110000000000000111| delay: 00
m6: |11111111111000000000000001| delay: 00
m7: |11111111111000000000000011| delay: 00

After (delay = 12 taps):
Write leveling:
m0: |11111111111111000000000000| delay: 00
m1: |11111111111100000000000001| delay: 00
m2: |00011111111111110000000000| delay: 03
m3: |00011111111111110000000000| delay: 03
m4: |00000000111111111111110000| delay: 08
m5: |00000000111111111111110000| delay: 08
m6: |00000000001111111111111000| delay: 10
m7: |00000000001111111111111000| delay: 10
litex/soc/software/bios/sdram.c