zadacivjezbanje

7
Arhitektura komjuterskih sistema : Workshop http://dl.fit.ba/aks Fakultet informacijskih tehnologija [email protected] [email protected] 1 1. Napisati VHDL kod za komparator. Kompartor je logicko kolo koje na izlazu daje jedinicu ako svi ulazi imaju iste vrijednosti a nulu ako jedna različita. library ieee; use ieee.std_logic_1164.all; entity Komparator_Jednakosti is port ( U1 :in std_logic_vector(2 downto 0); U2 :in std_logic_vector(2 downto 0); Y :out std_logic ); end Komparator_Jednakosti; architecture KompJed of Komparator_Jednakosti is begin process (U1, U2) begin if (U1 = U2) then Y <= '1'; else Y <= '0'; end if; end process; end KompJed;

Upload: belma-brkic

Post on 20-Dec-2015

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ZadaciVjezbanje

Arhitektura komjuterskih sistema : Workshop http://dl.fit.ba/aks

Fakultet informacijskih tehnologija

[email protected]

[email protected]

1

1. Napisati VHDL kod za komparator. Kompartor je logicko kolo koje na izlazu daje jedinicu ako svi ulazi imaju iste vrijednosti a nulu ako jedna različita. library ieee; use ieee.std_logic_1164.all; entity Komparator_Jednakosti is port (

U1 :in std_logic_vector(2 downto 0); U2 :in std_logic_vector(2 downto 0); Y :out std_logic );

end Komparator_Jednakosti;

architecture KompJed of Komparator_Jednakosti is begin process (U1, U2) begin

if (U1 = U2) then Y <= '1'; else Y <= '0';

end if; end process; end KompJed;

Page 2: ZadaciVjezbanje

Arhitektura komjuterskih sistema : Workshop http://dl.fit.ba/aks

Fakultet informacijskih tehnologija

[email protected]

[email protected]

2

2. Napisati VHDL kod za 'komparator veličine' koji daje informacije o međuodnosu ulaza(>,=,<,) . Rješenje: library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity Komparator_Velicine is port(

U1 : in std_logic_vector(3 downto 0); U2 : in std_logic_vector(3 downto 0); manje : out std_logic; jednako : out std_logic; vece : out std_logic );

end Komparator_Velicine; architecture KompVel of Komparator_Velicine is begin process(U1,U2) begin

if (U1 > U2 ) then manje <= '0'; jednako <= '0'; vece <= '1'; elsif (U1 < U2) then manje <= '1'; jednako <= '0'; vece <= '0'; else manje <= '0'; jednako <= '1'; vece <= '0';

end if; end process; end KompVel;

Page 3: ZadaciVjezbanje

Arhitektura komjuterskih sistema : Workshop http://dl.fit.ba/aks

Fakultet informacijskih tehnologija

[email protected]

[email protected]

3

Page 4: ZadaciVjezbanje

Arhitektura komjuterskih sistema : Workshop http://dl.fit.ba/aks

Fakultet informacijskih tehnologija

[email protected]

[email protected]

4

3. Napisati VHDL kod za kolo sa slike koje je povezano na multiplekser 2 u 1. Rješenje:

a b c d a * d b + c (a * d)+b+c ((a * d)+b+c)*d a + b F

0 0 0 0 0 0 0 0 0 1

0 0 0 1 0 0 0 0 0 1

0 0 1 0 0 1 1 0 0 1

0 0 1 1 0 1 1 1 0 0

0 1 0 0 0 1 1 0 1 0

0 1 0 1 0 1 1 1 1 0

0 1 1 0 0 1 1 0 1 0

0 1 1 1 0 1 1 1 1 0

1 0 0 0 0 0 0 0 1 0

1 0 0 1 1 0 1 1 1 0

1 0 1 0 0 1 1 0 1 0

1 0 1 1 1 1 1 1 1 0

1 1 0 0 0 1 1 0 1 0

1 1 0 1 1 1 1 1 1 0

1 1 1 0 0 1 1 0 1 0

1 1 1 1 1 1 1 1 1 0

Page 5: ZadaciVjezbanje

Arhitektura komjuterskih sistema : Workshop http://dl.fit.ba/aks

Fakultet informacijskih tehnologija

[email protected]

[email protected]

5

a b c d c' + d' (c' + d') * ((a*d)+b+c) b and d F

0 0 0 0 1 1 0 0

0 0 0 1 0 1 0 0

0 0 1 0 0 1 0 0

0 0 1 1 0 1 0 0

0 1 0 0 1 0 0 0

0 1 0 1 0 0 1 1

0 1 1 0 0 1 0 0

0 1 1 1 0 1 1 1

1 0 0 0 1 1 0 0

1 0 0 1 0 1 0 0

1 0 1 0 0 1 0 0

1 0 1 1 0 1 0 0

1 1 0 0 1 0 0 0

1 1 0 1 0 1 1 1

1 1 1 0 0 1 0 0

1 1 1 1 0 1 1 1

library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity Kolo is port(

s: in std_logic; a : in std_logic;

b : in std_logic; c : in std_logic; d : in std_logic; mux_out : out std_logic

); end Kolo; architecture Dataflow of Kolo is signal F1,F2 : std_logic; begin Process(a,b,c,d,F1,F2) begin

if( (a ='0' and b='0' and c='0' and d='0') or (a ='0' and b='0' and c='0' and d='1')or (a ='0' and b='0' and c='1' and d='0') ) then F1<='1'; else F1<='0'; end if; if( (a ='0' and b='1' and c='0' and d='1') or (a ='0' and b='1' and c='1' and d='1')or (a ='1' and b='1' and c='0' and d='1') or (a ='1' and b='1' and c='1' and d='1')) then F2<='1'; else F2<='0';

Page 6: ZadaciVjezbanje

Arhitektura komjuterskih sistema : Workshop http://dl.fit.ba/aks

Fakultet informacijskih tehnologija

[email protected]

[email protected]

6

end if; case s is

when '0'=> mux_out<=F1; when others => mux_out<=F2;

end case; end process; end Dataflow;

Page 7: ZadaciVjezbanje

Arhitektura komjuterskih sistema : Workshop http://dl.fit.ba/aks

Fakultet informacijskih tehnologija

[email protected]

[email protected]

7