Digitale Filter auf Zybo Foren

14 Schritt:Schritt 1: Grundeinstellung und Hinzufügen der IP-Sperr Zynq Schritt 2: Konfigurieren des Zynq blockieren Schritt 3: Hinzufügen von benutzerdefinierten Verilog-Module Schritt 4: Die Custom VHDL-Module Schritt 5: Erstellen und Package für geblockte IP- Schritt 6: Hinzufügen von IP-Block zu der Verwahrungs Schritt 7: Führen Sie Anschluss Automation und Connect-IP-Blöcke Schritt 8: Erstellen Sie den HDL Wrapper Schritt 9: Hinzufügen und Bearbeiten der Datei-Constraints Schritt 10: Erzeugen der Bitstream und die Hardware Exportieren Schritt 11: Einrichten des SDK und Generating Board Support Package (BSP): Schritt 12: Einrichten der Code Schritt 13: Einrichten des Debugger Schritt 14: Run Debugger

Digitale Filter auf Zybo Foren

Digitale Filter auf Zybo Foren

Die Digilent Zybo Bord ist um Xilinx Zynq SoC (System on Chip) Teil gebaut. Das IC verfügt über eine Dual-Arm-A9-Kerne, die wie jede andere Mikrocontroller durchzuführen. Das Besondere ist, dass es auch FPGA-Hardware auf dem gleichen IC wie der Prozessor.
Dieses Tutorial wurde mit unserer Erfahrung aus dem Kurs EE 439 an der California Polytechnic State University, San Luis Obispo in Frühling 2015. Eine gute Bewerbung für dieses Board ist die Gestaltung und Entwicklung von Echtzeit-Digitalfilter für die Bassgitarre gemacht geschrieben. Die Grundidee für dieses Projekt ist es, in Audiodaten aus dem Line-Eingang zu nehmen, wandelt es in digitale Daten, zu verarbeiten, wandeln es wieder in analoge Signal und gibt es über den Kopfhörer out.The Zybo Platte enthält eine SSM 2603 Low Power Audio Codec Bord, wird zum Empfangen und Übertragen von Audiodaten verwendet. Diese Echtzeit-Filtersystem wurde entwickelt, um den Benutzern die folgenden Spezifikationen: Für Anwender mit zwei Filtern: Distortion reinigen Stellen Sie den Benutzern die Möglichkeit, die Clipping-Effekt steuern. Stellen Sie den Benutzern vollständig abgeschaltet das Audio. Erforderliche Komponenten für dieses Projekt sind: Zybo Zynq-7000 Development Board AUX-Kabel Kopfhörer oder Lautsprecher Potentiometer Das Tutorial setzt voraus, dass Sie die Vivado IDE und die Zybo Treiber bereits installiert. Es gibt jede Menge gute Informationen da draußen, wie Sie dies tun, wenn Sie nicht zu tun!
Bitte nutzen Sie die angehängte zip-Datei, alle erforderlichen Dateien in der gesamten instructable verwendet extrahieren.

Schritt 1: Grundeinstellung und Hinzufügen der IP-Sperr Zynq

  1. Digitale Filter auf Zybo Foren

    Um zu beginnen eröffnen Vivado und erstellen Sie ein neues Projekt. Sobald das Projekt-Fenster öffnet sich hit "Weiter>" und geben Sie einen neuen Projektnamen und sicherzustellen, Projektstandort ist in einem leicht zugänglichen Ort. Wählen Sie die Option Projekt RTL und dann ein neues Fenster sollte up.In folgendes Fenster Suche nach xc7z010clg400-1 öffnen und sicherstellen, Teile ausgewählt. Vivado sollte ein neues Projekt zu öffnen. In der rechten Spalte namens "Flow-Navigator" klicken Sie auf "Block erstellen Design" unter der IP-Integrator Unterabschnitt gefunden. Dies eröffnet eine Block-Design-Fenster. Der rechten Maustaste in diesem Leerraum und klicken Sie auf "IP hinzufügen". In das Suchfeld geben Sie "Zynq", um die "ZYNQ7 Processing System" zu finden. Dies sollte eine ZYNQ7 IP-Block in Ihrem Blockfenster zu platzieren. Sie haben nun erfolgreich eingerichtet Ihre erste IP-Block.

Schritt 2: Konfigurieren des Zynq blockieren

  1. Digitale Filter auf Zybo Foren

    Klicken Sie auf das Import XPS-Einstellung und importieren Sie die Datei "Zybo_zyqn_def.xml", die auch unten bereitgestellt wird.
    Anschließend klicken Sie auf MIO-Konfiguration in der rechten Spalte in der obigen Abbildung zu sehen. Unter E / A-Peripheriegeräte offen GPIO und wählen GPIO MIO. Unter Anwendung proccesor Einheit auswählen Timer 0 und Watchdog. Anschließend klicken Sie auf Clock-Konfiguration in der rechten Spalte in der obigen Abbildung zu sehen. Unter PL Stoff Clocks wählen FCLK_CLK1 und FCLK_CLK2. Ändern Sie den FLCK_CLK1 angeforderte Frequenz bis 50.

Schritt 3: Hinzufügen von benutzerdefinierten Verilog-Module


  1. Wir werden auch eine benutzerdefinierte VHDL-Module. Das Modul hinzugefügt werden, wird die I2S-Controller, die unter Verwendung der axi_i2s_adi_v1_0 vor Produktionsmodul erzeugt wurde. Dieses Modul enthält die Dateien I2S-Controller, der verwendet wurde, um bclk und lrclk generieren. Die Dateien für diese IP im Hauptordner zur Verfügung gestellt. Die I2S Kommunikationsprotokoll benötigt eine bclk langsamer als mclk (Master clk) zu sein. Der Grundtakt im Idealfall sollten mclk / 4 und der mclk sollte 12.288MHz sein. Wir wollen unsere Audio bei 48 MHz zu probieren, so werden diese Einstellungen off der Audio-Codec Spezifikation entnommen. Die lrclk Signal muss auf BCLK / 64 sein, weil für den linken Kanal werden wir 32 Bits abzutasten und dann für den rechten Kanal werden wir 32 Bits abzutasten. Grundsätzlich sobald Daten erkannt wird die Takte erzeugt. Da wir Probenahme die ganze Zeit der Uhr wird kontinuierlich erzeugt werden. All-Codec Informationen finden sich unter //www.analog.com/en/products/audio-video/audi ...: http .
    Das Setup für dieses I2S-Controller-Datei wird in den späteren Schritten zur Verfügung gestellt werden.

Schritt 4: Die Custom VHDL-Module

  1. Digitale Filter auf Zybo Foren

    Digitale Filter auf Zybo Foren

    Digitale Filter auf Zybo Foren

    Digitale Filter auf Zybo Foren

    Jetzt müssen Sie die VHDL-Code, um einen 64-Bit-Audio-Sample mit den ankommenden seriellen Daten aus dem Codec zu bauen erstellen. Die 64 Bit-Konto für die 32 Bits von dem linken Kanal und 32 Bits aus dem rechten Kanal. Dieser Audio-Sample dann erhält in seinem linken und rechten Komponenten aufgeteilt und vor der Rückkehr wieder auf seine volle 64-Bit-Probenlänge gefiltert. In unserer Implementierung unserer aktuellen Audio ist nur 12 Bit lang. Dies erfordert das Hinzufügen von Nullen in den LSBs von den rechten und linken Audio-Abtastwerte getrennt nach dem Filtrieren und vor der Datenwieder serialisiert.
    Das Modul erstellt nimmt in serielle Daten, die I2S LRCLK die I2S BCLK, ein 50-MHz-Takt (CLK), ein Reset und ein Steuerstift, um die Effekte zu ändern. Die untenstehende Blockschaltbild Einzelheiten der internen Funktionalität der SerialEffects blockieren.
    Die Funktionalität der einzelnen Blöcke sowie deren Ein- und Ausgänge sind in den obigen Figuren detailliert.
    LRCLK: Wird von Personal RX und persönliche TX zwischen linken und rechten Kanal zu unterscheiden.
    BCLK: durch persönliche RX und TX persönlichen Wird als Bit-Takt zum Lesen oder Schreiben serielle Daten CLK: 50 MHz durch die Distortion Filter verwendet, um die Daten zu verarbeiten.
    Der Code für diese Module wird unten gegeben. Verwenden Sie das mitgelieferte SerialIP Zip-Datei über die in den ursprünglichen Ordner für die SerialIP IP-Block zur Verfügung gestellt.

