Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Reviso A B
Principais Autores - Tiago Coelho Magalhes - Jos Domingos Adriano - Tiago Coelho Magalhes - Jos Domingos Adriano
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
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
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
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
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.
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
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
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.
Exsto Tecnologia
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
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
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.
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.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
12
end MAIN;
13
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
14
Exemplo 4:
a(0) a(1)
Exemplo 5:
a(7) a(6)
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