SISTEMES ELECTRONICS DIGITALS ETSE-URV 2 Septiembre 2005 Test: +1pto acertada, -1/3pto fallada 1. El ciclo de bus del 68000 de la figura de abajo se lleva a cabo durante la ejecución de una instrucción y valor de A0 de la lista de abajo. ¿Cúal? Nota: A[23:1] son 23 bits, pero son representados 24 bits en HEX con el LSB=0 a) b) c) d) MOVE.B (A0),D0 A0=$FFFFFF MOVE.W -(A0),D7 A0=$FFFFFE Ciclo de reconcocimiento de interrupción NMI Ninguna de las anteriores CLK S7 S0 S1 S2 S3 S4 FC[2:0] {1,1,1} A[23:1] $FFFFFE SW SW SW SW S5 S6 S7 S0 4. a) b) c) d) Si A7=$00004000, ¿Cómo queda A7 al ejecutar MOVE.B $2000,–(A7)? A7=$00002000, A7=$00003FFF A7=$00003FFE Ninguna de las anteriores 5. a) b) c) d) Si IPL[2:0]* pasa de {1,1,1} a un valor {0,0,0} estable, siendo SR=$0701 ¿que ocurre? No se acepta la interrupción y SR no cambia Se acepta la interrupción y SR cambiará a $0700 Se acepta la interrupción y SR cambiará a $2700 Se acepta la interrupción y SR cambiará a $2701 6. Se tiene un bloque lógico LUT de 4 entradas tiene como contenido (LUT)={0,0,0,0, 1,0,0,0, 0,0,0,0, 0,0,0,0} ¿que función lógica mapea? Nota: El contenido de la LUT es expresado como (LUT)={($F),($E),($D),…($0)} donde I0 es el LSB e I3 es el MSB. a b c d AS* a) b) c) d) R/W* LDS* UDS* 2. En ciclo de bus de la anterior figura aparecen cuatro estados de espera. ¿Qué señal DTACK* puede inducir estos estados de espera? a) b) c) d) CLK S7 S0 S1 S2 S3 S4 SW SW SW SW S5 S6 S7 S0 DTACK* S7 S0 S1 S2 S3 S4 SW SW SW SW S5 S6 S7 S0 S7 S0 S1 S2 S3 S4 SW SW SW SW S5 S6 S7 S0 DTACK* (2) CLK DTACK* (3) 3. ¿Cuántos ciclos de bus (lectura y escritura) son llevados a cabo para leer y ejecutar la instrucción MOVE.L #1,$30000? a) 1 ciclos de lectura, 2 de escritura b) 5 ciclo de lectura, 2 de escritura c) 7 ciclo de lectura, 2 de escritura d) Ninguna de las anteriores F(a,b) a*b*c*/d /a*b*c*d a*b*/c*d Ninguna de las anteriores * d q DFF clk (1) CLK LUT 7. Se desea describir en VHDL un circuito cuya funcionalidad es la del de la figura. ¿Qué descripcione/s es/son correcta/s para este propósito? a b Solamente la 1 Solamente la 2 Solamente la 3 Ninguna de las respuestas anteriores es cierta I0 I1 I2 I3 architecture arq1 of circuito is signal x: std_logic; begin process(clk) begin if rising_edge(clk) then o<=x; end if; end process; x<=a and b; end architecture; architecture arq3 of circuito is begin process(clk) variable x: std_logic; begin if rising_edge(clk) then o<=x; x:=a and b; end if; end process; end architecture; o library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity circuito is port( clk: in std_logic; a,b: in std_logic; o: out std_logic); end entity; architecture arq2 of circuito is signal x: std_logic; begin process(clk) begin if rising_edge(clk) then x<=a and b; o<=x; end if; end process; end architecture; a) b) c) d) 10. a) b) c) d) Solo arq1 Solo arq2 Solo arq3 Todas Señalar la afirmación incorrecta sobre el VHDL: Las señales de tipo std_logic son de tipo resuelto Las asignaciones de señales llevan siempre un retardo, si no es especificado es delta (δ) Las asignaciones de variables nunca llevan retardo Alguna de las anteriores es falsa 8. La funcionalidad del circuito descrito en VHDL es: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity cnt is port( clk,rst,e: in std_logic; o: out std_logic_vector(0 to 7)); end entity; a) b) c) d) architecture beh of cnt is begin process variable a: signed(o'range); begin wait until rising_edge(clk); if rst='1' then a:=(others=>'0'); elsif e='1' then a:=a-1; end if; o<=std_logic_vector(a); end process; end architecture; Contador descendente BCD natural de 8-bits, con reset síncrono y habilitación Contador descendente BCD natural de 8-bits, con reset asíncrono y habilitación Contador descendente BCD complemento A2 de 8-bits, con reset síncrono y habilitación Contador descendente BCD complemento A2 de 8-bits, con reset asíncrono y habilitación 9. A partir del anterior contador, se desea generar un contador de N-bits genérico conectando W=N/8 contadores de 8-bits. Las descripciones estructurales correctas son: library ieee; use ieee.std_logic_1164.all; entity cntX is generic(N: integer:=32); port( clk,rst,e: in std_logic; o: out std_logic_vector(0 to N-1)); end entity; architecture str2 of cntX is constant W: integer:=N/8; signal ex: std_logic_vector(0 to W-1); signal ox: std_logic_vector(o'range); begin o<=ox; gen0: for i in 0 to W-1 generate gen1a: if i=W-1 generate ex(i)<=e; end generate; end1b: if i/=W-1 generate ex(i)<=ox(8*(i+1)) and ex(i+1); end generate; cntx: entity work.cnt port map (clk,rst,ex(i),ox(8*i to 8*(i+1)-1)); end generate; end architecture; a) b) c) d) Solo str1 str1 y str2 Solo str3 Todas architecture str1 of cntX is constant W: integer:=N/8; signal ex: std_logic_vector(0 to W-1); signal ox: std_logic_vector(o'range); begin o<=ox; gen0: for i in W-1 downto 0 generate gen1a: if i=W-1 generate ex(i)<=e; end generate; end1b: if i/=W-1 generate ex(i)<=ox(8*(i+1)) and ex(i+1); end generate; cntx: entity work.cnt port map (clk,rst,ex(i),ox(8*i to 8*(i+1)-1)); end generate; end architecture; architecture str3 of cntX is constant W: integer:=N/8; signal ex: std_logic_vector(0 to W-1); signal ox: std_logic_vector(o'range); begin o<=ox; gen0: for i in 0 to W-1 generate gen1a: if i=0 generate ex(i)<=e; end generate; end1b: if i/=0 generate ex(i)<=ox(8*i-1) and ex(i-1); end generate; cntx: entity work.cnt port map (clk,rst,ex(i),ox(8*i to 8*(i+1)-1)); end generate; end architecture; Nombre________________________________________________________________ Pregunta 1 2 3 4 5 6 7 8 9 10 A B C X D X X X X X X X X X