Laboratorium przedmiotu Podstawy Techniki Cyfrowej
ć
w.1: Układy kombinacyjne
Wprowadzenie:
Wszelkie realizacje układowe projektów w ramach laboratorium z przedmiotu
Podstawy Techniki Cyfrowej b
ę
d
ą
tworzone w oparciu o matryce FPGA (Field
Programmable Gate Array).
Matryca FPGA to rodzaj programowalnego układu logicznego, który składa si
ę
z rozmieszczonych matrycowo bloków logicznych (CLB). W trakcie syntezy układu
poszczególne bloki s
ą
ze sob
ą
ł
ą
czone za po
ś
rednictwem linii traktów
poł
ą
czeniowych (Routing Channels) oraz programowalnych matryc kluczy
poł
ą
czeniowych umieszczonych w miejscu krzy
ż
owania si
ę
traktów poziomych i
pionowych. Po zaprogramowaniu matrycy FPGA uzyskujemy fizycznie działaj
ą
cy
rzeczywisty układ (nie jest to symulacja). Obecnie mo
ż
na zleci
ć
stworzenie układu
scalonego działaj
ą
cego identycznie jak zaprogramowana matryca (Hard-Copy).
W ramach laboratorium u
ż
ywana b
ę
dzie płyta uruchomieniowa Spartan 3A
firmy Xilinx oparta o matryc
ę
FPGA – Spartan XC3S700A.
Ś
rodowiskiem
programistycznym u
ż
ywanym podczas laboratorium b
ę
dzie ISE firmy Xilinx w wersji
10.1.
ISE jest
ś
rodowiskiem, które zapewnia dost
ę
p do wszystkich elementów
niezb
ę
dnych podczas tworzenia i implementacji projektu w oparciu o matryce FPGA.
Głównym elementem
ś
rodowiska jest Project Navigator, czyli aplikacja z poziomu
której mo
ż
emy kontrolowa
ć
przebieg procesu projektowania oraz uruchamia
ć
inne
aplikacje
ś
rodowiska ISE.
Wygl
ą
d okna aplikacji Project Navigator jest przedstawiony na rysunku 1.
A – okno plików
ź
ródłowych (Sources) – przedstawione wszystkie elementy
projektu w formie hierarchicznej;
B – okno procesów (Processes) – przedstawione dost
ę
pne operacje dla
zaznaczonego elementu w cz
ęś
ci A;
C – główne okno robocze;
D – okno konsoli (Console) – wy
ś
wietlane informacje, ostrze
ż
enia, ewentualne
bł
ę
dy itp.;
Cz
ęść
plików b
ę
dzie dost
ę
pna po zmianie dokonanej w oknie A
(Implementation / Simulation). Po wybraniu pliku w oknie A uruchomienie wybranego
dla niego procesu w oknie B nast
ę
puje poprzez dwukrotne klikni
ę
cie nazwy procesu.
Cz
ęść
procesów wymaga wst
ę
pnego ich skonfigurowania (po ich uruchomieniu
dost
ę
pne b
ę
d
ą
opcje konfiguracji).
Konfiguracja płyty uruchomieniowej:
Nie wdaj
ą
c si
ę
w szczegóły na temat trybów pracy płyty zawsze przed jej
zał
ą
czeniem nale
ż
y pami
ę
ta
ć
aby sprawdzi
ć
konfiguracj
ę
, tzn. ustawi
ć
zworki tak
jak na rysunku 2.
rys.1. Wygl
ą
d okna aplikacji Project Navigator.
Synteza układu opisanego za pomoc
ą
schematu:
1) Stworzenie nowego projektu. File->New Project ...
Okre
ś
lenie nazwy projektu i lokacji na dysku;
Wybór Top-level Source type jako Schematic;
2) Wybór cech matrycy oraz sposobów syntezy i symulacji;
Family: Spartan 3A;
Device: XC3S700A;
Package: FG484;
Synthesis Tool: XST;
Simulator: ISE Simulator;
Preffered Language: Verilog;
3) Zako
ń
czenie tworzenia projektu;
Next -> Next-> Finish;
4) Dodanie pliku typu Schematic;
Project -> New Source -> Schematic;
Nadanie nazwy, zaznaczenie Add to Project;
rys.2. Defaultowe ustawienie zworek płyty uruchomieniowej Xilinx Spartan-3A.
5) Edycja schematu;
Podczas edycji nale
ż
y umieszcza
ć
na schemacie symbole elementów (np.
bramek logicznych) oraz poł
ą
czenia mi
ę
dzy nimi. Dost
ę
pne typy elementów –
zakładka Categories, dost
ę
pne elementy – Symbols. Do rysowania poł
ą
cze
ń
nale
ż
y
u
ż
ywa
ć
opcji Add -> Wire, do nadawania sygnałom nazw opcji Add -> Net Name,
natomiast do okre
ś
lenia wej
ś
cia lub wyj
ś
cia układu słu
ż
y opcja Add -> I/O Marker.
Dost
ę
p do opcji dowolnego elementu schematu nast
ę
puje poprzez dwukrotne
klikni
ę
cie elementu.
6) Okre
ś
lenie przyporz
ą
dkowania sygnałów WE/WY ze schematu do odpowiednich
pinów matrycy;
Tworzony jest plik ogranicze
ń
(rozszerzenie .ucf) poprzez Project -> New
Source -> Implementation Constraint File;
Nadanie nazwy, zaznaczenie Add to Project;
Wybór pliku w oknie A;
Wybór User Constraints -> Edit Constraints File (Text) w oknie B;
Edycja pliku w oknie roboczym wg. Zasady (prosz
ę
si
ę
stara
ć
stosowa
ć
polsko-brzmi
ą
ce nazwy poł
ą
cze
ń
w celu wykluczenia pomyłek mog
ą
cych
powsta
ć
przez u
ż
ycie zarezerwowanej nazwy):
NET ”Net Name” LOC = “Nrpin“;
Dla przykładu z rysunku 3 plik ogranicze
ń
mo
ż
e wygl
ą
da
ć
nast
ę
puj
ą
co:
NET ”We1” LOC = ”U10”;
NET ”We2” LOC = ”V8”;
NET ”Wy1” LOC = ”R20”;
rys.3. Przykładowy projekt.
Jako fizyczne elementy wyj
ś
ciowe zaleca si
ę
dla celów laboratoryjnych wybiera
ć
dost
ę
pne na płycie uruchomieniowej diody LED, natomiast jako elementy wej
ś
ciowe
– przeł
ą
czniki lub klawisze. Nr. pinu matrycy do którego ka
ż
da dioda, klawisz czy
przeł
ą
cznik s
ą
podł
ą
czone opisane s
ą
zarówno bezpo
ś
rednio na płytce drukowanej
jak i w przewodniku u
ż
ytkownika płyty uruchomieniowej SPARTAN-3A (patrz
literatura).
6) Kompilacja
Kompilacja całego projektu jest mo
ż
liwa po zaznaczeniu w oknie A pliku
(modułu) oznaczonego jako główny (Top Module) oraz uruchomienia w oknie B
procesu - Generate Programming File. Plik oznaczony jako Top Module ma do
nazwy doł
ą
czony rysunek trzech małych kwadracików (patrz rys. 1, okno A).
Mo
ż
liwe jest zagnie
ż
d
ż
anie modułów. W tym celu po stworzeniu modułu 1 i
jego zaznaczeniu w oknie A mo
ż
na uruchomi
ć
w oknie B: Processes -> Design
Utilities -> Create Schematic Symbol. Nast
ę
pnie po stworzeniu modułu 2 (patrz
Synteza Układu, punkt 4) i ustawieniu go jako Top Module mo
ż
na w nim wykorzysta
ć
schemat z modułu 1 poprzez symbol dost
ę
pny z Symbols -> Categories (tam gdzie
symbole bramek i innych elementów). Nale
ż
y pami
ę
ta
ć
,
ż
e plik ogranicze
ń
*.ucf
odnosi si
ę
tylko do modułu głównego (Top Module). Wyj
ś
cia i wej
ś
cia wszystkich
podległych modułów traktowa
ć
nale
ż
y jako sygnały lokalne w obr
ę
bie modułu
głównego.
7) Symulacja projektu zgodnie z informacjami zawartymi w cz
ęś
ci SYMULACJA
PROJEKTU;
8) Programowanie matrycy;
Do zaprogramowania matrycy u
ż
ywana b
ę
dzie aplikacja iMPACT (po
wygenerowaniu pliku wynikowego syntezy nale
ż
y uruchomi
ć
proces Configure Target
Device / Manage Configuration Project – iMPACT. W dost
ę
pnych ła
ń
cuchu JTAG
zobaczymy poł
ą
czone 2 elementy: matryc
ę
XC3S700A oraz pami
ęć
PROM.
Programowa
ć
podczas laboratorium zaleca si
ę
tylko matryc
ę
(dla niej nale
ż
y
wskaza
ć
plik z rozszerzeniem .bit) natomiast dla pami
ę
ci PROM nie nale
ż
y
wskazywa
ć
ż
adnego pliku.
Symulacja projektu:
W celu zasymulowania układu konieczne jest wygenerowanie wektora pobudze
ń
(plik
z rozszerzeniem .tbw)
1) Dodanie pliku typu Test Bench Waveform;
Project -> New Source -> Test Bench Waveform;
nadanie nazwy (inna, ni
ż
nazwa pliku typu Schematic), zaznaczenie Add to
Project;
W oknie Initialize Timing nale
ż
y wybra
ć
typ układu (Clock Information) oraz
uzupełni
ć
odpowiednie parametry czasowe;
Plik wektora pobudze
ń
.tbw odnosi si
ę
zawsze do modułu głównego projektu
(Top Module).
Klikaj
ą
c w przebiegi wej
ś
ciowe (niebieskie pola) nale
ż
y ustali
ć
ich przebieg
oraz okre
ś
li
ć
czas trwania symulacji;
2) Wywołanie symulatora ISE Simulator;
W oknie A nawigatora projektów nale
ż
y zmieni
ć
Implementation na Behavioral
Simulation;
Zaznaczy
ć
plik *.tbw;
Uruchomi
ć
proces Xilinx ISE Simulator -> Simulate Behavioral Model
3) Simulation -> Restart -> Run All; (mo
ż
emy te
ż
skraca
ć
czas symulacji I
uruchamia
ć
Simulation -> Restart -> Run for Specified Time.
4) Simulation -> End simulation
Przebieg
ć
wiczenia:
Celem
ć
wiczenia jest wprowadzenie do programowania matryc FPGA poprzez
realizacj
ę
wybranych układów kombinacyjnych z wykorzystaniem narz
ę
dzi ISE firmy
Xilinx oraz Modelsim firmy Mentor Graphics.
Przygotowanie do laboratorium:
praktyczna znajomo
ść
sposobów projektowania układów kombinacyjnych;
umiej
ę
tno
ść
optymalizacji funkcji logicznych;
Przebieg
ć
wiczenia i sposób oceniania:
sprawdzanie przygotowania do zaj
ęć
(max 1 pkt);
zapoznanie ze
ś
rodowiskiem ISE;
zapoznanie ze sprz
ę
tem i jego wst
ę
pna konfiguracja;
symulacja i realizacja prostego układu kombinacyjnego (max 1 pkt);
symulacja i realizacja bardziej zaawansowanego układu kombinacyjnego
(max 2 pkt);
symulacja i realizacja stworzonego z min. 2 modułów układu kombinacyjnego
(max 1 pkt);
* podczas
ć
wiczenia ka
ż
da sekcja tworzy osobny protokół z przebiegu
ć
wiczenia
Protokół:
Protokół powinien zawiera
ć
:
nazwiska osób wykonuj
ą
cych
ć
wiczenie;
tytuł i numer
ć
wiczenia;
poprawny numer grupy i sekcji;
komentarze przedstawiaj
ą
ce post
ę
p w realizacji
ć
wiczenia oraz wszelkie
niezb
ę
dne do zrealizowania
ć
wiczenia notatki;
Literatura:
http://toolbox.xilinx.com/docsan/xilinx10/books/docs/qst/qst.pdf
- ISE 10.1 Quick Start Tutorial
http://direct.xilinx.com/direct/ise10_tutorials/ise10tut.pdf
- ISE In-Depth Tutorial
http://www.xilinx.com/support/documentation/boards_and_kits/ug334.pdf
- Spartan-3A/3AN FPGA Starter Kit Board User Guide
http://www.xilinx.com/support/documentation/boards_and_kits/s3astarter_schematic.
pdf
- Spartan-3A/3AN Starter Kit Board Schematic
http://www.xilinx.com/support/documentation/user_guides/ug331.pdf
- Spartan-3 Generation FPGA User Guide
Opracowanie: Mariusz Latos, 2009