Hallo! Kann mir jemand erklären wie Distributed RAM unter Nutzung von LUTs funktioniert? Also nicht wie man das erstellt, corgen kann das ja soweit, sondern was da passiert. Ein 16x32(Tiefe x Weite)-Bit-Distr-RAM braucht z.B. 32 FF und 32 LUTs. Wie werden die genutzt bzw. die 16 32-Bit-Werte gespeichert?
@Frager >Kann mir jemand erklären wie Distributed RAM unter Nutzung von LUTs >funktioniert? Also nicht wie man das erstellt, corgen kann das ja Eine LUT kann als 16x1 Single Port RAM benutzt werden. Zwei LUTs können im Verbund als quasi 16x1 Dual Port RAM benutzt werden (der zweite Port kann nur lesen). Daraus lässt sich leicht errechnen, dass für einen 16x32 Bit RAM eben 32 LUTs benötigt werden. Die Flipflops werden meist vom Coregenerator drangemacht, damit sich der RAM wie synchoner RAM verhält (Daten können nicht kombinatorisch gelesen werden, erst mit der Taktflanke). Das bringt Geschwindigkeitsvorteile. Kann man aber auch ausschalten, dann kann kombinatorisch gelesen werden, so wie SRAM. Der Schreibzugriff ist immer synchron (als mit Takt). MfG Falk P.S. Ach ja, das ganze geht nur bei Xilinx (weil die die Patente haben).
>>>>P.S. Ach ja, das ganze geht nur bei Xilinx (weil die die Patente haben).
Das ist Unsinn. Geht auch bei Lattice.
Ja, danke soweit, das mein ich aber nicht ganz. Ich würde eben gern wissen wie das möglich ist. Wird das LUT dann so konfguriert, das die vier Eingänge einen bestimmten Ausgang erzeugen, also quasi das was man sonst als kombinatorische Funktion nutzt einfach als Speicher? Das hieße der 32-Bit-Wert wird bitweise auf 32 LUTs verteilt und bei jedem Schreiben müssen alle LUTs neu geschrieben werden?
@Frager: ein FPGA von Xilinx (Lattice, Altera) ist nichts anderes als ein SRAM. Und weil eine LUT ein Teil eines FPGAs ist, ist die LUT auch nichts anderes als ein SRAM. Normalerweise wird jetzt in einer LUT eine beliebige kombinatorische Funktion mit 4 Eingängen und 1 Ausgang abgebildet. Standard in einer FPGA-LUT ist also: 4 Adress-Leitungen und ein Daten-Ausgang. Ja, und jetzt fehlt nicht mehr viel zum RAM: nur noch ein Daten-Eingang. Und da schaltet das FPGA die LUT in einen anderen Modus: schon haben wir keine LUT sondern ein richtiges klitzekleines RAM mit Eingang, Ausgang und 4-Bit-Adresse. Das wars dann schon. OK, wenn man punktgenau wissen will, was da intern wirklich abgeht, muss man schon mal die entsprechenden Patente studieren (aber da könnte man gleich beim MuxF5, MuxF6 und der Carry-Chain weitermachen). So eine LUT lässt sich übrigens auch prima als Schieberegister mit bis zu 16 Bit Länge verwenden (das ist dann wieder ein anderer Modus für die LUT).
Meines Wissens steckt das zum RAM benötigte FF schon in den Zellen drin. Wenn die Logikzelle also durch ein LUT belegt ist, ist das FF auch weg oder adners herum gesehen, die Nutzung einer LUT-Zelle als RAM braucht kein zusaetzliches FF.
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.