Układy programowalne cz.9.pdf

(1028 KB) Pobierz
ep_11_091-094.indd
K U R S
Układy programowalne, część 9
W ostatnim odcinku cyklu przedstawimy jedno z
najwygodniejszych, pośród obecnie dostępnych, uniwersalnych
narzędzi do realizacji projektów w układach programowalnych:
pakiet Protel 99SE. Pakiet ten, podobnie do następcy -
Protela DXP - jest wyposażony w kompilator CUPL-a, który
współpracuje z systemowym edytorem schematów. Niewątpliwą
zaletą pakietów Protel jest możliwość realizacji całego projektu
urządzenia w jednym środowisku, bez konieczności oswajania się
z różnymi interfejsami użytkowników i odmiennymi filozofiami
obsługi programów.
Kompilator CUPL-a, w jaki wypo-
sażono Protele, jest minimalnie zmo-
dyfikowanym wcieleniem pierwszej
wersji CUPL-a dla Windows, jaka po-
wstała wiele lat temu w firmie Data
I/O. Firma Protel (później Altium) nie
przykładała się specjalnie do powięk-
szania jego walorów użytkowych, stąd
większość wad oryginalnego kompila-
tora (w tym przede wszystkim niezbyt
przejrzysta diagnostyka błędów) jest od-
czuwalna do dziś. Dodano jedynie kil-
ka prostych rozszerzeń funkcjonalnych
(jak na przykład kreator projektów),
poprawiono także współpracę kompi-
latora z edytorem przebiegów, który
ułatwia analizę wyników symulacji. Ze
względu na specyfikę środowiska pro-
telowskiego nieco inaczej niż miało to
miejsce w WinCUPL-u wygląda obsługa
kompilatora. Jemu właśnie poświęcamy
ten odcinek kursu.
Rys. 46
Rys. 47
wymaga wybrania w menu opcji Fi-
le>New . W wyświetlonym oknie New
Design Database należy podać docelo-
wą lokalizację pliku oraz nazwę pliku
(rozszerzenie *.ddb nie jest nadawane
automatycznie!). Plik wykorzystany w
przykładzie nosi nazwę PLD_proj.ddb
i jest ulokowany w głównym katalogu
dysku C.
Kolejnym krokiem jest utworzenie
pliku zawierającego opis HDL w posta-
ci tekstowej (w języku CUPL) lub sche-
matu. Ponieważ w tej części artykułu
zajmiemy się przedstawieniem sposobu
realizacji projektu opisanego tekstowo,
mamy do wyboru dwie drogi:
- skorzystanie z kreatora projektu,
- utworzenie „pustego” pliku teksto-
wego, w którym trzeba będzie przygo-
tować cały opis HDL.
Ze względu na wygodę warto sko-
rzystać z interaktywnej pomocy kre-
atora. W tym celu w menu wybie-
ramy opcję File>New... , co powoduje
wyświetlenie okna New Document ,
którego widok pokazano na rys. 46 .
Wybieramy w tym oknie zakładkę
Wizards , a w niej PLD-CUPL Wizard
( rys. 47 ). Powoduje to zainicjowanie
pracy kreatora, którego jeden z kilku
możliwych wariantów przebiegu po-
kazano na rys. 48 . Na rysunku tym
zaznaczono najistotniejsze z punktu
widzenia projektanta miejsca, w których
kreator „dopytuje” się o najważniej-
sze parametry realizowanego projektu.
List. 22. Szkielet opisu HDL wyge-
nerowany przez kreatora projektów
PLD z pakietu CUPL
Name PLDDesign ;
Partno na ;
Revision 1 ;
Date 2004-10-17 ;
Designer PZb ;
Company EP ;
Assembly na ;
Location na ;
Device G22V10LCC ;
Format JEDEC ;
/*********************************************
************************/
/* This PLD design (Revision 1) created on
2004-10-17 */
/* for Protel Interna-
tional */
/* and is stored as PLDDesign
*/
/*********************************************
************************/
/** Inputs **/
Pin 1 = Input_1 ;
Pin 2 = Input_2 ;
Pin 3 = Input_3 ;
Pin 4 = Input_4 ;
/** Outputs **/
Pin 5 = Output_5 ;
Pin 6 = Output_6 ;
Pin 7 = Output_7 ;
Pin 8 = Output_8 ;
Pin 9 = Output_9 ;
Pin 10 = Output_10;
Pin 11 = Output_11;
/** Declarations and Intermediate Variables
**/
/** Logic Equations **/
Czarownik Ci pomoże
Ogromnym ułatwieniem podczas
realizacji projektów w układach PLD,
zwłaszcza dla początkujących użyt-
kowników, jest wbudowany w Protela
99SE kreator projektów ( wizard ). Dzięki
niemu większość typowych problemów
program rozstrzyga interaktywnie z pro-
jektantem, zadając mu kolejno proste
pytania, których odpowiedzi pozwalają
uzyskać „szkielet” opisu HDL.
Jak wiadomo Protel 99SE przecho-
wuje wszystkie pliki wchodzące w
skład projektu w jednym pliku o roz-
szerzeniu *.ddb . Plik taki należy utwo-
rzyć dla każdego nowego projektu, co
Uniwersalne narzędzie
Protel 99SE umożliwia realizację projektów w układach PLD pochodzących
od różnych producentów. W sumie do dyspozycji projektantów jest ponad 200
różnych typów układów PLD, począwszy od pamięci PROM, aż po układy CPLD
i FPGA różnych producentów.
Elektronika Praktyczna 11/2004
91
32853558.035.png 32853558.036.png 32853558.037.png 32853558.038.png
K U R S
Rys. 48
Na skróty, ku wygodzie!
Układ wirtualny
Projektanci korzystający z CUPL-a
mogą realizować projekty na
układy wirtualne (virtual device),
które są pozbawione ograniczeń
charakterystycznych dla układów
rzeczywistych (jak choćby
liczba termów matrycy OR,
maksymalna liczba wejść bramek
AND w matrycy programowalnej,
przypisanie sygnałów globalnych
zegarowych itp.).
Standardowo Protel 99SE jest wyposażony w bibliotekę symboli służących do
projektowania układów PLD, wśród których są dostępne m.in. wygodne w stosowaniu
wybrane odpowiedniki funkcjonalne układów TTL.
W wyniku działania kreatora powstaje
plik tekstowy zawierający podstawowe
elementy opisu HDL - uzyskany przy-
kładowy szkielet opisu HDL pokazano
na list. 22 .
Nieco inaczej wygląda inicjacja pro-
jektu, w którym zamiast tekstowego
opisu HDL użytkownik chciałby wy-
korzystać bardziej przyjazny opis sche-
matowy. Na rys. 49 pokazano przebieg
ścieżki pracy kreatora projektu począw-
szy od chwili wybrania jako pliku pro-
jektowego schematu (punkt oznaczony
literą „A” na rys. 48). W zależności od
zamiarów, projektant może realizować
projekt na układzie wirtualnym, może
także wskazać rzeczywisty układ doce-
lowy. Kolejnym krokiem jest określenie
wykorzystywanych w projekcie linii
wejściowych i wyjściowych (muszą się
one znaleźć w okienku Design Pins to
w przedostatnim etapie pracy kreatora,
pokazanym na rys. 49), co zaowocu-
je automatycznym wprowadzeniem na
planszę schematu odpowiednich sym-
boli. Można je oczywiście później mo-
dyfikować, ale warto (zwłaszcza przy
pierwszych projektach) poświęcić chwi-
lę na podanie tych parametrów - upro-
ści to dalsze prace nad projektem.
Na tym, w zasadzie, kończy się
praca kreatora projektu. Jej efektem
jest schemat elektryczny, na którym
Rys. 49
92
Elektronika Praktyczna 11/2004
32853558.001.png 32853558.002.png 32853558.003.png 32853558.004.png 32853558.005.png 32853558.006.png 32853558.007.png 32853558.008.png 32853558.009.png 32853558.010.png 32853558.011.png 32853558.012.png 32853558.013.png 32853558.014.png 32853558.015.png 32853558.016.png 32853558.017.png 32853558.018.png
K U R S
Rys. 50
Rys. 51
Kompilacja projektu
Kompilator wbudowany w Protela
99SE w większości przypadków nie
wymaga konfiguracji - domyślne nasta-
wy zazwyczaj umożliwiają poprawną
kompilację opisu HDL. Warto jednak
zdawać sobie sprawę z możliwości
zmodyfikowania parametrów syntezy lo-
gicznej, co w pewnych sytuacjach (na
przykład niewystarczającej liczby ter-
mów wejściowych makrokomórki) może
mieć decydujący wpływ na jakość im-
plementacji projektu.
Okno konfiguracji kompilatora jest
wyświetlane po wybraniu w menu
opcji PLD>Configure ( rys. 51 ). Domyśl-
nie jest wyświetlana zakładka Options ,
na której można ustalić typ docelowego
układu PLD ( Target Device , ewentualnie
Use Virtual Device ), określić sposób
optymalizacji opisu HDL i kodowania
stanów automatów i wybrać algorytm
minimalizacji opisu ( Logic Minimiza-
tion ). W większości przypadków nie
ma jednak konieczności modyfikowania
ustawień dostępnych na tej zakładce.
Druga z zakładek okna Configure PLD
Compiler ( rys. 52 ) służy do ustalenia
są umieszczone symbole wejść i wyjść
(zgodnie z opisem podanym przez
użytkownika) oraz symbole zasilania
(które jednak do niczego nie służą i
można jej usunąć z planszy).
podstawowych funktorów logicznych
(jak m.in. porty wejściowe, wyjściowe
i dwukierunkowe, bramki AND, OR,
NOR, NOT itp.) wiele „makrofunkcji”,
będących odpowiednikami układów)
TTL. Symbole te są oznaczane w na-
stępujący sposób:
X74_aaa,
gdzie aaa oznacza dwu- lub trzycy-
frowy symbol zaczerpnięty z oznaczenia
układu TTL. Przykładowo symbol X74_
42 odpowiada funkcjonalnie dekodero-
wi 7442, a symbol X74_151 odpowiada
funkcjonalnie multiplekserowi 74151.
Biblioteki PLD dla edytora schematów
Protel 99SE wyposażono w biblio-
tekę symboli (dla edytora schematów)
elementów logicznych przygotowanych
z myślą o realizacji projektów na ukła-
dach PLD. Biblioteka o nazwie PLD
Symbols.lib ( rys. 50 ) jest przechowywa-
na w pliku PLD.ddb i zawiera, oprócz
Elektronika Praktyczna 11/2004
93
32853558.019.png 32853558.020.png 32853558.021.png 32853558.022.png 32853558.023.png 32853558.024.png 32853558.025.png
K U R S
Rys. 54
Rys. 53
dżera projektu będzie zaznaczony inny
plik, niż ten, który zawiera opis HDL!
Wynikiem pracy symulatora jest
między innymi plik *.so , który ma
postać tekstową (podobnie jak w Win-
CUPL-u i innych mutacjach CUPL-a),
ale w przypadku zainstalowania Prote-
la 99SE z serwerem Waveform Display ,
wyniki symulacji są prezentowane w
postaci przebiegów ( rys. 55 ). Należy
pamiętać, że prezentowana przez sy-
mulator skala czasu nie ma odzwier-
ciedlenia w rzeczywistości!
Warto wziąć także pod uwagę, że
pomimo deklarowanej przez producenta
możliwości edycji przebiegów ilustrują-
cych działanie układu (są one wyświe-
tlane przecież w systemowym edytorze
przebiegów), ich modyfikacja i popraw-
ne przechowywanie w pliku projektu
*.ddb jest (a raczej bywa) możliwe
w wersjach z zainstalowanym Servi-
ce Packiem 6 . Piszę „bywa”, ponieważ
Protel 99SE z SP6 po zainstalowaniu
na dwóch komputerach zachowuje się
- bez wyraźnej przyczyny - odmiennie.
Stąd zachęta do przyjęcia zasady, że
modyfikacje wektorów pobudzeń i od-
powiedzi należy przeprowadzać w pli-
ku *.si , a edytorowi przebiegów pozo-
stawić wyłącznie funkcję przeglądarki.
Piotr Zbysiński, EP
piotr.zbysinski@ep.com.pl
Symulacja i oś czasu
Symulator układów PLD wbudowany w Protela 99SE jest symulatorem
funkcjonalnym, nie ma więc możliwości zweryfikowaniawpływu parametrów
czasowych układów docelowych na ich działanie w fizycznymurządzeniu.
jakie pliki będą tworzone podczas pra-
cy kompilatora, za pomocą dostępnych
ustawień można także skonfigurować
zawartość pliku raportu z kompilacji.
W przypadku kompilowania schema-
tu zawierającego opis projektu można
uaktywnić automatyczny podgląd pliku
HDL (opcja Schematic , View PLD File ),
który zawiera tekstowy opis schematu.
Po skonfigurowaniu kompilatora mo-
żemy podjąć próbę skompilowania pro-
jektu. W tym celu w menu wybieramy
opcje: PLD>Compile , co powoduje na-
tychmiastowe uruchomienie kompilato-
ra. W zależności od przebiegu kompila-
cji, wyświetlone okno zawiera informa-
cje o wykrytych błędach ( rys. 53a ) lub
o pomyślnym zakończeniu kompilacji
( rys. 53b ).
Kolejnym krokiem realizacji projektu
jest jego symulacja. Protel 99SE wypo-
sażono w niezły symulator funkcjonal-
ny, za pomocą którego można wiary-
godnie zweryfikować uzyskane wyniki.
Symulacja projektu
Do symulacji projektu opisanego
w CUPL-u niezbędny jest plik *.si ,
zawierający wektory pobudzeń oraz
(opcjonalnie) odpowiedzi. Jest to taki
sam plik jak w przypadku wszystkich
innych wersji CUPL-a. Nazwa pliku
*.si musi być identyczna jak nazwa
projektu!
Do symulacji niezbędny jest jesz-
cze drugi plik - o rozszerzeniu *.abs
- uzyskiwany podczas kompilacji (w
zakładce Output Formats okna Confi-
gure PLD Compiler należy zaznaczyć
opcję Simulation , Absolute ABS ).
Te dwa pliki umożliwiają przepro-
wadzenie symulacji. Jej uruchomienie
wymaga wskazania w oknie menadże-
ra projektów pliku *.pld lub *.sch (w
zależności od przyjętego sposobu opi-
sania projektu) i wybrania w menu
opcji PLD>Simulate ( rys. 54 ). Należy
pamiętać, że symulacja nie zostanie
przeprowadzona, jeżeli w oknie mena-
Rys. 55
Rys. 56
94
Elektronika Praktyczna 11/2004
32853558.026.png 32853558.027.png 32853558.028.png 32853558.029.png 32853558.030.png 32853558.031.png 32853558.032.png 32853558.033.png 32853558.034.png
Zgłoś jeśli naruszono regulamin