Sei sulla pagina 1di 14

Exsto Tecnologia

Kit Educacional CPDL

Apostila de CPLD (Dispositivos Lgicos Programveis)

Exsto Tecnologia Ltda Ltda.


R. Vereador Jos Eduardo da Costa, 169 Santa Rita do Sapuca MG CEP: 37540-000 +55 35 3471 6898 www.exsto.com.br

CPLD (Dispositivos Lgicos Programveis)

Reviso A B

Principais Autores - Tiago Coelho Magalhes - Jos Domingos Adriano - Tiago Coelho Magalhes - Jos Domingos Adriano

Descrio da Verso Verso inicial

Data de Trmino 20/03/2007

Alterao para novo formato do 16/12/2007 kit

Copyright 2007 por Exsto Tecnologia Ltda. Todos os direitos reservados

Desenvolvido e produzido com orgulho no Brasil

Exsto Tecnologia Ltda R. Vereador Jos Eduardo da Costa, 169 Santa Rita do Sapuca MG CEP: 37540-000 +55 35 3471 6898 www.exsto.com.br

Exsto Tecnologia

CPLD (Dispositivos Lgicos Programveis)

NDICE

PGINA

Introduo .............................................................................................................................................. 4 1 O software QUARTUS II ............................................................................................................... 5 1.1 Instalao.................................................................................................................................. 5 1.1.1 Instalao do Quartus II 7.1 ............................................................................................ 5 1.1.2 1.1.3 1.1.4 2 Criando o Primeiro Projeto ............................................................................................. 5 Compilao do Projeto .................................................................................................... 7 Gravao.......................................................................................................................... 8

A linguagem VHDL........................................................................................................................ 9 2.1 2.2 Histrico ................................................................................................................................... 9 Vantagens de uso.................................................................................................................... 10

2.3 Introduo linguagem .......................................................................................................... 11 2.3.1 Entidade ........................................................................................................................ 11 2.3.2 2.3.2.1 2.3.2.2 2.3.3 2.3.3.1 2.3.3.2 2.3.4 Corpo da arquitetura ..................................................................................................... 12 Descrio Comportamental....................................................................................... 12 Descrio por fluxo de dados .................................................................................... 12 Classe de objetos ........................................................................................................... 12 Tipos de dados escalares ........................................................................................... 13 Tipos de dados compostos ........................................................................................ 13 Operadores.................................................................................................................... 14

Exsto Tecnologia

CPLD (Dispositivos Lgicos Programveis)

Introduo

Uma caminhada de 200 km sempre comea com um simples passo. (Provrbio chins) Procuremos acender uma vela em vez de amaldioar a escurido. (Provrbio chins) Este material didtico tem como funo guiar o aluno durante todo o seu aprendizado da linguagem VHDL, e gui-lo tambm em todas suas experincias junto ao Kit CPLD LE desenvolvido pela Exsto Tecnologia (www.exsto.com.br). Esta apostila trata de todo o processo para a criao de projetos utilizando CPLDs, desde a instalao do software de desenvolvimento Quartus II, at o prprio desenvolvimento com a linguagem VHDL. Temos o propsito de explorar os conceitos abordados e imediatamente prover a integrao do aluno com o prazer da prtica, tornado seu aprendizado mais interessante e consistente. Todo o contedo terico aqui abordado acompanhado de experincias prticas, fomentando a vontade do aluno e aplicar o conhecimento de forma imediata, permitindo que ele possa criar a partir dos conhecimentos adquiridos. Em toda apostila foi adotada uma forma de trabalho que permite o aluno visualizar os contedos tericos seguido de exerccios prticos e propostos. Eles esto dispostos no caderno de exerccios no final da apostila, permitindo que o aluno possa desenvolver seu pensamento em torno do tema recm abordado.

Exsto Tecnologia

CPLD (Dispositivos Lgicos Programveis)

1 O software QUARTUS II
Este software pode ser facilmente adquirido de maneira gratuita, para finalidade didtica. um software da Altera, sendo que no site www.altera.com , encontra-se para ser realizado o download. Aps a realizao do download e antes de realizar a instalao, o usurio deve requerer uma licena (gratuita) no prprio site da altera. Sendo que para isto deve-se realizar um cadastro no site e posteriormente enviar o endereo fsico da mquina na qual se deseja instalar o software do QUARTUS II. Assim que receber a licena o usurio pode instalar o software que tem uma validade de 6 (seis) meses, sendo que aps este perodo para continuar utilizando o software, necessrio apenas requerer outra licena no site.

1.1 Instalao
1.1.1 Instalao do Quartus II 7.1
Para instalar o Quartus II basta seguir os passos apresentados no manual do kit.

1.1.2 Criando o Primeiro Projeto


Crie um novo documento. V a File e clique em New. Aparecer a seguinte janela:

Nesta janela pode-se escolher qual o tipo de linguagem em que ir se trabalhar, se em VHDL, linguagem em blocos, etc. Criaremos um arquivo VHDL. Selecione a opo VHDL File como na figura acima e aperte OK. Abrir uma janela de texto, onde ser digitado todo o cdigo. Salve este documento com o nome da entidade a ser criada. Por exemplo, criaremos um cdigo que faa uma contagem de 0 a 9999. de costume chamar a entidade do projeto, ou seja, a entidade externa, com o nome da aplicao em si, como na figura a seguir:

Exsto Tecnologia

CPLD (Dispositivos Lgicos Programveis)

Note que o arquivo, ainda com nome sem especificao, apresenta uma entidade chamada CONTADOR. Esta parte de cdigo ainda no nos interessa, mas este nome de grande importncia para criao de um projeto, pois, se apresentar nomes diferentes, o compilador no reconhecer este arquivo e gerar um erro. Agora salve este arquivo como CONTADOR. Aparecer uma janela para criao de um novo projeto.

Selecione a opo SIM e nas janelas posteriores, clique em NEXT at a janela de seleo do chip. No KIT CPLD LE trabalharemos com o CPLD EPM3064ALC44-10, da famlia MAX3000A. As especificaes de famlia e chip devem estar de acordo com o CPLD que se quer trabalhar, como na figura a seguir:

Exsto Tecnologia

CPLD (Dispositivos Lgicos Programveis)

Selecione NEXT at que haja a opo FINISH. Clique nela e pronto!! Voc acaba de criar um novo projeto no QUARTUS II. Para a criao de projetos com tipos de linguagem diferentes, somente mude de opo quando for gerado o New File.

1.1.3 Compilao do Projeto


Depois de finalizado, o projeto deve ser compilado atravs do atalho . Nesta etapa, o software apontar os erros, caso existam. Logo aps, realiza-se a declarao de pinos para que seja possvel a gravao do projeto em um PLD.

Exsto Tecnologia

CPLD (Dispositivos Lgicos Programveis)

Clique em Pins no menu Assignments. Uma rea para declarao dos pinos ser aberta. Depois de declarados os pinos, o projeto deve ser compilado novamente.

1.1.4 Gravao
O ltimo passo para que se possa ento efetuar o teste do prottipo a gravao do projeto na placa da Altera e para executar esta operao, utiliza-se o atalho . Na rea de configurao apresentada, preciso assegurar que as opes de hardware estejam corretas atravs do atalho . Caso no haja hardware selecionado, em Add Hardware selecione manualmente ByteBlaster.

Exsto Tecnologia

CPLD (Dispositivos Lgicos Programveis)

Ainda preciso selecionar a opo Program/Configure. Outras opes como verificao da gravao so tambm disponibilizadas. Clique em Start para iniciar gravao. Verifique antes se a placa de gravao encontra-se alimentada e devidamente instalada na porta paralela do computador.

2 A linguagem VHDL
2.1 Histrico
Nas dcadas de 70 e 80 foi posto em prtica um programa do Departamento de Defesa (DoD) americano, para desenvolvimento de circuitos integrados de alta velocidade, denominado VHSIC e originado da preocupao de domnio das tecnologias envolvidas. Desde o princpio, anteviu-se o problema de representao dos projetos segundo uma linguagem que fosse comum s vrias empresas envolvidas e que permitisse uma documentao fechada e clara para projetos de complexidade crescente. Nesta mesma poca, j havia no mercado de computao a chamada crise do software, caracterizada pela dificuldade de gesto, documentao e sistematizao do ciclo de vida do software (que envolve, em termos gerais, todas as atividades de relativas sua criao e uso)1. O problema surgiu inicialmente no software porque era no software que se desenvolviam as aplicaes, que tornavam o produto particular para um uso especfico. Isso fazia com que um grande volume de projetos fosse conduzido, quase sempre com muita complexidade e pouco mtodo. No hardware a questo era mais bem controlada, pois os projetos eram, em geral, mais genricos, especialmente para o hardware digital. Os projetos de microprocessadores, que eram os mais complexos, visavam na maior parte dos casos o uso geral. Um mesmo microprocessador seria utilizado em vrias aplicaes, seria reproduzido e testado aos milhes. Isso significava que o Exsto Tecnologia

CPLD (Dispositivos Lgicos Programveis)

10

investimento em um nico projeto poderia ser muito maior, inclusive em termos de especificao e testes. A evoluo da metodologia de projeto de software foi ento natural, em funo dos argumentos sustentados pela crise. Hoje ainda grande o desenvolvimento de novos mtodos e a busca por uma linguagem descritiva universal, como o UML, para especificao e projeto de software orientado a objetos. A questo preocupante quanto ao hardware, para o programa VHSIC americano, era que alguns fatos indicavam para uma evoluo do mercado que faria surgirem problemas semelhantes aos apresentados pela crise de software. Entre estes fatos: A fabricao de circuitos integrados deixava de ser exclusiva de alguns poucos fabricantes. Surgiam empresas especializadas na fabricao de projetos de terceiros, o que permitiria, em conjunto com o desenvolvimento de tecnologias de fabricao menos custosas, a criao de CIs de uso especfico para certas aplicaes. As novas tecnologias de fabricao (abaixo de 2m, na poca) permitiam um aumento de densidade dos CIs, com conseqente aumento de complexidade. Surgiam componentes de lgica programvel (PLDs e PALs), inicialmente de pequena densidade, mas que poderiam evoluir para densidades muito maiores rapidamente. Tais componentes poderiam criar como de fato ocorreu posteriormente, um grande mercado de projetos de pequena escala e aplicaes especficas, muito parecidas com o mercado de projetos de software. A criao de uma linguagem de descrio de hardware patrocinada pelo programa e, em paralelo algumas outras linguagens criadas pela indstria, foi ento uma decorrncia natural. Em 1987, o VHDL foi normalizado pelo IEEE, tornando-se um padro mundial, ao lado do Verilog, uma alternativa tambm expressiva no mercado de projetos de hardware. Hoje, praticamente todas as ferramentas de desenvolvimento de hardware computadorizadas aceitam essas linguagens como entrada, de forma que um projeto baseado em VHDL ou Verilog pode ser implementado com qualquer tecnologia.

2.2 Vantagens de uso


A alternativa para uso de uma linguagem formal de descrio de hardware como o VHDL a descrio por diagramas esquemticos. O VHDL apresenta as seguintes vantagens: Em sistemas seqenciais, o detalhamento da lgica de controle realizado pelas ferramentas de automao do projeto, o que evita a trabalhosa e limitada aplicao das tcnicas manuais tradicionais; O objetivo do projeto fica mais claro que na representao por esquemticos, nos quais a implementao se sobrepe inteno do projeto; Exsto Tecnologia

CPLD (Dispositivos Lgicos Programveis)

11

O volume de documentao diminui, j que um cdigo bem comentado em VHDL substitui com vantagens o esquemtico e a descrio funcional do sistema; O projeto ganha portabilidade, j que pode ser compilado em qualquer ferramenta e para qualquer tecnologia. comum, na indstria, o uso de FPGAs e CPLDs para produes iniciais ou de menores escalas em projetos que posteriormente possam ser implementados em ASICs. Todas as implementaes podem usar o mesmo cdigo VHDL.

2.3 Introduo linguagem


Ser explanada uma breve introduo linguagem VHDL, os principais tpicos sero abordados, ou seja, estudaremos os pontos bsicos para iniciar uma programao nesta linguagem.

2.3.1 Entidade
Uma entidade de projeto (design entity) uma abstrao que descreve um sistema, uma placa, um chip, uma funo ou, at mesmo, uma porta lgica. Uma entidade composta por duas partes: declarao da entidade e arquitetura. Na declarao de uma entidade, descreve-se o conjunto de entradas e sadas. A arquitetura (architecture) descreve as funes realizadas pela entidade. No exemplo dado abaixo, a entidade PORTAE possui duas entradas, a e b, e uma sada, s, que definem o port da entidade. Os ports correspondem a pinos e so tratados como objetos de dados. Pode-se atribuir ou obter valores. Cada entrada ou sada possui um modo (mode) de operao. Os quatro modos possveis so: In: entrada; Out: sada: os pinos definidos como sada no podem ser utilizados como entradas, nem seus valores utilizados na lgica interna; Buffer: sada com possibilidade de realimentao; Inout: substitui qualquer um dos outros, mas seu uso deve ser limitado aos casos em que o pino deva ser utilizado como entrada e sada, para clareza na descrio. No exemplo a seguir, realizada a operao lgica E entre os pinos de entrada a e b na arquitetura principal. Note que a sada s recebe o valor da operao. Exemplo 1: entity PORTAE is Port( a, b: in bit; s: out bit ); end PORTAE; arquitecture MAIN of begin s <= a and b; PORTAE is

