LiveDesign w praktyce, cz.2.pdf
(
648 KB
)
Pobierz
ep_04_093-095_livedesign_cz2.indd
K U R S
LiveDesign
w praktyce,
część 2
W poprzednim numerze EP wprowadziliśmy Czytelników do
projektowania układów programowalnych za pomocą systemu
DXP 2004 firmy Altium. Mając zainstalowane narzędzia i
środowisko LiveDesign gotowe do pracy, czas zabrać się za
pierwszy projekt na układzie FPGA.
Zanim utworzymy pierwszy do-
kument projektu, warto zapoznać
się z diagramem (
rys.
7
), który po-
kazuje proces projektowania układu
FPGA, za pomocą narzędzi wcho-
dzących w skład systemu DXP 2004
firmy Altium. Diagram przedsta-
wia dość szeroki obszar projekto-
wania, ponieważ obok samego pro-
jektu warstwy sprzętowej (
*.PrjFpg
),
obejmuje również tworzenie opro-
gramowania dla systemu wbudowa-
nego (
*.PrjEmb
). To przypadek ogól-
ny, który ma miejsce podczas projek-
towania systemu mikroprocesorowe-
go, gdzie obok projektu układu lo-
gicznego (sprzęt), tworzymy oprogra-
mowanie dla mikroprocesora. Choć
obie części projektu mogą powsta-
wać osobno, to system DXP 2004
integruje tworzenie warstwy sprzę-
towej i programowej, co znakomicie
ułatwia uruchamianie układu, a po-
nadto pozwala na równoległe prowa-
dzenie projektu w obu wymiarach.
Trzeba pamiętać, że projektowanie
prawdziwego urządzenia nie kończy
się na układzie programowalnym.
Układ FPGA musi zostać osadzony
na płycie drukowanej, którą może-
my tworzyć niezależnie, ale korzy-
stając z narzędzi do PCB, wchodzą-
cych w skład systemu DXP 2004 fir-
my Altium, również w tym wymia-
rze mamy pełną integrację pomiędzy
projektem FPGA i PCB.
Kurs zaczynamy od prostego pro-
jektu układu licznika Johnsona, któ-
rego schemat pokazujemy na
rys.
8
.
Dzisiaj skupimy się na początkowym
etapie projektowania, czyli tworzeniu
schematów z wykorzystaniem uniwer-
salnych elementów bibliotecznych,
które pozwolą nam na implementa-
cję projektu w dowolnym układzie
FPGA. Do realizacji tej części pro-
jektu wystarczy licencja Circuit Stu-
dio – najprostszy produkt z rodziny
DXP 2004.
W kolejnym odcinku pokażemy,
jak uruchomić i przetestować przy-
kładowy projekt na płycie urucho-
mieniowej z układem programowal-
nym. Pokażemy również przykład
wykorzystania opisu w języku VHDL.
W dalszych częściach przyjdzie czas
na systemy mikroprocesorowe (
SoC
)
i tworzenie oprogramowania dla
Rys. 7. Diagram ilustrujący cykl projektowania układu FPGA
nich oraz integrację projektu FPGA z
PCB. Do realizacji tak kompleksowe-
go zakresu projektu, niezbędna jest
licencja Nexar-Protel, która obejmu-
je cały zakres funkcjonalny systemu
DXP2004.
Przykładowy projekt licznika John-
sona znajduje się w plikach dostarcza-
nych wraz z oprogramowaniem w ka-
talogu
\Altium2004\Examples\Tutorials\
Getting Started with FPGA Design
.
Zaczynamy…
… od utworzenia projektu. Nie-
zmienną zasadą w DXP jest, nieza-
leżnie od rodzaju projektu, że pracę
rozpoczynamy od utworzenia pliku
projektu. Plik projektu łączy wszyst-
kie dokumenty źródłowe i wyjściowe
oraz część informacji konfiguracyj-
nych. W przypadku układu progra-
mowalnego, musimy utworzyć Projekt
FPGA, który charakteryzuje się roz-
Elektronika Praktyczna 4/2005
93
K U R S
Rys. 8. Schemat licznika Johnsona projektowanego za pomocą DXP2004
szerzeniem nazwy
*.PrjFpg
. DXP2004
obsługuje jeszcze kilka innych typów
projektu, w tym PCB z rozszerze-
niem
*.PrjPcb
, czy projekt oprogra-
mowania wbudowanego -
*.PrjEmb
,
do których wrócimy w przyszłości.
Uruchamiamy środowisko DXP
2004 i tworzymy nowy projekt, wybie-
rając z menu
File>New>Project>FPGA
Project
lub klikając opcję
Blank Project
(FPGA)
w sekcji
New
panelu
Files
. W
panelu
Projects
, pokazanym na
rys.
9
,
widać nowy plik projektu.
Zmieniamy nazwę utworzonego
właśnie projektu, wybierając z menu
File>Save Project As
. Wybieramy loka-
lizację na dysku, gdzie ma zostać za-
pisany nasz plik, wpisujemy jego na-
zwę np
. Licznik_Johnsona.PrjFpg
i kli-
kamy przycisk
Save
. Należy unikać
spacji w nazwach plików, ponieważ
może to powodować problemy w dal-
szych etapach procesu projektowania.
Spacje w nazwach plików najlepiej
zastępować znakiem podkreślenia.
ty oraz pliki w języku opisu sprzę-
tu (HDL). System DXP2004 obsługu-
je język VHDL, a od wersji Service
Pack 2, również język Verilog. Mo-
żemy mieszać schematy z kodem
HDL, zależnie od potrzeb, jednak
schemat zawsze jest najwyższym ele-
mentem struktury w projekcie FPGA.
Części projektu opisane w języku
HDL, reprezentowane są przez sym-
bole arkusza na schemacie, podob-
nie jak klasyczne arkusze podrzędne
w projekcie hierarchicznym. W na-
szym przykładzie cały projekt two-
rzymy w formie jednego schematu,
natomiast później uzupełnimy go o
część spowalniającą działanie liczni-
ka, aby można było wizualnie zaob-
serwować jego efekt działania w po-
staci przemieszczającego się światła
na linijce LED na płycie uruchomie-
niowej. Część spowalniająca zostanie
zrealizowana raz w formie schema-
tu, a następnie w języku VHDL.
Tworzymy nowy dokument sche-
matu dla licznika Johnsona, wybie-
rając z menu
File>New>Schematic
lub klikając opcję
Schematic Sheet
w
sekcji
New
panelu
Files
. Nowy plik
schematu, nazwany
Sheet1.SchDoc
,
pojawi się w panelu
Project
. Zmie-
niamy nazwę nowego schematu, wy-
bierając z menu
File>Save As
. Wy-
bieramy lokalizację na dysku, gdzie
ma zostać zapisany plik, wpisujemy
jego nazwę np.
Licznik_Johnsona.
SchDoc
i klikamy przycisk
Save
.
Rys. 10. Widok panelu
Libraries
ric mogą być stosowane bez wzglę-
du na typ układu FPGA, na któ-
rej zaimplementujemy nasz projekt.
Dzięki temu projekt jest przenośny,
a wybór konkretnego układu FPGA
możemy zostawić na koniec, a na-
wet przygotować kilka konfiguracji,
do implementacji na różne platfor-
my. Wraz z DXP 2004 otrzymujemy
również inne biblioteki, dedykowane
dla konkretnych układów, które znaj-
dziemy w podkatalogach pogrupowa-
nych wg nazw producentów w ka-
talogu
\Program Files\Altium2004\Li-
brary
. Wspomniane biblioteki mają
nazwy zbudowane według wzorca
(
*FPGA.IntLib
) i są przeznaczone do
wykorzystania w projektach, w któ-
rych z góry zakładamy producenta i/
lub typ układu programowalnego. Ta-
Tworzymy schematy…
…które będą dokumentami źró-
dłowymi w naszym projekcie. Pro-
jekt FPGA bazuje na dwóch typach
dokumentów źródłowych – schema-
Jak kupić zestaw LiveDesign
Evaluation?
Zestaw ewaluacyjny LiveDesign jest dostępny za
pośrednictwem sieci dystrybucji firmy Altium na całym
świecie. Cena zestawu w Europie wynosi 99 EUR, dla
wersji z płytą ewaluacyjną z układem Altera lub Xilinx
oraz 49 EUR dla wersji z interfejsem JTAG, który
umożliwia podłączenie obcej płyty uruchomieniowej
do systemu DXP 2004. W obu przypadkach należy
doliczyć podatek VAT i koszty przesyłki.
Zestaw ewaluacyjny LiveDesign można zamówić
wypełniając formularz na stronie
http://www.altium.
com/evaluation/
lub bezpośrednio kontaktując się z
firmą Evatronix – dane kontaktowe na
http://www.
evatronix.com.pl/kontakt/
. Dostawa trwa około tygodnia
od potwierdzenia zamówienia i uregulowania należności.
Rys. 9. Panel
Project
Układamy elementy…
… na nowym arkuszu schematu,
korzystając z podstawowej bibliote-
ki elementów, która znajduje się w
katalogu
\Program Files\Altium2004\Li-
brary\FPGA\FPGA generic.IntLib
. Ta bi-
blioteka jest zainstalowana domyślnie
i dostępna w panelu
Libraries
, wi-
docznym na
rys. 10
.
Elementy z biblioteki FPGA Gene-
94
Elektronika Praktyczna 4/2005
K U R S
kie projekty mają ograniczoną prze-
noszalność, dlatego zaleca się ko-
rzystanie z tych bibliotek tylko w
uzasadnionych sytuacjach.
Nasz przykładowy licznik John-
sona składa się z kilku elemen-
tów. Wybieramy z rozwijanej li-
sty w panelu
Libraries
bibliote-
kę
FPGA Generic.IntLib
. Następnie
szukamy elementu
SR8CLEDB
, naj-
prościej wpisując część jego na-
zwy w okienku maski, poniżej
nazwy biblioteki. Wybieramy ele-
ment z listy i klikamy przycisk
Place SR8CLEDB
lub przeciągamy
myszką wybrany element na ar-
kusz schematu. Kładziemy wybra-
ny element we właściwej części ar-
kusza, nie zwracając uwagi na usta-
wienia prawidłowej nazwy elemen-
tu. Oznaczenia elementów uzupełni-
my później.
W naszym układzie musimy zasto-
sować jeszcze element 8-bitowej ma-
istrali wejściowej (
J8B_8S
)
, sześć in-
werterów (
INV
), jedną bramkę OR
(
OR2N2S
) i dwa przerzutniki (
FJKC
).
Elementy wyszukujemy i umieszcza-
my w podobny sposób jak wcześniej.
Potrzebujemy jeszcze kilku por-
Rys. 11. Widok okna dialogowego
PowerPort
ty zasilania, które dodajemy z
menu
Place>Power Port
lub kli-
kając ikonę
GND
na pasku narzę-
dziowym
Wiring
. Następnie przy
pomocy klawisza
TAB
uzyskuje-
my dostęp do okna dialogowego
Power Port
, żeby zmienić wygląd
portu na symbol masy i upew-
nić się, że ma ustawioną etykietę
GND, jak na
rys. 11
. Porty masy
umieszczamy w pobliżu wypro-
wadzenia CLR dolnego przerzutni-
ka
FJKC
oraz obok wyprowadzenia
CLR elementu
SR8CLEDB
. Ponadto,
podłączamy symbol masy z etykie-
tą
GNDBUS[..]
do wyprowadzenia
szyny
D[7..0]
układu
SR8CLEDB
.
Przygotowany arkusz schema-
tu zawiera już wszystkie elemen-
ty układu. Teraz pozostaje poprowa-
dzić połączenia w taki sposób, aby
otrzymać obwód wyglądający, jak na
schemacie z rys. 8. Niecierpliwym
Czytelnikom polecam samodzielne
eksperymentowanie, a wszystkich
zapraszam za miesiąc na kolejną
część cyklu, w której dokończymy
nasz projekt i przejdziemy do etapu
konfiguracji i uruchamiania układu.
Grzegorz Witek, Evatronix
tów, które zapewnią połączenie z
elementami na płycie uruchomienio-
wej. Pierwszą wersję projektu przy-
gotujemy dla płyty NanoBoard, więc
potrzebne elementy znajdziemy w
bibliotece
FPGA NanoBoard Port-Plu-
gin.IntLib
,
która jest również domyśl-
nie zainstalowana w panelu
Libra-
ries
. Na koniec nadajemy numerację
elementów, korzystając z poleceń w
menu
Tools>Quiet Annotate
lub
To-
ols>Force Annotate All
. Oznaczenia
zostaną naniesione automatycznie.
Pozostaje jeszcze umieścić por-
Elektronika Praktyczna 4/2005
95
Plik z chomika:
jacek_040
Inne pliki z tego folderu:
LiveDesign w praktyce, cz.1.pdf
(811 KB)
LiveDesign w praktyce, cz.2.pdf
(648 KB)
LiveDesign w praktyce, cz.10.pdf
(267 KB)
LiveDesign w praktyce, cz.3.pdf
(260 KB)
LiveDesign w praktyce, cz.5.pdf
(562 KB)
Inne foldery tego chomika:
Alfanumeryczne wyświetlacze LCD (zxpro)
ARDUINO
arduino en
Arduino(1)
arduino(2)
Zgłoś jeśli
naruszono regulamin