Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UDQS/LDQS nets are switched on the SDRAM #24

Open
benvanik opened this issue May 26, 2020 · 2 comments
Open

UDQS/LDQS nets are switched on the SDRAM #24

benvanik opened this issue May 26, 2020 · 2 comments

Comments

@benvanik
Copy link

I noticed these two differential signals were swapped in the r0.2 schematic. I've never done a DDR design and was wondering if there was a reason for this or if it snuck in during layout?

image

@gregdavill
Copy link
Collaborator

Yes, they were switched to improve routing, You'll notice that Upper Data (UDM, UDQS) is actually paired with D0-D7 bits on the FPGA end.

Ideally these nets should be renamed, to match what they're actually connected to.

@krystian-hebel
Copy link

DQSs are connected properly (although signal name is wrong), but DMs are not. As a result, when bytes are written one at a time and read back in group of 4 bytes, they are swapped. We discovered this in this function, with debug lines added - recv is the data from PRINT_GETC() and signature is what the function returns:

Awaiting neorv32_exe.bin...
recv: 0x000000fe
recv: 0x000000ca
recv: 0x00000088
recv: 0x00000047
signature: 0x8847feca

ERR_EXE

The problem is somewhat hidden with cache enabled, because all accesses are at least 4 bytes long in that case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants