• Nenhum resultado encontrado

DEPARTAMENTO DE ENGENHARIA ELÉTRICA CIRCUITOS DIGITAIS I Experimento: Simulação de Circuitos no Max+Plus II

N/A
N/A
Protected

Academic year: 2021

Share "DEPARTAMENTO DE ENGENHARIA ELÉTRICA CIRCUITOS DIGITAIS I Experimento: Simulação de Circuitos no Max+Plus II"

Copied!
10
0
0

Texto

(1)

DEPARTAMENTO DE ENGENHARIA EL´ETRICA CIRCUITOS DIGITAIS I

Experimento: Simula¸c˜ao de Circuitos no Max+Plus II

1

Introdu¸

ao

O ambiente de desenvolvimento de projetos de circuitos digitais Max + Plus II ´e uma ferra-menta computacional de an´alise e de s´ıntese de circuitos que facilitam um r´apido desenvolvi-mento de projeto de circuitos digitais. Por meio deste ambiente, ´e poss´ıvel fazer simula¸c˜oes de circuitos l´ogicos e programa¸c˜ao de dispositivos (PLDs - Programmable Logic Devices).

O objetivo deste tutorial ´e dar ao aluno uma breve introdu¸c˜ao ao ambiente gr´afico e de simula¸c˜ao, sendo que informa¸c˜oes mais aprofundadas devem ser buscadas nos t´opicos de ajuda do programa.

2

Fundamentos

As fases de implementa¸c˜ao de um projeto l´ogico digital no Max + Plus II podem ser divididas em:

• Entrada de dados para o projeto (Design Entry);

• Compila¸c˜ao e Simula¸c˜ao (Project verification, Project processing); • Programa¸c˜ao (Device programming).

2.1

Entrada de dados

A entrada de dados para o projeto consiste em fornecer ao programa informa¸c˜oes sobre a fun¸c˜ao l´ogica a ser implementada. Esta entrada de dados pode ser feita de diversas formas: • Gr´afica, atrav´es do editor gr´afico (Graphic Editor ). Neste caso, se utilizam bibliotecas com elementos b´asicos (primitivas) que podem ser diretamente inseridos no programa e ser interligados da maneira desejada;

• Por meio de formas de onda (Waveform Editor ). Neste caso, os dados de entrada s˜ao formas de onda que implementam alguma fun¸c˜ao desejada. A partir das formas de onda de entrada e de sa´ıda fornecidas, o programa implementa a fun¸c˜ao l´ogica. • Por meio de uma linguagem de programa¸c˜ao(HDL - hardware description language,

linguagem de descri¸c˜ao de hardware). Pode-se criar uma descri¸c˜ao de um sistema digital utilizando comandos reservados de linguagens estruturadas. O editor de texto (Text Editor ) permite a programa¸c˜ao em diversas linguagens (AHDL, VHDL ou Verilog HDL), que descrevem o funcionamento do circuito.

• Floorplan Editor, editor de planta baixa. Consiste de um editor que mostra o rotea-mento (disposi¸c˜ao de pinos de entrada e sa´ıda, ou I/O) em rela¸c˜ao ao dispositivo pro-gram´avel (FPGA) escolhido. Quando necess´ario uma mudan¸ca na disposi¸c˜ao de I/O ele mostra quais mudan¸cas s˜ao poss´ıveis, mas para que se fa¸cam valer as modifica¸c˜oes ´e necess´ario a recompila¸c˜ao do projeto.

(2)

2.2

Compila¸

ao

A compila¸c˜ao ´e composta por uma s´erie de procedimentos realizados pelo ambiente de pro-grama¸c˜ao para analisar, minimizar, corrigir e apontar falhas no projeto desenvolvido. O primeiro est´agio de compila¸c˜ao faz a verifica¸c˜ao sint´atica e semˆantica do arquivo de descri¸c˜ao de hardware (no caso de uma HDL) ou liga¸c˜oes entre os pinos, componentes sobrepostos, dispositivos sem nomea¸c˜ao etc..(no caso do uso do Editor Gr´afico). Caso haja algum erro, o processo de compila¸c˜ao ´e interrompido. O segundo passo da compila¸c˜ao ´e a cria¸c˜ao de um arquivo que possa representar o funcionamento do circuito a n´ıvel de equa¸c˜oes, sem pre-ocupa¸c˜oes sobre qual componente ser´a configurado e tampouco qual o tipo de roteamento utilizado. Em muitos projetos esse est´agio ´e o que consome mais recursos computacionais tais como mem´oria alocada para gerar os arquivos ou mesmo tempo de compila¸c˜ao. O ar-quivo que representa a descri¸c˜ao das equa¸c˜oes do circuito ´e chamado de Netlist. E, a partir deste, ´e avaliado se o componente escolhido e suas configura¸c˜oes permitem um roteamento implement´avel.

Deve se ressaltar que esta fase ´e a mais cr´ıtica quanto a problemas na compila¸c˜ao, pois muitas vezes op¸c˜oes de s´ıntese e de minimiza¸c˜ao ou at´e mesmo op¸c˜oes de escolha de fam´ılia de componentes podem inviabilizar a continuidade da s´ıntese do projeto. Para garantir uma r´apida configura¸c˜ao pelo compilador, h´a uma sugest˜ao de op¸c˜oes de escolha autom´atica de componentes para que o ambiente de programa¸c˜ao fa¸ca a escolha mais adequada. Devido `as diferen¸cas entre arquiteturas dos componentes l´ogico program´aveis, alguns projetos podem se adequar melhor ou pior em um tipo de fam´ılia de componente.

2.3

Simula¸

ao

A simula¸c˜ao ´e a fase de projeto que permite ao projetista uma an´alise do comportamento do circuito compilado, por meio da an´alise das formas de onda. Deve-se na simula¸c˜ao escolher todas as vari´aveis relevantes (entradas, sa´ıdas, valores intermedi´arios) e usar temporiza¸c˜oes parecidas `as condi¸c˜oes a que se prop˜oe o sistema. Atrasos de propaga¸c˜ao devem ser analisados e tamb´em os spikes. Quando os atrasos de propaga¸c˜ao forem maiores que o permitido, deve-se escolher fam´ılias de componentes l´ogicos mais r´apidos. E quando a quantidade de spikes for grande, pode-se trocar de fam´ılia de componente ou escolher outras op¸c˜oes de s´ıntese de compila¸c˜ao e desta forma o sistema deve ser recompilado e reavaliado.

2.4

Programa¸

ao

Na programa¸c˜ao, tem-se a efetiva programa¸c˜ao do dispositivo l´ogico. Arquivos criados na fase de compila¸c˜ao auxiliam a programa¸c˜ao exatamente como foi configurado o dispositivo. Na programa¸c˜ao, deve-se verificar se o componente ´e realmente o especificado na compila¸c˜ao. Caso n˜ao se tenha especificado o componente (Assign ≫ Device ≫ AUTO) n˜ao se pode fazer a programa¸c˜ao. Tamb´em deve-se verificar se as liga¸c˜oes do cabo entre o micro e a placa gravadora, fonte de alimenta¸c˜ao da placa, etc. est˜ao funcionando corretamente. Antes de programar, deve-se verificar o nome que est´a escrito no cabo (Byte Blaster, Bit Blaster etc.) e configurar esta op¸c˜ao na configura¸c˜ao de hardware (Max+plus II ≫ Programmer ≫ Hardware Setup).

Neste tutorial, vamos apresentar um exemplo bastante simples de entrada de dados pelo editor gr´afico e sua simula¸c˜ao, observando as formas de onda de interesse. Numa outra oportunidade ser´a realizada a programa¸c˜ao de um dispositivo.

(3)

3

Editor gr´

afico

No ambiente do editor gr´afico, podem-se criar projetos digitais utilizando elementos prim-itivos, ou seja, pode-se inserir cada componente existente em bibliotecas. Portas l´ogicas (AND, OR, NOT, NAND, etc.) e outros componentes podem ser utilizados para criar o projeto. Na verdade montaremos um esquem´atico do circuito l´ogico.

3.1

Criando um projeto no ambiente gr´

afico

Ao entrar no programa, selecione no menu MAX+plus II ≫ Graphic Editor. Ser´a aberta uma janela gr´afica (Fig. 1) onde ser´a montado o circuito l´ogico a partir de elementos existentes nas bibliotecas.

Figura 1: Janela principal do Max+PlusII com a janela do editor gr´afico aberta. Para entrar com os componentes, pode-se fazer um clique duplo na janela gr´afica, ou com o bot˜ao direito pressionado, selecionar a op¸c˜ao Enter Symbol, ou pelo menu Symbol ≫ Enter Symbol. Ser´a aberta uma janela (Fig. 2) onde h´a diversas bibliotecas de s´ımbolos (Symbol Libraries), com arquivos de s´ımbolos (Symbol Files). Clicando, por exemplo, em c:\maxplus2\max2lib\prim\. Aparecer˜ao diversos arquivos de s´ımbolos. Selecionando, por exemplo, o and2, ser´a inserido na janela gr´afica o s´ımbolo de uma porta AND com duas entradas (Fig. 3).

Antes de prosseguir, ´e uma boa medida salvar o arquivo e relacion´a-lo a um projeto (project). Todos os arquivos de um mesmo projeto devem estar numa mesma pasta porque o ambiente de programa¸c˜ao n˜ao tem a capacidade de relacionar arquivos de um mesmo projeto em pastas diferentes.

Salve o arquivo a partir do menu File ≫ Save as, e grave-o em seu diret´orio (por ex-emplo C:\alunos\Vodalus\Maxplus), com o nome de tutorial.gdf (Fig. 4). O projeto vai relacionar v´arios arquivos que ser˜ao produzidos ou utilizados pelo ambiente de desenvolvi-mento para executar outras tarefas como a compila¸c˜ao e a simula¸c˜ao. Sempre ´e necess´ario relacionar o arquivo de trabalho com um projeto. Isto ´e feito a partir do menu File ≫ Project ≫ Set Project to Current File. Note que o nome do arquivo na barra superior da janela ser´a modificado.

(4)

Figura 2: Janela para sele¸c˜ao de s´ımbolos.

2 AND2

Figura 3: Porta AND.

anteriormente utilizada a entrada (Input) e a sa´ıda (Output). Para obter outra entrada, pode-se ir novamente `a biblioteca, ou, no esquem´atico, selecionar o s´ımbolo de entrada e, pressionando-se a tecla Control, arrastar o s´ımbolo, que ser´a duplicado. Deve-se agora interli-gar os s´ımbolos com fios. Para isto, basta posicionar o cursor do mouse sobre a extremidade do s´ımbolo que se deseja conectar. O cursor mudar´a para uma cruz, e com o bot˜ao esquerdo pressionado, levar o cursor at´e o ponto desejado. Pode-se fazer o caminho indo diretamente de um terminal a outro, ou fazˆe-lo por segmentos de reta. Caso se deseje apagar a liga¸c˜ao ou componente, basta selecionar o objeto (quando este aparecer´a com uma linha vermelha) e apertar a tecla Delete. A Fig. 5 mostra o componente com as entradas e sa´ıdas conectadas. Os sinais de interesse devem ser identificados para posterior utiliza¸c˜ao, e para isso os pinos de entrada e sa´ıda devem ter nomes. No caso das entradas e sa´ıda, basta clicar sobre PIN NAME, e digitar o nome desejado, por exemplo, A e B para as entradas, e C para a sa´ıda.

Quando h´a muitos componentes, liga¸c˜oes e entradas e sa´ıdas, uma alternativa que torna o esquem´atico mais limpo e de mais f´acil depura¸c˜ao ´e dar nomes aos pinos, e referenci´a-los em outros pontos do circuito com o mesmo nome. Para isto, conecte uma linha nos terminais que deseja conectar, sem fechar a conex˜ao entre os terminais. Na extremidade da linha, clique com o bot˜ao direito do mouse e selecione Edit Node Name, e coloque o nome desejado (A, B ou C). Repita para o terminal que deseja conectar. Desta forma, o programa saber´a que esses dois pontos devem ser conectados. O resultado ficar´a como indicado na Fig. 6.

(5)

Figura 4: Gravando o arquivo. VCC 4 PIN_NAME INPUT VCC 3 A INPUT 2 AND2 5OUTPUT PIN_NAME

Figura 5: Componente com entradas e sa´ıdas conectadas.

4

Compilador

O processo de compila¸c˜ao ´e uma an´alise da viabilidade do projeto. No processo de com-pila¸c˜ao, s˜ao criados v´arios arquivos que podem ser posteriormente utilizados para outras etapas de simula¸c˜ao e implementa¸c˜ao. A primeira an´alise ´e a semˆantica, que verifica conex˜oes desnecess´arias, pinos e fios sem conex˜ao, nome do projeto e de outros componentes corretos, palavras erradas nos editores de texto, vari´aveis n˜ao declaradas, bibliotecas n˜ao encontradas etc.

A segunda fase da compila¸c˜ao ´e a cria¸c˜ao em arquivos espec´ıficos o projeto a ser imple-mentado no FPGA, suas liga¸c˜oes, e o tipo de componente FPGA mais adequado quanto ao tamanho, freq¨uˆencia de trabalho etc. Por fim, o compilador cria arquivos necess´arios para a programa¸c˜ao do FPGA, e tamb´em, o arquivo de relat´orio (*.RPT), que mostra com detalhes todo o processo de compila¸c˜ao, escolha de op¸c˜oes de compila¸c˜ao, resultados de otimiza¸c˜ao de circuitos tamanho dos circuitos, mem´oria necess´aria para a compila¸c˜ao etc.

Para compilar o projeto, clique no ´ıcone com uma f´abrica, do disquete com uma chamin´e, ou acesse o menu Max+plusII ≫ Compiler. Ser´a aberta uma janela (Fig. 7) onde deve-se teclar em Start. Caso n˜ao haja problemas, ser˜ao criados outros arquivos, que po-dem ser visualizados em Max+plusII ≫ Hierarchy Display. O arquivo .RPT ´e uma

(6)

B A B A C C VCC 3 A INPUT VCC 4 B INPUT 2 AND2 5OUTPUT C

Figura 6: Atribuindo nomes aos dois lados de um fio.

esp´ecie de arquivo de relat´orio (report), que mostra como foram criados os circuitos im-plement´aveis, configura¸c˜oes de compila¸c˜ao, quantidade de c´elulas l´ogicas implementadas, roteamento (pinagem) do componente escolhido etc. Abra este arquivo (clicando duas vezes no rpt) e veja as informa¸c˜oes nele contidas. O arquivo .FIT mostra como foi projetado o cir-cuito implement´avel a n´ıvel de portas l´ogicas primitivas. O arquivo mostra as configura¸c˜oes no momento de compila¸c˜ao.

Se o projeto compilou sem problemas (aten¸c˜ao, sempre haver´a um aviso quando estiver selecionada a op¸c˜ao automatic device), pode-se proceder para a etapa de verifica¸c˜ao das formas de onda. E ´e criado o arquivo s´ımbolo ( .SYM) que ´e a representa¸c˜ao gr´afica do projeto como um ´unico componente discreto.

(7)

5

Simulador - Waveform Editor

O simulador, como o nome sugere, verifica os resultados de sa´ıda do circuito de acordo com as entradas. Abra o Editor de Forma de Onda (Max+plusII ≫ Waveform Editor, Fig. 8), clique com o bot˜ao direito em qualquer ponto da tela, e selecione Enter Nodes from SNF. Pressionando-se a tecla List, aparecer˜ao todas as entradas (I) e sa´ıdas (O) do circuito em Available Nodes & Groups. Selecione todos e clicando na seta `a direita, passe todos para Selected Nodes & Groups. Dessa forma, as entradas e a sa´ıda ser˜ao selecionadas para a an´alise das formas de onda.

Figura 8: Janela do editor de forma de onda.

Agora vamos atribuir formas de onda `as entradas para verificar a sa´ıda. ´E interessante que as entradas assumam todas as combina¸c˜oes poss´ıveis. Isso ´e obtido da seguinte maneira: selecione uma das entradas, clicando em A, por exemplo. A linha toda ficar´a selecionada. Nos ´ıcones `a esquerda da janela principal, clique no correspondente ao que se assemelha a um X com um C, que ´e um gerador de onda quadrada. Na janela que se abrir´a, h´a v´arias informa¸c˜oes sobre o sinal que ser´a gerado: intervalo, contagem bin´aria, per´ıodo. O per´ıodo (Count Every), n˜ao deve ser maior que o intervalo. O fator de multiplica¸c˜ao (Multiplied By), aumenta o per´ıodo da onda quadrada a ser gerada. Para este caso, mantenha os valores default.

