Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: looping traces Controller <-> SDRAM. A Q for the EE folks.  (Read 1567 times)

0 Members and 1 Guest are viewing this topic.

SavannahLion

  • Wiki Contributor
  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 5986
  • Last login:December 19, 2015, 02:28:15 am
looping traces Controller <-> SDRAM. A Q for the EE folks.
« on: April 18, 2011, 01:15:02 am »
I've been Googling around and I'm stumped.

I was studying a PCB file and I came across a bunch of traces between the controller and the SDRAM where the traces loop back on itself. Like switch backs on a mountain road. The traces between controller and RAM literally double back on itself. It'll head towards the target, do a quick U turn and travel back towards the source for a bit, then do another U and and head back towards the target. I thought about it for a bit and I can only think of two things. The designer is taking advantage of the inherent capacitance of longer traces, so to cut manufacturing costs simply adds the looping traces. But why do this on (apparently) every data line? My next thought is to introduce some kind of delay in the signal for timing reasons. But why can't you just introduce the delay via code instead of eating up board space like that?

Any EE types know?

SavannahLion

  • Wiki Contributor
  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 5986
  • Last login:December 19, 2015, 02:28:15 am
Re: looping traces Controller <-> SDRAM. A Q for the EE folks.
« Reply #1 on: April 18, 2011, 01:40:30 pm »
OK. A coworkers who used to work for Intel knew the answer. They're called "serpentine" or "trombone" traces.

Googling with those phrases turned up a plethora of documents.

No need for a response. Thanks.

Vigo

  • the Scourage of Carpathia
  • Global Moderator
  • Trade Count: (+24)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 6417
  • Last login:June 25, 2025, 03:09:16 pm
Re: looping traces Controller <-> SDRAM. A Q for the EE folks.
« Reply #2 on: April 18, 2011, 03:07:13 pm »
I've been Googling around and I'm stumped.

I was studying a PCB file and I came across a bunch of traces between the controller and the SDRAM where the traces loop back on itself. Like switch backs on a mountain road. The traces between controller and RAM literally double back on itself. It'll head towards the target, do a quick U turn and travel back towards the source for a bit, then do another U and and head back towards the target. I thought about it for a bit and I can only think of two things. The designer is taking advantage of the inherent capacitance of longer traces, so to cut manufacturing costs simply adds the looping traces. But why do this on (apparently) every data line? My next thought is to introduce some kind of delay in the signal for timing reasons. But why can't you just introduce the delay via code instead of eating up board space like that?

Any EE types know?

10 PRINT "THAT ALL JUST COMPLETELY WENT ABOVE MY HEAD"
20 GOTO 10

RUN

MonMotha

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2378
  • Last login:February 19, 2018, 05:45:54 pm
Re: looping traces Controller <-> SDRAM. A Q for the EE folks.
« Reply #3 on: April 18, 2011, 06:22:13 pm »
Honestly, I've never heard either of those terms, but they make sense.  I've always just heard the procedure referred to as "trace length matching".  It's somewhat important on conventional SDRAM, but it's very important on higher speed DDR SDRAM along with controlled impedance (stripline or microstrip) design.  There are some pretty lengthy documents describing what you need to do for DDR SDRAM (look up the SSTL layout guidelines from JEDEC).

You CAN also make resistors, capacitors, and inductors out of PCB features.  You're generally limited to fairly small values and pretty broad tolerances, but it can be a useful trick especially in the GHz range as even conventional FR-4 PCBs can "behave" surprisingly well if you're careful with your design, and more oddball laminates can behave even better.

lilshawn

  • Trade Count: (+3)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 7513
  • Last login:Yesterday at 09:56:31 am
  • I break stuff...then fix it...sometimes
Re: looping traces Controller <-> SDRAM. A Q for the EE folks.
« Reply #4 on: April 19, 2011, 12:47:47 am »
pretty bad when the signal switching time is so fast that the speed of light isn't fast enough.  :dizzy:

Vigo

  • the Scourage of Carpathia
  • Global Moderator
  • Trade Count: (+24)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 6417
  • Last login:June 25, 2025, 03:09:16 pm
Re: looping traces Controller <-> SDRAM. A Q for the EE folks.
« Reply #5 on: April 19, 2011, 09:38:52 am »
Well, it would actually be the speed of electricity, and since that it's not in a vacuum, it would only be going a meager 95% of the speed of light. I know, SLOW, right?  :lol

MonMotha

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2378
  • Last login:February 19, 2018, 05:45:54 pm
Re: looping traces Controller <-> SDRAM. A Q for the EE folks.
« Reply #6 on: April 19, 2011, 11:44:22 am »
pretty bad when the signal switching time is so fast that the speed of light isn't fast enough.  :dizzy:

Some modern processors are so complicated and are clocked so fast that there are upwards of 10-20 clock domains on the chip.  That is, the clock signal gets skewed so far relative to its speed that 10-20 different parts of the chip have to consider themselves as possibly on a different clock cycle from another part!

13 inches of copper wire is about 1 nanosecond or 1000 picoseconds.   At 3GHz (a "mid range" desktop processor, these days), one clock cycle lasts only 333 picoseconds, so if you've got 13 inches of traces between you and the data source, the data arrives 3 clock cycles after it was sent!