Systemy na Chipie
Transkrypt
Systemy na Chipie
Systemy na Chipie Robert Czerwiński Cel kursu Celem kursu jest zapoznanie słuchaczy ze współczesnymi metodami projektowania cyfrowych układów specjalizowanych, ze szczególnym uwzględnieniem układów logiki programowalnej FPGA, narzędzi wspomagania projektowania oraz języków opisu sprzętu. Drugi "filar" przedmiotu obejmuje podstawy obsługi i programowania systemów mikroprocesorowych. Organizacja kursu Wykład: 30h Laboratorium 15h/grupę 3 spotkania po 5h Termin indywidualne dostosowane do potrzeb uczestników Podział na dwie grupy: System na Chipie firmy Xilinx: ZYNQ-7000 Zaprojektowanie własnego mikroprocesora Program szczegółowy Od mikroprocesora do systemu na chipie – definicje i pojęcia Mikroprocesor (omówienie na przykładzie problemu): Bloki funkcjonalne mikroprocesora Cykle pracy System przerwań i układy peryferyjne Układy sprzętowego wspomagania przetwarzania danych (na podstawie układów FPGA) Architektura, podstawowe elementy struktury Struktury specjalne w układach FPGA Systemy na chipie Bloki funkcjonalne Komunikacja i magistrale Kosynteza sprzętowo-programowa Proces projektowania złożonych układów cyfrowych w języku opisu sprzętu Verilog wobec współczesnych systemów ELASTYCZNOŚĆ SKALOWALNOŚĆ NISKI KOSZT NISKA MOC WYSOKA INTEGRACJA Oczekiwania Przykładowe problemy Telefon system aplikacje wyświetlanie obsługa interfejsów komunikacja (gsm, bluetooth, etc.) etc. Samochód (asystent kierowcy) obsługa czujników analiza obrazu decyzje i komunikacja z kierowcą etc. Mikroprocesor Mikroprocesor to automat sekwencyjny działający wg programu (najczęściej synchroniczny) Mikrokontroler PAMIĘĆ PROGRAMU PAMIĘĆ DANYCH UKŁADY CZASOWOLICZNIKOWE KONTROLER PRZERWAŃ MIKROPROCESOR WE URZĄDZENIA CYFROWE A/C C/A WE URZĄDZENIA ANALOGOWE WY URZĄDZENIA ANALOGOWE WY URZĄDZENIA CYFROWE System na Chipie (SoC; ang. System-on-a-Chip) ? – definicja SoC – definicja i kontrowersje SYSTEM*: układ elementów mający określoną strukturę i stanowiący logicznie uporządkowaną całość CHIP*: miniaturowy układ scalony SoC (literalnie): układ elementów mający określoną strukturę i stanowiący logicznie uporządkowaną całość wykonany w postaci miniaturowego układu scalonego *Słownik języka polskiego, PWN SoC Definicja literalna a rzeczywistość, czyli „teoria chaosu” SoC IP Core System Program To czym różni się SoC od mikrokontolera? SoC Z czego może składać się SoC: mikroprocesor, mikrokontroler, rdzeń DSP (układy SoC mogą zawierać kilka jednostek; MPSoC ang. Multiprocessor System-on-Chip) bloki pamięci: RAM ROM EEPROM lub FLASH układy zarządzania systemem zegarowym, pętle PLL peryferyjne układy czasowo-licznikowe kontrolery transmisji szeregowej lub równoległej UART SPI USB Ethernet FireWire przetworniki analogowo-cyfrowe lub cyfrowo-analogowe moduły zarządzania zasilaniem SoC Magistrale – obecnie najczęściej oparte na specyfikacji AMBA (magistrala systemowa ARMa; między innymi umożliwia transmisję DMA pomiędzy pamięcią i interfejsami bez udziału procesora) GPU (ang. Graphic Processing Unit) – moduły graficzne Mostki (northbridge, southbrige) Moduły radiowe: etc. GSM (LTE) Wi-Fi GPS Bluetooth IP Core (ang. intellectual property core) Moduły „wielokrotnego użytku” w postaci tzw. „wartości intelektualnej” Mogą stanowić samodzielne rozwiązanie, ale najczęściej służą do budowy większych systemów (w postaci ASIC, ASSP czy FPGA), w tym systemów na chipie SoC Dwa podstawowe typy: tzw. soft core tzw. hard core IP Core – soft core Model modułu opisany najczęściej na poziomie RTL w języku opisu sprzętu (Verilog lub VHDL) Model taki podlega syntezie u producenta krzemu Może być modyfikowany przez producenta (bez gwarancji ze strony dostawcy IP core’a) Drugą część stanowią modele opisane na poziomie tzw. „netlisty” Opisują model pod kątem określonej technologii lub na trochę bardziej ogólnym poziomie (tzw. generic gates) Model ten chroni własność dostawcy uniemożliwiając (lub mocno ograniczając) możliwości tzw. reverse engineeringu. IP Core – hard core Model „opisany” na poziomie niskopoziomowej reprezentacji technologicznej Oferują przewidywalną jakość (szybkość, powierzchnia chipu) Oferują też możliwość opisania modułów analogowych i mieszanych analogowo-cyfrowych Muszą być dobrze opisane – wymagają dobrej znajomości technologii Producenci układów nie mogą zmienić funkcjonalności, ale nawet nie bardzo mogą łatwo przerobić modelu na inną technologię System wbudowany (ang. embedded system) Tu też chaos definicyjny – pojęcie szersze od SoC Układy SoC są używane w obszarze „embedded systems” System wbudowany jest systemem komputerowym specjalnego przeznaczenia System wbudowany jest integralną częścią obsługiwanego przez niego sprzętu komputerowego Ma ograniczone zadania do wykonania, wynikające z roli, którą pełni w urządzeniu (nie jest to system ogólnego przeznaczenia) może zawierać oprogramowanie dedykowane jedynie temu urządzeniu (firmware) system operacyjny wraz ze specjalizowanym oprogramowaniem SoC – możliwości ASIC (ang. application specific integrated circuit) lub ASSP ( ang. application specific standard product) PSoC (ang. Programmable SoC), AP SoC (ang. All Programmable PSoC; pojęcie Xilinx’a), FPGA „Soft” mikroprocesor „Hard” mikroprocesor Dla uczestników kursu oznacza to zastosowanie układu FPGA ze sprzętowym mikroprocesorem Xilinx ZYNQ: ARM Cortex-A9 (dwa rdzenie) W układzie FPGA Xilinx Artix-7/Kintex-7 FPGA z mikroprocesorem typu „soft” Wg własnego projektu IP Core: „otwarty” (np. Xilinx PicoBlaze), licencjonowany (np. Xilinx MicroBlaze; ARM Cortex-M1) Problem Do szczegółowego omówienia zagadnień związanych z programem kursu posłuży problem mnożenia macierzy!