Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

ELETRÔNICA DIGITAL 
AULA 6 
 
 
 
 
 
 
 
 
 
 
 
 
 
Prof. Amilton Carlos Rattmann 
 
 
 
2 
CONVERSA INICIAL 
Nesta aula, estudaremos as memórias, que são empregadas em praticamente 
todos os sistemas digitais que utilizam algum tipo de armazenamento (Pedroni, 2010). 
Uma grande vantagem dos sistemas digitais, por outro lado, está exatamente na 
capacidade de armazenar grande quantidade de dados, que permite que sejam 
dinâmicos e adaptáveis (Tocci, 2011). As memórias são classificadas quanto à forma 
de retenção da informação, como voláteis, que perdem as informações lógicas 
armazenadas quanto são desenergizadas, e não voláteis, que, por outro lado, não 
perdem as informações ao serem desenergizadas. Estudaremos também os 
dispositivos lógicos programáveis, que são dispositivos lógicos complexos, que contam 
com muitas unidades lógicas elementares, compostas por portas lógicas e flip-flops 
(FF), podendo ser organizados em nível de hardware, para fornecer uma determinada 
função lógica. 
TEMA 1 – MEMÓRIAS 
Vimos que as memórias elementares armazenam um bit e são formadas por flip-
flops. As unidades de memórias elementares são denominadas células de memória. 
Memórias de massa são circuitos integrados com uma grande quantidade de células 
de memórias, organizadas em uma arquitetura de acesso definida em linhas e colunas. 
Na terminologia mais apropriada, as células de memória estão organizadas em 
palavras binárias, conhecidas como palavras de memória (Tocci, 2011, p. 685). As 
palavras de memória podem conter quatro bits, oito bits, 16 bits, conforme o formato 
desejado ou necessário, sendo apresentadas em encapsulamentos como 8x1024 ou 
16x8192, por exemplo. A capacidade da memória é dada pela quantidade células de 
memória, ou bits de memória. A memória organizada em 8x1024 tem uma capacidade 
de 8.192 bits ou 8 Kib e a memória organizada em 16x8192 tem uma capacidade de 
131.072 bits ou 128 Kib (1 Ki = 1024 bits). 
Neste tema, abordaremos a formação da estrutura e os sinais necessários para 
estabelecer um controle lógico para realizar a leitura e a escrita nas palavras de 
memória. Este estudo aborda a formação de memórias RAM (Random Access Memory 
– Memoria de acesso randômico ou direto) estáticas, voláteis, que pode ser estendido 
para memórias ROM (Read Only Memory – Memória apenas de leitura), não voláteis, 
considerando que alguns tipos de memórias possuem mecanismos de escrita para 
retenção e apagamento de dados pelo barramento e outras ROM, não. Cabe ressaltar 
 
 
3 
que as memórias ROM utilizam células de memórias diferentes das memórias RAM 
para retenção não volátil de dados. 
Os FF D são memórias elementares. Vamos construir uma estrutura elementar 
de armazenamento a partir de quatro flip-flops tipo D, conforme apresentado na Figura 
1, permitindo entender passo a passo a necessidade e a organização dos sinais de 
habilitação, escrita e leitura de dados. 
Figura 1 – Organização de unidades elementares de memória com FF tipo D 
 
No diagrama da Figura 1, os quatro FF D são capazes de armazenar um dado 
com quatro bits de largura. Para tal operação, os sinais de relógio (CLK) são 
organizados em um único sinal comum, permitindo que os sinais (valores binários) 
disponíveis nas entradas E3, E2, E1 e E0 sejam armazenados (ou carregados) nos FF 
D, quando ocorrer a transição de borda ascendente no sinal de relógio. Com base na 
carga do dado, os valores armazenados nos FF D ficam disponíveis nas saídas S3, S2, 
S1 e S0. 
Na Figura 2, notamos duas estruturas elementares de armazenamento que 
apresentam sinais de relógio, entradas e saídas independentes. 
 
 
 
 
 
 
 
 
 
4 
Figura 2 – Duas estruturas elementares de armazenamento de quatro bits 
 
Não é prático, entretanto, utilizar entradas separadas, pois duplicaria a 
quantidade de linhas para as operações de armazenamento. Uma opção, uma vez que 
os sinais de relógios são independentes entre as estruturas de armazenamento, é unir 
os sinais de entrada das estruturas elementares sem que isso afete a operação, pois 
mesmo que sinais de entrada estejam presentes nos oito FF D, apenas aqueles 
acionados por uma das linhas de relógio serão capazes de armazenar os valores 
binários. As saídas permanecem separadas porque ocorreriam conflitos entre as saídas 
armazenadas nos FF D contendo valores binários distintos, em virtude dos valores 
armazenados no FF D estarem permanentemente disponíveis nas saídas. 
Na Figura 3, buffers de três estados (3state buffers) são acrescentados às saídas 
dos FF D para permitir que as linhas de saídas sejam interligadas, formando uma saída 
comum de dados. Como pode ser observado, além do sinal de relógio que registra os 
valores de entradas nos FF D, um sinal de habilitação (ENA) agora atua para 
disponibilizar o valor armazenado na saída de uma estrutura elementar. Os sinais de 
relógio – que também podem ser denominados sinais de escrita – e os sinais de 
habilitação de saída, são classificados com sinais de controle para a operação da 
memória. Os sinais de escrita permitem gravar um dado apresentado à entrada da 
estrutura na posição 0 ou na posição 1, dependendo do sinal acionado. Os sinais de 
habilitação podem disponibilizar o conteúdo de uma estrutura de quatro bits ou outras, 
dependendo do sinal de habilitação acionado. 
 
 
 
 
 
5 
Figura 3 – Duas estruturas elementares com entradas comuns e saídas comuns, com 
acionamento de carga e habilitação independentes 
 
Evoluindo no estudo, a Figura 4 apresenta as entradas e saídas da estrutura de 
memória formando uma via bidirecional de dados, controlados pelos buffers tri-state. 
Os sinais de habilitação atuam na lógica de controle para acionamento dos sinais 
ENA ou CLK para a posição 0 ou 1, conforme o endereço fornecido. O sinal CE’ inibe 
ou ativa o funcionamento da lógica de controle. 
Na Figura 5 (a), é apresentado um possível circuito de controle, cuja informação 
de endereço seleciona uma única posição no demux para fornecer um sinal de escrita 
ou leitura determinado pelo decodificador, que liberará um CLKn ou um ENAn para 
acionamento dos elementos de memória, desde que o sinal de habilitação da pastilha 
esteja ativo. 
 
 
 
 
 
 
 
 
 
 
 
 
6 
Figura 4 – Duas estruturas elementares formando um bloco de memória de duas 
palavras de 4 bits e sinais de controle 
 
Figura 5 – Organização dos sinais de controle: habilitações do circuito (a); tabela 
verdade do controle (b); exemplo de direcionamentos de sinal (c); diagrama do controle 
para uma matriz 4x4 (d) 
 
A tabela verdade do decodificador de controle é apresentada na Erro! Fonte de 
referência não encontrada. (b), na qual o sinal CE’ (chip enable) em nível lógico alto 
inibe qualquer operação na memória. O sinal WE’ (write enable) e o sinal OE’ (output 
enable), ativos com nível lógico baixo, são combinados para produzir sinais CLK e ENA, 
conforme descrito na tabela da figura (b). A operação do demux é apresentado na 
Figura 5 (c) para exemplificar a relação entre endereço 10b e saída do sinal CLK2, 
como aconteceria para o sinal ENA2. Na Erro! Fonte de referência não encontrada. 
 
 
7 
(d) é apresentado um diagrama simplificado para demonstrar o acionamento de uma 
estrutura de memória de quatro palavras de quatro bits empregando os mesmos 
princípios descritos no parágrafo. 
Um circuito funcional de operação de memória correspondente ao diagrama da 
Erro! Fonte de referência não encontrada. (d) é apresentado na Figura 6, criada 
utilizando o ambiente de simulação. O decodificador de controle, bastante simples 
neste exemplo, é formado por duas portas AND. O sinal CE’ atua inibindo os circuitos 
de demultiplexação (DMX - demux), que produz sinais de nível lógico baixo em tocas 
as saídas quando inibido. Quando ativo, o demux direciona o sinal de entrada para a 
saída definida pelos sinais de endereçamentosp. 3. 
 
 
54 
A arquitetura do tipo row-based apresenta linhas em uma direção, que permite 
interconexões ao longo de filas de blocos lógicos. As conexões em outra direção 
sacrificam os próprios blocos lógicos no estabelecimento destas conexões. Esta 
arquitetura também é utilizada em ASICs. 
A arquitetura PLD hierárquico emprega uma matriz de conexões programável, 
denominada PIA (Programmable Interconnect Array) e blocos lógicos, como os LABs, 
que podem ser organizados em macrocélulas. Esta arquitetura é utilizada em CPLD e 
FPGA da Intel/Altera (Marques, 2002, p. 4). 
5.8 Implementações com CPLD e FPGA 
Os FPGA permitem implementações de circuitos lógicos complexos como 
microprocessadores, caso do Nios® II da Altera (Altera, S.d.) ou o MicroBlazer™ da 
Xilinx (XILINX, S.d.), que são processadores definidos em código de hardware para 
serem configurados em FPGAs, assim como circuitos integrados em uma única pastilha 
- SoC (System on a Chip). 
Os microprocessadores e outros blocos lógicos complexos são fornecidos como 
os denominados códigos, ou blocos lógicos, de propriedade Intelectual, conhecido no 
idioma inglês como IP Core (intellectual property Core). 
Os IP Cores são fornecidos principalmente em linguagem de especificação de 
hardware como VHDL e Verilog. Estas linguagens, embora pareçam com linguagens 
de programação, guardam diferenças significativas no emprego do código e na sua 
estrutura. 
Os fabricantes de FPGA fornecem ambientes de desenvolvimento (EDA) para 
os PLD, que permitem normalmente trabalhar na construção gráfica de blocos 
interligados, diagrama de estados ou com linguagens de especificação de hardware. O 
início da construção do código costuma habilitar um projeto no EDA, no qual se 
especifica o tipo de linguagem e tipo de dispositivo lógico que será utilizado. A 
especificação do dispositivo é precisa, exigindo a família do componente, a quantidade 
de terminais, a arquitetura e a grade de velocidade. 
Após a construção do código, o processo de compilação fornece uma estimativa 
da propagação dos sinais no PLD e o total da estrutura interna consumida no projeto. 
Após à compilação do código ou bloco, os EDAs permitem o teste do código em 
simuladores ou a transferência do código para a configuração do dispositivo lógico 
programável. Antes do processo de transferência, entretanto, os terminais adequados 
 
 
55 
do dispositivo devem ser associados aos sinais internos que foram definidos na 
construção do código, exigindo nova compilação para incluir essas alterações. 
FINALIZANDO 
Vimos nesta aula a implementação elementar de unidades de memória com o 
emprego de flip-flops tipo D e os arranjos de FF para a formação de palavras de 
memória e blocos de palavras. Aprendemos sobre os sinais de controle, os 
barramentos de endereços e de dados, abordamos a interconexão de CPU com 
memórias, os conceitos de leitura e escrita em memória e os comportamentos dos 
sinais de controle para estas ações. Abordamos as técnicas construtivas e operacionais 
das memórias voláteis e não voláteis, as diferenças construtivas dos componentes 
eletrônicos empregados em cada memória e algumas das várias técnicas para 
armazenamento de um bit. Abordamos as formas técnicas para expansão das 
capacidades de memórias, organizando dispositivos em estruturas maiores de 
armazenamento e os ajustes necessários nos sinais de controle, para uma operação 
coerente. Por último, vimos os dispositivos lógicos programáveis, sua evolução e as 
diferenças entre CPLD e FPGA. 
 
 
 
