Kodery, dekodery, transkodery Synteza sprzętu przy pomocy VHDL

Podobne dokumenty
LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL

Technika cyfrowa. Laboratorium nr 7. Liczniki synchroniczne. Mirosław Łazoryszczak. Temat:

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Systemy Czasu Rzeczywistego FPGA

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Programowalne układy logiczne

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Bezpieczeństwo informacji oparte o kryptografię kwantową

Systemy Czasu Rzeczywistego FPGA

Bramki logiczne Instrukcja do ćwiczeń laboratoryjnych

Sposoby projektowania systemów w cyfrowych

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File

Systemy Czasu Rzeczywistego FPGA

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA

Technika cyfrowa projekt: Sumator 4 bitowy równoległy

Układy reprogramowalne i SoC Implementacja w układach FPGA

WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego LABORATORIUM UKŁADÓW PROGRAMOWALNYCH I SPECJALIZOWANYCH

Tranzystor JFET i MOSFET zas. działania

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Projektowanie Urządzeń Cyfrowych

Język opisu sprzętu VHDL

1. Synteza układów opisanych w języku VHDL Xilinx ISE Design Suite 10.1 VHDL 2. Obsługa przetwornika CA Project Add source...

Programowalne Układy Cyfrowe Laboratorium

Systemy Czasu Rzeczywistego FPGA

Ćwiczenie 29 Temat: Układy koderów i dekoderów. Cel ćwiczenia

Programowalne układy logiczne Wydziałowy Zakład Nanometrologii SEMESTR LETNI

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH Wydziałowy Zakład Metrologii Mikro- i Nanostruktur SEMESTR LETNI 2016

Technika cyfrowa i mikroprocesorowa. Zaliczenie na ocenę. Zaliczenie na ocenę

Altera Quartus II. Opis niektórych komponentów dostarczanych razem ze środowiskiem. Opracował: mgr inż. Leszek Ciopiński

Przykładowe pytania z części PSPICE. 1. Podaj zasady tworzenia pliku symulacyjnego. 2. Czy składnia PSPICE jest czuła na wielkość liter? 3.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Wygląd okna aplikacji Project Navigator.

Parametryzacja przetworników analogowocyfrowych

BADANIE UKŁADÓW CYFROWYCH. CEL: Celem ćwiczenia jest poznanie właściwości statycznych układów cyfrowych serii TTL. PRZEBIEG ĆWICZENIA

Ćwiczenie 1 Program Electronics Workbench

Temat 7. Dekodery, enkodery

Ćwiczenie 25 Temat: Interfejs między bramkami logicznymi i kombinacyjne układy logiczne. Układ z bramkami NOR. Cel ćwiczenia

Ćwiczenie 28. Przy odejmowaniu z uzupełnieniem do 2 jest wytwarzane przeniesienie w postaci liczby 1 Połówkowy układ

dokument DOK wersja 1.0

Badanie układów średniej skali integracji - ćwiczenie Cel ćwiczenia. 2. Wykaz przyrządów i elementów: 3. Przedmiot badań

Projektowanie z użyciem bloków funkcjonalnych w układach programowalnych firmy Xilinx

Inwerter logiczny. Ilustracja 1: Układ do symulacji inwertera (Inverter.sch)

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Konfiguracja i programowanie sterownika GE Fanuc VersaMax z modelem procesu przepływów i mieszania cieczy

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

Wyświetlacz siedmiosegmentowy

Ćwiczenie 26. Temat: Układ z bramkami NAND i bramki AOI..

Projektowanie automatów z użyciem VHDL

Ćwiczenie 27 Temat: Układy komparatorów oraz układy sumujące i odejmujące i układy sumatorów połówkowych i pełnych. Cel ćwiczenia

LABORATORIUM OPTOELEKTRONIKA I SENSORYKA Oprogramowanie bariery podczerwieni w układzie CPLD

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

Komputerowa symulacja koderów i dekoderów

Elementy cyfrowe i układy logiczne

Projekt procesora NIOSII w strukturze programowalnego układu logicznego CYCLONEII EP2C35F672C6 podłączenie i obsługa wyświetlacza LCD.

