Agenda
- Introdução
- Lógica Programável
- Dispositivos de Lógica Programável
- Arranjos Lógicos Programáveis (PLA e PAL)
- Arranjos de Portas Programáveis (CPLD e FPGA)
- Linguagem de Descrição de Hardware
• Válvula no início de 1940 • Transistor em 1947
– Não aquece como as válvulas – Fisicamente menor
• 1961 primeiro integrado TTL 74LSXX • Década de 1970
– Surgem os microprocessadores – Surgem (ROM e Logic Arrays - PLA e PAL) << 600 portas – ASIC’s – Applications Specific Integrated Circuits
• Década de 1980 >> 600 portas – Complex PLD – CPLD – FPGA – Field Programmable Gate Array
Introdução
• Basicamente, o projeto de um sistema digital consiste em determinar a função lógica que traduz o funcionamento do mesmo de acordo com estímulos recebidos.
• A partir disso podemos implementar um circuito lógico complexo que execute essa função a partir de circuitos lógicos simples.
Introdução
Projetista tem o desafio de encontrar o balanço entre velocidade e generalidade do hardware
• Chip genérico
– Microcontroladores Muitas funções Sacrifício de desempenho
• Chip dedicado
– ASICS Aplicação específica alta velocidade baixo consumo só se justifica em grande quantidade, pois alterações do projeto não são possíveis
Introdução
• Os componentes da lógica programável são dispositivos que possuem em sua lógica interna centenas (ou milhares) de portas lógicas, flip-flops, registradores e outros; que são interligados internamente.
• Essas interconexões são os pontos programáveis da lógica. Podemos 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 projeto podem ou não ser queimados (desfazendo ou não a conexão entre portas lógicas). Essa queima é realizada pelo projetista, utilizando um software de programação do dispositivo.
Lógica Programável
• Circuito que possui uma estrutura interna baseada em um conjunto de portas AND-OR (arranjos).
• As entradas desse circuito são ligadas às entradas das portas AND e as saídas das portas AND são ligadas às entradas das portas OR e suas saídas representam as saídas do circuito.
Arranjos Lógicos Programáveis
• 3 Entradas – X1, X2, X3
• 2 Saídas – Z1, Z2
• Apenas bloco AND configurável com 6 entradas
• Bloco OR fixo
PAL – Soma de Produtos
3 Entradas – X1, X2, X3
2 Saídas – Z1, Z2
Um bloco AND configurável com 6
entradas
Um Bloco OR Configurável com 6
entradas
PLA – Soma de Produtos
• Os arranjos de portas programáveis são estruturas mais genéricas e versáteis que as baseadas na estrutura tradicional AND-OR dos arranjos lógicos programáveis.
• A principal vantagem deste tipo de circuito é a possibilidade de
reprogramação do comportamento de um circuito quantas vezes for necessária, ao contrário dos arranjos lógicos programáveis que só podem ser programados uma vez, ou seja, definida sua função lógica ela não poderá ser mudada.
Arranjos de Portas Programáveis
• Os CPLDs podem ser vistos como dispositivos que utilizam em sua estrutura vários PLD´s (PLA ou PAL). Cada PLA ou PAL formam células que são interligadas através de conexões programáveis.
CPLD - Complex PLD
FPGA - Field Programmable Gate Array
Blocos Lógicos
Configuráveis
Blocos de Entrada e Saída
Linhas de Roteamento
Matriz de Roteamento
Blocos Lógicos
Configuráveis
Blocos de Entrada e Saída
Linhas de Roteamento
Matriz de Roteamento
Blocos Lógicos
Configuráveis
Blocos de Entrada e Saída
Linhas de Roteamento
Matriz de Roteamento
• Blocos de entrada/saída configuráveis: são componentes de entrada/saída formados por estruturas bidirecionais que incluem buffer, flip-flop de entrada, buffer tri-state e flip-flop de saída .
• Interconexões Programáveis (Matriz de Roteamento): pode ser do tipo SRAM, Antifusível ou EPROM. São como interruptores programáveis, geram as pistas de ligação entre os blocos lógicos e blocos de entrada e saída .
• Blocos Lógicos Configuráveis: pode ser tão simples como um transistor ou tão complexo quanto um microprossessador. Este bloco é capaz de implementar várias funções combinacionais (através de look-up-table) e sequenciais (através de flip-flops).
FPGA – Elementos Básicos
• VHDL (Very High Speed Integrated Circuit Hardware Description
Language) é uma linguagem padronizada de descrição de hardware ratificada em 1987 pelo IEEE.
• Serve para modelar a estrutura e o comportamento do Hardware: – Estrutural:
• Descreve-se o circuito pensando na arquitetura.
– Comportamento: • Descreve-se o circuito pensando no seu funcionamento.
Linguagem de Descrição de Hardware
Exercício
Elabore um circuito para alocar memórias ROMs de 64 bytes (A e B) nos intervalos
mostrados a seguir (complete a tabela), utilizando chips de 64 células de 4 bits e
considerando um espaço total de endereçamento de 256 bytes. Observação: o
dispositivo que vai utilizar esse banco de memória possui 8 linhas no barramento de
endereços e oito linhas no barramento de dados, além de um sinal de leitura de
memória ROM, RDROM, ativo em zero.
Endereço inicial Endereço final Memória
00111111 A
01000000 Vazio
11111111 B