Forum: FPGA, VHDL & Co. Ressourcenangabe


von Peter (Gast)


Lesenswert?

Moin,

ich schreibe gerade an meiner Diplomarbeit und will den Ressorcenbedarf 
meiner Implementierung angeben. Allerdings bin ich gerade unsicher, was 
der beste Weg dazu ist bzw. welche Angaben die größe Aussage haben. Wenn 
ich mir sowas angucke:
1
Logic Utilization:
2
  Total Number Slice Registers:       6,710 out of  17,344   38%
3
    Number used as Flip Flops:        6,694
4
    Number used as Latches:              16
5
  Number of 4 input LUTs:            11,635 out of  17,344   67%
6
Logic Distribution:
7
  Number of occupied Slices:          8,238 out of   8,672   94%
8
  Total Number of 4 input LUTs:      12,576 out of  17,344   72%
9
    Number used as logic:            11,062
10
    Number used as a route-thru:        941
11
    Number used for Dual Port RAMs:     256
12
      (Two LUTs used per Dual Port RAM)
13
    Number used as Shift registers:     317
14
  Number of bonded IOBs:                152 out of     250   60%
15
    IOB Flip Flops:                     167
16
  Number of RAMB16s:                     20 out of      28   71%
17
  Number of BUFGMUXs:                     3 out of      24   12%
18
  Number of DCMs:                         2 out of       8   25%
19
  Number of MULT18X18SIOs:                7 out of      28   25%

Würdet ihr alles davon angeben, oder nur die Logic Distribution?

Danke für alle Tipps.

Peter

von Christian R. (supachris)


Lesenswert?

Das wichtigste ist die Slice-Auslastung. 94% ist schon sehr sportlich, 
schafft man da das Timing noch? Alles über 75% bei einem FPGA ist meiner 
Erfahrung nach schon kritisch, da routet der ewig, und je nach Durchlauf 
passt das Timing mal, und mal nicht. Wichtig sind natürlich auch die 
Werte für die Spezialkomponenten wie BlockRAM, Multiplizierer usw.

von D. I. (Gast)


Lesenswert?

Christian R. schrieb:
> 94% ist schon sehr sportlich,
> schafft man da das Timing noch?

Ich hatte neulich 98% auf nem V2P30, allerdings waren da schon sehr viel 
handverdrahtete Komponenten dabei ;)

von Anguel S. (anguel)


Lesenswert?

Christian R. schrieb:
> Wichtig sind natürlich auch die
> Werte für die Spezialkomponenten wie BlockRAM, Multiplizierer usw.

Genau. Was ist die Anwendung? Hat das Design einen besonderen 
Schwerpunkt? Ist es ein IP-Core? Werden spezielle FPGA-HW-Blöcke 
besonders intensiv genutzt?

von Peter (Gast)


Lesenswert?

Von den speziellen Blöcken habe ich eigentlich nur BlockRAMs benutzt, 
der Rest spielt für mich keine Rolle, eher für Leute die damit weiter 
arbeiten wollen.

Ist die Angabe der noch frei bleibenden Slices das einzige Kriterien, 
oder ist zB die Anzahl der verwendeten 4LUTs wichtig. Letztendlich steht 
das ja in Beziehung zueinander.
Ich persönlich gucke eigentlich auch nur auf die Slices, aber das liegt 
evt. auch daran, dass mir nach einem Jahr FPGAs noch die Erfahrung fehlt 
;-)

von BesserWisser (Gast)


Lesenswert?

Die Anzahl der Slices ist nicht immer aussagekräftig:
der mapper tendiert (ohne weitere Eingriffe) dazu, die
Logik über den gesamten Chip zu verteilen - auch schon
bei 'an sich' kleinem Ressourcenverbrauch...

Andererseits benötigts Du in Deinem speziellen Fall schon
67% aller LUTs - was bei einem Spartan3 (und dabei handelt es sich 
anscheinend) schon eine ganze Menge ist - würde mich nicht
überraschen, wenn map+par bei Dir rel. lange dauern:
Verwendung von 2/3 der LUTs und/oder FFs liegt nahe an der
Kapazität eines Spartan - also ist (in diesem speziellen Fall)
die Anzahl Slices wirklich eine 'Ressourcenangabe' und
wahrscheinlich KEIN Ergebnis eines 'freizügigen' Mappers

