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?
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.
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.
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!
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.
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.