Forum: FPGA, VHDL & Co. Bildsensor an PCI Express


von Christian (Gast)


Lesenswert?

Hallo,

mit den neuen Intel Atom Boards die mittlerweile auf den Markt kommen, 
wird es ja immer interessanter einen Bildsensor mit PCI Express zu 
verbinden. Das dürfe die einzige Schnittstelle sein, die relativ frei 
von Latenzzeiten ist. Außerdem gibt es ja mittlerweile schon einige 
Sensoren, die schneller als USB sind.

Ich habe schon ein wenig herumgesucht und befürchte, dass PCIe doch 
recht kompliziert ist.

Ich hatte gehofft, dass es schon günstige Dev Boards PCIe Karten mit 
einem einzigen FPGA gibt, mit denen sich ein einfaches Interface basteln 
lässt. Allerdings sind auf diesen Boards immernoch jede Menge andere 
Chips. Unter Einfach hatte ich etwas anderes erhofft.

Kennt jemand eine verhältnismassig einfache und kompakte Lösung einen 
Sensor mit den neuen Intel Atom Modulen zu verbinden? Eine fertige 
Framegrabberkarte finde ich zu groß und zu teuer.

Ich freue mich schon auf Eure Antworten.

Gruß
Christian

von Andreas (Gast)


Lesenswert?

Hallo Christian,
PCIe auf einem FPGA ist alles andere als trivial!

Es gibt mehrere Lösungsansätze:

1) HIGHEND FPGA (Virtex oder Stratix) mit Highspeedschnittstelle und Ip 
in FPGA-Fabric
 - sehr aufwendig, timingkritisch oder Teuer (Lizenskosten > $10000), 
relativ hoher Bauteilpreis ( High-END FPGA )
2) HIGHEND FPGA mit Highspeedschnittstelle und IP in Hardmakro
 - trotzdem noch mässig aufwendig, hoher Bauteilpreis
3) LOW Cost FPGA ( Cyclone, Spartan) mit Companion Chip ( NXP oder TI )
 - Aufwand ähnlich wie Lösung 1 da alle IP und Protokoll im FPGA 
notwendig ist, aber Verlagerung der Highspeedschnittstelle in externen ( 
ser/par ) Wandler

4) Das wäre die Lösung welche ich Dir mal ans Herz legen würde und bei 
kleinen Stückzahlen oder im Musterbereich die günstigste und 
konvortabelste Lösung darstellt:
Schau dich mal bei Gennum um, dort gibt es zwei Chips:
GN4124 ( 4 Lanes ) oder GN4121 ( 1 Lane ).
Bei denen läuft ein Grossteil des Protokolls in deren Chips, für den im 
FPGA notwendigen Teil gibt es kostenlose IP. Der FPGA kann von den Chips 
via PCIe gleich gebootet werden ( nett fürs entwickeln ) und es gibt ein 
Windriver basiertes Treiberframework.

Bei dem Teil war ich auch schon mal interessiert ein Low-Cost Evalboard 
zubauen und anzubieten, liess sich zeitlich aber bisher nicht 
realisieren.
Falls da Interesse besteht...

Gruss

Andreas

von Mathi (Gast)


Lesenswert?

Es gibt auch Low-cost FPGAs mit SerDes. Das sind die Lattice ECP2/M und 
der neue ECP3.
Der ECP2/M ist ein sehr guter Chip! Und um einiges günstiger als Stratix 
oder Virtex.
Es gibt ein extra PCI-Express Eval Board für den ECP2/M. Kostet 
allerdings fast 900$.

von Andreas (Gast)


Lesenswert?

Stimmt die Lattice habe ich ausser Acht gelassen.
Bei den von Dir erwähnten Familien musst Du aber ebenfalls IP entwickeln 
oder kostenpflichtig lizensieren.

als Alternative bei Lattice käme dann wiederum der SCP/M in Frage der 
ebenfalls PCIE-IP im Hardmakro enthällt.
Dieser ist im Vergleich zu den Stratix und Virtex vergleichweise 
preiswert. Es fehlen dem SCP leider Hardwaremultiplier welche man 
schmerzlich vermisst, wenn man mit dem Kamerabild noch etwas anstellen 
muss ( Gain, Gamma, colorspace conversion...).

Am meisten stört bei Lattice, das keine wirklich billigen Evalboards am 
Markt sind...

Gruss

Andreas

von Mathi (Gast)


Lesenswert?

> Stimmt die Lattice habe ich ausser Acht gelassen.
> Bei den von Dir erwähnten Familien musst Du aber ebenfalls IP entwickeln
> oder kostenpflichtig lizensieren.

Die braucht man die auch bei A und X.
Siehe Deine Lösung Nummer 1:
>> 1) HIGHEND FPGA (Virtex oder Stratix) mit Highspeedschnittstelle und Ip
>> in FPGA-Fabric

