INGENIERÍA DE COMPUTADORES III Solución l Ejercicio e Autocomproción 9 PREGUNTA 1 (3 punto) 1.) (0.5 punto) Dieñe en VHDL un multiplexor e o eñle e un it. Háglo ecriieno el comportmiento el circuito, empleno un entenci concurrente conicionl (when-ele). L entity e muetr continución. L eñl e l eñl e control. entity mux2_1it i port ( : out t_logic;, : in t_logic; en entity mux2_1it; 1.) (0.5 punto) Dieñe en VHDL un multiplexor e o eñle e un it meinte l ecripción e u comportmiento, pero en et oción empleno un entenci concurrente e elección (with-elect). 1.c) (2 punto) Dieñe en VHDL un multiplexor e o eñle e cutro it. Háglo ecriieno l etructur el circuito. E ecir, meinte l conexión e cutro multiplexore e o eñle e un it. L entity el multiplexor e o eñle e cutro it e: entity mux2_4it i port ( 0, 1, 2, 3 : out t_logic; 0, 1, 2, 3 : in t_logic; 0, 1, 2, 3 : in t_logic; en entity mux2_4it;
INGENIERÍA DE LOS COMPUTADORES III Solución l Pregunt 1 L olución lo tre prto e l pregunt e el Cóigo VHDL 1.1 1.3. El igrm el multiplexor e 2 eñle e 4 it, ieño meinte l conexión e 4 multiplexore e 2 eñle e 1 it, e muetr en l Figur 1.1. -- MUX 2 1 entity mux2_1it i port ( : out t_logic;, : in t_logic; en entity mux2_1it; rchitecture mux_con of mux2_1it i <= when ( = 0 ) ele ; en rchitecture mux_con; Cóigo VHDL 1.1: Solución l Aprto 1.: MUX e 2 eñle e 1 it, ecrito meinte un entenci concurrente conicionl (when-ele). -- MUX 2 1 entity mux2_1it i port ( : out t_logic;, : in t_logic; en entity mux2_1it; rchitecture mux_el of mux2_1it i with elect <= when 0, when other; en rchitecture mux_el; Cóigo VHDL 1.2: Solución l Aprto 1.: MUX e 2 eñle e 1 it, ecrito meinte un entenci concurrente e elección (with-elect). 2 Dpto. e Informátic y Automátic, UNED
SOLUCIÓN AL EJERCICIO DE AUTOCOMPROBACIÓN 9 3 3 3 2 2 2 1 1 1 0 0 0 Figur 1.1: Multiplexor e 2 eñle e 4 it, ieño meinte l conexión e 4 multiplexore e 2 eñle e 1 it. ---------------------------------------------- -- e 4 it. entity Mux2_4it i port ( 0, 1, 2, 3 : out t_logic; 0, 1, 2, 3 : in t_logic; 0, 1, 2, 3 : in t_logic; en entity Mux2_4it; rchitecture Mux2_4it of Mux2_4it i component Mux2_1it i port ( : out t_logic;, : in t_logic; en component Mux2_1it; Mux2_0 : Mux2_1it port mp ( => 0, => 0, => 0, => ); Mux2_1 : Mux2_1it port mp ( => 1, => 1, => 1, => ); Mux2_2 : Mux2_1it port mp ( => 2, => 2, => 2, => ); Mux2_3 : Mux2_1it port mp ( => 3, => 3, => 3, => ); en rchitecture Mux2_4it; ---------------------------------------------- Cóigo VHDL 1.3: Solución l Aprto 1.c: ecripción etructurl e un multiplexor e 2 eñle e 4 it. Dpto. e Informátic y Automátic, UNED 3
INGENIERÍA DE LOS COMPUTADORES III PREGUNTA 2 (3 punto) Decri en VHDL el comportmiento e un circuito con o entr e 8 it que, interpretno l entr como número inrio in igno, clcule el vlor oluto e l iferenci entre l entr. E ecir, i l entr on,, el circuito clcul. L entity el circuito e: entity _if i port ( reulto : out t_logic_vector(7 ownto 0);, : in t_logic_vector(7 ownto 0) ); en entity _if; Solución l Pregunt 2 Exiten vri form e ieñr el circuito. Un e ell e Cóigo VHDL 1.4. --------------------------------------- -- Vlor oluto e l iferenci ue IEEE.numeric_t.ll; entity _if i port ( reulto : out t_logic_vector(7 ownto 0);, : in t_logic_vector(7 ownto 0) ); en entity _if; rchitecture _if1 of _if i ignl u, u, ru, if, if: unigne(7 ownto 0); u <= unigne(); u <= unigne(); if <= u - u; if <= u - u; ru <= if when (u >= u) ele if; reulto <= t_logic_vector(ru); en rchitecture _if1; Cóigo VHDL 1.4: Dieño olución l Pregunt 2. 4 Dpto. e Informátic y Automátic, UNED
SOLUCIÓN AL EJERCICIO DE AUTOCOMPROBACIÓN 9 PREGUNTA 3 (3 punto) Dieñe un generor e eñle que oteng l form e on motr en l prte inferior e l figur, prtir e l eñl e reloj clk motr en l prte uperior e l figur. Decri el comportmiento el circuito como un máquin e eto finito. 1 perioo L entity el circuito e: entity generor i port( wve : out t_logic; clk : in t_logic ); en entity generor; Dpto. e Informátic y Automátic, UNED 5
INGENIERÍA DE LOS COMPUTADORES III Solución l Pregunt 3 --- -- Pquete con l efinición e l contnte glole pckge STATE_CONST i contnt STATE_BITS: integer := 3; -- Bit coificn eto contnt S0: t_logic_vector(2 ownto 0) := "000"; -- Eto contnt S1: t_logic_vector(2 ownto 0) := "001"; contnt S2: t_logic_vector(2 ownto 0) := "010"; contnt S3: t_logic_vector(2 ownto 0) := "011"; contnt S4: t_logic_vector(2 ownto 0) := "100"; contnt S5: t_logic_vector(2 ownto 0) := "101"; contnt S6: t_logic_vector(2 ownto 0) := "110"; contnt S7: t_logic_vector(2 ownto 0) := "111"; en pckge; --- Cóigo VHDL 1.5: Pquete con l efinición e contnte. Dieño olución l Pregunt 3. --- ---Generor e form e on, implemento como máquin e eto ue work.state_const.ll; entity generor i port(wve : out t_logic; clk : in t_logic); en entity generor; rchitecture fm of generor i ignl tte : t_logic_vector(state_bits-1 ownto 0); ignl temp_wve : t_logic; --Cálculo el próximo eto proximo_eto: proce (clk) if (riing_ege(clk)) then ce tte i when S0 => tte <= S1; wve <= 0 ; when S1 => tte <= S2; wve <= 1 ; when S2 => tte <= S3; wve <= 0 ; when S3 => tte <= S4; wve <= 1 ; when S4 => tte <= S5; wve <= 1 ; when S5 => tte <= S6; wve <= 1 ; when S6 => tte <= S7; wve <= 0 ; when other => tte <= S0; wve <= 0 ; en ce; en if; en proce proximo_eto; en rchitecture fm; --------------------------------------------- Cóigo VHDL 1.6: Solución l Pregunt 3: ieño el generor e l form e on. 6 Dpto. e Informátic y Automátic, UNED
SOLUCIÓN AL EJERCICIO DE AUTOCOMPROBACIÓN 9 PREGUNTA 4 (1 punto) Progrme en VHDL un nco e prue pr el circuito que h ieño l reponer l pregunt 3, e mner que pue comprore meinte inpección viul que el circuito gener l form e on correctmente. Solución l Pregunt 4 -------------------------------------- -- Bnco e prue el generor e l form e on entity p_generor i en entity p_generor; rchitecture p_generor of p_generor i contnt PERIODO : time := 100 n; -- Reloj ignl wve : t_logic; -- Sli UUT ignl clk : t_logic := 0 ; -- Entr UUT component generor i port ( wve : out t_logic; clk : in t_logic); en component generor; -- Intncir y conectr UUT uut : component generor port mp (wve, clk); clk <= not clk fter (PERIODO/2); en rchitecture p_generor; -------------------------------------- Cóigo VHDL 1.7: Solución l Pregunt 4: nco e prue. Dpto. e Informátic y Automátic, UNED 7