4.3 KiB
Tworzenie Własnego Firmware dla Mesa 7i92TF (Efinix Trion T20)
Karta Mesa 7i92TF (wersja z żeńskim portem DB25 oraz złączem IDC26 2x13) jest oparta na układzie FPGA Efinix Trion T20F256. Oznacza to, że do edycji i kompilacji oprogramowania układowego wykorzystuje się środowisko Efinity IDE firmy Efinix, a sam kod opisany jest w języku VHDL (architektura HostMot2).
Poniżej znajduje się kompletny przewodnik krok po kroku, jak przygotować i skompilować własną konfigurację pinów.
Krok 1: Instalacja Efinity IDE
- Zarejestruj się na stronie producenta układu FPGA: Efinix Inc..
- Pobierz i zainstaluj oprogramowanie Efinity IDE (zalecana wersja to
2021.2lub nowsza, zgodnie z konfiguracją projektu w pliku.xml). - Pobierz plik licencji Efinix (jest wymagany do działania kompilatora).
Krok 2: Przygotowanie plików źródłowych
W Twoim katalogu ze źródłami (source/) znajduje się spakowany projekt dla tego układu:
- Rozpakuj plik
7i92t-hm2.zip(zawierający projekt dla układu T20F256) do nowego folderu roboczego, np.:unzip 7i92t-hm2.zip -d 7i92t_workspace - Przejdź do nowo utworzonego folderu.
Krok 3: Stworzenie nowej konfiguracji pinów (VHDL)
Rozkład pinów dla złącz na karcie Mesa 7i92TF jest zdefiniowany w plikach o nazwie PIN_*.vhd.
- P2 (DB25 Female): Piny wejścia/wyjścia od
I/O 00doI/O 16. - P1 (IDC26 2x13): Piny wejścia/wyjścia od
I/O 17doI/O 33.
Instrukcja tworzenia własnego pliku pinów:
- Skopiuj istniejący plik (np. popularny standard 5-osiowy
PIN_5ABOBx2D_34.vhd) na nową nazwę:cp PIN_5ABOBx2D_34.vhd PIN_MOJA_KONFIGURACJA_34.vhd - Otwórz plik
PIN_MOJA_KONFIGURACJA_34.vhdw edytorze tekstu. - Zmień nazwę pakietu (package) w nagłówku i stopce pliku:
package PIN_MOJA_KONFIGURACJA_34 is ... end PIN_MOJA_KONFIGURACJA_34; - Zdefiniuj moduły sprzętowe (
ModuleID): W sekcjiconstant ModuleIDokreślasz, ile maksymalnie sprzętowych modułów (StepGen, QCount, PWM) ma być aktywnych w strukturze FPGA. - Przypisz piny do funkcji (
PinDesc): W sekcjiconstant PinDescprzypisujesz fizycznym pinomI/Oodpowiednie funkcje.- Przypisanie jako StepGen (krok):
IOPortTag & x"00" & StepGenTag & StepGenStepPin - Przypisanie jako StepGen (kierunek):
IOPortTag & x"00" & StepGenTag & StepGenDirPin - Przypisanie jako standardowe wejście/wyjście (GPIO):
IOPortTag & x"00" & NullTag & NullPin - Uwaga: Druga kolumna bajtowa (np.
x"00",x"01") określa numer instancji danego modułu (np. StepGen 0, StepGen 1...).
- Przypisanie jako StepGen (krok):
Krok 4: Podłączenie konfiguracji w projekcie
Musisz poinstruować plik główny (Top-level), aby użył Twojej nowej konfiguracji:
- Otwórz plik
TopEthernet16HostMot2_efx.vhd. - Odszukaj listę klauzul
use work.PIN_.... - Zakomentuj obecnie aktywną linię (wstawiając
--na początku), np.:--use work.PIN_PBXMAXD_34.all; - Dodaj i odkomentuj swoją konfigurację:
use work.PIN_MOJA_KONFIGURACJA_34.all;
Krok 5: Kompilacja w Efinity IDE
- Uruchom program Efinity IDE.
- Otwórz projekt, wybierając plik
seveni92t.xmlz folderu roboczego. - Dodaj swój nowy plik
PIN_MOJA_KONFIGURACJA_34.vhddo listy plików projektu w zakładce Design (jeśli nie został automatycznie dodany). - Kliknij przycisk Generate Bitstream (ikona odtwarzania/zielona strzałka).
- Środowisko przeprowadzi syntezę, placement i routing.
- Po pomyślnej kompilacji, gotowy plik wyjściowy
.binznajdziesz w podkataloguoutflow/(np.seveni92t.bin).
Krok 6: Wgranie nowego firmware na kartę
Gdy masz już skompilowany plik .bin, wgraj go za pomocą programu mesaflash:
- Zapisz firmware do pamięci użytkownika:
mesaflash --device 7i92t --addr 192.168.1.121 --write outflow/seveni92t.bin - Zweryfikuj poprawność zapisu:
mesaflash --device 7i92t --addr 192.168.1.121 --verify outflow/seveni92t.bin - Załaduj nowy firmware (reset karty):
Po przeładowaniu karta zacznie działać z Twoją własną konfiguracją pinów.
mesaflash --device 7i92t --addr 192.168.1.121 --reload