www.mikrocontroller.net

Forum: FPGA, VHDL & Co. FIFO für Spartan 3A


Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte auf einem Spartan 3A einen FIFO implementieren. Hierzu habe 
ich ein Projekt erstellt, anschließend habe ich einen FIFO IP Core 
erstellt. Der FIFO besitzt folgende Leitungen:

DIN(17:0) --> IN
WR_EN --> IN
WR_CLK --> IN
RD_EN --> IN
RD_CLK --> IN
RST --> IN
EMTY --> OUT
FULL --> OUT
DOUT(17:0) --> OUT

Der FIFO besteht aus 16 Block RAMS (20 Block RAMS sind auf dem Spartan 
vorhanden)

Wenn ich das Projekt route dann erhalte ich folgende Warnings:

PhysDesignRules:1155 - Dangling pins on
   block:<XLXI_1/BU2/U0/grf.rf/mem/gbm.gbmg.gbmga.ngecc.bmg/blk_mem_generat 
or/va
   lid.cstr/ramloop[10].ram.r/s3_noinit.ram/dpram.dp9x9.ram>:<RAMB16BWE_RAM 
B16BW
   E>.  The block is configured to use input parity pin DIAP0. There is 
dangling
   output for parity pin DOPA0.

Ich weiß nicht wie ich es verhindern kann.

Autor: MXM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
unwichtig.. ignorieren..

Autor: Anguel S. (anguel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist wohl normal. Dass ein Design paar 1000 Warnings generiert und 
trotzdem 1A läuft ist keine Ausnahme ;)
Siehe auch:
http://www.xilinx.com/support/answers/24846.htm

Sebastian schrieb:

> PhysDesignRules:1155 - Dangling pins on
>    block:<XLXI_1/BU2/U0/grf.rf/mem/gbm.gbmg.gbmga.ngecc.bmg/blk_mem_generat 
or/va
>    lid.cstr/ramloop[10].ram.r/s3_noinit.ram/dpram.dp9x9.ram>:<RAMB16BWE_RAM 
B16BW
>    E>.  The block is configured to use input parity pin DIAP0. There is
> dangling
>    output for parity pin DOPA0.
>
> Ich weiß nicht wie ich es verhindern kann.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann denn einer etwas dazu sagen was mir Xilinx damit sagen will. Ich 
verstehe die Fehlermeldung nicht.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> The block is configured to use input parity pin DIAP0. There is
> dangling output for parity pin DOPA0.
Du verwendest vermutlich (bewusst oder unbewusst) den Ausgang des 
Parity-Bits der BRAMs nicht. Und irgendwer meint aber, etwas in das 
Paritiy-Bit hineinschreiben zu müssen (vermutlich eine statische '0' 
oder '1'). Und das fällt der Toolchain auf.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verwende das Parity Bit ja auch nicht, da ich nur 18Datenleitungen 
verwende. Eigentlich benötige ich nur 16 Datenleitungen da gab es aber 
noch mehr Warnings. Ändert es sich wenn ich den ECC aktiviere?

Autor: Anguel S. (anguel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also Du erstellst soweit ich verstanden haben deinen FIFO mit dem Core 
Generator. Dieser generiert dann eine Netlist. Nun kann es sein, dass 
bestimmte Teile dieser Netlist universell sind, da der FIFO für mehrere 
FPGAs (Spartan, Virtex) generiert werden kann. Einige FPGAs haben 
bestimmte Features, andere FPGAs nicht. Nun ist das eben für deinen FPGA 
so, dass bestimmte Leitungen nicht benutzt werden. Da das PAR Modul nun 
nicht weiß, dass diese Netlist trotz einiger "Unstimmigkeiten" zwar auf 
deinem FPGA auch problemlos läuft, da Xilinx das ganze getestet hat 
(hoffentlich), zeigt es diese Warnung. Es ist kein Fehler, es ist nur 
ein Hinweis, dass etwas evtl. nicht wie vorgesehen laufen könnte, wenn 
der Xilinx-Designer dieses Verhalten nicht berücksichtigt haben sollte.

P.S.: Vermutlich ist das so ähnlich wie mit den Bugs und den Features 
von Microsoft ;)

Sebastian schrieb:
> Ich verwende das Parity Bit ja auch nicht, da ich nur 18Datenleitungen
> verwende. Eigentlich benötige ich nur 16 Datenleitungen da gab es aber
> noch mehr Warnings. Ändert es sich wenn ich den ECC aktiviere?

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na dann hoffe ich mal das alles Reibunglos funktionieren wird.

Ich kann leider nur 16 von 20 BlockRAMs verwenden, da ich im Core 
Gernerator nur zwischen 16k und 32k Speicherzellen auswählen kann. Wenn 
ich 16k einstelle, dann nutze ich 4 BlockRams nicht, wenn ich 32k 
verwende erzeugt Xilinx natürlich einen Fehler. Kann man dies 
optimieren?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einfach noch einen 4k FIFO dahinter schalten. Dann hast du alle 
BlockRAMs benutzt.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daran habe ich bereits auch schon gedacht. :-)

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na dann. Das klappt ja problemlos, mache ich auch ab und zu so. Genau 
20k lassen sich halt nicht mit einer ganzzahliger Anzahl Adressleitungen 
ansteuern.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.