Anda di halaman 1dari 50

UNIVERSIDADE FEDERAL DE SO CARLOS

CENTRO DE CINCIAS EXATAS E DE TECNOLOGIA


DEPARTAMENTO DE COMPUTAO

Relatrio 02
MICROPROCESSADOR SAP-1

LABORATRIO DE ARQUITETURA E ORGANIZAO DE COMPUTADORES


Professor Edlson Reis Rodrigues Kato

BCC 2007

Carlos Eduardo Barbosa 298565


Csar Roberto de Souza 298603
Paulo Eduardo Papotti 298425

Junho 2008
ndice Analtico
1. OBJETIVOS................................................................................. 3

2. INTRODUO TERICA............................................................ 4
A. MICROPROCESSADORES ...............................................................................4
B. MICROPROCESSADOR SIMPLES QUANTO POSSVEL ......................................5
i. Viso geral..............................................................................................5
ii. Caractersticas........................................................................................6
iii. Conjunto de Instrues...........................................................................7
iv. Layout.....................................................................................................8
C. PLATAFORMAS DE DESENVOLVIMENTO ...........................................................9
i. Altera FLEX 10K (FPGA)........................................................................9
ii. Altera Quartus II Web Edition ...............................................................10

3. MATERIAL UTILIZADO............................................................. 11

4. MONTAGEM DOS BLOCOS..................................................... 12


A. BLOCO 01 CONTADOR DE PROGRAMA .......................................................13
B. BLOCO 02 REGISTRADOR DE ENDEREOS DE MEMRIA .............................16
C. BLOCO 03 MEMRIA ................................................................................18
D. BLOCO 04 REGISTRADOR DE INSTRUES .................................................22
E. BLOCO 05 CONTROLADOR-SEQENCIALIZADOR .........................................25
F. BLOCO 06 ACUMULADOR ..........................................................................28
G. BLOCO 07 SOMADOR-SUBTRATOR ............................................................30
H. BLOCO 08 REGISTRADOR B......................................................................32
I. BLOCO 09 REGISTRADOR DE SADA...........................................................34
J. BLOCO 10 INDICADOR VISUAL EM HEXADECIMAL (DISPLAY).........................35

5. MONTAGEM DO SAP-1 ............................................................ 38


A. ESQUEMTICO ............................................................................................38
B. PROGRAMAO ..........................................................................................40
C. SIMULAO ................................................................................................42
D. OBSERVAES ...........................................................................................46

6. CONCLUSO ............................................................................ 47
7. REFERNCIAS BIBLIOGRFICAS.......................................... 48
8. LISTAGEM DE TABELAS E FIGURAS .................................... 49

Universidade Federal de So Carlos 2


Laboratrio de Arquitetura e Organizao de Computadores I
1. Objetivos

Neste segundo e ltimo relatrio da disciplina de Laboratrio de Arquitetura


e Organizao de Computadores implementaremos o microprocessador
SAP-1 (Simple-As-Possible) utilizando todos conceitos adquiridos durante o
andamento da disciplina e as ferramentas ns disponibilizadas pelo
laboratrio. O SAP-1 uma criao dos autores do livro Digital Computer
Electronics, Albert Paul Malvino e Jerald Brown, como uma maneira de
apresentar o funcionamento interno de um microprocessador a partir de um
modelo didtico simples, mas funcional.

A construo do microprocessador se dar por partes, iniciando sua


construo a partir de seus blocos bsicos, como memria, unidade
aritmtica, acumuladores e registradores, prosseguindo para a montagem e
teste finais assim que todos os blocos estiverem totalmente prontos e
testados.

Seguindo os passos fornecidos no livro-texto de Malvino, e contando com a


vantagem de podermos utilizar a plataforma Altera Quartus II para montar e
testar nosso projeto, imaginamos que este ser um processo bastante
simples e direto.

Universidade Federal de So Carlos 3


Laboratrio de Arquitetura e Organizao de Computadores I
2. Introduo Terica

a. Microprocessadores
O microprocessador um circuito integrado para controle
das funes aritmticas e de tomadas de decises em um
computador. Todo computador precisa de um
processador, sendo considerado o crebro do mesmo.
Ele o principal elemento que compe a Unidade Central
de Processamento (CPU - Central Processing Unit).

Processadores trabalham apenas com linguagem de mquina (instrues


binrias), podendo realizar diversas tarefas. Tais tarefas consistem em
operaes matemticas e lgicas, alm de operaes de busca, leitura e
gravao de dados. Uma vez que haja informaes na memria, o
processador pode executar programas e processar dados ali contidos.

Universidade Federal de So Carlos 4


Laboratrio de Arquitetura e Organizao de Computadores I
b. Microprocessador Simples Quanto Possvel

i. Viso geral

O microprocessador SAP (da expresso na lngua inglesa: Simple-As-


Possible Simples quanto possvel) um processador projetado
especificamente para propsito acadmico e no tem nenhum valor
comercial (exceto pelo valor intelectual). Possui uma arquitetura de 8-bits
e contm uma memria 16x8, ou seja, 16 posies de memria capaz de
armazenar 8 bits cada. Assim, so necessrias somente 4 linhas de
endereamento provenientes de seu contador de programa (em sua fase
de funcionamento) ou de suas linhas de programao manuais, utilizadas
para insero de dados e programas em sua memria (em sua fase de
programao).

Todas suas instrues (somente 5) so armazenadas nesta memria,


juntamente com os dados. notvel, portanto, que o SAP no consegue
armazenar um programa que contenha mais do que 16 instrues. O
microprocessador SAP consegue apenas realizar operaes de adio e
subtrao e nenhum tipo de operao lgica. Tais operaes so
realizadas por uma unidade aritmtica somadora-subtratora de 8 bits. H
um registrador de propsito geral (Registrador B) utilizado para
armazenar um operando de operao aritmtica enquanto o outro
armazenado pelo registrador acumulador. Em adio, no desenho original
existem 8 LEDs como unidade de sada conectados seu registrador de
sada. Toda atividade e movimento de dados so coordenados pelo
controlador/seqencializador do SAP-1.

Universidade Federal de So Carlos 5


Laboratrio de Arquitetura e Organizao de Computadores I
ii. Caractersticas

O microprocessador SAP-1 original caracterizado por possuir:

 Um dispositivo de sada (8 LEDs);


 Memria de 16 bytes, somente para leitura;
 Apenas 5 Instrues;
o 3 com 1 operando;
o 2 com operadores implcitos;

 Arquitetura de Acumulador:
o Acumulador;
o Registrador de Sada;
o Registrador B;
o Registrador de Endereos de Memria;
o Registrador de Instruo;

 Barramento W de 8-bits;
 Contador de programa de 4-bits somente crescente;
 Registrador de Endereos de Memria de 4-bits;
 Memria 16x8-bits;
 Registrador de instrues de 8-bits;
 Controlador de 6 ciclos com palavra de microinstruo de 12-bits;
 Acumulador de 8-bits;
 Registrador B de 8-bits;
 Somador-subtrator de 8-bits;
 Registrador de sada de 8-bits;

Universidade Federal de So Carlos 6


Laboratrio de Arquitetura e Organizao de Computadores I
iii. Conjunto de Instrues

O conjunto de instrues do SAP-1 bastante simples. Com apenas 5


instrues, sendo duas aritmticas, duas de deslocamento de dados e
uma de parada, no h instruo de comparao lgica, instrues de
branch ou de jump. Assim, torna-se bem fcil entender o funcionamento
bsico de um processador sem se aprofundar demasiadamente em
detalhes que, apesar de importantes, ofuscariam o real objetivo deste
modelo que justamente a compreenso da estrutura fundamentalmente
bsica na concepo de um computador.

Assim, o quadro de instrues apresentado a seguir, seguido de seus


op-codes, ou seja, as palavras binrias que podem ser armazenadas em
memria para denotar uma instruo especfica.

Mnemnicos Operao Cdigo Op


LDA Carrega os dados da RAM no acumulador 0000
ADD Soma os dados da RAM com o acumulador 0001
SUB Subtrai os dados da RAM do acumulador 0010
OUT Carrega os dados do acumulador no registrador de sada 1110
HLT Para o processamento 1111

Table 1: Tabela de mnemnicos e de instrues para o microprocessador SAP-1.

Universidade Federal de So Carlos 7


Laboratrio de Arquitetura e Organizao de Computadores I
iv. Layout

O SAP-1 organizado em blocos, todos se comunicando entre si por um


barramento central denominado W.

Figure 2.1: Diagrama representativo para o Microprocessador SAP-1.

Universidade Federal de So Carlos 8


Laboratrio de Arquitetura e Organizao de Computadores I
c. Plataformas de Desenvolvimento

i. Altera FLEX 10K (FPGA)

A famlia Altera FLEX 10K de dispositivos embarcados de lgica


programvel prov a flexibilidade da lgica programvel tradicional com a
eficincia e densidade de gate arrays embarcados. Com sua
implementao de estrutura lgica dupla a array embarcada e a array
lgica a famlia FLEX10K trouxe a lgica programvel ao principal
mercado de gate arrays.

Figure 2.2: Diagrama esquemtico representativo do Altera FLEX10K.

Universidade Federal de So Carlos 9


Laboratrio de Arquitetura e Organizao de Computadores I
ii. Altera Quartus II Web Edition

O Altera Quartus II um software destinado ao


desenho e programao de dispositivos lgicos
programveis, contando com uma implementao das linguagens VHDL,
AHDL e Verilog para descrio de hardware, bem como uma
representao simblica (diagrama esquemtico) de relativo fcil uso,
permitindo a edio visual e simulao de circuitos lgicos.

Figure 2.3: Ambiente de desenvolvimento Altera Quartus II Web Edition v7.2.

Universidade Federal de So Carlos 10


Laboratrio de Arquitetura e Organizao de Computadores I
3. Material Utilizado
Altera Quartus II Web Edition v7.2
Dispositivo programador para circuitos lgicos Altera
Altera FLEX 10K
Porta paralela

Universidade Federal de So Carlos 11


Laboratrio de Arquitetura e Organizao de Computadores I
4. Montagem dos Blocos
Os blocos a seguir foram implementados utilizando a plataforma de
desenvolvimento Altera Quartus II, um dispositivo programador uma placa
de testes acoplados numa mesma placa de circuito impresso Tal placa
conta com diversos dispositivos de entrada (pushbuttons, chaves DIP,
comunicao digital) e de sada (LEDs, displays, serial), podendo
programar tanto chips removveis, como o MAX7000S, quanto um chip
fixo, o tal como o FLEX10K, que o que utilizaremos em todos os blocos
seguintes neste relatrio.

Como conveno, utilizaremos, durante todo o relatrio, a letra n


procedendo uma entrada, sada ou sinal lgico para indicar que tal sinal
est negado. Assim, nCLR ser equivalente CLR. Os nveis lgicos
tambm sero indicados por HIGH e LOW para verdadeiro e falso, ou 1 e
0, respectivamente.

Universidade Federal de So Carlos 12


Laboratrio de Arquitetura e Organizao de Computadores I
a. Bloco 01 Contador de Programa
No microprocessador SAP-1, os programas so armazenados em memria
de maneira seqencial, sendo a primeira instruo armazenada na posio
0000, a segunda em 0001 e assim por diante. Assim, para caminhar pela
memria faz-se necessrio um dispositivo capaz de contar de 0000 at 1111,
percorrendo todas as instrues que possam estar ali armazenadas.

Antes de cada processamento do computador, o contador de programa


resetado (voltando ao seu estado inicial, 0000), e assim a primeira instruo
lida. Ao final do ciclo de busca e execuo desta instruo, o contador
ento acrescido de 1; e passa a contar 0001, apontando, portanto, para a
prxima instruo.

Para construirmos o bloco contador de programa no software Altera Quartus


II, utilizamos 4 flip-flops JK oriundos do circuito integrado 74107 conforme
apresentado no livro-texto de Malvino. Notamos, no entanto, que estes
poderiam ser substitudos por flip-flops do tipo T j que a organizao
externa utilizada (alimentando J e K com a mesma entrada) nada mais do
que a simplificao utilizada pelo tipo T. Lembramos ainda que, como o
bloco se comunicar com o barramento W, este dever ter sua sada em tri-
state, afim de no perturbar o fluxo de dados enquanto sua sada for
desnecessria.

Universidade Federal de So Carlos 13


Laboratrio de Arquitetura e Organizao de Computadores I
A seguir, apresentamos o diagrama esquemtico para o bloco contador de
programa do microprocessador SAP-1 desenvolvido no software Quartus II.

Figure 4.1: Diagrama esquemtico do bloco Contador de Programa do SAP-1.

Como podemos observar, as entradas Cp e Ep so responsveis,


respectivamente, por acrescentar o contador no prximo ciclo de clock e por
habilitar suas sadas, comunicando-se com o barramento. O
restabelecimento do estado inicial (reset) ajustado pela entrada nCLR.

Universidade Federal de So Carlos 14


Laboratrio de Arquitetura e Organizao de Computadores I
A seguir, apresentamos a simulao do bloco, operando como esperado:

Figure 4.2: Diagrama de ondas (simulao) do bloco Contador de Programa.

Novamente, como podemos ver, a contagem em binrio ocorre sempre que


Cp est em HIGH e o ciclo de clock completado. Sempre que a entrada Ep
estiver em LOW, as sadas entram no terceiro estado (de alta impedncia).
Vale ressaltar, ainda, que a desabilitao das sadas no interfere na
contagem interna, que continua normalmente. Observando, podemos
tambm confirmar que, quando Cp est em LOW o contador no
adicionado, mas suas sadas se mantm constantes no ltimo valor
armazenado.

Universidade Federal de So Carlos 15


Laboratrio de Arquitetura e Organizao de Computadores I
b. Bloco 02 Registrador de Endereos de Memria
Aps implementar e testar o contador de programa, iniciamos a construo
do bloco registrador de endereos de memria (REM). Tal bloco
responsvel por armazenar o endereo de memria apontado pelo contador
de programa ou pela instruo aritmtica sendo executada. No prximo ciclo
de clock, o REM aplica este endereo de 4 bits RAM, onde uma operao
de leitura ser realizada.

Figure 4.3: Diagrama esquemtico do Registrador de Endereo de Memria (REM).

No esquemtico acima, os 4 bits de endereo de memria (A0, A1, A2, A3)


so armazenados no registrador sempre que suas entradas estiverem
habilitadas, ou seja, sempre que nG1, nG2 estiverem em LOW, o que
controlado pela entrada nLM (Load Memory). As sadas do Registrador
de Endereos de Memria esto sempre habilitadas, j que no se
comunicam com o barramento e no necessitam entrar no terceiro
estado. Assim, podemos com segurana fixar nM e nN, que controlam a
habilitao da sada, em GND.

Universidade Federal de So Carlos 16


Laboratrio de Arquitetura e Organizao de Computadores I
Finalizando a montagem, partimos para a simulao do bloco, que fora
efetuada com sucesso.

Figure 4.4: Diagrama de ondas (simulao) do Registrador de Endereo de Memria (REM).

No diagrama de ondas acima apresentado, vemos que o Registrador de


Endereos de Memria armazena corretamente a informao contida em A3,
A2, A1, A0 sempre que nLM est em LOW, e a mantm sempre nLM esteja
em HIGH, no importando o que esteja passando em suas entradas.

Universidade Federal de So Carlos 17


Laboratrio de Arquitetura e Organizao de Computadores I
c. Bloco 03 Memria
O bloco de memria uma RAM TTL esttica de 16x8 (o que significa que
possvel armazenar 8 bits em cada uma das 16 posies de memria).

Durante um processamento do computador, a RAM recebe endereos de 4


bits fornecidos pelo Registrador de Endereos de Memria e no prximo
ciclo de clock executada uma operao de leitura. Assim, a instruo ou
palavra de dados armazenadas na posio determinada deve ser colocada
no barramento W para uso pelos outros componentes do computador.

Figure 4.5: Detalhamento de um dos 16 componentes memria de 8 bits presentes no


bloco de memria de 16x8 bits.

No esquemtico acima apresentado, para lermos um valor deste


componente de memria, devemos fornecer LOW a entrada Ce00, HIGH a
entrada Write00, e aguardarmos a descida do clock (a lgica est invertida).
Para escrevermos, basta repetir o processo, mas invertendo Write00 e
fornecendo algum dado s entradas D7, D6, D5, D4, D3, D2, D1 e D0.

Universidade Federal de So Carlos 18


Laboratrio de Arquitetura e Organizao de Computadores I
Assim, notamos que para criar o bloco de memria com 16 componentes
basta utilizarmos dois multiplexadores (4 para 16) que, fornecidos o
endereo de 4 bits A3A2A1A0, ativar corretamente componente escolhido
para operaes de leitura ou escrita.

Figure 4.6: Viso parcial do bloco de Memria (16x8) para o microprocessador SAP-1.

No diagrama acima as conexes esto simplificadas para evitar o sobrecarregamento da imagem, dificultando seu
entendimento. O software Altera Quartus II suporta e interpreta corretamente este tipo de implcito de conexo.

Universidade Federal de So Carlos 19


Laboratrio de Arquitetura e Organizao de Computadores I
Figure 4.7: Viso geral do bloco de memria, exibindo a
composio de suas 16 memrias de 8 bits.

Universidade Federal de So Carlos 20


Laboratrio de Arquitetura e Organizao de Computadores I
Aps construir a memria, prosseguimos com sua simulao. Em nosso
teste, decidimos armazenar alguns valores aleatrios nas posies 0000 e
0001, carregando-as posteriormente, intercaladamente.

Figure 4.8: Diagrama de ondas (simulao) do bloco de Memria do Sap-1.

Como podemos observar, a memria fora escrita sempre que nWrite e o


sinal de clock permaneceram em LOW. Invertendo nWrite, vemos que a
sada fornecida ainda representa o valor armazenado na primeira escrita. A
seguir, trocando a posio para 0001 e armazenando outro valor qualquer
nos fornece o mesmo resultado, mesmo que tenhamos lido a posio 0000
novamente entre a operao de escrita e leitura da posio 0001. Com isso,
verificamos a independncia dos componentes da memria.

Como nCE permaneceu ativo durante a maior parte do tempo da simulao,


pudemos verificar o que estava sendo armazenado em memria a cada
passo. No final da simulao, setamos nCE em HIGH e verificamos que a
memria entra no terceiro estado, no prejudicando o funcionamento do
barramento, ocorrendo o mesmo quando o sinal de clock est em HIGH.

Universidade Federal de So Carlos 21


Laboratrio de Arquitetura e Organizao de Computadores I
d. Bloco 04 Registrador de Instrues

O registrador de instruo a parte da CPU que armazena a instruo que


atualmente est sendo executada. Nos processadores simples, cada
instruo para ser executada carregada no registrador de instruo, e
permanece enquanto a instruo decodificada. Este processo pode levar
diversos passos. J nos processadores mais complexos, usa-se o conceito
de pipeline, podendo executar mais de uma instruo no mesmo ciclo de
processamento.

No SAP-1, quando preciso buscar uma determinada instruo, preciso


que acontea uma operao de leitura de memria, para que seja colocado
no registrador de instrues o endereo da instruo a ser executada. Desta
forma, o processador realiza uma operao de leitura de memria e coloca o
contedo buscado no barramento W. Ao mesmo tempo, o registrador de
instrues preparado para carregamento na prxima transio positiva de
clock.

Universidade Federal de So Carlos 22


Laboratrio de Arquitetura e Organizao de Computadores I
Para implementar o bloco Registrador de Instrues, so necessrios dois
flip-flops do tipo D para armazenarem a informao inserida atravs das
entradas A7, A6, A5, A4, A3, A2, A1 e A0.

Figure 4.9: Diagrama esquemtico do bloco Registrador de Instrues do Sap-1.

O contedo do registrador de instrues dividido em dois meios-bytes,


denominados nibbles. O nibble superior, indicado pelas sadas I7I6I5I4 uma
sada de dois estados que vai diretamente ao bloco Controlador-
Seqencializador. J o nibble inferior uma sada de trs estados conectada
ao barramento W, indicada por S3S2S1S0 e habilitada somente quando
necessrio.

Universidade Federal de So Carlos 23


Laboratrio de Arquitetura e Organizao de Computadores I
Como a sada do nibble superior possui apenas dois estados, podemos com
segurana aterrar as entradas nM e nN do registrador da parte inferior do
diagrama em GND, deixando sua sada sempre habilitada. J para o outro
registrador, conectamos sua entrada entrada nEi do bloco. O
carregamento de ambos registradores ocorrer atravs da ativao da
entrada nLi, conectada nG1 e nG2 dos dois circuitos.

Uma vez finalizado, prosseguimos com a simulao do bloco registrador de


instrues.

Figure 4.10: Diagrama de ondas (simulao) do Registrador de Iinstrues.

Para efetuar sua simulao, armazenamos valores aleatrios no registrador


e verificamos sempre suas sadas. Como vemos, a informao
armazenada somente se nLi est LOW, e caso esteja em HIGH, sua
informao mantida. Ao ligarmos nEi, vemos que somente as sadas
direcionadas ao barramento (S3S2S1S0) entram no terceiro estado, conforme
o esperado.

Universidade Federal de So Carlos 24


Laboratrio de Arquitetura e Organizao de Computadores I
e. Bloco 05 Controlador-Seqencializador
Para operar corretamente, o microprocessador precisa sincronizar toda ao
que est fazendo. Para gerenciar esta sincronizao, existe um bloco
denominado Controlador-Seqencializador responsvel por interpretar as
instrues e gerar os sinais de controle apropriado a cada unidade que
forma nossa CPU.

Assim, os 12 bits que vm para fora do Controlador-Seqencializador


formam uma palavra que controla o resto do computador (como um
supervisor que diz aos outros o que fazer). Os 12 fios que transportam a
palavra de controle so chamados barramento de controle.

A palavra de controle tem o formato de

Esta palavra determina como os registradores reagiro prxima transio


positiva de relgio (CLK). Por exemplo, um Ep em HIGH e um nLm em
LOW significam que o contedo do contador de programa ser retido no
Registrador de Endereos de Memria na prxima transio positiva de
relgio. Subseqentemente, um LOW nCE e um LOW nLa significam que a
palavra da RAM cujo endereo est armazenado no Registrador de
Endereos de Memria ser transferida para o acumulador na prxima
transio positiva de clock.

Universidade Federal de So Carlos 25


Laboratrio de Arquitetura e Organizao de Computadores I
Para implementarmos o bloco Controlador-Seqencializador, necessitamos
de um contador em anel e uma matriz de controle. O contador em anel se
faz necessrio, pois cada instruo lida deve efetuar um nmero finito de
passagens seqenciais sincronizadas. No caso do SAP-1, o mximo de
passos que uma de suas instrues pode realizar so apenas seis, logo
precisamos de um contador em anel de apenas 6 passos.

Figure 4.11: Diagrama esquemtico para o bloco Controlador-Seqencializador.

Como vemos, o controlador-seqencializador nada mais do que uma


mquina de estados dependente da instruo e do sinal de clock
fornecidos. Cada estado determina uma palavra de controle enviada
atravs das 12 sadas existentes neste bloco.

Universidade Federal de So Carlos 26


Laboratrio de Arquitetura e Organizao de Computadores I
Uma vez implementado, iniciamos sua simulao fornecendo opcodes
(instrues) e observando as sadas geradas a cada ciclo de execuo.

Figure 4.12: Diagrama de ondas (simulao) do bloco Controlador-Seqencializador.

Como podemos observar, fornecendo as instrues LDA (0000), ADD


(0001), SUB (0010), OUT (1110) e HLT (1111) o Controlador-
Seqencializador se comporta exatamente como previsto, originando os
sinais necessrios tal como descrito por Malvino.

Figure 4.13: Diagrama de temporizao esperado Figure 4.14: Diagrama de temporizao esperado
de busca e execuo da instruo LDA. de busca e execuo da instruo ADD.

Universidade Federal de So Carlos 27


Laboratrio de Arquitetura e Organizao de Computadores I
f. Bloco 06 Acumulador

O Acumulador (A) um registrador de memria intermediria que armazena


respostas intermedirias durante um processamento no computador. O
acumulador tem duas sadas. A sada de dois estados vai diretamente ao
somador-subtrator. A sada de trs estados vai ao barramento W. Portanto,
a palavra do acumulador de 8 bits continuamente comanda o somador-
subtrator; e esta mesma palavra tambm aparece no barramento W quando
Ea est em HIGH.

Figure 4.15: Diagrama esquemtico para o bloco Acumulador do Microprocessador SAP-1.

Para implementarmos a sada tri-state, utilizamos um CI 74244 que nada


mais do que um circuito composto de 8 tri-state buffers que serve ao
nosso propsito de maneira bastante adequada. Contudo, como suas
entradas de habilitao n1G e n2G so barradas, tivemos de acrescentar
uma porta lgica NOT linha ENABLE a fim de manter compatibilidade
com o restante de nosso esquema.

Universidade Federal de So Carlos 28


Laboratrio de Arquitetura e Organizao de Computadores I
Uma vez montado, iniciamos a simulao de nosso circuito que nada
mais do que um registrador com sada dupla, uma com trs estados e
outra com apenas dois que refletem sempre a mesma palavra.

Figure 4.16: Diagrama de ondas (simulao) do bloco Acumulador do SAP-1.

Como vemos, nosso acumulador registrou adequadamente os dados que


lhe foram passados, desabilitando a sada tri-state sempre que ENABLE
estiver em LOW. O circuito armazena as informaes somente se nLOAD
tambm estiver em LOW, retendo as informaes caso contrrio.

Universidade Federal de So Carlos 29


Laboratrio de Arquitetura e Organizao de Computadores I
g. Bloco 07 Somador-Subtrator

O SAP-1 utiliza um somador-subtrator completo de 8 bits de complemento


de 2. Quando Su estiver em LOW, a soma fora do somador-subtrator ser:

S = A + B

E quando Su estiver em HIGH, aparecer a diferena:

S = A + B

O somador-subtrator assncrono (no-sincronizado); isto significa que seu


contedo pode variar assim que as palavras de entrada variem. Quando Eu
for alto, estes contedos aparecero no barramento W.

Figure 4.17: Diagrama esquemtica do bloco Somador-Subtrator do SAP-1.

Universidade Federal de So Carlos 30


Laboratrio de Arquitetura e Organizao de Computadores I
Uma vez montado, prosseguimos para sua simulao. Para simular,
efetuamos diversos clculos utilizando soma e subtrao, bem como
testamos se, ao ativar Eu (ENABLE) a sada entrava no estado de alta
impedncia.

Figure 4.18: Diagrama de ondas (simulao) do bloco Somador-Subtrator.

Como podemos observar, o circuito opera conforme o esperado. No


diagrama de ondas acima, podemos ver que a unidade efetua
corretamente as operaes de adio e subtrao, bem como desativa
suas sadas sempre que ENABLE estiver em nvel lgico baixo. Podemos
notar tambm um tipo de ripple nas transies de Su, mas que felizmente
no alterou o desempenho de nosso circuito final.

Universidade Federal de So Carlos 31


Laboratrio de Arquitetura e Organizao de Computadores I
h. Bloco 08 Registrador B
O Registrador B outro registrador de memria intermediria. Ele usado
em operaes aritmticas. Quando nLb est em LOW e ocorre uma
transio positiva de clock, a palavra atual localizada no barramento W
armazenada dentro do Registrador B. A sada de dois estados do
Registrador B comandar o somador-subtrator, fornecendo o nmero a ser
adicionado ou subtrado do contedo do acumulador.

Figure 4.19: Diagrama esquemtico para o bloco Registrador do Microprocessador SAP-1.

Universidade Federal de So Carlos 32


Laboratrio de Arquitetura e Organizao de Computadores I
Uma vez montado o circuito e compilado, prosseguimos para sua simulao.

Figure 4.20: Diagrama de ondas (simulao) do bloco Registrador.

Pode-se notar que o Registrador B armazenada adequadamente o contedo


do barramento W (fornecido pelas entradas A7A6A5A4A3A2A1A0) para dentro
de si, liberando sua sada constantemente j que esta nunca entra em tri-
state. possvel observar, tambm, que o registrador mantm este
comportamento se, e somente se, sua entrada nLOAD encontra-se em
LOW, conforme era de se esperar.

Universidade Federal de So Carlos 33


Laboratrio de Arquitetura e Organizao de Computadores I
i. Bloco 09 Registrador de Sada
O Registrador de Sada, ou porta de sada, o caminho por onde os dados
processados podem ser armazenados para serem exibidos ao usurio
atravs de algum dispositivo de sada, tal como um monitor, uma
impressora, ou, em nosso caso, um display de LEDs.

O Registrador de Sada nada mais do que o mesmo registrador montado


no bloco Registrador B. Portanto, utilizaremos o mesmo bloco na montagem
final de nosso circuito.

Universidade Federal de So Carlos 34


Laboratrio de Arquitetura e Organizao de Computadores I
j. Bloco 10 Indicador Visual em Hexadecimal (Display)
O indicador visual em hexadecimal uma fileira de dois displays de sete
segmentos. Portanto, depois de termos transferido uma resposta do
Acumulador para o Registrador de Sada, podemos ver a resposta em sua
forma hexadecimal.

Para tanto, criamos um circuito decodificador binrio para sete segmentos


capaz de exibir conjuntos de 4 bits em sua forma hexadecimal. Como o
dispositivo onde emulamos o circuito geralmente apresenta a lgica de sada
invertida (exibindo LEDs acesos indicando nvel lgico baixo), inclumos
tambm uma entrada capaz de inverter a sada de nosso bloco
decodificador.

Figure 4.21: Representao hexadecimal em um display de sete segmentos.

Como exerccio, implementamos o decodificador em cdigo AHDL, a


linguagem de representao de Hardware proprietria da Altera Corporation,
com funo similar (mas aparncia distinta) ao VHDL. Nosso cdigo ser
apresentado na pgina seguinte.

Universidade Federal de So Carlos 35


Laboratrio de Arquitetura e Organizao de Computadores I
Figure 4.22: Cdigo AHDL para o bloco decodificador hexadecimal.

Universidade Federal de So Carlos 36


Laboratrio de Arquitetura e Organizao de Computadores I
Uma vez codificado e compilado, iniciamos a simulao do bloco.

Figure 4.23: Diagrama de ondas (simulao) para o bloco decodificador hexadecimal.

Como podemos observar, a simulao ocorreu conforme o esperado, j que


utilizamos a prpria tabela verdade do decodificador o que diminui a chance
de erros geralmente causados pela ligao errada ou juno de ns sem
inteno.

Ao inserir o valor 15, observamos que so ativados os


segmentos a, e, f, g do display, o que correspondem
letra F, conforme podemos observar na figura ao lado. O
mesmo ocorre com o valor 0, quando so ativados os
segmentos a, b, c, d, e, f e com o valor 10, quando so
ativados os segmentos a, b, c, e, f, g, indicando a letra A.

Modificando a entrada N para HIGH, vemos que a sada realmente


invertida, como podemos observar na exibio do nmero 1 no instante
t=500s.

Universidade Federal de So Carlos 37


Laboratrio de Arquitetura e Organizao de Computadores I
5. Montagem do SAP-1

a. Esquemtico
Munidos de todos os blocos fundamentais constituintes do SAP-1, a nica
tarefa restante a ser realizada era agrupar e conectar todos os blocos,
entradas e sadas num nico circuito. Para tanto, iniciamos desenhando o
barramento W e conectando cada bloco medida que estes fossem
adicionados ao esquemtico. A seguir, conectamos as linhas de controle, os
sinais de clock e as entradas CLR.

Como circuitos adicionais, implementamos a unidade de entrada


(responsvel pela insero de dados diretamente na memria), o controlador
de clock (responsvel pela seleo da fonte, automtica ou manual do clock)
e os eliminadores de rudo para as chaves seletoras.

O resultado final ser apresentado na pgina seguinte.

Universidade Federal de So Carlos 38


Laboratrio de Arquitetura e Organizao de Computadores I
Universidade Federal de So Carlos 39
Laboratrio de Arquitetura e Organizao de Computadores I
b. Programao
Uma vez montado, iniciamos a fase de testes. Para tanto, executaremos o
programa-exemplo 10-1 listado em Malvino, a fim de resolver o problema
aritmtico 16 + 20 + 24 - 32. O resultado, obviamente, deve ser igual a 28. O
programa-exemplo reproduzido a seguir.

Figure 5.1: Programa-exemplo em linguagem de montagem.

Traduziremos, pois, o programa para linguagem de mquina, utilizada para


programar diretamente a memria de nosso microprocessador SAP-1.

Figure 5.2: Programa-exemplo em linguagem de mquina.

Universidade Federal de So Carlos 40


Laboratrio de Arquitetura e Organizao de Computadores I
Assim, podemos iniciar a preparao para a simulao atravs da insero
do programa-exemplo na memria de nosso microprocessador SAP-1. Para
isso, no incio de nossa simulao em diagrama de ondas, habilitamos a
entrada WRITE, setamos o clock para manual deixando a entrada
EnableClockAuto em LOW e habilitamos a especificao manual de
endereos de memria deixando entrada EnableAutoAddressing tambm
em LOW.

Figure 5.3: Detalhamento da programao do SAP-1, em forma de diagrama de ondas.

Aps este cuidado, basta selecionar o endereo desejado para a instruo


atravs das entradas A3A2A1A0 e inserir a instruo em si atravs das
entradas D7D6D5D4D3D2D1D0, o que tambm j foi feito conforme exibido
na figura acima.

Universidade Federal de So Carlos 41


Laboratrio de Arquitetura e Organizao de Computadores I
c. Simulao
Agora que o programa j est pronto para ser inserido na memria do
SAP-1, tudo que temos de fazer iniciar seu funcionamento. Para tanto,
devemos desligar a entrada WRITE (colocando em LOW), habilitar o clock
automtico colocando EnableClockAuto em HIGH, e em seguida fornecer
um pulso CLEAR afim de restabelecer o estado inicial do contador de
programa, do controlador-seqencializador e dos registradores do
processador. Aps este pulso de CLEAR, o processador dever entrar em
seu funcionamento normal, lendo as instrues e as executando uma-a-
uma.

A pgina seguinte mostra o diagrama de execuo do programa-exemplo de


Malvino ocultando o funcionamento interno do SAP-1, mostrando apenas
sua sada final.

Universidade Federal de So Carlos 42


Laboratrio de Arquitetura e Organizao de Computadores I
Figure 5.4: Diagrama de ondas (simulao) do Microprocessador SAP-1.

Universidade Federal de So Carlos 43


Laboratrio de Arquitetura e Organizao de Computadores I
Neste diagrama, possvel observar que aps a execuo do programa
foram ativadas as sadas a, d, e, f do primeiro display e as sadas b, c do
segundo display.

Figure 5.5: Sada do microprocessador SAP-1 aps execuo do programa-exemplo para


clculo da expresso aritmtica 16 + 20 + 24 32.

Assim, a sada produzida fora o nmero hexadecimal 1C, que, em nmeros


decimais, representa o nmero 28, que era a resposta esperada para este
problema. A simulao fora, portanto, efetuada com sucesso.

A seguir, apresentamos o diagrama de ondas completo da execuo de


nosso programa, contendo todas as palavras de microinstruo geradas
durante o processamento.

Universidade Federal de So Carlos 44


Laboratrio de Arquitetura e Organizao de Computadores I
Figure 5.6: Diagrama de ondas (simulao) do Microprocessador SAP-1,
incluindo todos sinais de controle e sinal de clock interno.

Universidade Federal de So Carlos 45


Laboratrio de Arquitetura e Organizao de Computadores I
d. Observaes
Ao final desta seo, temos algumas observaes a comentar. O processo
de montagem e teste deste microprocessador se mostrou muito mais
trabalhoso do que espervamos. Apesar de termos chego a um resultado
positivo, inmeros problemas tiveram de ser trabalhados e repensados para
que tudo funcionasse conforme o planejado.

Um dos piores problemas encontrados fora a determinao do melhor tempo


de clock para utilizarmos na simulao. De incio, inadvertidamente
utilizamos um perodo de clock muito baixo, resultando num comportamento
completamente imprevisvel de nosso experimento. At notarmos este fato,
um longo perodo se passou. Encontramos um valor aceitvel para o clock
em torno de 500s, ou 2 kHz. Porm, o software Altera Quartus II continuou
gerando warnings mesmo aps esta correo. Como medida de segurana,
efetuamos os testes aqui presentes utilizando um clock de 4ms (250 Hz),
que, apesar de grande, garantiu que os demais problemas encontrados em
nossa simulao no fossem oriundos da rapidez da transio do sinal de
clock.

Outro problema comumente enfrentado fora o sobrecarregamento de fios em


nossos diagramas. Sem perceber, acabvamos por causar curto-circuito no
esquemtico juntando dois ns distintos por acaso ao movimentar blocos e
realizar novas conexes. Para resolver este problema, optamos por deixar
implcita a ligao entre o bloco controlador-seqencializador e os demais
componentes do circuito, apenas nomeando os ns com uma identificao
comum. O software Altera Quartus II consegue interpretar este tipo de
conexo corretamente.

Universidade Federal de So Carlos 46


Laboratrio de Arquitetura e Organizao de Computadores I
6. Concluso
Aps a concluso do experimento pudemos verificar que houve grande
evoluo de aprendizado durante o decorrer da disciplina. No incio, no
sabamos o real funcionamento de um processador, apenas tnhamos vagas
noes de como um processador funcionava.

Pode-se analisar como a arquitetura de um processador, que um


processador composto de vrios blocos e que cada um dos blocos tem
uma funo especfica, em que juntos formam um conjunto extremamente
harmnico e funcional.

Confirmamos que a realizao de um projeto de um processador no uma


tarefa simples, onde tudo que feito tem que ser feito com muita ateno e
conhecimento terico para a montagem de todos os circuitos que compe
um processador.

Houve muita dificuldade para a juno dos blocos e testes do processador,


uma vez que pequenos detalhes que passaram despercebidos mudaram
toda a execuo do circuito. Felizmente, os erros que haviam foram
discutidos com todo o grupo e juntos conseguimos corrigi-los e entendemos
suas causas e conseqncias, em que no final o projeto funcionou
perfeitamente como o esperado.

A disciplina de Laboratrio de Arquitetura e Organizao de Computadores


contribuiu muito para o desenvolvimento de nossos conhecimentos e,
portanto, nossa avaliao da disciplina, bem como os conhecimentos
obtidos, foi tida como muito satisfatria.

Universidade Federal de So Carlos 47


Laboratrio de Arquitetura e Organizao de Computadores I
7. Referncias Bibliogrficas

MALVINO, Albert Paul; LEACH, Donald P.. Eletrnica digital: princpios e aplicaes. Carlos
Richards Jnior (Trad.). So Paulo: McGraw-Hill, c1988. v.2. 356-684 p.

MALVINO, Albert Paul; BROWN, Jerald A.. Digital Computer Electronics, Third Edition, McGraw
Hill, New York, NY, 1993 (imprint 1997).

Stephen Brown and Jonathan Rose, "Architecture of FPGAs and CPLDs: A Tutorial," IEEE Design
and Test of Computers, Vol. 13, No. 2, pp. 42-57, 1996.

ALTERA, Corporation; http://www.altera.com

Universidade Federal de So Carlos 48


Laboratrio de Arquitetura e Organizao de Computadores I
8. Listagem de Tabelas e Figuras

TABLE 1: TABELA DE MNEMNICOS E DE INSTRUES PARA O MICROPROCESSADOR SAP-1. ........................ 7

FIGURE 2.1: DIAGRAMA REPRESENTATIVO PARA O MICROPROCESSADOR SAP-1. ......................................... 8


FIGURE 2.2: DIAGRAMA ESQUEMTICO REPRESENTATIVO DO ALTERA FLEX10K. ......................................... 9
FIGURE 2.3: AMBIENTE DE DESENVOLVIMENTO ALTERA QUARTUS II WEB EDITION V7.2. ..............................10
FIGURE 4.1: DIAGRAMA ESQUEMTICO DO BLOCO CONTADOR DE PROGRAMA DO SAP-1..............................14
FIGURE 4.2: DIAGRAMA DE ONDAS (SIMULAO) DO BLOCO CONTADOR DE PROGRAMA...............................15
FIGURE 4.3: DIAGRAMA ESQUEMTICO DO REGISTRADOR DE ENDEREO DE MEMRIA (REM). ....................16
FIGURE 4.4: DIAGRAMA DE ONDAS (SIMULAO) DO REGISTRADOR DE ENDEREO DE MEMRIA (REM). ..17
FIGURE 4.5: DETALHAMENTO DE UM DOS 16 COMPONENTES MEMRIA DE 8 BITS PRESENTES NO BLOCO DE
MEMRIA DE 16X8 BITS. .........................................................................................................................18

FIGURE 4.6: VISO PARCIAL DO BLOCO DE MEMRIA (16X8) PARA O MICROPROCESSADOR SAP-1. .............19
FIGURE 4.8: DIAGRAMA DE ONDAS (SIMULAO) DO BLOCO DE MEMRIA DO SAP-1. ..................................21
FIGURE 4.9: DIAGRAMA ESQUEMTICO DO BLOCO REGISTRADOR DE INSTRUES DO SAP-1.........................23
FIGURE 4.10: DIAGRAMA DE ONDAS (SIMULAO) DO REGISTRADOR DE IINSTRUES..................................24
FIGURE 4.11: DIAGRAMA ESQUEMTICO PARA O BLOCO CONTROLADOR-SEQENCIALIZADOR. .....................26
FIGURE 4.12: DIAGRAMA DE ONDAS (SIMULAO) DO BLOCO CONTROLADOR-SEQENCIALIZADOR. .............27
FIGURE 4.13: DIAGRAMA DE TEMPORIZAO ESPERADO DE BUSCA E EXECUO DA INSTRUO LDA........27
FIGURE 4.14: DIAGRAMA DE TEMPORIZAO ESPERADO DE BUSCA E EXECUO DA INSTRUO ADD. ......27
FIGURE 4.15: DIAGRAMA ESQUEMTICO PARA O BLOCO ACUMULADOR DO MICROPROCESSADOR SAP-1. ...28
FIGURE 4.16: DIAGRAMA DE ONDAS (SIMULAO) DO BLOCO ACUMULADOR DO SAP-1...............................29
FIGURE 4.17: DIAGRAMA ESQUEMTICA DO BLOCO SOMADOR-SUBTRATOR DO SAP-1. ................................30
FIGURE 4.18: DIAGRAMA DE ONDAS (SIMULAO) DO BLOCO SOMADOR-SUBTRATOR...................................31
FIGURE 4.19: DIAGRAMA ESQUEMTICO PARA O BLOCO REGISTRADOR DO MICROPROCESSADOR SAP-1. ....32
FIGURE 4.20: DIAGRAMA DE ONDAS (SIMULAO) DO BLOCO REGISTRADOR................................................33
FIGURE 4.22: REPRESENTAO HEXADECIMAL EM UM DISPLAY DE SETE SEGMENTOS..................................35
FIGURE 4.23: CDIGO AHDL PARA O BLOCO DECODIFICADOR HEXADECIMAL. ..............................................36
FIGURE 4.24: DIAGRAMA DE ONDAS (SIMULAO) PARA O BLOCO DECODIFICADOR HEXADECIMAL. .............37
FIGURE 5.1: PROGRAMA-EXEMPLO EM LINGUAGEM DE MONTAGEM. ............................................................40
FIGURE 5.2: PROGRAMA-EXEMPLO EM LINGUAGEM DE MQUINA.................................................................40
FIGURE 5.3: DETALHAMENTO DA PROGRAMAO DO SAP-1, EM FORMA DE DIAGRAMA DE ONDAS. ............41
FIGURE 5.5: SADA DO MICROPROCESSADOR SAP-1 APS EXECUO DO PROGRAMA-EXEMPLO PARA
CLCULO DA EXPRESSO ARITMTICA 16 + 20 + 24 32......................................................................44

Universidade Federal de So Carlos 49


Laboratrio de Arquitetura e Organizao de Computadores I
UNIVERSIDADE FEDERAL DE SO CARLOS
CENTRO DE CINCIAS EXATAS E DE TECNOLOGIA
DEPARTAMENTO DE COMPUTAO

Relatrio 02
MICROPROCESSADOR SAP-1

LABORATRIO DE ARQUITETURA E ORGANIZAO DE COMPUTADORES

Universidade Federal de So Carlos 50


Laboratrio de Arquitetura e Organizao de Computadores I

Anda mungkin juga menyukai