Schritt 5: Erstellen und Package für geblockte IP-

  1. Digitale Filter auf Zybo Foren

    Um eine IP-Block erstellen Sie einfach ein neues Projekt in Vivado und klicken Sie auf "Add Sources" in der rechten Spalte unter Projektmanager zu sehen. Wählen Sie "Hinzufügen oder erstellen Design Quellen" und fügen Sie den ganzen VHDL / Verilog-Dateien mit der IP-Block zugeordnet. Vivado sollte automatisch die Hierarchie mit den VHDL / Verilog-Dateien zugeordnet. Bei der Zugabe der alle Dateien klicken Sie auf die Registerkarte "Extras" im oberen Bereich des Fensters Vivado gefunden. Unter Werkzeuge klicken Sie auf "Erstellen und Package IP". Ein neues Fenster sollte sich öffnen. Klicken Sie auf "Weiter>", um fortzufahren. In der anschließenden Fenster werden drei Optionen zur Verfügung gestellt a) Verpacken Sie Ihr aktuelles Projekt b) Paket einen bestimmten Regisseur c) Erstellen Sie eine neue AXI4 peripheren. Wählen Sie Option a) Verpacken Sie das aktuelle Projekt und klicken Sie auf "Weiter>". Im folgenden Fenster müssen Sie die Option "Include .xci Dateien" und notieren Sie die IP Position. Sie haben nun erfolgreich eine IP-Sperren, die nach der Datei, die höchste in der heirachy ist mit dem Namen wird erstellt. Für dieses Projekt zwei IP-Blöcke sind bereits erstellt und zur Verfügung gestellt. Die IP-Blöcke i2s_controller und SerialIP genannt.

Schritt 6: Hinzufügen von IP-Block zu der Verwahrungs

  1. Digitale Filter auf Zybo Foren

    In Ihrem Hauptprojekt Fenster klicken Sie auf die Registerkarte "Extras" im oberen Bereich des Fensters gefunden. Unter Werkzeuge klicken Sie auf "Projekt-Einstellungen", die das Fenster Projekteinstellungen wird geöffnet. In der rechten Spalte klicken Sie auf IP Erstellen eines Fensters, das wie das Bild oben suchen. In diesem Fenster klicken Sie auf "Repository hinzufügen" und wählen Sie den Speicherort für die IP-Block wurde aus dem letzten Schritt gespeichert. Nach der Auswahl der Ordner der IP-Block, sollte Vivado automatisch die IP und im Rahmen der "IP in ausgewählten Repository" der Name des IP-Block angezeigt werden soll hinzuzufügen. Wenn keine IP-Blöcke in diesem Unterfenster die gewählte Ordner keine IP-Blöcke enthalten. Sind alle IP-Blöcke werden in das Projekt eingefügt, in diesem Szenario fügen IP-Blöcke i2s_controller_v1_0 und SerialEffects_v1_0.

Schritt 7: Führen Sie Anschluss Automation und Connect-IP-Blöcke

  1. Digitale Filter auf Zybo Foren

    Rechtsklick auf das Block-Design-Fenster und wählen Sie Hinzufügen IP-Option. Fügen Sie das benutzerdefinierte IP i2s_controller_v1_0 und SerialEffects_v1_0. Führen Sie dann das Laufsatz Automation Tool, das in grünes Etikett über den Block-Design-Fenster sein sollte. Verbinden Sie nun FLCK_CLK1 zur Eingabe in IP-Block i2s_controller_v1_0 und CLK-Eingang in IP-Block SerialEffects_v1_0 clk. Schließen FLCK_CLK2 zur Eingabe in IP-Block i2s_controller_v1_0 DATA_CLK. Fügen Sie die IP-Block als "const" in den Block-Design. Verbinden Sie den Ausgang des IP-Block const an die Eingänge tx_enable, tx_stb und tx_enable in der IP-Block i2s_controller_v1_0. Einen weiteren hinzufügen const IP-Block, ändern Sie den konstanten Wert auf 0 der IP-Block mit einem Doppelklick auf die IP-Block und bringen Sie dann die Ausgabe der IP-Block auf den Reset-Pin in der SerialEffects_v1_0 IP-Block gefunden. Jetzt der rechten Maustaste auf alle anderen Stifte in der SerialEffects_v1_0 IP-Block, und wählen Sie External. Dies schafft externen Ports CTRL, onoff, SDATA_O und SDATA_I. Befestigen Sie einen Draht von SDATA_I in i2s_controller_v1_0 auf die SDATA_I externen Pin. Für die i2s_controller_v1_0 erstellen Äußerlichkeiten für BLCK_O, LRCLK_O und MUTEN_O Pins. Jetzt die ZYNQ7 Verarbeitungssystem der rechten Maustaste auf den Ausgangs-Pin IIC_0 und eine externe. Dies sollte ein Ausgangs IIC_0 erstellen. Auch mit der rechten Maustaste auf eine leere Stelle im Design-Fenster blockieren, wählen Sie erstellen einen Hafen und schaffen einen Ausgangspin genannt ac_mclk. Erstellen Sie eine andere Ausgangsanschluss und nennen Sie RECLRC. Bringen ac_mclk Ausgangspin zu FCLK_CLK2 und RECLRC Ausgangspin zu LRCLK. Nach Abschluss aller Schritte über dem Block-Design sollte sehr ähnlich wie die Abbildung oben aussehen. Kindly ignorieren IP Blöcke axi_i2s_adi_v1_0 und Ausgangspins RXData1, RXDATA2, FDATA1, FDATA2, outData.

