Laboratorium elektroniki


Ogólne zasady wspomaganego komputerowo projektowania układów PLD



Pobieranie 248.7 Kb.
Strona5/6
Data29.04.2016
Rozmiar248.7 Kb.
1   2   3   4   5   6

4Ogólne zasady wspomaganego komputerowo projektowania układów PLD




4.1Etapy projektowania układów PLD


Z racji swojej regularnej budowy i ustalonej struktury połączeń, programowalne moduły logiczne są układami, dla których jakość profilu finalnego w istotny sposób zależy od etapu syntezy logicznej. Jednocześnie ich synteza logiczna może zostać całkowicie zautomatyzowana dzięki wykorzystaniu sprzętu komputerowego oraz istnieniu rozbudowanych narzędzi programistycznych .
W procesie projektowania układów PLD można wyróżnić trzy zasadnicze etapy:

  • wprowadzenie specyfikacji projektu,

  • komputerowe przetworzenie wprowadzonego projektu (kompilacja),

  • weryfikacja i programowanie opracowanych struktur.

Na rys. 16 zaprezentowano w sposób symboliczny kolejne etapy projektowania układów programowalnych.

Specyfikacja

projektu


Kompilacja

Weryfikacja

i programowanie





Rys .16. Etapy komputerowo wspomaganego projektowania układów PLD


Pierwszy etap projektowania, określony na schemacie jako specyfikacja projektu, polega na sformułowaniu opisu działania projektowanego układu za pomocą schematu logicznego, opisu tekstowego lub wykresów czasowych. W celu utworzenia schematu logicznego wykorzystuje się edytor graficzny, pozwalający wykorzystywać np. bibliotekę standardowych bloków logicznych TTL i makrofunkcji oraz stosować globalne oznaczenia sygnałów i magistral dla większej czytelności schematów. Edytor tekstowy pozwala na formalny opis układu w jednym z licznych języków specyfikacji sprzętu, natomiast edytor wykresów czasowych pozwala na tworzenie specyfikacji układu polegającej na określeniu zależności między sygnałami wejściowymi i wyjściowymi. W tym ćwiczeniu będziemy posługiwać się programem do projektowania układów PLD wyposażonym w edytor tekstowy. Programy uniwersalne wyposażone w wszystkie możliwości specyfikacji projektu są kosztowne i raczej niedostępne w postaci shareware.

Drugim etapem projektowania jest kompilacja, polegająca na optymalizacji struktury logicznej układu, jej ewentualnej dekomp\ozycji na mniejsze części możliwe do rozmieszczenia i połączenia w zadanej strukturze programowalnej oraz (przede wszystkim) na przetworzeniu pliku źródłowego na pliki wyjściowe dla programatora oraz pliki dokumentacyjne dla projektanta.

Trzeci etap polega na zbadaniu poprawności funkcjonalnej opracowanego projektu (w formie procedury symulacyjnej - najczęściej w postaci wykresów czasowych), a następnie przeprowadzeniu procesu programowania w wybranej wcześniej strukturze. Ten etap będzie przedmiotem odrębnego ćwiczenia.

Na rys. 17 przedstawiono strukturę systemu projektowania ukladów cyfrowych metodami tradycyjnymi. Cykl projektowania układów cyfrowych z elementami standardowymi gotowymi (np.seria TTL 74xx) oparty jest o poznanie działania danych elementów, dobraniem i przeprowadzeniem syntezy logicznej. Programy wspomagania projektowania pozwalają na wykonanie schematu, symulację i płytkę drukowaną prototypu. Praca projektanta skupiona jest tu wokół syntezy fizycznej i logicznej zastosowanych elementów układu cyfrowego.

Rys.17. Cykl projektowania z wykorzystaniem gotowych elementów katalogowych


Wprowadzenie układów specjalizowanych umożliwiło pełne wykorzystanie i zintegrowanie komputerowego wspomagania procesu projektowania. Dążono tu do dostarczenia użytkownikowi złożonych układów logicznych zawartych w jednej strukturze, co związane jest z postępem miniaturyzacji i niezawodności. Dla układów ASIC full custom producent wykonuje gotową strukturę na podstawie dostarczonego opisu działania. Przy układach semi custom układ logiczny powstaje na bazie komórek standardowych lub matryc bramek z zaprogramowaną przez producenta topografią połączeń. Układy programowalne PLD i FPGA posiadają strukturę uniwersalną, pozwalają na pełne zaprojektowanie i zaprogramowanie przez użytkownika funkcji logicznych .


Rys. 18. Cykl projektowania w wykorzystaniem układów programowalnych PLD
Przy projektowaniu układów cyfrowych z wykorzystaniem układów specjalizowanych ciężar pracy przenosi się na tworzenie opisu działania w języku wysokiego poziomu, wraz z wektorami testowania, które następnie są przetwarzane przez programy wspomagania projektowania (rys.18). Symulacja działania i testowanie gotowego układu jest szybkie i efektywne, gdyż prowadzi do sprzężenia zwrotnego do opisu projektu.

Dzięki skróceniu czasu projektowania układy specjalizowane okazały się efektywnym materiałem konstrukcyjnym do realizacji układów cyfrowych. W szczególności programowalne moduły logiczne (PLD) pozwalają na szybkie wykonanie przez użytkownika układu cyfrowego.



4.2Języki specyfikacji sprzętu i ich elementy strukturalne

Najważniejszą rolę w procesie projektowania układów programowalnych pełni tzw. język specyfikacji sprzętu (Hardware Description Language, HDL), przeznaczony do tworzenia plików źródłowych dla kompilatora logicznego . Ze względu na znaczne rozmiary dostępnych układów, wyrażenia boolowskie opisujące zależności wejściowo-wyjściowe są bardzo skomplikowane. Dlatego też współczesne języki specyfikacji umożliwiają tworzenie konstrukcji składniowych na poziomie wyższym niż pojedyncze wyrażenia boolowskie. Typowym przykładem jest stosowanie języków opartych na składni języków wysokiego poziomu, tablic prawdy lub tablic przejść.

Istnieje wiele różnych języków specyfikacji, przy czym najczęściej przyjmują one nazwy systemów w których są stosowane, np. PLDShell,PALASM, CUPL, ABEL-HDL, Altera-HDL. Niezależnie jednak od szczegółowej implementacji składniowych poszczególnych języków posiadają one pewne wspólne cechy, zwane elementami strukturalnymi języka specyfikacji. Należą do nich:


  • słowa kluczowe - ciągi liter (najczęściej wyrazy angielskie) stanowiące integralną część języka specyfikacji i nie mogące być zdefiniowane (przedefiniowane) przez programistę.

  • identyfikatory - ciągi liter i cyfr nie będące słowami kluczowymi – rozpoczynające się od litery, służące do reprezentowania np. nazw zmiennych przyporządkowanych wyprowadzeniom, etykiet węzłów wewnętrznych, makrodefinicji, stałych symbolicznych, itp.

  • liczby - całkowite liczby 4-bajtowe, przy czym do ich reprezentowania stosuje się najczęściej systemy: dwójkowy, ósemkowy, dziesiętny i szesnastkowy.

  • wyrażenia - formuły składające się z argumentów i operatorów, służące do wyznaczenia wyniku. Argumentami mogą być stałe lub identyfikatory zmiennych.

  • operatory - symbole operacji wykonywanych na argumentach. W większości języków stosowane są następujące operatory logiczne: NOT, OR, AND, XOR, XNOR.

  • równania - formuły postaci:

identyfikator = wyrażenie;

identyfikator := wyrażenie;

których celem jest przypisanie sygnałowi definiowanemu z lewej strony wyrażenia boolowskiego podanego po prawej stronie równania.


  • komentarze - teksty zwiększające czytelność programu, pomijane przez kompilator.

  • dyrektywy kompilatora - elementy języka służące do odczytywania przez kompilator symboli pliku źródłowego.

Niektóre bardziej rozbudowane języki specyfikacji dostarczają bardziej rozbudowanych elementów strukturalnych umożliwiających np. bardziej efektywny lub bardziej zwięzły zapis kodu źródłowego. Należą do nich np. tablicowe metody wprowadzania danych do plików źródłowych, wyrażenia relacyjne i inne.





Pobieranie 248.7 Kb.

1   2   3   4   5   6




©absta.pl 2020
wyślij wiadomość

    Strona główna