Laboratorium przedmiotu Podstawy Techniki Cyfrowej
ć
w.3: Synchroniczne automaty sekwencyjne
Wprowadzenie:
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 oraz wewn
ę
trzna aplikacja ISE – StateCad, słu
żą
ca do projektowania układów
sekwencyjnych za pomoc
ą
grafu stanów.
Synteza układu opisanego za pomoc
ą
grafu stanów:
1) Stworzenie nowego projektu. File->New Project ...
Okre
ś
lenie nazwy projektu i lokacji na dysku;
Wybór Top-level Source type jako HDL (w przypadku projektu, gdzie modułem
nadrz
ę
dnym b
ę
dzie plik w j
ę
zyku Verilog *.v) lub Schematic (je
ż
eli modułem
nadrz
ę
dnym b
ę
dzie plik schematu) ;
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 State Diagram;
Project -> New Source -> State Diagram;
Nadanie nazwy, zaznaczenie Add to Project;
5) Edycja grafu;
Podczas edycji nale
ż
y stworzy
ć
kompletny graf automatu. Do rysowania
stanów nale
ż
y u
ż
ywa
ć
opcji Add -> State, do tworzenia przej
ść
mi
ę
dzy stanami opcji
Add -> Transition (patrz rysunek 2). Dost
ę
p do opcji dowolnego elementu grafu
nast
ę
puje poprzez dwukrotne klikni
ę
cie elementu.
Opcja View -> Show Control Points wy
ś
wietla punkty, za pomoc
ą
których
mo
ż
na definiowa
ć
kształt elementów grafu.
Edycja opcji ka
ż
dego stanu lub przej
ś
cia mi
ę
dzy stanami pozwala na dodanie
warunków dla wyj
ść
lub przej
ść
(opis w stylu j
ę
zyka VHDL):
Pole Outputs zawiera warunki dla wyj
ś
cia, np.
WY =
‘
1
’
Pole Condition zawiera warunki logiczne, np.
WE1 =
‘
0
’
or WE2 =
‘
0
’
Zaleca si
ę
dodanie sygnału inicjalizuj
ą
cego (Reset) wymuszaj
ą
cego przej
ś
cie
do okre
ś
lonego stanu (Opcja Add -> Reset). Powinien by
ć
wybrany reset
asynchroniczny.
6) Kompilacja;
Gotowy projekt maszyny stanu nie mo
ż
e by
ć
bezpo
ś
rednio przetwarzany i
konieczna jest jego kompilacja, a wcze
ś
niej konfiguracja:
Ustalanie j
ę
zyka wynikowego kompilacji: Options -> Configuration ->
Language -> Verilog; (patrz rys. 1)
Options -> Configuration -> State Assignment -> One -Hot
Options -> Configuration -> Optimize -> Speed;
Options -> Configuration -> Options -> Wszystko poza Minimize
Options -> Configuration -> Language Vendor-> XST
Wła
ś
ciwa kompilacja: Options -> Compile;
rys.1. Konfiguracja.
W efekcie otrzymujemy plik w j
ę
zyku Verilog (*.v), który nale
ż
y doda
ć
do
projektu (W edytorze Project Navigator opcja Project -> Add Source). W przypadku
problemów zaleca si
ę
usun
ąć
z projektu plik grafu (*.dia), doda
ć
plik w j
ę
zyku Verilog
ponownie a nast
ę
pnie przywróci
ć
plik *.dia.
Nale
ż
y pami
ę
ta
ć
, aby przypisa
ć
atrybut Top Module (Right Mouse Button ->
Set as Top Module) wła
ś
ciwemu plikowi najwy
ż
szemu w hierarchi (patrz instrukcja
ć
w. 1).
Podgl
ą
daj
ą
c zawarto
ść
dowolnego pliku *.v nale
ż
y zauwa
ż
y
ć
deklaracje
zmiennych wej
ś
ciowych i wyj
ś
ciowych dla tego modułu. W przypadku prostego
projektu przedstawionego na rys. 2 oprócz zmiennych WE i WY, zauwa
ż
y
ć
mo
ż
na
zmienne CLK (Zegar) i RESET.
Plik ogranicze
ń
*.ucf (patrz instrukcja
ć
w. 1) nale
ż
y tworzy
ć
tylko dla modułu
oznaczonego jako Top Module.
Je
ż
eli jako zegar u
ż
ywany jest wewn
ę
trzny sygnał prostok
ą
tny o cz
ę
stotliwo
ś
ci
50 MHz (w praktyce przy tak du
ż
ej cz
ę
stotliwo
ś
ci zegara pozwala to na traktowanie
układu tak, jakby był on asynchroniczny) to nale
ż
y pami
ę
ta
ć
,
ż
e dost
ę
pny jest on na
pinie E12 (patrz instrukcja
ć
w. 1 -> Tworzenie plików ogranicze
ń
*.ucf).
Mo
ż
na oczywi
ś
cie u
ż
ywa
ć
wewn
ę
trznego sygnału taktuj
ą
cego ze zmniejszon
ą
cz
ę
stotliwo
ś
ci
ą
poprzez np. Digital Clock Manager (DCM_SP) dost
ę
pny np. z edytora
schematów (Symbols -> Categories -> Symbols -> DCM_SP).
rys.2. Przykładowy projekt.
Je
ż
eli zegar ma by
ć
dost
ę
pny z zewn
ą
trz np. za pomoc
ą
klawisza to
najcz
ęś
ciej b
ę
dzie trzeba uzyskany kod w j
ę
zyku Verilog traktowa
ć
jako moduł
podrz
ę
dny (trzeba pami
ę
ta
ć
o stworzeniu jego symbolu przed u
ż
yciem w module
głównym – po zaznaczeniu wybieramy Processes -> Design Utilities -> Create
Schematic Symbol). Moduł główny b
ę
dzie modułem schematu i w nim ustalone
zostan
ą
globalne we/wy, które zostan
ą
u
ż
yte przy tworzeniu pliku ogranicze
ń
*.ucf
(patrz instrukcja do
ć
wiczenia 1). W pliku schematu sygnał zegara powinien wtedy
zosta
ć
doprowadzony do układu poprzez bufor IBUFG, dost
ę
pny w bibliotece symboli
logicznych przy edycji modułu schematu (Symbols -> Categories -> Symbols ->
IBUFG).
Zawsze przed ko
ń
cow
ą
kompilacj
ą
projektu nale
ż
y sprawdzi
ć
poprawno
ść
hierarchicznego usytuowania plików projektu oraz zale
ż
no
ś
ci mi
ę
dzy nimi
(Implementation -> Sources) !!
Realizacja projektu:
Wszystkie pozostałe etapy realizacji projektu, takie jak tworzenie wynikowego
pliku do zaprogramowania matrycy (je
ż
eli w trakcie kompilacji nie pojawi si
ę
jawny
bł
ą
d to ostrze
ż
enia mo
ż
na zignorowa
ć
), przyporz
ą
dkowanie sygnałów WE/WY do
pinów matrycy, konfiguracja płyty uruchomieniowej, symulacja itp. wykonywa
ć
nale
ż
y
identycznie jak podczas laboratorium nr. 1 (Układy kombinacyjne).
Przebieg
ć
wiczenia:
Celem
ć
wiczenia jest zapoznanie z metodami projektowania układów
sekwencyjnych poprzez realizacj
ę
w/w układów z u
ż
yciem grafu automatu w aplikacji
StateCAD.
Przygotowanie do laboratorium:
praktyczna znajomo
ść
sposobów projektowania układów sekwencyjnych;
praktyczna znajomo
ść
obsługi
ś
rodowiska ISE (
ć
w. 1);
Przebieg
ć
wiczenia i sposób oceniania:
sprawdzanie przygotowania do zaj
ęć
(max 1 pkt);
konfiguracja sprz
ę
tu;
zapoznanie ze sposobem syntezy automatu sekwencyjnego w aplikacji
StateCAD;
analiza postawionych zadania i stworzenie grafów automatów sekwencyjnych;
przeniesienie prostego projektu do aplikacji StateCAD i translacja na posta
ć
modułu Verilog (max 1 pkt);
symulacja w/w projektu (z wewn
ę
trznym zegarem taktuj
ą
cym) w aplikacji ISE
Simulator i realizacja na FPGA (max 1 pkt);
Symulacja i realizacja bardziej zaawansowanego automatu sekwencyjnego z
sygnałem zegarem sterowanym przez u
ż
ytkownika (max 2 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://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.actel.com/documents/modelsim_tutorial_ug.pdf
http://users.ece.gatech.edu/~leehs/ECE3055/homework/modelsim_tut.pdf
- StateCAD Tutorials
http://toolbox.xilinx.com/docsan/xilinx10/help/iseguide/mergedProjects/state/state.htm
Opracowanie: Mariusz Latos, 2009