56 
REFERÊNCIAS 
ALTERA Corporation. Cyclone IV Device Handbook – v. 1. Altera, 2016. Disponível em: 
. Acesso em: 21 jan. 2022. 
_____. Nios® II Processors. Altera, S.d. Disponível em: 
. Acesso em: 21 jan. 2022. 
CYPRESS Semiconductor Corporation. 1-Mbit (128K × 8) F-RAM Memory. Cypress 
Semiconductor Corporation, 2018. Disponível em: 
. Acesso em: 21 jan. 2022. 
_____. Ferroelectric RAM (F-RAM) Non-volatile Memory. Cypress Semiconductor 
Corporation, 2021. Disponivel em: . Acesso em: 21 jan. 2021. 
FREESCALE Semiconductor. MR2A16A – 256K x 16-Bit 3.3-V Asynchronous 
Magnetoresistive RAM. Frescale Semiconductor, 2007. Disponível em: 
. Acesso em: 21 nov. 2021. 
LATTICE Semiconductor Corporation. GAL16V8 – High Performance E2CMOS PLD 
Generic Array Logic™. Lattice, 2004. Disponível em: . Acesso em 21 jan. 2022. 
_____. GAL22V10 – High Performance E2CMOS PLD Generic Array Logic™. Lattice, 
1996. Disponível em: . Acesso em: 21 jan. 2022. 
MARQUES, P. C. F. Algoritmo de roteamento Maze para dispositivos 
programáveis FPGA. Mestrado (Ciência da Computação) – Pontifícia Universidade 
Católica do Rio Grande do Sul. Porto Alegre, 2002. Disponível em: 
. 
Acesso em: 21 jan. 2022. 
MAXFIELD, C. Who made the first PLD? EETimes. 2011. Disponível em: 
www.eetimes.com/who-made-the-first-pld/. Acesso em: 14 de out. 2021. 
MILLMAN, J. Eletrônica V-II. São Paulo: McGraw Hill do Brasil, 1981. 
 
 
57 
MOUSER Eletronics. FM28V100-TG. Mouser Eletronics, S.d.a. Disponível em: 
. Acesso em: 21 jan. 2022. 
_____. 936-MR2A16ACMA35 MRAM. Mouser Eletronics, S.d.b. Disponível em: 
https://br.mouser.com/c/?q=936-MR2A16ACMA35. Acesso em: 19 nov. 2021. 
PEDRONI, V. A. Eletrônica digital moderna e VHDL. Rio de Janeiro: Elsevier, 2010. 
SHMJ – Semiconductor History Museum of Japan. Late 1980s – Applying three-
dimensional cell structures to DRAM – Process Technology, SHMJ, 2019. Disponível 
em: . Acesso em: 21 jan. 
2022. 
STMICROELETRONICS. M27C64A – 64K (8K x 8) UV EPROM and OTP ROM. 
STMicroeletronics, 1995. Disponível em: . Acesso em: 21 jan. 
2022. 
TEXAS INSTRUMENTS INCORPORATED. Standard High-Speed Programmable Array 
Logic Circuits datasheet (PAM16L8). Texas Instruments, 1992. Disponível em: 
. Acesso em: 21 jan. 
2022. 
_____. 16-Mb Radiation-Hardened SRAM. Texas Instruments, 2011. Disponível em: 
. Acesso 
em: 21 jan. 2022. 
TOCCI, R. J. Sistemas digitais – Princípios e aplicações. 11. ed. São Paulo: Pearson 
Prentice Hall, 2011. 
TRIMBERGER, S. M. Three Ages of FPGAs: A Retrospective on the First Thirty Years 
of FPGA Technology. IEEE Xplore, v. 103, n. 3, mar. 2015. 
XILINX Inc. 7-Series CLB Architecture. Xilink, 2012. Disponível em: 
. Acesso em: 21 jan. 
2022. 
_____. Spartan-3A FPGA Family: introduction and ordering information. Xilink, 2018. 
Disponível em: 
. Acesso em: 21 jan. 2022. 
 
 
58 
_____. MicroBlaze™ Soft Processor Core. Xilink, S.d. Disponível em: 
. Acesso em: 21 jan. 
2022.E1 e E0. 
Figura 6 – Uma estrutura de memória de quatro palavras de quatro bits (4x4) com sinais 
de controle para permitir endereçamento, leitura e escrita de dados 
 
A Figura 7 apresenta um diagrama descrevendo uma conexão típica entre CPU 
e dispositivos de memória, empregando os barramentos de endereços, dados e de 
controle. Nestas conexões, vários dispositivos de memória podem ser conectados ao 
longo do espaço de endereçamento da CPU, que é a quantidade máxima de posições 
de memória que podem ser gerados por ela. Caso uma CPU tenha 20 linhas de 
endereços, poderá gerar 1.048.576 (1MiB) posições diferentes de memória. O espaço 
de endereçamento pode ser divido entre tipos de memórias como na tabela 
apresentada na Figura 7. 
 
 
8 
 
Figura 7 – Conexão típica entre CPU e memória 
 
Fonte: Tocci, 2011, p. 690. 
A operação de leitura da CPU pode ser simplificadamente descrita como: 
1. a CPU apresenta um endereço binário no barramento de endereços 
correspondente à posição de memória; 
2. a CPU habilita a pastilha; 
3. a CPU ativa os sinais de controle de leitura e habilitação da saída; 
4. após um período para a execução da operação, a memória disponibiliza o dado 
daquela posição no barramento de dados; 
5. a CPU lê o valor do barramento e o armazene em um registrador interno; e 
6. a CPU desativa os sinais de controle. 
A operação de escrita da CPU pode ser descrita como: 
1. a CPU apresenta um endereço binário no barramento de endereços; 
2. a CPU habilita a pastilha; 
3. a CPU apresenta os dados no barramento de dados; 
4. a CPU ativa os sinais de controle de leitura; 
5. a memória registra o dado do barramento na posição de memória endereçada; 
e 
6. a CPU desativa os sinais de controle. 
O diagrama de tempo do ciclo de escrita de uma memória RAM é apresentado 
na Figura 8. No instante t0 um novo endereço é definido no barramento pela CPU. Um 
pouco depois, após a estabilização dos sinais de endereço, os sinais de habilitação de 
pastilha e de saída são ativados pela CPU. O intervalo tCO (charge output) é tempo 
necessário, após a habilitação, para que o dispositivo de memória disponibilize os 
 
 
9 
dados no barramento, que ocorre no instante t1. Os sinais 𝑂𝐸̅̅ ̅̅ e 𝐶𝑆̅̅̅̅ podem ficar ativos 
em tempos diferentes em dispositivos reais, considerados iguais neste texto, por 
simplicidade. No instante t2, os sinais de habilitação são desativados pela CPU. O 
período tOD (output data) é aquele no qual os dados ficam disponíveis no barramento 
até que o barramento volte ao estado de alta impedância, que acontece no instante t3. 
O ciclo encerra no instante t4, quando a CPU pode definir um novo endereço. A CPU 
tem o intervalo entre t1 e t3 para armazenar o valor do barramento nos registradores 
internos. O intervalo tRC (read cycle) é o tempo que define o ciclo de leitura da memória. 
O intervalo tACC (access) é tempo de acesso à memória. 
Figura 8 – Ciclo de leitura em memória 
 
Fonte: Tocci, 2011, p. 711. 
O diagrama de tempo do ciclo de leitura de uma memória RAM é apresentado 
na Figura 9. No instante t0, um endereço é definido no barramento. Após aguardar um 
período tAS (address setup) para que o decodificador da RAM ative a palavras de 
memória. Após este período, os sinais de habilitação de escrita e pastilha são ativados 
pela CPU, que permanecem ativos por um período tW (write time). No instante t1, 
durante tW, os dados são disponibilizados pela CPU, até o instante t2, no qual a CPU 
desativa os sinais de habilitação. O intervalo entre t1 e t2 é necessário para a 
estabilização do endereço, período definido como tDS (data setup). No instante t3, o 
barramento de dados entra em alta impedância. Entre t2 e t3, ocorre o período tDH (data 
hold), no qual os dados devem permanecer estáveis para o correto processo de escrita. 
 
 
10 
Entre t2 e t4, intervalo definido como tAH (address hold), os valores do barramento de 
endereços deve permanecer estáveis até o instante t4, para garantia da operação de 
escrita. O período tWC é o tempo do ciclo de escrita na memória. 
Os componentes de memória comerciais apresentam as funções de controle 
com pequenas variações no nome e no funcionamento do sinal. As folhas de dados de 
memórias (datasheets) trazem informações detalhadas a respeito dos sinais de 
controle, ciclos de operação e diagramas de tempo para escrita e a leitura de dados. 
Figura 9 – Ciclo de escrita em memória 
 
 Fonte: Tocci, 2011, p. 711. 
As memórias não voláteis FRAM (ferroeletric RAM) FM28V100 da Cypress, 
apresentam capacidade de 128Ki palavras de 8 bits e sinais de controle para habilitação 
de pastilha com os sinais CE1 e 𝐶𝐸2
̅̅ ̅̅ ̅ (chip enable), para de habilitação de saída 𝑂𝐸̅̅ ̅̅ 
(output enable) e para de habilitação de escrita 𝑊𝐸̅̅ ̅̅ ̅ (write enable) (Cypress, 2018, p.3). 
As memórias voláteis SRAM SMV512K32-SP da Texas apresentam capacidade 
de 512Ki palavras de 32 bits, organizadas em uma matriz de 210 linhas por 29 colunas 
de 32 bits. Emprega decodificadores de endereço para simular o formato da lista e 
utiliza sinais de controle para habilitação da pastilha E1Z e E2 (chip enable 1 e 2), 
habilitação de escrita WZ (write enable) e habilitação de saída para entrada/saída 
bidirecional GZ (output enable for bidirectional input/output) (Texas, 2011, p. 1). 
 
 
11 
As instruções de CPU são mais completas para operação em memórias. Pela 
praticidade deste acesso e pelo maior conjunto de instruções disponíveis, outros 
dispositivos como buffers de entrada e saída, registradores e controladores externos 
podem utilizar os mesmos sinais para operações de entrada e saída como se fossem 
posições de memórias, utilizando as posições de endereçamento disponíveis, que não 
estejam sendo usados por circuitos de memória. Esta técnica é conhecida como 
mapeamento de I/O em memória e é utilizada, por exemplo, em microcontroladores que 
utilizam o mapeamento de registradores de controle de hardware em posições de 
memória (vide Figura 7). 
TEMA 2 – MEMÓRIAS NÃO VOLÁTEIS 
As memórias não voláteis mantêm as informações registradas nas suas células 
de memórias, normalmente um bit por célula, mesmo sem alimentação. São 
normalmente empregadas para programas ou códigos de partida (boot) de sistemas 
digitais, ou para armazenar informações fixas como tabelas de conversão ou 
constantes. Neste tema, estudaremos alguns tipos de memórias não voláteis, princípios 
de funcionamento e características. 
2.1 Memórias ROM 
As memórias ROM (Read Only Memory) são memórias não voláteis que 
permitem apenas a leitura de dados gravados por algum processo, algumas vezes, de 
forma definitiva. Desta maneira, apresentam apenas sinais de controle para permitir a 
leitura, como 𝑂𝐸̅̅ ̅̅ (output enable), para disponibilizar o valor acessado no barramento 
de dados, e 𝐶𝑆̅̅̅̅ (chip select), para habilitar a pastilha. 
As posições de memória que guardam as palavras de memória são selecionadas 
pelos valores apresentados no barramento de endereços. No exemplo da Figura 10, a 
tabela apresenta os valores possíveis para um barramento com quatro linhas de 
endereço, que seleciona 16 posições de memória ou que endereça 16 palavras de 
memória de oito bits. A tabela ainda exemplifica dados armazenados em cada posição 
nos formatos binário e hexadecimal, sendo este último aquele que é o mais amplamente 
utilizado para representar o conteúdo de memórias. 
A arquitetura de uma ROM é relativamente simples. O diagrama de blocos de 
uma ROM 16 x 8 é mostrada na Figura 11, apresentando os principais blocos 
funcionais. Os registradores armazenam as palavras de memória de 8 bits e são 
 
 
12 
formados por células de memória não volátil. Os decodificadores traduzem o valor 
binário do barramento de endereços para uma linha e coluna ativas, que habilitam um 
único registrador na estrutura matricial, disponibilizando o dado armazenado no 
barramento dedados interno. O buffer de três estados disponibiliza os valores binários 
do registrador selecionado do barramento interno no barramento externo (externo ao 
dispositivo) de dados. O sinal de habilitação 𝐶𝑆̅̅̅̅ ativa todos os blocos funcionais para a 
decodificação de endereço e habilitação do registrador. A ativação do sinal 𝑂𝐸̅̅ ̅̅ habilita 
o buffer de três estados, desde que 𝐶𝑆̅̅̅̅ esteja também ativo. 
Figura 10 – Memória apenas de leitura (ROM) típica 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13 
Figura 11 – Arquitetura de uma ROM 16 x 8 
 
 Fonte: Tocci, 2011, p. 693. 
Baseando-se no diagrama da Figura 12, o tempo de acesso (tACC) é um intervalo 
entre os instantes t1 e t3, que inicia na ativação do sinal 𝐶𝑆̅̅̅̅ e termina no instante no qual 
os dados são disponibilizados no barramento de dados. Esse período é o necessário 
para que os circuitos de decodificação operem, sensibilizem os circuitos do registrador 
e os circuitos dos buffers de saída. 
 
 
 
 
 
 
 
 
 
 
 
 
 
14 
Figura 12 – Temporização da ROM 
 
Fonte: Tocci, 2011, p. 695. 
Segundo Tocci (2011), as ROM com tecnologia bipolar apresentam tempo de 
acesso (tACC) 30 a 90 ns, as com tecnologia NMOS apresentam tempo de acesso de 35 
a 500 ns e com tecnologia CMOS, tempo de acesso de 20 a 60 ns. Isso levou à 
produção de ROM, mais recentes, essencialmente em tecnologia CMOS. 
2.2 ROM programadas por máscara 
As ROM programadas por máscara (MROM) são ROM configuradas durante o 
processo de fabricação do circuito integrado. A ROM é formada por uma matriz de 
transistores MOSFET canal N, configurados em dreno comum, com a função de 
responder aos estímulos dos sinais de seleção (Tocci, 2011, p. 696), cuja estrutura é 
mostrada na Figura 13. 
No ponto de interconexão dos terminais fonte dos transistores às vias de coluna 
há uma região que sofre uma deposição seletiva de material, dependendo da 
programação definida na máscara. Nesta figura, os transistores Q1 e Q3 então 
desconectados das vias de coluna, pois a máscara impediu a deposição de material. 
Já os transistores Q0 e Q2 estão ligados às vias de coluna. 
 
 
 
 
 
 
15 
Figura 13 – Estrutura MOS para um Mosfet para células de memória 
 
Fonte: Tocci, 2011, p. 696. 
As vias de saída do decodificador excitam as portas dos transistores com uma 
tensão positiva (nível lógico alto) dispostos em uma mesma linha da matriz, que formam 
um registro de quatro bits. Os transistores conectados às vias de coluna conduzem, 
produzindo um valor de tensão próximo ao VDD, nestas colunas. Os transistores não 
conectados às vias de coluna não conduzem, o que mantém as vias de coluna em GND, 
valor definido pelos resistores de pull-down. 
Conforme descrito, as vias de coluna apresentam os valores binários 
programados em cada posição de memória, que são selecionados pelos sinais do 
decodificador, conforme o estado de condução dos transistores da linha. 
2.3 ROM programável 
A produção de ROM programadas por máscara são caras e só apresentam um 
custo adequado quando são produzidas em grandes quantidades, para reduzir o valor 
por unidade (Tocci, 2011, p. 698). A solução para permitir ROM em quantidades e 
custos menores foram atingidas na disponibilização de ROM programáveis por fusível 
(PROM), na qual a programação ocorre em campo, pelo usuário. Ao contrário do 
 
 
16 
processo por máscara, que cria uma conexão definitiva entre o terminal de dreno e via 
de coluna para alguns transistores, a construção de ROM programáveis por fusível 
adiciona uma ligação fina em todos os transistores. Os circuitos da gravação da ROM, 
durante a programação, ativam uma corrente com intensidade suficiente elevada para 
romper os fusíveis e definir células de memória com níveis lógicos baixos, conforme 
apresentado na Figura 14. 
Figura 14 – PROM com fusíveis 
 
Fonte: Tocci, 2011, p. 698. 
Essas ROM são conhecidas como OTP (one time programmable), reforçando 
que este processo de gravação pode ser realizado uma única vez. 
2.4 ROM programável e apagável 
As EPROM (erasable programmable ROM) podem ser programas e apagadas 
quantas vezes for necessário. O processo de programação das células de memória na 
EPROM é diferente dos processos utilizados nas ROM e PROM, já vistas. 
As EPROM apresentam também uma matriz de transistores, mas existe uma 
diferença na conexão do terminal de porta. Há um eletrodo muito próximo ao cristal de 
porta do transistor, mas não um contato físico, conhecidos como transistores de porta 
flutuante FAMOS (floating-gate avalanche-injection MOS), empregados em 
praticamente todas as PROM comerciais (Pedroni, 2010, p. 339), e é apresentado na 
Figura 15 (a). Essa configuração mantem o terminal flutuante e, consequentemente, o 
transistor cortado, que leva a célula de memória a representar um valor de nível lógico 
alto. Para produzir um nível lógico baixo na célula, um pulso de alta tensão (12V) é 
aplicado à porta de controle enquanto circula uma corrente de dreno pelo canal. Alguns 
elétrons com energia cinética suficiente, desviados pela estrutura cristalina do 
substrato, conseguem atravessar a camada fina do isolante (SiO2), atingindo o 
 
 
17 
polisilício da porta flutuante, atraídos pelo forte campo elétrico presente na porta de 
controle. Esses elétrons são denominados quentes e este efeito, CHEI (channel hot-
electron injection). Como esta carga não tem caminho para descarga, permanece 
indefinidamente na porta flutuante, elevando a tensão limiar (VT) condução para cerca 
de 6V, acima das tensões normalmente empregadas em circuitos digitais, trocando e 
mantendo o estado de condução do transistor FAMOS, produzindo um nível lógico 
baixo na célula de memória (Pedroni, 2010, p. 399). A estrutura de memória EPROM é 
apresentada na Figura 15 (b), mostrando a matriz de transistores Famos, com linhas 
de palavras (LN) e as linhas de bit (CN). 
Figura 15 – Transistor Famos (floating-gate avalanche-injection MOS) (a); estrutura da 
EPROM (b) 
 
Para limpar os dados da memória, uma luz UV intensa aplicada por vários 
minutos sobre o cristal, através de uma janela transparente disponível no 
encapsulamento do dispositivo, fornece energia suficiente para que dióxido de silício 
gere pares de elétrons-lacunas, que tornam o dióxido menos isolante permitindo a 
descarga da porta flutuante. Os apagadores de EPROM eram dispositivos usados para 
apagar as memórias, também denominadas UVPROM. Entretanto, as EPROM eram 
retiradas do circuito, conforme exemplo apresentado na Figura 16 (a), e levadas ao 
apagador de EPROM, mostrado na Figura 16 (b), para depois de alguns minutos, serem 
regravadas. Este processo não era muito prático para a atualização de versões de 
código. O uso de vários dispositivos de memória contornava o problema, realizando a 
programação da nova versão de código em EPROM limpas, sendo substituídas em 
seguida no circuito, enquanto as memórias com as versões antigas eram apagadas. 
 
 
18 
As EPROM possuem tempo de acesso de cerca de 45 ns, tempo de 
programação de 5 µs por palavra e apresentam durabilidade de certa de 100 ciclos. A 
EPROM M27C64A, da STMicroeletrocnics, por exemplo, é uma memória EPROM de 
64Kibits (8Ki x 8), que apresenta tempo de leitura de 150 ns, tensão de programação 
de 12,5 V, o tempo de apagamento UV de 15 a 20 minutos, conforme especificações 
do fabricante, e apresenta sinais de controle comuns são habilitação de saída �̅� (output 
enable), habilitação de pastilha �̅� (chip enable), programação �̅� (programação) e tensão 
de programação VPP. 
Figura 16 – EPROM instalada em circuito (a); apagador de EPROM (b) 
 
 
a) b) 
 
