SlideShare uma empresa Scribd logo
1 de 78
Baixar para ler offline
ATUALIZAÇÃO TECNOLÓGICA EM
ELETRÔNICA
UNIDADE
1
SITUAÇÃO DE
APRENDIZAGEM
3
APRESENTAÇÃO
Imagine que você atue como projetista em uma empresa que desenvolve
jogos eletrônicos. Sua nova missão, na empresa, será elaborar um novo
jogo utilizando a tecnologia CPLD.
O jogo é baseado em uma brincadeira clássica de criança que, provav-
elmente, você já conheça. Trata-se do jogo papel, pedra ou tesoura. As
regras são simples: dois jogadores escolhem, ao mesmo tempo, uma das
opções: papel, pedra ou tesoura. O vencedor depende da combinação
dos resultados: papel vence pedra, tesoura vence papel e pedra vence
tesoura.
Mas é preciso lembrar que, além de indicar o vencedor, existem condições especiais que precisam
ser sinalizadas. Uma das condições ocorre em casos de empate, e a outra em situações não permiti-
das, por exemplo, quando apenas um ou nenhum dos jogadores participa do jogo ou quando um
ou mais jogadores selecionam mais de uma opção.
Para facilitar seus estudos, a criação do jogo será feita em cinco etapas. Cada uma corresponderá a
um desafio que você precisará enfrentar para ter seu trabalho concluído satisfatoriamente.
4
DESAFIOS
Para facilitar seus estudos, a programação do microcontrolador será feita em cinco etapas. Cada
uma corresponderá a um desafio que você precisará enfrentar para ter seu trabalho concluído sat-
isfatoriamente.
Desafio 1 – Identificar as variáveis de entrada e saída
O desafio 1 consiste em identificar as variáveis de entradas e saídas necessárias
para o funcionamento do jogo. Além de indicar as variáveis, você deverá elaborar
postulados para explicar a lógica utilizada no seu projeto.
Desafio 2 – Montar a tabela verdade
O desafio 2 consiste em montar uma tabela verdade com as variáveis de entradas e
saídas definidas no desafio 1.
Desafio 3 – Montar os mapas de Karnaugh e extrair as respectivas funções
O desafio 3 consiste em montar os mapas de Karnaugh com os valores binários de
cada célula da tabela verdade e retirar as respectivas funções booleanas.
Desafio 5 – Gravar o circuito lógico no CPLD
O desafio 5 consiste em gravar, no CPLD, o circuito lógico para o funcionamento
do jogo.
Desafio 4 – Desenhar o circuito lógico no software do CPLD
O desafio 4 consiste em desenhar o circuito lógico no software do CPLD.
DESAFIO 1
6
APRESENTAÇÃO
Neste desafio, você estudará os detalhes necessários para iniciar a elaboração de um projeto para
dispositivos CPLD (Complex Programmable Logic Devices) utilizando a suíte de aplicativos Quar-
tus II do fabricante Altera. No final deste desafio você terá subsídios para:
•	 Reconhecer as vantagens do uso do CPLD;
•	 Identificar variáveis de entrada e saída no descritivo de aplicações de um projeto.
Preparado? Então siga em frente!
7
FPGA OU CPLD?
Nos últimos tempos, essa tem sido uma pergunta comum nos ambientes de desenvolvimento: Qual
é a melhor tecnologia, FPGA ou CPLD? É frequente encontrarmos defensores de uma ou outra tec-
nologia, mas a escolha mais adequada depende de cada projeto. Isso acontece porque, assim como
qualquer outra tecnologia, existem vantagens e desvantagens na escolha, portanto, é preciso analisar
as características de cada uma e as necessidades do projeto para, então, escolher qual é a melhor. E
como professores, é muito importante abordar essa questão com nossos alunos, para que não saiam
da escola bitolados em uma ou outra tecnologia.
Ao longo deste curso, estudaremos um pouco sobre CPLD e microcontroladores, para experimen-
tarmos as vantagens e desvantagens de cada uma. Nesta unidade falaremos sobre o CPLD. Está
curioso para conhecer mais sobre essa tecnologia? Então siga em frente!
Além de FPGA e CPLD, não podemos nos esquecer que existem outras tecnologias como,
por exemplo, os microcontroladores, e que todas devem ser levadas em consideração na
escolha para um projeto.
8
ARQUITETURAS
Você já percebeu a dificuldade para comprar portas lógicas e alguns circuitos derivados que estão
em desuso para a manutenção de máquinas e sistemas? Com isso, surgem novos dispositivos como
os FPGA (Field Programmable Gate Arrays) e CPLD (Complex Programmable Logic Device), que dif-
erem entre si na arquitetura interna, mais especificamente pela utilização de blocos lógicos simples
(FPGA) e complexos (CPLD). Clique nas abas abaixo e veja as principais características de CPLD
e FPGA.
FPGA
O Field Programmable Gate Arrays (FPGA) é um circuito integrado usado desde a década
de 1980, que permite aos desenvolvedores programarem uma lógica digital personalizada
neste dispositivo, mesmo estando instalado em campo. Desde então, este tem evoluído de
uma simples interface lógica para um circuito integrado sofisticado, com os seus próprios
microprocessadores, blocos de memória e I/O garantindo flexibilidade, redução de cus-
tos e agilidade nos cronogramas de projetos.
Como característica positiva, este trabalha com velocidades maiores que o CPLD e per-
mite maior densidade de estruturas lógicas por igual área na pastilha semicondutora.
Como característica negativa está o fato deste não possuir memória de programação e
perder os dados após ser desenergizado. Para corrigir isto, associamos à parte, um dis-
positivo de programação. O problema já foi corrigido em alguns produtos atuais com a
colocação de memorias flash e EEPROM.
Veja um exemplo de FPGA utilizado para controlar um motor. No exemplo aparece a
arquitetura interna de um FPGA e as ligações externas. O exemplo se refere a um FPGA
da família Cyclone, do fabricante Altera.
Fonte: datasheet Cyclone V
9
Saiba mais...
Para saber mais sobre o FPGA, tipos disponíveis e aplicações,
visite os sites de alguns fabricantes, na internet: www.xilinx.
com.cc, www.altera.com, www.atmel.com.
CPLD
O CPLD (Complex Programmable Logic Device) é um circuito integrado composto de
blocos lógicos formados por portas AND e OR, com arranjos de interconexões internas
entre blocos de portas lógicas e com a capacidade de reprogramação. As portas lógicas
de um CPLD podem ser configuradas, via programação, para formar circuitos lógicos
complexos. Significa dizer que um único CPLD pode assumir uma combinação imensa
de portas lógicas, com grande quantidade de entradas e saídas, ou seja, um CPLD pode
substituir centenas (e mais) de circuitos integrados da família TTL (série 74) ou da família
CMOS (série 40).
Além disso, como as portas lógicas de CPLD são combinadas por meio de programação,
elas podem ser reprogramadas a qualquer momento, o que facilita alterações no projeto.
Se fossemos utilizar circuitos integrados da família TTL ou CMOS, qualquer alteração
envolveria muito tempo e dinheiro, já que precisaríamos confeccionar uma nova PCI.
A configuração interna de um CPLD varia de acordo com o modelo e com o fabricante,
mas para que tenha uma ideia, veja um exemplo de diagrama em blocos de um CPLD do
fabricante Altera:
Fonte: datasheet do CPLD EPM3064ALC44-10 da ALTERA Cyclone V
10
Cada macrocélula do diagrama em blocos é formada por vários circuitos lógicos, com-
postos de portas lógicas e registradores. A ilustração, a seguir, traz um exemplo de uma
macrocélula:
A programação de um CPLD costuma ser feita por meio de softwares, que são disponi-
bilizados pelo próprio fabricante do CPLD. Significa dizer que cada fabricante tem um
software e um procedimento específico de programação, mas de modo geral, o processo
consiste em desenhar, no software, o circuito lógico combinacional desejado e carregar
o desenho no CPLD. Desse modo, o CPLD assume as funções lógicas do seu desenho.
Falaremos mais sobre a programação de CPLD ao longo deste curso, em momento opor-
tuno.
Fonte: datasheet do CPLD EPM3064ALC44-10 da ALTERA
Saiba mais...
Para saber mais sobre o CPLD, tipos disponíveis e aplicações,
visite os sites de alguns fabricantes, na internet: www.xilinx.
com.cc, www.altera.com, www.atmel.com.
11
Saiba mais...
Para saber mais sobre o CPLD, tipos disponíveis e aplicações,
visite os sites de alguns fabricantes, na internet: www.xilinx.
com.cc, www.altera.com, www.atmel.com.
MERCADO E APLICAÇÕES
Para se ter uma ideia da necessidade que o mercado tem destes dispositivos, o fabricante Xilinx
afirma que o tráfico global IP (largura de banda) é crescente e deve atingir em 2016, incríveis 110
Exabytes, estando hoje em torno de 69 Exabytes, com barramentos de dados de 512 a 2048 bits. Para
poder atender a esta demanda, serão necessários sistemas que trabalhem naturalmente com 1 Tb/s
(1 Terabyte por segundo) em aplicações de comunicação com múltiplos links, aplicações de trans-
missão de vídeo digital em 1080p e 4K (e também 8K – Super H-Vision). Devido à alta velocidade,
capacidade de expansão e flexibilidade para a programação, os CPLD e os FPGA são aliados impor-
tantes para enfrentar esses desafios. Veja um exemplo de diagrama em blocos com a arquitetura de
um sistema para processamento de vídeo com FPGA.
Embora o FPGA e o CPLD representem um grande avanço na eletrônica digital, tenha em mente
que os conceitos de eletrônica digital ainda são muito necessários. Significa dizer que mesmo nos
projetos atuais, que utilizam mais variáveis de entrada e de saída e mais portas lógicas, os conceitos
utilizados na época dos circuitos integrados TTL continuam sendo necessários. Por isso é impor-
tante resgatar alguns conceitos de Eletrônica Digital. É o que faremos, a seguir.
Siga adiante!
12
Importante!
Portanto, o postulado é uma técnica importante para desenvolver projetos que
envolvem eletrônica digital, pois você precisará identificar e mapear todas as
variáveis e condições de entrada e de saída do projeto que está concebendo.
POSTULADOS
Consulte nos bons dicionários virtuais na internet o termo postulado e receberá como retorno três
significados:
•	 Ideia que se reconhece;
•	 Premissa; e
•	 Em algumas religiões, tempo de preparação para o noviciado.
Para o nosso curso, portanto, o termo “Premissa” é o mais adequado. É comum, na sala de aula ou
com nossos colegas, associarmos o termo postulado a alguma premissa, regra, convenção, lei, dire-
triz ou mesmo uma simples informação. Quando relacionamos instalações elétricas com eletrônica
digital, associamos lâmpada acesa como nível lógico um e lâmpada apagada como nível lógico zero.
Ainda nessa linha, temos o interruptor acionado, representando nível lógico um ou não acionado,
representando nível lógico zero. Nos dois exemplos, estabelecemos postulados.
13
ENTRADAS E SAÍDAS
Agora que você relembrou o que é o postulado, é necessário estabelecer se este se refere a uma en-
trada ou uma saída. Retomemos os exemplos do item anterior.
Qual é a relação de dependência entre o interruptor e a lâmpada? Você atua sobre a lâmpada para
acionar o interruptor ou aciona o interruptor para que a lâmpada acenda? Evidentemente a lâmpada
só deverá acender quando o interruptor for acionado.
Portanto, a relação de dependência da lâmpada com o interruptor indica que:
=1
Lâmpada acesa Lâmpada apagada
=0
=1
Interruptor acionado Interruptor não acionado
=0
Interruptor = entrada
Lâmpada = saída.
14
Para que entenda melhor a determinação de um postulado, preparamos um exemplo em que você
poderá acompanhar a definição de um postulado para um projeto de iluminação automotiva. Ana-
lise a necessidade do projeto e acompanhe a definição do postulado.
Exemplo: definindo um postulado
1. DESCRIÇÃO DO PROJETO
Muitos acidentes ocorrem por distração ao volante. Para minimizar este fato, uma em-
presa de segurança automotiva resolveu implantar um dispositivo de segurança para
controlar o acendimento das luzes de um veículo. O objetivo é fazer o acendimento da
lanterna, do farol e do farol de neblina, de acordo com quatro modos de operação: Modo
lanterna, modo esportivo, modo farol e lanterna e modo rural. O acendimento será feito
por meio de uma chave rotativa de duas posições para o acionamento da lanterna e do
farol, de uma chave para o farol de milha, e de um CPLD para fazer o controle. As luzes
deverão acender de acordo com os critérios informados a seguir, e o sistema deverá im-
pedir o acionamento de sequências diferentes do especificado.
1: Modo lanterna
O modo lanterna será acionado quando a
chave rotativa estiver na posição 1 e a chave
do farol de milha estiver desligada. Nesse
caso, apenas a lanterna deverá ser acionada.
2: Modo farol e lanterna
O modo farol e lanterna será acionado
quando a chave rotativa estiver na posição 2
e a chave do farol de milha estiver desligada.
Nesse caso, o farol e a lanterna deverão ser
acionados juntos.
15
2. DEFININDO UM POSTULADO PARA O PROJETO
O primeiro passo para definir um postulado para o projeto é identificar a(s) entrada(s).
De acordo com a descrição do projeto, temos 3 variáveis digitais de entrada sendo que
para cada variável de entrada, nível lógico 0 indica que a respectiva chave está desligada e
nível lógico 1 indica que está ligada. Quanto às saídas, para o caso deste projeto, elas rep-
resentam as luzes do veículo, sendo que para cada variável de saída, nível lógico 0 indica
que a respectiva luz está apagada e nível lógico 1 indica que ela está acesa.
3: Modo rural
O modo rural será acionado quando a
chave rotativa estiver na posição 2 e a chave
do farol de milha estiver acionada. Nesse
caso, o farol, a lanterna e o farol de milha
deverão ser acionados juntos.
4: Modo esportivo
O modo esportivo será acionado quando a
chave rotativa estiver na posição 1 e a chave
do farol de milha estiver acionada. Nesse
caso, a lanterna e o farol de milha deverão
ser acionados juntos.
Desligado
16
Farol
Lanterna
Farol de milha
17
DESAFIO 1
Agora que você conhece as principais características de um CPLD e as
vantagens dessa tecnologia para os projetos de eletrônica digital na atu-
alidade, chegou o momento de retomar o desafio 1.
Retorne à página principal do ambiente virtual de aprendizagem e par-
ticipe do desafio 1. Lembre-se de que a elaboração da tarefa proposta
deverá ser realizada em grupo. Você terá à disposição um ambiente de
grupo, para debater com os colegas e um espaço destinado para a entre-
ga da tarefa.
Bom trabalho!
RECAPITULANDO
Neste desafio você estudou:
•	 Algumas dicas sobre como escolher o melhor dispositivo para o seu
projeto;
•	 Uma visão geral do dispositivo CPLD e seu mercado de aplicação;
•	 Como identificar entradas e saídas.
Você deverá participar da seguinte atividade:
•	 Desafio 1 – atividade em grupo: Identificar as variáveis de entradas e saídas necessárias para o
funcionamento do jogo eletrônico pedra, papel ou tesoura. Além de indicar as variáveis, você
deverá elaborar postulados para explicar a lógica utilizada no seu projeto.
DESAFIO 2
19
APRESENTAÇÃO
Neste desafio você estudará alguns detalhes da suíte de ferramentas Quartus II do fabricante Altera
e fará a instalação, para iniciar a elaboração de um projeto para dispositivos CPLD (Complex Pro-
grammable Logic Devices). Também irá relembrar alguns conceitos de Eletrônica Digital, que são
fundamentais para elaborar projetos com CPLD. No final deste desafio você terá subsídios para:
•	 Selecionar e instalar uma ferramenta para projeto com CPLD;
•	 Montar uma tabela-verdade com n bits e múltiplas saídas.
Preparado? Então siga em frente!
20
FERRAMENTAS PARA PROJETOS COM CPLD
A maior parte dos microcontroladores atuais vêm equipados com módulos A/D. Trata-se de
conDispositivos como os FPGA (Field Programmable Gate Arrays) e CPLD (Complex Program-
mable Logic Device) devem receber uma carga de informações para torná-los funcionais e, para
que isto aconteça, necessitam de uma interface que comunique a necessidade do projetista com o
dispositivo físico.
Para cumprir as etapas de desenvolvimento, desde a concepção até a gravação no CPLD, cada fabri-
cante disponibiliza uma suíte de ferramentas. Trata-se de um software, contendo todos os recursos
necessários para desenhar circuitos lógicos e fazer a gravação em CPLD. Dependendo do fabri-
cante, os softwares podem ser gratuitos ou pagos, e podem ser fornecidos por meio de download
ou entregue em DVD ou outras mídias.
Vejam alguns exemplos de software e seus respectivos fabricantes:
Neste curso, utilizaremos a ferramenta Quartus II da Altera em sua versão 8.1, compativel com
todos os sistemas Windows, da versão XP a 8.1.
Esta ferramenta é do tipo IDE (Integrated Development Environment) ou Ambiente de Desenvolvi-
mento Integrado, criada para interagir com componentes da Altera.
SOFTWARE FABRICANTE GRATUITO SITE
QUARTUS
II
Altera
Sim, mas existem
versões pagas,
com recursos
adicionais
https://www.altera.com/products/de-
sign-software/fpga-design/quartus-ii/over-
view.html
VIVADO
DESIGN
TOOLS
Xilinx
Sim, mas existem
versões pagas,
com recursos
adicionais
http://www.xilinx.com/support/download/
index.html/content/xilinx/en/download-
Nav/vivado-design-tools.html
PROCHIP
DESIGNER
Atmel Sim http://www.atmel.com/tools/wincupl.aspx
Importante!
Embora existam versões mais atualizadas, vamos utilizar, neste curso, a versão
8.1 devido a compatibilidade com o kit que utilizaremos em nosso encontro
presencial.
21
Para melhor vizualização de seu funcionamento global, usaremos o recurso de fluxograma para
identificar todas as etapas do projeto a ser gravado no dispositivo CPLD.
Agora que você já viu as ferramentas para projetos com CPLD, continue para saber com funciona
a instalação.
O projeto é introduzido por meio de um diagra-
ma esquemático ou por uma linguagem de pro-
gramação do tipo Verilog ou VHDL.
A ferramenta ajusta a melhor alocação de blocos
lógicosdefinidosnanetlist1
doCPLDreal.Também
escolhe os caminhos internos de roteamento mais
adequados para fazer as conexões entre os blocos
internos.
Na análise são analisados os atrasos de propa-
gação ao longo dos vários trajetos internos do
CPLD para conseguir o melhor desempenho para
o projeto. Na simulação, o projeto é testado para
verificar suas funcionalidades junto com a análise
temporal.
O projeto é implementado em um CPLD físico,
programado com opções de configuração que es-
tabeleçam os melhores resultados de desempenho.
O projeto sintetizado é testado para verificar seu
funcionamento. Nesta etapa não levamos em con-
ta eventuais problemas de temporização.
O projeto é sintetizado com a estrutura lógica
fornecida internamente pelo CPLD.
1
Netlist é uma espécie de mapa que contém todas as interligações das portas utilizadas em um projeto.
22
INSTALAÇÃO DA FERRAMENTA PARA PROJETOS COM CPLD
O processo de criação de um projeto com CPLD pode ser visto a seguir, por meio de um exemplo
com instruções passo-a-passo. No exemplo, utilizaremos o software Quartus II para implementar
um circuito simples em um dispositivo CPLD da Altera. O software Quartus II inclui uma inter-
face CAD muito similar a de ambientes que, provavelmente, você já conheça, como por exemplo o
MPLAB e o Proteus. Neste passo-a-passo usaremos como método de entrada um diagrama esque-
mático. A última etapa do projeto envolverá a gravação em um dispositivo CPLD montado no kit
do fabricante Exsto, por meio de um cabo USB/J-TAG. As capturas de tela utilizadas no tutorial são
do software Quartus II versão 8.1. Para outras versões do software, algumas telas serão ligeiramente
diferentes.
O Compilador é parte integrante deste software, e veremos este assunto no próximo capítulo, junto
com a programação.
Após realizar o download pelo site da Altera ou instalar a partir de uma mídia DVD, você deve seguir
as instruções a seguir. É importante lembrar que, embora o software seja gratuito, é necessário fazer
um cadastro no site do fabricante, antes de fazer o download.
1. Introduza a mídia na unidade DVD ou clique no arquivo executável.
2. Aguarde a tela de instalação, conforme a
imagem ao lado e clique no botão Install free
package.
Importante!
O tempo de instalação pode variar de um computador para outro. Antes de ini-
ciar a instalação, é recomendável fechar todos os programas. Na parte presencial
do curso, você terá o software pré-instalado no laboratório, bastando transferir
os arquivos da tarefa para uma pasta ou executar a partir de seu HD portátil,
pendrive ou notebook, com o cabo USB/J-TAG, que estará disponível.
23
3. Na tela seguinte, mantenha as configu-
rações recomendadas e clique em Next.
4. Aceite a licença de uso e clique em Next.
5. Preencha os campos em destaque e clique
em Next.
24
6. Confirme a pasta de destino da instalação
e clique em Next.
7. Confirme novamente e clique em Next.
8. Aguarde até o término da instalação.
25
9. O Programa está instalado. Se preferir,
marque a opção View readme.txt para
conhecer mais detalhes sobre o software ou
clique diretamente no botão Finish.
Agora, o programa está instalado e pronto para o uso.
Siga em frente para conhecer um dos conceitos essenciais de eletrônica digital: a tabela-verdade.
26
TABELA-VERDADE
Como vimos no desafio anterior, conceitos básicos de eletrônica digital são essenciais para projetos
com CPLD, e isso inclui as tabelas-verdade. Antes de pensar no circuito lógico, devemos montar
uma tabela-verdade com todas as variáveis de entrada e de saída. O meio mais fácil é montando
uma planilha, que pode ser feita com qualquer programa editor existente no mercado, por exemp-
lo, Excel. Outra opção é usar o comando inserir→tabela, comum nos programas de edição de texto.
Veja os exemplos a seguir:
A S
0
1
Tabela-verdade com uma entrada (A) e uma saída (S).
A B S
0 0
0 1
1 0
1 1
Tabela-verdade com duas entradas (A) e (B) e uma saída (S).
Dica...
Para evitar a mensagem de erro durante o preenchimento ou operação com
planilhas, você deve selecionar todas as células e formatá-las no padrão texto.
27
Observe que o número de linhas (L) é resultado da relação matemática 2N
, de modo que N será
o número de bits de entrada, ou seja, sempre um valor numérico inteiro e maior que zero. Logo
abaixo da legenda da coluna, inserimos as combinações binárias com zeros e uns. E a coluna com
legenda S? Esta também receberá valores binários, de acordo com o funcionamento da(s) saída(s)
de cada projeto.
Então ficamos assim:
Portanto, o número de linhas corresponderá às combinações possíveis entre os zeros e uns, seja
para um bit ou dois bits. Vamos subir um nível. Podemos ter duas saídas na tabela-verdade? Com
certeza. Vejamos o exemplo a seguir.
Concluímos, então, que o número de saídas irá depender da solicitação da lógica encontrada em
cada projeto. Perfeito. Mas devemos ficar atentos, a partir deste momento, com a organização da
legenda em nossa tabela-verdade. Você se lembra dos conceitos sobre bit mais significativo (MSB)
e menos significativo (LSB)? Pois muito bem, esta consideração deve ser adotada em nossa tabela.
Logo, ela ficará assim:
A B S1
S2
0 0
0 1
1 0
1 1
Tabela-verdade com duas entradas (A) e (B) e duas saídas (S1
) e (S2
).
L = 2N
, como N=1, L = 21
= 2 linhas; e
L = 2N
, como N=2, L = 22
= 4 linhas.
28
B A S1
S2
0 0
0 1
1 0
1 1
Tabela-verdade considerando a entrada B como MSB.
Mas essa mudança não irá interferir no resultado, dirão alguns. A resposta depende de cada caso.
Se nosso trabalho se encerrar com a tabela, o circuito combinacional resultante poderá não fun-
cionar, mas se migrarmos as informações da tabela para um mapa de Karnaugh, não haverá prob-
lemas. Nesta etapa, a falta deste critério irá alterar a indexação das células, objeto de estudo do
próximo desafio. Vamos subir mais um nível? E uma tabela com três entradas e saídas? Isso não
existe, dirão novamente alguns! Existe sim, basta desenhar.
C B A S1
S2
S3
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Tabela-verdade com três entradas e saídas.
29
Pronto. Todas as combinações possíveis para as entradas foram preenchidas. Agora, falta preencher
as saídas. Para demonstrar o preenchimento de todas as condições de saída, acompanhe o exemplo
de um projeto, a seguir.
Exemplo: Preenchendo uma tabela-verdade
Para demonstrar o uso de uma tabela-verdade em um projeto com CPLD, vamos resgatar o exem-
plo da unidade anterior, sobre o projeto de um dispositivo de segurança para controlar o acendi-
mento das luzes de um veículo.
Na unidade anterior, identificamos três variáveis de entrada e três variáveis de saída para o projeto
de exemplo:
Agora, vamos montar a tabela-verdade para o mesmo projeto. De acordo com essas informações,
nossa tabela-verdade será de três bits, ou seja, terá três colunas e oito linhas, que são o resultado de
23
. Para facilitar, vamos atribuir siglas para as entradas e para as saídas, do seguinte modo:
VARIÁVEIS DE SAÍDA:
1. Lanterna 2. Farol 3. Farol de milha
VARIÁVEIS DE ENTRADA:
1. Posição 1 da chave rotativa 2. Posição 2 da chave rotativa 3. Chave do farol de milha.
Posição 1 da chave rotativa: P1
Posição 2 da chave rotativa: P2
Chave do farol de milha: CFM
Se quiser relembrar os detalhes do projeto de exemplo, você pode baixar o documento
com a descrição do projeto acessando seu ambiente virtual de aprendizagem.
Item 04. Tabela-verdade
30
Lanterna: LA
Farol: FA
Farol de milha: FM
Portanto, utilizando os postulados previamente estabelecidos, temos a tabela-verdade exibida
abaixo. A montagem do resultado das saídas é norteado por algumas orientações. Passe o mouse
pelas linhas da tabela para conhecê-las.
Note que CFM é a variável de entrada mais significativa e P1 a menos significativa nas colunas
de entrada. Está condição irá nortear a montagem dos mapas de Karnaugh, que estudaremos na
próxima unidade.
ENTRADAS SAÍDAS
CFM P2 P1 FM FA LA
0 0 0 0 0 0
0 0 1 0 0 1
0 1 0 0 1 1
0 1 1 0 0 0
1 0 0 0 0 0
1 0 1 1 0 1
1 1 0 1 1 1
1 1 1 0 0 0
DESAFIO 2
AAgora que você já instalou a suíte de ferramentas da Altera, demos
mais um passo em nosso projeto com um CPLD. Portanto, chegou o
momento de retomar o desafio 2.
Retorne à página principal do ambiente virtual de aprendizagem
e participe do desafio 2. Lembre-se de que a elaboração da tarefa
proposta deverá ser realizada em grupo. Você terá à disposição, um
ambiente de grupo, para debater com os colegas e um espaço destina-
do para a entrega da tarefa.
			 Bom trabalho!
