Electrónica Digital 2 Xilinx Webpack (ver 5.2) Notas para iniciação (Outubro 2003) António Cunha
Prefácio Este texto tem como objectivo introduzir os primeiros conceitos sobre a utilização de um CAD para desenho de sistemas digitais em dispositivos lógicos programáveis. Para um domínio completo de uma ferramenta destas - não basta a simples leitura destas notas e outras notas abundantemente disponíveis na internet! A leitura deste tipo de documentos permitirá fazer pequenos exemplos de demonstração, sendo necessário todo o empenho por parte do utilizador no sentido de procurar adquirir mais conhecimentos através de todas as fontes disponíveis, nomeadamente: - da leitura de ficheiros de ajuda disponíveis no próprio programa; - da consulta da informação disponibilizada pelo fabricante, no site oficial; http://www.xilinx.com/; e - da troca de experiência entre utilizadores (colegas, outros utilizadores da internet, e do professor!). Neste caso particular, pretende-se usar uma FPGA (XC2S100) da empresa Xilinx para implementar os trabalhos da disciplina de Electrónica Digital II. Para além de FPGAs a empresa também produz outros semicondutores programáveis tais como DSP, GAL, CPLDs, etc... Para os programar, a Xilinx desenvolve e vende uma série programa de CAD designados por ISE Design Tools de acordo com o fim em vista. A par desse programa, a Xilinx faculta, gratuitamente, um pacote de software ISE Webpack que permite desenvolver, simular e carregar em parte dos seus dispositivos. Actualmente a versão disponível é a Webpack 5.2, pelo que se irá apresentar um resumo de notas em português para auxiliar o primeiro contacto com a utilização da ferramenta. Outubro de 2003 António Cunha
Índice 1 Instalação...1 2 Introdução ao Webpack 5.2...1 2.1 Iniciar um projecto novo...2 2.2 Construção de circuito em lógico...3 2.3 Verificação de erros no projecto...7 3 Instalação do ModelSim:...9 3.1 Declaração do ModelSim...10 3.2 Simulação com o ModelSim...11
1 Instalação No sentido de instalar o ISE Webpack 5.2 é necessário executar as seguintes tarefas: - Fazer o registo no site oficial www.xilinx.com; - Fazer o download do software; - Instalar de acordo com as indicações das caixas de dialogo que se vão sucedendo. 2 Introdução ao Webpack 5.2 Ao iniciar o WebPack aparece a janela Project Navigator, onde se pode encontrar quatro áreas distintas, Figura 1: - Área do projecto - Na área do projecto pode-se ver a organização do projecto e os módulos que o constituem. - Área dos processos - Na área dos processos encontra-se as várias operações que se podem executar sobre um objecto existente na área do projecto. - Área de relatórios - A área de relatórios, Console, disponibiliza informação sobre os processos, quando estão a correr. - Área do editor - Na área do editor pode-se editar alguns ficheiros em formato de texto. Figura 1 janela principal do WebPack. WebPack 5.2 1
2.1 Iniciar um projecto novo UTAD Para iniciar um novo projecto, seleccione New Project, no menu File. Na caixa de diálogo New Project, Figura 2, indique o local onde pretende que o novo projecto seja guardado. O nome do projecto é dado na caixa de texto do lado esquerdo Project Name. Depois de escrever o nome do projecto, é criada uma subdirectoria com o mesmo nome, na directoria do projecto. Por exemplo, se a localização do projecto for D:\WebPack e o projecto for exemplo, todos os ficheiros deste projecto são colocados em D:\WebPack\exemplo. De seguida, seleccione as seguintes opções: Device Family Device Package Speed Grade -5 Design Flow Spartan2 xc2s100 pq208 XST VHDL Figura 2 - Janela New Project, com as opções pretendidas. Ao seleccionar o botão OK é criado o novo projecto. WebPack 5.2 2
2.2 Construção de circuito em lógico Após a criação de um novo projecto pode passar-se à fase de construção de circuitos lógicos. A título de exemplo optou-se por criar um circuito contador de quatro bits, utilizando dois contadores de dois bits. No menu Project seleccione a opção New source. Na nova caixa de diálogo, Figura 3, indique o nome do ficheiro na caixa de texto File Name, por exemplo, contador. Neste caso pretende-se fazer o circuito contador através de um esquema, por isso seleccione, no lado esquerdo o tipo schematic. Figura 3 Janela New Source. Carregue no botão seguinte e finalmente, em concluir. A janela da Figura 4 surge. Nesta janela é possível adicionar componentes e editar esquemáticos. WebPack 5.2 3
Figura 4 Editor do esquemático. Se for seleccionado o separador Symbols, é possível ver os vários tipos de circuitos disponíveis. No caso desta barra de ferramentas não se encontrar visível, é possível activa-la no menu View, opção Toolbars... e activar a opção Options. Pretende-se, agora inserir um contador de 2 bits. Para isso, na lista intitulada Categories seleccione Counter e na lista Simbols seleccione o contador desejado. Neste caso, pretende-se um Contador Binário de 2 bits com Chip Enable (CB2CE) Figura 5. Figura 5 Contador CB2CE. Existe um ficheiro PDF, com todos os detalhe dos componentes disponíveis, que se dever ter sempre à mão, pelo menos até conhecer razoavelmente os componentes. Agora, mova o cursor para a área de desenho e utilize o botão esquerdo do rato para inserir o contador no esquemático. Para inserir outros componentes é só repetir este processo. Para fazer o contador de 4 bits necessita-se de 2 contadores de 2 bits, pelo que deve inserir 2 componentes. WebPack 5.2 4
Para fazer as ligações (fios) entre os componentes utilize o ícone. Posicione o rato na extremidade Q0 do contador até aparecer um pequeno símbolo à volta do pino, Figura 6. Figura 6 - Inserção de fio no contador. Agora com o botão esquerdo do rato pressionado, sem largar, arraste para fora do contador, na horizontal. À medida que arrasta o rato um fio vai sendo criado. Quando tiver fio suficiente largue o botão do rato. Se pressionar a tecla Esc sai-se do modo de fazer ligações. É preciso repetir o processo anterior para desenhar mais ligações. Introduza uma porta lógica AND2 e faça as ligações necessárias de forma a obter a o circuito da Figura 7. Figura 7 Esquema com todas as ligações necessárias. Neste altura é necessário indicar ao programa que tipo de terminais se pretende ligar a cada um dos fios (entrada, saída ou entrada/saída). Esta operação é efectuada através da utilização do ícone: Posicione o ponteiro do rato na extremidade de um dos fios e pressione a tecla esquerda do rato. O terminal é adicionado ao circuito. Repita o mesmo procedimento para todos os outros fios. WebPack 5.2 5
Agora faça um duplo clique, com o botão esquerdo do rato, em cima da marca que liga o terminal CE. Aparece uma janela que permite alterar o nome da marca e a sua direcção, Figura 8. Figura 8 Atributos de um fio. Efectue as alterações necessárias no seu esquema de forma a obter o circuito representado na Figura 9. O ícone Figura 9 Esquema final. serve para verificar se existem erros no esquema. Após fazer a verificação dos erros no esquema, surge a janela Schematic Check Errors, que lista os erros encontrados. Quando o esquema não tem erros a janela apresentada é semelhante à da Figura 10. WebPack 5.2 6
Figura 10 Janela para indicação de erros e avisos. No fim deste processo grave o seu trabalho e volte à janela principal. 2.3 Verificação de erros no projecto A esta altura do processo falta verificar se existem ou não erros no projecto. Para isso é necessário seleccionar, na área de processos, o objecto contador (Nota: contador foi o nome dado atrás ao exemplo dado) e carregar duas vezes em Synthesize, Figura 11, na área dos processos. Figura 11 Operação synthesize concluída com avisos. Esta operação tem três finais possíveis: - Visto verde - O visto verde significa que não existem erros nem avisos. - Cruz vermelha - A cruz vermelha significa que existem erros, e não é possível continuar a operação. WebPack 5.2 7
- Ponto de exclamação - O ponto de exclamação significa que não há erros mas há avisos. Na área de relatórios Console encontra-se o relatório detalhado que resultou da operação. No caso da figura apareceu a indicação de ocorrência de avisos. No relatório pode-se verificar que os avisos indicam que existem pinos que não foram ligados! No esquema anterior, não foram ligados dois pinos (não são necessários para o exemplo), pelo que não há problema, pode-se passar ao passo seguinte. Se aparecerem erros é necessário voltar ao esquema e corrigi-os, pois o programa não deixa prosseguir de outra maneira. A próxima operação será a de implementação e desenho. Esta pode ser efectuada através de um duplo clique na em Implement Design, na lista Processes for current source. Da mesma maneira que no processo anterior esta operação não pode terminar com erros. Antes de carregar o circuito na FPGA é sempre útil (poupa muito tempo) simula-lo para verificar se o circuito funciona de conforme se pretende. WebPack 5.2 8
3 Instalação do ModelSim: O ModelSim é um dos programas que permite simular os circuitos lógicos antes de programar os dispositivos físicos. A sua instalação é fornecida num ficheiro separados intitulado: MXE_5.7c_Full_installer.exe Durante a instalação, deve escolher a versão MXE II Starter, Figura 12. Esta versão é gratuita (para a sua utilização é necessário pedir uma licença à ModelTech, através de um registo simples). Figura 12 Escolha da versão. Na caixa de dialogo seguinte, Figura 13, deve escolher a opção Full VHDL. Figura 13 Seleccionar o tipo de biblioteca a instalar. Finalmente, aceite o pedido para requerer a licença (é preciso estar ligado à Internet e fazer registo). Passado uns minutos recebe-se por email a licença. WebPack 5.2 9
3.1 Declaração do ModelSim UTAD Existem vários programas para fazer a simulação de circuitos. O Webpack trás o uma versão simplificadas do programa ModelSim. Antes de fazer a primeira simulação, é preciso indicar ao programa webpack onde é que se encontra o programa de simulação. Para isso no menu Edit, opção Preferences escolhe-se a opção Partner Tools na caixa de diálogo, Figura 14. Figura 14 Caixa de dialogo usada para indicar a localização do ModelSim. É preciso inserir a directoria onde se encontra o ficheiro executável do ModelSim. Este ficheiro encontra-se na directoria win32xoem dentro da directoria de instalação do ModelSim. No fim é necessário fazer o restart do webpack! WebPack 5.2 10
3.2 Simulação com o ModelSim A simulação começa lançando o simulador ModelSim. Para isso corra o processo Launch ModelSim Simulator (basta dar um duplo clique no item Launch ModelSim Simulator), dentro de Design Entry Utilities, na área dos processos. O ModelSim é lançado, aparecendo quatro janelas. Para simular o circuito é preciso atribuir valores aos pinos de entradas do circuito. Para isso, na janela signals, seleccione o sinal pretendido, por exemplo o clear. A atribuição de valores de entrada é efectuada atravésda opão Force, do menu Edit. Como o sinal clear é activo alto, deve coloca-lo no valor a zero na caixa de texto Value, Figura 15, para que o contador não esteja a permanentemente a fazer reset. Figura 15 Alterar o valor do sinal clear. Aplique o mesmo processo para a entrada Enable fique com o nível lógico um. Os circuitos digitais são frequentemente sincronizados através do pino de relógio, Clock. No ModelSim o relógio é configurado no menu Edit, opção Clock (ainda na janela sinals). Na Figura 16 pode-se ver a caixa de dialogo responsável pela definição do relógio. WebPack 5.2 11
Figura 16 Definição do relógio. É possível definir os vários atributos do sinal. Para este caso de simulação utilize os valores da Figura 16. Nota pode-se utilizar as unidades ns, us, ms para simplificar os números. Agora, com todas as entradas definidas, pode-se passar à simulação, na janela wave. O ícone permite fazer a simulação durante o intervalo de tempo especificado nas opções da janela principal. Por exemplo, pode-se pretender analisar o circuito durante 1 ciclo de relógio de cada vez, ou então pode ter interesse analisar durante 4 em 4 ciclos de relógio ou outro período de tempo qualquer. Para configurar isso, na janela ModelSimXE II, no menu Simulate, a opção Simulation Options, no Separador Defaults, alterar o valor do tempo de simulação que está definido na caixa de texto intitulada Default Run (Figura 17). WebPack 5.2 12
Figura 17 Caixa de dialogo das opções de simulação. Existe outra forma de fazer a simulação através do ícone. Aqui a simulação corre se forma continua, enquanto houver alteração nas saídas ou até a simulação ser cancelada no ícone. A qualquer altura da simulação é possível modificar os valores de entrada, bastando aceder à janela signals. WebPack 5.2 13