Você está na página 1de 15

UNIVERSIDADE POLITÉCNICA

A POLITÉCNICA
INSTITUTO SUPERIOR DE ESTUDOS UNIVERSITÁRIOS DE NAMPULA

Curso: Engenharia Elétrica


Cadeira: Sistemas Digitais
Semestre: Vº

Discentes: Mércia Heli Ouane

Tema: Logicas Programáveis de Software

Docente
_______________________________
(Viola )
Nampula, Maio de 2023
Índice
Introdução........................................................................................................................................3
Lógicos programáveis de software..................................................................................................4
Lógicos programáveis......................................................................................................................4
O Dispositivo PAL..........................................................................................................................4
O Dispositivo GAL..........................................................................................................................5
Diagrama em Bloco Geral de Dispositivos PAL/GAL....................................................................6
Tipos de Dispositivos Lógicos Programáveis..................................................................................6
Dispositivo de Lógica Programável Simples (SPLD).....................................................................7
Dispositivo de Lógica Programável Complexo (CPLD).................................................................7
Arranjo de Portas Programáveis por Campo (FPGA).....................................................................8
O Processo de Programação............................................................................................................9
Entrada do Projeto.........................................................................................................................10
Simulação Funcional.....................................................................................................................11
Síntese............................................................................................................................................11
Implementação...............................................................................................................................11
Simulação de Temporização..........................................................................................................11
Download.......................................................................................................................................11
Análise de defeitos.........................................................................................................................12
Falhas.............................................................................................................................................12
circuitos Internas em CIs de Portas Lógicas..................................................................................12
Condições para o Teste de Portas..................................................................................................13
Efeitos de uma Saída Aberta Internamente...................................................................................13
Entrada ou Saída em Curto-Circuito..............................................................................................13
Pontos Externos Abertos ou em Curto-Circuito............................................................................13
Conclusão......................................................................................................................................14
Referencias Bibliográficas.............................................................................................................15
Introdução

3
Lógicos programáveis de software

Lógicos programáveis

A lógica de programação necessita de hardware e software. Dispositivos de lógica programável


podem ser programados para realizar funções lógicas especificadas pelo fabricante ou pelo
usuário. Uma vantagem da lógica programável sobre a lógica de funções fixas é que os
dispositivos programáveis ocupam bem menos espaço na placa para uma mesma quantidade de
lógica. Uma outra vantagem é que, com a lógica programável, pode-se alterar os projetos com
facilidade sem alterações físicas no hardware ou substituição de componentes. Além disso, um
projeto lógico geralmente pode ser implementado mais rápido e com um menor custo com a
lógica programável do que com Circuitos Internos programáveis de função fixa. (Floyd, Thomas
L, 2007-176)

Os dois tipos principais de dispositivos lógicos programáveis simples (SPLDs) são o PAL e o
GAL. PAL significa lógica de arranjo programável e GAL significa lógica de arranjo genérico.
Geralmente, o dispositivo PAL é programável uma vez (OTP – one-time programmable) e um
dispositivo GAL é um tipo de PAL reprogramável; entretanto, como alguns dispositivos
programáveis SPLDs ainda são chamados de PALs, a linha entre PALs e GALs não é bem
definida. O termo GAL é uma designação original usada pela Lattice Semiconductor e
posteriormente licenciada para outros fabricantes. A estrutura básica de PALs e GALs é um
arranjo AND programável e um arranjo OR fixo, que é uma arquitetura básica de soma-de-
produtos. O dispositivo lógico programável complexo (CPLD) é basicamente um único
dispositivo com múltiplos SPLDs que proporcionam maior capacidade para projeto de circuitos
lógicos maiores.

O Dispositivo PAL

Um dispositivo PAL (programmable array logic) consiste em um arranjo programável de portas


AND que se conecta a um arranjo fixo de portas OR. Geralmente, os dispositivos PALs são
implementados com a tecnologia de conexão a fusível e, portanto, são programáveis uma vez
(OTP). A estrutura de um dispositivo PAL permite que qualquer expressão lógica de soma-de-
produtos com um número definido de variáveis seja implementada. Conforme já estudamos,
qualquer função lógica combinacional pode ser expressa na forma de soma-de-produtos. Uma
4
estrutura simples de um dispositivo PAL é mostrada na Figura 11–1 para duas variáveis de
entrada e uma saída; a maioria dos dispositivos PALs tem muitas entradas e muitas saídas.
Conforme estudamos no Capítulo 3, um arranjo programável e essencialmente uma grade ou
matriz de condutores que formam linhas e colunas com uma conexão programável em cada
ponto de cruzamento. Cada conexão programável, que no caso de um dispositivo PAL é um
fusível, é denominada de célula. Cada linha é conectada na entrada de uma porta AND e cada
coluna é conectada a uma variável de entrada ou o seu complemento. Programando a presença ou
ausência de uma conexão a fusível, qualquer combinação das variáveis de entrada ou os
complementos pode ser aplicada a uma porta AND para formar qualquer termo-produto
desejado. As portas AND são conectadas a uma porta OR, criando uma saída de soma-de-
produtos.

