Wprowadzenie do programu Altera Quartus II
Transkrypt
Wprowadzenie do programu Altera Quartus II
Wprowadzenie do programu Altera Quartus II Opracował: mgr inż. Leszek Ciopiński W opracowaniu zostały użyte materiały pochodzące z plików pomocy programu Altera Quartus II Spis treści 1. Wprowadzenie..................................................................................................................................1 1.1. Czym jest środowisko Altera Quartus II?.................................................................................1 1.2. Jak uzyskać program Altera Quartus II?...................................................................................2 2. Wygląd środowiska..........................................................................................................................2 2.1. Struktura głównego okna..........................................................................................................2 2.2. Menu i pasek narzędzi..............................................................................................................3 2.3. Nawigator projektu...................................................................................................................3 2.4. Główne okno programu............................................................................................................3 2.5. Okno statusu kompilacji i testowania.......................................................................................3 2.6. Okno informacji........................................................................................................................3 3. Praca z środowiskiem.......................................................................................................................4 3.1. Tworzenie nowego projektu.....................................................................................................4 3.2. Tworzenie schematu blokowego..............................................................................................6 3.3. Kompilowanie Projektu............................................................................................................7 3.4. Timing Simulation....................................................................................................................8 4. Inne źródła informacji o programie Altera Qartus II......................................................................10 1. Wprowadzenie 1.1. Czym jest środowisko Altera Quartus II? Altera Quartus II jest środowiskiem projektowania i syntezowania układów i systemów cyfrowych. Posiada bogate możliwości, począwszy od projektowania prostych układów w środowisku graficznym, poprzez wykorzystanie języków opisu układu, takich jak Verilog lub VHDL, a na możliwości generowania struktur komputerowych kończąc (SOPC Builder). Do środowiska dołączona jest duża biblioteka gotowych komponentów. Jeśli jednak nie zawiera gotowego układu, możliwe jest jego zaprojektowanie i dołączenie do biblioteki. Dostępny jest również kreator (Mega Function Wizard) niektórych komponentów, takich jak pamięć, który pozwala na dostosowanie jej do potrzeb projektu. Altera Quartus II umożliwia również umieszczenie wygenerowanej struktury na układach FPGA firmy Altera. Przykładem takiego układu może być Cyclone II umieszczony na płycie DE2. Opracował: mgr inż. Leszek Ciopiński 1 1.2. Jak uzyskać program Altera Quartus II? Środowisko Quartus dostępne jest w dwóch wersjach: • Quartus II Subscription Edition – jest to wersja płatna, przeznaczona głównie dla firm zajmujących się projektowaniem układów cyfrowych. Posiada wsparcie techniczne firmy Altera. • Quartus II Web Edition – wersja ta przeznaczona jest dla każdego, kto chce posiadać to środowisko z dowolnego powodu. Jest to wersja bezpłatna i można ją pobrać ze strony producenta: www.altera.com . Jedynym warunkiem jest zarejestrowanie się na stronie internetowej. Wersja ta posiada możliwość projektowania i syntezowania układów cyfrowych, oraz ich umieszczania na układach FPGA. Nie posiada jednak wsparcia technicznego, a część komponentów z bibliotek IP (Intellectual Property) nie jest dostępna, lub dostępna jest na licencji ograniczonej czasowo (oprogramowany układ działa tylko przez określony czas, można go jednak po tym czasie oprogramować ponownie – pozwala to na przeprowadzenie badań z wykorzystaniem układu, ale uniemożliwia jego komercyjne wykorzystanie). 2. Wygląd środowiska 2.1. Struktura głównego okna Menu i pasek narzędzi Nawigator projektu Główne okno programu Okno statusu kompilacji i testowania Okno informacji Opracował: mgr inż. Leszek Ciopiński 2 2.2. Menu i pasek narzędzi Menu zawiera bogaty zestaw narzędzi i funkcji. Aby przyspieszyć dostęp do najczęściej używanych narzędzi umieszczone zostały do nich skróty w postaci paska. Do najbardziej istotnych należą: • Start compilation – przeprowadza pełny proces syntezy i kompilacji układu, oraz jego dopasowanie do jednego z produkowanych przez firmę Altera układów FPGA. • Start Analysis & Synthesis – jest to tylko pierwszy etap pełnej kompilacji. Użycie tej funkcji jest przydatne, jeśli chcemy sprawdzić, czy utworzona przez nas struktura jest prawidłowo wykonana. Jeśli projektant popełnił jakiekolwiek błędy przy tworzeniu struktury, zostaną one wykryte na tym etapie kompilacji. Jeśli jednak zależy nam na uruchomieniu struktury na układzie FPGA lub dokonanie symulacji, konieczne jest wykonanie pełnej kompilacji. • Start simulation – służy do rozpoczęcia symulacji przebiegu sygnałów. Pierwszym etapem tej symulacji jest utworzenie pliku waveform zawierającego opis sygnałów wejściowych. Po użyciu „Start simulation” Quartus uzupełni stan dla sygnałów wyjściowych. Dokładny opis tego narzędzia znajduje się w dalszej części instrukcji (3.4. Timing Simulation). 2.3. Nawigator projektu Zawiera informację, na jaki układ FPGA ma zostać skompilowany dany projekt, oraz listę plików projektu. Pliki mogą być ułożone hierarchicznie, kiedy w jednym z nich znajduje się komponent używany w innym pliku. 2.4. Główne okno programu Na załączonym rysunku w oknie głównym przedstawiony został raport kompilacji. W oknie tym mogą znajdować się również pliki ze schematem układu lub jego opisem w języku Verilog/VHDL. Okno to stanowi główne miejsce pracy nad projektem. 2.5. Okno statusu kompilacji i testowania W trakcie wykonywania przez kompilator zadanego procesu, okno to prezentuje aktualny stan wykonywanej pracy. Na przedstawionym obrazku widzimy zarówno stopień ukończenia całej kompilacji, jak również danego jej etapu. 2.6. Okno informacji W trakcie kompilacji w oknie tym pojawiają się cztery główne rodzaje informacji: • Info – ogólne informacje, określające parametry ustawień, z jakimi odbywa się kompilacja. • Warning – ostrzeżenie o podejrzeniu wystąpienia jakiegoś błędu, np.: przypisanie danemu wejściu stałego sygnału, którego nie można zmienić. • Critical Warning – ostrzeżenie o wystąpieniu poważnego błędu, który może mieć poważny wpływ na funkcjonowanie układu. Nie powoduje on jednak wstrzymania procesu kompilacji, a użytkownik sam musi ocenić, czy jego wystąpienie ma negatywny wpływ na Opracował: mgr inż. Leszek Ciopiński 3 działanie generowanej struktury. • Error – rodzaj błędu, który uniemożliwia przeprowadzenie dalszej kompilacji i konieczna jest ingerencja użytkownika. Najczęstszym przydatkiem wystąpienia tego błędu jest błąd użytkownika w projektowanej strukturze. Czasami zdarza się błąd braku odpowiedniej pojemności układu FPGA na zaprojektowaną strukturę. W takim przypadku należy zmienić układ na pojemniejszy albo zmniejszyć układ. 3. Praca z środowiskiem 3.1. Tworzenie nowego projektu Pierwszym etapem jest utworzenie nowego projektu. Należy w tym celu wywołać polecenie File | New Project Wizard . W pierwszym oknie „Introduction” należy wybrać polecenie „Next”. W kolejnym oknie mamy trzy pola tekstowe. W pierwszym z nich podajemy ścieżkę do katalogu roboczego projektu. W drugim z nich wpisujemy nazwę projektu. Ostatnie pole służy do podania nazwy głównego elementu układu, czyli tego, który nie jest wykorzystywany jako podukład w innej części projektu. Plik o nazwie takiej samej jak w trzecim polu, jest plikiem wejściowym dla kompilacji. Pozostałe piki są kompilowane dopiero wówczas, gdy kompilator znajdzie do nich odnośnik. Po podaniu tych danych przechodzimy do kolejnego okna przyciskiem „Next”. Opracował: mgr inż. Leszek Ciopiński 4 Służy ono do dodania do projektu gotowych plików. W naszym przypadku pozostawiamy to okienko niewypełnione i przechodzimy do kolejnego przyciskiem „Next”: Trzeci krok służy do wyboru układu FPGA, na którym osadzona będzie wygenerowana przez nas struktura. W pierwszej kolejności przełączamy w części „Target Device” przełącznik na „Specific device ...”. Spowoduje to, że podczas kompilacji „fitter” - czyli moduł odpowiedzialny za sposób osadzenia struktury na układzie FPGA, nie będzie próbował dokonać optymalnego wyboru, na którym układzie najlepiej osadzić układ, aby zmniejszyć koszt jego wdrożenia. W zamian przygotuje model do osadzenia na wybranym układzie. Pierwsza z tych opcji przydatna jest jeśli nie wiemy, jaki układ jest nam potrzebny, a mamy pełną dowolność wyboru. W naszym przypadku przygotujemy projekt do osadzenia na płycie Terasic DE2. Wyposażona jest ona w układ Altera Cyclone II EP2C35. Dlatego należy najpierw z listy Family wybrać rodzinę Cyclone II, a później z Opracował: mgr inż. Leszek Ciopiński 5 listy „Available device” wpis EP2C35F672C6. Po wybraniu odpowiednich opcji przechodzimy dalej przyciskając „Next”. W ostatnim oknie znajduje się podsumowanie całego projektu. W celu jego utworzenia, należy wybrać przycisk „Finish”. 3.2. Tworzenie schematu blokowego W celu utworzenia nowego pliku ze strukturą należy wybrać polecenie File | New. W nowo otwartym oknie należy wybrać pozycję Block Diagram/Schematic File. Wybór potwierdzamy przyciskiem OK. Następstwem tego jest ukazanie się edytora schematu Opracował: mgr inż. Leszek Ciopiński 6 w głównym oknie programu Quartus, co zaprezentowane zostało na poniższym obrazku. Zalecane jest zapisanie takiego pliku pod odpowiednią nazwą, wykorzystując w tym celu polecenie File | Save As … . Jeśli będzie to główny schemat układu należy pamiętać, aby jego nazwa była taka sama, jak podczas tworzenia projektu. W celu dodania nowego elementu do układu należy dwukrotnie kliknąć lewym przyciskiem myszy w wolne miejsce. Otworzy się wówczas eksplorator symboli, gdzie możemy wybrać szukany przez nas element poprzez wybranie go z drzewa katalogów lub wpisując jego nazwę. Najważniejsze elementy to: and2, nand2, or2, xor2, input i output. Pierwsze z nich to odpowiednie bramki logiczne. Podane przy nich liczby określają ilość wejść do układu. Elementy input i output stanowią odpowiednio wejście i wyjście do i z układu. Umieszczenie tych elementów jest konieczne, aby możliwe było komunikowanie się z układem. Oba te elementy mogą być przypisane pod wybrany pin układu FPGA. Elementy umieszczone w schemacie należy ze sobą połączyć za pomocą linii symbolizujących przewody. W tym celu należy skierować kursor myszy do wyjścia z jednego układu, a gdy zmieni on swój kształt, należy przycisnąć i przytrzymać lewy przycisk myszy, po czym przeciągnąć do wejścia wybranego układu. Powstałą w ten sposób linię można modyfikować, przesuwając ją. Jeśli operacja wykonana została prawidłowo linia będzie na stałe przytwierdzona do układu i w przypadku jego przesunięcia będzie podążała za układem. 3.3. Kompilowanie Projektu Aby skompilować projekt, należy zapisać wszystkie pliki projektu. Następnie wybieramy polecenie Processing | Start Compilation. W oknie statusu rozpocznie się prezentacja aktualnego stanu kompilacji, a w oknie informacji zaczną pojawiać się nowe wiadomości. W oknie głównym zostanie wyświetlony raport kompilacji, który wraz z kolejnymi postępami kompilacji będzie uzupełniany o kolejne informacje. Opracował: mgr inż. Leszek Ciopiński 7 Jeśli kompilacja zostanie przerwana raportem błędu, konieczne będzie jego usunięcie. Należy w tym celu przeczytać komunikat ze zrozumieniem i wprowadzić wymagane poprawki. Jeśli pełny proces kompilacji przebiegł niezakłócony, to raport kompilacji zawiera wszystkie informacje na temat jego przebiegu. Możliwe jest też przystąpienie do testowania układu lub jego umieszczania w układzie FPGA. 3.4. Timing Simulation Etap ten należy rozpocząć po pomyślnym ukończeniu pełnej kompilacji. Wywołujemy polecenie File | New i w wyświetlonym oknie wybieramy opcję „Waveform file”. Opracował: mgr inż. Leszek Ciopiński 8 Pasek menu Podziałka czasowa Wartości sygnałów dla danych wejść/wyjść Lista testowanych pinów (input i output) Pasek narzędzi Aby dodać nowe piny do edytora, należy kliknąć wolne miejsce na liście testowanych pinów. Pojawi się wówczas poniższe okno, w którym wpisujemy nazwę żądanego pinu lub jeśli jej nie znamy, klikamy przycisk „Node Finder...”. W nowo otworzonym oknie uzyskamy dostęp do wszystkich wygenerowanych pinów w układzie. Opracował: mgr inż. Leszek Ciopiński 9 Pola „Named” i „Filter” służą do filtrowania listy pinów, ponieważ jest ich w bardziej rozbudowanym układzie bardzo dużo. Wystarczy wspomnieć, że mamy możliwość podglądu wartości sygnałów na niektórych liniach wewnętrznych. W takiej sytuacji pomocne jest użycie filtra do odnalezienia określonego pinu. W naszych projektach, ponieważ jest mała ilość wejść i wyjść parametr „filter” ustawiamy na „Pins: all” i klikamy przycisk „list”. Spowoduje to wypełnienie listy „Nodes Found” nazwami pinów pasujących do wzorca. Zaznaczamy na niniejszej liście interesujące nas piny i przyciskamy guzik „copy”, aby skopiować je do listy „Sected Nodes”. Wybór zatwierdzamy przyciskiem OK. Powracamy wówczas do poprzedniego okna w którym również potwierdzamy dokonanie wyboru przyciskiem OK. Nowe piny powinny pojawić się na liście testowanych pinów. Wartości X oznaczają, że nie znany jest stan danej linii. Jest to wartość typowa dla pinów wyjścia, gdyż ich stan jest uzupełniany w trakcie procesu kompilacji. Na wejściach ustawiamy zaś wartości 0 lub 1. Aby zmienić stan na danej linii, należy zaznaczyć w oknie wartości sygnałów wybrany przedział czasowy, a z paska narzędzi wygrać przycisk z cyfrą 0 lub 1. Stan sygnału dla danego zaznaczenia zostanie zmieniony. Należy jednak pamiętać, że w przypadku tej analizy uwzględniany jest czas propagacji sygnału przez bramki. Oznacza to, że jeśli na wejściu bramki zmienimy stan którejś linii, to efekt na wyjściu układu będzie zauważalny dopiero po pewnym czasie. Dlatego testując kolejne kombinacje należy uwzględniać pewien czas przeznaczony na ustabilizowanie sygnałów. Po ustaleniu wszystkich wartości wejść należy zapisać plik pod taką samą nazwą, jak główny element projektowanego układu. W celu przeprowadzenia symulacji należy wywołać polecenie Processing | Start Simulation. Po zakończeniu procesu generowania symulacji jej podgląd możemy zobaczyć wydając polecenie Processing | Simulation Report. 4. Inne źródła informacji o programie Altera Qartus II Jednym z najlepszych źródeł informacji o tym programie jest Tutorial dołączony do pomocy programu Quartus. Zachęcam wszystkie zainteresowane osoby do zapoznania się z niniejszym źródłem, ponieważ oprócz informacji na dany temat zawiera również interaktywny moduł treningowy. Cały tutorial opracowany jest w sposób łatwy, przejrzysty i czytelny, tak, że nawet osoby które mają pewne problemy z językiem angielskim nie powinny mieć problemu z jego użyciem. Opracował: mgr inż. Leszek Ciopiński 10