1. Miejsce FPGA w funkcjonalnej architekturze pocisku

FPGA jest układem scalonym, którego połączenia i funkcje logiczne są konfigurowane po wyprodukowaniu. W przeciwieństwie do procesora nie wykonuje z natury jednego strumienia instrukcji; po konfiguracji staje się równoległą strukturą sprzętową. W przeciwieństwie do ASIC nie wymaga nowego zestawu masek półprzewodnikowych przy każdej zmianie logiki. Bruno i Eschemann opisują tę relację w rozdz. 1, s. 2–20, dla dydaktycznego porównania FPGA–ASIC i architektury Artix-7; nie jest to benchmark dowolnych CPU, FPGA i ASIC.2

W systemie rakietowym FPGA może realizować deterministyczne interfejsy, obróbkę strumienia sensora, maszyny stanów, kodowanie danych, nadzór czasu i sprzętowe przyspieszenie obliczeń. Jest to katalog klas funkcji zsyntetyzowany przez autora z podręczników projektowania, nie opis konkretnego uzbrojenia.2,3 Nie oznacza to, że każdy nowoczesny pocisk zawiera FPGA albo że dowolna funkcja powinna zostać przeniesiona z procesora do logiki programowalnej.

W funkcjonalnym łańcuchu pokładowym FPGA może znajdować się między przetwornikiem sensora a procesorem, przy interfejsach pamięci i łączy albo przy monitorach czasu i wbudowanej diagnostyce. Nie jest jednak synonimem komputera naprowadzania: funkcje wysokiego poziomu mogą pozostać w CPU lub DSP, a programowalna logika jedynie porządkuje strumienie danych. Taki heterogeniczny podział Bruno i Eschemann pokazują dla systemu MicroBlaze w rozdz. 13, s. 443–474, ale nie dla pocisku.2 Zależności z zasilaniem, zegarami, resetem, BIT, płytką i obudową są syntezą systemową autora rozwijaną w dalszych rozdziałach.

Teza monografii: FPGA daje przewagę nie przez abstrakcyjną „szybkość”, lecz wtedy, gdy deterministyczna realizacja funkcji jest powiązana z budżetem czasu i błędu, modelem uszkodzeń, kwalifikacją środowiskową oraz odtwarzalną konfiguracją bazową całego systemu (configuration baseline).

Artykuł opisuje technologię i proces weryfikacji, a nie architekturę konkretnego uzbrojenia. Obecność interfejsu, bloku DSP lub rodziny układów w katalogu producenta nie jest dowodem zastosowania w nazwanym pocisku. Wszystkie studia są jawnie fikcyjne, nieoperacyjne i służą wyłącznie pokazaniu metody inżynierskiej. Nie podają interfejsów serwisowych, kluczy, sposobów obchodzenia bezpiecznego rozruchu, danych współczesnego uzbrojenia ani logiki sterowania bojowego.

Mapa argumentu

  1. FPGA nie jest programem wykonującym się na uniwersalnym procesorze. HDL opisuje strukturę i współbieżność, a narzędzia mapują ją na LUT, rejestry, pamięci, bloki DSP i sieć połączeń.
  2. Główną przewagą jest przewidywalna równoległość. Wiele torów może przetwarzać dane w tym samym czasie z ustaloną liczbą taktów opóźnienia, jeśli cały budżet i przeciążenia są jawne.
  3. Konfiguracja FPGA jest elementem konfiguracji bazowej sprzętu. Obejmuje kod źródłowy, własność intelektualną wielokrotnego użycia (intellectual property, IP), ograniczenia czasowe, wersje narzędzi, ziarno kompilacji, raporty czasowe oraz plik wynikowy.
  4. Symulacja funkcjonalna nie dowodzi działania w urządzeniu. Projekt musi przejść syntezę, implementację, statyczną analizę czasową, sprawdzenie CDC, testy sprzętowe i środowiskowe.
  5. Zegar i reset tworzą architekturę. Błędne przejście między domenami może działać miesiącami, a zawieść przy określonej temperaturze lub fazie zegara.
  6. Fixed-point jest decyzją o błędzie matematycznym i zasobach. Szerokość słowa, zaokrąglanie, nasycenie i skalowanie należą do wymagań.
  7. Rekonfigurowalność nie oznacza dowolnej aktualizacji w polu. W sprzęcie wojskowym zmiana obrazu wymaga autoryzacji, kompatybilności, weryfikacji i zachowania możliwości odtworzenia.
  8. FPGA nie usuwa problemu procesora ani ASIC. Najczęściej współpracuje z nimi w architekturze heterogenicznej.

2. Od logiki stałej i PLD do FPGA, SoC i adaptacyjnych SoC

Pierwsze pokładowe funkcje cyfrowe realizowano logiką stałą: elementami dyskretnymi, a następnie układami SSI/MSI. PROM, PAL i niewielkie PLD/CPLD pozwoliły wiązać prostą funkcję lub sekwencję z programowalnym elementem, lecz bez zasobów potrzebnych do rozbudowanych torów danych.2,3 Jednokrotnie programowalne układy antifuse ograniczały potrzebę zewnętrznego ładowania konfiguracji; dokumentacja rodziny RTAX pokazuje fizyczne połączenie antifuse jako trwałe po zaprogramowaniu.13 FPGA z ulotną pamięcią konfiguracji SRAM przyniosły wielokrotną rekonfigurację i większą gęstość, kosztem sekwencji ładowania obrazu przy uruchomieniu.12 FPGA z nieulotną pamięcią Flash zajęły pozycję pośrednią.5 SoC, a później adaptacyjne SoC, połączyły logikę programowalną, procesory, sieć wewnętrzną i twarde akceleratory; kamienie milowe AMD potwierdzają tę ewolucję wyłącznie dla rodzin tego producenta.1,7

Każdy etap przesuwał koszt. Logika stała utrudniała zmianę funkcji; reprogramowalność przeniosła ciężar na narzędzia, kontrolę konfiguracji i regresję; SoC zwiększył liczbę wzajemnie zależnych obrazów i wersji. Historia nie jest więc prostym marszem ku „większej szybkości”, ale zmianą miejsca, w którym trzeba udowodnić poprawność i utrzymywalność.

3. Profile misji i wynikające z nich wymagania elektroniczne

Profil misji obejmuje nie tylko krótki okres działania po uruchomieniu. Łańcuch warunków zaczyna się w produkcji, obejmuje wieloletnie magazynowanie, transport, obsługę, kontrolę przed użyciem, gwałtowny stan przejściowy uruchomienia i właściwe działanie. Z tego wynikają odrębne wymagania: zachowanie danych i konfiguracji bez zasilania, czas gotowości, dopuszczalna energia rozruchu, odporność po starzeniu oraz możliwość wykrycia ukrytego uszkodzenia przed misją. MIL-STD-810H Change 1 ujmuje wpływy środowiska przez profil cyklu życia i tailoring, nie jako uniwersalny zestaw poziomów prób.9

Udar, szerokopasmowe wibracje, cykle termiczne, zakłócenia elektromagnetyczne (EMI), zgodność elektromagnetyczna (EMC) i chwilowe spadki zasilania nie są niezależnymi rubrykami testowymi. Udar może naruszyć połączenie, cykl termiczny zmienić jego rezystancję, a impuls prądowy FPGA ujawnić osłabioną integralność zasilania. Wymaganie należy zatem przypisać do reprezentatywnego zespołu płytka–obudowa–połączenia–zalewa, a nie tylko do katalogowej kwalifikacji układu scalonego; konkretne narażenia i ich kombinacje muszą wynikać z tailoringu profilu, natomiast MIL-STD-461G obejmuje EMI wyposażenia i podsystemów, nie samodzielną kwalifikację karty lub układu.9,10 Szczegółowo wrócimy do tego w rozdziale 15.

4. Kryteria podziału funkcji między CPU, DSP, FPGA i ASIC

Te klasy realizują logikę, ale różnią się sposobem jej ustalania.

Klasa Jak powstaje funkcja Najmocniejsza cecha Typowa słabość
CPU/MCU sekwencja instrukcji z pamięci elastyczny software i łatwe złożone decyzje współdzielenie czasu, jitter, narzut wykonania
DSP instrukcje i bloki zoptymalizowane do obliczeń sygnałowych MAC, regularna matematyka i biblioteki nadal architektura wykonywania programu
FPGA konfiguracja programowalnej struktury równoległość, interfejsy i deterministyczny pipeline złożony dowód timing/CDC, narzut programowalności
ASIC funkcja utrwalona w projekcie krzemu wydajność, moc i powierzchnia przy dużej skali koszt NRE, długi cykl oraz ryzyko respinu
CPLD niewielka programowalna logika o przewidywalnej strukturze proste sekwencje, glue logic, szybki start mała pojemność i ograniczone zasoby

Tabela jest syntezą autora, nie wynikiem jednego benchmarku. Rozdział 1 Bruno i Eschemann, zwłaszcza s. 2–5 i tab. 1.1 na s. 5, uzasadnia oś FPGA–ASIC: NRE, iterację bez nowych masek oraz narzut programowalnej infrastruktury. Salauyou i Klimowicz, rozdz. 10.1, s. 291–294, opisują równoległość i potokowanie FPGA względem programowego DSP, ale nie dostarczają uniwersalnego rankingu wszystkich klas.2,3

CPU dobrze realizuje algorytmy z wieloma gałęziami, złożone struktury danych i funkcje zmieniane przez software. FPGA dobrze obsługuje równoległe strumienie, precyzyjne protokoły i operacje powtarzane w każdym takcie. ASIC jest atrakcyjny, gdy funkcja jest stabilna, wymagania mocy ostre, a wielkość produkcji uzasadnia projekt krzemu. Są to kryteria przydziału funkcji, a nie gwarancje wydajności konkretnego układu.2,3

Wybór nie jest konkursem wydajności. Procesor czasu rzeczywistego może być wystarczający i znacznie łatwiejszy do utrzymania. FPGA może zmniejszyć opóźnienie, ale zwiększyć koszt weryfikacji. ASIC może być najmniejszy, ale nie dać się poprawić po odkryciu błędu. Architektura systemowa rozdziela funkcje według ryzyka oraz cyklu życia. Ten wniosek jest syntezą autora z kompromisów technologicznych opisanych w obu lokalnych podręcznikach; źródła nie ustanawiają reguły wyboru dla elektroniki rakietowej.2,3

5. Architektura zasobów FPGA i rzeczywisty koszt programowalności

Klasyczny FPGA zawiera kilka rodzin zasobów:

  • LUT realizujące funkcje kombinacyjne;
  • przerzutniki przechowujące stan;
  • programowalną sieć połączeń;
  • bloki pamięci wewnętrznej;
  • bloki DSP, zwykle z mnożnikami i akumulatorami;
  • sieci zegarowe, PLL lub MMCM;
  • programowalne I/O;
  • czasem szybkie transceivery, kontrolery pamięci i procesory.

LUT można rozumieć jako małą pamięć tablicy prawdy. Bity wejściowe wybierają adres, a zawartość daje wynik funkcji. Rejestr na wyjściu zatrzymuje stan na zboczu zegara. Narzędzia łączą tysiące takich elementów, aby zbudować tor danych (datapath) i sterowanie (control).

Współczesny adaptive SoC wykracza poza klasyczny FPGA. AMD opisuje Versal jako heterogeniczne połączenie programowalnej logiki, procesorów, bloków DSP lub AI, twardych interfejsów i sieci NoC.1 Jest to informacja o dostępnej rodzinie komponentów. Nie uprawnia do twierdzenia, że konkretna rakieta używa Versal albo nawet tej samej klasy SoC.

Twarde i miękkie bloki IP

Hard IP jest fizycznie wbudowane w krzem: procesor, transceiver lub kontroler pamięci. Soft IP jest dostarczane jako opis albo wynik pośredni mapowany do programowalnej logiki. Rozróżnienie to ilustrują zasoby Artix-7 i system MicroBlaze w rozdz. 1 i 13 Bruno i Eschemann oraz heterogeniczna architektura Versal w AM011; przewaga mocy lub timingu nie jest gwarantowana bez pomiaru konkretnej funkcji.1,2

„Soft” nie oznacza, że IP jest software'em: po implementacji staje się sprzętową strukturą. Możliwość przeniesienia zależy od postaci dostawy, użytych prymitywów i narzędzi, więc nie wolno jej zakładać na podstawie samej etykiety.2,4

IP ma własną wersję, parametry, ograniczenia i model weryfikacyjny. Aktualizacja może zmienić implementację czasową albo zachowanie narożne mimo niezmienionego interfejsu. FAA AC 20-152A, sekcja 5.4 dotycząca COTS IP, wiąże użycie IP z oceną danych, procesów i assurance; wniosek o objęciu wersji generatora oraz ustawień konfiguracją bazową jest syntezą autora dla tego artykułu.4

6. Strumień danych od sensora do komputera naprowadzania

Bezpieczny model funkcjonalny ma postać: sensor i przetwornik → odbiór oraz znacznik czasu → walidacja → filtracja i ekstrakcja cech → bufor → interfejs procesora. Jest to model klas funkcji, nie opis konkretnego pocisku. FPGA bywa wartościowy tam, gdzie każda próbka musi przejść przez tę samą, możliwą do policzenia sekwencję operacji. Nie przesądza to, gdzie realizowana jest estymacja ani jak komputer używa wyniku.

HDL opisuje sprzęt, nie kolejność zdań

W kodzie procesora instrukcje zwykle wykonują się w określonej kolejności. W HDL wiele przypisań opisuje logikę działającą równolegle. Blok kombinacyjny wyznacza funkcję wejść, a blok sekwencyjny aktualizuje rejestry na zboczu zegara. Kod, który wygląda proceduralnie, może opisywać sieć multiplekserów i przerzutników.

Ta różnica rodzi charakterystyczne błędy:

  • przypadkowe utworzenie latcha przez niepełne przypisania;
  • pomylenie przypisania blokującego i nieblokującego;
  • niejawne rozszerzenie znaku;
  • obcięcie szerokości wyniku;
  • założenie, że pętla w HDL „wykona się po kolei” bez rozwinięcia sprzętu;
  • użycie konstrukcji poprawnej w symulacji, lecz niesyntezowalnej;
  • różnicę między wartością początkową w symulatorze a stanem po rzeczywistym resecie.

Bruno i Eschemann prowadzą równolegle SystemVerilog i VHDL, stale wiążąc zapis z powstałym zasobem: LUT, rejestrem, pamięcią, automatem lub potokiem.2 Salauyou i Klimowicz podobnie przechodzą od modelu funkcjonalnego przez Verilog, syntezę i analizę RTL do oceny zasobów oraz szybkości.3 Dla systemu krytycznego oba podręczniki są punktem wejścia, nie substytutem reguł projektu i niezależnej weryfikacji.

Logika kombinacyjna i sekwencyjna

Logika kombinacyjna nie ma pamięci: wyjście zależy od aktualnych wejść. Logika sekwencyjna zawiera stan aktualizowany zegarem. Dojrzały projekt oddziela te role, ponieważ statyczna analiza czasowa rozumie ścieżkę od jednego rejestru do następnego.

Pętla kombinacyjna zawraca wyjście logiki na wejście bez rejestru. Jej zachowanie zależy od opóźnień propagacji i może być nieprzewidywalne. Salauyou i Klimowicz wskazują pętle kombinacyjne oraz niezamierzone latche jako typowe zagrożenia projektu synchronicznego.3

Zasada „wszystko rejestrować” nie jest absolutem, lecz dobre granice rejestrowe:

  • rozbijają długą ścieżkę;
  • stabilizują interfejs;
  • upraszczają timing;
  • dają jednoznaczny punkt próbkowania;
  • zwiększają jednak latencję i liczbę rejestrów.

Wstawienie potoku (pipeline) zmienia protokół. Dane pojawiają się później, a znaczniki ważności (valid), identyfikatory i błędy muszą zostać opóźnione o tę samą liczbę taktów. Projekt z poprawną wartością i przesuniętym znacznikiem ważności jest funkcjonalnie błędny.

7. Determinizm: budżet opóźnienia, przepustowość, fluktuacja i termin

FPGA może realizować operację co takt z ustaloną latencją. Trzeba jednak odróżnić:

  • opóźnienie (latency) — czas od przyjęcia wejścia do wyniku;
  • przepustowość (throughput) — liczba wyników na jednostkę czasu;
  • fluktuacja opóźnienia (jitter) — zmienność chwili wyniku;
  • termin (deadline) — najpóźniejsza dopuszczalna chwila;
  • odstęp inicjacji (initiation interval) — liczba taktów między kolejnymi przyjętymi danymi.

Potok o latencji 20 taktów może przyjmować nową próbkę co takt. Iteracyjny dzielnik może mieć podobną latencję, lecz blokować kolejne wejścia. Średnia przepustowość nie mówi, czy pojedyncza wiadomość dotrzyma terminu.

Deterministyczność kończy się na granicy niezdeterminowanego arbitrażu, pamięci zewnętrznej, sieci w układzie (network-on-chip, NoC) albo procesora. Jeśli kilka źródeł współdzieli zasób, najgorsze opóźnienie zależy od polityki arbitra. Projekt musi analizować najgorszy dozwolony ruch, nie tylko symulację przy małym obciążeniu.

Tor danych i sterowanie

Datapath wykonuje operacje na danych: dodawanie, przesuwanie, mnożenie, filtrowanie i przechowywanie. Control decyduje, kiedy operacja zachodzi i które źródło jest aktywne. Rozdzielenie ułatwia weryfikację: datapath można testować wektorami liczbowymi, a automat — przejściami stanów.

FSMD łączy finite state machine z datapath. Stan automatu określa mikrooperacje wykonywane w danym cyklu. Salauyou i Klimowicz pokazują metody przechodzenia od algorytmu przez ASM/ASMD do sprzętowej implementacji.3 W elektronice pokładowej taki wzorzec pasuje do sekwencerów, kontrolerów protokołów i obliczeń wielocyklowych.

FSM powinien mieć zdefiniowane:

  • kodowanie stanów;
  • stan po resecie;
  • warunki każdego przejścia;
  • zachowanie dla kombinacji nielegalnej;
  • timeout dla oczekiwania zewnętrznego;
  • reakcję na błąd i reset częściowy;
  • właściwości, które nigdy nie mogą zostać naruszone.

Automat bez domyślnego wyjścia może utworzyć latch. Automat bez odzyskania z nielegalnego stanu może pozostać zablokowany po pojedynczym błędzie. Z kolei automatyczne „powróć do IDLE” nie zawsze jest bezpieczne, bo może ukryć uszkodzenie. Reakcja wynika z analizy hazardu.

Pamięć wewnętrzna

FPGA zawiera różne formy pamięci:

  • rejestry dla niewielkiego, szybkiego stanu;
  • LUTRAM wykorzystującą konfigurowalne LUT;
  • block RAM dla większych buforów;
  • niekiedy UltraRAM lub inne duże bloki;
  • FIFO zbudowane na pamięci oraz wskaźnikach;
  • pamięć konfiguracji, zależną od technologii układu.

Pamięć wbudowana ma małe i przewidywalne opóźnienie, nie zajmuje pinów płytki i może mieć dwa porty. Salauyou i Klimowicz opisują zastosowania jako cache, tightly coupled memory, tablice funkcji i FIFO oraz podkreślają, że przepustowość pamięci bywa wąskim gardłem systemu.3

Własność dual-port nie oznacza dowolnych dwóch operacji. Trzeba znać tryb portów, zegary i zachowanie kolizji, gdy oba porty dotykają tego samego adresu. Opcje read-first, write-first i no-change dają inne wyniki. Symulator oraz fizyczny blok muszą używać zgodnego modelu.

Inicjalizacja RAM podczas konfiguracji może przechowywać stałe lub program soft-core. Po utracie zasilania pamięć ulotna traci stan, nawet jeśli bitstream po następnym starcie wypełni ją ponownie. Należy odróżnić zawartość startową od danych zachowywanych między uruchomieniami.

Pamięć zewnętrzna i arbitraż

Gdy pojemność on-chip nie wystarcza, używa się pamięci zewnętrznej. Zyskuje się pojemność, lecz pojawiają się:

  • kontroler i sekwencja inicjalizacji;
  • integralność sygnału na PCB;
  • odświeżanie DRAM;
  • zmienna latencja banków oraz arbitrażu;
  • korekcja błędów;
  • duży chwilowy pobór prądu;
  • dodatkowy element podatny na starzenie i DMSMS.

Buforowanie ukrywa część zmienności. Pierścieniowy bufor lub FIFO między sensorem a pamięcią absorbuje krótkie opóźnienie, ale ma skończoną pojemność. Wymaganie powinno określać najdłuższą blokadę oraz reakcję na przepełnienie. Nadpisanie starych danych, odrzucenie nowych i zatrzymanie producenta są trzema różnymi politykami.

W systemie czasu rzeczywistego kontroler pamięci nie może być oceniany wyłącznie przepustowością szczytową. Potrzebne są worst-case latency, sprawiedliwość arbitrażu, priorytety i scenariusz wszystkich klientów działających jednocześnie.

FIFO jako granica czasowa

FIFO rozdziela producenta i odbiorcę. W jednej domenie zegarowej ułatwia wyrównanie chwilowych różnic. W dwóch domenach staje się specjalizowanym mechanizmem CDC.

Stan FIFO opisują wskaźniki zapisu i odczytu, znaczniki full/empty oraz ewentualnie poziom zajętości. Pełne i puste FIFO może mieć te same młodsze bity wskaźnika, dlatego potrzebna jest dodatkowa informacja o okrążeniu. W asynchronicznym FIFO wskaźniki często przesyła się kodem Graya, aby między kolejnymi wartościami zmieniał się jeden bit.2

Kod Graya nie rozwiązuje wszystkiego. Potrzebne są synchronizatory, constraints opóźnień między bitami, analiza resetu obu domen i dowód, że odbiorca poprawnie interpretuje flagi. FIFO może bezbłędnie przenosić dane, a nadal zgubić wiadomość, jeśli logika wyższego poziomu źle obsługuje full.

Studium 1 — jawnie fikcyjny, nieoperacyjny tor sensora z twardym terminem

To ćwiczenie nie odwzorowuje żadnego uzbrojenia. Przyjmijmy laboratoryjny sensor generujący ramkę 32 próbek co 100 µs oraz zegar toru 20 MHz, czyli 50 ns na takt. Wymaganie R-TIME-01 brzmi: „od przyjęcia ostatniej próbki kompletna, oznaczona i sprawdzona ramka ma znaleźć się w kolejce odbiorcy nie później niż po 20 µs; żadna zaakceptowana ramka nie może zostać utracona ani zastąpiona”. Termin odpowiada 400 taktom.

Model i budżet. Odbiór oraz walidacja zużywają najwyżej 12 taktów, potok filtra 48, ekstrakcja cechy 24, pakowanie 8, przejście kontrolowanego arbitrażu najwyżej 64, a zapis do wyjściowego FIFO 2. Razem jest to 158 taktów, czyli 7,9 µs. Rezerwa wynosi 242 takty, czyli 12,1 µs. Potok ma odstęp inicjacji jednego taktu, więc jego opóźnienie nie ogranicza przepustowości. Ośmioramkowe FIFO absorbuje blokadę odbiorcy do 800 µs tylko wtedy, gdy przed blokadą było puste; kontrakt systemowy ogranicza jednak legalną blokadę do 300 µs, czyli trzech kolejnych ramek. Zapas czterech miejsc pokrywa niekorzystne wyrównanie chwil rozpoczęcia. To budżet najgorszego przypadku, nie średnia z demonstracji.

Przeciążenie i przepływ zwrotny. Sygnał gotowości odbiorcy może zatrzymać wyjście (backpressure), lecz nie sensor. Dlatego projekt rozróżnia trzy zdarzenia: arrived oznacza kompletną ramkę, która dotarła do granicy decyzji wejściowej, accepted — ramkę poprawną, dla której zarezerwowano pojemność potoku lub FIFO, a rejected_before_accept — ramkę odrzuconą przed akceptacją z powodu błędu walidacji albo nadejścia poza legalną obwiednią ruchu i blokady. Po przekroczeniu umownego czasu blokady projekt zatrzaskuje błąd przeciążenia; kolejna ramka spoza legalnej obwiedni nie zostaje przyjęta i jest liczona wyłącznie jako rejected_before_accept. Ramka już zaakceptowana pozostaje zobowiązaniem toru: nie wolno jej utracić, zastąpić ani później przeklasyfikować jako odrzuconej. Kryterium R-DATA-02 wymaga stabilności danych i znaczników bocznych podczas blokady oraz niezmiennika accepted = issued + buffered/in-flight; odrzucenia przed akceptacją są liczone osobno. Pomocniczy bilans wejścia, po uwzględnieniu ramek czekających jeszcze na decyzję, brzmi arrived = accepted + rejected_before_accept + awaiting_decision.

Semantyka resetu. W tym fikcyjnym torze żądanie resetu funkcjonalnego przy niezerowym buffered/in-flight nie kasuje FIFO, stanu zaakceptowanych ramek ani liczników epoki. Zatrzaskuje reset_pending, wstrzymuje nowe akceptacje i — przy legalnym backpressure zdefiniowanym w kontrakcie — pozwala rozliczyć wszystkie zobowiązania bieżącej epoki przez wydanie ramek odbiorcy. Dopiero gdy buffered/in-flight = 0 i bilans A5 jest zamknięty, resetuje stan sterowania i rozpoczyna następną, jawnie numerowaną epokę. Wyzerowanie accepted lub wskaźników FIFO przy pozostawieniu niewydanych danych jest naruszeniem R-DATA-02, a nie sposobem spełnienia równania. Reset niszczący pamięć, na przykład po utracie zasilania, leży poza kontraktem tego ćwiczenia i nie może być modelowany jako zwykły reset funkcjonalny.

Testy i asercje. Asercja A1 mierzy od znacznika końca wejścia do zapisu FIFO i wymaga wyniku <= 400 taktów. A2 sprawdza stabilność danych przy valid && !ready. A3 dowodzi zachowania kolejności, a A4 zakazuje zapisu przy pełnym FIFO. A5 w każdym rozliczanym cyklu i osobno dla każdej epoki dowodzi accepted[e] = issued[e] + buffered/in-flight[e]; podczas reset_pending liczniki epoki są monotoniczne, zobowiązanie nie znika, a przejście do e+1 jest dozwolone wyłącznie po osiągnięciu zera po prawej stronie. Osobna część A5 sprawdza bilans arrived[e] = accepted[e] + rejected_before_accept[e] + awaiting_decision[e] i zakazuje zwiększenia rejected_before_accept dla ramki już zaakceptowanej. Test obciąża wszystkie źródła arbitra jednocześnie, przesuwa blokady względem ramek przez wszystkie fazy oraz zgłasza reset przy pustym i przy częściowo wypełnionym FIFO. W drugim przypadku sprawdza wstrzymanie nowych akceptacji, zachowanie zawartości, kolejności i liczników, wydanie wszystkich wcześniejszych zobowiązań, a dopiero potem zmianę numeru epoki i inicjalizację sterowania.

Dowód i decyzja. Pakiet dowodowy składa się ze śledzenia R-TIME-01/R-DATA-02 do A1–A5, osiągniętego pokrycia scenariuszy, statycznej analizy czasowej wszystkich zadeklarowanych zegarów, raportu analizy CDC oraz pomiaru na płytce z kontrolowanym generatorem ruchu. Wynik średni nie wystarcza: choćby jeden legalny ślad powyżej 400 taktów albo nieuzasadnione wyłączenie ścieżki z analizy odrzuca architekturę. Jeśli dowód przechodzi, FPGA ma uzasadnienie jako deterministyczny przedprocesor; jeśli CPU spełnia ten sam kontrakt z podobną rezerwą i prostszym dowodem, pozostawienie funkcji w CPU jest racjonalną decyzją.

8. Zegary, reset, CDC i spójność stanu systemu

Przejście między domenami zegarowymi (clock-domain crossing, CDC) oraz przejście resetu między domenami (reset-domain crossing, RDC) są częścią architektury, a nie poprawką nakładaną po napisaniu RTL.

Zegar nie jest zwykłym sygnałem

Zegar wyznacza chwile próbkowania stanu. FPGA ma dedykowane sieci zegarowe o małym skew, bufory i PLL. Prowadzenie zegara zwykłą siecią logiczną może pogorszyć skew i utrudnić analizę. Bramkowanie zegara przypadkową bramką może tworzyć krótkie impulsy.

Clock enable zwykle pozwala zatrzymać aktualizację rejestru bez manipulowania samą siecią zegarową. Dedykowane zasoby clock gating mogą być używane zgodnie z dokumentacją urządzenia, lecz wymagają bezglitchowego sterowania. Oszczędność dynamicznej mocy musi być porównana z ryzykiem i czasem ponownego uruchomienia.

PLL może mnożyć, dzielić i przesuwać fazę zegara, filtrować część jitteru i przełączać źródła. Sygnał locked nie zawsze oznacza, że cały system jest gotowy; mówi o stanie bloku według definicji producenta. Po utracie źródła i przełączeniu trzeba określić, co dzieje się z logiką, danymi oraz resetem.

Salauyou i Klimowicz omawiają generowanie zegarów, constraints oraz dynamiczną rekonfigurację PLL.3 W sprzęcie krytycznym możliwość zmiany częstotliwości nie oznacza, że wolno robić to w dowolnym stanie. Przejście musi być sekwencją z zatrzymaniem klientów, potwierdzeniem lock i kontrolowanym wznowieniem.

Czasy przygotowania i podtrzymania oraz statyczna analiza czasowa

Rejestr wymaga, by dane były stabilne przez czas setup przed zboczem i hold po zboczu. Dla ścieżki synchronicznej uproszczone wymaganie setup ma postać:

$$t_{clk\rightarrow q}+t_{logic}+t_{route}+t_{setup} \leq T_{clk}+t_{skew}.$$

Narzędzie oblicza wymagany i rzeczywisty czas dla milionów ścieżek. Slack dodatni oznacza zapas względem danego constraintu; ujemny — naruszenie. Brak naruszeń ma sens tylko wtedy, gdy wszystkie zegary, wejścia, wyjścia i wyjątki opisano poprawnie.

Hold sprawdza minimalne opóźnienie po tym samym lub powiązanym zboczu. Zmniejszenie częstotliwości zwiększa okres i pomaga setup, ale zasadniczo nie naprawia typowego naruszenia hold. To częsty błąd intuicji software'owej.

False path oraz multicycle path są twierdzeniami funkcjonalnymi, nie sposobem uciszenia raportu. False path oznacza, że ścieżka nigdy nie musi być próbkowana synchronicznie. Multicycle mówi, że protokół daje więcej niż jeden takt. Błędny wyjątek może ukryć realną awarię.

Domknięcie czasowe

Timing closure oznacza, że zaimplementowany projekt spełnia wszystkie prawidłowe ograniczenia w wymaganych narożnikach. Nie osiąga się go wyłącznie zmianą opcji narzędzia. Możliwe działania to:

  • dodanie pipeline'u;
  • uproszczenie logiki między rejestrami;
  • replikacja źródła o dużym fanout;
  • użycie dedykowanego bloku DSP lub RAM;
  • zmiana architektury arbitrażu;
  • ograniczenie rozmieszczenia krytycznych bloków;
  • poprawa niepoprawnych constraints;
  • zmiana częstotliwości na podstawie wymagań systemowych.

Bruno i Eschemann pokazują, jak pipeline i retiming zmieniają ścieżkę mnożnika oraz jak raporty prowadzą do źródła problemu.2 Wynik dla jednej kompilacji nie gwarantuje wyniku po zmianie narzędzia, IP lub parametrów. Raporty muszą być archiwizowane razem z bitstreamem.

Najgorsza ścieżka w raporcie nie zawsze jest najważniejsza funkcjonalnie. Jeżeli constraint dla interfejsu jest niepełny, krytyczna ścieżka może w ogóle nie zostać przeanalizowana. Najpierw sprawdza się coverage constraints, potem wartość slack.

Metastabilność

