Você está na página 1de 24

FACULDADE de Engenharia de Ilha Solteira - Departamento de Engenharia Elétrica

Circuitos Digitais II - Profa. Suely C. A. Mantovani - 1o.sem -2021

Memória ROM
1. Introdução
2. Estrutura geral e organização de uma mémória
3. MROMs
4. PROM
5. EPROM
6. EEPROM
7. Flash
Referências Bibliográficas

1. Introdução
As memórias de apenas leitura - ROMs (Read Only Memories) são
semicondutoras (integradas em pastilha de silício) e armazenam a informação em
caráter permanente. Durante sua operação normal nenhum dado pode ser escrito na
ROM, ou seja, é utilizada somente para leitura dos dados que foram armazenados
previamente.
Para alguns tipos de ROM os dados são gravados durante o processo de
fabricação enquanto que para outros, os dados são gravados eletricamente.
O processo de gravação de dados em uma ROM é denominado programação ou
queima. Algumas ROMs não podem ter seus dados alterados, enquanto que outras
podem ter seus dados apagados e regravados.
As ROMs são não voláteis e por isso são empregadas para guardar dados que não
mudarão durante a operação de um sistema, uma vez que, depois de cessada a
alimentação elétrica, os dados não se perdem.
Aplicada no armazenamento de programas de sistemas operacionais em
computadores e outros sistemas digitais (eletrodomésticos, sistema de segurança, caixa
eletrônico, robóticos, etc.), circuitos geradores de caracteres e pode ser empregada na
construção de um circuito combinacional qualquer. A simbologia para uma ROM é
dada na Figura 1.

1
Figura 1- Símbolo – ROM (mais comun).

Fonte: Tocci, Widmer, Moss (2011)


Uma ROM pode ser implementada como um circuito combinacional, conforme
ilustrado na Figura 2 a seguir.
Figura 2- Circuito Combinacional Codificador–ROM e sua tabela verdade

Na realidade trata-se de um circuito combinacional codificador onde E0 a E2 são

2
as entradas. Essas entradas combinadas equivalem ao endereço e na saída, têm-se a
palavra S0 a S4. Por exemplo: para o endereço 100, a palavra na saída seria 10111.
É importante notar que no codificador somente uma das entradas pode ser levada
a nível lógico 1 de cada vez, o que é um fator limitante para uma ROM feita com
codificadores.
Uma alternativa é usar um decodificador e um codificador para implementar
uma ROM, conforme mostra-se na Figura 3. Com as combinações de entrada é
estabelecida uma saída, onde neste caso, as entradas poderão estar todas submetidas a
nível 1.
Figura 3- Estrutura Geral para uma ROM combinacional

A vantagem deste circuito é o aumento na capacidade de armazenamento, para um


número de linhas de endereçamento mais reduzido. Para n linhas de endereçamento
haverá 2n entradas no codificador e consequentemente 2n palavras.
Com base no decodificador e codificador pode-se projetar uma memória ROM,
conforme a Tabela 1, mostrada na Figura 4.
Tabela 1

3
Figura 4- ROM combinacional

2. Estrutura geral e organização de uma mémória


A Arquitetura básica utilizada para a ROM nos processos de fabricação dos
circuitos integrados atuais é mostrada na Figura 5.
Figura 5 – Arquitetura Interna das Memórias ROM

Bloco decodificador de endereços – é um gerador de produtos canônicos que ativa


uma linha por vez, de acordo com o endereçamento. Na Figura 6 tem-se um exemplo
4
para o decodificador de endereços, usando portas lógicas ANDs e inversor.
Figura 6 – Bloco decodificador de endereços – Gerador de produtos canônicos de 2 bits.

Fonte: Taub (1984)


Matriz de dados – arranjo de linhas e colunas que, por meio de um elo (de ligação),
possibilita a gravação dos dados pelo fabricante e consequente leitura pelo usuário. Na
prática, esses elos são elementos semicondutores diodos, Figura 7 (a) ou transistores
(bipolares), Figura 7 (b) que constituem a estrutura de dados propriamente ditos.
Figura 7 (a) - Matriz de dados (Mask - ROM) com diodo (substitui o codificador na
Figura 4). (b) Estrutura interna de uma Mask- ROM bipolar.
ROM 4X4

(a)

5
(b)
Fonte: Taub (1984)

Chaves de saída- conjunto de chaves (buffers), Figura 8, que são normalmente


habilitadas pelo terminal CS (chip select), em nível ‘0’, caso contrário fica em alta
impedância.
Figura 8 – Mecanismo de acionamento de saída das memórias

6
3. ROM – Mask
Memória mascarável ou ROM Máscara (MROM) – memória somente de leitura,
ou seja, os dados são armazenados no processo de fabricação, não permitindo nova
gravação. Em computadores antigos a ROM continha a programação (BIOS-Basic Input
Output System) que permite a inicialização de um computador. Geralmente chamada
simplesmente de ROM, provia funções padronizadas amplamente, como conversões
populares ou funções de uso específico. A maioria dos CIs ROMs utiliza a presença ou
ausência de uma conexão a transistor numa junção linha/coluna para representar um
nível ‘1’ ou ‘0’.
Mostra-se uma célula de ROM MOS na Figura 9, cuja presença de uma conexão
de uma linha para a porta de um transistor representa um nível ‘1’ naquela posição, pois
quando a linha é colocada em nível alto, todos os transistores com uma conexão de
porta para a linha, ligam e conectam o nível ALTO (1) à coluna associada. Na junção
linha/coluna onde não existe a conexão de porta, a coluna permanece em nível BAIXO
(0), quando a linha é endereçada.
Figura 9 – ROM MOS

4. PROM

Programmable Read-only Memory - ROM é fornecida virgem para o comprador. Sua


célula é formada por um elemento semicondutor e um fusível, Figura 10. Um
gravador é usado para a gravação de dados na PROM. A gravação é feita de uma só vez
, pela circulação de uma corrente elétrica que rompe o fusível onde se deseja armazenar
o nível lógico ‘0’, para toda a capacidade da PROM, e uma vez realizada , não pode ser
desfeita.

7
Figura 10-Memória PROM com diodo, desprogramada (virgem).

Fonte: Taub (1984)


5. EPROM
Erasable Programmable read-only memory - ROM Apagável e Programável,
inventada pelo engenheiro Dov Frohman. Uma EPROM é um dispositivo de memória
de computador não volátil (mantém seus dados quando a energia é desligada). É
programada pelo programador de EPROM, que fornece tensões maiores do que as
usadas normalmente na alimentação do dispositivo, encontrado no mercado de
componentes ou pode-se fazer um, do tipo caseiro. Uma vez programada, pode ser
apagada apenas por exposição a uma forte luz ultravioleta (comprimento de onda
entre 0,2 a 0,4 microns). EPROMs são facilmente reconhecíveis pela janela transparente
no topo do pacote (Figura 11), pela qual o chip de silício pode ser visto, e por onde
passa luz ultravioleta durante o apagamento.

8
Figura 11 – (a) e (b) EPROMS e a janela de quartzo. (c) Microcontrolador 8749 com
EPROM.

(a)

(b)

(c)
Fonte: Própria do autor
Uma EPROM programada mantém seus dados por mais de vinte anos e pode ser
lida ilimitadas vezes. A janela de apagamento tem que ser mantida coberta para evitar
apagamento acidental pela luz (do sol e outras). Antigos chips de BIOS (Basic
Input/Output Systems) de PC usavam EPROMs, e a janela de apagamento era
frequentemente coberta com um adesivo contendo o nome do produtor, a revisão da
BIOS e um aviso de copyright. Na Figura 12 mostra-se um apagador de EPROM
comercial.

9
Figura 12- Apagador de EPROM.

Fonte: Própria do autor


Antes da era da memória flash, alguns microcontroladores usavam EPROMs para
armazenar seus programas, facilitando o desenvolvimento de projetos, possibilitanto
que os dispositivos programáveis fossem programados várias vezes.
Existem EPROMs em vários tamanhos (físicos) e de capacidade de
armazenamento, conforme mostrado na Tabela 2.
Tabela 2- Memórias EPROMs comerciais

Tamanho - Tamanho - Tamanho Último endereço


Tipo de EPROM
bits bytes (hex) (hex)

2716, 27C16 16 kbit 2KBytes 800 007FF

2732, 27C32 32 kbit 4KBytes 1000 00FFF

2764, 27C64 64 kbit 8KBytes 2000 01FFF

27128, 27C128 128 kbit 16KBytes 4000 03FFF

27256, 27C256 256 kbit 32KBytes 8000 07FFF

27512, 27C512 512 kbit 64KBytes 10000 0FFFF

27C010, 27C100 1Mbit 128KBytes 20000 1FFFF

27C020 2 Mbit 256 kbytes 40000 3FFFF

27C040 4 Mbit 512 kbyte 80000 7FFFF


NOTA: As séries de EPROMs 27x contendo um C no nome são baseadas em CMOS, sem o C são
NMOS.

5.1 Células de armazenamento


Uma célula de uma EPROM em transistor MOS com porta de silício sem conexão
(flutuante) é mostrada na Figura13. No estado normal o transistor está desligado e a

10
célula armazena ‘1’ lógico. O transistor pode ser ligado aplicando um pulso de tensão
que injeta elétrons de alta energia na região da porta flutuante. Estes elétrons ficam
presos, pois não há caminho de fuga.
Figura 13 - Seção transversal de uma célula EPROM NMOS

Fonte: Sedra . Smith (2015).


Uma EPROM pode ser programada pelo usuário e também pode ser apagada e
reprogramada quantas vezes desejar. O processo de programar uma EPROM consiste
em aplicar tensões especiais nos pinos apropriados, durante certo tempo (50ms por
locação).
Uma EPROM pode ser apagada se for exposta a luz ultravioleta, que produzirá
uma corrente da porta flutuante para o substrato, removendo as cargas e desligando o
transistor, e restaurando o ‘1’ lógico. Este processo deve gastar entre 15 e 30 minutos,
dependendo da memória e intensidade de luz, e apagará toda a memória.
Mostra-se a seção transversal de uma célula de memória, Figura 14 (a) e o
símbolo na Figura 14 (b), onde a célula é basicamente um MOSFET (Metal Oxide
Semiconductor Field Effect Transistor) canal N com dois gates feitos de polisilicio.
Observa-se que um dos gates não é eletricamente conectado em qualquer parte do
circuito, é deixado flutuante, por isso o nome. Na Figura 14 (c) tem-se um transistor
MOSFET canal N durante a programação.

11
Figura 14 (a)-Seção transversal de uma célula EPROM. (b) símbolo do circuito para o
transistor de gate flutuante – MOSFET canal N. (c) Transistor de gate flutuante durante
a programação.

(c)
Fonte: Sedra , Smith ( 2015).

 Operação - antes de a célula ser programada, nenhuma carga existe no gate


flutuante e o dispositivo opera como um MOSFET regular canal N, Característica iD -
vGS na Figura 15 (a) . Note que neste caso a Tensão de limiar (threshold), Vt ou tensão
de condução do transistor é preferencialmente baixa. Este estado é conhecido como não
programado, armazena ‘1’.

12
Figura 15 – (a) Célula não programada (dispositivo opera como um Tr. regular canal N).
(b) Ilustrando o deslocamento da característica iD - vGS no Tr. de gate flutuante como
resultado da programação.

 Programando o transistor de gate flutuante (Figura 14c) - é aplicada uma grande


tensão (16-20 V) entre o dreno (drain) e a fonte (source). Simultaneamente uma grande
tensão, cerca de 25 V é aplicada no select gate. Na célula programada a característica
iD - vGS obedece a Figura 15 (b) e a célula é dita ter armazenado ‘0’.
A carga negativa armazenada no gate flutuante repele os elétrons da superfície do
substrato. Isto implica que para formar um canal, a tensão positiva aplicada ao select
gate, deve ser maior que a necessária quando o gate flutuante não está carregado e, uma
vez programado, este dispositivo retém (aproximadamente 100 anos) esta característica
(curva b) mesmo que a alimentação seja retirada.

 Lendo o conteúdo da célula EPROM- é aplicada no select gate uma tensão VGS
qualquer (entre os valores Vt - alto e baixo). Com isso, um dispositivo programado (que
armazenou ‘0’) não irá conduzir, e o dispositivo não programado irá conduzir
(armazenou ‘1’).

 Desprogramando a célula- a carga armazenada no gate flutuante deve retornar ao


substrato (apagar). O processo de apagar é realizado pela exposição da célula (janela de
quartzo) a luz ultravioleta no comprimento de onda correto (2537 A0 ) por uma duração
específica. A luz ultravioleta fornece suficiente energia para os fótons que estão presos,
permitindo superar a barreira de energia e então serem transportados através do óxido,
13
de volta ao substrato.
5.2 EPROM Comercial
A CMOS AM27C64 é uma memória EPROM organizada como 8K palavras de 8-
bits. Segue na Figura 16a, o seu diagrama de blocos.
Figura 16 a- Organização interna da memória EPROM AM27C64

6. EEPROM

Uma EEPROM (Electrically Erasable Programmable Read-Only Memory) é um


chip de armazenamento não volátil usado em computadores e outros aparelhos.
Ao contrário de uma EPROM, uma EEPROM pode ser programada e apagada
várias vezes, eletricamente e ainda isoladamente por palavras de dados (bytes
individuais) sem a necessidade de reprogramação total. Este fato faz com que as
alterações sejam efetuadas pelo próprio sistema no qual a memória esteja inserida (in-
circuit).
Pode ser lida um número ilimitado de vezes, mas só pode ser apagada e
programada um número limitado de vezes, que variam entre as 100.000 e 1 milhão. A
memória Flash é uma variação moderna da EEPROM, mas existe na indústria uma
convenção para reservar o termo EEPROM para as memórias de escrita bit a bit, não
incluindo as memórias de escrita bloco a bloco, como as memórias Flash. As
EEPROMs necessitam de maior área que as memórias Flash, porque cada célula
geralmente necessita de um transístor de leitura e outro de escrita, ao passo que as
células da Flash só necessitam de um.
Dispositivos da série MAX7000S como o EPM7128SLC84-7 de média densidade,
tem internamente elementos de uma EEPROM. O EPM7128SLC84-7 apresenta as

14
seguintes características:

 PLCC (Plastic Leaded Chip Carrier )-package de 84 pinos;


 128 macrocélulas onde cada macrocélula tem um array de AND programável/OR
fixa; registrador reconfigurável com clock independente programável, clock
enable, clear e funções preset;
 Capacidade de 2500 gates;
 Arquitetura simples, ideal para projetos introdutórios, funções lógicas
combinatoriais e sequenciais;
 Tensão de alimentação de 5,0 e 3,3V;
 Reprogramável no sistema;
 Compatível PCI2 (Barramento PCI - Peripheral Component Interconnect);
 Apresenta alta velocidade (tp=5ns).

Placa UP2(University Program 2 ) da ALTERA, Figura 16b

Figura 16b- Kit UP2 -ALTERA

7. Memória FLASH

As memórias Flash (Flash EEPROM) foram uma resposta da indústria às


memórias EPROM e EEPROM, que oferecem as vantagens destas memórias sem o alto
custo, apresentando as seguintes características:

15
 Não-Volátil;
 Apagável e escrita feitos eletricamente como as EEPROMS;
 Apagável eletricamente total ou por setor, no circuito;
 Grande densidade;
 Alta velocidade de acesso (igual a EPROM e a EEPROMs);
 Baixo custo.
A Memória FLASH é uma memória EEPROM que permite que múltiplos
endereços sejam apagados ou escritos numa só operação. Trata-se de um dispositivo
reprogramável e ao contrário de uma RAM, preserva o seu conteúdo sem a necessidade
de fonte de alimentação. Esta memória é comumente usada em cartões de memória
drives flash, USB e em iPod .
Também vem sendo chamada de disco sólido, não somente devido a sua maior
resistência quando comparada aos discos rígidos atuais, mas por apresentar menor
consumo, maiores taxas de transferência, latências e peso muito mais baixos. Chega a
utilizar apenas 5% dos recursos normalmente empregados na alimentação de discos
rígidos, por isso é utilizada em notebooks.
As memórias Flash estão entre os mais modernos avanços da tecnologia de
armazenamento de dados em circuitos eletrônicos. Nesta memória os dados são
gravados ou apagados em blocos de muitos bytes (em organização semelhante à de
setores e blocos dos discos magnéticos, flexíveis e rígidos) diferentemente das
EEPROMs. Essa característica confere a elas mais rapidez que as EEPROMS
tradicionais.

7.1. A Célula
A célula de uma memória Flash é semelhante à célula de uma EPROM, e é
constituída por um único transistor. Na memória Flash, uma fina camada de óxido entre
a porta (gate) de silício do transistor, permite apagar eletricamente a memória e uma
maior densidade que as EEPROMs, com um custo menor. Na Figura 17 compara-se a
célula da Flash com a EPROM, onde a camada de óxido entre a porta e o substrato
na célula Flash é 100 Angstroms, aproximadamente, e na EPROM é maior que 150
Angstroms.

