Wyniki 1-2 spośród 2 dla zapytania: authorDesc:"Radosław CIESZEWSKI"

Synteza Wysokiego Poziomu z wykorzystaniem języka Python DOI:10.15199/13.2017.8.7


  Field Programmable Gate Array (FPGA) to zintegrowany układ zawierający matrycę konfigurowalnych bloków logicznych (CLBs) połączonych za pomocą wewnętrznych połączeń programowalnych. Konfiguracja FPGA jest zwykle określona przy użyciu języka opisu sprzętu (HDL) lub schematycznie. Najczęściej używanymi językami opisu sprzętu (HDLs) są VHDL i Verilog. HDL różni się od konwencjonalnych języków programowania tym, że nie jest to typowo sekwencyjny, ale równoległy język, przeznaczony do definiowania obiektów, procesów i algorytmów implementowanych w zasobach sprzętowych. Ponadto układy FPGA można wielokrotnie rekonfigurować do żądanej aplikacji, a nawet modyfikować tylko część matrycy układu FPGA w trakcie jego normalne pracy. Obecne układy FPGA posiadają bardzo dużą liczbę bloków obliczeniowych, dzięki czemu są wykorzystywanie nie tylko do prostego sterowania, ale także do wykonywania złożonych obliczeń numerycznych. Struktura układów FPGA oraz możliwość optymalnego rozlokowania elementów logicznych pozwala na osiąganie lepszych rezultatów niż w przypadku standardowych mikroprocesorów. Kompilator otrzymując algorytm dba o optymalne rozlokowanie obiektów sprzętowych w krzemie. Nie jest możliwe w przypadku standardowych mikroprocesorów, gdzie obiekty sprzętowe umieszczone są na stałe i przystosowane do wykonywania uniwersalnych obliczeń, nie zawsze w sposób optymalny w kontekście wykonywanego algorytmu. Duża liczba badań wykazała, że efektywność energetyczna lub obszarowa krzemu dla realizowanej funkcji może poprawić się o dwa do trzech rzędów wielkości stosując układy FPGA. Optymalne rozwiązania sprzętowe dla danego typu algorytmu przedstawiono na rys. 1. Rys. 1. Porównanie architektur sprzętowych dla różnych typów algorytmów Fig. 1. Comparison of hardware architecures for different algorithms 32 Elektronika 8/2017 Stosując układy FPGA można uzyskać największą poprawę dla algorytmów równoległych drobnoziarnistych (ang. fine grai[...]

Synteza wysokiego poziomu dla układów FPGA z wykorzystaniem metody partycjonowania grafów DOI:10.15199/59.2018.4.1


  Synteza wysokiego poziomu HLS (High-Level Synthesis) jest nazywana także syntezą algorytmiczną lub syntezą behawioralną. To zautomatyzowany proces projektowania, interpretujący opis algorytmiczny przedstawiony w postaci języka wysokiego poziomu. Zadaniem procesu HLS jest implementacja algorytmu w zadanym sprzęcie - najczęściej w układzie FPGA (Field-Programmable Gate ArrayI) lub ASIC (Application-Specific Integrated Circuit). Synteza wysokiego poziomu stanowi przedmiot intensywnych badań od późnych lat siedemdziesiątych [1]. Pierwsze narzędzia HLS były tworzone dla wielu różnych języków umożliwiających opis algorytmiczny, jak np. Occam. Najnowsze, otwarte i komercyjne narzędzia zbudowane są na bazie języków wysokiego poziomu (High Level Description Language), takich jak ANSI C / C ++ / SystemC / System Verilog/ Java / Python [2,11-23]. Większość narzędzi analizuje kod wejściowy i konwertuje go do języka opisu sprzętu HDL (Hardware Description Language) na poziomie abstrakcji RTL (Register Transfer Level). Powszechnie używanymi językami opisu sprzętu są VHDL, Verilog i SystemVerilog. Kod wyjściowy jest następnie syntetyzowany do poziomu bramek za pomocą narzędzia do syntezy logicznej. Celem syntezy wysokiego poziomu jest umożliwienie projektantowi sprawnego zaprojektowania złożonego układu. Projektant tworzy algorytm na wysokim poziomie abstrakcji, podaje parametry wejściowe, a następnie narzędzie HLS automatycznie dokonuje implementacji. Kontrolę nad optymalizacją architektury sprzętowej zapewniają wewnętrzne algorytmy narzędzia HLS. architektura układów FPGA, która umożliwia realizację równoległych operacji logicznych i arytmetycznych, dla określonego rodzaju algorytmów umożliwia osiąganie lepszych wydajności niż w przypadku standardowych mikroprocesorów, gdzie co najwyżej kilka bloków logiczno-arytmetycznych wykonuje swoje zadania sekwencyjnie. Dlatego układy FPGA stanowią optymalne rozwiązanie dla algorytmów równoległych [...]

 Strona 1