1. Einleitung
Für die abgeschlossene Installation und den Betrieb von Vivado unter Linux stellt dieser Artikel hauptsächlich den Betriebsprozess von Vivado und HLS unter dem Linux-Betriebssystem anhand eines Falls vor, in dem das LED-Licht flackert, und führt einen einfachen Test der installierten Softwarefunktionen durch.
HLS synthetisiert die Kompilierung von C-Code in Verilog- oder VHDL-Code. Dieser Artikel analysiert kurz den von HLS generierten Code und behebt auch den Fehler „Fehler beim Generieren von IP“, der während des Kompilierungsprozesses auftreten kann.
2. Vivado_HLS generiert IP-Core
- Führen Sie Vivado_HLS aus:
Der laufende Prozess von Vivado_HLS wurde in die Installation und den Betrieb von Vivado unter Linux eingeführt. Führen Sie das folgende Befehls-Shell-Skript aus, um HLS zu öffnen:
source /opt/Xilinx/Vivado/2017.4/settings64.sh ##Vivado在Linux下的安装路径
vivado_hls
Öffnen Sie die Schnittstelle wie in der folgenden Abbildung gezeigt:
- Erstellen Sie ein neues Projekt Erstellen Sie ein neues Projekt und erstellen Sie das Projekt im Arbeitsplatzordner unter Dokumente für eine einfache Suche:
- Das Top-Level-Modul heißt Top Function:
- Wählen Sie die Teileauswahl des FPGA-Modells aus und bleiben Sie mit dem ausgewählten Modell konsistent:
- Erstellen Sie eine neue .cpp-Datei, der Codeinhalt ist sehr einfach, das heißt, das LED-Licht blinkt einmal alle 50 Millionen Taktzyklen, und der IP-Kern wird kompiliert und generiert:
Der IP-Core ist in der Abbildung dargestellt:
3. Vivado-Projekt ruft IP-Core auf
- Vivado ausführen:
Der laufende Prozess von Vivado wurde in die Installation und den Betrieb von Vivado unter Linux eingeführt. Führen Sie das folgende Befehls-Shell-Skript aus, um Vivado zu öffnen:
source /opt/Xilinx/Vivado/2017.4/settings64.sh ##Vivado在Linux下的安装路径
vivado
- Fügen Sie nach dem Erstellen eines neuen Projekts den Pfad hinzu, in dem sich das HLS-Projekt im IP-Katalog befindet, und Sie können sehen, dass der von HLS generierte IP-Core erfolgreich importiert wurde:
- Erstellen Sie ein neues bd-Projekt (Block Design), importieren Sie den IP-Core, ap_rst ist immer niedrig und die Schnittstellen ap_clk und led_V sind extern verbunden:
- ap_clk und led_V sind jeweils an den Quarzoszillator-Taktausgang und die LED-Schnittstelle gebunden:
- Nach erfolgreicher Synthese wird eine Bitstream-Datei generiert:
- Da der Takt 50 MHz beträgt, können Sie sehen, dass die LED nach dem Programmieren des Geräts einmal pro Sekunde blinkt:
4. HLS generiert eine Verilog-Codeanalyse
Öffnen Sie den von HLS generierten IP-Kern und Sie können den kompilierten Verilog-Code wie unten gezeigt sehen:
Die Benennung ist kompliziert und verwirrend, lässt sich aber anhand des Funktionsprinzips von LED-Leuchten einfach aus den Ein- und Ausgangsschnittstellen analysieren:
Der Zähler i_reg_39 ist im Grunde gleichbedeutend mit i_1_fu_56_p2, indem er einander Werte zuweist, um die vom Eingangstakt abhängige Zählerfunktion zu vervollständigen, und den Flip der Ausgangsschnittstelle led_V durch Vergleich mit 25M abzuschließen und die Funktion des Blinkens alle 50M zu realisieren Taktzyklen;
5. Probleme und Lösungen während des HLS-Betriebs
Problem auftritt:
Während des Kompilierens des umfassenden Projekts und des Generierens des IP-Kerns in HLS kann der Fehler „Fehler beim Generieren von IP“ auftreten, wie in der folgenden Abbildung dargestellt:
Lösung:
Dieses Problem wird normalerweise durch eine frühere HLS-Version verursacht. Dieses Projekt verwendet beispielsweise die Version 2017.4 von HLS, sodass die Systemzeit auf vor 2018 geändert werden muss, um den IP-Core erfolgreich zu generieren: