2
\$\begingroup\$

I'm using HyperLynx to emulate my STM32MP157AAA3 small form factor system board with DDR3-1066 memory.

When I use DDRx batch simulation:

  1. I confirmed that my ODT model is configured correctly. Use 48 ohm Z0 and 120 ohm ODT resistors.
  2. I found that all the simulations passed except DQ reading simulation.
  3. I found that the DDRx emulation data embedded in Hyperlynx requires that the data must be at least 225ps slower than the clock line (for example, DQ is slower than DQS, DQS is slower than CLK, and CA is slower than CLK). But the ST manual doesn't require DQ to be slower than DQS.
  4. I found that during DQ reading simulation, the setup time of the data line is only about 250ps. But for the same data line, during DQ writing simulation, the setup time is higher than 550ps.
  5. I found that BadSignal is reported during DQ reading simulation, at this time the oscilloscope shows two thresholds "Setup_high" and "Setup_low". The DQ line crossed Setup_high due to ringing, but did not cross Setup_low.

The question I want to ask is:

  1. Do you need to strictly follow DQ is slower than DQS, DQS is slower than CLK, CA is slower than CLK" or just adhere to the requirements of the ST manual
  2. Why is the signal of the same trace seriously degraded during reading and good during writing? Is it a problem of equal length mismatch/impedance mismatch?
  3. In theory, as long as the level is not lower than Setup_low, the memory should be able to identify the establishment of the signal, why HyperLynx still reports BadSignal.

wr rd

e.g.

DQ0 on reading got a 250ps setup time

ewr

but 500ps+ on writing

erd

it got no overshoot or undershoot in transient simulation

enter image description here

even nice eye pattern

enter image description here

also the two picture on the left are BAD_SIGNAL, on the right are "GOOD".I can't find any difference between them

enter image description here

\$\endgroup\$

1 Answer 1

2
\$\begingroup\$

Do you need to strictly follow DQ is slower than DQS, DQS is slower than CLK, CA is slower than CLK" or just adhere to the requirements of the ST manual

Just follow the manual and match the clock within ±40mils to the DQ lines.

enter image description here Source: https://www.st.com/resource/en/application_note/an5122-stm32mp1-series-ddr-memory-routing-guidelines-stmicroelectronics.pdf

This diagram is probably helpful when understanding DDR3 matching, the lengths and tolerances will be different for the STM32 but the overall idea is the same:

enter image description here Source: https://welldoneblog.fedevel.com/2014/06/30/ddr3-length-matching-rules/

Why is the signal of the same trace seriously degraded during reading and good during writing? Is it a problem of equal length mismatch/impedance mismatch?

If you have the lengths matched properly and you are still seeing issues on DQ with reading vs writing check the drive strengths in the IBIS files again. I would also check the IBIS files with pre-layout and see if the IBIS files work.

In theory, as long as the level is not lower than Setup_low, the memory should be able to identify the establishment of the signal, why HyperLynx still reports BadSignal.

I would check the actual transient simulation and see if it looks good.

\$\endgroup\$
9
  • \$\begingroup\$ Thank you.I checked the IBIS model and couldn't find anything that looked wrong. The problem is reproduced with different levels of drive strength BadSignal is caused by the ringing amplitude exceeding the emulator's warning limit I still don't understand why the setup time is good enough for reading and nearly 200ps shorter for writing \$\endgroup\$
    – AlanCui
    Nov 15, 2022 at 19:53
  • \$\begingroup\$ Is this a post layout simulation? \$\endgroup\$
    – Voltage Spike
    Nov 15, 2022 at 19:56
  • \$\begingroup\$ Yes,i'm new to EE and used to be a kernel developer. I want to create my own system. But i have no idea about it. \$\endgroup\$
    – AlanCui
    Nov 15, 2022 at 19:59
  • \$\begingroup\$ I thought, Hyperlynx is wrong. For more details, check out my question that updated. \$\endgroup\$
    – AlanCui
    Nov 15, 2022 at 21:22
  • \$\begingroup\$ What is your matching between the CK and DQS and DQ? It could be just a configuration setting in the way that its checking the DQ line margin, do you have the configuration correct (clocks and timings)? \$\endgroup\$
    – Voltage Spike
    Nov 15, 2022 at 22:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.