Cortex-A9 w Cyclone V SoC: wielordzeniowe „serce” zestawu SoCrates, część 1

baner

Warto zwrócić uwagę, że mechanizm korekcji ECC jest w układach firmy Altera wykorzystywany podczas dostępu do wszystkich rodzajów pamięci, łącznie z konfigurowalnymi blokami RAM wbudowanymi w komórki M10K struktury FPGA. Na rysunku 4 kolorem niebieskim zaznaczono interfejsy wbudowane w układy Cyclone V SoC, objęte kontrolą ECC.

 

 

Rys. 4. Bloki w układach Cyclone V SoC objęte kontrolą ECC (zaznaczone kolorem niebieskim)

 

Ważnym elementem wyposażenia prezentowanych układów jest wspomniany już interfejs komunikacyjny zapewniający wymianę danych pomiędzy blokami HPS i FPGA. Zapewnia on jednostce centralnej szybki dostęp do zasobów zaimplementowanych w FPGA za pomocą standardowego dostępu do rejestrów umieszczonych w przestrzeni adresowej (obszar zarezerwowany dla bloków peryferyjnych – rysunek 5), w której wydzielono 960 MB dla komunikacji w kierunku FPGA slave oraz 2 MB dla uproszczonego interfejsu AXI Lightweight. Interfejsy slave mogą po stronie FPGA operować danymi 32-/64- lub 128-bitowymi, od strony interfejsu L3 (CPU) dane są 64-bitowe.

 

 

Rys. 5. Wzajemna alokacja obszarów adresowych HPS, L3 oraz pamięci SDRAM

 

Kolejnym istotnym elementem wyposażenia bliku HPS układów Cyclone V SoC są syntezery sygnałów zegarowych, w których zastosowano trzy programowane pętle PLL oraz system konfiguracji dystrybucji przebiegów taktujących do bloków peryferyjnych. Schemat blokowy kompletnego syntezera sygnałów zegarowych pokazano na rysunku 6.

 

 Rys. 6. Schemat blokowy wielokanałowego, programowalnego syntezera częstotliwości wbudowanego w blok HPS układów Cyclone V SoC

Rys. 6. Schemat blokowy wielokanałowego, programowalnego syntezera częstotliwości wbudowanego w blok HPS układów Cyclone V SoC

 

W zależności od potrzeb i wymogów systemu, użytkownik może samodzielnie ustalać częstotliwości taktujące pamięć Flash, jednostki centralne, interfejsy komunikacyjne L3 i L4 oraz kontroler pamięci SDRAM. Każdy z tych sygnałów jest dostępny, jako globalny sygnał taktujący, także w matrycy FPGA, dzięki czemu możliwe jest zsynchronizowanie pracy bloków cyfrowych w obydwu częściach układu SoC. Indywidualny dobór częstotliwości dla poszczególnych bloków peryferyjnych pozwala zredukować moc pobieraną przez układ SoC w realnej aplikacji, a także dynamicznie dobierać częstotliwość taktowania CPU w zależności od aktualnie wymaganej mocy obliczeniowej, bez negatywnego wpływu na pozostałe peryferia. Programowanie PLL charakteryzuje się – dzięki rozbudowanemu systemowi podzielników – dużą rozdzielczością, co pozwala precyzyjnie dobrać częstotliwość taktowania do wymogów aplikacji. Funkcjonalność PLL obejmuje także regulację fazy sygnałów generowanych przez PLL, za co odpowiadają zaznaczone na żółto bloki przesuwników fazowych, pokazane na rysunku 7. Producent przewidział możliwość zastosowania dwóch źródeł zewnętrznych sygnałów zegarowych, które spełniają rolę sygnałów referencyjnych dla PLL – na rysunku 6 widać dwa wejścia (EOSC1 i EOSC2), do których można doprowadzić sygnały referencyjne.

 

 Rys. 7. Generatory sygnałów zegarowych wbudowane w HPS wyposażono w programowane przesuwniki fazy, które pozwalają na precyzyjną konfigurację wszystkich gałęzi taktowania

Rys. 7. Generatory sygnałów zegarowych wbudowane w HPS wyposażono w programowane przesuwniki fazy, które pozwalają na precyzyjną konfigurację wszystkich gałęzi taktowania

 

Schemat blokowy pokazany na rysunku 7 ilustruje budowę każdego generatora z PLL (w HPS układów Cyclone V SoC są takie trzy), jak widać każdy z nich ma pięć wyjść z indywidualnie ustalaną fazą i wbudowanym preskalerem. Sygnały wyjściowe CLK1…CLK5 mają różne zastosowania w zależności od tego, do którego generatora PLL są przypisane. Na rysunku 8 pokazano sposób wyprowadzenie sygnałów taktujących w generatorze Peripheral Clock Group , który odpowiada za dostarczanie sygnałów taktujących interfejsy peryferyjne i komunikacyjne współpracujące z HPS. W pozostałych dwóch generatorach (Main Clock Group oraz SDRAM Clock Group) sposoby rozprowadzenia sygnałów zegarowych są inne (dostosowane do specyfiki taktowanych bloków), ale we wszystkich kanałach występują programowane bramki sygnałów taktujących, które umożliwiają indywidualne włączanie i wyłączanie sygnałów taktujących w każdej ze ścieżek.

 

 Rys. 8. Schemat ilustrujący wyprowadzenie sygnałów zegarowych wytwarzanych przez Peripheral Clock Group

Rys. 8. Schemat ilustrujący wyprowadzenie sygnałów zegarowych wytwarzanych przez Peripheral Clock Group

 

Opisane powyżej generatory służą do wytwarzania wszystkich sygnałów zegarowych używanych w bloku HPS, łącznie z sygnałami taktującymi peryferia komunikacyjne: począwszy od interfejsu QSPI, przez I2C, SPI, UART i CAN, aż po eMAC i USB.

O autorze