LABORATORIUM TECHNIKI CYFROWEJ Projektowanie układów programowalnych w rodowisku MAX+plus II 10.1 BASELINE z wykorzystaniem edytora graficznego Opracowali: dr in. Krystyna Maria Noga mgr in. Rafał Sokół mgr in. Marcin Radwaski Akademia Morska Wydział Elektryczny Katedra Automatyki Okrtowej Gdynia, wrzesie 2008
W instrukcji laboratoryjnej zostan przedstawione zasady projektowania układów programowalnych w rodowisku MAX+plus II 10.1 BASELINE z wykorzystaniem edytora graficznego. 1. Opracowanie struktury układu - włczamy program MAX+plus II - wybieramy z menu File/Project/Name... i wpisujemy nazw projektu, przy czym nie naley stosowa polskich ogonków (rys.1) - Czynno t naley wykonywa równie przy otwieraniu istniejcych projektów - gdy chcemy utworzy nowy projekt wybieramy z menu File/New..., zaznaczamy Graphic Editor file i klikamy OK (rys.2) - gdy chcemy otworzy istniejcy ju plik to wybieramy z menu File/Open...i zaznaczamy odpowiedni plik z rozszerzeniem gdf wpisz nazw swojego projektu wybieramy opcj edytora graficznego Rys. 1 Rys. 2 - schemat utworzony w oknie edytora graficznego zapisujemy na dysku, co uzyskujemy poprzez wybranie z menu File polecenia Save As... Nie zmieniamy nazwy domylnej, która jest identyczna jak nazwa projektu, inne jest tylko rozszerzenie (rys. 3) nie zmieniamy nazwy Rys. 3 - klikamy dwukrotnie w oknie edytora i wybieramy bibliotek z której bdziemy korzysta. 1
Do wyboru s nastpujce biblioteki: - biblioteka prim zawiera elementy podstawowe, takie jak bramki logiczne, przerzutniki, porty I/O itp. - biblioteka mf zawiera elementy o wikszej złoonoci, takie jak multipleksery, sumatory, demultipleksery, itp. Przykładowo, aby wstawi licznik UCY 7492 klikamy dwukrotnie na nazwie biblioteki c:\maxplus2\max2lib\mf i z listy Symbol Files wybieramy symbol 7492 (rys. 4). Po wyborze w oknie edycyjnym zostanie umieszczony symbol licznika (rys. 5) klikamy dwukrotnie na nazwie biblioteki wybieramy symbol Rys. 4 Rys. 5 - ponownie klikamy dwukrotnie w oknie edycyjnym i z biblioteki c:\maxplus2\max2lib\prim wstawiamy symbol input oraz symbol output. Wszystkie wyprowadzenia wej i wyj opisujemy klikajc w PIN_NAME danej kocówki, przy czym wskazane jest, aby nazwa ta kojarzyła si z rol danego wejcia/wyjcia (rys. 6). Naley ponownie zaznaczy, e nie wolno w nazwach stosowa polskich ogonków. 2
opisujemy wejcia i wyjcia Rys. 6 - połczenia midzy elementami wykonujemy przytrzymujc lewy przycisk myszy i przecigajc mysz do wybranej kocówki (rys. 7), przy czym mona rysowa linie etapami, czyli mona zakoczy lini w dowolnym punkcie i nastpnie j dalej z tego punktu kontynuowa połczenia wykonujemy przytrzymujc lewy klawisz myszy Rys. 7 - gotowy układ zapisujemy i kompilujemy, w tym celu naley uaktywni odpowiednie ikony z paska narzdziowego (rys. 8). Mona równie skorzysta z odpowiedniego polecenia znajdujcego si w menu File/Project, tj. polecenia Save & Compile. 3
zapisz kompiluj Rys. 8 - po wciniciu ikony ukae si okno przedstawione na rysunku 9 - przyciskiem Start rozpoczynamy prac kompilatora, który wywietli ilo ewentualnych błdów. Jeli warto ta jest inna ni zero oznacza to, e który z wczeniej omówionych punktów nie został wykonany prawidłowo (rys. 9) wciskamy Start komunikat poprawnoci kompilacji Rys. 9 - w przypadku wystpienia błdu naley sprawdzi poprawno połcze. 4
2. Symulacja układu - aby stworzy plik symulacji wybieramy z menu File polecenie New.., zaznaczamy Waveform Editor file i klikamy OK (rys. 10) - plik symulacji zapisujemy na dysku poprzez wybranie z menu File / Save As... Nie zmieniamy nazwy domylnej, która jest identyczna jak nazwa projektu. Rozszerzenie scf jest nadawane automatycznie (rys. 11) nie zmieniamy nazwy wybieramy edytor symulacji z rozszerzeniem.scf Rys. 10 Rys. 11 - ustawiamy czas symulacji, w tym celu wykorzystujemy z menu File polecenie End Time... (rys. 12) - ustawiamy krok symulacji, w tym celu naley wybra z menu Option polecenie Grid Size... (rys. 13) Rys. 12 Rys. 13 5
- wywołujemy okno dodawania sygnałów niezbdnych do symulacji, co uzyskujemy poprzez kliknicie prawym przyciskiem myszy pod opisem Name i wybranie polecenia Enter Nodes from SNF (rys. 14) klikamy prawym myszy pod opisem Name i wybieramy Enter Nodes from SNF Rys. 14 - w celu wywietlenia wszystkich moliwych do obserwacji sygnałów, wybieramy przycisk List, a nastpnie w oknie Available Nodes & Groups zaznaczamy sygnały które chcemy obserwowa i przyciskiem => przenosimy je do okna Selected Nodes & Groups (rys. 15) wciskamy List zaznaczamy sygnały, które chcemy obserwowa i wybieramy je przyciskiem => Rys. 15 6
- sygnał zegara wstawiamy poprzez kliknicie symbolu sygnału zegar i wybranie z bocznego menu ikony Clock waveform. Nastpnie wybór potwierdzamy przyciskiem OK (rys. 16) klikamy w symbol zegar wybieramy opcj Clock waveform potwierdzamy przyciskiem OK Rys. 16 - widok osi czasu zmieniamy przy pomocy ikon oznaczonych jako lupa + i lupa (rys. 17) przy pomocy lupa - lub lupa + ustawiamy osie tak, aby sygnał zegara był czytelny Rys. 17 7
- okrelamy stany logiczne dla sygnałów wejciowych, przy czym stany logiczne 0 i 1 ustawiamy poprzez zaznaczenie mysz danego przedziału czasowego i wybranie odpowiedniego przycisku z bocznego menu (rys.18) zaznaczamy dany przedział czasowy przyciskiem 1 ustawiamy poziom logiczny 1 Rys. 18 - wybieramy ikon symulacji i uruchamiamy j przyciskiem Start (rys. 19) - po uruchomieniu symulacji zostanie wywietlona informacja o iloci ewentualnych błdów. Jeli warto ta jest inna ni zero oznacza to, e który z wczeniej omówionych punktów nie został wykonany prawidłowo. (rys. 20) wybieramy ikon symulacji wciskamy Start komunikat poprawno- ci symulacji Rys. 19 Rys. 20 8
-wyniki symulacji naley zapisa, czyli naley wybra polecenie Save (naley pamita, e poprzednio stosowalimy polecenie Save As). 3. Programowanie układu - wybieramy z menu Assign polecenie Device... i okrelamy typ układu jaki chcemy programowa. Dla układu EPM7128SLC84-15 firmy Waltera, dostpnego w laboratorium TC, wybieramy grup MAX7000S i typ EPM128SLC84-15 (rys. 21) Prosz pamita o odznaczeniu opcji Show Only Fastest Speer Grades. wybieramy grup MAX7000S typ EPM7128SLC84-15 odznaczamy Rys. 21 - ponownie zapisujemy i kompilujemy plik: rys. 8 i rys. 9 - otwieramy edytor wyprowadze, co uzyskujemy przy pomocy stosownej ikony z górnego menu (rys. 22) ikon wywołujemy edytor wyprowadze Rys.22 - aby program zezwolił na przypisywanie sygnałów do rzeczywistych pinów układu, sprawdzamy czy jest zaznaczona opcja w menu Layout/Current Assignments Floorplan. Wówczas nie przypisane jeszcze sygnały znajd si w oknie Unassigned Nodes & Pins. Jeli okno róni si od rys. 23 to naley z menu Layout wybra polecenie Device View. Nastpnie przytrzymujc lewym przyciskiem myszy na symbolu sygnału, przecigamy go do odpowiedniego wyprowadzenia układu (rys. 23) 9
wcinij lewy klawisz myszy na symbolu przesu mysz nie puszczajc klawisza pu klawisz myszy na wybranym pinie Rys. 23 - wstawione ju połczenia mona równie w ten sam sposób przenosi na inne piny układu (rys. 24) Postpuj jak wyej Rys. 24 - wybór numerów wyprowadze jest uzaleniony od pinów w fizycznym układzie, co zostało okrelone podczas projektowania zestawu uruchomieniowego (przykładowo na rys. 25 przedstawiono zestaw III). Rozkład wyprowadze dla poszczególnych płytek jest zamieszczony na str. 18-22. Naley zwróci uwag na numer wejcia zegarowego, który jest inny dla kadej z płytek uruchomieniowych. - po przyporzdkowaniu pinów, ponownie zapisujemy i kompilujemy, w tym celu naley uaktywni odpowiednie ikony z paska narzdziowego (rys. 8). Mona równie skorzysta z odpowiedniego polecenia znajdujcego si w menu File/Project, tj. polecenia Save & Compile. 10
numery wyprowadze wyj numery wyprowadze wej Rys. 25 - otwieramy okno programatora, przy pomocy odpowiedniej ikony z górnego menu, i wybieramy polecenie Program (rys. 26) - po przesłaniu programu do układu zostanie wywietlony stosowny komunikat (rys. 27) ikon wywołujemy okno programatora wciskamy Program potwierdzenie prawidłowego przesłania programu Rys. 26 Rys. 27 11
4. Tworzenie podobwodów Wszystkie komponenty dostpne w edytorze graficznym rodowiska MAX+plus II zostały utworzone jako podobwody złoone z podstawowych komponentów (bramek i przerzutników) lub zapisane w postaci kodu ródłowego z jzyku AHDL (ang. Altera Hardware Description Language). Jednak gdy w projekcie powtarza si pewien blok złoony z kilku podstawowych komponentów lub blok taki bdzie wykorzystywany w wielu rónych projektach, to wygodnym rozwizaniem jest zapisanie go jako własny podobwód. Aby utworzy podobwód naley załoy nowy folder na dysku za pomoc eksploratora Windows i po uruchomieniu rodowiska MAX+plus II wybra z menu polecenie File New Graphic Editor File, które spowoduje uruchomienie edytora graficznego. W tym edytorze naley wprowadzi schemat tworzonego podobwodu wraz ze wszystkimi wejciami i wyjciami, którym naley nada poprawne nazwy. Gotowy schemat naley zapisa na dysku we wczeniej utworzonym folderze, co uzyskujemy poprzez wybranie polecenia File Save As Po wywołaniu polecenia File Create Default Symbol program utworzy symbol (blok) reprezentujcy ten podobwód. Symbol ten mona edytowa po wykonaniu polecenia File Edit Symbol. Zostanie wówczas automatycznie uruchomiony edytor symboli (Symbol Editor) wraz z plikiem zawierajcym symbol, w którym mona zmieni wygld zewntrzny podobwodu, czyli np. zmieni połoenie wyprowadze czy wielko i krój czcionki w nazwie podobwodu lub opisach wyprowadze. Wszystkie polecenia dotyczce edycji symbolu dostpne s po klikniciu prawym klawiszem myszy na danym elemencie symbolu. W tym edytorze nie ma moliwoci zmiany struktury wewntrznej podobwodu. Po zapisaniu ewentualnych zmian w wygldzie symbolu nie naley wykonywa kompilacji ani symulacji układu, gdy nie został utworzony kompletny projekt. Po zamkniciu rodowiska MAX+plus II w wykorzystywanym folderze bd obecne cztery pliki o rozszerzeniach: *.acf, *.gdf, *.hif i *.sym. Aby wykorzysta tak utworzony podobwód wystarczy skopiowa te cztery pliki (tylko pliki, bez folderu) do folderu z tworzonym projektem. Podobwód bdzie wtedy dostpny jako komponent w głównym katalogu bazy danych zawierajcej gotowe komponenty w polu Symbol Files. W przypadku wykrycia błdów w strukturze wewntrznej podobwodu modyfikacji mona dokona po ponownym otwarciu pliku podobwodu w edytorze graficznym, zarówno w trakcie tworzenia i testowania projektu zawierajcego ten podobwód lub osobno, bez tworzenia projektu. Naley równie zawsze sprawdzi, czy rodowisko MAX+plus II poprawnie zinterpretowało hierarchi projektu (czy podobwód nie jest elementem nadrzdnym). W tym celu naley otworzy okno podgldu hierarchii poleceniem MAX+plus II Hierarchy Display. W przypadku stwierdzenia błdu w hierarchii naley ponownie utworzy projekt z zachowaniem zalece podanych we wczeniejszych cz- ciach instrukcji. Jak wczeniej stwierdzono, podobwody mog by zapisywane równie za pomoc jzyków opisu sprztu AHDL i VHDL, po zapisaniu ich opisu w edytorze tekstowym. Przykład Zadanie: utworzy podobwód zawierajcy układ dekodera 4-bitowego kodu dwójkowego naturalnego na kod wskanika 7-segmentowego z aktywn jedynk (sygnał o wartoci logicznej równej 1 na wyjciu dekodera powoduje zapalenie si segmentu wywietlacza). Oznaczenia segmentów zostały podane na rys. 28. Rys. 28. Oznaczenia segmentów na wskaniku siedmiosegmentowym Rozwizanie: Projektowany układ ma cztery wejcia i siedem wyj, zatem najprostszym sposobem rozwizania jest projekt z wykorzystaniem demultipleksera o czterech wejciach adresowych. Standardowe układy 7447 i 7448 zawarte w bibliotece rodowiska MAX+plus II 12
nie wywietlaj liczb z zakresu 10-15 w formie symboli kodu szesnastkowego, zatem podane jest takie rozwizanie, aby te symbole były wywietlane, np. w sposób podany w tabeli 1. Tabela 1. Tablica stanów projektowanego dekodera wraz z wygldem wywietlacza Wejcia Segmenty (wyjcia) L.p. Kod Hex ID IC IB IA SA SB SC SD SE SF SG 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 0 0 0 0 2 2 0 0 1 0 1 1 0 1 1 0 1 3 3 0 0 1 1 1 1 1 1 0 0 1 4 4 0 1 0 0 0 1 1 0 0 1 1 5 5 0 1 0 1 1 0 1 1 0 1 1 6 6 0 1 1 0 1 0 1 1 1 1 1 7 7 0 1 1 1 1 1 1 0 0 0 0 8 8 1 0 0 0 1 1 1 1 1 1 1 9 9 1 0 0 1 1 1 1 1 0 1 1 10 A 1 0 1 0 1 1 1 0 1 1 1 11 B 1 0 1 1 0 0 1 1 1 1 1 12 C 1 1 0 0 0 0 0 1 1 0 1 13 D 1 1 0 1 0 1 1 1 1 0 1 14 E 1 1 1 0 1 0 0 1 1 1 1 15 F 1 1 1 1 1 0 0 0 1 1 1 Wygld wywietlacza Uwzgldniajc fakt, e funkcje logiczne okrelajce sposób pracy poszczególnych segmentów znacznie czciej przyjmuj warto logiczn równ 1 ni 0 wyznaczono nastpujce równania tych funkcji w postaci iloczynowej: SA (ID, IC, IB, IA) = (1, 4, 11, 12, 13), SB (ID, IC, IB, IA) = (5, 6, 11, 12, 14, 15), SC (ID, IC, IB, IA) = (2, 12, 14, 15), SD (ID, IC, IB, IA) = (1, 4, 7, 10, 15), SE (ID, IC, IB, IA) = (1, 3, 4, 5, 7, 9), SF (ID, IC, IB, IA) = (1, 2, 3, 7, 12, 13), SG (ID, IC, IB, IA) = (0, 1, 7). Powysze funkcje logiczne najłatwiej zrealizowa za pomoc demultipleksera UCY 74154 oraz odpowiednich bramek iloczynu. Otrzymany układ (rys. 29) wprowadzono do edytora graficznego i zapisano w pliku o nazwie dekoder.gdf w folderze o nazwie dekoder w sposób opisany powyej. 13
Rys. 29. Schemat projektowanego dekodera Nastpnie wybrano polecenie File Create Default Symbol oraz File Edit Symbol. Został uruchomiony edytor symboli (rys. 30), co pozwoliło na zmian połoenia nazwy układu i kroju czcionek. Rys. 30. Okno edytora symboli z wprowadzonym podobwodem 14
Gotowy podobwód mona przetestowa za pomoc projektu zawierajcego układ licznika dwójkowego UCY 7493 i wczeniej zaprojektowany dekoder. W tym celu utworzono na dysku pusty folder licznik i poleceniem File Project Name załoono projekt o tej samej nazwie licznik w tym folderze w sposób opisany w punkcie 1 niniejszej instrukcji. Za pomoc edytora graficznego narysowano cz projektu zawierajc tylko licznik i zapisano plik z t czci schematu z automatycznie nadan nazw licznik.gdf. Nastpnie cztery pliki zawierajce definicj podobwodu z dekoderem skopiowano z katalogu dekoder do katalogu licznik za pomoc eksploratora Windows, co pozwoliło na dokoczenie pracy z plikiem licznik.gdf (rys. 31) oraz na przeprowadzenie symulacji, która potwierdziła poprawn prac kompletnego układu (rys. 32). W tym projekcie licznik UCY 7493 wykorzystano jako generator słów od 0 do 15 binarnie, czyli od (0000) 2 do (1111) 2. Układ UCY 7493 pracuje jako licznik modulo 16 w kodzie binarnym, generuje wic sygnały wejciowe dla dekodera. Rys. 31. Układ licznika z dekoderem w postaci podobwodu Rys. 32. Wynik symulacji układu licznika z dekoderem W zwizku z tym, e przedstawiona realizacja dekodera za pomoc demultipleksera nie jest rozwizaniem optymalnym w układzie wystpuje zjawisko hazardu wyranie widoczne na przebiegach czasowych bdcych wynikiem symulacji ( szpilki na przebiegach czasowych). Zjawisko to mona zlikwidowa poprzez pełn syntez układu i minimalizacj za pomoc tablic Karnaugha z uwzgldnieniem dodatkowych grup. 15
5. Wirtualna szyna połczeniowa Bardzo czsto na schematach układów cyfrowych wystpuje dua liczba połcze, szczególnie w przypadku wykorzystania multiplekserów lub demultiplekserów. Schemat taki jest nieczytelny i bardzo trudno jest odnale błd, np. gdy zostanie popełniona jaka pomyłka podczas rysowania połcze. Wtedy najlepszym rozwizaniem jest wykorzystanie wirtualnej szyny połczeniowej. Taki sposób reprezentacji połcze w projektowanym układzie znacznie ułatwia diagnostyk gotowego układu i poprawia przejrzysto schematu. Sposób wprowadzenia wirtualnej szyny połczeniowej w edytorze graficznym MAX+plus II zostanie pokazany na przykładzie dekodera zaprojektowanego w punkcie 4 niniejszej instrukcji. Przed przystpieniem do wprowadzenia schematu, podobnie jak w przypadku podobwodu, utworzono folder dek_bus i uruchomiono edytor graficzny. Aby prawidłowo wykorzysta moliwoci wirtualnej szyny połczeniowej naley wykona kolejno nastpujce czynnoci (rys. 33): 1. narysowa dowolne połczenie na schemacie rozpoczynajc od komponentu wprowadzonego z bazy programu, 2. zaznaczy kursorem pewien odcinek tego połczenia bdzie on narysowany kolorem czerwonym, 3. klikn prawym klawiszem myszy na zaznaczonym odcinku, tak aby otworzyło si menu kontekstowe i wybra polecenie Line Style i zaznaczy pogrubion lini cigł (Bus Style), 4. lini reprezentujc szyn mona dowolnie przedłua i przesuwa za pomoc myszy, wzły podczas rysowania połcze s dodawane automatycznie, 5. nastpnie mona przystpi do łczenia elementów z szyn, przy czym po narysowaniu połczenia naley na nie klikn tak, aby kursor znalazł si dokładnie na linii tego połczenia, a samo połczenie zostało zaznaczone kolorem czerwonym, 6. poda z klawiatury nazw danego połczenia, przy czym nazwa moe zawiera litery i cyfry, ale nie moe zawiera znaków specjalnych (za wyjtkiem podkrelnika _ ) ani spacji, 7. naley kontynuowa łczenie elementów według punktów 5 i 6, zwracajc szczególn uwag na wprowadzane nazwy i połoenie tych nazw zawsze bezporednio nad połczeniem. Nazwy mona edytowa, zmienia wielko i krój czcionki za pomoc menu kontekstowego, lecz nie wolno zmienia ich połoenia, poniewa stan si wtedy zwykłym tekstem nie zwizanym z połczeniem. 1 2 3 Kursor 4 5 6 Kursor Wpisana nazwa Rys. 33. Sposób tworzenia wirtualnej szyny połczeniowej 16
Po zakoczeniu wprowadzania schematu dekodera (rys. 34) jest on bardziej przejrzysty i łatwo zauway ewentualne pomyłki lub wprowadzi modyfikacje. Dalsze czynnoci s identyczne jak przy wprowadzaniu podobwodu. Tak stworzony podobwód zawierajcy dekoder z wirtualn szyn połczeniow przetestowano w takim samym projekcie z licznikiem dwójkowym i otrzymano identyczny wynik symulacji, zatem zaprojektowany podobwód pracuje poprawnie. Rys. 34. Podobwód dekodera zbudowany z wykorzystaniem wirtualnej szyny połczeniowej Warto te zwróci uwag na podłczenie masy do wej sterujcych demultipleksera przedstawione na rys. 34. Po nadaniu nazwy połczeniu mona je przerwa w dowolnym miejscu i rozpocz rysowanie tego połczenia w innym miejscu nadajc mu tak sam nazw. Uwaga: Nie mona stosowa takich nazw połcze jak GND i VCC, mona je zastpi innymi nazwami, np. masa lub zero oraz odpowiednio plus lub jeden. 17
PŁYTKA 1 BTC 18
PŁYTKA 1 BTC - WYPROWADZENIA Dostpne wejcia Zworki JP1 i JP2 Zworka Dołczona do wyprowadzenia EPM7128S JP1 28 JP2 30 Przełczniki SW2 i SW3 Przełcznik Dołczony do wyprowadzenia EPM7128S SW3 (styk NC) 57 SW2 (styk NC) 55 SW2 (styk NO) 58 Nastawniki szesnastkowe NA i NB Styk nastawnika (waga binarna) Dołczony do wyprowadzenia EPM7128S NA_1 (2 0 ) 31 (A_0) NA_4 (2 1 ) 35 (A_1) NA_3 (2 2 ) 37 (A_2) NA_6 (2 3 ) 34 (A_3) NB_1 (2 0 ) 49 (B_0) NB_4 (2 1 ) 54 (B_1) NB_3 (2 2 ) 56 (B_2) NB_6 (2 3 ) 51 (B_3) Dostpne wyjcia Wywietlacze W1 i W2 Segmenty wywietlacza W1 Dołczone do wyprowadze Segmenty wywietlacza W2 Dołczone do wyprowadze A1 5 A2 74 B1 6 B2 73 C1 9 C2 75 D1 10 D2 77 E1 11 E2 79 F1 15 F2 80 G1 12 G2 81 DP1 8 DP2 76 Diody LED D0,, D8 Oznaczenie diody LED Dołczona do wyprowadzenia układu EPM7128S: D0 70 D1 69 D2 68 D3 67 D4 65 D5 64 D6 63 D7 60 D8 61 Symbole NC i NO uyte w tabeli posiadaj odpowiednio nastpujce znaczenie: Normally Closed (zwolniony przycisk podaje na wyprowadzenie wysoki poziom logiczny 1 ) i Normally Open (zwolniony przycisk podaje na wyprowadzenie niski poziom logiczny 0 ). 19
PŁYTKA 2 WYPROWADZENIA ZEGAR PIN 2 20
PŁYTKA 3 WYPROWADZENIA ZEGAR PIN 2 21
PŁYTKA 4 WYPROWADZENIA Uwaga, numeracja diod z lewej strony jest naprzemienna 22