FPGA Ladelogik

#2755775
Lesenswert?

Hallo,

kann mir mal jemand erklären wie ein FPGA zu seiner Konfiguration kommt?
Ich hab hier ein Board dass sich die Konfig aus nem SPI Flash holen 
müsste. Tut sie aber nicht und ich habe die Befürchtung der Grund dafür 
liegt darin dass das SPI Flash keinen Takt bekommt.

Wie läuft sowas prinzipiell ab?
#2755976
Lesenswert?

Wolfgang M. schrieb:
> FPGA ist der XCS3502E.

Aha, also XC3S250E :)

> So wie ich das im Datenblatt sehe müssten bei dem Board die Modepins
> MO auf 3.3V
> M1 auf Low
> und M2 auf 3.3V stehen.

Nee, Master SPI Mode hat die M(2:0) = 001

> Dann müsste Prog_B am FPGA PIN doch auf Low gehen damit dieser sich die
> Config aus dem SPI Flash zieht oder?


PROG_B ist ein Eingang. Lässt du den unbeschaltet, startet das FPGA die 
Config, wenn intern alles fertig ist. Ansonsten kannst du mit einem low 
am PROG_B ein Re-Config auslösen oder die Config verzögern, z.B. durch 
einen Reset-Generator.

Lies mal den Configuration User Guide UG332: 
www.xilinx.com/support/documentation/user_guides/ug332.pdf
#2756353
Lesenswert?

Hab nochmal mit dem Oszi nachgemessen.

Problem am FPGA ist dass INIT_B nicht auf high geht, der FPGA also 
seinen Config nicht fertig lädt und startet.

PROG_B ist so lange high wie ich die Reset Taste gedrückt halte.

Jetzt habe ich mal ein wenig ins DB eingelesen.

DONE ist mit dem PIC verbunden und aus irgendwelchen diversen Gründen 
bleibt die Datenleitung immer auf Low. Eigentlich sollte diese doch auf 
High gehen sofern alle Daten vom FPGA geladen wurden.

Im Datenblatt steht dass so lange DONE auf Low ist der Startup Prozess 
verhindert wird.

Ich vermute mal dass es also am PIC liegt der die DONE Leitung nicht auf 
high zieht, kann dass sein?

Während des Config Prozesses scheint der FPGA sich Daten zu holen, da 
ich den CCLK Ausgang mal auf's Oszi gelegt habe und ich da nen Takt mit 
1,25MHZ sehen konnte...

FPGA ist wie folgt konfiguriert:
M0 = 1
M1 = 0
M2 = 0

VS0=1
VS1=1
VS2=1
#2756397
Lesenswert?

Hm, jetzt bin ich mir unsicher ob der DONE Pin vom FPGA gesetzt wird 
sobald er die Konfig geladen hat, oder vom PIC sobald er die Konfig zum 
FPGA geschoben hat.

EIgentlich sollte es doch laut Moding PINs vom FPGA gezogen werden oder, 
und somit der DONE Pin vom FPGA gesetzt werden. Ich glaube dass der PIC 
das Ding überwacht und je nachdem die LED ACT treibt.

Wenn du sagst dass die Xilinx Umgebung die Einstellmöglichkeit bietet 
DONE auf HIGH zu treiben, heisst das dass der FPGA das selber macht, 
sobald er fertig mit dem ziehen der Konfig ist?

Woher weiss der FPGA ob er fertig ist? Stellt man die Größe des Flash in 
der Umgebung beim Synthetisieren ein?

Ah. Sehe grade in der Board Doku. Der FPGA zieht die Konfig.
#2756404
Lesenswert?

Wolfgang M. schrieb:
> PROG_B ist so lange high wie ich die Reset Taste gedrückt halte.

Dein Satz ist nicht ganz verständlich. Mit einem Low-Signal auf der 
PROG_B-Leitung startet man den Initialisierungsprozeß. Im Normalfall ist 
PROG_B High.

Vermutung von mir, da ich die Schaltung nicht kenne:
Wenn du die Reset-Taste betätigst, sollte PROG_B auf Low gehen und die 
Konfig-Daten einlesen.


> Jetzt habe ich mal ein wenig ins DB eingelesen.
>
> DONE ist mit dem PIC verbunden und aus irgendwelchen diversen Gründen
> bleibt die Datenleitung immer auf Low. Eigentlich sollte diese doch auf
> High gehen sofern alle Daten vom FPGA geladen wurden.
>
> Im Datenblatt steht dass so lange DONE auf Low ist der Startup Prozess
> verhindert wird.
>
> Ich vermute mal dass es also am PIC liegt der die DONE Leitung nicht auf
> high zieht, kann dass sein?

Der PIC ist nicht für die DONE Leitung verantwortlich, sondern der FPGA. 
Wenn der FPGA die DONE-Leitung nicht auf High setzt, hat er z.B. kein 
gültiges Konfigurations-File geladen/gefunden.

Gruß,
Thomas

EDIT: Da war ich wohl etwas langsam beim tippen...
#2756410
Lesenswert?

Hm,

jetzt hab ich ne Idee. Die Software des PIC kann ich zum schreiben / 
sowie zum auslesen des SPI Flashs hernehmen. Mal sehen ob die gleichen 
Daten gelesen werden wie geschrieben. Vielleicht ist das ja die 
Ursache...

Was hab ich sonst noch an Möglichkeiten festzustellen ob's ein FPGA 
Problem ist, ob der Flash hinüber ist, oder ob ich schlicht und einfach 
die falsche Software in den Flash geladen habe?
Gast #2756416
Lesenswert?

Wolfgang M. schrieb:
> Hm, jetzt bin ich mir unsicher ob der DONE Pin vom FPGA gesetzt wird
>
> sobald er die Konfig geladen hat, oder vom PIC sobald er die Konfig zum
>
> FPGA geschoben hat.

Leider bezeichnet Xilinx den Pin funktionslogisch falsch! In den 
Referenz-SCH wird der immer wie lo active verdrahtet, was dazu führt, 
dass die LED aus geht.

Drive Done high braucht man nur, wenn man keinen pullup hat, bzw in 
einer längeren Kette mit mehreren arbeitet.

Im Grunde sollte es so sein, dass die Leitung done auf VDD gepullt ist 
und von jedem einzelnen FPGA runtergezogen wird, das noch unkonfiguriert 
ist. Sobald die Config steht, geht der Pin auf TRistate und überlässt 
den anderen die Entscheidung.
#2756425
Lesenswert?

Da liegt der Hund begraben. Der FPGA sagt nicht dass er fertig wird.
Hm. Kann das jetzt ein FPGA Problem sein, oder ein Flash Problem? Gibts 
da irgendwelche Pins die man abgreifen kann um zu sehen dass der FPGA 
noch nach nem validen Konfig File sucht.

Was macht der FPGA wenn er keine gültige Konfig vorfindet? Loopt er dann 
in ner Endlosschleife und sucht gar nichts mehr? oder sucht er permanent 
weiter?

Und woran sehe ich überhaupt dass ne Konfig gültig ist?

Hab hier ein Bin File und ein MCS File vorliegen. Müssten doch beide 
funktionieren oder?
#2756461
Lesenswert?

Jetzt würds mich aber trotzdem noch interessieren ob der FPGA 
kontinuierlich pollt oder nicht oder ob er sich "aufhängt"

Ausserdem scheinst noch ne ziemlich unzuverlässige Hardware zu sein. In 
2 von 4 Versuchen klappts, in den anderen nicht.

Deswegen kam das Board wohl auch durch die HW checks. Muss es wohl 
austauschen lassen...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren