Buscar

Apresentação VHDL

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Portas Lógicas e
VHDL
II Semana Acadêmia 
Engenharia Física
- Álgebra Booleana: variáveis assumem um 
entre apenas dois valores.
- Conjunto discreto: [0;1]
- Operações: OR, AND, NOT, XOR, NAND, 
NOR…
- Cada operação tem a sua representação, 
porta lógica e tabela verdade;
Operação OR
- Representação: A + B; A v B
Operação AND
- Representação: A . B ; A ^ B
Operação NOT
 
Representação: A
Operação XOR
Operação NAND
Operação AND seguida de NOT:
Operação NOR
Operação OR seguida de NOT
Circuitos Integrados
Protoboard
FPGA
- Field Programmable
Gate Array, hardware
reconfigurável.
VHDL
- Very High Speed Integrated Circuits (V) 
Hardware Description Language (HDL);
- Como o nome diz, é linguagem de descrição 
de hardware. A programação deve ser 
pensada em paralelo.
VHDL
- Não é case-sensitive, “TeStE” equivale à 
“teste”;
- Comentários são iniciados por “--”;
- Packages : equivalem às bibliotecas em 
C/C++;
VHDL: Estrutura
I) Inclusão dos pacotes:
library IEEE;
 use IEEE.std_logic_1164.all;
II) Entity: interface que descreve entradas/saídas
entity nome_entidade is
port( --declaração I/O …);
end nome_entidade;
VHDL: Estrutura
III) Architecture: corpo do sistema, onde ocorrem 
atribuições e operações
architecture nome_arquitetura of nome_entidade is
--declaração dos sinais
begin
--operações
end nome_arquitetura;
-> Na arquitetura, paralelismo!
VHDL: Estrutura
IV) Process: implementado dentro da arquitetura, 
processamento sequencial
process(sinais_de_sensitividade)
begin
--operações
end process;
Um processo é “chamado” quando um sinal de 
sensitividade se altera!
VHDL: Tipos de Sinais
- std_logic -> assume valores ‘0’ , ‘1’, ‘U’ (não 
inicializado), ‘Z’ (alta impedância), etc;
- std_logic_vector(7 downto 0) -> a ordem é muito 
importante, pois dita qual o bit menos/mais significativo. 
É possível (0 to 7), (31 downto 0), etc;
- integer range num_mín to num_máx
VHDL: Tipos de Sinais
Exemplos:
entity enti is architecture arc of enti is
port( clock : in std_logic; signal A : std_logic;
reset : in std_logic; signal cont : integer range 0 to 5;
saida : out std_logic); signal B : std_logic_vector(3
end enti; downto 0);
begin
...
VHDL: Operações e Atribuições
begin
saida <= A; -- a saída do módulo é o valor do sinal A
process(clock, reset) -- quando clock e reset mudam, chama
begin
if reset = ‘1’ then -- funciona como C/C++
A <= ‘0’;
cont <= 0;
elsif clock’event and clock=’1’ then -- se transição de clock p/ 1
...
VHDL: Operações e Atribuições
elsif clock’event and clock=’1’ then -- se transição de clock p/ 1
if cont < 5 then
cont <= cont + 1;
A <= ‘0’;
else
cont <= 0;
A <= ‘1’; ...
-> Podemos utilizar um std_logic_vector como contador, só é 
necessário que ele tenha o número de bits suficiente!
VHDL: Operações e Atribuições
A <= ‘1’;
end if; -- termina o if do cont
end if; -- termina o if do reset/clock
end process;
end arc; -- terminou a arquitetura
VHDL: Operações e Atribuições
- Operação “case” funciona semelhante à C:
 case C is
 when 0 => B <= (others=>'0');
 when 1 => B <= "0001";
… end case;
- Operações lógicas podem ser utilizadas diretamente:
var3 <= var1 and var2 / var1 or var2 / var1 xor var2 ...
VHDL
- Atribuições a um sinal ou saída devem 
ocorrer em apenas uma parte do código;
- Só é possível “testar” sinais ou entradas;
- Operações “if” e “case” apenas dentro de 
process!
VHDL
-> Operação “when” : funcionamento praticamente 
idêntico ao “case”, mas fora de processo
saida <= ‘1’ when (A and B)=’1’ else ‘0’;
VHDL:
Links úteis:
http://www.quicknet.se/hdc/hdl/index.htm#tut
http://www.csee.umbc.
edu/portal/help/VHDL/VHDL-Handbook.pdf
Máquina de Estados
- Modelo de representação de circuitos lógicos. Uma 
máquina tem estados finitos, pode estar em apenas um 
estado por vez e possui transições entre os estados.
- Muito útil para modelar problemas!
- Utilizamos uma variável para estado atual e outra para 
o próximo estado.
Máquina de Estados
Diagrama de estados: 
Máquina de Estados
- Em VHDL, é comum utilizar a “função” type para criar 
os estados, sendo declarada junto com os signals:
type estados is (parado, subindo, descendo);
signal estado_atual : estados;
signal proximo_estado : estados;
Simulação
- Antes de programar a FPGA ou montar o circuito na 
protoboard, é interessante saber se a lógica funciona 
corretamente.
- Com isso em mente, é ideal simular o código de VHDL!
- Para isso, é necessário criar uma “bancada de teste”: 
testbench. É esse o nome de um módulo de VHDL que 
não possui entradas e saídas, apenas passa valores 
para um módulo mais interno.
Simulação
- No testbench são gerados os sinais, e através de uma 
“instanciação” estes são repassados ao módulo a ser 
testado.
- Os valores são repassados através de um mapeamento 
de portas de entrada.
- Assim, podemos analisar o comportamento do circuito 
através das formas de onda dos sinais.
Simulação
- Exemplo de testbench:
entity testbench is inst: entity work.entidade
end testbench; port map(sinal_ent => sinal_tb, …);
architecture testbench of testbench is
signal sinal_tb : std_logic;
…
begin
sinal_tb <= ‘1’, ‘0’ after 10 ns, ‘1’ after 25 ns;
Utilidade da linguagem
- Grande abrangência, de circuitos simples à 
projetos muito complexos.
- Um ótimo exemplo é o aparelho de 
amplificação de sinal da empresa Zurich 
Instruments:
Lock-In Amplifier
- Recebe um sinal analógico de um aparelho a ser 
testado e amplifica a frequência a ser estudada, 
extraindo uma componente da Série de Fourier do sinal 
recebido.
- Primeiramente, o sinal é analógico é convertido para 
um sinal digital, e então o seu processamento ocorre 
em uma FPGA programada com VHDL!
Lock-In Amplifier
- Utilizações: microscopia de Força Atômica, 
processamento industrial, Quantum e Nano Física, 
Astronomia, Teste Não-Destrutivo;
http://www.zhinst.com/products/hf2li
Considerações finais
- Obrigado pelo convite, espero que tenha 
sido proveitoso! 
E saibam que VHDL é a linguagem 
campeã neste quesito:

Outros materiais

Outros materiais