RECAPITULANDO
Neste desafio você estudou:
•	 Algumas dicas sobre como escolher a melhor suíte de ferramentas
para o seu projeto;
•	 O processo de instalação e configuração da suíte de
aplicativos Altera; e
•	 Como montar uma tabela-verdade com N bits e saídas múltiplas.
Você deverá participar da seguinte atividade:
•	 Desafio 2 – atividade em grupo: Montar a tabela-verdade a partir dos postulados e das
variáveis de entradas e saídas estabelecidas no desafio 1.
DESAFIO 3
33
APRESENTAÇÃO
Neste desafio, você estudará os detalhes necessários para iniciar a elaboração de um programa para
dispositivos CPLD (Complex Programmable Logic Devices) utilizando a suíte de ferramentas Quar-
tus II da Altera. No final deste desafio você terá subsídios para:
•	 Fazer a programação de um CPLD utilizando linguagem de descrição (VHDL);
•	 Simplificar funções lógicas booleanas de múltiplas saídas por meio de um mapa de Karnaugh.
Preparado? Então siga em frente!
34
INICIANDO A PROGRAMAÇÃO DE UM CPLD
No desafio anterior, definimos a tabela-verdade para o projeto do jogo eletrônico “Papel, pedra ou
tesoura” e instalamos a suíte de ferramentas que será utilizada no projeto do CPLD. Como você
sabe, a programação de um CPLD pode ser feita de duas maneiras: por linguagem de descrição
ou por diagrama esquemático. Neste desafio, vamos estudar a programação por linguagem de de-
scrição. Estudaremos a programação por diagrama esquemático no próximo desafio.
Independente da linguagem utilizada, é necessário definir, primeiro, a função lógica booleana que
representa o circuito digital do projeto. Embora os CPLD possuam grandes quantidades de portas
lógicas, simplificar as funções booleanas provenientes das tabelas-verdade continua sendo uma
etapa importante nos projetos de eletrônica digital, não apenas pela redução da quantidade de
portas lógicas, mas para diminuir os atrasos na propagação dos sinais elétricos e para facilitar a
análise dos circuitos. Por esse motivo, o mapa de Karnaugh continua sendo amplamente utilizado.
Devido à complexidade dos circuitos mais modernos, é provável que você se depare com mapas de
Karnaugh com maior número de variáveis. Portanto, antes de abordar a programação de um CPLD,
vamos resgatar alguns conceitos de eletrônica digital, comparando a obtenção de funções lógicas
por álgebra de Boole e teorema De Morgan com as técnicas de mapa de Karnaugh. Acompanhe!
35
ÁLGEBRA DE BOOLE E TEOREMA DE MORGAN
Para demonstrar o uso das técnicas de álgebra de Boole e do teorema De Morgan, vamos resgatar
o exemplo da unidade anterior, sobre o projeto de um dispositivo de segurança para controlar o
acendimento das luzes de um veículo. Utilizaremos a tabela-verdade desse projeto como exemplo.
Acompanhe.
Observando a coluna FM, as saídas com valor binário 1 (um) seriam representadas por:
FM = CFM.P2’.P1 + CFM.P2.P1’
Para montar essa expressão, fazemos a leitura de cada célula da coluna FM e realizamos a operação
AND entre as variáveis de entrada correspondentes, assinalando com lógica invertida as variáveis
que apresentam valor zero. Vamos repetir esta técnica para cada nova célula com valor binário 1
(um) e fazer a união dessas funções parciais com o operador OR. Agora, podemos começar a sim-
plificar:
CFM.P2’.P1 + CFM.P2.P1’ = CFM.(P2’.P1 + P2.P1’) – por distributiva inversa;
Trocando na função original, teremos: FM = CFM.(P2’.P1 + P2.P1’)
Se quiser relembrar os detalhes do projeto de exemplo, você pode baixar
o documento com a descrição do projeto em seu ambiente virtual de
aprendizagem.
Item 03 - Álgebra de Boole e Teorema de Morgan
36
Agora, observamos que (P2’.P1 + P2.P1’) é uma operação OU EXCLUSIVO entre P1 e P2, teremos:
FM = (P1+P2).(CFM’+CFM)
Como (CFM’+CFM) = 1, por identidade A’+A = 1;
Então FM = CFM.(P2 P1) – por identidade A.1 = A.
Prossiga para ver outras técnicas utilizadas em eletrônica digital.
37
OUTRAS TÉCNICAS UTILIZADAS EM ELETRÔNICA DIGITAL
Como você pôde ver, utilizar técnicas de álgebra de Boole e teorema De Morgan pode ser um pro-
cesso demasiadamente trabalhoso. Na verdade, a técnica mais adequada para cada projeto depende
da quantidade de variáveis. A tabela a seguir, indica as principais técnicas e a recomendação para
cada caso:
Portanto, para o caso do nosso desafio do jogo eletrônico “Papel, pedra ou tesoura”, em que temos
6 variáveis, utilizar mapa de Karnaugh é mais vantajoso.
Antes de partir para a elaboração de um mapa com 6 variáveis, siga em frente para resgatar concei-
tos importantes sobre o mapa de Karnaugh.
38
MAPA DE KARNAUGH
O mapa de Karnaugh foi desenvolvido por volta dos anos 1950 por Edward Veitch e aperfeiçoado
por Maurice Karnaugh, com base nos diagramas de Venn.
Esta técnica reduz a chance de erros humanos no momento de extrair as funções, já que as técni-
cas de simplificação por álgebra booleana costumam gerar funções muito complexas e de difícil
visualização.
Para resgatar os conceitos do mapa de Karnaugh vamos utilizar a técnica tradicional de variação de
um único bit para compor as legendas do mapa, característica do código Gray. O exemplo abaixo, é
de um mapa para o projeto das luzes automotivas. Como você sabe, é necessário montar um mapa
para cada variável de saída. O mapa do exemplo se refere à variável de saída LA:
A técnica de Veitch-Karnaugh diz que devemos associar, nesse caso, valores binários unitários
adjacentes em grupos de 2, 4, 8 e assim por diante. Da aplicação, teremos:
LA = P2’.P1 + P2.P1’ = P1 P2
No exemplo anterior, optou-se por montar a tabela com uma variável na legenda vertical (o bit
mais significativo - MSB) e duas variáveis na legenda horizontal. Outra característica importante
é a escolha da informação, na legenda. Em nosso estudo, optou-se por preencher as legendas com
0 (zero) e 1 (um). Esta escolha permite visualizar, mais facilmente, a mudança do valor binário.
Como já sabemos, entre uma legenda e outra adjacente, apenas uma variável pode mudar, caso
contrário, não conseguiríamos associar células adjacentes e compartilhar os valores binários.
Importante!
A ordem estabelecida na tabela verdade deve permanecer na montagem das
legendas dos mapas de Karnaugh.
39
Agora, vejamos como seria outro modo:
Da aplicação da técnica, obtemos:
FM = P1’.P2 + P1.P2’= P1+P2 (XOR entre P1 e P2)
Observe que, desde que mantida a regra do MSB, o resultado é o mesmo, apesar do compar-
tilhamento lateral (em verde), que muitas vezes dificulta a visualização ou passa despercebido.
Podemos, ainda, escrever as variáveis algébricas nas legendas em qualquer formato escolhido an-
teriormente. Como ficaria? Acompanhe:
Exemplo de modelo com tabela 1x2
Exemplo de modelo com tabela 2x1
40
Alguns dirão que, no segundo caso, ficou mais fácil escrever a função, mas ficou mais difícil ler
qual variável se manteve constante e qual mudou. Concluímos, então, que o processo depende da
forma como você se sente mais confortável.
Prossiga para verificar o mapa de Karnaugh com 6 variáveis.
41
MAPA DE KARNAUGH COM 6 VARIÁVEIS
Retomando o projeto do jogo eletrônico “Papel, pedra ou tesoura”, de acordo com o desafio ante-
rior, sabemos que temos seis variáveis de entrada e quatro variáveis de saída. Para começar, pre-
cisamos definir o formato gráfico da planilha, que pode ser 1x5, 2x4, 3x3, 4x2 ou 5x1. Para facilitar
a visualização, vamos utilizar o formato 3x3. De acordo com o sistema Gray, a legenda dos valores
binários deverá ser montada do seguinte modo:
000; 001; 011; 010; 110; 111; 101; 100
Observe, em vermelho, que apenas um bit muda a cada conjunto de três bits. Note que man-
tivemos o bit MSB sempre em 0 (zero) e esgotamos as combinações, baseadas no código Gray,
repetindo a mesma sistemática até o final da sequência. É importante lembrar que o sistema Gray
permite outras possibilidades:
000; 001; 011; 010; 110; 100; 101; 111
000; 010; 110; 100; 101; 111; 011; 001
000; 100; 101; 111; 110; 010; 011; 001
000; 100; 110; 111; 101; 001; 011; 010
Embora todas as possibilidades indicadas estejam corretas, elas influenciam no modo de preen-
chimento do mapa. Para facilitar, vamos escolher a primeira opção:
000; 001; 011; 010; 110; 111; 101; 100
Adotando essa sequência, nosso mapa mantém agrupamentos de 32 posições. Na tabela abaixo,
temos dois agrupamentos: um destacado em cinza e outro em laranja. Os números indicados no
mapa representam a respectiva linha na tabela-verdade.
Já sabemos que a função do mapa de Karnaugh é fornecer expressões simplificadas, praticamente
sem recorrer à álgebra de Boole. Também relembramos como extrair a função com base no proje-
to das luzes automotivas. Mas você já pensou em como fazer os agrupamentos em um mapa com
42
tantas posições? Acompanhe alguns exemplos, com agrupamentos diferentes:
Exemplo 1: Sem agrupamento (BIT Unitário)
Sabemos que cada célula expressa uma operação AND entre as variáveis das legendas. Assim, para
o exemplo, teremos: Y = F’.E’.D.C’.B.A.
Exemplo 2: Metade da tabela com nível lógico 1
Observe a legenda horizontal, onde temos as variáveis C, B e A. Note que apenas a variável C não
se alterou, logo, ela entrará em nossa função: Y = C.
Agora, fazendo a leitura da legenda vertical, onde temos as variáveis F, E e D, observamos que
todas mudaram de estado. Dessa forma, como não há variável para incluir na função, repetimos a
expressão anterior, Y = C.
43
Exemplo 3: Agrupamento de 16 posições
Observe a legenda horizontal, onde encontramos as variáveis C, B e A. Note que todas mudaram
de estado, assim, não há variável para incluir na função.
Agora, fazendo a leitura da legenda vertical, onde encontramos as variáveis F, E e D, observamos
que as variáveis E e D permanecem constantes, portanto, a função será: Y = E.D’.
Exemplo 4: Agrupamento de 4 posições, nos cantos da tabela
Neste exemplo, o processo é similar às tabelas com poucas variáveis.
Observando a legenda horizontal, onde encontramos as variáveis C, B e A, verificamos que apenas
a variável C mudou de estado. Assim, nossa função será, provisoriamente, Y= B’.A’.
44
Fazendo a leitura da legenda vertical, onde encontramos as variáveis F, E e D, verificamos que
apenas a variável F mudou de estado. Sendo assim, agregamos a função anterior às variáveis que
não mudaram de estado, e teremos Y= B’.A’.E’.D’ = (B + A + E + D)’. Portanto, usando o teorema de
De Morgan, economizamos uma porta lógica.
Exemplo 5: Compartilhamento
Observando a legenda horizontal, onde encontramos as variáveis C, B e A, verificamos que, no
agrupamento em vermelho apenas a variável B mudou de estado.
Assim, nossa função será, provisoriamente, Y= C’.A.
Agora, fazendo a leitura da legenda vertical, onde encontramos as variáveis F, E e D, note que no
agrupamento vermelho apenas a variável F não mudou de estado.
Portanto, a função final será: Y = F’.C’.A + F’.C’.B = F’.C’.(B + A), aplicando-se a distributiva inversa.
Com isso, usamos portas lógicas AND de duas entradas, que são mais comuns, no lugar da AND
de três entradas.
45
PROGRAMAÇÃO DE CPLD POR LINGUAGEM DE DESCRIÇÃO
Depois de definir a função lógica, podemos iniciar a elaboração do programa para um CPLD.
A linguagem de descrição utilizada na suíte da Altera é a VHDL (VHSIC Hardware Description
Language, em inglês). A linguagem VHDL foi criada por uma necessidade do Departamento de
Defesa dos Estados Unidos, que precisava desenvolver sistemas lógicos mais rápidos a partir dos
anos 1970.
Em 1987, a linguagem VHDL e a Verilog foram padronizadas pelo IEEE (Institute of Electrical and
Electronic Engineers) e como são de domínio público, tiveram ampla aceitação e diversas revisões,
sendo que a IEEE1076-2008 é a mais recente.
A linguagem VHDL possui algumas vantagens, se comparada com a linguagem de diagramação.
As principais são:
•	 Maior clareza nos objetivos do projeto;
•	 Documentação mais simples, visto que podemos inserir comentários na programação;
•	 Processo de compilação mais fácil, já que a linguagem pode ser utilizada em qualquer outra
ferramenta para este fim; e
•	 Maior facilidade na depuração manual em sistemas sequenciais, com as ferramentas de au-
tomação da suíte.
46
VHDL E OUTRAS LINGUAGENS (ASSEMBLY, C, JAVA)
A escrita em VHDL traduz as funções e as conexões do hardware sem estar restrita aos entrelaça-
mentos, regras e sub-rotinas da programação tradicional ou atrelada a bibliotecas e memórias de
instruções.
O conceito “executar um programa” não se aplica na linguagem VHDL, porque organizamos, uma
única vez a estrutura interna, e já podemos utilizá-la.
47
PROGRAMANDO EM VHDL
Ponto similar a outras linguagens de programação, a VHDL também apresenta comandos, sendo
os mais importantes: ENTITY e ARCHITECTURE. Esses comandos são suficientes para solucio-
nar o nosso desafio.
O comando ENTITY, basicamente, descreve ou identifica as entradas e saídas.
Exemplo: imagine que vamos programar um CPLD para um determinado circuito com quatro en-
tradas e uma saída. Suponha que, depois de analisar o projeto, obtivemos a função Y = A.B + C.D.
Com base nessa função, vamos iniciar um novo programa denominado PROJ1. Veja como fica a
programação:
Observações:
•	 Como em outras linguagens de programação, deve-se fechar a declaração de variáveis, função
do comando END, seguido do nome do projeto e da pontuação adequada (;);
•	 Toda a declaração das entradas e saídas aparecem após o comando PORT, entre parênteses e
separadas por pontuação (;);
•	 A declaração BIT sinaliza que todas as variáveis de entrada e de saída serão binárias, assumin-
do 0 (zero) ou 1 (um); e
•	 O VHDL não distingue letras maiúsculas e minúsculas, ou seja, você pode utilizar caixa alta ou
caixa baixa à sua escolha.
O comando ARCHITECTURE irá mostrar as relações entre as variáveis de entrada e de saída.
Continuando com nosso exemplo, manteremos o nome do projeto PROJ1. Assim, teremos:
48
Observações:
•	 Assim como no comando ENTITY, é necessário fechar a declaração de relação com o comando
END a (note que abrimos com ARCHITECTURE a);
•	 Há necessidade do símbolo relacional entre entrada e saída (<=); e
•	 Separe as funções com parênteses, conforme sua lógica, evitando erros de compilação.
Agora, retornando ao ambiente de programação, teremos:
49
TUTORIAL: PROGRAMANDO EM VHDL NO AMBIENTE QUARTUS II
Preparamos um tutorial, passo a passo, para ajudá-lo a criar o seu primeiro programa em VHDL
no ambiente Quartus II. Acompanhe o procedimento:
1. Abrindo o programa.
Identifique o ícone do programa no seu desktop. Dê um duplo clique sobre ele e ob-
serve a animação do ponteiro do mouse. Haverá uma pesquisa por atualização. Ignore a
recomendação.
Nota: Dependendo do computador e da quantidade de aplicativos abertos, pode demorar
um pouco o aparecimento da tela de abertura. Recomenda-se utilizar o programa assim que
ligar o computador. Aguarde a tela de abertura.
2. Criando um novo projeto.
Na tela de abertura, clique no botão Start
Designing e, depois, clique no botão Create a
New Project.
Na tela de instruções seguinte, clique em Next.
50
Na tela que será aberta, crie uma pasta e um
nome para o projeto e clique em Next;
Depois, clique no botão Sim para confirmar a
criação da pasta.
Na tela seguinte (New Project Wizard Add
Files), clique em Next;
Agora, você deve selecionar os parâmetros do
CPLD e, neste caso, eles devem estar de acordo
com o kit que utilizaremos em nosso encontro
presencial. Portanto, siga os parâmetros
indicados nesta tela e, depois, clique em Next.
51
Clique em Next novamente.
A tela New Projetc Wizerd: Summary
apresenta um resumo das opções selecionadas
para a criação do projeto. Para encerrar, clique
em Finish.
Aguarde a pesquisa por atualização e ignore
o ícone Download New Software Release, à
direita. Não há garantia de que a atualização
vá funcionar na sua máquina.
52
Selecione, na barra de ferramentas, a opção
File→New, clique em VHDL file e, depois, no
botão OK.
3. Escrevendo o programa.
Após surgir uma pasta Vhdl1.vhd, você terá
uma tela em branco. Escreva o programa
sugerido como exemplo, respeitando a
organização e o alinhamento. Você pode dar
um comando Save As com o nome proj1
e escrever ou, escrever primeiro e dar um
comando Save ao final; dessa forma, o nome
da pasta muda de Vhdl.vhd para proj1.vhd.
Clique em Processing→Start Compilation.
Em até 10s, surgirá uma tela com a
informação Full Compilation was successful.
Um alerta (warning) é normal, desde que não
seja Critical ou Error. Nestas situações, deve-
se rever a escrita do programa. Clique em OK
se estiver tudo em ordem.
Volte à barra de ferramentas e clique em
Assignments→Pins;
53
Aparecerá uma tela com a pinagem
do CPLD. Observe que há uma
planilha na parte inferior com
as entradas e saídas que você
estabeleceu no programa. Agora,
precisamos indicar quais pinos de
I/O adotaremos (representados por
círculos brancos, sem notação).
Para facilitar a montagem e o
entendimento podemos adotar, como entradas, os pinos de 18 a 21 e, como saída, o pino 6.
Dê um duplo clique em cada célula, da coluna Location, referente às variáveis do exemplo.
Será aberta uma lista de pinos. Você só deve escolher aqueles do tipo PIN_XX I/O. Como
a, b, c e d são entradas, teremos a→PIN_18, b→PIN_19, c→PIN_20 e d→PIN_21. A saída
será y→PIN_6;
Observe que os pinos selecionados
ficaram na cor marrom. Caso tenha
errado, basta clicar com o botão direito
do mouse sobre a célula da planilha,
selecionar Edit→Cut e o campo ficará
limpo.
As funções de tempo não necessárias,
podem ser apagadas clicando-se com
o botão direito do mouse sobre um
nome não usado na planilha, depois
selecione Edit→Delete, e a marcação
verde irá desaparecer.
Ao concluir a nomeação de acordo
com o desenho, basta voltar na barra
de ferramentas e clicar em File→Close;
54
Retornamos à tela principal com nosso
programa. Agora, vamos fazer a compilação
novamente,clicandonabarradeferramentas,e
depois em Processing→Start Compilation. Em
até 10s, surgirá uma tela com Full Compilation
was successful. Clique em OK.
Um alerta (warning) é normal desde que não
seja Critical ou Error. Nestas situações deve-
se rever a escrita do programa. Observe no
exemplo a seguir, que a mensagem de erro já
fornece uma dica de onde está o problema.
No exemplo, faltam parênteses nas operações
AND.
Acabamosdefinalizarnossoprojetoedevemos
gravá-lo no kit EXSTO, alvo de nosso desafio
presencial.
DESAFIO 3
Agora que você conhece o ambiente de programação VHDL e resgatou
informações importantes sobre a simplificação de funções lógicas,
chegou o momento de retomar o desafio 3.
Retorne à página principal do ambiente virtual de aprendizagem e
participe do desafio 3. Lembre-se de que a elaboração da tarefa proposta
deverá ser realizada em grupo. Você terá à disposição um ambiente
de grupo, para debater com os colegas e um espaço destinado para a
entrega da tarefa.
			 Bom trabalho!
RECAPITULANDO
Neste desafio você estudou:
•	 Algumas funções VHDL para programar um CPLD;
•	 O processo de escrita de um programa em VHDL utilizando a suíte
de aplicativos Quartus II, da Altera; e
•	 Como montar um mapa de Karnaugh com 6 variáveis e extrair as
respectivas funções.
Você deverá participar da seguinte atividade:
•	 Desafio 3 – atividade em grupo: Montar os mapas de Karnaugh e extrair as funções a partir
dos resultados obtidos no desafio 2.
DESAFIO 4
57
APRESENTAÇÃO
Neste desafio, você estudará a forma de diagramação e os detalhes necessários para montar um
projeto para dispositivos CPLD utilizando a suíte de aplicativos Quartus II, da Altera. Vai estudar,
também, algumas maneiras para fazer o acionamento de dispositivos de potência com CPLD. No
final deste desafio você terá subsídios para:
•	 Fazer a programação de um CPLP utilizando um diagrama esquemático;
•	 Selecionar interfaces de potência com IGBT ou tiristores para projetos com CPLD.
Preparado? Então siga em frente!
58
PROGRAMAÇÃO DE CPLD POR DIAGRAMA ESQUEMÁTICO
Na unidade anterior, vimos a importância de simplificar as funções lógicas de um projeto antes
de iniciar a programação de um CPLD, e estudamos como fazer a programação por linguagem de
descrição. Agora, vamos abordar a programação por diagrama esquemático.
Como você sabe, a escolha da linguagem de programação não afeta no funcionamento do CPLD,
mas na maneira como ele será programado. Nesse sentido, a programação por diagrama esque-
mático pode ser mais vantajosa em alguns casos, especialmente quando estamos mais habituados a
analisar circuitos digitais por meio de esquemas elétricos, do mesmo modo que fazíamos na época
das portas lógicas TTL ou CMOS.
Por outro lado, em circuitos mais complexos, com grande quantidade de portas lógicas e de in-
terligações, a montagem e a visualização do esquema elétrico podem dificultar a análise, tanto no
momento de desenhar quanto na procura de eventuais falhas. Por tudo isso é muito difícil apontar
qual é a melhor maneira para se programar um CPLD. Ambas possuem vantagens e desvantagens,
que dependem do ponto de vista de quem está programando.
Para que você possa formar a sua opinião, nada melhor do que experimentar as duas maneiras.
Portanto, depois de experimentar a programação por linguagem de descrição, chegou o momento
de praticar a programação por diagrama esquemático. Acompanhe!
59
INSTALAÇÃO DA FERRAMENTA PARA PROJETOS COM CPLD
O modo de desenhar um diagrama esquemático nas suítes de programação para CPLD é muito se-
melhante ao que fazemos nos softwares de simulação de circuitos eletrônicos, como por exemplo, o
Proteus e o Multisim. Significa dizer que a programação é fácil de fazer, pois os softwares utilizam
o padrão CAD para fazer os desenhos, que é bastante intuitivo.
Para facilitar o entendimento, preparamos um exemplo passo a passo, onde faremos a programação
de um CPLD por diagrama esquemático. Note que os procedimentos 1 e 2 são idênticos aos que
fizemos na programação por linguagem de descrição. Acompanhe!
1. Abrindo o programa.
Identifique inicialmente, no seu desktop, o ícone do programa Quartus II. Dê um duplo
clique sobre ele e observe a animação do ponteiro do mouse. Haverá uma pesquisa por atu-
alização. Ignore a recomendação.
Nota: Dependendo do computador e da quantidade de aplicativos abertos, pode demorar
um pouco o aparecimento da tela de abertura. Recomenda-se utilizar o programa assim que
ligar o computador. Aguarde a tela de abertura.
2. Criando um novo projeto.
Na tela de abertura, clique no botão Start
Designing, e depois, no botão Create a New
Project.
Na tela de instruções seguinte, clique em Next.
60
Depois, clique no botão Sim para confirmar a
criação da pasta.
Na tela seguinte (New Project Wizard Add
Files), clique em Next.
Selecione os parâmetros do CPLD de acordo
com o kit que utilizaremos em nosso encontro
presencial, conforme indicado nesta tela.
Depois, clique em Next.
Na tela seguinte, clique em Next.
61
3. Escrevendo o programa.
A tela New Projetc Wizard: Summary indica
um resumo das opções selecionadas para a
criação do projeto. Para encerrar, clique em
Finish.
Aguarde a pesquisa por atualização e ignore
o icone Download New Software Release, à
direita. Não há garantia de que a atualização
vá funcionar na sua máquina.
Selecione, na barra de ferramentas, a opção
File→New, clique em Block Diagram/Schematic
File e, depois, no botão OK. Agora você tem
uma tela estilo CAD para inserir entradas,
saídas e blocos lógicos.
Neste exemplo, vamos desenhar o circuito do
projeto das luzes veiculares, que utilizamos
como exemplo ao longo de todo o nosso curso.
Nesse projeto utilizaremos portas AND, NOT
e XOR, mas saiba que o procedimento para
incluir outras portas é basicamente o mesmo.
Para inserir uma porta lógica qualquer, clique
no ícone da porta AND, conforme indicado
abaixo.
62
Na tela Symbol, abra a raiz (clique no
símbolo+), depois, clique em primitives, em
logic e você terá acesso aos tipos de portas
lógicas.
Selecione a porta AND de duas entradas
(and2), selecione repeat insert mode e clique
em OK.
Clique sobre a área de trabalho duas vezes e,
na sequência, pressione a tecla ESC para sair
do modo de inserção. Clique novamente sobre
a tela para tirar a seleção.
Como você pode ver, as principais portas
lógicas estão disponíveis. Note que lógicas com
muitas entradas não será dificuldade aqui. O
software disponibiliza portas AND e OR com
até doze entradas. Você também poderá contar
com portas XOR e XNOR. Perceba quantas
possibilidades um CPLD permite!
Agora, vamos incluir uma porta NOT.
Selecione a porta NOT, sem repeat insert
mode e clique em OK.
63
Repita a operação para XOR sem repeat insert
mode.
Após a inserção das portas lógicas, precisamos
inserir os conectores para as variáveis de
entrada e de saída.
Na mesma raiz primitives, você deve selecionar
pin, depois input e, na sequência, repeat insert
mode, e colocar três figuras sobre a área de
trabalho. Saia do modo de inserção e seleção
pressionando a tecla ESC e clique sobre a área
de trabalho.
Repita o processo para o conector output.
Agora, vamos fazer as interligações. Posicione
o cursor sobre uma ponta solta como, por
exemplo, input, e arraste até uma entrada da
porta XOR. O software realiza apenas uma
curva de 90°, assim, você para em um ponto
intermediário qualquer e continua desta nova
ponta solta, até completar a conexão.
64
Você também pode desenhar a partir de uma
entrada qualquer até uma linha já desenhada,
poisosoftwarefazaconexãoautomaticamente.
Termine o processo de interligação conforme
o seu projeto, a partir das funções lógicas
extraídas dos mapas de Karnaugh.
Agora, precisamos dar nomes aos pinos de
entrada (input) e saída (output). Dê um duplo
clique em pin_name e uma caixa de texto se
abrirá. Escreva o nome da variável conforme
o seu projeto e clique em OK. Neste exemplo,
utilizaremos os nomes das variáveis do
projeto das luzes veiculares. Repita o mesmo
procedimento para todos os pin_name. Clique
no ícone Save, na barra de ferramentas. Uma
caixa Save As será aberta, bastando clicar em
Salvar. Observe que o nome do arquivo muda
de block1 para senai1.
Nesse momento estamos prontos para iniciar
o processo de preparação para gravação do
CPLD, no kit EXSTO.
Clique em Processing na barra de ferramentas
e selecione Start Compilation.
65
Em até 10s surgirá uma tela com a mensagem
Full Compilation was successful. Um alerta
(warning) é normal desde que não seja Critical
ou Error. Nesta situação, deve-se rever a
montagem do diagrama. Se tudo estiver em
ordem, clique em OK.
Agora, precisamos abrir mais um módulo do
projeto, mas não faremos nenhuma interação
com ele. Volte à barra de ferramentas. Clique
em File→New, selecione VHDL file e clique
OK.
Você terá uma tela em branco e perceberá a
abertura de uma pasta Vhdl1.vhd. Clique no
ícone Save da barra de ferramentas.
Volte à barradeferramentasAssignments→Pins.
Será aberta uma tela com a pinagem do CPLD.
Observe que há uma planilha na parte inferior
com os labels que você estabeleceu e inseriu
no diagrama. Agora, precisamos indicar quais
pinos de I/O vamos utilizar.
No desenho do CPLD, eles estão representados
por círculos brancos. Para facilitar o
entendimento podemos adotar, como
entradas, os pinos de 18 a 28 e, como saídas,
os pinos de 06 a 40.
Em cada linha da planilha, na parte inferior da
tela, dê um duplo clique na célula da coluna
Location. Será aberta uma lista de opções
com pinos do CPLD. Você só deve escolher
aqueles do tipo PIN_XX I/O. Como CFM é
uma entrada, monte na sequência da tabela
verdade, do MSB até o LSB, ou seja, CFM, P2,
P12
e teremos:
66
Observe que os pinos selecionados ficaram na
cor marrom. Caso tenha errado, basta clicar
com o botão direito do mouse sobre a célula
da planilha, selecionar Edit→Cut e o campo
ficará limpo.
Repita o processo para as saídas utilizando os
mesmos critérios anteriores, ou seja, se FM,
FA e LA3
são as saídas, associamos assim:
Com a nomeação de acordo com o diagrama
esquemático, basta voltar na barra de
ferramentas e selecionar File→Close.
Ao retornar à tela principal, observamos que as
entradasesaídasagoratêmapinagemassociada
aos labels. Para fazer a compilação novamente,
clique em Processing →Start Compilation,
barra de ferramentas. Em até 10s surgirá
uma tela com a mensagem Full Compilation
was successful. Um alerta (warning) é normal
desde que não seja Critical ou Error. Nesta
situação deve-se rever a denominação dos
pinos. Estando tudo em ordem, clique em OK.
Não se esqueça de salvar o projeto, clicando
em Save na barra de ferramentas.
67
Com isso, o projeto está pronto para ser gravado no CPLD.
Saiba mais...
Para conhecer uma proposta de solução completa para o
projeto de exemplo das luzes automotivas, acesse seu ambiente
virtual de aprendizagem:
Item 03 - Instalação da Ferramenta para projetos com CPLD
2
CFM PIN_18; P2 PIN_19; P1 PIN_20;
3
FM PIN_6; FA PIN_5; LA PIN_4;
68
CIRCUITOS DE CONTROLE PARA IGBT UTILIZANDO CPLD
Certamente você já conhece o transistor BIPOLAR e o MOSFET (MOS FIELD EFFECT
TRANSISTOR) para acionamento de sistemas de potência, via meia ponte, ponte H ou como
chave. Como sabemos, eles possuem limitações em função da temperatura, potência controlada
direta e frequência de trabalho. Mesmo com limitações, devido ao custo mais baixo, essas opções
continuam sendo bastante utilizadas em alguns projetos.
Para resolver parte dos problemas de acionamento de transistor bipolar em potência e reduzir o
custo de um MOSFET de potência com resistência direta na ordem de miliohms, podemos utilizar
o IGBT (INSULATED GATE BIPOLAR TRANSISTOR), que une as características de entrada do
transistor MOSFET com a de saída do transistor BIPOLAR.
Controle PWM com IGBT canal N
Ponte H com IGBT canal N e P.
69
O IGBT é um dispositivo semicondutor que se caracteriza por apresentar alta impedância de
entrada, via porta (G) e baixa impedância de saída, entre coletor (C)-emissor (E). É mais comum
com canal N, por conta das aplicações com inversores. No exemplo a seguir, temos um IGBT
canal N por enriquecimento da empresa IR (International Rectifier) para aplicações de alta tensão
e corrente.
Criado por Carl Frank Wheatley Jr., o IGBT surgiu por volta dos anos 1980 nos laboratórios da
RCA (Radio Corporation of America). Podemos encontrá-lo em sistemas embarcados, motores
híbridos em carros elétricos, controle em ar condicionado e refrigeração (como em máquinas de
vendas), sistemas de conversão de energia (UPS, Nobreak, Inverters), reatores eletrônicos e no
acionamento do flash em smartphones e câmeras digitais.
Observando as características de tensão e corrente do projeto, seja direta ou reversa, além das
características mecânicas do invólucro, os IGBTS podem substituir, sem muitas preocupações, os
transistores MOSFET.
Já em circuitos com transistores bipolares, deve-se modificar a excitação de base (normalmente
com resistores da ordem de quilohms) e estabelecer o ponto de operação.
Observe, a seguir, uma aplicação do IGBT em reator eletrônico, onde o MOSFET IRF830 (500 V/
4,5 A) foi substituído por um IGBT IRG4BC20UPbF (600 V/ 6,5 A), ambos do fabricante IR e
com invólucro TO-220.
Esquema de um reator eletrônico com IGBT canal N, fator de potência 0,97, para duas
lâmpadas de 40 W em 127 VAC.
70
E, como podemos integrar nosso CPLD com uma interface de potência ao IGBT?
Vejamos, a seguir, a zona útil de aplicação para este dispositivo. Perceba como o IGBT soma
características do BIPOLAR e do MOSFET.
Para algumas aplicações com IGBT, assim como para os demais semicondutores, é fundamental
a isolação entre os sistemas de controle e a parte de potência, evitando que o terra digital seja
contaminado pelo terra analógico, sem falar no diferencial entre a tensão de barramento no coletor
(VBUS) e as demais polarizações. Para resolver essa situação, podemos utilizar transformadores
isoladores,opto-acopladoresouaconjunçãodeambos.Nestescasos,existemnormasinternacionais
a serem seguidas, como IEC60664-1, IEC60664-3, IEC61800-5-1 e EN50124-1. Veja o exemplo a
seguir:
Relação Potência x Frequência para semicondutores de silício (adaptado
de SHEN 2014)
Acionamento de um motor trifásico com IGBT canal N (adaptado do application re-
port SLLA354)
71
Para aplicações em que o momento do acionamento é crucial, usamos gate drives e/ou 3 phase
bridge drivers como IRS2111, IR2133, etc. da IR.
Os sinais de entrada FAULT, CAO, LIN1.2.3 e HIN1.2.3 para cada par de IGBTs, serão gerados
por lógica do seu projeto, a partir do CPLD, em programação VHDL ou diagrama esquemático.
Se houver necessidade, as saídas do CPLD podem ser programadas para coletor aberto.
Aplicação do 3 phase bridge driver IR2130 com IGBT (adaptado do datasheet)
72
CIRCUITOS DE CONTROLE DE TIRISTORES UTILIZANDO CPLD
Sempre que falamos de Tiristores, esta informação nos remete a dispositivos semicondutores
conhecidos, tais como, o SCR (Silicon Controled Rectifier), TRIAC (Triode for Alternating
Current), DIAC (Diode for Alternating Current). Mas também podemos incluir, nesta lista, os
novos dispositivos ACS/ACST (Alternating Current Switch). Estes últimos são TRIACs e possuem
proteção contra sobretensão, o que dispensa o uso do snubber e MOV (Metal Oxide Varistor) e
reduz, assim, o custo do projeto.
E como sabemos qual usar?
Escolhemos entre o TRIAC e o SCR em função do valor da potência de carga a ser controlada,
do tipo de regime CA (corrente alternada) ou CC (corrente contínua) e do tipo de controle que
desejamos usar. Até 40 A em CA, podemos optar pelo TRIAC e, acima disso, recomenda-se o SCR.
Sabemos que um TRIAC pode ser disparado nos quatros quadrantes, mas os fabricantes garantem
a certeza de disparo no primeiro e terceiro quadrantes. Nosso CPLD trabalha com sinal de 0-5 V
e, fica claro que trabalharemos no primeiro quadrante, evitando gastos adicionais e desnecessários
com conversão do sinal de saída. Já se optarmos pelo ACS/ACST, devemos ficar atentos à
informação sobre qual o melhor quadrante, visto que ele não atua em todos.
Simbologia de tiristores (adaptado do folder da ST Microelectronics).
Quadrantes de disparo para TRIAC e ACS/ACST (adaptado do application note AN3168)
FAMÍLIA TIPO
QUADRANTE DE DISPARO
Q1 Q2 Q3 Q4
Triac
Standard Sim Sim Sim Sim
Snubberless and logic level Sim Sim Sim Não
Snubberless high temperature Sim Sim Sim Não
ACS / ACST
ACS Não Sim Sim Não
ACST Sim Sim Sim Não
73
O disparo no primeiro quadrante é de fácil entendimento, mas como se dá esse disparo no terceiro
quadrante? Vejamos a seguir:
Note que no Q1 a corrente IG e tensão VG (entre G e A1) são positivas, enquanto que, no Q2 a
corrente IG é negativa e a tensão VG também.
E, como fazer o acionamento utilizando uma interface não isolada? Vejamos a seguir.
Os valores das variáveis para cálculo de RG estão disponíveis no datasheet do tiristor escolhido.
Valores práticos serão encontrados entre 100 e 560 Ω. Os valores de R1 e R2 são sugeridos para
VDD = 5 V e tiristores com baixa corrente de trigger, por isso, deve-se ter atenção especial ao
valor da corrente IG necessária para disparo do TRIAC. Caso o sinal e/ou VDD sejam de 3,3 V,
recomenda-se calcular o valor ideal olhando o datasheet do transistor de sinal Q1 escolhido, com
atenção ao valor da corrente de base adequada para levar o componente à saturação.
O sinal de I/O port é proveniente do pino escolhido como output na programação de pinos do
CPLD. Mas como podemos resolver o problema da falta de isolação? Usando um opto acoplador
para CA com driver de saída por TRIAC. Observe a figura a seguir:
Exemplo de disparo no Q1, à esquerda, e no Q3, à direita, (adaptado do application
note AN3168 da ST).
Exemplo de disparo não isolado do TRIAC/ACS
(adaptado do application note AN2986 da ST).
74
Exemplo de disparo não isolado do TRIAC/ACS (adaptado
do application note AN2986 da ST).
O exemplo anterior aciona o tiristor com lógica de saída em nível lógico alto (1) e não extrapola o
consumo de corrente máxima de saída (IOUT) ou em nível alto (IOH) do CPLD (25 mA naquele
utilizado no kit EXSTO), ou seja, podemos ligar outros dispositivos na mesma saída de I/O. O
valor de R2 é referência (VDD = 5 V) e deve-se verificar a sugestão de corrente direta do fabricante
(IF = 15 mA para 3010 e 30 mA para 3020 no caso da Fairchild) ou adotar metade do valor de
corrente direta (IF) recomendada no datasheet do fabricante do MOC escolhido, com análise de
circuito em função do valor de tensão VDD e compatível com a corrente de coletor do transistor
Q1.
Pode-se programar o CPLD com lógica em nível baixo (0) reduzindo custo, com a retirada do
transistor bipolar, mas com atenção ao valor da corrente de saída em nível baixo (IOL) do CPLD.
O MOC3010 é usado para sistemas em 127 V. Para 220 V, deve-se utilizar o MOC3020. A sugestão
para R1 e o cálculo de RG permanecem inalterados. Valores de C1 acima de 10 nF causam
arredondamento na borda de subida, na transição do sinal de nível baixo para alto. E a situação
piora, quanto maior for o valor da frequência de trabalho (se houver esta grandeza envolvida no
projeto).
DESAFIO 4
Agora que você já sabe como criar um desenho esquemático utilizando
o software Quartus II da ALTERA e estudou alguns conceitos de
acionamento em potência com CPLD, chegou o momento de retomar
o desafio 4.
Retorne à página principal do ambiente virtual de aprendizagem e
participedodesafio4.Lembre-sedequeaelaboraçãodatarefaproposta
deverá ser realizada em grupo. Você terá à disposição, um ambiente
de grupo, para debater com os colegas e um espaço destinado para a
entrega da tarefa.
	 Qualquer dúvida, entre em contato com o seu tutor.
		 Bom trabalho!
RECAPITULANDO
Neste desafio você estudou:
•	 Como montar um diagrama esquemático no software Quartus II;
•	 Como integrar um CPLD com interface de potência com IGBT; e
•	 Como integrar um CPLD com interface de potência com Tiristores.
Você deverá participar da seguinte atividade:
•	 Desafio 4 – atividade em grupo: Montar o diagrama esquemático a partir das funções extraí-
das dos mapas de Karnaugh, criadas no desafio 3.
REFERÊNCIAS
BIBLIOGRÁFICAS
77
REFERÊNCIAS BIBLIOGRÁFICAS
ALTERA. Quartus II Introduction Using Schematic Design.
Disponível em: < ftp://ftp.altera.com/.../tut_quartus_intro_schem.pdf>.
Acesso em: 13 abril 2015.
ALTERA. MAX 3000A - Programmable Logic Device Family. Rev 3.5 , 2006.
Disponível em: < https://www.altera.com/en_US/pdfs/literature/ds/m3000a.pdf>.
Acesso em: 13 abr. 2015.
ALTERA. Datasheet do CPLD EPM3064ALC44-10
Disponível em: < www.altera.com>.
Acesso em: 13 abr.2015.
ALTERA. Datasheet do FPGA Cyclone V
Disponível em: < www.altera.com>.
Acesso em: 13 abr.2015.
ALTERA. Quartus II Introduction Using VHDL Design
Disponível em: < ftp://ftp.altera.com/.../tut_quartus_intro_vhdl.pdf>.
Acesso em: 13 abr.2015.
ATMEL. Datasheet do FPGA AT40KAL
Disponível em: < www.atmel.com>.
Acesso em: 13 abr.2015.
ATMEL. Datasheet do FPGA AT40KAL
Disponível em: < www.atmel.com>.
Acesso em: 13 abr.2015.
BALIGA, B. J. The IGBT Device: Physics, Design and Applications of the Insulated Gate. United
Kingdom: Ed. Elsevier, 2015.
BIGNELL, J.W.; DONOVAN, R. Eletrônica Digital. 5. ed. São Paulo: Cengage Learning, 2010.
CALDEIRA, U. G. Notas de aula de Eletrônica Digital – SENAI CFP 1.18. Santo André - SP, 2015
CALDEIRA, U. G. Notas de aula de Eletrônica de Potência – SENAI CFP 1.18. Santo André - SP,
2012.
EXSTO. Teoria, Caderno de Experiências e Manual do XD301 - CPLD. Santa Rita do Sapucaí -
MG, 2000.
IEEE. 1076-2008 - IEEE Standard VHDL Language Reference Manual
Disponível em: < https://standards.ieee.org/findstds/standard/1076-2008.html>.
Acesso em: 13 abril 2015.
78
INTERNET. Significado de postulado e noviciado
Disponível em: < http://www.dicionarioinformal.com.br>.
Acesso em: 13 abril 2015.
INTERNATIONAL RECTIFIER. Datasheet do IGBT IRG4BC20UPbF
Disponível em: <http://www.irf.com/product/Gate-Driver-ICs-and-Controllers-General-
Purpose-Gate-Driver-ICs/_/N~1njcii>.
Acesso em: 13 abril 2015.
KUPHALDT, T. R. Lessons In Electric Circuits, Volume IV - Digital. 4. ed., 2007.
ON SEMICONDUCTOR. IGBT Applications Handbook
Disponível em: <http://www.onsemi.com/pub_link/Collateral/HBD871-D.PDF>.
Acesso em: 13 abril 2015.
PITHADIA, S. Is your IGBT gate driver power supply optimized? Application Report
SLLA354 da TEXAS INSTRUMENTS
Disponível em: <www.ti.com/lit/an/slla354/slla354.pdf>.
Acesso em: 13 abril 2015.
SHEN, J. The Past, Present, and Future of IGBT Technology. Illinois Institute of Tecnology -
2014
Disponível em: <http://publish.illinois.edu/grainger-ceme/files/2014/06/Spring4_7_14JohnShen_
Slides1.pdf>.
Acesso em: 13 abril 2015.
ST MICROELECTRONICS. AN308 Application note
Disponível em: <http://www.datasheetarchive.com/dl/Datasheet-02/DSA0027791.pdf>.
Rev4, 2008. Acesso em: 13 abril 2015.
ST MICROELECTRONICS. AN308 Application note
Disponível em: <http://www.st.com/web/en/resource/technical/document/application_note/
CD00266635.pdf>.
Rev1, 2010. Acesso em: 13 abril 2015.
ST MICROELECTRONICS. AN308 Application note
Disponível em: <http://www.st.com/web/en/resource/technical/document/application_note/
CD00235575.pdf >.
Rev1, 2009. Acesso em: 13 abril 2015.
ST MICROELECTRONICS. AN308 Application note
Disponível em: <http://www.st.com/st-web-ui/static/active/en/resource/technical/document/
application_note/CD00003854.pdf>.
Rev3, 2009. Acesso em: 13 abril 2015.

Mais conteúdo relacionado

Mais procurados

PWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosPWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosEduardo Henriquez
 
Microcontroladores AVR
Microcontroladores AVRMicrocontroladores AVR
Microcontroladores AVRabemen
 
Marco teórico de pid.1
Marco teórico de pid.1Marco teórico de pid.1
Marco teórico de pid.1aaronman
 
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN CEJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN CLuis Zurita
 
Sistemas de control en tiempo discreto
Sistemas de control en tiempo discretoSistemas de control en tiempo discreto
Sistemas de control en tiempo discretoANGULOA
 
Guia de practicas s7 1200 tia portal
Guia de practicas s7 1200 tia portalGuia de practicas s7 1200 tia portal
Guia de practicas s7 1200 tia portalDavidSnchez297251
 
U1 Sensores Diseño de Productos Electrónicos con Microcontroladores
U1 Sensores  Diseño de Productos Electrónicos con MicrocontroladoresU1 Sensores  Diseño de Productos Electrónicos con Microcontroladores
U1 Sensores Diseño de Productos Electrónicos con MicrocontroladoresSENA
 
indrodução automação industrial
indrodução automação industrialindrodução automação industrial
indrodução automação industrialelliando dias
 
Clp completa
Clp completaClp completa
Clp completapanelada
 
6 aplicaciones del transistor bjt
6 aplicaciones  del transistor bjt6 aplicaciones  del transistor bjt
6 aplicaciones del transistor bjtAndresChaparroC
 
microcontroladores.ppt
microcontroladores.pptmicrocontroladores.ppt
microcontroladores.pptFreddyEspejo3
 

Mais procurados (20)

PWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosPWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros Involucrados
 
Microcontroladores AVR
Microcontroladores AVRMicrocontroladores AVR
Microcontroladores AVR
 
Entradas de plc
Entradas de plcEntradas de plc
Entradas de plc
 
Marco teórico de pid.1
Marco teórico de pid.1Marco teórico de pid.1
Marco teórico de pid.1
 
Timer 0 - Pic16F877A
Timer 0 - Pic16F877ATimer 0 - Pic16F877A
Timer 0 - Pic16F877A
 
Pld
PldPld
Pld
 
Flip Flops Parte 1
Flip Flops Parte 1Flip Flops Parte 1
Flip Flops Parte 1
 
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN CEJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
 
Sistemas de control en tiempo discreto
Sistemas de control en tiempo discretoSistemas de control en tiempo discreto
Sistemas de control en tiempo discreto
 
Guia de practicas s7 1200 tia portal
Guia de practicas s7 1200 tia portalGuia de practicas s7 1200 tia portal
Guia de practicas s7 1200 tia portal
 
Dsp2 filtros
Dsp2 filtrosDsp2 filtros
Dsp2 filtros
 
Amplificador operacional
Amplificador operacionalAmplificador operacional
Amplificador operacional
 
Amplificadores operacionais
Amplificadores operacionaisAmplificadores operacionais
Amplificadores operacionais
 
U1 Sensores Diseño de Productos Electrónicos con Microcontroladores
U1 Sensores  Diseño de Productos Electrónicos con MicrocontroladoresU1 Sensores  Diseño de Productos Electrónicos con Microcontroladores
U1 Sensores Diseño de Productos Electrónicos con Microcontroladores
 
indrodução automação industrial
indrodução automação industrialindrodução automação industrial
indrodução automação industrial
 
Clp completa
Clp completaClp completa
Clp completa
 
18 controle e automação industrial
18   controle e automação industrial18   controle e automação industrial
18 controle e automação industrial
 
6 aplicaciones del transistor bjt
6 aplicaciones  del transistor bjt6 aplicaciones  del transistor bjt
6 aplicaciones del transistor bjt
 
DIODO FICHA TECNICA
DIODO FICHA TECNICADIODO FICHA TECNICA
DIODO FICHA TECNICA
 
microcontroladores.ppt
microcontroladores.pptmicrocontroladores.ppt
microcontroladores.ppt
 

Destaque

Apresentação da disciplina - Ética e Engenharia
Apresentação da disciplina - Ética e EngenhariaApresentação da disciplina - Ética e Engenharia
Apresentação da disciplina - Ética e EngenhariaMarcel Gois
 
TELECONFERÊNCIA 4T16
TELECONFERÊNCIA 4T16TELECONFERÊNCIA 4T16
TELECONFERÊNCIA 4T16Localiza
 
Estrategias de decision
Estrategias de decisionEstrategias de decision
Estrategias de decisionLorenzo Alonso
 
¿Por qué es importante la Mejora del Diagnóstico?
¿Por qué es importante la Mejora del Diagnóstico?¿Por qué es importante la Mejora del Diagnóstico?
¿Por qué es importante la Mejora del Diagnóstico?Lorenzo Alonso
 
ZOOM - WHO WE ARE
ZOOM - WHO WE AREZOOM - WHO WE ARE
ZOOM - WHO WE AREJames Chang
 
POLÍTICAS DE CALIDAD, SYSO, MEDIO AMBIENTE.
POLÍTICAS DE CALIDAD, SYSO, MEDIO AMBIENTE.POLÍTICAS DE CALIDAD, SYSO, MEDIO AMBIENTE.
POLÍTICAS DE CALIDAD, SYSO, MEDIO AMBIENTE.Mafe Mafer
 
Guia insercion al blog (Camilo Higuavita)
Guia insercion al blog (Camilo Higuavita)Guia insercion al blog (Camilo Higuavita)
Guia insercion al blog (Camilo Higuavita)Mafe Mafer
 
¿Podemos mejorar el diagnostico desde la enseñanza de la Medicina?
¿Podemos mejorar el diagnostico desde la enseñanza de la Medicina?¿Podemos mejorar el diagnostico desde la enseñanza de la Medicina?
¿Podemos mejorar el diagnostico desde la enseñanza de la Medicina?Lorenzo Alonso
 
Presentacion informe empresamm.
Presentacion informe empresamm.Presentacion informe empresamm.
Presentacion informe empresamm.Mafe Mafer
 
Choice based art instruction for middle years and beyond
Choice based art instruction for middle years and beyondChoice based art instruction for middle years and beyond
Choice based art instruction for middle years and beyondDennis Wilson
 
OnDemand Home Care Pvt. Ltd. (Dirk Da Dhobi) Pitch Deck Jan 2017
OnDemand Home Care Pvt. Ltd. (Dirk Da Dhobi) Pitch Deck Jan 2017OnDemand Home Care Pvt. Ltd. (Dirk Da Dhobi) Pitch Deck Jan 2017
OnDemand Home Care Pvt. Ltd. (Dirk Da Dhobi) Pitch Deck Jan 2017Romil Bhakuni
 

Destaque (20)

Apresentação da disciplina - Ética e Engenharia
Apresentação da disciplina - Ética e EngenhariaApresentação da disciplina - Ética e Engenharia
Apresentação da disciplina - Ética e Engenharia
 
TELECONFERÊNCIA 4T16
TELECONFERÊNCIA 4T16TELECONFERÊNCIA 4T16
TELECONFERÊNCIA 4T16
 
De los Juegos digitales a la escritura
 De los Juegos digitales  a la escritura De los Juegos digitales  a la escritura
De los Juegos digitales a la escritura
 
Comicsenlinea
ComicsenlineaComicsenlinea
Comicsenlinea
 
Estrategias de decision
Estrategias de decisionEstrategias de decision
Estrategias de decision
 
¿Por qué es importante la Mejora del Diagnóstico?
¿Por qué es importante la Mejora del Diagnóstico?¿Por qué es importante la Mejora del Diagnóstico?
¿Por qué es importante la Mejora del Diagnóstico?
 
ZOOM - WHO WE ARE
ZOOM - WHO WE AREZOOM - WHO WE ARE
ZOOM - WHO WE ARE
 
Actividad
ActividadActividad
Actividad
 
mgutierreztic
mgutierrezticmgutierreztic
mgutierreztic
 
Todoeducared2011
Todoeducared2011Todoeducared2011
Todoeducared2011
 
Notaperiodistica
NotaperiodisticaNotaperiodistica
Notaperiodistica
 
POLÍTICAS DE CALIDAD, SYSO, MEDIO AMBIENTE.
POLÍTICAS DE CALIDAD, SYSO, MEDIO AMBIENTE.POLÍTICAS DE CALIDAD, SYSO, MEDIO AMBIENTE.
POLÍTICAS DE CALIDAD, SYSO, MEDIO AMBIENTE.
 
Guia insercion al blog (Camilo Higuavita)
Guia insercion al blog (Camilo Higuavita)Guia insercion al blog (Camilo Higuavita)
Guia insercion al blog (Camilo Higuavita)
 
¿Podemos mejorar el diagnostico desde la enseñanza de la Medicina?
¿Podemos mejorar el diagnostico desde la enseñanza de la Medicina?¿Podemos mejorar el diagnostico desde la enseñanza de la Medicina?
¿Podemos mejorar el diagnostico desde la enseñanza de la Medicina?
 
Diapositivas sena
Diapositivas senaDiapositivas sena
Diapositivas sena
 
radiacion linked in
radiacion linked inradiacion linked in
radiacion linked in
 
Presentacion informe empresamm.
Presentacion informe empresamm.Presentacion informe empresamm.
Presentacion informe empresamm.
 
Choice based art instruction for middle years and beyond
Choice based art instruction for middle years and beyondChoice based art instruction for middle years and beyond
Choice based art instruction for middle years and beyond
 
Ruta7
Ruta7Ruta7
Ruta7
 
OnDemand Home Care Pvt. Ltd. (Dirk Da Dhobi) Pitch Deck Jan 2017
OnDemand Home Care Pvt. Ltd. (Dirk Da Dhobi) Pitch Deck Jan 2017OnDemand Home Care Pvt. Ltd. (Dirk Da Dhobi) Pitch Deck Jan 2017
OnDemand Home Care Pvt. Ltd. (Dirk Da Dhobi) Pitch Deck Jan 2017
 

Semelhante a Cpld top dos tops

Slides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGASlides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGAandrecasp
 
Open Cores: Projeto Open "Hardware" com FPGA
Open Cores: Projeto Open "Hardware" com FPGAOpen Cores: Projeto Open "Hardware" com FPGA
Open Cores: Projeto Open "Hardware" com FPGACampus Party Brasil
 
Introdução-à-Programação-Embarcada-com-Arduino.pdf
Introdução-à-Programação-Embarcada-com-Arduino.pdfIntrodução-à-Programação-Embarcada-com-Arduino.pdf
Introdução-à-Programação-Embarcada-com-Arduino.pdfCliverRaimundo2
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptxfmtpereira
 
Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...
Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...
Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...André Curvello
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Flávia Martins
 
Curso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXPCurso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXPFabio Souza
 
Introdução ao Matlab - simulink coder support package
Introdução ao Matlab - simulink coder support packageIntrodução ao Matlab - simulink coder support package
Introdução ao Matlab - simulink coder support packageEmbarcados
 
Webinar: RISC-V: Novidades de 2020
Webinar: RISC-V: Novidades de 2020Webinar: RISC-V: Novidades de 2020
Webinar: RISC-V: Novidades de 2020Embarcados
 
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014Fabio Souza
 
1LogicaProgramavelResolvido (1).pptx
1LogicaProgramavelResolvido (1).pptx1LogicaProgramavelResolvido (1).pptx
1LogicaProgramavelResolvido (1).pptxAlvaro Silva
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
PLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platformPLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platformRenato Mintz
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!Intel Software Brasil
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!Luciano Palma
 

Semelhante a Cpld top dos tops (20)

Introducaoplds
IntroducaopldsIntroducaoplds
Introducaoplds
 
Slides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGASlides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGA
 
Open Cores: Projeto Open "Hardware" com FPGA
Open Cores: Projeto Open "Hardware" com FPGAOpen Cores: Projeto Open "Hardware" com FPGA
Open Cores: Projeto Open "Hardware" com FPGA
 
Apresentação
ApresentaçãoApresentação
Apresentação
 
Tutorial de2
Tutorial de2Tutorial de2
Tutorial de2
 
Introdução-à-Programação-Embarcada-com-Arduino.pdf
Introdução-à-Programação-Embarcada-com-Arduino.pdfIntrodução-à-Programação-Embarcada-com-Arduino.pdf
Introdução-à-Programação-Embarcada-com-Arduino.pdf
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptx
 
LEON3 e KIT ALTERA.
LEON3 e KIT ALTERA.LEON3 e KIT ALTERA.
LEON3 e KIT ALTERA.
 
Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...
Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...
Dispositivos IoT com FPGAs - Alto poder de processamento para crescentes dema...
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4
 
Curso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXPCurso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXP
 
Introdução ao Matlab - simulink coder support package
Introdução ao Matlab - simulink coder support packageIntrodução ao Matlab - simulink coder support package
Introdução ao Matlab - simulink coder support package
 
Webinar: RISC-V: Novidades de 2020
Webinar: RISC-V: Novidades de 2020Webinar: RISC-V: Novidades de 2020
Webinar: RISC-V: Novidades de 2020
 
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014
 
1LogicaProgramavelResolvido (1).pptx
1LogicaProgramavelResolvido (1).pptx1LogicaProgramavelResolvido (1).pptx
1LogicaProgramavelResolvido (1).pptx
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
CPBR7 - Existe vida depois do Arduino?
CPBR7 - Existe vida depois do Arduino?CPBR7 - Existe vida depois do Arduino?
CPBR7 - Existe vida depois do Arduino?
 
PLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platformPLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platform
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
 