Im Gegensatz zu 67% aller LUTs (fast alle als Logik / kaum
distributed RAM oder Schieberegister) wiederum brauchst Du nur
38% der FlipFlops...

Das sagt mir, daß Dein Design rel. wenig ge-pipelined ist...
wiederum sind Timingprobleme nicht unwahrscheinlich!
'schnelle' Designs (hoher Takt) haben häufig ein Verhältnis
"nahe" 1:1 - im FPGA liegen die FFs sowieso rum; also verwende sie...
(nur als Tip für di Zukunft / die aktuelle Arbeit würd' ich so lassen,
wenn sie funzt)

Also - sinvolle Angaben sind
Anzahl Slices, Slice Regsiter, LUTs (getrennt nach Logik und Speicher)
Gruß

von BesserWisser (Gast)


Lesenswert?

Nachtrag:

BRAM16, Mults, DCM sollten natürlich auch gelistet werden...

Ach ja !
   "Number used as Latches: 16"

Hier solltest Du VOR der Abgabe nochmal tiefer forschen:
Latches sind ein absolutes No-Go !!!

Selte (seeeehr selten) werden sie vom mapper eingebaut, um
xor u.ä. 'günstig' zu imlementieren....
zu 99,999% liegt aber ein Codier-Problem (bei Dir), das
DRINGENST gefixed werden sollte.
'bewußt eingebaute' Latches müssen in der Doku genauestens
begründet werden - sie sind nur in Außnahmefällen gestattet

Viel Glück

von Anguel S. (anguel)


Lesenswert?

Den Beiträgen von BesserWisser entnehme ich, dass das Thema 
Ressourcenbedarf durchaus kompliziert betrachtet werden kann und ich 
sehe das auch so. Wenn es also bei Peters Frage um eine Diplomarbeit 
geht, sollte man das Thema Ressourcenbedarf vorher im Unterricht 
durchgenommen haben - dann hat man auch eine Definition, an der man sich 
halten kann, um den Prof glücklich zu machen. Wie viel das nun mit der 
modernen FPGA-Realität zu tun hat, ist eine andere Frage. Falls man das 
Thema nicht behandelt haben sollte, und es ist trotzdem gefordert, die 
Angaben zu machen, spricht das leider nicht gerade für den Prof. In 
Deutschland ist es leider üblich, dass man die wichtigen/interessanten 
Fragen erst in den Prüfungen stellt, anstatt sie vorher zu behandeln. Da 
fragt man sich, wofür man Studiengebühren zahlt und seine Zeit 
verschwendet. Vielleicht will man dadurch den Studenten als Professor 
zeigen, dass man es als Prof immer besser weiß und ihnen doch eine 
schlechte Note verpassen kann, auch wenn sie sonst ganz gut sind. Diese 
Vorgehensweise finde ich übrigens sehr peinlich. Es kann auch durchaus 
sein, dass Peters Prof eine uralte Definition von Ressourcenbedarf 
gelernt hat. Aber bei modernen Designs ist es eben nicht so einfach und 
auch nicht wirklich aussagekräftig. Leider hat man als Student nicht die 
Möglichkeit, mal richtig auf den Tisch zu hauen, und dem Prof zu sagen, 
dass er mal die Frage eindeutig stellen soll. Aber vielleicht täusche 
ich mich ja in dem Fall...
An Peter: Übrigens kannst Du auch paar Xilinx IP-Core Datasheets 
durchschauen, um zu sehen, welche Angaben die so als Ressourcenverbrauch 
angeben, z.B.:
http://www.xilinx.com/support/documentation/ip_documentation/fifo_generator_ds317.pdf
Seite 32 ff.

Grüße,
Anguel

von Zonk-8000 (Gast)


Lesenswert?

@Anguel:

> vorher im Unterricht durchgenommen

;-)
Studium != Schule.