Fonte: Thomas Machhart/Shutterstock; Susan Edmondson/Shutterstock. 
2.5 ROM programável e apagável eletricamente 
As dificuldades apontadas para o uso da UVPROM foram resolvidas com a 
utilização de transistores Flotox (floating-gate tunneling oxide)nas células de memória. 
Neste transistor, uma parte do polisilício da porta flutuante é estendida e passa sobre 
a região de dopagem do dreno do transistor, isolados pelo dióxido de silício por uma 
fina camada de 10 µm, é apresentado na Figura 17 (a). Uma polarização adequada, 
com o dreno ligado ao GND e a porta de controle ao VPP (tensão de polarização), 
permite que elétrons da região do dreno ultrapassem a fina camada do isolante 
atingindo a porta flutuante, por um mecanismo de tunelamento (tunelamento Fowler-
Nordheim), mantendo a carga permanentemente na porta flutuante, trocando o estado 
de condução do transistor. Uma polarização contrária, descarrega a porta flutuante pelo 
mesmo mecanismo (Pedroni, 2010, p. 401). 
Dispositivo de memória EEPROM (electrically erasable programmable ROM) são 
implementados com transistores FLOTOX, apresentado na Figura 17 (b), que permitem 
a programação e o apagamento das células de memória por um processo elétrico. 
 
 
19 
A programação do transistor pelo mecanismo de tunelamento apresenta 
dificuldade no estabelecimento do valor limiar, ou na quantidade de cargas na porta 
flutuante. Outro problema, é que o processo de programação e de apagamento do 
Flotox é simétrico, utilizando o mesmo mecanismo e mesmas tensões de polarização, 
que apresentava interferência da manipulação de uma célula em outras. Isso obrigou a 
inclusão de outro transistor para controle de programação, observado no diagrama na 
Figura 17 (b), pelos transistores ligados nas linhas de palavras L0 e L1, que resolveu os 
dois problemas já descritos, mas definiu que cada célula de memória emprega dois 
transistores (Pedroni, 2010, p. 401). 
Figura 17 – Transistor FLOTOX (floating-gate tunneling oxide) (a); estrutura interna de 
uma EEPROM (b) 
 
Os dispositivos de memória EEPROM contam com linhas de controle para 
habilitação de pastilha (𝐶𝑆̅̅̅̅ ), habilitação de saída (𝑂𝐸̅̅ ̅̅ ) e habilitação de escrita (𝑊𝑅̅̅ ̅̅ ̅) e 
tempo de escrita na EPROM é 200 ns (Tocci, 2011, p. 701). 
2.6 Memórias flash 
Os transistores ETOX (EEPROM tunnel oxide) reúnem as características de 
programação com injeção por avalanche, utilizado nos transistores Famos, e 
apagamento por tunelamento, utilizado nos transistores Flotox, permitindo a construção 
de células de memória com apenas um transistor, que aumenta a densidade da 
memória e reduz seu custo por bit. As técnicas diferentes para programação e 
apagamento permitiram o melhor o controle sobre a carga na porta flutuante, permitindo 
 
 
20 
que a programação e o apagamento fossem realizados pela polarização do transistor. 
Mostrado na Figura 18 (a), o transistor ETOX (técnica de 130 nm) conta com a porta 
flutuante muito próxima do substrato, cobrindo toda a região do canal. Isto aumenta a 
área para tunelamento, reduzindo o tempo necessário para o apagamento da célula de 
memória (Pedroni, 2010, p. 402). 
Para evitar ao acréscimo do transistor de controle, como no caso das EEPROM, 
os pesquisadores optaram pelo apagamento total da memória antes de programação 
de dados, ou pelo apagamento aplicado à setores da estrutura, 512 bytes, por exemplo, 
cuja estrutura é mostrada na Figura 18 (b), apresentando as linhas de palavras (LN), as 
linhas de bits (BN) e as linha de ativação setorial (Sn) para seleção de setores. Esta 
condição de apagamento rápido da memória, levou à denominação de memória flash. 
Figura 18 – Transistor MOS ETOX (EEPROM tunnel oxide) de 130 nm, indicando a 
carga por injeção por avalanche e descarga por tunelamento (a); estrutura interna da 
memória flash (b) 
 
 
As células memórias flash são compactas, mas exigem uma operação complexa 
para garantir os valores de carga, que produzam valores de tensão limiar de condução 
adequados no transistor. Por esse motivo é comum que controladores, com esse 
propósito, sejam incorporados nas memórias flash autônomas, sem comprometer 
significativamente a área do cristal semicondutor. Outros tipos de transistores MOS são 
utilizados em memórias flash como alternativas ao controlador como o transistor de 
gatilho partido e transistor SONOS (silicon-oxide-nitrite-oxide-silicon) (Pedroni, 2010, p. 
403-404). 
 
 
21 
Figura 19 – Relações de compromisso entre custo e complexidade das memórias não 
voláteis 
 
Fonte: Tocci, 2011, p. 702. 
O custo da memória flash é significativamente menor que das memórias 
EEPROM e apresentam menor complexidade (Tocci, 2011, p. 702), como apresentado 
no gráfico da Figura 19. 
2.7 Memórias flash NOR e NAND 
As memórias flash NOR foram desenvolvidas como alternativa às memórias 
EEPROM, trazendo vantagens na densidade, desempenho e custo. Conforme 
apresentada na arquitetura na Figura 20 (a), os transistores estão posicionados em 
paralelo, compartilhando as linhas de bits (BLN) e o GND. As linhas de palavra (WLN) 
acessam individualmente cada transistor (célula de memória) pela porta de controle que 
podem puxar ou não, quando acionados, as linhas de bits para nível GND, conforme 
valor armazenado na porta flutuante do transistor ETOX. 
 
 
 
 
 
 
 
 
22 
Figura 20 – Estrutura flash NOR (a); estrutura flash NAND (b) 
 
Fonte: Tocci, 2011, p. 705. 
Portanto, como cada célula de memória sendo acionada de forma independente 
na estrutura, caso todas as linhas de memória estejam em nível lógico alto, fazem com 
que a linha de bits assuma nível lógico baixo e seja descrita de forma equivalente na 
expressão WL5 OR WL4 OR WL3 OR WL2 OR WL1 OR WL0 = 0. Esse é o 
comportamento de uma porta NOR que denomina esse tipo de memória como flash 
NOR. Na busca pela maior densidade e guiada pelas características de outros 
dispositivos de armazenamento de massa que operam por setores, dispensando o 
acesso aleatório byte a byte, transistores ETOX foram posicionados série entre a linha 
de bits e o GND, conforme apresentado na Figura 20 (b). Caso a linha a WL7 seja 
acionada e sejam aplicados níveis de tensão suficientemente elevadas nas demais 
entradas da estrutura (WL6 – WL0), para que a resistências de dreno sejam mínimas 
independentemente do valor da porta flutuante, o nível da linha de bit será determinado 
pela célula de memória ligada a WL7 (Tocci, 2011, p. 704). Este arranjo serial permite 
grande redução na área do cristal semicondutor, em cerca de 40% (Pedroni, 2010, p. 
405). Portanto, para o acesso à uma célula de memória, os demais transistores da 
estrutura devem receber um nível alto, para se obter um zero lógico na saída, conforme 
descreve a expressão booleana WL6 AND WL5 AND WL4 AND WL3 AND WL2 AND WL1 
AND WL0 = 0. Esse comportamento de função NAND dá nome à memória flash. 
 
 
23 
As memórias flash NAND apresentam tempo mais rápido de apagamento e 
programação, mas um tempo de leitura maior, devido à leitura ser realizada em blocos 
via controlador interno, responsável pelas operações da matriz de memórias, e 
apresentam uma pegada menor de silício, permitindo maior densidade de células de 
memória. A memórias flash NOR apresentam tempo de leitura menor e acesso aleatório 
byte a byte. Pelos comportamentos apresentados, as memórias flash NOR são 
utilizadas por CPU, em telefones celulares e outros sistemas embarcados, e a memória 
flash NAND para armazenamento de massa para arquivos de música e fotos, em 
filmadoras, câmeras digitais e flash drivers (Tocci, 2011, p. 705). As memórias flash 
NOR e NAND estão mais para uso complementar do que para uso concorrente 
(Pedroni, 2010, p. 405). 
2.8 Memórias não voláteis mais recentes 
As memórias FRAM (Ferroeletric RAM) são memórias não voláteis, construídas 
com tecnologia ferroelétrica, que contém uma fina película ferroelétrica de titanato de 
zirconato de chumbo, comumente referido como PZT. Os átomos no PZT mudam de 
polaridade em um campo elétrico, produzindo assim uma chave binária com eficiência 
energética, que não são afetados por interrupções de energia.Apresentam tempos de 
leitura e escrita baixos, maior densidade, menor consumo que memórias EEPROM e 
apresentam maior imunidade a radiação, sendo tecnologia de concorrência direta às 
memórias EEPROM e flash NOR (Cypress, 2021). A Cypress FM28V100 é uma 
memória FRAM de 1Mib, (Cypress, 2018) comercializado por cerca US$ 18 (Mouser 
Eletronics, S.d.a). 
As memórias MRAM (magneto-resistive RAM) apresentam um resistor 
semicondutor de resistência variável por campo magnético, denominado MTJ 
(magnetic tunnel junction), como célula de memória, ligado ao dreno de um transistor 
nMOS. O MTJ é formado por um empilhamento de duas camadas ferromagnética (Fe-
Co-Ni) separadas por uma finíssima camada de tunelamento (Al2O3 ou MgO), com certa 
de 2nm (Pedroni, 2011, p. 408). Linhas de controle são posicionadas muito próximas 
às placas, para permitir que um fluxo de corrente nessas linhas altere a polarização dos 
spins do material ferromagnético. Em uma das placas a polarização dos spins é fixa e 
na outra, a polarização é variável, magnetizada por uma corrente que flui nos dois 
sentidos. Se as camadas estiverem polarizadas na mesma direção, a resistência é 
mínima, pois os elétrons podem atravessar a barreira de tunelamento. Em polarização 
contrária, não ocorre o tunelamento e a resistência se torna muito elevada. Ao se 
 
 
24 
associarem níveis lógicos aos estados de condução do MTJ, forma-se uma célula de 
memória. 
A memória MR2A16A, da Freescale, é uma memória de MRAM de 4Mib, 
organizada em 256Ki palavras de 16 bits, que apresenta tempos iguais de escrita e 
leitura de 35 ns (Freescale, 2007), comercializada por cerca de US$ 29 (Mouser 
eletronics, S.d.b). 
TEMA 3 – MEMÓRIAS VOLÁTEIS 
As memórias voláteis perdem as informações registradas nas suas células de 
memórias, normalmente um bit por célula, quando ficam sem alimentação. São 
normalmente empregadas para programas executados em memória e dados 
produzidos e consumidos pelos programas em sistemas digitais, ou para armazenar 
informações de leitura, estados dinâmicos de processos, variáveis obtidas de 
processos externos e definição inicial de registradores de uso especial, como utilizados 
microcontroladores. Neste tema, estudaremos alguns tipos de memórias voláteis, 
princípios de funcionamento e características. 
3.1 Memórias RAM estáticas 
As memórias RAM estáticas (Static RAM – SRAM) utilizam um FF como célula 
de memória. É uma memória volátil, pois a manutenção dos valores armazenados se 
mantém enquanto a alimentação do CI permanecer ligada. São denominadas estáticas 
por manterem os dados escritos nas células de memória estáveis, indefinidamente, 
enquanto a alimentação permanecer ativa. As SRAM são assíncronas, pois permitem 
leitura e gravação a qualquer momento. 
As RAM estáticas estão disponíveis em tecnologia bipolar, MOS e BiCMOS, 
embora a maioria das aplicações utilize memórias CMOS (Tocci, 2011, p. 710). As 
células destas tecnologias de memória são apresentadas na Figura 21. A tecnologia 
bipolar é rápida, mas ocupa maior área de silício, em função do tamanho dos 
transistores e dos resistores e demanda mais energia. A técnica nMOS utiliza 
MOSFETs, menores que transistores bipolares, e demandam menos energia para sua 
operação. Entretanto, as células de memória bipolar e nMOS mantêm uma corrente 
interna para a manutenção do estado armazenado, algo que não acontece na técnica 
CMOS, fazendo desta última técnica mais rápida e de menor consumo, mas envolvendo 
uma pegada de silício um pouco maior (Tocci, 2011, p. 710). 
 
 
25 
Figura 21 – Células de memória RAM 
 
 Fonte: Tocci, 2011, p. 710. 
Pedroni (2010) apresenta uma implementação comum denominada 6T, 
empregando dois inversores CMOS ligados em anel e dois transistores nMOS para 
acesso, na implementação de células de memória CMOS, apresentado na Figura 22 
(a). Uma matriz de células de memória com três linhas e três colunas é ilustrada na 
Figura 22 (b). 
A memória MCM6264C é uma SRAM CMOS comercial da Motorola, de 8 Ki 
palavras de 8 bits. O barramento de endereços tem 13 bits, 213 = 8.192 palavras, oito 
bits no barramento de dados bidirecional, tempos de acesso para leitura e escrita de 12 
ns e consumo de 100 mW. No CI há dois sinais de habilitação de pastilha, um para 
nível lógico alto (CS2) e outro para nível lógico baixo (𝐶𝑆1
̅̅ ̅̅ ̅), um sinal de escrita (𝑊𝐸̅̅ ̅̅ ̅) e 
um sinal de habilitação de saída (𝑂𝐸̅̅ ̅̅ ) ativos em nível baixo. 
 
 
 
 
 
 
 
 
 
 
26 
Figura 22 – Célula de memória SRAM 6T (a); Arranjo de 9 células 6T (3x3) (b) 
 
Fonte: Pedroni, 2010, p. 382. 
Sem os sinais de seleção de pastilha ou habilitação de saída fazem os circuitos 
de entrada e saída (I/O) permanecerem em alta impedância, que também leva a uma 
condição de baixo consumo, conforme diagrama e tabela-verdade apresentados na 
Figura 23. 
Figura 23 – Símbolo e tabela de sinais da SRAM MCM6264C 
 
Fonte: Tocci, 2011, p. 713. 
3.2 Memórias RAM dinâmicas 
As RAM dinâmicas são memórias voláteis com tecnologia CMOS, caracterizadas 
por apresentarem alta capacidade de armazenamento (alta densidade), velocidades 
moderadas de acesso e baixo consumo (Tocci, 2011, p. 714). As DRAM (dynamic RAM) 
são síncronas, muito baratas, pequenas e precisam ser atualizas ciclicamente, para 
conservarem a informações registradas (Pedroni, 2010, p. 387), exigindo um 
comportamento específico dos sinais de controle. 
 
 
27 
A célula de memória da DRAM é formada por um transistor NMOS e um pequeno 
capacitor, conforme estrutura cristalina apresentada na Figura 24 (a), na qual se 
observa que o transistor e capacitor são integrados em uma mesma estrutura. O 
diagrama elétrico da célula de memória, é apresentada na Figura 24 (b), sendo 
denominada estrutura 1T-1C. A porta de controle está ligada na linha de palavra, o 
dreno na linha de bit (coluna) e o terminal de fonte ao capacitor integrado, e este último 
ao GND. 
Figura 24 – Estrutura cristalina da célula de memória DRAM 1T-1C (a); o diagrama 
elétrico da célula de memória (b); arranjo de 12 células de memória 1T-1C (c) 
 
 
Na Figura 24 (c) é apresentado um arranjo de 12 células de memória, 
organizadas em três linhas e quatro colunas. As linhas (Ln) são as linhas de palavras 
(world lines – WL) e as colunas (Cn) são as linhas de bit (bit lines – BL), 
disponibilizando, dessa forma, três palavras de quatro bits. 
A construção dos capacitores é altamente especializada (Pedroni, 2010, p.387). 
As células 1T-1C podem empregar várias estruturas construtivas de capacitores, como 
construção vertical (Trench capacitor), apresentado anteriormente na Erro! Fonte de 
referência não encontrada. (a), construção em múltiplas camadas (Stack capacitor) 
entre outras, cujas técnicas são apresentadas, simplificadamente, na Figura 25. Essa 
figura, ainda, relaciona as técnicas construtivas com as capacidades de 
armazenamento dos CIs de memória DRAM. 
O capacitor da célula de memória pode conter aproximadamente VDD, quando 
armazena um valor lógico alto (“1”) ou GND, quando armazena um nível lógico baixo 
 
 
28 
(“0”). No processo de escrita (observe a Figura 24c), os valores disponíveis nas linhas 
de bits (Bn) são carregados nos capacitores das células de memória 1T-1C, após a 
linha de palavra (Ln) receber pulsos de nível lógico alto. 
Na leitura do bit armazenado na célula 1T-1C (observe novamente a Figura c), 
a linha de bit (Cn) é carregada com meia tensão de VDD e é deixada isolada. O capacitor 
CBL, no diagrama, representa a capacitância parasita da linha de bit que retém este 
valor de ½ VDD na linha de bit. Ao acionar a linha de palavra (Ln), o transistor conduz, 
combinando a carga existente no capacitor da célula de memória com a carga da 
capacitância parasita. Como a capacitância da célula de memória é muito menor que 
CBL, a combinação das cargas produz uma pequena variação de tensão na linha de bitpara mais, quando o valor da célula de memória for “1”, ou para menos, quando o valor 
armazenado for “0”. Como a margem de ruído é muito pequena, são necessários 
sensores amplificadores de tensão para detectar essa variação de tensão na linha de 
bit e produzir uma tensão de nível lógico correspondente (Pedroni, 2010, p. 387). 
Observe, contudo, que o processo de leitura é destrutivo, ou seja, o valor armazenado 
na célula de memória é alterado no processo, necessitando de restauração. A 
restauração acontece pela recarga da célula de memória pela saída do amplificador 
sensor, que pode atender a toda uma linha de bits de células de memória (Tocci, 2011, 
p. 716). 
Figura 25 – Estruturas de células de memórias 1T-1C 
 
Fonte: SHMJ, 2019. 
 
 
 
29 
A Figura 26 (a) apresenta um diagrama simbólico do processo de escrita e leitura 
da informação armazenada na célula de memória, representando por chaves os 
transistores Mosfet empregados na célula 1T-1C. As chaves SW1 e SW2 são fechadas 
para salvar um valor da linha de bit no capacitor que é, efetivamente, o elemento de 
memória. A chave SW3 é fechada para a leitura do valor de tensão do capacitor com o 
emprego do amplificador sensor e as chaves SW4 e SW2 restauram a carga no 
capacitor, utilizando o valor gerado pelo amplificador sensor. 
Na Figura 26 (b) é apresentado um arranjo de células de memória, na qual 16Ki 
bits (16384 bits) então organizados em uma matriz de 128 x 128. Os decodificadores 
de linhas e colunas geram as linhas de bits (Cn) e palavras (Ln) que acionam as células 
de memória 1T-1C, individualmente. 
Figura 26 – Esquema simbólico da célula de memória DRAM (a); arranjo de uma 
memória DRAM em 16Ki x 1 (b) 
 
Fonte: Tocci, 2011, p. 715-716. 
O esquema de endereçamento mostrado na Figura 26 (b) apresenta de forma 
mais didática o acesso às células de memória, mas não é prático. Devido à densidade 
das memórias DRAM, o barramento de endereços é multiplexado para reduzir a 
quantidade de terminais de endereçamento do CI. A multiplexação permite compartilhar 
os terminais de endereçamento, exigindo um controle de temporização mais complexo, 
conforme diagrama apresentado na Figura 27 (a). Os sinais 𝑅𝐴𝑆̅̅ ̅̅ ̅̅ (row address strobe) 
e 𝐶𝐴𝑆̅̅ ̅̅ ̅ (column address strobe) são empregados para controlar a multiplexação de 
 
 
30 
endereços, conforme apresentada na Figura 27 (b), em duas etapas. O sinal 𝑅𝐴𝑆̅̅ ̅̅ ̅̅ 
sinaliza para o CI registrar o endereço disponível no barramento como endereço de 
linha, após um tempo de estabilização do endereço tRS (row setup) e, assim que baixar 
o sinal 𝐶𝐴𝑆̅̅ ̅̅ ̅, após um tempo tCS (column setup), sinaliza para registrar o valor disponível 
no barramento como endereço de coluna. Memórias de maior densidade recentes, 
utilizam um esquema de endereçamento tridimensional que dividem o espaço de 
endereçamento da memória, em bancos de memória, acessados individualmente. 
As memórias DRAM apresentam uma necessidade operacional que é inexistente 
nas SRAM, denominado ciclo de atualização (refresh). As células de memória, além da 
alteração sofrida no processo de leitura, também reduzem sua carga com o passar do 
tempo. Todas as informações gravadas nas memórias DRAM precisam de atualização, 
que, dependendo da tecnologia do CI de memória, podem variar de períodos entre 2 e 
8 ms (Tocci, 2011, p. 720). Esta atualização interfere no ciclo de leitura e escrita dos 
dispositivos externos que precisam estabelecer um sincronismo com as memórias. 
Figura 27 – Diagrama simplificado de um CI de DRAM (a); temporização CAS/RAS (b) 
 
