Buscar

Apostila Logica Programavel Aula1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

LÓGICA PROGRAMÁVEL 
AULA 1 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Prof. Ederson Cichaczewski 
 
 
2 
CONVERSA INICIAL 
Nesta aula, iremos conhecer os aspectos dos dispositivos de lógica 
programável, as famílias de dispositivos lógicos programáveis, a linguagem de 
descrição de hardware, a ferramenta de software para projeto e simulação e, 
por fim, detalhes do kit FPGA Cyclone II, utilizado para prototipagem. 
A lógica programável permite a síntese de circuitos digitais em um chip. 
Há diferentes arquiteturas de dispositivos de lógica programável. O projeto 
pode ser feito de forma simbólica ou por meio da linguagem HDL (Hardware 
Description Language). Ferramentas incluem o ambiente de desenvolvimento e 
o kit de prototipagem. 
TEMA 1 – CONHECENDO OS ASPECTOS DOS DISPOSITIVOS DE LÓGICA 
PROGRAMÁVEL 
Os dispositivos lógicos programáveis (PLDs, do inglês Programmable 
Logic Devices), juntamente com a teoria básica de eletrônica digital, permitem 
a implementação e a síntese de circuitos digitais que vão desde simples portas 
lógicas até os mais complexos sistemas digitais em um único chip. 
Um PLD é um circuito integrado que contém um grande número de 
portas, cujas interconexões podem ser modificadas pelo usuário para que 
execute uma função específica. 
A utilização de elementos de lógica programável aumenta a eficiência do 
projeto e reduz o tempo de seu desenvolvimento. Atualmente, a maioria dos 
circuitos digitais é implementada em lógica programável. 
Poucas das novas tecnologias de sistemas digitais usam circuitos 
digitais discretos; os dispositivos de lógica programável são os mais utilizados. 
Qualquer circuito lógico, independentemente de sua complexidade, pode 
ser representado por uma expressão booleana. Qualquer expressão booleana 
pode ser representada por um circuito lógico que utilize três portas lógicas 
básicas: AND, OR e NOT. Dessa forma, as expressões booleanas podem se 
dar na forma de soma de produtos ou de produto de somas. 
 
 
 
 
3 
1.1 PAL (Programmable Array Logic) 
A matriz lógica programável é o tipo mais simples de PLD. Ela 
representa fisicamente a estrutura que configura um circuito proveniente de 
uma expressão booleana na forma de soma de produtos. 
Assim, implementa circuitos combinacionais cujas saídas dependem 
apenas dos níveis lógicos em suas entradas. 
Figura 1 ‒ Estrutura de uma PAL 
 
As intersecções entre linhas e colunas são conexões programáveis no 
plano AND. As conexões são fixas nas portas OR. 
1.2 PLA (Programmable Logic Array) 
Outra estrutura básica de PLD é a chamada PLA (Programmable Logic 
Array), em que tanto o plano AND quanto o plano OR são configuráveis. Estes 
são a primeira estrutura de um PLD desenvolvido, mas devido a problemas de 
complexidade, alto custo de fabricação e baixo desempenho, foram 
substituídos pelos elementos da estrutura PAL. 
 
 
 
4 
Figura 2 ‒ Estrutura de uma PLA 
 
Figura 3 ‒ Pequena área de conexões de hardware de dispositivos de lógica 
programável, em uma forma bem simplificada 
 
 
 
5 
De um modo geral, temos que cada intersecção entre uma linha (fio 
horizontal) e uma coluna (fio vertical) é uma conexão programável, sendo uma 
conexão conectada representada pelo nível lógico 1 e uma conexão não 
conectada representada pelo nível lógico 0. 
A ferramenta computacional utilizada para desenvolvimento é conhecida 
como EDA (Electronic Design Automation). Ela permite fazer a implementação, 
a simulação e a síntese de circuitos. 
Os projetos podem ser feitos de duas formas: 
1. gráfico: diagrama esquemático; 
2. texto: linguagem de descrição de hardware (HDL). 
TEMA 2 – FAMÍLIAS DE DISPOSITIVOS LÓGICOS PROGRAMÁVEIS 
Os PLDs (Programmable Logic Devices) estão dentro da família de 
circuitos integrados de aplicação específica (ASICs, do inglês Application 
Specific Integrated Circuits). 
Figura 4 ‒ Hierarquia simplificada dos sistemas digitais 
 
 
 
 
 
6 
2.1 SPLDs (Simple Programmable Logic Devices) 
 PLAs (Programmable Logic Arrays): são os primeiros dispositivos 
lógicos programáveis simples, introduzidos pela Philips no início dos 
anos 1970. Possui planos AND e OR configuráveis, além de alto custo e 
baixo desempenho. 
 PALs (programmable array logic): são uma evolução, com apenas o 
plano AND configurável, menor custo e maior desempenho. 
 Arquiteturas PAL e PLA: baseadas em memória PROM (Programmable 
Read Only Memory) e, portanto, programáveis apenas uma vez. 
 GAL (Generic Array Logic): tem arquitetura similar à da PAL; contudo, 
usa tecnologia CMOS, que tem menor consumo de energia, e memória 
EEPROM (Electrically-Erasable Programmable Read-Only Memory), que 
permite regravação, mas sua velocidade de operação é menor. 
Os SPLDs possuem baixa capacidade, em torno de 600 portas lógicas 
ou menos. 
2.2 HCPLDs 
 CPLD: dispositivos lógicos programáveis complexos que foram 
introduzidos pela Altera em 1983. Combinam uma série de dispositivos 
PAL (do tipo GAL) em um único chip. Possuem tecnologia CMOS de 
baixo consumo e permitem apagamento e reconfiguração em memória 
não volátil EEPROM. Possuem alta capacidade, a partir de 600 portas 
lógicas até dezenas de milhares, possibilitando uma integração em larga 
escala. Disponibilizam pinos de entrada e saída (I/O) de até 500 pinos, e 
permitem simulação, teste e depuração rápida em protótipos. 
 macrocélula: os elementos PAL são associados a circuitos adicionais na 
saída, que constituem uma macrocélula. É, basicamente, um bloco 
lógico programável que consiste em um circuito AND/OR fixo e um 
registrador flip-flop, ambos programáveis; 
 
 
 
 
 
7 
Figura 5 ‒ Exemplo de estrutura de uma macrocélula 
 
 LAB (Logic Array Block): blocos de arranjos lógicos, que compreendem 
um conjunto de macrocélulas; 
Figura 6 ‒ Estrutura de um LAB 
 
 LUT (Look-Up Table)/LE (Logic Element): uma evolução da arquitetura 
de macrocélula do CPLD mais eficiente em área, que permite maior 
densidade. Sua capacidade é medida em elementos lógicos (LUT de 4 
entradas + registrador). Um elemento lógico (LE) contém uma LUT de 
quatro entradas, um flip-flop para armazenamento e um MUX para 
controle interno. 
 
 
 
8 
Figura 7 ‒ Estrutura básica de um elemento lógico com LUT 
 
 FPGA (Field Programming Gate Array): matriz de portas programáveis 
em campo, consiste em uma arquitetura de blocos lógicos configuráveis 
(CLBs, do inglês Configuration Logical Blocks) baseada em LUT. Uma 
LUT funciona como uma tabela verdade, no sentido de que a saída é 
programada para criar a função combinacional armazenando o 0 ou o 1 
adequado a cada combinação de entrada. Na prática, a LUT é uma 
matriz baseada em SRAM de 16 palavras de 1 bit, usada para 
armazenar os níveis lógicos de saída desejados para uma função lógica 
simples. Algumas características do FPGA: 
• Possui tecnologia CMOS e sua configuração se dá em memória 
SRAM, que é volátil. 
• Possui maior capacidade que o CPLD, medida em LEs (logical 
elements, elementos lógicos), por exemplo: CPLDs vão até ~2K LEs; 
já FPGAs vão até ~100K LEs (LABs são um conjunto de LEs). 
• Disponibiliza pinos de entrada e saída (I/O) de até mais de 1000 
pinos. 
• Permite simulação, teste, depuração e reconfiguração dinâmica (em 
tempo de execução). 
• Os blocos de entrada/saída (I/O) podem ser configurados para 
fornecer recursos de entrada, saída ou bidirecionais. Cada pino de I/O 
é conectado a um bloco lógico programável. Registradores internos 
são usados para guardar os dados que entram ou saem. 
 
 
9 
• Permite o uso de projetos complexos pré-definidos, chamados de 
blocos IP (intelectual property). Um exemplo de bloco IP é o 
processador embarcado Nios II. Em alguns casos, há uma taxa para 
uso de determinados blocos IP no projeto, mas é possível avaliar 
opções sem custo. A vantagem de utilizar um bloco IP é poder 
encurtar o tempo de desenvolvimentode um projeto. 
Figura 8 ‒ Estrutura simplificada de um FPGA 
 
