You are on page 1of 15

EPUSP PCS 2011/2305/2355 Laboratrio Digital

Via de Dados com ULA


Verso 2012

RESUMO
Esta experincia tem como objetivo introduzir o conceito de via de dados, que largamente empregado
na implementao de sistemas computacionais, com a familiarizao com circuitos tri-state. Para isto
ser implementado um circuito que inclui tambm uma ULA para realizar operaes sobre os dados
armazenados em registradores bidirecionais, portas de entrada e portas de sada.

1. INTRODUO TERICA
O conceito de via (ou bus) foi aplicado para resolver problemas como o mostrado na Figura 1.1, ou
seja, a transferncia de informaes entre vrios registradores.

REG. A

REG. B

REG. C

REG. D

REG. E

REG. F

Figura 1.1 - Sistema composto de vrios registradores, que transferem informaes entre si.
A soluo usual para este problema seria colocar uma porta de seleo (multiplexador) na entrada de
cada registrador, o que encarece muito o sistema. Contudo, se for possvel garantir que neste sistema
nunca seja necessrio efetuar simultaneamente duas transferncias distintas, pode-se utilizar o conceito
de via de dados.
Dentro do conceito de via de dados, necessrio se conhecer alguns dos circuitos bsicos que permitem
sua implementao e que so mostrados a seguir.

1.1. Circuitos com Sadas Tri-state


Qual a utilidade dos dispositivos tri-state1? Nos sistemas eletrnicos comum a utilizao intensiva
de vias de dados (bus), que se constitui em um meio fsico de comunicao de dados compartilhado
entre os vrios mdulos que compem o sistema. Para que isto seja possvel, utilizam-se os circuitos
integrados tri-state. Seja a figura 1.2 que mostra uma linha fsica de dados compartilhada por vrias
portas lgicas.
Os dispositivos tri-state tm uma entrada de controle, conhecida como enable ou output control,
capaz de colocar as sadas no estado de alta impedncia. Assim, a sada de um circuito tri-state pode
assumir trs estados: zero lgico, um lgico e alta impedncia.
Uma via de comunicao criada ligando-se vrias sadas juntas, porm os circuitos de controle (que
geram os sinais de enable) devem assegurar que, no mximo, uma sada esteja na condio de circuito
TTL e todas as outras estejam com impedncia alta, de forma a permitir que uma nica porta possa
transmitir sua informao. Em outras palavras, um controle adequado do sinal enable de cada circuito
permite a multiplexao das vrias sadas que esto ligadas via.

O termo tri-state marca registrada da National Semiconductor Corporation.

Via de Dados com ULA (2012)

EPUSP PCS 2011/2305/2355 Laboratrio Digital

linha
compartilhada

Figura 1.2 - Configurao com vrias portas tri-state compartilhando uma linha fsica.

Caractersticas Eltricas
Os circuitos tri-state so construdos de forma que a passagem para o estado TTL seja mais lenta do
que a passagem para o estado de alta impedncia. Assim, se um dispositivo aciona simultaneamente
uma porta tri-state para passar ao estado TTL e outro, da mesma via, para passar ao estado de alta
impedncia, no dever ocorrer nenhum problema.
Se duas sadas foram, erroneamente, nveis lgicos TTL conflitantes ao mesmo tempo, o resultado
igual quele que ocorre com duas sadas TTL curto-circuitadas. Os dispositivos podem ser danificados e a
tenso de sada no estar dentro das faixas dos nveis lgicos. Esta situao deve, portanto, ser evitada.
Uma sada tri-state em estado de alta impedncia tem uma corrente de fuga de 40 A, a qual deve ser
considerada no dimensionamento do nmero de portas na via de comunicao. No estado lgico zero,
uma sada deve absorver 40 A de cada sada em alta impedncia e 1,6 mA de cada entrada TTL ligada
via de comunicao.
No estado lgico um, uma sada deve fornecer 40 A de corrente para cada sada em alta impedncia,
ligada via de comunicao e 40 A para cada entrada TTL na via de comunicao. Uma porta tri-state
tpica absorve 16 mA no nvel lgico zero, mas fornece 5,2 mA no nvel lgico um. Isto permite a ligao
de muitas portas numa via de comunicao.

1.2. Circuitos com Sadas Open Collector


Os componentes open collector (coletor aberto) possuem uma implementao semelhante aos
componentes com sada do tipo totem pole. A diferena bsica que nas sadas open collector foi
suprimida a ligao entre o coletor e VCC dos transistores de sada.
Naturalmente, percebe-se a necessidade de um resistor externo (resistor de pull up) ligado a VCC para
a corrente de polarizao dos transistores e conseqente definio dos nveis de sada.
Com este tipo de componente consegue-se ligar vrias sadas conjuntamente, utilizando-se um nico
resistor, de acordo com a figura 1.3.

Via de Dados com ULA (2012)

EPUSP PCS 2011/2305/2355 Laboratrio Digital

Vcc

Figura 1.3 - Configurao de Portas NAND tipo coletor aberto, compartilhando linha fsica
No ponto S tem-se a funo lgica S = AB CD EF , e por esta razo este tipo de ligao chamado de
wired-and. Isto , sadas coletor aberto ligadas entre si resultam num AND lgico das sadas
individuais.
Estes componentes tambm so utilizados para a interligao de vrias entradas e sadas em
configurao de via de dados (com resistores de pull up para cada via), apresentando com vantagens o
fato de no sofrerem danos se mais de uma sada for ativada (transistor de sada for colocado em
conduo) ao mesmo tempo, alm de serem interfaces passivas, isto , no precisam alimentar a via
(no injetam corrente na via).

1.3. Comparao de Caractersticas Eltricas


Comparando-se as sadas do tipo tri-state e as do tipo open collector, tem-se o seguinte panorama:

Sadas tri-state: menor consumo; mais rpidas; exigem controle centralizado com ligao em
via, pois so sensveis ativao de mais de uma sada ao mesmo tempo (conflito de via);

Sada open collector: requer polarizao externa (resistor de pull up); uma interface
passiva; quando ligada em configurao de via no precisa de controle centralizado, pois suporta
erros de ativao (ativao de mais de uma sada ao mesmo tempo); lenta (principalmente
com cargas capacitivas) por no poder injetar corrente por sua sada (s consegue absorver
corrente com seu transistor de sada).

1.4. Via de Dados


Uma via de dados, ou simplesmente via, um conjunto de linhas utilizado como caminho comum, que
interliga entradas e sadas de vrios registradores, de modo que as informaes possam ser transferidas
facilmente de qualquer um destes registradores para qualquer outro, desde que se utilizem os sinais de
controle apropriados. A Figura 1.4 mostra um sistema organizado por vias, com trs registradores com
sadas tri-state.

REG. A

REG. B

CONTROLE
CLOCK

CONTROLE

VIA

REG. C

CONTROLE

Figura 1.4 - Sistema composto de vrios registradores interligados atravs


de uma Via de Dados.

Via de Dados com ULA (2012)

EPUSP PCS 2011/2305/2355 Laboratrio Digital

Pode parecer incoerente que todas as entradas e todas as sadas correspondentes estejam ligadas entre
si. A incoerncia, porm, desaparece se for assegurado que apenas um dos trs registradores tenha as
suas sadas habilitadas, enquanto que as sadas dos outros dois registradores estejam em seu estado de
alta impedncia. Por exemplo, suponha que os registradores B e C estejam com as sadas desabilitadas,
enquanto o registrador A tem as suas sadas habilitadas. Isto, em essncia, desliga as sadas de B e C da
via, de forma que apenas as sadas do registrador A tenham os seus nveis lgicos presentes nas linhas
que compem a via.
Para realizar, por exemplo, a transferncia de dados do registrador A para o registrador C deve-se em
primeiro lugar, desabilitar as sadas de B e C e habilitar as sadas do registrador A, colocando-se os seus
dados na via. O registrador C, por sua vez, deve ter suas entradas controladas para que copiem o que
est na via. Todas as outras devero permanecer desabilitadas. A transferncia ocorrer quando vier o
pulso de clock para o registrador C. A Figura 1.5 mostra um diagrama de tempos dos sinais de controle
necessrios para que esta transferncia seja efetuada.

DADOS NA VIA

HABILITA SADAS DE A
(DESABILITA SADAS DE B e C)

"CLOCK" (CONTROLE
DAS ENTRADAS DE C)
AQUI OCORRE A
TRANSFERNCIA

Figura 1.5 - Diagrama de Tempos para a transferncia de dados do registrador A para C.


Atravs do exemplo apresentado, constata-se que na operao de transferncia de dados entre dois
registradores ligados a uma via, deve-se sempre especificar qual o registrador de onde vem os dados
(origem) e qual o registrador que deve receb-los (destino), habilitando tais registradores
corretamente. Ou seja, necessrio selecionar (enderear) os registradores origem e destino.

1.5. Seleo de Registradores - Endereamento


Uma maneira de resolver este problema de seleo dos registradores envolvidos numa transferncia
atribuir a cada registrador um endereo. Na verdade, cada registrador pode ter dois endereos,
coincidentes ou no, um como destino e outro como origem. Neste caso, devem ser utilizados circuitos
decodificadores de endereo para, a partir dos endereos apresentados, gerar os sinais de habilitao
para os registradores escolhidos. A Figura 1.6 mostra o exemplo de um sistema que utiliza esta forma de
seleo de registradores, com endereos de 3 bits.

0
1
ENDEREO
DA
ORIGEM
n

HS0
HS1

HE - Habilita Entrada
HS - Habilita Sada

HSn

HE0

HE
REG. 0
HS

0
1

ENDEREO
DO
DESTINO

HE
REG. 1
HS

HE

REG. n
HS

HE1

HEn

Figura 1.6 - Seleo de Registradores Utilizando Decodificadores.

Via de Dados com ULA (2012)

EPUSP PCS 2011/2305/2355 Laboratrio Digital

Deve-se lembrar que neste modelo de registradores devem ser evitados os casos em que se enderea o
mesmo registrador, tanto como origem como destino.
Um outro esquema empregado na seleo de registradores utiliza um registrador intermedirio nas
transferncias. Neste esquema, definem-se operaes de entrada e de sada deste registrador
intermedirio. Nas operaes de entrada, ele o destino dos dados vindos de qualquer outro registrador
ligado via; nas operaes de sada, ele a origem dos dados que vo para qualquer um dos outros
registradores ligados via. Deste modo, todas as transferncias de dados passam pelo registrador
intermedirio, sendo necessrio apenas determinar o endereo do outro registrador envolvido nesta
transferncia, e habilitar o sinal de controle correspondente, informando se a operao de entrada ou
de sada. A Figura 1.7 mostra um diagrama deste tipo de endereamento.

0
ENDEREO
DA
ORIGEM

HAB0

HAB - Habilita

E/S - Entrada/Sada

HABn

HAB

HE

REG. 0
E/S

REG. n
E/S

E/S

REG.
E/S

(VIA DE DADOS)

INTERMEDIRIO

Figura 1.7 - Transferncia de Dados utilizando registrador intermedirio.


Utilizando os conceitos apresentados, podem ser interligados atravs de uma via de dados registradores
bidirecionais (registradores usados para leitura e gravao de dados) como tambm portas de entrada e
sada.

1.6. Portas de Entrada e Sada


Um sistema (por exemplo, um conjunto de registradores) para se comunicar com o meio externo, deve
utilizar as chamadas portas de entrada e de sada.
a) Porta de Entrada
Uma porta de entrada pode ser definida como sendo um dispositivo ligado via de dados, que permite ao
sistema ler dados vindos de um perifrico de entrada (teclado, conjunto de chaves, etc.).
Em sua forma mais simples, uma porta de entrada pode ser formada por um conjunto de buffers tristate, ou por um registrador com sadas tri-state, cujas entradas so ligadas s sadas de dados do
perifrico, e cujas sadas so ligadas via de dados. As sadas de uma porta de entrada, normalmente
so habilitadas atravs de um endereo e um sinal de controle de leitura de perifrico (Figura 1.8).
b) Porta de Sada
Uma porta de sada pode ser definida como sendo um dispositivo ligado via de dados, que permite
enviar dados para algum perifrico de sada (terminal de vdeo, displays, LEDs, etc.).
Neste caso, uma porta de sada pode ser um registrador, cujas entradas so ligadas via de dados do
sistema e cujas sadas so ligadas ao perifrico de sada. Esta porta de sada normalmente selecionada
atravs de um endereo e de um sinal de controle de gravao de perifricos (Figura 1.8).

Via de Dados com ULA (2012)

EPUSP PCS 2011/2305/2355 Laboratrio Digital

