Forum: FPGA, VHDL & Co. Problem mit Artix 7


von T.U.Darmstadt (Gast)


Lesenswert?

Ich verwende ISE in der aktuellen Version, um ein vorhandenes (und 
komplett funktionierendes!) Design auf der Basis eines Spartan 6 LX 75 
auf einen Artix zu portieren und muss feststellen, dass praktisch nichts 
funktioniert. Die Cores sind alle konvertiert und Signale angepasst, das 
UCF dreimal gegengecheckt und die Simulation läuft wie zuvor auch.

Es tut sich aber nichts. Die Ausgänge sind tot. Der Chip ist ok, weil 
ein manuelles Testdesign komplett funktioniert.

Hat jemand eine Idee, wie man da rangehen kann?
Die Ingenieure in der Abteilung sind auch ratlos.

von T.U.Darmstadt (Gast)


Lesenswert?

Vielleicht sollte man noch hinzusetzen, dass wir hier noch kein 
ChipScope haben. Ich habe es aber bestellen lassen, um dem Problem 
beizukommen.

Mein Ansatz ist momentan der, dass die PLLs nicht laufen und im Reset 
hängen oder sonst irgendwie die HW sich anders verhält, als die 
Simulation, denn diese zeigt keine Auffälligkeiten, wie schon erwähnt.

Ich habe jetzt seit 10 Jahren mehr oder weniger Erfahrung mit FPGAs, 
aber sowas ist mir noch nicht passiert.

Gibt es irgendeinen bug mit dem Chip, der nicht dokumentiert ist?

Irgendwelche Sonderanforderungen mit dem Strombedrf oder der Config?

Der Conig_Done kommt wie erwartet.

von Christian R. (supachris)


Lesenswert?

Also ich hab keine direkten Bugs und Probleme mit dem Artix 7 bei mir. 
Hab auch ein Spartan 6 Design portiert. Eventuell hast du den Standby 
Pin nicht korrekt beschaltet und das ganze FPGA schläft? Ansonsten sind 
die MMCM sogar gutmütiger als die DCM_SP im Spartan 6, denn die brauchen 
nicht unbedingt einen externen Reset. Einfach den Clock-Stopped Ausgang 
auf den RST Eingang legen reicht da aus.
Bissl putzig ist die Reset- und Init-Geschichte der GTP Transceiver (Das 
ist ein wirklicher Bug), aber wenn man den Code vom Example Design 
benutzt, geht das auch. Vielleicht wartet dein Design auf ein Done vom 
GTP und du hast diesen großen Wrapper (*_init.vhd) aus dem Example 
Design nicht drin?

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

Thomas Ulrich schrieb:
> Vielleicht sollte man noch hinzusetzen, dass wir hier noch kein
> ChipScope haben. Ich habe es aber bestellen lassen, um dem Problem
> beizukommen.
>
> Mein Ansatz ist momentan der, dass die PLLs nicht laufen und im Reset
> hängen oder sonst irgendwie die HW sich anders verhält, als die
> Simulation, denn diese zeigt keine Auffälligkeiten, wie schon erwähnt.

Da lässt sich doch sicher ein Frequenzteiler einrichten und auf eine 
externe LED legen und dann sollte es blinken.
Die Frage lässt isch sicher schnell beantworten.

> Ich habe jetzt seit 10 Jahren mehr oder weniger Erfahrung mit FPGAs,
> aber sowas ist mir noch nicht passiert.
>
> Gibt es irgendeinen bug mit dem Chip, der nicht dokumentiert ist?

Nein, die ISE hat eine Macke. Wenn du eine Testbench mit in das Design 
einfügst, ist das ucf File an der Testbench (hat ja auch Endung vhd) 
dran.
Da du das Top File für den Fitter nimmst, ist das ucf File nicht aktiv.
Lösch alle Files, die sich über dein Top.vhdl File befinden aus deinem 
Design. Auch das UCF herausnehmen und nochmal das UCF file einbinden. 
Dann hängt ISE es richtig ein.

Du siest es auch an der Struckturdarstellung, wo das UCF File hängt.

Ich hatte mal gefittet.
Ging in auf der Hardware (allerdings Spartan6)
Dann Testbench geladen simuliert.
Wieder gefittet.
Ging nicht mehr die Hardware.
UCF File neu geladen.
Ging alles wieder.

von Christian R. (supachris)


Lesenswert?

René D. schrieb:
> Nein, die ISE hat eine Macke. Wenn du eine Testbench mit in das Design
> einfügst, ist das ucf File an der Testbench (hat ja auch Endung vhd)
> dran.

Aber nicht zwangsläufig. Ich hatte das auch mal, aber in letzte Zeit 
nicht mehr vorgekommen. Das kann man so pauschal nicht sagen.

von Duke Scarring (Gast)


Lesenswert?

Thomas Ulrich schrieb:
> Ich habe jetzt seit 10 Jahren mehr oder weniger Erfahrung mit FPGAs,
> aber sowas ist mir noch nicht passiert.
10 Jahre Erfahrung und noch kein Chipscope angefasst?
Aber einen Logicanalyzer oder ein Scope habt Ihr schon zur Verfügung?!?

Ansonsten wie schon geschrieben: Erstaml die Takte und die Resets 
prüfen.
LED kann ich zum Takt prüfen nicht empfehlen: Ich hatte schon eine LED, 
die bei 50 MHz 50/50 Takt nicht geleuchtet hat.

Duke

von FPGA-Vollprofi (Gast)


Lesenswert?

Duke Scarring schrieb:
> Thomas Ulrich schrieb:
>> Ich habe jetzt seit 10 Jahren mehr oder weniger Erfahrung mit FPGAs,
>> aber sowas ist mir noch nicht passiert.
> 10 Jahre Erfahrung und noch kein Chipscope angefasst?
Naja, das obergeniale Werkzeug ist ChipScope ja nun auch nicht.


> LED kann ich zum Takt prüfen nicht empfehlen: Ich hatte schon eine LED,
> die bei 50 MHz 50/50 Takt nicht geleuchtet hat.
Na SO macht man das ja auch nicht. Bitte runterteilen auf einige Hz. Bei 
50MHz ist die Frequenz so hoch, dass der Strom über die 
Raumladungskapazität abfliesst und sie gfs sogar zerstört.

von Edi M. (Gast)


Lesenswert?

Eine grundsätzliche Frage: Um welchen Artix handelt es sich?

von T.U.Darmstadt (Gast)


Lesenswert?

- im Süden nichts Neues: Der Chip tut immer noch keinen Schlag. Xilinx 
ist eingeschaltet.

- ich kenne ChipScope schon, nur die Firma hatte es noch nicht im 
Gebrauch. Das Paket kommt jetzt wohl nächste Woche.

- Es handelt sich um den 200er Chip. Von denen gibt es bestellmässig nur 
den einen. XC7A200T

von Fpgakuechle K. (Gast)


Lesenswert?

Thomas Ulrich schrieb:

> - ich kenne ChipScope schon, nur die Firma hatte es noch nicht im
> Gebrauch. Das Paket kommt jetzt wohl nächste Woche.

Paket für Chipscope? Für chipscope braucht es nur einen Lizencode, oder 
die Evalversion für 30? Tage. Und natürlich einen Xilinx-Programmer, den 
habt ihr doch im Hause? Oder etwa nicht? Wenn nicht, wie programmiert 
ihr den Artix?

von Zeitgeist (Gast)


Lesenswert?

Ein Projekt sofort komplett portieren ohne die grundsätzliche Hardware 
zuerst prüfen - da kann ich dir wirklich nur viel Spaß bei Fehlersuchen 
wünschen.

Stimmen alle Spannungen?
Läßt sich der FPGA überhaupt laden? Was sagen die Status-Bits in Impact?
Funktioniert ein Minimal-Design? (Frequenzteiler an LED, etc.)

Dann kann man sich mal ein Design mit einer PLL etc. überlegen und so 
weiter.


Leider kommen von dir auch zu wenig Infos, was du schon probiert hast 
und was nicht. Die Antwort mit der Glaskugel spar ich mir mal

Schöne Grüße

von Holger (Gast)


Lesenswert?

port map (
      Q => GmiiGTxClkxCO, -- 1-bit output data
      C0 => Clk125MxC, -- 1-bit clock input
      C1 => not Clk125MxC, -- 1-bit clock input
      CE => '1',   -- 1-bit clock enable input
      D0 => '0',   -- 1-bit data input (associated with C0)
      D1 => '1',   -- 1-bit data input (associated with C1)
      R => ResetxR,-- 1-bit reset input
      S => '0'     -- 1-bit set input
   );


So Kanidaten wie ResetxR ..GND

C1 => not Clk125MxC, -- 1-bit clock Input
 not_ticks  Feedback .
http://forums.xilinx.com/t5/Spartan-Family-FPGAs/driving-clock-on-IO/m-p/212829#M15751

Oder direkt da im x Forum schreiben & suchen.
Viel Erfolg.
Gruss Holger.

von Fpgakuechle K. (Gast)


Lesenswert?

Holger schrieb:
> port map (
>       Q => GmiiGTxClkxCO, -- 1-bit output data
>       C0 => Clk125MxC, -- 1-bit clock input
>       C1 => not Clk125MxC, -- 1-bit clock input
>       CE => '1',   -- 1-bit clock enable input
>       D0 => '0',   -- 1-bit data input (associated with C0)
>       D1 => '1',   -- 1-bit data input (associated with C1)
>       R => ResetxR,-- 1-bit reset input
>       S => '0'     -- 1-bit set input
>    );

??? Ist das das auf Artix portierte Design, das nicht läuft?
Oder hat sich dieser beitrag in den falschen threasd verirrt?