TEMA 3 – LINGUAGEM DE DESCRIÇÃO DE HARDWARE 
3.1 HDL (Hardware Description Language) 
O HDL (Hardware Description Language) descreve circuitos digitais. 
Para começar a desenvolver um projeto para um dispositivo de lógica 
programável existem duas formas: 
1. utilizando editor gráfico por diagrama lógico/esquemático; 
2. utilizando editor de texto por linguagem de descrição de hardware 
(HDL). 
O formato básico de qualquer descrição de circuito de hardware envolve 
dois elementos fundamentais: 
1. definição e especificação de entradas e saídas; 
2. definição de como as saídas respondem às entradas (operação). 
Um PLD (Programmable Logic Array) não é equivalente a um 
processador e, portanto, a HDL não é executada sequencialmente, mas de 
 
 
10 
forma concorrente, a princípio, pois o código descreve um circuito e não 
corresponde a uma sequência de instruções, apesar de ser possível definir 
regiões de código sequencial. 
3.2 Linguagens 
 AHDL (Altera Hardware Description Language): desenvolvida pelo 
fabricante de PLDs Altera, com sintaxe funcional apenas em seus 
dispositivos; 
 Verilog: padrão IEEE 1364, é universal, e tem semelhanças com a 
linguagem C; 
 VHDL (VHSIC1 Hardware Description Language): padrão IEEE 1076, é 
universal, além de mais utilizada e documentada. 
Nesta disciplina, focaremos o desenvolvimento de projetos com 
dispositivos FPGA utilizando a linguagem VHDL. 
A linguagem de descrição de hardware difere das linguagens de 
programação de software porque inclui um meio de descrever o tempo de 
propagação e a intensidade de sinais. 
Figura 9 ‒ A estrutura de um código VHDL. 
 
 
 
 
 
1 Very High Speed Integrated Circuit. 
 
 
11 
TEMA 4 – SOFTWARE ALTERA QUARTUS II 
A ferramenta de projeto e simulação que utilizaremos nesta disciplina é o 
Quartus II 13.0 64-bit da Altera. 
Um projeto, a partir de sua especificação, seguido de sua 
implementação, pode seguir dois caminhos: 
 compilação e simulação em ambiente de software; 
 compilação total gerando arquivos de fabricação e gravação para teste 
em protótipo. 
Figura 10 ‒ Fluxograma simplificado das etapas de um projeto 
 
4.1 Iniciando um novo projeto: File → New → New Quartus II Project 
É nessa etapa inicial que se especifica o nome do projeto, o nome da 
entidade e a família e/ou o modelo específico de dispositivo de lógica 
programável a ser utilizado. 
 
 
 
 
 
12 
Figura 11 ‒ Tela do software Quartus II com um novo projeto criado 
 
4.2 Projeto com diagrama esquemático: File → New → Design files → 
Block diagram/schematic file 
Consiste no editor gráfico, em que é possível criar projetos utilizando 
elementos primitivos (portas lógicas) e outros componentes (macrofunções) 
existentes em bibliotecas. 
As conexões entre os componentes se dá por meio de fios ou 
barramentos. O formato do arquivo utilizado é .bdf. 
Figura 12 ‒ Tela do software Quartus II com um circuito em diagrama 
esquemático 
 
 
13 
 
4.3 Projeto em VHDL: File → New → Design files → VHDL file 
 formato do arquivo: .vhd. 
 Entity: deve ser o mesmo nome no projeto e no código .vhd. 
Figura 13 ‒ Tela do software Quartus II com a descrição de um circuito em 
VHDL 
 
 
 
14 
4.4 Simulação: File →New →Verification/debugging files →University 
program VWF 
 Formato do arquivo: .vwf. 
Figura 14 ‒ Tela do software Quartus II com a tela de simulação da operação 
de um circuito 
 
4.5 Compilação parcial : Processing → Start → Star analysis & 
synthesis 
Etapas da compilação parcial: 
 Otimização lógica: minimização das equações booleanas. 
 Mapeamento da tecnologia: conversão das expressões lógicas em 
células do dispositivo alvo. 
 Detecção de possíveis erros. 
A síntese, na prática, permite a redução de área a ser ocupada no 
circuito integrado. 
 
 
15 
O mapeamento da tecnologia seleciona um conjunto de portas lógicas 
de uma dada biblioteca para implementar as representações abstratas. 
Com esse processo concluído já é possível simular o projeto. 
4.6 Compilação total : Processing → Start compliation 
Etapas da compilação total: 
 Análise e síntese (analysis & synthesis). 
 Posicionamento e roteamento (fitter): o posicionamento é a atribuição de 
componentes particulares do circuito integrado aos componentes lógicos 
do projeto. O roteamento é a atribuição de trilhas e elementos 
programáveis que consomem os recursos disponíveis de interconexão 
para a comunicação entre os componentes. 
 Montagem (assembler). 
 Análise de temporização (timing analysis). 
4.7 Programação do dispositivo : Tools → Programmer 
É o processo de gravação física do arquivo gerado no processo de 
montagem. 
O principal método utilizado é o da interface JTAG (joint test action 
group), padrão IEEE 1149.1. Esse padrão provê maneiras de assegurar a 
integridade de componentes individuais e as interconexões deles em placa de 
circuito impresso. 
Seus arquivos de gravação são: 
 FPGA: .sof (SRAM object file); 
 CPLD: .pof (programmer object file) 
TEMA 5 – KIT ALTERA CYCLONE II 
O kit FPGA com o dispositivo EP2C5T144C8N da família Cyclone II da 
Altera permite prototipagem e teste de projetos. 
 
 
 
 
16 
Figura 15 ‒ Visão de cima do kit FPGA 
 
Figura 16 ‒ Visão de baixo do kit FPGA 
 
5.1 Acessórios 
Figura 17 ‒ Cabo de programação JTAG 
 
Figura 18 ‒ Fonte de energia 
 
 
 
17 
5.2 Características da placa 
 Chip FPGA Cyclone II. 
 Entrada de energia de 5VDC. 
 Conector de programação JTAG. 
 Oscilador de clock de 50mhz. 
 Memória EEPROM de 4M bits. 
 3 leds indicadores configuráveis. 
 1 LED indicador de energia. 
 1 chave de reset. 
 4 conectores de 2x14 pinos. 
5.3 Características do FPGA 
 Encapsulamento: TQFP 144 pinos. 
 Elementos lógicos (les): 4608. 
 Blocos lógicos (labs): 288. 
 Pinos de I/O: 89. 
 Frequência máxima de clock: 320mhz. 
 Suporta CPU embarcada NIOS II. 
FINALIZANDO 
Nesta aula, vimos os aspectos dos dispositivos de lógica programável, 
as famílias de dispositivos lógicos programáveis, a linguagem de descrição de 
hardware, a ferramenta de software para projeto e simulação e, por fim, 
detalhes do kit FPGA Cyclone II utilizado para prototipagem. 
O bom entendimento desta aula é fundamental para podermos dar 
continuidade ao estudo do conteúdo. 
 
 
 
18 
REFERÊNCIAS 
COSTA, C. Projetos de circuitos digitais com FPGA. 3. ed. São Paulo: Érica, 
2014, capítulo 1. 
HELLER, L. F. Getting started with the EP2C5 Cyclone II Mini Board. 
Disponível em: <www.leonheller.com/FPGA/FPGA.html>. Acesso em: 22 de 
nov. 2017. 
TOCCI, R.; WIDMER, N. S. Sistemas digitais: princípios e aplicações. 11. ed. 
São Paulo: Pearson, 2011, capítulos 3 e 13.

Continue navegando