Tajniki (zmiennoprzecinkowej) arytmetyki w FPGA

Tajniki (zmiennoprzecinkowej) arytmetyki w FPGA
Pobierz PDF Download icon
Układy FPGA nie są \"same z siebie\" wdzięczną platformą do wykonywania zaawansowanych - z natury rzeczy - obliczeń zmiennoprzecinkowych. Nie wynika to jednakże z ich ograniczonych zasobów logicznych, ale z konieczności \"ręcznego\" budowania w dostępnych sprzęcie bloków realizujących potrzebne obliczenia. Problem ten zauważyli inżynierowie z firmy Altera i żeby uprościć życie konstruktorom udostępnili (bezpłatnie!) w ramach pakietu Quartus II konfigurowalne biblioteki IP core\'ów, dzięki którym m.in. realizacja zaawansowanych operacji arytmetycznych przestała stanowić problem.
66 ELEKTRONIKA PRAKTYCZNA 12/2010 Notatnik konstruktora Tajniki (zmiennoprzecinkowej) arytmetyki w FPGA Układy FPGA nie są ?same z  siebie? wdzięczną platformą do wykonywania zaawansowanych ? z  natury rzeczy ? obliczeń zmiennoprzecinkowych. Nie wynika to jednakże z  ich ograniczonych zasobów logicznych, ale z  konieczności ?ręcznego? budowania w  dostępnych sprzęcie bloków realizujących potrzebne obliczenia. Problem ten zauważyli inżynierowie z  firmy Altera i  żeby uprościć życie konstruktorom udostępnili (bezpłatnie!) w  ramach pakietu Quartus II konfigurowalne biblioteki IP core?ów, dzięki którym m.in. realizacja zaawansowanych operacji arytmetycznych przestała stanowić problem. nomenklaturze Altery są nazywane ?mega- funkcjami? lub LPM (Library Parametrized Module). Listę megafunkcji dostępnych bez- płatnie można przejrzeć otwierając okno Symbol (pokazane na rysunku 1). W artykule skupimy się na megafunkcjach związanych System Quartus II jest zintegrowanym, łatwym w obsłudze, bardzo przyjaznym na- rzędziem projektowym, wyposażonym we wszystkie niezbędne edytory, kompilatory i  syntezery oraz wspomniane na początku biblioteki z rdzeniami IP, które w oryginalnej z wykonywaniem obliczeń arytmetycznych, przede wszystkim zmiennoprzecinkowych, których nazwy zaczynają się od ALTFP_ (np. ALTFP_MATRIX_INV, ALTFP_EXP czy ALTFP_LOG). Wygodne, przejrzyste i bezpłatne Standardowo w pakiecie Quartus II znaj- duje się 13 megafunkcji zmiennoprzecinko- wych (tabela 1), które mogą być przez projek- tanta w pewnym zakresie modyfikowane, dzię- ki czemu można je dostosować do wymogów Dodatkowe informacje: Testy sprzętowe niezbędne do opracowania artykułu przeprowadzono na zestawie Cyclone IV GX Transceiver Starter Kit udostępnionym przez firmę EBV Elektronik, tel. 71 342 29 44 oraz 22 640 23 55, www.ebv.com Notatnik konstruktora 67ELEKTRONIKA PRAKTYCZNA 12/2010 Tajniki (zmiennoprzecinkowej) arytmetyki w FPGA zoptymalizowanie zasobów wykorzystywa- nych przez implementowany moduł funkcjo- nalny w zależności od rzeczywistych potrzeb aplikacji ? megafunkcje zawierają wyłącznie parametryzowane opisy modułów, które są każdorazowo syntezowane w projekcie. W od- różnieniu od zapisów w IEEE-754, megafunk- cje Altery obsługują tylko jeden typ zaokrą- glania wyników (round-to-nearest-even), naj- częściej stosowany w typowych obliczeniach zmiennoprzecinkowych. Ze względu na stopień skomplikowania megafunkcji realizujących obliczenia zmien- noprzecinkowe, są to bloki synchroniczne, wymagające taktowania sygnałem zegaro- wym. Wykorzystując możliwości układów FPGA (duże zasoby logiczne) większość obli- czeń realizują one równolegle, ale zazwyczaj liczba taktów zegarowych niezbędnych do wykonania kompletnego cyklu obliczeniowe- go jest większa niż 1. Powoduje to pojawienie się wyniku obliczeń na wyjściach modułu z  pewnym opóźnieniem, które użytkownik może (jako jeden z parametrów) w pewnym zakresie modyfikować. Parametryzacji przez użytkownika podlegają także niektóre wej- ścia (jak na przykład zerujące, włączające sygnał taktujący) oraz wyjścia (jak overflow, zero czy nan), co także pozwala zoptymali- zować zasoby zajmowane w FPGA przez im- plementowany blok. Przykład konfiguracji megafunkcji Parametryzację prezentowanych mega- funkcji można przeprowadzić za pomocą ?ręcznego? wywołania funkcji z  parametra- mi podanymi w wywołaniu ? co jest metodą dość żmudną i błędogenną ? lub za pomocą kreatora wbudowanego w  pakiet Quartus  II (MegaWizard Plug-in Manager). Kreator można uruchomić ręcznie za pomocą przycisku wi- docznego w dolnej lewej części rysunku 1 lub automatycznie (przy zaznaczonej opcji Launch MegaWizard Plug-in Manager) po wybraniu megafunkcji, która będzie modyfikowana. Po wybraniu megafunkcji i zatwierdzeniu wyboru przyciskiem OK, jest wyświetlane pierwsze okno kreatora (rysunek  2), w  któ- rym można wybrać język opisu generowanego bloku oraz lokalizację tego pliku. W kolejnym kroku (rysunek  3) projektant może ustalić typ docelowego układu FPGA (jeżeli ma być inny niż zadeklarowany w projekcie), format danych wejściowych i wyjściowych, a także ? opcjonalnie ? liczbę bitów tworzących słowo wejściowe. Na tym etapie można ustalić także liczbę taktów zegarowych, po których wynik pojawia się na wyjściu bloku, co determinuje także zajmowane przez niego zasoby logiczne (rysunek 4). W kolejnym kroku można wybrać dodat- kowe wejścia i  wyjścia implementowanego bloku, co odbywa się za pomocą wygodnego w  obsłudze menu wyświetlanego w  oknie kreatora (rysunek 5). Tabela 1. Zmiennoprzecinkowe megafunkcje dostarczane bezpłatnie w  pakiecie Quartus II Nazwa Opis Operatory zmiennoprzecinkowe ALTFP_ADD_SUB Dodawanie i  odejmowanie ALTFP_DIV Dzielenie ALTFP_MULT Mnożenie ALTFP_SQRT Pierwiastkowanie stopnia 2 Zaawansowana algebra ALTFP_EXP Oblicza eksponentę wartości wejściowej ALTFP_INV Oblicza wartość inwersyjną wartości wejściowej ALTFP_INV_SQRT Oblicza wartość inwersyjną pierwiastka stopnia 2 wartości wejściowej ALTFP_LOG Logarytm naturalny Inne działania zmiennoprecinkowe ALTFP_ABS Oblicza wartość całkowitą wartości wejściowej ALTFP_COMPARE Porownuje liczby zmiennoprzecinkowe ALTFP_CONVERT Konwertuje wartości: ? całkowite do postaci zmiennoprzecinkowej ? zmiennoprzecinkowe do postaci całkowitej ? stałoprzecinkowe do postaci zmiennoprzecinkowej ? zmiennoprzecinkowe do postaci stałoprzecinkowej ? zmiennoprzecinkowe do innych wariantów zmiennoprzecin- kowych Operacje na macierzach ALTFP_MATRIX_INV Oblicza inwersję macierzy o  wymiarach do 64×64 ALTFP_MATRIX_MULT Oblicza iloczyn dwóch macierzy Rysunek 1. Okno Symbol z wykazem dostępnych bibliotek i elementów w nich zawar- tych Rysunek 2. Pierwsze okno kreatora z moż- liwością wyboru języka opisu generowa- nego bloku Rysunek 3. Drugie okno kreatora umożli- wia wybór formatu danych wejściowych i wyjściowych oraz liczby taktów opóźnie- nia generowania wyniku (jak na rysunku 4) pojedynczej-rozszerzonej (szerokość słowa bi- towego mieści się w przedziale od 43 do 64 bi- tów). Dzięki takiemu rozwiązaniu możliwe jest realizowanego projektu. Wszystkie operują na danych zmiennoprzecinkowych w  formacie IEEE-754 z uwzględnieniem wartości specjal- nych (w tym Quiet i Signaling NaN), w forma- tach pojedynczej i podwójnej precyzji, a także 68 ELEKTRONIKA PRAKTYCZNA 12/2010 Notatnik konstruktora Rysunek 4. Modyfikacja liczby cykli zegarowych znajduje silne odbicie w zasobach zajmowanych przez implementowany blok Rysunek 5. W kolejnym kroku pracy kreatora można wybrać dodatkowe wejścia i wyjścia implementowanego bloku, co skutkuje zmianą wyglądu symbolu graficznego elementu Rysunek 6. W przedostatnim kroku działania kreatora można zażądać wygenerowania netlisty, która pozwoli z dość dużą dokładno- ścią oszacować parametry czasowe implementowanego bloku Rysunek 7. Skrócony opis cech implemen- towanego bloku logicznego Przedostatni krok działania kreatora (ry- sunek 6) zapewnia wygodny dostęp do do- kumentacji implementowanej megafunkcji (przycisk Documentation), jej skróconego opisu (Abort ? rysunek 7) z wykazem rodzin FPGA, w których może być ona implemen- towana. Na tym etapie można zażądać tak- że wygenerowania netlisty, która pozwoli z  dość dużą dokładnością oszacować para- metry czasowe (w tym maksymalną często- tliwość taktowania) bloku zaimplementowa- nego w wybranym układzie FPGA. Na rysunku 8 pokazano ostatnie okno kreatora megafunkcji, w którym wyświetlo- no podsumowanie wyboru generowanych plików (niektóre z nich można zmienić), po 69ELEKTRONIKA PRAKTYCZNA 12/2010 Tajniki (zmiennoprzecinkowej) arytmetyki w FPGA nia za pomocą FPGA na liczbach zmienno- przecinkowych oraz macierzach takich liczb, co jest wstępem do zaawansowanej filtracji i cyfrowej obróbki sygnałów, czego przykła- dy pokażemy w jednej z kolejnych EP. Piotr Zbysiński, EP piotr.zbysinski@ep.com.pl Listing 1. Sygnały wykreowanego komponentu w opisie VHDL altfp_sqrt0_inst : altfp_sqrt0 PORT MAP ( aclr => aclr_sig, clk_en => clk_en_sig, clock => clock_sig, data => data_sig, nan => nan_sig, overflow => overflow_sig, result => result_sig, zero => zero_sig ); Rysunek 8. W ostatnim oknie kreatora widać podsumowanie wyboru generowa- nych plików implementacyjnych Rysunek 9. Widok listy elementów bibliotecznych po wygenerowaniu własnej wersji bloku oraz jego symbol graficzny na planszy edytora schematów zatwierdzeniu których w  katalogu projektu tworzony jest nowy blok funkcjonalny (ry- sunek 9), który można wykorzystać zarówno w edytorze graficznym jak i w opisie teksto- wym, dzięki automatycznie wygenerowane- mu opisowi komponentu (listing 1). Podsumowanie Biblioteki z  predefiniowanymi opisami bloków funkcjonalnych są niezwykle wy- godnym sposobem skrócenia czasu realizacji projektu w FPGA, podobnie jak ma to miejsce w  przypadku bibliotek wykorzystywanych przez programistów piszących na mikrokon- trolery lub systemy mikroprocesorowe. Przy- kłady megafunkcji pokazanych w  artykule ilustrują łatwość zaawansowanego operowa- R E K L A M A
Artykuł ukazał się w
Grudzień 2010
DO POBRANIA
Pobierz PDF Download icon
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik wrzesień 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio wrzesień 2020

Świat Radio

Magazyn użytkowników eteru

Automatyka Podzespoły Aplikacje wrzesień 2020

Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna wrzesień 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich sierpień 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów