Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

DDR-Speicher auf selbstgeätzten Platinen

12 views
Skip to first unread message

Karsten Becker

unread,
Apr 13, 2003, 5:44:10 AM4/13/03
to
Moin,
Ich arbeite gerade an einer Platine für einen FPGA und um sie möglichst
zukunftssicher zu machen, möchte ich da auch DDR-Speicher drauf
benutzen. Die Frage ist aber nun, wie einfach ist eine Platine für einen
"Laien" zu layouten?
Vorgesehen sind 4 Lagen. Der Abstand auf der Platine vom FPGA zum
DDR-Baustein wird natürlich sehr gering sein. Reicht es die Leiterbahnen
auf die selbe kürze zu bekommen und den Abstand zwischen den einzelnen
Datenleitungen nicht zu klein zu machen, oder muß man wirklich alles
beachten, also vom Widerstand der Leitung über Kapazität bis hin zu
Induktivität?
Wie kritisch ist da das DDR-Interface wirklich?
Wie sieht es mit dem drumherum aus, also stromversorgungstechnisch?
Ist es da vielleicht einfacher Registered Dimms zu nehmen, die die
Signale selber nochmal aufbereiten?
Und zu guter letzt, hat vielleicht jemand ein frei zugängliches Layout
auf dem man sich das mal konkret angucken kann?

Vielen dank schonmal im vorraus,
Karsten

Oliver Bartels

unread,
Apr 13, 2003, 10:34:43 AM4/13/03
to
On Sun, 13 Apr 2003 11:44:10 +0200, Karsten Becker
<K...@karsten-becker.de> wrote:
>Wie kritisch ist da das DDR-Interface wirklich?
SDRAM bei 100MHz habe ich schon mehrfach mit unserem Autorouter
gelayoutet, auch mit CPLD (Lattice) Ansteuerung, bei ordentlicher
Terminierung hat es bzgl. der Signalintegrität keine Probleme gegeben.
Multilayer ist natürlich Pflicht, und man sollte *etwas* auf die
Impedanzen achten, ohne eine Religion daraus zu machen.
Die Laufzeiten sind nicht sooo kritisch, auf der Leiterkarte
(eps_r grob bei 4,8) entspricht 1m etwa 7,3ns Laufzeit,
10cm ergo 0,73ns. Wenn in Deinem Layout zwischen Takt
und Steuersignalen/Daten 10cm Längenunterschied sind,
dann hast Du etwas grundlegend flasch gemacht, auch mit
(gutem) Autorouter ...

Beim DDR RAM sind nur die *Daten* schneller, aber auch nicht
schneller als das Clock-Signal (ungünstigste Folge: 101010... gibt
Clock/2, da bei DDR der Takt verdoppelt ist, entspricht das
in der Frequenz wiederum dem Taktsignal)

Was wichtig ist: Die *Terminierung* bei längeren Leitungen, sonst
gibt es nette Echos (siehe HF-Anpassung), die das Signal gut
vermurksen können, da die Leiterbahnlänge *mehrfach*
vom Echo "genutzt" wird.

Was nützlich ist: Takttreiber mit Zero Delay, gibt es z.B. von
Cypress (mit integrierter PLL).

Was unkritisch ist: Digitales Übersprechen, bei Leiterkarten habe
ich bisher keinen einzigen Fall gehabt, in dem ein qualitativ
ordentliches *Digital*-Signal bei halbwegs vernünftiger Bahnführung
gestört wurde (wobei chaotisch hier durchaus vernünftig ist, ein
optisch schöner Bus ist eher technisch nachteilig). Die Angst vorm
bösen, bösen digitalen Übersprechen machen meist nur Salesdroiden,
die für teures Geld entsprechende Simulationstools verdidschen
wollen, die aber auch nicht wirklich eine Feldsimulation machen,
sondern mit Schätzei^WModellen arbeiten.
Glaube mir: Hag Chan Juniors Reissack-Layoutbude, die in
Zentralchina die Layouts für PC Motherboards macht, nutzt die
garantiert auch nicht, weil in dem Business *viel* zu teuer ;-)