Gdy sygnał zmienia się blisko zbocza zegara, przerzutnik może wejść w stan metastabilny i potrzebować nieprzewidywalnego czasu na rozstrzygnięcie logiczne. Nie istnieje synchronizator, który usuwa to zjawisko całkowicie. Łańcuch dwóch lub więcej rejestrów daje dodatkowy czas i zmniejsza prawdopodobieństwo propagacji.8

Średni czas między awariami zależy od czasu rozstrzygnięcia, częstotliwości zegara, zmian wejścia, liczby przejść CDC i parametrów technologii; dla urządzeń AMD dobór liczby stopni jest jawnie częścią optymalizacji MTBF.8 Kopiowanie „dwóch przerzutników” bez analizy niezawodności może być niewystarczające przy wysokiej częstotliwości lub wielu przejściach.

Synchronizator pojedynczego bitu nie nadaje się automatycznie do magistrali. Każdy bit może przejść w innym cyklu, tworząc słowo, które nigdy nie istniało u nadawcy. Dla danych wielobitowych stosuje się handshake, utrzymanie stabilności, FIFO lub kodowanie o kontrolowanych przejściach.

CDC: przejścia między domenami zegarowymi

CDC jest problemem protokołu i fizyki. Klasyczne wzorce obejmują:

  • synchronizator poziomu jednobitowego;
  • synchronizator impulsu przez toggle;
  • request/acknowledge;
  • stabilną magistralę z osobno synchronizowanym sygnałem ważności;
  • asynchroniczne FIFO dla strumienia;
  • dedykowane mosty dostawcy.

Krótki impuls z szybkiej domeny może całkowicie zniknąć między zboczami wolnej domeny. Rozciągnięcie pomaga tylko przy znanej relacji. Toggle przechowuje zdarzenie jako zmianę stanu, ale kolejne zdarzenie przed odebraniem poprzedniego może się skasować. Handshake gwarantuje dostarczenie kosztem latencji i blokowania.

CDC wymaga trzech rodzajów dowodu:

  1. strukturalnego — czy użyto rozpoznanego wzorca;
  2. funkcjonalnego — czy protokół nie gubi i nie duplikuje danych;
  3. fizycznego — czy synchronizatory i ścieżki mają właściwe constraints oraz rozmieszczenie.

Zwykła symulacja RTL nie modeluje analogowej metastabilności. Może sprawdzić protokół, lecz nie prawdopodobieństwo rozstrzygnięcia. Narzędzie CDC znajduje struktury podejrzane, ale wynik „clean” wymaga przeglądu waiverów i założeń; AMD UG949 rozdziela analizę strukturalną przejść od zwykłego constraintu czasowego i zaleca osobny przegląd asynchronicznych CDC.8

Reset jako osobna domena

Reset ustala stan początkowy, ale jego asynchroniczne zwolnienie może naruszyć recovery/removal i wprowadzić rejestry w różne cykle. Popularny wzorzec to asynchroniczne wymuszenie oraz synchroniczne zwolnienie osobno w każdej domenie zegarowej.

Nie wszystkie rejestry muszą być resetowane. Datapath może zostać uznany za nieważny, dopóki flaga valid nie zostanie ustawiona. Nadmierny reset zwiększa fanout, routing i zużycie zasobów. Natomiast stan control, interfejsu i bezpieczeństwa zwykle wymaga deterministycznej inicjalizacji.

Architektura resetu powinna odpowiedzieć:

  • skąd pochodzi żądanie;
  • czy dotyczy całego FPGA czy partycji;
  • które zegary już działają;
  • w jakiej kolejności moduły wychodzą z resetu;
  • co robią interfejsy podczas resetu sąsiada;
  • czy pamięć zachowuje zawartość;
  • jak rejestrowana jest przyczyna resetu;
  • kiedy system może zgłosić gotowość.

Reset nie jest naprawą nieznanego stanu bez analizy. Jeśli przyczyną był błąd zasilania, zegara albo konfiguracji, ponowne uruchomienie może natychmiast odtworzyć usterkę.

9. Pamięć, bufory, arbitraż i przeciążenie toru danych

Pamięci i FIFO opisane w rozdziale 7 nabierają znaczenia dopiero jako część kontraktu całego toru. Dla każdego bufora trzeba określić producenta i odbiorcę, relację zegarów, maksymalny przypływ danych, maksymalną legalną blokadę, stan po resecie i politykę przeciążenia. Pojemność oblicza się dla najgorszego splotu tych warunków, z marginesem na fazę i sygnalizację flag; sama średnia szybkość nie jest podstawą doboru. Budowę FIFO, flagi pełny/pusty i ochronę overflow/underflow dokumentują Salauyou i Klimowicz w rozdz. 2.5, s. 75–82, oraz rozdz. 3.3, s. 99–103; Bruno i Eschemann opisują synchroniczne i asynchroniczne FIFO w rozdz. 6, s. 223–227.2,3

Arbitraż musi mieć policzalną granicę oczekiwania albo jednoznacznie wskazywać, że dany klient nie ma twardego terminu. Priorytet stały może zagłodzić klienta niższego poziomu, a round-robin ogranicza oczekiwanie tylko wtedy, gdy długość pojedynczej transakcji także ma granicę. Bruno i Eschemann pokazują zależność opóźnienia DDR2 od inicjalizacji, odświeżania, stanu banku i polityki kontrolera w rozdz. 9, s. 311–337; nie wyprowadzają jednak ogólnego limitu arbitrażu dla systemu krytycznego.2 Wymóg policzalnej granicy i wniosek, że zysk pojemności może utrudnić dowód czasu, są syntezą autora z tego modelu oraz z R-TIME-01, a nie parametrem przeniesionym z pojedynczego kontrolera.

10. Arytmetyka stałoprzecinkowa i budżet błędu numerycznego

Przetwarzanie sygnału i bloki DSP

FPGA naturalnie realizuje równoległe filtry, korelatory i transformacje. Twardy blok DSP zawiera mnożnik, sumator/akumulator i rejestry potoku. Użycie go zwykle oszczędza LUT oraz poprawia timing.

FIR ma postać:

$$y[n]=\sum_{k=0}^{M}b_k x[n-k].$$

Każdy tap może mieć własny mnożnik albo współdzielić zasób w wielu cyklach. Pierwsza architektura daje dużą przepustowość kosztem zasobów i mocy; druga oszczędza sprzęt, ale wymaga szybszego zegara lub mniejszej szybkości próbek.

IIR dodaje sprzężenie wyników:

$$\begin{aligned} y[n]={}&\sum_{k=0}^{M}b_kx[n-k]\\ &-\sum_{j=1}^{N}a_jy[n-j]. \end{aligned}$$

Sprzężenie ogranicza możliwość dowolnego potokowania i zwiększa wrażliwość na kwantyzację współczynników. Filtr stabilny w matematyce o nieskończonej precyzji może zachować się inaczej przy skończonym słowie.

Salauyou i Klimowicz prowadzą metodykę od modelu filtra przez symulację do implementacji i porównania wyników.3 Dla systemu pokładowego trzeba dodać analizę przepełnienia, błędu ilościowego, latencji, resetu stanu oraz reakcji na przerwę strumienia.

Reprezentacja stałoprzecinkowa

Liczba fixed-point ma ustaloną pozycję przecinka. Format można symbolicznie oznaczyć jako $Q_{I.F}$, gdzie $I$ bitów reprezentuje część całkowitą, a $F$ ułamkową. Krok kwantyzacji wynosi w przybliżeniu $2^{-F}$.

Przy dodawaniu trzeba wyrównać skale. Iloczyn dwóch słów zwiększa szerokość i liczbę bitów ułamkowych. Obcięcie wyniku bez polityki zaokrąglenia tworzy bias. Przepełnienie może:

  • zawinąć modulo;
  • nasycić do minimum lub maksimum;
  • ustawić flagę błędu;
  • zostać matematycznie wykluczone przez dowód zakresu.

W systemie sterowania zawinięcie dodatniej wartości w ujemną bywa szczególnie niebezpieczne. Nasycenie (saturation) jest bardziej intuicyjne, ale jest nieliniowością i może wpływać na stabilność lub stan całkujący. Wymaganie numeryczne musi określić zachowanie, a testy objąć wartości graniczne.

Projekt precyzji zaczyna się od modelu referencyjnego o dużej dokładności, następnie propaguje zakresy i błędy, dobiera szerokości, symuluje fixed-point i porównuje wpływ na metrykę systemową. „16 bitów wystarczy” bez takiego łańcucha jest założeniem, nie wynikiem.

Studium 2 — jawnie fikcyjny, nieoperacyjny budżet arytmetyki stałoprzecinkowej

Rozważmy wyłącznie dydaktyczną normalizację sygnału czujnika: $y=0{,}75x_0-0{,}50x_1+0{,}25x_2$, gdzie każde wejście ma udowodniony zakres $[-1{,}00; 0{,}999]$. Wymaganie R-NUM-01 ogranicza błąd bezwzględny względem modelu o wysokiej precyzji do 0,0025 w całym zakresie, a R-NUM-02 zakazuje zawinięcia modulo na wyjściu.

Model i szerokości. Wejścia mają 15-bitowy format uzupełnień do dwóch z 14 bitami ułamkowymi: zakres reprezentacji wynosi $[-1; 1-2^{-14}]$, LSB $2^{-14}\approx 0{,}000061035$, a błąd zaokrąglenia wejścia najwyżej $2^{-15}$. Współczynniki $0{,}75$, $-0{,}50$ i $0{,}25$ są dokładnymi wielokrotnościami potęgi dwóch, więc ich kwantyzacja nie wnosi błędu. Iloczyny nie są obcinane, a wspólny akumulator ma 19-bitowy format uzupełnień do dwóch z 16 bitami ułamkowymi: LSB $2^{-16}\approx0{,}000015259$ i zakres $[-4; 4-2^{-16}]$. Akumulacja trzech iloczynów jest w tym formacie dokładna. Z nierówności trójkąta $|y|\leq(0{,}75+0{,}50+0{,}25)\cdot1=1{,}5$; dokładniej dla zadanej obwiedni wejść model osiąga granice $-1{,}4995$ i $1{,}499$.

Wyjście ma kompletny 14-bitowy format uzupełnień do dwóch z 12 bitami ułamkowymi: LSB $2^{-12}=0{,}000244140625$, minimum $-2$, maksimum $2-2^{-12}=1{,}999755859375$. Akumulator jest zaokrąglany do najbliższej wartości wyjściowej, z jednoznaczną regułą rozstrzygania połówek ustaloną w modelu bitowo dokładnym. Ponieważ cały udowodniony zakres $[-1{,}5;1{,}5]$ mieści się ściśle w zakresie wyjścia, nasycenie jest nieosiągalne dla legalnych wejść; sprzętowe nasycenie pozostaje wyłącznie ochroną dla danych spoza kontraktu i nie uczestniczy w dowodzie R-NUM-01.