Repita para o sinal de entrada B, modificando apenas o fator de multiplica¸c˜ao para 2. Note que o per´ıodo da onda de B ´e o dobro em rela¸c˜ao a A. A combina¸c˜ao de valores (00, 01, 10, 11) pode ser vista pelas formas de onda e pelo cursor azul sobre as formas de onda.

Antes de simular o circuito, salve o arquivo e depois v´a em Max+plusII ≫ Simulator, ou clique no ´ıcone do menu superior que se parece com um computador com uma forma de onda. Outra op¸c˜ao ´e utilizar o ´ıcone com o disquete e a forma de onda, que salvar´a o arquivo e realizar´a a simula¸c˜ao. Caso n˜ao ocorram erros, aparecer´a na tela a forma de onda de sa´ıda em C (Fig. 9). Note que os atrasos de propaga¸c˜ao dos sinais s˜ao considerados na

(8)

tempo vis´ıvel atrav´es do menu View ≫ Time Range.

Figura 9: Simula¸c˜ao e formas de onda de entrada e sa´ıda.

6

Editor de texto

No ambiente do editor de texto, pode-se descrever o circuito por meio de uma das linguagens de descri¸c˜ao de hardware dispon´ıveis: AHDL, VHDL, Verilog HDL. Cada linguagem tem suas particularidades, e seu uso depende do tipo de projeto e do estilo do projetista. Por exemplo, uma porta AND de duas entradas, programado em AHDL, ´e descrita pela listagem: SUBDESIGN and_1 ( A, B : INPUT; C : OUTPUT; ) BEGIN C = A AND B; END;

Como em qualquer linguagem de programa¸c˜ao, existem palavras reservadas que n˜ao podem ser utilizadas como vari´aveis do programa, por exemplo: input, output, and, clear, if, then, else.

(9)

7

Programa¸

ao

Na programa¸c˜ao, o circuito que foi simulado ser´a implementado em hardware no FPGA. No kit did´atico utilizado h´a um FPGA (EPM7128SLC84-7) com conex˜oes para entrada e sa´ıda de sinais, al´em de chaves, LEDs e displays. A placa deve ser alimentada por uma fonte externa e comunica-se com o computador via interface paralela (LPT-1) por meio de um cabo dedicado chamado de ByteBlasterII. Deve-se ter muito cuidado ao manejar a placa e o cabo, pois este ´e curto e n˜ao deve sofrer tens˜oes mecˆanicas. Ap´os a programa¸c˜ao, tanto a alimenta¸c˜ao quanto o cabo de interface podem ser retirados, pois o circuito fica armazenado no FPGA.

Observa¸

oes importantes:

• Cuidado ao manusear a placa e os cabos. N˜ao encoste os dedos nos dispositivos, contatos, pinos nem na parte de baixo da placa. Coloque-a sobre uma superf´ıcie placa ou sobre o pl´astico de prote¸c˜ao;

• Os LEDs s˜ao ativos em n´ıvel 0, ou seja, ao enviar um bit 0, o LED acende;

• As chaves (DIP-Switches) podem apresentar mal contato, e por esse motivo pode ser melhor utilizar as chaves do m´odulo verde (sem esquecer de conectar os terras) ou o gerador de fun¸c˜oes (sem esquecer de ajustar os n´ıveis de tens˜ao adequadamente entre 0 e 5 V).

• Para conectar o terra da placa ao terra do m´odulo verde, coloque uma das chaves da placa em n´ıvel zero e conecte este ponto ao terra do m´odulo verde, ou utilize um dos pontos de terra do CI.

Procedimentos

Ap´os a compila¸c˜ao e simula¸c˜ao das formas de onda, e antes da programa¸c˜ao do dispositivo, fa¸ca as seguintes verifica¸c˜oes no programa:

• Assign ≫ Device. Tire a sele¸c˜ao de Show Only Fastest Speed Grades; Selecione a fam´ılia MAX 7000S, e em seguida o FPGA EPM7128SLC84-7, que ´e aquele utilizado no kit did´atico (confirme na placa);

• Recompile o projeto, para que seja feita adequa¸c˜ao ao novo FPGA;

• V´a a Max+PLus II ≫ Programmer. Ser´a aberta a janela de programa¸c˜ao (que ainda n˜ao ser´a utilizada). Verifique se o c´odigo do FPGA ´e o correto;

• Assign ≫ Global Project Logic Synthesis. Desabilite todas as op¸c˜oes em Auto-matic Global;

• Options ≫ Hardware Setup. Verifique se est´a configurado o ByteBlasterII e LPT1;

• Recompile o projeto, caso ainda n˜ao o tenha feito ou tenha modificado alguma con-figura¸c˜ao anterior;

(10)

• V´a a Max+Plus II ≫ Floorplan Editor. Vocˆe deve visualizar a pinagem do FPGA, e em destaque estar˜ao as entradas e sa´ıdas do seu circuito. Verifique a pinagem alocada pelo programa para as suas vari´aveis de entrada e de sa´ıda. Caso queira mudar algun pino de local (drag-and-drop), use sempre os indicados como I/O. Nesse caso, vocˆe deve recompilar o projeto. Anote a numera¸c˜ao dos pinos de entrada e sa´ıda.

• Caso os pinos n˜ao apare¸cam e/ou n˜ao consiga mudar determinado pino de local, sele-cione no menu Layout ≫ Current Assignment Floorplan e depois v´a em Assign ≫ Back Annotate Project. Recompile e verifique se os pinos aparecem no Floor-plan;

• N˜ao utilize os pinos nomeados como Global Clock ou Global Clear. Caso estes pinos tenham sido atribu´ıdos, mude-os de local novamente e recompile o projeto.

• Conecte o cabo ByteBlasterII da placa `a interface paralela e ligue a fonte da placa. Cuidado com os cabos. N˜ao os estique e os manuseie apenas pelos conectores, nunca pelo cabo.

• Na janela do Programmer, caso os bot˜oes Program, Verify, Examine e Blank-Check estiverem habilitados, clique em Program. O seu circuito ser´a implementado no FPGA e a placa poder´a ser desligada sem perda de dados.

• Retire a alimenta¸c˜ao da placa e em seguida o cabo ByteBlasterII.

• Utilize a placa sobre a bancada ou sobre o m´odulo verde de chaves. Caso use a placa com outros dispositivos, como gerador de fun¸c˜oes e m´odulo verde, conecte os terras desses instrumentos em uma das chaves que estejam em n´ıvel 0 (este ´e o terra da placa, que n˜ao tem pino de acesso direto ao terra).

• Conecte as entradas `as chaves e as sa´ıdas a LEDs. Fa¸ca os testes observando os LEDs ou os displays, se for o caso. Lembre-se que os LEDs do kit s˜ao ativos em zero.

Referências

Documentos relacionados

[r]

Os testes de desequilíbrio de resistência DC dentro de um par e de desequilíbrio de resistência DC entre pares se tornarão uma preocupação ainda maior à medida que mais

Combinados, o rádio portátil APX 8000XE habilitado para todas bandas e o microfone falante remoto XE500 criam uma solução de missão crítica incomparável, projetada para o pessoal

3 O presente artigo tem como objetivo expor as melhorias nas praticas e ferramentas de recrutamento e seleção, visando explorar o capital intelectual para

Determinar a relação entre adolescentes brancos e negros e o primeiro acesso aos serviços de saúde bucal do Sistema Único de Saúde; Verificar a relação do tempo da última visita

Para o controle do peso, os fatores comportamentais como hábitos alimentares saudáveis e a prática de atividade física devem ser estimulados desde a infância uma vez que

Besides expanding virus abundance counts in water and sediments from Brazilian aquatic ecosystems, future virus ecology studies could use metagenomic approaches to enhance

Para o Planeta Orgânico (2010), o crescimento da agricultura orgânica no Brasil e na América Latina dependerá, entre outros fatores, de uma legislação eficiente