Aula 06 - Dispositivos de Memória e Lógica Programável (PLDs e FPGAs)
Navegação Rápida & Integração Curricular
📍 Disciplina: 02 Eletrônica Digital | 🏭 Área: 05 Eletrônica, Automação e Controle | 🏠 Hub Principal 📄 Apostila Base: Fluxo de Projeto para PLDs (Pedroni, V. A. — Circuit Design with VHDL) ⬅️ Aula Anterior: 05 - Contadores, Registradores e FSM | ➡️ Próxima Aula: 07 - Síntese de Hardware e Projeto Digital com VHDL
1. Introdução aos Dispositivos de Memória Semicondutora
Os dispositivos de memória semicondutora constituem a espinha dorsal de retenção e fluxo de dados em sistemas eletrônicos e de automação, armazenando desde códigos de inicialização de baixo nível (firmware e BIOS), passando por pilhas de execução do sistema operacional e variáveis de processo em tempo real, até gigabytes de dados permanentes.
Do ponto de vista sistêmico, um chip de memória pode ser modelado como uma caixa preta com três interfaces de barramento fundamentais:
- Barramento de Endereço (): Vetor unidirecional de bits fornecido pelo processador ou controlador, capaz de selecionar unicamente uma entre posições físicas de memória;
- Barramento de Dados (): Barramento bidirecional de bits por onde trafegam as palavras gravadas ou lidas;
- Linhas de Controle:
- Chip Select / Enable ( ou ): Habilita o chip quando em nível baixo (); quando em , desconecta as saídas em alta impedância (Hi-Z) e reduz o consumo de energia (Standby);
- Output Enable (): Comanda os buffers de saída durante operações de leitura;
- Write Enable (): Comanda a gravação de novos dados nas células.
📌 Sumário da Aula
- 2. Capacidade e Organização Estrutural Interna
- 3. Memórias Não-Voláteis (ROM e FLASH)
- 4. Memórias Voláteis de Acesso Aleatório (RAM)
- 5. Técnicas de Expansão de Barramento de Memória
- 6. Dispositivos Lógicos Programáveis (PLDs e FPGAs)
- 7. Questões Resolvidas das Materiais Teóricos de Referência
2. Capacidade e Organização Estrutural Interna
2.1 Equação Fundamental de Capacidade
A capacidade total de armazenamento de um circuito integrado de memória, expressa na notação padrão , é dada por:
- Exemplo: Uma memória com linhas de endereço e linhas de dados possui:
2.2 Arquitetura Matricial 2D (Decodificação de Linha e Coluna)
Se as células fossem dispostas em uma única linha reta linear, o circuito de decodificação exigiria um decodificador com saídas (inviável em silício para ). A engenharia de circuitos integrados organiza as células em uma matriz bidimensional 2D (Linhas Colunas):
- O barramento de endereço é dividido em endereços de linha (Row Address) e de coluna (Column Address);
- Um decodificador de linhas ativa uma única Word Line (WL), conectando todas as células daquela linha aos condutores verticais chamados Bit Lines (BL);
- O decodificador de colunas seleciona quais bit lines são roteadas para os Amplificadores de Sensação (Sense Amplifiers) e buffers de saída.
3. Memórias Não-Voláteis (ROM e FLASH)
As memórias não-voláteis caracterizam-se por reter integralmente as informações armazenadas mesmo após o desligamento absoluto da fonte de alimentação de energia ().
3.1 Classificação Tecnológica das ROMs
| Tipo de Memória | Mecanismo de Gravação | Mecanismo de Apagamento | Reprogramável em Placa? | Aplicação Típica |
|---|---|---|---|---|
| Mask-ROM | Fotolitografia na fábrica (máscara) | Não apagável (permanente) | Não | Produção massiva de cartuchos e ASICs |
| PROM | Queima elétrica de elos fusíveis | Não apagável (apenas 1 vez) | Não | Configurações definitivas de baixo volume |
| EPROM | Injeção de portadores a quente | Exposição a radiação UV (janela) | Não (requer remoção) | Firmware legado em desenvolvimento |
| EEPROM | Tunelamento elétrico FN byte a byte | Elétrico byte a byte | Sim | Calibração de sensores, hodômetros digitais |
| FLASH | Tunelamento quântico Fowler-Nordheim | Elétrico por blocos/setores | Sim | BIOS/UEFI, Pen-drives, cartões SD, SSDs |
3.2 FLASH NOR vs FLASH NAND
A memória Flash revolucionou o armazenamento em massa ao substituir o apagamento lento byte a byte da EEPROM pelo apagamento em grandes blocos elétricos. Existem duas topologias concorrentes:
- FLASH NOR:
- Células conectadas em paralelo;
- Suporta leitura com acesso aleatório verdadeiro byte a byte em alta velocidade;
- Permite a execução direta de código pelo processador sem carregar na RAM (Execute in Place — XIP);
- Utilizada em chips de BIOS de placas-mãe e firmware de microcontroladores.
- FLASH NAND:
- Células conectadas em série em longas cordas verticais;
- Altíssima densidade de empacotamento 3D (3D-NAND de mais de 100 camadas);
- Custo por gigabyte drasticamente inferior ao da NOR;
- O acesso é realizado em blocos sequenciais e páginas;
- É a tecnologia universal utilizada em Pen-drives USB, cartões SD e unidades de estado sólido (SSD).
4. Memórias Voláteis de Acesso Aleatório (RAM)
As memórias RAM (Random Access Memory) perdem instantaneamente seus dados quando a alimentação elétrica é interrompida. Dividem-se em duas tecnologias fundamentais:
4.1 SRAM (RAM Estática — Célula CMOS 6T)
- Estrutura: A célula é constituída por um latch biestável formado por 2 inversores cruzados e 2 transistores de acesso NMOS (total de 6 transistores por bit);
- Vantagens:
- Velocidade extrema: tempos de acesso inferiores a nanossegundos;
- Operação puramente estática: dispensa qualquer ciclo de atualização (refresh);
- Interface de controle simples.
- Desvantagens: Baixa densidade de integração (6 transistores ocupam grande área de silício) e elevado consumo por chip;
- Aplicação: Memórias Cache L1, L2 e L3 de microprocessadores e registradores de alta performance.
4.2 DRAM (RAM Dinâmica — Célula 1T-1C)
- Estrutura: Composta por apenas 1 transistor de comutação e 1 capacitor microscópico integrado ();
- Vantagens:
- Densidade monumental: bilhões de células cabem em um único chip;
- Custo por gigabyte muito reduzido.
- Desvantagem Crítica (A Necessidade do Refresh):
- O capacitor de armazenamento sofre perda gradual de carga devido a correntes de fuga parasitas na junção PN do semicondutor;
- Se a carga não for restaurada, o bit corrompe-se em poucos milissegundos;
- Ciclo Periódico de Refresh: O controlador de memória deve periodicamente ler e regravar todas as linhas da memória a cada intervalo de tempo (tipicamente a cada ).
- Aplicação: Memória principal (RAM de sistema) de computadores e servidores (DDR4, DDR5, LPDDR).
5. Técnicas de Expansão de Barramento de Memória
Quando a capacidade de um único circuito integrado não atende aos requisitos do projeto, utilizam-se técnicas de interconexão em cascata:
5.1 Expansão de Largura de Palavra (Word Size Expansion)
- Objetivo: Aumentar o número de bits de dados por endereço sem alterar a quantidade de posições (exemplo: obter utilizando dois chips de ).
- Topologia de Conexão:
- As linhas de endereço () e os sinais de controle () são conectados em comum (em paralelo) em ambos os chips;
- O barramento de dados é particionado: o Chip 1 fornece os bits inferiores e o Chip 2 fornece os bits superiores .
5.2 Expansão de Capacidade / Número de Palavras (Capacity Expansion)
- Objetivo: Aumentar o número total de endereços disponíveis mantendo o tamanho da palavra (exemplo: obter utilizando dois chips de ).
- Topologia de Conexão:
- Os barramentos de dados (), os sinais de leitura/escrita () e as linhas baixas de endereço () são conectados em comum;
- A linha mais alta de endereço () é utilizada para selecionar qual chip será ativado através de um decodificador ou inversor ligado às entradas :
- Se (Habilita Chip 1 para endereços de a );
- Se (Habilita Chip 2 para endereços de a ).
6. Dispositivos Lógicos Programáveis (PLDs e FPGAs)
6.1 Taxonomia Arquitetural: PLA, PAL, CPLD e FPGA
Os dispositivos lógicos programáveis permitem que o projetista configure o hardware digital após a fabricação do silício, através de linguagens de descrição de hardware (VHDL / Verilog):
- PLA (Programmable Logic Array): Possui matriz AND programável (geradora de termos produto) e matriz OR programável (geradora de somas de produtos), oferecendo máxima flexibilidade combinacional, porém maior atraso RC;
- PAL (Programmable Array Logic): Matriz AND programável e matriz OR fixa, reduzindo capacitâncias parasitas, custos de silício e atrasos de propagação;
- CPLD (Complex Programmable Logic Device): Integra múltiplos macroblocos funcionais semelhantes a PALs/GALs interconectados por uma matriz de chaveamento global determinística; utiliza tecnologia não-volátil (EEPROM/Flash), apresentando inicialização instantânea (instant-on);
- FPGA (Field-Programmable Gate Array):
- Composto por uma matriz bidimensional regular (island-style) de Blocos Lógicos Configuráveis (CLBs / Logic Array Blocks), Blocos de Entrada/Saída (IOBs) nas periferias, blocos de memória dedicada (Block RAMs) e multiplicadores/DSPs embarcados;
- Cada CLB contém Tabelas de Busca (LUTs — Look-Up Tables) baseadas em células SRAM estáticas de entradas (capazes de implementar qualquer função booleana de variáveis com atraso constante), multiplexadores de seleção, lógica dedicada de transporte rápido (Fast Carry Chains) e Flip-Flops tipo D;
- Permite implementar sistemas inteiros em um único chip (System-on-Chip — SoC) com milhões de portas lógicas equivalentes.
6.2 Fluxo Completo de Projeto para PLDs e FPGAs (EDA Design Flow)
O ciclo de engenharia para converter uma concepção algorítmica em um circuito digital físico operando dentro de uma FPGA segue um pipeline rigoroso de Automação de Projeto Eletrônico (EDA — Electronic Design Automation). Embora cada fabricante forneça seu próprio ambiente integrado (como Intel/Altera Quartus Prime, AMD/Xilinx Vivado & ISE, Lattice Diamond) ou integre simuladores dedicados (ModelSim / QuestaSim), o fluxo de projeto é conceitualmente universal e independente do fabricante, onde cada etapa gera um subproduto que alimenta o estágio subsequente:
flowchart TD DE["1. Entrada de Projeto (Design Entry)\nCódigo HDL (VHDL / Verilog) ou Esquemático"] --> SIM_BEH["Simulação Comportamental (Behavioral Simulation)\nVerificação funcional pura (atraso delta = 0)"] DE --> SYN["2. Síntese Lógica (Synthesis)\nCompilação HDL -> Netlist RTL\n(Registradores, MUXes, LUTs, Somadores)"] SC["Restrições de Síntese\n(Synthesis Constraints)"] --> SYN SYN --> SIM_RTL["Simulação Pós-Síntese (Functional / Gate-Level)\nVerificação da Netlist RTL gerada"] SYN --> IMP["3. Implementação Física (Implementation)\n• Tradução (Translate / Merge)\n• Mapeamento Tecnológico (Map -> CLBs/IOBs)\n• Posicionamento e Roteamento (Place & Route)"] IC["Restrições de Implementação (.ucf / .xdc / .qsf)\nPinagem de I/Os e Frequência de Clock"] --> IMP FP["Floor-Planning & Pipeline\nIntervenção manual / Replicação de Fan-out"] <--> IMP IMP --> STA["4. Análise Estática de Tempo (STA) & Timing Simulation\nCaminho crítico, f_max, Setup/Hold e Potência"] STA -. "Violação Temporal (Slack < 0)" .-> DE STA --> BIT["5. Geração e Download do Bitstream (.bit / .sof)\nProgramação via JTAG (SRAM volátil) ou Memória PROM/Flash"]
Etapa 1: Especificação e Entrada de Projeto (Design Entry)
Onde o engenheiro formaliza a especificação da arquitetura de hardware:
- Abordagem Estrutural ou Esquemática: Interconexão visual ou textual de blocos funcionais, portas lógicas e componentes pré-existentes (netlist hierárquica);
- Abordagem Comportamental / RTL via HDLs (VHDL ou Verilog): Descrição algorítmica das relações entre entradas, registradores e saídas.
- Nota Histórica e Crítica sobre Síntese em VHDL: A linguagem VHDL não foi concebida originalmente para síntese automática de circuitos, mas sim para documentação e especificação formal no programa VHSIC do Departamento de Defesa dos EUA. Por essa razão, o VHDL permite construções puramente abstratas (como
WAIT FOR 10 ns, tiposREALou manipulação de arquivosFILE) que são perfeitamente válidas para simulação de bancada (Testbench), mas não são sintetizáveis em hardware físico.
Etapa 2: Síntese Lógica e RTL (Synthesis)
É a etapa de “compilação de hardware” que traduz o modelo abstrato em VHDL/Verilog para uma Netlist em Nível de Transferência entre Registradores (RTL — Register-Transfer Level):
- Análise Sintática e Hierárquica: Verifica a gramática da linguagem e resolve a árvore de módulos/componentes instanciados;
- Inferência e Otimização Booleana: Converte as equações e processos em uma lista de elementos lógicos canônicos: registradores (Flip-Flops), multiplexadores, somadores, comparadores e funções booleanas;
- Otimização Multiobjetivo: Guiada pelas Restrições de Síntese (Synthesis Constraints), a ferramenta aplica algoritmos de minimização para equilibrar o trade-off entre Área de Silício (número de LUTs/FFs) e Velocidade (profundidade lógica de portas em cascata).
Etapa 3: Implementação Física (Implementation — Dependente da Plataforma)
Diferentemente da síntese RTL (que é relativamente genérica), a implementação é estritamente dependente da arquitetura física da FPGA alvo e subdivide-se em três subetapas:
- Tradução (Translate): Agrega a netlist gerada pela síntese com os arquivos de Restrições de Implementação do Usuário (Implementation Constraints — ex.: atribuição física dos pinos de I/O da placa e especificações de período de clock) em um único banco de dados lógico unificado;
- Mapeamento Tecnológico (Technology Mapping): Particiona o circuito lógico em unidades funcionais menores e aloca cada subcircuito nos recursos físicos reais da FPGA alvo (CLBs, LUTs de entradas, Flip-Flops, IOBs, blocos DSP e BRAMs). Nessa fase, já se conhecem com precisão os atrasos intrínsecos de comutação () de cada célula lógica;
- Posicionamento e Roteamento (Place & Route — PAR):
- Posicionamento (Placement): Determina as coordenadas espaciais exatas de cada CLB mapeado dentro da matriz da FPGA, utilizando algoritmos de recozimento simulado (simulated annealing) para manter blocos logicamente acoplados fisicamente próximos;
- Roteamento (Routing): Configura as chaves programáveis (switch matrices) e trilhas metálicas de interconexão para ligar os blocos posicionados. Esta etapa é o principal determinante do desempenho dinâmico do circuito, pois nas FPGAs modernas os atrasos de propagação nas trilhas de roteamento () frequentemente superam os atrasos das próprias portas lógicas!
Etapa 4: Verificação Multinível, Análise de Tempo (Timing Analysis) e Floor-Planning
Ao longo do fluxo, duas naturezas distintas de verificação garantem a corretude do projeto:
- Simulação Comportamental (Behavioral / Functional Simulation): Executada logo após o Design Entry (ou pós-síntese RTL). Avalia exclusivamente a lógica funcional do código assumindo componentes ideais sem atraso físico de propagação (apenas atrasos infinitesimais de simulação ).
- Análise Estática de Tempo (STA) e Simulação Temporal (Post-Route Timing Simulation): Executada após o Place & Route, quando todas as capacitâncias parasitas de trilha e atrasos de célula são exatamente conhecidos. Determina a dissipação de potência, o Caminho Crítico (Critical Path — trajeto combinacional de maior atraso entre dois registradores) e a Frequência Máxima de Operação ():
- Restrições de Usuário e Floor-Planning: Se a análise temporal apontar violação de tempo (Negative Slack, isto é, ), o projeto falha na validação temporal e exige intervenção de engenharia:
- Inserção de Pipeline: Fatiamento de caminhos combinacionais longos inserindo bancos de registradores intermediários para reduzir por estágio;
- Mitigação de Fan-Out Elevado: Sinais que alimentam centenas de entradas sofrem alta capacitância de carga; a solução é a replicação de sinais/registradores (register duplication) ou o uso de redes globais dedicadas (Global Clock / Low-Skew Buffers);
- Posicionamento Manual (Floor-Planning): Restrição manual de regiões físicas da FPGA para forçar blocos críticos a ficarem adjacentes.
Etapa 5: Geração do Bitstream e Programação da FPGA
Concluídas todas as etapas com restrições físicas e temporais atendidas, a ferramenta EDA gera o arquivo binário de configuração chamado Bitstream (.bit, .sof, .pof), contendo milhões de bits que definem o conteúdo das tabelas verdade das LUTs, o estado das chaves de roteamento e a configuração dos IOBs:
- Modo de Desenvolvimento / Bancada: O bitstream é transferido diretamente do computador para a matriz SRAM volátil de configuração da FPGA através da interface serial JTAG (IEEE 1149.1) ou porta USB. Ao desligar a placa, a configuração é perdida;
- Modo de Produto Final (Stand-Alone Boot): O bitstream é gravado em uma memória não-volátil externa (uma PROM serial / Flash SPI dedicada na placa). Durante a energização (power-up), o controlador de inicialização da FPGA lê automaticamente o bitstream dessa memória Flash para se autoconfigurar;
- Segurança Industrial: Para proteger a propriedade intelectual (IP Core) contra engenharia reversa e clonagem por interceptação do barramento da PROM, FPGAs modernas suportam criptografia de bitstream (ex.: AES-256) com chave armazenada internamente no chip.
7. Questões Resolvidas das Materiais Teóricos de Referência
Questão 1 (Apostila 05 - Módulo 1)
Enunciado: Qual é a capacidade de uma memória semicondutora que possui 10 linhas de endereço e 4 linhas de dados?
A) 4 kilobits
B) 1024 bits
C) 1024 bytes
D) 2048 nibbles
E) 1 kilobyteResolução Passo a Passo:
- O número de posições de memória unicamente endereçáveis é dado por , onde é o número de linhas de endereço:
- Cada localidade armazena uma palavra cuja largura é dada pelo número de linhas de dados ( bits):
- Expressando na unidade padrão de telecomunicações e eletrônica digital:
Resposta Correta: A (4 kilobits)
Questão 2 (Apostila 05 - Módulo 1)
Enunciado: A memória que não perde sua informação mesmo quando desconectada da alimentação de energia, sendo ideal para guardar informações de configuração e evitar que o usuário tenha de reinserir esses dados toda vez que ligar o dispositivo, é chamada de:
A) Estática
B) Dinâmica
C) Não-volátil
D) Registrável
E) VolátilResolução Passo a Passo:
- Memórias voláteis (como SRAM e DRAM) exigem alimentação contínua para preservar o estado de seus capacitores ou transistores biestáveis. Ao desligar a energia, todos os dados são perdidos.
- Memórias não-voláteis (como ROM, EEPROM e FLASH) retêm seus dados permanentemente por meio de estruturas físicas rígidas ou armadilhas de carga em portas flutuantes.
- Portanto, para reter configurações e firmware durante o desligamento do equipamento, a classe obrigatória é a Memória Não-Volátil.
Resposta Correta: C (Não-volátil)
Questão 1 (Apostila 05 - Módulo 2)
Enunciado: Um pen-drive USB é amplamente utilizado para transferir informações entre computadores ou armazenar arquivos. Ele poderia ser construído com dois tipos de memória não-volátil regravável. Assinale a alternativa que apresenta tais memórias, considerando que a segunda apresenta um custo por byte inferior e maiores velocidades de gravação em bloco, sendo por isso a opção industrialmente escolhida:
A) SPROM e EEPROM
B) SRAM e DRAM
C) EEPROM e FLASH
D) DRAM e SRAM
E) FLASH e ROMResolução Passo a Passo:
- Um pen-drive requer memórias que sejam:
- Não-voláteis (para manter os arquivos fora da porta USB);
- Eletricamente regraváveis e apagáveis pelo usuário diretamente no sistema.
- As duas tecnologias que preenchem esses requisitos são a EEPROM e a FLASH:
- A EEPROM tradicional apaga e grava byte a byte, resultando em maior complexidade de circuito e custo por bit mais alto;
- A memória FLASH (especialmente NAND Flash) apaga em grandes setores/blocos, alcançando densidade muito superior, custo por byte drasticamente menor e taxas de transferência mais altas.
- Portanto, as duas opções são a EEPROM e a FLASH.
Resposta Correta: C (EEPROM e FLASH)
Questão 2 (Apostila 05 - Módulo 2)
Enunciado: Relacione as colunas a seguir correlacionando o tipo de memória à sua respectiva propriedade e assinale a alternativa correta:
Coluna 1:
(A) PROM
(B) RAM
(C) ROMColuna 2:
(I) É, na verdade, um circuito combinacional.
(II) É volátil (perde os dados ao desligar).
(III) Se for programada incorretamente, perde-se o chip de memória.A) A-II; B-I; C-III
B) A-I; B-II; C-III
C) A-III; B-I; C-II
D) A-III; B-II; C-I
E) A-II; B-III; C-IResolução Passo a Passo:
- (A) PROM (Programmable ROM): A gravação consiste na queima irreversível de micro-fusíveis ou antifusíveis através de pulsos de alta tensão. Uma vez queimado o fusível, o processo é fisicamente irreversível. Se o usuário cometer um erro na programação, o chip não pode ser restaurado e é inutilizado A-III.
- (B) RAM (Random Access Memory): Armazena dados em capacitores (DRAM) ou células biestáveis ativas (SRAM). Na ausência de tensão de alimentação, a informação dissipa-se imediatamente, caracterizando-a como volátil B-II.
- (C) ROM (Read-Only Memory): Uma memória somente de leitura pura tem suas saídas perfeitamente definidas como funções booleanas fixas das linhas de endereço de entrada, comportando-se matematicamente e fisicamente como uma grande rede combinacional pré-fabricada C-I.
- Associação resultante: A-III; B-II; C-I.
Resposta Correta: D