Budżet błędu. Trzy skwantowane wejścia mogą wnieść łącznie najwyżej $(0{,}75+0{,}50+0{,}25)2^{-15}=0{,}000045776$. Akumulator nie dodaje błędu obcięcia, ponieważ przechowuje dokładną sumę na siatce $2^{-16}$. Końcowe zaokrąglenie wnosi najwyżej $2^{-13}=0{,}000122070$. Z konserwatywną rezerwą 0,00025 na różnice modelu i implementacji suma wynosi najwyżej $0{,}000417847<0{,}0025$. Margines do dodatniego progu nasycenia wynosi co najmniej $(2-2^{-12})-1{,}5=0{,}499755859375$, a do ujemnego 0,5, więc nasycenie nie może powiększyć błędu w legalnej obwiedni. To nie dowodzi przydatności algorytmu — dowodzi jedynie zgodności konkretnej reprezentacji z fikcyjnym wymaganiem numerycznym.

Testy i asercje. Test wyczerpujący nie jest potrzebny dla całego słowa, jeżeli formalny dowód zakresu obejmuje sumator. Legalne wektory kierowane obejmują zera, wartości najbliższe granicom, kombinacje maksymalizujące i minimalizujące sumę oraz połówki kroku zaokrąglenia. Asercja A-N1 zakazuje przepełnienia w akumulatorze, A-N2 dowodzi nieosiągalności nasycenia dla założenia $x_i\in[-1;0{,}999]$, a porównanie bitowo dokładne mierzy maksimum $|y_{ref}-y_{rtl}|$. Oddzielne testy odpornościowe z wejściami spoza kontraktu sprawdzają, że blok ochronny nasyca zamiast zawijać; ich wynik nie jest włączany do maksimum błędu R-NUM-01. Pokrycie legalnej obwiedni musi potwierdzić oba znaki i wszystkie granice.

Dowód i decyzja. Raport łączy R-NUM-01/R-NUM-02 z analizą zakresu, asercjami, zestawem wektorów i maksimum błędu. Jeśli dowód zakresu przestaje obowiązywać po zmianie kalibracji wejścia, konfiguracja zostaje odrzucona lub szerokość rośnie; nie wolno zachować starego formatu tylko dlatego, że nominalne testy nadal przechodzą. Decyzja o 12 bitach ułamkowych wynika tu z budżetu błędu i kosztu toru, a nie ze zwyczaju.

11. Przetwarzanie sygnałów: filtry, korelacja i ekstrakcja cech

Mapowanie mnożeń i akumulacji na bloki DSP oraz wybór między architekturą równoległą, potokową i współdzielącą zasoby zależą od rodziny układu i wymaganego odstępu inicjacji. Bruno i Eschemann opisują DSP48E1 dla Artix-7 na s. 17–20 oraz drzewa potokowe na s. 262–263, a Salauyou i Klimowicz porównują dydaktyczne implementacje FIR/IIR w rozdz. 10–11, s. 289–322.2,3 Jest to podstawa klas rozwiązań, nie dowód parametrów innego FPGA ani przydatności konkretnego algorytmu pokładowego.

Arytmetyka zmiennoprzecinkowa

Floating point daje duży zakres dynamiczny i ułatwia przeniesienie algorytmu, ale w konkretnym FPGA może zużywać więcej zasobów i mieć większą latencję niż odpowiadający mu wariant fixed-point. Bruno i Eschemann pokazują ten kompromis dla określonego projektu Artix-7 i narzędzi Vivado 2022.2 w rozdz. 7, s. 250–263, zwłaszcza tab. 7.2 na s. 261; wyniku tego nie wolno przenosić liczbowo na inną rodzinę.2 Twarde bloki lub akceleratory mogą koszt zmienić, więc nie istnieje reguła, według której jedna technologia zawsze wygrywa.

Formaty floating-point obejmują wartości specjalne, w tym NaN i nieskończoności, oraz reguły zaokrąglania; konkretne IP może obsługiwać część przypadków inaczej lub opcjonalnie. AMD PG060 opisuje zachowanie, dokładność i konfigurowalną latencję wyłącznie operatora Floating-Point v7.1, nie każdego operatora ani pełną zgodność dowolnej implementacji.15 Kolejność działań i optymalizacje HLS mogą zmienić wynik bitowy, dlatego wymaganie powtarzalności bit-for-bit musi określać format, tryb i dozwolone transformacje. Ostatnie zdanie jest syntezą autora z ograniczeń konkretnego IP oraz przepływu HLS, nie twierdzeniem o każdym narzędziu.15,17

Interfejs gotowość–ważność

Strumieniowy interfejs często używa sygnałów data, valid i ready. W AXI-Stream transfer zachodzi w cyklu, w którym TVALID i TREADY są aktywne; nadajnik nie może czekać z TVALID na TREADY, a po zgłoszeniu ważności utrzymuje ją oraz informację transferu do handshake. Są to wymagania sekcji 2.2, s. 2-18–2-19 specyfikacji Arm IHI 0051B.14

Prosty kontrakt ma subtelne wymagania:

  • producent nie może czekać z valid wyłącznie na ready, jeśli grozi deadlock;
  • dane muszą pozostać stabilne podczas przepływu zwrotnego;
  • informacje towarzyszące muszą być zatrzymane razem z danymi;
  • reset nie może stworzyć fałszywego transferu;
  • pipeline powinien mieć wystarczającą pojemność na zatrzymanie.

Pierwsze trzy punkty wynikają bezpośrednio z kontraktu AXI-Stream; wymagania resetu i pojemności są syntezą integracyjną autora i muszą zostać ustalone dla konkretnego toru.14 AXI-Stream jest znanym przykładem, ale obecność AXI w podręczniku lub SoC nie dowodzi użycia w pocisku. W projekcie własnościowym może istnieć prostszy protokół. Najważniejsze jest formalne zdefiniowanie transakcji, nie nazwa standardu.

12. Automaty, sekwencjonowanie misji, BIT i reakcje awaryjne

Automaty opisane w rozdziale 7 są właściwe dla lokalnego protokołu, sekwencera rozruchu i nadzoru, jeśli każdy stan, limit czasu i stan nielegalny mają przypisaną reakcję; podstawowe style FSM i ich konsekwencje implementacyjne omawiają Bruno i Eschemann w rozdz. 5, s. 149–190, oraz Salauyou i Klimowicz w części II, s. 107–182.2,3 Sekwencjonowanie nie powinno kodować niejawnej „szczęśliwej ścieżki”: utrata zegara, niegotowy sąsiad, częściowy reset oraz błąd BIT muszą prowadzić do jawnego stanu i zapisu przyczyny. Reakcją może być kontrolowane zatrzymanie funkcji, izolacja kanału albo żądanie ponownej inicjalizacji — ten katalog jest syntezą autora; właściwy wybór wynika z modelu uszkodzeń i analizy skutków konkretnego systemu, a nie z samych podręczników FPGA.16

BIT nie jest dowodem braku usterki. Mechanizm wykrywania ocenia się względem zbioru uszkodzeń, które może wykryć, a osobno ocenia się skuteczność diagnozy, wyboru reakcji i samej reakcji; taki rozdział metryk przedstawiają Johnson i in. w sekcji IV pracy „Fault Management Metrics”.16 Czas wykonania oraz fałszywe wskazania trzeba budżetować dla konkretnej implementacji. Zalecenie, by monitor różnorodny sprawdzał prostszą własność — zakres, kolejność, żywotność albo termin — zamiast powielać cały algorytm tym samym RTL, jest syntezą autora ograniczającą wspólną przyczynę. Dla każdej reakcji trzeba wykazać w analizie hazardu, że nie tworzy ona gorszego stanu niż wykrywane uszkodzenie; źródło metryk nie narzuca konkretnej reakcji pokładowej.16

13. Wymagania, RTL/HLS, IP i śledzenie powiązań

Rdzeń programowy i podział sprzęt–oprogramowanie

Soft-core to procesor zrealizowany w programowalnej logice. Pozwala dodać wykonywanie software'u bez oddzielnego układu i dopasować peryferia. Kosztuje LUT, rejestry, pamięć i moc, a jego wydajność zwykle ustępuje twardemu rdzeniowi tej samej generacji.

Bruno i Eschemann pokazują pełny przepływ od systemu MicroBlaze do mapy adresowej, BSP i aplikacji.2 Salauyou i Klimowicz konstruują dydaktyczne procesory jedno- i wielocyklowe, ilustrując kompromis zasobów oraz wydajności.3 Wniosek dla avioniki jest ogólny: granica hardware–software jest decyzją architektoniczną.

Do hardware'u warto przenieść funkcję, gdy:

  • wymaga regularnej równoległości;
  • ma twardy, krótki deadline;
  • interfejs wymaga dokładności cyklu;
  • algorytm jest stabilny i da się dobrze zweryfikować.

Software jest często lepszy, gdy:

  • dominują gałęzie i stany wysokiego poziomu;
  • wymagania często się zmieniają;
  • potrzebne są złożone struktury danych;
  • certyfikowany stos i narzędzia dają lepszy dowód.

Koszt migracji obejmuje nie tylko zasoby. Zmieniają się interfejsy, latencja, sposób testowania, odpowiedzialność zespołów i artefakty konfiguracji.

Synteza wysokiego poziomu i generowanie z modeli

Synteza wysokiego poziomu (high-level synthesis, HLS) tłumaczy funkcję C/C++ lub model na RTL. AMD UG1399 dla Vitis HLS 2026.1 definiuje jako wejścia kod, konfigurację celu i zegara, dyrektywy oraz testbench, a jako etapy między innymi syntezę i współsymulację C/RTL.17 Ułatwia to eksplorację potoków, współdzielenia zasobów i interfejsów, lecz nie zwalnia z wymagań czasowych, zakresu liczb, CDC, resetu ani właściwości protokołu. Ostatnie ograniczenie jest syntezą assurance autora, nie obietnicą narzędzia.

Jedna linia pętli może zostać rozwinięta w wiele równoległych jednostek albo zrealizowana iteracyjnie. UG1399 opisuje unroll jako tworzenie kopii ciała pętli kosztem powierzchni i zasobów oraz dokumentuje wpływ dyrektyw i konfiguracji na wynik RTL.17 Dlatego kod, dyrektywy, konfiguracja celu oraz wersja narzędzia muszą być identyfikowalne razem; FAA AC 20-152A wymaga objęcia narzędzi i danych COTS/IP procesem assurance dla custom device, ale nie ustanawia wojskowej konfiguracji bazowej.4

Model-based design może generować filtr lub datapath z bloków wysokiego poziomu. Weryfikacja powinna zachować porównanie:

wymaganie matematyczne
  → model referencyjny
  → model fixed-point
  → wygenerowany RTL
  → netlista po syntezie
  → implementacja czasowa
  → pomiar w urządzeniu

Równoważność na jednym poziomie nie zwalnia z testu kolejnych transformacji. UG1399 potwierdza zakres C/RTL co-simulation tylko dla porównania wygenerowanego RTL z testbenchem C/C++ oraz raportowania danych z tego zestawu bodźców; dalsze strzałki diagramu są syntezą autora i wymagają osobnych dowodów.17

Przepływ projektowy i śledzenie powiązań

Poniższa lista jest syntezą autora łączącą przepływ narzędziowy z assurance i nie jest procedurą skopiowaną z jednego standardu. FAA AC 20-152A, sekcje 5.1–5.8, uzasadnia wymagania, traceability, weryfikację, ocenę IP/narzędzi i configuration management dla cywilnego airborne electronic hardware; NASA SP-2016-6105 Rev. 2, sekcja 5.3, wymaga dwukierunkowego śledzenia wyniku weryfikacji do wymagania i identyfikacji wersji produktu, wymagań, narzędzi oraz danych.4,18 Kompletny proces FPGA obejmuje:

  1. wymagania i przydział funkcji;
  2. architekturę zegara, resetu, pamięci i interfejsów;
  3. plan weryfikacji oraz śledzenie powiązań (traceability);
  4. RTL, IP i ograniczenia;
  5. lint i analizę elaborowanego projektu;
  6. symulację funkcjonalną oraz asercje;
  7. syntezę;
  8. sprawdzenie CDC/RDC;
  9. rozmieszczenie i trasowanie (place-and-route);
  10. statyczną analizę czasową i mocy;
  11. weryfikację poimplementacyjną tam, gdzie potrzebna;
  12. generowanie obrazu i kontrolę integralności;
  13. test na płytce oraz HIL;
  14. kwalifikację środowiskową i produkcyjną;
  15. kontrolowane wydanie konfiguracji bazowej.

FAA AC 20-152A, choć dotyczy cywilnego hardware'u lotniczego, jest użytecznym publicznym punktem odniesienia dla development assurance złożonych układów custom, wprost obejmując FPGA, PLD i ASIC.4 Nie jest normą kwalifikacji pocisku i nie należy jej tak przedstawiać. Pokazuje jednak, że dowód obejmuje wymagania, proces, weryfikację i kontrolę konfiguracji, a nie tylko test gotowej płytki.

14. Weryfikacja: symulacja, metody formalne, STA, test płytki i HIL

Dowód prowadzi zawsze tą samą drogą: identyfikowalne wymaganie → jawny model i założenia → sprawdzalna właściwość → test lub asercja → wynik i pokrycie → artefakt implementacji → kryterium akceptacji → decyzja. Jest to synteza autora zgodna z wejściami i raportami procesu weryfikacji NASA SP-2016-6105 Rev. 2, sekcja 5.3, oraz z assurance dla custom devices w FAA AC 20-152A, sekcje 5.1–5.8; żaden z tych dokumentów nie stanowi wojskowej procedury kwalifikacji pocisku.4,18 Żaden pojedynczy raport nie zamyka całego łańcucha. STA nie sprawdza algorytmu, symulacja RTL nie modeluje analogowej metastabilności, a stanowisko sprzętowe nie dowodzi wszystkich możliwych stanów protokołu.8,18

Weryfikacja RTL

Środowisko testowe (testbench) pobudza projekt i sprawdza odpowiedź. Bruno i Eschemann pokazują samosprawdzające testbenche, testy kierowane i losowe w rozdz. 2–3, s. 38–51 i 86–92; katalog resetu, backpressure, granic i przepełnienia jest syntezą autora dla omawianych kontraktów, nie checklistą przejętą z książki.2

Asercja zapisuje właściwość, np. „ważność pozostaje aktywna, dopóki gotowość nie przyjmie danych” albo „dwa wykluczające się przydziały nigdy nie są jednocześnie aktywne”. Bruno i Eschemann omawiają konstrukcje asercji i diagnostykę SystemVerilog w rozdz. 14, s. 488–493; użycie własności w analizie formalnej opisuje NASA-GB-001-97 przede wszystkim dla wymagań i projektu wysokiego poziomu, nie jako kwalifikację RTL FPGA.2,20

Pokrycie (coverage) odpowiada na pytanie, co rzeczywiście zbadano. Pokrycie kodu wskazuje wykonane gałęzie, ale nie dowodzi sprawdzenia wymagania. Pokrycie funkcjonalne zapisuje istotne scenariusze, a pokrycie wymagań łączy wyniki z wymaganiami systemowymi. Rozróżnienie tych metryk i wniosek, że sto procent jednej z nich nie zamyka dowodu, są syntezą autora; NASA SP-2016-6105 Rev. 2 wymaga udokumentowania wyników i dwukierunkowego powiązania z wymaganiami, lecz nie definiuje metryk coverage RTL.18

Randomizacja pomaga znaleźć nieoczekiwane kombinacje, ale musi być powtarzalna przez zapis seed. Bruno i Eschemann przedstawiają testy losowe w rozdz. 3, s. 86–92; obowiązek archiwizacji seeda jest syntezą autora wynikającą z wymagania odtwarzalnego artefaktu weryfikacji.2,18

Weryfikacja formalna

Formal verification analizuje matematyczny model względem zadanych własności zamiast ograniczać się do próbkowania wektorami. NASA-GB-001-97, rozdz. 2–5, opisuje specyfikację, analizę i dowodzenie przede wszystkim na poziomie wymagań oraz projektu wysokiego poziomu.20 Brak deadlocku, kolejność FIFO, wzajemne wykluczanie i arbitraż są tutaj przykładami własności autora, nie wynikami z tego źródła.

Dowód jest warunkowy względem modelu i założeń. Jeśli założenie mówi, że wejście nigdy nie łamie protokołu, dowód nie obejmuje takiego przypadku; zbyt silne założenia mogą uczynić własność trywialną. Potrzeba przeglądu założeń i wykazania osiągalności istotnych stanów jest syntezą praktyki autora zgodną z ograniczonym zakresem modeli formalnych omawianych w NASA-GB-001-97.20

Eksplozja przestrzeni stanów ogranicza skalę, dlatego stosuje się abstrakcje i dekompozycję dowodu; NASA-GB-001-97 omawia te ograniczenia dla analiz wymagań i projektu.20 Metody formalne nie zastępują testu elektrycznego, STA ani potwierdzenia modelu sensora — ten wniosek jest syntezą autora wynikającą z rozdzielenia metod V&V.8,18

Weryfikacja po syntezie i implementacji

Synteza może zoptymalizować, połączyć i usunąć logikę. Logic equivalence checking porównuje reprezentacje w granicach przyjętego modelu. Symulacja gate-level z opóźnieniami i STA odpowiadają na inne pytania; zestawienie tych metod jest syntezą autora, natomiast AMD UG949 dokumentuje konieczność poprawnych ograniczeń i analizy czasu na kolejnych etapach wyłącznie dla przepływu Vivado.8

Po place-and-route znane są zaimplementowane ścieżki. Raport powinien obejmować wszystkie wymagane tryby i narożniki, a relacje zegarów i wyjątki muszą być jawne; UG949 opisuje definiowanie i kontrolę kompletności constraints oraz osobną analizę przejść asynchronicznych dla rodzin obsługiwanych przez Vivado.8 Zakres trybów i narożników pozostaje wymaganiem konkretnego produktu.

Bitstream powinien być powiązany z raportami przez kontrolowany identyfikator. Sam hash pliku potwierdza tożsamość, ale nie mówi, z jakich źródeł go zbudowano. Lista danych potrzebnych do odtworzenia builda — wersje narzędzia, IP, constraints, skrypty i ustawienia — jest syntezą autora zgodną z kontrolą konfiguracji custom device w FAA AC 20-152A i identyfikacją wersji produktu, wymagań, narzędzi oraz danych w raporcie weryfikacji NASA.4,18

Diagnostyka w sprzęcie

Wbudowany analizator logiczny pozwala przechwytywać wybrane sygnały wewnętrzne FPGA. AMD UG908 opisuje ILA jako rdzeń dodawany przed implementacją i wskazuje wpływ szerokości sond oraz głębokości próbkowania na zasoby i timing dla projektów Vivado.19 Projekt diagnostyczny może więc mieć inną implementację czasową niż obraz produkcyjny; nie jest to twierdzenie o narzędziach innych producentów.

Sonda widzi tylko wybrane węzły i próbkuje je wskazanym zegarem. UG908 wymaga zegara synchronicznego względem obserwowanych sygnałów i opisuje ograniczoną widoczność względem symulacji.19 Wniosek, że taki zapis nie pokazuje analogowego przebiegu metastabilności ani nie stanowi samodzielnego dowodu poprawności, jest syntezą autora z ograniczeń obserwacji cyfrowej oraz CDC.8,19

Konfiguracja produkcyjna powinna obejmować kontrolę elementów diagnostycznych jako części konfiguracji bazowej. UG908 potwierdza, że rdzenie i sondy debug stają się częścią implementacji, lecz nie określa polityki bezpieczeństwa produktu.19 Wniosek o kompromisie między ograniczeniem powierzchni diagnostycznej a obserwowalnością potrzebną do BIT i analizy awarii jest syntezą autora; szczegóły dostępu pozostają poza zakresem artykułu.

Studium 3 — jawnie fikcyjna, nieoperacyjna rzadka awaria CDC/RDC

Wymaganie i objaw. Fikcyjny rejestrator laboratoryjny ma przekazać każde zdarzenie z domeny 48 MHz do domeny 30 MHz dokładnie raz, a po zwolnieniu resetu ma pozostać nieaktywny do potwierdzenia gotowości obu domen. W serii długich prób raz na kilkanaście godzin licznik odbiorcy jest mniejszy o jeden; w chłodzie częstość rośnie. Dodanie analizatora logicznego pozornie usuwa objaw.

Model i właściwość. Inspekcja ujawnia jednocyklowy impuls przechodzący przez synchronizator poziomu oraz asynchroniczne zwolnienie wspólnego resetu. Impuls 20,8 ns może wypaść między zboczami zegara o okresie 33,3 ns, a różny moment wyjścia rejestrów z resetu łamie spójność protokołu. Model uszkodzeń obejmuje utratę zdarzenia, metastabilność pierwszego stopnia, różne fazy zegarów i osobne odzyskanie domen. Właściwości brzmią: każde przyjęte zdarzenie ma dokładnie jedno potwierdzenie; nie wolno generować zdarzenia przed wspólną gotowością; żądanie pozostaje stabilne do potwierdzenia.

Test i asercje. Impuls zastępuje protokół żądanie–potwierdzenie albo licznik zdarzeń o kontrolowanym przejściu, a zwolnienie resetu jest synchronizowane osobno w każdej domenie. Analiza strukturalna CDC/RDC ma nie zawierać nieuzasadnionego przejścia; dowód formalny zmienia dowolnie relację faz zegarów i sprawdza dokładnie-jeden-raz; symulacja losuje momenty resetu; test HIL wykonuje długi ruch w narożnikach temperatury i napięcia. Dodany analizator nie jest dowodem naprawy, ponieważ zmienia trasowanie oraz czas rozstrzygania i może przesunąć prawdopodobieństwo usterki.