> als Alternative bei Lattice käme dann wiederum der SCP/M in Frage der
> ebenfalls PCIE-IP im Hardmakro enthällt.
> Dieser ist im Vergleich zu den Stratix und Virtex vergleichweise
> preiswert. Es fehlen dem SCP leider Hardwaremultiplier welche man
> schmerzlich vermisst, wenn man mit dem Kamerabild noch etwas anstellen
> muss ( Gain, Gamma, colorspace conversion...).

Der SC/M ist auch nicht für die digitale Signalverarbeitung gedacht. 
Sondern als Connectivity-Lösung.



> Am meisten stört bei Lattice, das keine wirklich billigen Evalboards am
> Markt sind...

Wenn Du damit Boards wie die Spartan 3 oder Cyclone Boards meinst, dann 
gebe ich Dir recht. Aber das ECP2/M PCI-Express Board ist mindestens 
300$ günstiger als das Xilinx board.

Zu den ECP Bausteinen noch:
Die haben nicht nur einfache Multiplizierer, sondern komplexe 
DSP-Blöcke. Sowas findet man nicht bei den anderen zum gleichen Preis.

Natürlich gibt es auch Nachteile bei den Bausteinen. Aber, meiner 
Meinung nach, überwiegen die Vorteile.

Ist aber - wie vieles - auch "glaubenssache" ;)

von SuperWilly (Gast)


Lesenswert?

>Natürlich gibt es auch Nachteile bei den Bausteinen. Aber, meiner
>Meinung nach, überwiegen die Vorteile.

Welche Nachteile meinst Du ?  ;O)



@Christian
Wie groß ist denn dein Budget ?

Gruß,
SuperWilly

von SuperWilly (Gast)


Lesenswert?

@Christian

Vielleicht wohnst du ja in der Nähe ;O)

http://www.latticesemi.com/documents/doc32382x28.pdf

von Mathi (Gast)


Lesenswert?

@SuperWilly:

die Signalintegrität der SerDes ist nicht so gut wie bei A und X.
Aber dafür haben die ECPs doch eingies zu einem guten Preis zu bieten ;)

von SuperWilly (Gast)


Lesenswert?

@Mathi

Ja, da gebe ich Dir Recht. Dafür gibts ja jetzt die ECP3-Bausteine.
Leider sind momentan nur die beiden größeren Bausteine verfügbar!

Aber der Abstand zwischen Ankündigung und Verfügbarkeit ist bei
Lattice deutlich geringer als bei Alternativ und Xtravagant. Dürfen uns
also freuen.

Gruß,
SuperWilly

von Christian (Gast)


Lesenswert?

Hallo,

immer wieder toll wie viele qualifizierte Antworten man hier bekommt. 
Vielen Dank!

1) Das Lattice Board schaut recht interessant aus. So wie ich das 
verstanden habe braucht es später nur den FPGA und ein bisschen 
Vogelfutter außenrum. 1000$ fürs DevBoard tun weh, wäre ich aber schon 
bereit zu investieren. Die Frage ist, welche anderen zusätzlichen 
Lizenzkosten noch hinzukommen. Das konnte ich der Homepage nicht 
entnehmen. Das Ansprechen des Bildsensors sollte der FPGA zusätzlich zum 
PCIe Interface ja locker schaffen.

2) Der GN4121 gefällt mir auch sehr gut. Im Prinzip könnte ich hierbei 
doch komplett auf einen FPGA verzichten und alles über den Localbus 
realisieren. Vielleicht ist eine CPLD dazwischen noch hilfreich. Kennt 
jemand hierfür ein DEMO Board? Gerne auch mit FPGA. Man muss sich das 
Leben ja nicht schwerer machen. Mich würde interessieren wieviel ich 
außen herum noch brauche. Typischerweise braucht es z.B. bei Bridges 
noch mindestens ein Config Eeprom.

3) Gibt es noch einen anderen Weg als PCIe? Was ist mit SATA. Könnte man 
nicht ein SATA kompatiblen Speicher simulieren und die Kommunikation 
über "Speicherzellenzugriffe" realisieren. Die Frage ist was das Bios zu 
einem solchen Gerät sagt und ob es überhaupt schon Erfahrungen in dieser 
Richtung gibt. Ich meine auf der Vision Messe 2007 einen asiatischen 
Hersteller gesehen zu haben, der eine einfache CMOS Kamera mit SATA 
Interface angeboten hat. Leider konnte er mir mangels englich recht 
wenig darüber erzählen. Heute finde ich den Hersteller leider nicht 
mehr.

Gruß Christian

von Christian (Gast)


Lesenswert?

Bei http://www.artray.co.jp gibts Industriekameras mit SATA Anschluss. 
Weiß jemand wie die das machen (Hard- und Software)?
Gruß Christian

von Patrick S. (abaddon1979)


Lesenswert?

Unsere neueste Karte hat einen Virtex-5 mit einem PCIe core von PLDA. 
Damit haben wir gute Erfahrungen gemacht.

von Christian (Gast)


Lesenswert?

Hmm, das hört sich alles recht teuer und kompliziert an.

