Forum: FPGA, VHDL & Co. Mapping Problem


von FPGA_Jens (Gast)


Lesenswert?

Hallo zusammen :)

ich arbeite noch nicht sooo lange mit FPGAs und stolpere gerade über ein 
Problem, bei dem mir die Problembeschreibung schon nicht ganz klar ist.

Ich habe zwei unterschiedliche Designs mit jeweils einem identischen 
Modul. In diesem Modul treibt ein ODDR-Block einen OBUFDS.

Das eine Design lässt sich wunderbar mit ISE erstellen, beim anderen 
kommt folgender Fehler: OBUFDS_inst is driven by ODDR_inst (Q pin), but 
they are not all in the same level of hierarchy.

Was bedeutet denn nun genau dieses "not all in the same level of 
hierarchy"?

Ich verstehe nicht ganz wieso in dem einen Design alles durchläuft, im 
anderen aber nicht.

Ich hoffe ich habe das Problem verständlich genug beschrieben.

Vielen Dank schonmal :o)
Jens

von Duke Scarring (Gast)


Lesenswert?

Welchen FPGA hast Du konkret?

Duke

von FPGA_Jens (Gast)


Lesenswert?

Das Problem tritt beim Virtex 5 auf.

Jens

von Drill-Tutor (Gast)


Lesenswert?

Schau mal hier:
http://www.xilinx.com/support/answers/47372.htm

Mglw. steht Keep Hierarchy "ungünstig".

MfG,

von Drill-Tutor (Gast)


Lesenswert?


von FPGA_Jens (Gast)


Lesenswert?

@Drill-Tutor

Vielen Dank für deine Links. Auf den ersten war ich auch gestoßen.

Wenn ich KEEP_HIERARCHY auf "Soft" stelle, funktioniert das Mapping, bei 
"YES" und "NO" nicht.

Dank deines zweiten Links werde ich mal versuchen, die Implementierung 
zu ändern.

MfG,
Jens

von Fritz J. (fritzjaeger)


Lesenswert?

FPGA_Jens schrieb:


> Ich habe zwei unterschiedliche Designs mit jeweils einem identischen
> Modul. In diesem Modul treibt ein ODDR-Block einen OBUFDS.
>
> Das eine Design lässt sich wunderbar mit ISE erstellen, beim anderen
> kommt folgender Fehler: OBUFDS_inst is driven by ODDR_inst (Q pin), but
> they are not all in the same level of hierarchy.
>
> Was bedeutet denn nun genau dieses "not all in the same level of
> hierarchy"?

Hierarchy meint erst mal das Schaltungsteile zu Blöcken (meist 
Entity/architecture = component) zusammengefasst werden.

Synthese/Implementierung erhält diese Blöcke solange sie nicht 
angewiesen werden diese "wegzuwerfen" (flatten netlist: 
http://en.wikipedia.org/wiki/Netlist ) . Erhalten meint, das 
Optimierungen und Umsetzung an den Grenzen des Blocks enden und somit 
alle beim Mapping "erzeugten" FPGA Elemente (z.B. LUT, FF, BRAM-Block) 
einen extra Identifier (Namen) erhalten. Probleme entstehen wenn zwei 
Hierarchy-Blöcke jeweils einen Teil einer FF-Resource beschreiben, bspw. 
bei den IO-Zelle.

In den IO-Zellen sind untrennbar Tri-Statetreiber (IF OE = '0' then Q= 
Z), FlipFlop (if rising edge) Eingangs- und Ausgangspad, differentieller 
Treiber, meist auch delay-element, etc enthalten. Durch die Blockgrenze 
ensteht nun eine Netzliste mit zwei extra Componenten also kaskadierten 
IO-Zellen die es nun nicht im FPGA (oder ASIC) gibt.

Also beschreibt man eine IO-Zelle komplett in einem Block bspw. in 
TOP-Level file. Nun scheint den Memrory controller eigene IO-Zellen 
mitzubringen die mit der IO-Beschreibung im TOP-File kolliediert. KEEP 
Hierachy OFF sollte die Netzliste flachklopfen (alle Blöcke wie einen 
großen behandeln, was SOFT hier bedeudet ist mir unbekannt.

 So weit in aller Schnelle, mehr zu diesem wichtigen Schritt während der 
Synthese einer Hochsprachenbeschreibung findest du unter den Stichwort 
"flat", "flat netlist", "flat hierarchy". MfG

von FPGA_Jens (Gast)


Lesenswert?

Hallo Fritz,

vielen Dank für die ausführliche Beschreibung. Manchmal hapert es 
einfach daran, dass man nirgends einen bestimmten Begriff erläutert 
bekommt, bzw. nur in irgendeinem von hunderten Xilinx-Papers.

Deine Beschreibung hat zum tieferen Verständnis einiges beigetragen.

Ich habe die Implementierung geändert und siehe da, nun funktioniert 
auch das Erstellen wunderbar :)

MfG

von Fritz J. (fritzjaeger)


Lesenswert?

FPGA_Jens schrieb:
> Hallo Fritz,
>
> vielen Dank für die ausführliche Beschreibung. Manchmal hapert es
> einfach daran, dass man nirgends einen bestimmten Begriff erläutert
> bekommt, bzw. nur in irgendeinem von hunderten Xilinx-Papers.
>
> Deine Beschreibung hat zum tieferen Verständnis einiges beigetragen.
>
> Ich habe die Implementierung geändert und siehe da, nun funktioniert
> auch das Erstellen wunderbar :)


Schon vor 8:30 die erste Gute Tat - freut mich ausserordentlich !

von Shareef (Gast)


Lesenswert?

Hallo Michael,ich kf6nnte schreien   grade habe ich ein wenig in deneim 
Blog nach Magento Extensions gesurft und wollte das ein oder andere 
sinnvolle installieren   ich bekomme bei vielen nur Fehlermeldungen like 
PEAR ERROR: install failed   Zur Info: Ich arbeite zurzeit auf dem 
lokalen Webserver und ziehe mir die aktuellste Version per SVN aus derem 
Verzeichnis.He4ngt das damit zusammen?lg

von Klaus (Gast)


Lesenswert?

Shareef schrieb:
> fRXRnRvqXJnNLGgoOpf
>
> Autor: Shareef (Gast)
>
>       Hallo Michael,ich kf6nnte schreien   grade habe ich ein wenig in
> deneim Blog nach Magento Extensions gesurft und wollte das ein oder andere
> sinnvolle installieren   ich bekomme bei vielen nur Fehlermeldungen like
> PEAR ERROR: install failed   Zur Info: Ich arbeite zurzeit auf dem
> lokalen Webserver und ziehe mir die aktuellste Version per SVN aus derem
> Verzeichnis.He4ngt das damit zusammen?lg

Bitte was willst du? Hat man dir ins Hirn gesch***en?

von Duke Scarring (Gast)


Lesenswert?

Klaus schrieb:
> gesch***en
Bei Der Überschrift sicher. Sonst wird er sich nur im Forum verklickt 
haben...

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.