Projektowanie systemów za pomocą języków wysokiego poziomu ESL

Podobne dokumenty
Projektowanie systemów za pomocą języków wysokiego poziomu ESL

Bezpieczeństwo informacji oparte o kryptografię kwantową

ID2ZSD2 Złożone struktury danych Advanced data structures. Informatyka II stopień ogólnoakademicki stacjonarne

IZ2ZSD2 Złożone struktury danych Advanced data structures. Informatyka II stopień ogólnoakademicki niestacjonarne

Bezpieczeństwo informacji oparte o kryptografię kwantową

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

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

Systemy Wbudowane. Założenia i cele przedmiotu: Określenie przedmiotów wprowadzających wraz z wymaganiami wstępnymi: Opis form zajęć

Zapisywanie algorytmów w języku programowania

Metodyki i techniki programowania

Metodyki i techniki programowania

Tom 6 Opis oprogramowania

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

przedmiot kierunkowy (podstawowy / kierunkowy / inny HES) obowiązkowy (obowiązkowy / nieobowiązkowy) polski semestr I

Metody optymalizacji soft-procesorów NIOS

PRZEWODNIK PO PRZEDMIOCIE

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

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

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Programowanie komputerowe. Geodezja i Kartografia I stopień (I stopień / II stopień) akademicki (ogólno akademicki / praktyczny)

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Inżynieria oprogramowania, C12

TECHNIKA MIKROPROCESOROWA II

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 1 (3h) Wprowadzenie do systemu Quartus II

Podstawy programowania.

Bramki logiczne Instrukcja do ćwiczeń laboratoryjnych

Bezpieczeństwo danych i elementy kryptografii - opis przedmiotu

PROGRAMOWALNE STEROWNIKI LOGICZNE

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2018/2019

przedmiot kierunkowy (podstawowy / kierunkowy / inny HES) obowiązkowy (obowiązkowy / nieobowiązkowy) polski semestr I

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

Wydział Elektryczny. Katedra Telekomunikacji i Aparatury Elektronicznej. Konstrukcje i Technologie w Aparaturze Elektronicznej.

Koło zainteresowań Teleinformatyk XXI wieku

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

Projektowanie układów na schemacie

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

TECHNIKA MIKROPROCESOROWA II

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

Programowanie komputerów

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2014/2015

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Programowanie komputerowe Computer programming

PRZEWODNIK PO PRZEDMIOCIE

KARTA KURSU. Systemy operacyjne

Politechnika Białostocka. Wydział Elektryczny. Katedra Automatyki i Elektroniki. Kod przedmiotu: TS1C

PRZEWODNIK PO PRZEDMIOCIE

Opis efektów kształcenia dla modułu zajęć

PRZEWODNIK PO PRZEDMIOCIE

Komputer i urządzenia cyfrowe

Kierunek: Informatyka Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne. Wykład Ćwiczenia

Opracowanie ćwiczenia laboratoryjnego dotyczącego wykorzystania sieci przemysłowej Profibus. DODATEK NR 4 Instrukcja laboratoryjna

TECHNIKA MIKROPROCESOROWA II

Spis treści JĘZYK C - OPERATORY BITOWE. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF32

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Katedra Mikroelektroniki i Technik Informatycznych

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie

Rok akademicki: 2012/2013 Kod: IET SW-s Punkty ECTS: 3. Kierunek: Elektronika i Telekomunikacja Specjalność: Systemy wbudowane

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Programowanie proceduralne w języku C++ Podstawy

2. Graficzna prezentacja algorytmów

Rok akademicki: 2013/2014 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela

elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Ćwiczenie 8 Implementacja podpisu cyfrowego opartego na standardzie X.509

Laboratorium nr 1 Szyfrowanie i kontrola integralności

Elektrotechnika I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) niestacjonarne (stacjonarne / niestacjonarne)

Nazwa Wydziału Nazwa jednostki prowadzącej moduł Nazwa modułu kształcenia. Kod modułu Język kształcenia Efekty kształcenia dla modułu kształcenia

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2016/2017

Projektowanie systemów za pomocą języków wysokiego poziomu ESL

Elektronika samochodowa (Kod: ES1C )

Podstawy Programowania

PRZEWODNIK PO PRZEDMIOCIE

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

LICZNIKI LABORATORIUM. Elektronika AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE. Wydział Informatyki, Elektroniki i Telekomunikacji

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Kierunek: Informatyka Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne. Wykład Ćwiczenia

AKADEMIA GÓRNICZO - HUTNICZA IM. STANISŁAWA STASZICA w KRAKOWIE

Wykład Ćwiczenia Laboratorium Projekt Seminarium

2.1. System kryptograficzny symetryczny (z kluczem tajnym) 2.2. System kryptograficzny asymetryczny (z kluczem publicznym)

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Opis. Wykład: 30 Laboratorium: 30

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

PRZEWODNIK PO PRZEDMIOCIE

Autoreferat Rozprawy Doktorskiej

PRZEWODNIK PO PRZEDMIOCIE

Cyfrowe Przetwarzanie Obrazów i Sygnałów

Informatyka Studia II stopnia

Laboratorium podstaw elektroniki

Języki programowania deklaratywnego

AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE. QuIDE Quantum IDE PODRĘCZNIK UŻYTKOWNIKA

PRZEWODNIK PO PRZEDMIOCIE

ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS

WYKAZ PRZEDMIOTÓW I PLAN REALIZACJI

Transkrypt:

Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie Wydział IET Katedra Elektroniki Projektowanie systemów za pomocą języków wysokiego poziomu ESL Ćwiczenie 2 Implementacja funkcji Hash z użyciem języka Impulse C Zespół Rekonfigurowalnych Systemów Obliczeniowych Maciej Wielgosz, Grzegorz Gancarczyk http://home.agh.edu.pl/~wielgosz/ 09.10.2013

Wstęp Celem ćwiczenia jest praktyczne zapoznanie Studentów z możliwościami przyspieszenia czasu obliczeń poprzez wykorzystanie platform rekonfigurowalnych. Przykładem realizowanym w trakcie zajęć będzie sprzętowa akceleracja funkcji Hash (skrótu). Ponadto Studenci utrwalą i wykorzystają zdobytą w trakcie ostatnich zajęć wiedzę dotyczącą języka Impulse C oraz metodyki projektowania układów cyfrowych z wykorzystaniem narzędzia CoDeveloper (środowiska Microsoft Visual Studio 2008). Wymagania sprzętowe: komputer klasy PC, procesor o architekturze zgodnej z x86, procesor oferujący sprzętowy multithreading. Wymagania programowe: 32 bitowy system operacyjny Windows XP lub wyższy, środowisko ISE Design Suite. Wymagane doświadczenie: ukończone ćwiczenie nr 1. 2

1. Założenia projektowe Projekt realizowany samodzielnie przez Zespoły Studenckie w trakcie zajęć laboratoryjnych polegać będzie na zaimplementowaniu funkcji hash przy użyciu języka Impulse C. Moduł sprzętowy powinien charakteryzować się: 32 bitowym strumieniem danych wejściowych, 32 bitowym strumieniem danych wyjściowych, pełną potokowością w przetwarzaniu danych, czterema, kaskadowymi realizacjami funkcji hash. Funkcja haszująca, zwana również funkcją hash, mieszającą lub skrótu realizuje odwzorowanie, które przyporządkowuje dowolnie dużej liczbie, blokowi danych, strumieniowi znaków (oryginałowi) pewną wartość (obraz). Wartość ta z założenia zajmuje znacznie mniej bitów niż oryginał, posiada stały rozmiar i pseudolosową wartość. Poglądową ilustrację obrazującą przykładową, idealną, nie minimalną funkcję mieszającą przedstawiono Funkcje hash wykorzystywane są powszechnie w informatyce i elektronice (np. generacja sygnatur logicznych) oraz kryptografii (np. jądro algorytmów szyfrujących z rodziny SHA). Poprawnie zaprojektowany system cyfrowy powinien wykonać haszowanie tekstu Inwokacji z Pana Tadeusza autorstwa Adama Mickiewicza. Tekst Inwokacji powinien znaleźć się w pliku filter_in.dat. 3

2. Szkielet projektu Ponieważ czas trwania zajęć laboratoryjnych jest ograniczony, dlatego też w niniejszym rozdziale umieszczone zostaną wskazówki, mające na celu pomóc Zespołom Studenckim sprostać postawionemu przed nimi zadaniu. 2.1. Ciało funkcji Przykładowe ciało funkcji haszującej zapisanej w języku ANSI C przedstawiono w ramce unsigned int hash_soft(char* str, unsigned int len) { unsigned int hash = 5381; unsigned int i = 0; for(i = 0; i < len; str++, i++) hash = ((hash << 5) + hash) + (*str); } return hash; Przed przystąpieniem do zapisu algorytmu w języku Impulse C, proszę wpierw zaznajomić się i zrozumieć zasadę działania przedstawionej powyżej funkcji hash. Szczególnie proszę dopilnować, by strumień danych wejściowych był 32, a nie 8 bitowy. Wykorzystując CoDeveloper User s Guide zapoznać się z definicją i właściwościami dyrektywy #pragma CO INLINE, która powinna zostać użyta w celu spełnienia warunku wielokrotnej, kaskadowej realizacji funkcji hash. W tej samej pozycji odnaleźć oraz zaznajomić się z definicjami i właściwościami funkcji co_array_config( ) oraz dyrektyw #pragma CO UNROLL, #pragma CO PRIMITIVE, #pragma CO PIPELINE. 2.2. Schemat blokowy systemu Schemat blokowy omawianego systemu, który proponuje się zaimplementować, przestawiono Na schemacie można wyróżnić bloki: programowe danych wejściowych (Producer), danych wyjściowych (Consumer), sprzętowy (Filter), oraz strumienie (określone względem bloku Filter): danych wejściowych (in), danych wyjściowych (out). 4

2.3. Architektura bloku Filter Preferowaną architekturę projektowanego systemu cyfrowego przedstawiono na rysunku Na rysunku wyróżnić można dwa typy bloków. Są to: blok realizujący funkcję haszującą, blok przechowujący wartości wyników cząstkowych (rejestr). Ponadto widoczne są dwa strumienie przepływu danych: strumień danych oryginalnych (oznaczony kolorem zielonym), strumień klucza skracającego i danych skróconych (oznaczony kolorem czerwonym). 2.4. Budowa elementarnego bloku hash module Rysunek obrazujący budowę bloku elementarnego hash module przedstawiono 5