51
Centro Universitário Positivo - UnicenP Núcleo de Ciências Exatas e Tecnológicas – NCET Engenharia da Computação Sibilla Batista da Luz Giga de Testes para FPGAs Curitiba 2006

Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

Centro Universitário Positivo - UnicenP Núcleo de Ciências Exatas e Tecnológicas – NCET

Engenharia da Computação Sibilla Batista da Luz

Giga de Testes para FPGAs

Curitiba 2006

Page 2: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

ii

Centro Universitário Positivo - UnicenP

Núcleo de Ciências Exatas e Tecnológicas – NCET Engenharia da Computação

Sibilla Batista da Luz

Giga de Testes para FPGAs Monografia apresentada à disciplina de Projeto Final, como requisito parcial à conclusão do Curso de Engenharia da Computação. Orientador: Prof. Valfredo Pilla Junior.

Curitiba

2006

Page 3: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

iii

TERMO DE APROVAÇÃO

Sibilla Batista da Luz

Giga de Testes para FPGAs

Monografia aprovada como requisito parcial à conclusão do curso de Engenharia da Computação do Centro Universitário Positivo, pela seguinte banca examinadora:

Prof. Valfredo Pilla Junior. (Orientador) Prof. Adriana Cursino Thomé

Prof. Maurício Perreto

Curitiba, 11 de dezembro de 2006

Page 4: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

iv

Agradecimentos

Agradeço primeiramente a Deus, que me proporcional tudo de bom que eu

conquistei até hoje.

Aos meus pais, Benedito Acir da Luz e Sonia M. B. da Luz, que sempre me

deram apoio e acreditaram na conclusão dessa graduação.

Ao meu noivo Elder França, que me motivou nos momentos de dificuldade,

nunca deixando que eu desanimasse.

Ao Prof. Valfredo Pilla Jr. pela orientação e apoio no desenvolvimento do

projeto.

Agradeço também, ao laboratorista Maurício Cúnico pelos esclarecimentos

das dúvidas e pelas dicas de grande valia referentes ao projeto.

Page 5: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

v

SUMÁRIO

LISTA DE FIGURAS.............................................................................................................vi LISTA DE TABELAS........................................................................................................... vii LISTA DE SIGLAS..............................................................................................................viii LISTA DE SÍMBOLOS.........................................................................................................ix RESUMO................................................................................................................................ x ABSTRACT ...........................................................................................................................xi 1. INTRODUÇÃO.................................................................................................................. 1 2. REVISÃO BIBLIOGRÁFICA........................................................................................... 3

2.1 Internet.......................................................................................................................... 3 2.1.1 Arquitetura Internet ............................................................................................... 3 2.1.2 Camada Internet ..................................................................................................... 4 2.1.3 Camada de Transporte ........................................................................................... 6

2.2 Kit PICDEM.net ........................................................................................................... 9 2.2.1 Microcontrolador PIC...........................................................................................11

2.3 Kit Didático Microcontrolador 8051 ...........................................................................12 2.3.1 Família 8051.........................................................................................................12 2.3.2 Kit 8051 ................................................................................................................13

2.4 Dispositivos Lógicos Programáveis ............................................................................14 2.4.1 FPGAs...................................................................................................................15 2.4.2 Kit Cyclone ...........................................................................................................15

3. Especificação Técnica .......................................................................................................17 3.1 Especificação de Hardware..........................................................................................17 3.2 Especificação de Software ...........................................................................................19

3.2.1 Firmware ...............................................................................................................19 3.2.2 Software................................................................................................................21

3.3 Validação .....................................................................................................................23 3.4 Recursos Necessários...................................................................................................24 3.5 Estimativa de Custos ....................................................................................................24 3.6 Cronograma .................................................................................................................25

4. Projeto................................................................................................................................26 4.1 Hardware......................................................................................................................26

4.1.1 Cliente ...................................................................................................................27 4.1.2 Kit PICDEM.net ...................................................................................................27 4.1.3 FPGA ....................................................................................................................27 4.1.4 Giga de Testes .......................................................................................................28

4.2 Software .......................................................................................................................29 4.2.1 Diagrama de Fluxo de Dados Nível Zero.............................................................29 4.2.2 Diagrama de Fluxo de Dados Nível Um...............................................................30

5. Resultados ..........................................................................................................................33 6. Conclusão ..........................................................................................................................39 7. Referencias Bibliográficas.................................................................................................40 Anexo I ...................................................................................... Erro! Indicador não definido.

Page 6: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

vi

LISTA DE FIGURAS Figura 1 – Camadas da Arquitetura Internet.. ......................................................................... 4

Figura 2 – Cabeçalho IP.. ....................................................................................................... 6

Figura 3 – Cabeçalho TCP ...................................................................................................... 8

Figura 4 - PICDEM.netTM Placa de Demonstração Internet/Ethernet. ................................... 9

Figura 5 - PICDEM.netTM Diagrama em blocos. .................................................................10

Figura 6 – Microcontrolador 8051. ........................................................................................13

Figura 7 – Kit Cyclone. .........................................................................................................17

Figura 8 – Diagrama em Blocos do Sistema .........................................................................18

Figura 9 – Fluxograma do Firmware .....................................................................................20

Figura 10 – Fluxograma do Software em C++ ......................................................................23

Figura 11 – Diagramas de Fluxo de Dados Nível Zero. ........................................................30

Figura 12 – Diagramas de Fluxo de dados Nível Um. ..........................................................32

Figura 13 –Giga de Testes. ....................................................................................................33

Figura 14 – Circuito do Sistema. ...........................................................................................33

Figura 15 – Circuito de Teste. ...............................................................................................34

Figura 16 – Página Web do Giga de Testes...........................................................................34

Figura 17 – Lógica implementada em AHDL. ......................................................................35

Figura 18 – Ondas de Simulação no Quartus II.....................................................................36

Figura 19 – Nível Lógico nos Instantes de Tempo. ...............................................................36

Figura 20 – Programa Implementado em C++. .....................................................................37

Figura 21 – Resultado do Teste para a FPGA “Habiltada”. ..................................................38

Figura 22 – Resultado do Teste para a FPGA “Desabiltada”. ...............................................38

Page 7: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

vii

LISTA DE TABELAS

Tabela 1 – Memórias do PIC18F452....................................................................................12

Tabela 2 – Composição do PIC18F452................................................................................12

Tabela 3 – Estimativa de Custos...........................................................................................25

Tabela 4 – Cronograma do Projeto.......................................................................................26

Tabela 5 – Pinagem do Circuito Teste..................................................................................29

Page 8: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

viii

LISTA DE SIGLAS NCET – Núcleo de Ciências Exatas e Tecnológicas UNICENP – Centro Universitário Positivo PLDs – (Programmable Logic Devices) Dispositivos de Lógica Programável CPLDs – (Complex Programmable Logic Devices) Dispositivos de Lógica Programável Complexa FPGA – (Field Programmable Gate Arrays) Arranjos de Portas Programáveis em Campo. HDL – (Hardware Description Language) Linguagem de Descrição de Hardware. AHDL – (Altera Hardware Description Language) Linguagem de Descrição de Hardware Altera.

Page 9: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

ix

LISTA DE SÍMBOLOS ? – Ohm Hz – Hertz µ – micro 10-6 A – Ampére V – Volt I/O – Entrada e Saída de Dados µC – Microcontrolador.

Page 10: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

x

RESUMO

Este projeto consiste em um verificador de lógica de FPGAs, onde o

dispositivo pode ser habilitado ou desabilitado remotamente. Os dispositivos

lógicos programáveis possuem várias vantagens, mas a principal é que podemos

alterar um projeto sem ter que confeccionar novas placas de circuito impresso,

justamente por sua característica de reprogramação. A Internet surgiu na década

de 60 e tornou-se uma revolução nas telecomunicações, hoje é utilizada em todos

os lugares do mundo. O projeto tem o objetivo de unir essas duas tecnologias. O

sistema valida se o programa em AHDL gravado na FPGA está funcionando

corretamente. Para isso é utilizado um arquivo de simulação do programa Quartus

II, com grid size de 50 µs, a partir dele todos os testes são realizados. O resultado

obtido deve ser comparado com as ondas de simulação para validação da lógica.

A utilização da rede Internet possibilita fazer um chaveamento de operação na

FPGA, mudando sua lógica remotamente. Neste projeto o usuário tem a

possibilidade de habilitar ou desabilitar as saídas da FPGA como um Chip Enable.

A comunicação é feita utilizando-se o protocolo TCP/IP, e a interação com o

usuário é feita através de uma página web.

Palavras-Chave: FPGAs, HDL, Internet, TCP/IP, Microcontrolador, Controle

Remoto.

Page 11: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

xi

ABSTRACT

This project consists of a verifier of logic of FPGAs with a remote device

enable. Programmable Logic Devices have many advantages, but the main one is

the capability of to modify a project without changes to the circuit board, because

its reprogramming capabilities. The Internet came out around 1969 and became a

great revolution in the world of telecommunication. Today the internet is used all

over the world. The system project presented here validates if the AHDL code the

configure the FPGA is functioning correctly. For this an archive VWF of the

program Quartus II is used, with grid size of 50µs, it all the tests is carried through.

The gotten result must be compared with the waves of simulation for validation of

the logic. The use of net Internet makes possible to remotely make a keying of

operation in the FPGA, changing remotely its logic. In this project the user has the

possibility to enble or to disable the outputs of the FPGA as a Chip Enable. The

communication is made using TCP/IP protocol, and the interaction with the user is

done through a web page.

Keywords: FPGAs, HDL, Internet, TCP/IP, Microcontroller, Remote Control.

Page 12: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

1

1. INTRODUÇÃO

Os primeiros computadores que surgiram eram extremamente caros e

dispendiosos, teve-se então a necessidade de compartilhar poder computacional

em grande escala, uma vez que não era possível acompanhar o orçamento

[COMER, 1998].

A Agência de Projetos de Pesquisa Avançada (Advanced Research Projets

Agency – ARPA) começou a investigar a ligação em redes de dados e

desenvolver um software de comunicação para interligar redes diferentes. Nos

anos 70, a ligação inter-redes tinha se tornado o foco de pesquisa da ARPA, e a

Internet inicial surgia. A pesquisa continuou nos anos 80, e se tornou um sucesso

comercial nos anos 90.

A Internet cresceu para um sistema global de comunicação que alcança

todos os países do mundo e vem possibilitando novos tipos de aplicações como,

por exemplo, servidores embarcados em dispositivos dedicados [MOKARZEL,

2004].

No início da década de 80 uma outra grande tecnologia começava a surgir,

os Dispositivos Lógicos Programáveis. A idéia de um hardware que pode ser

alterado e atualizado sem a necessidade de substituição física de componentes

trouxe grandes expectativas, pois criava a possibilidade de combinar a velocidade

do hardware com a flexibilidade do software [RIBEIRO, 2002].

Desde então, as PLDs têm evoluído significativamente, alcançando

elevados níveis de densidade, altos índices de desempenho e menores custos de

fabricação.

A união dessas duas tecnologias traz uma ampla variedade de projetos. A

possibilidade de alterar a funcionalidade de uma FPGA remotamente, fazendo um

chaveamento na lógica em operação, facilita muito a utilização de sistemas que

precisem de várias funções distintas, sendo que todas estão no mesmo chip e

podem ser alteradas de qualquer computador conectado a rede.

Page 13: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

2

A alteração no dispositivo se torna muito mais rápida e menos dispendiosa,

já que não há necessidade de substituição física de componentes no circuito e

nem a presença do programador no local da estação.

Este projeto tem o objetivo de desenvolver um verificador de lógica de

FPGAs. Este verificador valida se o programa em AHDL gravado na mesma está

funcionando corretamente. O dispositivo pode conter até duas lógicas distintas

que são selecionadas, uma por vez, pelo usuário remotamente.

Para isso um arquivo de simulação (VWF – Vector Waveform File) do

programa Quartus II é processado e enviado ao circuito de testes, que aplica

valores às entradas da FPGA e lê suas saídas. Essas saídas são comparadas

com as ondas de simulação geradas pelo programa Quartus II antes da gravação

do dispositivo.

Page 14: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

3

2. REVISÃO BIBLIOGRÁFICA

Nesta revisão bibliográfica são abordados os temas principais no

desenvolvimento do projeto, são eles:

?? Rede Internet e seus protocolos.

?? Kit PICDEM.net usado para alterações remotas da FPGA.

?? Kit Didático Microcontrolador 8051.

?? Dispositivos Lógicos Programáveis.

2.1 Internet

A Internet é uma rede de redes em escala mundial de milhões de

computadores que permite o acesso a informações e todo tipo de transferência de

dados [CARVALHO, 1997].

Quando a Internet surgiu foi uma revolução nas telecomunicações, hoje é a

rede mais conhecida, mas não é a única, existem outras menos utilizadas.

2.1.1 Arquitetura Internet

A arquitetura Internet é largamente utilizada na interconexão e na

interoperação de sistemas computacionais heterogêneos. Tal arquitetura foi

lançada pelo Departamento de Defesa do governo americano e escolhida para ser

o padrão obrigatório de comunicação entre os diversos sistemas daquela

organização. Na época de seu lançamento, a Arquitetura Internet era a única

alternativa para fazer frente aos protocolos proprietários de fabricantes de

equipamentos, tornando-se assim, um padrão de fato do mercado

[CARVALHO,1997].

Page 15: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

4

A grande característica da Arquitetura Internet é a simplicidade de

implementação dos protocolos, que mesmo assim, atendem aos requisitos de

interconexão exigidos pela maioria dos sistemas.

A arquitetura Internet possui uma organização em camadas, como mostra a

figura 1, onde se procurou definir um protocolo próprio para cada camada, bem

como a interface de comunicação entre duas camadas adjacentes.

Essa arquitetura é composta por dois protocolos principais: o PI (Internet

Protocol), e o TCP (Transmission Control Protocol). Fazem então, o conjunto

TCP/IP oferecendo um serviço de alta confiabilidade.

Figura 1 – Camadas da Arquitetura Internet. Fonte: CARVALHO, 1997.

2.1.2 Camada Internet

Nesta camada o principal protocolo é o IP (Internet Protocol), que é

responsável pelo transporte de pacotes de dados através de uma ou mais sub-

redes interconectadas, desde a maquina de origem até a de destino [CARVALHO,

1997].

Page 16: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

5

O IP opera no modo datagrama, isto é, não é orientado a conexão. Os

pacotes são autocontidos e carregam as informações necessárias para o

transporte e controle dos mesmos nas sub-redes utilizadas.

Além de guiar os datagramas, o IP pode fragmentá-los. Isso é feito no caso

de redes que suportam apenas pacotes pequenos. Neste caso existe sempre o

consentimento de quem originou o pacote.

Os dados que trafegam pela rede possuem um cabeçalho IP, mostrado na

Figura 2, onde cada campo contém uma informação sobre o pacote. Os campos

são:

?? Version: indica a versão do protocolo Internet usado e o formato do mesmo.

?? IHL: Internet Header Length ou comprimento do cabeçalho Internet define o

número de worlds de 32 bits que compõem o cabeçalho.

?? Type of service: contém a qualidade do serviço desejado. Esses valores

são abstratos e usados como guia para seleção de prioridade.

?? Total Lenght: é o tamanho total do datagrama, medido em octetos, incluindo

o cabeçalho Internet e os dados.

?? Identification: esse valor é colocado pelo remetente para orientar o receptor

na reconstrução de datagramas fragmentados.

?? Flags: conjunto de flags

o Bit 0: reservado.

o Bit 1: (DF) 0 = pode fagmentar, 1 = não pode fragmentar.

o Bit 2: (MF) 0 = último fragmento, 1 = mais fragmentos.

?? Fragment offset: indica o ponto em que o datagrama pertence a uma

mensagem fragmentada. O primeiro fragmento de uma mensagem é

sempre 0.

?? Time to live: indica o tempo máximo que um datagrama pode permanecer

na rede, evitando que loops infinitos sejam criados.

?? Protocol: contém o protocolo utilizado na camada superior (transporte).

?? Head checksum: é o checksum do cabeçalho IP.

?? Source address: o endereço IP de origem.

?? Destination address: o endereço IP de destino.

Page 17: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

6

?? Options: pode ou não aparecer no datagrama.

?? Padding: garante que o cabeçalho IP seja finalizado com um múltiplo de 32

bits.

O cabeçalho IP, também possui um checksum para garantir a integridade

do mesmo, o que não garante a integridade do datagrama transportado

[MOKARZEL, 2004].

Figura 2 – Cabeçalho IP. Fonte: MOKARZEL, 2004.

2.1.3 Camada de Transporte

A arquitetura Internet especifica dois protocolos de transporte o TCP

(Transmission Control Protocol), que é orientado a conexão, e o UDP (User

Datagram Protocol), que não é orientado a conexão [CARVALHO, 1997].

O TCP tem por função o transporte fim-a-fim confiável de mensagens de

dados entre dois sistemas, ele garante ao usuário que a entrega das mensagens

foram feitas na mesma ordem que foi enviada, sem perda ou duplicação e também

sem danificação. Oferece uma alta confiabilidade a camada de aplicação e pode

ser usado em qualquer tipo de rede.

Principais funções:

?? Transferência de dados: os dados da aplicação são acomodados em

mensagens de tamanho variável, transferidas em modo full-duplex.

Page 18: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

7

?? Transferência de dados urgentes: os dados urgentes (por exemplo, as

informações de controle) são transferidos com indicativo de urgência, tendo

precedência sobre os dados normais.

?? Estabelecimento e liberação de conexão: antes de iniciar qualquer tipo de

transferência de dados é estabelecida uma conexão, liberada apenas ao

final da fase da transferência de dados.

?? Multiplexação: dados de várias aplicações são multiplexados pelo TCP para

serem entregues ao IP para transmissão; no destino ocorre a

demultiplexação para entrega dos dados as respectivas aplicações.

?? Segmentação: as mensagens entregues ao TCP podem ser segmentadas.

Cada segmento deve compor um datagrama IP e possuir um número de

identificação, que possibilita a posterior recomposição da mensagem

original no destino.

?? Controle de fluxo: utilizando o mecanismo de controle de fluxo baseado no

principio de janela deslizante de tamanho variável, o TCP envia vários

segmentos ao destino, mesmo antes de receber um reconhecimento

positivo ou negativo, adaptando-se à diferença de velocidade existente

entre os dois sistemas envolvidos.

?? Controle de erros: os segmentos são numerados para que possam ser

ordenados e entregues na seqüência correta à aplicação de destino.

?? Precedência e segurança: níveis de precedência e de segurança podem ser

estabelecidos pela aplicação para tratamento dos dados durante o

processo de comunicação.

O Protocolo TCP possui um cabeçalho TCP, mostrado na Figura 3, que vem

logo após o cabeçalho IP e contém as seguintes informações:

?? Source port: número de porta de origem.

?? Destination port: número de porta de destino.

?? Sequence number: o número de seqüência do primeiro octeto de dado

dessa mensagem.

Page 19: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

8

?? Acknowledgment number: quando o bit ACK está setado, esse campo

contém o valor da próxima seqüência de números que o remetente da

mensagem espera receber, confirmando todos os que estiverem antes

deles.

?? Data offset: aponta o inicio dos dados transportados.

?? Reserved: reservado para aplicações futuras, preenchido com 0.

?? Control Bits: 6 bits de controle

o URG: Urgent Pointer.

o ACK: Acknowledgment.

o PSH: Função Push.

o RST: Reset a conexão.

o SYN: Seqüência de números para sincronização.

o FIN: Fim dos dados.

?? Window: informa o tamanho da janela de recepção.

?? Checksum: cálculo para verificação de erro na mensagem transmitida.

?? Urgent pointer: aponta para os dados urgentes dentro da mensagem.

?? Options: pode existir carregando algumas opções no final do cabeçalho.

?? Padding: garante que o cabeçalho IP seja finalizado com um múltiplo de 32

bits.

Figura 3 – Cabeçalho TCP. Fonte: MOKARZEL, 2004.

Page 20: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

9

2.2 Kit PICDEM.net

O PICDEM.net, mostrado na figura 4, é uma ferramenta desenvolvida pela

Microchip que contem o necessário para a implementação de um sistema de

Internet embarcado [MOKARZEL, 2004].

É constituído de uma placa de demonstração Internet/Ethernet, que usa um

microcontrolador PIC18F452 (suporta também o PIC16F877) e firmware TCP/IP

[MICROCHIP, 2002].

Figura 4 - PICDEM.netTM Placa de Demonstração Internet/Ethernet.

Fonte: MICROCHIP, 2002.

Este kit utiliza o Microchip TCP/IP Stack, que é um pacote de programas

que pode prover serviços para aplicações padrão TCP/IP (HTTP Server, Mail

Client, etc), ou para uma aplicação TCP/IP desenvolvida pelo cliente que não

precisa conhecer todas as especificações do TCP/IP para utilizá-lo.

O TCP/IP Stack é implementado de uma forma modular, com todos os

serviços criados nas camadas mais abstratas, cada camada acessando serviços

de uma ou mais camadas inferiores. O Stack é escrito em linguagem de

programação ‘C’, para os compiladores Microchip C18 (em uso neste projeto) e o

Hi-Tech PICC18, desenvolvido para atender apenas a família 18 de

microcontroladores.

Page 21: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

10

O PICDEM.net , mostrado em diagrama em blocos na figura 5, suporta

interface Ethernet e RS-232 que é utilizada principalmente na primeira

configuração da placa, onde é programado IP, bits por segundo, paridade, stop

bit, etc. Para isso é utilizado um programa terminal padrão, como Hyper Terminal

do Windows [MOKARZEL, 2004]. O esquemático desse kit é apresentado em

anexo.

Características do PICDEM.net:

?? TCP/IP Stack

?? Web Server com HTML

?? EEPROM Serial 24L256

?? Firmware para Xmodem para download de web pages para a EEPROM

?? Conector ICSPTM /ICD, utilizado para fazer debugger com o circuito já em

funcionamento.

?? Interface Ethernet

?? Interface Serial RS-232

?? Display LCD

?? PHY da Realtek RTL8019S

Figura 5 - PICDEM.netTM Diagrama em blocos. Fonte: MICROCHIP, 2002.

Page 22: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

11

2.2.1 Microcontrolador PIC A família PIC18 possui microcontroladores de 18 a 80 pinos, seus softwares

soquetes são compatíveis com a família PIC16. No projeto é utilizado o

microcontrolador PIC18F452, que tem suas características apresentadas na

Tabela 1 e 2 [MICROCHIP, 2002].

Utiliza uma arquitetura RISC, com freqüências de clock de até 40Mhz, até

2048k palavras de memória de programa e até 3968 bytes de memória RAM.

Além disso, podem ser encontrados com diversos periféricos internos, como: até

quatro temporizadores, memória EEPROM interna, gerador / comparador,

amostrador PWM, conversores A/D de até 12 bits, interface de barramento CAN,

I2C, SPI, entre outros.

Características básicas do desenho interno desses MCUs:

?? Capacidade de pipeline (enquanto executa uma instrução, o processador

busca a próxima instrução na memória, de a forma a acelerar a execução

do programa).

?? Capacidade de execução de uma instrução por ciclo de máquina (as

instruções que provocam desvio no programa são executadas em dois

ciclos de máquina). Obs: Um ciclo de máquina no PIC equivale a quatro

ciclos de clock.

?? Cada instrução ocupa sempre apenas uma posição de memória de

programa (devido à largura do barramento de dados de memória de

programa ser maior, justamente para acomodar uma instrução inteira em

apenas uma posição de memória).

?? Tempo de execução fixo para todas as instruções (com exceção das

instruções de desvio). Devido ao fato de cada instrução do PIC ocupar

apenas um posição de memória, o tempo de execução é fixo, facilitando a

determinação do tempo de execução de um programa [PEREIRA, 2002].

Page 23: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

12

Tabela 1 – Memórias do PIC18F452

Memória de dados Memória de Programa

Bytes Bytes

Tipo Bytes RAM EEPROM

FLASH 32K 1536 256

Tabela 2 – Composição do PIC18F452

Portas

I/O

ADC

10-bit

MSSP USART CCP/

PWM

Timers

8/16-bit

Encapsulamento Pinos

34 8 I2C/SPI 1 2 1/3 DIP, PLCC,

TQFP

40/44

2.3 Kit Didático Microcontrolador 8051

2.3.1 Família 8051 No início da década de 80, a INTEL, que já tinha criado o microcontrolador

8048, lançou uma nova família, herdeira dos 8048, intitulada 8051 de “8 Bits”.

Mostrado na figura 6. Tipicamente o 8051, como representante básico de família,

contem internamente:

?? RAM interna de uso geral de 128 bytes e 128 bytes correspondentes aos

registradores especiais;

?? ROM interna de 4Kbytes;

?? 4 Ports de I/O;

?? 2 timers de 16 bits;

?? 1 Interface serial;

?? Capacidade de 64 kbytes de endereçamento externo de ROM;

?? Capacidade de 64 kbytes de endereçamento externo de RAM;

?? Processador “Booleano” (opera com bits);

Page 24: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

13

?? Ciclos típicos de instrução de 1 e 2 µs a 12MHz;

?? Instrução direta de divisão e multiplicação;

?? Entradas de interrupção externa;

Figura 6 – Microcontrolador 8051. Fonte: Data Sheet PHILIPS, 1996.

As portas P0, P1, P2 e P3 cada uma com oito linhas, são destinadas ã

comunicação externa. P0 e P2 se destinam a gerenciar as vias de dados e

endereços da comunicação do microcontrolador com a ROM, RAM ou periféricos

tipo “I/O mapeado”. P1 e P3 destinam-se às vias de comunicação externa, sendo

tipicamente usadas para interface com uso externo.

Além disso, o port 3 tem funções especiais por onde se comunicam os

periféricos internos que existem nos microcontroladores: timers, serial e A/D

[NICOLOSI, 2001].

2.3.2 Kit 8051 Neste kit utilizou-se o microcontrolador 8031 que é da família 8051. Esta

escolha foi feita porque apenas 4 Kbytes de memória ROM do 8051 seriam

insuficientes precisando então de uma ROM externa. Optou-se pelo

Page 25: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

14

microcontrolador 8031, que não contem memória ROM interna, porém é mais

barato.

Na placa é possível endereçar 32K posições de memória, visto que são

utilizadas memórias RAM (62256) e EPROM (27C256) que possuem organização

de 32K endereços X 8 bits.

É possível também endereçar um hardware externo utilizando a expansão

de 16 bits, neste caso, pode-se desabilitar a memória RAM da placa utilizando

endereços acima de 7FFFh, pois a partir desse endereço o bit A15 ficará em 1

levando o pino /CE da memória RAM para estado de desabilitação do chip.

A placa ainda dispõe de entradas externas para os timers (Timer 0 e Timer

1), entradas externas de interrupção (/INT0 e /INT1), pinos de RX e TX para

comunicação serial e pinos de /RD e /WR informando que operação está sendo

executada pelo microcontrolador (se escrita ou leitura na memória externa)

[Manual da Placa 8031, 2003].

O esquemático da placa é apresentado no anexo I.

2.4 Dispositivos Lógicos Programáveis Um PLD (Programmable Logic Device) é um CI (Circuito Integrado) que

contem um grande número de portas, Flip-Flops, e registradores que são

interconectados no chip. Um CI é programável porque a função específica do CI

para dada aplicação pode ser determinada selecionando-se que conexões devem

ser abertas e quais devem ficar intactas [TOCCI, 2003].

As FPGAs são formados por blocos lógicos interligados por uma matriz, onde

cada bloco equivalente a um integrado PLD.

Estes dispositivos possuem as seguintes características:

?? Os dispositivos são programáveis/graváveis, permitindo que se efetue

facilmente a alteração do projeto.

?? Possuem uma grande quantidade de portas lógicas, ou seja, uma maior

escala de integração, o que permite construir circuitos lógicos complexos

com um único integrado.

Page 26: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

15

?? Permitem que se implemente funções lógicas bastante complexas, as quais

podem utilizar elementos como Flip-Flops.

?? Pode-se utilizar uma descrição de hardware padronizada como o HDL

(Hardware Description Language), ou suas variâncias AHDL e VHDL

[FERLIN e ELEUTÉRIO, 1998].

2.4.1 FPGAs

As FPGAs (Field Programmable Gate Arrays) são circuitos integrados, da

classe dos VLSIs ("Very Large Scale Integration") sem função pré-determinada,

apresentando recursos eletrônicos independentes que podem ser configurados via

software.

Fisicamente, um FPGA consiste em um arranjo bidimensional de blocos

lógico-programáveis, conectados entre si por meio de uma estrutura de

interconexões. A função lógica implementada por cada elemento - definida pelos

estados das chaves transistorizadas que compõem o elemento -, bem como as

conexões entre os blocos funcionais, são determinadas por vetores binários de

configuração, que podem ser transferidos para o FPGA, repetidamente, a partir de

uma fonte externa.

É permitida a programação em mais de um nível: instruções para

configuração das entradas e saídas dos blocos podem ser incluídas nos vetores

binários. As saídas são do tipo tristate, e os registradores podem ser usados para

armazenar os dados de entrada ou saída. Todos esses blocos configuráveis

podem ser interconectados para implementar praticamente qualquer circuito

lógico.

2.4.2 Kit Cyclone

Este kit contém a FPGA, sobre a qual são realizados os testes para

validação do programa AHDL em execução, após a gravação. O kit, apresentado

Page 27: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

16

na figura 7, foi desenvolvido pelo Unicenp (Centro Universitário Positivo) e utiliza o

chip Cyclone EP1C3T144 da Altera.

Page 28: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

17

Figura 7 – Kit Cyclone.

3. Especificação Técnica

3.1 Especificação de Hardware

Aqui é apresentado uma visão geral do sistema com seus principais

componentes, representados na figura 8.

Page 29: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

18

Figura 8 – Diagrama em Blocos do Sistema

A seqüência de operações a serem executadas no sistema acontece da

seguinte maneira: de qualquer computador conectado a rede Internet o cliente

utiliza o navegador Internet (browser) para fazer acesso ao endereço IP do

PICDEM, onde visualiza uma página web que tem operações de controle da

FPGA . Nesta página, poderá escolher se a FPGA estará habilitada ou

desabilitada durante a verificação da lógica.

O cliente é capaz de realizar os testes através de um programa

implementado em C++, onde seleciona o arquivo de formato VWF do projeto

feito no Quartus II. Os valores das entradas, indicadas nesse arquivo, são

enviados ao microcontrolador (Port 1) que as aplica à FPGA.

Os valores de saída são enviados para um buffer (74LS244) e

repassados para o microcontrolador (Port 0) que envia serialmente para o

programa do computador.

Após os dados serem recebidos o resultado é visualizado através de

gráficos, e a validação pode ser feita comparando esses gráficos com as ondas

de simulação geradas pelo Quartus II.

O cliente pode alterar a funcionalidade da FPGA na página web e

realizar o teste quantas vezes forem necessárias. Porem, se o dispositivo for

reprogramado deve-se resetar o circuito de testes, e o programa de interface

Chip Select

Serial

Rede Ethernet

Protocolo TCP/IP

Kit Cyclone FPGA

Giga de Testes

Kit PICDEM.net

Computador

Cliente

Page 30: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

19

deve ser executado novamente, para que a conexão serial possa funcionar

corretamente.

3.2 Especificação de Software

O projeto tem como base um arquivo do programa Quartus II, este

arquivo do formato VWF, é gerado na compilação das ondas de simulação que

servem para testar o programa escrito em AHDL.

A giga de testes processa o arquivo VWF e aplica os valores dos sinais

de entrada a FPGA, descritos no arquivo, e lê as saídas do dispositivo,

validando assim à lógica em funcionamento.

Antes de realizar a operação de testes, o usuário deve gravar o

programa na FPGA e selecionar na página web se ela estará desabilitada

(todas as saídas em nível lógico alto ou baixo, dependendo da lógica

implementada) ou habilitada (saídas dependentes das entradas).

3.2.1 Firmware

O firmware implementado no projeto segue a seqüência lógica mostrada

no fluxograma, figura 9.

Primeiramente é estabelecida uma conexão serial com velocidade de

57.600 bits/s. Os dados são recebidos no microncotrolador através do

programa em C++. Um a um são armazenados na memória RAM. A

quantidade de valores é dada pelo end time dividido pelo grid size, ambos

foram definidos no Quartus II, sendo que o grid size é fixo em 50µs e o end

time em 1,35s.

Um por vez os valores são aplicados às entradas da FPGA e os dados

de saída da mesma são armazenados na RAM. Após esse processo, os dados

da memória são enviados serialmente em pacotes de 1.500 bytes para o

Page 31: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

20

programa, sendo que ao término de cada pacote espera-se um caractere para

liberar o envio do próximo.

Figura 9 – Fluxograma do Firmware

Page 32: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

21

3.2.2 Software

No programa implementado em C++, a lógica seguida é mostrada no

fluxograma da figura 10. Uma conexão serial de 57.600 bits/s é estabelecida. O

usuário seleciona o arquivo VWF, que é validado para verificar se o grid size é

de 50µs.

O arquivo é percorrido até encontrar-se a string “Transition”, pois depois

dela começam a ser descritos os níveis lógicos das entradas. Do começo do

arquivo até a string são declaradas as entradas e as saídas do programa

AHDL, o número de entradas e saídas juntamente com seus nomes são

armazenados. Esses nomes devem ser obrigatoriamente de um caractere para

entrada e dois para saída.

Cada entrada corresponde a uma coluna da matriz de dados que

armazenará os níveis lógicos de cada uma formando no final, uma combinação

de bits. Após o preenchimento total da matriz, as linhas são transformadas em

um número decimal inteiro correspondente ao valor binário formado pelas oito

colunas da linha. Esse valor é enviado para o microcontrolador que executa

suas devidas funções e retorna para o programa o valor das saídas da FPGA.

Os dados são novamente convertidos para uma matriz, que terá seus

valores mostrados para o usuário através de gráficos, onde serão visualizados

os sinais de entrada, saída e seus respectivos níveis lógicos. O resultado

obtido dependerá da habilitação ou não da FPGA através da página web.

Page 33: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

22

Page 34: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

23

Figura 10 – Fluxograma do Software em C++

3.3 Validação

A validação foi feita no decorrer do desenvolvimento do projeto, em cada

etapa de implementação são realizados testes e corrigidos os erros existentes.

Primeiramente foi implementado e testado a conexão do kit PICDEM

com a Internet, através da rede Ethernet. Por seqüência, criada a página HTML

e os comandos cgi colocados na mesma, como teste, um led no kit PICDEM

era ligado ou desligado pelo usuário através da página web, o status mostrado

no display do kit também era modificado.

Para o teste do circuito composto por buffer, decodificador e

microcontrolador 8051, valores da tabela ascII eram enviados pelo Hiper

Terminal do Windows, via serial, para o microcontrolador. O valor era então

Page 35: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

24

comparado com a seqüência de leds que acendiam formando uma combinação

binária de oito bits.

Como teste de processamento do arquivo, utilizou-se um código em

AHDL de uma porta and.

Com todos os blocos ligados os últimos testes e ajustes foram

realizados. Para validação final do funcionamento, os gráficos gerados pelo

programa são comparados com as ondas de simulação do Quartus II,

verificando desta maneira, se a lógica em operação na FPGA está realmente

correta.

3.4 Recursos Necessários

Para desenvolvimento do projeto são necessários os seguintes materiais

de hardware e software:

?? Rede Ethernet

?? Microcomputador, com sistema operacional Windows, conectado

a Internet, via rede Ethernet. Com interface serial;

?? Ambiente de desenvolvimento Borland C++ Builder 6;

?? Ambiente de desenvolvimento MPLAB 7.31;

?? Compilador C para programar o microcontrolador (C18);

?? Ambiente de desenvolvimento Keil;

?? Ambiente de desenvolvimento para linguagem AHDL (Quartus II);

?? Kit PICDEM.net da Microchip;

?? Kit microcontrolador 8051;

?? Kit Cyclone da Altera;

?? Circuitos integrados: 74LS244, 74LS138, 74LS02;

Foram listados apenas os principais materiais do projeto, sem levar em

consideração materiais para teste como multímetro, osciloscópio e proto-board.

3.5 Estimativa de Custos

Page 36: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

25

Para o desenvolvimento do projeto, os principais materiais tais como, o

Kit PICDEM.net e o Kit Cyclone foram disponibilizados pela faculdade.

Porem visando listar o custo total do projeto todos os materiais foram

listados na tabela 3, sem levar em consideração materiais de teste como

osciloscópio, multímetro e proto-board.

Considerou-se também o tempo de trabalho no desenvolvimento do

projeto, desde a fase de pesquisa até a documentação final, totalizando em

torno de 720 horas de trabalho, onde a hora trabalhada equivale a de RS

12,00.

Tabela 3 – Estimativa de Custos

Recursos Necessários Custos (R$)

MPLAB 7.31 Free

MPLAB C18 1.103,00

Quartus II Free

Kit PICDEM.net 1.493,00

Kit Cyclone 214,00

Kit 8051 50,00

Circuito auxiliar 10,00

Trabalho de desenvolvimento 8.640,00

3.6 Cronograma

Para melhor gerenciamento do projeto um cronograma de execução de

tarefas foi desenvolvido, este é apresentado na tabela 4.

Page 37: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

26

Tabela 4 – Cronograma do Projeto

Descrição Início Término

Protocolo de Comunicação 04/04/2006 22/05/2006

Página web de interface com o usuário 23/05/2006 05/06/2006

Microcontrolador 8051 e circuito 06/06/2006 31/07/2006

Comunicação serial 01/08/2006 15/08/2006

Implementação em C++ 16/08/2006 11/09/2006

Testes e ajustes 12/09/2006 26/09/2006

Validação final de funcionamento 27/09/2006 04/10/2006

4. Projeto

4.1 Hardware

Page 38: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

27

4.1.1 Cliente

O computador cliente conectado serialmente ao giga de testes não

precisa ser necessariamente o mesmo utilizado para fazer acesso, através da

página web, ao kit PICDEM. A alteração de habilitação ou não da FPGA pode

ser feita de qualquer máquina conectada a rede.

O usuário faz uso do giga de testes através de um programa

implementado em C++, utilizando o ambiente de desenvolvimento Builder 6.0,

onde seleciona o arquivo de simulação do Quartus II. Os resultados obtidos

após a aplicação dos valores à FPGA são visualizados através de gráficos, que

mostram os níveis lógicos dos sinais de entrada e de saída nos instantes de

tempo.

4.1.2 Kit PICDEM.net O kit PICDEM que permite a comunicação do sistema com a Internet.

Ele disponibiliza um pacote de programas que provê serviços para aplicações

padrão TCP/IP tais como http Server, FTP Server, Mail Client, etc. Os

programas são todos implementados em C ansi, e utilizam o ambiente de

desenvolvimento MPLAB 7.31 com o compilador para linguagem C C18.

Os comandos selecionados através da página web são implementados

no programa de webserv pertencente ao pacote de programas. Nele são

programadas as ações dos botões presente na página, aplicação do sinal no

pino de seleção (5V – habilitação, 0V desabilitação) e o status mostrado na

web.

Para controle de habilitação ou desabilitação utiliza-se o IO50 da FPGA

que é ligado no pino RC0 do microcontolador PIC18F452 presente neste kit,

que tem seu esquemático apresentado no anexo I.

4.1.3 FPGA

A FPGA utilizada para o giga de testes pertence ao kit Cyclone,

desenvolvido pelo Unicenp (Centro Universitário Positivo) que contem o

dispositivo Cyclone EP1C3T144 da Altera e um circuito básico para

manipulação da mesma, o esquemático da placa é mostrado no Anexo I.

Page 39: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

28

Nesta FPGA que serão realizados os testes da lógica em execução. O

programa gravado nesse dispositivo deve ser correspondente ao arquivo de

simulação utilizado como base para o giga de testes. Se a FPGA estiver

habilitada, apresentará um valor de saída dependente dos valores de entrada.

Como o resultado da simulação da lógica, através do programa Quartus

II, já é previamente obtido, é possível comparar o resultado adquirido com o

esperado, e verificar assim se a lógica em funcionamento está operando

corretamente.

Se a FPGA foi desabilitada pelo usuário através da página web, o

resultado apresentados nos gráficos deve ser de todas as saídas em nível

lógico alto ou baixo, dependendo da lógica implementada em AHDL.

4.1.4 Giga de Testes

O circuito de teste é composto do kit do microcontrolador 8051,

decodificador 74LS138, buffer 74LS244 e uma porta nor 74LS02. Este circuito

é responsável por receber serialmente os valores das entradas da FPGA,

armazena-los na memória RAM, aplicá-los na FPGA, ler suas saídas,

armazená-las na RAM e enviar novamente para computador. Sendo que, é

possível verificar no máximo oito portas de entrada e oito de saída da FPGA.

Os pinos da FPGA e do microcontrolador conectados ao circuito de teste

são apresentados na tabela 5 e o esquemático do circuito de teste está

apresentado no Anexo I.

As entradas da FPGA recebem os valores direto do Port1 do

microcontrolador. As saídas passam por um buffer mapeado em memória,

através do decodificador, e são aplicadas no Port0.

Tabela 5 – Pinagem do Circuito Teste

Pino da FPGA Pino do µC 8051 Descrição

IO34 P1.0 Entrada

IO36 P1.1 Entrada

IO38 P1.2 Entrada

IO40 P1.3 Entrada

Page 40: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

29

IO41 P0.0 Saída

IO42 P1.4 Entrada

IO43 P0.1 Saída

IO44 P1.5 Entrada

IO45 P0.2 Saída

IO46 P1.6 Entrada

IO47 P0.3 Saída

IO48 P1.7 Entrada

IO49 P0.4 Saída

IO51 P0.5 Saída

IO53 P0.6 Saída

IO55 P0.7 Saída

4.2 Software

São apresentados os diagramas de fluxos de dados do sistema.

4.2.1 Diagrama de Fluxo de Dados Nível Zero

O diagrama, mostrado na figura 11, apresenta um a visão geral do fluxo

de dados. O cliente altera, através da web, como mostra a figura 15, o

funcionamento da FPGA, habilitando ou desabilitando o dispositivo. O acesso à

página é feito através do navegador Internet utilizando-se o endereço IP

correspondente ao kit PICDEM. O IP do kit pode ser fixo ou dinâmico, para

fazer a alteração entre um modo e outro basta configurar o PICDEM pelo Hyper

Terminal, através de uma conexão serial.

Page 41: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

30

A operação de habilitação pode ser realizada de qualquer máquina

conectada a rede, podendo então ser efetuada de um computador distinto ao

que o giga de testes está conectado via serial. O comando é enviado para o kit

PICDEM que executa a operação na FPGA.

Através de um programa implementado em linguagem C++, utilizando-se

o ambiente de desenvolvimento Borland Builder 6.0, o usuário é capaz de obter

os resultados obtidos nos testes realizados na FPGA.

Para isso, o usuário seleciona o arquivo de simulação (VWF)

correspondente à lógica em execução na FPGA, e a partir de seu

processamento o programa obtém os valores correspondentes as entrada e os

envia para o circuito teste. Esses dados são aplicados no dispositivo e as

saídas, do mesmo, lidas e enviadas para o programa cliente.

Figura 11 – Diagramas de Fluxo de Dados Nível Zero.

4.2.2 Diagrama de Fluxo de Dados Nível Um

Aplicação TCP/IP Stack

Sinal

Saídas

Entradas

Seleção

Dados de saída

Dados de entrada

Comando

Status da FPGA

Comando de seleção

Status

Sinal atualizado

Sinal de seleção

Gráfico de resultado

Arquivo

Aplicação VWF

CLIENTE

PICDEM

GIGA DE TESTE

Aplicação Web

Dados de entrada da

FPGA

FPGA

Aplicação µC

Page 42: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

31

O diagrama, mostrado na figura 12, apresenta um a visão mais

detalhada do fluxo de dados do sistema. O cliente acessa a página web do

sistema digitando na barra de endereços do browser o IP do kit PICDEM. Na

página pode selecionar se a FPGA estará habilita ou desabilitada, como um

Chip Enable. No modo “desabilitada” todas as saídas ficam em nível lógico alto

ou baixo, depende da lógica implementada. Quando a FPGA estiver

“habilitada” as saídas são dependentes dos sinais de entrada. O comando é

enviado para o PICDEM que aplica o sinal de seleção na FPGA, o status do

dispositivo é automaticamente atualizado na página web.

No programa o usuário deve selecionar o arquivo VWF que servirá como

base para o teste da FPGA, o arquivo é validado verificando se o grid size é de

50µs. O arquivo é percorrido e os valores das entradas são armazenados em

uma matriz, sendo que, cada coluna corresponde a uma entrada e o número de

linhas é dado pelo quociente do end time pelo grid size. A matriz é preenchida

por colunas, só quando todas as linhas da coluna forem completadas que a

próxima coluna receberá os valores da entrada seguinte. Ao final, cada linha da

matriz terá oito colunas que representam um número binário de oito bits.

Para enviar ao microcontrolador, as colunas da matriz são

transformadas em um número inteiro decimal, que corresponde ao número

binário formado por elas. O circuito de teste aplica esses valores ás entrada da

FPGA, lê suas saídas e armazena na memória RAM. Quando todos os dados

forem aplicados, os valores de saída são enviados para o programa do builder,

que converterá novamente para uma matriz, mostrada para o usuário através

de gráficos.

Page 43: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

32

Figura 12 – Diagramas de Fluxo de dados Nível Um.

Valor do dado de seleção

Valores obtidos

Valores aplicados

Valores

Dados mostrados

Dados convertidos

Dados recebidos

Resultado

Dados de entrada

Dados

Sinal de seleção

Arquivo validado

Status atualizado

Comando selecionado

Arquivo VWF

IP do PICDEM Comando de

seleção

5

Validar arquivo

3

Aplicar Seleção

4

Atualizar dados na

web

7

Enviar os dados para

o µC

10

Receber os dados do

µC

Selecionar lógica na página

web

2 1

Carregar página Web no browser

Status

GIGA DE TESTES

Dados de saída

12

Mostrar dados no gráfico

PICDEM

11

Converter dados

CLIENTE

FPGA

9

Obter dados

resultantes

6

Processar arquivos

8

Aplicar dados

Page 44: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

33

5. Resultados

Os resultados gerais foram satisfatórios, pois o projeto foi concluído com

êxito. Nas figuras 13 e 14, é apresentado o sistema final com suas partes

integradas. A imagem 15 é referente ao interior da caixa que envolve o circuito

de teste.

Figura 13 –Giga de Testes.

Figura 14 – Circuito do Sistema.

Page 45: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

34

Figura 15 – Circuito de Teste.

Para comprovar o funcionamento do sistema foram criados dois projetos

no Quartus II, o primeiro de um led com lógica and e o outro de um

decodificador. As saídas só são habilitas quando o enable alterado pelo

usuário através da página web, que é mostrada na figura 16, está em nível

lógico alto.

Figura 16 – Página Web do Giga de Testes.

Page 46: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

35

Como exemplo do funcionamento do sistema, são descritos os passos de

execução para o teste da lógica apresentada na figura 17.

Primeiramente é gerado o projeto no programa Quartus II e o codigo em

AHDL implementado, a partir isso, geraram-se as ondas de simulação, onde o

resultado da mesma pode ser visto na figura 18.

Os valores dos sinais são armazenados em um arquivo de formato VWF,

que guarda os níveis lógicos das entradas nos instantes de tempo, que variam

de 0s a 1,35s, com um intervalo de grid size de 50µs.

Para exemplificar são apresentados na figura 19 os níveis lógicos

referentes à entrada a do programa em AHDL.

Figura 17 – Lógica implementada em AHDL.

Page 47: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

36

Figura 18 – Ondas de Simulação no Quartus II.

Figura 19 – Nível Lógico nos Instantes de Tempo.

O programa processa o arquivo de simulação e obtém os valores que

serão aplicados na FPGA pelo circuito de teste. Pra realizar essa operação,

primeiro o software valida o arquivo de simulação verificando se o grid size é

de 50µs, que é obrigatório. O programa percorre posição a posição do arquivo

Page 48: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

37

através de um ponteiro e armazena os valores de entradas em uma matriz,

sendo que, cada coluna corresponde a uma entrada. A matriz é preenchida por

colunas, só quando todas as linhas da coluna forem completadas que a

próxima coluna receberá os valores da entrada seguinte. Após o

preenchimento, a matriz terá oito colunas que representam um número binário

de oito bits.

Para enviar ao microcontrolador, as colunas da matriz são

transformadas em um número inteiro decimal, que corresponde ao número

binário formado por elas, como mostra o trecho de código imlementado em

C++ apresentado na figura 20.

Figura 20 – Programa Implementado em C++.

O circuito de teste aplica esses valores ás entrada da FPGA, lê suas

saídas e armazena na memória RAM. Após todos os dados aplicados, os

valores de saída são enviados para o computador, que converterá novamente

para uma matriz, mostrada para o usuário através de gráficos, como mostra a

figura 21 para a FPGA “habilita” e figura 22 para ”desabiltada”. As ondas de

simulação da figura 18 e os gráficos da figura 21 e 22 são equivales e

correspondem à lógica AHDL apresentada na moldura da figura 20.

Page 49: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

38

Figura 21 – Resultado do Teste para a FPGA “Habiltada”.

Figura 22 – Resultado do Teste para a FPGA “Desabiltada”.

Page 50: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

39

6. Conclusão

O programa Quartus II faz o teste do programa AHDL através das ondas

de simulação, mas essa verificação é feita antes da gravação da FPGA. Com o

giga de testes é possível verificar se a lógica em execução no dispositivo está

correta e se não existe problemas de funcionamento no dispositivo, pois os

gráficos obtidos no programa são comparados com as ondas de simulação,

desta maneira, é possível notar se ocorreram erros.

Mesmo o projeto sendo concluído com êxito, ainda existe possíveis

alterações para melhorar o funcionamento do sistema, como modificar os

gráficos apresentados ao usuário para o mesmo modelo das ondas de

simulação do Quartus II que possuem uma forma mais clara de visualização.

A possibilidade de utilizar a internet para controlar o funcionamento da

FPGA traz grande flexibilidade, pois as alterações podem ser realizadas de

qualquer máquina conectada a rede Ethernet. O problema ocorreria em uma

possível evolução do projeto, onde mais funções fossem controladas pela web,

o kit PICDEM só disponibiliza duas portas de comunicação livres e isso limita a

aplicação, pois funções adicionais são necessárias que existam pinos de I/O

para interação com o sistema.

Page 51: Giga de Testes para FPGAs - UP · possibilidade de habilitar ou desabilitar as saídas da FPGA como um hip Enable. C A comunicação é feita utilizando-se o protocolo TCP/IP, e a

40

7. Referencias Bibliográficas

CARVALHO, T. C. M. B., Organização e Arquitetura de Redes de

Computadores OSI e TCP/IP, 2ª. ed. São Paulo: Makron Books, 1997.

COMER, D., Interligação em rede com TCP/IP, 3ª. ed. Rio de Janeiro:

Campus, 1998.

MOKARZEL, M. P.; CARNEIRO, K. P. M. C., Internet Embedded: TCP/IP

para Microcontroladores, 1ª. ed. São Paulo: Érica, 2004.

PEREIRA, F., Microcontroladores PIC: Técnicas Avançadas, 2ª. ed. São

Paulo: Érica, 2002.

NICOLOSI, DENYS E. C., Microcontrolador 8051 Detalhado, 2ª. ed. São

Paulo: Érica, 2001.

RIBEIRO, A. A. L., Reconfigurabilidade Dinâmica e Remota de FPGAs,

Dissertação de Mestrado, São Paulo: USP – São Carlos, 2002.

TOCCI, R. J., Sistemas Digitais: Princípios e Aplicações, 8ª. ed. São Paulo:

Prentice Hall, 2003.

Microchip Tecnology Inc. PICDEM.netTM: User’s Guide. Arizona, 2002.

ALTERA CORPORATION. Pin Information for the CycloneTM.EP1C3T144

Device Final Version 1.3. San Jose, 2004.