Exsto Tecnologia

CPLD (Dispositivos Lgicos Programveis)

12

end MAIN;

2.3.2 Corpo da arquitetura


A arquitetura de uma entidade pode ser descrita de algumas formas distintas, mas que, em geral, conduzem a uma mesma implementao. 2.3.2.1 Descrio Comportamental Esta a forma mais flexvel e poderosa de descrio. So definidos processos concorrentes (process). A cada processo associada uma lista de sensibilidade, que indica quais so as variveis cuja alterao deve levar reavaliao da sada. No simulador funcional, quando uma varivel da lista modificada, o processo simulado novamente. O cdigo abaixo ilustra a aplicao deste tipo de descrio porta lgica do exemplo, onde a cada mudana das entradas, realizado o processo comp e a sada s recebe o resultado da operao lgica e entre a e b. importante ressaltar que em uma arquitetura poder ser executado mais de um processo simultaneamente. Exemplo 2: entity PORTAE is Port( a, b: in bit; s: out bit ); end PORTAE; arquitecture MAIN of PORTAE is begin comp: process (a, b) begin s <= a and b; end comp process; end MAIN; 2.3.2.2 Descrio por fluxo de dados Neste tipo de descrio, os valores de sada so atribudos diretamente, atravs de expresses lgicas. Todas as expresses so concorrentes no tempo. Exemplo 3: entity PORTAE is Port( a, b: in bit; s: out bit ); end PORTAE; arquitecture MAIN of PORTAE is begin s <= 1 when ((a = 1) and (b = 1)) else 0; end MAIN;

2.3.3 Classe de objetos


Objetos so elementos que contm um valor armazenado. Quatro classes de objetos so definidas em VHDL: Constante ou CONSTANT; Exsto Tecnologia

CPLD (Dispositivos Lgicos Programveis)

13

Varivel ou VARIABLE; Sinal ou SIGNAL; Arquivo ou FILE.

A constante um objeto com um valor esttico. No caso da varivel, o valor inicial imposto pode ser alterado no decorrer do cdigo, e empregada em regies de cdigo seqencial. Sinais so objetos que podem ter o seu valor alterado, e so empregados em regies de cdigo concorrente e seqencial. A seguir sero apresentados exemplos de declarao desses tipos de objetos de classes: Classe CONSTANT VARIABLE SIGNAL Lista de nomes Constant_1 Variable_1 Signal_1 Tipo : tipo_x : tipo_y : tipo_z Valor inicial := valor inicial; := valor inicial; := valor inicial;

2.3.3.1 Tipos de dados escalares A tabela a seguir apresenta tipos escalares predefinidos no pacote padro. Tipos escalares so ordenados e representam um valor nico, permitindo assim, a aplicao de operadores como maior, menor, etc. Os tipos de dados possveis na linguagem VHDL so:

2.3.3.2 Tipos de dados compostos A tabela a seguir apresenta dois tipos compostos predefinidos no pacote padro. So eles: ARRAY: o tipo BIT_VECTOR contendo elementos do tipo BIT, e o tipo STRING contendo elementos do tipo CHARACTER (ver tabela abaixo). Na declarao de um objeto, o nmero de elementos contidos no vetor especificado atravs das palavras reservadas DOWNTO e TO. A primeira identifica uma ordem decrescente nos ndices e a segunda uma ordem crescente.

Exsto Tecnologia

CPLD (Dispositivos Lgicos Programveis)

14

Exemplo 4:

Signal a: BIT_VECTOR (0 to 7) := 10110011 1 0 1 1 0 0 1 1

a(0) a(1)
Exemplo 5:

a(2) a(3) a(4) a(5) a(6) a(7)

Signal a: BIT_VECTOR (7 downto 0) := 10110011 1 0 1 1 0 0 1 1

a(7) a(6)

a(5) a(4) a(3) a(2) a(1) a(0)

2.3.4 Operadores
Os operadores definidos so divididos em classes que estabelecem a precedncia na execuo das operaes. A tabela a seguir mostra, em ordem crescente de precedncia, as classes dos operadores. Os operadores de uma mesma classe de procedncia possuem o mesmo nvel de procedncia, porm podem ser empregados parnteses para evidenciar a ordem desejada. Classe Operadores lgicos And or nand nor xor xnor relacionais = /= < <= > >= deslocamento Sll srl sla sra rol ror adio + - & sinal + Multiplicao * / mod rem diversos ** abs not Nota: o operador not est inserido na classe devido a sua maior prioridade. Precedncia Menor . . . . . Maior

Exsto Tecnologia

Potrebbero piacerti anche