Forum: FPGA, VHDL & Co. Verbindung 2er FPGA


von zachso (Gast)


Lesenswert?

Hallo!
Ich stehe gerade vor dem problem dass ich hier ein Board habe mit 2 
Spartan3E drauf: der erste ist ein 250 und der zweite ein 1200. Der 250 
soll eine verbindung zu einem PCI-Bus herstellen und die sozusagen 
weiterleiten an den 1200, allerdings moechte ich dass der 250 so viele 
aufgaben wie irgendmoeglich erledigt. Der geschwindigkeitsverlusst 
sollte, soweit moeglich, nicht zu spueren sein. Die FPGAs sind auf dem 
board sehr nah bei einander (ca. 2cm abstand). Wie wuerdet ihr das 
machen? wenn ich den schaltplan richtig interpretiere habe ich ungefaehr 
20 io-pins als verbindung die ich benutzen kann. die frage ist nun: wie 
mache ich das am besten? es waere schon nicht schlecht wenn ich darueber 
die datenmenge von 33MHz PCI bekomme, das sind also 133MB/s brutto.
theoretisch waere es wohl recht gut da wieder pci zur verbindung zu 
nutzen, nur dann waere der 250er ja komplett sinnlos, ich moechte am 
liebsten dass ich einfach in den 250er ne art fifo habe und da vom 
1200er einfach immer reinschreibe. Meine frage ist jetzt nur: hat sowas 
schonmal jemand gemacht? was fuer schwierigkeiten gibts dabei? worauf 
ist zu achten?
kann man zb. ein 16-bit parallelen bus nehmen, die restlichen 4 signale 
als steuerleitungen und dann einfach immer reinpushen?

so viele fragen.. :)
zachso

von Duke Scarring (Gast)


Lesenswert?

Das Stichwort lautet: asynchrone FIFOs
Hat der Spartan3E schon SERDES-Blöcke? (Hmm, die scheint es nur beim 
Virtex zu geben...) Du könntest aber die DDR-IOs nutzen.

Duke

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Hat der Spartan3E schon SERDES-Blöcke?
Nein, hatter nich.. :-(

von zachso (Gast)


Lesenswert?

das Board ist ein vorgefertigtes, ich weiss jetzt aus dem kopf nicht 
welche Pins da verbunden sind, aber DDR ist auf jeden fall belegt (da 
haengt ein ddr2-chip dran).

was vielleicht noch zu erwaehnen waere: die beiden FPGA bekommen den 
gleichen takt


Zachso

von Oli (Gast)


Lesenswert?

Wofür SERDES, wenn man parallel bauen kann????

>20 io-pins
Ok, das sind wenigstens 30-50MHz x 20 unidirektional mit nur einem Takt 
Latenz.

>Der geschwindigkeitsverlusst sollte,
Welche Geschwindigkeit?

von zachso (Gast)


Lesenswert?

Oli schrieb:
>>Der geschwindigkeitsverlusst sollte,
> Welche Geschwindigkeit?

na ja, der geschwindigkeitsverlust zum PCI mit 33MHz (ganeuer gesagt ist 
es Cardbus) (das am andern ende des 250er haengt)

von Andreas (Gast)


Lesenswert?

zachso schrieb:
> na ja, der geschwindigkeitsverlust zum PCI mit 33MHz (ganeuer gesagt ist
>
> es Cardbus) (das am andern ende des 250er haengt)

Der real erzielbare Durchsatz duerfte so zwischen 60-100MB/Sec. liegen ( 
je nach Datenrichtung und Paketgroessen, Rechnerchipsatz, BIOS etc.)

wenns Dir gnuegt ware eine reine FIFO Schnittstelle ( meinetwegen auch 
mit mehr als 100MHz denkbar). Und fuer Einstellungenn gegebenenfalls 
einen SPI Klingeldraht...

Gruss

Andreas

von zachso (Gast)


Lesenswert?

also nur mal damit ich das jetzt kapiere: Einstellungen soll ich ueber 
SPI schicken, und die eigentlichen Daten dann ueber die parallele wobei 
die in den beiden FPGAs in ein FIFO schreibt? hoert sich eigentlich ganz 
sinnvoll an, nur wie wuerde man das mit der Paritaet machen? einfach 
eine gerade/ungerade paritaet bilden und mit uebertragen, oder doch 
lieber eine crc-variante und dann abwechselnd parity/datenphase (was ja 
gleich mal zur halbierung der nettodatenrate fuehren wuerde).


ciao,
arne

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.