uklady fpga w przykladach 04


K U R S
Układy FPGA w przykładach,
część 4
wyprowadzenie
Jest to ostatnia  teoretyczna część kursu. Za miesiąc zaczynamy
FPGA.
prezentację przykładów aplikacji na FPGA.
Zastosowa-
W tym odcinku cyklu skupiamy się na trzech istotnych zasobach
nie w projektach bloków DCM jest
układów Spartan 3: syntezerach DCM, sprzętowych multiplikatorach
możliwe na dwa sposoby: za po-
mocą  dołączenia DCM z wyko-
i wbudowanej w struktury układów, konfigurowalnej pamięci SRAM.
rzystaniem opisu HDL (przykład
opisu w języku VHDL pokazano na
DCM (ich liczba zale- list. 4), lub  w przypadku korzy-
ży zasobów logicznych stania z opisu za pomocą schema-
FPGA, jak to przed- tu  dzięki wykorzystaniu elementu
stawiono w tab. 3 na bibliotecznego o nazwie DCM, któ-
str. 94 w EP11/2006). ry znajduje się w kategorii Gene-
Pozwalają one nie tyl- ral (rys. 21). W przypadku opisu
ko skompensować róż- pokazanego na list. 4 parametry-
nice faz (wynikające zacja (konfiguracja) DCM odbywa
z opóznień propagacji) się za pomocą wpisania odpowied-
sygnałów zegarowych nich wartościach, których możliwe
w (fizycznie) różnych warianty zaznaczono pogrubioną
m i e j s c a c h u k ł a d u , czcionką w komentarzach. Nieco
można je także wyko- wygodniej przebiega konfiguracja
rzystać do syntezowa- DCM w edytorze schematów: dwu-
nia (w tym podziału krotne kliknięcie w symbol graficz-
częstotliwości sygna- ny DCM otwiera okno edycyjne,
łu zewnętrznego) we- które pokazano na rys. 22. Za jego
Rys. 18. Zbocza sygnałów zegarowych występują wnętrznych sygnałów pomocą można wygodnie, w  win-
w różnych miejscach FPGA w różnym czasie, co zegarowych. dowsowym stylu sparametryzować
może spowodować nieprawidłowe działanie układu Na rys. 19 poka- i skonfigurować DCM, bez koniecz-
zano schemat bloko- ności modyfikowania opisu HDL.
Generatory wewnętrznych wy DCM (Digital Clock Manager).
sygnałów zegarowych Składa się on z 4 bloków: synte- FPGA  co trzeba o nich wiedzieć  tip #8
Możliwości konfiguracji DCM są bardzo
 DCM zera częstotliwości DFS, pętli DLL,
duże i ich dokładne opisanie wychodzi poza
Najpoważniejszym kłopotem dla programowanego przesuwnika fazy
ramy kursu. Czytelników zainteresowanych
konstruktorów stosujących w swo- (Phase Shifter) oraz zespołu logiki
poznaniem szczegółów zachęcamy do
ich projektach układy FPGA jest Status Logic. zapoznania się z notą katalogową XAPP462
firmy Xilinx, w której DCM opisano bardzo
odpowiednie taktowanie wprojekto- W aplikacjach prostszych oraz
szczegółowo.
wanych w nie obwodów. Budowa w przypadku, gdy nie jest koniecz-
FPGA powoduje, że elementy lo- ne  żyłowanie pa-
giczne rozmieszczone na powierzch- rametrów układów
ni struktury półprzewodnikowej, FPGA, korzystanie
pomimo taktowania sygnałem zega- z D C M n i e j e s t
rowym pochodzącym z jednego zró- konieczne i mo -
dła, nie są taktowane jednocześnie ż e s i ę w p r o w a -
(rys. 18), bowiem różny jest czas dzić do wykorzy-
dystrybucji sygnału w zależności od stania tego bloku
trasy jaką pokonuje (czyli jakiego jako syntezera lub
rodzaju zasoby połączeniowe wy- programowalnego
korzystano do jego transportu), od- dzielnika częstotli-
ległości pomiędzy zródłem i celem, wości. Na rys. 20
a także liczby wejść taktowanych pokazano przykła-
jednocześnie w danym segmencie dowe konfiguracje
ścieżki połączeniowej. DCM, w których
Aby zminimalizować wpływ nie- wykorzystano re-
doskonałości architektury FPGA na ferencyjny sygnał
jakość projektów, firma Xilinx wy- zegarowy podawa- Rys. 19. Schemat blokowy DCM stosowanych w ukła-
posażyła układy Spartan 3 w bloki ny z zewnątrz na dach Spartan 3
Elektronika Praktyczna 1/2007
97
K U R S
Sprzętowe
Plan kursu
multiplikatory
1. Wprowadzenie
Standardowym ele-
" Budowa zestawu uruchomie-
mentem architektury
niowego
układów Spartan 3 są
" Programowanie i konfiguracja
sprzętowe multiplika-
układu XC3S200
tory, pozwalające mno-
" Tryby konfiguracji układu
żyć 2 liczby 18 bitowe.
XC3S200
Mogą one pracować " Zasilanie układu XC3S200
w trybie asynchronicz- " Linie I/O w układzie XC3S200
" JTAG jako uniwersalny
Rys. 20. Przykładowe konfiguracje DCM z wykorzy- nym (kombinacyjnym)
interfejs do programowania
staniem zewnętrznego sygnału lub synchronicznym,
i konfigurowania
w którym wykonywanie
2. Budowa, cechy funkcjonalne
obliczeń jest synchroni-
i parametry układów FPGA
zowane sygnałem zega-
z rodziny Spartan 3
rowym, a wynik odbie-
" CLB
rany z wyjść 36 bitowe-
" IOB
go rejestru (rys. 23).
" Globalne sygnały zegarowe
Korzystanie z moż-
" DCM
liwości multiplikatorów
" Sprzętowe multiplikatory
wygląda podobnie jak
" Pamięć BlockRAM
w przypadku DCM, to
3. Projekty przykładowe
znaczy, że użytkownik
ma do dyspozycji ręcz-
nie modyfikowalny opis prezentowane na zestawie ZL9PLD
HDL (wykorzystujący (płytka bazowa) + ZL10PLD (dip-
konfigurowalny prymi- PLD z układem SX3S200), do naszej
tyw MULT18X18SIO) dyspozycji będzie 12 bloków konfi-
lub może jego opis wy- gurowalnej pamięci o łącznej pojem-
generować za pomocą ności 216 kb.
przyjaznego w obsłudze Wbudowana w układy Spartan 3
programu Xlinx CORE pamięć SRAM jest dwuportowa, dzię-
Generator (rys. 24), ki czemu użytkownik może wykony-
Rys. 21. Jednym ze sposobów skorzystania z możli- który wchodzi w skład wać niezależnie operacje zapisu i od-
wości DCM jest zastosowanie elementu bibliotecz- bezpłatnego WebPacka
nego DCM znajdującego się w kategorii General ISE.
FPGA  co trzeba o nich wiedzieć  tip #10
Maksymalna częstotliwość taktowania pamięci
BlockRAM może dochodzić w układach
Możliwości bloków DCM są Pamięć BlockRAM
Spartan 3 do 200 MHz.
duże, co wiąże się z dużą liczbą Wszystkie układy z rodziny Spar-
dostępnych do konfigurowania opcji. tan 3 wyposażono w wewnętrzną,
Nieco więcej miejsca poświęcimy konfigurowalną pamięć SRAM. Licz- czytu spod/do różnych adresów, może
im w części kursu z przykładami. ba niezależnych bloków BlockRAM także transferować dane za pomocą
wiążąca się z nią łączna pojemność rejestrów składających się na komór-
pamięci jest zależna od typu układu ki pamięci (rys. 25). Pojemność poje-
(patrz tab. 3, str. 94 w EP11/2006). dynczego zespołu BlockRAM wynosi
Ponieważ wszystkie przykłady będą 16384 b (w przypadku wykorzysty-
wania bitów parzystości  18432 b),
FPGA  co trzeba o nich wiedzieć  tip #9
przy czym użytkownik może dobie-
Możliwości multiplikatorów wbudowanych
rać szerokość i głębokość pamięci do
w układy Spartan 3 są duże. Czytelników
potrzeb projektu. Możliwe jest tak-
zainteresowanych poznaniem szczegółów
że łączenie kilku bloków BlockRAM
zachęcamy do zapoznania się z notą
katalogową XAPP467 firmy Xilinx, w której
w zespoły pamięci o większej pojem-
opisano je bardzo szczegółowo.
ności. Możliwe są więc następujące
Rys. 22. Konfiguracja DCM w edy-
torze schematów jest łatwa dzięki
specjalnemu oknu edycyjnemu Rys. 23. Możliwe konfiguracje pracy multiplikatorów
Elektronika Praktyczna 1/2007
98
K U R S
List. 4. natywna funkcja
DCM_inst : DCM
LUT, tzw. Distri-
generic map (
  Czesc opisu sluzaca do skonfigurowania DCM
butedRAM, nie-
CLKDV_DIVIDE => 2.0,   Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
co więcej na ten
  7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
CLKFX_DIVIDE => 1,   Can be any interger from 1 to 32
temat pisaliśmy
CLKFX_MULTIPLY => 4,   Can be any integer from 1 to 32
CLKIN_DIVIDE_BY_2 => FALSE,   TRUE/FALSE to enable CLKIN divide by two feature w EP11/2006), każ-
CLKOUT_PHASE_SHIFT => "NONE",   Specify phase shift of NONE, FIXED or VARIABLE
dy o pojemności
CLK_FEEDBACK => "1X",   Specify clock feedback of NONE, 1X or 2X
DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS",   _SYNCHRONOUS, SYSTEM_SYNCHRONOUS or
16x1 b. Można
  an integer from 0 to 15
