Projektowanie Urządzeń Cyfrowych

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

Sposoby projektowania systemów w cyfrowych

Projekt prostego procesora

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

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Systemy Czasu Rzeczywistego FPGA

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Sumatory H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

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

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

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

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Systemy Czasu Rzeczywistego FPGA

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

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

Układy reprogramowalne i SoC Język VHDL (część 4)

Systemy Czasu Rzeczywistego FPGA

Projektowanie układów na schemacie

Systemy Czasu Rzeczywistego FPGA

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005

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

Projektowanie hierarchiczne Mariusz Rawski

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

Modelowanie złożonych układów cyfrowych (1)

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

Specyfika projektowania Mariusz Rawski

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

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

Programowalne układy logiczne

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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...

Krótkie wprowadzenie do ModelSim i Quartus2

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

MMfpga01. MMfpga11. Instrukcja konfiguracji środowiska, przykładowy projekt oraz programowanie układu

Ćwiczenie 31 Temat: Analogowe układy multiplekserów i demultiplekserów. Układ jednostki arytmetyczno-logicznej (ALU).

Elementy języka VHDL. obiekty typy danych atrybuty pakiety i biblioteki instrukcje współbieżne instrukcje sekwencyjne. PUE-w3 1

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

Bramki logiczne Instrukcja do ćwiczeń laboratoryjnych

PUCY Kolos 2: Reloaded

KURS Hexcalcul (2) Implementacja kalkulatora kodu BCD na Hex w układzie programowalnym

Układy reprogramowalne i SoC Testbenches. Symulacja sterowana zdarzeniami.

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.

LABORATORIUM TECHNIKA CYFROWA LICZNIKI I REJESTRY. Rev.1.1

Szybkie układy mnożące

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

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01

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

Szybkie układy mnożące

Laboratorium Teorii Układów Cyfrowych Rok akademicki Termin Rodzaj studiów Kierunek Prowadzący Grupa Sekcja. Sprawozdanie z ćwiczenia numer 9

Bezpieczeństwo informacji oparte o kryptografię kwantową

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

Laboratorium Projektowania Systemów VLSI-ASIC Katedra Elektroniki Akademia Górniczo-Hutnicza

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4

Projektowanie w VHDL

Programowalne układy logiczne

MentorGraphics ModelSim

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

Języki opisu sprzętu VHDL Mariusz Rawski

Technika cyfrowa Układy arytmetyczne

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALNE STRUKTURY LOGICZNE

Układy kombinacyjne Y X 4 X 5. Rys. 1 Kombinacyjna funkcja logiczna.

Programowalne układy logiczne

Układy mikroprogramowane

Elektronika cyfrowa i optoelektronika - laboratorium

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

Układy mnoŝące H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

LICZNIKI LABORATORIUM. Elektronika AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE. Wydział Informatyki, Elektroniki i Telekomunikacji

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.

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Magistrale na schematach

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

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: TECHNIKA CYFROWA 2 TS1C

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

Wyświetlacz siedmiosegmentowy

Arytmetyka stało i zmiennoprzecinkowa

Projekt zespołowy. Część1: Projekt potokowej jednostki przetwarzającej przeznaczonej do realizacji algorytmu FFT. Rok akademicki 2008/2009

Państwowa Wyższa Szkoła Zawodowa

PAMIĘĆ RAM. Rysunek 1. Blokowy schemat pamięci

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Temat: Projektowanie i badanie liczników synchronicznych i asynchronicznych. Wstęp:

Funkcja Boolowska a kombinacyjny blok funkcjonalny

VHDL. Zebrał i opracował R.Walkowiak PTC wykład 2013/2014

Podział sumatorów. Równoległe: Szeregowe (układy sekwencyjne) Z przeniesieniem szeregowym Z przeniesieniem równoległym. Zwykłe Akumulujące

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS

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

Architektura komputerów Wykład 2

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: TECHNIKA CYFROWA 2 TS1C

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Układy reprogramowalne i SoC Język VHDL (część 2)

Laboratorium z podstaw techniki cyfrowej Studia inżynierskie niestacjonarne/stacjonarne, II rok III semestr, 2016/2017. W ramach laboratorium używamy:

SPIS TREŚCI. 2. Arytmetyka rozproszona Symulacja układu programowalnego Realizacja algorytmu cyfrowego filtrowania

Układy kombinacyjne 1

Transkrypt:

Projektowanie Urządzeń Cyfrowych Laboratorium 2 Przykład prostego ALU Opracował: mgr inż. Leszek Ciopiński Wstęp: Magistrale: Program MAX+plus II umożliwia tworzenie magistral. Magistrale są to grupy przewodów łączące wejścia i wyjścia różnych układów. Ich stosowanie powoduje większą wygodę projektowania, gdy potrzebne jest np. przesłanie liczby ośmiobitowej z jednego układu do innego. W celu utworzenia magistrali należy podając nazwę portu (pinu, wejścia lub wyjścia układu) podać w nawiasach kwadratowych ilu bitowa jest magistrala, np.: we[3..0]. W podanym przykładzie utworzona zostanie magistrala czterobitowa. Należy zwrócić uwagę, że słowo we jest nazwą magistrali. W nawiasach natomiast podawane są numery linii, które mają zostać wykorzystane. Umożliwia to swobodny dostęp do wybranych linii magistrali, np.: we[2..1] lub we[2]. Poniżej przedstawiono przykład utworzenia ośmiobitowej szyny i sposób dostępu do pojedynczych przewodów. Tworzenie symbolu z pliku Ponieważ projektując bardziej skomplikowane układy wygodniej jest pewne ich fragmenty zamykać w osobne moduły, możliwość taka występuje również w programie MAX+plus. W tym celu należy otworzyć i skompilować plik, z którego chcemy zrobić symbol. Następnie należy wybrać pozycję menu File Create Default Symbol. Możliwe jest teraz dodanie nowo utworzonego komponentu do dowolnego pliku. PUC Laboratorium 2 1

Symbole utworzone w ramach projektu Wybór głównego układu projektowanej struktury Jeśli konieczne jest dokonanie zmiany głównego elementu układu, np. gdy projektowany był podukład, który trzeba umieścić w innym układzie w formie symbolu, należy wykonać następujące czynności: 1. Otworzyć plik, który będzie nowym głównym elementem układu. 2. Wybrać polecenie menu File Project Set Project to Current File Wybrane układy z biblioteki standardowej Busmux Jest to multiplekser dokonujący wyboru jednej z dwóch magistral, którą wystawia na swoim wyjściu. Ciekawą cechą układu jest możliwość definiowania szerokości magistrali jako parametr tego elementu. Na poniższej ilustracji pokazano lokalizację układu w bibliotece i sposób jego ustawienia dla magistrali 32-bitowej. PUC Laboratorium 2 2

lpm_add_sub Układ ten należy do grupy MegaFunctions. Oznacza to, że dokładne właściwości układu można dostosować w zależności od potrzeb projektanta. Po wybraniu tego układu otworzone zostanie okno konfiguracyjne. PUC Laboratorium 2 3

Czy dany port ma zostać użyty Stała wartość na wejściu portu Lista portów Wartość parametru Lista parametrów Wejścia: Poniżej przedstawiono opis najważniejszych ustawień: Wejście Wymagany Opis cin Nie Bit przeniesienia z poprzedniego bloku. dataa[] Tak składnik / odjemna datab[] Tak składnik / odjemnik add_sub Nie 0 odejmowanie 1 dodawanie clock Nie Sygnał zegarowy dla przetwarzania potokowego. clken Nie Sygnał załączający zegar. Jeśli jest nieużywany domyślnie przyjmuje wartość 1. aclr Nie Sygnał resetujący. Działa asynchronicznie. Wyjścia: Wyjście Wymagany Opis result[] Tak Wynik operacji cout Nie Bit przeniesienia. Nie może być używany razem z wyjściem overflow. overflow Nie Bit przepełnienia. Nie może być używany razem z wyjściem cout. PUC Laboratorium 2 4

Parametry: Parametr Wymagany Opis LPM_WIDTH Tak Szerokość magistral danych i wyniku. LPM_DIRECTION Nie Określa, czy układ ma działać jako sumator czy układ odejmujący. Nie może być używany, jeśli wykorzystywany jest port add_sub. LPM_REPRESENTATION Nie Format liczb: SIGNED lub UNSIGNED. LPM_PIPELINE Nie Ilość stopni potoku i czas opóźnienia uzyskania wyniku operacji liczony w taktach zegara. LPM_HINT Nie Umożliwia przekazanie parametrów specyficznych dla MAX+Plusa. LPM_TYPE Nie Nazwa układu w projekcie VHDL ONE_INPUT_IS_CONSTANT Nie Parametr specyficzny dla MAX+plusa umożliwiający zwiększenie stopnia optymalizacji układu, jeśli jedno z wejść ma przypisaną stałą wartość. MAXIMIZE_SPEED Nie Parametr specyficzny dla MAX+plusa umożliwiający określenie stopnia optymalizacji układu: liczby od 0 do 5 układ ma zajmować jak najmniej miejsca liczby od 6 do 10 układ ma działać jak najszybciej. lpm_mult Podobnie jak powyższy komponent, lpm_mult również jest układem, którego parametry należy skonfigurować w zależności od potrzeb projektu. Umożliwia to zastosowanie mnożarki najlepiej dostosowanej do potrzeb układu. PUC Laboratorium 2 5

Wejścia: Wejście Wymagany sum[] Nie suma częściowa dataa[] Tak czynnik (mnożna) datab[] Tak czynnik (mnożnik) Opis clock Nie Sygnał zegarowy dla przetwarzania potokowego. clken Nie Sygnał załączający zegar. Jeśli jest nieużywany domyślnie przyjmuje wartość 1. aclr Nie Sygnał resetujący. Działa asynchronicznie. Wyjścia: Wyjście Wymagany Opis result[] Tak Wynik operacji Parametry (wybrane): Parametr Wymagany Opis LPM_WIDTHA Tak Szerokość magistrali mnożnej. LPM_WIDTHB Tak Szerokość magistrali mnożnika. PUC Laboratorium 2 6

Parametr Wymagany Opis LPM_WIDTHP Tak Szerokość magistrali wyniku. LPM_WIDTHS Tak Szerokość magistrali sumy częściowej. Wartość ta jest wymagana nawet, jeśli magistrala sumy częściowej nie jest używana. LPM_REPRESENTATION Nie Format liczb: SIGNED lub UNSIGNED. LPM_PIPELINE Nie Ilość stopni potoku i czas opóźnienia uzyskania wyniku operacji liczony w taktach zegara. LPM_HINT Nie Umożliwia przekazanie parametrów specyficznych dla MAX+Plusa. LPM_TYPE Nie Nazwa układu w projekcie VHDL INPUT_A_IS_CONSTANT Nie Parametr specyficzny dla MAX+plusa umożliwiający zwiększenie stopnia optymalizacji układu, jeśli wejście dataa[] ma przypisaną stałą wartość. INPUT_B_IS_CONSTANT Nie Parametr specyficzny dla MAX+plusa umożliwiający zwiększenie stopnia optymalizacji układu, jeśli wejście datab[] ma przypisaną stałą wartość. MAXIMIZE_SPEED Nie Parametr specyficzny dla MAX+plusa umożliwiający określenie stopnia optymalizacji układu: liczby od 0 do 5 układ ma zajmować jak najmniej miejsca liczby od 6 do 10 układ ma działać jak najszybciej. PUC Laboratorium 2 7

Zadania: Celem ćwiczenia jest zaprojektowanie prostego układu ALU. W celu jego wykonania należy zrealizować następujące etapy projektowe: 1. Zaprojektować i skompilować układ arytmetyczny o następujących cechach: Układ ma dwa wejścia danych 16-bitowe Układ ma jedno wyjście 16-bitowe Układ ma jedno wejście sterujące, 2-bitowe, które określa rodzaj wykonanej operacji: Wartość wejścia sterującego Operacja na wyjściu 0 0 Y[15..0]=A[15..0] B[15..0] 0 1 Y[15..0]=A[15..0] + B[15..0] 1 0 Y[15..0]=A[7..0] B[7..0] Układ należy utworzyć jako schemat przy użyciu komponentów z biblioteki standardowej programu MAX+plus. (6 punktów) 2. Przetestować układ z zadania 1. Należy dobrać takie wartości, aby możliwe było rozpoznanie operacji dodawania, odejmowania i mnożenia w zależności od wartości podanej na wejście sterujące. (4 punkty) 3. Utworzyć nowy plik VHDL wydając polecenie File New Text Editor File. Następnie proszę wkleić następujący kod: library ieee; use ieee.std_logic_1164.all; entity logiczny is port(a: in std_logic_vector(15 downto 0); B: in std_logic_vector(15 downto 0); fun: in integer range 3 downto 0; Y: out std_logic_vector(15 downto 0)); end logiczny; architecture logiczny_arch of logiczny is begin with fun select Y <= A and B when 0, x"0000" when others; end logiczny_arch; Plik proszę zapisać jako logiczny.vhdl. Powyższy kod należy tak zmodyfikować, aby realizował następujące funkcje: Wartość wejścia sterującego (fun) Operacja na wyjściu 0 0 Y[15..0]=A[15..0] and B[15..0] 0 1 Y[15..0]=A[15..0] or B[15..0] PUC Laboratorium 2 8

ster[1..0] Wartość wejścia sterującego (fun) Operacja na wyjściu 1 0 Y[15..0]=A[15..0] xor B[15..0] 1 1 Y[15..0]=not A[15..0] Po dokonaniu poprawek układ należy skompilować. (2 punkty) 4. Przetestować układ z zadania 3. Należy dobrać takie wartości, aby możliwe było rozpoznanie operacji logicznych. (3 punkty) 5. Zaprojektować i skompilować układ ALU, którego schemat ideowy przedstawiono poniżej: A[15..0] B[15..0] układ arytmetyczny Y[15..0] Multiplekser układ logiczny ster[2..0] ster[2] Powyższy układ musi być wykonany w postaci schematu i używać układów zrealizowanych w poprzednich etapach, dołączonych jako symbole. Układ multipleksera może pochodzić z biblioteki standardowej. Cały układ powinien realizować następujące funkcje w zależności od wejścia ster : (5 punktów) Wartość wejścia sterującego (ster) Operacja na wyjściu 0 0 0 Y[15..0]=A[15..0] B[15..0] 0 0 1 Y[15..0]=A[15..0] + B[15..0] 0 1 0 Y[15..0]=A[7..0] B[7..0] 1 0 0 Y[15..0]=A[15..0] and B[15..0] 1 0 1 Y[15..0]=A[15..0] or B[15..0] 1 1 0 Y[15..0]=A[15..0] xor B[15..0] 1 1 1 Y[15..0]=not A[15..0] 6.Przetestować układ z zadania 5. Należy dobrać takie wartości, aby możliwe było potwierdzenie poprawnej implementacji układu. (5 punktów) PUC Laboratorium 2 9