You are on page 1of 25

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA DISCIPLINAS: CIRCUITOS E SISTEMAS DIGITAIS

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

1) O Software MAX+PLUS II VERSO 7.21 ................................................. 01


2) Arquiteturas da ALTERA ............................................................................ 01

3) AHDL (Altera Hardware Description Language) ...................................... 03


4) APLICATIVOS DO GERENCIADOR MAX+PLUS II ............................. 05 5) MAX+PLUS II TEXT EDITOR .................................................................... 07

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

Prof. Jos Renes Pinheiro, Dr.Eng.

renes@ctlab.ufsm.br

1. O Software MAX+PLUS II VERSO 7.21


O software Altera MAX+PLUS II (Multiple Array matriX Programable Logic User System) verso 7.21, trata-se de uma edio estudantil da verso comercial do software MAX+PLUS II 8.0 possuindo muitos aspectos em comum. um pacote provido de programas para Edio, compilao, verificao (simulao e anlise no tempo) e gravao de PLDs altera de todas as famlias Altera. Este software suporta esquemas e textos baseados em linguagem de descrio de hardware incluindo Altera linguagem de descrio de hardware (AHDL) e (VHDL). O software MAX+PLUS II um software constitudo de uma multiplataforma, ambiente de arquitetura - independente a fim de que seja facilmente adaptvel as necessidades do usurio. Oferecendo fcil implementao do projeto, processamento inteligente, e como sada obtm-se a programao do chip (PLD). Um projeto completo constitudo de vrios arquivos de entrada (arquivo projeto), cada arquivo contm um conjunto de informaes, que so compartilhadas entre os demais arquivos da hierarquia formada no momento da compilao ou simulao, de tal forma que os arquivos da hierarquia em conjunto descrevem o projeto desde a linguagem de descrio hardware (AHDL ou VHDL) at a especificao dos pinos de I/O do PLD a ser programado. Para isso o MAX+PLUS II composto de trs editores de entrada: editor grfico, editor de texto e editor de formas de onda e dois editores auxiliares: o editor de planta baixa e editor de smbolos. Atravs dos quais so criados os arquivos projeto que formaro a rvore (hierarquia).

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

Prof. Jos Renes Pinheiro, Dr.Eng.

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.

2.1. Evoluo das Arquiteturas da Altera

Figura 1 Evoluo das Arquiteturas

03

Prof. Jos Renes Pinheiro, Dr.Eng.

renes@ctlab.ufsm.br

3. AHDL (Altera Hardware Description Language)


A linguagem descritiva de Hardware Altera uma linguagem desenvolvida pela Corporao Altera sobre declaraes que definem uma lgica de funcionamento ( lgica combinacional, seqncial, mquinas de estado, operao de grupos, parametrizao lgica e tabelas verdade) ,na qual o circuito construdo. Os elementos e declaraes desta linguagem so muito versteis e fceis de usar. Voc pode criar todo seu projeto em AHDL ou mescl-lo com outros tipos de arquivos de projeto. Embora voc possa utilizar qualquer editor de texto ASCII para criar um projeto em AHDL, o editor de texto do sistema MAX+PLUS II permite uma srie de vantagens devido a suas caractersticas de construo. Estas facilidades, e todo o suporte sobre o seu funcionamento esto contidos em seu HELP, que pode ser acessado tambm on-line. 3.1. VANTAGENS DA UTILIZAO DE HDL Language) (Hardware Description

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

Prof. Jos Renes Pinheiro, Dr.Eng.

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.

Figura 2 MAX+PLUS II janela principal

Estes mesmos programas aplicativos tambm podem ser acionados por cones fora dos menus do gerenciador, conforme descrio abaixo:

05

Prof. Jos Renes Pinheiro, Dr.Eng.

renes@ctlab.ufsm.br

4. APLICATIVOS DO GERENCIADOR MAX+PLUS II

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.

Prof. Jos Renes Pinheiro, Dr.Eng.

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.

Timing Analiser - Analisa a performance do circuito lgico otimizando-o para a compilao.

Programmer - possibilita a programao, verificao, e teste do chip.

Message Processor - mostra os erros, perigos, e mensagens sobre o estado do projeto.

Prof. Jos Renes Pinheiro, Dr.Eng.

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.

Figura 2 Template do Editor de Texto do MAX+PLUS II

Prof. Jos Renes Pinheiro, Dr.Eng.

renes@ctlab.ufsm.br

08

Figura 3 Template AHDL

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

Prof. Jos Renes Pinheiro, Dr.Eng.

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.

Figura 4 - Circuito Digital

Figura 5 - Circuito em linguagem AHDL


10

Prof. Jos Renes Pinheiro, Dr.Eng.

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.

Figura 6 - Circuito gerado a partir da linguagem AHDL

11

Prof. Jos Renes Pinheiro, Dr.Eng.

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.

Figura 7 - Registradores de 8 Bits em Linguagem AHDL

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.

Prof. Jos Renes Pinheiro, Dr.Eng.

renes@ctlab.ufsm.br

12

Figura 8 - Design grfico registradores de 8 bits

Para o editor de forma de onda (WAVEFORM) temos o seguinte exemplo abaixo:

Figura 9 - Formas de onda dos registadores de 8 bits 13

Prof. Jos Renes Pinheiro, Dr.Eng.

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:

Figura 10 - Contadores de 9 bits crescente e/ou decrescentes


14

Prof. Jos Renes Pinheiro, Dr.Eng.

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.

Figura 11 - Contadores up/down de 9 bits

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

Prof. Jos Renes Pinheiro, Dr.Eng.

renes@ctlab.ufsm.br

TABELA DE FLIP-FLOPs E LATCHES


PRIMITIVA LATCH FLIP-FLOP "D" FLIP-FLOP "D" FLIP-FLOP "JK" FLIP-FLOP "JK" FLIP-FLOP "SR" FLIP-FLOP "SR" FLIP-FLOP "T" FLIP-FLOP "T" PROTTIPO DA FUNO EM AHDL (COMANDO) LATCH ( D, ENA) DFF (D, CLK, CLRN, PRN) DFFE (D, CLK, CLRN, PRN, ENA) JKFF (J, K, CLK, CLRN, PRN) JKFFE (J, K, CLK, CLRN, PRN) SRFF (S, R, CLK, CLRN, PRN) SRFFE (S, R, CLK, CLRN, PRN, ENA) TFF (T, CLK, CLRN, PRN) TFFE (T, CLK, CLRN, PRN, ENA) SADA Q Q Q Q Q Q Q Q Q

Logo temos em AHDL:

Figura 12 - Forma simplificada de comandos flip-flop e latches


16

Prof. Jos Renes Pinheiro, Dr.Eng.

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.

Figura 13 - Diagrama da mquina de Moore

17

Prof. Jos Renes Pinheiro, Dr.Eng.

renes@ctlab.ufsm.br

A seguir definida a mquina de Moore, em linguagem AHDL, conforme a figura 13 anterior.

Figura 14 - Mquina de Moore em AHDL


18

Prof. Jos Renes Pinheiro, Dr.Eng.

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.

Figura 15 - Waveform Mquina de Moore

Figura 16 - Circuito digital da mquina de Moore acima descrita


19

Prof. Jos Renes Pinheiro, Dr.Eng.

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.

Figura 17 - Diagrama mquina de Mealy

A seguir definida a mquina de Mealy, em linguagem AHDL, conforme a figura anterior.

20

Prof. Jos Renes Pinheiro, Dr.Eng.

renes@ctlab.ufsm.br

Figura 18 - Mquina de Mealy em AHDL

21

Prof. Jos Renes Pinheiro, Dr.Eng.

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.

Figura 19 - Waveform da Mquina de Mealy

Figura 20 - Circuito digital da mquina de Mealy acima descrita


22

Prof. Jos Renes Pinheiro, Dr.Eng.

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

Prof. Jos Renes Pinheiro, Dr.Eng.

renes@ctlab.ufsm.br

10. REFERNCIAS BIBLIOGRFICAS

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. .

Prof. Jos Renes Pinheiro, Dr.Eng.

renes@ctlab.ufsm.br

You might also like