O Dispositivo GAL

O dispositivo GAL é essencialmente um dispositivo PAL que pode ser reprogramado. Ele tem o
mesmo tipo de organização AND/OR que o dispositivo PAL. A diferença básica é que um
dispositivo GAL usa uma tecnologia de processo reprogramável, como uma EEPROM
(E2CMOS), em vez de fusíveis, como mostra a Figura 11–3.

5
Diagrama em Bloco Geral de Dispositivos PAL/GAL

Um diagrama em bloco de um dispositivo PAL ou GAL é mostrado na Figura 11–6. Lembre-se,


a diferença básica é que um dispositivo GAL tem um arranjo reprogramável e um dispositivo
PAL é programável apenas uma vez. As saídas do arranjo AND programável vão para as portas
OR fixas que são conectadas à lógica de saída adicional. Uma porta OR combinada com a sua
lógica de saída associada é tipicamente denominada macrocélula. A complexidade da
macrocélula depende do dispositivo em particular, sendo sempre reprogramável nos dispositivos
GAL.

Tipos de Dispositivos Lógicos Programáveis

Temos disponíveis vários tipos de lógica programável, desde dispositivos de pequena


capacidade, os quais podem substituir alguns dispositivos de funções lógicas fixas, até
dispositivos complexos de alta densidade, que podem substituir centenas de dispositivos de
funções fixas. As duas categorias principais de lógica programável pelo usuário são PLD
(programmable logic device) e FPGA (field programmable gate array). As PLDs se subdividem
SPLDs (PLDs simples) e CPLDs (PLDs complexas).

6
Dispositivo de Lógica Programável Simples (SPLD)

O SPLD foi o PLD que surgiu inicialmente e ainda encontra-se disponível para aplicações de
pequena escala. Geralmente, um SPLD pode substituir até dez CIs de função fixa e suas
interconexões, dependendo dos tipos de funções e do SPLD específico. A maioria dos SPLDs
estão em uma das duas categorias: PAL e GAL. Um dispositivo PAL (programmable array of
logic) pode ser programado uma vez. Ele consiste de um arranjo programável de portas AND e
um arranjo fixo de portas OR. Um dispositivo GAL (generic array logic) é basicamente um
dispositivo PAL que pode ser reprogramado várias vezes. Ele consiste de um arranjo
programável de portas AND e um arranjo fixo de portas OR com saídas programáveis.

Dispositivo de Lógica Programável Complexo (CPLD)

Conforme o progresso tecnológico e o aumento da quantidade de circuito que pode ser


implementado em um chip (densidade de chip), os fabricantes conseguiram implementar mais de
um SPLD num único chip, surgindo assim o CPLD. Essencialmente, o CPLD é um dispositivo
que contém múltiplos SPLDs e pode substituir diversos CIs de funções fixas. A Figura 1–34
mostra o diagrama em bloco básico de um CPLD com quatro blocos de arranjo lógico (LABs –
logic array blocks) e um arranjo de interconexões programáveis (PIA – programmable
interconnction array). Dependendo do CPLD específico, podem existir de 2 a 64 LABs. Cada
bloco de arranjo lógico é aproximadamente equivalente a um SPLD.

7
Geralmente, CPLDs podem ser usadas para implementar quaisquer tipos de funções lógicas
discutidas anteriormente, como decodificadores, codificadores, multiplexadores,
demultiplexadores e somadores. Eles estão disponíveis em uma variedade de configurações,
tendo tipicamente um encapsulamento com uma extensão de 44 a 160 pinos. A Figura 1–35
mostra exemplos de encapsulamentos para CPLDs

(a) Encapsulamento PLCC de 84 pinos (b) Encapsulamento PQFP de 128 pinos

Arranjo de Portas Programáveis por Campo (FPGA)

Um FPGA é geralmente mais complexo e tem uma densidade muito maior que CPLD, embora
suas aplicações possam, em alguns casos, se sobrepor. Conforme mencionado, o SPLD e o
CPLD são inter-relacionados porque o CPLD contém basicamente dispositivos SPLDs.
8
Entretanto, o FPGA tem uma estrutura (arquitetura) interna diferente, conforme ilustra a Figura
1–36. Os três elementos básicos de um FPGA são o bloco lógico, as interconexões programáveis
e os blocos de entrada/saída (I/O – in/out).

Os blocos lógicos em um FPGA não são complexos como os LABs em um CPLD, porém,
geralmente eles existem em maior número. Quando os blocos lógicos são relativamente simples,
a arquitetura do FPGA é denominada grão fino (fine-graned). Quando os blocos lógicos são
maiores e mais complexos, a arquitetura é denominada grão grosso (coarse-graned). Os blocos
de I/O estão nas bordas da estrutura e proporcionam acesso individualmente selecionável de
entrada, saída ou bidirecional ao mundo externo. A matriz de interconexões programáveis
distribuídas provê as interconexões de blocos lógicos e as conexões para as entradas e saídas.
FPGAs de grande capacidade podem ter dezenas de centenas de blocos lógicos, além de
memória e outros recursos. Um encapsulamento típico BGA (ball-grid array) de uma FPGA é
mostrado na Figura 1–37. Esses tipos de encapsulamentos podem ter mais de 1.000 pinos de
entradas e saídas.

O Processo de Programação

Uma SPLD, CPLD ou FPGA pode ser vista como um “quadro branco” no qual podemos
implementar um determinado circuito ou sistema projetado fazendo uso de um certo processo.
Esse processo necessita de um software de desenvolvimento instalado em um computador para
implementar um projeto de circuito em um chip programável.

Vários passos, chamados de fluxo de projeto, estão envolvidos no processo de implementação de


um projeto lógico em um dispositivo lógico programável. A Figura 1–39 mostra um diagrama
em bloco de um processo de programação. Conforme indicado, o fluxo do projeto tem acesso a
uma biblioteca de projeto.

9
FIGURA 1–39 Diagrama em bloco básico da seqüência do
projeto de uma lógica programável.

Entrada do Projeto

Esse é o primeiro passo. O projeto do circuito ou sistema tem que ser inserido no software de
desenvolvimento de projeto usando entrada baseada em texto, entrada gráfica(desenho
esquemático) ou descrição em diagrama de estado. A inserção do projeto é independente do
dispositivo. A inserção baseada em texto é realizada com uma linguagem de descrição de
hardware (HDL – hardware description language), tal como VHDL, Verilog, AHDL ou ABEL.
A inserção gráfica (esquemático) permite que funções lógicas pré-armazenadas sejam
selecionadas a partir de um biblioteca, apresentada na tela e então interconectadas para criar o
projeto lógico. A inserção por diagrama de estados requer a especificação dos estados pelos
quais um circuito lógico seqüencial passa e as condições que provocam a mudança de cada
estado. Uma vez inserido o projeto, ele é compilado. Um compilador é um programa que
controla o processo do fluxo do projeto e traduz o código-fonte em código-objeto num formato
que pode ser testado logicamente ou transferido para um dispositivo destino. O código-fonte é
criado durante a inserção do projeto e o código-objeto é o código final que realmente faz com
que o projeto seja implementado no dispositivo programável.

10
Simulação Funcional

O projeto compilado inserido é simulado por software para confirmar se os circuitos lógicos
funcionam conforme esperado. A simulação irá verificar se as saídas adequadas são geradas para
um conjunto de entradas especificadas. Uma ferramenta de software independente do dispositivo
que faz essa tarefa é denominada editor de forma de onda. Qualquer falha demonstrada pela
simulação poderia ser corrigida voltando no projeto inserido e realizando as alterações
apropriadas.

Síntese

A fase sínteseé onde o projeto é traduzido em uma lista (netlist), a qual tem uma forma
padronizada e é independente do dispositivo.

Implementação

A implementaçãoé onde a estrutura lógica descrita pela netlist é mapeada na estrutura real do
dispositivo a ser programado. O processo de implementação é denominado fitting ou place and
routee resulta em uma saída denominada seqüência de bits, a qual depende do dispositivo usado.

Simulação de Temporização

Esse passo ocorre após o projeto ser mapeado no dispositivo especificado. A simulação de
temporização é basicamente usada para confirmar que não existem falhas no projeto ou
problemas de temporização em função dos atrasos de propagação.

Download

Uma vez gerada uma seqüência de bits para um dispositivo programável específico, ele tem que
ser transferido (operação download) ao dispositivo para implementar o projeto de software no
hardware. Alguns dispositivos programáveis são instalados em uma seção especial de um
equipamento denominado programador de dispositivosou em uma placa de desenvolvimento.
Outros tipos de dispositivos podem ser programados quando ainda estão inseridos no sistema –
denominados programáveis no sistema (ISP – in-system programming) – usando uma interface
padrão JTAG (Joit Test Action Group). Alguns dispositivos são voláteis, o que significa que eles
perdem o conteúdo armazenado quando sofrem uma operação de resete (inicialização) ou quando

