Você está na página 1de 13

UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA

ENGENHARIA DE COMPUTAÇÃO

PROBLEMA I - PROJETO DE CIRCUITO PARA UM ROTEADOR

INTRODUÇÃO AO HARDWARE

MARCUS VINICIUS ARAUJO MARTINS


PROBLEMA I – PROJETO DE CIRCUITO PARA UM
ROTEADOR

INTRODUÇÃO AO HARDWARE

Relatório solicitado pela


disciplina de Introdução ao
Hardware, do curso de
Engenharia de Computação,
da Universidade Estadual
de Feira de Santana.

Tutor: Amâncio

SEMESTRE 2006.1
Novembro de 2006
Feira de Santana - Bahia

-2-
Sumário
A - Introdução............................................................................................... 4

1 - Eletrônica seqüencial................................................................................. 6

1.1 - Endereçamento:
- Registradores de deslocamento............................................................ 7

1.2 - Operação:
- Demultiplexador e Contadores........................................................ 8

1.3 - Loops:
- Comparação entre números de pacotes.............................................. 10

2 - Circuito:
- Roteador............................................................................................. 11

B – Conclusão.............................…………………………....………..…... 12

C – Referências.............................................................................................13

-3-
Introdução

Empresas e indústrias operam suas mais vastas atividades com o recurso


computacional. As atividades podem ser separadas por setores onde cada computador pode
servir a uma operação especifica. Contudo, existe um momento em que uma performance
mais eficaz pode ser conseguida, não mais trabalhando com computadores isolados, mas
sim unidos, induzindo ao compartilhamento de recursos como impressoras e gravadores de
CDs.
Contudo, mais importante que compartilhar recursos físicos é compartilhar
informações. Em empresas, registros de cadastros precisam ser comunicados e, se essa
comunicação for possibilitada por uma rede, os processos se tornam mais ágeis e versáteis.
Não se trata apenas de comodidade. A função primordial é abastecer uma tecnologia cada
vez mais carente de velocidade e funcionalidade.
Assim como numa ligação telefônica precisa de um telefone, a comunicação de
computadores é satisfeita por recursos também físicos como: Hub, Switch ou Roteador. O
hub é um dispositivo que tem a função de interligar os computadores de uma rede local.
Sua forma de trabalho é a mais simples se comparado ao switch e ao roteador : o hub
recebe dados vindos de um computador e os transmite às outras máquinas. No momento em
que isso ocorre, nenhum outro computador consegue enviar sinal. Sua liberação acontece
após o sinal anterior ter sido completamente distribuído.
O switch é um aparelho muito semelhante ao hub, mas tem uma grande diferença: os
dados vindos do computador de origem somente são repassados ao computador de destino.
Isso porque os switchs criam uma espécie de canal de comunicação exclusiva entre a
origem e o destino. Dessa forma, a rede não fica "presa" a um único computador no envio
de informações.
O roteador (ou router) é um equipamento utilizado em redes de maior porte. Ele é
mais "inteligente" que o switch, pois além de poder fazer a mesma função deste, também
tem a capacidade de escolher a melhor rota que um determinado pacote de dados deve
seguir para chegar em seu destino.
Ao “recurso” que se deseja comunicar dar-se o nome de “pacote”. Um pacote para
ser transmitido necessita de informações prévias como o endereço do computador de

-4-
destino e, ou mesmo, tamanho do pacote, a fim de corrigir prováveis erros durante a
comunicação.
Como, por exemplo, um endereço precisa ser “informado”, o uso de estruturas de
registradores e contadores se torna um recurso essencial na comunicação entre
computadores. A eletrônica seqüencial é então aplicada uma vez que, estruturas como flip-
flops garantem a memorização de dados, implementando a comunicação.
Esse relatório tem o objetivo prévio de planejamento e projeto de um roteador que
faça a transmissão de um fluxo de dados para 16 máquinas. O fluxo de dados inicia com as
informações do endereço da máquina destino e a quantidade de pacotes a serem
transmitidos.

-5-
1-Eletrônica Seqüencial

Circuitos digitais são basicamente divididos em dois tipos: lógica combinacional e


lógica seqüencial. No campo combinacional, as saídas dependem única e exclusivamente
das variáveis de entrada. Já no seqüencial, as saídas dependem das variáveis de entrada e ou
de seus estados anteriores que permanecem armazenados, operando sob uma seqüência de
pulsos chamada clock.
O recurso responsável pelo armazenamento de dados, com o objetivo de recombiná-
los posteriormente, é chamado de flip-flop. Genericamente, um flip-flop é um bloco com
duas saídas (Q e ‘Q), duas entradas para as variáveis e uma entrada para o clock. Embora
existam duas saídas, a saída Q é dita principal, e, logo, a mais utilizada. A saída Q e ‘Q são
obtidas conforme a combinação das entradas com o pulso de clock.
O clock refere-se a uma seqüência de pulsos de bits, logo, zero ou um. Em uma faixa
de tempo pré-determinada (geralmente em nano segundos), o bit se alterna repetidamente.
A cada espaço da “onda” que se repete dar-se o nome de pulso. Com esse princípio, pode se
combinar o estado atual do clock com a forma das entradas, gerando uma saída
combinacional.
O comportamento das saídas variam em relação aos tipos de flip-flops. Flip-flops
tipo RS, por exemplo, assumem valor lógico 1 na saída quando a entrada S está em nível
lógico 1 e R em 0. Contudo, essa saída só acontecerá se o clock estiver em nível 1. Em 0, o
flip-flop mantém a saída anterior. Para outros tipos de flip-flop, essa mudança pode existir
quando o clock estiver e 0, ou ainda, na subida ou descida do clock, quando dizemos que o
flip-flop e sensível a subida ou descida de clock, respectivamente.

-6-
1.1-Endereçamento: Registradores de deslocamento

No projeto do roteador, o pacote de dados não pode ser enviado deliberadamente.


Dentro do conjunto de informações que se deseja enviar para um outro computador, deve-
se, ao menos, endereçar para onde esse pacote deve ser enviado. A essa estrutura que
recebe um fluxo e, destina para varias saídas (no caso 16) dar-se o nome de
demultiplexador. Para isso, é necessário identificar cada computador de destino com um
código binário. Como são 16 computadores, a identificação pode ser feita nomeando-os de
0000 a 1111. Essa informação deve ser passada para o demultiplexador que por sua vez,
encaminhará o conteúdo do fluxo ao destino antevisto. As saídas Q3, Q2, Q1 e Q0 ,
mostradas abaixo, formam, nessa ordem, as saídas de endereçamento das máquinas de
destino.

Saidas Paralelas
Q3 Q2 Q1 Q0
Entrada Serie U1 U2 U3 U4
D Q D Q D Q D Q
_ _ _ _
CP Q CP Q CP Q CP Q

Clock

Flip-Flops do tipo D são iguais a JK, só que com entradas invertidas. Logo, não
existem entradas do tipo 01 ou 10 no flip-flop D.

J K Q J K D Q
0 0 Qa 0 0 Não existe / D Q

0 1 0 0 1 0 0 0 0

1 0 1 1 0 1 1 1 1

1 1 ‘Qa 1 1 Não existe /

A diferença do flip-flop JK para o JK Mestre-Escravo está em como a saída foi


combinada. No primeiro, a saída só é combinada quando o clock está em 1, tipo o RS. No
segundo, a saída Q é obtida com a subida ou descida do clock, exclusivamente. Para
alternar um flip-flop que combine a saída na descida de clock, basta colocar um inversor
interno à entrada de clock.
-7-
1.2-Operação: Demultiplexador e Contadores

As quatro saídas que compõem o endereço são passadas para um demultiplexador,


que fará a leitura dos bits e abrirá caminho ao computador de destino desejado.
No circuito montado (exibido completo no
16dmux
Q15 OUTPUT

OUTPUT
PC 1 final desse relatório), antes das saídas para as
Q14 PC 2

Q13 OUTPUT PC 3
Q12
Q11 OUTPUT PC 4
máquinas, foi colocada uma porta “e” que garante
Q10 OUTPUT PC 5
A Q9
B Q8 OUTPUT PC 6 que a passagem para a máquina informada só será
C Q7 OUTPUT PC 7
D Q6
Q5
Q4
OUTPUT

OUTPUT
PC 8

PC 9
aberta quando o quinto bit chegar, afim de separar
Q3
Q2 OUTPUT PC 10

Q1
Q0
OUTPUT PC 11 endereço de tamanho. A quantidade de pacotes
OUTPUT PC 12
16 BIT DEMUX
inst69

OUTPUT PC 13
também é conseguida por um registrador de
OUTPUT PC 14

OUTPUT

OUTPUT
PC 15

PC 16
deslocamento semelhante ao utilizado nos bits de
1 a 4. Os bits 6 a 9 correspondem a quantidades de pacotes de 1 byte (tamanho pré-
estipulado) e serão encaminhados a um comparador que fará os loops necessários.

8 BIT FLUXO
Após a porta “e”, encaminha a uma outra
16dmux AND3
que combina sua saída ao fluxo e ao 9º bit, pois,
Q15 AND2
OUTPUT PC 1
Q14
inst93
após ele, os bits que virão já fazem parte do
Q13 inst70
Q12
Q11
pacote, composto por: 4 bits de endereçamento,
Q10
A Q9 4 de tamanho, e pacotes de 8 bits (1 byte), que
B Q8
5 BIT
C Q7 podem repetir até 16 vezes, em virtude de a
D Q6
Q5 quantidade operar sob 4 bits. A estrutura
Q4
Q3
Q2
montada ao lado se repete para todas as outras
Q1
Q0 saídas do demultiplexador.
inst6916 BIT DEMUX

Para fazer a contagem de cada pulso de clock, um contador assíncrono foi


utilizado. Formado por 4 flip-flops tipo D, o contador faz a contagem de pulsos e muda sua
saída a cada novo pulso. No caso específico, conta de 0000 a 1111 (16 vezes). Repetindo a
cada término. A idéia básica é uma entrada fixa em 1 no primeiro flip-flop e clocks
associados a saída do flip-flop anterior. As entradas desse contador correspondem a esse
valor fixo em um no 1º flip-flop, uma entrada clear e um clock. As quatro saídas
correspondem a contagem.

-8-
No circuito , as entradas

T0

T1

T2

T3
para os registradores de
endereçamento e tamanho

OUTPUT

OUTPUT

OUTPUT

OUTPUT
são subjugados a essas
LDN INPUT
VCC
quatro saídas.
DFF DFF DFF DFF
PRN PRN PRN PRN
D Q D Q D Q D Q
CK INPUT
VCC

CLRN CLRN CLRN CLRN


inst5 inst4 inst2 inst3

CLR INPUT
VCC

Porém, esse contador não pode ficar contando sempre, pois, desta forma, a
diferenciação entre o que é pacote e o que é informação não pode ser feita. Uma estrutura
de controle foi criada. Ela fará com que, ao contar o nono bit, sua saída mude para 0,
travando-o. Ao passo, barra-se essa saída visando ativar a segunda porta “e” do
demultiplexador, até então inativa e, por conseqüência, não havendo ainda nenhum tipo de
passagem de informação para algum computador. A tabela verdade e expressão para essa
estrutura são:
‘A’B ‘AB AB A’B Expressão: ‘A + A’B’C
‘C’D 1 1 0 1 Após o nono bit, a saída, que muda para 0,
‘CD 1 1 0 1 retorna para uma porta “e” antes do contador, fazendo-o
CD 1 1 0 0 travar.
C’D 1 1 0 0

Clock Block1
AND2
CLOCK INPUT LDN T0
VCC
CK T1
inst27 CLR T2
AND3
T3 EXP

inst2
inst inst1

EXP OR2

inst3 EXP
inst4
inst5

Parte do circuito mostrando travamento do contador

-9-
1.3-Loops: Comparação entre números de pacotes

Os bits 6 a 9 são responsáveis pela quantidade de pacotes a serem enviados. Para


garantir que todos os pacotes serão entregues ao computador de destino, uma estrutura de
comparação foi montada. Baseia-se em dois contadores assíncronos onde o primeiro, ao
contar 8, muda sua saída para zero, se auto zerando e dando um pulso no segundo contador.
Faz isso até as saídas do segundo contador serem iguais aos bits de quantidade de pacotes.
Quando iguais, ativa-se uma porta “e” de quatro entradas, negada, obtendo zero na saída e
sendo ligada a todos os clears do sistema.

saídas do contador 1 da comparação


‘A’B ‘AB AB A’B
‘C’D 1 1 0 0 Expressão: ‘A
‘CD 1 1 0 0 Quando o contador passa a ser 1000 (8), ele
CD 1 1 0 0 zera o clear e, portanto, reinicia a contagem. A cada ova
C’D 1 1 0 0 contagem, um pulso é passado ao segundo contador.

AND2
Block1

LDN T0
inst48 CK T1
CLR T2
T3
As duas entradas dessa estrutura
EXP
inst38

Block1
inst47
LDN
CK
CLR
T0
T1
T2
referem-se: ao clock do sistema e a saída
T3
da estrutura que trava o contador
inst58
responsável pelo registro de endereços e
AND2
inst56

quantidade. Essa saída deve entrar no


contado de comparação de forma
invertida afim de que ele só comece a
AND2
inst57

contar após o nono bit.


AND2
inst59

AND2
inst60
NAND4
inst31

OUTPUT
pin_name

- 10 -
2-Circuito :Roteador
INPUT
Clock
CLOCK
VCC

FLUXO INPUT Fluxo


VCC

EXP

inst37

+
Block1
AND2
LDN T0
CK T1
inst27 CLR T2
AND3
T3 EXP

inst2
inst inst1

EXP
OR2
inst3 EXP

inst5 inst4

NAND4 DFF
PRN
EXP D Q
inst24

CLRN
EXP
inst6 inst15
inst25
16dmux AND2 AND3

EXP
Q15 OUTPUT PC 1
Q14
inst26 inst70 inst93
Q13
Q12 AND2 AND3