HAB - Habilita
PARA O PERIFRICO
OU INTERFACE

PORTAS
HAB

VIA DE DADOS

ENDEREO

DO PERIFRICO
OU INTERFACE
DO PERIFRICO

PORTAS

HAB

LEITURA / GRAVAO

Figura 1.8 - Seleo de Portas de Entrada e de Sada.


Nos exemplos apresentados at aqui se utilizou uma representao simplificada da via, que descrita a
seguir.

1.7. Representao de uma Via de Dados


Em diagramas lgicos, a representao de uma via de dados com todas as suas linhas e respectivas
ligaes pode comprometer a legibilidade do diagrama correspondente. Por este motivo so utilizadas
representaes simplificadas nas quais um grupo de linhas substitudo por barras ou por uma s linha,
indicando-se apenas o nmero de linhas que compem a via. A Figura 1.9 ilustra duas destas
representaes simplificadas para o sistema da Figura 1.4 anteriormente apresentado.

4
4

REG.
A

REG.
B

CONTROLE

CONTROLE

REG.
C

CONTROLE

REG.
A

REG.
B

REG.
C

CONTROLE

CONTROLE

CONTROLE

Figura 1.9 - Representaes simplificadas de uma Via de Dados


qual esto interligados vrios registradores.
Na Figura 1.9, como cada registrador tem as suas entradas e as suas sadas ligadas via de dados,
bvio que as entradas e sadas correspondentes esto ligadas entre si. Isto possvel, pois em operao
normal um registrador nunca tem suas entradas e sadas habilitadas simultaneamente.
Como entradas e sadas sero ligadas entre si, muitos fabricantes de Circuitos Integrados (CIs) fazem
ligao entre elas internamente. Isto reduz o nmero de pinos utilizados para o CI. A Figura 1.10
mostra o diagrama esquemtico de um destes registradores ligado a uma via. Dependendo do estado das
entradas de controle, as linhas E/S funcionam ou como entradas, ou como sadas, sendo chamadas de
linhas de dados bidirecionais.
Via de Dados com ULA (2012)

EPUSP PCS 2011/2305/2355 Laboratrio Digital

VIA DE DADOS

HS

E/S
REG.

HS

E/S

BIDIREC.
CLOCK

4
REG.
E/S
BIDIREC.

E/S
E/S

CLOCK

HS - Habilita Sada
E/S - Entrada / Sada

Figura 1.10 - Representao de Linhas de Dados Bidirecionais.

1.8. Unidade Lgica e Aritmtica


A Unidade Lgica e Aritmtica (ULA) um circuito combinatrio responsvel pela execuo de somas,
subtraes e funes lgicas, em um sistema digital. Na figura 1.11 mostrado um esquema simplificado
de uma ULA.

S
F

Figura 1.11 - Esquema Simplificado de uma ULA.


A operao que deve ser executada com os dados de entrada (A e B) determinada pelos sinais de
controle (S) e o resultado obtido na sada (F). A complexidade da ULA proporcional complexidade
do sistema em que ser utilizada; assim, sistemas simples permitem o uso de ULAs simples e sistemas
sofisticados exigem ULAs sofisticadas.
Uma vez estabelecido o porte do sistema, existe tambm o compromisso entre velocidade e preo. Por
exemplo, as calculadoras eletrnicas exigem ULAs que permitem operaes complexas, porm com
velocidade de operao baixa, reduzindo-se o custo; j os computadores de grande porte exigem
velocidade de operao elevada, aumentando o custo da ULA.
Atualmente tm-se vrias alternativas de circuitos integrados que incluem uma ULA. Entre elas esto o
74181, 74381 e 74LS881.
A seguir ser apresentada uma descrio de uma ULA integrada, o circuito integrado 74181.

Via de Dados com ULA (2012)

EPUSP PCS 2011/2305/2355 Laboratrio Digital

1.9. Circuito Integrado 74181 uma ULA de 4 bits


O circuito integrado MSI 74181 uma ULA de 4 bits que tem possibilidade de executar 16 operaes
aritmticas binrias e 16 operaes lgicas. A figura 1.12 apresenta um diagrama simplificado deste
circuito integrado.

S 3 S 2 S 1 S 0 Cn

A3

F3

A2

F2

A1

F1

