Académique Documents
Professionnel Documents
Culture Documents
Circuitos Lógicos
Projeto Final
Luis Filipe Garcia Barbosa RA:221079
Projeto Final
• O objetivo Principal do projeto, seria desenvolver a arquitetura de um
microprocessador de 5 bits, com instruções de 8 bits, utilizando 21
funções diferentes que seriam possíveis de ser realizadas. Utilizamos
uma RAM como memória de trabalho, e deveriam ser desenvolvidos
programas para testar todas as funções implementadas,
assemelhando – se a um real microprocessador.
Projeto Final - ROM
• Como primeiro passo, implementamos uma memória ROM de 32
posições, com 8 bits cada. Esse módulo, seria o responsável por
armazenar as instruções necessárias para realização de cada
programa, e funcionaria como base para que os mesmos
funcionassem corretamente, repassando as informações necessárias.
• Para implementação deste módulo, foi necessário que
construíssemos:
1. Decodificador de linha 5 – 25
• Assim, como no projeto 5, implementamos a ROM, utilizando Tri –
states, fazendo com que estes selecionassem as instruções que iriam
ser repassadas pelo módulo, sequencialmente, devido ao
decodificador de linha.
Projeto Final
• Para construção do módulo Decodificador 5 – 25, primeiramente
utilizamos a tabela de representação binária de 5 bits, que para as 3
entradas, in[2..0] por exemplo, selecionariam as 32 saídas
sequencialmente, ativando cada instrução fornecida pelo Tri – states
de maneira ordenada, sendo Out 0, Out 1, ..., até Out 31.
Projeto Final
• A tabela de representação binária em 5 bits:
Projeto Final
• A partir disso construímos o módulo decodificador de linha de 5 bits,
chamado de demux 32. O circuito pode ser encontrado em Projeto
final/ROM. Além disso, uma entrada Enable foi adicionada ao
módulo, fazendo com que estivesse habilitado somente quando
Enable = 1.
• Agora, foi implementado o circuito de Tri – States, com 8 bits de
instrução, onde a entrada que habilita de cada um, era determinada
pelo decodificador de linha, que os ativaria sequencialmente, de
acordo com cada programa.
Projeto Final
• Assim, para realizar uma simulação, programamos as ROM’s da
seguinte maneira:
Projeto Final
• Assim, com o módulo ROM32 pronto, obtivemos a simulação para a
memória ROM:
Projeto Final
• A partir do mesmo raciocínio para construção da Memória ROM, foi
construído um banco de memórias ROM, Utilizando um decodificador
de linha 23, que podiam ser inseridas 8 ROM’s devidamente
programadas, para seleção.
• Foram adicionadas uma entrada seletora de 3 bits, que poderiam ser
controladas pelo usuário, além de entrada de endereços da ROM, que
eram controladas sequencialmente pelo Contador de programa.
Projeto Final
• O circuito pode ser visualizado em Projeto Final\Circuito Final\
Banco_rom.
Projeto Final - RAM
• Em nosso microprocessador, utilizamos uma Memória RAM de 32
posições de 5 bits como memória de trabalho.
• Nesse caso, nossa memória deveria possibilitar a leitura do que
estaria registrado nela em certo momento, e também dependendo
das funções, deveria possibilitar que escrevêssemos determinadas
informações em seu conteúdo.
• Para construí – lá, utilizamos tanto de módulos de registradores de 5
bits, e também módulos Tri – State de 5 bits, para as funções de
escritura e leitura, respectivamente.
Projeto Final - RAM
• Primeiro, reaproveitamos o módulo registrador, construído no
experimento 4, utilizando Flip – Flops D, para que registrassem tudo
aquilo que fosse inserido naquele momento em sua entrada D, à cada
pulso de clock.
• Seguindo a tabela:
Projeto Final - RAM
• Porém, foi criada uma entrada enable, que habilitaria o
funcionamento do registrador. Nos momentos que a entrada
estivesse desativada, o registrador permaneceria como no estado
anterior:
Projeto Final - RAM
• Com ajuda de um software que realizou as simplificações de
karnaugh, obtemos a expressão lógica:
Q’ = E.D + E’.Q
• E o circuito montado :
Projeto Final - RAM
• A forma de onda para o Reg 5 bits:
Projeto Final - RAM
• Agora construímos o módulo Tri – State de 5 bits, para permitir a
leitura do conteúdo armazenado em cada posição da memória, assim
a tabela que demonstra o funcionamento: