Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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.
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).
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).
REG. A
REG. B
CONTROLE
CLOCK
CONTROLE
VIA
REG. C
CONTROLE
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
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
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
HAB - Habilita
PARA O PERIFRICO
OU INTERFACE
PORTAS
HAB
VIA DE DADOS
ENDEREO
DO PERIFRICO
OU INTERFACE
DO PERIFRICO
PORTAS
HAB
LEITURA / GRAVAO
4
4
REG.
A
REG.
B
CONTROLE
CONTROLE
REG.
C
CONTROLE
REG.
A
REG.
B
REG.
C
CONTROLE
CONTROLE
CONTROLE
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
S
F
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
Tipo
Pinos
Dados de entrada
A0 a A3 e B0 a B3
Entrada
Cn
Entrada
S0 a S3
Entrada
Seleo da operao
Modo de operao:
Entrada
F0 a F3
Sada
Cn+4
Sada
Bit de "vai-um"
GeT
Sadas
A=B
Sada
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
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.
DADO
CLOCK
AC
A
ULA
SELEO
Passo
S3
S2
S1
S0
Cn
Comentrio
d*
d*
AC 0
AC X
AC X + Y
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.
10
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.
11
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
LOAD_RULA
EN_RULA
CLEAR_RA
LOAD_RA
CLEAR_RB
LOAD_RB
CLEAR_RD
LOAD_RD
REG.RA
REG.RB
REG.D
EN_RD
REG.R1
CLEAR_R1
LOAD_R1
EN_R1
REG.R2
CLEAR_R2
LOAD_R2
EN_R2
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.
Cm1Cm0
Entrada de dados
00
01
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
12
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.
A figura 2.2 ilustra a interface externa do circuito de via de dados com ULA.
13
DADO
B1
COMANDO
Circuito
Via de dados
com ULA
CLOCK
RESET
SADAS
B1 : boto KEY0;
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.
14
3. BIBLIOGRAFIA
FREGNI, E.; SARAIVA, A. M. Engenharia do Projeto Lgico Digital: Conceitos e Prtica. Editora
Edgard Blcher, 1995.
FREGNI, E.; LANGDON JR., G.G. Projeto de Computadores Digitais. 2 Edio, Editora Edgard
Blcher, 1976.
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:
5. EQUIPAMENTOS NECESSRIOS
1 osciloscpio digital.
1 multmetro digital.
1 gerador de pulsos.
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.
15