Ich lerne VHDL und verwende die Lattice-Boards. Ich möchte wissen, wie man einen GPIO deklariert. Ich habe den folgenden Codeblock im Beispiel des Diamond-Softwareordners gefunden. Es ist eine ".lpf" -Datei und ich denke, es ist der Ort, an dem die Pins deklariert werden. Kann jemand einfach erklären, was die Zeilen bedeuten:
BLOCK RESETPATHS ;
BLOCK ASYNCPATHS ;
BLOCK JTAGPATHS ;
IOBUF ALLPORTS IO_TYPE=LVCMOS33 ;
LOCATE COMP "seg_1" SITE "V6" ;
LOCATE COMP "seg_2" SITE "U7" ;
LOCATE COMP "seg_3" SITE "Y6" ;
LOCATE COMP "seg_4" SITE "AA6" ;
LOCATE COMP "seg_5" SITE "U8" ;
LOCATE COMP "seg_6" SITE "T8" ;
LOCATE COMP "seg_7" SITE "AA5" ;
LOCATE COMP "seg_8" SITE "AB4" ;
LOCATE COMP "clk" SITE "L5" ;
IOBUF PORT "seg_1" IO_TYPE=LVCMOS33 TERMINATEVTT=OFF ;
LOCATE COMP "reset" SITE "J7" ;
IOBUF PORT "reset" IO_TYPE=LVCMOS33 ;
LOCATE COMP "direction" SITE "J6" ;
LOCATE COMP "LOCK" SITE "W5" ;
LOCATE COMP "seg_9" SITE "Y20" ;
LOCATE COMP "seg_10" SITE "AA21" ;
LOCATE COMP "seg_11" SITE "U18" ;
LOCATE COMP "seg_12" SITE "U19" ;
LOCATE COMP "seg_13" SITE "W19" ;
LOCATE COMP "seg_14" SITE "V19" ;
LOCATE COMP "seg_15" SITE "AB20" ;
LOCATE COMP "seg_16" SITE "AA20" ;
Korrigieren Sie mich, wenn ich falsch liege, also blockieren die ersten 3 Zeilen den Benutzer, Pins zu verwenden, die in JTAG & Reset verwendet werden?
Eine Zeile wie diese:
LOCATE COMP "seg_16" SITE "AA20" ;
bedeuten für den Synthesizer, dass die Variable seg_16 aus den VHDL-Dateien mit dem "echten" Pin des Boards verknüpft ist.
Schließlich habe ich keine Ahnung, was das Schlüsselwort IOBUF bedeutet. Habe ich also etwas richtig gemacht oder liege ich falsch?
Die *.lpf-Datei beschreibt tatsächlich die Pinbelegung des FPGAs, aber bevor Sie die Leitungen erklären, sollten Sie wissen, dass es eine einfachere Möglichkeit gibt, sie mit der Lattice Diamond-Designsoftware zuzuweisen, und es gibt einige großartige Tutorials, die zeigen, wie es geht das habe ich gerade gefunden: https://youtu.be/SmdEP_ZsBgM
Er beginnt gegen 17:15 Uhr mit dem Zuweisen von Pins, aber es lohnt sich, sich das Ganze anzusehen, damit Sie den Prozess von Anfang bis Ende sehen können.
Um Ihnen eine Vorstellung davon zu geben, was die Zeilen in der lpf-Datei bedeuten, hier ein paar Beispiele:
IOBUF ALLPORTS IO_TYPE=LVCMOS33 ; = Stellen Sie alle Ports so ein, dass sie den 3V3-Low-Voltage-CMOS-Logikstandard verwenden.
COMP "seg_1" SITE "V6" FINDEN ; = Weisen Sie Pin V6 den Port mit dem Namen "seg_1" zu.
Hoffe das hilft,
Zigeuner
user_1818839
MathieuL