Dowód i decyzja. Raport wiąże wymaganie z właściwościami, przeglądem wszystkich odstępstw CDC/RDC, wynikami formalnymi, ograniczeniami fizycznymi synchronizatorów, STA i próbą HIL. Kryterium akceptacji wymaga braku zgubienia lub duplikacji dla wszystkich legalnych śladów modelu oraz braku niewyjaśnionych odstępstw. Decyzją jest przyjęcie protokołu przechowującego zdarzenie i domenowego zwalniania resetu; samo zwiększenie liczby godzin testu starego impulsu nie stanowi naprawy.

15. Środowisko pocisku: udar, wibracje, termika, zasilanie, EMI i promieniowanie

Kwalifikacja środowiskowa zaczyna się od profilu narażeń oraz modelu uszkodzeń, a nie od numeru normy. MIL-STD-810H Change 1 wymaga tailoringu prób do wpływów środowiska w całym cyklu życia i obejmuje odrębne metody temperatury, wibracji oraz udaru; nie narzuca jednak jednego poziomu właściwego każdemu produktowi.9 Udar może chwilowo odkształcić płytkę, obudowę i połączenia kulkowe; wibracje mogą wzbudzić rezonans ciężkiego elementu; cykle termiczne kumulują zmęczenie połączeń o różnych współczynnikach rozszerzalności. Zalewa ogranicza ruch, ale może zwiększyć naprężenia i opór cieplny. Obudowa usztywnia zespół, lecz zmienia drogę odprowadzania ciepła. Są to hipotezy mechanizmów uszkodzeń wymagające potwierdzenia dla danej konstrukcji; dowodem jest kwalifikacja reprezentatywnego zespołu płytka–obudowa–zalewa i procesu montażu, nie sama karta FPGA.

EMI/EMC obejmuje zarówno odporność wejść i zegarów, jak i emisję powodowaną szybkimi zboczami oraz przetwornicami; MIL-STD-461G ustanawia wymagania emisji i podatności na poziomie wyposażenia lub podsystemu i wymaga dopasowania do zastosowania.10 Integralność zasilania łączy impedancję dystrybucji, kondensatory, sekwencję szyn, chwilowy prąd i zachowanie nadzoru; dokumentacja AMD traktuje dystrybucję, rozruch, moc najgorszego przypadku i warunki środowiskowe jako zależne zadania projektu płyty dla obsługiwanych rodzin.8,12 Margines funkcjonalny trzeba sprawdzić przy równoczesnym przełączaniu torów, skrajnej temperaturze i zaburzeniu zasilania. Testy pojedynczych czynników mogą nie ujawnić ich interakcji, dlatego zakres prób łączonych musi wynikać z profilu i modelu uszkodzeń, a nie z automatycznego przeniesienia poziomów normy.9

Długie magazynowanie jest stanem życia produktu, choć logika nie pracuje. Starzeją się materiały, pamięci nieulotne, połączenia i źródła zasilania; zmienia się też dostępność wyposażenia do odtworzenia konfiguracji. Kontrola okresowa ma określone pokrycie i sama może obciążać produkt. Plan kwalifikacji powinien łączyć narażenie, inspekcję, test funkcjonalny, zapis BIT i analizę trendu, a kryteria przyjąć przed rozpoczęciem próby; MIL-STD-810H dostarcza ramy profilu życia i tailoringu, lecz nie wyznacza za projekt konkretnego okresu retencji ani interwału kontroli.9

Promieniowanie i błędy pojedynczych zdarzeń

Promieniowanie może powodować single-event upset w pamięci lub rejestrze, single-event transient w logice, latch-up albo degradację dawką całkowitą. Wytyczne NASA/NEPP rozdzielają podatność konfiguracji, logiki funkcjonalnej, I/O i tras globalnych oraz wiążą ocenę z testem konkretnego urządzenia.11 Znaczenie zależy od środowiska, czasu ekspozycji, osłony i procesu półprzewodnikowego. Dokument NASA dotyczy przede wszystkim zastosowań kosmicznych, dlatego jego warunków nie wolno bezpośrednio przypisać do krótkiego lotu atmosferycznego.

SRAM-based FPGA może mieć podatną pamięć konfiguracji. Scrubbing okresowo sprawdza i odtwarza konfigurację. TMR replikuje logikę i głosuje wyniki. EDAC chroni pamięć danych. NASA/NEPP wymaga oceny tych obszarów według kategorii zasobów i pomiaru SEE konkretnego urządzenia, a Microchip dokumentuje utwardzenie oraz EDAC wyłącznie jako cechy rodziny RTG4.11,5 Każda metoda ma granice:

  • scrub ma okres, w którym błąd pozostaje aktywny;
  • TMR nie chroni przed wspólnym błędem projektu ani uszkodzeniem votera;
  • EDAC ma określoną liczbę bitów wykrywanych i korygowanych;
  • reset może usunąć stan przejściowy, lecz przerwać funkcję.

Microchip dokumentuje RTG4 jako rodzinę Flash-based radiation-tolerant z utwardzonymi rejestrami i EDAC SRAM.5 Jest to przykład technologii projektowanej do przestrzeni kosmicznej, nie dowód użycia w pociskach. Pokazuje natomiast, że odporność wynika z konkretnej architektury oraz wyników badań, a nie z samego napisu „FPGA”.

Temperatura, zasilanie i niezawodność zespołu

FPGA ma wiele szyn zasilających: rdzeń, I/O, transceivery, analog PLL i pamięci. Kolejność, ramp rate i tolerancja są określone przez producenta; przykładowo UG570 wymienia szyny wymagane przez rodziny UltraScale/UltraScale+ i wiąże start konfiguracji z power-on reset oraz gotowością zewnętrznej pamięci obrazu.12 Spadek rdzenia może uszkodzić stan bez całkowitego zaniku interfejsu. Supervisor powinien blokować wyjścia, jeśli konfiguracja nie jest wiarygodna.

Dynamiczna moc rośnie w przybliżeniu z aktywnością, pojemnością, kwadratem napięcia i częstotliwością:

$$P_{dyn}\approx \alpha C V^2 f.$$

Narzędzie oszacuje moc dobrze tylko przy realistycznych toggle rates. Domyślna aktywność może zaniżyć szczyt. Termika musi uwzględniać jednoczesną pracę torów, nie średni profil z testu demonstracyjnego; UG949 wiąże dokładność modelu mocy, warunki środowiskowe i analizę najgorszego przypadku w ramach metodyki AMD.8

Defense-grade komponent może oferować rozszerzony zakres temperatur, kontrolę masek i kwalifikowane obudowy. AMD dla Versal XQ publikuje m.in. zakres wojskowy, testy rozszerzone oraz cechy opakowania.6 To nadal poziom komponentu. Płytka, lut, radiator, zasilacz i zalewa wymagają osobnej kwalifikacji.

Redundancja i monitory

FPGA łatwo replikuje funkcję logiczną, lecz repliki mogą współdzielić zegar, zasilanie, routing i ten sam błąd HDL. Redundancja przestrzenna jest skuteczna tylko przy zdefiniowanym modelu awarii.

Lockstep porównuje dwa kanały. TMR głosuje trzy. Monitor różnorodny może realizować prostszą kontrolę wyniku inną metodą. Przykładowo złożony obliczeniowy tor może mieć niezależny ogranicznik zakresu i czasu.

Independence wymaga analizy:

  • wspólnych źródeł zegara i resetu;
  • wspólnej pamięci oraz interconnectu;
  • rozmieszczenia fizycznego;
  • wspólnego procesu syntezy;
  • błędów wymagań i modelu;
  • wpływu pojedynczego błędu zasilania.

Trzy identyczne kopie błędnego algorytmu zgodnie przegłosują błędny wynik.

16. Konfiguracja, bezpieczny rozruch, aktualizacja, DMSMS i zgodność wersji

SRAM, Flash, antifuse i SoC jako decyzje cyklu życia

FPGA o konfiguracji SRAM ładuje obraz po każdym włączeniu; w rodzinach UltraScale/UltraScale+ opisanych przez AMD źródłem może być zewnętrzna pamięć Flash lub kontroler, a procedura obejmuje power-on reset, inicjalizację, ładowanie, CRC i sekwencję startu.12 Zwiększa to liczbę elementów łańcucha rozruchu i czas do gotowości, ale ułatwia kontrolowaną zmianę oraz migrację funkcji. FPGA z nieulotną konfiguracją Flash ogranicza zależność od zewnętrznego magazynu obrazu i może szybciej osiągać gotowość, lecz jego zachowanie retencyjne, liczba cykli i odporność pozostają cechami konkretnej rodziny; RTG4 jest udokumentowanym przykładem Flash, nie wzorcem wszystkich układów tego typu.5 Antifuse tworzy po zaprogramowaniu trwałe połączenie; w rodzinie RTAX jest to metal-to-metal programmable interconnect, a zmiana funkcji wymaga innego egzemplarza.13 SoC mnoży zależności, bo zgodne muszą być naraz etapy rozruchu, oprogramowanie procesora, logika, dane i interfejsy.1

Nie istnieje technologia z definicji właściwa dla pocisku. Krótki czas gotowości może premiować nieulotność; potrzeba zatwierdzonych aktualizacji — reprogramowalność; długie magazynowanie — udowodnioną retencję i kontrolę źródła; DMSMS — przenośność oraz komplet artefaktów. Kwalifikacja dotyczy wybranego elementu w konkretnym zespole i profilu, a nie etykiety SRAM, Flash, antifuse lub SoC.

Integralność i autentyczność obrazu

Proces konfiguracji powinien wykrywać uszkodzony lub nieautoryzowany obraz. CRC wykrywa przypadkową zmianę, a podpis cyfrowy potwierdza autentyczność i integralność przy poprawnym zarządzaniu kluczem. Szyfrowanie chroni poufność, lecz samo nie potwierdza pochodzenia. Bezpieczny rozruch (secure boot) tworzy łańcuch zaufania od niezmiennej kotwicy do kolejnych składników. System musi również sprawdzić zgodność produktu: poprawnie uwierzytelniony obraz innego wariantu nadal jest niezgodny.

Aktualizacja ma zachować jednoznaczny stan także po utracie zasilania. Szczegóły interfejsów, kluczy i procedur odzyskania są celowo poza zakresem publicznego opisu; nie przedstawia się tu sposobów obchodzenia ochrony. Wystarcza wymaganie funkcjonalne: urządzenie uruchamia wyłącznie autoryzowaną, zgodną konfigurację, raportuje jej identyfikator i nie sygnalizuje gotowości po niepełnej zmianie.

Zarządzanie konfiguracją