16
Figura 17- Célula Flash e célula EPROM

Fonte: Sedra, Smith (2015)

7.2 Operação de escrita / leitura/Apagamento


Na operação de escrita, uma alta tensão de programação (VPP=12 Volts) é
aplicada na porta de controle (Control Gate), a tensão no dreno (Drain) é aumentada
para 6 Volts, enquanto a tensão na fonte (Source) permanece em 0 Volts. Isto forma
uma região reversa, crescendo a corrente de dreno-fonte, provocando um aumento na
energia dos elétrons que vencem a barreira do óxido e são capturados pela porta
flutuante (floating gate), Figura 18.
Figura 18 - Célula Flash - Operação de Escrita.

Fonte: Sedra , Smith (2015)


Depois de a escrita ser concluída, uma carga negativa na porta flutuante
aumenta a tensão de limiar (Vt) da célula, acima da tensão equivalente a ‘1’ lógico da
linha de seleção de palavra (worldline). Quando a linha de seleção de palavra de uma
célula escrita é levada ao nível lógico ‘1’ durante uma leitura, a célula não conduzirá.
Um amplificador sensor detecta e amplifica a corrente da célula, e fornece uma saída ‘0’
para uma célula escrita.
 Para apagar o conteúdo de uma célula Flash, a tensão de fonte é colocada em
VPP=12 Volts, a porta de controle é aterrada e o dreno fica flutuando, Figura 19.
Devido a grande tensão aplicada no terminal fonte, em relação à tensão na porta, há uma
atração dos elétrons negativamente carregados da porta flutuante para a fonte, através da

17
fina camada de óxido.
Figura 19- Célula Flash - Operação de Apagar

Fonte: Sedra e Smith, 2015


Depois da operação de apagar ser completada, a ausência de cargas na porta
flutuante baixa a tensão Vt da célula para um valor abaixo da tensão equivalente a ‘1’
lógico da linha de seleção de palavra. Quando uma célula apagada tem a linha de
seleção de palavra colocada no nível lógico ‘1’ durante uma leitura, o transistor
conduzirá mais corrente que uma célula escrita, fornecendo saída lógica ‘1’.

7.3 Memória Flash CMOS A28F256A


O símbolo lógico para o CI da memória Flash, CMOS A28F256A da Intel (DIP-
dual-in-line), com capacidade 32K X 8-palavras X bits é mostrado na Figura 20. As
funções executadas por cada pino estão indicadas na Tabela 3.
Figura 20- Pinagem do dispositivo 28F256A

18
Tabela 3-Pinagem e função dos pinos.

Diagrama Funcional ou diagrama de blocos para a memória FLASH A28F256A,


Figura 21.
Figura 21 - Diagrama de blocos para a memória FLASH A28F256A.

19
As operações de leitura, escrita e 'standby' são controladas pelas entradas de
controle WE#, CE# e OE#. Na Tabela 3 mostra-se resumidamente o que acontece com
os pinos de dados DQ0 a DQ7 para diferentes níveis das entradas de controle.

Tabela 3 - Da Operação
Input Output
Modo CE OE WE Dados

READ LOW LOW HIGH DATA OUT


WRITE* LOW HIGH LOW DATA IN
STANDBY HIGH X X HIGH-Z

Resumos comparativos entre as ROMs, Figura 22 (a) e (b).


Figura 22- (a) e (b) Resumos Comparativos entre as ROMs para diferentes parâmetros.

(a)

(b)

7.4 Aplicações
Utilizadas para o armazenamento de grandes quantidades de dados em sistemas
embarcados em memórias não voláteis. Exemplo: câmeras digitais, telefones celulares,
sistemas de vídeo, produtos médicos etc.
20
A2
*

Cartão de memória ou cartão de memória flash - dispositivo de armazenamento de


dados com memória flash utilizados em videogames, câmeras digitais, telefones
celulares, computadores e outros aparelhos eletrônicos. Regravados várias vezes, não
voláteis, portáteis e suportam condições de uso e armazenamento mais rigorosos que
outros dispositivos baseados em peças móveis, na Figura 23 têm-se alguns exemplos.

Figura 23- Modelos de cartões de memória. Em sentido horário a partir do topo,


Compact Flash, xD-Picture Card, MultiMediaCard e Secure Digital Card (SD).

Os cartões SD são o atual padrão para memória Flash removível em


dispositivos móveis. O que explica sua popularidade é ser considerado uma forma
conveniente e barata de armazenar grandes quantidades de informações. Estão
disponíveis em 3 tamanhos físicos, com uma grande variedade de capacidades (1GB até
128GB ) e velocidades.
USB Flashdisk- Memória USB Flash Drive ou Pen Drive - dispositivo de
armazenamento constituído por uma memória flash e uma ligação USB tipo A,
permitindo a sua conexão a uma porta USB de um computador. Uma vez encaixado na
porta USB, o Flash Drive aparece como um disco removível, similar a um disco rígido
ou disquete.
As capacidades de armazenamento são de 64 MB, 128 MB, 256 MB, 512 MB,
1GB , 64 GB, etc. A velocidade de transferência de dados pode variar dependendo do
tipo de entrada, Figura 24.
Componentes essenciais de um drive flash
 Conector USB macho do tipo A – Interface com o computador
 Controlador USB Mass Storage – Acesso à memória flash
21
 NAND flash – Armazena a informação
 Oscilador a cristal – Produz um sinal de relógio (12 MHz), usado para ler ou
enviar dados a cada pulso.
Componentes complementares:
 Jumpers e pinos de teste – Para testes durante a sua produção
 LEDs – Que indicam quando se está lendo ou escrevendo no drive
 Interruptor de modo de escrita – Para que não se possa apagar algo do dispositivo
 Reconhecedor de inpressão digital - Para que nenhuma pessoa não autorizada
utilize o dispositivo.
Figura 24- Componentes internos de um pen drive típica. (marca Seite USB1.1).

1 Conector USB

2 Dispositivo de controle de armazenamento USB

3 Pontos de teste

4 Chip de memória flash

5 Cristal oscilador

6 LED

7 Chave de proteção contra gravação

22
8 Espaço para um chip de memória flash adicional

Para ilustrar o uso das memórias, apresenta-se na Figura 25 a plataforma de


desenvolvimento, Arduino UNO.
Figura 25- Arduino UNO

Nesta placa tem-se o microcontrolador ATmega328P com algumas características


importantes como :
 Microcontrolador de 8 bits - arquitetura AVR desenvolvido pela Atmel;
 Usa um cristal de quartzo de 16 MHz;
 32 registradores conectados diretamente à Unidade Lógica e Aritmética
(ULA);
 32 Kbytes de memória Flash programável, 1 Kbyte de EEPROM, 2
Kbytes de SRAM.

Resumindo:
As memórias flash acrescentam reprogramabilidade e apagamento elétrico do chip
à EPROM não volátil, facilitando seu uso. É ideal para armazenar códigos de programas
e/ou tabelas de dados, em aplicações onde atualizações periódicas são necessárias.
Servem como um meio de aquisição e armazenamento não volátil de dados.
Com apagamento e reprogramação elétricos, pode ser soldada na placa do
circuito. Os códigos de teste/final são carregados na memória flash quando esta é
montada na placa do circuito.
A programação da memória flash no circuito elimina manuseios desnecessários e
conexões menos confiáveis em soquetes; acrescenta maior flexibilidade de teste; reduz
o custo total de material e diminui os custos de trabalho associados com atualizações de
códigos (as atualizações de códigos são feitas localmente por meio de um conector, ou

23
remotamente).

Observação: Flash NAND – aplicadas em TV, muito conhecida como chip NAND é
usada em aparelhos de televisores lcd, led e
smart, para armazenar o software necessário para o funcionamento do aparelho.

Referências Bibliográficas
Sedra, A; Smith K. Microelectronics Circuits. Editora: OUP USA; Edição: 7, 2015.
TAUB, H. – Circuitos Digitais e Microprocessadores, 1a edição, São Paulo: McGraw-
Hill do Brasil, 1984, 510p.
TOCCI, R.J.; WIDMER, N.S.; MOSS, G. L. Sistemas Digitais: Princípios e Aplicações.
12ª edição, Editora Pearson Prentice Hall, 1056p, 2019.

24

Você também pode gostar