W tym przykładzie projektowym pokazano interfejs podrzędny KSZTAŁT* AXI*-3 na prostym podzespołu niestandardowej pamięci Verilog dla systemów Qsys. Możesz wykorzystać ten przykład jako podstawę dla własnych niestandardowych interfejsów podrzędnych AXI. Komponent zawiera również opcjonalny interfejs Avalon® streamingu (Avalon-ST) oraz interfejs Avalon® Memory-Mapped (Avalon-MM), demonstrując, w jaki sposób można zastosować wiele standardów interfejsu w jednym komponentze.
Podręcznik Quartus® II wykorzystuje ten przykład do zilustrowania procesu pakowania komponentu własności intelektualnej (IP) za pomocą edytora komponentów i niestandardowych poleceń Tcl sprzętu. Pliki HDL można wykorzystać w tym przykładzie, aby dowiedzieć się, jak używać edytora komponentów do tworzenia własnego prostego pliku sprzętowego Tcl (_hw.tcl), zgodnie z opisem w sekcji Tworzenie komponentów Qsys (PDF). Można również zapoznać się z załączonym plikiem _hw.tcl, aby zobaczyć zaawansowane zastosowania poleceń sprzętowych Tcl, w tym parametry pochodne, zwrot walidacji oraz objaśnienie przywłaszczenie w celu dostosowania interfejsu UI parametrów w Qsys i obecnych interfejsów jako opcjonalne. Szczegółowe informacje na temat poleceń sprzętowych Tcl można znaleźć w sekcji Referencyjny interfejs komponentu (PDF).
Więcej informacji na temat korzystania z Qsys do tworzenia systemu zawierającego niestandardowe komponenty można znaleźć w sekcji Tworzenie systemu z Qsys (PDF) w podręczniku Quartus II.
Korzystanie z tego przykładu projektu
Pobierz plik demo_axi3_memory.zip i rozpakuj zawartość. W tym przykładzie projekt wymaga pakietu Altera® Complete Design Suite (ACDS) wersji 13.0 lub nowszej.
Plik ZIP zawiera następujące pliki komponentu IP w podkatalogu /ip:
-
Pliki projektowe demo_axi_memory.sv i single_clock_ram.sv
- Niestandardowy plik Tcl sprzętu demo_axi_memory_hw.tcl, aby zapakować komponent do Qsys
- Plik pakietu SystemVerilog używany do generowania komunikatów w symulacji wyjściowej/ /verification_lib/verbosity_pkg.sv (który można również znaleźć w katalogu instalacji oprogramowania Quartus II jako /ip/altera/sopc_builder_ip/verification/lib/verbosity_pkg.sv)
Aby wykorzystać ten komponent we własnym systemie Qsys, skopiuj podkatalog /ip z rozpakuwanego pliku ZIP do katalogu projektów Quartus II. Gdy tworzysz lub otwierasz system Qsys w projekcie, Qsys wykrywa komponent IP w podkatalogu /ip i dodaje komponent do listy w sekcji Projekt w bibliotece, w kategorii Pamięci i kontrolery pamięci/On-Chip.
Plik ZIP zawiera również następujące pliki do symulacji autonomicznego komponentu w podkatalogu /ip/symulacja:
- Plik testbench tb_mem.sv
- Skrypt run_sim.tcl do przeprowadzenia symulacji w programie Mentor Graphics® ModelSim* z plikiem mem.do, wyświetlającym przebiegi fali pokazujące działanie komponentu.
Aby przeprowadzić symulację w programie ModelSim, skonfiguruj swój katalog roboczy na podkatalog /ip/symulacja z rozpakowywanego pliku ZIP. Wpisz źródło run_sim.tcl.
Ponadto plik ZIP zawiera następujące pliki oprogramowania Quartus® II:
- Prosty test Qsys system test.qsys, aby zilustrować tworzenie informacji komponentu w systemie Qsys
- Atammy plik projektu oprogramowania Quartus II, dzięki któremu można opcjonalnie wygenerować i skompilować testowy system Qsys: test.qpf, test.qsf, test.sdc
Aby wyświetlić komponent powstał w ramach testowego systemu Qsys, otwórz plik projektu test.qpf w oprogramowaniu Quartus II i otwórz plik test.qsys w Qsys. Kliknij dwukrotnie na komponent w kolumnie Nazwa lub opis w zakładce Zawartość systemu (lub kliknij prawym przyciskiem myszy komponent i wybierz Edytuj),by wyświetlić edytor parametrów.
Użytkowanie tego projektu podlega warunkom umowy licencyjnej Intel® Design Example Agreementoraz podlega jej postanowień.
Szczegóły projektu
Przykładowy komponent Qsys zawiera następujące interfejsy:
Interfejs podrzędny AXI-3
Interfejs podrzędny AXI to interfejs mapowany w pamięci do bloku pamięci na chipie. Interfejs ten powinien być kontrolowany przez interfejs nadrzędny AXI lub Avalon-MM, który może zapisywać i odczytywać z bloku pamięci. Parametry określają szerokości sygnału AXI ID, szerokość adresu podrzędnego i szerokość danych.
Interfejs Avalon-ST
Podczas tworzenia inaulacji tego komponentu w Qsys, możesz włączyć lub wyłączyć opcjonalny interfejs Avalon-ST. Interfejs ten został zainspirowany aplikacjami telefonii, w których dźwięki (DTMF, zajęty, dial tone, ringback itp.) są przechowywane jako powtarzające się strumienie bajtów, które można przełączyć w razie potrzeby na konkretny port. Port Avalon-ST zapewnia jeden taki strumień, który jest zdefiniowany przez adres startowy, adres stop i dane przechowywane w pamięci RAM między tymi dwoma adresami włącznie. Wyrazy są wyjściowe w kolejności od adresu startowego do adresu stop; każde słowo najpierw wysyła MSB. W tej wersji demonstracyjnej przyjęto, że adres stop jest większy niż adres początkowy.
Weźmy na przykład poniższą zawartość pamięci:
adres startowy: 0xbeef_0742
0xdace_32f7
adres stop: 0xb0de_13ef
Wynikowy strumień bajtowy: be-ef-07-42-da-ce-32-f7-b0-de-13-ef-be-ef-07 ...
Interfejs csr Avalon-MM
Interfejs Avalon-MM to prosty interfejs rejestru stanu i stanu (CSR), który umożliwia sterowanie opisanym powyżej portem streamingu. Interfejs ten jest wymagany tylko wtedy, gdy interfejs Avalon-ST jest włączony i jest wyłączony, gdy interfejs Avalon-ST jest wyłączony. Parametry określają szerokość adresu podrzędnego Avalon® i szerokość danych.
Rejestry sterowania znajdują się w zakresie adresów odrębnym od zakresu adresów pamięci, a adres podstawowy mogą być przypisane w dowolnym miejscu wygodnym na mapie pamięci systemowej. Poniższa tabela zawiera wykaz celów dla każdego rejestru kontrolowego:
(Słowo) Adres |
Opis |
---|---|
Base_addr + 2 |
Uruchom [0] |
Base_addr + 1 |
Adres stop [AV_DATA_W-1:0] |
Base_addr + 0 |
Adres startowy [AV_DATA_W-1:0] |
Edytor parametrów Qsys
Poniższy zrzut ekranu ukazuje interfejs użytkownika edytora parametrów dla komponentu pamięci Demo AXI w Qsys.