Fonte: Tocci, 2011, p. 717. 
Os circuitos de controle dos CI de memória são construídos para que a 
atualização das células de memória ocorra durantes os ciclos de leitura. Todas as 
células da linha ativa são atualizadas, evitando uma custosa atualização individual de 
células. Entretanto, no intervalo de atualização, muito provavelmente, as linhas não 
serão todas ativadas por ciclos de leitura, sendo necessário um mecanismo de 
atualização adicional para linhas não acessadas neste intervalo. Um contador, no bloco 
 
 
31 
de temporização e controle, fornece os endereços de cada linha que necessita de 
atualização. Há dois métodos utilizados neste processo, sendo o modo rajada (burst), 
que paralisa a operação do dispositivo de memória durante o ciclo de atualização, e o 
modo distribuído, que intercala atualizações entre ciclos de leituras na DRAM (Tocci, 
2011, p. 721). 
Para aliviar a CPU nestes controles, os fabricantes investiram em controladores 
de DRAM que realizavam uma interface entre a CPU e os CI de memória, tratando da 
multiplexação de endereços e da geração de endereços para atualização (refresh). 
Outros fabricantes produziram conjuntos de circuito VLSI (very large-scale integration) 
de controle, denominados de chipset, para abrigar todos os controles para bancos 
grandes de memórias (Tocci, 2011, p.721). As DRAM mais recentes trazem nos 
circuitos de controle os recursos para atualização. Um destes recursos é o 𝐶𝐴𝑆̅̅ ̅̅ ̅ antes 
de 𝑅𝐴𝑆̅̅ ̅̅ ̅̅ (𝐶𝐴𝑆̅̅ ̅̅ ̅ before 𝑅𝐴𝑆̅̅ ̅̅ ̅̅ ), que inverte a ordem normal de acionamento destes sinais 
para instruir a DRAM a realizar o ciclo de atualização. Nesta operação, o sinal 𝐶𝐴𝑆̅̅ ̅̅ ̅ 
permanece baixo, enquanto 𝑅𝐴𝑆̅̅ ̅̅ ̅̅ é pulsado em nível lógico baixo, provocando o 
incremento do contador de atualização e a atualização das linhas de células de 
memória da DRAM. 
As memórias utilizadas em computadores são memórias DRAM síncronas 
SDRAM (Synchronous DRAM). A SDRAM é evolução da DRAM, que incorpora os 
circuitos de controle no mesmo CI, evitando a comunicação com controladores 
externos. A consequência desta mudança é o aumento de velocidade de operação. 
Utilizam uma derivação do relógio do sistema (CLK), portanto síncronas, e sinais de 
habilitação de relógio (CKE), seleção da pastilha (𝐶𝑆̅̅̅̅ ), habilitação de escrita (𝑊𝐸̅̅ ̅̅ ̅), 
sinais 𝑅𝐴𝑆̅̅ ̅̅ ̅̅ e 𝐶𝐴𝑆̅̅ ̅̅ ̅, com as mesmas funções da DRAM anterior, e o sinal DQM para 
mascaramento dos sinais de dados na entrada e saída (Pedroni, 2010, p. 390). Opera 
com endereçamento tridimensional contendo endereço de linha, coluna e bloco. O 
desligamento do relógio (CKE) coloca a partilha em repouso e ativa a autoatualização, 
pelos métodos auto-refresh, que opera como o CAS before RAS, e self-refresh, que 
atua quando o relógio externo está desativado, gerando os sinais internos de relógio e 
os endereços de atualização. Por último, o processo de leitura gera uma saída 
sequencial de dados, em rajadas rápidas de palavras de diversas posições de memória, 
A primeira palavra sofre uma latência pelo processo de endereçamento, mas as demais 
são transferidas na taxa do relógio. 
As memórias DDR utilizam memórias SDRAM com um padrão de comunicação 
definido entre módulos de memória e barramentos dos computadores. As taxas são 
 
 
32 
maiores porque a transferência de dados ocorre nas duas bordas do sinal de relógio 
(dual data rate - DDR), alcançando o dobro da taxa das memórias SDRAM (Tocci, 2011, 
p. 723). As memórias DDR2 utilizam técnicas de buffer para dobrar as taxas de I/O das 
DDR. E as DDR3 apresentam taxas de I/O duas vezes maiores que as taxas da DDR2. 
As memórias DDR operam com tensão de alimentação de 2,5 V, as DDR2 com 1,8 V 
e as DDR3 com 1,5 V, apresentando taxas de transferência máximas de 3,2 GBps, 6,4 
GBps e 12,8 GBps, respectivamente, considerando a largura do barramento de dados 
de 64 bits, mas operando com os mesmos valores de relógio, entre 100MHz e 200MHz 
(Pedroni, 2010, p. 392). 
Exemplos de determinação da taxa de transferência das DDR SDRAM: 
100 [MHz] x 2 (DDR) x 1 (taxa de I/O DDR) x 8 [bytes – 64 bits] = 1600 
MBps 
200 [MHz] x 2 (DDR) x 1 (taxa de I/O DDR) x 8 [bytes – 64 bits] = 3,2 GBps 
200 [MHz] x 2 (DDR) x 4 (taxa de I/O DDR3) x 8 [bytes - 64 bits] = 12,8 
GBps 
TEMA 4 – CIRCUITOSCOM BARRAMENTO E ARRANJOS DE MEMÓRIA 
Neste tema veremos circuitos mais complexos que empregam troca de dados 
entre circuitos lógicos, entre memorias RAM, ROM e outros registradores, utilizando os 
barramentos de endereço, dados e controle. 
Utilizaremos um dispositivo de memória hipotético de 128b, organizado em 16 
palavras de 8 bits, conforme apresentado na Figura 28 (b). Para endereçar 16 posições 
de memória, o dispositivo conta com quatro linhas de endereços (A3, A2, A1, A0) e oito 
linhas de dados (D7 ... D0), além dos sinais de controle WE’, OE e CS. 
A tabela verdade do decodificador de endereços interno do dispositivo de 
memória descreve que recebe quatro valores do barramento de endereços e gera um 
sinal ativo de 16 saídas, que justamente habilita as células de memória localizada na 
posição endereçada. 
Para ampliar a capacidade da memória do sistema podem ser utilizados dois 
dispositivos iguais, com um certo ajuste no hardware. Uma quinta linha de endereço 
(A4) é utilizada, para produzir uma distinção entre dispositivo M0 e M1. Dessa forma, 
todos os sinais são postos comuns com exceção do sinal de habilitação de saída (OE) 
que combinado com o A4, habilitam ora o M0 ora o M1, conforme o endereço acessado. 
O efeito prático desse arranjo é como se as memórias separadas formassem uma única 
 
 
33 
memória de 32 x 8 bits, na qual o MSB distingue entre a primeira metade (A4=0) e a 
segunda metade (A4=1). 
Figura 28 – Tabela verdade de um decodificador 16:4 (a); Arranjo de memória para 
aumentar a quantidade de posições (b) 
 
No próximo exemplo, apresentado na Figura 29, o problema é diferente. Busca-
se aumentar a largura do barramento de dados para 16 bits, utilizando dois dispositivos 
de memória com oito bits no barramento de dados. Nesta solução todos os sinais são 
comuns, com exceção do barramento de dados de cada dispositivo que são mantidos 
separados. O dispositivo M1 forma a parte mais alta do barramento (D15 ... D8) e o 
dispositivo M0 a parte mais baixa do barramento (D7 ... D0). 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34 
Figura 29 – Arranjo de memória para aumentar a largura do barramento 
 
No último exemplo, apresentado na Figura 30, o problema é aumentar a 
quantidade de posições de memória e a largura do barramento. Nesse caso, aplicam-
se as duas soluções anteriores para resolver este problema. As memórias M11 e M01 
ficam empilhadas com o uso da linha de endereço extra A4, assim como as memórias 
M10 e M00. Como os conjunto de memórias empilhadas possuem os mesmos sinais, 
basta uni-los com exceção das terminações de dados que se mantém separadas. 
Dessa forma M11 e M01 ficam responsáveis pela pete mais alta do barramento de dados 
(D15 ... D8) e M10 e M00, ficam responsáveis pela parte mais baixo do barramento de 
dados (D7 ... D0). O comportamento é de um dispositivo de memória de 32 x 16 bits, 
com 512b, total da soma da capacidade de quatro dispositivos individuais. 
A memória SRAM (Static RAM) SMV512K32-SP, da Texas Instruments, é uma 
memória de estática 16 Mib (megabits), assíncrona, com barramento paralelo de 
acesso, contando com projeto reforçando a proteção contra radiação e circuito interno 
autônomo para detecção e correção de erros EDAC (Error Detection and Correction) 
(TEXAS (2), 2011, p.1). A organização do SMV512K32-SP apresenta 512Ki palavras 
de 32 bits. De outra forma, existem 524.288 posições de memória (endereços) que 
guardam dados com 32 bits de largura. Poderíamos desejar um espaço de 
armazenamento de 1024Ki ou armazenar dados com 64 bits de largura. Ou ambos, 
1024Ki posições de 64 bits. 
 
 
35 
Figura 30 – Arranjo de memória para aumentar a quantidade de posições e a largura 
do barramento 
 
A Figura 31 (a) apresenta o diagrama em blocos interno do SMV512K32-SP no 
qual se pode notar a matriz de células de memória, os decodificadores de endereço 
para ativação de linhas e colunas para seleção de uma palavra de memória específica, 
o circuito lógico para operação das habilitações, os circuitos para operação de escrita 
e leitura e o bloco para correção de erros (EDAC). Os sinais de habilitação são 
compostos pela habilitação de pastilha E2, para habilitação em nível lógico alto, e E1Z, 
para habilitação em nível lógico baixo, habilitação de saída GZ, ativo com nível lógico 
baixo, e habilitação de escrita WZ, também ativo em nível lógico baixo. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36 
Figura 31 – Ampliação de memória aplicado à SRAM comercial: circuito interno do 
SMV512K32-SP (a) (fonte: baseado em TEXAS (2), 2011); ampliação espaço de 
endereçamento (b) 
 
 
A Figura 31 (b) apresenta uma forma de ampliação do espaço de endereçamento 
utilizando dois dispositivos de memória SMV512K32-SP, empregando uma nova linha 
de endereçamento (A19), aplicada a um decodificador 1:2 que fará a seleção entre o 
dispositivo M0 e M1, através do sinal de habilitação E2. Todos os demais sinais dos 
barramentos de dados e endereços. As operações dos dispositivos em modos mestre 
e escravo e da correção de erros não são abordados nesse exemplo. 
TEMA 5 – DISPOSITIVOS LÓGICOS PROGRAMÁVEIS 
Estudamos muitos circuitos lógicos distintos que, combinados, poderiam resolver 
muitos problemas, apresentando soluções abrangentes ou específicas, formando 
muitas vezes circuitos complexos como sistemas de controle ou processadores para 
aplicações específicas. Os microprocessadores (µP), microcontroladores (µC) e 
processadores de sinais (DSP), sinteticamente referidos CPUs, são dispositivos lógicos 
e atendem às necessidades de implementação de sistemas complexos. As CPUs 
possuem grande flexibilidade na construção do código e, embora possuam arquitetura 
genérica fixa, podem resolver inúmeros e diferentes problemas, muito adequadamente. 
Entretanto, soluções com CPUs podem experimentar desempenho insuficiente, 
limitando sua aplicação em sistemas que exijam respostas mais rápidas ou que tenham 
um maior compromisso entre consumo e desempenho. Os projetos que buscam 
 
 
37 
desenvolver sistemas de resposta mais rápida e específica empregam hardware 
combinado, com contadores, codificadores, decodificadores, memórias, somadores, 
multiplicadores e registradores, que apresentam respostas rápidas, mas que raramente 
são construídos de forma discreta, empregando circuitos integrados (CI) com portas 
lógicas ou MSI. Para essas soluções, os sistemas digitais são implementados em 
dispositivos lógicos programáveis, que permitem a construção de uma arquitetura 
dedicada, integrada e robusta, projetada para resolver muitos problemas, apresentando 
soluções de forma específica e eficiente em hardware (Tocci, 2011, p. 752). 
Uma classificação que organiza a relação entre as classes de componentes 
digitais já apresentadas pode ser vista na Figura 32, na qual se separam os dispositivos 
digitais em circuitos lógicos discretos, CPUs e circuitos integrados de aplicação 
específica ASICs (application-specific integrated circuits), que englobam os dispositivos 
lógicos programáveis, PLD (programmable logic devices). 
Figura 32 – Classificação dos dispositivos digitais 
 
Os ASIC possuem uma grande flexibilidade para a elaboração do projeto e 
podem ser totalmente dedicados e totalmente personalizados (full-custom) para uma 
aplicação específica. Essa flexibilidade que cobra um elevado custo de NRE (Non-
recurring engineering), que abrange pesquisa, projeto, desenvolvimento e testes para 
produzir um novo dispositivo, apresentando riscos quanto ao retorno do projeto devido 
ao montante do investimento inicial, mas que, a partir da aplicação da máscara criada 
para os processos de fabricação, apresentam um custo por unidade mais baixo que 
outros métodos (Trimberger, 2015; Tocci, 2011, p. 752). Veremos que parte do sucesso 
das PLD vêm do menor NRE e do menor risco de projetos. 
Os primeiros PLDs foram desenvolvidos para apresentar umaarquitetura interna 
simples e útil, baseada em circuitos SOP (soma de produtos), que facilitou sua imediata 
aplicação em circuitos combinacionais, contribuindo na redução do espaço ocupado 
por componentes lógicos convencionais e na simplificação do projeto. Ao longo do 
tempo, os PLD ganharam flexibilidade e maior complexidade, sendo enquadrados em 
 
 
38 
classes mais específicas de PLDs, como CPLDs (complex programmable logic devices) 
e FPGAs (field programmable gate arrays), passando, todavia, ao se referir aos PLDs 
antecessores como SPLD (simple programmable logic devices), apresentadas na 
classificação da Figura 33. 
Figura 33 – Classificação de PLD, contendo o ano aproximado de lançamento das 
primeiras unidades 
 
Fonte: Pedroni, 2010; Trimberger, 2015; Maxfield, 2011. 
5.1 PROM 
Os PLD PROMs (Programmable Read-Only Memories) que entraram em cena 
nos anos 1970 e apresentavam um princípio de operação baseada em uma matriz fixa 
de funções booleanas AND e uma matriz programável de funções booleanas OR 
(Maxfield, 2011), em uma estrutura SOP. Os bits de memória gravados, estabeleciam 
as conexões permanentes na matriz OR, como apresentado na Figura 34, pelos 
rompimentos de fusíveis nas linhas de soma (Tocci, 2011, p. 755). As entradas geravam 
sinais diretos e invertidos que eram utilizados na definição dos termos de produtos 
(fixo), que eram combinados em funções OR, que definiam os termos que participavam 
da soma pela programação (queima) dos fusíveis. 
 
 
 
 
 
 
 
 
 
 
39 
Figura 34 – Matrizes AND e OR utilizadas por PLD PROMs 
 
 Fonte: Tocci, 2011, p. 755. 
Os PLD PROMs eram adequadamente funcionais na implementação da lógica 
combinacional, pois atendiam às expressões lógicas com uma grande quantidade de 
termos de produtos, mas não apresentavam, entretanto, boa capacidade para maiores 
quantidades de entrada, fato que levou à busca de novas arquiteturas (Maxfield, 2011). 
As memórias PROM também eram usadas para conversão de códigos fixos, em 
tabelas de compensação, mapeamento de parâmetros de desempenho, conversão de 
temperatura e tabelas de buscas, por exemplo, que evitavam a construção de grandes 
blocos lógicos, pela implementação de uma relação de/para entre valores. 
5.2 PLA 
Os PLA (Programmable logic array) surgiram em torno de 1975, como um passo 
evolucionário em resposta às limitações das PLD PROMs. Apresentavam matrizes 
configuráveis pelos usuários tanto nas matrizes AND quanto na OR, conforme 
apresentado na Figura 35. 
O benefício imediato que também o diferenciava do PLD PROM era o menor 
aproveitamento dos recursos do componente, pela possibilidade de programar as duas 
matrizes, mas que deixava o PLA significativamente mais lento que estes primeiros, 
 
 
40 
devido à propagação dos sinais pelas estruturas de comutação das matrizes (Maxfield, 
2011; Pedroni, 2010). 
Figura 35 – Arquitetura PLA 
 
 Fonte: Pedroni, 2011, p. 416. 
5.3 PAL 
Os PAL (Programmable array logic) foram introduzidos no mercado no final dos 
anos 1970. Com arquitetura diferente do PLA e oposto ao PLD PROM, apresentavam 
matriz AND configurável e matriz OR fixa, conforme arquitetura apresentada na Erro! 
Fonte de referência não encontrada. (a). 
As expressões: 
• f1 = a.h’ + a.b.c.d + a.b’.c + a.b’.c’; 
• f2 = a + e. 
foram implementadas na arquitetura genérica, na qual as conexões efetivadas no 
diagrama são representadas com pontos escuros, conforme pode ser visto na Figura 
36 (b). 
O PAL16L8 é exemplo comercial com 16 linhas de entrada e oito linhas de saída, 
contando com linhas de realimentação. O diagrama funcional do PAL16L8 pode ser 
visto na Figura 37, na qual se observam as linhas exclusivamente de entrada, 
exclusivamente de saída e linhas de I/O (input/output) que podem ser usados tanto para 
entrada, saída ou realimentação. 
 
 
41 
Figura 36 – Arquitetura PAL (a); programação de duas expressões lógicas (b) 
 
Fonte: Pedroni, 2010, p. 415. 
Figura 37 – Diagrama funcional do PAL16L8 
 
Fonte: Texas Instruments, 1992. 
O bloco mais à esquerda (buffer/inversor) duplica os sinais de entrada para sinais 
diretos (16) e invertidos (16), que são submetidos ao próximo bloco que é a matriz de 
comutação. A matriz de 32 sinais por 64 linhas, é programável e define a interconexão 
entre as 32 linhas de entrada às 64 linhas de entrada das funções AND. Na Figura 38 
pode ser visto o diagrama lógico do PAL16L8, apresentando todas as linhas de entrada, 
saída e as linhas realimentação, sendo um circuito lógico combinacional. 
 
 
 
 
42 
Figura 38 – Diagrama lógico PAL16L8 
 
Fonte: Texas Instruments, 1992. 
5.4 PAL e PLA registrados 
Os PAL e PLA Registrados são PLDs que constam com um FF D nos circuitos 
de saída. Essa mudança permite a implementação de máquinas de estado finito e 
outros circuitos sequenciais nos PALs e PLAs. O PAL16R8 é exemplo comercial de 
 
 
43 
PAL registrado, com 16 linhas de entrada e oito linhas de saída, contando com linhas 
de realimentação, sinal de clock e FF D, que é apresentado na Figura 39. 
Figura 39 – Diagrama lógico do PAL16R8 registrado 
 
 Fonte: Texas Instruments, 1992. 
 
 
 
44 
5.5 GAL 
O lançamento dos GALs (Generic Array Logic) trouxe várias melhorias com 
relação aos PLDs, principalmente nos circuitos de saída e no mecanismo de memória 
baseada em C-MOS eletricamente apagável (E²) (Maxfield, 2011). Lançadas pela 
Lattice em 1983, os GALs contavam com uma estrutura dinâmica e programável nos 
circuitos de saída denominada OLMC (output logic macrocell) ou, sinteticamente, 
macrocélula (macrocell), composta por FF, multiplexadores e portas lógica XOR. A 
arquitetura do GAL vista na Figura 40 (a), apresenta a arquitetura dinâmica de saída 
que permite várias configurações, como funcionamento de saída registrada e não 
registrada, direta e invertida, com realimentação registrada e não registrada e terminais 
de sinais combinadas para entrada e para saída, conforme apresentada na Figura 40 
(b). 
Figura 40 – Diagrama de blocos GAL 16V8 (a); Diagrama lógico do OLMC (b) 
 
Fonte: Lattice, 2004; Pedroni, 2010, p. 418. 
O GAL 16V8 desenvolvido com tecnologia CMOS, apresentava tempo de 
propagação máximo de 3,5 ns, com frequência de operação de 250 MHz, recurso de 
assinatura e proteção do projeto e especificação para retenção de dados por 20 anos, 
sendo capazes de suportar implementações de controladores de DMA, controlador de 
máquina de estados finitos, processamento gráfico de alta velocidade e upgrade de 
velocidade para soluções em lógica padrão (Lattice, 2004). A arquitetura interna do GAL 
 
 
45 
16V8, vista na Figura 41, apresenta os terminais de entrada e de entrada/saída (I/O), a 
matriz AND, responsável pela configuração de termos de produto e as macros células 
(OLMC). 
Figura 41 – Diagrama lógico do GAL 16V8 
 
Fonte: Lattice, 2004. 
 
 
 
46 
5.6 CPLD e FPGA 
No ritmo da evolução experimentada pelos GALs, no período do final dos anos 
1970 e início dos anos 1980, surgiram PLDs mais sofisticados empregando estruturas 
de macrocélula que foram referenciados como PLD complexos (CPLD - Complex PLD) 
para distingui-los dos dispositivos anteriores que, em conjunto, passaram a ser 
referenciados como PLD simples (SPLD - Simple PLD) (Maxfield, 2011). 
Tentativas iniciais de criação de uma CPLD resultaram em dispositivos com 
consumo desproporcional e pouca atratividade, como no MegaPAL da MMI (Monolithic 
Memories Inc.), um PLD de 84 pinos, composto por quatro PALs interconectados, que 
apresentavam pouca vantagem com relação a utilização de quatro PALs individuais 
(Maxfield, 2011). 
A Altera, empresa fundada em 1983, lançou em 1984 um CPLD que combinava 
C-MOS e EPROM em um dispositivo com elevado nível de integração, complexidade e 
baixo consumo, muito adequado para o ambiente de desenvolvimento e prototipação. 
A estratégia e o salto conceitualque permitiram o bom desempenho do dispositivo e 
tornaram a Altera conhecida foi a utilização de uma estrutura de comutação interna 
entre as macrocélulas e terminas de entrada e saída, inferior a 100% de conectividade, 
requisito que tornava a MegaPAL grande, lenta e de elevado consumo. Essa estratégia 
exigiu mais do processo de configuração que elevou a complexidade dos sistemas de 
desenvolvimento (EDA – electronic design automation), mas que manteve o dispositivo 
com velocidade, consumo e custo escaláveis (Maxfield, 2011). 
A arquitetura de um CPLD pode apresentar uma estrutura genérica composta 
por vários PLD, conforme apresentado na Figura 42 (a), utilizado pelo Xilinx XC9500, 
ou pode utilizar uma arquitetura mais refinada composta LE (Logic Elements), 
pertencentes a um LAB (Logic Array Block) com possibilidade de interconexões locais 
entre LEs e para outros LABs via conexões de colunas e linhas, como pode ser visto 
na Erro! Fonte de referência não encontrada.(b), utilizado pelo Altera MAX II. 
Segundo Tocci (2011), os fabricantes possuem várias famílias de dispositivos 
lógicos programáveis, com diferentes arquiteturas e lançam modificações frequentes 
com especificações um tanto confusas, de forma que uma distinção entre CPLDs e 
FPGAs pode ser um tanto cinza e não muito evidente. Segundo Trimberger (2015), a 
natureza evolutiva de cada PLD apresenta as distinções estruturais uma vez que os 
CPLDs evoluíram a partir de uma arquitetura PAL e memórias e os FPGA, de uma 
arquitetura completamente nova que empregam blocos lógicos de natureza variável, 
 
 
47 
menores, ligados por barramentos de interconexão. Nos FPGAs, os blocos lógicos 
podem apresentar funções variadas, como funções especializadas e se interliguem de 
forma bastante variada. Pedroni (2010) afirma que os FPGA se diferenciam dos CPLDs 
em arquitetura, tecnologia, características embutidas, tamanho, desempenho e custo. 
A arquitetura do FPGA não emprega a matriz que fornecia a programação em 
CPLD. Em vez disso, o bloco concentrado de células de memória que ficava na matriz 
de comutação foi separado, distribuindo células de memória ao redor da matriz para 
funcionalidade controle e fiação. Essa mudança perde em eficiência com relação a 
matriz de memória da estrutura PAL, mas ganha a favor da escalabilidade arquitetônica. 
A arquitetura do FPGA, consiste em uma matriz de blocos lógicos programáveis e 
interconexões com chaves programáveis de campo. A capacidade e o desempenho do 
FPGA não estavam limitados pelo crescimento quadrático e leiaute de fiação da matriz 
AND típica dos CPLDs (Trimberger, 2015). 
Figura 42 – Arquitetura baseada na interconexão de PLDs utilizada pelo Xilinx XC9500 
(a); arquitetura utilizando LAB e LE utilizada pelo Altera MAX II 
 
Fonte: Pedroni, 2010, p. 419. 
A Figura 43 apresenta a arquitetura do FPGA da Xilinx, da família Spartan-3A, 
na qual são apresentados os principais blocos funcionais destes dispositivos, como o 
bloco DCM (Digital Clock Manager), BRAM (Block RAM), CLB (Configurable Logic 
 
 
48 
Block) e IOB (Input/Output Blocks) e, adicionalmente, o bloco N*N que representa um 
bloco multiplicador que opera dois números de 18 bits, disponível nesta família. 
As funções dos blocos do FPGA são as que se seguem. 
• DCM – bloco que fornece uma solução digital autocalibrada, para distribuição, 
atraso, multiplicação, divisão e deslocamento de fase de sinais de relógio. 
• BRAM – fornece armazenamento de dados na forma de blocos de porta dupla 
de 18 kbit. 
• CLB – contêm tabelas de consulta (LUTs) flexíveis que implementam elementos 
lógicos e de armazenamento usados como flip-flops ou latches. O bloco CLB 
executa uma ampla variedade de funções lógicas, bem como armazena dados. 
• IOB – controla o fluxo de dados entre os pinos de entrada e saída e a lógica 
interna do dispositivo. IOBs suportam fluxo de dados bidirecional e operação de 
três estados. Suporta uma variedade de padrões de sinal, incluindo padrões 
diferenciais de alto desempenho e registros DDR (Double Data-Rate). 
• N*N – Blocos Multiplicadores – multiplicam dois números de 18 bits de largura. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49 
Figura 43 – Arquitetura genérica de FPGA Xilinx 
 
Fonte: Xilinx, 2018. 
Cada bloco de memória é associado a um multiplicador dedicado. Os blocos 
DCM são posicionados no centro da distribuição dos blocos, com dois blocos 
posicionados acima e abaixo do dispositivo. Entre os blocos, esta família de FPGAs 
apresenta uma ampla rede de roteamento para interconexões entre os cinco blocos 
funcionais. 
No FPGA, cada CLB é formado por dois slices, um do tipo L (logic) e ou do tipo 
L e M (logic e memory) e uma matriz de comutação, conforme diagrama apresentado 
na Figura 44. Os slice M não utilizados no processo de síntese do dispositivo podem 
ser usados como blocos de memória. 
 
 
 
 
50 
Figura 44 – Diagrama interno do CLB 
 
Fonte: Xilinx, 2012, p. 5. 
Os SB (switch box) fecham conexões entre vias horizontais e verticais. Na série 
7 da Xilinx, os slices são formados por seis tabelas de busca LUT (lock-up table), que 
podem assumir a função de memória ou de registrador de deslocamento SRL (shift 
register lacth), multiplexadores largos, cadeia de transporte de sinais de carry, quatro 
FF/latches e outros quatro flip-flops adicionais, conforme apresentado na Figura 45. 
Outro exemplo de arquitetura de um FPGA pode ser visto na Figura 46 que 
apresenta o Altera Cyclone IV, formado por linhas e colunas para conexões entre LAB 
(Logic array blocks), interconexões locais que ligam os LE. Cada LAB contém 16 LEs 
(Logic elements), sinais de controle do LAB, sinais de transporte de LE, registros de 
cadeias e interconexões locais (Altera, 2016, p. 33). 
Os LE são as unidades lógicas programáveis, compostas por um registro 
programável, quatro tabelas de procura (LUT - look-up table), cadeias de conexão para 
carry e registro, além dos controles para estabelecer conexões locais, linhas, colunas, 
registros e linhas diretas de interconexão entre LABs, conforme apresentado na Figura 
47 (Altera, 2016, p. 29). 
 
 
 
 
 
 
 
51 
Figura 45 – Diagrama interno de um slice 
 
 
Fonte: Xlinx, 2012, p. 8. 
O registrador do LE pode ser programado para operar como FF tipo D, T, JK ou 
RS, que contém sinais de dados, relógio, habilitação de relógio e entrada de clear. 
Figura 46 – Arquitetura Altera Cyclone IV 
 
Fonte: Altera, 2016, p. 33. 
 
 
52 
Cada LE tem três saídas que podem ser direcionados para roteamento local, de 
linha ou de coluna. Essas três saídas podem ser controladas independentemente pelo 
LUT ou pelo registro. Duas saídas do LE podem ser conduzidas às conexões de coluna 
ou linha, enquanto a outra saída é conduzida para a interconexão local, recurso que 
permite que a LUT ou o registrador sejam utilizados de forma independente (Altera, 
2016, p. 30). 
Figura 47 – Diagrama interno do LE 
 
Fonte: Altera, 2016, p. 30. 
Na 
Tabela 1 – estão as características de diversos dispositivos da família de FPGA 
Cyclone IV, em que se chama a atenção, principalmente, a quantidade de LE e 
terminais para uso, que permite a implementação de circuitos lógicos complexos. 
 
 
 
 
 
 
 
 
 
53 
 
Tabela 1 – Características dos dispositivos da família Cyclone IV 
 
Fonte: Altera, 2016, p. 17. 
5.7 Arquiteturas típicas para CPLD e FPGA 
As arquiteturas típicas para dispositivos lógicos programáveis são apresentadas 
na Figura 48. A matriz simétrica apresenta maior flexibilidade por contar com linhas de 
conexão verticais e horizontais, apresentando grande granularidade. 
A arquitetura do tipo sea-of-gates emprega transistores e blocos de baixa 
complexidade (portas lógicas), com grande densidade de unidades, normalmente 
empregados em ASICs. 
Figura 48 – Tipos de arquiteturas de FPGA 
 
Fonte: Marques, 2002,

Mais conteúdos dessa disciplina