Author Topic: Tutorial on Microprocessor/Memory Track Length ERC?  (Read 5555 times)

0 Members and 1 Guest are viewing this topic.

Offline TripleFaultTopic starter

  • Contributor
  • Posts: 14
  • Country: au
Tutorial on Microprocessor/Memory Track Length ERC?
« on: May 01, 2012, 06:26:43 am »
I watched a video on You tube recently, where the guy went to extreme lengths to ensure that all the tracks (Address/Data Busses) from the uC were the same length.
I guess that is to do with Bus loading/Timing Latency, due to capacitive loading etc.

What I would like to know, is there any tutorials that anybody knows of, that lay out the Bus Timing/ERC Rules etc for matching track lengths when designing uC PCBs?????

Any help would be appreciated.

Cheers  :)
« Last Edit: May 02, 2012, 02:53:00 pm by TripleFault »
Go forth and Amplify
 

Offline Kremmen

  • Super Contributor
  • ***
  • Posts: 1289
  • Country: fi
Re: Tutorial on Microprocessor/Memory Track Length ERC?
« Reply #1 on: May 01, 2012, 08:35:24 am »
There are numerous reasons why you might wish to pay attention to the track lengths. However, that is just one of the outcomes of the underlying fundamental reason to get interested in that general topic.

In digital circuits there is a fuzzy line where the nice lumped objects turn into distributed ones and all kinds of new phenomena creep in. As far as PCBs are concerned, your nice digital pulses gradually turn into "swells" that travel to and fro in the conductors on the PCB - rather like a cross section of the surface of a restless swimming pool if you can picture that in your head.
Take the rising edge of a signal pulse. These always have 2 things associated with them: the rise time from the initial to the final state and the speed of signal propagation in the medium where the pulse travels. An example might illustrate: take a fast logic output rising from 0 to (say) 1 volt in 1 ns. On a typical outer layer track on FR4 substrate the leading edge of that signal would propagate some 180 mm before the trailing edge would leave the device output. So now the signal is distributed in the form of a rising swell over 180 mm of PCB track. To make matters worse, wherever there is a discontinuity in the track, or even a sharp bend, there will be reflections. All of those as well as the far end of the track cause reflections when/if the characteristic impedance of the track and the feature do not match. Radio amateurs are well aware of this in their pursuit of maximum energy transfer from the transmitter to the feeder cables, antenna and the ambient space. Same principles apply here, althoug in a different environment.
So, not only do you wish to match the length of the tracks (and not always to the same numerical length either), but also you will want to match the track characteristic impedance with those of the source and load, in order to avoid reflections.
If you look carefully at some commercial high speed circuits, such as can be found in computers, game consoles etc, you will see lots of tiny smd resistor arrays; these are used for bus termination / impedance matching. On a PCB the impedance matched transmission line almost always takes the form of a microstrip or stripline where well known formulas for strip dimensions exist for various configurations.

You will start to see ringing (multiple signal reflection from the trace endpoints) and overshoot after the trace length exceeds the so called round trip delay, i.e. the time the rising slope takes to travel there and back before the signal has fully risen. In the previous example that would be around 90 mm. These phenomena are simple in concept but a bit more complex to analyze mathematically. The factors impacting oversoot and ringing depend on path length but also on the input acceptance function, far end and near end reflection coefficients and the far end transmission function. In turn, all of those depend on the values of source, load and transmission line impedances.

I am not aware of any "101" or  "... for Idiots" type of tutorial on the subject. On the other hand there are numerous texts in book form covering the topic form fundamentals to painful details. You are guaranteed to find the necessary information in one of those, but not without effort on your part.
One book comes to mind that i bought some time ago, recommended by a countryman on another forum. It is an older text but quite valid, and could perhaps be found cheaply as a used book: H. Johnson, M. Graham: High-Speed Digital Design; a Handbook of Black Magic (see http://www.amazon.com/High-Speed-Digital-Design-Handbook/dp/0133957241/ref=sr_1_1?ie=UTF8&qid=1335860903&sr=8-1) Amazon unfortunately does not have cheap used versions at this time but someone might.

Edit: Altera to the rescue :) : http://www.altera.com/literature/an/an224.pdf
« Last Edit: May 01, 2012, 03:28:55 pm by Kremmen »
Nothing sings like a kilovolt.
Dr W. Bishop
 

Offline graynomad

  • Regular Contributor
  • *
  • Posts: 54
  • Country: au
Re: Tutorial on Microprocessor/Memory Track Length ERC?
« Reply #2 on: May 01, 2012, 03:16:32 pm »
Bet you're sorry you asked now TripleFault :)

What sort of PCB/uC do you have in mind, truth is for the average hobbiest (and even professional) PCB none of this matters, nothing is fast enough.

______
Rob
Graynomad, AKA Rob Gray www.robgray.com
 

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 8517
  • Country: us
    • SiliconValleyGarage
Re: Tutorial on Microprocessor/Memory Track Length ERC?
« Reply #3 on: May 01, 2012, 04:40:10 pm »
It's not until you hit the 200Mhz range that stuff starts getting critical.
If you make sure you daisy chain all nets and you make the rd wr or clock line longer than then longest data/address line you are generally good.
Modern cpu's have controlled slew rates and current mode pin drivers. this already solves a lot of problems. Avoid T-stubs , avoid unneccesarey layer hopping and it will get pretty good.

Now, if you are concerned about EMC , that's another problem...
Professional Electron Wrangler.
Any comments, or points of view expressed, are my own and not endorsed , induced or compensated by my employer(s).
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: Tutorial on Microprocessor/Memory Track Length ERC?
« Reply #4 on: May 01, 2012, 08:49:02 pm »
I watched a video on You tube recently, where the guy went to extremem lengths to ensure that all the tracks (Address/Data Busses) from the uC were the same length.
I guess that is to do with Bus loading/Timing Latency, due to capacitive loading etc.

What I would like to know, is there any tutorials that anybody knows of, that lay out the Bus Timing/ERC Rules etc for matching track lengths when designing uC PCBs?????
This usually becomes an issue when doing a layout for the memory connected to a SoC (system on chip). Most SoCs come with a manual on how to route the traces. Whether a design is very sensitive depends on the type of memory not so much on the frequency. In most cases the order of the layers is also important.
« Last Edit: May 01, 2012, 08:51:02 pm by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 8517
  • Country: us
    • SiliconValleyGarage
Re: Tutorial on Microprocessor/Memory Track Length ERC?
« Reply #5 on: May 01, 2012, 09:16:51 pm »
It's got nothing to do with the type of memory. it's all about edge rates , meeting setup and hold times and avoiding excessive overshoot , and especially undershoot. Fail to meet the logic levels in the right amount of time and it all goes to snot.

There's two things when it comes to high speed boards : signal integrity and EMC. They are related but not the same. to get your system working signal integrity is key. mathc the board trace impedance correctly, terminate appropriateyl , avoid t-stubs or impedance discontinuities ( via's for example ) as they cause refelctions.

if you got good signal integrity you can control edge rate and emc problems go away. trap all energy and it cannot radiate.

But, none of that stuff comes into play if you are dabbling below the 'roughly' 100Mhz range.
just make sure your lines are roughly equal in length and that the 'control' signal governing the write arrives later than the slowest data or address line. that way the signals are already stable before that one arrives.

That is how pci does it. the pci master clock line must be 1.5 inches longer than the longes other pci signal line. this avoids setup / hold problems.
Professional Electron Wrangler.
Any comments, or points of view expressed, are my own and not endorsed , induced or compensated by my employer(s).
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: Tutorial on Microprocessor/Memory Track Length ERC?
« Reply #6 on: May 02, 2012, 12:33:45 pm »
just make sure your lines are roughly equal in length and that the 'control' signal governing the write arrives later than the slowest data or address line. that way the signals are already stable before that one arrives.

That is how pci does it. the pci master clock line must be 1.5 inches longer than the longes other pci signal line. this avoids setup / hold problems.
PCI actually works because of reflections. Reflections are not always bad!

Like I typed before: the best routing rules depend on the chips being used so always refer to the manual, application notes and datasheets.  I've done loads of PCB designs (some up to several GHz) and there really is no generic recipe that will work for any PCB. I've seen 80MHz SDRAM designs fail due to bad routing because the PCB designer didn't read / understand about routing for SDRAM.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline TripleFaultTopic starter

  • Contributor
  • Posts: 14
  • Country: au
Re: Tutorial on Microprocessor/Memory Track Length ERC?
« Reply #7 on: May 02, 2012, 12:41:28 pm »
Thank you very much Kremmen for that wonderful reply.

I have found that book and have downloaded the Altera doc and will start studying.
I had guessed this subject wasn't easy, but I am determined and there is only one way to learn, and that is by doing.

Thank you very much  :)
Go forth and Amplify
 

Offline TripleFaultTopic starter

  • Contributor
  • Posts: 14
  • Country: au
Re: Tutorial on Microprocessor/Memory Track Length ERC?
« Reply #8 on: May 02, 2012, 12:44:55 pm »
Bet you're sorry you asked now TripleFault :)

What sort of PCB/uC do you have in mind, truth is for the average hobbiest (and even professional) PCB none of this matters, nothing is fast enough.

______
Rob

LOL!
I expected a reply, but Kremmen gave me the encyclopedia.

Basically, I am starting to delve into High Speed uProcessor (200MHZ+) Digital Signal Processing and have noticed all the delays and capacitive loadings on the Buses.
I need to learn all this stuff sooner or later.

Guys like Kremmen make it easier, as they are willing to divest their knowledge to us poor mortals.  :)
« Last Edit: May 02, 2012, 12:47:26 pm by TripleFault »
Go forth and Amplify
 

Offline TripleFaultTopic starter

  • Contributor
  • Posts: 14
  • Country: au
Re: Tutorial on Microprocessor/Memory Track Length ERC?
« Reply #9 on: May 02, 2012, 12:50:31 pm »
It's not until you hit the 200Mhz range that stuff starts getting critical.
If you make sure you daisy chain all nets and you make the rd wr or clock line longer than then longest data/address line you are generally good.
Modern cpu's have controlled slew rates and current mode pin drivers. this already solves a lot of problems. Avoid T-stubs , avoid unneccesarey layer hopping and it will get pretty good.

Now, if you are concerned about EMC , that's another problem...

Thanks for your reply free electron  :)

Yes, I am going over the 200MHZ mark so i will have to study up on all this.
This is all new territory, so I will have to really go slowly  :)
Go forth and Amplify
 

Online EEVblog

  • Administrator
  • *****
  • Posts: 37740
  • Country: au
    • EEVblog
Re: Tutorial on Microprocessor/Memory Track Length ERC?
« Reply #10 on: May 02, 2012, 12:52:15 pm »
As has been said, it's really only an issue when you start talking high speed memory (> several hundred MHz).
Look up DDR memory app notes, that's particularly tricky stuff, and one of the most critical, there is plenty of great detail on layout issues.
Not just in terms of length matching, but transmission line termination as well. Because, really, if you have to worry about the length, then you are into transmission line territory.
Micron have some good app notes if memory serves me correctly.

Dave.
 

Offline TripleFaultTopic starter

  • Contributor
  • Posts: 14
  • Country: au
Re: Tutorial on Microprocessor/Memory Track Length ERC?
« Reply #11 on: May 02, 2012, 12:57:38 pm »
As has been said, it's really only an issue when you start talking high speed memory (> several hundred MHz).
Look up DDR memory app notes, that's particularly tricky stuff, and one of the most critical, there is plenty of great detail on layout issues.
Not just in terms of length matching, but transmission line termination as well. Because, really, if you have to worry about the length, then you are into transmission line territory.
Micron have some good app notes if memory serves me correctly.

Dave.

Thanks Dave,
It's always good to hear from the master  :)
I will start reviewing some DDR App notes and muscle up on some transmission line theory.

I hadn't planned on it being an antenna, but oh well it looks like it has become that  ;D

Thanks again Dave,
And maybe you could do a Video Blog on this subject some time, I for one would watch it  :)
Go forth and Amplify
 

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 8517
  • Country: us
    • SiliconValleyGarage
Re: Tutorial on Microprocessor/Memory Track Length ERC?
« Reply #12 on: May 02, 2012, 02:06:13 pm »
Micron and samsung have good appnotes on ddr.
It gets really funky when you push into ddr3 territory.... I did a board for the Spear600 ( the same beastie driving dave's scope) processor a while ago... Full of 'curly bits'. we used samsung ram. Series resistors were bot needed but length tuning was.
Professional Electron Wrangler.
Any comments, or points of view expressed, are my own and not endorsed , induced or compensated by my employer(s).
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf