www.mikrocontroller.net

Forum: FPGA, VHDL & Co. LUT in Quartus realisieren


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich möchte gerne eine LUT die ich in Xilinx ISE erstellt habe, auch in 
Quartus umsetzen.
Unter Xilinx erstelle ich die LUT über folgende Portmap und weise ihr 
gleich Einträge zu:
delay_1: LUT3
generic map (INIT => X"d8d8")

port map( I0 => sel_delay(0),
          I1 => signal_in,
          I2 => signal_DC,
          O => delay_LUT(0) );

Leider finde ich keine entsprechung im Quartus, um eine LUT zu 
realisieren.
Und die Hilfe gibt für LUTs auch nicht gerade viel her.

Freue mich, wenn ihr mir helfen könnt.

Danke und Grüße
Peter

Autor: Bernhard R. (barnyhh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,

LUT's sind die "low-leveligsten" Implementierungs-Details bei Xilinx.

"Umbasteln" nach Altera geht nur über Re-Engineering:
1.: Was tut diese spezielle Xilinx-LUT?
2.: Wie sähe das in VHDL bzw. als Schaltplan aus?
3.: Wie läßt sich diese Funktion mit einem Altera-FPGA herstellen?

Die Beschreibung über das Wesen einer LUT findet sich im Handbuch der 
betreffenden Xilinx-FPGAs.

Bitte
Bernhard

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo und Danke für Deine Infos,

ich sol hierbei untersuchen, wie sich die Laufzeit eines Signals durch 
eine LUT (bzw. mehrere LUTs) zeitlich verändert.
Hierfür ist es wichtig, dem Compiler direkt vorzugeben, dass mit einer 
LUT gearbeitet werden soll und er nicht die Logik erst optimiert und 
anschließend zusammenbaut.
Die einzelnen generierten LUTs möchte ich dann von Hand im FPGA 
plazieren und damit die Veränderung der Signallaufzeit untersuchen.

Wir sprechen hier also mehr von der Hardwareebene des FPGA als von einer 
Logikfunktion. Ich hoffe mein Anliegen ist verständlich Erklärt.

Eine altera-native ;-) Lösung die als genau eine LUT umgesetzt wird ist 
natürlich für mich ebenso zielführend.

Grüße Peter

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

Bewertung
0 lesenswert
nicht lesenswert
> 1.: Was tut diese spezielle Xilinx-LUT?
Sie macht mit den 3 Eingangssignalen eine logische Verknüpfung.

> 2.: Wie sähe das in VHDL bzw. als Schaltplan aus?
Laut http://www.xilinx.com/itp/xilinx5/data/docs/lib/li...
ist für eine 3-Input Lut nur ein Init-Wert von 0..8 zulässig. Das 
scheint mir allerdings eigenartig, weil in der Tabelle die Rede von 
einem 8-Bit INIT[] Vektor ist. Im Xilinx Libraries Guide ist dieser 
offensichtliche Fehler dann auch behoben 
http://www.xilinx.com/itp/xilinx9/books/docs/s3edl/s3edl.pdf
(Seite 60ff)

Allerdings ist ein 16-Bit Initwert trotzdem zu lang:
>> generic map (INIT => X"d8d8")
Verwendet wird davon nur
>> generic map (INIT => X"d8")
Un das ist ein Bitmuster 11011000. Wenn alle Eingänge 0 sind, dann ist 
der Ausgang 0 usf, bis alle Eingänge 1 sind, dann ist der Ausgang 1

> 3.: Wie läßt sich diese Funktion mit einem Altera-FPGA herstellen?
Besser wäre die Frage so betont:
Wie läßt sich diese Funktion mit einem Altera-FPGA herstellen?

Wenn du aber unbedingt und mit aller Gewalt eine LUT haben willst, dann 
findet Google dir mit "lut instantiieren altera" z.B. sowas:
http://www.altera.com/literature/ug/ug_low_level.pdf
Da wird auf Seite 14 mit einer LUT rumhantiert.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Allerdings ist ein 16-Bit Initwert trotzdem zu lang:
>>>> generic map (INIT => X"d8d8")
>> Verwendet wird davon nur
>>>> generic map (INIT => X"d8")

Absolut richtig, danke für die Korrektur an dieser Stelle. Ich hatte die 
LUT zuvor als 4-Input LUT realisiert und anschließend reduziert. Dabei 
habe ich vergessen den INIT-Wert anzupassen.

Danke auch für den Link zu Altera. Damit werde ich mich mal detailierter 
befassen. Auf den ersten Blick sieht das nicht schlecht aus. Jetzt mal 
sehen, wie der Code umgesetzt wird.

Grüße

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.