www.mikrocontroller.net

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


Autor: zachso (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

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

Autor: zachso (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Oli (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: zachso (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: zachso (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.