Hat sich jemand schon mal die PCIe Local Bus bridges von Gennum (GN4124 
und GN4121) angeschaut.

Schaut recht interessant aus. Damit lässt sich z.B. ein Spartan3 direkt 
verbinden und sogar über pcie booten. Die Bridge ist dabei so 
selbständig, dass der PC auch bootet, wenn noch keine Firmware auf dem 
FPGA ist.

Devkit gibt es auch von Gennum, allerdings suche ich vergeblich nach 
jemanden, der diese Löschon schon erfolgreich einsetzt.

Gruß Christian

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Was heißt in diesem Zusammenhang bootet? Die Konfiguration auf den FPGA 
spielen? Oder "Bootet" der BC VON dem Spartan?

von Andreas (Gast)


Lesenswert?

Hallo Läubi,

Du kannst die Konfiguration des FPGA über den Gennum Chip einspielen ( 
soviel ich weiss, ist entsprechender Democode und Treiber seitens Gennum 
verfügbar).
Das hat den unbeschreiblichen Charme das Du die FPGA-Konfiguration 
on-the-fly wechseln kannst, etwas was nicht funktioniert wenn der FPGA 
selbst das PCIe Interface bedient (jedenfalls nicht in einem Standard-PC 
welcher nicht Hotplug fähigen PCIe kennt).

Gruss

Andreas

von Christian (Gast)


Lesenswert?

Hallo Andreas,

an einem Low Cost GN4124 Board hätte ich interesse. Eventuell könnten 
wir hier zusammenarbeiten.

Schreib mir mal wie ich Dich erreichen könnte.

Danke
Gruß Christian

von Christian (Gast)


Lesenswert?

Ich denke da an einen kleinen PCIe Adapter der sich mit einem Standard 
Spartan3 EvalBoard verbinden lässt.

Vielleicht auch nur ein Traum :-)

von Christian R. (supachris)


Lesenswert?

Hm, naja, ob der Spartan dann schnell genug für den Gennum ist? Ich hab 
mir mal die ganzen Unterlagen da gezogen, soweit ich es auf die Schnelle 
überblickt hab, hat der ein 200MHz DDR Interface für In und Out. Das 
könnte auf dem Spartan etwas haarig werden. Geht aber vielleicht auch 
langsamer zu fahren. Auf jeden Fall ein interessanter Chip, mir schwebt 
da auch schon ein Projekt vor. Allerdings mit Virtex 4 dann dran.

von Christian (Gast)


Lesenswert?

Gennum verwendet auf dem RDK Board für ~1000$ einen XC3S1400A
Gruß Christian

von Andreas (Gast)


Lesenswert?

Hallo Christian,

der Spartan3 sollte schnell genug sein. Zielsetzung waren die Low-Cost 
Serien.
Du kannst mit Spartan3 bis zu sechshundert und ein paar zerquetschte auf 
den IOs fahren. Da ist dann allerdings einiges an Erfahrung, 
Designdisziplin etc. notwendig.
Im Zusammenspiel mit dem Gennumm bekommst du die notwendige IP und 
Designrichtlinien für Taktsystem, Pin-Constraints geliefert.

ich werd mal schauen, ob ich heute abend an meine Userdaten hier im 
Forum rankomme, dann schreibe ich einen Beitrag und Du kannst mich dann 
übers Board erreichen.
Wäre schön, wenn Du dich als Early-Adopter zur Verfügung stellen 
würdest.
Ich würde bei Interesse tatkräftig mithelfen,das Boarddesign und Layout 
vorantreiben...

Das mit dem Standardevalboard wird schwierig:
EVAL Boards mit wirklich gut layouteten LVDS Channels sind rar und teils 
teuer.
Die Stecker, Positionen sind nicht normiert.
Die mechanische Anbindung von PCI-Einsteckkarte und EVAL-Board wird 
schwierig.

Aber ich würd da gerne drüber bei Bedarf chatten...

Gruß

Andreas

von Christian (Gast)


Lesenswert?

Hallo Andreas,

ja ein Chat macht sicher Sinn. Zwischen dem GN4124 und dem Spartan habe 
ich doch keine LVDS Leitungen, oder? Das mit dem Evalboard war ja auch 
nur ein Traum.

Bis Bald,

Gruß Christian

von Andreas B. (Firma: www.collion.de) (bergy) Benutzerseite


Lesenswert?

Hallo Christian,
hatte gestern abend nicht mehr wie versprochen antworten können.

Christian wrote:


>Zwischen dem GN4124 und dem Spartan habde ich doch keine LVDS Leitungen

Das wär aber der einzige praktikable Weg zum Anschluß an ein 
Xilinx-Evalboard, die unidirektionalen Signale sind zumeist nicht 
längenmäßig aufeinander abgeglichen und die Verbindung müsste dann noch 
von einem Board zum Anderen geschlagen werden.

Ich befürchte, an einem Evalboard inkl. FPGA wird man nicht drumrum 
kommen. So teuer wie das RDK selbst muss es dann allerdings nicht 
werden.

Gruß

Andreas

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.