Você está na página 1de 23

Eletrônica Digital

Aula 6

Prof. Ederson Cichaczewski

1
CCDD – Centro de Criação e Desenvolvimento Dialógico
Conversa Inicial
Seja bem-vindo à sexta aula de Eletrônica Digital!
Nesta aula veremos uma introdução à lógica programável. Também
conheceremos os dispositivos lógicos programáveis. Iremos entender os
circuitos em linguagem de descrição de hardware (HDL). Vamos conhecer as
ferramentas de desenvolvimento. Por fim, faremos a simulação de circuitos
digitais em lógica programável.
Bons estudos!

Contextualizando
Você sabe o que é lógica programável?
Lógica programável consiste na síntese de circuitos digitais em um único
chip, utilizando uma linguagem de descrição de hardware. Para isso, é
necessário utilizar ferramentas de desenvolvimento e simulação para debugar o
projeto antes de partir para a aplicação real.
Dessa forma, o entendimento dos projetos de lógica programável é
fundamental para o Engenheiro desenvolver sistemas digitais.

Pesquise

Lógica Programável

Trata-se em configurar um dispositivo chamado PLD com um circuito de


lógica digital.
PLD é um chip que permite configurar qualquer circuito digital,
sintetizando em apenas 1 circuito integrado a função de vários tipos de circuitos
digitais, como portas lógicas, flip-flops, contadores, memórias etc.
Também facilita o processo de teste, pois usa-se uma ferramenta de
programação com recursos de debug e simulação.
PLDs são usados para prototipagem em desenvolvimento de chips de
circuitos integrados (CIs).

2
CCDD – Centro de Criação e Desenvolvimento Dialógico
Substitui-se centenas de CIs por apenas 1! A figura a seguir ilustra que
com a implementação dos circuitos integrados digitais em lógica programável é
possível desenvolver um microcircuito que será construído em um wafer de
silício e será encapsulado, transformando-se em um chip.

Para implementar um circuito digital em lógica programável, utiliza-se uma


linguagem de descrição de hardware (HDL – Hardware Description Language),
o que não é o mesmo que linguagem de programação.

Formas de Implementação
Diagrama esquemático

3
CCDD – Centro de Criação e Desenvolvimento Dialógico
Diferença entre Processador e PLD
Processador

 Possui estrutura de hardware fixa.

 Faz a execução de um software linha a linha de forma


sequencial.

 “Emula” funções lógicas.

 Limitado pelo seu barramento (16 bits, 32bits etc.)

PLD

 Estrutura de hardware programável.

 Execução de todo o código e todas as funções em paralelo.

 “Configura” o hardware das funções lógicas.

 Pode configurar um processador ou mais.

4
CCDD – Centro de Criação e Desenvolvimento Dialógico
A empresa Altera é fabricante de PLDs e possui o seu ambiente de
desenvolvimento IDE chamado Quartus II, assim como sua linguagem de
descrição de hardware AHDL (Altera Hardware Description Language).
Nos concentraremos aqui nos recursos e ferramentas da Altera.

Uma outra grande empresa de PLDs é a Xilinx (se fala zailix).

Vantagens de um PLD:
 Ocupa menos espaço em uma placa de circuito impresso.
 Tem menor consumo de energia.
 Oferece maior confiabilidade.
 Proporciona menor complexidade de desenvolvimento.
 Normalmente tem um custo menor de fabricação.
Limitações:
 Apenas digital, não implementa circuitos analógicos.

 Capacidade limitada, é necessário um PLD que suporte o


tamanho do circuito que se deseja implementar.

5
CCDD – Centro de Criação e Desenvolvimento Dialógico
Os chips são SMD (surface mount device) e não DIP (dual inline package),
portanto, não possuem pinos compridos e não é possível testar em um proto-
board, é necessário fazer uma placa de circuito impresso específica e soldar o
PLD no protótipo de teste.

Dispositivos Lógicos Programáveis

Os PLDs estão dentro de uma categoria de sistemas digitais chamada


ASIC (Application Specific Integrated Circuits).

PLD Internamente:
PAL: Matriz lógica programável (Programmable array logic)
 Arranjo de portas AND conectadas a portas OR.

 Implementa qualquer circuito lógico combinacional.

 Saída na forma de soma de produtos.

 Adicionando flip-flop, implementa circuitos sequenciais.

6
CCDD – Centro de Criação e Desenvolvimento Dialógico
CPLD (PLD Complexo)

 Conjunto de PALs em um chip.

 Capacidade: menos de 100.000 elementos lógicos.

 Possui memória não volátil, portanto, armazena sua


programação em uma memória EEPROM.

FPGA (Matriz de Portas Programáveis em Campo)

 Usa uma estrutura diferente da PAL, chamada LUT (Look-Up


Table).

 Possui memória volátil.

 Capacidade: mais de 1.000.000 elementos lógicos.

 Maior desempenho, menor consumo.

 Reconfiguração dinâmica.

7
CCDD – Centro de Criação e Desenvolvimento Dialógico
FPGA Internamente

Necessita ser programado cada vez que é energizado. Portanto, precisa


de uma memória auxiliar para armazenamento do programa.
Dispositivos Comerciais:
CPLD Altera EPM7128S (Família MAX7000S)

 160 pinos em um chip com encapsulamento PQFP (Plastic Quad


Flat Package)
 100 pinos de I/O (entrada e saída)
 2.500 portas

8
CCDD – Centro de Criação e Desenvolvimento Dialógico
FPGA Altera EP3C25 (Família Ciclone III)

 24.624 Elementos Lógicos


 324 pinos em um chip com encapsulamento FBGA (Fine pitch
Ball Grid array)
 215 pinos de I/O

Kit de Desenvolvimento
DK-START-3C25N Cyclone III FPGA – Altera
É um kit que possui todos os recursos de interface necessários para o
desenvolvimento de um projeto, como botões, LEDs, conexões de entrada e
saída, fonte de alimentação, memória SRAM e FLASH, oscilador, interface de
gravação, entre outros.

9
CCDD – Centro de Criação e Desenvolvimento Dialógico
Linguagem de Descrição de Hardware

A Linguagem de Descrição de Hardware (HDL – Hardware Description


Language) não é linguagem de programação, tampouco representa uma
sequência de instruções. Trata-se de um texto com sintaxe específica para
descrever circuitos digitais. Sintetiza circuitos digitais em um dispositivo de lógica
programável.
Em uma simulação, todas as linhas de código são executadas em
paralelo.

Linguagens HDL
AHDL (Altera HDL)
 Desenvolvida pela Altera.
 Características adaptadas à arquitetura dos dispositivos da Altera.
VHDL (HDL de circuito de alta velocidade).
 Padronizada pelo IEEE.
 Universal, serve em dispositivos de diversos fabricantes.
 Sintaxe diferente da AHDL para um mesmo circuito digital.
 Usaremos esta linguagem.

Formato básico da linguagem VHDL:


Especificações de entrada e saída (I/O):
Palavras-chave: ENTITY, IS, END
Definir como as saídas respondem às entradas (operação):
Palavras-chave: ARCHITECTURE, OF, IS, BEGIN, END
Formato do arquivo texto: .vhd
Ex: porta AND

10
CCDD – Centro de Criação e Desenvolvimento Dialógico
Diagrama de símbolos

 Os símbolos são encontrados na biblioteca do Quartus II.


 Primeiro, adiciona-se cada símbolo.
 Depois, faz a conexão entre eles.
 Em seguida, edita o nome de cada um.
 Formato do arquivo: .bdf
 É possível criar o arquivo texto .tdf a partir do diagrama do circuito
.bdf.

Importante

 Usa-se palavras-chaves (reservadas) em letra MAIÚSCULA.


 Usa-se variáveis definidas pelo desenvolvedor em letra
minúscula.
 PORT: indica que serão definidas entradas e saídas.
 Pode-se definir mais de uma porta por linha, separando-se por
vírgula (,).
 Especifica-se o tipo (IN/OUT) após dois pontos (:), indicando
uma conexão única com BIT.
 Atribuição concorrente: <=

11
CCDD – Centro de Criação e Desenvolvimento Dialógico
Ambiente Altera Quartus II

Quartus II é uma ferramenta de desenvolvimento, compilação e simulação


da Altera.
Saiba mais sobre a Versão: Quartus II Web Edition Free 13.0.0.156. (ver
material on-line).

Observação: existem versões mais atuais, contudo, é essa versão que suporta
o FPGA Cyclone III.

12
CCDD – Centro de Criação e Desenvolvimento Dialógico
Novo Projeto VHDL
Passos:

Next > (page 1)

Next > (page 2)

13
CCDD – Centro de Criação e Desenvolvimento Dialógico
Seleciona Família Cyclone III
Next > (page 3)
Next > (page 4)
Finish (page 5)

14
CCDD – Centro de Criação e Desenvolvimento Dialógico
Adicionando um arquivo .vhd para escrever o código

Passos:

Escrever o código VHDL a seguir e, então, salvar para nomear o arquivo.

Arquivo .vhd foi incluído ao projeto.

15
CCDD – Centro de Criação e Desenvolvimento Dialógico
* Entity deve ter o mesmo nome no projeto e no código: ProjetoVHDL.
Compilar
Há um botão na barra de ferramentas chamado “Start Analysis & Synthesis”,
clicar nele.

16
CCDD – Centro de Criação e Desenvolvimento Dialógico
Simulação de Circuitos

Preparado para fazer um simulado de um circuito em VHDL? Vamos lá!

Criar um arquivo VWF (Waveform File)


Selecionar em Verification/Debugging Files a opção “University Program
VWF”.

17
CCDD – Centro de Criação e Desenvolvimento Dialógico
Adicionando as entradas e saídas

18
CCDD – Centro de Criação e Desenvolvimento Dialógico
Clicar em Node Finder
Clicar em List
Clicar em >>, OK, OK

Adicionando valores às entradas

Clicar na entrada a e em Count Value, deixar Count every: 20ns

O mesmo para a entrada b com Count every: 10ns

19
CCDD – Centro de Criação e Desenvolvimento Dialógico
Simulando
Primeiramente, selecionar o Quartus II Simulator pelo menu Simulation.
Depois, também pelo menu Simulation, escolher a opção Run Functional
Simulation ou clicar no botão correspondente na barra de ferramentas.

Salvar o arquivo como ProjetoVHDL.vwf.

20
CCDD – Centro de Criação e Desenvolvimento Dialógico
Resultado da operação:

Verifica-se na saída y o resultado da operação AND entre as entradas a


e b.

Trocando Ideias
Chegou o momento de participar no fórum!
Os dispositivos lógicos programáveis (PLDs) são a tecnologia mais
avançada dos sistemas digitais. Substituem e simplificam o circuito de protótipo,
reduzem os requisitos de potência, inclusive reduzindo o ciclo de
desenvolvimento de projetos, permitindo também a possibilidade de futuras
atualizações de forma facilitada. O fabricante de PLDs Altera proporciona uma
ferramenta integrada de desenvolvimento gratuita e kits de desenvolvimento que
oferecem todo o suporte para projetar, simular, configurar e testar circuitos
digitais.
Comente sobre os PLDs no fórum. Participe!

21
CCDD – Centro de Criação e Desenvolvimento Dialógico
Na Prática
Para consolidar os conceitos vistos nesta aula, vamos tratar sobre um
recurso de desenvolvimento do ambiente Quartus II, que se trata das
megafunções, as quais fazem parte da biblioteca LPM (library of parameterized
modules). Com esse recurso, podemos inserir componentes customizados,
conforme a nossa necessidade.
Vamos fazer um contador módulo 8, ou seja, que conta de 0 a 7, com 3
bits, que possui uma entrada de clock para determinar o tempo de transição dos
estados de contagem.
Passos:
1º Vamos criar um novo projeto e adicionar um arquivo de diagrama de símbolos
.bdf em File  New  Block Diagram / Schematic File

2º Clicar no botão Symbol Tool na barra de ferramentas


3º Na seção megafunctions ir em arithmetic e escolher o item lpm_counter
4º Irá abrir a janela “MegaWizard Plug-In Manager” e clicar em Next >
5º Na próxima tela deixar com 3 bits e marcando Up only, clicar em Next>
6º Clicar em Next > nas próximas 4 telas, então em Finish
7º Clicar na área do arquivo .bdf para inserir o componente.
8º Clicar no botão PinTool e inserir um Input, ligando na entrada clock e um

Output ligando na saída q[2..0].


Nomear a entrada e a saída conforme o circuito abaixo:

9º Criar um arquivo de simulação .VWF, adicionar o pino de clock e o barramento


de saída.
10º Configurar o pino de clock em Count Value com Count every 20ns.

22
CCDD – Centro de Criação e Desenvolvimento Dialógico
11º Clicar em Run Fuctional Simulation, o resultado é dado abaixo:

Podemos verificar o resultado da contagem de 0 (0002) a 7 (1112), ou seja,


8 contagens, então o contador é zerado e reinicia a contagem automaticamente.
Podemos, ainda, configurar a saída Q para mostrar a contagem em
decimal sem sinal (Unsigned Decimal), clicando com o botão direito do mouse e
indo na opção Radix, ficando assim:

Síntese
Estamos finalizando esta aula!
Hoje trabalhamos com lógica programável, compreendemos dispositivos
PLDs, entendemos a linguagem HDL. Também conhecemos o ambiente de
desenvolvimento Quartus II e realizamos simulação de circuitos digitais.
O bom entendimento desta aula é fundamental, visto que trata dos
elementos de lógica programável, complementando o conhecimento de sistemas
digitais.

Referência

TOCCI, R.; WIDMER, N. S. Sistemas Digitais – Princípios e Aplicações. 11ª ed.


São Paulo: Pearson, 2011. Capítulo 4.

23
CCDD – Centro de Criação e Desenvolvimento Dialógico

Você também pode gostar