Pod o z d ia i ł a r yn y k n u k u ( 2004 r.). źródło: Gartner 3

Podobne dokumenty
POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji.

Procesory w FPGA H D L. dr inż. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

Metody optymalizacji soft-procesorów NIOS

Systemy Czasu Rzeczywistego FPGA

Szkolenia specjalistyczne

Programowalne układy logiczne

System mikroprocesorowy i peryferia. Dariusz Chaberski

Projektowanie z użyciem procesora programowego Nios II

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.

Projekt prostego procesora

Systemy na Chipie. Robert Czerwiński

WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego LABORATORIUM UKŁADÓW PROGRAMOWALNYCH I SPECJALIZOWANYCH

Specyfika projektowania Mariusz Rawski

Wykład 3: Implementacja programów wbudowanych

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

WPROWADZENIE Mikrosterownik mikrokontrolery

Układy reprogramowalne i SoC Implementacja w układach FPGA

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Krótkie wprowadzenie do ModelSim i Quartus2

Systemy Czasu Rzeczywistego FPGA

Wykład Mikroprocesory i kontrolery

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Układy reprogramowalne i SoC Język VHDL (część 4)

Przestrzeń pamięci. Układy dekoderów adresowych

Procesory Blackfin. Część 1

Systemy wbudowane. Paweł Pełczyński

Systemy wbudowane Wykład 6 - transmisje szeregowe: UART i pochodne. Komunikacja szeregowa Notes. Rodzaje transmisji Notes. Rodzaje transmisji Notes

Systemy Czasu Rzeczywistego FPGA

Automatyzacja procesu tworzenia sprzętowego narzędzia służącego do rozwiązywania zagadnienia logarytmu dyskretnego na krzywych eliptycznych

Sposoby projektowania systemów w cyfrowych

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

Architektury akceleratorów kryptograficznych opartych o układy programowalne. Marcin Rogawski

Opis przedmiotu zamówienia CZĘŚĆ 1

1.2. Architektura rdzenia ARM Cortex-M3...16

Projektowanie Systemów Wbudowanych

Podstawy techniki cyfrowej i mikroprocesorowej II. Urządzenia wejścia-wyjścia

11.Mikrokomputeryjednoukładowe

Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall

Cyfrowy rejestrator parametrów lotu dla bezzałogowych statków powietrznych. Autor: Tomasz Gluziński

Opis przedmiotu zamówienia

Systemy wbudowane Mikrokontrolery

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

1. Synteza układów opisanych w języku VHDL Xilinx ISE Design Suite 10.1 VHDL 2. Obsługa przetwornika CA Project Add source...

Embedded Solutions Automaticon Efektywne pomiary i sterowanie przy użyciu systemu wbudowanego MicroDAQ

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji

CompactPCI. PCI Industrial Computers Manufacturers Group (PICMG)

Elektronika i techniki mikroprocesorowe

Altera Quartus II. Opis niektórych komponentów dostarczanych razem ze środowiskiem. Opracował: mgr inż. Leszek Ciopiński

2. Code Composer Studio v4 zintegrowane środowisko projektowe... 41

Technika mikroprocesorowa. Konsola do gier

Architektura komputerów

Język opisu sprzętu VHDL

Systemy mikroprocesorowe. Literatura podręcznikowa. Przedmioty związane. Przykłady systemów wbudowanych. Pojęcie systemu wbudowanego embedded system

Wykład Mikrosystemy Elektroniczne 1

ZL6PLD zestaw uruchomieniowy dla układów FPGA z rodziny Spartan 3 firmy Xilinx

Wykład Mikrokontrolery i mikrosystemy Cele wykładu:

SPIS TREŚCI. 2. Arytmetyka rozproszona Symulacja układu programowalnego Realizacja algorytmu cyfrowego filtrowania

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

MIKROKONTROLERY I MIKROPROCESORY

Zewnętrzne układy peryferyjne cz. 1 Wykład 12

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Programowanie mikrokontrolerów AVR

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Politechnika Śląska w Gliwicach Instytut Automatyki 2005/2006

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami

2. Architektura mikrokontrolerów PIC16F8x... 13

Technika Mikroprocesorowa

WYKŁAD 5. Zestaw DSP60EX. Zestaw DSP60EX

Bezpieczeństwo informacji oparte o kryptografię kwantową

Architektura Systemów Komputerowych. Transmisja szeregowa danych Standardy magistral szeregowych

Systemy Czasu Rzeczywistego FPGA

Spis treści. Wykaz ważniejszych skrótów Wprowadzenie Rdzeń Cortex-M Rodzina mikrokontrolerów XMC

Architektura systemu komputerowego

IIPW_SML3_680 (Z80) przewodnik do ćwiczeń laboratoryjnych

Magistrala systemowa (System Bus)

Organizacja typowego mikroprocesora

Programowanie Układów Logicznych kod kursu: ETD6203. Komunikacja z układami cyfrowymi W dr inż. Daniel Kopiec

Altera MAX10: nowa generacja FPGA i jej nowe możliwości

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

Piotr Majkowski. Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji

System czasu rzeczywistego

PROJEKT I OPTYMALIZACJA STRUKTURY LOGICZNEJ DYDAKTYCZNEGO SYSTEMU MIKROPROCESOROWEGO DLA LABORATORIUM PROJEKTOWANIA ZINTEGROWANEGO

1.Wstęp. 2.Generowanie systemu w EDK

Sumatory H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

dokument DOK wersja 1.0

Architektura mikrokontrolera MCS51

Architektura mikroprocesorów z rdzeniem ColdFire

Układy FPGA w przykładach, część 2

Projektowanie hierarchiczne Mariusz Rawski

Układy wejścia/wyjścia

Architektura mikrokontrolera MCS51

Szczegółowy opis przedmiotu zamówienia. Część 1 - Laboratoryjny zestaw prototypowy

Systemy uruchomieniowe

Zastosowania mikrokontrolerów w przemyśle

Zarządzanie zasobami pamięci

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Transkrypt:

Systemy typu SoPC Orkiszewski Marcin Projektowanie Programowalnych Układów Scalonych z-2009

Mikrokontrolery vs. FPGA MCU cena łatwość montaŝu łatwość programowania > >> >>> FPGA cena łatwość montaŝu łatwość programowania Układy FPGA mają zastosowanie w specjalistycznych dziedzinach, gdzie wymagana jest duŝa wydajność obliczeniowa lub przetwarzanie strumieniowe 2

Podział rynku (2004 r.) źródło: Gartner 3

Układy FPGA - perspektywy Coraz więcej danych - telekomunikacja, pomiary Coraz większe wymagania - telewizory, dekodery, gry, kryptografia Rekonfigurowalność (hardware update) - dopasowywanie się architektury do wymagań! Coraz mniejszy wpływ układu na cenę urządzenia Systemy typu SoPC 4

System on Programmable Chip System mikroprocesorowy implementowany w układach logicznych (np. FPGA) Stworzony w języku opisu sprzętu (VHDL, Verilog) Programowany przy uŝyciu C, C++, Assemblera 5

Zalety systemów SoPC (1/2) Pełna konfigurowalność dowolna liczba modułów DMA, interfejsów, portów, kontrolerów pamięci, itp. MoŜliwość utworzenia systemu złoŝonego z więcej niŝ jednego procesora 6

Zalety systemów SoPC (2/2) MoŜliwość dodawania własnych instrukcji i komponentów (VHDL, Verilog) Interfejsy do projektów napisanych w VHDL, Verilog Krótki czas realizacji MoŜliwość szybkiej weryfikacji koncepcji 7

Altera Nios II 8

9

Systemy SoPC Nios II (Altera Altera) MicroBlaze (Xilinx) OpenRisc (OpenCores) - darmowy Leon III (Gaisler) - darmowy 10

Architektura systemu NIOS II

Od czego zacząć Wymagane oprogramowanie (darmowe): Quartus II v. 9.0 Nios IDE v. 9.0 Do pobrania na stronie www.altera.com (wraz z dokumentacją). 12

