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

Podobne dokumenty
Projektowanie Urządzeń Cyfrowych

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

Krótkie wprowadzenie do ModelSim i Quartus2

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

Sposoby projektowania systemów w cyfrowych

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

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

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

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

Projektowanie hierarchiczne Mariusz Rawski

Systemy Czasu Rzeczywistego FPGA

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

Projekt prostego procesora

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

Specyfika projektowania Mariusz Rawski

Systemy Czasu Rzeczywistego FPGA

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

Programowalne układy logiczne

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

Projektowanie automatów z użyciem VHDL

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

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.

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

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

Bezpieczeństwo informacji oparte o kryptografię kwantową

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

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

Projektowanie układów na schemacie

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

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.

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

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

Języki opisu sprzętu VHDL Mariusz Rawski

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

Instrukcje sekwencyjne

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

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

MentorGraphics ModelSim

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

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

Quartus. Rafał Walkowiak IIn PP Wer

CZ1. Optymalizacja funkcji przełączających

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

Technika Cyfrowa. Wprowadzenie do laboratorium komputerowego część II

Pojedyncze wartości zadeklarowanego typu Ustawiane przed rozpoczęciem symulacji bez moŝliwości

Systemy Czasu Rzeczywistego FPGA

Programowalne układy logiczne

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

Projektowanie w VHDL

Architektura komputerów Wykład 2

Projektowanie z użyciem procesora programowego Nios II

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

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

Implementacja algorytmu szyfrującego

Układy VLSI Bramki 1.0

Realizacja algorytmu wyznaczania wyrazów ciągu w języku VHDL z zastosowaniem podziału projektu na moduły: FSM i Data Path.

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

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH

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

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

Quartus. Rafał Walkowiak IIn PP Listopad 2017

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. Automaty stanów

Wyświetlacz siedmiosegmentowy

WSTĘP. Budowa bramki NAND TTL, ch-ka przełączania, schemat wewnętrzny, działanie 2

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowalne układy logiczne

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

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

Układy Cyfrowe projekt. Korekcja jasności obrazów w 24-bitowym formacie BMP z użyciem funkcji gamma. Opis głównych modułów sprzętowych

Modelowanie logiki rewersyjnej w języku VHDL

Układy Cyfrowe laboratorium

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Automatyzacja i robotyzacja procesów produkcyjnych

VHDL cz.1. Rafał Walkowiak IIn PP Wer

Delphi podstawy programowania. Środowisko Delphi

Programowalne układy logiczne

Krótkie przypomnienie

Podstawy Automatyki. Wykład 13 - Układy bramkowe. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

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

Cyfrowe układy sekwencyjne. 5 grudnia 2013 Wojciech Kucewicz 2

PoniŜej zamieszczone są rysunki przedstawiane na wykładach z przedmiotu Peryferia Komputerowe. ELEKTRONICZNE UKŁADY CYFROWE

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Przerzutniki RS i JK-MS lab. 04 Układy sekwencyjne cz. 1

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

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

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA

Elektronika i techniki mikroprocesorowe

Sterowniki Programowalne (SP)

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Transkrypt:

Altera Quartus II Opis niektórych komponentów dostarczanych razem ze środowiskiem Opracował: mgr inż. Leszek Ciopiński Spis treści Opis wybranych zagadnień obsługi środowiska Altera Quartus II:...1 Magistrale:... 1 Tworzenie symbolu z pliku...2 Wybór głównego układu projektowanej struktury...3 Język VHDL:... 3 Uwagi do wykorzystania języka VHDL w programie Altera Quartus...4 Wybrane układy z biblioteki standardowej... 4 Busmux... 4 lpm_add_sub...4 lpm_mult...8 Bramka NAND:... 10 Bramka XOR:... 10 Przerzutnik typu D:... 11 Przydatne funkcje i moduły w języku VHDL...12 Opis wybranych zagadnień obsługi środowiska Altera Quartus II: Magistrale: Program Quartus 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. Altera Quartus II Opis wybranych komponentów 1

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 Quartus. W tym celu należy otworzyć i skompilować plik, z którego chcemy zrobić symbol. Następnie należy wybrać pozycję menu File Create / Update Create Symbol Files for Current File. Wyświetlone zostanie okno dialogowe z pytaniem o nazwę tworzonego symbolu. Rekomendowana jest pozostawienie domyślnej nazwy pliku. Po zaakceptowaniu nazwy wyświetlony zostanie komunikat potwierdzający utworzenie symbolu. Możliwe jest teraz jego dodanie do dowolnego pliku. Altera Quartus II Opis wybranych komponentów 2

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. Utworzyć lub dołączyć plik, który będzie nowym głównym elementem układu. 2. W oknie Project Navigator przejść do karty Files. (Jeśli okno nie jest widoczne, można je otworzyć opleceniem View Utility Windows Project Navigator) 3. Na liście plików odnaleźć odpowiedni plik. 4. Z menu kontekstowego wybrać polecenie Set as Top-Level Entity Język VHDL: Dla celów laboratoryjnych wystarczą informacje przekazane na wykładzie. Informacje o podstawach programowania w języku VHDL można również znaleźć w księgozbiorze Wikibooks pod adresem: http://pl.wikibooks.org/wiki/vhdl oraz http://en.wikibooks.org/wiki/programmable_logic/vhdl. Altera Quartus II Opis wybranych komponentów 3