Von Tücke sind eher die kleinen Details bei der synchronen
Ansteuerung, bitte das Datenblatt *genau* lesen.
Ansonsten merkst Du es, wenn Du das FPGA Programm
austesten und ändern darfst ...

>Wie sieht es mit dem drumherum aus, also stromversorgungstechnisch?

Multilayer mit Power Lagen plus viele, viele Abblock-C's.
Lieber gute 10nF als schlechte 0,1uF, und natürlich
*bitte* nur, immer und ausschließlich SMD.
Irgendein 10uF Tantal am Rand reicht dann für niederfrequente
Störungen, ein Problem ist aber der schnelle Strombedarf.
Da sind die Powerlagen deshalb *sehr* wichtig, weil sie die
inherente Induktivität einer normalen Leiterbahn pro
Längeneinheit deutlich reduzieren. Und bis zum nächsten
Kondensator braucht es eine solche, auch wenn bei den
DRAM's das Pinout schon so gemacht ist, das man garnicht
mehr umher kann, die Abblock-C's (<=0603) richtig
zu plazieren.

>Ist es da vielleicht einfacher Registered Dimms zu nehmen, die die
>Signale selber nochmal aufbereiten?

Schmarrn, nur Mut ...
Das Problem wird eher sein, einzelne Chips zu beschaffen.
Hint: Besorge die Muster *vor* dem Layout, dann weist Du,
welche Du eindesignen kannst ;-|
Ein gutes DSO ist natürlich für die Entwicklung *sehr* hilfreich.

Gruß Oliver

--
Oliver Bartels + Erding, Germany + obar...@bartels.de
http://www.bartels.de + Phone: +49-8122-9729-0 Fax: -10

Karsten Becker

unread,
Apr 13, 2003, 11:12:44 AM4/13/03
to
Oliver Bartels wrote:
>>Ist es da vielleicht einfacher Registered Dimms zu nehmen, die die
>>Signale selber nochmal aufbereiten?
>
> Schmarrn, nur Mut ...
> Das Problem wird eher sein, einzelne Chips zu beschaffen.
> Hint: Besorge die Muster *vor* dem Layout, dann weist Du,
> welche Du eindesignen kannst ;-|
> Ein gutes DSO ist natürlich für die Entwicklung *sehr* hilfreich.

Danke schonmal für deine sehr ausführliche und aufmunternde antwort. Die
meisten die ich zu dem thema befragt hatte, erzählten mir irgendwas was
Vodoo sehr nahe kam. So nach dem motto, das kann man nur mit einem 5
mio. budget realisieren...
Was ich mich aber gerade noch so frage, du schlägst ja vor einzelne
Module zu nehmen, ich vermute das es mit Modulen sehr viel einfacher
sein wird die richtige Anpassung hinzubekommen, aber wieviel schwerer
wäre denn ein regulärer DIMM sockel? Der Hintergedanke ist klar,
DDR-Speicher kriegt man an jeder Ecke aber bei einzelnen DDR-Chips wirds
schwieriger...

Gruß,
Karsten

Holger Baxmann

unread,
Apr 13, 2003, 11:31:05 AM4/13/03
to

Muß es denn so ein alter Ram aus SED Zeiten sein - selbst SPD ist ja nun
nicht gerade modern ...

SCNR ;-)

Guck mal auf

http://www.opencores.org/projects/ddr_sdr/

da findest Du einen guten Einstieg.

bax

Georg Acher

unread,
Apr 13, 2003, 11:44:09 AM4/13/03
to
In article <b7bupc$d4bgd$1...@news.hansenet.net>,
Karsten Becker <K...@karsten-becker.de> writes:

|> Danke schonmal für deine sehr ausführliche und aufmunternde antwort. Die
|> meisten die ich zu dem thema befragt hatte, erzählten mir irgendwas was
|> Vodoo sehr nahe kam. So nach dem motto, das kann man nur mit einem 5
|> mio. budget realisieren...

Die haben es dann wohl auch noch nicht gemacht ;-)

|> Was ich mich aber gerade noch so frage, du schlägst ja vor einzelne
|> Module zu nehmen, ich vermute das es mit Modulen sehr viel einfacher
|> sein wird die richtige Anpassung hinzubekommen, aber wieviel schwerer
|> wäre denn ein regulärer DIMM sockel? Der Hintergedanke ist klar,
|> DDR-Speicher kriegt man an jeder Ecke aber bei einzelnen DDR-Chips wirds
|> schwieriger...

Warum nicht ablöten? Das geht bei nicht-BGAs sehr einfach. Und solange du nur ein
paar PCBs bestücken musst, ist das die schnellste und billigste
Bauteilbeschaffung.

BTW: Terminierung wurde ja schon angesprochen: Ein bereits geplanter Platz für
einen evtl. nötigen 100-220R zur Grobterminierung aller rumlaufenden
Clock-Leitungen ist Gold wert ;-)

--
Georg Acher, ac...@in.tum.de
http://wwwbode.in.tum.de/~acher
"Oh no, not again !" The bowl of petunias

Oliver Bartels

unread,
Apr 13, 2003, 11:42:57 AM4/13/03
to
On Sun, 13 Apr 2003 17:12:44 +0200, Karsten Becker
<K...@karsten-becker.de> wrote:
>Danke schonmal für deine sehr ausführliche und aufmunternde antwort. Die
>meisten die ich zu dem thema befragt hatte, erzählten mir irgendwas was
>Vodoo sehr nahe kam. So nach dem motto, das kann man nur mit einem 5
>mio. budget realisieren...
Das sind die Bedenkenträger, die selber noch nie was auf die Reihe
gebracht haben, die nur vom Hörensagen wissen, dass da irgendjemand
mal eine erhöhte Anstrengung hatte, und da in unserem Land das
Wort Anstrengung, zumal erhöht, etwas ganz schreckliches und
furchtbares bedeutet (weia, da muss man sich ja vom Sessel
wegbewegen, das braucht Energie ;-), eben spontaner Schmerz, da
kann das nur so eine Nadel in der Voodoo-Puppe gewesen sein ...

Im Prinzip ist das genauso wie mit HF: Wenn man sich ernsthaft
damit befasst (bei HF: auch mal ein Buch liest, ja, so ein Ding mit
bedrucktem Papier zwischen zwei Pappendeckeln ;-) und mit
*geeignetem* Werkzeug herangeht, ist es machbar.

Wenn Du gesagt hättest: Ich will das auf einer einseitigen
Badewannenätzplatine machen, dann hätte ich gesagt:
Vergiß es. Das wäre dann so wie 2,4GHz HF mit BC547B als
Leistungsendstufe, weil der C*nrad nur den hat.
Aber der Ansatz mit Multilayer und FPGA klingt doch ganz vernünftig.
Wie gesagt: Ich rate noch zu einem guten DSO, ggf. ausgeliehen.
Bitte nicht mit Soundkarte gebastelt, manches Werkzeug muss
einfach vernünftig sein und nicht unbedingt in "Baumarktqualität".

>Was ich mich aber gerade noch so frage, du schlägst ja vor einzelne
>Module zu nehmen, ich vermute das es mit Modulen sehr viel einfacher
>sein wird die richtige Anpassung hinzubekommen, aber wieviel schwerer
>wäre denn ein regulärer DIMM sockel? Der Hintergedanke ist klar,
>DDR-Speicher kriegt man an jeder Ecke aber bei einzelnen DDR-Chips wirds
>schwieriger...

Dafür bekommst Du den DIMM Sockel nicht an jeder Ecke,
aber vermutlich schon in einem Distri-Online-Shop auf Kreditkarte ;-/

Zur Technik: Ich glaube, es wird sich wenig tun.
xDRAM auf der Leiterkarte aufgelötet ist etwas schneller als
auf dem Modul, aber so wirklich spielt das nur für Systeme a'la
Playstation & Co. eine Rolle. Aber *genau* weiß ich es nicht,
weil ich beim letzten Projekt das DRAM doch wieder auflöten
hab' lassen, für dieses Projekt war es mir mechanisch dann
gelötet doch sympathischer, die SDRAM Sockel wurden doch
nicht benutzt.

Zu den Chips: Infineon liefert leider nicht über die normale
Distribution, hingegen sind koreanische xDRAMs und Micron
mit etwas Suchen schon zu bekommen. Beim letzten Mal
lagen Angebote von Holz und Arrow vor.

Ansonsten finde ich es schon ein ziemliches Trauerspiel, dass
die meisten Distris keinerlei xDRAM mehr haben ...

M.Randelzhofer

unread,
Apr 13, 2003, 1:01:28 PM4/13/03
to
"Karsten Becker" <K...@karsten-becker.de> schrieb im Newsbeitrag
news:b7bbha$d0fbv$1...@news.hansenet.net...

Wirklich kritisch ist der Clockpfad. Der clockskew der FPGA-flipflops und
der des DDRAMs sollte so klein sein wie möglich. Das kann man mit den
FPGA-internen DLL's/PLL's und einer entsprechend sauberen Clockverlegung auf
dem Board optimieren. Idealerweise sollte man nachträglich da noch mit
RC-Gliedern nachjustieren können. Generell kann man aber sagen, dass bei
100MHz DDRAM schon ein skew von ca. 1ns oder darunter erreicht werden
sollte. Das ist dann schon etwas HF-Popelei. SDRAM's sind da unkritischer,
da ja die gesamte Clockzeit für die Datenübertragung bereit steht. Das
Problem des Clockskews steigt mit der Anzahl der beteiligten Bausteine an
der Clock, d.h FPGA und 1 DDRAM ist die sicherste Lösung.
Ein DDRAM einzusetzten mag ja rein marketingtechnisch ganz cool sein. Die
Frage ist nur für welche Anwendungen man sie wirklich braucht.
Die Teile sind vor allem für Cache gestützte Prozessoren gebaut, wo schnell
mal 128 Bytes oder mehr in eine line rein oder raus geschoben werden sollen.
Für random access eines Prozessors ohne cache bringt DDR nix.
Sollen jedoch möglichst viele Daten möglichst schnell weggeschoben werden,
ist DDRAM ganz OK.
Um die Bandbreite eines synchronen Speichers zu erhöhen gibts bekanntlich
viele Möglichkeiten:

- höherer Takt:
Bei 100Mhz noch lange nicht zu Ende; man macht sich aber das Leben schwer

- grössere Datenbusbreite:
Echter Negertrick. Hat Intel bereits beim Pentium eingeführt. Verdoppelung
der Datenbusbreite bringt genausoviel wie der Wechsel von SDRAM nach DDRAM

- Erhöhung der Datenrate pro Clockzyklus:
Da sind die DDR's momentan wohl nicht zu schlagen. Gibt aber wohl bald QDRAM
also 4fach, achtfach und zigfach gepumpte DatenTransfers pro Clock.
Für den PC durchaus sinnvoll, da bestehende Leistung verzigfacht wird. Aber
bei einem FPGA-Board ?

Die Philosophiefrage des FPGAboards mit Speicher lautet also: Schmaler
Speicherbus mit vielen Transfers pro clock oder breiter Bus mit einfachen
Transfers oder gar breiter Speicherbus mit vielen Transfers pro Clock was
dann sinnvollerweise mit einem fertigen SpeicherDIMM realisiert wird. Eine
weiter Alternative wäre RDRAM...


MIKE


Oliver Bartels

unread,
Apr 13, 2003, 3:28:35 PM4/13/03
to
On Sun, 13 Apr 2003 19:01:28 +0200, "M.Randelzhofer"
<mrande...@uumail.de> wrote:
>Wirklich kritisch ist der Clockpfad. Der clockskew der FPGA-flipflops und
>der des DDRAMs sollte so klein sein wie möglich. Das kann man mit den
>FPGA-internen DLL's/PLL's und einer entsprechend sauberen Clockverlegung auf
>dem Board optimieren.
[...]

>Das
>Problem des Clockskews steigt mit der Anzahl der beteiligten Bausteine an
>der Clock, d.h FPGA und 1 DDRAM ist die sicherste Lösung.
Oder man setzt Bausteine wie den CY2308 ein, CPU/FPGA Takt
und Referenz-Rückkopplung rein und 8 x PLL Takt raus.
Das ist sozusagen der "74HC244" des synchronen DRAMs.

Wenn der Baustein nahe am xDRAM sitzt und die Rückführung in
etwa die gleiche Länge wie die Clock-Zuführung hat, herrscht Ruhe.

0 new messages