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
3775744.014.png 3775744.015.png 3775744.016.png 3775744.017.png 3775744.001.png 3775744.002.png 3775744.003.png 3775744.004.png 3775744.005.png 3775744.006.png 3775744.007.png 3775744.008.png 3775744.009.png 3775744.010.png 3775744.011.png 3775744.012.png 3775744.013.png
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ć.
Zgłoś jeśli naruszono regulamin