zadacivjezbanje
TRANSCRIPT
Arhitektura komjuterskih sistema : Workshop http://dl.fit.ba/aks
Fakultet informacijskih tehnologija
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;
Arhitektura komjuterskih sistema : Workshop http://dl.fit.ba/aks
Fakultet informacijskih tehnologija
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;
Arhitektura komjuterskih sistema : Workshop http://dl.fit.ba/aks
Fakultet informacijskih tehnologija
3
Arhitektura komjuterskih sistema : Workshop http://dl.fit.ba/aks
Fakultet informacijskih tehnologija
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
Arhitektura komjuterskih sistema : Workshop http://dl.fit.ba/aks
Fakultet informacijskih tehnologija
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';
Arhitektura komjuterskih sistema : Workshop http://dl.fit.ba/aks
Fakultet informacijskih tehnologija
6
end if; case s is
when '0'=> mux_out<=F1; when others => mux_out<=F2;
end case; end process; end Dataflow;
Arhitektura komjuterskih sistema : Workshop http://dl.fit.ba/aks
Fakultet informacijskih tehnologija
7