Projektowanie systemów cyfrowych z wykorzystaniem języka VHDL Układy kombinacyjne.

Slides:



Advertisements
Podobne prezentacje
REALIZACJA REGULATORA PID W UKŁADZIE FPGA
Advertisements

Katarzyna Szafrańska kl. II ti
Inżynieria Systemów Programowalnych Część I
JĘZYK VHDL Geneza: komputerowa symulacja układu cyfrowego, Departament Obrony USA opis skomplikowanego systemu w postaci schematu jest nieczytelny, szybkie.
Architektura systemów komputerowych
typy całkowite (całkowitoliczbowe)
VHDL VHDL – akronim: VHSIC (Very High Speed Integrated Circuit) Hardware Description Language Inicjatywa Departamentu Obrony z 1980 Cel: osiągnąć znaczny.
CPU.
Instrukcje strukturalne
Nośniki sygnałów - przykład Nośniki sygnałów – przykład.
OBJECT PASCAL Marzena Szałas.
ZŁOŻONOŚĆ OBLICZENIOWA
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 6: Tablice, rekordy, zbiory.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 5: Typy porządkowe, wyliczeniowe i okrojone. Definiowanie.
Rekursja Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Kurs Pascala – spis treści
Najczęściej popełniane błędy w VHDL’u
Typy standardowe Typ Boolean Typ Integer Typ Float Typ Character Operacje wejścia-wyjścia.
Pakiety i ATD 1 Definicja. Pakietem albo jednostką programową nazywamy grupę logicznie powiązanych elementów, które mogą być typami, podtypami, obiektami.
Typy pochodne 1 Często dogodnie jest wprowadzić nowy typ, który jest podobny do istniejącego, niemniej jednak różny. Niech T będzie pewnym typem. Możemy.
Instrukcje 1 Definicje wstępne Formalny opis akcji wykonywanej przez komputer nazywamy instrukcją ( statement), Każda instrukcja kończona jest średnikiem.
Ogólne jednostki programowe 1
Tablice jednowymiarowe 1
Typy danych – podstawy 1 W Adzie wszystkie dane muszą być określonego typu. Definicja Typ danych (data type) jest to zbiór wartości i operacji, które można.
Typy prywatne 1 Typy prywatne W Adzie typy prywatne (private types) służą do bezpiecznego udostępniania danych zdefiniowanych w pakiecie, z którego korzysta.
Rekordy 1 Definicja Typ strukturalny nazywamy typem rekordowym, jeżeli zawiera pewną liczbę nazwanych składowych, które mogą być różnych typów. Dostęp.
Stałe i zmienne 1 Definicja Literałem (literal) nazywamy wartość danej jawnie pisaną w programie Przykład Ada.Float_Text_Io.Put ( ); Definicja Stałą
Wykład 2 struktura programu elementy języka typy zmienne
Instrukcja skoku GO TO etykieta Np. GO TO 100 ….. 100WRITE (*,*) Przeskok do instrukcji 100 Uwaga! NIE WOLNO skakać do wnętrzna złożonych instrukcji warunkowych.
PASCAL Dr Anna Kwiatkowska.
Wprowadzenie do programowania w języku Turbo Pascal
KOMPUTEROWE WSPOMAGANIE PRAC BADAWCZYCH FORTRAN - wprowadzenie Adam FIC INSTYTUT TECHNIKI CIEPLEJ.
Typy wyrażenia, schematy blokowe, writeln, readln, if, pętle
Podprogramy.
Typy złożone, case, stałe. Typ zbiorowy type typ_zb = set of typ_podstawowy; Typem podstawowym może być tylko typ porządkowy. Typem podstawowym może być
Metody Matematyczne w Inżynierii Chemicznej Wprowadzenie do laboratorium.
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE WYKŁAD 2
Programowanie w języku Fortran 95
Słowa kluczowe oraz nazwy obiektów i klas rozpoczynaj od dużej litery np. Loop, Dim, FileStream Rozpoczynaj nazwę zmiennej od małej litery stosując styl.
Podstawy programowania
Podstawy informatyki 2013/2014
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
Funkcje logiczne i ich realizacja. Algebra Boole’a
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Wyrażenia w Turbo Pascalu.
PL/SQL Zajęcia nr II PL/SQL(2) M. Rakowski - WSISiZ.
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
1 Wykład 8 Podprogramy. 2 Pojęcie i istota stosowania dzielenie programu na części (logicznie spójne) - nazwane - niezależne od pozostałych części - z.
Programowanie strukturalne i obiektowe
Instrukcja warunkowa i wyboru
Podstawy informatyki 2013/2014
Visual Basic for Applications Poziom podstawowy Zajęcia 2
Wykład 10 typ zbiorowy rekurencja.
Składnia instrukcji warunkowej if…
Ogólna struktura programu w TP
URZĄDZENIA TECHNIKI KOMPUTEROWEJ
Podstawowe struktury danych. Typy danych.
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka Podstawy.
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
VHDL Ernest Jamro, Paweł Russek C3 p. 504
VHDL Ernest Jamro, Paweł Russek C3 p. 504
Projektowanie systemów cyfrowych z wykorzystaniem języka VHDL Układy sekwencyjne.
VHDL Ernest Jamro, Paweł Russek C3 p. 504
Rejestry przesuwne, sumatory
Projektowanie systemów cyfrowych z wykorzystaniem języka VHDL
Dane, zmienne, instrukcje
Język C++ Typy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Zapis prezentacji:

Projektowanie systemów cyfrowych z wykorzystaniem języka VHDL Układy kombinacyjne

Wprowadzenie VHDL - Very (high speed integrated circuits) Hardware Description Language Etapy projektowania: 1.Zdefiniowanie założeń i wymagań projektowych 2.Opisanie projektu w języku VHDL 3.Kompilacja 4.Symulacja kodu źródłowego 5.Synteza, optymalizacja i dopasowanie projektu 6.Symulacja zrealizowanego projektu 7.Zaprogramowanie układu

NAND3 library ieee; use ieee.std_logic_1164.all; entity nand3 is -- deklaracja jednostki nand3 port (x1, x2, x3 in bit; y out bit); end nand3; architecture bramka_nand of nand3 is begin y <= not (x1 and x2 and x3); end bramka_nand;

Biblioteki i pakiety Biblioteka to miejsce do którego mogą być kompilowane jednostki projektowe Rodzaje bibliotek: ieee, work Biblioteka ieee zawiera jednostki projektowe standardu IEEE: –std_logic_1164 –numeric_std –numeric_bit Pakiet stanowi jednostkę projektową, w której zdefiniowane są typy, komponenty, funkcje, itp. Deklaracja biblioteki i pakietu: library ieee; use ieee.std_logic_1164.all;

Entity entity - deklaracja interfejsu zawiera opis wejść i wyjść projektowanego układu ( port ) oraz może zawierać opis wartości parametrów ( generic )

Entity - składnia entity nazwa_jednostki is -- deklaracja jednostki [generic (lista_deklarowanych_stalych);] [port (lista_sygnalow_wej. in|inout nazwa_typu; lista_ sygnalow_wyj. out|buffer|inout nazwa_typu);] end nazwa_jednostki; Przykład: entity nand3 is -- deklaracja jednostki nand3 port (x1, x2, x3 in bit; y out bit); end nand3;

Porty - rodzaje out in inoutbuffer

Typy skalarne Typy skalarne: integer – liczby całkowite zakres predefiniowany od – (2 31 – 1) do + (2 31 – 1) można ograniczyć zakres, np: type przedzial is range -10 to +10; range – pozwala uzyskać prostsze struktury logiczne po syntezie subtype natural is integer range 0 to ; subtype positive is integer range 1 to ; real – liczby rzeczywiste zakres predefiniowany od – 1.0E+38 do + 1.0E+38 można ograniczyć zakres, np: type przedzial is range –10.0 to +10.0; bit – typ bitowy zakres to znaki: ‘0’ oraz ‘1’

Typy skalarne std_ulogic|std_logic – typ dziewięciowartościowy (IEEE Std ) ′U′, -- stan niezainicjowany ′X′, -- stan nieznany ′0′, -- stan 0 ′1′, -- stan 1 ′Z′, -- stan wysokiej impedancji ′W′, -- słaby stan nieznany (odczyt) ′L′, -- słabe 0 (odczyt), równoważne połączeniu przez rezystor z masą ′H′, -- słabe 1 (odczyt), równoważne połączeniu przewodu przez rezystor z napięciem zasilania ′-′, -- stan nieokreślony, podobnie jak ′X′ Stosowane tylko do symulacji

Typy skalarne std_logic kontra std_ulogic Typ std_logic jest podtypem std_ulogic boolean – typ boolowski zakres to wyrażania: true oraz false character – typ znakowy zakres to: 128 znaków kodu ASCII, sposób zapisu: ‘a’, ‘b’

Typy skalarne Typy wyliczeniowe - definiowane przez listę nazw lub literałów (pojedynczych cyfr lub liter) type kolory is (niebieski, zielony, czerwony); type litery is (′A′,′B′,′C′,′c′); Typy fizykalne - stosowane do zdefiniowania jednostek miar - nie mają fizycznego znaczenia dla syntezy - jedynym predefiniowanym typem fizykalnym jest typ time type time is range – to units fs;

Typy złożone array - typy macierzowe (tablicowe) - obiekt składa się z wielu elementów tego samego typu - najczęściej stosowane: type bit_vector is array (natural range <>) of bit; type std_logic_vector is array (natural range <>) of std_logic; type std_ulogic_vector is array (natural range <>) of std_ulogic; - definicja magistrali: signal a: std_logic_vector(3 downto 0); - macierz dwuwymiarowa: type table_8x4 is array (0 to 7, 0 to 3) of bit;

Architecture architecture – obiekt zawierający opis zawartości jednostki projektowej, czyli funkcji realizowanej przez układ. Możliwe są trzy style opisu architektury

Architecture – składnia architecture nazwa_architektury of nazwa_jednostki is [czesc_deklaracyjna: typy, sygnaly_wewnetrzne, stale] begin instrukcja_wspolbiezna; --cialo architektury end nazwa_architektury; Przykład: architecture bramka_nand of nand3 is begin y <= not (x1 and x2 and x3); end bramka_nand;

Sygnały signal – obiekt reprezentujący połączenie pomiędzy składnikami projektu – sygnałem może być typ skalarny, nie dopuszcza się sygnałów typu wyliczeniowego lub plikowego signal nazwa_sygnalu: nazwa_typu [ograniczenie][:= wyrazenie]; Przykład: signal a: integer; signal b: std_ulogic_vector(0 to 7); Przypisanie wartości do sygnału: nazwa_sygnalu <= wartość | wyrażenie Przykład: b <= ”110X0Z01”;

Zmienne variable – obiekt przechowywujący informację lokalną w procesie lub podprogramie – przypisanie wartości do zmiennej jest natychmiastowe [shared] variable nazwa_zmiennej: nazwa_typu [ograniczenie] [:=wyrazenie]; Przykład: variable a: bit; variable b: std_logic_vector(3 downto 0); Przypisanie wartości do zmiennej: nazwa_zmiennej := wartość | wyrażenie; Przykład: b := „1000”;

Stałe constant - obiekt, którego wartość jest zawsze stała - musi mieć wartość początkową - zakres „widzialności” stałej jest zależny od miejsca deklaracji constant nazwa_stalej: typ := wyrazenie; Przykład: constant pi: real := ;

Operatory Logiczne: and or nand nor xor xnor not Relacji: = \= => Przesunięć: sll srl sla sra rol ror Dodawania: + - & Znaku: + - Multiplikatywne: * / mod rem Różne: ** abs

Instrukcje współbieżne <= - przypisanie podstawowe when-else – przypisanie warunkowe –należy wymienić wszystkie możliwe warunki lub wpisać wyrazenie_koncowe, które domyślnie spełnia warunek when others –warunki badane są kolejno i realizowane jest przypisanie dla pierwszego spełnionego warunku Składnia: sygnal <= wyrazenie when warunek [and | or warunek] else wyrazenie_koncowe; Przykład: y <= a when s = ′0′ else b when s = ′1′ else ′X′;

Instrukcje współbieżne with-select-when – przypisanie selektywne -do sygnału zostaje przypisana taka wartość, która jest uzależniona od wartości sygnału selekcji -wszystkie wartości wyboru muszą być określone i różne Składnia: with wybor select sygnal <= wyrazenie when wartosc_wyboru, sygnal <= wyrazenie_koncowe when others; Przykład: with s select x <= a when ″00″, b when ″01″, c when ″10″, d when ″11″, ″--″ when others;

Instrukcje współbieżne process – jedna z konstrukcji projektowych - proces może być w danej chwili wykonywany lub wstrzymany - lista czułości określa, które sygnały powodują wykonanie procesu (w układzie kombinacyjnym zawiera wszystkie jego wejścia) Składnia: [etykieta:] process [(lista_wrazliwosci)][is] [czesc_deklaracyjna ] -- deklaracje zmiennych, stałych, typów begin [wait on (lista_wrazliwosci);] -- przy nieokreślonej liście -- wrażliwości przy process; -- „czekaj na zmianę sygnałów” instrukcja_ sekwencyjna; end process [etykieta];

Instrukcje sekwencyjne if-then-elsif-else – sekwencyjne przypisanie warunkowe - stosowane wewnątrz procesu - warunki są typu boolean, warunki są sprawdzane kolejno Składnia: if warunek then instrukcja sekwencyjna; elsif warunek then instrukcja sekwencyjna; else instrukcja sekwencyjna; end if; Przykład: if R = ′1′ then Q <= ′0′; elsif C = ′1′ then Q <= D; else Q <= Q; end if; cdn