Cpld top dos tops

  • 3. 3 APRESENTAÇÃO Imagine que você atue como projetista em uma empresa que desenvolve jogos eletrônicos. Sua nova missão, na empresa, será elaborar um novo jogo utilizando a tecnologia CPLD. O jogo é baseado em uma brincadeira clássica de criança que, provav- elmente, você já conheça. Trata-se do jogo papel, pedra ou tesoura. As regras são simples: dois jogadores escolhem, ao mesmo tempo, uma das opções: papel, pedra ou tesoura. O vencedor depende da combinação dos resultados: papel vence pedra, tesoura vence papel e pedra vence tesoura. Mas é preciso lembrar que, além de indicar o vencedor, existem condições especiais que precisam ser sinalizadas. Uma das condições ocorre em casos de empate, e a outra em situações não permiti- das, por exemplo, quando apenas um ou nenhum dos jogadores participa do jogo ou quando um ou mais jogadores selecionam mais de uma opção. Para facilitar seus estudos, a criação do jogo será feita em cinco etapas. Cada uma corresponderá a um desafio que você precisará enfrentar para ter seu trabalho concluído satisfatoriamente.
  • 4. 4 DESAFIOS Para facilitar seus estudos, a programação do microcontrolador será feita em cinco etapas. Cada uma corresponderá a um desafio que você precisará enfrentar para ter seu trabalho concluído sat- isfatoriamente. Desafio 1 – Identificar as variáveis de entrada e saída O desafio 1 consiste em identificar as variáveis de entradas e saídas necessárias para o funcionamento do jogo. Além de indicar as variáveis, você deverá elaborar postulados para explicar a lógica utilizada no seu projeto. Desafio 2 – Montar a tabela verdade O desafio 2 consiste em montar uma tabela verdade com as variáveis de entradas e saídas definidas no desafio 1. Desafio 3 – Montar os mapas de Karnaugh e extrair as respectivas funções O desafio 3 consiste em montar os mapas de Karnaugh com os valores binários de cada célula da tabela verdade e retirar as respectivas funções booleanas. Desafio 5 – Gravar o circuito lógico no CPLD O desafio 5 consiste em gravar, no CPLD, o circuito lógico para o funcionamento do jogo. Desafio 4 – Desenhar o circuito lógico no software do CPLD O desafio 4 consiste em desenhar o circuito lógico no software do CPLD.
  • 6. 6 APRESENTAÇÃO Neste desafio, você estudará os detalhes necessários para iniciar a elaboração de um projeto para dispositivos CPLD (Complex Programmable Logic Devices) utilizando a suíte de aplicativos Quar- tus II do fabricante Altera. No final deste desafio você terá subsídios para: • Reconhecer as vantagens do uso do CPLD; • Identificar variáveis de entrada e saída no descritivo de aplicações de um projeto. Preparado? Então siga em frente!
  • 7. 7 FPGA OU CPLD? Nos últimos tempos, essa tem sido uma pergunta comum nos ambientes de desenvolvimento: Qual é a melhor tecnologia, FPGA ou CPLD? É frequente encontrarmos defensores de uma ou outra tec- nologia, mas a escolha mais adequada depende de cada projeto. Isso acontece porque, assim como qualquer outra tecnologia, existem vantagens e desvantagens na escolha, portanto, é preciso analisar as características de cada uma e as necessidades do projeto para, então, escolher qual é a melhor. E como professores, é muito importante abordar essa questão com nossos alunos, para que não saiam da escola bitolados em uma ou outra tecnologia. Ao longo deste curso, estudaremos um pouco sobre CPLD e microcontroladores, para experimen- tarmos as vantagens e desvantagens de cada uma. Nesta unidade falaremos sobre o CPLD. Está curioso para conhecer mais sobre essa tecnologia? Então siga em frente! Além de FPGA e CPLD, não podemos nos esquecer que existem outras tecnologias como, por exemplo, os microcontroladores, e que todas devem ser levadas em consideração na escolha para um projeto.
  • 8. 8 ARQUITETURAS Você já percebeu a dificuldade para comprar portas lógicas e alguns circuitos derivados que estão em desuso para a manutenção de máquinas e sistemas? Com isso, surgem novos dispositivos como os FPGA (Field Programmable Gate Arrays) e CPLD (Complex Programmable Logic Device), que dif- erem entre si na arquitetura interna, mais especificamente pela utilização de blocos lógicos simples (FPGA) e complexos (CPLD). Clique nas abas abaixo e veja as principais características de CPLD e FPGA. FPGA O Field Programmable Gate Arrays (FPGA) é um circuito integrado usado desde a década de 1980, que permite aos desenvolvedores programarem uma lógica digital personalizada neste dispositivo, mesmo estando instalado em campo. Desde então, este tem evoluído de uma simples interface lógica para um circuito integrado sofisticado, com os seus próprios microprocessadores, blocos de memória e I/O garantindo flexibilidade, redução de cus- tos e agilidade nos cronogramas de projetos. Como característica positiva, este trabalha com velocidades maiores que o CPLD e per- mite maior densidade de estruturas lógicas por igual área na pastilha semicondutora. Como característica negativa está o fato deste não possuir memória de programação e perder os dados após ser desenergizado. Para corrigir isto, associamos à parte, um dis- positivo de programação. O problema já foi corrigido em alguns produtos atuais com a colocação de memorias flash e EEPROM. Veja um exemplo de FPGA utilizado para controlar um motor. No exemplo aparece a arquitetura interna de um FPGA e as ligações externas. O exemplo se refere a um FPGA da família Cyclone, do fabricante Altera. Fonte: datasheet Cyclone V
  • 9. 9 Saiba mais... Para saber mais sobre o FPGA, tipos disponíveis e aplicações, visite os sites de alguns fabricantes, na internet: www.xilinx. com.cc, www.altera.com, www.atmel.com. CPLD O CPLD (Complex Programmable Logic Device) é um circuito integrado composto de blocos lógicos formados por portas AND e OR, com arranjos de interconexões internas entre blocos de portas lógicas e com a capacidade de reprogramação. As portas lógicas de um CPLD podem ser configuradas, via programação, para formar circuitos lógicos complexos. Significa dizer que um único CPLD pode assumir uma combinação imensa de portas lógicas, com grande quantidade de entradas e saídas, ou seja, um CPLD pode substituir centenas (e mais) de circuitos integrados da família TTL (série 74) ou da família CMOS (série 40). Além disso, como as portas lógicas de CPLD são combinadas por meio de programação, elas podem ser reprogramadas a qualquer momento, o que facilita alterações no projeto. Se fossemos utilizar circuitos integrados da família TTL ou CMOS, qualquer alteração envolveria muito tempo e dinheiro, já que precisaríamos confeccionar uma nova PCI. A configuração interna de um CPLD varia de acordo com o modelo e com o fabricante, mas para que tenha uma ideia, veja um exemplo de diagrama em blocos de um CPLD do fabricante Altera: Fonte: datasheet do CPLD EPM3064ALC44-10 da ALTERA Cyclone V
  • 10. 10 Cada macrocélula do diagrama em blocos é formada por vários circuitos lógicos, com- postos de portas lógicas e registradores. A ilustração, a seguir, traz um exemplo de uma macrocélula: A programação de um CPLD costuma ser feita por meio de softwares, que são disponi- bilizados pelo próprio fabricante do CPLD. Significa dizer que cada fabricante tem um software e um procedimento específico de programação, mas de modo geral, o processo consiste em desenhar, no software, o circuito lógico combinacional desejado e carregar o desenho no CPLD. Desse modo, o CPLD assume as funções lógicas do seu desenho. Falaremos mais sobre a programação de CPLD ao longo deste curso, em momento opor- tuno. Fonte: datasheet do CPLD EPM3064ALC44-10 da ALTERA Saiba mais... Para saber mais sobre o CPLD, tipos disponíveis e aplicações, visite os sites de alguns fabricantes, na internet: www.xilinx. com.cc, www.altera.com, www.atmel.com.
  • 11. 11 Saiba mais... Para saber mais sobre o CPLD, tipos disponíveis e aplicações, visite os sites de alguns fabricantes, na internet: www.xilinx. com.cc, www.altera.com, www.atmel.com. MERCADO E APLICAÇÕES Para se ter uma ideia da necessidade que o mercado tem destes dispositivos, o fabricante Xilinx afirma que o tráfico global IP (largura de banda) é crescente e deve atingir em 2016, incríveis 110 Exabytes, estando hoje em torno de 69 Exabytes, com barramentos de dados de 512 a 2048 bits. Para poder atender a esta demanda, serão necessários sistemas que trabalhem naturalmente com 1 Tb/s (1 Terabyte por segundo) em aplicações de comunicação com múltiplos links, aplicações de trans- missão de vídeo digital em 1080p e 4K (e também 8K – Super H-Vision). Devido à alta velocidade, capacidade de expansão e flexibilidade para a programação, os CPLD e os FPGA são aliados impor- tantes para enfrentar esses desafios. Veja um exemplo de diagrama em blocos com a arquitetura de um sistema para processamento de vídeo com FPGA. Embora o FPGA e o CPLD representem um grande avanço na eletrônica digital, tenha em mente que os conceitos de eletrônica digital ainda são muito necessários. Significa dizer que mesmo nos projetos atuais, que utilizam mais variáveis de entrada e de saída e mais portas lógicas, os conceitos utilizados na época dos circuitos integrados TTL continuam sendo necessários. Por isso é impor- tante resgatar alguns conceitos de Eletrônica Digital. É o que faremos, a seguir. Siga adiante!
  • 12. 12 Importante! Portanto, o postulado é uma técnica importante para desenvolver projetos que envolvem eletrônica digital, pois você precisará identificar e mapear todas as variáveis e condições de entrada e de saída do projeto que está concebendo. POSTULADOS Consulte nos bons dicionários virtuais na internet o termo postulado e receberá como retorno três significados: • Ideia que se reconhece; • Premissa; e • Em algumas religiões, tempo de preparação para o noviciado. Para o nosso curso, portanto, o termo “Premissa” é o mais adequado. É comum, na sala de aula ou com nossos colegas, associarmos o termo postulado a alguma premissa, regra, convenção, lei, dire- triz ou mesmo uma simples informação. Quando relacionamos instalações elétricas com eletrônica digital, associamos lâmpada acesa como nível lógico um e lâmpada apagada como nível lógico zero. Ainda nessa linha, temos o interruptor acionado, representando nível lógico um ou não acionado, representando nível lógico zero. Nos dois exemplos, estabelecemos postulados.
  • 13. 13 ENTRADAS E SAÍDAS Agora que você relembrou o que é o postulado, é necessário estabelecer se este se refere a uma en- trada ou uma saída. Retomemos os exemplos do item anterior. Qual é a relação de dependência entre o interruptor e a lâmpada? Você atua sobre a lâmpada para acionar o interruptor ou aciona o interruptor para que a lâmpada acenda? Evidentemente a lâmpada só deverá acender quando o interruptor for acionado. Portanto, a relação de dependência da lâmpada com o interruptor indica que: =1 Lâmpada acesa Lâmpada apagada =0 =1 Interruptor acionado Interruptor não acionado =0 Interruptor = entrada Lâmpada = saída.
  • 14. 14 Para que entenda melhor a determinação de um postulado, preparamos um exemplo em que você poderá acompanhar a definição de um postulado para um projeto de iluminação automotiva. Ana- lise a necessidade do projeto e acompanhe a definição do postulado. Exemplo: definindo um postulado 1. DESCRIÇÃO DO PROJETO Muitos acidentes ocorrem por distração ao volante. Para minimizar este fato, uma em- presa de segurança automotiva resolveu implantar um dispositivo de segurança para controlar o acendimento das luzes de um veículo. O objetivo é fazer o acendimento da lanterna, do farol e do farol de neblina, de acordo com quatro modos de operação: Modo lanterna, modo esportivo, modo farol e lanterna e modo rural. O acendimento será feito por meio de uma chave rotativa de duas posições para o acionamento da lanterna e do farol, de uma chave para o farol de milha, e de um CPLD para fazer o controle. As luzes deverão acender de acordo com os critérios informados a seguir, e o sistema deverá im- pedir o acionamento de sequências diferentes do especificado. 1: Modo lanterna O modo lanterna será acionado quando a chave rotativa estiver na posição 1 e a chave do farol de milha estiver desligada. Nesse caso, apenas a lanterna deverá ser acionada. 2: Modo farol e lanterna O modo farol e lanterna será acionado quando a chave rotativa estiver na posição 2 e a chave do farol de milha estiver desligada. Nesse caso, o farol e a lanterna deverão ser acionados juntos.
  • 15. 15 2. DEFININDO UM POSTULADO PARA O PROJETO O primeiro passo para definir um postulado para o projeto é identificar a(s) entrada(s). De acordo com a descrição do projeto, temos 3 variáveis digitais de entrada sendo que para cada variável de entrada, nível lógico 0 indica que a respectiva chave está desligada e nível lógico 1 indica que está ligada. Quanto às saídas, para o caso deste projeto, elas rep- resentam as luzes do veículo, sendo que para cada variável de saída, nível lógico 0 indica que a respectiva luz está apagada e nível lógico 1 indica que ela está acesa. 3: Modo rural O modo rural será acionado quando a chave rotativa estiver na posição 2 e a chave do farol de milha estiver acionada. Nesse caso, o farol, a lanterna e o farol de milha deverão ser acionados juntos. 4: Modo esportivo O modo esportivo será acionado quando a chave rotativa estiver na posição 1 e a chave do farol de milha estiver acionada. Nesse caso, a lanterna e o farol de milha deverão ser acionados juntos. Desligado
  • 17. 17 DESAFIO 1 Agora que você conhece as principais características de um CPLD e as vantagens dessa tecnologia para os projetos de eletrônica digital na atu- alidade, chegou o momento de retomar o desafio 1. Retorne à página principal do ambiente virtual de aprendizagem e par- ticipe do desafio 1. Lembre-se de que a elaboração da tarefa proposta deverá ser realizada em grupo. Você terá à disposição um ambiente de grupo, para debater com os colegas e um espaço destinado para a entre- ga da tarefa. Bom trabalho! RECAPITULANDO Neste desafio você estudou: • Algumas dicas sobre como escolher o melhor dispositivo para o seu projeto; • Uma visão geral do dispositivo CPLD e seu mercado de aplicação; • Como identificar entradas e saídas. Você deverá participar da seguinte atividade: • Desafio 1 – atividade em grupo: Identificar as variáveis de entradas e saídas necessárias para o funcionamento do jogo eletrônico pedra, papel ou tesoura. Além de indicar as variáveis, você deverá elaborar postulados para explicar a lógica utilizada no seu projeto.
  • 19. 19 APRESENTAÇÃO Neste desafio você estudará alguns detalhes da suíte de ferramentas Quartus II do fabricante Altera e fará a instalação, para iniciar a elaboração de um projeto para dispositivos CPLD (Complex Pro- grammable Logic Devices). Também irá relembrar alguns conceitos de Eletrônica Digital, que são fundamentais para elaborar projetos com CPLD. No final deste desafio você terá subsídios para: • Selecionar e instalar uma ferramenta para projeto com CPLD; • Montar uma tabela-verdade com n bits e múltiplas saídas. Preparado? Então siga em frente!
  • 20. 20 FERRAMENTAS PARA PROJETOS COM CPLD A maior parte dos microcontroladores atuais vêm equipados com módulos A/D. Trata-se de conDispositivos como os FPGA (Field Programmable Gate Arrays) e CPLD (Complex Program- mable Logic Device) devem receber uma carga de informações para torná-los funcionais e, para que isto aconteça, necessitam de uma interface que comunique a necessidade do projetista com o dispositivo físico. Para cumprir as etapas de desenvolvimento, desde a concepção até a gravação no CPLD, cada fabri- cante disponibiliza uma suíte de ferramentas. Trata-se de um software, contendo todos os recursos necessários para desenhar circuitos lógicos e fazer a gravação em CPLD. Dependendo do fabri- cante, os softwares podem ser gratuitos ou pagos, e podem ser fornecidos por meio de download ou entregue em DVD ou outras mídias. Vejam alguns exemplos de software e seus respectivos fabricantes: Neste curso, utilizaremos a ferramenta Quartus II da Altera em sua versão 8.1, compativel com todos os sistemas Windows, da versão XP a 8.1. Esta ferramenta é do tipo IDE (Integrated Development Environment) ou Ambiente de Desenvolvi- mento Integrado, criada para interagir com componentes da Altera. SOFTWARE FABRICANTE GRATUITO SITE QUARTUS II Altera Sim, mas existem versões pagas, com recursos adicionais https://www.altera.com/products/de- sign-software/fpga-design/quartus-ii/over- view.html VIVADO DESIGN TOOLS Xilinx Sim, mas existem versões pagas, com recursos adicionais http://www.xilinx.com/support/download/ index.html/content/xilinx/en/download- Nav/vivado-design-tools.html PROCHIP DESIGNER Atmel Sim http://www.atmel.com/tools/wincupl.aspx Importante! Embora existam versões mais atualizadas, vamos utilizar, neste curso, a versão 8.1 devido a compatibilidade com o kit que utilizaremos em nosso encontro presencial.
  • 21. 21 Para melhor vizualização de seu funcionamento global, usaremos o recurso de fluxograma para identificar todas as etapas do projeto a ser gravado no dispositivo CPLD. Agora que você já viu as ferramentas para projetos com CPLD, continue para saber com funciona a instalação. O projeto é introduzido por meio de um diagra- ma esquemático ou por uma linguagem de pro- gramação do tipo Verilog ou VHDL. A ferramenta ajusta a melhor alocação de blocos lógicosdefinidosnanetlist1 doCPLDreal.Também escolhe os caminhos internos de roteamento mais adequados para fazer as conexões entre os blocos internos. Na análise são analisados os atrasos de propa- gação ao longo dos vários trajetos internos do CPLD para conseguir o melhor desempenho para o projeto. Na simulação, o projeto é testado para verificar suas funcionalidades junto com a análise temporal. O projeto é implementado em um CPLD físico, programado com opções de configuração que es- tabeleçam os melhores resultados de desempenho. O projeto sintetizado é testado para verificar seu funcionamento. Nesta etapa não levamos em con- ta eventuais problemas de temporização. O projeto é sintetizado com a estrutura lógica fornecida internamente pelo CPLD. 1 Netlist é uma espécie de mapa que contém todas as interligações das portas utilizadas em um projeto.
  • 22. 22 INSTALAÇÃO DA FERRAMENTA PARA PROJETOS COM CPLD O processo de criação de um projeto com CPLD pode ser visto a seguir, por meio de um exemplo com instruções passo-a-passo. No exemplo, utilizaremos o software Quartus II para implementar um circuito simples em um dispositivo CPLD da Altera. O software Quartus II inclui uma inter- face CAD muito similar a de ambientes que, provavelmente, você já conheça, como por exemplo o MPLAB e o Proteus. Neste passo-a-passo usaremos como método de entrada um diagrama esque- mático. A última etapa do projeto envolverá a gravação em um dispositivo CPLD montado no kit do fabricante Exsto, por meio de um cabo USB/J-TAG. As capturas de tela utilizadas no tutorial são do software Quartus II versão 8.1. Para outras versões do software, algumas telas serão ligeiramente diferentes. O Compilador é parte integrante deste software, e veremos este assunto no próximo capítulo, junto com a programação. Após realizar o download pelo site da Altera ou instalar a partir de uma mídia DVD, você deve seguir as instruções a seguir. É importante lembrar que, embora o software seja gratuito, é necessário fazer um cadastro no site do fabricante, antes de fazer o download. 1. Introduza a mídia na unidade DVD ou clique no arquivo executável. 2. Aguarde a tela de instalação, conforme a imagem ao lado e clique no botão Install free package. Importante! O tempo de instalação pode variar de um computador para outro. Antes de ini- ciar a instalação, é recomendável fechar todos os programas. Na parte presencial do curso, você terá o software pré-instalado no laboratório, bastando transferir os arquivos da tarefa para uma pasta ou executar a partir de seu HD portátil, pendrive ou notebook, com o cabo USB/J-TAG, que estará disponível.
  • 23. 23 3. Na tela seguinte, mantenha as configu- rações recomendadas e clique em Next. 4. Aceite a licença de uso e clique em Next. 5. Preencha os campos em destaque e clique em Next.
  • 24. 24 6. Confirme a pasta de destino da instalação e clique em Next. 7. Confirme novamente e clique em Next. 8. Aguarde até o término da instalação.
  • 25. 25 9. O Programa está instalado. Se preferir, marque a opção View readme.txt para conhecer mais detalhes sobre o software ou clique diretamente no botão Finish. Agora, o programa está instalado e pronto para o uso. Siga em frente para conhecer um dos conceitos essenciais de eletrônica digital: a tabela-verdade.
  • 26. 26 TABELA-VERDADE Como vimos no desafio anterior, conceitos básicos de eletrônica digital são essenciais para projetos com CPLD, e isso inclui as tabelas-verdade. Antes de pensar no circuito lógico, devemos montar uma tabela-verdade com todas as variáveis de entrada e de saída. O meio mais fácil é montando uma planilha, que pode ser feita com qualquer programa editor existente no mercado, por exemp- lo, Excel. Outra opção é usar o comando inserir→tabela, comum nos programas de edição de texto. Veja os exemplos a seguir: A S 0 1 Tabela-verdade com uma entrada (A) e uma saída (S). A B S 0 0 0 1 1 0 1 1 Tabela-verdade com duas entradas (A) e (B) e uma saída (S). Dica... Para evitar a mensagem de erro durante o preenchimento ou operação com planilhas, você deve selecionar todas as células e formatá-las no padrão texto.
  • 27. 27 Observe que o número de linhas (L) é resultado da relação matemática 2N , de modo que N será o número de bits de entrada, ou seja, sempre um valor numérico inteiro e maior que zero. Logo abaixo da legenda da coluna, inserimos as combinações binárias com zeros e uns. E a coluna com legenda S? Esta também receberá valores binários, de acordo com o funcionamento da(s) saída(s) de cada projeto. Então ficamos assim: Portanto, o número de linhas corresponderá às combinações possíveis entre os zeros e uns, seja para um bit ou dois bits. Vamos subir um nível. Podemos ter duas saídas na tabela-verdade? Com certeza. Vejamos o exemplo a seguir. Concluímos, então, que o número de saídas irá depender da solicitação da lógica encontrada em cada projeto. Perfeito. Mas devemos ficar atentos, a partir deste momento, com a organização da legenda em nossa tabela-verdade. Você se lembra dos conceitos sobre bit mais significativo (MSB) e menos significativo (LSB)? Pois muito bem, esta consideração deve ser adotada em nossa tabela. Logo, ela ficará assim: A B S1 S2 0 0 0 1 1 0 1 1 Tabela-verdade com duas entradas (A) e (B) e duas saídas (S1 ) e (S2 ). L = 2N , como N=1, L = 21 = 2 linhas; e L = 2N , como N=2, L = 22 = 4 linhas.
  • 28. 28 B A S1 S2 0 0 0 1 1 0 1 1 Tabela-verdade considerando a entrada B como MSB. Mas essa mudança não irá interferir no resultado, dirão alguns. A resposta depende de cada caso. Se nosso trabalho se encerrar com a tabela, o circuito combinacional resultante poderá não fun- cionar, mas se migrarmos as informações da tabela para um mapa de Karnaugh, não haverá prob- lemas. Nesta etapa, a falta deste critério irá alterar a indexação das células, objeto de estudo do próximo desafio. Vamos subir mais um nível? E uma tabela com três entradas e saídas? Isso não existe, dirão novamente alguns! Existe sim, basta desenhar. C B A S1 S2 S3 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Tabela-verdade com três entradas e saídas.
  • 29. 29 Pronto. Todas as combinações possíveis para as entradas foram preenchidas. Agora, falta preencher as saídas. Para demonstrar o preenchimento de todas as condições de saída, acompanhe o exemplo de um projeto, a seguir. Exemplo: Preenchendo uma tabela-verdade Para demonstrar o uso de uma tabela-verdade em um projeto com CPLD, vamos resgatar o exem- plo da unidade anterior, sobre o projeto de um dispositivo de segurança para controlar o acendi- mento das luzes de um veículo. Na unidade anterior, identificamos três variáveis de entrada e três variáveis de saída para o projeto de exemplo: Agora, vamos montar a tabela-verdade para o mesmo projeto. De acordo com essas informações, nossa tabela-verdade será de três bits, ou seja, terá três colunas e oito linhas, que são o resultado de 23 . Para facilitar, vamos atribuir siglas para as entradas e para as saídas, do seguinte modo: VARIÁVEIS DE SAÍDA: 1. Lanterna 2. Farol 3. Farol de milha VARIÁVEIS DE ENTRADA: 1. Posição 1 da chave rotativa 2. Posição 2 da chave rotativa 3. Chave do farol de milha. Posição 1 da chave rotativa: P1 Posição 2 da chave rotativa: P2 Chave do farol de milha: CFM Se quiser relembrar os detalhes do projeto de exemplo, você pode baixar o documento com a descrição do projeto acessando seu ambiente virtual de aprendizagem. Item 04. Tabela-verdade
  • 30. 30 Lanterna: LA Farol: FA Farol de milha: FM Portanto, utilizando os postulados previamente estabelecidos, temos a tabela-verdade exibida abaixo. A montagem do resultado das saídas é norteado por algumas orientações. Passe o mouse pelas linhas da tabela para conhecê-las. Note que CFM é a variável de entrada mais significativa e P1 a menos significativa nas colunas de entrada. Está condição irá nortear a montagem dos mapas de Karnaugh, que estudaremos na próxima unidade. ENTRADAS SAÍDAS CFM P2 P1 FM FA LA 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 0
  • 31. DESAFIO 2 AAgora que você já instalou a suíte de ferramentas da Altera, demos mais um passo em nosso projeto com um CPLD. Portanto, chegou o momento de retomar o desafio 2. Retorne à página principal do ambiente virtual de aprendizagem e participe do desafio 2. Lembre-se de que a elaboração da tarefa proposta deverá ser realizada em grupo. Você terá à disposição, um ambiente de grupo, para debater com os colegas e um espaço destina- do para a entrega da tarefa. Bom trabalho! RECAPITULANDO Neste desafio você estudou: • Algumas dicas sobre como escolher a melhor suíte de ferramentas para o seu projeto; • O processo de instalação e configuração da suíte de aplicativos Altera; e • Como montar uma tabela-verdade com N bits e saídas múltiplas. Você deverá participar da seguinte atividade: • Desafio 2 – atividade em grupo: Montar a tabela-verdade a partir dos postulados e das variáveis de entradas e saídas estabelecidas no desafio 1.
  • 33. 33 APRESENTAÇÃO Neste desafio, você estudará os detalhes necessários para iniciar a elaboração de um programa para dispositivos CPLD (Complex Programmable Logic Devices) utilizando a suíte de ferramentas Quar- tus II da Altera. No final deste desafio você terá subsídios para: • Fazer a programação de um CPLD utilizando linguagem de descrição (VHDL); • Simplificar funções lógicas booleanas de múltiplas saídas por meio de um mapa de Karnaugh. Preparado? Então siga em frente!
  • 34. 34 INICIANDO A PROGRAMAÇÃO DE UM CPLD No desafio anterior, definimos a tabela-verdade para o projeto do jogo eletrônico “Papel, pedra ou tesoura” e instalamos a suíte de ferramentas que será utilizada no projeto do CPLD. Como você sabe, a programação de um CPLD pode ser feita de duas maneiras: por linguagem de descrição ou por diagrama esquemático. Neste desafio, vamos estudar a programação por linguagem de de- scrição. Estudaremos a programação por diagrama esquemático no próximo desafio. Independente da linguagem utilizada, é necessário definir, primeiro, a função lógica booleana que representa o circuito digital do projeto. Embora os CPLD possuam grandes quantidades de portas lógicas, simplificar as funções booleanas provenientes das tabelas-verdade continua sendo uma etapa importante nos projetos de eletrônica digital, não apenas pela redução da quantidade de portas lógicas, mas para diminuir os atrasos na propagação dos sinais elétricos e para facilitar a análise dos circuitos. Por esse motivo, o mapa de Karnaugh continua sendo amplamente utilizado. Devido à complexidade dos circuitos mais modernos, é provável que você se depare com mapas de Karnaugh com maior número de variáveis. Portanto, antes de abordar a programação de um CPLD, vamos resgatar alguns conceitos de eletrônica digital, comparando a obtenção de funções lógicas por álgebra de Boole e teorema De Morgan com as técnicas de mapa de Karnaugh. Acompanhe!
  • 35. 35 ÁLGEBRA DE BOOLE E TEOREMA DE MORGAN Para demonstrar o uso das técnicas de álgebra de Boole e do teorema De Morgan, vamos resgatar o exemplo da unidade anterior, sobre o projeto de um dispositivo de segurança para controlar o acendimento das luzes de um veículo. Utilizaremos a tabela-verdade desse projeto como exemplo. Acompanhe. Observando a coluna FM, as saídas com valor binário 1 (um) seriam representadas por: FM = CFM.P2’.P1 + CFM.P2.P1’ Para montar essa expressão, fazemos a leitura de cada célula da coluna FM e realizamos a operação AND entre as variáveis de entrada correspondentes, assinalando com lógica invertida as variáveis que apresentam valor zero. Vamos repetir esta técnica para cada nova célula com valor binário 1 (um) e fazer a união dessas funções parciais com o operador OR. Agora, podemos começar a sim- plificar: CFM.P2’.P1 + CFM.P2.P1’ = CFM.(P2’.P1 + P2.P1’) – por distributiva inversa; Trocando na função original, teremos: FM = CFM.(P2’.P1 + P2.P1’) Se quiser relembrar os detalhes do projeto de exemplo, você pode baixar o documento com a descrição do projeto em seu ambiente virtual de aprendizagem. Item 03 - Álgebra de Boole e Teorema de Morgan
  • 36. 36 Agora, observamos que (P2’.P1 + P2.P1’) é uma operação OU EXCLUSIVO entre P1 e P2, teremos: FM = (P1+P2).(CFM’+CFM) Como (CFM’+CFM) = 1, por identidade A’+A = 1; Então FM = CFM.(P2 P1) – por identidade A.1 = A. Prossiga para ver outras técnicas utilizadas em eletrônica digital.
  • 37. 37 OUTRAS TÉCNICAS UTILIZADAS EM ELETRÔNICA DIGITAL Como você pôde ver, utilizar técnicas de álgebra de Boole e teorema De Morgan pode ser um pro- cesso demasiadamente trabalhoso. Na verdade, a técnica mais adequada para cada projeto depende da quantidade de variáveis. A tabela a seguir, indica as principais técnicas e a recomendação para cada caso: Portanto, para o caso do nosso desafio do jogo eletrônico “Papel, pedra ou tesoura”, em que temos 6 variáveis, utilizar mapa de Karnaugh é mais vantajoso. Antes de partir para a elaboração de um mapa com 6 variáveis, siga em frente para resgatar concei- tos importantes sobre o mapa de Karnaugh.
  • 38. 38 MAPA DE KARNAUGH O mapa de Karnaugh foi desenvolvido por volta dos anos 1950 por Edward Veitch e aperfeiçoado por Maurice Karnaugh, com base nos diagramas de Venn. Esta técnica reduz a chance de erros humanos no momento de extrair as funções, já que as técni- cas de simplificação por álgebra booleana costumam gerar funções muito complexas e de difícil visualização. Para resgatar os conceitos do mapa de Karnaugh vamos utilizar a técnica tradicional de variação de um único bit para compor as legendas do mapa, característica do código Gray. O exemplo abaixo, é de um mapa para o projeto das luzes automotivas. Como você sabe, é necessário montar um mapa para cada variável de saída. O mapa do exemplo se refere à variável de saída LA: A técnica de Veitch-Karnaugh diz que devemos associar, nesse caso, valores binários unitários adjacentes em grupos de 2, 4, 8 e assim por diante. Da aplicação, teremos: LA = P2’.P1 + P2.P1’ = P1 P2 No exemplo anterior, optou-se por montar a tabela com uma variável na legenda vertical (o bit mais significativo - MSB) e duas variáveis na legenda horizontal. Outra característica importante é a escolha da informação, na legenda. Em nosso estudo, optou-se por preencher as legendas com 0 (zero) e 1 (um). Esta escolha permite visualizar, mais facilmente, a mudança do valor binário. Como já sabemos, entre uma legenda e outra adjacente, apenas uma variável pode mudar, caso contrário, não conseguiríamos associar células adjacentes e compartilhar os valores binários. Importante! A ordem estabelecida na tabela verdade deve permanecer na montagem das legendas dos mapas de Karnaugh.
  • 39. 39 Agora, vejamos como seria outro modo: Da aplicação da técnica, obtemos: FM = P1’.P2 + P1.P2’= P1+P2 (XOR entre P1 e P2) Observe que, desde que mantida a regra do MSB, o resultado é o mesmo, apesar do compar- tilhamento lateral (em verde), que muitas vezes dificulta a visualização ou passa despercebido. Podemos, ainda, escrever as variáveis algébricas nas legendas em qualquer formato escolhido an- teriormente. Como ficaria? Acompanhe: Exemplo de modelo com tabela 1x2 Exemplo de modelo com tabela 2x1
  • 40. 40 Alguns dirão que, no segundo caso, ficou mais fácil escrever a função, mas ficou mais difícil ler qual variável se manteve constante e qual mudou. Concluímos, então, que o processo depende da forma como você se sente mais confortável. Prossiga para verificar o mapa de Karnaugh com 6 variáveis.
  • 41. 41 MAPA DE KARNAUGH COM 6 VARIÁVEIS Retomando o projeto do jogo eletrônico “Papel, pedra ou tesoura”, de acordo com o desafio ante- rior, sabemos que temos seis variáveis de entrada e quatro variáveis de saída. Para começar, pre- cisamos definir o formato gráfico da planilha, que pode ser 1x5, 2x4, 3x3, 4x2 ou 5x1. Para facilitar a visualização, vamos utilizar o formato 3x3. De acordo com o sistema Gray, a legenda dos valores binários deverá ser montada do seguinte modo: 000; 001; 011; 010; 110; 111; 101; 100 Observe, em vermelho, que apenas um bit muda a cada conjunto de três bits. Note que man- tivemos o bit MSB sempre em 0 (zero) e esgotamos as combinações, baseadas no código Gray, repetindo a mesma sistemática até o final da sequência. É importante lembrar que o sistema Gray permite outras possibilidades: 000; 001; 011; 010; 110; 100; 101; 111 000; 010; 110; 100; 101; 111; 011; 001 000; 100; 101; 111; 110; 010; 011; 001 000; 100; 110; 111; 101; 001; 011; 010 Embora todas as possibilidades indicadas estejam corretas, elas influenciam no modo de preen- chimento do mapa. Para facilitar, vamos escolher a primeira opção: 000; 001; 011; 010; 110; 111; 101; 100 Adotando essa sequência, nosso mapa mantém agrupamentos de 32 posições. Na tabela abaixo, temos dois agrupamentos: um destacado em cinza e outro em laranja. Os números indicados no mapa representam a respectiva linha na tabela-verdade. Já sabemos que a função do mapa de Karnaugh é fornecer expressões simplificadas, praticamente sem recorrer à álgebra de Boole. Também relembramos como extrair a função com base no proje- to das luzes automotivas. Mas você já pensou em como fazer os agrupamentos em um mapa com
  • 42. 42 tantas posições? Acompanhe alguns exemplos, com agrupamentos diferentes: Exemplo 1: Sem agrupamento (BIT Unitário) Sabemos que cada célula expressa uma operação AND entre as variáveis das legendas. Assim, para o exemplo, teremos: Y = F’.E’.D.C’.B.A. Exemplo 2: Metade da tabela com nível lógico 1 Observe a legenda horizontal, onde temos as variáveis C, B e A. Note que apenas a variável C não se alterou, logo, ela entrará em nossa função: Y = C. Agora, fazendo a leitura da legenda vertical, onde temos as variáveis F, E e D, observamos que todas mudaram de estado. Dessa forma, como não há variável para incluir na função, repetimos a expressão anterior, Y = C.
  • 43. 43 Exemplo 3: Agrupamento de 16 posições Observe a legenda horizontal, onde encontramos as variáveis C, B e A. Note que todas mudaram de estado, assim, não há variável para incluir na função. Agora, fazendo a leitura da legenda vertical, onde encontramos as variáveis F, E e D, observamos que as variáveis E e D permanecem constantes, portanto, a função será: Y = E.D’. Exemplo 4: Agrupamento de 4 posições, nos cantos da tabela Neste exemplo, o processo é similar às tabelas com poucas variáveis. Observando a legenda horizontal, onde encontramos as variáveis C, B e A, verificamos que apenas a variável C mudou de estado. Assim, nossa função será, provisoriamente, Y= B’.A’.
  • 44. 44 Fazendo a leitura da legenda vertical, onde encontramos as variáveis F, E e D, verificamos que apenas a variável F mudou de estado. Sendo assim, agregamos a função anterior às variáveis que não mudaram de estado, e teremos Y= B’.A’.E’.D’ = (B + A + E + D)’. Portanto, usando o teorema de De Morgan, economizamos uma porta lógica. Exemplo 5: Compartilhamento Observando a legenda horizontal, onde encontramos as variáveis C, B e A, verificamos que, no agrupamento em vermelho apenas a variável B mudou de estado. Assim, nossa função será, provisoriamente, Y= C’.A. Agora, fazendo a leitura da legenda vertical, onde encontramos as variáveis F, E e D, note que no agrupamento vermelho apenas a variável F não mudou de estado. Portanto, a função final será: Y = F’.C’.A + F’.C’.B = F’.C’.(B + A), aplicando-se a distributiva inversa. Com isso, usamos portas lógicas AND de duas entradas, que são mais comuns, no lugar da AND de três entradas.
  • 45. 45 PROGRAMAÇÃO DE CPLD POR LINGUAGEM DE DESCRIÇÃO Depois de definir a função lógica, podemos iniciar a elaboração do programa para um CPLD. A linguagem de descrição utilizada na suíte da Altera é a VHDL (VHSIC Hardware Description Language, em inglês). A linguagem VHDL foi criada por uma necessidade do Departamento de Defesa dos Estados Unidos, que precisava desenvolver sistemas lógicos mais rápidos a partir dos anos 1970. Em 1987, a linguagem VHDL e a Verilog foram padronizadas pelo IEEE (Institute of Electrical and Electronic Engineers) e como são de domínio público, tiveram ampla aceitação e diversas revisões, sendo que a IEEE1076-2008 é a mais recente. A linguagem VHDL possui algumas vantagens, se comparada com a linguagem de diagramação. As principais são: • Maior clareza nos objetivos do projeto; • Documentação mais simples, visto que podemos inserir comentários na programação; • Processo de compilação mais fácil, já que a linguagem pode ser utilizada em qualquer outra ferramenta para este fim; e • Maior facilidade na depuração manual em sistemas sequenciais, com as ferramentas de au- tomação da suíte.
  • 46. 46 VHDL E OUTRAS LINGUAGENS (ASSEMBLY, C, JAVA) A escrita em VHDL traduz as funções e as conexões do hardware sem estar restrita aos entrelaça- mentos, regras e sub-rotinas da programação tradicional ou atrelada a bibliotecas e memórias de instruções. O conceito “executar um programa” não se aplica na linguagem VHDL, porque organizamos, uma única vez a estrutura interna, e já podemos utilizá-la.
  • 47. 47 PROGRAMANDO EM VHDL Ponto similar a outras linguagens de programação, a VHDL também apresenta comandos, sendo os mais importantes: ENTITY e ARCHITECTURE. Esses comandos são suficientes para solucio- nar o nosso desafio. O comando ENTITY, basicamente, descreve ou identifica as entradas e saídas. Exemplo: imagine que vamos programar um CPLD para um determinado circuito com quatro en- tradas e uma saída. Suponha que, depois de analisar o projeto, obtivemos a função Y = A.B + C.D. Com base nessa função, vamos iniciar um novo programa denominado PROJ1. Veja como fica a programação: Observações: • Como em outras linguagens de programação, deve-se fechar a declaração de variáveis, função do comando END, seguido do nome do projeto e da pontuação adequada (;); • Toda a declaração das entradas e saídas aparecem após o comando PORT, entre parênteses e separadas por pontuação (;); • A declaração BIT sinaliza que todas as variáveis de entrada e de saída serão binárias, assumin- do 0 (zero) ou 1 (um); e • O VHDL não distingue letras maiúsculas e minúsculas, ou seja, você pode utilizar caixa alta ou caixa baixa à sua escolha. O comando ARCHITECTURE irá mostrar as relações entre as variáveis de entrada e de saída. Continuando com nosso exemplo, manteremos o nome do projeto PROJ1. Assim, teremos:
  • 48. 48 Observações: • Assim como no comando ENTITY, é necessário fechar a declaração de relação com o comando END a (note que abrimos com ARCHITECTURE a); • Há necessidade do símbolo relacional entre entrada e saída (<=); e • Separe as funções com parênteses, conforme sua lógica, evitando erros de compilação. Agora, retornando ao ambiente de programação, teremos:
  • 49. 49 TUTORIAL: PROGRAMANDO EM VHDL NO AMBIENTE QUARTUS II Preparamos um tutorial, passo a passo, para ajudá-lo a criar o seu primeiro programa em VHDL no ambiente Quartus II. Acompanhe o procedimento: 1. Abrindo o programa. Identifique o ícone do programa no seu desktop. Dê um duplo clique sobre ele e ob- serve a animação do ponteiro do mouse. Haverá uma pesquisa por atualização. Ignore a recomendação. Nota: Dependendo do computador e da quantidade de aplicativos abertos, pode demorar um pouco o aparecimento da tela de abertura. Recomenda-se utilizar o programa assim que ligar o computador. Aguarde a tela de abertura. 2. Criando um novo projeto. Na tela de abertura, clique no botão Start Designing e, depois, clique no botão Create a New Project. Na tela de instruções seguinte, clique em Next.
  • 50. 50 Na tela que será aberta, crie uma pasta e um nome para o projeto e clique em Next; Depois, clique no botão Sim para confirmar a criação da pasta. Na tela seguinte (New Project Wizard Add Files), clique em Next; Agora, você deve selecionar os parâmetros do CPLD e, neste caso, eles devem estar de acordo com o kit que utilizaremos em nosso encontro presencial. Portanto, siga os parâmetros indicados nesta tela e, depois, clique em Next.
  • 51. 51 Clique em Next novamente. A tela New Projetc Wizerd: Summary apresenta um resumo das opções selecionadas para a criação do projeto. Para encerrar, clique em Finish. Aguarde a pesquisa por atualização e ignore o ícone Download New Software Release, à direita. Não há garantia de que a atualização vá funcionar na sua máquina.
  • 52. 52 Selecione, na barra de ferramentas, a opção File→New, clique em VHDL file e, depois, no botão OK. 3. Escrevendo o programa. Após surgir uma pasta Vhdl1.vhd, você terá uma tela em branco. Escreva o programa sugerido como exemplo, respeitando a organização e o alinhamento. Você pode dar um comando Save As com o nome proj1 e escrever ou, escrever primeiro e dar um comando Save ao final; dessa forma, o nome da pasta muda de Vhdl.vhd para proj1.vhd. Clique em Processing→Start Compilation. Em até 10s, surgirá uma tela com a informação Full Compilation was successful. Um alerta (warning) é normal, desde que não seja Critical ou Error. Nestas situações, deve- se rever a escrita do programa. Clique em OK se estiver tudo em ordem. Volte à barra de ferramentas e clique em Assignments→Pins;
  • 53. 53 Aparecerá uma tela com a pinagem do CPLD. Observe que há uma planilha na parte inferior com as entradas e saídas que você estabeleceu no programa. Agora, precisamos indicar quais pinos de I/O adotaremos (representados por círculos brancos, sem notação). Para facilitar a montagem e o entendimento podemos adotar, como entradas, os pinos de 18 a 21 e, como saída, o pino 6. Dê um duplo clique em cada célula, da coluna Location, referente às variáveis do exemplo. Será aberta uma lista de pinos. Você só deve escolher aqueles do tipo PIN_XX I/O. Como a, b, c e d são entradas, teremos a→PIN_18, b→PIN_19, c→PIN_20 e d→PIN_21. A saída será y→PIN_6; Observe que os pinos selecionados ficaram na cor marrom. Caso tenha errado, basta clicar com o botão direito do mouse sobre a célula da planilha, selecionar Edit→Cut e o campo ficará limpo. As funções de tempo não necessárias, podem ser apagadas clicando-se com o botão direito do mouse sobre um nome não usado na planilha, depois selecione Edit→Delete, e a marcação verde irá desaparecer. Ao concluir a nomeação de acordo com o desenho, basta voltar na barra de ferramentas e clicar em File→Close;
  • 54. 54 Retornamos à tela principal com nosso programa. Agora, vamos fazer a compilação novamente,clicandonabarradeferramentas,e depois em Processing→Start Compilation. Em até 10s, surgirá uma tela com Full Compilation was successful. Clique em OK. Um alerta (warning) é normal desde que não seja Critical ou Error. Nestas situações deve- se rever a escrita do programa. Observe no exemplo a seguir, que a mensagem de erro já fornece uma dica de onde está o problema. No exemplo, faltam parênteses nas operações AND. Acabamosdefinalizarnossoprojetoedevemos gravá-lo no kit EXSTO, alvo de nosso desafio presencial.
  • 55. DESAFIO 3 Agora que você conhece o ambiente de programação VHDL e resgatou informações importantes sobre a simplificação de funções lógicas, chegou o momento de retomar o desafio 3. Retorne à página principal do ambiente virtual de aprendizagem e participe do desafio 3. Lembre-se de que a elaboração da tarefa proposta deverá ser realizada em grupo. Você terá à disposição um ambiente de grupo, para debater com os colegas e um espaço destinado para a entrega da tarefa. Bom trabalho! RECAPITULANDO Neste desafio você estudou: • Algumas funções VHDL para programar um CPLD; • O processo de escrita de um programa em VHDL utilizando a suíte de aplicativos Quartus II, da Altera; e • Como montar um mapa de Karnaugh com 6 variáveis e extrair as respectivas funções. Você deverá participar da seguinte atividade: • Desafio 3 – atividade em grupo: Montar os mapas de Karnaugh e extrair as funções a partir dos resultados obtidos no desafio 2.
  • 57. 57 APRESENTAÇÃO Neste desafio, você estudará a forma de diagramação e os detalhes necessários para montar um projeto para dispositivos CPLD utilizando a suíte de aplicativos Quartus II, da Altera. Vai estudar, também, algumas maneiras para fazer o acionamento de dispositivos de potência com CPLD. No final deste desafio você terá subsídios para: • Fazer a programação de um CPLP utilizando um diagrama esquemático; • Selecionar interfaces de potência com IGBT ou tiristores para projetos com CPLD. Preparado? Então siga em frente!
  • 58. 58 PROGRAMAÇÃO DE CPLD POR DIAGRAMA ESQUEMÁTICO Na unidade anterior, vimos a importância de simplificar as funções lógicas de um projeto antes de iniciar a programação de um CPLD, e estudamos como fazer a programação por linguagem de descrição. Agora, vamos abordar a programação por diagrama esquemático. Como você sabe, a escolha da linguagem de programação não afeta no funcionamento do CPLD, mas na maneira como ele será programado. Nesse sentido, a programação por diagrama esque- mático pode ser mais vantajosa em alguns casos, especialmente quando estamos mais habituados a analisar circuitos digitais por meio de esquemas elétricos, do mesmo modo que fazíamos na época das portas lógicas TTL ou CMOS. Por outro lado, em circuitos mais complexos, com grande quantidade de portas lógicas e de in- terligações, a montagem e a visualização do esquema elétrico podem dificultar a análise, tanto no momento de desenhar quanto na procura de eventuais falhas. Por tudo isso é muito difícil apontar qual é a melhor maneira para se programar um CPLD. Ambas possuem vantagens e desvantagens, que dependem do ponto de vista de quem está programando. Para que você possa formar a sua opinião, nada melhor do que experimentar as duas maneiras. Portanto, depois de experimentar a programação por linguagem de descrição, chegou o momento de praticar a programação por diagrama esquemático. Acompanhe!
  • 59. 59 INSTALAÇÃO DA FERRAMENTA PARA PROJETOS COM CPLD O modo de desenhar um diagrama esquemático nas suítes de programação para CPLD é muito se- melhante ao que fazemos nos softwares de simulação de circuitos eletrônicos, como por exemplo, o Proteus e o Multisim. Significa dizer que a programação é fácil de fazer, pois os softwares utilizam o padrão CAD para fazer os desenhos, que é bastante intuitivo. Para facilitar o entendimento, preparamos um exemplo passo a passo, onde faremos a programação de um CPLD por diagrama esquemático. Note que os procedimentos 1 e 2 são idênticos aos que fizemos na programação por linguagem de descrição. Acompanhe! 1. Abrindo o programa. Identifique inicialmente, no seu desktop, o ícone do programa Quartus II. Dê um duplo clique sobre ele e observe a animação do ponteiro do mouse. Haverá uma pesquisa por atu- alização. Ignore a recomendação. Nota: Dependendo do computador e da quantidade de aplicativos abertos, pode demorar um pouco o aparecimento da tela de abertura. Recomenda-se utilizar o programa assim que ligar o computador. Aguarde a tela de abertura. 2. Criando um novo projeto. Na tela de abertura, clique no botão Start Designing, e depois, no botão Create a New Project. Na tela de instruções seguinte, clique em Next.
  • 60. 60 Depois, clique no botão Sim para confirmar a criação da pasta. Na tela seguinte (New Project Wizard Add Files), clique em Next. Selecione os parâmetros do CPLD de acordo com o kit que utilizaremos em nosso encontro presencial, conforme indicado nesta tela. Depois, clique em Next. Na tela seguinte, clique em Next.
  • 61. 61 3. Escrevendo o programa. A tela New Projetc Wizard: Summary indica um resumo das opções selecionadas para a criação do projeto. Para encerrar, clique em Finish. Aguarde a pesquisa por atualização e ignore o icone Download New Software Release, à direita. Não há garantia de que a atualização vá funcionar na sua máquina. Selecione, na barra de ferramentas, a opção File→New, clique em Block Diagram/Schematic File e, depois, no botão OK. Agora você tem uma tela estilo CAD para inserir entradas, saídas e blocos lógicos. Neste exemplo, vamos desenhar o circuito do projeto das luzes veiculares, que utilizamos como exemplo ao longo de todo o nosso curso. Nesse projeto utilizaremos portas AND, NOT e XOR, mas saiba que o procedimento para incluir outras portas é basicamente o mesmo. Para inserir uma porta lógica qualquer, clique no ícone da porta AND, conforme indicado abaixo.
  • 62. 62 Na tela Symbol, abra a raiz (clique no símbolo+), depois, clique em primitives, em logic e você terá acesso aos tipos de portas lógicas. Selecione a porta AND de duas entradas (and2), selecione repeat insert mode e clique em OK. Clique sobre a área de trabalho duas vezes e, na sequência, pressione a tecla ESC para sair do modo de inserção. Clique novamente sobre a tela para tirar a seleção. Como você pode ver, as principais portas lógicas estão disponíveis. Note que lógicas com muitas entradas não será dificuldade aqui. O software disponibiliza portas AND e OR com até doze entradas. Você também poderá contar com portas XOR e XNOR. Perceba quantas possibilidades um CPLD permite! Agora, vamos incluir uma porta NOT. Selecione a porta NOT, sem repeat insert mode e clique em OK.
  • 63. 63 Repita a operação para XOR sem repeat insert mode. Após a inserção das portas lógicas, precisamos inserir os conectores para as variáveis de entrada e de saída. Na mesma raiz primitives, você deve selecionar pin, depois input e, na sequência, repeat insert mode, e colocar três figuras sobre a área de trabalho. Saia do modo de inserção e seleção pressionando a tecla ESC e clique sobre a área de trabalho. Repita o processo para o conector output. Agora, vamos fazer as interligações. Posicione o cursor sobre uma ponta solta como, por exemplo, input, e arraste até uma entrada da porta XOR. O software realiza apenas uma curva de 90°, assim, você para em um ponto intermediário qualquer e continua desta nova ponta solta, até completar a conexão.
  • 64. 64 Você também pode desenhar a partir de uma entrada qualquer até uma linha já desenhada, poisosoftwarefazaconexãoautomaticamente. Termine o processo de interligação conforme o seu projeto, a partir das funções lógicas extraídas dos mapas de Karnaugh. Agora, precisamos dar nomes aos pinos de entrada (input) e saída (output). Dê um duplo clique em pin_name e uma caixa de texto se abrirá. Escreva o nome da variável conforme o seu projeto e clique em OK. Neste exemplo, utilizaremos os nomes das variáveis do projeto das luzes veiculares. Repita o mesmo procedimento para todos os pin_name. Clique no ícone Save, na barra de ferramentas. Uma caixa Save As será aberta, bastando clicar em Salvar. Observe que o nome do arquivo muda de block1 para senai1. Nesse momento estamos prontos para iniciar o processo de preparação para gravação do CPLD, no kit EXSTO. Clique em Processing na barra de ferramentas e selecione Start Compilation.
  • 65. 65 Em até 10s surgirá uma tela com a mensagem Full Compilation was successful. Um alerta (warning) é normal desde que não seja Critical ou Error. Nesta situação, deve-se rever a montagem do diagrama. Se tudo estiver em ordem, clique em OK. Agora, precisamos abrir mais um módulo do projeto, mas não faremos nenhuma interação com ele. Volte à barra de ferramentas. Clique em File→New, selecione VHDL file e clique OK. Você terá uma tela em branco e perceberá a abertura de uma pasta Vhdl1.vhd. Clique no ícone Save da barra de ferramentas. Volte à barradeferramentasAssignments→Pins. Será aberta uma tela com a pinagem do CPLD. Observe que há uma planilha na parte inferior com os labels que você estabeleceu e inseriu no diagrama. Agora, precisamos indicar quais pinos de I/O vamos utilizar. No desenho do CPLD, eles estão representados por círculos brancos. Para facilitar o entendimento podemos adotar, como entradas, os pinos de 18 a 28 e, como saídas, os pinos de 06 a 40. Em cada linha da planilha, na parte inferior da tela, dê um duplo clique na célula da coluna Location. Será aberta uma lista de opções com pinos do CPLD. Você só deve escolher aqueles do tipo PIN_XX I/O. Como CFM é uma entrada, monte na sequência da tabela verdade, do MSB até o LSB, ou seja, CFM, P2, P12 e teremos:
  • 66. 66 Observe que os pinos selecionados ficaram na cor marrom. Caso tenha errado, basta clicar com o botão direito do mouse sobre a célula da planilha, selecionar Edit→Cut e o campo ficará limpo. Repita o processo para as saídas utilizando os mesmos critérios anteriores, ou seja, se FM, FA e LA3 são as saídas, associamos assim: Com a nomeação de acordo com o diagrama esquemático, basta voltar na barra de ferramentas e selecionar File→Close. Ao retornar à tela principal, observamos que as entradasesaídasagoratêmapinagemassociada aos labels. Para fazer a compilação novamente, clique em Processing →Start Compilation, barra de ferramentas. Em até 10s surgirá uma tela com a mensagem Full Compilation was successful. Um alerta (warning) é normal desde que não seja Critical ou Error. Nesta situação deve-se rever a denominação dos pinos. Estando tudo em ordem, clique em OK. Não se esqueça de salvar o projeto, clicando em Save na barra de ferramentas.
  • 67. 67 Com isso, o projeto está pronto para ser gravado no CPLD. Saiba mais... Para conhecer uma proposta de solução completa para o projeto de exemplo das luzes automotivas, acesse seu ambiente virtual de aprendizagem: Item 03 - Instalação da Ferramenta para projetos com CPLD 2 CFM PIN_18; P2 PIN_19; P1 PIN_20; 3 FM PIN_6; FA PIN_5; LA PIN_4;
  • 68. 68 CIRCUITOS DE CONTROLE PARA IGBT UTILIZANDO CPLD Certamente você já conhece o transistor BIPOLAR e o MOSFET (MOS FIELD EFFECT TRANSISTOR) para acionamento de sistemas de potência, via meia ponte, ponte H ou como chave. Como sabemos, eles possuem limitações em função da temperatura, potência controlada direta e frequência de trabalho. Mesmo com limitações, devido ao custo mais baixo, essas opções continuam sendo bastante utilizadas em alguns projetos. Para resolver parte dos problemas de acionamento de transistor bipolar em potência e reduzir o custo de um MOSFET de potência com resistência direta na ordem de miliohms, podemos utilizar o IGBT (INSULATED GATE BIPOLAR TRANSISTOR), que une as características de entrada do transistor MOSFET com a de saída do transistor BIPOLAR. Controle PWM com IGBT canal N Ponte H com IGBT canal N e P.
  • 69. 69 O IGBT é um dispositivo semicondutor que se caracteriza por apresentar alta impedância de entrada, via porta (G) e baixa impedância de saída, entre coletor (C)-emissor (E). É mais comum com canal N, por conta das aplicações com inversores. No exemplo a seguir, temos um IGBT canal N por enriquecimento da empresa IR (International Rectifier) para aplicações de alta tensão e corrente. Criado por Carl Frank Wheatley Jr., o IGBT surgiu por volta dos anos 1980 nos laboratórios da RCA (Radio Corporation of America). Podemos encontrá-lo em sistemas embarcados, motores híbridos em carros elétricos, controle em ar condicionado e refrigeração (como em máquinas de vendas), sistemas de conversão de energia (UPS, Nobreak, Inverters), reatores eletrônicos e no acionamento do flash em smartphones e câmeras digitais. Observando as características de tensão e corrente do projeto, seja direta ou reversa, além das características mecânicas do invólucro, os IGBTS podem substituir, sem muitas preocupações, os transistores MOSFET. Já em circuitos com transistores bipolares, deve-se modificar a excitação de base (normalmente com resistores da ordem de quilohms) e estabelecer o ponto de operação. Observe, a seguir, uma aplicação do IGBT em reator eletrônico, onde o MOSFET IRF830 (500 V/ 4,5 A) foi substituído por um IGBT IRG4BC20UPbF (600 V/ 6,5 A), ambos do fabricante IR e com invólucro TO-220. Esquema de um reator eletrônico com IGBT canal N, fator de potência 0,97, para duas lâmpadas de 40 W em 127 VAC.
  • 70. 70 E, como podemos integrar nosso CPLD com uma interface de potência ao IGBT? Vejamos, a seguir, a zona útil de aplicação para este dispositivo. Perceba como o IGBT soma características do BIPOLAR e do MOSFET. Para algumas aplicações com IGBT, assim como para os demais semicondutores, é fundamental a isolação entre os sistemas de controle e a parte de potência, evitando que o terra digital seja contaminado pelo terra analógico, sem falar no diferencial entre a tensão de barramento no coletor (VBUS) e as demais polarizações. Para resolver essa situação, podemos utilizar transformadores isoladores,opto-acopladoresouaconjunçãodeambos.Nestescasos,existemnormasinternacionais a serem seguidas, como IEC60664-1, IEC60664-3, IEC61800-5-1 e EN50124-1. Veja o exemplo a seguir: Relação Potência x Frequência para semicondutores de silício (adaptado de SHEN 2014) Acionamento de um motor trifásico com IGBT canal N (adaptado do application re- port SLLA354)
  • 71. 71 Para aplicações em que o momento do acionamento é crucial, usamos gate drives e/ou 3 phase bridge drivers como IRS2111, IR2133, etc. da IR. Os sinais de entrada FAULT, CAO, LIN1.2.3 e HIN1.2.3 para cada par de IGBTs, serão gerados por lógica do seu projeto, a partir do CPLD, em programação VHDL ou diagrama esquemático. Se houver necessidade, as saídas do CPLD podem ser programadas para coletor aberto. Aplicação do 3 phase bridge driver IR2130 com IGBT (adaptado do datasheet)
  • 72. 72 CIRCUITOS DE CONTROLE DE TIRISTORES UTILIZANDO CPLD Sempre que falamos de Tiristores, esta informação nos remete a dispositivos semicondutores conhecidos, tais como, o SCR (Silicon Controled Rectifier), TRIAC (Triode for Alternating Current), DIAC (Diode for Alternating Current). Mas também podemos incluir, nesta lista, os novos dispositivos ACS/ACST (Alternating Current Switch). Estes últimos são TRIACs e possuem proteção contra sobretensão, o que dispensa o uso do snubber e MOV (Metal Oxide Varistor) e reduz, assim, o custo do projeto. E como sabemos qual usar? Escolhemos entre o TRIAC e o SCR em função do valor da potência de carga a ser controlada, do tipo de regime CA (corrente alternada) ou CC (corrente contínua) e do tipo de controle que desejamos usar. Até 40 A em CA, podemos optar pelo TRIAC e, acima disso, recomenda-se o SCR. Sabemos que um TRIAC pode ser disparado nos quatros quadrantes, mas os fabricantes garantem a certeza de disparo no primeiro e terceiro quadrantes. Nosso CPLD trabalha com sinal de 0-5 V e, fica claro que trabalharemos no primeiro quadrante, evitando gastos adicionais e desnecessários com conversão do sinal de saída. Já se optarmos pelo ACS/ACST, devemos ficar atentos à informação sobre qual o melhor quadrante, visto que ele não atua em todos. Simbologia de tiristores (adaptado do folder da ST Microelectronics). Quadrantes de disparo para TRIAC e ACS/ACST (adaptado do application note AN3168) FAMÍLIA TIPO QUADRANTE DE DISPARO Q1 Q2 Q3 Q4 Triac Standard Sim Sim Sim Sim Snubberless and logic level Sim Sim Sim Não Snubberless high temperature Sim Sim Sim Não ACS / ACST ACS Não Sim Sim Não ACST Sim Sim Sim Não
  • 73. 73 O disparo no primeiro quadrante é de fácil entendimento, mas como se dá esse disparo no terceiro quadrante? Vejamos a seguir: Note que no Q1 a corrente IG e tensão VG (entre G e A1) são positivas, enquanto que, no Q2 a corrente IG é negativa e a tensão VG também. E, como fazer o acionamento utilizando uma interface não isolada? Vejamos a seguir. Os valores das variáveis para cálculo de RG estão disponíveis no datasheet do tiristor escolhido. Valores práticos serão encontrados entre 100 e 560 Ω. Os valores de R1 e R2 são sugeridos para VDD = 5 V e tiristores com baixa corrente de trigger, por isso, deve-se ter atenção especial ao valor da corrente IG necessária para disparo do TRIAC. Caso o sinal e/ou VDD sejam de 3,3 V, recomenda-se calcular o valor ideal olhando o datasheet do transistor de sinal Q1 escolhido, com atenção ao valor da corrente de base adequada para levar o componente à saturação. O sinal de I/O port é proveniente do pino escolhido como output na programação de pinos do CPLD. Mas como podemos resolver o problema da falta de isolação? Usando um opto acoplador para CA com driver de saída por TRIAC. Observe a figura a seguir: Exemplo de disparo no Q1, à esquerda, e no Q3, à direita, (adaptado do application note AN3168 da ST). Exemplo de disparo não isolado do TRIAC/ACS (adaptado do application note AN2986 da ST).
  • 74. 74 Exemplo de disparo não isolado do TRIAC/ACS (adaptado do application note AN2986 da ST). O exemplo anterior aciona o tiristor com lógica de saída em nível lógico alto (1) e não extrapola o consumo de corrente máxima de saída (IOUT) ou em nível alto (IOH) do CPLD (25 mA naquele utilizado no kit EXSTO), ou seja, podemos ligar outros dispositivos na mesma saída de I/O. O valor de R2 é referência (VDD = 5 V) e deve-se verificar a sugestão de corrente direta do fabricante (IF = 15 mA para 3010 e 30 mA para 3020 no caso da Fairchild) ou adotar metade do valor de corrente direta (IF) recomendada no datasheet do fabricante do MOC escolhido, com análise de circuito em função do valor de tensão VDD e compatível com a corrente de coletor do transistor Q1. Pode-se programar o CPLD com lógica em nível baixo (0) reduzindo custo, com a retirada do transistor bipolar, mas com atenção ao valor da corrente de saída em nível baixo (IOL) do CPLD. O MOC3010 é usado para sistemas em 127 V. Para 220 V, deve-se utilizar o MOC3020. A sugestão para R1 e o cálculo de RG permanecem inalterados. Valores de C1 acima de 10 nF causam arredondamento na borda de subida, na transição do sinal de nível baixo para alto. E a situação piora, quanto maior for o valor da frequência de trabalho (se houver esta grandeza envolvida no projeto).
  • 75. DESAFIO 4 Agora que você já sabe como criar um desenho esquemático utilizando o software Quartus II da ALTERA e estudou alguns conceitos de acionamento em potência com CPLD, chegou o momento de retomar o desafio 4. Retorne à página principal do ambiente virtual de aprendizagem e participedodesafio4.Lembre-sedequeaelaboraçãodatarefaproposta deverá ser realizada em grupo. Você terá à disposição, um ambiente de grupo, para debater com os colegas e um espaço destinado para a entrega da tarefa. Qualquer dúvida, entre em contato com o seu tutor. Bom trabalho! RECAPITULANDO Neste desafio você estudou: • Como montar um diagrama esquemático no software Quartus II; • Como integrar um CPLD com interface de potência com IGBT; e • Como integrar um CPLD com interface de potência com Tiristores. Você deverá participar da seguinte atividade: • Desafio 4 – atividade em grupo: Montar o diagrama esquemático a partir das funções extraí- das dos mapas de Karnaugh, criadas no desafio 3.
  • 77. 77 REFERÊNCIAS BIBLIOGRÁFICAS ALTERA. Quartus II Introduction Using Schematic Design. Disponível em: < ftp://ftp.altera.com/.../tut_quartus_intro_schem.pdf>. Acesso em: 13 abril 2015. ALTERA. MAX 3000A - Programmable Logic Device Family. Rev 3.5 , 2006. Disponível em: < https://www.altera.com/en_US/pdfs/literature/ds/m3000a.pdf>. Acesso em: 13 abr. 2015. ALTERA. Datasheet do CPLD EPM3064ALC44-10 Disponível em: < www.altera.com>. Acesso em: 13 abr.2015. ALTERA. Datasheet do FPGA Cyclone V Disponível em: < www.altera.com>. Acesso em: 13 abr.2015. ALTERA. Quartus II Introduction Using VHDL Design Disponível em: < ftp://ftp.altera.com/.../tut_quartus_intro_vhdl.pdf>. Acesso em: 13 abr.2015. ATMEL. Datasheet do FPGA AT40KAL Disponível em: < www.atmel.com>. Acesso em: 13 abr.2015. ATMEL. Datasheet do FPGA AT40KAL Disponível em: < www.atmel.com>. Acesso em: 13 abr.2015. BALIGA, B. J. The IGBT Device: Physics, Design and Applications of the Insulated Gate. United Kingdom: Ed. Elsevier, 2015. BIGNELL, J.W.; DONOVAN, R. Eletrônica Digital. 5. ed. São Paulo: Cengage Learning, 2010. CALDEIRA, U. G. Notas de aula de Eletrônica Digital – SENAI CFP 1.18. Santo André - SP, 2015 CALDEIRA, U. G. Notas de aula de Eletrônica de Potência – SENAI CFP 1.18. Santo André - SP, 2012. EXSTO. Teoria, Caderno de Experiências e Manual do XD301 - CPLD. Santa Rita do Sapucaí - MG, 2000. IEEE. 1076-2008 - IEEE Standard VHDL Language Reference Manual Disponível em: < https://standards.ieee.org/findstds/standard/1076-2008.html>. Acesso em: 13 abril 2015.
  • 78. 78 INTERNET. Significado de postulado e noviciado Disponível em: < http://www.dicionarioinformal.com.br>. Acesso em: 13 abril 2015. INTERNATIONAL RECTIFIER. Datasheet do IGBT IRG4BC20UPbF Disponível em: <http://www.irf.com/product/Gate-Driver-ICs-and-Controllers-General- Purpose-Gate-Driver-ICs/_/N~1njcii>. Acesso em: 13 abril 2015. KUPHALDT, T. R. Lessons In Electric Circuits, Volume IV - Digital. 4. ed., 2007. ON SEMICONDUCTOR. IGBT Applications Handbook Disponível em: <http://www.onsemi.com/pub_link/Collateral/HBD871-D.PDF>. Acesso em: 13 abril 2015. PITHADIA, S. Is your IGBT gate driver power supply optimized? Application Report SLLA354 da TEXAS INSTRUMENTS Disponível em: <www.ti.com/lit/an/slla354/slla354.pdf>. Acesso em: 13 abril 2015. SHEN, J. The Past, Present, and Future of IGBT Technology. Illinois Institute of Tecnology - 2014 Disponível em: <http://publish.illinois.edu/grainger-ceme/files/2014/06/Spring4_7_14JohnShen_ Slides1.pdf>. Acesso em: 13 abril 2015. ST MICROELECTRONICS. AN308 Application note Disponível em: <http://www.datasheetarchive.com/dl/Datasheet-02/DSA0027791.pdf>. Rev4, 2008. Acesso em: 13 abril 2015. ST MICROELECTRONICS. AN308 Application note Disponível em: <http://www.st.com/web/en/resource/technical/document/application_note/ CD00266635.pdf>. Rev1, 2010. Acesso em: 13 abril 2015. ST MICROELECTRONICS. AN308 Application note Disponível em: <http://www.st.com/web/en/resource/technical/document/application_note/ CD00235575.pdf >. Rev1, 2009. Acesso em: 13 abril 2015. ST MICROELECTRONICS. AN308 Application note Disponível em: <http://www.st.com/st-web-ui/static/active/en/resource/technical/document/ application_note/CD00003854.pdf>. Rev3, 2009. Acesso em: 13 abril 2015.