Wydanie FPGA powinno zawierać więcej niż plik .bit lub odpowiednik. Minimalny kontrolowany zestaw to:

  • wymagania i identyfikator produktu;
  • źródła HDL/HLS;
  • wersje i parametry IP;
  • ograniczenia czasowe oraz fizyczne;
  • skrypty projektu;
  • środowisko testowe, asercje i oczekiwane wyniki;
  • wersja i dostępność narzędzi;
  • raporty kontroli reguł, CDC, syntezy, czasu, mocy i wykorzystania;
  • ziarno lub regułę odtwarzalnej kompilacji;
  • obraz produkcyjny i jego skrót/podpis;
  • listę zgodnych rewizji płytek, programu ładującego i oprogramowania;
  • raport z odstępstw oraz znanych ograniczeń.

Źródło bez łańcucha narzędzi może być nieodtwarzalne. Obraz konfiguracji bez źródła jest niemożliwy do bezpiecznej modyfikacji. Raport bez dokładnego obrazu nie dowodzi nic o wersji w urządzeniu. Konfiguracja bazowa łączy wszystkie trzy.

Wersja płyty i FPGA nie wystarcza dla heterogenicznego SoC. Osobno wersjonuje się kod procesora, oprogramowanie układowe zarządzania platformą, partycje rozruchowe, dane kalibracyjne i aplikację. Macierz zgodności jest częścią wydania.

DMSMS i migracja

Cykl życia FPGA jest dłuższy niż wielu układów konsumenckich, lecz krótszy niż planowana eksploatacja niektórych systemów. Migracja do nowej rodziny nie jest prostą rekompilacją. Zmieniają się:

  • struktura LUT i carry chain;
  • liczba oraz tryby pamięci;
  • bloki DSP;
  • PLL i sieci zegarowe;
  • standardy I/O oraz pinout;
  • zachowanie IP;
  • narzędzie, modele czasowe i format obrazu;
  • odporność środowiskowa.

Kod przenośny ogranicza zależność od vendor primitives, ale może gorzej używać sprzętu. Wrapper wokół IP ułatwia wymianę. Referencyjny model bit-exact pozwala porównać starą i nową implementację. Mimo to nowy układ wymaga ponownej analizy timing, mocy, EMI i kwalifikacji.

Zakup zapasu na cały cykl życia (lifetime buy) unika przeprojektowania, ale wprowadza przechowywanie, autentyczność i starzenie magazynowe. Emulacja starego ASIC w FPGA może zachować funkcję logiczną, lecz różnić się elektrycznie i czasowo. DMSMS jest problemem systemowym, nie działaniem zakupowym.

Studium 4 — jawnie fikcyjna, nieoperacyjna migracja wycofanego FPGA

Wymaganie. Producent fikcyjnego modułu pomiarowego wycofuje FPGA. Wymaganie R-MIG-01 nakazuje zachować zachowanie funkcjonalne i opóźnienia na granicy modułu, R-MIG-02 — nie przekroczyć obwiedni mocy i temperatury, a R-MIG-03 — utrzymać zgodność z zatwierdzonymi wersjami płyty oraz oprogramowania. „Ten sam HDL” nie jest żadnym z tych wymagań.

Model i właściwości. Macierz różnic obejmuje tryby RAM przy kolizji, szerokości i rejestry bloków DSP, PLL, sieci zegarowe, poziomy I/O, kolejność zasilania, zachowanie po resecie, format obrazu i wersje generatorów IP. Dla każdej różnicy wskazuje zależne wymaganie, test oraz ryzyko wspólnej przyczyny. Model bitowo dokładny definiuje wartości na granicy funkcjonalnej, a model czasowy — dopuszczalne okno odpowiedzi, nie wewnętrzne rozmieszczenie rejestrów.

Test i asercje. Stara i nowa implementacja otrzymują identyczny zestaw wektorów nominalnych, granicznych, resetowych i błędnych; porównanie wymaga zgodności bitowej tam, gdzie tak stanowi kontrakt, oraz zgodności tolerancyjnej tylko w jawnie wskazanych miejscach. Asercje protokołu są wspólne. Osobno wykonuje się pełne STA, CDC/RDC, analizę mocy z realistyczną aktywnością, testy sekwencji zasilania, integralności sygnału, BIT i reprezentatywną kwalifikację środowiskową. Stary raport czasowy nie jest przenoszony na nową technologię.

Dowód i decyzja. Pakiet zawiera macierz różnic i zgodności, śledzenie R-MIG-01…03, wyniki porównania, raporty narzędzi, badania płytki i uzasadnienie zakresu ponownej kwalifikacji. Niezgodność trybu pamięci przy kolizji albo wzrost prądu szczytowego jest zmianą produktu nawet przy identycznych wynikach testu nominalnego. Migrację zatwierdza się dopiero po zamknięciu każdej różnicy; w przeciwnym razie wybiera się zapas cyklu życia albo przeprojektowanie z nową konfiguracją bazową.

17. Diagnostyka eksploatacyjna i synteza kryteriów wyboru

Jak opisywać FPGA w konkretnym systemie

Źródło powinno potwierdzić co najmniej producenta lub klasę układu i wariant systemu. Jest to reguła krytyki źródeł przyjęta przez autora zgodnie z wymaganym rozdzielaniem wariantów, nie wymaganie producenta FPGA. Następnie można oddzielnie ustalić:

  1. rolę funkcjonalną FPGA;
  2. technologię konfiguracji;
  3. relację z CPU, DSP i pamięcią;
  4. interfejsy oraz domeny czasowe;
  5. sposób bootowania i aktualizacji;
  6. zakres kwalifikacji środowiskowej;
  7. wersje hardware'u i obrazu;
  8. funkcje BIT oraz testy;
  9. modernizacje i DMSMS.

Nie wolno rozpoznawać dokładnego modelu wyłącznie ze zdjęcia obudowy ani przenosić cech katalogowych na wojskową wersję. Przykładowe dokumenty producentów w tej bibliografii opisują jawnie ograniczone rodziny Versal, RTG4, RTAX lub UltraScale, nie implementację programu uzbrojenia.1,5,6,12,13 Jeśli dokument systemowy mówi tylko „programmable logic”, dokładny typ pozostaje nieznany; jest to granica wnioskowania autora, a nie dodatkowa informacja o systemie.

Znaczenie dla obsługi i szkolenia

Personel nie musi znać języka HDL, aby poprawnie obsługiwać produkt z FPGA. Powinien natomiast rozumieć zależność działania od zgodnej kombinacji płytki, programu rozruchowego, obrazu logiki, oprogramowania i danych. FAA AC 20-152A obejmuje kontrolę konfiguracji hardware'u custom i COTS IP, a NASA SP-2016-6105 Rev. 2 wymaga identyfikacji wersji produktu, wymagań, narzędzi i danych w zapisie weryfikacji; żadne z tych źródeł nie definiuje programu szkolenia dla uzbrojenia.4,18 Wniosek, że usterka może korelować z wersją, a nie tylko egzemplarzem, jest syntezą diagnostyczną autora.

Poniższa lista jest proponowanym przez autora, nieoperacyjnym minimum identyfikacji kontekstu zdarzenia; nie pochodzi z formularza producenta ani procedury konkretnego systemu. Łączy identyfikację konfiguracji i warunków weryfikacji wymaganą przez NASA SP-2016-6105 Rev. 2 z rozdzieleniem metryk detekcji, diagnozy i reakcji w pracy NASA o fault management.16,18 W raporcie zdarzenia potrzebne są:

  • numer seryjny i rewizja modułu;
  • identyfikator obrazu konfiguracji oraz oprogramowania;
  • wynik i kod BIT;
  • przyczyna ostatniego resetu;
  • czas od włączenia oraz sekwencja stanów;
  • temperatura i zasilanie;
  • wersja urządzenia ładującego;
  • informacja, czy błąd znika po restarcie i czy jest zależny od konfiguracji.

Wymiana modułów między systemami bez sprawdzenia konfiguracji bazowej może utworzyć kombinację, której wcześniejszy dowód nie obejmował. Ponowne załadowanie obrazu może usunąć objaw pamięciowy, ale również zmienić stan potrzebny do analizy. Te wnioski są syntezą autora z zasad identyfikacji wersji i anomalii w raporcie weryfikacji, nie procedurą obsługową konkretnego wyrobu.18 Zebrane dane służą formułowaniu hipotez: korelacja z identyfikatorem obrazu kieruje ku konfiguracji, z numerem partii — ku procesowi produkcyjnemu, a z temperaturą lub zanikiem szyny — ku środowisku. Żadna korelacja sama nie rozstrzyga przyczyny; wymaga testu potwierdzającego, zgodnie z rozdzieleniem detekcji, diagnozy i skuteczności reakcji w metrykach fault management.16

Synteza kryteriów wyboru

FPGA jest najbardziej wartościowy wtedy, gdy wymaganie naprawdę dotyczy równoległości, przewidywalnego czasu i specjalizowanego interfejsu, a zespół potrafi zamknąć dowód dla czasu, błędu, uszkodzeń, środowiska i wersji. Nie jest automatycznym zamiennikiem procesora ani skrótem do wysokiej niezawodności. Jest to końcowa synteza autora z kompromisów FPGA–ASIC, FPGA–procesor oraz wymagań assurance i konfiguracji, a nie rekomendacja któregokolwiek producenta.2,3,4

Decyzję architektoniczną można sprowadzić do pięciu pytań. Czy istnieje mierzalny termin lub przepustowość, których prostsza architektura nie spełnia? Czy arytmetyka i protokoły mają jawne granice błędu oraz przeciążenia? Czy model uszkodzeń obejmuje wspólne zegary, reset, zasilanie i konfigurację? Czy kwalifikowany jest cały zespół w profilu życia, a nie tylko komponent? Czy po latach da się wskazać, odtworzyć i zweryfikować dokładnie ten obraz wraz z narzędziami i zgodnym sprzętem? Ta lista jest syntezą autora z rozdziałów 3–16; źródła środowiskowe, narzędziowe i assurance potwierdzają tylko odpowiadające im części, nie komplet pięciu pytań.4,8,9,18

Najważniejszym produktem zespołu nie jest sam HDL. Jest nim dowód, że wymaganie zostało poprawnie przekształcone w architekturę, RTL, ograniczenia, fizyczną implementację i kwalifikowany obraz — oraz że ten dokładnie obraz trafił do zgodnego sprzętu. Łańcuch kończy się dopiero po testach w rzeczywistym środowisku i zachowaniu odtwarzalnej konfiguracji bazowej.

W elektronice rakietowej deterministyczność ma sens wyłącznie wraz z niezawodnością. Wynik w stałym takcie jest bezużyteczny, jeśli pochodzi z niespójnej domeny zegarowej, złej wersji obrazu konfiguracji albo przepełnionej arytmetyki. Dojrzały projekt FPGA łączy czas, matematykę, fizykę układu i zarządzanie konfiguracją w jeden system dowodowy.

Bibliografia i rejestr źródeł