« poprzedni punkt 


4. Projektowanie z układami programowalnymi

Układy programowalne umożliwiają realizację złożonych, a nawet bardzo złożonych, projektów. W praktyce proces projektowania jest wspomagany za pomocą specjalistycznego oprogramowania dostarczanego zazwyczaj przez firmy produkujące układy programowalne.

W procesie projektowania trzeba zrealizować kilka kolejnych zadań. Cały proces projektowania pokazano schematycznie na rysunku XII.12.

Rys. XII.12. Schemat procesu projektowania układów programowalnych

Na początku procesu projektowania musi powstać projekt funkcjonalny. Muszą być określone wszystkie wymagania jakie musi spełnić projektowany układ (urządzenie).

Po sformułowaniu założeń funkcjonalnych możliwe jest opisanie projektu w wybranym specjalizowanym języku opisu sprzętu HDL. W praktyce projektowej najczęściej wykorzystuje się języki ABEL, VHDL i VERILOG. Języki te umożliwiają opis funkcji, które ma spełniać projektowane urządzenie, jego strukturę, dekompozycję na mniejsze podzespoły, symulację projektu itp. Język ABEL (i jego wersje firmowe, jak na przykład AHDL) jest stosunkowo prosty i korzysta się z niego w przypadku stosowania prostych układów programowalnych. W przypadku dużych projektów i korzystaniu z układów FPGA korzysta się z języków VHDL i VERILOG. Możliwości obu tych języków są zbliżone do siebie.

Po opisaniu projektu w jednym z języków HDL możliwe jest przeprowadzenie symulacji funkcjonalnej, w celu sprawdzenia poprawności opisu i działania projektowanego układu.

Z kolei wykonywany jest etap syntezy logicznej projektu. W wyniku powstaje schemat logiczny projektowanego układu.

Teraz możliwe jest przejście do odwzorowania schematu logicznego na strukturę wykorzystywanego układu programowalnego. Najpierw dokonuje się dekompozycji schematu na takie fragmenty, które mogą być zrealizowane przez dostępne sekcje układu programowalnego (w prostych układach) albo makrokomórki (w złożonych układach). Następnie określana jest struktura połączeń, którą trzeba będzie później fizycznie zrealizować - zaprogramować odpowiednie połączenia.

Z kolei można przeprowadzić pełną symulację projektu z uwzględnieniem zależności czasowych.

W trakcie wykonywania poszczególnych etapów projektu może się okazać, że dany etap nie daje się zrealizować albo że wykryte zostały niezgodności z założeniami funkcjonalnymi (etapy symulacji). Wtedy trzeba wrócić do jednego z etapów wcześniejszych i wprowadzić odpowiednie modyfikacje.

Jeżeli proces projektowania zostanie pomyślnie doprowadzony do końca uzyskuje się jako wynik końcowy plik z informacjami niezbędnymi dla zaprogramowania układu programowalnego, bądź z wykorzystaniem specjalnego programatora bądź bezpośrednio w systemie.


« poprzedni punkt