Montando o circuito da memória (RAM)

De volta!

Fala pessoal, tudo beleza? Como vocês estão? Espero que muito bem!

Nosso projeto do computador de 8 bits tem avançado bem! Confesso que é muito cansativo, pois eu trabalho o dia inteiro e só tenho parte da noite para montar e estudar os circuitos (Isso porquê estou de férias da faculdade. Caso contrário, só teria tempo aos finais de semana e olhe lá...).

Com isso, pode ser que alguma parte demore mais para sair (apesar de que, com a experiência que ganhei montando a ULA, o resto acho que tiro de letra... rs).

Pois bem, deixando o papo de lado, é chegada a hora de montar o circuito da memória RAM!

Esse circuito é responsável por armazenar conteúdos de 8 bits e a memória de programa (os OPCODES e os OPERANDOS de cada uma das instruções que desenvolveremos para nosso computador). Ou seja, esta memória armazenará dados e programas! Bacana, não? :D

A RAM que utilizamos é do tipo estática (formada por flip-flops). Existe um outro tipo de memória RAM chamada de dinâmica que é formada por capacitores. Entretanto, trabalhar com esse tipo de memória, requer que seja desenvolvido um circuito de refresh para, de tempos em tempos, renovar a carga dos capacitores afim de que eles não percam seu "conteúdo" (imagine o capacitor carregado como o nível lógico 1 - HIGH - ALTO e, descarregado, como nível lógico 0 - LOW - BAIXO).

Para este circuito, estamos utilizando mais um integrado da nossa querida família 74LS: o 74LS189 (random access memory com saídas tri-state).

Esse integrado é uma memória RAM com 64 bits. Cada um deles é capaz de armazenar 8 bytes (a informação é organizada internamente numa matriz de 16 posições de 4 bits cada). Como teremos 16 posições de 8 bits cada, utilizaremos 2 x 74LS189: um para o nibble mais significativo do byte e outro para o nibble menos significativo. Para controlar os dois CIs, os pinos de seleção de endereço de ambos estarão interconectados. Em resumo, funciona assim: como os pinos de endereços estarão interconectados, ao se enviar um sinal com um endereço de memória, este endereço será selecionado em ambos os CIs. Ao sinal de escrita (WE - Write Enable), um dos integrados recebe o nibble mais significativo da informação, enquanto o outro recebe o nibble menos significativo. Deu para sacar?

Como eu disse, os endereços de memória serão habilitados para leitura/escrita através de um pino de seleção chamado Write Enable (WE - ativo em LOW). Para controlar este sinal, faremos uso de um circuito combinacional formado por portas NAND que será tratado na montagem da próxima etapa do nosso computador: o circuito da MAR - Memory Address Register (registrador de endereço de memória). Por isso, não deixe de nos acompanhar! ;)

Uma característica do integrado 189 é que ele tem suas saídas invertidas em relação ao dado que recebe na entrada ou o que tem armazenado. Para resolvermos esse pequeno "problema", utilizamos integrados 74LS04 (6 buffer inversores - Hex Inverting Gates). Ligaremos cada um dos 8 pinos da nossa memória RAM (4 de cada um dos integrados) em 8 buffers inversores. ou seja, utilizaremos mais 2 x 74LS04.

E, para fazer a comunicação com o BUS, como sempre, utilizamos o 74LS245 (transceptor de barramento de oito bits, tri-state).

Como eu sempre digo: caso tenham alguma dúvida sobre o funcionamento destes integrados, leiam os datasheets. Os datasheets são o pote de ouro de todo projetista de circuitos eletrônicos! Eles nos dão todas as informações necessárias, detalhadas, sobre o funcionamento do circuito. E, além disso, quase todos eles apresentam exemplos de utilização que são uma verdadeira aula. Vale muito a pena!

Abaixo vou deixar uma foto do circuito da memória RAM e uma vista geral de como está o computador. 

Dá vontade de ficar olhando para ele o dia inteiro! Lindo! Rs

Por hoje é só. Abraços e até a próxima!

Edit 1: fiz algumas correções no texto com a ajuda do nosso amigo DQ (Daniel Quadros). Caso você queria dar um up em seu conhecimento sobre eletrônica, música, literatura, entre outras coisas, indico a leitura do blog dele em http://dqsoft.blogspot.com.
Obrigado DQ! ;)

Este é o circuito da memória RAM. Os LEDs são para exibir o conteúdo do endereço selecionado (muito útil para quando estivermos debugando algum software ;)

Esta é uma vista geral do computador. Olha o tamanho que ele já está! :D

Comentários

Postagens mais visitadas