Uwagi do wykorzystania języka VHDL w programie Altera Quartus Układ napisany w języku VHDL traktowany jest przez Quartus'a tak samo, jak układy wykonane w edytorze graficznym. Projekt taki można skompilować i przetestować (używamy dokładnie tych samych narzędzi, co w przypadku schematu blokowego). Dla każdego układu opisanego w języku VHDL możliwe jest również wygenerowanie symbolu, który można dołączyć do innego schematu blokowego. Aby utworzyć nowy plik VHDL należy wydać polecenie File New Designed Files VHDL File. W nowo otworzonym oknie można już dokonać opisu urządzenia. Istotne jest jednak to, że w danym pliku można umieścić dokładnie jeden opis (deklaracja i implementacja) jednego układu. Ponadto plik VHDL musi nazywać się tak samo jak opisywany układ. Niespełnienie tego warunku zakończy się błędami kompilacji. 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. lpm_add_sub Układ ten należy do grupy MegaFunctions (dokładna lokalizacja to: megafunctions/arithmetic/lpm_add_sub). 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 MegaWizard, w którym należy dokonać wyboru języka w jakim opisany zostanie układ (proszę wybierać język VHDL) oraz miejsce i nazwę pod jaką układ ma zostać zapisany. Poniżej Altera Quartus II Opis wybranych komponentów 4

przedstawiono opis najważniejszych ustawień: Altera Quartus II Opis wybranych komponentów 5

Ilu bitowe są wejścia i wyjścia Jak ma działać układ? Tylko sumator Tylko odejmowanie Odejmowanie lub dodawanie uzależnione od wejścia sterującego Czy któreś wejście ma stałą wartość? Nie, oba wejścia mają wartości zmienne Tak, dane wejście ma stałą wartość równą i wyrażoną w systemie. Operacje na liczbach ze znakiem czy bez? Altera Quartus II Opis wybranych komponentów 6

Czy tworzyć dodatkowe wejście przeniesienia / pożyczki? Czy tworzyć dodatkowe wyjście przeniesienia / pożyczki? Czy tworzyć dodatkowe wyjście znacznika przepełnienia? Czy tworzyć potokowe wykonywanie operacji? Tak, z wynikiem po cyklach zegara. Utwórz asynchroniczne wejście zerujące. Utwórz wejście aktywujące zegar. Altera Quartus II Opis wybranych komponentów 7

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 dostosowanego do potrzeb układu. Ponadto, jeśli dany układ FPGA zawiera komponenty wspierające budowę tego układu, zostaną one wykorzystane w zamian za standardowe komórki LUT, co pozwoli na zoptymalizowanie projektowanego układu. Na poniższych ilustracjach zostały przedstawione kolejne etapy tworzenia tego komponentu. Podajemy nazwę komponentu łącznie ze ścieżką dostępu. Można pozostawić nazwę domyślną. Altera Quartus II Opis wybranych komponentów 8

Metoda wprowadzania danych: Czy dane mają być wprowadzane poprzez dwie równoległe szyny, czy poprzez jedno wejście w sposób synchroniczny? Szerokość szyn wejściowych Czy szerokość szyny wejściowej ma być obliczona automatycznie (suma szerokości szyn wejściowych), czy ma być zdefiniowana przez projektanta? Czy druga z wartości ma być wielkością stałą, a jeśli tak, to jaką? Czy liczby są zapisane ze znakiem, czy bez znaku? Jaka ma być metoda implementacji układu? Altera Quartus II Opis wybranych komponentów 9

Czy układ ma zawierać potokowe przetwarzanie operacji? Jeśli tak, to w jakim czasie ma pojawić się odpowiedź? Jaką metodę optymalizacji wybrać? Domyślną, szybkość (jak szybko układ ma działać) czy przestrzenną (ile miejsca układ ma zajmować). Bramka NAND: Przykładowe moduły napisane w języku VHDL (źródło: http://pl.wikibooks.org/wiki/vhdl/przyk %C5%82ady_kodu): Zawartość pliku opisującego dwuwejściową bramkę NAND: library ieee; use ieee.std_logic_1164.all; entity nand2 is port ( a,b : in std_logic; c : out std_logic ); end nand2; architecture logic of nand2 is begin c <= not (a and b); end logic; Bramka XOR: Przykładowe moduły napisane w języku VHDL (źródło: http://pl.wikibooks.org/wiki/vhdl/przyk %C5%82ady_kodu ): Zawartość pliku opisującego dwu wejściową bramkę XOR: Altera Quartus II Opis wybranych komponentów 10

library ieee; use ieee.std_logic_1164.all; entity xor2 is port ( a,b : in std_logic; c : out std_logic ); end xor2; architecture behavioral of nand2 is begin c <= not (a and b); end behavioral; architecture logic of xor2 is component nand2 port ( a, b : in std_logic; c : out std_logic ); end component nand2; signal wew1,wew2,wew3 : std_logic; begin bramka1 : nand2 port map (a=>a, b=>b, c=>wew1 ); bramka2 : nand2 port map (a=>a, b=>wew1, c=>wew2 ); bramka3 : nand2 port map (a=>wew1, b=>b, c=>wew3 ); bramka4 : nand2 port map (a=>wew2, b=>wew3, c=>c ); end logic; W powyższym przykładzie należy zauważyć, że do połączenia zewnętrznego komponentu z wewnętrznymi sygnałami opisywanego modułu niezbędne jest użycie port map. Przerzutnik typu D: Przykładowe moduły napisane w języku VHDL (źródło: http://pl.wikibooks.org/wiki/vhdl/przyk %C5%82ady_kodu ): Zawartość pliku opisującego gotowy do symulacji i syntezy logicznej, przerzutnik typu D z Resetowaniem synchronicznym. library IEEE; -- dołączenie standardowej biblioteki IEEE use IEEE.STD_LOGIC_1164.all; -- dołączenie pakietu 'STD_LOGIC_1164' z biblioteki IEEE -- definiującego popularne stany logiczne entity dffr is -- opis interfejsu przerzutnika (połączeń z otoczeniem) port( CLK : in STD_LOGIC; -- wejście zegarowe RESET : in STD_LOGIC; -- wejście kasowania DIN : in STD_LOGIC; -- wejście danych DOUT : out STD_LOGIC -- wyjście danych ); Altera Quartus II Opis wybranych komponentów 11

end dffr; architecture behavior of dffr is begin dffar: process (CLK, RESET) begin if rising_edge(clk) then if RESET='1' then DOUT <= '0'; else DOUT <= DIN; end if; end if; end process; -- opis wnętrza przerzutnika (w tym przypadku -- jest to opis behawioralny) -- proces z listą czułości (sensitivity list) -- wykrywanie aktywnego zbocza zegara -- kasowanie stanem wysokim wejścia RESET -- przypisanie stałej to sygnału wyjściowego -- przypisanie stanu wejścia do sygnału wyjściowego end behavior; Przydatne funkcje i moduły w języku VHDL falling_edge() - jest przeciwieństwem rising_edge(), to znaczy, że zwraca wartość true, jeśli wykryta została zmiana stanu sygnału podanego jako parametr tej funkcji z wysokiego na niski Instrukcja case służy do wprowadzania rozejścia na różne drogi. Instrukcje tą stosuje się wyłącznie wewnątrz procesu. case kod_instrukcji is when x 00 => dodawanie; when x 01 x 10 => czekanie; when others => nieznany_kod; end case; use IEEE.STD_LOGIC_UNSIGNED.all; - biblioteka, której dodanie powoduje, że wszystkie sygnały w projektowanym module będą traktowane jako wartości całkowitoliczbowe bez znaku. Umożliwia to używanie tych sygnałów zarówno w sposób klasyczny (np. odwoływanie się do konkretnych bitów), jak i wykonywanie na nich działań arytmetycznych (używamy ich wówczas tak samo jak zwykłych zmiennych, np.: syg1 <= syg2 + syg3) Altera Quartus II Opis wybranych komponentów 12