Układy cyfrowe i systemy wbudowane 1 SPRAWOZDANIE 7

Układy cyfrowe i systemy wbudowane 1 – laboratorium mgr inż. Antoni Sterna Pt 1245 - 1500

SPRAWOZDANIE

Podobnie jak na poprzednich zajęciach, nasze układy opisywaliśmy przy pomocy języka VHDL. Pierwsze do wykonania ćwiczenie polegało na wykonaniu automatu Moore’a, natomiast drugie ćwiczenie polegało na zbudowaniu układu symulującego działanie systemu sygnalizacji świetlnej na skrzyżowaniu. Ćwiczenia zrealizowaliśmy w programie Xilnix ISE Project Navigator, do sprawdzenia poprawności działania skorzystaliśmy z wbudowanego symulatora ISim Simulator, a następnie zaprogramowaliśmy je w układzie XC9572XL.

  1. Automat Moore’a

Poniżej zamieszczony jest realizacja zadania w kodzie VHDL. Oczywiście zarówno w symulatorze, jak i po zaprogramowaniu na układzie, kod działał prawidłowo.

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

-- Uncomment the following library declaration if using

-- arithmetic functions with Signed or Unsigned values

use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if instantiating

-- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

entity moore is

port(

Clk : in std_logic;

input : in std_logic;

reset : in std_logic;

state_o : out std_logic_vector(1 downto 0);

y : out std_logic := '0');

end moore;

architecture moore_arch of moore is

signal state : unsigned(1 downto 0);

begin

process(Clk, input, reset)

begin

if reset = '1' then

state <= to_unsigned(0, 2);

elsif rising_edge(Clk) then

if state < to_unsigned(3, 2) then

if input = '0' then

state <= state + to_unsigned(1, 2);

else

state <= to_unsigned(0, 2);

end if;

else

if input = '1' then

state <= to_unsigned(0, 2);

end if;

end if;

end if;

end process;

process(state)

begin

if state < to_unsigned(3, 2) then

y <= '0';

else

y <= '1';

end if;

end process;

state_o <= std_logic_vector(state);

end moore_arch;

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity moore_use is

port(

Clk_LF : in std_logic;

K0 : in std_logic;

K1 : in std_logic;

S : out std_logic_vector(1 downto 0);

S2 : out std_logic := '0');

end moore_use;

architecture moore_use_arch of moore_use is

COMPONENT moore

PORT(

Clk : IN std_logic;

input : IN std_logic;

reset : in std_logic;

state_o : out std_logic_vector(1 downto 0);

y : OUT std_logic

);

END COMPONENT;

begin

m : moore port map(Clk_LF, K0, K1, S, S2);

end moore_use_arch;

  1. Zbudować układ symulujący działanie sygnalizacji świetlnej na skrzyżowaniu.

Sygnalizacja miała składać się z sygnalizatora dla samochodów, sygnalizatora dla pieszych oraz przycisku do zgłaszania chęci przejścia przez ulicę dla pieszych. Po naciśnięciu przycisku, po określonym czasie sygnalizator dla samochodów powinien zmienić światło na żółte i czerwone, a dla pieszych na zielone. Następnie po upływie określonego czasu sygnalizator pieszych powinien pokazywać czerwone światło, a dla samochodów – zielone. Działanie układu wyglądało poprawnie zarówno w symulatorze, jak i po zaprogramowaniu na układzie Xilinx. Poniżej zaprezentowany jest kod VHDL naszej realizacji:

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

-- Uncomment the following library declaration if using

-- arithmetic functions with Signed or Unsigned values

use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if instantiating

-- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

entity counter is

port(

CLR : in std_logic;

Clk_LF : in std_logic;

modulo : in std_logic_vector(1 downto 0);

count : out std_logic_vector(3 downto 0);

terminal_count : out std_logic);

end counter;

architecture counter_arch of counter is

signal count_internal : unsigned(3 downto 0);

signal modulo_value : unsigned(3 downto 0);

begin

process (modulo) is

begin

case modulo is

when "00" => modulo_value <= to_unsigned(3, 4);

when "01" => modulo_value <= to_unsigned(2, 4);

when "10" => modulo_value <= to_unsigned(8, 4);

when "11" => modulo_value <= to_unsigned(2, 4);

when others => modulo_value <= to_unsigned(0, 4);

end case;

end process;

process (CLR, Clk_LF) is

begin

if CLR = '1' then

count_internal <= to_unsigned(0, count_internal'length);

elsif rising_edge(Clk_LF) then

if count_internal < (modulo_value - to_unsigned(1, count_internal'length)) then

count_internal <= (count_internal + to_unsigned(1, count_internal'length));

else

count_internal <= to_unsigned(0, count_internal'length);

end if;

end if;

end process;

count <= not std_logic_vector(count_internal);

terminal_count <= '1' when (count_internal + to_unsigned(1, 3) = modulo_value) else '0';

end counter_arch;

Wnioski:

Dzięki tym zajęciom mieliśmy okazję doskonalić nasze umiejętności w zakresie programowania w języku VHDL. Dzięki tym ćwiczeniom nauczyliśmy się budować liczniki, a także posługiwać się sygnałami wewnętrznymi i korzystać ze zbocza narastającego sygnału przy konstruowaniu warunków. Ponadto znów mogliśmy wykorzystać wbudowany w środowisko symulator do sprawdzenia poprawności działania naszych realizacji przed zaprogramowaniem ich w układzie, co pomogło nam znaleźć popełnione błędy i ułatwiło ich poprawienie. Nabyte w czasie zajęć umiejętności z pewnością pomogą nam przy wykonywaniu zadań na kolejnych zajęciach.


Wyszukiwarka

Podobne podstrony:
Układy cyfrowe i systemy wbudowane 1 SPRAWOZDANIE 2
Układy cyfrowe i systemy wbudowane 1 SPRAWOZDANIE 6
Układy cyfrowe i systemy wbudowane 1 SPRAWOZDANIE
Układy cyfrowe i systemy wbudowane 1 SPRAWOZDANIE 4
Układy cyfrowe i systemy wbudowane 1 SPRAWOZDANIE 3
Układy cyfrowe i systemy wbudowane 1 SPRAWOZDANIE 8
Układy cyfrowe i systemy wbudowane 1 SPRAWOZDANIE 1
Układy cyfrowe i systemy wbudowane 1 SPRAWOZDANIE 9
Układy cyfrowe i systemy wbudowane 1 SPRAWOZDANIE 5
Układy cyfrowe i systemy wbudowane 1 SPRAWOZDANIE 2
fras,systemy wbudowane L, sprawozdanie ARM 7 obsługa przetwornika?
Sprawozdanie Ukłądy cyfrowe
Sprawozdanie Układy cyfrowe 2007 nasze, nauka, PW, Sem 4, Elektronika II lab
Sprawozdanie Układy cyfrowe 2007, wip, Elektronika 2
Sprawko 11, ZiIP, Semestr I, Układy Cyfrowe, Sprawozdania, UC 11
Jaworek Michal sprawozdanie uklady cyfrowe liczniki
Jaworek Michal sprawozdanie uklady cyfrowe dodawanie
Cyfrowy system rejestracji obrazu

więcej podobnych podstron