🤖
ELETRÔNICA IA
Pesquisa Inteligente do Blog
👋 Olá Bete!

Agora sou uma IA híbrida 🤖

✅ Pesquiso conteúdos do blog
✅ Encontro palavras nos textos
✅ Entendo palavras com acento
✅ Ajudo nos estudos técnicos

Pesquise por:

⚡ eletricidade
📘 lei de ohm
🔋 capacitor
📈 osciloscópio
🔧 protoboard
🤖 arduino

SIMULADOR DE RAM 256x8

RAM 256×8 — simulador
endereço 0–255 · 1 byte por célula
WE (write enable)
OE (output enable)
Saída (Q): --
Pronto. Digite um endereço e um dado, depois clique em Escrever.

RAM 256×8: organização, endereçamento e temporização

Uma memória RAM 256×8 é um dispositivo de armazenamento volátil de acesso aleatório organizado em 256 posições endereçáveis, cada uma armazenando uma palavra de 8 bits (1 byte). A capacidade total é, portanto:

256 × 8 bits = 2048 bits = 256 bytes = 2 Kbit

O número de posições decorre diretamente da largura do barramento de endereço. Com n = 8 linhas de endereço, o espaço endereçável é 2⁸ = 256 combinações binárias distintas (0000 0000 a 1111 1111, ou 0x00 a 0xFF em hexadecimal). Esse é o princípio geral de qualquer memória: o número de posições é sempre uma potência de 2, determinada pela largura do barramento de endereço.

Estrutura interna: decodificador + matriz de células

Internamente, um chip desse tipo é composto por dois blocos principais:

  • Decodificador de endereço: converte o valor binário presente no barramento A[7:0] em um único sinal de seleção de linha, ativando exatamente uma entre 256 linhas da matriz de memória. É essencialmente um decodificador 8-para-256.
  • Matriz de células de memória: uma grade de 256 × 8 elementos de armazenamento (flip-flops ou latches, no caso de SRAM). Cada célula armazena 1 bit; uma linha inteira (8 células) forma um byte.

Barramentos e sinais de controle

Sinal Largura Função
A[7:0] 8 bits Seleciona qual das 256 posições será acessada
D[7:0] 8 bits Barramento de dados bidirecional (entrada na escrita, saída na leitura)
WE (Write Enable) 1 bit Ativo, geralmente, em nível baixo (WE̅). Habilita a operação de escrita: o dado em D[7:0] é gravado na célula endereçada
OE (Output Enable) 1 bit Habilita o buffer de saída (tri-state), colocando o conteúdo da célula endereçada no barramento D
CS/CE (Chip Select) 1 bit Habilita o chip como um todo; permite endereçar múltiplos bancos de memória no mesmo barramento sem conflito

É importante notar que D[7:0] é bidirecional e opera em lógica tri-state: quando nem a leitura nem a escrita estão ativas, o barramento de dados fica em alta impedância (Z), liberando-o para uso por outros dispositivos conectados ao mesmo barramento — essencial em arquiteturas onde RAM, ROM e periféricos compartilham as mesmas linhas físicas.

Sequência temporal de uma operação

Escrita (write cycle):

  1. O endereço é colocado em A[7:0] e mantido estável (tempo de setup do endereço).
  2. O dado é colocado em D[7:0].
  3. WE é ativado por um pulso; a célula endereçada captura o valor de D[7:0] na borda de desativação de WE (ou enquanto WE permanece ativo, dependendo da tecnologia — SRAM estática costuma ser level-triggered).
  4. WE é desativado; o dado fica retido na célula até nova escrita ou perda de alimentação.

Leitura (read cycle):

  1. O endereço é colocado em A[7:0].
  2. OE é ativado, habilitando o buffer de saída tri-state.
  3. Após o tempo de acesso (tAA, access time), o conteúdo da célula está estável em D[7:0] e pode ser capturado pelo circuito que está lendo.

No simulador interativo apresentado acima, esses ciclos são abstraídos em dois botões — Escrever e Ler — que executam a sequência completa instantaneamente, sem representar os tempos de setup/hold reais (na ordem de nanossegundos em chips comerciais). A grade 16×16 exibe o conteúdo de todas as 256 posições simultaneamente, algo que um chip real não expõe — na prática, só é possível observar uma posição por vez, através do próprio barramento de dados.

Diagrama de tempo (write cycle)

Abaixo, uma representação simplificada de um ciclo de escrita, mostrando a relação temporal entre os sinais. tAS é o tempo de setup do endereço, tWP a duração do pulso de WE, e tDH o tempo de retenção do dado após WE subir:

A[7:0]  ──┤ endereço válido (0x1E) ├───────────────
              │← t_AS →│
