https://wiki.sj.ifsc.edu.br/index.php?title=DI2022802_2022_1_AULA16&feed=atom&action=historyDI2022802 2022 1 AULA16 - Histórico de revisão2024-03-29T08:48:36ZHistórico de revisões para esta página neste wikiMediaWiki 1.35.9https://wiki.sj.ifsc.edu.br/index.php?title=DI2022802_2022_1_AULA16&diff=183586&oldid=prevDouglas: 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...'2022-06-13T16:00:19Z<p>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...'</p>
<p><b>Página nova</b></p><div>=Lista de Exercícios para AT3=<br />
<br />
==Parte 1 - VHDL==<br />
<br />
#O que significa CPLD, FPGA e VHDL?<br />
#Quais as principais vantagens no uso do VHDL?<br />
#Quais as etapas de um ciclo de projeto de sistemas em VHDL?<br />
#Qual a diferença entre uma Entidade (entity) e uma Arquitetura (architecture)?<br />
#O que são os Ports?<br />
#Que tipo de pinos (ports) existem e onde são aplicados?<br />
#O que é uma Descrição comportamental?<br />
#O que é uma Descrição por fluxo de dados?<br />
#O que é uma Descrição estrutural?<br />
#Quais são as regras para a formação dos Identificadores?<br />
#O que é uma constante?<br />
#Qual a diferença de Sinais e de Variáveis?<br />
#Quais os tipos de dados disponíveis em VHDL?<br />
#Projetar e simular:<br />
##Biestável tipo JK com ''clock'' e borda de subida, com descrição comportamental.<br />
##Idem, com ''Preset'' e ''Clear'' assíncronos<br />
#Realizar o projeto de um contador síncrono, com uma sequência pré-definida em VHDL e simular.<br />
#Comentar os exemplos:<br />
##Exemplo 1<syntaxhighlight lang=vhdl> <br />
library ieee;<br />
use ieee.std_logic_1164.all;<br />
<br />
entity FF_D is<br />
port<br />
(<br />
D : in std_logic;<br />
clk : in std_logic;<br />
Q : out std_logic<br />
);<br />
end FF_D;<br />
<br />
architecture Ex1 of FF_D is<br />
begin<br />
-- Update the register output on the clock's rising edge<br />
process (clk)<br />
begin<br />
if (rising_edge(clk)) then<br />
Q <= D;<br />
end if;<br />
end process;<br />
end Ex1;</syntaxhighlight><br />
##Exemplo 2 <syntaxhighlight lang=vhdl> <br />
library ieee;<br />
use ieee.std_logic_1164.all;<br />
<br />
ENTITY ff_jk is<br />
port(j,k,clk: in bit;<br />
q: out bit);<br />
END ff_jk;<br />
<br />
ARCHITECTURE teste of ff_jk is<br />
BEGIN<br />
<br />
process(clk)<br />
variable temp : bit :='0';<br />
begin<br />
if( falling_edge(clk) ) then<br />
if (j='1' and k='0') then<br />
temp:='1';<br />
elsif (j='0' and k='1') then<br />
temp:='0';<br />
elsif (j='1' and k='1') then<br />
temp:= not temp;<br />
else<br />
temp:=temp;<br />
end if;<br />
q<=temp;<br />
end if;<br />
end process;<br />
END teste;</syntaxhighlight><br />
##Exemplo 3 <syntaxhighlight lang=vhdl> <br />
library ieee;<br />
use ieee.std_logic_1164.all; <br />
use ieee.std_logic_arith.all;<br />
<br />
entity CONTADOR is<br />
port(<br />
CLK: in std_logic;<br />
RESET: in std_logic;<br />
ENABLE: in std_logic;<br />
Q: out std_logic_vector (3 downto 0)<br />
);<br />
end CONTADOR;<br />
<br />
architecture CONTADOR_arq of CONTADOR is <br />
begin<br />
process(CLK,RESET)<br />
variable X: integer range 0 to 15;<br />
begin<br />
if (RESET = '1') then<br />
X := 0;<br />
<br />
elsif (CLK'event and CLK='1') then<br />
if (ENABLE = '1') then<br />
X := X + 1;<br />
end if;<br />
end if;<br />
<br />
Q <= conv_std_logic_vector(X, 4);<br />
<br />
end process;<br />
end CONTADOR_arq;<br />
<br />
</syntaxhighlight><br />
<br />
==Parte 2 - Simulador==<br />
<br />
# O que é o ModelSIM?<br />
# Para que serve o ModelSIM?<br />
# O que é o ''Jumpstart'' que aparece na primeira vez que se executa o ModelSIM?<br />
# O que é um ''testbench''?<br />
# O que eu devo fazer para rodar um simulação? Onde devo clicar?<br />
# O que é ''Wave''? Esse termo é utiliza pra quê?<br />
# O que é "passo da simulação"?<br />
# O que é "tempo de simulação"?<br />
# 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.<syntaxhighlight lang=vhdl><br />
library ieee;<br />
use ieee.std_logic_1164.all; <br />
use ieee.std_logic_arith.all;<br />
<br />
entity CONTADOR is<br />
port(<br />
CLK: in std_logic;<br />
RESET: in std_logic;<br />
ENABLE: in std_logic;<br />
Q: out std_logic_vector (3 downto 0)<br />
);<br />
end CONTADOR;<br />
<br />
architecture CONTADOR_arq of CONTADOR is <br />
begin<br />
process(CLK,RESET)<br />
variable X: integer range 0 to 15;<br />
begin<br />
if (RESET = '1') then<br />
X := 0;<br />
<br />
elsif (CLK'event and CLK='1') then<br />
if (ENABLE = '1') then<br />
X := X + 1;<br />
end if;<br />
end if;<br />
<br />
Q <= conv_std_logic_vector(X, 4);<br />
<br />
end process;<br />
end CONTADOR_arq;</syntaxhighlight><br />
# Tente simular o seguinte código:<syntaxhighlight lang=vhdl><br />
library ieee;<br />
use ieee.std_logic_1164.all;<br />
<br />
ENTITY mux4x1 is<br />
port(i0, i1, i2, i3: in bit;<br />
a0, a1: in bit;<br />
y: out bit);<br />
END mux4x1;<br />
<br />
ARCHITECTURE teste of mux4x1 is<br />
BEGIN<br />
y <= i0 when a1='0' and a0='0' else<br />
i1 when a1='0' and a0='1' else<br />
i2 when a1='1' and a0='0' else<br />
i3;<br />
END teste; <br />
</syntaxhighlight><br />
<br />
==Parte 3 - Software Quartus==<br />
<br />
# O que é um Ambiente de Software EDA?<br />
# Um software EDA normalmente possui quatro entrada de dados do projeto. Quais são e para que servem?<br />
# Qual a maneira mais fácil de criar um projeto no software Quartus?<br />
# O que é um diagrama esquemático?<br />
# O que é a ferramenta "símbolos" (componentes)?<br />
# Quais as bibliotecas principais de "componentes"?<br />
# Como se divide a biblioteca "Primitives".<br />
# Quais os três tipos de "pinos"?<br />
# Nos projetos, porque usar Ciclone II - EP2C35F672C6?<br />
# Por que o nome do projeto deve ser o mesmo que da entidade (entity)?<br />
# Para que eu devo "compilar" meu projeto?<br />
# Para que simular meu projeto?<br />
# Na configuração da simulação, para que definir "End Time" e "Grid Size"?<br />
# Ao rodar a simulação eu posso configurá-la para ''Timing'' ou ''Functional''? Qual a diferença entre os dois tipos de simulação?<br />
# Desenvolvimento via diagrama esquemático, utilizando portas lógicas discretas, a montagem de um circuito combinacional capaz de executar a seguinte operação: <math>S(A,B,C,D)=(A.B) \oplus (C.D)</math><br />
# 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<br />
#Desenvolva via diagrama esquemático, um circuito MUX de 4 entradas. Simule o funcionamento do circuito.<br />
#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.<br />
<br />
<br />
-----<br />
[[Imagem:icone_voltar.png|link=DI2022802_2022_1_AULA15]]<br />
[[Imagem:icone_menu.png|link=DI2022802_2022_1#Aulas]]<br />
[[Imagem:icone_prox.png|link=DI2022802_2022_1_AULA17]]</div>Douglas