Understanding Dynamic ODT ddr4

Soulkeeper

Diamond Member
Nov 23, 2001
6,712
142
106
Maybe someone here can confirm something for me, I can't find the answer with google searches.
For termination of a ddr4 data bus, containing 4 ranks, what is the exact use of RTT_NOM for read and write conditions ?

Correct these if wrong:
My understanding was that RTT_NOM was applied to the rank after the one being accessed, except the last one (seems odd for the last rank).
If the last rank is being written to then it self terminates with RTT_WR, but during a read there is no termination on that rank.
Any rank not being read/written to and not set to RTT_NOM is set to RTT_PARK.
All this assumes dynamic ODT is enabled and none of the individual RTT_NOM/WR/PARK are disabled.

Most of the information I find are dealing with 2 ranks, or have a single picture with no detail.
Wanting to understand this has been in the back of my mind for months. I would like to figure it out from a technical perspective.

Thanks
 

Soulkeeper

Diamond Member
Nov 23, 2001
6,712
142
106
I wrote a program to display my best understanding of how the ODT works.
Here is a sample config with two dual rank dimms on a channel.
1.38v 34.3 procodt 7 rtt_nom 3 rtt_wr 1 rtt_park
The I to VDD is the estimated/calculated amps pulled through the resistors.
ie: pseudo open drain (POD) pulling the data lines to tristate.
procodt is part of this as well as each chip select's odt. During a read from a CS there is Hi-Z or no resistance to vdd shown as infinity.
I'm sure it's wrong in some way, if anyone can confirm or deny. Thanks.

Code:
./ddr-signal 1.38 34.3 7 3 1
ProctODT         CS3       CS2       CS1       CS0           I to VDD      Ohms           Description
34.30            240.00    240.00    240.00    240.00        0.0632        21.8240        No active cs
34.30             80.00     34.29    240.00    240.00        0.1092        12.6335        Write to cs3
34.30            240.00     80.00     34.29    240.00        0.1092        12.6335        Write to cs2
34.30            240.00    240.00     80.00     34.29        0.1092        12.6335        Write to cs1
34.30            240.00    240.00    240.00     80.00        0.0747        18.4657        Write to cs0
34.30            ∞          34.29    240.00    240.00        0.0920        15.0027        Read from cs3
34.30            240.00    ∞          34.29    240.00        0.0920        15.0027        Read from cs2
34.30            240.00    240.00    ∞          34.29        0.0920        15.0027        Read from cs1
34.30            240.00    240.00    240.00    ∞             0.0575        24.0070        Read from cs0