Fläche des Designs optimieren

Gast #1207051
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
(Firma: abaxor engineering) #1207150
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
Gast #1207179
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.
Gast #1207470
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.
#1207895
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.
Gast #1228020
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_papers/wp272.pdf
> 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

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.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.