Forum: FPGA, VHDL & Co. Wieso lassen sich Schieberegister mit LUT's realisieren ?


von Michael Sauron (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe ein 192 Bit langes Schieberegister in mein Design gebaut, und 
danach mal den Recourcenverbrauch kontrolliert. Dabei ist mir 
aufgefallen, das Schieberegister in LUT's gebaut werden können. Ich war 
bisher immer der Meinung, das das nur in FF's geht, da ein 
Schieberegister ja einen Takt braucht. Wieso können Schieberegister mit 
LUT's aufgebaut werden ?

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Xilinx XAPP465 Using Look-Up Tables as Shift Registers (SRL16)
http://www.xilinx.com/support/documentation/application_notes/xapp465.pdf

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Wieso können Schieberegister mit LUT's aufgebaut werden ?
1) Eine LUT ist ein 16x1 Speicher mit 4 Adresseingängen.
2) Alle Speicherelemente in FPGAs (auch in den LUTs) sind FFs.
3) Wenn eine LUT 16 Speicherelemente enthält, dann enthält sie 16 FFs
4) Die können hintereinandergeschaltet werden --> ein 16er SR
5) Mit den 4 LUT-Eingängen wird eines der 16 FFs ausgewählt
   und auf den Ausgang gelegt.

Das war die Kurzfassung.
Es gibt aber Randbedingungen. So darf z.B. zur Implementierung eines SR 
in einer LUT keine Resetbedingung für dieses SR codiert werden.

von Jan M. (mueschel)


Lesenswert?

>Wieso können Schieberegister mit LUT's aufgebaut werden ?

Kurze Ergänzung zu den Vorpostern: Weil Xilinx seine LUTs entsprechend 
gebaut hat. Bei Lattice FPGAs ist das z.B. nicht möglich.

von Michael Sauron (Gast)


Lesenswert?

Vielen Dank für die Antworten

von Fpgakuechle K. (Gast)


Lesenswert?

Jan M. schrieb:
>>Wieso können Schieberegister mit LUT's aufgebaut werden ?
>
> Kurze Ergänzung zu den Vorpostern: Weil Xilinx seine LUTs entsprechend
> gebaut hat. Bei Lattice FPGAs ist das z.B. nicht möglich.

Das lese ich aber im Datenblatt des Lattice ispXPGA anders:

http://www.latticesemi.com/dynamic/view_document.cfm?document_id=5010&jsessionid=f0308ec1594a16a06a104575724f86a476d9 
S. 6

"In the shift register mode, the LUT functions as a 1-bit to 8-bit shift 
register. This means that each PFU can implement
up to four 8-bit shift registers or any cascaded combination"

MfG,

von Jan M. (mueschel)


Lesenswert?

Ah ok, die ispXPGA kenne ich nicht. SCM, XP2 und die diversen ECP 
(ECP,ECP2(M), ECP3) haben diese Funktion nicht.

von Mathi (Gast)


Lesenswert?

@Jan M.
Das ist nicht richtig. Auch bei Lattice ist das möglich. Das ist der 
distributed RAM.
Steht z.B. im ECP2/M Family Handbook S. 20 RAM Mode.
Und wenn man einen RAM hat, kann man ein leicht ein Schieberegister 
daraus bauen.

von Jan M. (mueschel)


Lesenswert?

Natürlich kann man über Distributed RAM selbst ein Schieberegister 
bauen. Dafür braucht man dann aber noch zusätzliche Logik.
Die Xilinx LUTs können direkt ein beliebig tiefes Schieberegister 
implementieren, z.B. ein 13 bit tiefes Schieberegister braucht nur exakt 
eine LUT - im Lattice ECP2 braucht man eine LUT für den RAM plus 
mindestens einen Zähler der auf die aktuelle Schreib- und Lese-Position 
zeigt, bei 13bit also noch 4 FF & LUT zusätzlich für einen Counter.

von Fpgakuechle K. (Gast)


Lesenswert?

Mathi schrieb:
> @Jan M.
> Das ist nicht richtig. Auch bei Lattice ist das möglich. Das ist der
> distributed RAM.
> Steht z.B. im ECP2/M Family Handbook S. 20 RAM Mode.
> Und wenn man einen RAM hat, kann man ein leicht ein Schieberegister
> daraus bauen.

Bei ECP2 hat der Jan schon recht, da kann man keine LUT's in einem 
Shiftregistermode schalten. Das muss man mit anderen resourcen wie FF 
und Distr. RAM nachbauen. Und für den kleinsten Dist-RAMBlock braucht es 
schon mehrere LUT's bzw slices. Das ist weit von kleinen und praktischen 
LUT-Shiftregs anderer FPGA-Architekturen entfernt.

MfG,

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.