School Work e organização de computadores logisim ula divisor de clock">
Nothing Special   »   [go: up one dir, main page]

Processador 4 Bits - LOGISIM

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 19

Aluno: Guilherme Cardoso

Professor: Felipe Pedroso

ORGANIZAO DE COMPUTADORES
Projeto - Processador

13 de junho de 2014.
Vila Velha - ES

1. PROCESSADOR

Um processador um dispositivo de extrema importncia em qualquer


circuito, ele capaz de executar diversas funes de clculos e tomar inmeras
decises. Para entendermos a fundo como funciona um processador, foi
proposto a criao de um processador de 4 bits ao longo do semestre utilizando
o software Logisim para descrevermos o funcionamento do mesmo, como
mostra a figura 01.

Figura 01: Layout de um processador utilizando o Logisim.

Esse processador realiza operaes de 4 bits, alm de apresentar


dispositivos de entrada e sada, conta com trs registradores (PC, IR e AC), uma
ULA, uma unidade de controle, alm de conter uma memria ROM e uma
memria RAM, que sero estudados a seguir.

2. UNIDADE DE CONTROLE

A unidade de controle responsvel por administrar todo o processador,


alm de dizer a hora que cada componente deve ser ativado, contando com um
divisor de clock, entrada e sada de dados e dois registradores para os flags (ver
tpico 4).

Figura 02: Viso geral da unidade de controle.

Como podemos ver na figura 02, toda lgica da unidade de controle foi
feita utilizando portas lgicas assim como em todo o processador.

2.1.

Divisor de clock

O divisor de clock responsvel por quebrar o clock de entrada em


vrios clocks, ele tambm responsvel pela velocidade de execuo do
processador, ou seja, quanto mais voc dividir um ciclo de clock, mais tarefas
sero executadas, tornando assim o processador mais rpido, no caso do divisor
de clock utilizado nesse processador mostrado na figura 03, faz com que a cada
ciclo de clock ele execute dois clocks.

Figura 03: Unidade de Controle Divisor de clock.

Esse divisor de clock foi feito utilizando dois flip-flops do tipo D, gerando
um contador Gray (faz com que a cada clock s atualize um bit por vez) de 2
bits, filtrando a sada do contador com portas AND, gerando C1, C2, C3 e C4.

2.2.

Conjunto de instrues

O conjunto de instrues o que d um norte para a unidade controle,


ela define tudo o que ser feito pela unidade de controle, e algumas funes, so
baseadas nessa tabela, como por exemplo, a ULA (Unidade Lgica Aritmtica)
foi toda projetada para executar as operaes MOV, ADD, SUB, OR e NOT.

Cod.
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F

Conjunto de Instrues
Funo OPC+E
Descrio
MOV
0000
AC <= X
MOV
0001
AC <= M(X)
ADD
0010
AC <= AC + X
ADD
0011
AC <= AC + M(X)
SUB
0100
AC <= AC X
SUB
0101
AC <= AC M(X)
OR
0110
AC <= AC OR X
OR
0111
AC <= AC OR M(X)
NOT
1000
AC <= AC NOT X
NOT
1001
AC <= AC NOT M(X)
IN
1010
AC <= AC << USB 3.0
OUT
1011
AC <= AC >> HDMI
JPZ
1100
PC <= X SE FLAG Z
JPO
1101
PC <= X SE FLAG O
GO
1110
PC <= X
STR
1111
M(X) <= AC
Tabela 01: Conjunto de Instrues.

2.3.

Entradas

A unidade de controle conta com 5 entradas de dados, duas entradas


reservadas para alimentao e reinicializao da unidade de controle, o CLK
(clock) e o CLR (reset), mais duas entradas para flags (ver tpico 4) e uma
entrada para instruo (Essa entrada o que defini o que o processador tem que
fazer).

Figura 04: Unidade de Controle Entrada de dados.

A Instruo vem do acumulador IR, que estudaremos mais adiante, ela


composta de 8 bits, sendo que ela dvida em trs partes, o OPC Operation
Code (Cdigo de Operao) que constitudo de 3 bits, o E que referente
atribuio para a maioria das vezes, onde o mesmo informa se deve ser usado
o valor X ou usar o valor M(X) (memria RAM), e por fim o X que a
informao
Os dois flags da unidade de controle que aparecem no canto inferior
direito da figura 04, esto acompanhados de flip-flops do tipo D, pois estes flags
ativam uma determinada funo baseados no ciclo anterior, ou seja, eles existem
para que eles no venham a gerar algum tipo de interferncia referente ao ciclo
atual.

2.4.

Sadas

As sadas da unidade de controle so responsveis pela ativao de todos


os outros componentes, os acumuladores, os resets, as memrias ROM e RAM,
a ULA, as sadas filtradas da Instruo (OPC, E, X) e algumas delas so sadas
que ativam determinadas aes, que podemos chama-las de especiais (store,
buffer e load), toda a lgica por de trs das sadas da unidade de controle est
baseada em portas lgicas, fazendo com que as sadas obedeam certas
condies.

Figura 05: Unidade de controle Sadas.

3. ACUMULADORES

3.1.

PC Program Counter (Contador de Programa)

Os acumuladores so mecanismos que recebem uma informao e


passam a mesma adiante s quando recebem o clock, s que o PC recebe
alguns componentes a mais, pois o PC responsvel pela posio que a ROM
ir tomar (a ROM onde o cdigo ser inserido pelo programador, baseado no
conjunto de instrues da tabela 01).

Figura 06: PC Program Counter.

Esse acumulador constitudo de um contador de 4 bits alm de um


sistema de insero de dados (usado pelas funes GoTo e Jump). Foi utilizado
um contador sncrono com flip-flops JK, constitudo de um sistema baseado mais
uma vez em portas lgicas, onde o que estiver na posio X ir aparecer na
sada se e somente se Load for 1 junto com um pulso de clock, nos dando a
possibilidade de manipular as posies da ROM, ao invs de fazer cdigos
sequncias.

3.2.

IR Instruction Register (Registrador de Instrues)

O IR um acumulador simples com a nica diferena que os seus dados


tm 8 bits, a sua funo pegar o que est na ROM como instruo e transferir
para a unidade de controle, para que assim a unidade de controle possa executar
a instruo.

Figura 07: IR Instruction Register.

3.3.

AC Accumulator (Acumulador)

O AC igual ao IR, um acumulador simples com a nica diferena que os


seus dados tm 4 bits, a sua funo pegar o que est na sada da ULA e
alimentar o buffer, realimentar a ULA e mostra no display de 7 segmentos, e com
a adio de componentes de entrada e sada, o AC tambm alimenta a sada de
dados (se olharmos a figura 01, quando a OUT ativada a sada faz um paralelo
com o AC).

Figura 07: IR Instruction Register.

Um ponto importante a ser lembrado de que todos os acumuladores do


nosso processador (PC, IR e AC) contm uma entrada em todos eles referente
ao reset, na qual todos eles so ligados um Master Reset, que fica no
processador, podemos observar o mesmo na figura 01. Podemos citar tambm
a memria de todos os acumuladores, aqui usamos o flip-flop do tipo D, que tem
como caracterstica principal de memorizar o valor recebido pela entrada D aps
um pulso de clock, fazendo com que entrou v para a sada e s se atualize com
um novo pulso de clock.

4. ULA UNIDADE LGICA ARITMTICA

Um dos componentes indispensveis de um processador a ULA, que


nada mais do que uma calculadora que efetua diversas operaes.
Basicamente a ULA constituda de trs entradas e trs sadas, sendo duas
entradas para os dados a serem trabalhados, a outra entrada sendo a que
seleciona a operao, conhecida como Operation Code (Essa entrada leva a
um circuito responsvel pela seleo da funo a ser executada, chamada de
Gerador de Produtos Cannico), uma sada para o resultado e as outras duas
sadas usadas como indicadores, chamadas de Flag de Zero e Flag de
Overflow. O Flag de Zero indica que na sada do resultado no h nenhum bit
ativo (quando a sada retorna zero), fazendo com que o indicador retorne 1, j
o Flag de Overflow indica quando h um estouro na sada, isso acontece quando,
por exemplo, as duas entradas de 4 bits retornam uma sada de 5 bits sendo que
a sada suporta apenas 4 bits, fazendo com que retorne 1 para o indicador.
Iremos dividir a nossa ULA em basicamente trs componentes:

4.1.

Operadores MOV, ADD, SUB, AND, OR, NOT

Gerador de Produtos Cannicos GPC

Saidas Flags e Sada

Enable

Antes de comear a falar sobre as operaes, abordaremos um ponto


importante da ULA, o circuito que faz com que as operaes sejam liberadas
depois de terem sido escolhidas pelo Gerador de Produtos Cannicos GPC,
circuito esse que fica dentro de cada circuito de operao, seja ele o de MOV,
ADD, SUB, AND, OR ou NOT, como mostra a figura 08.
Basicamente esse circuito auxilia a ULA a no deixar com que haja mais
de uma sada de operadores (MOV, ADD, SUB, OR ou NOT) na sada final da
ULA, impedindo que haja conflitos de informaes no resultado.
10

Figura 08: ULA Enable.

4.2.

Operation Code (OPC) e Gerador de Produtos Cannicos (GPC)

OPC: Circuito responsvel pela definio da funo a ser realizada pela


ULA, para esse circuito foi feito uma simples Tabela Verdade:

Funo
MOV
ADD
SUB
OR
NOT

OPC
000
001
010
011
100

Tabela 02: Tabela verdade e


suas referentes funes.

GPC: Circuito responsvel por receber o OPC e habilitar a funo


programada, o circuito abaixo foi feito baseado na Tabela 1:

Figura 09: Circuito GPC

11

4.3.

MOV - Mover

O circuito MOV nada mais do que um circuito passador, ou seja, o que


entra sai, mas como falado anteriormente o mesmo j est subordinado ao
circuito Enable, como mostra a figura 10:

Figura 10: ULA Circuito MOV.

4.4.

ADD Somador

O circuito somador foi feito em duas partes, a primeira parte foi um


somador de 1 bit, e depois dele pronto, foi feito uma associao com 4 deles,
formando assim um somador de 4 bits, segue a Tabela Verdade e os mapas de
Karnaugh referente ao circuito somador de 1 bit:

Vem
0
0
0
0
1
1
1
1

A
0
0
1
1
0
0
1
1

B
0
1
0
1
0
1
0
1

Sada
0
1
1
0
1
0
0
1

Vai
0
0
0
1
0
1
1
1

Tabela 03: Tabela verdade de um somador de 1 bit.

12

Figura 11: Mapa de Karnaugh referente Sada do somador de 1 bit.

Figura 12: Mapa de Karnaugh referente ao Vai Um do somador de 1 bit.

Figura 13: Circuito somador de 1 bit.

Logo aps ter concludo o circuito somador de 1 bit, foi associado 4


circuitos somadores de 1 bit, fazendo com que se tornasse um circuito somador
de 4 bits, nesse circuito em sua sada foi adicionado mais uma vez o circuito
Enable, na figura 14 podemos observar como foi feito essa associao.

13

Figura 14: Circuito somador de 4 bits.

Podemos notar que para este circuito foi isolado de certa forma o vem
um forando a sempre entrar zero, mas no alterando o vai um do ltimo
circuito, o flag de overflow.

4.5.

SUB Subtrator

Para este circuito foi utilizado um circuito somador, mas foi implementado
o complemento dois. O complemento dois nada mais do que inverter os bits da
parte negativa e somar mais um bit:

Carry-Out: Aciona o Flag de Overflow


Figura 15: Demonstrao de complemento dois.

Dessa forma foi utilizado um mtodo para que sempre que fosse ativado
o SUB pelo GPC, ele invertesse a parte negativa.

14

Figura 16: Circuito subtrator de 4 bits.

A figura 16 mostra que foi utilizado uma porta XOR (essa porta faz com
que retorne 1 apenas quando as entradas forem diferentes) da seguinte forma.
Em uma das entradas chega B de 4 bits, e para inverter os bits de B foi feito
um XOR com uma entrada de 4 bits, todas elas em nvel Alto (nmero quinze 1111), por exemplo, quando SUB estiver ativado e B for 0100 (nmero quatro
em binrio) e na outra entrada for 1111 (nmero quinze em binrio), e sabendo
como a porta XOR funciona, a sada ser o valor 1011, o inverso de B, e para
finalizar o Complemento 2, uma sada nvel alto entra no Vem Um do primeiro
somador de 1 bit fazendo com que agora o valor de B seja 1100, dessa forma o
valor de B est pronto para ser somado com A. Quando a OPC libera a funo
SUB para o GPC, o mesmo retorna nvel alto para o Enable do SUB, um detalhe
importante que podemos observar na figura 16 que a mesma entrada do
Enable serve para ativar (retornar um) ao vem um e ativar a segunda entrada do
XOR.

4.6.

OR OU

O circuito OR faz um ou lgico entre A e B (todos os dois de 4 bits),


fazendo com que retorne 1 apenas quando uma das entradas forem nvel alto.

Figura 17: Circuito OR de 4 bits.

15

4.7.

NOT NO

O circuito NOT faz uma negao do que entra em B (4 bits), fazendo com
que retorne o valor inverso da entrada.

Figura 18: Circuito NOT de 4 bits.

16

5. MEMRIA ROM E MEMRIA RAM

5.1.

Memria ROM

A memria ROM um componente capaz armazenar instrues a serem


realizadas pelo processador, a memria ROM utilizada nesse processador
uma ROM com 16 posies que so acessadas por um endereo de 4 bits e 8
bits para dados, importante lembrar que a programao na ROM feita em
hexadecimal. Ela funciona da seguinte forma, o PC libera um endereo na
entrada A da ROM, a unidade de controle libera o clock fazendo com que a
sada D alimente o IR.

Figura 19: Memria ROM 8x16.

5.2.

Memria RAM

A memria RAM utilizada para alojar valores resultantes das desies


da unidade de controle, seguindo o mesmo tamanha da ROM.

Figura 20: Memria RAM 8x16.

17

6. DISPOSITIVO DE ENTRADAS E SADAS

6.1.

Entradas

O dispositivo de entrada deste processador, foi intitulado de USB 3.0,


ele tem por finalidade a entrada de dados, o USB 3.0 tem 16 entradas de dados,
todas elas no tamanho de 4 bits. Quando a funo escrita na ROM, em seus
primeiros quatros nmero a unidade de controle define que tem que ativar o
dispositivo de entrada, fazendo com que primeiramente ele ative um MUX para
que o valor de AC no seja contaminado pelos outros quatro bits da ROM, pois
a funo do dispositivo de entrada pegar o que estiver na posio descrita e
transferi-la para o AC, abaixo podemos ver como foi feito tal dispositivo.

Figura 21: Dispositivo de Entrada USB 3.0 viso interna e viso geral.

18

6.2.

Sadas

O dispositivo de sada desse processador foi intitulado de HDMI, sua


funo transferir o que estiver no AC para a sada, respeitando a posio
descrita na ROM, o dispositivo de

sada necessitou de um DMX

(Demultiplexador) e de 16 flip-flops do tipo D (com a mesma finalidade dos


registradores dos flags), para que as sadas no fiquem flutuando alm de uma
porta AND, para o circuito de acionamento do HDMI, na figura podemos
observar o dispositivo.

Figura 22: Dispositivo de Sada HDMI viso geral.

19

Você também pode gostar