All hands on deck!!!



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

PROGRAMOWALNE UKŁADY CYFROWE

Informatyka I : Tworzenie projektu

MentorGraphics ModelSim

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File

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

Bezpieczeństwo informacji oparte o kryptografię kwantową

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

Wygląd okna aplikacji Project Navigator.

Laboratorium Projektowania Systemów VLSI-ASIC Katedra Elektroniki Akademia Górniczo-Hutnicza

Projektowanie z użyciem bloków funkcjonalnych w układach programowalnych firmy Xilinx

Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Symulacja systemu z procesorem MicroBlaze w środowisku ActiveHDL

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach

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

WPROWADZENIE DO INFORMATYKI

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

KONFIGURACJA NOWEGO PROJEKTU W CODE COMPOSER STUDIO

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

SYSTEMY DEDYKOWANE W UKŁADACH PROGRAMOWALNYCH

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

PROGRAMOWALNE STEROWNIKI LOGICZNE

Projekt procesora NIOSII w strukturze programowalnego układu logicznego CYCLONEII EP2C35F672C6 podłączenie i obsługa wyświetlacza LCD.

Tworzenie projektu asemblerowego dla środowiska Visual Studio 2008.

Materiały dodatkowe. Simulink PLC Coder

FAQ: /PL Data: 3/07/2013 Konfiguracja współpracy programów PC Access i Microsoft Excel ze sterownikiem S7-1200

SYSTEMY DEDYKOWANE W UKŁADACH PROGRAMOWALNYCH

Projektowanie z użyciem procesora programowego Nios II

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

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...

Gromadzenie danych. Przybliżony czas ćwiczenia. Wstęp. Przegląd ćwiczenia. Poniższe ćwiczenie ukończysz w czasie 15 minut.

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALNE STRUKTURY LOGICZNE

TwinCAT 3 konfiguracja i uruchomienie programu w języku ST lokalnie

Programowanie obiektowe

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

Bezpieczeństwo informacji oparte o kryptografię kwantową

Programowanie procesora Microblaze w środowisku SDK

Programowanie niskopoziomowe

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.

Programowanie Obiektowe GUI

MS Visual Studio Express 2012 for Web instalacja i konfiguracja

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Programowalne układy logiczne Wydziałowy Zakład Nanometrologii SEMESTR LETNI

Projektowanie z użyciem softprocesora picoblaze w układach programowalnych firmy Xilinx

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH Wydziałowy Zakład Metrologii Mikro- i Nanostruktur SEMESTR LETNI 2017

Ćwiczenia z S Komunikacja S z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.

Projektowanie aplikacji internetowych laboratorium

Projektowanie układów na schemacie

Ćwiczenia z S S jako Profinet-IO Controller. FAQ Marzec 2012

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

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

I - Microsoft Visual Studio C++

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Programowanie. Ćwiczenie Język C. Środowisko programowania Visual Studio

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Materiały dodatkowe. Raspberry Pi

MS Visual Studio 2005 Team Suite - Performance Tool

SFML. (Simple and Fast Multimedia Library)

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Ćwiczenie 1. Modelowanie prostego procesu

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA

Programowanie obiektowe zastosowanie języka Java SE

Projektowanie i implementacja filtru FIR

1. Tworzenie nowego projektu.

Zadania: 1. Funkcja przeliczająca F na C: float FtoC(float f){ return (f 32.0) * 5.0 / 9.0; }

Podstawy wykorzystania bibliotek DLL w skryptach oprogramowania InTouch

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Konfiguracja i przygotowanie środowiska do współpracy z infrastrukturą PL-Grid

Projekt procesora NIOSII w strukturze programowalnego układu logicznego CYCLONEII EP2C35F672C6 wersja startowa dla słuchaczy studiów niestacjonarnych.

Laboratorium A: Podstawy administrowania serwerem

Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej:

Programowanie Systemów Czasu Rzeczywistego

cmt + CODESYS, oraz zdalne wejścia/ wyjścia

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Laboratorium 1 - Programowanie proceduralne i obiektowe

LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

Akceleracja symulacji HES-AHDL. 1. Rozpoczęcie pracy aplikacja VNC viewer

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjna

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH Wydziałowy Zakład Metrologii Mikro- i Nanostruktur SEMESTR LETNI 2016

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Projektowanie baz danych za pomocą narzędzi CASE

Programowanie w języku G - Laboratorium 12

Bramki logiczne Instrukcja do ćwiczeń laboratoryjnych

Microsoft Visual Studio: zintegrowane środowisko programistyczne (IDE), umożliwia tworzenie samodzielnych aplikacji, aplikacji sieciowych, usług

Ćwiczenie 2. Tworzenie serwisów internetowych. Zapoznanie z pakietem WebRatio

IBM Rational TestManager

Programowanie Komputerów 2FD. Materiały pomocnicze do laboratorium

Projekt prostego procesora

Galileo v10 pierwszy program

Zaawansowane aplikacje internetowe - laboratorium

Transkrypt:

All hands on deck!!! 92

Założenia projektowe Budujemy generator liczb pseudolosowych Moduł generujący LFSR (Linear Feedback Shift Register) Źródło: en.wikipedia.org/wiki/linear_feedback_shift_register Wersja 16 bitowa 93

LFSR Budowa rejestr przesuwny ze sprzężeniem zwrotnym na bramkach EX-OR. Podstawa działania wielomian charakterystyczny (pierwotny, pierwszy, generujący) Galoisa. Właściwości T = 2 N -1, słabe własności statystyczne danych wynikowych. Zastosowanie CRC (Cyclic Redundancy Check), Scrambler, Pomiary IR (Impulse Response). 94

Plan działania Projekt w C pod narzędziem Visual Studio Projekt w Impuse C pod narzędziem CoDeveloper Projekt w Impulse C pod narzędziem Visual Studio Symulacja działania generatora programowego i sprzętowego Generacja kodu HDL Analiza wyników Optymalizacja kodu Synteza i Implementacja 95

Projekt software owy Utworzyć projekt pod narzędziem Visual Studio 2008 uruchomić program, 96

Projekt software owy utworzyć nowy projekt File New Project, 97

Projekt software owy wybrać typ projektu Project types: Visual C++, zaznaczyć Templates: Win32 Console Application, 98

Projekt software owy nazwać projekt Name: (np. generator_sw), kliknąć przycisk OK, 99

Projekt software owy kliknąć przycisk Next >, 100

Projekt software owy określić typ aplikacji Application type: Console application, wybrać opcję Additional options: Empty project, kliknąć przycisk Finish. 101

Projekt software owy Tworzenie generatora dodać nowy plik do projektu pod Visual Studio Solution Explorer generator_sw Add New Item, 102

Projekt software owy wybrać kategorię Categories: Visual C++, zaznaczyć Templates: C++ File(.cpp), nazwać projekt z rozszerzeniem c Name: (np. rng.c), kliknąć Add, 103

Projekt software owy w nowo otwartym oknie umieścić następującą deklarację: #include <stdio.h> int main() { unsigned short lfsr = 0xACE1; unsigned short period = 0; do { lfsr = (lfsr >> 1) ^ (-(lfsr & 0x0001) & 0xB400); ++period; printf("wartosci losowe: 0x%04X\n", lfsr); } } while(lfsr!= 0xACE1); Źródło: en.wikipedia.org/wiki/linear_feedback_shift_register 104

Projekt software owy zbudować projekt (alt + shift + B) i przejść do następnego etapu. 105

Projekt hardware owy Utworzyć projekt pod narzędziem CoDeveloper uruchomić program, w oknie startowym kliknąć przycisk Create a New Project, 106

Projekt hardware owy zaznaczyć Project types General Application Templates, zaznaczyć Templates One input stream, one output stream, nazwać projekt (np. generator), 107

Projekt hardware owy wybrać lokalizację projektu na dysku Location, kliknąć przycisk OK, 108

Projekt hardware owy kliknąć przycisk Dalej >, 109

Projekt hardware owy nazwać proces Process name: (np. generator), nazwać strumień wejściowy Input stream name: (np. input) nazwać strumień wyjściowy Output stream name: (np. random), 110

Projekt hardware owy określić szerokość strumienia Stream width: 16 bit, określić głębokość strumienia Stream depth: 1 bit, kliknąć przycisk Dalej >, 111

Projekt hardware owy kliknąć przycisk Zakończ. 112

Projekt hardware owy Utworzyć projekt pod narzędziem Visual Studio 2008 uruchomić program, 113

Projekt hardware owy utworzyć nowy projekt File New Project, 114

Projekt hardware owy wybrać typ projektu Project types: Visual C++, zaznaczyć Templates: Impulse C Project, 115

Projekt hardware owy nazwać projekt Name: (np. generator), kliknąć przycisk OK. 116

Projekt hardware owy Kopiowanie projektu skopiować pliki utworzone pod CoDeveloperem (generator.h, generator_hw.c, generator_sw.c) do katalogu roboczego Visual Studio ( Visual Studio 2008\Projects\generator\generator), dołączyć skopiowane pliki, do projektu pod Visual Studio Solution Explorer generator Add Existing Item, 117

Projekt hardware owy zaznaczyć odpowiednie pliki (generator.h, generator_hw.c, generator_sw.c) i kliknąć przycisk Add, 118

Projekt hardware owy Próbna kompilacja zbudować projekt (alt + shift + B). 119

Projekt hardware owy Eliminacja zbędnych bytów generator.h, Generator nie wymaga danych wejściowych /////////////////////////////////////////////////////////////////////////////// // // Generated by Impulse CoDeveloper // Impulse C is Copyright(c) 2003-2006 Impulse Accelerated Technologies, Inc. // #define STREAMDEPTH 1 /* buffer size for FIFO in hardware */ #define STREAMWIDTH 16 /* buffer width for FIFO in hardware */ #define INPUT_FILE "filter_in.dat" #define OUTPUT_FILE "filter_out.dat" 120

Projekt hardware owy Eliminacja zbędnych bytów generator_hw.c, Proces wejściowy nie jest potrzebny // Software process declarations (see generator_sw.c) extern void Producer(co_stream input); extern void Consumer(co_stream random); ( ) // // This is the hardware process. // void generator(co_stream input, co_stream random) Strumień wejściowy jest zbędny 121

Projekt hardware owy Eliminacja zbędnych bytów generator_hw.c, Brak danych wejściowych = licznik danych wejściowych jest zbędny IF_SIM(int samplesread; int sampleswritten;) ( ) Opis licznika jest zbędny do { // Hardware processes run forever IF_SIM(samplesread=0; sampleswritten=0;) co_stream_open(input, O_RDONLY, INT_TYPE(STREAMWIDTH)); co_stream_open(random, O_WRONLY, INT_TYPE(STREAMWIDTH)); Nie ma sensu otwierać coś, co nie istnieje 122

Projekt hardware owy Eliminacja zbędnych bytów generator_hw.c, Wyedytować tymczasowo na 1 while ( co_stream_read(input, &nsample, sizeof(co_int16)) == co_err_none ) { #pragma CO PIPELINE IF_SIM(samplesread++;) ( ) Opis licznika danych wejściowych jest zbędny Ten strumień nie istnieje co_stream_close(input); co_stream_close(random); IF_SIM(cosim_logwindow_fwrite(log, "Closing filter process, samples read: %d, samples written: %d\n", samplesread, sampleswritten);) Nie odczytamy coś, co nie istnieje 123

Projekt hardware owy Eliminacja zbędnych bytów generator_hw.c, void config_generator(void *arg) { co_stream input; Ten strumień nie istnieje co_stream random; co_process generator_process; co_process producer_process; co_process consumer_process; Ten proces nie istnieje 124

Projekt hardware owy Eliminacja zbędnych bytów generator_hw.c, Ten strumień nie istnieje input = co_stream_create("input", INT_TYPE(STREAMWIDTH), STREAMDEPTH); random = co_stream_create("random", INT_TYPE(STREAMWIDTH), STREAMDEPTH); producer_process = co_process_create("producer", (co_function)producer, 1, input); Ten proces nie istnieje generator_process = co_process_create("generator", (co_function)generator, 2, input, random); Wyedytować na 1. Usunąć strumień wejściowy 125

Projekt hardware owy Eliminacja zbędnych bytów generator_sw.c, void Producer(co_stream input) { ( ) Eliminujemy całego Producera } 126

Projekt hardware owy Próbna kompilacja alt + shift + B, jeśli succeeded, przejść dalej, jeśli failed, poprosić o pomoc prowadzącego. 127

Projekt hardware owy Czas na pytania 128

Projekt hardware owy Tworzenie modułu sprzętowego podmienić // Sample is now in variable nsample. // Add your processing code here. co_stream_write(random, &nsample, sizeof(co_int16)); na lfsr = (lfsr >> 1) ^ (-(lfsr & 1u) & 0xB400u); ++period; co_stream_write(random, &lfsr, sizeof(co_int16)); 129

Projekt hardware owy zadeklarować zmienne lsfr oraz period void generator(co_stream random) { co_int16 nsample; void generator(co_stream random) { uint16 lfsr; uint16 period; 130

Projekt hardware owy warunki początkowe zmiennych lsfr oraz period co_stream_open(random, O_WRONLY, INT_TYPE(STREAMWIDTH)); // Read values from the stream co_stream_open(random, O_WRONLY, INT_TYPE(STREAMWIDTH)); lfsr = 0xACE1u; period = 0; // Read values from the stream 131

Projekt hardware owy warunek pętli while, while ( 1 ) { #pragma CO PIPELINE while ( period < 0xFFFFu ) { #pragma CO PIPELINE zbudować projekt (alt + shift + B). 132

Symulacja Wstawienie breakpointów w kodzie programu (sw) 133

Symulacja Wstawienie breakpointów w kodzie programu (hw) 134

Symulacja Uruchomienie symulacji F5 (hw + sw) 135

Symulacja Obserwacja zmiennych (hw + sw) dodać zmienne lsfr oraz period do listy obserwowanych, umieścić kursor nad nazwą zmiennej menu kontekstowe Add Watch, 136

Symulacja zmienne i ich wartości pojawią się w nowym oknie Watch, prześledzić i porównać pracę obu generatorów (praca krokowa F5), zakończyć pracę debuggera (shift + F5). 137

Wnioski Model funkcjonalny RNG (Random Number Generator) opisany w językach C oraz Impulse C jest identyczny Symulacje można zredukować jedynie do symulacji układu opisanego w języku Impulse C Proces tworzenia układu sprowadził się do: umieszczenia behawioralnego opisu działania układu zapisanego w języku C wewnątrz pliku _hw, wykonania niewielkich modyfikacji kodu C do kodu Impulse C, innych zabiegów (np. warunek pętli while). 138

Generacja kodu HDL Opcje wybrać opcje projektu. generator menu kontekstowe Properties 139

Generacja kodu HDL Drzewo plików wybrać konfigurację sprzętową Configuration: Hardware, 140

Generacja kodu HDL dodać pliki sprzętowe i programowe Configuration Properties Impulse C Build Hardware files generator_hw.c, Software files generator_sw.c, generator.h, 141

Generacja kodu HDL dodać katalogi eksportowe Configuration Properties Impulse C Directories Hardware Export Directory export_hw, Software Export Directory export_sw. 142

Generacja kodu HDL Opcje generatora Configuration Properties Impulse C HDL Generation Target Generic (VHDL), Use std_logic Yes, Export Files Yes. 143

Generacja kodu HDL optymalizacje Configuration Properties Impulse C Optimization Constant Propagation Yes, Array Scalarization Yes, Relocate Loop Zastosuj. Invariants Yes, 144

Generacja kodu HDL Wybór kompilatora kompilacja sprzętowa (Hardware). Generacja kodu (alt + shift + B). 145

Generacja kodu HDL Wynik kompilacji 146

Analiza wygenerowanej logiki Analiza przybliżona bloki budowa, typ (np. pipeline), liczba stanów (Stages), maksymalne opóźnienie (Max. Unit Delay), latencja (Latency) wydajność (Rate) efektywna wydajność (Effective Rate). 147

Analiza wygenerowanej logiki operacje arytmetyczne/logiczne, typ (np. Adder), liczba, szerokość bitowa argumentów. 148

Analiza wygenerowanej logiki Informacje dodatkowe liczba wszystkich stanów (Total Stages), maksymalne opóźnienie pojedynczego bloku (Max. Unit Delay), ilość użytych bloków DSP (Estimated DSP). 149

Analiza wygenerowanej logiki Stage Master Explorer uruchomić narzędzie Stage Master Explorer CoDeveloper Tools Stage Master Explorer, 150

Analiza wygenerowanej logiki załadować plik xic generator.xic Otwórz, 151

Analiza wygenerowanej logiki przyglądnąć się wynikom, 152

Analiza wygenerowanej logiki przyglądnąć się pseudokodowi (Source Code) odpowiadającemu poszczególnym blokom zastanowić się nad funkcjonalnością pseudokodu, spróbować przełożyć (samodzielnie) pseudokod na wygenerowaną logikę. 153

Analiza wygenerowanej logiki przyglądnąć się diagramom przepływu danych (Datapath) odpowiadającym poszczególnym blokom zastanowić się nad funkcjonalnością diagramów przepływu, przyjrzeć się, jak realizowane są poszczególne operacje arytmetyczne i logiczne, zwrócić uwagę na opóźnienia wnoszone przez bloki, zastanowić się nad blokami konwersji typu danych. 154

Optymalizacja projektu Zespoły 1 4 wyedytować kod tak, by: operować jedynie na danych typu int, używać jedynie typów sprzętowo dedykowanych co_ (co_int??), używać jedynie operacji dedykowanych dla danego typu danych (IADD??). Zespoły 5 8 wyedytować kod tak, by: operować jedynie na danych typu uint, używać jedynie typów sprzętowo dedykowanych co_ (co_uint??), używać jedynie operacji dedykowanych dla danego typu danych (UADD??). 155

Optymalizacja projektu Kompilacja (programowa) projektu zespoły 1 4 zmiany w następujących po sobie stanach generatora. 156

Optymalizacja projektu Generacja logiki zespoły 1 4 brak widocznych zmian na poziomie logów. 157

Optymalizacja projektu Generacja logiki zespoły 1 4 zmniejszenie liczby stopni konwersji typów 158

Optymalizacja projektu Wnioski Zespoły 1 4. Zespoły 5 8. 159

Synteza Utworzyć projekt pod narzędziem ISE Design Suite uruchomić program, wybrać File New Project, 160

Synteza nazwać projekt Name: (np. generator), kliknąć przycisk Next, 161

Synteza wybrać rodzinę układów Family Virtex5, wybrać urządzenie Device XC5VLX220, wybrać obudowę Package FF1760, wybrać opóźnienie Speed -2, 162

Synteza wybrać narzędzie do syntezy Synthesis Tool XST (VHDL/Verilog), wybrać symulator Simulator Modelsim-?? VHDL, wybrać preferowany język Preferred Language VHDL, 163

Synteza wybrać standard analizy języka VHDL Source Analysis Standard VHDL- 93, kliknąć Next, w nowo otwartym oknie kliknąć Finish. 164

Synteza Dodać pliki źródłowe kliknąć ikonę Add Source, 165

Synteza zaznaczyć wszystkie pliki z podkatalogu hw katalogu export_hw, kliknąć Otwórz, 166

Synteza kliknąć OK. 167

Synteza Utworzyć bibliotekę impulse przełączyć widok na zakładkę Libraries, dodać nowe pliki menu kontekstowe New Source, 168

Synteza wybrać VHDL Library, nazwać bibliotekę File name: impulse, kliknąć Next, w nowym oknie kliknąć Finish. 169

Synteza dodać pliki do biblioteki impulse menu kontekstowe Add Source, 170

Synteza zaznaczyć wszystkie pliki z podkatalogu impulse_lib katalogu export_hw, kliknąć Otwórz, 171

Synteza kliknąć OK, 172

Synteza Synteza w zakładce Design uruchomić syntezę Synthesize XST menu kontekstowe Run. 173

Implementacja Implementacja w zakładce Design uruchomić implementację Implement Design menu kontekstowe Run. 174

Synteza i implementacja Zapoznać się z logami syntezy i implementacji Wnioski maksymalna częstotliwość pracy, zajętość zasobów logicznych, inne. 175

Synteza i implementacja Xilinx generic Wyeksportować nowe pliki HDL Visual Studio, Target Xilinx Generic (VHDL). Założyć nowy projekt ISE zaimportować nowe pliki źródłowe, zaimportować nowe pliki biblioteki impulse, wykonać syntezę i implementację. 176

Synteza i implementacja Xilinx generic Zapoznać się z wynikami syntezy i implementacji Wnioski maksymalna częstotliwość pracy, zajętość zasobów logicznych, porównanie z implementacją Generic (VHDL). 177

Podsumowanie Czas poświęcony na zaprojektowanie, testy, optymalizację, syntezę oraz implementację modułu sprzętowego w języku Impulse C jest krótki. Ilość narzędzi użytych podczas projektowania układu była duża, przez co projektowanie może wydawać się żmudne i długie. Czas poświęcony na przełączanie się między narzędziami jest długi, w porównaniu do czasu spędzonego na wykonaniu opisu behawioralnego projektowanego układu. 178

Podsumowanie Stage Master Explorer znacząco przyspiesza proces projektowania układu, gdyż eliminuje każdorazowo potrzebę wykonania syntezy i implementacji w celu sprawdzenia, czy układ dobrze działa oraz czy przeprowadzone działania odniosły zamierzony skutek. Kluczowym jest wybranie odpowiedniego PSP, który zapewni optymalny wariant implementacyjny. 179

Pytania sprawdzające 180