Pojedyncze wartości zadeklarowanego typu Ustawiane przed rozpoczęciem symulacji bez moŝliwości

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

Modelowanie złożonych układów cyfrowych (1)

Instrukcje sekwencyjne

Projektowanie automatów z użyciem VHDL

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

Krótkie wprowadzenie do ModelSim i Quartus2

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Sposoby projektowania systemów w cyfrowych

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

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

Projektowanie Scalonych Systemów Wbudowanych VERILOG

PRZERZUTNIKI: 1. Należą do grupy bloków sekwencyjnych, 2. podstawowe układy pamiętające

Wstęp do programowania

Instrukcje cykliczne (pętle) WHILE...END WHILE

Przykładowe pytania z części PSPICE. 1. Podaj zasady tworzenia pliku symulacyjnego. 2. Czy składnia PSPICE jest czuła na wielkość liter? 3.

Programowalne układy logiczne

Podział układów cyfrowych. rkijanka

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

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

VHDL. Behawioralny Strukturalny Czasowy. Poziom RTL

1 Wstęp. 2 Proste przykłady. 3 Podstawowe elementy leksykalne i typy danych. 6 Opis strukturalny. 7 Moduł testowy (testbench)

Cyfrowe układy scalone c.d. funkcje

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

Ćw. 9 Przerzutniki. 1. Cel ćwiczenia. 2. Wymagane informacje. 3. Wprowadzenie teoretyczne PODSTAWY ELEKTRONIKI MSIB

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Laboratorium przedmiotu Technika Cyfrowa

Języki opisu sprzętu VHDL Mariusz Rawski

Sławomir Kulesza. Projektowanie automatów asynchronicznych

Laboratorium Podstaw Techniki Cyfrowej

Proste układy sekwencyjne

Algorytmy i struktury danych

Projektowanie w VHDL

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Szkolenia specjalistyczne

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Pętla for. Wynik działania programu:

Układy logiczne. Wstęp doinformatyki. Funkcje boolowskie (1854) Funkcje boolowskie. Operacje logiczne. Funkcja boolowska (przykład)

Programowanie w Turbo Pascal

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

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

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

Język AHDL. Synteza strukturalna. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska H D L

Elementy języka VHDL. obiekty typy danych atrybuty pakiety i biblioteki instrukcje współbieżne instrukcje sekwencyjne. PUE-w3 1

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

LEKCJA. TEMAT: Funktory logiczne.

dwójkę liczącą Licznikiem Podział liczników:

Bloki anonimowe w PL/SQL

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Synteza logiczna. Rajda & Kasperek 2015 Katedra Elektroniki AGH 1

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Podstawy elektroniki cz. 2 Wykład 2

CZ1. Optymalizacja funkcji przełączających

Projektowanie Urządzeń Cyfrowych

Cyfrowe układy sekwencyjne. 5 grudnia 2013 Wojciech Kucewicz 2

Sławomir Kulesza. Projektowanie automatów synchronicznych

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Plan wykładu. Architektura systemów komputerowych. Cezary Bolek

ECDL Podstawy programowania Sylabus - wersja 1.0

Układy reprogramowalne i SoC Testbenches. Symulacja sterowana zdarzeniami.

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

W przypadku spostrzeżenia błędu proszę o przesłanie informacji na adres

Systemy Czasu Rzeczywistego FPGA

Program szkoleniowy. 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS

AHDL - Język opisu projektu. Podstawowe struktury języka. Komentarz rozpoczyna znak i kończy znak %. SUBDESIGN

Układy cyfrowe w Verilog HDL. Elementy języka z przykładami. wersja: cz.3

11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym

Sterowniki Programowalne (SP)

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Pętle. Programowanie komputerowe

VHLD Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL)

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

Programowalne układy logiczne

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Ada-95. Dariusz Wawrzyniak

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja

Wstęp do programowania

Podstawy Programowania C++

Układy sekwencyjne przerzutniki 2/18. Przerzutnikiem nazywamy elementarny układ sekwencyjny, wyposaŝony w n wejść informacyjnych (x 1.

Temat: Projektowanie i badanie liczników synchronicznych i asynchronicznych. Wstęp:

Asynchroniczne statyczne układy sekwencyjne

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

Języki skryptowe w programie Plans

Wstęp do programowania 2

Podstawy elektroniki cyfrowej dla Inżynierii Nanostruktur. Piotr Fita

Język programowania PASCAL

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

Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5.

Zasady Programowania Strukturalnego

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.

Projektowanie. Projektowanie mikroprocesorów

Systemy Czasu Rzeczywistego FPGA

Projektowanie hierarchiczne Mariusz Rawski

Transkrypt:

Stałe - constant Pojedyncze wartości zadeklarowanego typu Ustawiane przed rozpoczęciem symulacji bez moŝliwości późniejszych zmian Deklarowane w ciele architektury Widoczne dla całej architektury architecture test_arch of circ is constant pi:real:=3.14159; begin......... end test_arch; 1 Zmienne i sygnały Wykorzystywane do przenoszenia danych w obrębie elementów Traktowane róŝnie podczas symulacji i syntezy Sygnały traktowane są jako połączenia ( druty - wires) Zmienne i stałe traktowana analogicznie do odpowiedników w językach programowania, wykorzystywane do modelowania zachowania systemu 2 1

Zmienne Deklaracja wewnątrz sekwencyjnych elementów VHDL (process, procedure, function) Deklaracyjna część konstrukcji process Dostępność ograniczona do procesu Zasięg lokalny brak moŝliwości deklaracji umoŝliwiającej dostęp z więcej niŝ jednego procesu Wartości początkowe ZaleŜne od typu zmiennej o przy braku inicjalizacji wartość początkowa przyjęta jako najmniejsza wartość typu zmiennej o dla typu tablicowego poszczególne elementy przyjmują wartości jak w punkcie poprzednim 3 Zmienne Zmiana wartości realizowana za pomocą operatora przypisania zmiennej w trakcie symulacji Przypisanie zmiennej natychmiast zastępuje jej dotychczasową wartość variable iloczyn: integer := 0; process is variable zmienna: real; begin... end process; iloczyn := iloczyn * 2; zmienna := 4.332; 4 2

Uaktualnianie zmiennych process (x) is variable licznik_x: integer; begin licznik_a:=licznik_a + 1; end process; Jeśli zachodzą zdarzenia dotyczące sygnału x aktywujące proces zmienna licznik_a jest inkrementowana. Po zakończeniu symulacji zmienna licznik_a zawiera łączną liczbę zdarzeń na sygnale a. signal a,b:integer; process (x) is variable z1,z2: integer; begin z1 := a z2; b <= -z1; z2 := b+z1*5; end process; Jeśli w pierwszym przebiegu procesu z2 otrzyma wartość 2, to z2=2 zostanie wykorzystana do wyznaczenia z1 w pierwszej instrukcji procesu 5 Sygnały Reprezentacja portów I/O jednostki projektowej oraz wewnętrznych sygnałów architektury Zakres: Sygnał I/O obowiązuje dla wszystkich architektur w ramach jednostki projektowej Sygnały wewnętrzne ciało architektury o Deklaracja w części deklaracyjnej architektury o MoŜliwość inicjalizacji w trakcie deklarowania 6 3

Przypisanie sygnałów Wartość sygnału wyznaczona po obliczeniu wartości wyraŝenia (wynik podlega kontroli typów) ZaleŜności czasowe Przypisanie sygnału moŝe zostać przesunięte o określony interwał czasowy signal WR: integer; WR := dane_we after 20 ns; architecure test of rejestr is signal WR:integer:=0;... begin process(dane) begin... WR<=dane; 7 Zmienne vs.. Sygnały Składnia VHDL: Zmienne: ograniczony zakres (process) Sygnały: większy zasięg (moduł) Symulacja Zmienne: przypisanie natychmiastowe Sygnały: przygotowanie do wykonania w następnym cyklu symulacji, uaktualniane tylko raz przy końcu procesu Synteza Zmienne: połączenia ( druty ) w netliście Sygnały: w ramach składni reagującej na sygnał zegarowy syntezowane do elementów pamięciowych 8 4

Zmienne vs.. Sygnały 9 Zmienne vs.. Sygnały przykład 10 5

Zmienne vs.. Sygnały analiza przykładu Sygnały uaktualniane przy końcu procesu Dla sygnału ma miejsce tylko jedno przypisanie Po ostatnim rozwinięciu pętli, ostatnie przypisanie dotyczy niezdefiniowanej wartości Sytuacja powtarza się przy kaŝdym wywołaniu procesu Inicjalizacja sygnału parity_tmp powoduje nieskończoną pętlę (parity_tmp) występuje w liście czułości procesu KaŜda zmiana parity_tmp powoduje kolejne wywołanie procesu 11 Zmienne vs.. Sygnały synteza przykładu Sygnał parity_tmp traktowany jest jak połączenie parity_tmp<=parity_tmp XOR in1 powoduje sprzęŝenie wokół bramki XOR; zamiast układu kombinacyjnego mamy sekwencyjny 12 6

Zmienne vs.. Sygnały przykład poprawny 13 Inicjalizacja zmiennych Inicjalizacja jeśli jest wymagana, przeprowadzana tylko raz Narzędzia syntezy ignorują inicjalizację zmiennych i sygnałów w części deklaracyjnej Inicjalizacja moŝe być wykonana za pomocą przypisania sygnałów lub zmiennych Zachowanie wartości zmiennych niezaleŝnie od aktywacji i zatrzymania procesu (cecha przydatna przy tworzeniu pamięci ROM) 14 7

Zmienne w procesach zawierających sygnał taktujący Zmienne i sygnały traktowane są odmiennie przez narzędzia syntezy Przypisanie wartości sygnałom odpowiada wykorzystaniu przerzutnika 15 Przykład mieszany 16 8

Synteza VHDL Pierwotne zastosowanie VHDL - symulacja Narzędzia syntezy automatycznie decydują o wykorzystaniu standardowych bloków cyfrowych (przerzutniki, rejestry trójstanowe, logika kombinacyjna) Niektóre elementy składniowe działają poprawnie tylko w symulacji i są ignorowane przy syntezie Wartości początkowe: trudności w realizacji w sprzęcie WyraŜenia czasowe: jw. Lista czułości procesu: tylko symulacja 17 Synteza VHDL process (x) is begin c<=a OR b; end process; Symulacja przed syntezą Synteza Weryfikacja po syntezie 18 9

Wykorzystanie w syntezie przerzutników Przerzutniki wymagają sygnału taktującego, operują na jego zboczach Zbocza sygnału modelowane następująco: CLK event and CLK= 1 - zbocze narastające CLK event and CLK= 0 - zbocze opadające Sygnały i zmienne wewnątrz bloku zamkniętego zegarem są traktowane jako przerzutniki 19 Wykorzystanie w syntezie przerzutników NaleŜy unikać bramkowania oraz wewnętrznego generowania sygnału zegarowego Sygnał zegarowy jest silnie zaleŝny od technologii i jego bramkowanie moŝe powodować zakłócenia 20 10

Resetowanie przerzutników Synchroniczny RESET Asynchroniczny RESET 21 Wyjścia rejestrowe Wyjścia determinowane przez logikę kombinacyjną Zalety wyjścia rejestrowego: Przewidywalne opóźnienia Jednoczesna zmiana wyjść 22 11

Logika kombinacyjna Logika kombinacyjna w syntezie jest wynikiem zastosowania wyraŝeń boolowskich Instrukcje warunkowe determinują zastosowanie multiplekserów 23 Połą łączenie buforów w i przerzutników Konstrukcja wyjść uwzględniająca bufory trójstanowe i rejestry moŝe wykorzystywać rejestrowe wyjście bramkujące bufor 24 12

Modelowanie behawioralne 25 Architektura behawioralna Opisuje funkcjonalność w sposób abstrakcyjny Zawiera składnię process Zbiór instrukcji wykonywanych sekwencyjnie w przeciwieństwie do instrukcji poza składnią process Analogia do języków programowania Składnia sekwencyjna zawiera obliczenie wyraŝenia, przypisanie wartości zmiennym i sygnałom, instrukcje warunkowe, wywołanie podprogramów 26 13

Proces Typowy element składni VHDL Wykorzystywana do lepszej wizualizacji zmian zachodzących w projekcie Elementy procesu wykonywane są sekwencyjnie WaŜna jest kolejność kodowania 27 Lista czułości ci procesu Lista sygnałów, na które proces reaguje Zdarzenie na dowolnym sygnale z listy czułości powoduje uruchomienie ( wykonanie ) procesu Instrukcje w procesie wykonywane są sekwencyjnie Po wykonaniu instrukcji proces jest wstrzymywany do momentu wystąpienia kolejnego zdarzenia z listy 28 14

Lista czułości ci procesu 29 Lista czułości ci procesu i synteza Proces jest brany pod uwagę w symulacji Niepoprawna symulacja z powodu braku prawidłowej listy czułości jest przezroczysta z punktu widzenia sytnezowanego układu Kod zawierający błędy symulacji moŝe zostać zsyntezowany do poprawnego układu. MoŜe to jednak stwarzać problemy z weryfikacją 30 15

Lista czułości ci procesu i instrukcja WAIT Lista czułości i WAIT wzajemne wykluczenie WAIT alternatywna metoda zawieszania procesu wait on sensivity list; wait until sensivity list; wait for sensivity list; wait on sensivity_list until boolean_expr for time_expr; 31 Generowanie sygnału u zegarowego Tylko symulacja (testbench) Brak wejścia do procesu 32 16

Dopuszczalne instrukcje if case wait pętla (for, while, loop) Instrukcje współbieŝne (when, with) są zabronione wewnątrz procesów 33 If 34 17

Case 35 If czy Case? If/else jeśli zachowanie układu zaleŝy od więcej niŝ jednego sygnału Case jeśli zachowanie układu moŝe zaleŝeć od jednego sygnału If/else syntezuje się do kaskadowych multiplekserów Case syntezuje się do pojedynczego multipleksera If/else jeśi istotna jest powierzchnia układu (układ mały i wolny) Case jeśli szybkość jest istotna (układ duŝy i szybki) 36 18

Ifnstrukcje pętli Wyklorzystywane do iterowania zestawu instrukcji sekwencyjnych 37 For Przykład: obliczenie y^n, N>2 Pętla wykonuje się N-1 razy Inkrementacja licznika przy końcu pętli Brak konieczności bezpośredniej deklaracji licznika pętli Zakres moŝe być całkowity lub wyliczeniowy 38 19

While Przykład: obliczenie y^n, N>2 Zakończenie pętli, gdy warunek przyjmuje wartość false Loop Brak schematu iteracji, wyjście z pętli, gdy wystąpi warunek jej zakończenia 39 Komunikacja między procesami 40 20