Buscar

Dispositivos p Lógicos Programáveis ‐ PLDs

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 56 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 56 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 56 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

Universidade Federal de Campina Grande
Departamento de Engenharia Elétrica
Circuitos Lógicos:
Dispositivos Lógicos Programáveis ‐ PLDsp g g
1
Introduçãoç
A realização de um projeto de um sistema digitalç p j g
consiste em:
• Determinar a função lógica que o sistema a ser
projetado deve apresentar como resposta aos
estímulos recebidos;
• Construir o circuito lógico que execute essa função a
partir de circuitos lógicos simples (portas OR, AND,
XOR Fli fl d i d )XOR, Flip‐flops, contadores, registradores, etc).
2
Introduçãoç
Devido a complexidade dos sistemas atuais, esse tipo
de projeto está se tornando inviável devido a váriosde projeto está se tornando inviável devido a vários
problemas, tais como:
• Alto número de CI’s contendo os circuitos lógicos
necessários;
• Alto atraso global do sistema devido a contribuição
individual dos atrasos de cada porta lógica;individual dos atrasos de cada porta lógica;
• Necessidade de um grande layout físico para acomodar• Necessidade de um grande layout físico para acomodar
todos os componentes;
3
Introduçãoç
• Alto consumo do sistema;• Alto consumo do sistema;
P í i d ã /• Possíveis erros de conexão e/ou mau contatos;
• Possíveis indisponibilidades dos circuitos
necessários no mercado;
• Necessidade de protótipos para testes que• Necessidade de protótipos para testes, que
acarreta em mais gastos.
4
Introduçãoç
• Pesquisas foram implementadas a fim de se• Pesquisas foram implementadas a fim de se
obter uma forma alternativa mais viável de se
efetuar os projetos em dispositivos queefetuar os projetos em dispositivos que
contivessem milhares de portas lógicas
internamente;internamente;
• Com a lógica programável surgiram vários
novos dispositivos passíveis de seremp p
programados pelo projetista.
5
Introduçãoç
• A que despontou como a mais promissora é a• A que despontou como a mais promissora é a
“descrição de hardware”. O projetista, com o
íli d t d d h dauxílio do computador, descreve o hardware a ser
projetado utilizando uma HDL (Hardware
d ãDescription Language – Linguagem de Descrição
de Hardware).
• Uma HDL é muito parecida com uma linguagem de• Uma HDL é muito parecida com uma linguagem de 
programação de alto nível, como C ou Pascal.
6
Introduçãoç
• Após a descrição ser feita existem várias ferramentas deApós a descrição ser feita, existem várias ferramentas de
simulação para testar a funcionalidade do projeto antes
de sua implementação. E isto é importante porque reduzp ç p p q
drasticamente o tempo de testes;
• Ao término da etapa de teste é então escolhido o
dispositivo que mais se adapte ao projeto e então utiliza‐
se um software de síntese lógica, para converter a
escrição em HDL para um arquivo que contenha os dados
necessários para a programação do dispositivonecessários para a programação do dispositivo.
7
Introduçãoç
• Deve se ressaltar que existem dispositivos• Deve‐se ressaltar que existem dispositivos
programáveis que só podem ser programados
úuma única vez, e os que podem ser
reprogramados de acordo com a necessidade.
8
LÓGICA PROGRAMÁVEL
• Os componentes da lógica programável são
dispositivos que possuem em sua lógica interna
t ( ilh ) d t ló i fli flcentenas (ou milhares) de portas lógicas, flip‐flops e
registradores; que são interligados internamente;
• Essas interconexões são os pontos programáveis da
lógica. Pode‐se então programar essas conexões para
permanecerem fechadas ou abertas, de acordo com a
necessidade do projeto.
• Essas interconexões podem ser entendidas como
fusíveis, que de acordo com a necessidade do projetofusíveis, que de acordo com a necessidade do projeto
podem ou não ser queimados (desfazendo ou não a
conexão entre portas lógicas).
9
LÓGICA PROGRAMÁVEL
Existem vários tipos de dispositivos lógicos
programável (PLD Programmable Logic Devices):programável (PLD – Programmable Logic Devices):
PLA• PLA
• PAL
i i i ó i á i l ( )• Dispositivos Lógicos Programáveis Complexos (CPLD)
• Arranjo de Portas Programáveis em Campo (FPGA)
Pode‐se também considerar as memórias PROM como
ó á fdispositivos de lógica programáveis se elas forem
utilizadas para implementar funções lógicas.
10
Dispositivos Lógicos Programáveis (PLD)Dispositivos Lógicos Programáveis (PLD)
• Os dispositivos lógicos programáveis (PLD –p g p g
Programmable Logic Device) são circuitos
integrados programáveis pelo usuário queintegrados programáveis pelo usuário, que
possui um grande número de portas lógicas
(AND OR NOT) flip flops e registradores(AND, OR, NOT), flip‐flops e registradores
que estão interligados em um mesmo CI.
11
Dispositivos Lógicos Programáveis (PLD)Dispositivos Lógicos Programáveis (PLD)
12
Arranjos Lógicos ProgramáveisArranjos Lógicos Programáveis
• Um arranjo lógico programável consiste de um
circuito que possui uma estrutura interna
baseada em um conjunto de portas AND‐ORbaseada em um conjunto de portas AND OR
(o conjunto de portas AND e OR são
chamados de arranjos)chamados de arranjos).
13
Arranjos Lógicos ProgramáveisArranjos Lógicos Programáveis
• As entradas desse circuito são ligadas às
t d d t AND íd dentradas das portas AND e as saídas das
portas AND são ligadas às entradas das portas
OR íd íd dOR e suas saídas representam as saídas do
circuito .
14
Memória PROM (Programmable ROM)Memória PROM (Programmable ROM)
• A memória ROM programável (PROM) é uma
memória apenas de leitura que pode ser
gravada uma vez pelo usuário através da
queima dos fusíveis internos.
• Na memória PROM o arranjo AND é pré• Na memória PROM  o arranjo AND é pré‐
definido em fábrica (arranjo fixo) e somente 
o arranjo OR é programávelo arranjo OR é programável. 
15
Memória PROM (Programmable ROM)
16
PAL - Programmable Array Logic
X – ligações fixas
• O PAL tem as a portas AND
programáveis, ou seja, enquanto
Arranjos OR fixos
- ligações programáveis
as portas OR são pré‐conectadas
em fábrica, então todas as portas
AND podem ser programadas.AND podem ser programadas.
Arranjos AND programáveis
17
PLA - Programmable Logic Arrays
X – ligações programáveis
- ligações programáveis
• Um PLA possui tanto a matriz de
portas AND quanto a matriz de
g ç p g
portas AND quanto a matriz de
portas OR programáveis
combinando as características
d PROM d PALde uma PROM e de um PAL.
Arranjos AND programáveis
18
Arranjos de Portas Programáveis
• Os arranjos de portas programáveis são
i é i á iestruturas mais genéricas e versáteis que as
baseadas na estrutura tradicional AND‐OR dos
arranjos lógicos programáveis.
19
Arranjos de Portas Programáveis
A i i l t é ibilid d d• A principal vantagem é a possibilidade de
reprogramação do comportamento de um
circuito quantas vezes for necessária, ao
contrário dos arranjos lógicos programáveisj g p g
que só podem ser programados uma vez,
ou seja definida sua função lógica ela nãoou seja, definida sua função lógica ela não
poderá ser mudada.
20
CPLD Complex PLDCPLD - Complex PLD
• Os CPLDs podem ser vistos como
dispositivos que utilizam em sua estruturadispositivos que utilizam em sua estrutura
vários PLD´s (PLA ou PAL). Cada PLA ou PAL
formam células que são interligadas atravésformam células que são interligadas através
de conexões programáveis.
21
CPLD - Complex PLD
22
FPGA- Field Programmable Gate Arrayg y
• É um dispositivo lógico programável que possui• É um dispositivo lógico programável que possui
uma arquitetura baseada em blocos lógicos
f á ( fconfiguráveis, chamados de CLB (Configuration
Logical Blocks) que são formados por portas
lógicas e flip‐flops que implementam funções
lógicas.lógicas.
23
FPGA- Field Programmable Gate Arrayg y
• O FPGA também é formado por estruturas• O FPGA também é formado por estruturas
chamadas de blocos de entrada e saída (IOB –
/ ) áIn/Out Blocks), os quais são responsáveis pelo
interfaceamento entre as saídas provenientes
das combinações de CLBs.
24
FPGA- Field Programmable Gate Array
Bl Ló i
Blocos de Entrada e Saída
Linhas de Roteamento
Bl Ló i
Blocos de Entradae Saída
Linhas de Roteamento
Bl Ló i
Blocos de Entrada e Saída
Linhas de Roteamento
Blocos Lógicos 
Configuráveis Matriz de Roteamento
Blocos Lógicos 
Configuráveis Matriz de Roteamento
Blocos Lógicos 
Configuráveis Matriz de Roteamento
25
FPGA- Field Programmable Gate Array
A típica estrutura interna de um bloco lógico configurável de um FPGA, consiste
em flip-flops, um determinado número de multiplexadores e uma estrutura de
função combinatória para implementar as funções lógicas.
26
Considerações Finais
• Para efetuarmos um projeto utilizando os dispositivos
explicados, necessitamos de uma nova técnica de
projeto e de um software que permita realizar a
programação (software de síntese lógica).
• Para o caso da programação, cada dispositivo possui o
seu próprio software (de síntese lógica) que é fornecidoseu próprio software (de síntese lógica) que é fornecido
pelo fabricante. Resta, então, aprender uma nova
técnica de projeto.
• Devemos salientar também que, para o usuário final,
FPGA e CPLD podem ser vistas como o mesmo tipo deFPGA e CPLD podem ser vistas como o mesmo tipo de
estrutura. A única diferença está na sua estrutura
interna, mas o seu resultado final é o mesmo.
27
Circuitos Lógicos:
Linguagem de Descrição deLinguagem de Descrição de 
Hardware - HDLHardware HDL
27/12/2011 28
Circuitos Lógicos
Linguagem HDL
Linguagem de alto nível, para a descrição de circuitos
digitais, compatível com a linguagem de programaçãog , p g g p g ç
de vários dispositivos;
Li HDL ã d tLinguagens HDL são capazes de representar
processos concorrentes encontrados nos
elementos de hardware;elementos de hardware;
Com a descrição em HDLs a verificação funcional doç ç
projeto pode ser feita facilmente durante as etapas do
projeto.
27/12/2011 29
Circuitos Lógicos
Projetos com HDLs
g
As HDLs descrevem um sistema digital em váriosg
níveis:
Ní l t t l dNível comportamental – descreve as
funcionalidades do projeto sem detalhar a
implementação (Muito Abstrato)implementação (Muito Abstrato).
Nível de layout- roteamento de componentes e fiosy p
em um chip (Muito detalhado).
27/12/2011 30
Circuitos Lógicos
Projetos com HDLs
27/12/2011 31
Circuitos Lógicos
Linguagem HDL
Capacidade de representar:
Sistemas concorrentes – São aqueles que as
tarefas são executadas de forma paralela;
Sistemas sequenciais – São aqueles que as tarefas
são executadas de forma sequencial;são executadas de forma sequencial;
Hierarquia – Podemos descrever o sistema comoq
pequenos blocos e trata-los individualmente.
27/12/2011 32
Circuitos Lógicos
Projeto em Verilog HDL – padrão IEEE 1364
No Verilog cada bloco é chamado de módulo, que é equivalente a um
símbolo em um projeto baseado em esquema elétrico.
Ao se desenvolver um módulo deve-se dar um nome único ao mesmo;
Em seguida defini-se as interfaces do módulo, identificando: entradas,Em seguida defini se as interfaces do módulo, identificando: entradas,
saídas ou portas bidirecionais;
Pode ser necessário incluir módulos de construção mais simples paraPode ser necessário incluir módulos de construção mais simples para
se obter um módulo mais complexo;
A forma como esses blocos são interconectados é denominadoA forma como esses blocos são interconectados é denominado
hierarquia.
27/12/2011 33
Circuitos Lógicos
Estrutura de um Módulo
27/12/2011 34
Circuitos Lógicos
Estrutura de um Módulo
Um modulo é declarado pela 
keyword module e seu término com 
a keyword endmodule.
Todo módulo deve conter:
Um identificador para o módulo 
( ) d l(seu nome), o module_name;
Uma descrição das entradas e 
saídas do módulo osaídas do módulo, o 
module_terminal_list;
A definição de quem éA definição de quem é 
entrada/saída e;
A descrição de sua funcionalidade
27/12/2011 35
A descrição de sua funcionalidade, 
o module_internals.
Circuitos Lógicos
Exemplo de Módulo
Código Verilog meio somador.
module HALF_ADD(A, B, SUM, CARRY);
output SUM, CARRY;
input A, B;
assign SUM=A^B;
i CARRY A&Bassing CARRY=A&B;
endmodule
27/12/2011 36
Circuitos Lógicos
Projeto Hierárquico
As vantagens obtidas ao fazer uso da hierarquia são:
Divisão em partes menores torna mais fácil encontrar e depurar erros;
Pedaços da lógica (sub-blocos) podem ser identificados e reusados em
outras partes do projeto apenas instanciando o sub-bloco;
Um projeto em blocos pode ser distribuído entre vários projetistas.
27/12/2011 37
Circuitos Lógicos
Instância
Ao usar um módulo, o Verilog cria um objeto único a partir 
do modelo. Cada objeto tem seu próprio nome, variáveis, 
parâmetros e interfaces de E/S.
O processo de criar um objeto a partir de um móduloO processo de criar um objeto a partir de um módulo 
modelo é chamado instanciação – objetos são chamados 
de instâncias;de instâncias;
27/12/2011 38
Circuitos Lógicos
Portas
Li t d P tLista de Portas
A definição de um módulo contém uma lista opcional de portas. Se o
módulo não troca sinais com o ambiente, não há portas na lista.
Todas as portas na lista de portas devem ser declaradas no módulo.p p
As portas podem ser declaradas como:
input (porta de entrada);
output (porta de saída) ou;output (porta de saída) ou;
Inout (porta bidirecional).
27/12/2011 39
Circuitos Lógicos
Portas
Todas as declarações de portas são implicitamente declaradas
como wire no Verilog.
Se uma porta deve ser declarada como wire, é suficiente declará-la
como output, input ou inout.p p
Portas input e inout são normalmente declaradas como wire.
Se a porta output deve armazenar algum valor, ela deve ser
declarada como reg.
Portas input e inout não podem ser declaradas como reg, porque as
variáveis reg armazenam valores e esses tipos de portas apenas
27/12/2011 40
g p p p
refletem as mudanças dos sinais externos a que são conectadas.
Verilog
Tipos de Operadores
Tipo de Operador Símbolo do Operação Realizada Número deTipo de Operador Símbolo do 
Operador
Operação Realizada Número de 
Operandos
Aritmético *
+
Multiplicação
Adição
Dois
Dois
- Subtração Dois
Lógico !
&&
NOT lógico
AND lógico
Um
Dois
| | OR lógico Dois
Relacional >
<
Maior que
Menor que
M i i l
Dois
Dois
D i> =
< =
Maior ou igual que
Menor ou igual que
Dois
Dois
Bitwise ~
&
NOT
AND
Um
Dois&
|
^
^ ~ ou ~ ^
AND
OR
XOR
XNOR
Dois
Dois
Dois
Dois
27/12/2011 41
Verilog
Tipos de Operadores
Tipo de Operador Símbolo do Operador Operação Realizada Número de Operandos
Igualdade = =
! =
Igualdade
Desigualdade
Dois
Dois! = Desigualdade Dois
Redução &
~ &
|
AND redutor
NAND redutor
OR redutor
Um
Um
Um|
~ |
^
^ ~ ou ~ ^ 
OR redutor
NOR redutor
XOR redutor
XNOR redutor
Um
Um
Um
Um
Deslocamento > >
< <
Deslocamento a 
direita
Deslocamento a 
esquerda
Dois
Dois
esquerda
Concatenação { } Concatenação Qualquer número
Replicação {{ }} Replicação Qualquer número
27/12/2011 42
Condicional ? : Condicional três
Verilog
Estruturas if-else
Sintaxe:
if (<condição>)
beginbegin
<linhas de código caso a expressão seja 
verdadeira>
endend
else
beginbegin
<linhas de código caso a expressão seja falsa>
end
27/12/2011 43
Verilog
Estruturas if-else
Exemplos:
if (!lock) buffer = data
f ( )if (control == 0) y = x + z;
else if (control == 1) y = x – z;
else if (control == 2) y = x * z;
if(regA = regB)
beginbegin
regC = regA + regC;
regB = regC;
endend
else regC = regA;
27/12/2011 44
Verilog
Estruturas case
Evita estruturas if-else aninhadas
Sintaxe exemplificada
( )case (control)
0 : y = x + z;
1: y = x – z;
2 *2: y = x * z;
default: y = 0;
endcase
27/12/2011 45
Verilog
Controle de Eventos
Podemos controlar a ocorrência de eventos – Mudança de estado ou 
subida/descida de nível.
Utiliza-se o operador @
@ (variável) sempre que a variável mudar de nível@ (variável) sempre que a variável mudar de nível.
@ (posedge variável) só quando a variável mudar seu nível de 0 
para 1 (borda de subida).para 1 (borda de subida).
@ (negedge variável) só quando a variável mudar seu nível de 1 
para 0 (borda de descida).p ( )
27/12/201146
Verilog
Controle de Eventos
Exemplos:
always @ (d) X = X +1 // Sempre que d mudar de nível X é 
incrementado 
always @ (negedge d) X = Y // Sempre que d for a zero X recebe 
o valor de Y
always @ (posedge d)
begin // Sempre que d subir para 1, as operações 
X = X + 1; // entre o begin e o end são efetuadasX = X + 1; // entre o begin e o end são efetuadas
Y = 2 * X;
end
27/12/2011 47
Verilog
Lógica Combinacional
Construções always – Utilizada em conjunto com um controle de
eventos, pode ser usado para implementar lógica combinacional.
Propriedades a serem respeitadas:
O controle de eventos para a construção always para implementação
d ló i bi i l ã d í l à d d í l dde lógica combinacional não pode ser sensível à mudanças de nível do
clock do sistema (se existir um clock);
O controle de eventos para a construção é sensível a todas asO controle de eventos para a construção é sensível a todas as
possíveis mudanças na saída dessa construção;
A construção always provê uma saída para cada mudança ouA construção always provê uma saída para cada mudança ou
combinação de mudanças das variáveis que estão sendo
monitoradas pelo controle de eventos.
27/12/2011 48
Verilog
Lógica Combinacional
Construções always 
Módulo proc Conta número de 1’s de um dado de 3 bitsMódulo proc – Conta número de 1 s de um dado de 3 bits
module proc(d, q)
input [2:0] d;input [2:0] d;
output [1:0] q;
integer num_bits;
always @ (d)
begin
integer i;integer i;
num_bits = 0;
for (i = 0; i < 3; i = i + 1) if (d[i] == 1) num_bits 
= 
num_bits + 1;
end
assign q = num_bits;
27/12/2011 49
endmodule
Verilog
Lógica Combinacional
Atribuições contínuas
Operador assign variável do tipo net (wire).
Exemplo:
module exemplo(a, b, c, d);
input a, b, e;
t t doutput c, d;
assign c = a & b;
assign d = e;assign d = e;
endmodule 
27/12/2011 50
Placas FPGA
Antiga Placa de DesenvolvimentoAntiga Placa de Desenvolvimento
52
Vista superior da placa
Antiga Placa de DesenvolvimentoAntiga Placa de Desenvolvimento 
53
Vista inferior da placa
DE2 – Development Education Board
Vista geral
54
DE2 – Development Education BoardDE2 – Development Education Board
disposição dos dispositivos
55
Utilizando o Quartus II tela inicialUtilizando o Quartus II‐ tela inicial
56Abrir Arquivo

Continue navegando