Inhaltsverzeichnis:

Design des SPI-Masters in VHDL - Gunook
Design des SPI-Masters in VHDL - Gunook

Video: Design des SPI-Masters in VHDL - Gunook

Video: Design des SPI-Masters in VHDL - Gunook
Video: SPI Master in FPGA, VHDL Code Example 2024, Juli
Anonim
Design des SPI-Masters in VHDL
Design des SPI-Masters in VHDL

In diesem anweisbaren werden wir einen SPI Bus Master von Grund auf in VHDL entwerfen.

Schritt 1: Überblick über SPI

  • SPI ist ein synchroner serieller Bus
  • Seine Popularität und Einfachheit machten es zu einem De-facto-Standard in der seriellen Kommunikation
  • Vollduplex-Bus
  • Einfaches Protokoll und einer der schnellsten seriellen Busse

Schritt 2: Designspezifikationen

Dies sind die Spezifikationen des SPI-Masters, den wir entwerfen werden:

  • Unterstützt alle vier Betriebsmodi; dynamisch konfigurierbar
  • Clock-Enable-Steuerung zum Energiesparen
  • Statisch konfigurierbare Wortlänge und Geschwindigkeit
  • Single Interrupt für Senden und Empfangen

Schritt 3: Starten

Zunächst sollte unsere IP zwei Schnittstellen haben. Eine ist eine serielle Schnittstelle und die andere ist eine parallele Schnittstelle. Die serielle Schnittstelle besteht aus den De-facto-Standardsignalen von SPI: MOSI, MISO, SS, SCLK.

MOSI wird manchmal als SDO und MISO manchmal als SDI bezeichnet.

Die serielle Schnittstelle wird verwendet, um mit externen Peripheriegeräten, dh SPI-Slaves, zu kommunizieren.

Die parallele Schnittstelle wird verwendet, um mit unserem Host zu kommunizieren, dh einem Mikrocontroller oder Mikroprozessor, der dem Master tatsächlich mitteilt, welche Daten seriell über die seriellen Leitungen übertragen und empfangen werden müssen. dh alle Datenbusse gehören zur parallelen Schnittstelle.

Wir haben eine globale Uhr, die die interne SPI-Logik steuert, sowie SCLK, die wir intern generieren.

Wir haben auch einige Steuersignale wie Schreibfreigabe, Taktfreigabe. Und Interrupt und andere Statussignale.

Da wir es mit komplexen Regelungsbedingungen zu tun haben, ist es einfacher, solche seriellen Kommunikations-IPs als FSM zu konzipieren. Wir werden den SPI-Master auch als FSM konzipieren. Die FSM wird von einem anderen internen Takt getrieben, der zweimal SCLK ist. Diese interne Uhr wird unter Verwendung von synchronen Zählern aus der globalen Uhr erzeugt.

Alle Steuersignale, die Taktdomänen überqueren, haben Synchronisierer, um auf der sicheren Seite zu sein.

Schritt 4: RTL-Ansicht des SPI-Master-Kerns und der Simulationswellenformen

RTL-Ansicht des SPI-Master-Kerns und der Simulationswellenformen
RTL-Ansicht des SPI-Master-Kerns und der Simulationswellenformen
RTL-Ansicht des SPI-Masterkerns und der Simulationswellenformen
RTL-Ansicht des SPI-Masterkerns und der Simulationswellenformen

Es handelt sich um ein reines RTL-Design, bei dem keine dedizierten FPGA-IPs verwendet werden. Daher ist es ein vollständig portierbarer Code für jedes FPGA.

Empfohlen: