uc2 sciaga

. Napisz program, który realizuje podany układ prawdy: T = {1, 2, 5, 9, 12} • z użyciem instrukcji wyboru CASE

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity ent is

port( a : in std_logic_vector(3 downto 0);

x : out STD_LOGIC := '0' );

end ent;

architecture a1 of ent is

begin

process (a)

begin

case a is

when "0001" => x <= '1'; -- 1

when "0010" => x <= '1'; -- 2

when "0101" => x <= '1'; -- 5

when "1001" => x <= '1'; -- 9

when "1100" => x <= '1'; -- 12

when others => x <= '0'; -- pozostale liczby

end case;

end process;

end a1;

z użyciem przypisania selektywnego WITH SELECT

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity ent is

port(

a : in std_logic_vector(3 downto 0);

x : out STD_LOGIC := '0' );

end ent;

architecture a1 of ent is

Begin

with a selekt

x <= '1' when "0001", -- 1

'1' when "0010", -- 2

'1' when "0101", -- 5

'1' when "1001", -- 9

'1' when "1100", -- 12

'0' when others; -- pozostale liczby

end a1;

Wykres symulacji będzie taki sam za każdym razem, czyli po nadaniu wymuszenia typu COUNTER dla sygnału „a” na wyjściu otrzymamy „jedynkę” dla wartości, które znajdują się w tablicy prawdy.

2. Czym różni się sygnał od zmiennej? Sygnały są funkcjami czasu. Zmienne są stosowane pomocniczo tylko w obrębie procesu lub podprogramu.

3. Do czego służy język VHDL? Język VHDL jest bardzo popularnym językiem opisu sprzętu. Zadaniem języka jest wspieranie całości procesu projektowania układów cyfrowych poczynając od symulacji poprzez modelowanie, testowanie, implementacje oraz tworzenie dokumentacji. Podstawowym celem języka VHDL jest "zaprogramowanie" programowalnego układu logicznego niezależnie od technologii w jakiej ten układ został wytworzony (ASIC, FPGA, PLD, itp.).

Typy- operuje się na roznych typach danych które okresla się poprzez podane nazwy ,zbioru wartości i zbioru operacji. Typy dzieli się na klasy :

Typy skalarne-takie jak liczby całkowite i zmiennoprzecinkowe, typy wyliczane, oraz typy fizyczne

-typy zlozone-takie jak talice(array) elementow tego samego typu skalarnego , zalicza się również rekordy(records) , oraz pliki (files)

Typy wektorowo skalarne- wektory zerojedynkowe, które do operacji arytmetycznych reprezentuja liczby naturalne lub całkowite ,zapisane w naturalnym kodzie dwojkowy

Liczby całkowite(integer), liczby rzeczywiste(Real),typ bitowy(bit), typy wielowartościowe std_ulogic i std-_logic, typ boolowski boolean, typ znakowy charakter, typ fizyczny czasowy time, typy wyliczeniowe

Porty – nazw portow które sa równoznaczne z nazwami końcówek opisanego układu i nazwami odpowiednich sygnałów na końcówkach, rodzaje portow

Wejściowych-in - jednokierunkowy

Wyjściowych-out-jednokierunkowy

Buffet-dopuszcza do odczytu tylko wewnętrzne źródło sygnalu,a na zewnatrz może yc urzytytylko do odczytu na przewodzie, na którym nie występują inne zrodla sygnalow

Dwukierunkowych-inout

Style architektury:

Styl behawioralny(behaviour)-stosuje się do opisow algorytmicznych, z uzyciem instrukcji procesu i instrukcj sekwencyjnych . dlatego ten styl okresla się również jako sekwencyjny. W ten sposób okresl się sekwencje stanow, układy cyfrowe z pamięcią-automaty,programy testujące oraz podprogramy

Styl pzeplywowy-stosuje się do opisu przepływu danych podczas ich przetwarzania przez układy kombinacyjn , takie jak sieci bramkowe, multipleksery i układy arytmetyczne, do pisu stosuje się instrukcje współbieżne

Styl strukturalny- stosuje się do opisu układu utworzonego z pewnej liczby układów składowych, których opisy VHDL przygotowano wczesniej, jest to w istocie opis polaczen układów składowych(komponentow)

Obiekty-do zapisu i pamiętania danych w jezyku VHDL sluza obiekty. Podtswowymi sa:

Sygnaly- sa funkcja czasu co oznacza ze wartości sygnałów sa przyporządkowane wartościom na osi czasu podczas symulacji dzialania oisanych układów

Zmienne- nie sa funkcjami czasu (prawdopodobnie jak w standardowych jezykach programowania) i mogą być stosowane pomocniczo tylko w obrebie procesu lub podprogramu do zapamiętywania wynikow pośrednich wartości zmiennych sa uzyskiwane w rezultacie operacji przypisanai do zmiennej

