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
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.
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 ;)
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 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
;-)
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ß
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
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
@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.
@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.
> 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.
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.
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.
> 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 ;)