D[7:0]  ──────┤ dado válido (0x4B) ├───────────────
                        │← t_WP →│
WE      ──────────────┐          ┌─────────────────
                        └──────────┘
                                    │← t_DH →│
                                    célula grava aqui
OE      ────────────────────────────────────────── (inativo durante a escrita)

E o ciclo de leitura correspondente, onde o dado só fica válido em D[7:0] após o tempo de acesso tAA contado a partir da estabilização do endereço:

A[7:0]  ──┤ endereço válido (0x1E) ├───────────────
              │←──────── t_AA ────────→│
OE      ──────────────┐                ┌───────────
                        └────────────────┘
D[7:0]  ~~~~~~~~~~~~~~~~~~~┤ 0x4B válido ├~~~~~~~~~
        (alta impedância)                (alta impedância)
WE      ──────────────────────────────────────────── (inativo durante a leitura)

Em chips comerciais, tAA costuma variar de poucos nanossegundos (SRAM rápida) a algumas dezenas de nanossegundos. O simulador interativo ignora essas janelas de tempo — na prática ele executa o ciclo completo em um único clique — mas o comportamento lógico (endereço → controle → dado) é o mesmo.

SRAM vs. DRAM: por que isso é uma SRAM

A organização descrita — matriz endereçável com WE/OE e sem necessidade de ciclos de refresh — é característica de uma SRAM (Static RAM), onde cada bit é armazenado em uma célula biestável (tipicamente 6 transistores). Isso contrasta com a DRAM (Dynamic RAM), usada nas memórias principais de computadores, onde cada bit é armazenado como carga em um capacitor e exige ciclos periódicos de refresh para não perder a informação, além de um protocolo de endereçamento multiplexado (linha/coluna) para reduzir o número de pinos físicos do chip.

RAM vs. EEPROM vs. Flash: a diferença não está no endereçamento, está na retenção

Um ponto que costuma gerar confusão: EEPROM e Flash usam exatamente o mesmo modelo de barramento de endereço, barramento de dados e sinais de controle (WE/OE ou equivalentes) que uma RAM. A diferença real está no mecanismo físico de armazenamento do bit e no que acontece quando a alimentação é desligada:

Tecnologia Célula de armazenamento Retém dado sem energia? Escrita Durabilidade de escrita
SRAM (este simulador) Latch biestável (~6 transistores) Não Byte a byte, instantânea, ilimitada Ilimitada
DRAM Capacitor + 1 transistor Não Byte a byte, precisa de refresh periódico Ilimitada
EEPROM Transistor de porta flutuante (floating gate) Sim (não-volátil) Byte a byte, lenta (ms), por tunelamento Fowler-Nordheim ~100 mil a 1 milhão de ciclos
Flash Porta flutuante, organizada em blocos Sim (não-volátil) Precisa apagar o bloco inteiro antes de reescrever ~10 mil a 100 mil ciclos por bloco

Isso explica, por exemplo, por que a memória RAM de um computador é apagada ao desligar (é volátil por natureza — o latch ou o capacitor perde o estado sem energia), enquanto o conteúdo de um pendrive ou da memória de programa de um microcontrolador permanece intacto: fisicamente, a carga fica presa na porta flutuante do transistor mesmo sem alimentação. Em compensação, uma EEPROM/Flash tem vida útil limitada em número de escritas, e a escrita é ordens de magnitude mais lenta que em uma SRAM/DRAM — por isso essas memórias não-voláteis normalmente não são usadas como memória de trabalho principal de um processador, e sim para armazenar dados que precisam sobreviver ao desligamento (firmware, configurações, arquivos).

Aplicação e generalização

O mesmo modelo de endereço/dado/controle escala para qualquer memória digital, apenas variando a largura dos barramentos:

  • Uma RAM de 64 KB usa 16 linhas de endereço (2¹⁶ = 65.536 posições);
  • Uma RAM de 4 GB usa 32 linhas de endereço (2³² ≈ 4,3 bilhões de posições);
  • Memórias com palavras maiores que 8 bits (16, 32, 64 bits) simplesmente têm mais linhas no barramento de dados, sem alterar o princípio de decodificação de endereço.

Entender a RAM 256×8 em detalhe — com apenas 8 linhas de endereço e 8 de dados — é, portanto, o modelo mínimo funcional para compreender a arquitetura de qualquer memória de acesso aleatório usada em sistemas digitais reais.


Nota: no simulador acima, o campo "Endereço" corresponde a A[7:0], "Dado" a D[7:0] na escrita, e "Saída (Q)" a D[7:0] na leitura. Os LEDs indicam pulsos de WE e OE, respectivamente.

Comentários