As the device frequencies and the data rates go up with every new generation of interface and memory devices, sampling of the signals and the transferring of the data between the Initiator and the Target is increasingly difficult with ever shrinking data eyes.
To assist with the handshake for high speed I/O, most of the newer generation of the interfaces and memories support an ever-increasing number of Training Modes that the system designer has to consider as part of the system bring up/operation for systems to work as intended and to make sure the Initiator and Target are able to communicate with each other.
This is an even more important problem for newer generations of DRAM memories that the latest SoC use.
Here are the categories of the most important trainings supported by latest DRAMs like LPDDR5 and DDR5/DDR5 DIMMs:
1. Vref Training
This is the part of initial bring up of the memory subsystem. The Host will typically set the DRAM mode register that will be used for reference voltage for signals like command, chip select and DQ. Since the DRAM may not be able to sample the Host command at the time Vref training is done, the host sends it over multiple cycles to make sure that DRAM is able to receive it.
2. Command Training
This is typically the first functional training that the Host has to perform to make sure that the DRAM device is able to understand the commands that it is intending to send. It involves the Host driving DRAM’s command bus which than samples and sends back what it receives as feedback on DQ signals. The Host can check the feedback and compare with what it drove. The Host can than adjust the input if the feedback doesn’t match what was driven.
3. Clock to Strobe leveling
Due to routing differences between different signals and other factor, the strobe signals that DRAM usages will typically not be aligned to the input clock that it receives. The Host has to adjust for this phase difference by going through Clock to Strobe leveling. This training is referred to as External/Internal Write leveling for DDR5 and WCK2CK leveling for LPDDR5 (and just write leveling for previous generations of memories like LPDDR4, DDR4, etc.).
4. Strobe to DQ Training
Once the Clock to Strobe training is done, the next step is making sure the Host and DRAM are able to send/sample write and read data correctly. Aim for this step is for the Host to know the timing relationship between the strobe and the data signal and is referred to as Strobe to DQ training. It typically involves sending of a known data written to the DRAM followed by reading from the same location and comparison of the two to check if it matches. The Host then adjusts its strobe to the Data signal delay and goes through the same step again till it’s able to send/receive the write/read data to/from DRAM correctly.
5. Other Trainings
There are several other trainings that are supported to help with specific functionality of device. For device modules like DDR5 DIMMs, the training not only involves the individual components (RCD, DRAM, and DB), but how the signals are propagated from one component to another. The Host is then required to train the individual component as well as module as whole. Some of the DDR5 LRDIMM trainings like MRE, MRD, DWL, MWD, etc. are good examples of the module level trainings.
To summarize, training is a big part of system bring up and normal function. It is also increasingly becoming a significant design and verification challenge that needs to be accounted for as part of planning for SoC.
Cadence MMAV VIPs for DDR5/DDR5 DIMM and LPDDR5 are compressive VIP solutions and supports all of the above listed Training Modes. LPDDR5 and DDR5 VIPs also support additional configurable knobs to control VIP behavior on training error to assist with the verification challenges arising out of testing for these trainings.
More information on Cadence DDR5/LPDDR5 VIP is available on the Cadence VIP Memory Models Website.