Politechnika Białostocka Wydział lektryczny Katedra Automatyki i lektroniki Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALN STRUKTURY LOGICZN SC420 300 Ćwiczenie Nr 3 RALIZACJA UKŁADÓW KOMUTACYJNYCH W STRUKTURACH PROGRAMOWALNYCH Opracował: dr inż. Walenty Owieczko BIAŁYSTOK 204
Spis treści instrukcji:. Cel ćwiczenia... 2 2. Informacje wstępne..... 2 3. tapy i narzędzia projektowania układów w systemie Max+Plus II 5 4. Wybór układu i przypisanie sygnałów. 5 5. Programowanie układu 7 6. Czynności przygotowawcze... 8 7. Przebieg ćwiczenia 8 8. Sprawozdanie i forma zaliczenia ćwiczenia... 9 9. Literatura.. 9. CL ĆWICZNIA Zapoznanie się z możliwościami funkcjonalnymi bloku parametryzowanych funkcji LPM_MU oraz nabycie umiejętności projektowania i realizacji układów komutacyjnych w strukturach programowalnych. 2. INFORMACJ WSTĘPN Multiplekser układ do przesyłania informacji binarnej na wyjście z wybranego wejścia danych i, którego numer w kodzie NB określa k-bitowy adres A i. 7 6 5 4 3 2 0 A2 A A0 Y 7 0 A 2 A A 0 Y A2AA0 Y 2 0 2 2 2 0 x x x 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 2 4 5 6 7 Rys.. Struktura wewnętrzna, symbol i tablica prawdy multipleksera -bit. 8. 2
Konfiguracja multipleksera wielobitowego z bloku parametryzowanego LPM_MU Rys. 2. Okno konfiguracji bloku LPM_MU Pole Ports umożliwia konfigurację portów multipleksera. Istnieje również możliwość włączenia ( used ) lub wyłączenia ( unused ) poszczególnych wejść lub wyjść układu oraz negacji poszczególnych sygnałów ( inversion ) lub ustawienia stałych poziomów ( pattern ). Pole Parameters służy do ustawiania poszczególnych parametrów multipleksera. Po wybraniu wskaźnikiem parametru z przewijanej listy, jego nazwa pojawia się w polu Parametr Name i wówczas pożądaną wartość wpisujemy w polu Parametr Value. Wpis zatwierdzamy przyciskiem Change. Przycisk Help on LPM_MU otwiera okno z pomocą, w którym jest opis wszystkich parametrów. - LPM_PIPLIN - liczba cykli zegarowych przetwarzania potokowego niezbędnych do wyznaczenia wyniku (opcjonalny parametr, typu integer), - LPM_WIDTH - liczba bitów danych lub inaczej szerokość magistrali wyjściowej (wymagany parametr, typu integer), - LPM_SIZ - szerokość magistrali wejściowej (wymagany parametr, typu integer). Rys. 3. Przykład realizacji multipleksera wielobitowego (4 x 4bit.) z bloku LPM_MU 3
Demultiplekser Demultiplekser (D) jest układem o działaniu odwrotnym do multipleksera. Posiada wejście danych, k wejść adresowych oraz N = 2 k wyjść. D może być wyposażony w wejścia sterujące (odblokowujące). Y7 A 2 A A 0 2 2 2 2 0 Y 7 Y 6 Y 5 Y 4 Y 3 Y 2 Y Y 0 Y6 0 x x x 0 0 0 0 0 0 0 0 Y5 0 0 0 0 0 0 0 0 0 0 Y4 Y3 Y2 Y Y 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Y0 Y 0 0 0 0 0 0 0 0 0 A 2 A A 0 0 0 0 0 0 0 0 A2 A A0 Rys. 4. Struktura wewnętrzna, symbol i tablica demultipleksera 8 Wymuszając na wejściu danych demultipleksera stały sygnał logiczny ("0" lub " ) i traktując wejścia adresowe jako wejścia kodu n-bit. kodu, uzyskuje się układ dekodera (DK) NB z N. Przykład realizacji funkcji logicznych na demultiplekserach/dekoderach Na jednym D/DK można zrealizować zespół funkcji w postaciach kanonicznych (KPS lub KPI). W przypadku D/DK z wyjściami zanegowanymi, realizacja KPS (Σ) wymaga podania na wejścia NAND sygnałów z wyjść D/DK o numerach, odpowiadających składnikom funkcji. W przypadku KPI (Π) dla wyjść zanegowanych stosujemy bramki AND, podając sygnały wyjściowe D/DK odpowiadające czynnikom 0 funkcji. Przykład y ( a, b, c) = [0,,7] y2( a,b,c ) = [ 0, 4, 6] "" A B C a b c Y0 Y Y2 Y3 Y4 Y5 Y6 Y7 y (a,b,c) y 2 (a,b,c) Rys. 5. Realizacja funkcji logicznych na demultiplekserze o wyjściach prostych. 4
3. TAPY I NARZĘDZIA PROJKTOWANIA UKŁADÓW W SYSTMI MA+PLUS II Tworzenie projektu - edytor tekstowy (Text ditor) - edytor graficzny (Graphic ditor) - edytor przebiegów czasowych (Waveform ditor) - edytor symboli (Symbol ditor) - edytor planu zasobów (Floorplan ditor) Przetwarzanie projektu kompilator (Compiler) Weryfikacja projektu (Project Verification) Symulator (Simulator) - edytor przebiegów czasowych (Waveform ditor) - analizator czasowy (Timing Analyzer) Programowanie układów (Device Pogramming) - programator (Programmer) Prezentacja struktury projektu prezenter hierarchii (Hierarchy Display) 4. WYBÓR UKŁADU I PRZYPISANI SYGNAŁÓW Wybór układu menu Assign >Device na pasku zadań. W wyświetlonym oknie dokonujemy wyboru rodziny i typu układu. Rys. 5. Okno wyboru rodziny i typu układu programowalnego. Przy użyciu edytora Floorplan ditor (uruchamia się z managera lub ikoną z paska zadań) dokonujemy przypisania sygnałów I/O do fizycznych wyprowadzeń układu. 5
Dwa sposoby prezentacji sygnałów I/O i wyprowadzeń: dołączonych do końcówek MC z widokiem na bloki logiczne (LAB), dołączonych do wyprowadzeń układu z widokiem na obudowę. Przełączenie między widokami wybór jednej z opcji: Layout>Device View, Layout>LAB View lub podwójnym kliknięciem lewym przyciskiem myszy. Rys. 6. Prezentacja sygnałów I/O dołączonych do wyprowadzeń układu z widokiem na obudowę. Samodzielne przyporządkowanie sygnałów I/O wybranym wyprowadzeniom Opcją Layout>Current Assignments Floorplan odłączamy wcześniej przyporządkowane sygnały I/O, Samodzielnie przyporządkowujemy sygnały I/O (dołączanie sygnałów w każdym ze sposobów prezentacji układu odbywa się tak samo, np.: poprzez przeciąganie myszą nazwy sygnału do zadanego wyprowadzenia). Podgląd zasobów logicznych zajmowanych przez wskazany sygnał I/O i równania wygenerowane przez kompilator do realizacji tego sygnału menu Layout>Report File quation Viewer lub z pliku z raportem kompilacji. Uwaga!!! Po wybraniu docelowego układu i przypisaniu sygnałów projekt należy poddać powtórnej kompilacji. 6
5. PROGRAMOWANI UKŁADU Zbiory wejściowe do fizycznego programowania układów są generowane przez program Compiler. Do programowania układu domyślnie wykorzystuje się pliki, będące wynikiem kompilacji projektu (*.jedec, *.pof, *.hex lub.sof). Obsługę programatora umożliwia program Programmer (uruchamiany z managera lub ikoną na pasku zadań). Konfiguracji opcji sprzętowych programatora dokonujemy w menu Options>Hardware Setup... Programowanie układów w systemie MA+Plus II może odbywać się na dwa sposoby: - z użyciem programatora - programowanie w systemie ISP (IN-System Programming) Programator Byte-Blaster (f-my Altera), wykorzystuje interfejs JTAG, który łączy system z zaprogramowanym układem poprzez port równoległy PC. Programowanie odbywa się za pośrednictwem modułu programatora. Rys. 7. Widok okna Programatora Programator (Programmer) tworzy sekwencje elektrycznych sygnałów programujących fizyczne struktury na podstawie zbiorów, wygenerowanych przez kompilator. Funkcje programatora: - programowanie; - weryfikacja; - odczytywanie zawartości (examine); - badanie stanu zaprogramowania (blank-check); - testowanie funkcjonalne układu. 7
Otwarcie okna programatora powoduje automatyczne załadowanie zbioru programującego. Konfiguracja JTAG-a do obsługi kaskadowego połączenia różnych układów menu Programmer>JTAG>Multi-Device JTAG Chain Setup. Konfiguracja układów FL opcja FL>Multi-Device JTAG Chain Setup SRAM. 6. CZYNNOŚCI PRZYGOTOWAWCZ Przed przystąpieniem do wykonania ćwiczenia, student powinien: - szczegółowo zapoznać się z instrukcją, - zapoznać się z wykorzystywanymi w ćwiczeniu aplikacjami, w szczególności dotyczącymi wyboru układu, przypisania sygnałów do poszczególnych wyprowadzeń oraz programowania układu, - powtórzyć zasadę działania cyfrowych bloków komutacyjnych, - powtórzyć sposoby realizacji funkcji przełączających z wykorzystaniem bramek oraz bloków funkcjonalnych typu: MU, D/DK, pamięci RAM, - przedstawić rozwiązanie zadań podanych przez prowadzącego. 7. PRZBIG ĆWICZNIA W trakcie realizacji ćwiczenia studenci wykorzystują poznane w ćwiczeniach nr. i 2 aplikacje oraz narzędzi programowe systemu Max+Plus II. Kolejność czynności:. Uruchamiamy system i dokonujemy edycji projektu. 2. Przeprowadzamy kompilację projektu (menu Compiler>Processing, uaktywniona opcja Timing SNF xtractor - w przypadku czasowej lub opcja Functional SNF xtractor - w przypadku funkcjonalnej). 3. Uruchamiamy edytor przebiegów czasowych (Waveform ditor) i tworzymy wymuszenia do symulacji. 4. Z menu Assign >Device dokonujemy wyboru układu. 5. Dokonujemy przypisania sygnałów I/O do wyprowadzeń układu (edytor Floorplan ditor) 6. Przeprowadzamy powtórną kompilację projektu (uaktywniona opcja Timing SNF xtractor). 7. Uruchamiamy symulator-analizator czasowy i określamy czasy propagacji sygnałów pomiędzy zadanymi węzłami. 8. Uruchamiamy programator (Programmer) z managera lub ikoną na pasku zadań. 8
9. Sprawdzamy poprawność działania zaprogramowanego układu. 0.Wyświetlamy plik raportu (Raport File) i analizujemy wyniki.. Sporządzamy sprawozdanie z przebiegu ćwiczenia. 8. SPRAWOZDANI I FORMA ZALICZNIA ĆWICZNIA Ocenie podlegają czynności zarówno etapu przygotowawczego jak i etapów edycji, symulacji i realizacji projektu w strukturze programowalnej. Warunkiem zaliczenia ćwiczenia jest poprawny przebieg symulacji i działanie zaprogramowanego układu na stanowisku laboratoryjnym, przedstawienie wszystkich etapów syntezy układów w postaci protokołu oraz wykazanie się niezbędną wiedzą z zakresu wykonywanego ćwiczenia. Protokół powinien zawierać: temat i cel ćwiczenia, treść wykonywanych zadań, kolejne etapy syntezy, schematy projektowanych układów, wyniki symulacji i realizacji projektów oraz wnioski. 9. LITRATURA. M. Barski, W. Jędruch: Układy cyfrowe - podstawy projektowania i opis w języku VHDL, Gdańsk 2007 2. L. Grodzki, W. Owieczko: Podstawy techniki cyfrowej, PB 2006 3. T Łuba: Synteza układów logicznych, OWPW 2005 4. P. Zbysiński, J. Pasierbiński: Układy programowalne pierwsze kroki. BTC, 2004 9