Schritt 8: Erstellen Sie den HDL Wrapper

  1. Digitale Filter auf Zybo Foren

    Klicken Sie auf die Registerkarte Quellen in der Quellenbereich direkt neben dem Fluss Navigator. Der rechten Maustaste auf die Datei "design_1.bd" unter "Design-Sources" und wählen Sie "Create HDL Wrapper". Wählen Sie "Kopie generiert Wrapper Benutzer Bearbeitungen zulassen". Sicherstellen, dass alle externen Ein- und Ausgangsanschlüsse auf der Blockbauweise gefertigt sind in der Umhüllung zugeordnet. Zum Beispiel in der Abbildung oben CTRL, SDATA_O sind SDATA_I alle externen Ein- und Ausgänge in der Block-Design, die auch Teil der Umhüllung.

Schritt 9: Hinzufügen und Bearbeiten der Datei-Constraints

  1. Digitale Filter auf Zybo Foren

    Jetzt müssen wir eine Datei Einschränkungen für den Vorstand, die Verilog und VHDL-Ein- und Ausgänge zu den eigentlichen Pins auf dem Brett Karte hinzuzufügen. Die Zwänge Datei im Hauptordner zur Verfügung gestellt. Es heißt "Zybo_Master.xdc". Für Ihren Komfort hat es mit all den entsprechenden Pins aktualisiert. Um eine Datei Einschränkungen Klick auf "Add Sources" im "Flow Navigator" und wählen Sie "Datei hinzufügen Zwänge" hinzufügen. Navigieren Sie zu der Datei und Einschränkungen hinzufügen. Sie sollten nun in der Lage, es zu finden unter Ordner Einschränkungen in der Quellen Scheibe sein.
    Klicken Sie doppelt auf "ZYBO_Master.xdc". Suchen Sie den Abschnitt, der mit "Schalter" beginnt und kommentieren die ersten vier Zeilen, die mit "set_property" in diesem Kapitel zu beginnen. Ändern Sie die Namen des Textes, gefolgt von get_ports wie "sw" auf "CTRL" und "onoff" bezeichnet. Als nächstes finden Sie den Abschnitt, der den Namen "## I2S Audio Codec". Kommentieren Sie alle eingestellten Grundstücksgrenzen in diesem Abschnitt. Verwenden Sie die Abbildung oben, um das Setup aller Signalportnamen. Alle Port-Namen muss die in der Verpackung und dem Block-Design gesetzt Namen übereinstimmen. Zum Beispiel, wenn Sie Ihr ac_mclk nennen als nur mclk dann in die Zwänge Datei sicherzustellen, dass ac_mclk mit mclk ersetzt. Es ist auch zu importieren, um hinzuzufügen, zwei zusätzliche Zeilen in die Zwänge Datei set_property PULLUP true [get_ports iic_0_scl_io] und set_property PULLUP true [get_ports iic_0_sda_io]. Wieder zu ersetzen, die Namen der Stifte an den get_ports mit den Namen, die jeweils in den Block-Design verwendet und in der Umhüllung erzeugt wurden. Ohne die PULLUP Aussagen der IIC nicht in seinem AUS-Zustand gezogen werden und wird einen IIC-Signal benötigt, um den Audioblock zu steuern nicht generieren.

