13
EPUSP - PCS 2021/2308/2355 - LABORATÓRIO DIGITAL Introdução aos Dispositivos Lógicos Programáveis (2011) 1 Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS PROGRAMÁVEIS Edith Ranzini e Edson Lemos Horta / 2000 E.T.M. / 2001 (revisão) E.T.M. / 2011 (revisão) 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 são 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. 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 faz 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, 2007) 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 padronizados por um único CI. Esses dispositivos permitem especificar a sua operação lógica através de um processo chamado “programação” (Tocci, 2007). 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. 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.

Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS ...labdig/pdffiles_2011/intro-fpga.pdf · Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS PROGRAMÁVEIS Edith Ranzini

Embed Size (px)

Citation preview

Page 1: Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS ...labdig/pdffiles_2011/intro-fpga.pdf · Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS PROGRAMÁVEIS Edith Ranzini

EPUSP - PCS 2021/2308/2355 - LABORATÓRIO DIGITAL

Introdução aos Dispositivos Lógicos Programáveis (2011) 1

Resumo teórico

INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS PROGRAMÁVEIS

Edith Ranzini e Edson Lemos Horta / 2000 E.T.M. / 2001 (revisão) E.T.M. / 2011 (revisão)

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 são 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. 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 faz 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, 2007)

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 padronizados

por um único CI. Esses dispositivos permitem especificar a sua operação lógica através de um processo chamado

“programação” (Tocci, 2007).

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.

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: Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS ...labdig/pdffiles_2011/intro-fpga.pdf · Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS PROGRAMÁVEIS Edith Ranzini

EPUSP - PCS 2021/2308/2355 - LABORATÓRIO DIGITAL

Introdução aos Dispositivos Lógicos Programáveis (2011) 2

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.3. Tipos de Dispositivos Lógicos Programáveis

Uma grande variedade de dispositivos programáveis foi desenvolvida nos últimos tempos:3 (Tocci, 2007), (Wakerly,

2006), (Fregni e Saraiva, 1995)

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;

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

Page 3: Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS ...labdig/pdffiles_2011/intro-fpga.pdf · Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS PROGRAMÁVEIS Edith Ranzini

EPUSP - PCS 2021/2308/2355 - LABORATÓRIO DIGITAL

Introdução aos Dispositivos Lógicos Programáveis (2011) 3

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

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úmero 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, 2007)

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.2. 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)

Page 4: Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS ...labdig/pdffiles_2011/intro-fpga.pdf · Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS PROGRAMÁVEIS Edith Ranzini

EPUSP - PCS 2021/2308/2355 - LABORATÓRIO DIGITAL

Introdução aos Dispositivos Lógicos Programáveis (2011) 4

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.2 - 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: Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS ...labdig/pdffiles_2011/intro-fpga.pdf · Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS PROGRAMÁVEIS Edith Ranzini

EPUSP - PCS 2021/2308/2355 - LABORATÓRIO DIGITAL

Introdução aos Dispositivos Lógicos Programáveis (2011) 5

2. UMA METODOLOGIA DE PROJETO DE SISTEMAS DIGITAIS

Para que um sistema digital possa ser implementado eficientemente através de PLDs, é necessário adotar uma

determinada metodologia. A mesma pode ser descrita através do fluxograma mostrado na figura 2.1 abaixo.

DEFINIÇÃO

DESCRIÇÃO

AVALIAÇÃO

SÍNTESE

SIMULAÇÃO

OK

?

N S

OK

?

N

S

FIM

INÍCIO

Figura 2.1 – 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 2.2) 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 2.2 - Fluxo de Dados de um Sistema Digital.

Na UC (figura 2.3) 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: Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS ...labdig/pdffiles_2011/intro-fpga.pdf · Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS PROGRAMÁVEIS Edith Ranzini

EPUSP - PCS 2021/2308/2355 - LABORATÓRIO DIGITAL

Introdução aos Dispositivos Lógicos Programáveis (2011) 6

Início

SC1

UC

Máquina de Estados

Pronto

.

.

.

.

SC2

SCm

Condição 1

.

.

.

.

Condição n

Figura 2.3 - Unidade de Controle de um Sistema Digital.

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

Condição1

.

.

. SCm

Dados de Entrada

SC1

SC2

Dados de Saída

FD

PORTAS,

REGS,MUX,...

Início

UC Máquina de

Estados

Pronto

SD

Condiçãon

.

.

.

Figura 2.4 - 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: Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS ...labdig/pdffiles_2011/intro-fpga.pdf · Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS PROGRAMÁVEIS Edith Ranzini

EPUSP - PCS 2021/2308/2355 - LABORATÓRIO DIGITAL

Introdução aos Dispositivos Lógicos Programáveis (2011) 7

3. PROJETO UTILIZANDO A FERRAMENTA QUARTUS 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 é o Quartus II, da Altera, utilizada na descrição, compilação, simulação e

programação de sistemas digitais implementados através de PLDs. Essa ferramenta está disponível na Internet.

Como mostrado na figura 3.1, 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

programação das PLDs.

OK

?

N

S

ENTRADA DE

DADOS

COMPILAÇÃO

SIMULAÇÃO

PROGRAMAÇÃO

Figura 3.1 – Metodologia de Projeto de SD com o Quartus 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 Quartus 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 Quartus 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 PLD, 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

PLD 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 Quartus 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 Quartus II possui um Editor de Textos para apoiar essa forma de descrição do SD.

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.

Page 8: Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS ...labdig/pdffiles_2011/intro-fpga.pdf · Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS PROGRAMÁVEIS Edith Ranzini

EPUSP - PCS 2021/2308/2355 - LABORATÓRIO DIGITAL

Introdução aos Dispositivos Lógicos Programáveis (2011) 8

Na COMPILAÇÃO, o projetista determina qual será a PLD que deverá implementar o sistema digital e o Quartus II

procura seguir esta diretriz. Caso não consiga, é fornecida uma mensagem de erro, e projetista pode optar por escolher

outra PLD para implementar o seu sistema, ou deixar que a ferramenta implemente o projeto em mais de uma PLD 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 PLD. Existe também a opção do sistema escolher automaticamente a PLD 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 PLD, 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.

4. BIBLIOGRAFIA

1. Manuais da Altera

2. WAKERLY, J. F. Digital design: principles and practice. 4th

ed., Prentice- Hall, 2006.

3. KIME, C. R.; MANO, M. M. Logic and computer design fundamentals. 3rd

ed., Prentice Hall, 2003.

4. GAJSKI, D. D. Principles of digital design. Prentice Hall, 1997.

5. FREGNI, E. & SARAIVA, A. M. Engenharia do Projeto Lógico Digital: conceitos e prática.

Edgard Blücher, 1995.

6. TOCCI, R.J.; WIDMER, N.S.; MOSS, G.L. Digital Systems: principles and applications. 10th

ed.,

Prentice-Hall, 2007.

7. DUECK, R. K. Digital Design with CPLD Applicatons and VHDL. Delmar, 2001.

8. ERCEGOVAC, M.; LANG, T.; MORENO, H. M. Introdução aos Sistemas Digitais. Bookman, 2000.

Page 9: Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS ...labdig/pdffiles_2011/intro-fpga.pdf · Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS PROGRAMÁVEIS Edith Ranzini

EPUSP - PCS 2021/2308/2355 - LABORATÓRIO DIGITAL

Introdução aos Dispositivos Lógicos Programáveis (2011) 9

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 10: Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS ...labdig/pdffiles_2011/intro-fpga.pdf · Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS PROGRAMÁVEIS Edith Ranzini

EPUSP - PCS 2021/2308/2355 - LABORATÓRIO DIGITAL

Introdução aos Dispositivos Lógicos Programáveis (2011) 10

Figura A.1 – Elementos do ASM.

Bloco de Saída Condicional: este bloco é característico dos fluxogramas ASM e não existe um equivalente nos

fluxogramas convencionais. A entrada de um bloco de saída condicional sempre deve se originar numa das saídas de

um bloco de decisão. Na figura A.1 (c) apresenta-se um exemplo. Se o ASM está no estado So, a cada pulso de Clock o

registrador R é limpo. Já o registrador PC também é limpo no estado So, mas apenas 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ão e de saídas condicionais que

ficam entre a saída do bloco de estado e a entrada do mesmo bloco ou de um outro bloco de estado. Ver figura A.2.

A cada borda de subida, as condições dos blocos de decisão são examinadas e, dependendo do seu valor (0 ou 1), segue-

se para o estado seguinte indicado. No exemplo da figura A2, enquanto o sinal INICIO=0, o diagrama fica no estado S0.

Se, num instante qualquer, o sinal INICIO=1, na primeira borda de subida do CLOCK o ASM mudará de estado. Nessa

mesma borda também é examinado o sinal Q0, através do qual decide-se se o estado seguinte é S1 ou S2 .

Independentemente de ser S1 ou S2 , ao mudar de estado, o 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 MOORE. Quando se usam os

blocos de saída condicional, tudo se passa como se a solução adotada fosse do tipo MEALY. Se a opção for MOORE,

os blocos de saída condicional são desnecessários.

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”.

1 0

(c) Bloco de saída condicional (com exemplo).

De um bloco de decisão

S0

1 0

(a) Bloco de estado (com exemplo).

Código

Binário Nome

Ações

000 S0

R 0

COMEÇA

Condição

(b) Bloco de decisão.

R 0

INÍCIO

PC 0 Ações

Page 11: Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS ...labdig/pdffiles_2011/intro-fpga.pdf · Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS PROGRAMÁVEIS Edith Ranzini

EPUSP - PCS 2021/2308/2355 - LABORATÓRIO DIGITAL

Introdução aos Dispositivos Lógicos Programáveis (2011) 11

Maiores detalhes encontram-se na referência bibliográfica (Kime & Mano, 2003).

Figura A.2 – Bloco ASM.

S2 S1

1 0

S0

AVAIL

INÍCIO

PC 0

Q0

Page 12: Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS ...labdig/pdffiles_2011/intro-fpga.pdf · Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS PROGRAMÁVEIS Edith Ranzini

EPUSP - PCS 2021/2308/2355 - LABORATÓRIO DIGITAL

Introdução aos Dispositivos Lógicos Programáveis (2011) 12

ANEXO 2

PLACA MAX7-PCS

Foi desenvolvida uma placa que pode ser integrada ao painel de montagens experimentais do Laboratório Digital.

Abaixo encontramos um esquema da placa MAX7-PCS.

Page 13: Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS ...labdig/pdffiles_2011/intro-fpga.pdf · Resumo teórico INTRODUÇÃO AOS DISPOSITIVOS LÓGICOS PROGRAMÁVEIS Edith Ranzini

EPUSP - PCS 2021/2308/2355 - LABORATÓRIO DIGITAL

Introdução aos Dispositivos Lógicos Programáveis (2011) 13

ANEXO 3

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 (Linguagem de Descrição de Hardware)

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

VHDL - VHSIC Hardware Description Language

VHSIC - Very High Speed Integrated Circuits