Q11 OUTPUT PC 2
EXP Q10 inst71 inst94
inst52 A Q9 AND2 AND3
NAND4 DFF B Q8
PRN OUTPUT pin_name33
D Q C Q7
inst73 inst95
D Q6
Q5 AND2 AND3
CLRN
EXP Q4 OUTPUT pin_name34
inst7 inst16
inst29 Q3 inst74 inst96
Q2 AND2 AND3
EXP Q1 OUTPUT pin_name35
inst30 Q0
inst75 inst97
16 BIT DEMUX
inst69
AND2 AND3

OUTPUT pin_name36
NAND4 DFF
inst76 inst98
PRN
D Q AND2 AND3
OUTPUT pin_name37
CLRN inst77 inst99
EXP
inst8 inst17
AND2 AND3
inst32
OUTPUT pin_name38
EXP
inst78 inst100
inst33 AND2 AND3
EXP
OUTPUT pin_name39
inst35
NAND4 DFF inst79 inst101
PRN
EXP D Q AND2 AND3
OUTPUT pin_name40
inst34

CLRN inst80 inst102


inst9 inst18 AND2 AND3
OUTPUT pin_name41

EXP inst81 inst103

AND2 AND3
inst36
OUTPUT pin_name42

inst82 inst104

AND2 AND3

NAND4 DFF OUTPUT pin_name43


PRN
EXP D Q inst83 inst105
inst53 AND2 AND3 Block1
CLRN OUTPUT pin_name44
AND2
inst10 inst19 LDN T0
inst84 inst106
CK T1
AND2 AND3
inst48 CLR T2
EXP OUTPUT pin_name45
T3
inst39 inst85 inst107

E XP
in s t 3 8
AND2 AND3 inst47
EXP
OUTPUT pin_name46
inst40
NAND4 DFF inst72 inst108
PRN
D Q

Block1
CLRN
inst11 inst20
LDN T0
CK T1
EXP CLR T2
T3
inst42

inst58
NAND4 DFF
PRN

AN D 2
D Q

in s t 2 8
CLRN
inst12 inst21

AN D 2
in s t3 1
EXP

inst45

EXP

inst51
NAND4 DFF

AN D 2
PRN

in s t 4 1
EXP D Q
inst50

CLRN
EXP
inst14 inst23
inst49

AN D 2
in s t 4 3
NAND4 DFF
PRN
EXP D Q
inst55

CLRN
EXP
inst13 inst22
inst54
N AN D 4
in s t4 4

O U TPU T
p in n a m e

LIGA EM TODOS OS CLEARS

A estrutura dos registradores pode ser feita da maneira descrita ou desta forma,
apresentada no circuito. Por decisão de projeto, opinou-se por esta forma, pegando cada bit
de um flip-flop especifico. Contudo, vale também a forma convencional.

- 11 -
Conclusão

Rotear uma rede implica ter dados suficientes para uma perfeita comunicação entre
máquinas. Esses dados resumem-se ao conjunto de dados que se deseja transmitir, ou
pacote, e a informações deste pacote, tais como endereço de origem, destino, numero de
pacotes e, além desses, verificação de erros e bits de controle.
Estruturas como bit de paridade e check-sum podem ser criadas visando um
aperfeiçoamento do circuito. Conferir os dados de entrada com os de saída possibilita
correções de erros e, logo, coíbe possíveis problemas de recepção na comunicação de
computadores.
Além disso, estruturas eletrônicas não são tão imediatas como parecem ser. A saída
de uma porta “e”, por exemplo, só tem nível 1 após alguns nano segundos depois que suas
entradas passam a ser 1. Isso parece ser irrelevante. Contudo, é bastante promissor num
sistema no qual o clock trabalha numa freqüência altíssima e onde deve existir precisão.
Uma descida de clock no momento errado altera consideravelmente os resultados esperados
na saída do circuito.
Para resolver problemas de atraso em circuitos eletrônicos, podem ser criadas
estruturas de atraso para locais específicos , ou mesmo alterando a freqüência do clock. Não
existe a maneira definitiva de resolver problemas de temporização em circuitos. A forma de
correção é especifica pois, depende muito de que tipos de recursos estão sendo utilizados
no sistema.

- 12 -
Referências

1- TOCCI, Ronald J.; WIDMER, Neal S. Sistemas digitais : principios e aplicacoes. 7.


ed Sao Paulo: LTC.

2- IDOETA, Ivan V. (Ivan Valeije); CAPUANO, Francisco G. (Francisco Gabriel).


Elementos de eletronica digital. 11. ed Sao Paulo: Erica, 1986.

3 - TANENBAUM, Andrew S. Redes de computadores. Rio de Janeiro: Elsevier, 2003.

- 13 -