Spisu treści:

Projekt SPI Master w VHDL: 6 kroków
Projekt SPI Master w VHDL: 6 kroków

Wideo: Projekt SPI Master w VHDL: 6 kroków

Wideo: Projekt SPI Master w VHDL: 6 kroków
Wideo: SPI Master in FPGA, VHDL Code Example 2024, Lipiec
Anonim
Projekt SPI Master w VHDL
Projekt SPI Master w VHDL

W tej instrukcji zaprojektujemy od podstaw SPI Bus Master w VHDL.

Krok 1: Przegląd SPI

  • SPI to synchroniczna magistrala szeregowa
  • Jego popularność i prostota sprawiły, że stał się de facto standardem w komunikacji szeregowej
  • Magistrala pełnodupleksowa
  • Prosty protokół i jedna z najszybszych magistrali szeregowych

Krok 2: Specyfikacje projektowe

Oto specyfikacje SPI Master, które zaprojektujemy:

  • Obsługuje wszystkie cztery tryby pracy; dynamicznie konfigurowalny
  • Zegar umożliwia kontrolę w celu oszczędzania energii
  • Statycznie konfigurowalna długość i szybkość słowa
  • Pojedyncze przerwanie zarówno dla transmisji, jak i odbioru

Krok 3: Rozpoczęcie

Przede wszystkim nasz adres IP powinien mieć dwa interfejsy. Jeden to interfejs szeregowy, a drugi to interfejs równoległy. Interfejs szeregowy składa się ze standardowych sygnałów SPI: MOSI, MISO, SS, SCLK.

MOSI jest czasami nazywane SDO, a MISO jest czasami nazywane SDI.

Interfejs szeregowy służy do komunikacji z zewnętrznymi urządzeniami peryferyjnymi, tj. Slave SPI.

Interfejs równoległy służy do komunikacji z naszym hostem, tj. mikrokontrolerem lub mikroprocesorem, który faktycznie mówi Masterowi, jakie dane mają być przesyłane i odbierane szeregowo przez linie szeregowe. tj. Wszystkie magistrale danych należą do interfejsu równoległego.

Mamy zegar globalny, który steruje wewnętrzną logiką SPI, a także SCLK, który generujemy wewnętrznie.

Mamy również pewne sygnały sterujące, takie jak włączenie zapisu, włączenie zegara. Oraz przerwania i inne sygnały stanu.

Ponieważ mamy do czynienia ze złożonymi warunkami sterowania, łatwiej jest zaprojektować takie adresy IP komunikacji szeregowej jak FSM. Zaprojektujemy również master SPI jako FSM. FSM będzie sterowany przez inny zegar wewnętrzny, który jest dwukrotnym zegarem SCLK. Ten wewnętrzny zegar jest generowany przy użyciu synchronicznych liczników zegara globalnego.

Wszystkie sygnały sterujące, które przecinają domeny zegarowe, mają synchronizatory, aby były po bezpiecznej stronie.

Krok 4: Widok RTL rdzenia głównego SPI i przebiegów symulacji

Widok RTL rdzenia głównego SPI i przebiegów symulacji
Widok RTL rdzenia głównego SPI i przebiegów symulacji
Widok RTL rdzenia głównego SPI i przebiegów symulacji
Widok RTL rdzenia głównego SPI i przebiegów symulacji

Jest to czysta konstrukcja RTL bez dedykowanych adresów IP FPGA. Dlatego jest to w pełni przenośny kod do dowolnego układu FPGA.

Zalecana: