100 likes | 242 Views
Exercícios Referentes à Prova P1. Exercícios. Assinale com V se a sentença estiver correta, caso contrário preencha com F ( ) A ocorrência de overflow, em operações de soma de números sem sinal, indica que o resultado da soma não pode ser representado corretamente
E N D
Exercícios • Assinale com V se a sentença estiver correta, caso contrário preencha com F () A ocorrência de overflow, em operações de soma de números sem sinal, indica que o resultado da soma não pode ser representado corretamente ( ) Não pode ocorrer overflow na soma de números inteiros de sinais opostos ( ) Carry e negativo são sinais usados para informar o resultado de operações aritméticas. Estes servem como informação útil para alterar o fluxo de execução de programas () Descrição comportamental, por ser mais detalhada que descrição estrutural, permite ao projetista informar mais características de projeto, de forma a melhorar seu desempenho ( ) A sentença VHDL “y <= x + z after 5ns” significa que o valor do tempo atual de x é somado com o valor que estava em z 5ns atrás para gerar o novo valor de y • Diga duas características de VHDL, não existentes nas linguagens de programação, que a capacita para descrever hardware. Descreva e exemplifique estas características • Considere o projeto de um circuito digital que implementa a função f com três variáveis de entrada (x, y, z) e satisfazendo as seguintes propriedades: Qual das expressões ao lado representa corretamente a função f?
Exercícios • Dado o decodificador binário 2x4 e as portas lógicas da figura - ambos ilustrados abaixo, obtenha as funções f1, f2 e f3 em função das entradas a e b.
Exercícios • Descreve a entidade e a arquitetura do módulo ModuloTopo. Considere que os módulos: Incrementador, Armazenador, ControlaSaida e ControlaEntrada devam apenas ser mapeados (portmap) na arquitetura do ModuloTopo
Exercícios • Determine o maior caminho do circuito abaixo. Considerando que portas NOT (inversores) atrasam 1ns, portas NAND (não e lógico) e NOR (não ou lógico) atrasam 3ns, portas AND (e lógico) e portas OR (ou lógico) atrasam 5ns. Para este caminho verifique se é possível ocorrer um hazard, e caso isto seja possível, ilustre um caso onde ocorreria hazard. Considere que as entradas primárias (A, B, C e D) sempre variam simultaneamente. Por fim, descreva o circuito em VHDL considerando os atrasos definidos
Exercícios • Jogo dos 8 erros em VHDL. O código VHDL abaixo contém exatamente 8 falhas, que você deve identificar, deixando claro qual o erro. Os erros são de diversas naturezas, sintaxe, contexto, semântica. • library IEEE; • entity p1 is • port( A1; B2; C3: in STD_LOGIC; • D1; E2; F3; G4: out STD_LOGIC); • end p1; • architecture Prova1 of p1 is • signal iD1, iE2, iF3, iG4: out std_logic; • signal S: std_logic_vector(3 downto 0); • begin • D1 <= iD1; E2 <= iE2; F3 <= iF3; G4 <= iG4; • A1 <= C3 and (B2 or iD1); • iD1 <= A1 and B2; iE2 <= A1 xor C3; iF3 <= A1 or C3; • iG4 <= iF3 nand (iE2 xor (B2 and C3)); • S(1 downto 0) <= iE2 & iF3 & iD1; • with (D1 & E2 & F3) select • S <= "1011" when "111", • "0101" when "110", • "0101" when "011"| "100" | "000", • "1100" when "010", • "1011" whenothers; • endp1;
Exercícios • Faça uma figura com os primeiros 100ns das formas de onda geradas pelo testbench descrito a seguir. Considere os sinais s1, s2, s3, s4 e s5:
Exercícios • (continuação) entitye_p_tb is ende_p_tb; architecture TB ofe_p_tb is signal s1, s2, s3: std_logic; signal s4: std_logic_vector(3 downto 0) := (others=>'0'); signal s5: std_logic_vector(3 downto 0); begin U: entity work.E_Pportmap(s1=>s1, s2=>s2, s3=>s3, s4=>s4, s5=>s5); process begin s1 <= '0', '1' after 20ns; wait for 50ns; endprocess; process begin s2 <= '1', '0' after 15ns, '1' after 25ns; wait for 30ns; endprocess; process begin s4 <= s4 + 1 after 25ns; wait for 60ns; endprocess; end TB;
Exercícios • Faça na figura abaixo as formas de onda geradas pela execução dos 60ns iniciais do test-bench descrito a seguir: architecture TB of TbAtraso is signal s1, s2, s3, ss: std_logic; signal s4, s5: std_logic_vector(3 downto 0) := (others=>'0'); begin s3 <= not ss; ss <= s1 xor s2; s5 <= s4 + ss; process begin s1 <= '1', '0' after 10ns; wait for 50ns; end process; process begin s2 <= '1', '0' after 10ns, '1' after 15ns, '0' after 25ns; wait for 60ns; end process; process begin s4 <= s4 + "0101" after 30ns; wait for 45ns; end process; end TB;
Exercícios • (continuação)