je lokalnie łączyć
DFS_FREQUENCY_MODE => "LOW",   HIGH or LOW frequency mode for frequency synthesis
DLL_FREQUENCY_MODE => "LOW",   HIGH or LOW frequency mode for DLL
w bloki do 64 bi-
DUTY_CYCLE_CORRECTION => TRUE,   Duty cycle correction, TRUE or FALSE
PHASE_SHIFT => 0,   Amount of fixed phase shift from  255 to 255
tów, a takie ze-
STARTUP_WAIT => FALSE)   Delay configuration DONE until DCM LOCK, TRUE/FALSE
społy można wy-
  Czesc opisu umozliwiajaca podlaczenie DCM do reszty projektu
port map (
korzystywać do
CLK0 => CLK0,   0 degree DCM CLK ouptput
CLK180 => CLK180,   180 degree DCM CLK output budowy większych
CLK270 => CLK270,   270 degree DCM CLK output
zespołów pamięci
CLK2X => CLK2X,   2X DCM CLK output
CLK2X180 => CLK2X180,   2X, 180 degree DCM CLK out
RAM/FIFO/DualPor-
CLK90 => CLK90,   90 degree DCM CLK output
tRAM.
CLKDV => CLKDV,   Divided DCM CLK out (CLKDV_DIVIDE)
CLKFX => CLKFX,   DCM CLK synthesis out (M/D)
Korzystanie ze
CLKFX180 => CLKFX180,   180 degree CLK synthesis out
LOCKED => LOCKED,   DCM LOCK status output wszystkich rodza-
PSDONE => PSDONE,   Dynamic phase adjust done output
jów pamięci do-
STATUS => STATUS,   8 bit DCM status bits output
CLKFB => CLKFB,   DCM clock feedback
stępnych w ukła-
CLKIN => CLKIN,   Clock input (from IBUFG, BUFG or DCM)
dach Spartan 3
PSCLK => PSCLK,   Dynamic phase adjust clock input
PSEN => PSEN,   Dynamic phase adjust enable input
jest równie wy-
PSINCDEC => PSINCDEC,   Dynamic phase adjust increment/decrement
RST => RST   DCM asynchronous reset input
godne jak miało
);
to miejsce w przy-
padku DCM lub
wych szerokości słowa sprzętowych multiplikatorów.
danych, pamięci ofe-
rują także możliwość Podsumowanie
przechowywania bitów Na tym kończymy  z konieczności
parzystości (po jednym skrótowy  wstęp do  tajemniczego
na przechowywany świata nowoczesnych układów FPGA.
bajt), przy czym jego Za miesiąc pokażemy pierwszy przy-
generację i weryfikację kład, który  mamy nadzieję  zachę-
musi zapewnić użyt- ci wszystkich onieśmielonych Czytelni-
kownik. ków do podjęcia samodzielnych prób.
Bloki pamięci moż- Jacek Majewski
na skonfigurować jako jacek.majewski@pwr.wroc.pl
jedno i dwuportowe, Piotr Zbysiński, EP
jako FIFO, pamięci piotr.zbysinski@ep.com.pl
CAM (Content Addres-
sable Memory) oraz pa- FPGA  co trzeba o nich wiedzieć  tip #12
Większe zespoły pamięci utworzonych
mięci ROM. W każdym
na bazie rozproszonych LUT (w CLB)
przypadku użytkownik
mają gorsze parametry czasowe niż
Rys. 24. Wygodnym narzędziem, umożliwiającym może zdefiniować za-
pamięci BlockRAM. Należy pamiętać o tym
wygenerowanie opisu HDL multiplikatora odpowia- wartość pamięci po
w przypadku, gdy projekt zaimplementowany
w FPGA jest taktowany sygnałem zegarowym
dającego wymaganiom projektu, jest Xlinx CORE włączeniu zasilania, co
o częstotliwości bliskiej maksymalnej,
Generator umożliwia następujący
dopuszczalnej dla danego układu.
zapis w języku VHDL
konfiguracje pojedynczego bloku Bloc- (dla kolejnych 16 komórek):
kRAM: 16 k x 1, 8 k x 2, 4 k x 4, INIT_00 => X"1100100
2 k x 8, 2 k x 9, 1 k x 16, 1 k x 0110000110000110111101
18, 512 x 32, 512 x 36, 256 x 72 111"
(tylko w trybie single port). Jak można Pamięć, której zawartość
zauważyć, oprócz typowych,  dwójko- nie jest inicjowana przez
użytkownika, po włączeniu
FPGA  co trzeba o nich wiedzieć  tip #11
zasilania zawiera same  0 .
Możliwości konfiguracji pamięci BlockRAM
Warto pamiętać, że w ukła-
wbudowanych w układy Spartan 3 są bardzo
dach Spartan 3 użytkownicy
duże. Czytelników zainteresowanych poznaniem
mają do dyspozycji  poza
szczegółów zachęcamy do zapoznania się
z notą katalogową XAPP463 firmy Xilinx, zespołami BlockRAM  także
w której opisano je wszystkie bardzo
małe zespoły pamięci rozpro- Rys. 25. Możliwe tryby pracy pamięci imple-
szczegółowo.
szone w blokach CLB (alter- mentowanych w BlockRAM
Elektronika Praktyczna 1/2007
99


Wyszukiwarka

Podobne podstrony:
uklady fpga w przykladach 1
uklady fpga w przykladach
uklady fpga w przykladach
Macierze i układy równań przykłady
Uklady mikroprocesorowe Przyklady rozwiazan ukmipr
UKŁADY PRZESTRZENNE PRZYKŁADOWE ZADANIA NA KOLOKWIUM
Układy hydrauliczne przykłady 1
Mudry energetyczne układy dłoni(1)
cw6 arkusz obliczeniowy przyklad
przykładowy test A
przykladowyJrkusz150UM[1] drukow
OEiM AiR Przykladowy Egzamin
Znaczenie korytarzy ekologicznych dla funkcjonowania obszarów chronionych na przykładzie Gorców
przykladowe zadania redoks

więcej podobnych podstron