Stałe-umozliwiaja przypisanie nazwy wartościom Stalym określonego typu, sluzy do tego deklaracja constant.

Pliki- sluza do trwalego przechowywania danych,co wykorzystuje się glownie przy wykonaniu testow

Atrybuty-w VHDL predefiniowane sa liczne atrybuty, pozwalające na identyfikacje pewnych cech deklarowanych typow i obiektow, pozwala to na łatwiejsze tworzenie bardziej ogolnych modeli układowych , atrybut związany jest z obiektem lub typem przez apostrof, najczęściej związane ztypami i sygnalami, popularnym atrybutem jest ‘event

Instrukcje wspolbierzne- instrukcjami wspolierznymi sa wszystkie instrukcje, k6 takich instrukcjitóre można bezpośrednio wypisac w ciele architektury, w VHD istnieje :

Przypisanie do sygnalu(<=)

Instrukcja procesu process

Instrukcja wspobierznego wywolowyania procedury

Instrukcja laczenia komponentow port map

Instrukcja owielania generale

Instrukcja blokowa Block

Wspolbierzna instrukcje przypisania do sygnaly stosuje się w następujących postaciach

Przpisanie podstawowe do sygnal ma skladnie- sygna<=[transport] wyrazenie [after odcinek_czasu];

Gdzie wyrazenie musi dawac wynik tego samego typu co sygnal, opcjonalna klauzura after slyzy do opisu opóźnień w realizacji operacji przypisania

Przypisanie warunkowe when-else- ma sladnie sygnal <={ wyrazenie when warunek [and | Or warunek] else } wyrazenie_koncowe; - wynik sprawdzenia warunku jest typu boolean ,a wiec może być rowny fase lub true. Gdy warunek po slowie when jest spelnony (true, to nastepuje przypisanie wyraznie sprzed slowa when i wykonania instrukcji się konczy,

Przypisanie selektywne with-select- with wybor select

{sygnal<= wyrazenie wqhen wartość_wyboru,}

Sygnal <= wyazenie_koncowe when others;

W tej instrukcji należy wynienic wszystkie możliwe wartości wyboru , aby nie dopuścić do tworzenia zbędnych przerzutnikow zatrzaskowyc podczas syntezy

Multiplekser 4 na 1

Enity muxg8_4_1 is

Port(a,b,c,d : In std_logic_vector(7 downto 0);

Adr : std_logic_vector (1 downto 0);

Y :out std_logic_vector(7 downto 0));

End muxg8_4_1;

Architecture a1 of muxg8_4_1 is

Beign

With adr select

Y <= a when “00”,

B when “00”;

C when “10”;

D when”11”,

“xxxxxxxxx” when others;

End a1

Instrukcje selektywne umozliwiaja opsi dzialania układów w postaci uporzadkawanej sekwencji zdarzen w czasie.

Instrukcje sekwencyjne :

-przypisanie do zmiennej (:=) ;

-instrukcja czekania wait;

-instruckcja warunkowa if –then-else;

-instrukcja wyboru case;

-instrukcja petli loop o zwiazanie instrukcje exit i next;

-instrukcja pusta null;

-instrukcja testowa assert;

FUNCKJA przed uzyciem musi być najpierw zadeklarowana . deklaracje funkcji umieszca się lokalnie w czesci deklaracyjnej architektury opisywanego modulu albo w nagłówku procesu albo globalnie w odrębnym i zadeklarowanym pakiecie

Procedura może zwaracac wiecej wynikow niż jeden . podobnie jak funkcja procedura najpierw musi być zadeklarowana albo globalnie w pakiecie albo lokalnie w deklaracji architektury albo w nagłówku procesu nastepnie procedura może być wykonana w ciele architektury jakio instrukcja wspolbiezna lub w obrebie procesu

n-bitowy rejestr równoległy ( wykorzystując model przerzutnika d):

entity regn is

generic (n: positive :=8);

port (C,R : in std_logic;

D: in std_logic_vector(n-1 downto 0);

Q: out std_logic_vector(n-1 downto 0);

End regn;

Architecture a1 of regn is

Begin

Process(R,c)

Begin

If R=’1’ then Q <= (others =>’0’);

Elsif rising_edge (C) then

Q<=D;

End if;

End process;

End a1;

Decoder ¼

Enity regn is

Port( a: in std_logic_vector(1 downto 0);

Z: out std_logic_vector(3 downto 0);

End regn

Architecture a1 of regn is

Z<= “0001” when A=”00”else lub “0010” when A=”00”,

“0100” when A=”00”else

“1000”

Lub

with a select

Z <= “0001” when A=”00”,

“0010” when A=”00”else

“0100” when A=”00”,

“1000” when others;

. Napisz program, który realizuje podany układ prawdy: T = {1, 2, 5, 9, 12} • z użyciem instrukcji wyboru CASE

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity ent is

port( a : in std_logic_vector(3 downto 0);

x : out STD_LOGIC := '0' );

end ent;

architecture a1 of ent is

begin

process (a)

begin

case a is

when "0001" => x <= '1'; -- 1

when "0010" => x <= '1'; -- 2

when "0101" => x <= '1'; -- 5

when "1001" => x <= '1'; -- 9

when "1100" => x <= '1'; -- 12

when others => x <= '0'; -- pozostale liczby

end case;

end process;

end a1;

z użyciem przypisania selektywnego WITH SELECT

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity ent is

port(

a : in std_logic_vector(3 downto 0);

x : out STD_LOGIC := '0' );

end ent;

architecture a1 of ent is

Begin

with a selekt

x <= '1' when "0001", -- 1

'1' when "0010", -- 2

'1' when "0101", -- 5

'1' when "1001", -- 9

'1' when "1100", -- 12

'0' when others; -- pozostale liczby

end a1;

Wykres symulacji będzie taki sam za każdym razem, czyli po nadaniu wymuszenia typu COUNTER dla sygnału „a” na wyjściu otrzymamy „jedynkę” dla wartości, które znajdują się w tablicy prawdy.

2. Czym różni się sygnał od zmiennej? Sygnały są funkcjami czasu. Zmienne są stosowane pomocniczo tylko w obrębie procesu lub podprogramu.

3. Do czego służy język VHDL? Język VHDL jest bardzo popularnym językiem opisu sprzętu. Zadaniem języka jest wspieranie całości procesu projektowania układów cyfrowych poczynając od symulacji poprzez modelowanie, testowanie, implementacje oraz tworzenie dokumentacji. Podstawowym celem języka VHDL jest "zaprogramowanie" programowalnego układu logicznego niezależnie od technologii w jakiej ten układ został wytworzony (ASIC, FPGA, PLD, itp.).

Typy- operuje się na roznych typach danych które okresla się poprzez podane nazwy ,zbioru wartości i zbioru operacji. Typy dzieli się na klasy :

Typy skalarne-takie jak liczby całkowite i zmiennoprzecinkowe, typy wyliczane, oraz typy fizyczne

-typy zlozone-takie jak talice(array) elementow tego samego typu skalarnego , zalicza się również rekordy(records) , oraz pliki (files)

Typy wektorowo skalarne- wektory zerojedynkowe, które do operacji arytmetycznych reprezentuja liczby naturalne lub całkowite ,zapisane w naturalnym kodzie dwojkowy

Liczby całkowite(integer), liczby rzeczywiste(Real),typ bitowy(bit), typy wielowartościowe std_ulogic i std-_logic, typ boolowski boolean, typ znakowy charakter, typ fizyczny czasowy time, typy wyliczeniowe

Porty – nazw portow które sa równoznaczne z nazwami końcówek opisanego układu i nazwami odpowiednich sygnałów na końcówkach, rodzaje portow

Wejściowych-in - jednokierunkowy

Wyjściowych-out-jednokierunkowy

Buffet-dopuszcza do odczytu tylko wewnętrzne źródło sygnalu,a na zewnatrz może yc urzytytylko do odczytu na przewodzie, na którym nie występują inne zrodla sygnalow

Dwukierunkowych-inout

Style architektury:

Styl behawioralny(behaviour)-stosuje się do opisow algorytmicznych, z uzyciem instrukcji procesu i instrukcj sekwencyjnych . dlatego ten styl okresla się również jako sekwencyjny. W ten sposób okresl się sekwencje stanow, układy cyfrowe z pamięcią-automaty,programy testujące oraz podprogramy

Styl pzeplywowy-stosuje się do opisu przepływu danych podczas ich przetwarzania przez układy kombinacyjn , takie jak sieci bramkowe, multipleksery i układy arytmetyczne, do pisu stosuje się instrukcje współbieżne

Styl strukturalny- stosuje się do opisu układu utworzonego z pewnej liczby układów składowych, których opisy VHDL przygotowano wczesniej, jest to w istocie opis polaczen układów składowych(komponentow)

Obiekty-do zapisu i pamiętania danych w jezyku VHDL sluza obiekty. Podtswowymi sa:

Sygnaly- sa funkcja czasu co oznacza ze wartości sygnałów sa przyporządkowane wartościom na osi czasu podczas symulacji dzialania oisanych układów

Zmienne- nie sa funkcjami czasu (prawdopodobnie jak w standardowych jezykach programowania) i mogą być stosowane pomocniczo tylko w obrebie procesu lub podprogramu do zapamiętywania wynikow pośrednich wartości zmiennych sa uzyskiwane w rezultacie operacji przypisanai do zmiennej

Stałe-umozliwiaja przypisanie nazwy wartościom Stalym określonego typu, sluzy do tego deklaracja constant.

Pliki- sluza do trwalego przechowywania danych,co wykorzystuje się glownie przy wykonaniu testow

Atrybuty-w VHDL predefiniowane sa liczne atrybuty, pozwalające na identyfikacje pewnych cech deklarowanych typow i obiektow, pozwala to na łatwiejsze tworzenie bardziej ogolnych modeli układowych , atrybut związany jest z obiektem lub typem przez apostrof, najczęściej związane ztypami i sygnalami, popularnym atrybutem jest ‘event

Instrukcje wspolbierzne- instrukcjami wspolierznymi sa wszystkie instrukcje, k6 takich instrukcjitóre można bezpośrednio wypisac w ciele architektury, w VHD istnieje :

Przypisanie do sygnalu(<=)

Instrukcja procesu process

Instrukcja wspobierznego wywolowyania procedury

Instrukcja laczenia komponentow port map

Instrukcja owielania generale

Instrukcja blokowa Block

Wspolbierzna instrukcje przypisania do sygnaly stosuje się w następujących postaciach

Przpisanie podstawowe do sygnal ma skladnie- sygna<=[transport] wyrazenie [after odcinek_czasu];

Gdzie wyrazenie musi dawac wynik tego samego typu co sygnal, opcjonalna klauzura after slyzy do opisu opóźnień w realizacji operacji przypisania

Przypisanie warunkowe when-else- ma sladnie sygnal <={ wyrazenie when warunek [and | Or warunek] else } wyrazenie_koncowe; - wynik sprawdzenia warunku jest typu boolean ,a wiec może być rowny fase lub true. Gdy warunek po slowie when jest spelnony (true, to nastepuje przypisanie wyraznie sprzed slowa when i wykonania instrukcji się konczy,

Przypisanie selektywne with-select- with wybor select

{sygnal<= wyrazenie wqhen wartość_wyboru,}

Sygnal <= wyazenie_koncowe when others;

W tej instrukcji należy wynienic wszystkie możliwe wartości wyboru , aby nie dopuścić do tworzenia zbędnych przerzutnikow zatrzaskowyc podczas syntezy

Multiplekser 4 na 1

Enity muxg8_4_1 is

Port(a,b,c,d : In std_logic_vector(7 downto 0);

Adr : std_logic_vector (1 downto 0);

Y :out std_logic_vector(7 downto 0));

End muxg8_4_1;

Architecture a1 of muxg8_4_1 is

Beign

With adr select

Y <= a when “00”,

B when “00”;

C when “10”;

D when”11”,

“xxxxxxxxx” when others;

End a1

Instrukcje selektywne umozliwiaja opsi dzialania układów w postaci uporzadkawanej sekwencji zdarzen w czasie.

Instrukcje sekwencyjne :

-przypisanie do zmiennej (:=) ;

-instrukcja czekania wait;

-instruckcja warunkowa if –then-else;

-instrukcja wyboru case;

-instrukcja petli loop o zwiazanie instrukcje exit i next;

-instrukcja pusta null;

-instrukcja testowa assert;

FUNCKJA przed uzyciem musi być najpierw zadeklarowana . deklaracje funkcji umieszca się lokalnie w czesci deklaracyjnej architektury opisywanego modulu albo w nagłówku procesu albo globalnie w odrębnym i zadeklarowanym pakiecie

Procedura może zwaracac wiecej wynikow niż jeden . podobnie jak funkcja procedura najpierw musi być zadeklarowana albo globalnie w pakiecie albo lokalnie w deklaracji architektury albo w nagłówku procesu nastepnie procedura może być wykonana w ciele architektury jakio instrukcja wspolbiezna lub w obrebie procesu

n-bitowy rejestr równoległy ( wykorzystując model przerzutnika d):

entity regn is

generic (n: positive :=8);

port (C,R : in std_logic;

D: in std_logic_vector(n-1 downto 0);

Q: out std_logic_vector(n-1 downto 0);

End regn;

Architecture a1 of regn is

Begin

Process(R,c)

Begin

If R=’1’ then Q <= (others =>’0’);

Elsif rising_edge (C) then

Q<=D;

End if;

End process;

End a1;

Decoder ¼

Enity regn is

Port( a: in std_logic_vector(1 downto 0);

Z: out std_logic_vector(3 downto 0);

End regn

Architecture a1 of regn is

Z<= “0001” when A=”00”else lub “0010” when A=”00”,

“0100” when A=”00”else

“1000”

Lub

with a select

Z <= “0001” when A=”00”,

“0010” when A=”00”else

“0100” when A=”00”,

“1000” when others;

. Napisz program, który realizuje podany układ prawdy: T = {1, 2, 5, 9, 12} • z użyciem instrukcji wyboru CASE

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity ent is

port( a : in std_logic_vector(3 downto 0);

x : out STD_LOGIC := '0' );

end ent;

architecture a1 of ent is

begin

process (a)

begin

case a is

when "0001" => x <= '1'; -- 1

when "0010" => x <= '1'; -- 2

when "0101" => x <= '1'; -- 5

when "1001" => x <= '1'; -- 9

when "1100" => x <= '1'; -- 12

when others => x <= '0'; -- pozostale liczby

end case;

end process;

end a1;

z użyciem przypisania selektywnego WITH SELECT

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity ent is

port(

a : in std_logic_vector(3 downto 0);

x : out STD_LOGIC := '0' );

end ent;

architecture a1 of ent is

Begin

with a selekt

x <= '1' when "0001", -- 1

'1' when "0010", -- 2

'1' when "0101", -- 5

'1' when "1001", -- 9

'1' when "1100", -- 12

'0' when others; -- pozostale liczby

end a1;

Wykres symulacji będzie taki sam za każdym razem, czyli po nadaniu wymuszenia typu COUNTER dla sygnału „a” na wyjściu otrzymamy „jedynkę” dla wartości, które znajdują się w tablicy prawdy.

2. Czym różni się sygnał od zmiennej? Sygnały są funkcjami czasu. Zmienne są stosowane pomocniczo tylko w obrębie procesu lub podprogramu.

3. Do czego służy język VHDL? Język VHDL jest bardzo popularnym językiem opisu sprzętu. Zadaniem języka jest wspieranie całości procesu projektowania układów cyfrowych poczynając od symulacji poprzez modelowanie, testowanie, implementacje oraz tworzenie dokumentacji. Podstawowym celem języka VHDL jest "zaprogramowanie" programowalnego układu logicznego niezależnie od technologii w jakiej ten układ został wytworzony (ASIC, FPGA, PLD, itp.).

Typy- operuje się na roznych typach danych które okresla się poprzez podane nazwy ,zbioru wartości i zbioru operacji. Typy dzieli się na klasy :

Typy skalarne-takie jak liczby całkowite i zmiennoprzecinkowe, typy wyliczane, oraz typy fizyczne

-typy zlozone-takie jak talice(array) elementow tego samego typu skalarnego , zalicza się również rekordy(records) , oraz pliki (files)

Typy wektorowo skalarne- wektory zerojedynkowe, które do operacji arytmetycznych reprezentuja liczby naturalne lub całkowite ,zapisane w naturalnym kodzie dwojkowy

Liczby całkowite(integer), liczby rzeczywiste(Real),typ bitowy(bit), typy wielowartościowe std_ulogic i std-_logic, typ boolowski boolean, typ znakowy charakter, typ fizyczny czasowy time, typy wyliczeniowe

Porty – nazw portow które sa równoznaczne z nazwami końcówek opisanego układu i nazwami odpowiednich sygnałów na końcówkach, rodzaje portow

Wejściowych-in - jednokierunkowy

Wyjściowych-out-jednokierunkowy

Buffet-dopuszcza do odczytu tylko wewnętrzne źródło sygnalu,a na zewnatrz może yc urzytytylko do odczytu na przewodzie, na którym nie występują inne zrodla sygnalow

Dwukierunkowych-inout

Style architektury:

Styl behawioralny(behaviour)-stosuje się do opisow algorytmicznych, z uzyciem instrukcji procesu i instrukcj sekwencyjnych . dlatego ten styl okresla się również jako sekwencyjny. W ten sposób okresl się sekwencje stanow, układy cyfrowe z pamięcią-automaty,programy testujące oraz podprogramy

Styl pzeplywowy-stosuje się do opisu przepływu danych podczas ich przetwarzania przez układy kombinacyjn , takie jak sieci bramkowe, multipleksery i układy arytmetyczne, do pisu stosuje się instrukcje współbieżne

Styl strukturalny- stosuje się do opisu układu utworzonego z pewnej liczby układów składowych, których opisy VHDL przygotowano wczesniej, jest to w istocie opis polaczen układów składowych(komponentow)

Obiekty-do zapisu i pamiętania danych w jezyku VHDL sluza obiekty. Podtswowymi sa:

Sygnaly- sa funkcja czasu co oznacza ze wartości sygnałów sa przyporządkowane wartościom na osi czasu podczas symulacji dzialania oisanych układów

Zmienne- nie sa funkcjami czasu (prawdopodobnie jak w standardowych jezykach programowania) i mogą być stosowane pomocniczo tylko w obrebie procesu lub podprogramu do zapamiętywania wynikow pośrednich wartości zmiennych sa uzyskiwane w rezultacie operacji przypisanai do zmiennej

Stałe-umozliwiaja przypisanie nazwy wartościom Stalym określonego typu, sluzy do tego deklaracja constant.

Pliki- sluza do trwalego przechowywania danych,co wykorzystuje się glownie przy wykonaniu testow

Atrybuty-w VHDL predefiniowane sa liczne atrybuty, pozwalające na identyfikacje pewnych cech deklarowanych typow i obiektow, pozwala to na łatwiejsze tworzenie bardziej ogolnych modeli układowych , atrybut związany jest z obiektem lub typem przez apostrof, najczęściej związane ztypami i sygnalami, popularnym atrybutem jest ‘event

Instrukcje wspolbierzne- instrukcjami wspolierznymi sa wszystkie instrukcje, k6 takich instrukcjitóre można bezpośrednio wypisac w ciele architektury, w VHD istnieje :

Przypisanie do sygnalu(<=)

Instrukcja procesu process

Instrukcja wspobierznego wywolowyania procedury

Instrukcja laczenia komponentow port map

Instrukcja owielania generale

Instrukcja blokowa Block

Wspolbierzna instrukcje przypisania do sygnaly stosuje się w następujących postaciach

Przpisanie podstawowe do sygnal ma skladnie- sygna<=[transport] wyrazenie [after odcinek_czasu];

Gdzie wyrazenie musi dawac wynik tego samego typu co sygnal, opcjonalna klauzura after slyzy do opisu opóźnień w realizacji operacji przypisania

Przypisanie warunkowe when-else- ma sladnie sygnal <={ wyrazenie when warunek [and | Or warunek] else } wyrazenie_koncowe; - wynik sprawdzenia warunku jest typu boolean ,a wiec może być rowny fase lub true. Gdy warunek po slowie when jest spelnony (true, to nastepuje przypisanie wyraznie sprzed slowa when i wykonania instrukcji się konczy,

Przypisanie selektywne with-select- with wybor select

{sygnal<= wyrazenie wqhen wartość_wyboru,}

Sygnal <= wyazenie_koncowe when others;

W tej instrukcji należy wynienic wszystkie możliwe wartości wyboru , aby nie dopuścić do tworzenia zbędnych przerzutnikow zatrzaskowyc podczas syntezy

Multiplekser 4 na 1

Enity muxg8_4_1 is

Port(a,b,c,d : In std_logic_vector(7 downto 0);

Adr : std_logic_vector (1 downto 0);

Y :out std_logic_vector(7 downto 0));

End muxg8_4_1;

Architecture a1 of muxg8_4_1 is

Beign

With adr select

Y <= a when “00”,

B when “00”;

C when “10”;

D when”11”,

“xxxxxxxxx” when others;

End a1

Instrukcje selektywne umozliwiaja opsi dzialania układów w postaci uporzadkawanej sekwencji zdarzen w czasie.

Instrukcje sekwencyjne :

-przypisanie do zmiennej (:=) ;

-instrukcja czekania wait;

-instruckcja warunkowa if –then-else;

-instrukcja wyboru case;

-instrukcja petli loop o zwiazanie instrukcje exit i next;

-instrukcja pusta null;

-instrukcja testowa assert;

FUNCKJA przed uzyciem musi być najpierw zadeklarowana . deklaracje funkcji umieszca się lokalnie w czesci deklaracyjnej architektury opisywanego modulu albo w nagłówku procesu albo globalnie w odrębnym i zadeklarowanym pakiecie

Procedura może zwaracac wiecej wynikow niż jeden . podobnie jak funkcja procedura najpierw musi być zadeklarowana albo globalnie w pakiecie albo lokalnie w deklaracji architektury albo w nagłówku procesu nastepnie procedura może być wykonana w ciele architektury jakio instrukcja wspolbiezna lub w obrebie procesu

n-bitowy rejestr równoległy ( wykorzystując model przerzutnika d):

entity regn is

generic (n: positive :=8);

port (C,R : in std_logic;

D: in std_logic_vector(n-1 downto 0);

Q: out std_logic_vector(n-1 downto 0);

End regn;

Architecture a1 of regn is

Begin

Process(R,c)

Begin

If R=’1’ then Q <= (others =>’0’);

Elsif rising_edge (C) then

Q<=D;

End if;

End process;

End a1;

Decoder ¼

Enity regn is

Port( a: in std_logic_vector(1 downto 0);

Z: out std_logic_vector(3 downto 0);

End regn

Architecture a1 of regn is

Z<= “0001” when A=”00”else lub “0010” when A=”00”,

“0100” when A=”00”else

“1000”

Lub

with a select

Z <= “0001” when A=”00”,

“0010” when A=”00”else

“0100” when A=”00”,

“1000” when others;

. Napisz program, który realizuje podany układ prawdy: T = {1, 2, 5, 9, 12} • z użyciem instrukcji wyboru CASE

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity ent is

port( a : in std_logic_vector(3 downto 0);

x : out STD_LOGIC := '0' );

end ent;

architecture a1 of ent is

begin

process (a)

begin

case a is

when "0001" => x <= '1'; -- 1

when "0010" => x <= '1'; -- 2

when "0101" => x <= '1'; -- 5

when "1001" => x <= '1'; -- 9

when "1100" => x <= '1'; -- 12

when others => x <= '0'; -- pozostale liczby

end case;

end process;

end a1;

• z użyciem przypisania selektywnego WITH SELECT

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity ent is

port(

a : in std_logic_vector(3 downto 0);

x : out STD_LOGIC := '0' );

end ent;

architecture a1 of ent is

Begin

with a selekt

x <= '1' when "0001", -- 1

'1' when "0010", -- 2

'1' when "0101", -- 5

'1' when "1001", -- 9

'1' when "1100", -- 12

'0' when others; -- pozostale liczby

end a1;

Wykres symulacji będzie taki sam za każdym razem, czyli po nadaniu wymuszenia typu COUNTER dla sygnału „a” na wyjściu otrzymamy „jedynkę” dla wartości, które znajdują się w tablicy prawdy.

2. Czym różni się sygnał od zmiennej? Sygnały są funkcjami czasu. Zmienne są stosowane pomocniczo tylko w obrębie procesu lub podprogramu.

3. Do czego służy język VHDL? Język VHDL jest bardzo popularnym językiem opisu sprzętu. Zadaniem języka jest wspieranie całości procesu projektowania układów cyfrowych poczynając od symulacji poprzez modelowanie, testowanie, implementacje oraz tworzenie dokumentacji. Podstawowym celem języka VHDL jest "zaprogramowanie" programowalnego układu logicznego niezależnie od technologii w jakiej ten układ został wytworzony (ASIC, FPGA, PLD, itp.).

Typy- operuje się na roznych typach danych które okresla się poprzez podane nazwy ,zbioru wartości i zbioru operacji. Typy dzieli się na klasy :

Typy skalarne-takie jak liczby całkowite i zmiennoprzecinkowe, typy wyliczane, oraz typy fizyczne

-typy zlozone-takie jak talice(array) elementow tego samego typu skalarnego , zalicza się również rekordy(records) , oraz pliki (files)

Typy wektorowo skalarne- wektory zerojedynkowe, które do operacji arytmetycznych reprezentuja liczby naturalne lub całkowite ,zapisane w naturalnym kodzie dwojkowy

Liczby całkowite(integer), liczby rzeczywiste(Real),typ bitowy(bit), typy wielowartościowe std_ulogic i std-_logic, typ boolowski boolean, typ znakowy charakter, typ fizyczny czasowy time, typy wyliczeniowe

Porty – nazw portow które sa równoznaczne z nazwami końcówek opisanego układu i nazwami odpowiednich sygnałów na końcówkach, rodzaje portow

Wejściowych-in - jednokierunkowy

Wyjściowych-out-jednokierunkowy

Buffet-dopuszcza do odczytu tylko wewnętrzne źródło sygnalu,a na zewnatrz może yc urzytytylko do odczytu na przewodzie, na którym nie występują inne zrodla sygnalow

Dwukierunkowych-inout

Style architektury:

Styl behawioralny(behaviour)-stosuje się do opisow algorytmicznych, z uzyciem instrukcji procesu i instrukcj sekwencyjnych . dlatego ten styl okresla się również jako sekwencyjny. W ten sposób okresl się sekwencje stanow, układy cyfrowe z pamięcią-automaty,programy testujące oraz podprogramy

Styl pzeplywowy-stosuje się do opisu przepływu danych podczas ich przetwarzania przez układy kombinacyjn , takie jak sieci bramkowe, multipleksery i układy arytmetyczne, do pisu stosuje się instrukcje współbieżne

Styl strukturalny- stosuje się do opisu układu utworzonego z pewnej liczby układów składowych, których opisy VHDL przygotowano wczesniej, jest to w istocie opis polaczen układów składowych(komponentow)

Obiekty-do zapisu i pamiętania danych w jezyku VHDL sluza obiekty. Podtswowymi sa:

Sygnaly- sa funkcja czasu co oznacza ze wartości sygnałów sa przyporządkowane wartościom na osi czasu podczas symulacji dzialania oisanych układów

Zmienne- nie sa funkcjami czasu (prawdopodobnie jak w standardowych jezykach programowania) i mogą być stosowane pomocniczo tylko w obrebie procesu lub podprogramu do zapamiętywania wynikow pośrednich wartości zmiennych sa uzyskiwane w rezultacie operacji przypisanai do zmiennej

Stałe-umozliwiaja przypisanie nazwy wartościom Stalym określonego typu, sluzy do tego deklaracja constant.

Pliki- sluza do trwalego przechowywania danych,co wykorzystuje się glownie przy wykonaniu testow

Atrybuty-w VHDL predefiniowane sa liczne atrybuty, pozwalające na identyfikacje pewnych cech deklarowanych typow i obiektow, pozwala to na łatwiejsze tworzenie bardziej ogolnych modeli układowych , atrybut związany jest z obiektem lub typem przez apostrof, najczęściej związane ztypami i sygnalami, popularnym atrybutem jest ‘event

Instrukcje wspolbierzne- instrukcjami wspolierznymi sa wszystkie instrukcje, k6 takich instrukcjitóre można bezpośrednio wypisac w ciele architektury, w VHD istnieje :

Przypisanie do sygnalu(<=)

Instrukcja procesu process

Instrukcja wspobierznego wywolowyania procedury

Instrukcja laczenia komponentow port map

Instrukcja owielania generale

Instrukcja blokowa Block

Wspolbierzna instrukcje przypisania do sygnaly stosuje się w następujących postaciach

Przpisanie podstawowe do sygnal ma skladnie- sygna<=[transport] wyrazenie [after odcinek_czasu];

Gdzie wyrazenie musi dawac wynik tego samego typu co sygnal, opcjonalna klauzura after slyzy do opisu opóźnień w realizacji operacji przypisania

Przypisanie warunkowe when-else- ma sladnie sygnal <={ wyrazenie when warunek [and | Or warunek] else } wyrazenie_koncowe; - wynik sprawdzenia warunku jest typu boolean ,a wiec może być rowny fase lub true. Gdy warunek po slowie when jest spelnony (true, to nastepuje przypisanie wyraznie sprzed slowa when i wykonania instrukcji się konczy,

Przypisanie selektywne with-select- with wybor selekt

{sygnal<= wyrazenie wqhen wartość_wyboru,}

Sygnal <= wyazenie_koncowe when others;

W tej instrukcji należy wynienic wszystkie możliwe wartości wyboru , aby nie dopuścić do tworzenia zbędnych przerzutnikow zatrzaskowyc podczas syntezy

Enity muxg8_4_1 is

Port(a,b,c,d : In std_logic_vector(7 downto 0);

Adr : std_logic_vector (1 downto 0);

Y :out std_logic_vector(7 downto 0));

End muxg8_4_1;

Architecture a1 of muxg8_4_1 is

Beign

With adr select

Y <= a when “00”,

B when “00”;

C when “10”;

D when”11”,

“xxxxxxxxx” when others;

End a1

Instrukcje selektywne umozliwiaja opsi dzialania układów w postaci uporzadkawanej sekwencji zdarzen w czasie.

Instrukcje sekwencyjne :

-przypisanie do zmiennej (:=) ;

-instrukcja czekania wait;

-instruckcja warunkowa if –then-else;

-instrukcja wyboru case;

-instrukcja petli loop o zwiazanie instrukcje exit i next;

-instrukcja pusta null;

-instrukcja testowa assert;

FUNCKJA przed uzyciem musi być najpierw zadeklarowana . deklaracje funkcji umieszca się lokalnie w czesci deklaracyjnej architektury opisywanego modulu albo w nagłówku procesu albo globalnie w odrębnym i zadeklarowanym pakiecie

Procedura może zwaracac wiecej wynikow niż jeden . podobnie jak funkcja procedura najpierw musi być zadeklarowana albo globalnie w pakiecie albo lokalnie w deklaracji architektury albo w nagłówku procesu nastepnie procedura może być wykonana w ciele architektury jakio instrukcja wspolbiezna lub w obrebie procesu

n-bitowy rejestr równoległy ( wykorzystując model przerzutnika d):

entity regn is

generic (n: positive :=8);

port (C,R : in std_logic;

D: in std_logic_vector(n-1 downto 0);

Q: out std_logic_vector(n-1 downto 0);

End regn;

Architecture a1 of regn is

Begin

Process(R,c)

Begin

If R=’1’ then Q <= (others =>’0’);

Elsif rising_edge (C) then

Q<=D;

End if;

End process;

End a1;

Decoder ¼

Enity regn is

Port( a: in std_logic_vector(1 downto 0);

Z: out std_logic_vector(3 downto 0);

End regn

Architecture a1 of regn is

Z<= “0001” when A=”00”else lub “0010” when A=”00”,

“0100” when A=”00”else

“1000”

Lub

with a select

Z <= “0001” when A=”00”,

“0010” when A=”00”else

“0100” when A=”00”,

“1000” when others;


Wyszukiwarka

Podobne podstrony:
VHDL ściąga 2, Uc2- uklady cyfrowe,sciagi, wyklady
VHDL ściąga, Uc2- uklady cyfrowe,sciagi, wyklady
1 sciaga ppt
metro sciaga id 296943 Nieznany
ŚCIĄGA HYDROLOGIA
AM2(sciaga) kolos1 id 58845 Nieznany
Narodziny nowożytnego świata ściąga
finanse sciaga
Jak ściągać na maturze
Ściaga Jackowski
Aparatura sciaga mini
OKB SCIAGA id 334551 Nieznany
Przedstaw dylematy moralne władcy i władzy w literaturze wybranych epok Sciaga pl
fizyczna sciąga(1)
Finanse mala sciaga
Podział węży tłocznych ze względu na średnicę ściąga
OLIMPIADA BHP ŚCIĄGAWKA
Opracowanie Sciaga MC OMEN

więcej podobnych podstron