fpga_art_3.pdf
(
2855 KB
)
Pobierz
3775744 UNPDF
Instrukcja laboratoryjna i materiały dydaktyczne do przedmiotów
Układy FPGA
oraz
Układy cyfrowe II
Jacek Majewski
ICT, PWr
Wrocław, 26 .09.2006
Jacek Majewski
*
ICT, PWr
Układy FPGA w nauczaniu układów cyfrowych
Opracowanie jest próbą ujęcia problemów występujących w procesie nauczania układów
cyfrowych z zastosowaniem układów FPGA. Jest ono wynikiem ponad 3 letniej praktyki w
nauczaniu układów FPGA i prowadzeniu laboratoriów. Opracowanie omawia
architekturę taniego systemu umożliwiającego prowadzenie eksperymentów z układami
FPGA. Zestaw ten opracowany został w Instytucie Cybernetyki Technicznej PWr.
Przedstawiono także listę zrealizowanych tematów wraz z omówieniem problemów
występujących przy ich realizacji. Opracowanie może ułatwić wprowadzenie układów
FPGA do praktyki nauczania i pozawala przekonać się o tym, że można to uczynić przy
niewielkich nakładach finansowych. Ten niewielki koszt urządzeń pozwolił wprowadzić
jeszcze jedną modyfikację do procesu nauczani: studenci mają możliwość zmontowania
układu demonstracyjnego FPGA do pracy nad własnym projektem w domu
1
.
1 Wstęp
Wprowadzenie układów FPGA
2
do procesu nauczania
Układów cyfrowych
dało
niesamowite możliwości tworzenia dużych, zaawansowanych projektów z zastosowaniem
układów cyfrowych. Realizując projekty studenci nie są już ograniczeni liczbą bramek
logicznych, przerzutników czy problemami połączeń elektrycznych. Wystarczy projekt
skompilować i załadować do układu FPGA. Układy FPGA konfigurowalne za pomocą
wewnętrznej pamięci RAM są idealnym układem do eksperymentowania: nie mają
ograniczenia co do liczby programowań układu FPGA. Proces poprawiania projektu i
jego ponownego uruchamiania można prowadzić bez dowolną liczbę razy.
W Instytucie Cybernetyki liczna studentów korzystających z zajęć laboratoryjno-
projektowych z
Układów cyfrowych
to ok. 300 studentów studiów dziennych,
wieczorowych i zaocznych. Zajęcia prowadzone są w wymiarze ok. 2 godz. tygodniowo.
Jest to niewystarczające dla przygotowania sensownych projektów układów cyfrowych.
Stąd pojawił się pomysł aby umożliwić studentom samodzielne wykonanie zestawu
dydaktycznego do pracy do domu. Stąd też przy opracowaniu układu dydaktycznego
położono szczególny nacisk na koszt układu. Łączny koszt materiałowy jednego zestawu
dydaktycznego to ok.120 zł.
2 Wybórukładu FPGA.
Ze względu na istniejące tradycje i zaszłości w procesie dydaktycznym Instytutu
Cybernetyki Technicznej jako serie układów FPGA do nauczani wybrano układy firmy
Xilinx
. Ważną przesłanką był ponadto fakt, że firma ta oferuje bezpłatne narzędzia
projektowe dostępne pod nazwą
WebPack
. Niezwykle ważną rzeczą jest aby studenci
mieli dostęp do legalnego, bezpłatnego oprogramowania narzędziowego w domu.
Podejście takie w którym uczelnia dysponuje drogim sprzętem i oprogramowaniem
1
Osoby zainteresowane samodzielnym montażem układu
FPGA
proszone są o kontakt z autorem artykułu.
2
Field Programmable Gata Array
VCCO
GND
V3.3V
VCCO
VCCO
POWER
OUT
GND
IN
V33
JTAG
J_LEFT
GND
1
2
TMS
P4
P6
P8
P10
VCCINT
VCCO
J_TOP
P3
P5
P7
P9
VCCO
3
4
C1
180
5
6
7
8
GND
VCCO
VCCINT
GND
VCCINT
GND
9
10
GND
P13
P15
P17
P19
P21
P23
P25
11
12
VCC
110
13
14
P16
P18
P20
P22
15
16
GND
17
18
19
20
U4
GND
21
22
23
24
GND
J_RIGHT
25
26
GND
26
25
P75
P74
P73
24
23
P72
P71
22
21
P70
P69
20
19
P68
P67
18
17
P66
P65
16
15
1
75
P75
GND
GND
GND
CCLK
14
13
TMS
P3
P4
P5
P6
P7
P8
P9
P10
2
74
P74
P62
TMS
IO/DOUT/BUSY
12
11
3
73
P73
P60
P59
IO
IO/DIN/D0
10
9
4
72
P72
P58
P57
IO
IO
8
7
5
71
P71
P56
P55
IO
IO
6
5
6
70
P70
P54
P53
IO
IO/D1
4
3
7
69
P69
P52
P51
IO
IO/D2
2
1
8
68
P68
IO
IO
9
67
P67
IO
IO
10
66
P66
IO
IO/D3
11
65
P65
GND
GND
GND
IO
12
64
VCCO
VCCO
GND
P13
13
63
IO
VCCO
VCCO
14
62
P62
VCCINT
VCCINT
IO
P15
P16
P17
15
61
IO
VCCINT
VCCINT
16
60
P60
IO
IO/D4
17
59
P59
POWER
VCCO
IO
IO
18
58
P58
IO
IO
P19
P20
P21
P22
P23
19
57
P57
R5
R6
IO
IO/D5
20
56
P56
IO
IO/D6
21
55
P55
IO
IO
22
54
P54
IO
IO
XC2S30/XC2S50 VQ100
23
M1
IO/D7
53
P53
LED1
LED2
24
52
P52
GND
GND
IO/INIT
P25
25
51
P51
M0
PROGRAM
GND
TEST
VCCINT
D1
2.5V
TEST
INPUT_POW
POWER
OUT
GND
IN
V25
VCCINT
GND
VCCINT
GND
220
C10
C11
J_BOTT
VCCINT
VCCO
VCCO
220
VCCO
GND
GND
VCCO
VCCINT
GND
C2
C3
C4
C5
C6
C7
C8
C9
GND
rys.1 Moduł FPGA XC2S30/50
VCCO
GND
GND
D:\prot_prj\fpga4\FPGA3_1.DDB - Documents\FPGA5.Sch
narzędziowym dostępnym jedynie na zajęciach, przy istniejącej liczbie studentów nie jest
dobrym rozwiązaniem w odniesieniu do układów
FPGA
.
Do prowadzenia zajęć projektowych potrzebne jest określenie zadania projektowego.
Jednym z prostszych sposobów jest formułowanie zadań projektowych odnoszących się
do sterowania elementami istniejących w laboratorium komputerów serii
IBM PC
. Tak
więc można sterować klawiaturą, odbierać dane z układu myszy komputerowej, sterować
monitorem
VGA
itd. Za względu na możliwości sterownia istniejącymi już w
laboratorium układami zewnętrznymi zdecydowano się wybrać serię układów FPGA typu
Spartan2.
Tylko te układy dają możliwość współpracy z zewnętrznymi układami
zasilanymi napięciem 5V. Zdecydowano się wybrać układy w obudowach typu
VQ100
.
Jest to kompromis pomiędzy możliwościami układu i ceną. Przy 100 wyprowadzeniach
obudowy
VQ100
efektywna liczba uniwersalnych linii I/O
3
do sterowania to ok. 70. Jest
to wystarczająca liczba do sterowania nawet dość złożonych układów jak przykładowo
pamięci równoległe o dużej pojemności. Obudowy
VQ100
oferują możliwość użycia
układów
XC2S30
i
XC2S50
. Końcowa liczba tych oznaczeń podaje wewnętrzną liczbę
branek w układzie. W układzie
XC2S30
liczba bramek to 30 tysięcy. Aby zdać sobie
sprawę z możliwości układu o takiej liczbie bramek w tym miejscy należy przypomnieć,
że dla zbudowania procesora serii
MC68000
potrzeba było firmie
Motorola
6800
tranzystorów. W układzie
XC2S30
procesor 8- bitowy mieści się bez żadnych przeszkód
co daje wyobrażenie o potencjalnej złożoności studenckich projektów. Wybór małej
obudowy
VQ100
4
podyktowany był również poborem prądu. Zastosowane stabilizatory
typu
linear low drop LF33
i
LF 25
zapewniają obciążalność ok. 1.5A dla napięć 2.5V i
3.3V odpowiednio.
1. Moduł FPGA XC2S30/50
Schemat zestawu modułu laboratoryjnego
FPGA XC2S30/50
przedstawiono na rys. 1.
Zawiera on układ
Sparta2 XC2S30
lub
XC2S50
oraz układy stabilizacji napięcia
LF33
i
LF 25
. Wyprowadzenia z układu
Sparta2
dostępne są z czterech stron układu na złączach
J_Left, J_right, J_top
i
J_bot.
Zastosowane złącza szpilkowe, dwustronne umożliwiają
rozbudowę układu FPGA metodą podobną do stosowanej w komputerach ze złączem
PC104
: kolejne piętra rozbudowy można dodawać do dolnej a także górnej strony
modułu. Złącze
Jp1
umożliwia podłączenie układu programowania o nazwie
Parallel
Cable3
. Schemat tego układu programatora dostępny jest w Internecie. Programowanie
układu Spartan odbywa się poprzez złącze drukarki. Koszt materiału do wykonania
układu programującego typu
Parallel Cable
3 to ok. 8 zł. Jedyną rzeczą na którą należy
zwrócić uwagę to fakt aby dobierając diody zabezpieczające przed odwrotną
polaryzacją napięcia wybrać diody
Shotky’iego
. Spadek napięcia na takiej diodzie to ok.
0.2V w miejsce 0.7V dla diod krzemowych. Wybrane układy buforów musza być serii
74HC125
bo tylko te układy działać będą zarówno przy napięciu 5V jak i 3V. Inne serie
jak
AHC, C
itd. nie dają możliwości zasilania różnymi napięciami. Na schemacie
widoczne są dwie diody LED: jedna z nich sygnalizuje obecność zasilania, druga jest
uniwersalnym próbnikiem logicznym, który może być wykorzystany w dowolny sposób.
Przedstawiony moduł jest umieszczany na uniwersalnym obwodzie drukowanym, który
umożliwia indywidualne zmontowanie dowolnego hardware’u, dla realizowanego
projektu. Dostęp do uniwersalnych wyprowadzeń układu FPGA odbywa poprzez złącza
J_Left, J_right, J_top
i
J_bot.
rys. 1 Moduł
FPGA XC2S30/50
3
Input/Ouput
4
Dla porównania obudowa VQ208 ma cztery razy większą powierchnię od układu VQ100.
3 Płyta podstawowawa
Moduł
FPGA
umieszczany jest na płycie podstawowej. Płyta ta to uniwersalny obwód
drukowany. Minimalnie płyta ta zawiera (rys.2) stabilizator napięcia
5V
, oscylator
50MHz
i generator wolnych przebiegów, zrealizowany za pomocą układu
NE555
.
Stabilizator napięcia
5V
jest niezbędnydla zasilania układów zewnętrznych
współpracujących z układem
FPGA
. Ponieważ układy
Spartan2
nie zawierają
wewnętrznego oscylatora dodano je na zewnątrz. w postaci dwóch układów. Pierwszy z
nich
NE555
generuje przebiegi o niskiej częstotliwości co ułatwia uruchomianie i
realizację projektów nie wymagających znacznych szybkości. Drugi z nich generuje
precyzyjne, szybkie przebiegi cyfrowe 50MHz. Dowolne przebiegi cyfrowe mogą być
uzyskane z tego generatora przez zastosowanie gotowych podzielników częstotliwości z
bibliotek typu
core generator
.
rys. 2 Płyta główna
FPGA XC2S30/50 – podstawowe układy
4 Metoda realizacji projektu
W trakcie realizacji projektu powstaje dylemat co do sposobu zapisu projektu. Jest nim
wybór pomiędzy zapisem projektu w postaci schemat i zapisem w języku
VHDL
. Każda
z metod ma swoje wady i zalety. Za schematem przemawia podejście dydaktyczne.
Widać w mim sposób połączeń pomiędzy blokami. Poznanie elementów z bibliotek ich
systematyka w postaci podziału na liczniki, rejestry, układy logiczne, arytmetyczne itd.
jest niezwykle dydaktyczna. Niestety w zakresie języka schematów w firmie
Xilinx
panuje nieprawdopodobny bałagan. Ciągle zmieniane są wersje, wersje nowsze nie pasują
do starszych, brak kompatybilności pomiędzy modułami z bibliotek itd. Przygotowanie
złażonego projektu w postaci schematu jest niezwykle pracochłonne.
Język
VHDL
oferuje znacznie lepsze możliwości przy przenoszeniu projektu. Wśród
studentów powstaje jednak złudne przekonanie że skoro znają język
C
lub
Pascal
to i
poradzą sobie z językiem
VHDL
. Obserwuje się tendencje do tego, że zamiast przeczytać
dobrą książkę dotyczącą ęzyka
VHDL
studenci usiłują „odgadnąć” metodą
eksperymentów działanie projektu. W złożonym projekcie, nawet takim który działa,
prowadzący nie ma żadnych szans aby zorientować się jaka jest struktura i jakie
zastosowano rozwiązania.
W dotychczasowej praktyce stosuję z powadzeniem rozwiązanie pośrednie. Główny
projekt jest rysowany w postaci schematu. Schemat ten zawiera moduły napisane w
języku
VHDL
. Każdy z modułów musi mieć wyraźne przeznaczenie, funkcję i strukturę
co widać na schemacie.
5 Przykłady zrealizowanych projektów
Poniżej zestawiono przykłady zrealizowanych do tej pory projektów. Aby umożliwić
realizację projektu za każdym razem należy dostarczać nie tylko temat projektu, ale i
prosty sposób sprawdzenia sprzętu niezbędnego do jego realizacji w postaci prostego
testu. Ten aspekt zostanie przedstawiony każdorazowo przy omawianiu tematu projektu.
W dużym stopniu zależy od niego sukces lub klęska w trakcie realizowania projektu.
Chodzi o to aby uświadomić prowadzącym zajęcia że nie wystarczy wymyślić genialny
projekt ale trzeba podać do niego prosty przepis (test) jak sprawdzić urządzenie którym
projekt ma sterować.
Plik z chomika:
Witek63
Inne pliki z tego folderu:
picoblaze.ppt
(2934 KB)
Język VHDL.pdf
(395 KB)
Introduction to CPLD and FPGA Design.PDF
(1008 KB)
PicoBlaze. Mikroprocesor w FPGA - Marcin Nowakowski.zip
(14311 KB)
fpga Ac.doc
(1178 KB)
Inne foldery tego chomika:
74xxx
ATAPI
Biblioteki Eagle
Dyskretne przekształcenie Fouriera
Ethernet i AVR
Zgłoś jeśli
naruszono regulamin