25
10/03/2017 1 DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Prof. Alexandre - ELP1DLP1 / DEE

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

Embed Size (px)

Citation preview

Page 1: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 1

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Prof. Alexandre - ELP1DLP1 / DEE

Page 2: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 2

Introdução à Linguagem VHDL

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Objetivos da Aula:

Prof. Alexandre - ELP1DLP1 / DEE

Plano de Ensino

3. Ferramentas de Desenvolvimento 3.4. Editor de texto (programação VHDL ou Verilog)

Conteúdo Programático

Page 3: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 3

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Referências Bibliográficas

Prof. Alexandre - ELP1DLP1 / DEE

D'AMORE, Roberto. VHDL: descrição e síntese de circuitos digitais . 2. ed. Rio de Janeiro: LTC, 2012. 292 p. * TOCCI, Ronald J; WIDMER, Neal S; MOSS, Gregory L. Sistemas digitais: princípios e aplicações. 11. ed. São Paulo: Makron Books, 2011. 817 p.

Livros (BU / CCT)

Apostilas e Guias (PDF)

Grupo Microeletrônica Universidade Federal de Itajubá. Tutorial VHDL. Peter J. Ashenden. The VHDL Cookbook. Dept. Computer Science. University of Adelaide. South Australia. HARDI Electronics AB. VHDL Handbook.

Altera

Altera. VHDL Basics. 92min Training.*

*Principais fontes para elaboração desta apresentação

Page 4: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 4

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

VHDL

Prof. Alexandre - ELP1DLP1 / DEE

O que significa:

VHSIC – Very High Speed Integrated Circuit

Hardware

Description

Language

Page 5: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 5

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Introdução

Prof. Alexandre - ELP1DLP1 / DEE

Hardware Description Languages são linguagens de programação usadas para modelar o hardware. Capazes de descrever sistemas digitais e utilizada universalmente nos mais diversos produtos que envolvem circuitos eletrônicos.

HDL

Page 6: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 6

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Um pouco de história...

Prof. Alexandre - ELP1DLP1 / DEE

- VHDL surgiu no contexto do programa americano “Very High Speed Integrated

Circuits” (VHSIC), iniciado em 1980 pelo Departamento de Defesa dos EUA.

- VHDL surgiu devido a necessidade de uma ferramenta para documentação

padrão da Descrição de Circuitos.

- Padrões Principais:

- IEEE 1164 – Pacote: Std_logic_1164 (tipos de dados)

- IEEE 1076.3 – Pacotes: Numeric_std e Numeric bit (numérica)

- Pacotes contem as informações de funções, tipos de dados, etc..

- Essas informações são utilizadas para traduzir a programação escrita para o nível

de circuitos nos PLDs (circuitos lógicos programáveis)

Page 7: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 7

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

VHDL

Prof. Alexandre - ELP1DLP1 / DEE

Vantagens

a) HDL padrão aprovada pela IEEE

b) HDL de alto nível usada para Simulação e Síntese.

c) diferentes alternativas de implementação, permitindo vários níveis de abstração

d) verificação do comportamento do sistema digital, através de simulação

e) redução do tempo e custo de desenvolvimento e manutenção do projeto

f) eliminação de erros de baixo nível do projeto

g) Velocidade de resposta entrada/saída

h) “Tell me how your circuit should behave and I will give the hardware that does

the job” - Altera

Desvantagens

a) dificuldade para otimização no hardware gerado

b) necessidade de treinamento para lidar com a linguagem

Page 8: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 8

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

VHDL

Prof. Alexandre - ELP1DLP1 / DEE

Síntese e Simulação

Page 9: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 9

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Níveis de Abstração e Descrição: Processo Síntese

Prof. Alexandre - ELP1DLP1 / DEE

Nível de sistema

RTL Nível Lógico e Circuito

Descrição desconhece o dispositivo É necessário conhecer o

dispositivo no qual a “lógica”

será implementada

Page 10: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 10

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Níveis de Abstração e Descrição: RTL Síntese

Prof. Alexandre - ELP1DLP1 / DEE

Page 11: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 11

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

VHDL: Ponto de partida

Prof. Alexandre - ELP1DLP1 / DEE

VHDL é formado por palavras-chave reservadas.

As linhas terminam por ponto-e-vírgula “;”

Os comentários em VHDL ocorrem após dois traços “- -“.

Os caracteres maiúsculos e minúsculos não tem distinção em VHDL.

Os nomes de variáveis devem iniciar-se com letras alfabéticas, sendo possível utilizar também dígitos numéricos e “_”.

O caracter “_” não pode ser usado duplicado, e nem no final de um nome.

Linguagem concorrente

- ordem dos comandos: não importa

- comandos sequenciais: somente em regiões específicas

Page 12: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

Library IEEE;

Use IEEE.std_logic_1164.all;

Use IEEE.std_logic_unsigned.all;

10/03/2017 12

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

VHDL: Primeiro Contato

Prof. Alexandre - ELP1DLP1 / DEE

Page 13: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 13

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

VHDL: Design Units

Prof. Alexandre - ELP1DLP1 / DEE

• A estrutura de um programa em VHDL é composta pelos elementos:

1) Entity (símbolo)

2) Architecture (esquemático)

3) Configuration (múltiplas arquiteturas, associação)

4) Package (bibliotecas)

Page 14: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 14

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Package (Library)

Prof. Alexandre - ELP1DLP1 / DEE

A primeira informação contida num programa VHDL é a declaração das bibliotecas library (ies) usada no projeto.

Várias funções e tipos básicos são armazenados em bibliotecas. A biblioteca “IEEE” é sempre incluída.

Ex: Library IEEE; Use IEEE.std_logic_1164.all; Use IEEE.std_logic_unsigned.all; lib_name.pack_name.object Observações: 1. a declaração Library IEEE é usada para definir a biblioteca IEEE; 2. a declaração use IEEE.std_logic_1164.all é necessária para usar os

objetos correspondentes à lógica padrão da biblioteca; e 3. a declaração use IEEE.std_logic_unsigned.all é necessária para realizar a

aritmética não sinalizada.

Page 15: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

• A entity define a interface (símbolo) do projeto, através dos pinos de entrada (in) e saída (out) e o tipo do sinal correspondente, no seguinte formato:

entity nome_da_entity is generic ( --Declaração de parâmetros <CONSTANT> nome : <type> := <valor> ); port ( --Declaração dos pinos <SIGNAL> nome : <mode> <type> ); end nome_da_entity ;

Exemplo: entity COMPARA is port ( A,B: in std_logic; C: out std_logic); end COMPARA;

Interfaces definidas através do exemplo de entity. 10/03/2017 15

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Entity

Prof. Alexandre - ELP1DLP1 / DEE

COMPARA

A

B

C

Page 16: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

• Descreve a funcionalidade e temporização de um modelo • Deve estar associado à uma ENTITY • Uma ENTITY pode possuir várias ARCHITECTURES

• Arquiteturas com vetores de estímulo de teste diferentes • Uma arquitetura “simulável” e uma segunda “sintetizável”

• Estilos de modelagem / descrição • COMPORTAMENTAL: como se comporta o modelo

• RTL: modelo descrito em termos de registradores • Funcional: sem temporização

• ESTRUTURAL: conexões • Portas lógicas e componentes

• HÍBRIDA

10/03/2017 16

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Architecture

Prof. Alexandre - ELP1DLP1 / DEE

Page 17: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 17

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Architecture

Prof. Alexandre - ELP1DLP1 / DEE

