KIT DIDÁTICO PARA PROCESSADORES DE LÓGICA PROGRAMÁVEL



Documentos relacionados
Figura 01 Visão Geral da Placa

Memórias. O que são Memórias de Semicondutores? São componentes capazes de armazenar informações Binárias (0s e 1s)

Os dispositivos lógicos programáveis (PLD Programmable Logic Device) são circuitos integrados programáveis pelo usuário, que

Sistemas Digitais. Módulo 15 Prof. Celso PLD - DISPOSITIVOS LÓGICOS PROGRAMÁVEIS

Manual de Instalação da Plataforma Scorpion. 1. Como conectar a Plataforma Scorpion com a Xilinx Starter-3E kit

Manual de Operação e Instalação. Microterminal TCP/IP MT740. versão 1.0

Atenção ainda não conecte a interface em seu computador, o software megadmx deve ser instalado antes, leia o capítulo 2.

Micro Terminal IDTECH

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

1- Scilab e a placa Lab_Uino. 2- Instalação do ToolBox

TS Display Gráfico Serial

GUINDASTE CONTROLADO POR PC ATRAVÉS DE INTERFACE SERIAL RS- 232

LINEAR EQUIPAMENTOS RUA SÃO JORGE, 267/269 - TELEFONE: (11) SÃO CAETANO DO SUL - SP - CEP:

Dispositivos Lógicos Programáveis

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ

Medidor Powersave V2 USB

CAPÍTULO 4 Interface USB

Módulo de Desenvolvimento PIC16F877A

LINEAR EQUIPAMENTOS RUA SÃO JORGE, TELEFONE : SÃO CAETANO DO SUL - SP - CEP:

Atualizações de Software Guia do Usuário

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase

(21) (11) (21) Skype: cerne-tec MSN:

COMUNICAÇÃO SERIAL ENTRE EQUIPAMENTOS

Manual de utilização do módulo NSE METH 3E4RL

CONTROLADOR LÓGICO PROGRAMAVEL

Circuitos de Memória: Tipos e Funcionamento. Fabrício Noveletto

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word Sumário

R O B Ó T I C A. Sensor Smart. Ultrassom. Versão Hardware: 1.0 Versão Firmware: 1.0 REVISÃO

Modem e rede local. Guia do Usuário

Hamtronix CONTROLE REMOTO DTMF. CRD200 - Manual de Instalação e Operação. Software V 2.0 Hardware Revisão B

Manual de instalação e configuração do módulo de saídas NSR-08

Atualização, backup e recuperação de software

2.1 Montando o cabo serial Conectando o receptor ao PC Instalando o programa (DRU)... 5

A porta paralela. 1 - Introdução. 2- Modelos de porta paralela

FPGA Field Programmable Gate Array

* Acesso à programação protegido por senha; * Alimentação: 90 a 240Vca (Fonte chaveada).

Cerne Tecnologia e Treinamento (21) (11) cerne@cerne-tec.com.br MSN: cerne-tec@hotmail.com Skipe: cerne-tec

Copyright 2011 VW Soluções

Laboratório de Processadores Confecção das PCIs

Modem e rede local. Guia do usuário

LCD (LiquidCrystal Display) Alex Vidigal Bastos

FERRAMENTA DIDÁTICA PARA DISCIPLINA DE ELETRÔNICA DIGITAL

Atualização, Backup e Recuperação de Software. Número de Peça:

Cerne Tecnologia e Treinamento

Placas de Modem. Prof. Alexandre Beletti Ferreira

Dispositivos Lógicos Programáveis

Introdução à estrutura e funcionamento de um Sistema Informático

Acionamento através de senha*, cartão de proximidade e biometria. Compatível com fechaduras magnéticas, eletroímãs e cancelas.

Simulado Informática Concurso Correios - IDEAL INFO

Experiência 05: CONFIGURAÇÃO BÁSICA DE UMA REDE. Objetivo Geral Criar uma rede ponto-a-ponto com crossover e utiizando switch.

OPL9815 Inventário Configurável

Manual de instalação e configuração do módulo de entradas WEBER-REP

Universidade Estadual do Ceará

Copyright 2013 VW Soluções

CAPÍTULO 1 INTRODUÇÃO

Modem e rede local. Guia do Usuário

Algoritmos DCC 119. Introdução e Conceitos Básicos

Notas de Aplicação. Interface Controlador HI com Leitor de Código de Barras. HI Tecnologia. Documento de acesso público

Sistemas Microcontrolados

Suporta os microcontroladores: R. Leonardo da Vinci, Campinas/SP CEP F.: (19) /

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

Mapeamento de memória e programação da IHM do controlador CP-WS41/8DO8DI4AO2AI2TAI

Figura 1 - Memória 1. OBJETIVO. Conhecer os principais tipos de memórias entendendo suas funcionalidades e características.

O processador é um dos elementos componentes do computador moderno, sendo responsável pelo gerenciamento de todo o computador.

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

Microelectrónica (ME)

Circuitos Digitais 144L

Montagem e Manutenção. Luís Guilherme A. Pontes

SP-6000/ES ENSAQUE SIMPLES

Manual do Usuário Balança SA-110

Circuitos Lógicos. Profa. Grace S. Deaecto. Faculdade de Engenharia Mecânica / UNICAMP , Campinas, SP, Brasil. grace@fem.unicamp.

Conversor IP Shellby RS-232 ( TCP-IP)

Software RedeMB5 Manual do Usuário (Ver. 2)

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

PROJETO DE REDES

Disciplina: Laboratório de Circuitos Digitais

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

PROJETO. Ponte Digital. Luciano Daniel Amarante - carabina@pop.com.br Ricardo Watzko - rw@netuno.com.

Vivo Soluciona TI Manual de Autoinstalação

Entendendo as Permissões de Arquivos no GNU/Linux

Manual da Comunicação Profibus DP

1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através da codificação ASCII (American Standard Code for

CE N T R AI S TELEFÔNICAS HDL

LASERTECK SOFTECK FC MANUAL DO USUÁRIO

Descrição do Produto. Altus S. A. 1

SUMÁRIO. 1. Instalação Operações Comunicação Modo Ethernet Serial... 6

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CCET - Centro de Ciências Exatas e de Tecnologia Engenharia de Computação VELOHIDRO CURITIBA

Painel de Mensagens TXT TXT TXT Manual do Usuário

DISPOSITIVOS DE BLOCO. Professor: João Paulo de Brito Gonçalves

MANUAL BÁSICO DE INSTRUÇÕES

Fale.com. Manual do Usuário

Manual MifareUSB/Serial

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

MANUAL DA SECRETARIA

DeviceNet Drive Profile CFW-09

Serial Paralela USB FireWire(IEEE1394)

Transcrição:

Page 1 of 37 CENTRO UNIVERSITÁRIO POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS ENGENHARIA DA COMPUTAÇÃO KIT DIDÁTICO PARA PROCESSADORES DE LÓGICA PROGRAMÁVEL Guilherme Nunes Barbosa UNICENP/NCET Curitiba 2007

Page 2 of 37 CENTRO UNIVERSITÁRIO POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS ENGENHARIA DA COMPUTAÇÃO KIT DIDÁTICO PARA PROCESSADORES DE LÓGICA PROGRAMÁVEL Guilherme Nunes Barbosa Monografia apresentada à disciplina de Projeto Final como requisito parcial à conclusão do Curso de Engenharia da Computação, orientada pelo Prof. Marcelo Mikosz Golçalves. UNICENP/NCET Curitiba 2007

Page 3 of 37 TERMO DE APROVAÇÃO Guilherme Nunes Barbosa KIT DIDÁTICO PARA PROCESSADORES DE LÓGICA PROGRAMÁVEL Monografia aprovada como requisito parcial à conclusão do curso de Engenharia da Computação do Centro Universitário Positivo, pela seguinte banca examinadora: Prof. Marcelo Mikosz Golçalves (Orientador) Prof. Valfredo Pilla Jr. Prof. Alessandro Zimmer

Page 4 of 37 AGRADECIMENTOS Sem o apoio, compreensão e colaboração de várias pessoas importantes, este projeto não seria possível. Agradeço a todos que participaram direta ou indiretamente visando a conclusão deste projeto. Em especial aos meus pais que tiveram o papel importantíssimo de apoio moral nas horas mais difíceis quando tudo parecia não dar certo. À Mariana, que sempre esteve presente quando eu precisei e que sempre acreditou e motivou. Aos amigos e professores que realmente ajudaram com conhecimento fundamental para algumas etapas do projeto quando nem a referência bibliográfica era suficiente para as dúvidas mais difíceis.

Page 5 of 37 RESUMO Este projeto tem como motivação auxiliar alunos com os testes no kit Up1 da Altera e servir como base no desenvolvimento de projetos maiores. O hardware central deste projeto é o kit Up-1 da Altera, disponibilizado nos laboratórios do UnicenP para testes de projetos na linguagem VHDL, que é uma linguagem de descrição de hardware. Neste kit estão incluídos dispositivos programáveis PLD FLEX10K e MAX 7000, mas somente o primeiro é utilizado neste projeto. A abordagem do projeto é gerenciar módulos de interfaceamento conectados ao kit Up-1. Estes módulos são compreendidos como interface de teclado com conexão PS/2, interface serial para a comunicação com o computador e um módulo de exibição num display de LCD. Um processador conectado ao kit Up-1 faz parte do processamento de dados e envio instruções. VHDL, Quartus, Altera, kit educacional, interface. Palavras-chave:

Page 6 of 37 DIDATIC KIT FOR PROGRAMMABLE LOGIC PROCESSORS ABSTRACT This project has as motivation to assist students with the tests in Altera s Up-1 kit and to serve as base on the development of bigger projects. The central hardware of this project is the Altera s Up-1 kit, available at the laboratories of UnicenP for tests of projects using VHDL language that is a hardware description language. In this kit are included the programmable devices PLD FLEX10K and MAX 7000, but only the first one is used in this project. This project approach is to manage interface modules connected to the Up-1 kit. There modules are known as a keyboard interface with PS/2 connection, serial interface to communicate with the computer and a display module for a LCD display. A processor connected to the Up-1 kit is used to process data and to send instructions. VHDL, Quartus, Altera, student kit, interface. Key words:

Page 7 of 37 SUMÁRIO SUMÁRIO... 6 LISTA DE TABELAS... 7 LISTA DE FIGURAS... 8 LISTA DE SIGLAS... 9 LISTA DE SÍMBOLOS... 10 CAPÍTULO 1 INTRODUÇÃO... 11 CAPÍTULO 2 FUNDAMENTAÇÃO TEÓRICA... 13 2.1 Kit Up-1... 13 2.1.1 Flex 10K... 14 2.2 Dispositivos de Lógica Programável... 15 2.3 - Interface de Teclado AT... 16 2.3.1 Comandos do Teclado... 16 2.3.2 O Conector do Teclado... 18 2.3.3 Protocolo do Teclado para o Controlador... 19 2.3.4 Protocolo do Controlador para o Teclado... 20 2.4 Display de LCD... 20 2.5 Interface Serial... 22 CAPÍTULO 3 ESPECIFICAÇÃO DO PROJETO... 24 3.1 Especificação de Hardware... 24 3.2 Especificação de Software... 25 3.3 Preço dos Componentes do Projeto... 27 3.4 Cronograma... 27 CAPÍTULO 4 DESENVOLVIMENTO E IMPLEMENTAÇÃO... 29 4.1 Desenvolvimento de Hardware... 29 4.1.1 Lista de Materiais... 30 4.2 Desenvolvimento de Software... 31 CAPÍTULO 5 VALIDAÇÃO E TESTES... 35 CAPÍTULO 6 RESULTADOS E CONCLUSÕES... 37 CAPÍTULO 7 REFERÊNCIAS BIBLIOGRÁFICAS... 38 CAPÍTULO 8 ANEXOS... 39

Page 8 of 37 LISTA DE TABELAS Tabela 1 - Comandos de envio do teclado... 17 Tabela 2 - Comandos de envio do controlador... 17 Tabela 3 Pinagem dos módulos de LCD... 21 Tabela 4 Conjunto de instruções do display de LCD... 22 Tabela 5 Valor dos componentes... 27 Tabela 6 Cronograma... 28

Page 9 of 37 LISTA DE FIGURAS Figura 1 Fluxo de informação do controlador... 12 Figura 2 Esquemático da visão superior do kit Up-1... 14 Figura 3 Evolução das PLDs... 16 Figura 4 Scan code do teclado... 18 Figura 5 Scan code do teclado numérico... 18 Figura 6 Conector macho DIN... 19 Figura 7 Conector macho PS/2... 19 Figura 8 Bits de transmissão do teclado... 20 Figura 9 Bits de transmissão do controlador... 20 Figura 10 Transmissão de byte... 23 Figura 11 Kit Up-1... 24 Figura 12 Diagrama em blocos de hardware... 25 Figura 13 diagrama em blocos de software... 26 Figura 14 Barramento de pinos do kit Up-1... 29 Figura 15 Teclado PS/2 AT... 29 Figura 16 Display de LCD... 30 Figura 17 EPM 3064... 30 Figura 18 Diagrama em blocos do módulo de interface PS/2... 32 Figura 19 Diagrama em blocos do módulo de interface serial... 32 Figura 20 Diagrama em blocos do controlador... 33 Figura 21 Diagrama em blocos do simulador de processador... 34 Figura 22 - Diagrama em blocos do módulos de interface e controlador e os pinos de entrada e saída 39 Figura 23 - Diagrama em blocos do programa utilizado como processador junto com seus pinos de entrada e saída. 39 Figura 24 - Esquemático do módulo serial (Conversor Serial-TTL)... 40 Figura 25 - Esquemático do módulo de LCD... 40

Page 10 of 37 LISTA DE SIGLAS NCET Núcleo de Ciências Exatas e Tecnológicas UNICENP Centro Universitário Positivo PC Personal Computer BIOS Basic Input/Output System LED Light Emitter Diode ACK Acknowledge N/C Não conectado GND Ground VCC Common-collector Voltage IOB Input/Output Block CLB Configuration Logical Blocks VHDL - VHSIC Hardware Description Language FPGA - Field Programming Gate Array RTS Ready to Send CTS Clear to Send RAM Read Access Memory EEPROM Electrically Erasable Programmable Read-Only Memory ROM Read-Only Memory FIFO First In First Out DSP Digital Signal Processor PLD Programmable Logic Device IP Core Intelectual Property EAB Embedded Array Block

Page 11 of 37 LISTA DE SÍMBOLOS Mhz Mega Hertz KHz Kilo Hertz us Micro segundos V Voltz ma mili Ampère

Page 12 of 37 CAPÍTULO 1 INTRODUÇÃO O Kit Up-1, disponibilizado pela empresa Altera é bastante utilizado por estudantes do mundo inteiro para testes e treinamento da linguagem VHDL. O kit possui dois PLDs fisicamente separados que podem ser programados para se comportar como um bloco de hardware. Neste projeto foi utilizado o dispositivo FLEX 10K, que apesar de não armazenar informações com queda de energia, é mais flexível no sentido de reprogramação e testes, e é mais rápido do que o outro dispositivo do kit, o MAX 7000, que possui um número limitado de regravações, mas mantém a gravação em queda de energia. Apesar do kit estar obsoleto, este ainda é adotado em diversas universidades, por isso foi utilizado como módulo principal deste projeto. O projeto permite que o aluno que esteja desenvolvendo em VHDL possa contar com interfaces de entradas de dados através de teclado ou serial, e visualizar o resultado de seus testes num display de LCD. Para isso, os módulos de interfaceamento fazem a conversão dos sinais enviados pelo teclado e porta serial em bits que podem ser manipulados pelo PLD Flex 10K e enviados para o display de LCD. Sem o auxílio do Kit, o aluno conta apenas com oito pinos de entrada e dois push-buttons do próprio kit, aonde cada pino representa um bit, e cada clique do botão, um estado de bit. A saída é gerada por dois displays de sete segmentos, que em alguns casos, não retém informação suficiente para testes mais complexos. Um uso futuro do projeto seriam projetos de grande porte ou até sistemas embarcados que estariam utilizando apenas os módulos de interfaceamento para a entrada de dados e exibição de resultados em display enquanto um processador robusto programado em qualquer outra linguagem, incluindo VHDL estaria fazendo todo o processamento necessário. A PLD não precisaria ser necessariamente a FLEX 10K, podendo ser adaptado em qualquer outra PLD de ordem superior por questão de desempenho ou diminuição do espaço físico. O processo de interfaceamento dos três módulos do kit não é feito diretamente através do processador externo, mas por um controlador, que serve como mediador, garantindo que os outros módulos não se comuniquem diretamente e que não haja inconsistência de informação. Cada módulo de entrada gera uma interrupção, que é interpretada pelo controlador que por sua vez, repassa a informação do módulo que gerou a interrupção ao processador. Quando a informação tiver que ser passada para o display, o processador avisa ao controlador através de uma instrução pré-programada junto com o caractere que deseja ser passado e por fim, este é exibido ao display. A figura 1 mostra o fluxo de informação que passa pelo controlador. Os objetos internos ao retângulo estão dentro do kit Up-1, enquanto os externos se encontram fisicamente fora, mas ainda assim, conectados ao kit.

Page 13 of 37 Figura 1 Fluxo de informação do controlador O papel do processador é manipular a informação vinda das interfaces de entrada e exibir no display. O projeto é flexível o suficiente para aceitar diversos tipos de processadores que não sejam mais velozes que o clock do kit Up-1, possuam uma entrada e saída do tamanho definidos pelo controlador e que possuam ao menos uma entrada de interrupção.

Page 14 of 37 CAPÍTULO 2 FUNDAMENTAÇÃO TEÓRICA Todos os módulos de interfaceamento utilizados no kit utilizam um embasamento teórico. Os tópicos a seguir apresentam informações como o protocolo utilizado na comunicação, como é feita a conversão de informações de um ambiente físico ao meio digital e as tecnologias utilizadas para os fins. 2.1 Kit Up-1 O Kit Up-1 foi desenvolvido pela empresa Altera através de um plano de pacotes para universidades (The University Program Design Laboratory Package) com o fim de atender às necessidades das universidades para o ensino de dispositivos lógicos programáveis. No pacote são fornecidas todas as ferramentas necessárias para o desenvolvimento e criação de desenhos lógicos, que incluem o próprio kit Up-1, um cabo Byte Blaster II, que é um cabo para conectar o kit à porta paralela de um computador, e software Max Plus II, que atualmente se encontra obsoleto e é utilizado o software Quartus II também desenvolvido pela altera. O kit Up-1 conta com dois PLDs das famílias MAX 7000 e Flex 10K. Os dispositivos destas famílias são a EPM7128S e EPF10K20 respectivamente. Estes dispositivos são programados utilizando o software Quartus II ou similar e enviados pelo cabo Byte Blaster. Somente a PLD Flex 10K será abordada no contexto deste projeto. A figura 2 representa uma visão superior do kit Up-1. Cada família de dispositivos possui LEDs, switches, push-buttons, barras de pinos e um oscilador de cristal de 25,175Mhz e não se comunicam diretamente. O Kit também possui uma entrada para um cabo de força de até 9V, entrada para cabo Byte Blaster, VGA de 15 pinos e PS/2. Toda a especificação técnica do kit pode ser encontrada no manual que vem com o próprio kit ou disponível para download no formato PDF no site da Altera. Figura 2 Esquemático da visão superior do kit Up-1

Page 15 of 37 [Manual técnico do kit Up-1] 2.1.1 Flex 10K O dispositivo PLD utilizado neste projeto é uma FPGA, que é um dispositivo semicondutor criado pela Xlinx para uso de processamento de informações digitais. É composto basicamente por três tipos de componentes: blocos de entrada, blocos lógicos configuráveis e chaves de interconexão. Os IOB são circuitos dispostos em formas de trilhas verticais e horizontais entre as linhas dos CLBs. São responsáveis pelo interfaceamento das saídas provenientes das saídas das combinações de CLBs. Os CLBs são dispostos de forma bidimensional e são construídos através da reunião de flip-flops e utilização de lógica combinacional. As chaves de interconexões fazem a conexão entre os IOBs e os CLBs. Normalmente a configuração é estabelecida por programação interna das células de memória estática, que determinam funções lógicas e conexões internas implementadas na FPGA entre os CLBs e IOBs. O dispositivo utilizado neste projeto, EPF10K20 contém 240 pinos que possui 1152 elementos lógicos e 6 blocos de vetor. Cada bloco de vetor fornece 2048 bits de memória que podem ser utilizados para criar funções de RAM, ROM e FIFO. É um dispositivo bastante lento em comparação aos dispositivos atuais. Possui grau de velocidade -4, que é o mais lento da série. São utilizados atualmente em pequenos sistemas embarcados ou para fins acadêmicos, como é o caso do kit Up-1. Uma das informações que definem a capacidade de um PLD é o número de elementos lógicos que ele possui, que no caso desde dispositivo possui 1.152. Outras células são responsáveis por criar blocos de armazenamento como RAM e ROM e funções FIFO, chamadas de EAB. O EPF10K20 possui 6 EABs, que também podem ser utilizados para implementar funções lógicas como multiplicadores, microcontroladores, máquinas de estado, entre outras. Maiores informações sobre as especificações técnicas do dispositivo EPF10K20 e a família Flex 10K podem ser encontradas no manual técnico fornecido no site da Altera. 2.2 Dispositivos de Lógica Programável PLDs são dispositivos utilizados para implementar funções lógicas e são programados através de softwares especiais fornecidos pelos fabricantes desses produtos, como o Quartus II da Altera, utilizado neste projeto. A programação destes dispositivos é realizada através de campos elétricos induzidos. Os circuitos de lógica digital podem ser classificados de acordo com sua densidade e complexidade. Os PALs, FPGA (field programmable gate array) são de baixa densidade, e os CPLDs de alta complexidade

Page 16 of 37 Inicialmente, os PLDs, possuiam apenas um único bloco lógico conectado aos pinos de entrada e saída do dispositivo. Com o aperfeiçoamento da tecnologia de fabricação, esses dispositivos receberam uma estrutura de interconexões programáveis, que viriam flexibilizar mais ainda a programação. A evolução trouxe uma otimização do aproveitamento de espaço, aumentando as interconexões de array de blocos lógicos. A figura 3, retirada do site da Altera, representa a evolução das PLDs. Da esquerda para a direita são compreendidas as PLDs de um único bloco até os dispositivos mais complexos como o FLEX 10K. Figura 3 Evolução das PLDs Alguns dispositivos são baseados na programação anti-fusível e por isso, não podem ser reprogramados. Este tipo de dispositivo é usado normalmente pelo baixo custo para aplicações já desenvolvidas e testadas em outros dispositivos compatíveis. 2.3 - Interface de Teclado AT O teclado AT normalmente usado pela maioria dos usuários de PC funciona enviando códigos binários que são interpretados pela BIOS em hexadecimal. Quando uma tecla é pressionada, é enviado continuamente o código desta tecla até que outra tecla seja pressionada ou que a tecla seja liberada. Existe apenas um código para cada tecla independente se for a tecla SHIFT ou qualquer outra. Quem tomará a ação de decisão é a BIOS do computador. Quando alguma tecla Num Lock, Caps Lock ou Scroll Lock é pressionada, a BIOS interpreta e envia um sinal ao teclado para ligar o LED respectivo no teclado. Um teclado convencional possui 101 teclas e 8 bits, realizando 256 combinações diferentes. Porém existem teclas especiais no teclado, chamadas teclas estendidas que necessitam de dois ou mais códigos e são precedidas por E0h. 2.3.1 Comandos do Teclado Os comandos apresentados na tabela 1 são enviados do controlador ao teclado. A maioria dos comandos mais comuns são set/reset dos indicadores de estado. Comando Tipo Descrição

Page 17 of 37 ED Set de LED s de Este comando é usado para ligar e desligar Num Lock, estado Caps Lock e Scroll Lock. Depois de enviado ED, o teclado responderá um ACK (FA) e vai aguardar outro byte que determinará seu estado. Bit 0 controla Scroll Lock, Bit 1 Num Lock, Bit 2 capst lock. O restante dos bits é ignorado. EE Echo Ao enviar o comando echo, o teclado deverá responder com outro comando echo (EE) F0 Set o Set de Ao enviar F0, o teclado deverá responder um ACK (FA) e Código de Scan irá esperar por outro byte (01-03) que determina o Código de Scan usado. Enviando 00 como segundo byte retorna o Código de Scan em uso. F3 Set do Grau de O teclado deverá enviar um ACK (FA) e aguardar o repetição segundo byte que determina o grau de repetição do teclado. F4 Habilitação de Apaga o buffer de saída do teclado, habilita o scan do Teclado teclado e retorna um ACK. F5 Desabilitação do Reset o teclado, desabilita scan do teclado e retorna um Teclado ACK FE Re-envio Na recepção, o teclado re-enviará o último byte enviado. FF Reset Reset o teclado Tabela 1 - Comandos de envio do teclado Os comandos apresentados na tabela 2 são enviados do teclado ao controlador. Comando Descrição FA Acknowledge AA Teste automático de energia passado EE Echo FE Re-Envio 00, FF Erro ou estouro de buffer Tabela 2 - Comandos de envio do controlador O diagrama apresentado na figura 4 mostra os códigos de scan das teclas individuais apresentados em hexadecimal. O padrão deste teclado é ABNT2 e poderia variar de acordo com o padrão utilizado.

Page 18 of 37 Figura 4 Scan code do teclado Na figura 5 são apresentados os códigos estendidos e do teclado numérico de um teclado no padrão ABNT2 Figura 5 Scan code do teclado numérico 2.3.2 O Conector do Teclado O teclado AT é conectado ao equipamento externo utilizando quatro fios. Algumas vezes um quinto fio pode ser encontrado que representa o reset, mas atualmente é deixado desconectado. Ambos conectores Clock e Data são linhas do tipo open-collector bi-direcionais. O controlador se comunica com o teclado utilizando estas linhas. A figura 6 mostra os conectores machos do tipo DIN. 1 2 3 4 5

Page 19 of 37 Figura 6 Conector macho DIN A figura 7 mostra os conectores machos do tipo PS/2. 1 Clock 2 GND 3 Data 4 N/C 5 VCC (+5V) 6 N/C Figura 7 Conector macho PS/2 2.3.3 Protocolo do Teclado para o Controlador O teclado implementa protocolo bidirecional com o controlador, mas o controlador tem prioridade de envio de comandos para o teclado. O teclado é livre para o envio de dados para o controlador quando ambos os pinos de dados e clock estiverem em alto. Se o controlador tiver o clock em baixa, o teclado irá armazenar qualquer dado até que o clock seja liberado. Quando o controlador liberar o pino de dados para baixo, o teclado irá se preparar para aceitar um comando do controlador. A transmissão dos dados é feita da frente para trás com uma janela de 11 bits. O primeiro bit se chama bit inicial (binário 0) seguido de 8 bits de dados, um bit de paridade ímpar e um bit de parada (binário 1). Cada bit é lido na rampa de descida do clock. A figura 8 representa os bits de transmissão do teclado. A freqüência do clock geralmente se encontra na faixa de 20 a 30 KHz. O bit menos significativo é sempre enviado primeiro. Figura 8 Bits de transmissão do teclado 2.3.4 Protocolo do Controlador para o Teclado O protocolo é iniciado ao levar o pino de dados para nível lógico baixo. Para evitar o envio de

Page 20 of 37 dados do teclado simultaneamente com o controlador, é comum levar a linha de clock para nível lógico baixo por mais de 60us. Então o pino de dados do teclado é levado em nível lógico baixo enquanto o clock é liberado. Na liberação do sinal de clock pelo teclado, quando uma borda de descida for detectada, o primeiro bit de dados pode ser carregado. O processo é repetido em cada rampa de descida para cada um dos 8 bits. Ao final destes, virá um bit ímpar de paridade. Depois do bit de paridade, o teclado enviará um ACK de recepção de dados e continuará enviando sinal de clock até que o barramento de dados se encontre inerte. A figura 9 representa os bits de transmissão do controlador. Figura 9 Bits de transmissão do controlador 2.4 Display de LCD Os módulos de LCD são bastante utilizados nos sistemas microprocessados. Estes módulos podem ser gráficos e/ou caracteres, são encontrados em diversas resoluções e normalmente são disponibilizados com 20 pinos. Os módulos de LCD podem possuir um controlador interno, que permite a conexão com outras placas através do barramento de dados. É necessário um protocolo para a comunicação entre os controladores. A tabela 3 demonstra a pinagem dos módulos de LCD. Pino Função Descrição 1 Alimentação GND 2 Alimentação VCC (+5V) 3 V0 Tensão para ajuste de contraste 4 RS 1 Dado, 0 Instrução 5 R/W 1 Leitura, 0 Escrita 6 E (Chip Select) 1 -> 0 Habilita, 0 Desabilita 7 B0 8 B1 9 B2 10 B3 11 B4 Barramento de Dados 12 B5 13 B6

Page 21 of 37 14 B7 15 A Anodo para LED backlight 16 K Catodo para LED backlight Tabela 3 Pinagem dos módulos de LCD A tabela 4 demonstra o conjunto de instruções do display de LCD sendo considerado que a comunicação seja a partir de um barramento de 8 bits. Instrução RS R/W B7 B6 B5 B4 B3 B2 B1 B0 Descrição Limpar Display Limpa o display e t 0 0 0 0 0 0 0 0 0 1 retorna o cursor para a posição da 1 a linha Home para Cursor Fixa modo de funcionamento Controle do display Desloca o cursor ou mensagem Fixa o modo de utilização do módulo LCD 0 0 0 0 0 0 0 0 1 * 0 0 0 0 0 0 0 1 X S 0 0 0 0 0 0 1 D C B 0 0 0 0 0 1 C R * * 0 0 0 0 1 Y N F * * Retorna o cursor para a 1 a coluna da 1 a linha, Retorna a mensagem previamente deslocada a sua posição original Estabelece o sentido de deslocamento do cursor (X=0 p/ esquerda, X=1 p/ direita) Estabelece se a mensagem deve ou não ser deslocada com a entrada de um novo caracter (S=1 SIM, X=1 p/ direita) Esta instrução tem efeito somente durante a leitura e escrita de dados. Liga (D=1) ou desliga display (D=0) Liga(C=1) ou desliga cursor (C=0) Cursor Piscante(B=1) se C=1 Desloca o cursor (C=0) ou a mensagem (C=1) para a Direita se (R=1) ou esquerda se (R=0) Desloca sem alterar o conteúdo da DDRAM Comunicação do módulo com 8 bits (Y=1) ou 4 bits(y=0) Número de linhas: 1 (N=0) e 2 ou mais (N=1) Matriz do caractere: 5x7(F=0) ou 5x10(F=1) Esta instrução deve ser ativada durante a 1.6 ms 1.6 ms 40 us 40 us 40 us 40 us

Page 22 of 37 Posiciona no endereço da CGRAM Posiciona no endereço da DDRAM Leitura do Flag Busy 0 0 0 1 Endereço da CGRAM 0 0 1 Endereço da DDRAM 0 1 BF AC Escreve dado na CGRAM / DDRAM 0 1 Dado a ser gravado no LCD Lê Dado na CGRAM / DDRAM 1 1 Dado a ser lido do módulo inicialização Fixa o endereço na CGRAM para posteriormente enviar ou ler o dado (byte) Fixa o endereço na DDRAM para posteriormente enviar ou ler o dado (byte) Lê o conteúdo do contador de endereços (AC) e o BF. O BF (bit 7) indica se a última operação foi concluída (BF=0 concluída) ou está em execução (BF=1) Grava o byte presente nos pinos de dados no local apontado pelo contador de endereços (posição do cursor) Lê o byte no local apontado pelo contador de endereços (posição do cursor) 40 us 40 us 0 40 us 40 us Tabela 4 Conjunto de instruções do display de LCD 2.5 Interface Serial A interface serial, também conhecida como RS-232 ou EIA RS-232C ou V.24 em sua forma padrão funciona transmitindo bits um à um de maneira seqüencial enviando primeiro o bit menos significativo. O protocolo de transmissão é assíncrono, sendo responsabilidade do transmissor e receptor sincronizar o tempo de envio de cada bit. Este padrão de interface foi utilizado primeiramente para conectar um teletipo a um modem e foi padronizado no final de década de 60 aonde foi utilizado por diversos dispositivos de comunicação remota, em especial modems. O real divulgador da interface RS-232 foi a IBM, que lançou computadores com este padrão, fazendo com que este fosse utilizado em grande escala até o fim dos anos 90, quando os modems cairam em desuso. Existem vários padrões dos chamados RS-232. Um deles é o EIA (Eletronics Industries Alliance), que definiu características elétricas dos circuitos, numeração dos pinos, padrão de conector, o uso do código ASCII, formato dos dados e comunicação assíncrona, entre outros. O padrão RS-232 utiliza dois sinais de controle, o RTS e o CTS para controle de fluxo via hardware. Quando o transmissor inicia a transmissão de dados, o pino RTS é sinalizado, e o receptor prepara-se para receber habilitando o pino CTS. Após receber o sinal CTS, o transmissor inicializa a transmissão. Para cada byte existe um bit de início e um de parada. A figura 10 demonstra como a transmissão

Page 23 of 37 de um byte ocorre. Figura 10 Transmissão de byte Para que seja feita a sincronia de tempo, o transmissor envia um bit, aguarda um tempo e envia os próximos oito bits mais os bits de paridade e parada, baseado no tempo de espera. No receptor, após a primeira borda de descida, é feito o reconhecimento da seqüência de mais oito bits mais os bits de paridade e parada. Após receber o bit de parada, a recepção encerra e o receptor volta a aguardar o próximo bit de início. Os modelos mais utilizados de interface serial são o DB9 e o DB25. Sua confiabilidade se deve a boa imunidade a ruídos por possuir níveis elétricos diferenciais em suas linhas. Ainda assim, o padrão RS-232 é direcionado à aplicações de curto alcance.

Page 24 of 37 CAPÍTULO 3 ESPECIFICAÇÃO DO PROJETO 3.1 Especificação de Hardware O kit UP-1 se encontra como hardware central do projeto utilizando a FPGA Flex10K para conter todos os blocos programáveis a nível de controle, interface e conexão com os módulos de hardware externos. A figura 11 mostra o kit Up-1. Figura 11 Kit Up-1 [http://www.kemt.fei.tuke.sk/fpga/loga/up1_education_kit.jpg], 2007 Foi utilizado para a comunicação serial, um cabo padrão RS-232 com conexão DB9 fêmea para o PC e pinos de alimentação e conexão RX para a comunicação de canal único de envio entre o PC e o kit. A comunicação serial foi utilizada devido a praticidade de implementação e a quantidade de referência bibliográfica disponível, mas também poderia ter sido usada a comunicação com a porta paralela do PC, que foi descartada por praticidade, pois o kit já usa esta porta para a gravação das PLDs. Foi utilizado um teclado do tipo AT no padrão ABNT2. Este foi conectado no conector fêmea PS/2 disponível no kit. Este tipo de teclado foi utilizado por praticidade de encontrar no mercado, mas poderia ser usado outro tipo de teclado que fosse compatível com os scan codes a nível do alfabeto de A a Z e dos números. A interface PS/2 foi utilizada por já estar disponível o conector no kit. Foi utilizado um display LCD de duas linhas por 16 colunas da marca ITM-1602B que é responsável pela interface de saída do processador. Este display pode ser substituído por um de maior desempenho com pequenos ou nenhum ajuste, dependendo do fabricante. Foi utilizado um módulo de hardware contendo uma CPLD da família MAX 3000 para fazer o simulador de processador em VHDL. Foi utilizado uma CPLD ao invés de um processador por

Page 25 of 37 praticidade em já estar desenvolvendo todos os módulos na linguagem VHDL, mas poderia ser utilizado um microcontrolador qualquer desde que seu clock seja inferior ao clock do kit. A figura 12 representa o diagrama em blocos de Hardware. No centro se encontra a FPGA Flex 10K conectada aos módulos de interfaceamento em blocos lógicos dentro do kit Up-1. O Kit é conectado aos dispositivos periféricos e ao processador através dos conectores laterais do kit. Figura 12 Diagrama em blocos de hardware 3.2 Especificação de Software A programação envolvida no projeto é toda feita na linguagem VHDL. Os módulos de interfaceamento com os dispositivos serial e teclado são ligados ao módulo controlador que é responsável pela captação dos sinais de interrupção vindos das interfaces e interpretação da instrução de envio ao display vinda do processador. O módulo de interfaceamento de entrada de teclado, possui o protocolo de comunicação PS/2 e se conecta com o módulo controlador. O módulo de interfaceamento de entrada serial utiliza protocolo RS-232 descrito no capítulo 2 e se comunica diretamente com módulo controlador. O módulo de interfaceamento de saída para o display de LCD conta com o protocolo de comunicação utilizado pelo display de LCD descrito no capítulo 2. Este se comunica diretamente com o módulo controlador. O controlador faz a comunicação entre os módulos de interface e o processador. Nenhum dos módulos de interfaceamento deve se comunicar diretamente ou interferir entre si. O controlador também realiza o envio de dados dos módulos de entrada para o processador e recebe informações deste para que

Page 26 of 37 estas sejam repassadas ao display de LCD. O módulo de processador usa os módulos de interfaceamento para adquirir dados de entrada e exibir as informações processadas no display de LCD. A figura 13 representa o diagrama em blocos lógicos. Os módulos de interface se conectam com o hardware através do kit e são conectados nos seus respectivos conversores. O multiplexador se conecta com o display através de um latch para não perder informações quando o processador parar de enviar dados para processar as próximas instruções. Figura 13 diagrama em blocos de software 3.3 Preço dos Componentes do Projeto Na tabela 5 segue o preço dos componentes utilizados neste projeto. A maioria dos componentes foram adquiridos em lojas especializadas em dispositivos de hardware, mas o kit Up-1 pode ser comprado diretamente com o fornecedor Altera. Para os testes do projeto, o kit foi emprestado dos laboratórios da UnicenP. O hardware utilizado para a CPLD da família MAX 3000 foi adquirido na UnicenP e montado utilizando resistores e capacitores diversos não fornecidos. A CPLD MAX 3000 foi adquirida pelo fabricante da PLD. Componente Quantidade Preço (R$) Kit Up1 da Altera 1 300,00 Teclado Ps/2 1 29,00 LCD de 2x16 1 21,00 Cabo serial-paralelo (RS-232) 1 10,00 Módulo da CPLD Max3000 com a CPLD 1 30,00 Resistores, capacitores diversos * 10,00

Page 27 of 37 Total - 360,00 Tabela 5 Valor dos componentes 3.4 Cronograma O tempo previsto para o projeto teve duração de onze meses, dividido nas etapas de proposta, especificação, projeto, implementação e documentação. A etapa de proposta não está incluída no cronograma, pois o projeto foi fornecido pela banca e a proposta repassada pelo orientador do projeto. Cada uma das etapas com suas respectivas atividades está descrita no cronograma da tabela 6. Nome da tarefa Duração (dias) Início Término Especificação do Projeto 28 05/03/07 02/04/07 Estudo teórico 23 05/03/07 28/03/07 Dissertação da especificação 7 25/03/07 01/04/07 Entrega da especificação 1 02/04/07 02/04/07 Projeto 40 02/05/07 11/06/07 Estudo do Hardware Serial 13 02/05/07 15/05/07 Estudo do Hardware LCD 17 02/05/07 19/05/07 Estudo do Ambiente de trabalho 22 08/05/07 30/05/07 Estudo de processadores 26 05/05/07 31/05/07 Dissertação do projeto 4 01/06/07 05/06/07 Entrega do projeto 1 11/06/07 11/06/07 Implementação 111 12/06/07 01/10/07 Implementação do módulo Serial 19 12/06/07 01/07/07 Implementação do módulo LCD 29 01/07/07 30/07/07 Implementação do módulo PS/2 16 30/07/07 15/08/07 Implementação do processador 16 15/08/07 31/08/07 Implementação do controlador e o restante dos módulos 110 12/06/07 30/09/07 Testes preliminares 1a Etapa (módulos individuais) 62 01/07/07 01/09/07 Testes preliminares 2a Etapa (módulos integrados) 15 31/08/07 15/09/07 Testes preliminares 3a Etapa (união de todos os módulos) 15 15/09/07 30/09/07 Apresentação do projeto 1 01/10/07 01/10/07 Documentação final e apresentação 14 26/11/07 10/12/07 Apresentação final do projeto 1 26/11/07 26/11/07 Dissertação e correção da documentação 7 03/12/07 10/12/07 Tabela 6 Cronograma

Page 28 of 37 CAPÍTULO 4 DESENVOLVIMENTO E IMPLEMENTAÇÃO 4.1 Desenvolvimento de Hardware O kit UP-1 é como hardware principal do projeto que utiliza a FPGA Flex10K. No kit foram conectados todos os dispositivos de hardware nos barramentos de pinos descritos na figura 14. Estes dispositivos de hardware são descritos a seguir. Figura 14 Barramento de pinos do kit Up-1 [Manual técnico do kit Up-1] Para a interface de entrada serial, foi utilizado um cabo no padrão RS-232 com conexão DB9 fêmea para o PC e pinos de alimentação e conexão RX para a comunicação de canal único de envio entre o PC e o kit. Para a interface de entrada de teclado, foi utilizado um teclado do tipo AT no padrão ABNT2. Este foi conectado no conector fêmea PS/2 disponível no kit. A figura 15 mostra o teclado utilizado no projeto. Figura 15 Teclado PS/2 AT [http://www.pcfloripa.com.br/loja/images/teclado_ps2_padrao_preto.jpg], 2007 Para a interface de saída LCD foi utilizado um display de LCD de duas linhas por 16 colunas com backlight, que significa que possui luz de fundo. A marca do display é ITM-1602B que é

Page 29 of 37 no projeto. responsável pela interface de saída do processador. A figura 16 mostra o display LCD utilizado Figura 16 Display de LCD [http://www.soldafria.com.br/loja/images/display_lcd_16x2_cinza_s.jpg], 2007 Para o simulador de processador, foi utilizado um módulo de hardware contendo uma CPLD da família MAX 3000 para fazer o simulador de processador em VHDL. Para o projeto foi utilizado o modelo EPM 3064 mostrado na figura 17. 4.1.1 Lista de Materiais Figura 17 EPM 3064 [http://www.es.co.th/picture/epm3064alc44-10n.jpg] A listagem dos materiais utilizados no projeto está descrita a seguir. Nesta listagem está incluso somente o hardware utilizado na implementação do projeto, mas não está incluso os dispositivos utilizados para os testes, como osciloscópio e multímetro. Kit Up1 da Altera Teclado AT PS/2 ABNT2 Display de LCD 2x16 Cabo serial padrão RS-232 Resistores diversos Capacitores diversos Fios de montagem

Page 30 of 37 Computador Pessoal 4.2 Desenvolvimento de Software Todo desenvolvimento na parte de software foi escrito na linguagem VHDL para os módulos de interfaceamento, simulação de processador e controladores contidos na FPGA FLEX10K. Foi utilizado o software Quartus II da Altera com licensa de estudante, disponibilizados no site da Altera. Para o envio de dados da porta serial foi utilizado o software Hyper Terminal do Windows, que serviu para as configurações básicas como paridade, baud rate e o envio dos caracteres. Não foi utilizada paridade, o baud rate utilizado foi de 9600 e não foi utilizado nenhum verificador de erros a nível de testes, mas poderia ser utilizado por estar disponível no módulo de interface serial. Todos os módulos de interface (serial, ps/2 e LCD) são IP Core. A vantagem de se utilizar módulos IP Core é que pelo fato de eles serem desenvolvidos e testados por outras pessoas, o que elimina erros futuros no projeto por falha de programação. A licensa de cada um dos módulos que envolve a não alteração do código e uso acadêmico foi respeitada. Cada licensa se encontra no arquivofonte de cada módulo IP Core. O módulo PS/2, chamado de PS/2 Interface foi desenvolvido por Daniel Quintero, pela companhia Itoo Software e pode ser utilizado tanto em teclados quanto mouses que tenham conector PS/2. Este possui o protocolo de comunicação descrito no capítulo 2 e possui pinos de comunicação com o conector PS/2 e saída de dados de 8 bits. A figura 18 demonstra a representação em blocos deste módulo. Figura 18 Diagrama em blocos do módulo de interface PS/2 O módulo serial foi desenvolvido por Bert Cuzeau, pela empresa ALSE. O módulo é composto de dois blocos, onde o primeiro faz o controle de fluxos de dados (UART). Neste bloco é possível configurar valores de paridade, tipo de paridade, baud rate e clock da PLD. O protocolo utilizado neste módulo é o RS-232 descrito no capítulo 2. A figura 19 representa o diagrama em blocos do módulo de interface serial.

Page 31 of 37 Figura 19 Diagrama em blocos do módulo de interface serial O módulo de LCD foi desenvolvido por Bert Cuzeau, pela empresa ALSE. O módulo contém um bloco com todos os pinos para a comunicação com o hardware do display de LCD. Este também conta com o protocolo de comunicação utilizado pelo display de LCD e as instruções básicas, como inicialização e limpeza dos caracteres. O controlador foi desenvolvido para fazer a comunicação entre os módulos de interface e o processador. Ao receber uma interrupção de um dos módulos de entrada (serial ou PS/2), o controlador redireciona um multiplexador para que os dados sejam enviados ao processador e envia uma nova interrupção. Não foi reaproveitada a interrupção inicial dos módulos para ativar diretamente o processador por complicações de clock, quando a interrupção chegava antes da informação. Para o envio de informações para o display, o processador precisa enviar uma instrução pré programada nos 4 bits superiores (9 em hexadecimal, ou 1001 em binário) seguida dos dados para o controlador. Ao receber esta instrução, o controlador redireciona o multiplexador para receber dados do display, e não ativa o display para imprimir a um caracter vindo do processador. A figura 20 representa o diagrama em blocos do controlador. Figura 20 Diagrama em blocos do controlador Foram desenvolvidos módulos secundários para auxiliar o controlador. Um dos mais importantes

Page 32 of 37 é o multiplexador, que possui uma entrada para cada módulo de interface de entrada mais o processador e a saída é conectada tanto ao processador quanto a interface do display de LCD. Foram desenvolvidos módulos de conversão para todos os módulos de interface, pois cada módulo de interface faz uma interpretação própria das informações. A interface serial utiliza ASCII, enquanto a interface de teclado utiliza scan codes e a interface de display utiliza um padrão próprio. Para trabalhar com o processador, todos os caracteres numéricos e alfabéticos foram convertidos primeiro para hexadecimal, mas nem todos os caracteres foram incluídos nesta conversão. Também foi desenvolvido um módulo de controle de interrupção para interpretar cada interrupção das interfaces de entrada, pois por serem módulos IP Core, nenhum deles possuía pinos de interrupção, que tiveram que ser adaptados. O módulo de simulação do processador foi desenvolvido externamente utilizando uma CPLD da família MAX 3000. Não foi utilizado um processador real, pois houveram complicações quanto ao tamanho limitado do kit e compatibilidade com a FPGA FLEX 10K. Este módulo é bastante simples, pois utiliza duas entradas de interrupção, 8 bits de dados de entrada e 8 bits de dados de saída. O programa feito para testes fazia a leitura de um caracter enviado pelas interfaces de entrada e fazia o envio para o display, mas poderia ser desenvolvido um programa qualquer que realizasse um processamento mais complexo. A figura 21 representa o diagrama em blocos deste simulador de processador. Figura 21 Diagrama em blocos do simulador de processador

Page 33 of 37 CAPÍTULO 5 VALIDAÇÃO E TESTES Os testes preliminares antes da implementação foram realizados em três etapas diversas vezes até que um resultado satisfatório fosse obtido. Para os testes foi utilizado o recurso de representação em formas de ondas fornecido pelo software Quartus II da Altera. Nesta representação em formas de onda é possível entrar com valores em bits nos pinos de entrada dos módulos e observar o resultado nos pinos de saída. Para a primeira etapa de testes, cada módulo de interface foi isolado em um novo projeto para que não houvesse nenhuma interferência externa dos outros módulos. Cada módulo de interfaceamento foi testado utilizando formas de onda. A teoria para cada protocolo de interfaceamento teve que ser aprendida para os testes dos módulos IP Core, pois não se tinha certeza se os módulos eram compatíveis com o kit e para a validação da informação gerada. Cada um dos outros módulos, como o multiplexador e o módulo de interrupção também tiveram que ser isolados para os testes na primeira etapa. Na segunda etapa de testes foi implementado o controlador adaptado às necessidades de cada módulo, como pinos de saída para o display. O controlador foi conectado aos outros módulos secundários, e para a validação, um módulo de interfaceamento foi conectado por vez ao controlador e os módulos secundários para que não houvesse interferência de nenhum dos outros módulos de interfaceamento. Novamente foram gerados sinais em forma de ondas que foram analisados e validados. Para a terceira etapa de testes, todos os módulos de interfaceamento foram conectados ao controlador e aos módulos secundários e foram geradas formas de ondas num ambiente controlado. Foi desenvolvido um programa para simular um processador com um programa simples descrito no capítulo 4. Todos os testes de hardware foram realizados após a terceira etapa de testes, pois foi necessário o protocolo de cada módulo de interfaceamento. Foram utilizadas ferramentas de teste como o osciloscópio e multímetro para a visualização dos sinais. O teste do módulo de interfaceamento de teclado foi realizado conectado-se o teclado na entrada PS/2 do kit Up1. Então foi verificado nos displays de 8 segmentos a tecla pressionada. Para o teste do módulo de interfaceamento serial, foi conectado um cabo serial com conversão serial-ttl no padrão RS-232 na entrada serial do kit e na entrada serial do PC. Utilizando o software Hyper Terminal do Windows configurado para utilizar baud rate 9600 e paridade nenhuma. Foi observado no display de sete segmentos do kit, a tecla pressionada. O teste do hardware do display de LCD foi realizado ao conectar diretamente o display nas saídas do kit e inserir dados utilizando as dip-switches e push-buttons. Os resultados foram caracteres impressos na tela do LCD.

Page 34 of 37 CAPÍTULO 6 RESULTADOS E CONCLUSÕES O projeto foi concluído no tempo estipulado pela banca, mas nem todos os objetivos foram alcançados. Os objetivos não foram alcançados, pois faltou um módulo importante que não foi implementado devido a complicações no projeto e falta de entendimento no escopo geral do projeto. O módulo faltante foi um processador CISC que deveria ser implementado de acordo com a necessidade dos módulos de interfaceamento, o que inclui um aumento de instruções caso fosse necessário. Ao invés disso foi implementado um simulador de processador com o propósito de que o processador fosse de responsabilidade de quem utilizasse o projeto. A apresentação do projeto foi realizada em duas etapas, em dois dias diferentes. No primeiro dia, o projeto foi apresentado conforme a especificação, mas o simulador de processador estava aglomerado ao restante dos módulos, o que confundiu na validação de informações. A banca sugeriu que fosse utilizado um microcontrolador externo ao kit Up-1. Por consenso da banca, foi utilizada a CPLD da família MAX 3000 para fazer o módulo de processamento externo ao kit. Na segunda apresentação, foi demonstrado o mesmo resultado da primeira apresentação, mas com o processador acoplado externamente. Uma das maiores dificuldades no projeto foi encontrar módulos IP Core compatíveis com o kit e que funcionassem, pois a maioria destes módulos não possui manual, apenas o código fonte. Os testes destes módulos levaram quase metade do tempo total do projeto. Outra grande dificuldade foi acoplar um processador IP Core ao tamanho limitado do kit e que fosse compatível com este. Não foi encontrado nenhum processador que atendesse à essas necessidades. Mas a maior dificuldade foi entender o escopo geral do projeto, já que a proposta deste não foi documentada, mas repassada oralmente. Muitos erros de especificação só foram encontrados na etapa de implementação do projeto, quando já era muito tarde para alterar. O resultado dos módulos de interfaceamento foram positivos, pois cada um deles atigiu o objetivo esperado baseado nas teorias de cada protocolo. A união destes pelo controlador foi satisfatória para a validação final de implementação. É esperado que este projeto possa atingir sua meta, que é servir de testes para projetos menores e de base para projetos de grande porte.

Page 35 of 37 CAPÍTULO 7 REFERÊNCIAS BIBLIOGRÁFICAS Interfacing the PC s Keyboard disponível em <http://www.beyondlogic.org/keyboard/keybrd.htm>. Acessado em Março de 2007. Display LCD disponível em <http://aquarius.ime.eb.br/~pinho/micro/apostila/lcdport.pdf>. Acessado em Março de 2007. Xilinx: The Programmable Logic Company disponível em <http://www.xilinx.com>. Acessado em Abril de 2007. Simple PS/2 Interface disponível em <http://www.xess.com/projects/ps2_ctrl.pdf>. Acessado em Março de 2007. University Program Design Laboratory Package disponível em <http://www.eeng.dcu.ie/% 7Eee404/UP1Setup/UP1_user_guide.pdf>. Acessado em Abril de 2007. Introdução a Dispositivos de Lógica Programável disponível em <http://www.gta.ufrj.br/grad/01_1/pld/introducao.html>. Acessado em Abril de 2007. Memórias RAM e ROM disponível em <http://www.infowester.com/memoria.php>. Acessado em Abril de 2007. HE, Yap Zi BUILDING A RISC MICROCONTROLER IN AN FPGA. Universiti Teknologi Malaysia, 2002. Dissertação (Mestrado). The Independent ASIC - CPLD FPGA HDL Design Experts disponível em <http://www.alse-fr.com>. Acessado em Dezembro de 2007.