Schritt 10: Erzeugen der Bitstream und die Hardware Exportieren

  1. Digitale Filter auf Zybo Foren

    Ein Bitstrom muss nun generiert für das FPGA zu programmieren werden. In der Fluss Navigator wählen Sie "Generate Bitstream". Kindly Wartezeit als Bitstream-Generation kann ein längerer Prozess sein.
    Danach ist abgeschlossen, und eine Bestätigung ist als "write_bitstream Complete" am oberen rechten Bildschirmrand. Weiter gehen Sie zu Datei, Exportieren und klicken Sie auf Export Hardware. Ein Fenster sollte sich öffnen. Überprüfen Sie die "Include Bitstream" Feld ein und drücken Sie auf OK. Dann gehen Sie zu Registerkarte Datei und wählen Sie "Launch SDK". Sie können auch bestätigen Sie Ihre Implementierung, indem Sie auf Implementation Entwurf in der Durchfluss Navigator. Dies sollte dann aktualisieren Sie die Vivado Fenster sehr ähnlich wie die Abbildung oben geschrieben. Das I / O-Anschlüsse an der Unterseite des Fensters und sicherzustellen, dass jeder externe Eingangs- und Ausgangsanschluss mit dem rechten Stift zugeordnet. Jeder Stift Darstellung kann in der Zybo Referenzhandbuch gefunden werden ( https: //www.digilentinc.com/Data/Products/ZYBO/ZY ... ). Wenn jeder Stift ordnungsgemäß zugeordnet Sie mit der Vivado Teil des Projekts durchgeführt!

Schritt 11: Einrichten des SDK und Generating Board Support Package (BSP):

  1. Digitale Filter auf Zybo Foren

    Das SDK Projekt sollte design_1_wrapper_hw_platform_0 im Projekt-Explorer, der auf der linken Seite des Xilinx SDK Fensters befindet, enthalten. Eine neue Board Support Package erzeugt werden muss. Dazu klicken Sie auf Datei und dann auf Weiter von Board Support Package gefolgt. Nennen Sie das Board Support Package "RTOSDemo_bsp". Klicken Sie auf Fertig. Ein weiteres Fenster kommen sollte, sondern einfach auf OK. Weiter gehen Sie auf Datei und wählen Sie "Import". Wählen Sie bestehende Projekte unter Voll. Navigieren Sie zum Ordner bereitgestellt und suchen FreeRTOS-> Demo-> CORTEX_A9_Zynq_ZC702. Klicken Sie auf Fertig und der Hauptcode importieren soll. Nach Drücken der Taste "ctrl-s", um das SDK zu sparen sollten Sie einige Hintergrundaufgaben ausführen und kompilieren Sie den Code. Wenn keine Fehler Compilation sind Sie bereit für den nächsten Schritt. Wenn Sie mit Kompilierungsfehler dann Rechtsklick auf den Ordner und wählen Sie RTOSDemo "Change referenzierten BSP" und wählen Sie erneut "RTOSDemo_bsp".

Schritt 12: Einrichten der Code

  1. Digitale Filter auf Zybo Foren

    Digitale Filter auf Zybo Foren

    Der gesamte Code und die Dateien im Ordner RTOSDemo sind bereits an Audiobearbeitungsfunktion bearbeitet. Die primäre Methode im Code verwendet, ist in Abbildung 1 gezeigt, die zweite Zahl beschreibt die verwendet werden, um die Audio-Codec-SSM 2603 Diese Register können über IIC referenziert werden Steuerregister. Für weitere Informationen über jedes Register das Referenzhandbuch finden Sie unter http://www.analog.com/media/en/technical-documentation/data-sheets/SSM2603.pdf zugegriffen werden.

Schritt 13: Einrichten des Debugger

  1. Digitale Filter auf Zybo Foren

    Um den Code auszuführen und Programmierung des FPGA eingerichtet werden eine neue Debug-Konfiguration benötigt. Rechtsklick auf den Ordner RTOSDemo und unter "Debug As" wählen Sie "Debug Configurations".
    Wählen Sie den "Xilinx C / C ++ Applikation (System Debugger)" Tab auf der linken Seite des Bildschirms. Im Debug-Typ wählen Sie "Standalone-Anwendung Debug". Achten Sie auf Zurücksetzen Entire System und Programm FGPA auszuwählen. Wählen Sie außerdem Run ps7_init and Run Ps7_post_config. Wählen Sie nun den "Application" Registerkarte Klick herunterladen Anwendung. Stellen Sie sicher, dass Projektname ist RTOSDemo und Debug / RTOSDemo.elf. Nun können Sie auf Übernehmen und klicken Sie dann auf Debug. Nun sind Sie bereit zu gehen!

Schritt 14: Run Debugger

  1. Digitale Filter auf Zybo Foren

    Nach Ausführen des Debuggers nutzen Sie bitte den Schritt Funktion und Schritt, bis die Linie while (1) {} am Ende der Hauptfunktion. Das Debugger-Fenster ist oben dargestellt und die Schritt-Methode wird in der zweiten Reihe direkt unter "Run" in der ersten Zeile gefunden. An diesem Punkt sollte die Audio-Verarbeitung und werden auf der Grundlage der Einstellungen sollten verzerrt oder zu reinigen.