Wydział Elektryczny
Katedra Automatyki i Elektroniki
ĆWICZENIE Nr 5 (4h)
Liczniki, zegary i timery w VHDL.
Instrukcja do zajęć laboratoryjnych z przedmiotu
„Synteza układów cyfrowych”
studia niestacjonarne, II stopnia, semestr 2
EZ2B200013
Opracował:
dr inż. Łukasz Sajewski
Białystok 2012
1
1. Cel ćwiczenia
Celem ćwiczenia jest implementacja w języku VHDL struktur licznikowych oraz zegarowych.
2. Licznik w wykonaniu graficznym środowiska Quartus II Rozważmy układ z rysunku 1. Jest on licznikiem 4 - bitowym wykorzystującym przerzutniki typu T. Inkrementacja stanu licznika następuje na narastającym zboczu sygnału zegarowego przy aktywnym sygnale zezwolenia ( Enable). Licznik jest zerowany niskim poziomem sygnału Reset.
Rys. 1. Czterobitowy licznik szeregowy z wykorzystaniem przerzutników T i bramek AND
Przebadać licznik w wykonaniu graficznym.
1. Zaimplementuj 4 - bitową wersję układu a następnie używając modułu Quartus II RTL
Viewer zaobserwuj w jaki sposób system dokonuje syntezy układu. Jakie są różnice w porównaniu z układem z rysunku 1 ?
2. Rozbuduj projekt używając przycisku KEY0 jako wejścia Clock, przełączników SW1 i
SW0 jako wejść Enable i Clear oraz diod LED LEDG0-3 do wyświetlania stanu licznika podczas pracy (zamiast diod LED można wykorzystać dekoder z instrukcji nr. 3).
3. Zaimplementuj twój projekt w strukturze programowalnej modułu DE1 i dokonaj testu funkcjonalnego manipulując przełącznikami.
4. Przygotuj plik projektowy definiujący 16 - bitowy licznik wykorzystujący strukturę przedstawioną na rysunku 1. Dokonaj kompilacji układu. Sprawdź ile elementów logicznych ( LEs) zostało zużytych do jego implementacji. Zbadaj jaka jest maksymalna częstotliwość Fmax jego pracy.
5. Dokonaj symulacji funkcjonalnej układu.
3. Licznik w wykonaniu tekstowym VHDL
Uprość swój program w VHDL specyfikując licznik za pomocą instrukcji sekwencyjnych process oraz warunkowych if then else stosując zapis: Q <= Q + 1. W tym celu użyj typu integer wraz z podanym zakresem range lub też użyj typu unsigned z dodatkowej biblioteki use ieee.numeric_std.all.
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.numeric_std.all;
ENTITY licznik IS
PORT(Clock: IN STD_LOGIC;
Q: OUT INTEGER RANGE 0 TO 7);
2
ARCHITECTURE Behaviour OF licznik IS
SIGNAL temp: INTEGER RANGE 0 TO 7;
BEGIN
PROCESS (Clock)
BEGIN
IF RISING_EDGE(Clock) THEN
temp <= temp + 1;
END IF;
END PROCESS;
Q <= temp;
END ARCHITECTURE;
List. 1. Przykładowa realizacja licznika w języku VHDL
Powyższy listing przedstawia realizację prostego licznika zliczającego w górę od 0 do 7
aktywowanego zboczem narastającym sygnału zegarowego Clock. Kod należy rozbudować o wejście resetujące ( Clear) i zezwalające ( Enable) – zgodnie z zasadą działania układu z punktu 2. Sprawdzić na płycie DE1 działanie 4 bitowej wersji tak rozbudowanego licznika.
Następnie skompiluj 16 - bitową wersję licznika i porównaj liczę użytych LEs do implementacji oraz maksymalną wartość częstotliwości pracy Fmax z poprzednim rozwiązaniem. Użyj RTL Viewer do obejrzenia implementacji oraz skomentuj różnice w stosunku do układu z punktu 2.
4. Licznik parametryzowany LPM
Zastosuj parametryczny licznik z biblioteki Library of Parameterized Modules
systemu Quartus II do implementacji wersji 16 - bitowej. Wybierz tylko te opcje LPM, które są zgodne z układem z punktu 2 i 3.
lpm_counter0
up counter
Clear
INPUT
sclr
VCC
Clock
INPUT
clock
VCC
q[15..0]
OUTPUT
Q[15..0]
Enable
INPUT
cnt_en
VCC
inst1
Rys. 2. Przykładowa realizacja licznika z wykorzystaniem biblioteki Megafunctions/Arithmetic
Powyższy rysunek przedstawia graficzną reprezentację licznika wygenerowaną za pomocą biblioteki bloków parametryzowanych systemu Quartus II. Porównać realizację takiego licznika z poprzednimi konstrukcjami.
5. Licznik modulo o określonej prędkości działania Zaprojektuj i zaimplementuj układ, który wyświetla cyfry od 0 do 9 na wyświetlaczu siedmiosegmentowym HEX0. Każdą z cyfr należy wyświetlać przez około sekundę (częstotliwość zmian 1Hz). Zastosuj dzielnik częstotliwości do uzyskania jednosekundowych interwałów czasowych. Licznik należy taktować jednym z sygnałów zegarowych dostępnych w module DE1 (np. 50MHz – CLOCK_50).
3
Do realizacji zadania przydatne będą pliki projektowe z poprzednich zajęć – projekt dekodera kodu binarnego NB na wyświetlacz siedmiosegmentowy. W roli dzielnika można użyć licznika modulo 50000000 z przepełnieniem.
1. Utwórz nowy projekt.
2. Napisz program w VHDL opisujący projektowany układ.
3. Skompiluj projekt.
4. Dokonaj symulacji sprawdzającej działanie układu.
5. Przypisz
połączenia
wyświetlaczy
siedmiosegmentowych
oraz
przycisku
do
odpowiednich pinów FPGA.
6. Dokonaj kompilacji projektu.
7. Zaprogramuj FPGA i przetestuj pracę układu obserwując wyświetlacze.
6. Licznik z wyświetlaniem w kodzie BCD
Korzystając z poprzedniego zadania zaimplementuj trzycyfrowy licznik BCD.
Wyświetl zawartość licznika na siedmiosegmentowych wyświetlaczach HEX2-0. Zastosuj dzielnik częstotliwości do uzyskania jednosekundowych interwałów czasowych. Użyj przycisku KEY0 do zerowania licznika, użyj przełącznika SW0 do pauzowania licznika.
7. Zegar
Zaprojektuj i zaimplementuj układ, który działa jako zegar czasu rzeczywistego.
Powinien on wyświetlać godziny (od 0 do 23) na siedmiosegmentowych wyświetlaczach
HEX3-2, minuty (od 0 do 60) na HEX1-0 oraz sekundy (od 0 do 60) na diodach LED. Użyj przełączników SW15-0 do ustawiania części godzin i minut czasu wyświetlanego przez zegar.
8. Sprawozdanie
Sprawozdanie z zajęć laboratoryjnych powiano zawierać:
1. Opis słowny zadania do realizacji
2. Założenia realizowanego zadania
3. Procedurę projektową
4. Listingi gotowych programów
5. Weryfikację działania układu
6. Uwagi i wnioski
Literatura:
1. Barski M., Jędruch W.: Układy cyfrowe, podstawy projektowania i opisu w ję zyku VHDL, Wydawnictwo Politechniki Gdańskiej, 2007.
2. Łuba T.: Synteza układów cyfrowych, WKiŁ, Warszawa, 2004.
3. Mano M.M., Kime Ch.R.: Podstawy projektowania układów logicznych i komputerów, NT, Warszawa 2007.
4. Skahill K.: Ję zyk VHDL Projektowanie programowalnych układów logicznych, WNT, Warszawa, 2001.
Zamieszczone w instrukcji zrzuty ekranowe oraz zdjęcia pochodzą z materiałów firmowych dostarczonych przez firmę Altera.
4