A0

F0

74181

B3

B2

B1

A=B

B0

Cn+4

Figura 1.12 - Diagrama Simplificado da ULA 74181.

As tabelas I e II a seguir apresentam a descrio dos pinos e as operaes da ULA, respectivamente.


Tabela I - Descrio dos pinos da ULA 74181.
Descrio

Tipo

Pinos

Dados de entrada

A0 a A3 e B0 a B3

Entrada

Cn

Entrada

Bit de "vem um"

S0 a S3

Entrada

Seleo da operao
Modo de operao:

Entrada

M=0 - para operaes aritmticas


M=1 - para operaes lgicas
Dados de sada (resultado)

F0 a F3

Sada

Cn+4

Sada

Bit de "vai-um"

GeT

Sadas

Utilizadas para expanso utilizando carry look-ahead

A=B

Sada

Indica igualdade das duas entradas

Via de Dados com ULA (2012)

EPUSP PCS 2011/2305/2355 Laboratrio Digital

Tabela II - Sinais e Operaes da ULA 74181.

Seleo
S3

S2

S1

S0

Funes
Lgicas

Funes Aritmticas ( M = 0 )

(M=1)

Cn = 1 (sem carry)

Cn = 0 (com carry)

F = A

F=A

F=A+1

F = (A OR B)

F = A OR B

F = (A OR B) + 1

F = AB

F = A OR B

F = A OR B + 1

F=0

F = -1 (*)

F=0

F = A B

F = A + AB

F = A + AB+ 1

F = B

F = (A OR B) + A B

F = (A OR B) + A B + 1

F=AB

F=A-B-1

F=A-B

F = AB

F = AB- 1

F = AB

F = A OR B

F = A + A.B

F = A + A.B + 1

F = (A B)

F=A+B

F=A+B+1

F=B

F = A OR B + A . B

F = A OR B + A . B + 1

F=A.B

F=A.B-1

F=A.B

F=1

F=A+A

F=A+A+1

F = A OR B

F = (A OR B) + A

F = (A OR B) + A + 1

F = A OR B

F = A OR B + A

F = A OR B + A + 1

F=A

F=A-1

F=A

* (-1)10 representado por (1111)2 em Complemento de 2.

As sadas G e T so os sinais "gerador de vai-um", correspondentes ao bit mais significativo e, utilizandose o circuito integrado 74182, look-ahead carry generator, permitem a expanso da largura da palavra a
ser manipulada.
As operaes de subtrao so executadas em complemento de dois (C2). Por exemplo, (-1)
representado por (1111). As operaes lgicas so executadas bit a bit. Por exemplo, se a operao AND
aplicada s entradas A = 1011 e B = 0110, resulta F = 0010.
O resultado de uma operao de comparao apresentado na sada A = B. Para tanto, deve-se executar
a operao A - B - 1 com Cn = 1; se as duas entradas so iguais, a sada A = B toma o valor 1. Esta sada
tem a configurao open-colector para que seja possvel implementar uma funo wired-and dentre duas
ou mais sadas deste tipo pertencentes a diferentes ULAs, quando se deseja expandir a largura da
palavra a ser manipulada.
A sada Cn+4 representa o sinal de vai-um do ltimo bit da palavra. Ela pode ser usada para propagar o
vai-um para o prximo estgio quando no h preocupao com a velocidade do circuito. O sinal Cn+4
tambm pode ser usado em conjunto com a sada A = B para indicar as condies A>B e A<B.

OBSERVAO: Na realidade, em se tratando de um circuito combinatrio, a ULA 74181 pode trabalhar


com operandos representados em lgica positiva ou negativa. A Tabela II acima mostra o significado dos
bits de seleo de operaes quando se considera o uso de lgica positiva. Consulte o manual
(datasheet) do componente para o caso do uso de lgica negativa.
Via de Dados com ULA (2012)

EPUSP PCS 2011/2305/2355 Laboratrio Digital

Nesta experincia adotaremos a conveno de lgica positiva, portanto desconsidere eventuais


referncias ao uso de lgica negativa nos pinos da ULA no Altera Quartus II.

1.10. Um Fluxo de Dados Simples utilizando a ULA 74181


A figura 1.13 mostra um fluxo de dados simples utilizando o circuito integrado 74181. De uma maneira
geral, este circuito encontrado como a base do fluxo de dados de vrios microprocessadores.

DADO

CLOCK

AC

A
ULA

SELEO

Figura 1.13 - Fluxo de dados de um circuito simples utilizando o 74181.


Neste caso, todas as operaes da ULA so executadas entre o contedo do acumulador (AC) e o
contedo da via (DADO). Assim, por exemplo, uma operao de soma de dois nmeros X + Y
executada seguindo-se os seguintes passos:

Passo

S3

S2

S1

S0

Cn

Comentrio

d*

d*

AC 0

AC X

AC X + Y

* OBS: d significa que o valor no importa (do ingls dont care).

Aps cada passo deve-se gerar um pulso no sinal CLOCK para forar a cpia de sada da ULA no
acumulador.

Operaes mais complexas podero ser executadas com outras sequencias de operaes simples como
aquelas relacionadas na Tabela III. De uma maneira geral, estas operaes simples podem ser
classificadas em operaes lgicas e aritmticas e operaes de transferncia de registradores.

Via de Dados com ULA (2012)

10

EPUSP PCS 2011/2305/2355 Laboratrio Digital

2. PARTE EXPERIMENTAL
2.1. Especificao do Projeto
O circuito a ser desenvolvido na parte experimental inclui uma via de dados tri-state, contendo uma ULA
de 4 bits, registradores bidirecionais, portas de entrada e portas de sada. A figura 2.1 abaixo apresenta
um diagrama de blocos de parte do fluxo de dados do circuito a ser implementado.

LEDS

B
DADO
(CH5-CH0)

6
REG.FUNC

ULA

VAI-UM

LED

4
REG.B

REG.A
REG.ULA

VIA TRI-STATE

REG.R1

REG.R2
REG.R1

REG.RD
REG.D

DADO EXTERNO
(CH0CH3)

Figura 2.1 Diagrama de blocos de parte do circuito de via de dados com ULA.
A funo da ULA determinada pela entrada de dado especificada pelas chaves CH0 a CH6 e armazenada
no registrador REG.FUNC. Esta funo realizada sobre os dados provenientes dos registradores REG.A e
REG.B e o resultado pode ser armazenado no registrador REG.ULA.
A sada do registrador REG.ULA ligada a uma via de dados tri-state, onde vrios outros registradores
esto conectados. O registrador de dados REG.D usado para inserir um valor novo ao circuito
proveniente das chaves CH0 a CH3. Valores podem ser armazenados e posteriormente acessados via
registradores REG.R1 e REG.R2 (estes registradores podem ser usados para guardar valores para uso
posterior). E finalmente, os registradores REG.A e REG.B tambm so ligados a via.
Todos os registradores ligados na via de dados contm sinais de controle de suas respectivas sadas tristate para permitir a correta transferncia de dados entre eles, conforme apresentado na seo 1.4. A
tabela 2.1 mostra os sinais de controle dos principais componentes do fluxo de dados.
Para facilitar a implementao da transferncia de dados entre registradores, alguns cuidados devem ser
levados em conta no projeto:

Somente uma sada deve estar habilitada por vez na via de dados;
A sada do registrador que ir colocar seu dado na via deve estar estvel antes dela ser copiada
em outro registrador;
Para realizar a cpia, os registradores devem possuir um sinal de habilitao da carga de valor.
Use este sinal ao invs de usar a entrada de clock nesta operao.

Como suporte para as atividades de teste e depurao, convm monitorar alguns sinais do circuito da via
de dados com ULA. Na figura 2.1, so apresentados alguns pontos interessantes, a saber: valor da
funo da ULA, sada da ULA e do bit de vai-um, entradas da ULA e valor presente na via de dados.
Outros sinais podem ser acrescentados nesta lista.

Via de Dados com ULA (2012)

11

EPUSP PCS 2011/2305/2355 Laboratrio Digital

Tabela 2.1 Sinais de controle.


componente

sinal de controle

REG.FUNC

LOAD_RFC

ULA

ULA_FCT

REG.ULA

descrio
Carrega valor no registrador.
Cdigo de operao da ULA de 6 bits.

CLEAR_RULA

Zera valor do registrador.

LOAD_RULA

Habilita cpia de dado para o registrador.

EN_RULA

Habilita sada do registrador para colocar dado na via tri-state.

CLEAR_RA

Zera valor do registrador.

LOAD_RA

Habilita cpia de dado para o registrador.

CLEAR_RB

Zera valor do registrador.

LOAD_RB

Habilita cpia de dado para o registrador.

CLEAR_RD

Zera valor do registrador.

LOAD_RD

Carrega valor no registrador.

REG.RA

REG.RB

REG.D

EN_RD

REG.R1

Habilita sada do registrador para colocar dado na via tri-state.

CLEAR_R1

Zera valor do registrador.

LOAD_R1

Habilita cpia de dado para o registrador.

EN_R1

REG.R2

Habilita sada do registrador para colocar dado na via tri-state.

CLEAR_R2

Zera valor do registrador.

LOAD_R2

Habilita cpia de dado para o registrador.

EN_R2

Habilita sada do registrador para colocar dado na via tri-state.

A operao do circuito deve seguir os seguintes comandos (Tabela 2.2):


1.
2.
3.
4.

Entrada de dados
Transferncia de dados entre registradores
Seleo de funo da ULA
Execuo da funo

O comando deve ser escolhido nas entradas Cm1 e Cm0, e depois executado ao acionar o boto B1.

Tabela 2.2 Comandos do circuito.


Comando

Cm1Cm0

Entrada de dados

00

Transferncia de dados entre registradores

01

Seleo de funo da ULA

10

Execuo da funo

11

A entrada de dados no circuito deve ser feita atravs do registrador de dados REG.RD. O valor deve ser
especificado nas chaves CH0 a CH3.
Os dados podem ser transferidos de um registrador a outro. Para isto, as identificaes dos registradores
de origem e destino da transferncia devem ser especificadas nas chaves CH0 a CH3.
CH3

CH2

CH1

CH0

Cada registrador identificado como mostrado na tabela 2.3.


Via de Dados com ULA (2012)

12

EPUSP PCS 2011/2305/2355 Laboratrio Digital

Tabela 2.3 - Codificao dos registradores nas instrues de transferncia de dados.


Cdigo de
registrador

Registrador
origem

Registrador
destino

00

RULA

RA

01

RD

RB

10

R1

R2

11

R2

R2

A funo a ser executada pela ULA deve ser selecionada com as chaves CH0 a CH5, conforme
especificado na documentao do circuito integrado 74181.
O comando de execuo de funo armazena o resultado da funo executada pela ULA no registrador
REG.ULA.
Um exemplo de uso deste circuito apresentado a seguir:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.

Selecionar comando de entrada de dados;


Inserir o valor 5 no registrador D;
Selecionar comando de transferncia de dados;
Transferir contedo do registrador D para o registrador A;
Selecionar comando de entrada de dados;
Inserir o valor 2 no registrador D;
Selecionar comando de transferncia de dados;
Transferir contedo do registrador D para o registrador B;
Selecionar comando de seleo de funo;
Selecionar funo de soma na ULA;
Selecionar o comando de execuo de funo;
Armazenar resultado no registrador da ULA;
Selecionar comando de transferncia de dados;
Transferir contedo do registrador da ULA para o registrador R1;
Selecionar comando de entrada de dados;
Inserir o valor 10 no registrador D;
Selecionar comando de transferncia de dados;
Transferir o contedo do registrador D para o registrador A;
Selecionar comando de transferncia de dados;
Transferir o contedo do registrador R1 para o registrador B;
Selecionar comando de seleo de funo;
Selecionar a funo da operao XOR na ULA;
Selecionar o comando de execuo de funo;
Executar a operao armazenando o resultado no registrador da ULA.

Estes 24 passos anteriores executam a expresso (5+2)10 = 13.


O projeto do circuito de via de dados com ULA deve conduzir as seguintes atividades:
1. Projeto do fluxo de dados com o uso de componentes MSI disponveis no Laboratrio Digital (vide
figura 2.1) alm de decodificadores de endereo para o controle dos registradores;
2. Desenvolvimento da unidade de controle para a execuo dos comandos;
3. Sntese do circuito para a placa de desenvolvimento FPGA.
A unidade de controle deve levar em conta as operaes a serem implementadas e as restries de
temporizao para a transferncia de dados entre os registradores usando a via de dados tri-state. Por
exemplo, se a transferncia envolver a cpia de dados do registrador REG.D (origem) para o registrador
REG.A (destino), o sinal EN_RD deve ser ativado antes e, somente no perodo de clock seguinte, o sinal
LOAD_RA deve ser ativado. Convm ressaltar que o sinal EM_RD deve permanecer ativado durante a
realizao da operao de transferncia. A mquina de estados usada para modelar a unidade de
controle deve levar em conta estas restries.

A figura 2.2 ilustra a interface externa do circuito de via de dados com ULA.

Via de Dados com ULA (2012)

13

EPUSP PCS 2011/2305/2355 Laboratrio Digital

DADO
B1
COMANDO

Circuito
Via de dados
com ULA

CLOCK
RESET

SADAS

Figura 2.2 Interface do circuito.

2.2. Montagem Experimental do Projeto


O circuito projetado deve ser implementado na placa DE2 da Altera com a seguinte designao mnima
de sinais:

DADOS : chaves SW0 a SW5;

COMANDO : chave SW16 e SW17;

B1 : boto KEY0;

CLOCK : clock de 27 MHz ou de 50 MHz;

RESET : boto KEY3.

O conjunto mnimo de sinais de depurao composto por:

Funo da ULA: leds vermelhos LEDR0 a LEDR5;

Vai-um da ULA: led verde LEDG0;

Sada do registrador da ULA: display HEX0;

Sada do registrador A: display HEX1;

Sada do registrador A: display HEX2;

Contedo da via de dados: display HEX3.

Outros sinais do projeto podem usar os outros recursos disponveis da placa. O planejamento deve conter
uma tabela com a designao destes sinais adicionais.
DICA: Para os testes do circuito, sugere-se que sinais extras de teste e depurao sejam monitorados em
leds e displays na placa de desenvolvimento. Estes sinais devem monitorar partes do fluxo de dados e
tambm o estado da mquina de estados da unidade de controle.
a) Programe o projeto sintetizado na placa DE2 no Laboratrio Digital e teste o circuito.
b) Apresente os casos de teste programados para avaliar o correto funcionamento.
c) Relate quaisquer ocorrncias experimentais.

2.3. Modificao do Projeto


d) (OPCIONAL) Ao trmino da implementao do projeto base do circuito de via de dados com ULA, uma
pequena modificao ser solicitada. O professor da turma ir apresentar a especificao da
modificao.
e) Ao terminar o projeto, programe a placa DE2 no Laboratrio Digital e teste o circuito modificado.

Via de Dados com ULA (2012)

14

EPUSP PCS 2011/2305/2355 Laboratrio Digital

3. BIBLIOGRAFIA

FREGNI, E.; SARAIVA, A. M. Engenharia do Projeto Lgico Digital: Conceitos e Prtica. Editora
Edgard Blcher, 1995.

SIGNETICS. TTL Logic Data Manual. Signetics, 1982.

FREGNI, E.; LANGDON JR., G.G. Projeto de Computadores Digitais. 2 Edio, Editora Edgard
Blcher, 1976.

TOCCI. R. S.; LASKOWSKI, L. P. Microprocessors and Microcomputers - Hardware and Software.


Prentice-Hall, 2 Edio.

TOCCI, R.L.; WIDMER, N.S.; MOSS, G.L. Digital Systems: Principles and Applications. 11th ed.,
Prentice-Hall, 2011.

4. MATERIAL DISPONVEL
Circuitos Integrados TTL:

Portas lgicas: 7400, 7402, 7404, 7408, 7432, 7486.

Componentes MSI: 7474, 74126, 74138, 74139, 74173, 74181.

5. EQUIPAMENTOS NECESSRIOS

1 painel de montagens experimentais.

1 fonte de alimentao fixa, 5V 5%, 4A.

1 osciloscpio digital.

1 multmetro digital.

1 gerador de pulsos.

1 computador compatvel com IBM-PC com software Altera Quartus II.

1 placa de desenvolvimento FPGA DE2 da Altera com o dispositivo Altera Cyclone II EP2C35F672C6

Histrico de Revises
B.J.S./2001 reviso
E.T.M./2004 reviso
E.T.M./2005 reviso
E.T.M./2006 reviso
E.T.M./2008 reviso
E.T.M./2012 reviso e adaptao da parte experimental.

Via de Dados com ULA (2012)

15