1.1. dispositivos lógicos programáveis · epusp - pcs 2308/2355 - laboratÓrio digital lógica...

18
EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 1 LÓGICA PROGRAMÁVEL Edith Ranzini e Edson Lemos Horta / 2000 E.T.M. / 2001 (revisão) E.T.M./2002 (revisão da parte experimental) E.T.M./2004 (revisão) RESUMO Nesta experiência será apresentada uma metodologia para projeto de sistemas digitais utilizando EPLD (Erasable Programmable Logic Devices). A parte experimental consiste na aplicação desta metodologia, através de um projeto-exemplo completo, desenvolvido com o auxílio da ferramenta de software MAX+PLUS II da Altera e implementado com o dispositivo lógico EPM7128SLC84-7. O objetivo principal desta experiência é a familiarização com a ferramenta de software MAX+PLUS II. 1. PARTE TEÓRICA 1.1. Dispositivos lógicos programáveis Os dispositivos lógicos programáveis representam uma nova abordagem no processo de desenvolvimento de sistemas digitais. No passado, os projetistas tinham de usar apenas componentes digitais com "funções fixas" disponibilizados no mercado (contadores, decodificadores, deslocadores, etc). Os dispositivos programáveis permitem ao usuário definir uma função a ser desempenhado por um ou vários chips. As características mais marcantes destes dispositivos é a programabilidade e a alta capacidade, o que aumenta a eficiência e a flexibilidade dos projetos e, também, diminui o tempo de desenvolvimento do produto. (Dueck, 2001) 1.1.1. Lógica Programável Os projetistas de circuitos digitais têm à sua disposição uma grande variedade de CIs padronizados, com as mais variadas funções. O fato destes CIs serem fabricados por várias empresas e em grande volume fazem com que tenham um custo relativamente baixo. Por esta razão, a técnica muito comum para a implementação de projetos de sistemas digitais é a interconexão destes CIs padronizados. (Tocci, 2000) Apesar de ser amplamente empregado, a utilização de CIs padronizados na implementação de sistemas tem alguns problemas. Primeiro, alguns sistemas podem precisar de centenas ou milhares de CIs. Este grande número de CIs necessita de um espaço considerável em uma placa de circuito impresso, sem levar em conta o consumo de energia necessária para alimentá-las. Um segundo aspecto diz respeito com o tempo necessário para a montagem e testes das placas.Uma grande quantidade de CIs necessários em um sistema resultam em um tempo maior para colocar e soldar estes componentes na de circuito impresso. E a manutenção é o terceiro aspecto. Quanto maior o número de componentes, menor é a confiabilidade do sistema. Assim, o fabricante do equipamento deve manter um estoque considerável, dispondo de toda a variedade de CIs utilizados no circuito. Uma solução para estas questões é reduzir o número de CIs usados no projeto. Com isto teremos uma série de vantagens: um menor espaço na placa, um menor consumo de energia (fontes de alimentação menores), processos de fabricação mais rápidos e baratos, maior confiabilidade e uma manutenção mais fácil. Para reduzir o número de CIs a serem usados no projeto é necessário colocar mais e mais funções nos chips. É claro que isso tem sido feito com as tecnologias LSI, VLSI, ULSI e, mais recentemente, GSI 1 , para funções padronizadas como memórias, microprocessadores, sintetizadores de voz, entre outros. Esses dispostivos contêm milhares a alguns milhões de portas lógicas conectadas para operar de um modo pré- determinado. Existem muitas situações para as quais não existem soluções LSI, VLSI, ULSI e GSI. Nesses casos, o projetista se vê obrigado a recorrer aos dispositivos SSI e MSI padrões para obter as funções necessárias. O recente desenvolvimento de uma nova categoria de dispositivos, conhecidos como dispositivos lógicos programáveis 2 (PLD), ofereceu aos projetistas uma alternativa para substituir um grande número de CIs 1 GSI (giga-scale integration) – família de dispositivos com integração em giga-escala, contendo mais de 1.000.000 de portas lógicas por chip. 2 Os PLDs também são chamados dispositivos de lógica programável.

Upload: vuongminh

Post on 10-Feb-2019

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1.1. Dispositivos lógicos programáveis · EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 3 Figura 1.2 - Exemplo de programação de uma PLA. • PROM (Programmable

EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL

Lógica Programável (2004) 1

LÓGICA PROGRAMÁVEL Edith Ranzini e Edson Lemos Horta / 2000

E.T.M. / 2001 (revisão) E.T.M./2002 (revisão da parte experimental)

E.T.M./2004 (revisão)

RESUMO Nesta experiência será apresentada uma metodologia para projeto de sistemas digitais utilizando EPLD (Erasable Programmable Logic Devices). A parte experimental consiste na aplicação desta metodologia, através de um projeto-exemplo completo, desenvolvido com o auxílio da ferramenta de software MAX+PLUS II da Altera e implementado com o dispositivo lógico EPM7128SLC84-7. O objetivo principal desta experiência é a familiarização com a ferramenta de software MAX+PLUS II.

1. PARTE TEÓRICA

1.1. Dispositivos lógicos programáveis

Os dispositivos lógicos programáveis representam uma nova abordagem no processo de desenvolvimento de sistemas digitais. No passado, os projetistas tinham de usar apenas componentes digitais com "funções fixas" disponibilizados no mercado (contadores, decodificadores, deslocadores, etc). Os dispositivos programáveis permitem ao usuário definir uma função a ser desempenhado por um ou vários chips. As características mais marcantes destes dispositivos é a programabilidade e a alta capacidade, o que aumenta a eficiência e a flexibilidade dos projetos e, também, diminui o tempo de desenvolvimento do produto. (Dueck, 2001)

1.1.1. Lógica Programável

Os projetistas de circuitos digitais têm à sua disposição uma grande variedade de CIs padronizados, com as mais variadas funções. O fato destes CIs serem fabricados por várias empresas e em grande volume fazem com que tenham um custo relativamente baixo. Por esta razão, a técnica muito comum para a implementação de projetos de sistemas digitais é a interconexão destes CIs padronizados. (Tocci, 2000)

Apesar de ser amplamente empregado, a utilização de CIs padronizados na implementação de sistemas tem alguns problemas. Primeiro, alguns sistemas podem precisar de centenas ou milhares de CIs. Este grande número de CIs necessita de um espaço considerável em uma placa de circuito impresso, sem levar em conta o consumo de energia necessária para alimentá-las. Um segundo aspecto diz respeito com o tempo necessário para a montagem e testes das placas.Uma grande quantidade de CIs necessários em um sistema resultam em um tempo maior para colocar e soldar estes componentes na de circuito impresso. E a manutenção é o terceiro aspecto. Quanto maior o número de componentes, menor é a confiabilidade do sistema. Assim, o fabricante do equipamento deve manter um estoque considerável, dispondo de toda a variedade de CIs utilizados no circuito.

Uma solução para estas questões é reduzir o número de CIs usados no projeto. Com isto teremos uma série de vantagens: um menor espaço na placa, um menor consumo de energia (fontes de alimentação menores), processos de fabricação mais rápidos e baratos, maior confiabilidade e uma manutenção mais fácil.

Para reduzir o número de CIs a serem usados no projeto é necessário colocar mais e mais funções nos chips. É claro que isso tem sido feito com as tecnologias LSI, VLSI, ULSI e, mais recentemente, GSI1, para funções padronizadas como memórias, microprocessadores, sintetizadores de voz, entre outros. Esses dispostivos contêm milhares a alguns milhões de portas lógicas conectadas para operar de um modo pré-determinado. Existem muitas situações para as quais não existem soluções LSI, VLSI, ULSI e GSI. Nesses casos, o projetista se vê obrigado a recorrer aos dispositivos SSI e MSI padrões para obter as funções necessárias.

O recente desenvolvimento de uma nova categoria de dispositivos, conhecidos como dispositivos lógicos programáveis2 (PLD), ofereceu aos projetistas uma alternativa para substituir um grande número de CIs

1 GSI (giga-scale integration) – família de dispositivos com integração em giga-escala, contendo mais de 1.000.000 de portas lógicas por chip.

2 Os PLDs também são chamados dispositivos de lógica programável.

Page 2: 1.1. Dispositivos lógicos programáveis · EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 3 Figura 1.2 - Exemplo de programação de uma PLA. • PROM (Programmable

EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL

Lógica Programável (2004) 2

padronizados por um único CI. Esses dispositivos permitem especificar a sua operação lógica através de um processo chamado “programação” (Tocci 2001).

1.1.2. Programação de PLDs

A programação de PLDs envolve basicamente em manipular as estruturas internas do dispositivo. Estas estruturas internas podem ser:

• fusíveis ou antifusíveis - usados para fazer/remover um contato na formação da soma de produtos da função;

• chaves eletrônicas - implementados com transistores MOS que armazenam uma carga numa porta adicional;

• lookup tables - PLDs mais complexos incluem uma pequena memória RAM estática para armazenar a função.

Vamos ilustrar a programação de PLDs com um dispositivo simples, a PLA. Para maiores detalhes sobre as outras formas de programação consulte as referências bibliográficas do final do texto. Uma PLA possui internamente duas matrizes de portas lógicas (matriz AND e matriz OR), conforme mostrado na figura 1.1. A matriz AND gera os termos-produto a partir das variáveis de entrada. Estes termos-produto são depois conectados pelos elementos da matriz OR.

Figura 1.1 - Organização interna de uma PLA.

As matrizes AND e OR vem com todas as conexões habilitadas, que são compostas por fusíveis. Estes fusíveis devem ser queimados para desfazer as ligações. A figura 1.2 mostra um exemplo de programação. Para gerar as funções de saída:

IIIIIIIIIO 012012012o ++=

IIIIIIO 0120121 +=

A matriz AND gera os quatro termos-produto ( III 012 , III 012 , III 012 e III 012 ). E a matriz OR é usada

para implementar a soma destes termos-produto, gerando os sinais de saída O0 e O1.

1.1.3. Tipos de Dispositivos Lógicos Programáveis

Uma grande variedade de dispositivos programáveis foram desenvolvidos nos últimos tempos:3 (Tocci, 2001), (Wakerly, 2000), (Fregni e Saraiva, 1995)

3 Para maiores detalhes consulte as referências bibliográficas citadas no texto.

Page 3: 1.1. Dispositivos lógicos programáveis · EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 3 Figura 1.2 - Exemplo de programação de uma PLA. • PROM (Programmable

EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL

Lógica Programável (2004) 3

Figura 1.2 - Exemplo de programação de uma PLA.

• PROM (Programmable Read-Only Memory) – precursor dos PLDs, a PROM pode gerar qualquer função lógica possível das variáveis de entrada. Contudo é usada apenas para um pequeno número de variáveis de entrada;

• PLA ( Programmable Logic Array) – desenvolvido em meados da década de 70, foi o primeiro dispositivo programável sem a estrutura interna da PROM, pois tanto a matriz das portas AND como a matriz das portas OR podem ser programadas.Não teve boa aceitação po parte dos projetistas;

• PAL (Programmable Array Logic) – contém uma arquitetura interna similar a da PROM, sendo uma simplificação da PLA, pois apenas as conexões das entradas da matriz das portas AND são programáveis (a matriz das portas OR é fixa). É há muito tempo o tipo de dispositivo programável mais utilizado;

• GAL (Generic Array Logic) – tipo de dispositivo programável que permite a implementação de circuitos sequenciais, pois introduz a possibilidade de emular flip-flops;

• CPLD (Complex Programmable Logic Device) – combina vários dispositivos do tipo PAL em uma estrutura em forma de matriz. Os blocos lógicos têm conexões AND programáveis e conexões OR fixas. Quando necessário, vários blocos lógicos podem ser combinados para implementar;

• FPGA (Field Programmable Gate Array) – contém um grande números de blocos lógicos que podem ser programados independentemente. Esses blocos contém lógica combinatória e registradores para circuitos seqüenciais;

• Gate Array – circuitos ULSI que oferecem centenas de milhares de portas lógicas. As funções dos blocos lógicos e as interconexões entre eles são determinados nos estágios finais de fabricação do CI. Embora o seu custo individual seja bem menor que o custo da FPGA, o processo de programação feita pelo fabricante do CI faz com ue este dispositivo ainda seja uma alternativa cara. Os gate arrays são usados para o desenvolvimento de circuitos integrados dedicados a uma aplicação (ASIC – applicaton-specific integrated circuit);

Os primeiros PLDs eram programados queimando-se fusíveis. Uma vez que um fusível tenha sido queimado, ele não pode ser recuperado. Desta forma, se houver algum erro de programação ou o projeto tiver de ser modificado, um dispositivo já programado não poderá ser reaproveitado e, assim, terá de ser jogado fora. Esse problema foi estudado por diversas empresas que desenvolveram PLDs que pudem ser apagados e reprogramados. Tais dispositivos são conhecidos como dispositivos lógicos programáveis e apagáveis ou EPLDs (erasable programmable logic devices). Os EPLDs podem ser programados e apagados da mesma forma que as EEPROMs. Nesses dispositivos, os fusíveis são, na verdade, chaves eletrônicas, cujo estado (aberta ou fechada) pode ser modificado eletricamente. (Tocci, 2000)

Page 4: 1.1. Dispositivos lógicos programáveis · EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 3 Figura 1.2 - Exemplo de programação de uma PLA. • PROM (Programmable

EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL

Lógica Programável (2004) 4

Diversos fabricantes de CIs produzem PLDs como Xilinx, Lattice, Altera, entre outros. A Xilinx produz a série de FPGAs denominada XC4000, com componentes que contém de 1.000 a 180.000 portas. O maior membro da família, o XC4085XL, possui 3.136 blocos lógicos configuráveis internos, organizados em uma matriz de 56x56. A Lattice Semiconductor fabrica o GAL 16V8, cuja arquitetura é muito similar ao dos PALs. Esse dispositivo tem a característica de poder ser um substituto compatível pino-a-pino genérico da maioria de PALs existentes.

A Altera produz a famíla de CPLDs MAX7000S, cujo diagrama de blocos é apresentado na figura 1.3. A principal estrutura do MAX7000S é uma série de Blocos de Matriz Lógica (LABs - logic array blocks), inteconectados entre si por uma Matriz de Interconexão Programável (PIA - programmable interconnect array). Cada LAB é, na realidade, composto por um grupo de 16 macrocélulas, que podem compartilhar os termos-produto das suas variáveis. (Duech,2001)

O CPLD EPM7128S84 é um membro da famíla da Altera e sua identificação tem o seguinte significado:

• EPM7 família MAX7000 • 128 número de macrocélulas • S programação "in-circuit" (quando instalado na placa do circuito) • LC84 empacotamento PLCC de 84 pinos

O EPM7128SLC84 contém 2.500 portas utilizáveis, 128 macrocélulas, 8 LABs, 8 pinos de I/O por LAB (totalizando 64 pinos de I/O).

Na prática o EPM7128SLC84 deve ser programado na própria placa de circuito, através de quatro pinos dedicados para a interface de programação. As macrocélulas que não forem conectados a um pino de I/O de usuário apenas poderá ser usado como um módulo de lógica interna da PLD. Uma macrocélula é similar a um GAL, pois ela fornece uma função de soma de produtos como sinal de saída.

Figura 1.3 - Diagrama de Blocos do CPLD MAX7000S da Altera.

Como exemplos de PLDs da Altera mais modernos, podemos citar as famílias FLEX 10K e APEX 20K. Os membros da famíla FLEX 10K contém de 10.000 a 250.000 portas e de 6.144 a 40.960 bits de memória RAM. Já a família APEX 20K apresenta até 1,5 milhões de portas e 442.368 bits de memória RAM. O dispositivo EP20K1500E contém 3.456 macrocélulas e até 808 pinos de I/O de usuário.

Page 5: 1.1. Dispositivos lógicos programáveis · EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 3 Figura 1.2 - Exemplo de programação de uma PLA. • PROM (Programmable

EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL

Lógica Programável (2004) 5

1.2. Metodologia de Projeto de Sistemas Digitais Para que um sistema digital possa ser implementado eficientemente através de EPLDs, é necessário adotar uma determinada metodologia. A mesma pode ser descrita através do fluxograma mostrado na figura 1.4 abaixo.

DEFINIÇÃO

DESCRIÇÃO

AVALIAÇÃO

SÍNTESE

SIMULAÇÃO

OK?

N S

OK?

N

S

FIM

INÍCIO

Figura 1.4 – Metodologia de Projeto de Sistemas Digitais.

Na primeira etapa (DEFINIÇÃO) o sistema digital (SD) é particionado em dois blocos distintos: o Fluxo de Dados (FD) e a Unidade de Controle (UC).

No FD (figura 1.5) são encontrados os elementos responsáveis pela transformação e/ou armazenamento dos dados do SD (registradores, multiplexadores, portas lógicas, etc).

SCm

Dados de Entrada

SC1

FD

PORTAS, REGS,MUX,...

Dados de Saída

.

.

.

.

Condição 1

.

.

.

.Condição n

SC – Sinal de Controle

Figura 1.5 - Fluxo de Dados de um Sistema Digital.

Na UC (figura 1.6) estão os sinais de entrada e saída responsáveis pelo controle dos elementos do FD, assim como os sinais de entrada e saída do próprio SD.

Page 6: 1.1. Dispositivos lógicos programáveis · EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 3 Figura 1.2 - Exemplo de programação de uma PLA. • PROM (Programmable

EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL

Lógica Programável (2004) 6

Início

SC1

UC

Máquina de Estados

Pronto

.

.

.

SC2

SCm

Condição 1

.

.

.

. Condição n

Figura 1.6 - Unidade de Controle de um Sistema Digital.

O Sistema Digital (SD) completo pode ser visto na figura 1.7.

Condição1

.

.

.SCm

Dados de Entrada

SC1SC2

Dados de Saída

FD

PORTAS, REGS,MUX,...

Início

UC Máquina de Estados

Pronto

SD

Condiçãon

.

.

.

Figura 1.7 - Sistema Digital Completo.

Na etapa seguinte (DESCRIÇÃO) são gerados os algoritmos responsáveis pelo funcionamento de cada uma das partes definidas na primeira etapa.

Na AVALIAÇÃO é feita uma simulação do comportamento do SD, com o objetivo de corrigir possíveis erros de concepção do projeto.

Na SÍNTESE, cada um dos blocos do SD é transformado em elementos de hardware, para serem implementados fisicamente.

Na SIMULAÇÃO, estes elementos de hardware são testados para verificar se a implementação do SD está funcionando de acordo com a especificação inicial do projeto.

Page 7: 1.1. Dispositivos lógicos programáveis · EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 3 Figura 1.2 - Exemplo de programação de uma PLA. • PROM (Programmable

EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL

Lógica Programável (2004) 7

1.3. Aplicação da metodologia de projeto utilizando a ferramenta MAX+PLUS II

A metodologia vista no item 3 pode ser automatizada através do uso de ferramentas de CAD (Projeto Assistido por Computador). Uma destas ferramentas é a MAX+PLUS II, da Altera, utilizada na descrição, compilação, simulação e programação de sistemas digitais implementados através de EPLDs. Essa ferramenta está disponível na Internet, e, no Anexo 3, estão as instruções sobre a obtenção de autorização para utiliza-la.

Como mostrado na figura 1.8, as etapas de síntese e simulação do SD vistas no item anterior podem ser divididas em: entrada de dados, compilação e simulação. Após a simulação pode-se implementar fisicamente o SD, através da gravação das EPLDs.

OK?

N

S

ENTRADA DEDADOS

COMPILAÇÃO

SIMULAÇÃO

PROGRAMAÇÃO

Figura 1.8 – Metodologia de Projeto de SD com o MAX+PLUS II.

A ENTRADA DE DADOS pode ser realizada de três maneiras distintas:

• Diagrama Lógico (Captura Esquemática) - neste modo, o projetista tem duas opções para descrever o projeto. Na primeira opção, o MAX+PLUS II permite a importação de arquivos construídos com outras ferramentas, como, por exemplo, OrCAD. Na segunda opção, que é a mais utilizada, o MAX+PLUS II disponibiliza um aplicativo denominado Editor Gráfico. Os símbolos utilizados no diagrama lógico podem ser obtidos de uma biblioteca padrão, ou podem ser gerados pelo próprio projetista, a partir de outros projetos já implementados, permitindo a descrição de forma hierárquica de um sistema digital. A biblioteca padrão do Editor Gráfico possui símbolos que representam todos os circuitos integrados da família 74XX, permitindo que um projetista familizarizado com estes componentes descreva o sistema digital de maneira mais rápida e eficiente. É importante salientar que estes símbolos apenas implementam as funções lógicas de um 74XX em uma EPLD, não possuindo nenhuma outra característica física dos CIs comerciais (pinagem, tempos de propagação, consumo, etc), pois estas últimas serão determinadas pelo tipo de EPLD na qual o sistema será implementado. Além destes símbolos que representam a família 74XX, o MAX+PLUS II também possui bibliotecas com funções lógicas básicas (flip-flops, portas lógicas, etc) e avançadas (contadores especiais, microprocessadores, etc), sendo que estas últimas bibliotecas devem ser adquiridas de terceiros.

• Arquivo Texto - este modo permite a descrição de um sistema digital através de linguagens de descrição de hardware (HDL). O MAX+PLUS II aceita três tipos de HDLs: AHDL, que é uma linguagem proprietária da ALTERA; Verilog e VHDL, que são linguagens padronizadas pelo IEEE, utilizadas mundialmente.

A ferramenta MAX+PLUS II possui um Editor de Textos para apoiar essa forma de descrição do SD.

Page 8: 1.1. Dispositivos lógicos programáveis · EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 3 Figura 1.2 - Exemplo de programação de uma PLA. • PROM (Programmable

EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL

Lógica Programável (2004) 8

• Formas de Onda - este modo permite que o projetista descreva o comportamento de um sistema digital através do desenho das formas de onda na entrada e na saída do mesmo. Este recurso é utilizado apenas quando o SD é simples e "bem comportado" (por exemplo, um contador síncrono). A descrição é feita através de um Editor de Formas de Ondas.

Na COMPILAÇÃO, o projetista determina qual será a EPLD que deverá implementar o sistema digital e o MAX+PLUS II procura seguir esta diretriz. Caso não consiga, é fornecida uma mensagem de erro, e projetista pode optar por escolher outra EPLD para implementar o seu sistema, ou deixar que a ferramenta implemente o projeto em mais de uma EPLD do tipo escolhido. A compilação também é responsável pela geração de todos os arquivos necessários à simulação e programação da EPLD. Existe também a opção do sistema escolher automaticamente a EPLD mais adequada.

Na SIMULAÇÃO, é possível descrever cada uma das formas de onda de entrada do SD e observar as formas de onda de saída, geradas pela ferramenta. Com isto o projetista consegue verificar o funcionamento do SD antes de implementá-lo fisicamente, corrigindo eventuais erros que possam ter ocorrido no projeto. Para a simulação também é utilizado o Editor de Formas de Ondas.

Na PROGRAMAÇÃO, os arquivos gerados pela compilação são transferidos para a EPLD, programando a mesma para funcionar de acordo com o projeto descrito anteriormente. Esta transferência pode ser feita através de programadores de componentes ou cabos especiais, conectados ao PC.

Para a projeto do SD através da ferramenta MAX+PLUS II, será adotada a seguinte nomenclatura para os arquivos de projeto:

• Fluxo de Dados : ................ nome_do_projeto__FD

• Unidade de Controle : ......... nome_do_projeto__UC

• Sistema Digital Completo : .. nome_do_projeto__SD

Então, por exemplo, para um SD denominado MULTI, há os seguintes “projetos” :

• MULTI_FD (Fluxo de Dados);

• MULTI_UC (Unidade de Controle);

• MULTI_SD (Sistema Digital Completo).

Page 9: 1.1. Dispositivos lógicos programáveis · EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 3 Figura 1.2 - Exemplo de programação de uma PLA. • PROM (Programmable

EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL

Lógica Programável (2004) 9

2. PARTE EXPERIMENTAL Nesta experiência será solicitado o desenvolvimento de um sistema digital (simples), utilizando a metodologia descrita na seção 1.3 da parte teórica. Antes disto, um pequeno projeto-exemplo deverá ser utilizado para a familiarização da metodologia de projeto e dos procedimentos para o uso do software MAX+PLUS II. Os procedimentos para o uso do MAX+PLUS II estão descritos no documento “Projeto de Circuitos com MAX+PLUS II” (disponível na página web do curso e também na bancada do laboratório digital).

2.1. Atividade Pré-Laboratório Execute, durante a elaboração do planejamento, os passos indicados no documento “Projeto de Circuitos com MAX+PLUS II” para o desenvolvimento do projeto-exemplo que está mostrado nele. Execute os passos relativos ao desenvolvimento do Fluxo de Dados, da Unidade de Controle e do Sistema Digital completo. Copie em um disquete os arquivos .gdf (circuito esquemático) e .scf (simulação).

2.2. Desenvolvimento do Projeto-Exemplo

a) No laboratório digital, copie os arquivos do projeto-exemplo e reexecute a compilação e a simulação no computador da bancada.

b) A seguir, faça a programação do circuito na EPLD EPM7128SLC84-7, disponível no painel de montagem, seguindo o procedimento descrito no documento “Projeto de Circuitos com MAX+PLUS II”.

c) A seguir, execute o teste do circuito ligando as entradas em chaves e botões e as saídas em leds e/ou displays. Teste todas as situações de acordo com o diagrama ASM da unidade de controle.

d) Depois dos testes acima, execute o seguinte caso específico: acione simultaneamente os sinais M1 e M2. Qual o registrador tem seu valor mostrado na saída? Explique o ocorrido.

PERGUNTAS PARA RESPONDER NO RELATÓRIO:

1. O funcionamento do circuito segue a descrição do diagrama ASM? Em caso negativo, qual(is) situação(ões) difere(m)?

2. Como a representação em AHDL do diagrama ASM da unidade de controle pode ser modificada para dar prioridade ao sinal M2 sobre o sinal M1?

2.3. Detector de Padrões

Neste item deverá ser desenvolvido um sistema digital simples, especificado abaixo, com auxílio do MAX+PLUS II.

2.3.1. Especificação

O circuito Detector de Padrões faz uma busca da ocorrência de um padrão de bits dentro dos dados de entrada. Se encontrar, aciona a saída ENCONTROU e apresenta a posição do bit inicial dentro do dado de entrada na saída POSIÇÃO. Um exemplo é mostrado na figura 2.1.

Figura 2.1 – Exemplo de funcionamento do detector de padrões.

Projetar o Sistema Digital completo, esquematizado na figura 2.2, com o seguinte comportamento:

1. Acerta os 8 bits de DADOS nas chaves CH0 a CH7 e aciona ENTRA.

2. Acerta os 3 bits do PADRÃO nas chaves CH0 a CH2 e aciona novamente ENTRA.

00001110

7 0

DADO

111PADRÃO

001 POSIÇÃO

Page 10: 1.1. Dispositivos lógicos programáveis · EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 3 Figura 1.2 - Exemplo de programação de uma PLA. • PROM (Programmable

EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL

Lógica Programável (2004) 10

3. Depois de acionado o botão INICIAR, o SD deve buscar a primeira ocorrência do PADRÃO de bits dentro dos bits de DADOS. Se encontrar, aciona o sinal ENCONTROU e acerta a saída POSIÇÃO. Em caso contrário, a saída POSIÇÃO deve manter-se igual a zero.

Figura 2.2 – Detector de padrões.

2.3.2. Sugestão para o Projeto

a) Esse projeto pode ser realizado dividindo o sistema em duas partes: o FD e a UC.

b) Uma estratégia, que pode ser adotada em linhas gerais, é a seguinte:

- A via contendo DADOS é armazenada em um registrador deslocador de 8 bits, ao ser acionado o botão ENTRA;

- Os 3 bits menos significativos da via contendo DADOS é armazenada em um registrador de 3 bits, ao ser acionado o botão ENTRA pela segunda vez;

- Os 3 bits menos significativos dos DADOS devem ser comparados com os bits do PADRÃO. Se a comparação resultar na igualdade dos bits, acionam-se as saídas adequadas e o processamento termina.

- Caso contrário, o processo continua, deslocando-se para a direta o conteúdo do registrador de deslocamento e comparando-se novamente com o PADRÃO;

- O processo se encerra quando todos os bits tiverem sido comparados.

2.3.3. Desenvolvimento do Projeto

a) Siga os passos principais da metodologia de projeto apresentada nesta experiência, desenvolvendo o FD, a UC e o SD para o Detector de Padrões.

b) Faça as simulações necessárias para demonstrar a corretude do projeto.

c) Programe o circuito final no dispositivo programável e teste-o no painel de montagem.

Neste item deverá ser desenvolvido um circuito, especificado abaixo, com auxílio do MAX+PLUS II.

3. PLANEJAMENTO E RELATÓRIO

O planejamento do grupo deve conter, ao menos, os seguintes itens: • Diagrama lógico do circuito do fluxo de dados do detector de padrões; • Diagrama ASM ou de estados para a unidade de controle do detector de padrões; • Plano de depuração do FD, da UC e do circuito final, contendo os dados de teste; • Cartas de tempo com a simulação do funcionamento de cada uma das partes do circuito; • Descrição detalhada do funcionamento do circuito detector de padrões.

O relatório deverá conter todo o procedimento experimental executado no laboratório, realçando os resultados obtidos.

POSIÇÃO

Detectorde

Padrões

ENTRA

3

ENCONTROU8

DADOS

INICIAR

3

PADRÃOPOSIÇÃO

Detectorde

Padrões

ENTRA

3

ENCONTROU8

DADOS

INICIAR

3

PADRÃO

Page 11: 1.1. Dispositivos lógicos programáveis · EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 3 Figura 1.2 - Exemplo de programação de uma PLA. • PROM (Programmable

EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL

Lógica Programável (2004) 11

4. BIBLIOGRAFIA 1. Apostilas de laboratório utilizadas na PUC-SP e na FEI. 2. Manuais da Altera 3. RANZINI, E.; HORTA, E.L.; MIDORIKAWA, E.T. Projeto de circuitos com MAX+PLUS II. Apostila de

PCS2308/2355. Departamento de Engenharia de Computação e Sistemas Digitais, Escola Politécnica da USP. 2002.

4. WAKERLY, J. F. Digital design: principles and practice. New Jersey: Prentice- Hall, 2000. 5. MANO, M. M.; KIME, C. R. Logic and computer design fundamentals. 3rd ed., New Jersey: Prentice

Hall, 2004. 6. GAJSKI, D. D. Principles of digital design. New Jersey: Prentice Hall, 1997. 7. SALCIC, Z.; SMAILAGIC, A. Digital systems design and prototyping using field programmable

logic. Boston: Kluver Academic Publishers, 1998. 8. FREGNI, E. & SARAIVA, A. M. Engenharia do projeto lógico digital: conceitos e prática. Edgard

Blücher, 1995. 9. TOCCI, R. J.& WIDMER, N. S. Sistemas digitais: princípios e aplicações. 7a ed., LTC, 2000. 10. TOCCI, R. J.& WIDMER, N. S. Digital systems: principles and applications. 9th ed., Prentice-Hall, 2004. 11. DUECK, R. K. Digital design with CPLD applications and VHDL. Delmar, 2001. 12. ERCEGOVAC, M.; LANG, T.; MORENO, H. M. Introdução aos sistemas digitais. Bookman, 2000.

5. RECURSOS NECESSÁRIOS • 1 painel de montagem.

• 1 fonte de alimentação fixa, 5V ± 5%, 4A.

• 1 placa MAX7-PCS, com cabo para interface paralela.

• 1 computador PC 486, com 16 Mb, HD de 1 Gb.

• 1 impressora.

Page 12: 1.1. Dispositivos lógicos programáveis · EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 3 Figura 1.2 - Exemplo de programação de uma PLA. • PROM (Programmable

EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL

Lógica Programável (2004) 12

ANEXO 1

RESUMO - DIAGRAMA ASM

(VERSÃO PRELIMINAR)

ASM – Algorithmic State Machine

Introdução ASM é um fluxograma através do qual se representa a seqüência de ações que a unidade de controle de um sistema digital deve realizar, para se obter o comportamento especificado.

As ações realizadas dependem das entradas externas do sistema digital e também de condições que traduzem a situação em que se encontram a própria unidade de controle e o fluxo de dados. Na verdade, ASM é uma representação gráfica do algoritmo que descreve o comportamento do sistema digital, OU seja, é uma ferramenta para descrever a “máquina de estados” de forma mais completa do que os diagramas de estados apresentados na disciplina PCS-214 (naquela disciplina, os circuitos seqüenciais, que são a realização física das máquinas de estado, eram muito simples e, geralmente, possuíam apenas uma entrada).

Um fluxograma ASM parece semelhante aos fluxogramas convencionais, mas deve ser interpretado de outra maneira. Nos fluxogramas convencionais há apenas a descrição dos passos a serem seguidos e as decisões a serem tomadas, sem nenhuma relação com a variável tempo. Já nos diagramas ASM, além da descrição da seqüência dos eventos há as relações temporais entre os estados da unidade de controle e as ações que ocorrem, em cada estado, em resposta às bordas do CLOCK.

Uma metodologia alternativa para o Diagrama ASM, para representar “máquinas de estados”, são as Redes de Petri, assunto que será apresentado na disciplina “Organização de Sistemas Digitais”.

O Diagrama ASM O diagrama ASM contém três elementos básicos

• o bloco de estado;

• o bloco de decisão;

• o bloco de saída condicional.

Na figura A.1 estes três blocos são mostrados.

Descrição dos blocos Bloco do estado: o nome do estado é colocado externamente ao bloco e, dentro do mesmo, aparecem as ações a serem tomadas. No exemplo da figura A.1 (a), no estado So o registrador R deve ser limpo sincronamente com qualquer clock que ocorra enquanto em So, e a variável COMEÇA deve assumir o valor 1, enquanto em So. Observe que a variável COMEÇA deve assumir o valor Zero em todos os estados onde ela não aparece dentro do bloco. Bloco de decisão: representa o efeito das entradas, na seqüência de controle. A condição mostrada na figura A.1 (b) tanto pode ser expressa por uma única variável como por uma expressão booleana. Os dois caminhos referem-se aos 2 possíveis valores que a condição pode assumir.

Page 13: 1.1. Dispositivos lógicos programáveis · EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 3 Figura 1.2 - Exemplo de programação de uma PLA. • PROM (Programmable

EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL

Lógica Programável (2004)

Figura A.1 – Elementos do ASM.

Bloco de Saída Condicional: este bloco é característico dos fluxogramas ASM e não existe umnos fluxogramas convencionais . A entrada de um bloco de saída condicional sempre deve se odas saídas de um bloco de decisão. Na figura A.1 (c) apresenta-se um exemplo. Se o ASM esSo, a cada pulso de Clock o registrador R é limpo. Já o registrador PC também é limpo no estapenas se o sinal INÍCIO for igual a 1. Bloco ASM: é o conjunto construído com um bloco de estado e todos os blocos de decisãocondicionais que ficam entre a saída do bloco de estado e a entrada do mesmo bloco ou de umde estado. Ver figura A.2. A cada borda de subida, as condições dos blocos de decisão são examinadas e, dependendo doou 1), segue-se para o estado seguinte indicado. No exemplo da figura A2, enquanto o sinal diagrama fica no estado S0. Se, num instante qualquer, o sinal INICIO=1, na primeira borda dCLOCK o ASM mudará de estado. Nessa mesma borda também é examinado o sinal Q0 , atradecide-se se o estado seguinte é S1 ou S2 . Independentemente de ser S1 ou S2 , ao mudar sinal AVAIL vai para ZERO. Observar que a saída condicional só ocorre se INICIO = 1. Pode-se comparar os diagramas ASM, com os diagramas de estado tipo MEALY e tipo MOOREusam os blocos de saída condicional, tudo se passa como se a solução adotada fosse do tipo opção for MOORE, os blocos de saída condicional são desnecessários.

1

De um bloco de decisão

S0

10

(a) Bloco de estado com exemplo.

Código Binário Nome

Ações

000S0

R 0

COMEÇA Condição

(b) Bloco de decisão

R 0

INÍCIO

PC 0 Ações

0

.

(c) Bloco de saída condicional com

13

equivalente riginar numa tá no estado ado So, mas

e de saídas outro bloco

seu valor (0 INICIO=0, o e subida do vés do qual

de estado, o

. Quando se MEALY. Se a

Page 14: 1.1. Dispositivos lógicos programáveis · EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 3 Figura 1.2 - Exemplo de programação de uma PLA. • PROM (Programmable

EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL

Lógica Programável (2004) 14

O projeto do circuito lógico descrito por um diagrama ASM é facilitado quando todos os módulos seqüenciais (flip-flops, contadores, registradores, etc) forem do tipo “com enable”. Maiores detalhes encontram-se nas referências bibliográficas (4) e (5).

Figura A.2 – Bloco ASM.

S2S1

10

S0

AVAIL

INÍCIO

PC 0

Q0

Page 15: 1.1. Dispositivos lógicos programáveis · EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 3 Figura 1.2 - Exemplo de programação de uma PLA. • PROM (Programmable

EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL

Lógica Programável (2004) 15

ANEXO 2

PLACA MAX7-PCS

Page 16: 1.1. Dispositivos lógicos programáveis · EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 3 Figura 1.2 - Exemplo de programação de uma PLA. • PROM (Programmable

EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL

Lógica Programável (2004) 16

ANEXO 3

LIBERAÇÃO DO SW MAX+PLUS II Antes de iniciar este procedimento, é preciso instalar4 o software e anotar o número de série do HD no qual ele foi instalado. Para saber o número de série do HD basta digitar, no prompt do DOS, o seguinte comando: "vol c:". O número de série do HD é o número de série do volume.

Para obter a licença, deve ser seguido o procedimento abaixo.

1 - Acessar a página da Internet:

http://www.altera.com/support/licensing/lic-university.html

2 - Na página em questão, selecionar o campo referente ao MAX+PLUS II (versão 10):

Select the product you wish to license:

Quartus II & MAX+PLUS II software for University Program members ( ) I have one or more software guards ( ) I have a PC or UNIX license server

MAX+PLUS II Student Edition software Note (1) (X) Version 10.2, 10.1 or 9.23 ( ) Version 7.21

Quartus II Web Edition software for Verilog CBT Users ( ) Version 1.1

3 - Clicar no CONTINUE.

4 - Preencher o campo com o número de série do HD:

Quartus & MAX+PLUS II Licensing You selected the MAX+PLUS II version 9.23 Student Edition software. Fill out the following information and click the Continue button. Enter your hard disk volume serial number: XXXX-XXXX

Este número de série pode ser obtido na janela de comando do MS-DOS, executando-se o comando dir/p.

5 - Clicar no CONTINUE.

6 - Preencher a página com os seus dados pessoais e os seguintes campos:

School: POLI-PCS Course title: PCS2355 Laboratorio Digital Course instructor: EDITH RANZINI/EDSON MIDORIKAWA Current education level: junior Source of software: OTHER

7 - Clicar no CONTINUE.

4 Há cópias, para empréstimos, na sala C2-43. O software também pode ser baixado diretamente da Internet.

Page 17: 1.1. Dispositivos lógicos programáveis · EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 3 Figura 1.2 - Exemplo de programação de uma PLA. • PROM (Programmable

EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL

Lógica Programável (2004) 17

Após este procedimento, dentro de algumas horas será enviado para o endereço de e-mail fornecido no item anterior o arquivo com a licença do software.

8 - Liberar a utilização do software

Gravar o arquivo recebido via e-mail no diretório de trabalho do MAX+PLUS II (por exemplo: C:\MAXPLUS2) e, através da opção MAX+PLUS II - OPTIONS - LICENSE SETUP, do SW, informar, através do botão BROWSE, a localização deste arquivo.

Page 18: 1.1. Dispositivos lógicos programáveis · EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL Lógica Programável (2004) 3 Figura 1.2 - Exemplo de programação de uma PLA. • PROM (Programmable

EPUSP - PCS 2308/2355 - LABORATÓRIO DIGITAL

Lógica Programável (2004) 18

ANEXO 4 GLOSSÁRIO

AHDL - Altera Hardware Description Language

ASIC - Application Specific Integrated Circuit

CPLD - Complex Programmable Logic Device

EDIF - Eletronic Design Interchange Format (Formato padrão industrial para transferência de arquivos de projetos de circuitos)

EPLD - Erasable Programmable Logic Device

FPGA - Field Programmable Gate Array

FPLD - Field Programmable Logic Device

GAL - Generic Array Logic

HDL - Hardware Description Language

JEDEC - Joint Electron Device Engineering Council (Formato padrão para transferência de informações entre o sistema onde o projeto foi desenvolvido e o programador do dispositivo.)

MPGA - Mask Programmable Gate Array

MPLD - Mask Programmable Logic Device

PAL - Programmable Array Logic

PLA - Programmable Logic Array

PLD - Programmable Logic Device

PLS - Programmable Logic Sequencer

PSA - Programmable Sequencial Array

VERILOG - Linguagem HDL da empresa Verilog

VHDL - Very High Speed Integrated Circuits Hardware Description Language

VHSIC - Very High Speed Integrated Circuits