I'm a little puzzled on the necessity of length matching for high speed buses such as those on DDR memories. I'm using some DDR3 in a design with a clock speed of 300MHz when the part is rated to 1066Mhz clock.
I have been googling for information regarding the reason for matched lengths in traces and so far I have found two:
1. (timing) edge alignment, and;
2. impedance matching.
However the articles I read so far just claim the necessity for length matching for the purposes of timing but do not use and theory or maths to justify it. The second reason given (for impedance matching) seems more like good practice rather than need as it simplifies impedance matching between signals if they take similar routes.
Now I know my design is not high performance due to the relatively low clock speed but I'll still use it as an example.
A DDR clock at 300MHz has a period of ~1.667ns, the length of my DDR IC is 14mm and PCB trace transmission speed is around 163mm/ns (according to multiple online sources). So assuming a very large delta in trace length of 14mm (distance between furthest most pads) with get a timing delta of ~86ps - nearly twenty times smaller than the clock period. This doesn't seem like a problem to me even considering a large length delta assuming timing is kept equal across the signals in the FPGA.
Is there something I'm not understanding here? Could someone shed some light on this or link me to a good article / paper about it?
Many thanks!