DI2022802 2022 1 AULA16

De MediaWiki do Campus São José
Revisão de 13h00min de 13 de junho de 2022 por Douglas (discussão | contribs) (Criou página com '=Lista de Exercícios para AT3= ==Parte 1 - VHDL== #O que significa CPLD, FPGA e VHDL? #Quais as principais vantagens no uso do VHDL? #Quais as etapas de um ciclo de projeto...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

Lista de Exercícios para AT3

Parte 1 - VHDL

  1. O que significa CPLD, FPGA e VHDL?
  2. Quais as principais vantagens no uso do VHDL?
  3. Quais as etapas de um ciclo de projeto de sistemas em VHDL?
  4. Qual a diferença entre uma Entidade (entity) e uma Arquitetura (architecture)?
  5. O que são os Ports?
  6. Que tipo de pinos (ports) existem e onde são aplicados?
  7. O que é uma Descrição comportamental?
  8. O que é uma Descrição por fluxo de dados?
  9. O que é uma Descrição estrutural?
  10. Quais são as regras para a formação dos Identificadores?
  11. O que é uma constante?
  12. Qual a diferença de Sinais e de Variáveis?
  13. Quais os tipos de dados disponíveis em VHDL?
  14. Projetar e simular:
    1. Biestável tipo JK com clock e borda de subida, com descrição comportamental.
    2. Idem, com Preset e Clear assíncronos
  15. Realizar o projeto de um contador síncrono, com uma sequência pré-definida em VHDL e simular.
  16. Comentar os exemplos:
    1. Exemplo 1
       
      library ieee;
      use ieee.std_logic_1164.all;
      
      entity FF_D is
      	port
      	(
      		D	: in  std_logic;
      		clk	: in  std_logic;
      		Q	: out std_logic
      	);
      end FF_D;
      
      architecture Ex1 of FF_D is
      begin
      -- Update the register output on the clock's rising edge
      process (clk)
      begin
      	if (rising_edge(clk)) then
      		Q <= D;
      	end if;
      end process;
      end Ex1;
      
    2. Exemplo 2
       
      library ieee;
      use ieee.std_logic_1164.all;
       
      ENTITY ff_jk is
          port(j,k,clk: in bit;
               q: out bit);
      END ff_jk;
       
      ARCHITECTURE teste of ff_jk is
      BEGIN
      
      process(clk)
      variable temp : bit :='0';
      begin
      	if( falling_edge(clk) ) then
      		if (j='1' and k='0') then
      			temp:='1';
      		elsif (j='0' and k='1') then
      			temp:='0';
      		elsif (j='1' and k='1') then
      			temp:= not temp;
      		else
      			temp:=temp;
      		end if;
      		q<=temp;
      	end if;
      end process;
      END teste;
      
    3. Exemplo 3
       
      library ieee;
      use ieee.std_logic_1164.all; 
      use ieee.std_logic_arith.all;
      
      entity CONTADOR is
      port(
      	CLK:	in  std_logic;
          	RESET:	in  std_logic;
      	ENABLE:	in  std_logic;
      	Q:	out std_logic_vector (3 downto 0)
      );
      end CONTADOR;
      
      architecture CONTADOR_arq of CONTADOR is 
      begin
      	process(CLK,RESET)
      		variable X: integer range 0 to 15;
      	begin
      		if (RESET = '1') then
      			X := 0;
      
      		elsif (CLK'event and CLK='1') then
      			if (ENABLE = '1') then
      				X := X + 1;
      			end if;
      		end if;
      
      		Q <= conv_std_logic_vector(X, 4);
      
      	end process;
      end CONTADOR_arq;
      

Parte 2 - Simulador

  1. O que é o ModelSIM?
  2. Para que serve o ModelSIM?
  3. O que é o Jumpstart que aparece na primeira vez que se executa o ModelSIM?
  4. O que é um testbench?
  5. O que eu devo fazer para rodar um simulação? Onde devo clicar?
  6. O que é Wave? Esse termo é utiliza pra quê?
  7. O que é "passo da simulação"?
  8. O que é "tempo de simulação"?
  9. Tente simular o seguinte código VHDL abaixo. É importante estabelecer um passo de simulação na ordem 100 ps. Perceba também que, quando ele atinge a contagem de 15 ele para de contar. Tente resolver esse problema alterando o range e/ou mudando a forma com que as informações são enviadas para o saída.
    library ieee;
    use ieee.std_logic_1164.all; 
    use ieee.std_logic_arith.all;
    
    entity CONTADOR is
    port(
    	CLK:	in  std_logic;
        	RESET:	in  std_logic;
    	ENABLE:	in  std_logic;
    	Q:	out std_logic_vector (3 downto 0)
    );
    end CONTADOR;
    
    architecture CONTADOR_arq of CONTADOR is 
    begin
    	process(CLK,RESET)
    		variable X: integer range 0 to 15;
    	begin
    		if (RESET = '1') then
    			X := 0;
    
    		elsif (CLK'event and CLK='1') then
    			if (ENABLE = '1') then
    				X := X + 1;
    			end if;
    		end if;
    
    		Q <= conv_std_logic_vector(X, 4);
    
    	end process;
    end CONTADOR_arq;
    
  10. Tente simular o seguinte código:
    library ieee;
    use ieee.std_logic_1164.all;
     
    ENTITY mux4x1 is
        port(i0, i1, i2, i3: in bit;
             a0, a1: in bit;
             y: out bit);
    END mux4x1;
     
    ARCHITECTURE teste of mux4x1 is
    BEGIN
        y <= i0 when a1='0' and a0='0' else
             i1 when a1='0' and a0='1' else
             i2 when a1='1' and a0='0' else
             i3;
    END teste;
    

Parte 3 - Software Quartus

  1. O que é um Ambiente de Software EDA?
  2. Um software EDA normalmente possui quatro entrada de dados do projeto. Quais são e para que servem?
  3. Qual a maneira mais fácil de criar um projeto no software Quartus?
  4. O que é um diagrama esquemático?
  5. O que é a ferramenta "símbolos" (componentes)?
  6. Quais as bibliotecas principais de "componentes"?
  7. Como se divide a biblioteca "Primitives".
  8. Quais os três tipos de "pinos"?
  9. Nos projetos, porque usar Ciclone II - EP2C35F672C6?
  10. Por que o nome do projeto deve ser o mesmo que da entidade (entity)?
  11. Para que eu devo "compilar" meu projeto?
  12. Para que simular meu projeto?
  13. Na configuração da simulação, para que definir "End Time" e "Grid Size"?
  14. Ao rodar a simulação eu posso configurá-la para Timing ou Functional? Qual a diferença entre os dois tipos de simulação?
  15. Desenvolvimento via diagrama esquemático, utilizando portas lógicas discretas, a montagem de um circuito combinacional capaz de executar a seguinte operação:
  16. Desenvolva via diagrama esquemático, utilizando FF tipo D (CI 7474), a montagem de um circuito do contador Johnson de 4 bits. Simule o funcionamento do circuito
  17. Desenvolva via diagrama esquemático, um circuito MUX de 4 entradas. Simule o funcionamento do circuito.
  18. Desenvolva via diagrama esquemático, um circuito do contador em anel de 4 saídas com clear e preset em apenas um dos FF. Simule o funcionamento do circuito.



Icone voltar.png Icone menu.png Icone prox.png