Forum: FPGA, VHDL & Co. Xilinx ZYNQ - Linux auf mipi Display


von M. M. (blackcow)


Lesenswert?

Ich will ein Messgerät bauen. Dazu brauche ich unter anderem einen FPGA. 
Außerdem soll das Gerät ein Graphikdisplay (min. 800x640) zur Anzeige 
haben und auch per Ethernet erreichbar sein. Ich bin zu dem Entschluss 
gekommen mit einem Xilinx ZYNQ SoC auf dem integrierten ARM Linux zum 
laufen zu bringen.

Der günstigste ZYNQ, den ich finden konnte, gibt es auf DigiKey für 40€. 
Das ist ein XC7Z007S-1CLG225C. Das Ganze soll mit der kostenlosen 
WebPack IDE synthetisiert werden. Jetzt hab ich dazu ein paar Fragen.

1:
Der Chip wird von WebPack unterstützt und auch ein mipi-IP-Core steht 
zur Verfügung. Im Datenblatt 
(http://www.xilinx.com/support/documentation/data_sheets/ds190-Zynq-7000-Overview.pdf) 
steht das aber kein PHY dafür eingebaut ist. Die HP Pins gibt es nicht 
(Seite 4, Table 2). Das heißt ich muss da noch ein extra Umsetzter IC 
dranklatschen um ein Display betreiben zu können?

2:
Auf Seite 6 ist ein Übersichtschema. Da sieht man das das Memory 
Interface auch über die HP Pins an die Außenwelt angebunden wird. Heißt 
das, dass ich bei meinen Chip einen DDR3 RAM gar nicht direkt 
anschließen kann?

3:
Auf dem SoC befindet sich nur ein Cortex-A9 und keine GPU. Die Graphik 
müsste folglich der Prozessor selbst berechnen. Ist der dafür überhaupt 
schnell genug (vergleichbar mit der Leistung eines RaspberryPi z.B.)? 
Bzw. gibt es da fertige Treiber für Linux?

von Martin S. (strubi)


Lesenswert?

Moin,

da ich ja nicht weiss, was dein Gerät alles können soll, frage ich nur 
mal blöd:
- Warum den Overhead mit Linux und MIPI?
- Wenn unbedingt Linux, warum dann nicht eine Zweichip-Lösung aus 
Standard-SOM und einem Billig-FPGA?

Was die GPU angeht: Wenn man Animationen und swishey-swipey-Scrolling a 
la Android haben will, braucht man die natürlich. Ansonsten ist der A9 
für normale QT-Touch-GUIs längst ausreichend.

MIPI kriegst du typischerweise treiberfrei an die I/Os, das RAM ebenso. 
Gibt doch bestimmt ein Refdesign.

von petrusilius (Gast)


Lesenswert?

Hallo, wenn du MIPI an den FPGA bringen willst, musst du ein paar Dinge 
für das PHY beachten:
https://www.xilinx.com/support/documentation/application_notes/xapp894-d-phy-solutions.pdf

Das Xilinx MIPI Subsystem kannst du für ein paar Monate evaluieren und 
musst es dann kaufen oder aus den D-PHY IPs (die sind gratis) selbst 
bauen.

Einen DDR3-RAM kannst du selbstverständlich an den Zynq anschließen, der 
müsste sogar einen Hardware DDR-Controller im Processing System haben.

von M. M. (blackcow)


Lesenswert?

Martin S. schrieb:
> - Warum den Overhead mit Linux und MIPI?
Wenn Linux erst mal läuft, bin ich halt sehr flexibel. 
Netzwerkanbindung, Filesystem usw. ist dann einfach Konfigurierbar. 
Außerdem kann ich dann QT für die GUI verwenden.
> - Wenn unbedingt Linux, warum dann nicht eine Zweichip-Lösung aus
> Standard-SOM und einem Billig-FPGA?
Hab ich auch schon überlegt. Allerdings kostet ein kleiner Cyclone oder 
Spartan7 eben auch >10€. Ein zusätzlicher ARM kostet auch so um die 20€. 
Andere FPGA Hersteller hab ich da nicht so auf dem Schirm und 
ehrlichgesagt will ich gern bei Xilinx bleiben. Und in dem ZYNQ ist halt 
alles schon integriert.

> Was die GPU angeht: Wenn man Animationen und swishey-swipey-Scrolling a
> la Android haben will, braucht man die natürlich. Ansonsten ist der A9
> für normale QT-Touch-GUIs längst ausreichend.
Ah, sehr schön. Das wollte ich hören :-)

> MIPI kriegst du typischerweise treiberfrei an die I/Os, das RAM ebenso.
Was hat das dann mit dem D-PHY auf sich?

petrusilius schrieb:
> Hallo, wenn du MIPI an den FPGA bringen willst, musst du ein paar Dinge
> für das PHY beachten:
> 
https://www.xilinx.com/support/documentation/application_notes/xapp894-d-phy-solutions.pdf
Steht vermutlich da drin. Danke! Werd ich mir mal zu Gemüte führen.

von Martin S. (strubi)


Lesenswert?

M. M. schrieb:
> Martin S. schrieb:
>> - Warum den Overhead mit Linux und MIPI?
> Wenn Linux erst mal läuft, bin ich halt sehr flexibel.
> Netzwerkanbindung, Filesystem usw. ist dann einfach Konfigurierbar.
> Außerdem kann ich dann QT für die GUI verwenden.

Sehr nachvollziehbar. Solange keiner die Bootzeiten bemängelt :-)
Weiss diesbezüglich nicht, wie inzwischen das Xilinx-BSP handhabbar ist, 
um die Bootzeit auf akzeptable Zeiten zu kriegen.

>> - Wenn unbedingt Linux, warum dann nicht eine Zweichip-Lösung aus
>> Standard-SOM und einem Billig-FPGA?
> Hab ich auch schon überlegt. Allerdings kostet ein kleiner Cyclone oder
> Spartan7 eben auch >10€. Ein zusätzlicher ARM kostet auch so um die 20€.
> Andere FPGA Hersteller hab ich da nicht so auf dem Schirm und
> ehrlichgesagt will ich gern bei Xilinx bleiben. Und in dem ZYNQ ist halt
> alles schon integriert.
>

Aber du musst dich halt mit Bussen und allenfalls HW-Treibern 
rumschlagen...
So als Slave-FPGA fand ich die MachXO2 oder XO3 sehr gut, da dürftest du 
bei den Distis auch anständige Preise um 4$ erhaschen. Der Umstieg von 
Xilinx auf Lattice ist ein kleiner, und deren Software ist unter Linux 
inzwischen auch etwas brauchbar, nur die Lizenzierungsprozedur nervt ab 
und an. Bei Lattice ist der Support allerdings eher dürftig, wenn man 
nicht grade in der "ich mach euch Umsatz"-Liga spielt.

>
>> MIPI kriegst du typischerweise treiberfrei an die I/Os, das RAM ebenso.
> Was hat das dann mit dem D-PHY auf sich?
>

Das ist ja nur die Spec der differentiellen Übertragung mit hoher 
Bandbreite. Für die MachXO2 gibt's da auch fertige Bridges...
Musst das Zeug halt etwas schlau layouten, das steht vermutlich in den 
Appnotes von Xilinx auch drin.

von Timmo H. (masterfx)


Lesenswert?

M. M. schrieb:
> 3:
> Auf dem SoC befindet sich nur ein Cortex-A9 und keine GPU. Die Graphik
> müsste folglich der Prozessor selbst berechnen. Ist der dafür überhaupt
> schnell genug (vergleichbar mit der Leistung eines RaspberryPi z.B.)?
> Bzw. gibt es da fertige Treiber für Linux?
Es ist nicht so performant wie ein raspberry, aber brauchbar.  Und ha 
wenn du dass über den vdma ip core implementierst (wie im digilent zybo 
design, nur geht's dort halt per HDMI weiter. Ubuntu mit lxde ist auf 
jeden Fall benutzbar.

Martin S. schrieb:
> Sehr nachvollziehbar. Solange keiner die Bootzeiten bemängelt :-)
> Weiss diesbezüglich nicht, wie inzwischen das Xilinx-BSP handhabbar ist,
> um die Bootzeit auf akzeptable Zeiten zu kriegen.
Also das blanke petalinux bootet bei mir in ca. 3-5 Sekunden von SD 
Karte. Das Ubuntu/Linaro braucht etwa 10-15 Sekunden

: Bearbeitet durch User
von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

M. M. schrieb:
> Was hat das dann mit dem D-PHY auf sich?

Die oben verlinkte XAPP894 zeigt zwei Lösungen auf:

1.) die Compliant Solution
2.) die Compatible Solution

Bei der ersten erfüllst du MIPI D-PHY voll nach Standard, bei der 
zweiten bekommst du MIPI zum laufen, musst dich halt um Compliance 
selbst kümmern. Dafür wird bei ersterer ein sauteurer Chip eingesetzt 
(ich weiß die Preise gerade nicht mehr, der war aber wenn ich mich 
richtig erinnere genauso teuer wie ein kleiner Xilinx FPGA) und bei 
zweiteren ein kleines Widerstandsnetzwerk.

Martin S. schrieb:
> So als Slave-FPGA fand ich die MachXO2 oder XO3 sehr gut, da dürftest du
> bei den Distis auch anständige Preise um 4$ erhaschen. Der Umstieg von
> Xilinx auf Lattice ist ein kleiner, und deren Software ist unter Linux
> inzwischen auch etwas brauchbar, nur die Lizenzierungsprozedur nervt ab
> und an. Bei Lattice ist der Support allerdings eher dürftig, wenn man
> nicht grade in der "ich mach euch Umsatz"-Liga spielt.

Ich kann da nur die Crosslinks von Lattice empfehlen. Superkleine und 
günstige Teile, MIPI D-PHY als Hard-IP und ich habe mit dem Lattice 
Support sehr positive Erfahrungen gemacht. Erst vor ein paar Wochen habe 
ich für ein MIPI Projekt einen Bug im IP Generator gemeldet und ca. zwei 
Wochen später hatte ich eine Preview Version zur Hand, die tatsächlich 
das Problem gelöst hat. Von Xilinx bin ich sowas nicht gewohnt, der 
Webcase Support ist für die kleinen eingestellt worden. Bei Lattice kann 
man wirklich noch Support Tickets schreiben und bekommt kompetente 
Support Leute die sich auch mit den zugehörigen Entwicklern austauschen.

von fpga frage (Gast)


Lesenswert?

Wie sieht es bei Lattice mit der IDE aus, gibt es da was brauchbares und 
kostenloses (preiswertes)?

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

fpga frage schrieb:
> Wie sieht es bei Lattice mit der IDE aus, gibt es da was brauchbares und
> kostenloses (preiswertes)?

Also Lattice Diamond ist umsonst. Finde die IDE ganz ok, aber jetzt 
nicht wirklich der Bringer. Stört mich aber nicht weiter, da ich zur 
Entwicklung immer Sigasi verwende und die Build Prozesse mit TCL 
Skripten oder Makefiles starte.

Was bei Lattice Diamond aber ein dickes Minus ist, ist dass nur die 
Windows Version mit dem Aldec HDL Simulator ausgeliefert wird. Für Linux 
muss man sich da anderweitig behelfen. Was mir allerdings auch egal ist, 
da ich eh meistens mit Questasim arbeite. ;-)

Super ist, dass die ganzen MIPI IPs umsonst sind. Gerade für kleine 
Stückzahlen ist das super interessant, da tun die paar Dollar pro Chip 
nicht wirklich weh. Mein Tipp: Mit dem Crosslink MasterLink Board 
einfach mal rumspielen.

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.