Architektura Procesor 32 bitowy Gotowe komponenty: - Ethernet, RS-232, USB, PCI, SPI, JTAG, itp.., - Kontrolery pamięci (SDRAM, SRAM, Flash), - Pamięci OnChip, - Liczniki, DMA, PLL, porty I/O, VGA, itd.. Własne komponenty 13

14

Altera Avalon (1/2) System realizujący połączenia między komponentami Memory Mapped komponenty rozmieszczone w przestrzeni adresowej Streaming Mode bezpośrednie połączenie między komponentami 15

Altera Avalon (2/2) KaŜdy port typu Master posiada bezpośrednie połączenie z wybranym portem typu Slave W przypadku próby jednoczesnego dostępu wykonywany jest arbitraŝ (w przykładzie 4:1) 16

Komunikacja z komponentami 17

Komunikacja z komponentami Przez rejestry: STATUS stan pracy komponentu np. ukończenie pobierani danych, zgłoszenie przerwania CONTROL rejestr konfiguracyjny np. odblokowanie przerwań, start, stop, reset, itp.. DATA rejestr danych SPECJALISTYCZNE w zaleŝności od komponentu np. LENGTH, PERIODL, PERIODH, itd.. 18

Komponent PIO mapa rejestrów 19

Komponent TIMER mapa rejestrów 20

UART (Universal Asynchronous Receiver and Transmitter) Idea zarządzanie transmisją danych np. RS-232, RS-485 lub między komponentami 21

Komunikacja na poziomie kodu Przez makrodefinicje: IOWR_ALTERA_AVALON_PIO_DATA( LEDS_BASE, 0x23 ); wpis komponent rejestr adres bazowy dane status = IORD_ALTERA_AVALON_UART_STATUS( UART_BASE ); dane odczyt komponent rejestr adres bazowy system.h - nagłówek z adresami bazowymi komponentów altera_avalon_ altera_avalon_pio_regs.h, altera_avalon_ altera_avalon_uart_regs.h nagłówki makr 22

Timer - uruchomienie IOWR_ALTERA_AVALON_TIMER_CONTROL( TIMER_BASE, 0x02 0x04 ); Ustawienie pracy ciągłej (bez restartu) oraz uruchomienie licznika 23

Timer koniec odliczania status = IORD_ALTERA_AVALON_TIMER_STATUS( TIMER_BASE ); if( status & 0x01 ) IOWR_ALTERA_AVALON_TIMER_STATUS( TIMER_BASE, 0 ); 24

UART - koniec transferu // czy otrzymano dane if( IORD_ALTERA_AVALON_UART_STATUS( UART_BASE ) & 0x80 ) // czy dane wysłane while(! (IORD_ALTERA_AVALON_UART_STATUS( DMA_BASE ) & 0x40) ) ; 0x40 0x80 25

Przykładowy projekt (w 15 minut)

Połączenie z szyną Avalon 27

Sygnały (1/6) Sygnały kontrolne: [in] reset reset [in] clk zegar [out] irq przerwanie (musi trwać wystarczająco długo, mechanizm dezaktywacji) 28

Sygnały (2/6) Szyny danych: [in] writedata(.. downto 0) szyna przesyłająca dane szyna przesyłająca dane do komponentu [out] readdata(.. downto 0) szyna odczytująca dane szyna odczytująca dane z komponentu [bidir] data(.. downto 0) szyna dwukierunkowa Szyny muszą być tej samej szerokości. Szerokość szyn musi być potęgą 2. 29

Sygnały (3/6) address - szyna adresowa [in] address(.. downto 0) szyna adresowa określająca rejestr docelowy IOWR( SWAP_IN1_BASE, 1, data); address <= b 01 if (address = b 00 ) then register_0 <= writedata; elsif (address = b 01 ) then register_1 <= writedata; 30

Sygnały (4/6) write - Ŝądanie zapisu 31

Sygnały (5/6) read - Ŝądanie odczytu 32

Sygnały (6/6) waitrequest - Ŝądanie wstrzymania transferu 33

Przykładowy zapis process( clk ) variable addr : INTEGER := conv_integer(address); begin if ( clk'event and clk = '1' ) then if ( (write = '1') and (chipselect = '1') ) then end if; registers( addr ) <= writedata; end if; end process; 34

Przykładowy odczyt process( clk ) variable addr : INTEGER := conv_integer(address); begin if ( clk'event and clk = '1' ) then if ( (read = '1') and (chipselect = '1') ) then end if; readdata <= registers(addr); end if; end process; 35

Konwencja nazw sygnałów (typ portu)_(nazwa portu)_(nazwa sygnału) Np. csi_clock_clk csi_clock_reset_n ins_interrupt_irq : in STD_LOGIC; : in STD_LOGIC; : out STD_LOGIC; avs_in1_chipselect avs_in1_write_n avs_in1_address avs_in1_writedata : in STD_LOGIC; : in STD_LOGIC; : in STD_LOGIC_VECTOR(1 downto 0); : in STD_LOGIC_VECTOR(31 downto 0); avs_out1_chipselect avs_out1_read_n avs_out1_address avs_out1_readdata : in STD_LOGIC; : in STD_LOGIC; : in STD_LOGIC_VECTOR(1 downto 0); : out STD_LOGIC_VECTOR(31 downto 0)); 36

Test komponentu #include system.h #include <io.h> int main() { int i, result, testvalue = 0x11113333; for(i=0; i<3; i++) { IOWR( SWAP_IN1_BASE, 0, testvalue ); result = IORD( SWAP_OUT1_BASE, 0 ); testvalue <<= 1; } } return 0; 37

MemoCode 2008 Koło Naukowe Układów Cyfrowych DEMAIN

Zadanie: Posortować liczby 128-bitowe w jak najkrótszym czasie. Liczby nie mogą się powtarzać. Liczba danych 2^n (max max. 4MB). 39

Algorytm sortujący: Jaki algorytm sortujący pasuje do układów FPGA? Mergesort rekurencyjne sklejanie uporządkowanych zbiorów. Sklejanie łączenie strumieni. 40

Implementacja 1x DMA do obsługi SDRAM 2x DMA 128 bitowe Komparator 128 bitowy Algorytm rekurencyjny 41

42

43

Sterowanie Całe sterowanie sortowaniem polega na odpowiednim uruchamianiu poszczególnych DMA wraz z wyliczonymi nowymi adresami 44

45

Porównanie szybkości działania Sekundy Czas sortowania 600 586 500 400 300 278 Software Hardware 200 133 100 0 18,7 0,84 1,79 3,75 7,83 4 8 16 32 MB 46

Kryptoanaliza szyfrów opartych na krzywych eliptycznych

Architektura SoPC (dla układu DE2 70) 5 jednostek obliczeniowych częstotliwość taktowania 100 MHz programowa obsługa stosu TCP/IP (biblioteka LightWeight IP) sprzętowa obsługa MAC - 100 Mbit/s 48

Platformy uruchomieniowe Wykorzystano platformy: DK-N2EVAL N2EVAL-3C25N dla celów prototypowania rozwaŝanych rozwiązań DK-DEV DEV-3C120N duŝe moŝliwości obliczeniowe 49

Platformy uruchomieniowe Wykorzystano platformy: DE2-70-EP2C70N duŝe moŝliwości obliczeniowe DE2-EP2C35N EP2C35N dodatkowe jednostki 50

Wstępne wyniki Liczba jednostek w układzie FPGA 1 5 70 Częstotliwość zegara 100 MHz 100 MHz 100 MHz Efektywność obliczeń 10 mln sumowań / sek. 50 mln sumowań / sek. 700 mln sumowań / sek. Czas potrzebny na złamanie krzywej ~ 21 dni ~ 4 dni ~ 7 godzin eliptycznej ECC2_89 Krzywa ECC2_89 została złamana w 1998 roku. Jej złamanie zajęło 26 dni (70 * 500 MHz workstation running Linux). 51

Więcej o systemie NIOS II na stronie Koła: http://demain.zpt.tele.pw.edu.pl Publikacje Wesołych świąt! 52