Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
RESUMO
Este material apresenta, de uma maneira breve, o uso do MAX-PLUS II no desenvolvimento de um circuito digital. Atravs de um projeto-exemplo, so apresentados os principais mdulos do programa e os comandos essenciais.
ENTRADA DE DADOS
COMPILAO
SIMULAO
OK ? S
PROGRAMAO
Figura 1.1 Metodologia de Projeto de SD com o MAX+PLUS II. A ENTRADA DE DADOS pode ser realizada de trs maneiras distintas: Diagrama Lgico (Captura Esquemtica) - neste modo, o projetista tem duas opes para descrever o projeto. Na primeira opo, o MAX+PLUS II permite a importao de arquivos construdos com outras ferramentas, como, por exemplo, OrCAD. Na segunda opo, que a mais utilizada, o MAX+PLUS II disponibiliza um aplicativo denominado Editor Grfico. Os smbolos utilizados no diagrama lgico podem ser obtidos de uma biblioteca padro, ou podem ser gerados pelo prprio projetista, a partir de outros projetos j implementados, permitindo a descrio de forma hierrquica de um sistema digital. A biblioteca padro do Editor Grfico possui smbolos que representam todos os circuitos integrados da famlia 74xx, permitindo que um projetista familizarizado com estes componentes descreva o sistema digital de maneira mais rpida e eficiente. importante salientar que estes smbolos apenas implementam as funes lgicas de um 74xx em uma EPLD, no possuindo nenhuma outra 1
EPUSP - PCS 2305/2355/2308 - LABORATRIO DIGITAL caracterstica fsica dos CIs comerciais (pinagem, tempos de propagao, consumo, etc), pois estas ltimas sero determinadas pelo tipo de EPLD na qual o sistema ser implementado. Alm destes smbolos que representam a famlia 74XX, o MAX+PLUS II tambm possui bibliotecas com funes lgicas bsicas (flip-flops, portas lgicas, etc) e avanadas (contadores especiais, microprocessadores, etc), sendo que estas ltimas bibliotecas devem ser adquiridas de terceiros. Arquivo Texto - este modo permite a descrio de um sistema digital atravs de linguagens de descrio de hardware (HDL). O MAX+PLUS II aceita trs tipos de HDLs: AHDL, que uma linguagem proprietria da ALTERA; Verilog e VHDL, que so linguagens padronizadas pelo IEEE, utilizadas mundialmente. A ferramenta MAX+PLUS II possui um Editor de Textos para apoiar essa forma de descrio do SD. Formas de Onda - este modo permite que o projetista descreva o comportamento de um sistema digital atravs do desenho das formas de onda na entrada e na sada do mesmo. Este recurso utilizado apenas quando o SD simples e "bem comportado" (por exemplo, um contador sncrono). A descrio feita atravs de um Editor de Formas de Ondas.
Na COMPILAO, o projetista determina qual ser a EPLD que dever implementar o sistema digital e o MAX+PLUS II procura seguir esta diretriz. Caso no consiga, fornecida uma mensagem de erro, e projetista pode optar por escolher outra EPLD para implementar o seu sistema, ou deixar que a ferramenta implemente o projeto em mais de uma EPLD do tipo escolhido. A compilao tambm responsvel pela gerao de todos os arquivos necessrios simulao e programao da EPLD. Existe tambm a opo do sistema escolher automaticamente a EPLD mais adequada. Na SIMULAO, possvel descrever cada uma das formas de onda de entrada do SD e observar as formas de onda de sada, geradas pela ferramenta. Com isto o projetista consegue verificar o funcionamento do SD antes de implement-lo fisicamente, corrigindo eventuais erros que possam ter ocorrido no projeto. Para a simulao tambm utilizado o Editor de Formas de Ondas. Na PROGRAMAO, os arquivos gerados pela compilao so transferidos para a EPLD, programando a mesma para funcionar de acordo com o projeto descrito anteriormente. Esta transferncia pode ser feita atravs de programadores de componentes ou cabos especiais, conectados ao PC.
Para a projeto do SD atravs da ferramenta MAX+PLUS II, ser adotada a seguinte nomenclatura para os arquivos de projeto: Fluxo de Dados : ........................ nome_do_projeto__FD Unidade de Controle : ................ nome_do_projeto__UC Sistema Digital Completo : ........ nome_do_projeto__SD
Por exemplo, para um SD denominado MULTI, h os seguintes projetos : MULTI_FD (Fluxo de Dados); MULTI_UC (Unidade de Controle); MULTI_SD (Sistema Digital Completo).
2. PROJETO-EXEMPLO
apresentado nesta seo o desenvolvimento do projeto de um sistema digital (muito simples), utilizando a metodologia descrita com o MAX-PLUS II.
EPUSP - PCS 2305/2355/2308 - LABORATRIO DIGITAL disponibilizar os nmeros armazenados, um de cada vez, em uma nica via de dados de sada. Tanto o armazenamento como a sada dos dados devem ocorrer sincronamente com o CLOCK do SD. Para realizar esta tarefa, o SD deve possuir os seguintes sinais: IN - via de dados de entrada, com quatro bits; OUT - via de dados de sada, com quatro bits; N1 - sinal de controle utilizado no armazenamento do primeiro nmero; N2 - sinal de controle utilizado no armazenamento do segundo nmero; M1 - sinal de controle utilizado para mostrar na via de dados de sada o primeiro nmero armazenado; M2 - sinal de controle utilizado para mostrar na via de dados de sada o segundo nmero armazenado.
IN[4..1] N1 N2 M1 M2
SD
Figura 2.1 SD do Projeto.
OUT[4..1]
Para que o primeiro nmero seja armazenado no sistema, ele deve ser colocado na via de dados IN e o sinal N1 deve ser ativado. De maneira anloga, o segundo nmero armazenado quando o mesmo colocado na via IN e o sinal N2 ativado. Para mostrar cada um destes nmeros na via OUT, os sinais M1 ou M2 devem ser acionados. Caso seja acionado M1, a via OUT dever mostrar o primeiro nmero. Caso seja acionado M2, a via OUT dever mostrar o segundo nmero.
N1
N2
M1
M2
IN[4..1]
SD
EN1 A 3
UC
CLR1 A 3
SEL
FD
OUT[4..1]
Figura 2.2 SD do Projeto. Nos prximos itens sero detalhados cada um dos blocos acima e como projetar os mesmos, utilizando os recursos do MAX+PLUS II.
que realizam funes compatveis com as dos blocos do diagrama. Como adotaram-se, no ASM, sinais de enable active-high, e como esses sinais, nos componentes selecionados, so active-low, ser necessria a utilizao de inversores (smbolo NOT).
EPUSP - PCS 2305/2355/2308 - LABORATRIO DIGITAL O diagrama lgico ser desenhado com o auxlio do Editor Grfico e o projeto ser compilado num componente de famlia (MAX7000S), que o EPM7128SLC84-7.
IN[1..4]
CLR2
R1
EN2
R2
SEL
MUX2x1
CLR - CLEAR SEL - SELEO EN - ENABLE CLKFD - CLOCK
CLR3 EN3
R3
OUT[1..4]
Utilizao do MAX+PLUS II
Para a descrio e compilao do projeto do FD deve ser adotado o procedimento a seguir: a) rodar o MAX+PLUS II; b) especificar o nome do projeto - Clicar em File-Project-Name, escolher o diretrio, fornecer o nome (exp1_fd) e clicar ;
c) acionar o editor grfico - Clicar em MAX+plus II-Graphic Editor; d) colocar os componentes no diagrama - Posicionar o cursor onde ser inserido o smbolo, clicar com o boto esquerdo do mouse, clicar em Symbol-Enter Symbol, escolher a biblioteca de smbolos, escolher o smbolo e clicar ; e) colocar os pinos de entra/sada no diagrama - Posicionar o cursor onde ser inserido o smbolo, clicar com o boto esquerdo do mouse, clicar em Symbol-Enter Symbol, digitar o nome do pino (INPUTC para entrada ou OUTPUTC para sada) e clicar ;
f) conectar os componentes - Colocar o mouse no ponto inicial, apertar o boto esquerdo e arrastar o mesmo (sem soltar o boto) at o ponto final; g) colocar nomes nos pinos de entrada e sada - Colocar o mouse sobre o pino, clicar com o boto direito, escolher Edit Pin Name e escrever o nome do mesmo;
EPUSP - PCS 2305/2355/2308 - LABORATRIO DIGITAL h) salvar o arquivo, verificando se existem erros - Clicar em File-Project-Save & Check, escolher o nome do arquivo (se ainda no existir) e clicar . Se houver erros, basta clicar duas vezes com o boto esquerdo do mouse na mensagem, para que os mesmos sejam mostrados no diagrama; i) apagar componentes (caso seja necessrio) - Basta escolher os componentes com o mouse e pressionar del. j) repetir os itens g e h, at no existirem mais erros; k) escolher a EPLD que ser usada na implementao - Clicar em Assign-Device, escolher a famlia de EPLD (Device Family), escolher o tipo de EPLD (Devices) e clicar l) clicar . ;
Aps a realizao destes passos, estaro disponveis alguns arquivos, importantes, a saber : *.gdf - arquivo com a descrio grfica do diagrama lgico; *.rpt - arquivo com as estatsticas da compilao do diagrama lgico.
Apenas a ttulo de exemplo, para facilitar a descrio do diagrama lgico, usando o Editor Grfico, apresenta-se, na figura 2.4, a imagem de um diagrama desenhado com o MAX+PLUS II.
b) abrir o arquivo de simulao; c) definir o tempo total que ser utilizado na simulao;
d) definir qual a menor unidade de tempo que ser utilizada na simulao; e) f) escolher as formas de onda que sero mostradas na tela; descrever as formas de onda;
g) agrupar sinais de uma mesma via de dados, caso seja necessrio; h) salvar o arquivo; i) acionar o simulador.
2.3.2.4. Definir qual a menor unidade de tempo que ser utilizada na simulao
a) clicar em Options-Grid Size; b) digitar o valor 20 ns; c) clicar em .
b) colocar o mouse no incio do trecho a ser editado, pressionar o boto esquerdo e arrast-lo at o final do intervalo. Caso o projetista queira selecionar a forma de onda na sua totalidade, basta clicar sobre o nome da mesma.; c) escolher o valor que ser colocado no intervalo. Existem alguns botes para facilitar esta escolha. Estes botes so : : atribui o valor zero; : atribui o valor 1; : atribui o valor indefinido; : atribui o valor alta impedncia; : inverte o sinal; : transforma o trecho selecionado em um sinal de clock;
Neste item, a primeira forma de onda a ser descrita, para qualquer FD, o sinal de clock (CLKFD), que responsvel pela sincronizao de todos os registradores presentes no fluxo de dados. Para descrever este sinal, basta selecion-lo por completo, clicar no boto figura 2.5. e clicar em . Para os demais sinais, usar as formas de onda sugeridas na
Para o SD proposto, uma das solues para a unidade de controle pode ser vista na figura 2.6. O diagrama ASM desta figura descreve o algoritmo de gerao dos sinais de controle do fluxo de dados, a partir dos sinais de controle externos do sistema digital.
S0
N1
N2 1
EN1
EN2
S1
S2
S3 0 0 1
EN3
N1
M1
N2
M2 1
SEL
S4
S5
SEL EN3
S6
EPUSP - PCS 2305/2355/2308 - LABORATRIO DIGITAL Uma vez caracterizados os estados, necessrio descrever as transies entre os mesmos, ou seja, descrever o diagrama ASM atravs de uma tabela de transies. Tambm h alternativas, em funo da estratgia adotada na construo do ASM (MEALY ou MOORE). Nessa experincia, adotou-se a soluo MOORE. Tanto os estados, como a tabela de transies, so descritos atravs da linguagem AHDL, usando o Editor de Texto. As construes desta linguagem formam as sees do arquivo texto, a saber: a) b) denominao do projeto nesta seo, iniciada pela palavra SUBDESIGN, especificado o nome do projeto, que dever ser o mesmo declarado no incio da descrio da UC; declarao de entradas e sadas nesta seo, delimitada por parnteses, so declarados todos os sinais de entrada/sada do diagrama. As declaraes de entradas so finalizadas por :INPUT; e as de sada por :OUTPUT; ; denominao dos estados - nesta seo, iniciada pela palavra VARIABLE, os estados do diagrama ASM so definidos em funo das sadas da UC. Primeiramente deve ser descrita a ordem dos bits que definiro cada estado. Isto feito atravs da seguinte sentena: UC: MACHINE OF BITS (........) WITH STATES
c)
Entre parnteses devem ser colocados os nomes das sadas do diagrama. Por exemplo, para o diagrama da figura 2.6: (CLR1,CLR2,CLR3,EN1, EN2, EN3,SEL) Em seguida, cada um dos estados deve ser descrito em funo das sadas do diagrama, de acordo com a ordem estabelecida na construo anterior. Isto feito da seguinte maneira: (nome_do_estado = B'valores_das_sadas',);
Para o diagrama da figura 2.6, o estado S0 seria descrito como S0=B'1110000'. d) declarao da mquina de estados nesta seo, delimitada pelas palavras BEGIN e END; so descritos os dois sinais de controle da mquina de estados que representa o diagrama ASM (CLK e RES) e a tabela de transies entre os estados. Esta tabela feita baseada nos caminhos existentes entre cada um dos estados do mesmo, em funo das entradas a eles associadas (caso existam), e deve ser delimitada pelas palavras TABLE e END TABLE;. Por exemplo, na figura 2.6, para que a UC passe do estado S0 para o estado S1, necessrio que N1=1 e N2=M1=M2=X(0 ou 1). Portanto, a linha que representa este caminho : S0, 1,X,X,X => S1;
Aps isto, para se descrever e compilar a UC no MAX+PLUS II, basta seguir os seguintes passos : a) especificar o nome do projeto - Clicar em File-Project-Name, escolher o diretrio, fornecer o nome (exp1_uc) e clicar b) c) d) ;
acionar o editor de textos - Clicar em MAX+plus II-Text Editor; descrever a UC em AHDL - preencher as quatro sees do arquivo, conforme explicado anteriormente. importante notar que o nome da UC deve ser igual ao adotado no item a), para o nome do projeto; salvar o arquivo, verificando se existem erros - Clicar em File-Project-Save & Check, escolher o nome do arquivo (se ainda no existir) e clicar . Se houver algum erro, basta clicar duas vezes com o boto esquerdo do mouse na mensagem, para que o mesmo seja mostrado no arquivo texto;
e) f) g)
corrigir os erros - Selecionar com o mouse as palavras erradas e corrig-las; repetir os itens d e e, at no existirem mais erros; escolher a EPLD que ser usada na implementao - Clicar em Assign-Device, escolher a famlia de EPLD (Device Family), escolher o tipo de EPLD (Devices) e clicar ;
h)
clicar
10
EPUSP - PCS 2305/2355/2308 - LABORATRIO DIGITAL Aps a realizao destes passos, estaro disponveis alguns arquivos, importantes, a saber : *.tdf - arquivo com a descrio da UC; *.rpt - arquivo com as estatsticas da compilao da UC. Na figura 2.7 apresenta-se a descrio da UC, em AHDL
SUBDESIGN EXP1_UC ( CLKUC: INPUT; RES: INPUT; N1,N2,M1,M2: INPUT; CLR1, CLR2, CLR3, EN1, EN2, EN3, SEL: OUTPUT; ) VARIABLE UC: MACHINE OF BITS (CLR1, WITH STATES %Estado %atual ( s0 = s1= s2= s3= s4= s5= s6= ); BEGIN UC.CLK = CLKUC; UC.RESET = RES; TABLE % Estado % atual UC, s0, s0, s0, s1, s2, s3, s3, s3, s3, s3, s4, s5, s6, END TABLE; END;
Entradas N1,N2,M1,M2 0, 1, X, X, X, 0, 1, X, X, X, X, X, X, 0, X, 1, X, X, 0, X, 1, X, X, X, X, X, X, X, X, X, X, 0, X, X, 1, X, X, X, X, X X X X X 0 X X X 1 X X X => => => => => => => => => => => => => =>
Proximo estado UC; s0; s1; s2; s3; s3; s3; s1; s2; s4; s5; s3; s6; s3;
% %
11
2.4.2.4. Definir qual a menor unidade de tempo que ser utilizada na simulao
a) clicar em Options-Grid Size; b) digitar o valor 20 ns; c) clicar em .
d)
b) colocar o mouse no incio do trecho a ser editado, pressionar o boto esquerdo e arrast-lo at o final do intervalo. Caso o projetista queira selecionar a forma de onda na sua totalidade, basta clicar sobre o nome da mesma.;
12
EPUSP - PCS 2305/2355/2308 - LABORATRIO DIGITAL c) escolher o valor que ser colocado no intervalo. Existem alguns botes para facilitar esta escolha. Estes botes so : : atribui o valor zero; : atribui o valor 1; : atribui o valor indefinido; : atribui o valor alta impedncia; : inverte o sinal; : transforma o trecho selecionado em um sinal de clock;
Neste tem, as primeiras formas de onda a serem descritas, para qualquer UC so : o sinal de clock (CLKUC) e o sinal de reset (RES). Para descrever o sinal de clock basta selecion-lo por completo, clicar no boto mesma. e clicar em
. Para o sinal de reset, basta fazer o mesmo igual a 1 por um perodo de clock da simulao, no incio da
13
b) gerao do smbolo da UC; c) agrupamento dos smbolos gerados nas etapas anteriores e compilao.
Cada uma destas etapas ser vista com detalhes, nos prximos itens.
14
a)
especificar o nome do projeto - Clicar em File-Project-Name, escolher o diretrio, fornecer o nome e clicar ;
b) acionar o programador no MAX+PLUS II - clicar em MAX+plus II-Programmer. Ser aberta uma janela contendo o cdigo da EPLD que ser gravada (EPM7128SLC84-7) e o nome do arquivo de gravao, que deve ser o mesmo nome do projeto, com a extenso .POF; c) definir qual o tipo de cabo para transferncia de arquivo que ser utilizado - clicar em Options-Hardware Setup, escolher a opo ByteBlaster (no Hardware Setup) e o endereo da porta paralela do PC (geralmente igual a 0x378) e clicar em d) clicar em ; .
3. BIBLIOGRAFIA
RANZINI, E.; HORTA, E.L. Lgica programvel. Apostila de Laboratrio Digital. Escola Politcnica da USP, 2000. 2. Manuais da Altera 3. WAKERLY, J. F. Digital design: principles and practice. New Jersey: Prentice- Hall, 2000. 4. KIME, C. R.; MANO, M. M. Logic and computer design fundamentals. New Jersey: Prentice Hall, 1997. 5. GAJSKI, D. D. Principles of digital design. New Jersey: Prentice Hall, 1997. 6. SALCIC, Z.; SMAILAGIC, A. Digital systems design and prototyping using field programmable logic. Boston: Kluver Academic Publishers, 1998. 7. FREGNI, E. & SARAIVA, A. M. Engenharia do Projeto Lgico Digital: conceitos e prtica. Edgard Blcher, 1995. 8. TOCCI, R. J.& WIDMER, N. S. Sistemas Digitais: princpios e aplicaes. 7a ed., LTC, 2000. 9. TOCCI, R. J.& WIDMER, N. S. Digital Systems: principles and applications. 8th ed., Prentice-Hall, 2001. 10. DUECK, R. K. Digital Design with CPLD Applicatons and VHDL. Delmar, 2001. 11. ERCEGOVAC, M.; LANG, T.; MORENO, H. M. Introduo aos Sistemas Digitais. Bookman, 2000. 1.
15
ANEXO 1
RESUMO - DIAGRAMA ASM
(VERSO PRELIMINAR)
O Diagrama ASM
O diagrama ASM contm trs elementos bsicos o bloco de estado; o bloco de deciso; o bloco de sada condicional.
16
Nome
S0 R
000 0 0
Condio
COMEA
S0 R 0
0
INCIO
De um bloco de deciso
Aes
PC
Bloco de Sada Condicional: este bloco caracterstico dos fluxogramas ASM e no existe um equivalente nos fluxogramas convencionais . A entrada de um bloco de sada condicional sempre deve se originar numa das sadas de um bloco de deciso. Na figura A.1 (c) apresenta-se um exemplo. Se o ASM est no estado So, a cada pulso de Clock o registrador R limpo. J o registrador PC tambm limpo no estado So, mas apenas se o sinal INCIO for igual a 1. Bloco ASM: o conjunto construdo com um bloco de estado e todos os blocos de deciso e de sadas condicionais que ficam entre a sada do bloco de estado e a entrada do mesmo bloco ou de um outro bloco de estado. Ver figura A.2. A cada borda de subida, as condies dos blocos de deciso so examinadas e, dependendo do seu valor (0 ou 1), seguese para o estado seguinte indicado. No exemplo da figura A2, enquanto o sinal INICIO=0, o diagrama fica no estado S0. Se, num instante qualquer, o sinal INICIO=1, na primeira borda de subida do CLOCK o ASM mudar de estado. Nessa mesma borda tambm examinado o sinal Q0 , atravs do qual decide-se se o estado seguinte S1 ou S2 . Independentemente de ser S1 ou S2 , ao mudar de estado, o sinal AVAIL vai para ZERO. Observar que a sada condicional s ocorre se INICIO = 1. Pode-se comparar os diagramas ASM, com os diagramas de estado tipo MEALY e tipo MOORE. Quando se usam os blocos de sada condicional, tudo se passa como se a soluo adotada fosse do tipo MEALY. Se a opo for MOORE, os blocos de sada condicional so desnecessrios.
17
EPUSP - PCS 2305/2355/2308 - LABORATRIO DIGITAL O projeto do circuito lgico descrito por um diagrama ASM facilitado quando todos os mdulos seqenciais (flipflops, contadores, registradores, etc) forem do tipo com enable. Maiores detalhes encontram-se nas referncias bibliogrficas (4) e (5).
S0
AVAIL
INCIO
PC
0 Q0 S1
1 S2
18
ANEXO 2
GLOSSRIO
AHDL ASIC CPLD EDIF EPLD FPGA FPLD GAL HDL JEDEC Altera Hardware Description Language Application Specific Integrated Circuit Complex Programmable Logic Device Eletronic Design Interchange Format (Formato padro industrial para transferncia de arquivos de projetos de circuitos) Erasable Programmable Logic Device Field Programmable Gate Array Field Programmable Logic Device Generic Array Logic Hardware Description Language Joint Electron Device Engineering Council (Formato padro para transferncia de informaes entre o sistema onde o projeto foi desenvolvido e o programador do dispositivo.) Mask Programmable Gate Array Mask Programmable Logic Device Programmable Array Logic Programmable Logic Array Programmable Logic Device Programmable Logic Sequencer Programmable Sequencial Array Linguagem HDL da empresa Verilog Very High Speed Integrated Circuits Hardware Description Language Very High Speed Integrated Circuits
19