MfG

von Christian R. (supachris)


Lesenswert?

Nee, das hat Holger einfach aus dem Xilinx Forum kopiert. Wahrscheinlich 
wollte er nur was schreiben. Seine Postings vertehe ich auch manchmal 
nicht, da werden immer Buzzwords reinkopiert, ohne richtigen 
Zusammenhang zum eigentlichen Thema.

Nichtsdestotrotz ist die Fehlerbeschreibung sinnlos, "läuft nicht" ist 
kein Fehler. Als FPGA Designer sollte man in der Lage sein das Problem 
einzugrenzen.

: Bearbeitet durch User
von Fpgakuechle K. (Gast)


Lesenswert?

Thomas Ulrich schrieb:
> Der Conig_Done kommt wie erwartet.

Wann erwartet ihr das Done? Man kann man mit bitgen optionen einstellen, 
wann das DONE-Signal aktiviert werden soll. Beispielsweise vor oder nach 
dem LOCK der PLL. Ebenso kann man per bitgen festlegen, ob auf das LOCK 
gewartet werden soll, bevor der FPGA startet (FF, IO freigegeben). Stopp 
nach Fehlgeschlagener CRC Check lässt sich dort auch 
aktivieren/deaktiviern.


Siehe 
http://www.xilinx.com/support/documentation/sw_manuals/xilinx13_3/devref.pdf 
S.225 - 247

MfG,

von Holger (Gast)


Lesenswert?

Ich glaube da muss er sein Ref-Design mal sehr genau ansehen.
BUF, BUFG usw via UCF File was da drin ist.
Power Supply Management in High Availability Systems

Link: Hier wird das Power-up behandelt, sollte man sich mal ansehen.
http://www.youtube.com/watch?v=AXPJhNFe6bM&feature=c4-overview&list=UUitjOEmRnBEvfn6fbAUmNjg
reliability system design is getting reliable power.
Das Xilinx FPGA hat 7 Power-Rails,die in einer seq. gefahren werden.
Z.B Reset MCU kommt auch noch dazu.
INST DCM_INST STARTUP_WAIT = FALSE;

# Generated by Xilinx Architecture Wizard
# --- UCF Template Only ---
# Cut and paste these attributes into the project's UCF file, if desired
INST DCM_INST CLK_FEEDBACK = 1X;
INST DCM_INST CLKDV_DIVIDE = 2.0;
INST DCM_INST CLKFX_DIVIDE = 3;
INST DCM_INST CLKFX_MULTIPLY = 10;
INST DCM_INST CLKIN_DIVIDE_BY_2 = FALSE;
INST DCM_INST CLKIN_PERIOD = 16.667;
INST DCM_INST CLKOUT_PHASE_SHIFT = NONE;
INST DCM_INST DESKEW_ADJUST = SYSTEM_SYNCHRONOUS;
INST DCM_INST DFS_FREQUENCY_MODE = LOW;
INST DCM_INST DLL_FREQUENCY_MODE = LOW;
INST DCM_INST DUTY_CYCLE_CORRECTION = TRUE;
INST DCM_INST FACTORY_JF = 8080;
INST DCM_INST PHASE_SHIFT = 0;
INST DCM_INST STARTUP_WAIT = FALSE;

Gruss Holger.

von Christian R. (supachris)


Lesenswert?

Er hat ja geschrieben, dass ein "manuelles Testdesign" (was auch immer 
das ist) funktioniert. Also scheint das FPGA selber zu starten.
Die ganzen MMCM Constraints müssen nicht zwangsläufig in das UCF, wenn 
man die als Generic beim MMCM mit angibt (was der CoreGen macht) dann 
werden die automatisch übertragen.

von T.U.Darmstadt (Gast)


Lesenswert?

Also, der Fehler wurde dann gefunden:

1. Eine PLL setzte aus, wegen einen instabilen Eingangstakt
2. Eine andere PLL setzte planmässig aus aber nicht wieder ein, weil die 
Resetschaltung nicht arbeitet. Der aufrechterhaltende 
selbstoszillierende Takt der im Spartan 6 noch lief, war nicht mehr in 
Gang gesetzt worden
3. etwas änhliches vollzog sich dann im Testdesign rund um den BS-Core. 
Irgendwie haben sie da einen selbstlaufenden Osci drin, der beim ARTIX 
anders taktet. Ein Xilinx FAE musste eingreifen in der neuesten ISE ist 
da wohl ein workaround drin.

Wie auch immer, das Design läuft jetzt, wie gewünscht.

von Gustl B. (-gb-)


Lesenswert?

ISE? Kommt da noch eine oder meinst du Vivado?

von T.U.Darmstadt (Gast)


Lesenswert?

Es war ISE und ich hatte zum Zeitpunkt der Fragestellung nicht die 
heutige Version. Diese ist wie bekannt die 14.7. Damals war es glaube 
ich 14.5 oder so.

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.