A maior rede de estudos do Brasil

Grátis
30 pág.
Relatório SAP1_FINAL

Pré-visualização | Página 3 de 5

Instruções (que são o código da instrução a ser executada). 
Com estes quatro bits mais os bits gerados pelo contador em anel (que servem para se 
determinar em qual ciclo de instrução estamos), o controlador Seqüencial gera as micro-
instruções necessárias para se executar as macro-instruções. Os sinais de controle 
decodificado pelo Controlador Seqüencial são e suas tarefas são resumidas na tabela 3.5.1. 
 
Sinal Componente Destino O que faz 
CP Contador de Programa Faz contador mudar para o próximo estado. 
EP Contador de Programa Permite a saída do contador ir para o barramento W. 
LM REM Grava os bits vindos do barramento W no registrador interno 
da REM. 
CE’ RAM Sinal de Leitura para a RAM enviar dados para o Barramento W 
LI Registrador de Instrução Faz o Registrador de Instruções gravar os dados vindos do 
barramento W. 
EI Registrador de Instrução Permite que o Registrador de Instruções envie dados para o 
barramento W. 
LA Acumulador Faz o Acumulador gravar os dados vindos do barramento W. 
EA Acumulador Permite que o Acumulador envie dados para o barramento W. 
SU Somador-Subtrator Indica se a operação a ser realizada é Soma (SU baixo) ou 
Subtração (SU alto). 
EU Somador-Subtrator Permite que o Somador-Subtrator envie dados para o 
barramento W. 
LB Registrador B Faz o Registrador B gravar os dados vindos do barramento W. 
LO Registrador de Saída Faz o Registrador de Saída gravar os dados vindos do 
barramento W. 
HLT’ Eliminador de Trepidação Sinal que para a execução do SAP 1. 
Tabela 3.5.1 – Sinais de Controle do Controlador Seqüencial 
 
Relatório SAP-1 Página 11 
 
 Os sinais do Controlador seqüencial são gerados por uma matriz de controle (lógica 
combinatória complexa) que informa quando cada sinal deve ser enviado (vide fig. 3.5.1 - 
Controlador Seqüencial). 
 
 
Fig. 3.5.1 – Esquemático do Controlador Seqüencial 
Relatório SAP-1 Página 12 
 
Simulação: 
 
 A simulação realizada foi gerada pelo software Quartus II© da ALTERA Corporation® 
mostrando os diagramas de forma de onda. A simulação mostra o funcionamento de um 
Controlador Seqüencial para cada uma das 5 instruções disponíveis no SAP 1. LDA, ADD, SUB, 
OUT, HLT. 
 
 A figura abaixo mostra a simulação realizada para LDA (instrução 0000). 
 
 
Fig. 3.5.2 – Diagrama de Simulação do Controlador Seqüencial para a instrução LDA. 
 
 A figura abaixo mostra a simulação realizada para ADD (instrução 0001). 
 
 
Fig. 3.5.3 – Diagrama de Simulação do Controlador Seqüencial para a instrução ADD. 
 
 A figura abaixo mostra a simulação realizada para SUB (instrução 0010). 
 
Relatório SAP-1 Página 13 
 
 
Fig. 3.5.4 – Diagrama de Simulação do Controlador Seqüencial para a instrução SUB. 
 
 A figura abaixo mostra a simulação realizada para OUT (instrução 1110). 
 
 
Fig. 3.5.5 – Diagrama de Simulação do Controlador Seqüencial para a instrução OUT. 
 
 A figura abaixo mostra a simulação realizada para HLT (instrução 1111). 
 
Relatório SAP-1 Página 14 
 
 
Fig. 3.5.6 – Diagrama de Simulação do Controlador Seqüencial para a instrução HLT. 
 
 Observamos que as mudanças ocorrem na borda de subida do clock e que os sinais 
gerados pelo controlador são compatíveis com os necessários para o funcionamento do SAP 1. 
 
3.6- Eliminador de Trepidação: 
 
Este componente tem a principal função de eliminar o ruído dos sinais das chaves 
enviados pelo programador do SAP 1. Sem o eliminador, o SAP provavelmente não seria 
operacionável, pois os sinais teriam muito ruído e impossibilitariam o seu uso (vide fig. 3.6.1 – 
Eliminador de Trepidação). 
 
Este componente também é responsável por gerar o CLK e CLK’ usado pelos demais 
componentes do SAP 1. Entramos com o pulso do relógio, e através de um circuito semelhante 
a um LATCH o Eliminador de Trepidação divide a freqüência e elimina o ruído deste sinal. 
 