ZL4PIC uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC (v.1.0) Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D

Projektowanie Systemów Wbudowanych

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

LABORATORIUM ENERGOOSZCZĘDNEGO BUDYNKU

Projektowanie z użyciem softprocesora picoblaze w układach programowalnych firmy Xilinx

Politechnika Białostocka

Laboratorium przedmiotu Technika Cyfrowa

Projekt prostego procesora

SML3 październik

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.

Satel Integra FIBARO

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

Specyfika projektowania Mariusz Rawski

Projektowania Układów Elektronicznych CAD Laboratorium

Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE

Rys. 2. Symbole dodatkowych bramek logicznych i ich tablice stanów.

UKŁADY CYFROWE. Układ kombinacyjny

Ukªady Kombinacyjne - cz ± I

Programowanie procesora Microblaze w środowisku SDK

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

Krótkie wprowadzenie do ModelSim i Quartus2

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie

1.Wstęp. 2.Generowanie systemu w EDK

Bezpieczeństwo informacji oparte o kryptografię kwantową

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Zadania do wykładu 1, Zapisz liczby binarne w kodzie dziesiętnym: ( ) 2 =( ) 10, ( ) 2 =( ) 10, (101001, 10110) 2 =( ) 10

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051

Synteza układów kombinacyjnych

Laboratorium podstaw elektroniki

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Sprzęt i architektura komputerów

Krótkie przypomnienie

KARTA PRZEDMIOTU. Podstawy elektroniki cyfrowej B6. Fundamentals of digital electronic

Projektowanie układów na schemacie

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

ćwiczenie 202 Temat: Układy kombinacyjne 1. Cel ćwiczenia

Technika Mikroprocesorowa

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

Transkrypt:

Mirosław Łazoryszczak Technika cyfrowa Laboratorium nr 8 Temat: Kodery, dekodery, transkodery Synteza sprzętu przy pomocy VHDL Katedra Architektury Komputerów i Telekomunikacji Zakład Systemów i Sieci Komputerowych

SPIS TREŚCI 1. Wymagania...3 2. Przebieg ćwiczenia...3 2.1. Przykład projektowy...3 2.2. Realizacja transkodera w języku VHDL...5 3. Zadania...12 4. Podsumowanie...14 5. Literatura...14

1. WYMAGANIA Wykonanie ćwiczenia obejmującego temat koderów, dekoderów oraz transkoderów wymaga od studenta znajomości: kodów typu 1 z n, kodu Graya, kodu BCD, projektowania układów kombinacyjnych przy pomocy znanych metod, zasad działania wyświetlacza siedmiosegmentowego LED, podstaw posługiwania się narzędziem Xilinx ISE, a w szczególności tworzenia projektu opartego na schemacie, wykonania operacji implementacji, przeprowadzenia symulacji opartej na jednostce testowej (ang. test bench) implementowanej w języku VHDL. 2. PRZEBIEG ĆWICZENIA W warstwie merytorycznej niniejszego ćwiczenia wykorzystywane są ponownie układy kombinacyjne, których przykładem są kodery, dekodery i transkodery. Układy te stanowią istotną podgrupę układów logicznych, która jest szeroko wykorzystywana w różnych obszarach techniki cyfrowej. Kodery oznaczają układy, których zadaniem jest konwersja kodu typu 1 z n na kod binarny, dekodery zaś pełnią funkcję odwrotną. Zadaniem natomiast transkoderów jest zamiana jednego kodu na inny, przy czym zarówno kod wejściowy jak wyjściowy nie jest kodem typu 1 z n. Zakres ćwiczenia obejmuje wszystkie etapy projektowania, z którymi uczestnicy laboratoriów mogli zetknąć się do tej pory. Nowym, lecz niezwykle istotnym elementem jest zapis projektu w postaci kodu VHDL oraz synteza i implementacja projektu w konkretnej platformie sprzętowej. 2.1. PRZYKŁAD PROJEKTOWY Zadanie Zaprojektuj, wykonaj symulację oraz zaimplementuj i przetestuj w układzie rzeczywistym czterobitowy transkoder kodu binarnego na kod Graya. Tabela 1: Tablica przejść ilustrująca działanie licznika Liczba dziesiętna x 3 x 2 x 1 x 0 y 3 y 2 y 1 y 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 2 0 0 1 0 0 0 1 1 3 0 0 1 1 0 0 1 0 4 0 1 0 0 0 1 1 0 5 0 1 0 1 0 1 1 1 6 0 1 1 0 0 1 0 1 7 0 1 1 1 0 1 0 0 8 1 0 0 0 1 1 0 0 9 1 0 0 1 1 1 0 1 10 1 0 1 0 1 1 1 1 11 1 0 1 1 1 1 1 0 12 1 1 0 0 1 0 1 0 13 1 1 0 1 1 0 1 1 14 1 1 1 0 1 0 0 1 15 1 1 1 1 1 0 0 0 Strona 3 z 14

Tablica prawdy dla jednej z możliwych postaci transkodera kodu binarnego na kod Graya została przedstawiona w tabeli 1. Klasyczne podejście do zagadnienia projektowania układu transkodera jako układu kombinacyjnego wymaga wyznaczenia tylu funkcji logicznych, ile wyjść powinien posiadać projektowany układ. Korzystając z tradycyjnych metod minimalizacji funkcji logicznych można otrzymać zbiór funkcji boolowskich dla poszczególnych wyjść układu transkodera. Tabela 2: Tablica Karnaugh dla funkcji y 3 x 3 x 2 x 1 x 0 00 01 11 10 00 0 0 0 0 01 0 0 0 0 11 1 1 1 1 10 1 1 1 1 y 3 = x 3 Tabela 3: Tablica Karnaugh dla funkcji y 2 x 3 x 2 x 1 x 0 00 01 11 10 00 0 0 0 0 01 1 1 1 1 11 0 0 0 0 10 1 1 1 1 y 2 = x3x2 x3 x2 = x2 x3 Tabela 4: Tablica Karnaugh dla funkcji y 1 x 3 x 2 x 1 x 0 00 01 11 10 00 0 0 1 1 01 1 1 0 0 11 1 1 0 0 10 0 0 1 1 y 1 = x1x2 x1 x2 = x1 x2 Tabela 5: Tablica Karnaugh dla funkcji y 0 x 1 x 0 x 3 x 2 00 01 11 10 00 0 1 0 1 01 0 1 0 1 11 0 1 0 1 10 0 1 0 1 y 0 = x1x0 x1 x0 = x0 x1 Strona 4 z 14

Wpisując wartości funkcji z tablicy prawdy do tablic Karnaugh otrzymujemy zestaw tabel oraz odpowiadających im wyrażeń boolowskich przedstawionych w tabelach 2 5. Realizacja układowa wynikająca wprost z powyższych równań przedstawiona została na rys. 1. Bufor, który znajduje się pomiędzy sygnałem wyjściowym y 3 a sygnałem wejściowym x 3 pełni funkcję techniczną (separującą). Rys. 1. Schemat układu realizującego zamianę kodu binarnego na kod Graya 2.2. REALIZACJA TRANSKODERA W JĘZYKU VHDL Projekt transkodera może być równie dobrze zrealizowany nie tylko w postaci schematu, ale także w postaci kodu w języku VHDL. Kod taki jest zresztą ogniwem pośrednim pomiędzy schematem, a postacią wynikową projektu czyli bezpośrednią implementacją w strukturze sprzętowej. Z przeprowadzonych uprzednio ćwiczeń laboratoryjnych wiadomo, w jaki sposób można zapoznać się ze strukturą kodu VHDL, stanowiącą realizację wprowadzonego schematu (rys. 2). Rys. 2. Uruchomienie podglądu kodu VHDL projektowanego układu Fragment kodu odpowiadającego za realizację schematu transkodera przedstawiono na wydruku 1. Styl (sposób) konstrukcji tego kodu określany jest jako strukturalny, ponieważ opisuje precyzyjnie komponenty, które wchodzą w skład projektu oraz definiuje połączenia pomiędzy nimi. Z punktu widzenia zastosowania konstrukcji języka VHDL należy zwrócić uwagę na główne elementy konstrukcji kodu: Strona 5 z 14

entity jednostka projektowa, w której zdefiniowany jest interfejs zewnętrzny układu, czyli jego wejścia oraz wyjścia, architecture ciało architektury, które określa sposób działania układu o zdefiniowanym wyżej interfejsie. Znajdują się tutaj także deklaracje elementów (component), wykorzystywane do konstrukcji układu oraz połączenia pomiędzy tymi komponentami (pomiędzy słowami kluczowymi begin i end), które realizowane są z kolei na zasadzie mapowania portów czyli sygnałów zewnętrznych na wejścia poszczególnych funktorów (komponentów) oraz mapowania wyjść funktorów na wyjścia całego układu. entity tc8a is port ( x0 : in std_logic; x1 : in std_logic; x2 : in std_logic; x3 : in std_logic; y0 : out std_logic; y1 : out std_logic; y2 : out std_logic; y3 : out std_logic); end tc8a; architecture BEHAVIORAL of tc8a is attribute BOX_TYPE : string ; component XOR2 port ( I0 : in std_logic; I1 : in std_logic; O : out std_logic); end component; attribute BOX_TYPE of XOR2 : component is "BLACK_BOX"; component BUF port ( I : in std_logic; O : out std_logic); end component; attribute BOX_TYPE of BUF : component is "BLACK_BOX"; begin XLXI_1 : XOR2 port map (I0=>x2, I1=>x3, O=>y2); XLXI_2 : XOR2 port map (I0=>x1, I1=>x2, O=>y1); XLXI_3 : XOR2 port map (I0=>x0, I1=>x1, O=>y0); XLXI_4 : BUF port map (I=>x3, O=>y3); end BEHAVIORAL; Wydruk 1: Fragment automatycznie utworzonego kodu VHDL transkodera Znając zasady kodowania VHDL możliwe jest zapisanie projektu bezpośrednio w postaci kodu z pominięciem schematu. Forma kodu strukturalnego wymaga jednak dokładnej znajomości budowy układu na takim samym poziomie, jak przy użyciu schematu. Styl taki jest również niezwykle przydatny w przypadku rozbudowanych, wieloplikowych projektów, umożliwiających realizację struktur hierarchicznych w przejrzysty sposób. Inne podejście do projektowania za pomocą VHDL polega na wykorzystaniu równań boolowskich określających sposób działania układu lub niemal bezpośrednie użycie tablicy prawdy (w przypadku układów kombinacyjnych). W obu przypadkach konieczne jest utworzenie nowego projektu, w którym plik nadrzędny projektu posiada typ HDL (rys. 3). Strona 6 z 14

Następnie postępujemy analogicznie jak w przypadku poprzednich ćwiczeń, z tym że w przypadku dodawania nowego pliku źródłowego, należy ustawić jego typ jako VHDL Module (rys. 4). Rys. 3. Okno kreatora nowego projektu z ustawionym typem źródła nadrzędnego (HDL) Rys. 4. Okno kreatora nowego pliku źródłowego z typem ustawionym na moduł VHDL W kolejnym etapie tworzenia nowego źródła na ekranie pojawi się okno kreatora nowego źródła, w którym można zdefiniować interfejs zewnętrzny poprzez specyfikację wejść i wyjść. Efektem działania kreatora po wprowadzeniu wejść i wyjść będzie szablon kodu VHDL. Szablon ten zawierać będzie wygenerowaną automatycznie jednostkę projektową oraz skojarzoną z nią architekturę wewnętrzną. Strona 7 z 14

Rys. 5. Specyfikacja wejść i wyjść w oknie kreatora modułu VHDL Fragment kodu modułu VHDL, który powstał w wyniku działania kreatora pliku źródłowego został przedstawiony na wydruku 2. Zadaniem projektanta jest napisanie fragmentu kodu pomiędzy słowami kluczowymi begin oraz end. entity tc8b is Port ( x3 : in STD_LOGIC; x2 : in STD_LOGIC; x1 : in STD_LOGIC; x0 : in STD_LOGIC; y3 : out STD_LOGIC; y2 : out STD_LOGIC; y1 : out STD_LOGIC; y0 : out STD_LOGIC); end tc8b; architecture Behavioral of tc8b is begin -- TUTAJ WSTAW KOD Z WYDRUKU NR 3 end Behavioral; Wydruk 2: Fragment automatycznie wygenerowane szablonu VHDL Jedno z możliwych rozwiązań polega na opisaniu architektury za pomocą równań boolowskich, przedstawionych na początku niniejszego podrozdziału. Zatem fragment kodu, który należy wstawić do pliku źródłowego we wskazanym miejscu może mieć postać jak na wydruku 3. y3 <= x3; y2 <= x3 XOR x2; y1 <= x2 XOR x1; y0 <= x1 XOR x0; Wydruk 3: Opis architektury transkodera za pomocą równań boolowskich W tym momencie projekt jest już opisany za pomocą języka VHDL i możliwe jest przeprowadzenie symulacji działania układu w znany już sposób. Ponieważ jednak celem niniejszego ćwiczenia jest fizyczna implementacja układu w strukturze rekonfigurowalnej, przedstawione zostaną Strona 8 z 14

dalsze kroki, które należy wykonać, aby powiązać deklaracje interfejsu w języku VHDL z fizycznymi wyprowadzeniami układu i zasobami sprzętowymi zestawu uruchomieniowego. W tym celu należy uruchomić narzędzie Floorplan IO (rys. 6). Rys. 6. Uruchomienie narzędzia Floorplan IO Jeśli w danym projekcie narzędzie to jest uruchamiane po raz pierwszy, na ekranie pojawi się komunikat z pytaniem o dodanie pliku UCF (User Constraint File) do projektu. W pliku tym definiowane są własności poszczególnych wejść i wyjść układu, które są wykorzystywane w projekcie. Na pytanie w oknie dialogowym należy odpowiedzieć twierdząco (rys 7). Rys. 7. Okno potwierdzenia utworzenia pliku UCF W jednym z okien programu Xilinx PACE Design Object List I/O Pins (rys. 8) należy przypisać poszczególnym nazwom portów I/O numery wyprowadzeń zgodne z wykorzystywaną platformą uruchomieniową. Na rys. 8 w odpowiednich polach wpisano numery portów zgodne z płytką SK-CRII- L-G (Xilinx CoolRunner-II CPLD Starter Kit). Numery wyprowadzeń dostępne są w dokumentacji do zestawu uruchomieniowego, umieszczone są także na płytce drukowanej w pobliżu elementów wykorzystywanych w zadaniu. Jako wejścia x 3 i x 2 użyte zostały przełączniki (ang. switches) o wyprowadzeniach odpowiednio 124 i 39, zaś jako wejścia x 1 oraz x 0 zastosowano przyciski (ang. push buttons) o wyprowadzeniach 94 oraz 143. Z kolei wyjścia przypisane zostały do diod LED w kolejności y 3, y 2, y 1, y 0 o wyprowadzeniach 64, 66, 68 oraz 69. Po wprowadzeniu numerów portów należy zamknąć program Xilinx PACE zapisując jednocześnie plik UCF. Strona 9 z 14

Rys. 8. Okno przypisania wyprowadzeń do poszczególnych portów Po wykonaniu przypisania numerów wyprowadzeń do poszczególnych portów wykonaj operację implementacji obejmującą proces syntezy, translacji, rozmieszczenia i generowania pliku wynikowego dla układu transkodera klikając dwukrotnie gałąź Implement Design w oknie Design (rys. 9). Rezultatem implementacji jest plik wynikowy z rozszerzeniem.jed, który powinien zostać umieszczony w głównym folderze projektu. Rys. 9. Uruchomienie implementacji Jeśli implementacja zostanie zakończona sukcesem, można przystąpić do zaprogramowania (konfigurowania) układu CPLD w zestawie uruchomieniowym. W tym celu należy uruchomić program ExPort (Menu Start Programy Digilent Adept). Ogólny wygląd płytki testowej przedstawiono na rys. 10. UWAGA: W trakcie pracy z zestawem uruchomieniowym należy zachować SZCZEGÓLNĄ OSTROŻNOŚĆ! Pod żadnym pozorem nie należy dotykać podzespołów zestawu przedmiotami zawierającymi metalowe elementy! W razie jakichkolwiek wątpliwości co do obsługi zestawu należy zwrócić się o wskazówki do prowadzącego zajęcia! Jeśli zestaw uruchomieniowy jest podłączony do komputera za pomocą przewodu USB należy wcisnąć przycisk Initialize Chain. Okno programu ExPort powinno zawierać symbol układu CPLD (rys. 11). Następnie za pomocą przycisku Browse należy odszukać w głównym folderze projektu plik Strona 10 z 14

konfiguracyjny i uruchomić proces konfiguracji przyciskiem Program Chain. Po skonfigurowaniu układu powinien on być gotowy do działania. Rys. 10. Płyta uruchomieniowa CoolRunner II Starter Kit [4]. Rys. 11. Okno programu ExPort Inny sposób realizacji omawianego transkodera może wykorzystywać instrukcje with... select. Zastosowanie tej instrukcji pozwala na zaprojektowanie układu bez podawania równań Strona 11 z 14

boolowskich, w zamian za to konieczne jest wyspecyfikowanie wszystkich możliwych kombinacji transkodera. 01 architecture Behavioral of tc8b is 02 signal WE,WY : STD_LOGIC_VECTOR(3 downto 0); 03 begin 04 WE <= x3 & x2 & x1 & x0; 05 with WE select 06 WY <= "0000" when "0000", 07 "0001" when "0001", 08 "0011" when "0010", 09 "0010" when "0011", 10 "0110" when "0100", 11 "0111" when "0101", 12 "0101" when "0110", 13 "0100" when "0111", 14 "1100" when "1000", 15 "1101" when "1001", 16 "1111" when "1010", 17 "1110" when "1011", 18 "1010" when "1100", 19 "1011" when "1101", 20 "1001" when "1110", 21 "1000" when "1111", 22 "0000" when others; 23 y3 <= WY(3); 24 y2 <= WY(2); 25 y1 <= WY(1); 26 y0 <= WY(0); 27 28 end Behavioral; Wydruk 4: Opis architektury transkodera za pomocą instrukcji with... select Przykładowy kod całej architektury podano na wydruku 4. Pewnego komentarza wymaga deklaracja struktury signal (linia nr 02). W ramach architektury sygnały pełnią funkcję wewnętrznych portów. Można do nich przypisywać wartości portów zewnętrznych (wejściowych), można wykonywać operacje oraz można przypisywać wartości sygnałów do portów wyjściowych. Ponieważ w projekcie transkodera wykorzystano niezależne zmienne x 3, x 2, x 1 oraz x 0, to operowanie na nich z punktu widzenia instrukcji with... select nie jest zbyt wygodne. Wprowadzony został zatem typ tablicowy (STD_LOGIC_VECTOR) o szerokości czterech bitów w celu kompaktowej reprezentacji wektora wejściowego i wyjściowego. Aby możliwe było operowanie na wektorze WE, konieczne jest zatem złożenie wektora z pojedynczych zmiennych za pomocą operatora konkatenacji & (linia 04), dzięki czemu może on zostać wykorzystany w instrukcji with... select. Z tego samego powodu użyty został wektor WY, którego elementy w efekcie muszą zostać przypisane do konkretnych portów wyjściowych (linie 23 26). 3. ZADANIA Zadanie 1 Wykonaj implementację i przetestuj układ wykonany na podstawie kodu z wydruku 2 i 3. Zadanie 2 Wykonaj implementację i przetestuj układ wykonany na podstawie kodu z wydruku 4 Zadanie 3 Zaprojektuj i zaimplementuj transkoder kodu BCD na kod wyświetlacza siedmiosegmentowego. Strona 12 z 14