11
a alimentação é desligada. Nesse caso, os dados (seqüência de bits) têm que ser armazenados
numa memória e recarregados no dispositivo após cada resete ou desligamento da alimentação.
Além disso, o conteúdo de um dispositivo ISP pode ser manipulado ou atualizado enquanto
estiver operando no sistema.

Análise de defeitos

A análise de defeito é o processo de reconhecer, isolar e corrigir um defeito ou falha num


circuito ou sistema.

Para ser um técnico de manutenção efetivo, o leitor precisa entender como o circuito ou sistema
deve funcionar e ser capaz de reconhecer os problemas de funcionamento. Por exemplo, para
determinar se uma porta lógica específica está ou não com defeito, o técnico tem que saber qual
deve ser a resposta de saída para determinadas entradas.

Falhas

circuitos Internas em CIs de Portas Lógicas

Curtos-circuitos e abertos são os tipos mais comuns de defeitos internos às portas lógicas. Esses
podem ocorrer nas entradas ou na saída de uma porta dentro do encapsulamento de um CI. Antes
de voltar a atenção em busca de qualquer defeito, verifique se as tensões de alimentação e GND
são adequadas.

Uma entrada aberta evita que um sinal na entrada chegue à saída da porta, conforme ilustra a
Figura3–67(a) para o caso de uma porta NAND de 2 entradas.

Figura 3-67 (a) A aplicação de pulsos numa entrada aberta não produz pulsos na saída.

12
Condições para o Teste de Portas

No teste de uma porta NAND ou porta AND, certifique sempre se as entradas sem sinal estão em
nível ALTO para habilitar a porta. Na verificação do funcionamento de uma porta NOR ou porta
OR, certifique sempre se as entradas sem sinal estão em nível BAIXO. No teste de uma porta
EX-OR ou EX-NOR, não importa o nível lógico na entrada sem sinal porque os pulsos na outra
entrada forçam as entradas a se alternarem entre os mesmos níveis lógicos e níveis lógicos
opostos.

O primeiro passo na análise de defeito num CI suspeito de estar com falhas é certificar que a
tensão e alimentação (VCC) e GND estão presentes nos pinos apropriados do CI. Em seguida,
aplique pulsos numa das entradas da porta, certificando que a outra entrada esteja em nível
ALTO (no caso de uma porta NAND).

Efeitos de uma Saída Aberta Internamente

A saída de uma porta aberta internamente evita que um sinal em qualquer das entradas chegue
até ela. Portanto, não importa quais são as condições das entradas, a saída não é afetada. O nível
na saída do pino do CI depende do que está conectado externamente. O nível pode ser ALTO,
BAIXO ou flutuação (sem referência fixa). De qualquer forma, não haverá sinal no pino de
saída.

Entrada ou Saída em Curto-Circuito

Embora não seja tão comum como um circuito aberto, pode ocorrer um curto-circuito interno
para a tensão de alimentação cc, GND, outra entrada ou uma saída. Quando uma entrada ou saída
está em curto-circuito para a tensão de alimentação, ela está presa ao nível ALTO. Se uma
entrada ou saída estiver em curto-circuito com GND, ela estará presa no nível BAIXO (0 V). Se
duas entradas ou uma entrada e uma saída estão em curto-circuito entre si, elas estarão sempre no
mesmo nível.

Pontos Externos Abertos ou em Curto-Circuito

Muitos dos defeitos que envolvem os CIs digitais são devido a falhas externas ao
encapsulamento do CI. Isso inclui conexões de solda fria, pingos de solda, pontes de fio, traçado
inadequado da placa de circuito impresso e trincas ou interrupções em fios ou interconexões na

13
placa de circuito. Essas condições de circuito aberto ou curto-circuito têm o mesmo efeito na
porta lógica que as falhas internas e a análise de defeito é feita basicamente da mesma forma.
Uma inspeção visual de qualquer circuito sob suspeita de defeito é a primeira coisa que um
técnico deve fazer.

Conclusão

14
Referencias Bibliográficas

Floyd, Thomas L. Sistemas digitais [recurso eletrônico] : fundamentos e aplicações / Thomas


L. Floyd ; tradução José Lucimar do Nascimento. – Dados eletrônicos. – 9. ed. – Porto Alegre :
Bookman, 2007.

15

Você também pode gostar