UNIDADE 1
Parte 2
Registradores
Conversores
Memórias

registradores de deslocamento
O Flip-flop é capaz de armazenar um sinal correspondente ao seu estado anterior na saída Q, durante um período em que sua entrada de clock for 0. Se formarmos um circuito digital composto por Flip-flops, poderemos armazenar sinais de acordo com o número de Flip-flops nesse circuito, sendo que para cada Flip-flop no circuito, tem-se um sinal de 1 bit. Logo, um circuito composto por 4 Flip-flops poderá armazenar 4 bits.

Isso permite que, por exemplo, um processador possa “buscar” esses dados (os bits),
quando necessário, pois eles estão armazenados.
O uso de armazenamento permite que seja feita uma operação muito importante que é o deslocamento de bits. Ou seja, um bit passa de um Flip-flop para o outro de acordo com o clock. Com esse funcionamento, o circuito recebe o nome de Registrador de Deslocamento (ou Shift Register, em inglês). Além dessa funcionalidade, tem ainda a possibilidade de atuar como um Conversor Série-Paralelo, sendo que os bits entram em série e saem no modo paralelo. Para que possamos ver o registrador de deslocamento atuando, usamos como exemplo o envio da informação “1010”:
Cada bit é deslocado para o próximo Flip-flop como podemos notar nesse quadro abaixo:

Conversores A/D e D/A
Conversores A/D podem ser construídos com diversas técnicas. Iremos estudar a introdução a alguns circuitos que podem implementar este componente. Os principais são:
CONVERSOR A/D
» Conversor A/D comparador paralelo: é um dos mais rápidos conversores existentes, contudo é o mais caro de ser construído. Isso se dá, pois, este componente necessita de 2N-1 comparadores para um conversor de N bits.
O esquemático a seguir demonstra a construção deste dispositivo.

» Conversor A/D rampa tipo contador: conversor de construção mais simples, em que para um sistema de N bits, o tempo de conversão é de 2N pulsos. O esquemático a seguir demonstra a construção deste dispositivo.

Existem ainda inúmeros conversores tais como por aproximação sucessiva, rampa, rampa dupla tipo integrador etc. O estudo deste conteúdo por si só demandaria mais de 20 horas. Recomenda-se efetuar uma pesquisa sobre o tema caso haja interesse em se aprofundar no assunto.
Conversor D/A
Os denominados conversores D/A são dispositivos que aceitam uma determinada sequência digital em sua entrada e convertem estes valores para uma grandeza analógica que normalmente é dada por uma tensão ou corrente.
» Tipos de Conversores D/A:
Conversores D/A podem ser construídos com diversas técnicas. Iremos estudar a introdução a alguns circuitos que podem implementar este componente. Os principais são:
-
Conversor D/A de resistores com pesos ponderados: é o mais básico dos conversores D/A. Este circuito é construído com uma associação básica de resistores em paralelo controlado por corrente. Esta corrente é somada em um ponto comum que passa por um resistor de carga, formando assim uma saída analógica. Os valores dos resistores são ponderados de tal forma a se obter os pesos corretos de acordo com a codificação binária. O esquemático a seguir demonstra a construção deste dispositivo.

2. Conversor D/A de resistores com pesos ponderados e amp-op: É uma versão mais elaborada com relação a versão básica. Neste modelo de circuito, é possível ajustar a faixa de tensão de saída de maneira mais conveniente.
O esquemático abaixo demonstra a construção deste dispositivo. O esquemático da demonstração da construção
de um conversor d/a de quatro bits de resistores com pesos ponderados com amp-op. o valor da faixa de excursão da saída pode der ajustado pelo resistor rf conforme demonstra equação acima.

Existem ainda inúmeros conversores tais como por R-2R, R-2R com Amp-Op, dentre outros. Recomenda-se efetuar uma pesquisa sobre o tema caso haja interesse em se aprofundar no assunto. Conforme a figura abaixo.

Memórias
As memórias são dispositivos que utilizam mecanismos diversos para armazenar informações, tais como números, letras, caracteres, instruções, endereços, dados etc. Sua utilização ocorre principalmente em computadores em geral e subsistemas computacionais. Não utilizam apenas ou especificamente sistemas digitais, embora aquelas utilizadas em sistemas computacionais sejam, na prática, dispositivos digitais pois as informações armazenadas nesses casos o são em forma binária.
Em função dos diferentes processos relacionados ao seu funcionamento e uso,
as memórias podem apresentar a seguinte classificação:
» Acesso: a informação é acessada através de endereços, que são um conjunto de bits associados às posições de memória. O tempo de acesso de uma memória é o tempo necessário desde a entrada de um endereço até o momento em que a informação apareça na saída. No caso de memórias de leitura/escrita, também é o tempo para a informação ser gravada. É possível ter acesso a uma dada posição de memória de duas maneiras diferentes:
› Sequencial: chegam à posição endereçada, passando por todas as intermediárias. Exemplo: fita magnética.
› Aleatório ou direto: chegam diretamente à posição endereçada. Exemplo: memórias semicondutoras, RAM.
» Volatilidade: as memórias voláteis são aquelas que perdem as informações armazenadas com corte de alimentação. Ex.: memórias semicondutoras baseadas em Flip-Flops., RAM. As memórias não voláteis são aquelas que mesmo sem alimentação, continuam com as informações armazenadas. Exemplos são as memórias magnéticas, óticas e as memórias ROM, PROM e EPROM.
» Escrita/Leitura: exemplos de memória de escrita/leitura são as RAMs
e as de apenas de leitura, as ROMs.
» Armazenamento:
estáticas:
são aquelas em que o dado inserido
permanece armazenado indefinidamente.
Exemplo, armazenamento em flip-flop.
Dinâmicas:
é necessária a reinserção do dado periodicamente
para que ele não se perca.
Ex.: armazenamento em capacitores.
Foi visto que uma memória armazena ou acessa informações, por meio de endereços, em lugares denominados localidades de memórias. Para o acesso a estas localidades, o bloco possui uma série de terminais de entrada de endereços que são ligados a um conjunto de fios denominado barra de endereços (address bus). Para a entrada e saída dos dados, o bloco possui uma série de terminais ligados à barra de dados (data bus). Além disso, o bloco possui terminais de controle ligados à barra de controle (control bus). A figura a seguir esquematiza uma memória eletrônica típica com os barramentos indicados.
A simbologia da figura a seguir mostra que a barra de dados é bidirecional,
isto indica que a memória em questão é do tipo leitura/escrita.
De forma geral, as memórias em termos da quantidade de dados armazenados, são especificadas pela notação N x m, em que a primeira letra indica o número de localidades de memória e a segunda indica o número de bits de informação por localidade. Por exemplo: 256x8; 1Kx16; 128Mx32, ... A designação K (kilo) significa um fator 2^10 = 1024, e a M (mega) significa um fator de 2^20 = 1.048.576.
Por exemplo, a memória 128Mx32 possui 128x1.048.576=134.217.728 localidades com 32 bits em cada uma,
necessitando de 27 terminais para endereçamento.
A palavra de endereço, definida como o conjunto de níveis lógicos necessários para o endereçamento de uma determinada localidade de memória para o acesso ao dado. Para facilitar a escrita da palavra de endereço, bem como a sua utilização em programação, é comum transcrever-se este conjunto de bits para o hexadecimal, principalmente no caso de memórias de alta capacidade (agrupando-se os bits em grupos de 4).



As principais características das memórias ROM são: permitem apenas a leitura do dado armazenado na fabricação; são constituídas estritamente de circuitos combinacionais; empregam gerador de produtos canônicos para seleção; são não voláteis; possuem acesso aleatório (direto) e são memórias estáticas. As figuras a seguir apresentam a configuração que explica o funcionamento básico desse tipo de memória:

As memórias PROM (Programable Ready-Only Memory) trata-se de uma ROM que pode ser programada uma única vez pelo usuário. A conexão entre as linhas de endereços e as de dados é feita por um diodo ou um transistor bipolar em série com um fusível. É fabricada com todos os bits em “0” ou “1” – cada bit pode corresponder a um minúsculo fusível que, uma vez rompido, estabelece um estado contrário ao inicial. A programação é feita por equipamentos apropriados, num tempo relativamente curto (existem muitas conexões para serem programadas manualmente). É não volátil, de acesso direto e de apenas leitura.
Já as memórias EPROM trata-se de uma ROM que pode ser programada e, se necessário, apagada e reprogramada pelo usuário. As conexões entre as linhas de endereço e de dados é feita com transistor MOS (a condução ocorre ou não, conforme haja ou não, respectivamente, carga elétrica na porta – GATE – do transistor). Uma vez armazenado o bit na célula de memória (carga na porta do transistor), ele aí permanece até que se deseje apagá-lo. O apagamento é possível por meio da exposição da EPROM à luz U.V.
– uma foto-corrente descarrega a porta por meio de uma janela de cristal no chip. É do tipo não volátil e de acesso direto.
As memórias RAM possuem as caracteristicas:
» Permitem a leitura e escrita dos dados.
» Possuem acesso aleatório ou randômico. Vem daí o nome (Random
Access Memory).
» São voláteis, pois perdem seus dados armazenados com o desligamento da alimentação. As RAMs não voláteis – magnéticas – utilizadas nos primeiros computadores eram dispendiosas e difíceis de se trabalhar, comparadas à memória semicondutora.
» Possuem um tempo de acesso muito reduzido.
» Quanto ao armazenamento, são estáticas (SRAM) ou dinâmicas (DRAM).
» As SRAM’s estáticas possuem como célula básica de memória o flip-flop.
» As DRAM’s possuem circuitos mais simples, porém, necessitam de re-inserção de dados periódica (refresh), sua célula básica armazena cada dado por efeito capacitivo de cada micro-elemento semicondutor interno, por isto tem a vantagem de alta capacidade de armazenamento por circuito integrado.
Stack (Pilha)
Nos FPGAs, quando utilizados em conjunto com os microcontroladores, possuem o conceito de stack ou pilha,
ou seja, possuem uma área reservada em sua memória para a chamada Stack, ou Pilha.
Essa região na memória armazena dados temporários, como retornos de função e variáveis locais.
A sua estrutura é chamada de memória LIFO (Last In First Out, último que entra é o primeiro a sair), na prática, é como empilhar caixas uma em cima de outra, a última a ser colocada será a primeira a ser retirada.
Para operar a Pilha, tem-se duas operações:
» Empilhamento (Push, empurrar):
é quando o processamento armazena
uma nova informação na pilha.
» Desempilhamento (POP: Pull OPeration, operação de puxar):
é quando o processamento retira uma informação da pilha.