AN 987: Częściowa aktualizacja statyczna
Poradnik dotyczący rekonfiguracji
Aktualizacja statyczna Poradnik dotyczący częściowej rekonfiguracji płyty rozwojowej Intel® ™ Agilex F-Series FPGA
Niniejsza nota aplikacyjna przedstawia częściową rekonfigurację aktualizacji statycznej (SUPR) na płycie rozwojowej Intel® F-Series FPGA. Częściowa rekonfiguracja (PR) umożliwia dynamiczną rekonfigurację części układu Intel FPGA, podczas gdy pozostała część układu FPGA nadal działa. PR implementuje w projekcie wiele osób w określonym regionie, bez wpływu na działanie w obszarach poza tym regionem. Metodologia ta zapewnia następujące korzyścitages w systemach, w których wiele funkcji dzieli czas z tymi samymi zasobami FPGA:
- Umożliwia rekonfigurację w czasie wykonywania
- Zwiększa skalowalność projektu
- Skraca czas przestoju systemu
- Obsługuje funkcje dynamicznego multipleksowania czasu w projekcie
- Obniża koszty i zużycie energii poprzez efektywne wykorzystanie miejsca na płycie
Co to jest częściowa rekonfiguracja poprzez aktualizację statyczną?
W tradycyjnym PR każda zmiana w obszarze statycznym wymaga ponownej kompilacji każdej osoby. Jednakże za pomocą SUPR można zdefiniować wyspecjalizowany region, który umożliwia zmianę bez konieczności ponownej kompilacji person. Ta technika jest przydatna w przypadku części projektu, którą możesz chcieć zmienić w celu ograniczenia ryzyka, ale która nigdy nie wymaga ponownej konfiguracji w czasie wykonywania.
1.1. Wymagania dotyczące samouczka
Ten samouczek wymaga następujących elementów:
- Podstawowa znajomość przebiegu i projektu implementacji Intel Quartus® Prime Pro Edition FPGA files.
- Instalacja Intel Quartus Prime Pro Edition w wersji 22.3 z obsługą urządzeń Intel Agilex.
- Do implementacji FPGA potrzebny jest JTAG połączenie z płytą rozwojową Intel Agilex F-Series FPGA na stole warsztatowym.
- Pobierz projekt referencyjny FileS. Powiązana informacja
- Podręcznik użytkownika częściowej rekonfiguracji
- Poradniki dotyczące częściowej rekonfiguracji
- Szkolenie online dotyczące częściowej rekonfiguracji
Korporacja intelektualna. Wszelkie prawa zastrzeżone. Intel, logo Intel i inne znaki Intel są znakami towarowymi firmy Intel Corporation lub jej podmiotów zależnych. Firma Intel gwarantuje wydajność swoich produktów FPGA i półprzewodników zgodnie z aktualnymi specyfikacjami zgodnie ze standardową gwarancją firmy Intel, ale zastrzega sobie prawo do wprowadzania zmian w dowolnych produktach i usługach w dowolnym czasie bez powiadomienia. Firma Intel nie ponosi żadnej odpowiedzialności wynikającej z zastosowania lub wykorzystania jakichkolwiek informacji, produktów lub usług opisanych w niniejszym dokumencie, z wyjątkiem przypadków wyraźnie uzgodnionych na piśmie przez firmę Intel. Klienci firmy Intel powinni uzyskać najnowszą wersję specyfikacji urządzeń przed poleganiem na jakichkolwiek opublikowanych informacjach oraz przed złożeniem zamówienia na produkty lub usługi. *Inne nazwy i marki mogą być przedmiotem praw osób trzecich.
Zarejestrowany zgodnie z ISO 9001: 2015
1.2. Koniec projektu referencyjnegoview
Ten projekt referencyjny składa się z jednego 32-bitowego licznika. Na poziomie płytki projekt łączy zegar ze źródłem 50 MHz, a następnie łączy wyjście z czterema diodami LED na płycie. Wybranie wyjścia z bitów licznika w określonej kolejności powoduje, że diody LED będą migać z określoną częstotliwością. Moduł top_counter to region SUPR.
Rysunek 1. Płaski projekt referencyjny
1.3. Zakończono region aktualizacji statycznejview
Poniższy rysunek przedstawia schemat blokowy projektu PR zawierającego region SUPR. Blok A to górny obszar statyczny. Blok B to region SUPR. Blok C to partycja PR.
Rysunek 2. Projekt PR z Regionem SUPR
- Górny region statyczny — zawiera logikę projektu, która się nie zmienia. Zmiana tego regionu wymaga ponownej kompilacji wszystkich powiązanych osób. Region statyczny obejmuje część projektu, która nie zmienia się dla żadnej osoby. Region ten może obejmować zasoby urządzeń peryferyjnych i podstawowych. Należy zarejestrować całą komunikację pomiędzy partycjami SUPR i PR w regionie statycznym. Wymóg ten pomaga zapewnić zamknięcie czasowe dla dowolnej osoby w odniesieniu do regionu statycznego.
- Region B SUPR — zawiera logikę dotyczącą tylko rdzenia, która może ewentualnie ulec zmianie w celu ograniczenia ryzyka, ale nigdy nie wymaga rekonfiguracji w czasie wykonywania. Region SUPR ma takie same wymagania i ograniczenia jak partycja PR. Partycja SUPR może zawierać tylko zasoby podstawowe. Dlatego partycja SUPR musi być partycją podrzędną partycji głównej najwyższego poziomu, która zawiera projektowane urządzenia peryferyjne i zegary. Zmiana regionu SUPR tworzy obiekt SRAM File (.sof), który jest kompatybilny ze wszystkimi istniejącymi skompilowanymi plikami Raw Binary File (.rbf) files dla partycji PR C.
- Partycja C PR — zawiera dowolną logikę, którą można przeprogramować w czasie wykonywania za pomocą dowolnej logiki projektu, która pasuje i osiąga zamknięcie czasowe podczas kompilacji.
1.4. Pobierz projekt referencyjny Files
Samouczek częściowej rekonfiguracji jest dostępny w następującej lokalizacji: https://github.com/intel/fpga-partial-reconfig
Aby pobrać samouczek:
- Kliknij Klonuj lub pobierz.
- Kliknij Pobierz ZIP. Rozpakuj plik fpga-partial-reconfig-master.zip file.
- Przejdź do podfolderu tutorials/agilex_pcie_devkit_blinking_led_supr, aby uzyskać dostęp do projektu referencyjnego.
Płaski folder składa się z następujących elementów files:
Tabela 1. Projekt referencyjny Files
File Nazwa | Opis |
szczyt. sw | Najwyższy poziom file zawierające płaską realizację projektu. Moduł ten tworzy instancję podpartycji migającej_led i modułu top_counter. |
t op_counter. sw | Najwyższej klasy 32-bitowy licznik bezpośrednio sterujący diodą LED [1]. Rejestrowane wyjście licznika steruje diodą LED [0], a także zasila diody LED [2] i diody [3] poprzez moduł migający_led. |
migająca_led. SD | Definiuje ograniczenia czasowe dla projektu. |
migająca_led. sw | W tym samouczku skonwertujesz ten moduł na nadrzędną partycję PR. Moduł otrzymuje zarejestrowane wyjście modułu top_counter, który steruje diodami LED [2] i LED [3]. |
migająca_led.qpf | Projekt Intel Quartus Prime file zawierający listę wszystkich poprawek w projekcie. |
migająca_led . qs f | Ustawienia Intel Quartus Prime file zawierający przypisania i ustawienia dla projektu. |
Notatka: Folder supr zawiera kompletny zestaw filetworzysz za pomocą tej aplikacji notatka. Odwołaj się do nich files w dowolnym momencie przejścia.
1.5. Przewodnik po projekcie referencyjnym
Poniższe kroki opisują wdrożenie SUPR w płaskiej konstrukcji:
- Krok 1: Rozpoczęcie pracy
- Krok 2: Utwórz partycje projektowe
- Krok 3: Przydziel regiony rozmieszczenia i wyznaczania trasy
- Krok 4: Zdefiniuj Persony
- Krok 5: Utwórz poprawki
- Krok 6: Skompiluj wersję podstawową
- Krok 7: Skonfiguruj poprawki wdrożeniowe PR
- Krok 8: Zmień logikę SUPR
- Krok 9: Zaprogramuj tablicę
Rysunek 3. Przebieg kompilacji SUPR
1.5.1. Krok 1: Pierwsze kroki
Aby skopiować projekt referencyjny files do swojego środowiska pracy i skompiluj płaski projekt blinking_led:
- Zanim zaczniesz, pobierz projekt referencyjny Files na stronie 5.
- Utwórz katalog agilex_pcie_devkit_blinking_led_supr w swoim środowisku pracy.
- Skopiuj pobrany podfolder tutorials/agilex_pcie_devkit_blinking_led/flat do katalogu agilex_pcie_devkit_blinking_led_supr.
- W oprogramowaniu Intel Quartus Prime Pro Edition kliknij File ➤ Otwórz projekt i otwórz /flat/blinking_led.qpf.
- Aby skompilować projekt podstawowy, kliknij Przetwarzanie ➤ Rozpocznij kompilację. Raporty narzędzia Timing Analyzer otwierają się automatycznie po zakończeniu kompilacji. Możesz na razie zamknąć Analizator czasu.
1.5.2. Krok 2: Utwórz partycje projektowe
Utwórz partycje projektowe dla każdego regionu, który chcesz częściowo zmienić. W swoim projekcie możesz utworzyć dowolną liczbę niezależnych partycji lub regionów PR. Wykonaj poniższe kroki, aby utworzyć partycje projektowe dla instancji u_blinking_led jako partycji PR i instancji u_top_counter jako regionu SUPR:
- Kliknij prawym przyciskiem myszy instancję u_blinking_led w Nawigatorze projektu i kliknij opcję Projekt partycji
➤ Możliwość rekonfiguracji. Ikona partycji projektu pojawia się obok każdej instancji ustawionej jako partycja.
Rysunek 4. Tworzenie partycji projektowych - Powtórz krok 1, aby utworzyć partycję dla instancji u_top_counter.
- Kliknij opcję Przydziały ➤ Okno Projektuj partycje. W oknie wyświetlane są wszystkie przegrody projektowe w projekcie.
Rysunek 5. Okno projektowania partycji
- Kliknij dwukrotnie migającą komórkę Nazwa partycji led, aby zmienić jej nazwę na pr_partition. Podobnie zmień nazwę partycji top_counter na supr_partition.
Alternatywnie dodanie następujących wierszy do pliku flashing_led.qsf tworzy następujące partycje:
set_instance_przypisanie -name PARTYCJA pr_partycja \ -to u_migająca_led -entity top
set_instance_signment -name PARTIAL_RECONFIGURATION_PARTITION ON \ -to u_blinking_led -entity top
przypisanie_instancji_zestawu -nazwa PARTYCJA partycja_dodatkowa \ -to licznik_u_topu -entity top
przypisanie_instancji_zestawu -nazwa PARTIAL_RECONFIGURATION_PARTITION ON \ -to u_top_counter -entity top
1.5.3. Krok 3: Przydziel regiony rozmieszczenia i wyznaczania tras
Dla każdej utworzonej wersji podstawowej kompilator używa przydziału regionu partycji PR, aby umieścić odpowiedni rdzeń persona w zarezerwowanym regionie. Wykonaj poniższe kroki, aby zlokalizować i przypisać region PR na planie piętra urządzenia dla wersji podstawowej:
- Na karcie Hierarchia Project Navigator kliknij prawym przyciskiem myszy instancję u_blinking_led, a następnie kliknij Region blokady logicznej ➤ Utwórz nowy region blokady logicznej. Region pojawi się w oknie Regiony blokady logicznej.
- Określ szerokość regionu na 5 i wysokość na 5.
- Określ współrzędne regionu umieszczenia u_blinking_led w kolumnie Początek. Początek odpowiada lewemu dolnemu narożnikowi regionu. Określ początek jako X166_Y199. Kompilator oblicza (X170 Y203) jako współrzędną w prawym górnym rogu.
- Włącz opcje Zarezerwowane i Tylko rdzeń dla regionu.
- Kliknij dwukrotnie opcję Region routingu. Zostanie wyświetlone okno dialogowe Ustawienia regionu routingu blokady logicznej.
- W polu Typ trasy wybierz opcję Stałe z rozszerzeniem. Ta opcja automatycznie przypisuje długość rozszerzenia wynoszącą jeden.
- Powtórz poprzednie kroki, aby przydzielić następujące zasoby dla partycji u_top_counter:
• Wzrost — 5
• Szerokość — 5
• Początek — X173_Y199
• Region Trasowania — Naprawiono przy rozszerzeniu o długości rozszerzenia wynoszącej jeden.
• Zarezerwowane — włączone
• Tylko rdzeń — włączone
Rysunek 6. Okno Regiony blokady logicznej
Notatka: Region routingu musi być większy niż region rozmieszczenia, aby zapewnić dodatkową elastyczność routingu kompilatoratage, gdy kompilator kieruje różnymi osobami.
- Region umieszczenia musi obejmować logikę migającej diody. Aby wybrać region umieszczenia poprzez lokalizację węzła w narzędziu Chip Planner, kliknij prawym przyciskiem myszy nazwę regionu u_blinking_led w oknie Regiony blokady logicznej, a następnie kliknij opcję Zlokalizuj węzeł ➤ Zlokalizuj w narzędziu Chip Planner.
- W obszarze Raporty partycji kliknij dwukrotnie opcję Partycje projektu raportu. Chip Planner podkreśla i koduje region kolorami.
Rysunek 7. Lokalizacja węzła Chip Planner dla migającej_led
Alternatywnie dodanie następujących wierszy do pliku flashing_led.qsf tworzy te regiony:
set_instance_przypisanie -name PARTYCJA pr_partycja -to \ u_migająca_led -entity top
set_instance_signment -name PARTIAL_RECONFIGURATION_PARTITION ON \ -to u_blinking_led -entity top
przypisanie_instancji_zestawu -nazwa PARTYCJI partycja_dodatkowa -to licznik_u_topu \ -entity top
przypisanie_instancji_zestawu -nazwa PARTIAL_RECONFIGURATION_PARTITION ON -to \ u_top_counter -entity top
set_instance_signment -name PLACE_REGION „X166 Y199 X170 Y203” -to \ u_migająca_led
set_instance_assignment -nazwa RESERVE_PLACE_REGION ON -to u_blinking_led
set_instance_assignment -nazwa CORE_ONLY_PLACE_REGION ON -to u_blinking_led
set_instance_przypisanie -nazwa NAZWA_REGIONU pr_partition -to u_migająca_led
set_instance_signment -name ROUTE_REGION „X165 Y198 X171 Y204” -to \ u_migająca_led
set_instance_przypisanie -nazwa RESERVE_ROUTE_REGION WYŁ. -do u_migającej_led
set_instance_signment -name PLACE_REGION „X173 Y199 X177 Y203” -to \ u_top_counter
set_instance_signment -name RESERVE_PLACE_REGION ON -to u_top_counter
set_instance_signment -name CORE_ONLY_PLACE_REGION ON -to u_top_counter
set_instance_signment -name REGION_NAME supr_partition -to u_top_counter
set_instance_signment -name ROUTE_REGION „X172 Y198 X178 Y204” -to \ u_top_counter
set_instance_signment -name RESERVE_ROUTE_REGION WYŁĄCZONY -do u_top_counter
1.5.4. Krok 4: Zdefiniuj Persony
Ten projekt referencyjny definiuje trzy oddzielne osoby dla pojedynczej partycji PR i jedną osobę SUPR dla regionu SUPR. Wykonaj poniższe kroki, aby zdefiniować i uwzględnić te osoby w swoim projekcie. Jeśli używasz edytora tekstu Intel Quartus Prime, wyłącz opcję Dodaj file
do bieżącego projektu podczas zapisywania files.
- Utwórz nowy plik migający_led_slow.sv, migający_led_empty.sv i top_counter_fast.sv SystemVerilog files w twoim katalogu roboczym. Upewnij się, że plik flashing_led.sv znajduje się już w katalogu roboczym.
- Wprowadź następującą zawartość dla SystemVerilog files:
Tabela 2. Projekt referencyjny Personas SystemVerilog
File Nazwa Opis Kod miga_led_wolno. sw Diody LED migają wolniej skala czasu 1 ps / 1 ps 'default_nettype brak
moduł migający_led_slow // zegar
zegar przewodowy wejściowy, reset przewodu wejściowego, przewód wejściowy [licznik 31:01,
// Sygnały sterujące dla przewodu wyjściowego diod LED led_two_on,
przewód wyjściowy led_three_on parametr lokalny COUNTER_TAP = 27;
reg led_two_on_r; noga led_three_on_r; przypisz led_two_on = led_two_on_r; przypisz led_three_on = led_three_on_r; zawsze_ff @(zegar pozowania) rozpocznij led_two_on_r <= licznik[COUNTER_TAP]; led_three_on_r <= licznik[COUNTER_TAP]; moduł końcowymiga_led_pusty. sw Diody LED pozostają włączone skala czasu 1 ps / 1 ps 'default_nettype brak modułu miga_led_empty( // przewód wejściowy zegara zegar, reset przewodu wejściowego, przewód wejściowy [licznik 31:01, // Sygnały sterujące dla przewodu wyjściowego LEC led_two_on, przewód wyjściowy led_three_on dalszy… File Nazwa Opis Kod // Dioda LED jest aktywna, niski poziom przypisania led_two_on = l'IDO; przypisz led_three_on = 11b0; moduł końcowy top_counter_fast.sv Druga SUPR 'skala czasu 1 ps / 1 ps osoba Thdefault_nettype brak modułu top_counter_fast // Sygnały sterujące dla przewodu wyjściowego diod LED led_one_on, przewodu wyjściowego [31:0] licznik, // wejście zegara przewodu zegara ) ; parametr lokalny LICZNIK TAP = 23; reg [31:0] liczba_d; przypisz liczbę = liczba_d; przypisz led_one_on = ount_d[COUNTER_TAP]; zawsze_ff @(zegar pozowania) rozpocznij licznik_d <= licznik_d + 2; koniec .:moduł - Trzask File ➤ Zapisz jako i zapisz plik .sv files w bieżącym katalogu projektu.
1.5.5. Krok 5: Utwórz poprawki
Przepływ projektowania PR wykorzystuje funkcję wersji projektu w oprogramowaniu Intel Quartus Prime. Twój początkowy projekt to wersja podstawowa, w której definiujesz granice obszarów statycznych i regiony, które można rekonfigurować na FPGA. Z wersji podstawowej tworzysz dodatkowe wersje. Te wersje zawierają różne wdrożenia dla regionów PR. Jednakże wszystkie wersje implementacji PR wykorzystują te same wyniki rozmieszczania i routingu najwyższego poziomu, co wersja podstawowa. Aby skompilować projekt PR, tworzysz wersję wdrożenia PR dla każdej osoby. Ponadto dla każdej wersji należy przypisać typ wersji Częściowa rekonfiguracja – Podstawowa lub Częściowa rekonfiguracja – Implementacja Persona. W poniższej tabeli wymieniono nazwę wersji i typ wersji dla każdej wersji. Wersja impl_blinking_led_supr_new.qsf to implementacja persony SUPR.
Tabela 3. Nazwy i typy wersji
Nazwa wersji | Typ rewizji |
migająca_led | Częściowa rekonfiguracja – Baza |
migająca_led_domyślna | Częściowa Rekonfiguracja – Implementacja Persony |
migająca_led_wolno | Częściowa Rekonfiguracja – Implementacja Persony |
migająca_led_pusta | Częściowa Rekonfiguracja – Implementacja Persony |
impl_blinking_led_supr_new | Częściowa Rekonfiguracja – Implementacja Persony |
1.5.5.1. Ustawianie wersji podstawowej
Wykonaj poniższe kroki, aby ustawić migającą_led jako wersję podstawową:
- Kliknij opcję Projekt ➤ Wersje.
- W polu Typ wersji wybierz opcję Częściowa rekonfiguracja – podstawowa.
Ten krok dodaje następujące elementy do pliku flashing_led.qsf:
##blinking_led.qsf set_global_przypisanie -nazwa REVISION_TYPE PR_BASE
1.5.5.2. Tworzenie wersji wdrożeniowych
Wykonaj poniższe kroki, aby utworzyć wersje implementacyjne:
- W oknie dialogowym Wersje kliknij dwukrotnie < >.
- W polu Nazwa wersji określ migającą_led_domyślną i wybierz migającą diodę dla opcji Na podstawie wersji.
- W polu Typ wersji wybierz opcję Częściowa rekonfiguracja – Implementacja Persona.
- Wyłącz opcję Ustaw jako bieżącą wersję.
- Powtórz kroki od 2 do 5, aby ustawić typ wersji dla innych wersji implementacji:
Nazwa wersji | Typ rewizji | Na podstawie Revision |
migająca_led_wolno | Częściowa Rekonfiguracja – Implementacja Persony | migająca_led |
migająca_led_pusta | Częściowa Rekonfiguracja – Implementacja Persony | migająca_led |
impl_blinking_led_supr_new | Częściowa Rekonfiguracja – Implementacja Persony | migająca_led |
Rysunek 8. Tworzenie wersji implementacyjnych
Każdy plik .qsf file zawiera teraz następujące zadanie:
set_global_przypisanie -nazwa REVISION_TYPE PR_IMPL
set_instance_signment -name ENTITY_REBINDING miejsce_holder -to u_top_counter
set_instance_signment -name ENTITY_REBINDING miejsce_holder -to u_blinking_led
1.5.6. Krok 6: Skompiluj wersję podstawową
Wykonaj poniższe kroki, aby skompilować wersję podstawową i wyeksportować regiony statyczne i SUPR do późniejszego wykorzystania w wersjach implementacyjnych dla nowych osób PR:
- Ustaw migającą diodę jako bieżącą wersję, jeśli nie została jeszcze ustawiona.
- W oknie partycji projektu kliknij (…) obok najdalszej prawej kolumny i włącz eksport końcowy File kolumna. Możesz także wyłączyć lub zmienić kolejność kolumn.
- Aby automatycznie wyeksportować ostateczną migawkę partycji projektu implementacji PR po każdej kompilacji, określ następujące opcje dla eksportu końcowego File opcje dla partycji root i SUPR. Plik .qdb filedomyślnie eksportuje do katalogu projektu.
• partycja_główna — migający_led_static.qdb
• supr_partition — migająca_led_supr_partition_final.qdb
Rysunek 9. Automatyczny eksport w oknie partycji projektuAlternatywnie następujące przypisania .qsf eksportują partycje automatycznie po każdej kompilacji:
przypisanie_instancji_zestawu -nazwa EXPORT_PARTITION_SNAPSHOT_FINAL \ migająca_led_static.qdb -to | -element na górze
set_instance_signment -name EXPORT_PARTITION_SNAPSHOT_FINAL \ migająca_led_supr_partition_final.qdb -to u_top_counter \ -entity top - Aby skompilować wersję podstawową migającą diodę led, kliknij Przetwarzanie ➤ Rozpocznij
Kompilacja. Alternatywnie możesz użyć następującego polecenia, aby skompilować tę wersję:
quartus_sh –flow kompilacja migająca_led -c migająca_led Po pomyślnej kompilacji wykonywane są następujące czynności files pojawiają się w katalogu projektu:
• migający_led.sof
• migająca_led.pr_partition.rbf
• migająca_led.supr_partition.rbf
• migający_led_static.qdb
• migający_led_supr_partition_final.qdb
1.5.7. Krok 7: Skonfiguruj zmiany w implementacji PR
Przed wygenerowaniem strumienia bitów PR do programowania urządzenia należy przygotować wersje implementacji PR. Ta konfiguracja obejmuje dodanie regionu statycznego .qdb file jako źródło file dla każdej rewizji wdrożenia. Ponadto musisz określić
odpowiedni podmiot regionu PR. Wykonaj poniższe kroki, aby skonfigurować poprawki implementacji PR:
- Aby ustawić bieżącą wersję, kliknij Projekt ➤ Wersje, wybierz migającą_led_default jako nazwę wersji, a następnie kliknij Ustaw bieżącą. Alternatywnie możesz wybrać bieżącą wersję na głównym pasku narzędzi Intel Quartus Prime.
- Aby zweryfikować prawidłowe źródło tej wersji implementacji, kliknij Projekt ➤ Dodaj/Usuń Filew projekcie. Potwierdź, że plik migający_led.sv file pojawia się w file lista.
- Aby zweryfikować prawidłowe źródło file aby zapoznać się z wersjami implementacji, kliknij Projekt ➤ Dodaj/Usuń files w programie Project i Dodaj następujące źródło files za poprawki wdrożeniowe. Jeśli jest obecny, usuń migający_led.sv z listy projektów files.
INazwa wersji wdrożenia Źródło File migająca_led_pusta migająca_led_pusta.sv migająca_led_wolno flashing_led_slow.sv - Ustaw migającą_led_default jako bieżącą wersję.
- Aby określić plik .qdb file jako źródło root_partition, kliknij Przydziały ➤ Okno Projektuj partycje. Kliknij dwukrotnie bazę danych partycji File komórkę i określ plik migający_led_static.qdb file.
- Podobnie, określ migający_led_supr_partition_final.qdb jako bazę danych partycji File dla supr_partition.
Rysunek 10.
Alternatywnie, użyj następujących przypisań .qsf, aby określić .qdb:
set_instance_assignment -nazwa QDB_FILE_PARTITION \ migająca_led_static.qdb -to |
set_instance_assignment -nazwa QDB_FILE_PARTITION \ flashing_led_supr_partition_final.qdb -to u_top_counter - W oknie Projektowanie partycji kliknij (…) sąsiadujący z najdalszą prawą kolumną i włącz kolumnę Ponowne wiązanie jednostki.
-
W komórce Ponowne wiązanie jednostki określ nową nazwę jednostki dla partycji PR, którą zmieniasz w bieżącej wersji implementacji. W przypadku wersji implementacji migającej_led_default nazwa jednostki to migająca_led. W tym przypadku nadpisujesz instancję u_blinking_led z wersji podstawowej kompilacji nową jednostką migającą_led. Informacje o innych wersjach implementacji można znaleźć w poniższej tabeli:
Rewizja Wartość ponownego powiązania jednostki migająca_led_wolno migająca_led_wolno migająca_led_pusta migająca_led_pusta Rysunek 11. Ponowne wiązanie encji
Alternatywnie możesz użyć następujących wierszy w pliku .qsf każdej wersji, aby ustawić przypisania:
##blinking_led_default.qsf
set_instance_przypisanie -name ENTITY_REBINDING migająca_led \ -to u_migająca_led
##blinking_led_slow.qsf
set_instance_przypisanie -name ENTITY_REBINDING migająca_led_slow \ -to u_migająca_led
##blinking_led_empty.qsf
set_instance_przypisanie -name ENTITY_REBINDING migająca_led_pusta \ -to u_migająca_led - Usuń tekst symbolu zastępczego z komórki ponownego wiązania jednostki dla partycji supr.
- Aby skompilować projekt, kliknij Przetwarzanie ➤ Rozpocznij kompilację. Alternatywnie, do skompilowania tego projektu użyj następującego polecenia: quartus_sh –flow kompilacja migająca_led –c migająca_led_default
- Powtórz kroki od 4 do 11, aby przygotować i skompilować wersje implementacji migające_led_slow i migające_led_empty.
1.5.8. Krok 8: Zmień logikę SUPR
Aby zmienić funkcjonalność logiki w obrębie partycji SUPR, należy zmienić źródło partycji SUPR. Wykonaj następujące kroki, aby zastąpić instancję u_top_counter w partycji SUPR jednostką top_counter_fast.
- Aby ustawić wersję implementacji SUPR jako aktualną, kliknij Projekt ➤ Wersje i ustaw impl_blinking_led_supr_new jako bieżącą wersję lub wybierz
wersja na głównym pasku narzędzi Intel Quartus Prime. - Aby zweryfikować prawidłowe źródło file aby zobaczyć wersję implementacji, kliknij Projekt ➤
Dodaj/Usuń files w programie Project i sprawdź, czy plik top_counter_fast.sv jest źródłem wersji implementacji impl_blinking_led_supr_new. Jeśli jest obecny, usuń plik top_counter.sv z listy projektów files. - Aby określić plik .qdb file powiązany z partycją główną, kliknij opcję Przydziały ➤ Okno Projektuj partycje, a następnie dwukrotnie kliknij Bazę danych partycji File komórka, aby określić migający_led_static.qdb.
Alternatywnie, aby to przypisać, użyj następującego polecenia file: przypisanie_instancji_setu -nazwa QDB_FILE_PARTITION \ migająca_led_static.qdb -to | - W komórce Ponowne wiązanie jednostki dla partycji pr, określ odpowiednią nazwę jednostki. Dla tego npample, określ encję migającą_led_empty. W tym przypadku nadpisujesz instancję u_blinking_led z wersji podstawowej kompilacji nową jednostką linking_led_empty. W pliku .qsf istnieje teraz następujący wiersz:
##impl_blinking_led_supr_new.qsf set_instance_przypisanie -name ENTITY_REBINDING migająca_led_empty \ -to u_blinking_led - W komórce Ponowne wiązanie jednostki dla partycji supr określ encję top_counter_fast. top_counter_fast to nazwa statycznej jednostki, która zastępuje u_top_counter po ukończeniu SUPR.
##impl_blinking_led_supr_new.qsf set_instance_przypisanie -name ENTITY_REBINDING top_counter_fast \ -to u_top_counter
- Aby skompilować projekt, kliknij Przetwarzanie ➤ Rozpocznij kompilację. Alternatywnie, użyj następującego polecenia, aby skompilować tę wersję projektu: quartus_sh –flow kompilacja migająca_led –c \ impl_blinking_led_supr_new
1.5.9. Krok 9: Zaprogramuj tablicę
Wykonaj poniższe kroki, aby podłączyć i zaprogramować płytkę rozwojową Intel Agilex F-Series FPGA.
- Podłącz zasilacz do płyty rozwojowej Intel Agilex F-Series FPGA.
- Podłącz kabel USB pomiędzy portem USB komputera a sprzętem do programowania USB na płycie rozwojowej.
- Otwórz oprogramowanie Intel Quartus Prime, a następnie kliknij Narzędzia ➤ Programista. Patrz Programowanie płytki rozwojowej.
- W Programmerze kliknij opcję Hardware Setup, a następnie wybierz USB-Blaster.
- Kliknij opcję Automatyczne wykrywanie, a następnie wybierz urządzenie AGFB014R24B.
- Kliknij OK. Oprogramowanie Intel Quartus Prime wykrywa i aktualizuje programator za pomocą trzech urządzeń FPGA na płycie.
- Wybierz urządzenie AGFB014R24B, kliknij Zmień Filei załaduj plik migający_led_default.sof file.
- Włącz opcję Program/Configure dla migającego_led_default.sof file.
- Kliknij Start i poczekaj, aż pasek postępu osiągnie 100%.
- Obserwuj miganie diod LED na płycie.
- Aby zaprogramować tylko region PR, kliknij prawym przyciskiem myszy plik migający_led_default.sof file w Programerze i kliknij Dodaj Programowanie PR File. Wybierz plik migający_led_slow.pr_partition.rbf file.
- Wyłącz program/konfigurację dla migającego_led_default.sof file.
- Włącz program/konfigurację dla migającego_led_slow.pr_partition.rbf file, a następnie kliknij przycisk Start. Na płycie zaobserwuj, jak diody LED [0] i LED [1] nadal migają. Gdy pasek postępu osiągnie 100%, diody LED [2] i LED [3] migają wolniej.
- Aby przeprogramować region PR, kliknij prawym przyciskiem myszy plik .rbf file w Programerze, a następnie kliknij opcję Zmień programowanie PR File.
- Wybierz plik .rbf fileaby pozostałe dwie osoby obserwowały zachowanie na tablicy. Ładowanie pliku migającego_led_default.pr_partition.rbf file powoduje miganie diod LED z oryginalną częstotliwością i ładowanie migającego_led_empty.pr_partition.rbf file powoduje, że diody LED pozostają włączone. 17. Aby zmienić logikę SUPR, powtórz krok 7 powyżej, aby wybrać plik impl_blinking_led_supr_new.sof. Po zmianie tego file, dioda [0:1] miga teraz szybciej niż wcześniej. Drugi PR .rbf files są również kompatybilne z nowym plikiem .sof.
Notatka: Asembler generuje plik .rbf file dla regionu SUPR. Jednak nie powinieneś tego używać file przeprogramować układ FPGA w czasie wykonywania, ponieważ partycja SUPR nie tworzy instancji mostka zamrażającego, kontrolera regionu PR i innej logiki w całym systemie. Kiedy wprowadzasz zmiany w logice partycji SUPR, musisz przeprogramować pełny plik .sof file z kompilacji rewizji implementacji SUPR.
Rysunek 12. Programowanie płytki rozwojowej
1.5.9.1. Rozwiązywanie problemów z błędami programowania PR
Zapewnienie właściwej konfiguracji programatora Intel Quartus Prime Programmer i podłączonego sprzętu pomaga uniknąć błędów podczas programowania PR.
Jeśli napotkasz błędy w programowaniu PR, zapoznaj się z sekcją „Rozwiązywanie problemów z błędami programowania PR” w Podręczniku użytkownika Intel Quartus Prime Pro Edition: Częściowa rekonfiguracja, aby uzyskać wskazówki dotyczące rozwiązywania problemów krok po kroku.
Informacje powiązane
Rozwiązywanie problemów z błędami programowania PR
1.5.10. Modyfikowanie partycji SUPR
Możesz modyfikować istniejącą partycję SUPR. Po zmodyfikowaniu partycji SUPR należy ją skompilować, wygenerować plik .sof filei zaprogramuj tablicę, bez kompilowania innych osób. Na przykładample, wykonaj poniższe kroki, aby zmienić moduł top_counter_fast.sv na szybsze zliczanie:
- Ustaw impl_blinking_led_supr_new jako bieżącą wersję.
- W pliku top_counter_fast.sv file, zamień instrukcję count_d + 2 na liczbę_d + 4.
- Uruchom następujące polecenia, aby ponownie zsyntetyzować blok SUPR i wygenerować nowy plik .sof file: quartus_sh –flow kompilacja migająca_led \ -c impl_blinking_led_supr_new
Powstały plik .sof zawiera teraz nowy region SUPR i używa migającej diody jako domyślnej osoby (po włączeniu zasilania).
1.6. Historia wersji dokumentu AN 987: Aktualizacja statyczna Poradnik dotyczący częściowej rekonfiguracji Historia wersji
Wersja dokumentu | Wersja Intel Quartus Prime | Zmiany |
2022.10.24 | 22. | Pierwsze wydanie dokumentu. |
Zaktualizowano dla pakietu Intel® Quartus®Prime Design Suite: 22.3
Odpowiedzi na najczęściej zadawane pytania:
Wyślij opinię
P. Co to jest częściowa rekonfiguracja aktualizacji statycznej
Częściowa rekonfiguracja aktualizacji statycznej na stronie 3
P. Czego potrzebuję do tego samouczka?
Wymagania dotyczące samouczka na stronie 3
P Gdzie mogę uzyskać projekt referencyjny?
Projekt referencyjny do pobrania Files na stronie 5
P Jak stworzyć projekt SUPR?
Opis projektu referencyjnego na stronie 6
P: Czym jest persona PR?
Zdefiniuj Persony na stronie 10
P Jak zmienić logikę SUPR? A Zmień logikę SUPR na stronie 16
A Zmień logikę SUPR na stronie 16
P Jak zaprogramować płytkę?
Programowanie tablicy na stronie 18
P: Jakie są znane problemy i ograniczenia PR?
Fora pomocy technicznej Intel FPGA: PR
Wersja online
Wyślij opinię
Identyfikator: 749443
AN-987
Wersja: 2022.10.24
Dokumenty / Zasoby
![]() |
Płytka rozwojowa FPGA Intel Agilex serii F [plik PDF] Instrukcja użytkownika Agilex F-Series, Agilex F-Series Płyta rozwojowa FPGA, Agilex F-Series Płyta rozwojowa FPGA, Płyta rozwojowa, Zarząd |