Ele também recebe o sinal para Limpar/Iniciar para gerar CLR e CLR’, sinas que limpam 
os componentes para iniciar a execução. Além disso, existe outra chave, a Auto/Manual que 
faz com que seja possível escolher entre o clock fornecido pela entrada clock (provavelmente 
um gerador de freqüência ou um circuito gerador de clock) ou pela chave Etapa Única, um 
clock manual que podemos usar para depurar o funcionamento do SAP 1. 
 
Quando Limpar vai para alto, resetamos os componentes do SAP 1, quando vai para 
baixo, podemos então começar a execução do programa. Auto/Manual em alto usa a entrada 
clock para gerar CLK e CLK’, em baixo, usa o clock manual de etapa única. 
 
 
 
 
Relatório SAP-1 Página 15 
 
 
Fig. 3.6.1 – Esquemático do Eliminador de Trepidação. 
 
3.7- RAM: 
 
A RAM é o circuito que utilizamos para armazenar os dados e as instruções durante a 
fase de programação e de onde retiramos os mesmos dados e instruções durante a fase de 
execução do programa. Em outras palavras, a RAM é a nossa Memória de Dados e Instruções. 
Entretanto, devido as limitações do SAP 1, estas memórias devem ser separadas. Os primeiros 
endereços devem ser utilizamos para instruções (uma vez que o Contador de Programa inicia 
em 0H) e os dados devem estar contidos nos últimos endereços para que não haja confusão 
com alguma instrução. 
 
A implementação original da RAM proposta pelo livro texto da disciplina teve que ser 
abandonada pelo fato de que não dispúnhamos das macro-funções indicadas no software que 
utilizamos. Tivemos então que desenvolver nossa própria RAM. 
 
A RAM pode ser lida nos primeiros ciclos de cada instrução se determinar qual 
instrução será realizada, e ainda pode ser lida outra vez em instruções de ADD, SUB e LDA, 
instruções estas que utilizam dados contidos na RAM para executar determinadas tarefas. 
Além disso, a RAM deve ser escrita durante a fase de programação do SAP 1. 
 
A RAM que projetamos possui 16 palavras de 8 bits cada. Cada uma das palavras é 
representada por um Registrador de 8 bits (vide fig. 3.7.1 – Registrador de 8 bits). 
 
 Este feito com flip-flops do tipo D tem suas saídas ligadas em tri-states, que permitem 
ou não a saída do dado. Além disso, temos a entrada dos dados de cada um dos bits, um clk e 
uma chave de Enable que permite ou não a gravação dos flip-flops. 
 
Relatório SAP-1 Página 16 
 
 
Fig. 3.7.1 – Esquemático do Registrador de 8 bits. 
 
 Para selecionarmos em qual dos endereços da memória vamos Ler ou Escrever, 
enviamos os dados que vem da REM (que contém o endereço onde vamos efetuar as 
operações) para dois decodificadores. Um deles é o Decodificador de Escrita, que quando 
temos o sinal Escrita’ baixo, envia o sinal de Enable’ baixo para o registrador a ser escrito. 
Todos os registradores recebem os dados a serem escritos, porém, somente o endereço 
decodificado por esse decodificador é que têm Enable’ em baixo para permitir a gravação (vide 
fig. 3.7.2 – Decodificador de Escrita). 
Fig. 3.7.2 – Esquemático Simplificado do Decodificador de Escrita. Note que as demais saídas 
do decodificador de escrita e os dados vão para os demais registradores não mostrados nesta 
figura. 
Relatório SAP-1 Página 17 
 
 De forma análoga, utilizamos outro decodificador para sabermos qual registrador 
devemos Ler. O Decodificador de Leitura também recebe e decodifica o sinal da REM, 
enviando um EnableSaida’ baixo somente para o endereço decodificado quando tivermos um 
Leitura’ baixo. Os demais registradores recebem EnableSaida’ alto, fazendo com que suas 
saídas sejam alta-impedância, enquanto o que recebeu o sinal envia os seus dados. As saídas 
de cada um dos registradores para um dos bits é ligada em curto, e seu sinal é a saída da RAM 
(vide fig. 3.7.3 – Decodificador de Leitura). 
 
 
Fig. 3.7.3 – Esquemático Simplificado do Decodificador de Leitura. Note que as demais saídas