WSKAZÓWKI DO ZADANIA 3 Do wykonania zadania nr 3 niezbędna jest znajomość budowy wyświetlacza siedmiosegmentowego. Wyświetlacz taki składa się z siedmiu diod typu LED umieszczonych we wspólnej obudowie w taki sposób, że tworzą one cyfrę 8. Poszczególne segmenty oznaczane są literami alfabetu od a do g (rys. 12). Dodatkowo wyświetlacz może zawierać kropkę dziesiętną ( dp, ang. decimal point). Wszystkie diody posiadają wspólne zasilanie, przy czym wyświetlacze wykonywane są w wersjach ze wspólną anodą lub ze wspólną katodą. Z rodzaju wyświetlacza wynika sposób polaryzacji poszczególnych wyprowadzeń. W wykorzystywanym zestawie uruchomieniowym wyświetlacze posiadają wspólną anodę, zatem włączenie wyświetlacza wymaga podania sygnału niskiego na odpowiednie wyprowadzenie układu CPLD, co w konsekwencji powoduje włączenie odpowiedniego tranzystora bipolarnego pnp i doprowadzenie napięcia zasilającego na wspólne wyprowadzenia poszczególnych diod. Rys. 12. Oznaczenia segmentów wyświetlacza siedmiosegmentowego Aby na wyświetlaczu możliwe było przedstawienie poszczególnych cyfr, konieczne jest przyporządkowanie kolejnym kombinacjom binarnym ustawionym za pomocą przełączników i przycisków odpowiednich kombinacji włączenia/wyłączenia poszczególnych segmentów. Zapalenie danego segmentu wymaga, zgodnie z rys. 13, ustalenia stanu niskiego na katodach diod (wyprowadzenia CA CG oraz DP) i stanu niskiego na wyprowadzeniu AN1 (w zadaniu wykorzystany zostanie tylko jeden wyświetlacz). Na rys. 13 podano także numery wyprowadzeń odpowiadających poszczególnym elementom zestawu uruchomieniowego, które należy wykorzystać w projekcie na etapie przypisywania zmiennych VHDL do fizycznych portów w układzie rzeczywistym. Rys. 13. Szczegółowy schemat podłączenia urządzeń peryferyjnych do układu CoolRunner II [5] Strona 13 z 14

Uwzględniając powyższe wskazówki należy wyznaczyć tablicę prawdy dla transkodera kodu binarnego lub BCD na kod wyświetlacza siedmiosegmentowego zgodnie z szablonem sprawozdania, a następnie utworzyć nowy projekt w środowisku Xilinx ISE i opisać transkoder w języku VHDL na podstawie wydruków omówionych w niniejszej instrukcji. Po syntezie oraz implementacji projektu należy wykonać testowanie układu w zestawie uruchomieniowym. Należy także zwrócić uwagę, aby w projekcie przewidziany został sygnał, który spowoduje doprowadzenie napięcia (włączenie) do jednego z czterech wyświetlaczy dostępnych na płytce uruchomieniowej. 4. PODSUMOWANIE W wyniku przeprowadzonego ćwiczenia, a także ćwiczeń poprzednich student powinien nabyć bądź utrwalić następujące umiejętności: projektowanie dowolnych koderów, dekoderów i transkoderów, posługiwanie się zestawami uruchomieniowymi zawierającymi układy rekonfigurowalne CPLD, posługiwanie się narzędziem Xilinx ISE w zakresie syntezy sprzętu na platformie rekonfigurowalnej CPLD. 5. LITERATURA [1] Kalisz J.: Podstawy elektroniki cyfrowej, WNT, Warszawa 1999 [2] Mano M. M., Kime Ch. R.: Podstawy projektowania układów logicznych i komputerów, WNT, Warszawa, 2007. [3] Pieńkos J., Turczyński J.: Układy scalone TTL w systemach cyfrowych, WKŁ, Warszawa 1986 [4] Wilkinson B.: Układy Cyfrowe, WKŁ, Warszawa 2000 [5] Xilinx: CoolRunner-II Evaluation Board Reference Manual, 2008, (http://www.xilinx.com/ support/documentation/boards_and_kits/ug501.pdf, dostęp: marzec 2011). [6] Zwoliński M., Projektowanie układów cyfrowych z wykorzystaniem języka VHDL, WKŁ, Warszawa 2002 Strona 14 z 14