Forum: FPGA, VHDL & Co. Doppelt so viele Register wie LUTs?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von schiebepeter (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,
wieso haben aktuelle FPGAs (bspw. Cyclone 10 GX) mehr FFs als LUTs? 
Meine Designs sehen meistens so aus, dass ich mir eine Pipeline 
schreibe, und dabei wird zwischen zwei FFs immer mindestens eine LUT 
verwendet. Am Ende bleiben bei mir Unmengen an FFs frei, und diese kann 
ich nicht nutzen (oder der Mapper will sie nicht nutzen). In welchem 
sinnvollen Fall werden doppelt so viele Register wie LUTs verwendet?

von Hannes (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Bei den Xilinx-FPGAs kann eine LUT entweder als 6:1 verschalten werden, 
oder auch als 5:2 mit identischen Eingaengen fuer beide LUTs. Damit kann 
das zweite Register fuer die zweite Funktion verwendet werden, wenn 
beide kompatibel getaktet werden.

Bei den Intel-FPGAs gibt es wahrscheinlich etwas aehnliches, wie die 
LUTs verschaltet werden koennen.

von Vancouver (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Beispiele:

- Distributed RAM und Schieberegister haben keine Logik zwischen den FFs
- Die Tools verwenden bei Bedarf Register duplication, um z.B. den 
Fanout zu reduzieren
- Register sind manchmal mit hardmacros statt LUTs verbunden (z.B. DSPs)


Aber warum stört dich das? Im FPGA behältst du immer eine Menge 
ungenutzter Ressourcen übrig. Wenn dein Design reinpasst und 
funktioniert, ist es doch egal, was übrig bleibt. Genauso kannst Du dich 
über ungenutzte Routingressourcen beschweren.

von schiebepeter (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Vancouver schrieb:
> Aber warum stört dich das? Im FPGA behältst du immer eine Menge
> ungenutzter Ressourcen übrig. Wenn dein Design reinpasst und
> funktioniert, ist es doch egal, was übrig bleibt. Genauso kannst Du dich
> über ungenutzte Routingressourcen beschweren.

Mich stört es nur deswegen, weil ich immer gerne weiß, wieso im FPGA 
etwas so und so konzipiert ist. Deine Erklärung ist gut, das mit der 
register duplication war bei mir bisher der einzige Punkt. Distributed 
RAM habe ich bisher noch nicht so genau betrachtet, danke!

von Vancouver (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Noch ein Beispiel: Wenn Du im FPGA einen Bus hast (z.B. AXI/APB), an dem 
viele Register hängen. Zwar hat jedes Register einen Adressdecoder, aber 
das sind eben nur ein paar einzelne LUTs, die das gemeinsame 
writeEnable-Signal für 32 oder gar 64 FFs erzeugen. In dem Fall werden 
deutlich mehr FFs als LUTs benötigt.

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
schiebepeter schrieb:
> Distributed RAM habe ich bisher noch nicht so genau betrachtet, danke!
Wobei dieses RAM normalerweise nicht aus Registern, sondern aus 
"umfunktionierten" LUTs aufgebaut ist...

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]
  • [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.