mikrocontroller.net

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


Autor: Michael Sauron (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Xilinx XAPP465 Using Look-Up Tables as Shift Registers (SRL16)
http://www.xilinx.com/support/documentation/applic...

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael Sauron (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Antworten

Autor: Fpga Kuechle (fpgakuechle) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.c... 
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,

Autor: Jan M. (mueschel)
Datum:

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

Autor: Mathi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Fpga Kuechle (fpgakuechle) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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,

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.