Man kann E-Technik studieren ohne in den Vorlesungen großartig was mit 
FPGAs gemacht zu haben. Schon gar nicht muss man bei DEM einen Prof. die 
Diplomarbeit schreiben bei dem man ggf. was von FPGAs gehört hat.

von Peter (Gast)


Lesenswert?

@BesserWisser

Die Latches sind nicht auf meinem Mist gewachsen und waren schon vorher 
da, aber danke für die Tipps :-)


@Anguel

Im Studium lernt man zumindest hier nur "theoretisches" VHDL. Mit FPGAs 
hat man nichts zu tun, außer man belegt ein Projekt oder schreibt eben 
seine Diplomarbeit damit.

von Morin (Gast)


Lesenswert?

> Würdet ihr alles davon angeben, oder nur die Logic Distribution?

Das kommt darauf an, was du damit aussagen willst. Grundsätzlich sind 
alle diese Zahlen wichtig. (Bei einem vernünftigen Tool hätte ich jetzt 
gesagt: sonst würden sie nicht da stehen; leider spuckt ISE auch mal 
eine Menge interner Werte aus die dem Benutzer gar nicht weiterhelfen)

Vielleicht kannst du mal kurz anreißen, was du mit den Zahlen belegen 
willst.

Mal als Beispiel angenommen, du willst verschiedene Implementierungen 
eines Cores bzgl. Ressourcenverbrauch vergleichen. Dann kann durchaus 
die eine Impl. mehr LUTs, die andere mehr BlockRAMs verbrauchen. Dann 
ist es sehr wichtig, dass du diese als Alternativen hinstellst. Würdest 
du die Synthese-Ergebnisse auf eine einzige Zahl reduzieren, dann wäre 
nach dieser Zahl die eine Impl. strikt besser als die andere, was nicht 
der Wirklichkeit entspricht.

von Anguel S. (anguel)


Lesenswert?

Zonk-8000 schrieb:

> Studium != Schule.
Leider ist es so, dass man deshalb in D im Studium gar nix mehr lernt, 
was sich dann auch auf die Wirtschaft entsprechend auswirkt. Für mich 
bedeutet Studium, dass man von einem guten Prof sehr detailiertes 
praktisches Spezialwissen vermittelt bekommt. Das besitzen die meisten 
Profs leider gar nicht. Die trockene Theorie kann ich mir auch ohne 
Studium aneignen.

> Man kann E-Technik studieren ohne in den Vorlesungen großartig was mit
> FPGAs gemacht zu haben. Schon gar nicht muss man bei DEM einen Prof. die
> Diplomarbeit schreiben bei dem man ggf. was von FPGAs gehört hat.

Man kann dann auch FPGAs lernen, ohne Zeit für ein nutzloses Studium zu 
verschwenden. Ein Prof sollte dann aber wenigstens in der Lage sein, 
seine Anforderungen klar zu definieren und nicht nur mit schlauen 
Begriffsdefinitionen um sich schmeißen.

von Anguel S. (anguel)


Lesenswert?

Peter schrieb:
> @BesserWisser
>
> Die Latches sind nicht auf meinem Mist gewachsen und waren schon vorher
> da, aber danke für die Tipps :-)

Hat sie dir der Prof empfohlen? :)

> @Anguel
>
> Im Studium lernt man zumindest hier nur "theoretisches" VHDL. Mit FPGAs
> hat man nichts zu tun, außer man belegt ein Projekt oder schreibt eben
> seine Diplomarbeit damit.

Das ist mir schon klar, das ist überall so und in jedem Fach.

von Zonk-8000 (Gast)


Lesenswert?

> ohne Zeit für ein nutzloses Studium zu verschwenden.

Tja was soll man sagen ich könnte natürlich auch OHNE Studium in der 
Wirtschaft arbeiten - den Kram dafür hab ich mir ohnehin selbst 
beigebracht.

Nur glaubt einem das keiner so recht ohne den passenden Zettel.

Naja ein zwei nützliche Dinge hat man im Studium aber auch gelernt die 
man sich niemals freiwillig angeschaut hätte ;)

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.