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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren