mikrocontroller.net

Forum: FPGA, VHDL & Co. Fläche des Designs optimieren


Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen!

Ich stehe vor dem Problem, dass mein Design nicht auf das mir zur 
Verfügung stehende FPGA passt. Deshalb stellt sich für mich die Frage, 
wie ich mein Design optimieren kann. Ich weiß, dass ich z.B. mit Xilinx 
ISE bei der Synthese automatisch auf Fläche optimieren lassen kann, 
jedoch reicht der Platz auf dem FPGA leider immer noch nicht aus.

Gibt es spezielle Tricks für die Design-Implementierung, um Fläche zu 
sparen? Beispielsweise effizient gestaltete Zähler o.ä.? Oder gibt es 
"Richtlinien" welche Operationen zu vermeiden sind?

Gruß
Tim

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Besorg Dir mal folgendes Tool:
http://www.conekt.net/fpgaoptim.html

(oder xdlanalyze -> http://www.da.isy.liu.se/~ehliar/stuff/)

Damit siehst Du, wo Logikfläche verbraten wird und wo es sich lohnt zu 
optimieren.

Damit die Tools arbeiten mußt Du evtl. erstmal für einen größeren FPGA 
synthetisieren.

Duke

Autor: Thomas Reinemann (Firma: abaxor engineering) (abaxor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

was geht dir denn aus, Logik, Register, RAM, DSP-Cores? Durch 
Veränderung deines Codes kannst du gezielt noch vorhandenen Resourcen 
ausnutzen und andere dafür einsparen. Z.B kann mann große Register oder 
Registerbänke in BlockRAM verschieben. Vergleichsoperationen werden 
mitnichten immer in Form einer Subtraktion und mit anschließender 
Auswertung des MSBs synthetisiert. Was du machen kannst hängt stark vom 
verwendeten FPGA ab.

Tom

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Duke: Danke für die Tipps! Werde mir die Tools besorgen und testen.

@ Thomas: Ich verwende einen Xilinx Spartan-3 (XC3S1000). Mir gehen die 
Slices und die Flipflops aus... BRAMs habe ich noch frei, mal sehn, ob 
ich da was "auslagern" kann.

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Tim:

Verwendest Du viel distributed RAM oder FIFOs? Sowas passt u.U. gut in 
die BRAMs.

Duke

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

Bewertung
0 lesenswert
nicht lesenswert
Auch Statemachines lassen sich in BRAMs packen...

Sieh dir mal dein Resetkonzept an:
http://www.xilinx.com/support/documentation/white_...
Das Fazit daraus:
>>> Reset Costs More Than You Think! <<<

Dazu auch der Beitrag "Xilinx und die Resets"

Autor: Nephilim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ein anderes synthesetool, z.B. Synplify Pro, kann auch helfen deutlich 
effizienter zu synthetisieren. da kann man unter umständen 20-30% fläche 
einsparen. xilinx ise is da nich unbedingt das nonplus ultra.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
All das lohnt sich aber nur, wenn man das Produkt in Massen verkaufen 
will, und es auf die 3€ ankommt, die man einspart, wenn man einen 
kleineren FPGA benutzen kann. Ansonsten einfach den nächst größeren 
nehmen. Solche knappen Sachen sind immer etwas heikel, kleinste 
Änderungen können nach sich ziehen, dass das ganze Design nicht mehr 
richtig läuft. Wir hatten das hier zur Genüge mit randvollen Xilinx 
CPLDs. Wenn man 511 von 512 Makrozellen benutzt hat, dauert das Fitting 
bei jedem Durchlauf schon mal einige Stunden und nachher passt das 
Timing nicht mehr. Dann lieber einen größeren Chip für mehr Reserven.

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es hat ein wenig gedauert, da ich Urlaub hatte, aber mittlerweile habe 
ich das Platzproblem beseitigen können.

> Sieh dir mal dein Resetkonzept an:
> http://www.xilinx.com/support/documentation/white_...
> Das Fazit daraus:
> >>> Reset Costs More Than You Think! <<<
>
> Dazu auch der Beitrag "Xilinx und die Resets"

Danke an Lothar, genau das war's! Der von mir eingefügte Reset eines 
sehr großen Buffers hat enorm viel Platz beansprucht.

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.