Professional Documents
Culture Documents
GUIA PRTICO AHDL -(Altera Hardware Description Language) Para uso no software MAX+PLUS II
Prof. Dr. Jos Renes Pinheiro Prof. Dr. Hlio Lees Hey Monitor: Robinson Figueiredo de Camargo Santa Maria, 1 Semestre 2000.
NDICE
6) COMANDOS BSICOS PARA LINGUAGEM AHDL ............................. 08 7) LGICA COMBINACIONAL EM AHDL .................................................. 09 8) LGICA SEQNCIAL EM ADHL ........................................................... 11 9) MQUINAS DE ESTADO EM AHDL ....................................................... 16 10) REFERNCIAS BIBLIOGRFICAS ....................................................... 23
01
renes@ctlab.ufsm.br
2. Arquiteturas da ALTERA
A Altera prope uma srie de arquiteturas programveis as quais nomeia CPLD (Complex Programmable Logic Devices). As CPLDs utilizam matrizes de interconeco onde os atrasos nas conexes so previsveis e, uma vez os blocos alocados, independem do seu roteamento. Os tipos de roteamento implementados nas arquiteturas Altera so os seguintes: - Global Interconnect; - PIA Programmable Logic Array e Enhanced Programmable Logic Array; - Fast Track Interconnect. Do ponto de vista da implementao das funes lgicas no interior dos blocos lgicos, as arquiteturas podem ser classificadas em dois grupos: - Arquiteturas MAX (Multiple Array Matrix): so CPLDs onde a estrutura do bloco lgico est baseada em soma de produtos (SOP);
02
renes@ctlab.ufsm.br
- Arquiteturas FLEX (Flexible Logic Elements Matrix): so CPLDs onde a estrutura do bloco lgico est baseada em Look-up Tables (LUT). Do ponto de vista da Tecnologia de programao dos componentes, as arquiteturas podem ser classificadas em quatro grupos: - SRAM; - FLASH; - EEPROM; - EPROM. As arquiteturas de circuitos programveis da Altera so: - Arquitetura Classic; - Arquitetura MAX 5000; - Arquitetura MAX 7000; - Arquitetura MAX 9000; - Arquitetura FLEX 8000; - Arquitetura FLEX 10000; - Arquitetura FLASHlogic.
03
renes@ctlab.ufsm.br
Desenvolver o projeto em linguagem descritiva de hardware permite inmeras vantagens. Podemos dizer que o projetista no necessita possuir conhecimentos profundos em circuitos e sistemas digitais para desenvolver o seu projeto. O projeto em linguagem descritiva de hardware facilita modificaes e correes de erros, podendo assim, o projetista ampliar facilmente o seu projeto com apenas algumas modificaes em algumas linhas de comando. 3.2. PASSOS BSICOS PARA FORMAO DE UM PROJETO Abaixo sero relacionados os passos bsicos na formao do projeto completo: 1 Criao de um novo arquivo de projeto ou uma hierarquia para mltiplos arquivos de projeto em uma combinao dos trs editores de entrada.(TEXT EDITOR, GRAPHIC EDITOR ou WAVEFORM EDITOR). 2 Especificar o arquivo de projeto que ser o topo da hierarquia. 3 Especificar a famlia lgica para o projeto. Se o usurio no especificar o compilador se encarrega de determinar a famlia mais adequada para o projeto. Abrir a janela do compilador e acionar a compilao do projeto. Se voc desejar, voc pode acionar o Timing SNF Extrator Module para que o compilador crie um arquivo netlist para simulao e anlises no tempo. Uma vez obtendo sucesso na compilao pode-se observar a o desempenho atravs da simulao e analise no tempo. J para a simulao primeiro deve-se criar um vetor de entradas Simulator Chanel File (.scf) atravs do waveform editor ou um Vector File atravs do text editor.
04
renes@ctlab.ufsm.br
A janela do gerenciador MAX+PLUS II aberta automaticamente quando voc inicia o software, esta janela possui alguns comandos comuns a todas as verses do software MAX+PLUS II, conforme figura 2, por exemplo abrir um arquivo, compilar ou simular o projeto corrente ou mudar para um outro projeto, bem como comandos especficos da verso mais atualizada se for o caso. Para a verso 7.21 ou 8.0 o gerenciador constitudo de 11 programas aplicativos.
Estes mesmos programas aplicativos tambm podem ser acionados por cones fora dos menus do gerenciador, conforme descrio abaixo:
05
renes@ctlab.ufsm.br
cones -
Hierarchy Display - mostra a hierarquia atual que se est trabalhando onde pode ser visualizada a rvore hierrquica e o tipo de cada arquivo que ela compe se texto, diagrama esquemtico ou arquivo de forma de onda. Tambm possvel abrir ou fechar um ou mais arquivos da hierarquia diretamente para modificar o seu contedo. Graphic Editor - abre o editor grfico para a construo do diagrama esquemtico onde blocos so interligados para formar o circuito lgico, cada bloco representa primitivas, macrofunes e megafunes presentes nas bibliotecas Altera ou pode haver um ou mais blocos criados pelo prprio usurio. Symbol Editor - permite a edio de smbolos existentes nas bibliotecas Altera ou criao de um novo.
Text Editor - o editor de texto permite criar ou editar textos escritos em linguagem de descrio de hardware AHDL ou VHDL, bem como os demais arquivos de texto que compem um projeto.
Waveform Editor - este editor pode servir para duas finalidades: como ferramenta para um arquivo de entrada ou para entrar com vetores de teste e verificar os resultados na simulao.
Floorplan Editor - permite ao programador designar a lgica para o pino de sada do chip e a disposio das clulas lgicas no chip graficamente, possibilitando ao usurio a visualizao dos pinos no chip para eventualmente efetuar a ligao deste clula lgica contida no logic array block.
renes@ctlab.ufsm.br
06
Compiler - processa projetos lgicos das famlias Altera j mencionadas, podendo-se utilizar partes ou todo o processo de compilao do projeto.
Simulator - utilizado para testar operaes lgicas e temporizao interna (tempo de setup, hold,...) do circuito lgico.
renes@ctlab.ufsm.br
07
5. MAX+PLUS II TEXT EDITOR Esta linguagem possui extenso .tdf (Text Design Files), onde o editor de texto do Max+Plus II provido de um AHDL Templates para criao de seu projeto, onde os comandos bsicos da linguagem j esto pr-definidos e basta ao usurio escolher a rotina desejada e inserir no seu programa, conforme figura 2 e 3.
renes@ctlab.ufsm.br
08
6. COMANDOS BSICOS PARA LINGUAGEM AHDL A linguagem AHDL funciona como uma linguagem de programao (Pascal, C++, Assembly), possuindo comandos necessrios e mesmo obrigatrios como para a titulao "SUBDESIGN" (que deve ser o mesmo nome dado ao arquivo .tdf ), declarao de variveis "VARIABLE", declarao das entradas "INPUT" e sadas "OUTPUT" e ns "NODE" do circuito, comandos de inicializao "BEGIN" e finalizao "END;", alm de outros.
09
renes@ctlab.ufsm.br
7. LGICA COMBINACIONAL EM AHDL A lgica combinacional quando o nvel lgico na(s) sada(s) em qualquer instante de tempo depende nica e exclusivamente dos nveis lgicos presentes na(s) entrada(s), no instante de tempo considerados. A lgica combinacional implementada em ADHL com expresses boolean e equaes, tabelas verdade, e uma variao de megafunes e macrofunes. 7.1. EXEMPLO DE UM CIRCUITO COM LGICA COMBINACIONAL A partir de um circuito digital definido na figura 4 abaixo, construir-se- o mesmo circuito em linguagem AHDL conforme a figura 5.
renes@ctlab.ufsm.br
A partir da construo da linguagem no editor de texto do software Max+PLUS II, faz-se necessrio realizar o salvamento do programa (no menu File - Project - Save e Check), compilar o programa (no menu File - Project - Save e Compile) , criar um editor de formas de onda "Waveform" se for necessrio para testar a lgica do programa ento realizar a sua simulao ( no menu File - Project - Save e Simulate). Os passos deste pargrafo esto bem especificados na Apostila "GUIA PRTICO SOBRE MAX+PLUS II", tambm disponvel aos acadmicos das disciplinas de Circuitos e Sistemas Digitais. Voc pode a partir da compilao do projeto criar seu prprio componente no editor grfico, onde a partir do menu File, clicando no comando Create Default Symbol, este comando vai realizar a compilao de seu programa e ento, se voc criar um novo editor grfico e entrar no menu Symbol e em enter symbol seu componente l estar com o nome exemplo 1, e clicando nele obter o seguinte componente conforme a figura 6 abaixo.
11
renes@ctlab.ufsm.br
8. LGICA SEQNCIAL EM ADHL A lgica seqencial quando o nvel lgico na(s) sada(s) esto em funes dos nveis lgicos presentes na(s) entrada(s), em alguns ou em todos os instantes de tempo considerados. Todos os circuitos seqncias podem incluir um ou mais flip-flops. A lgica seqencial pode ser implementada em AHDL com mquinas de estado, registradores, ou latches e funes LPM. 8.1. DECLARANDO REGISTRADORES Podem ser declarados conforme exemplo2 abaixo.
Ainda pode-se declarar nos registradores as entradas assncronas PRN, CLRN, as declaraes depende exclusivamente do projetista com exceo das entradas, sadas e clock que so obrigatrias ao projeto do circuito seqencial. Logo aps temos o design grfico conforme figura 8.
renes@ctlab.ufsm.br
12
renes@ctlab.ufsm.br
8.2. DEFININDO GRUPOS Um grupo de componentes pode ser definido at 256 membros ( ou bits), em AHDL um grupo defino com os sinais "[ ]" conforme exemplo anterior, onde dentro deste podemos definir o nmero de bits e ou dos bits compostos neste grupo. Exemplo: a[7..0] ou b[5..3][2..0]. 8.3. CRIANDO CONTADORES Contadores usam lgica seqencial para contar pulsos de clock. Alguns contadores podem contar de modo crescente ou decrescente. Observe exemplo 3 abaixo:
renes@ctlab.ufsm.br
No editor de formas de onda, podemos notar que o clock permite ao contador contar e que quando o enable est em nvel alto o contador realiza contagem crescente, quando em nvel baixo a contagem decrescente quando load est em nvel alto ele passa a contar com o valor que se encontra na entrada de dados e por fim e em ordem crescente de de hierarquia de controle dos contadores de 9 bits se acionarmos o clear ele zera o valor dos contadores.
OBSERVAO: Para atribuir valores aos grupos necessrio marcar com o mouse no intervalo que se deseja na entrada de dados de grupo (d[8..0]) e acionar o cone de grupo na barra de ferramentas do waveform. 8.4. FLIP-FLOPs e LATCHES Alm das maneiras descritas acima para definir flip-fliops, suas entradas e sadas, existe um outro mtodo, o qual tem como vantagem reduzir as linhas de comando do programa, onde necessrio somente declarar as entradas "INPUT" e sadas "OUTPUT", ento segundo a tabela a seguir, coloca-se os valores (vcc ou gnd) e ou as respectivas sadas de outra parte do circuito que ser a entrada neste flip-flop ou lacht escolhido. Esta simplificao apresenta desvantagens quando se trabalha com grandes grupos de flip-flops ou latches (grande nmero de bits), tornando o programa mais extenso. Cada entrada entre parnteses deve obedecer os critrios da tabela a seguir.
15
renes@ctlab.ufsm.br
renes@ctlab.ufsm.br
9. MQUINAS DE ESTADO EM AHDL TIPOS : Quando a sada de uma mquina seqencial funo apenas do estado atual esta mquina chamada de Moore, e quando a sada funo das entradas e do estado atual a mquina chamada de Mealy. As Mquinas de Moore : podem ser representadas por diagramas de estado, conforme figura 13, onde um circulo representa o estado atual, e uma seta representa a transio entre dois estados (atual e futuro). Neste caso, dentro de cada circulo, que representa o estado, coloca-se uma letra ou nmero que identifique o estado e o valor das sadas correspondentes a este estado, e em cada flecha que representa uma transio, coloca-se o valor das entradas do circuito.
17
renes@ctlab.ufsm.br
renes@ctlab.ufsm.br
Abaixo temos o editor de formas de onda para a Mquina de Moore em linguagem AHDL, onde dependo da entrada Y , a cada transio positiva de clock haver mudana ou no de um estado para o outro e quando o reset estiver em nvel alto, este faz com que o estado permanea em S0.
renes@ctlab.ufsm.br
As Mquinas de Mealy : podem ser representadas por diagramas de estado, conforme figura 17, onde um circulo representa o estado atual, e uma seta representa a transio entre dois estados (atual e futuro). Neste caso dentro de cada circulo, que representa o estado, coloca-se uma letra ou nmero que identifique o estado, e em cada flecha, que representa uma transio, coloca-se o valor das entradas e das sadas. Com estas mquinas seqenciais sncronas (MSS) possvel fazer contadores de qualquer seqncia, inclusive contadores tipo up/down, que contam incrementando ou decrementando.
20
renes@ctlab.ufsm.br
21
renes@ctlab.ufsm.br
Abaixo temos o editor de formas de onda para a Mquina de Mealy em linguagem AHDL, onde dependo da entrada Y , a cada transio positiva de clock haver mudana ou no de um estado para o outro e quando o reset estiver em nvel alto, este faz com que o estado permanea em S0.
renes@ctlab.ufsm.br
ALGUMAS CONSIDERAES: A linguagem AHDL proporciona ao usurio uma nova forma de construo e montagem de circuitos e sistemas digitais, trazendo grandes vantagens principalmente na descrio de hardware de um sistema digital complexo, onde este se criando em design grfico despenderia mais tempo para sua construo, alm de uma maior complexidade em sua montagem. Com relao as mquinas de estado estas, permitem, ao usurio, a simplificao de seu diagrama de estado, visto que montando-se uma determinada tabela, o prprio programa se encarregara de fazer as simplificaes, pois onde houver um estado repetido ele assumira somente um destes estados e que poder ser visto no editor de formas de onda (Waveform). O software Max+Plus II permite tambm a combinao de programas em AHDL e componentes do editor grfico, permitindo uma maior versatilidade na construo de projetos de sistemas digitais. Vale ressaltar ainda que, caso voc no encontre na biblioteca do software Max+Plus II, o componente que desejar, atravs da linguagem AHDL voc mesmo pode projetar seu prprio componente e incorpor-lo junto a esta biblioteca.
23
renes@ctlab.ufsm.br
1) Manual Max+Plus II Altera - Getting Starded - verso 5.0, julho 1994. 2) Everton Glaser Corra da Conceio - Relatrio de Estgio Supervisionado 3) Altera Corporation , Manual AHDL , julho 1994. 4) Altera Corporation, In- System Programmability Handbook 5) Altera Corporation, University Program Design Laboratory Package. 6) Altera Corporation, Data Book, June 1997. 7) Site da Altera Corporation, Informaes Tcnicas - http//:www.altera.com 8) Software Max+Plus II, Tpicos de Ajuda - verso 9.01, ano 1999. .
renes@ctlab.ufsm.br