Forum: FPGA, VHDL & Co. Shared eMMC (FPGA als zweiter Host)


von P. K. (pek)


Lesenswert?

Hallo zusammen

Ich möchte mein eMMC Flash, welches tipp-topp am S0-Port meines FX3S 
läuft, nun auch vom FPGA aus ansteuern (nicht funktional, sondern für 
den Boundary-Scan, welchen FX3 nicht bietet).

Die Leitungen sind dan im Y, was von der Signalintegrität zumindest 
durchdacht sein muss. Gibt es dazu Literatur, Links, Layout-Guidelines?

Hat das von Euch schon jemand mal gemacht? Dos and Don'ts?

Merci 6 Gruss
Peter

von Bernhard (Gast)


Lesenswert?

Ich würde die eMMC an den FPGA hängen und den FX3S an den FPGA.
Damit kann der FPGA auf die eMMC zugreifen wenn die CPU das nicht tut 
(und diese ggf verzögern oder anhalten)

von P. K. (pek)


Lesenswert?

Bernhard schrieb:
> Ich würde die eMMC an den FPGA hängen und den FX3S an den FPGA.

Das geht nicht. der FX3 bootet aus dem eMMC, das FPGA wird später vom 
FX3 über USB und SlaveFifo I/F konfiguriert.

Wie erwähnt will ich vom FPGA auch nicht funktional auf das eMMC 
zugreifen, sondern es geht um Produktionstestbarkeit des eMMC.

von Hmmhmm (Gast)


Lesenswert?

P. K. schrieb:
> Bernhard schrieb:
>> Ich würde die eMMC an den FPGA hängen und den FX3S an den FPGA.
>
> Das geht nicht. der FX3 bootet aus dem eMMC, das FPGA wird später vom
> FX3 über USB und SlaveFifo I/F konfiguriert.
>
> Wie erwähnt will ich vom FPGA auch nicht funktional auf das eMMC
> zugreifen, sondern es geht um Produktionstestbarkeit des eMMC.

Ich halte das für nicht emfehlenswert.
Du musst nämlich sicherstellen:
- Welchen Status die EMMC-Ports des Prozessors haben
- Welchen die des FPGAs
Und das auch im und direkt nach dem Reset. Du muss genau wissen, was der 
EMMC-Block des Prozessors unter allen Betriebsbedingungen tut. Natürlich 
das gleiche für das FPGA.

Wenn du das nicht kannst, treiben die Ports von FPGA und Prozessor dann 
gegeneinander - zumindest wird das die Funktion behindern oder das EMMC 
irgendwie beeintraächtigen (undefinierte Pegel). Oder die Hardware 
zwerstören.
Das könnte man mit Serienwiderstände unterbinden, aber die 
Geschwindigkeit der Schnittstelle verbietet das eher.

Besser wäre eine Software auf deinem Prozessor. Ob das EMMC geht, 
erkennt man eh beim Programmieren des Images, oder?

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


Lesenswert?

P. K. schrieb:
> Wie erwähnt will ich vom FPGA auch nicht funktional auf das eMMC
> zugreifen, sondern es geht um Produktionstestbarkeit des eMMC.
Da würde ich es bestenfalls so probieren:
1
    µC o-----------------o---------------o eMMC
2
                        FPGA

Oder schlimmstenfalls nur mit ganz kurzen Stubs (<10mm):
1
    µC o-----------------.---------------o eMMC
2
                         |
3
                         o
4
                        FPGA

Wenn das FPGA dann die Eingägne hochohmig schaltet, sollte sich die 
Busbeeinflussung in Grenzen halten.

von Hmmhmm (Gast)


Lesenswert?

Lothar M. schrieb:
> Wenn das FPGA dann die Eingägne hochohmig schaltet, sollte sich die
> Busbeeinflussung in Grenzen halten.

Tja, nun, zum Beispiel ist die clockleitung per Default ein DO am 
Prozessor.

Da müsste man schon sicherstellen, dass das im Reset oder was auch immer 
auch NICHT der Fall ist. Wie sollte man sonst per boundary-Scan einen 
Takt ausgeben können, wenn der Prozessor dagegenhält?
Der ist ja nicht Boundary-Scan fähig, daher sind dessen internen Blöcke 
untrennbar kontaktiert.

Der Bus ist einfach so nicht für zwei Master gedacht. Eigentlich nicht 
einmal für zwei Slaves, mangels select.

Ich würde vermuten, dass man sich mit einem derartigen Test viele 
unnötige Probleme einhandelt. Daher wäre mein Vorschlag, das eher in 
einen anderen Testschritt zu verlagern. Oder eine Testsoftware auf dem 
Prozessor zu verwenden.

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


Lesenswert?

Hmmhmm schrieb:
> Tja, nun, zum Beispiel ist die clockleitung per Default ein DO am
> Prozessor.
Auch wenn der Prozessor im Reset ist?

von P. K. (pek)


Lesenswert?

Lothar M. schrieb:
> Da würde ich es bestenfalls so probieren:
>   µC o-----------------o---------------o eMMC
>                         FPGA

Schaut bei mir eher so aus:
1
   µC o-----o---------------------------o FPGA
2
           eMMC

Nach all den Antworten, und dem Risiko dass ich die Signal-Integrity 
nicht auf die Reihe kriege, werde ich diese Idee wohl bleiben lassen und 
den TE mit einem Funktionstest belasten.

Merci sowieso!

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.