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


von Peter (Gast)


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:
1
delay_1: LUT3
2
generic map (INIT => X"d8d8")
3
4
port map( I0 => sel_delay(0),
5
          I1 => signal_in,
6
          I2 => signal_DC,
7
          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

von Bernhard R. (barnyhh)


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

von Peter (Gast)


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

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


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/lib0283_267.html
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.

von Peter (Gast)


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

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.