ARCHITECTURE nome_da_architecture OF nome_da_entity IS --Declarações opcionais SIGNAL temp : INTEGER := 1; CONSTANT load : BOOLEAN := true; TYPE states IS (S1,S2,S3); --Component declaration --Subtype declaration --Attribute declarations and specifications -- Subprogram declarations and body BEGIN --Lógica -- Process statements -- Concurrent procedural calls -- Concurrent signal assignments -- Component installation statements -- Generic statements END nome_da_architecture;

Page 18: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 18

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Architecture

Prof. Alexandre - ELP1DLP1 / DEE

• O signal pode ser declarado em entity, architecture ou em package, e serve para a conexão entre os módulos, componentes e portas lógicas.

sintaxe:

signal identificador (es) : tipo [restrição] [:=expressão];

Exemplos:

signal cont : integer range 50 downto 1;

signal ground : bit := ´0´;

signal bus : bit_vector;

Declaração de Sinais

Page 19: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 19

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Architecture

Prof. Alexandre - ELP1DLP1 / DEE

• A declaração do componente, component, é feita como segue, sendo que o componente declarado deve ser projetado através de uma outra descrição VHDL, ou outra forma de projeto, respeitando as mesmas características de Entidade.

Component nome_do_componente port ( Clk : in std_logic; Rst : in std_logic; Din : in std_logic; Dout : out std_logic ); end component;

Declaração de Componentes

Page 20: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 20

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Architecture

Prof. Alexandre - ELP1DLP1 / DEE

Lógica: Descrição COMPORTAMENTAL

Usa a cláusula process, cujo formato é o seguinte:

Process ( lista de sensibilidade ) begin descrição lógica end process;

A lista de sensibilidade corresponde aos sinais que devem alterar a saída do circuito, e é composta de todos os sinais de entrada para os circuitos combinatórios.

Para os registradores assíncronos, a lista seria composta do clock e do

reset; e para os registradores síncronos, do clock.

Page 21: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 21

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Architecture

Prof. Alexandre - ELP1DLP1 / DEE

Lógica: Descrição COMPORTAMENTAL - PROCESS

Page 22: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 22

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Architecture

Prof. Alexandre - ELP1DLP1 / DEE

Lógica: Descrição COMPORTAMENTAL - EXEMPLO

Architecture COMPORTAMENTO of COMPARA is begin process (A,B) begin if(A=B) then C<=‘1’; else C<=‘0’; end if; end process; end COMPORTAMENTO; O comando process (A,B) indica que os sinais A e B formam a lista de sensibilidade. A saída C será igual a 1 caso as entradas A e B sejam iguais, e C será igual a 0, caso contrário.

COMPARA

A

B

C

Page 23: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 23

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Architecture

Prof. Alexandre - ELP1DLP1 / DEE

Lógica: Descrição ESTRUTURAL

Para a descrição estrutural é feita a associação dos pinos do componente com os sinais usados no projeto.

Exemplo:

BEGIN

U0: nome_do_componente

port map (

Clk => clk_top;

Rst => rst_top;

Din => din_top;

Dout => dout_top

);

END

No exemplo, U0 é um label.

Page 24: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 24

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Architecture

Prof. Alexandre - ELP1DLP1 / DEE

Lógica: Descrição ESTRUTURAL - EXEMPLO

COMPARA

A

B

C

Page 25: DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - · PDF file10/03/2017 2 Introdução à Linguagem VHDL DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP Objetivos da Aula: Prof. Alexandre - ELP1DLP1

10/03/2017 25

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP

Architecture

Prof. Alexandre - ELP1DLP1 / DEE

Lógica: Descrição ESTRUTURAL - EXEMPLO

architecture ESTRUTURA of COMPARA is component XOR_Gate port (I0, I1: in std_logic; O: out std_logic); end component; component NOT_Gate port (I0: in std_logic; O: out std_logic); end component; signal AUX: std_logic; begin U0: XOR_Gate port map (I0=>A, I1=>B, O=>AUX); U1: NOT_Gate port map (I0=>AUX, O=>C); end ESTRUTURA;