Você está na página 1de 16

1 Introduo

Um sistema pode ser definido como sendo um conjunto de elementos que so interligados de alguma maneira para compor um todo e assim realizar funcionalidade especfica. Por exemplo, um aparelho de som hi-fi composto de vrios componentes, tais como compartimento para discos e fitas, amplificador e auto-falantes. Todos so interconectados por cabos eltricos. Um sistema tambm possui uma funo bem definida, a qual pode ser identificada a partir das funcionalidades de seus componentes. Por exemplo, a funo do aparelho de som hi-fi transformar a informao armazenada em discos e/ou fitas em som audvel, o que algo que nenhum dos componentes do sistema pode realizar por si s. Neste sentido, pode-se identificar dois aspectos fundamentais em qualquer sistema: sua estrutura e seu comportamento. A estrutura reflete os componentes e como eles esto interconectados e o comportamento reflete a funcionalidade do sistema. Sistemas em que o nmero de componentes alto e/ou as inter-relaes entre eles no so muito claras ou difceis de serem estabelecidas e entendidas so ditos complexos. No projeto de tais sistemas complexos, a identificao de alguma ordem ou regularidade de extrema importncia, o que normalmente requer uma abordagem estruturada e sistemtica. Dependendo de quais aspectos se est tentando identificar, deve-se usar um tipo de representao e um nvel de abstrao adequados. Os trs tipos mais comuns de representao so o comportamental, o estrutural e o fsico. Uma representao comportamental captura o sistema como uma caixa preta e se concentra na especificao do comportamento como uma funo dos valores de entrada e o tempo (ver figura 1.1). Em outras palavras, uma representao comportamental descreve a funcionalidade mas no a implementao de um dado sistema, definindo as respostas da caixa preta para qualquer combinao dos valores de entrada mas sem descrever como projetar ou construir o sistema usando dados componentes.

x y z=f(x,y)

Figura 1.1 - Sistema como uma caixa preta. Uma representao estrutural define a caixa preta como um conjunto de componentes e suas interconexes. Diferente da representao comportamental, a representao estrutural especifica a implementao do sistema sem qualquer referncia sua funcionalidade. Isto ilustrado na figura 1.2. Obviamente, muitas vezes a funcionalidade pode ser derivada a partir dos componentes interconectados. No entanto, derivar a funcionalidade de um sistema desta maneira muito difcil, principalmente se o sistema possui um grande nmero de componentes.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-2

a c z

Figura 1.2 - Sistema como um conjunto de componentes interconectados. Uma representao fsica especifica as caractersticas fsicas da caixa preta, indicando as dimenses e as posies de cada componente e conexo existentes na descrio estrutural do sistema. Enquanto a representao estrutural fornece a conectividade do sistema, somente a representao fsica que descreve precisamente as relaes espaciais dos vrios componentes. Ou seja, a representao fsica usada para descrever o sistema depois que ele foi fabricado, especificando seu peso, tamanho, consumo de potncia e posio de cada pino de entrada ou sada. Uma maneira natural e conveniente para representar a estrutura de um sistema o uso de diagramas de bloco, onde componentes so representados por retngulos, chamados blocos, e conexes que so denotadas por linhas interligando os blocos. A figura 1.3 mostra um diagrama do aparelho de som hi-fi.
Compartimento para discos Compartimento para fitas

Amplificador

Auto-falante esquerdo

Auto-falante direito

Figura 1.3 - Diagrama de blocos para o aparelho de som hi-fi. O processo de projeto de sistemas, principalmente produtos eletrnicos em geral e sistemas digitais em particular, consiste sempre de pelo menos trs fases, cada uma centrada em uma das representaes de projeto: 1. derivar uma representao comportamental da funcionalidade do produto 2. converter esta representao para uma representao estrutural contendo componentes de uma dada biblioteca de componentes 3. produzir uma representao fsica que especifica como montar e fabricar o produto Qualquer projeto pode ser realizado seguindo estes passos usando diferentes nveis de abstrao. Em um nvel de abstrao apenas determinados detalhes so representados. Normalmente, os detalhes capturados em uma dada fase do projeto dependem da complexidade do sistema. Por exemplo, praticamente impossvel projetar um microprocessador inteiro usando apenas portas lgicas bsicas. Normalmente, inicia-se o projeto pelos blocos bsicos no nvel lgico. A seguir, estes blocos so interconectados para compor um sistema mais complexo, como por exemplo um microprocessador.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-3

Na prxima seo, sero abordados outros formalismos para a representao da estrutura e do comportamento de sistemas, alm dos nveis de abstrao mais comumente utilizados no projeto de sistemas digitais.

1.1 Sistemas Digitais


Este texto tem por objetivo introduzir o estudo de sistemas digitais, dando especial ateno aos componentes bsicos destes sistemas. Um sistema digital pode ser definido como um conjunto de componentes interconectados que processam informaes em forma digital ou discreta. Na maioria dos sistemas digitais, os componentes bsicos utilizados so dispositivos eletrnicos chamados circuitos integrados (CIs). As ligaes entre estes componentes eletrnicos so conexes fsicas atravs das quais a informao digital pode ser transmitida. Sistemas digitais modernos abrangem uma vasta gama de graus de complexidade. Os componentes disponveis para a construo de sistemas digitais vo desde chaves do tipo ligadesliga at computadores completos. O nmero de componentes em um sistema digital pode variar de um, dois ou de milhares de componentes. Obviamente, quanto mais componentes so necessrios implementao de um sistema digital, mais complexo ele e, conseqentemente, mais difcil de entender seu funcionamento e de projet-lo. Da a importncia do uso de nveis de abstrao no processo de projeto de sistemas digitais. Um nvel de abstrao, ou de granularidade, caracterizado pelo tipo de objetos utilizados na representao. Em geral, pode-se identificar quatro diferentes tipos de objetos em um produto eletrnico: transistores, portas, registradores e processadores. Os correspondentes nveis de abstrao so sumarizados na tabela 1.1. Tabela 1.1 Nveis de abstrao. Nvel Transistor Comportamento Equaes diferenciais, diagramas correntevoltagem Equaes Booleanas, mquinas de estado finitas (FSM) Algoritmos, flowcharts, conjunto de instrues, generalizaes de FSMs Especificao executvel, programas Estrutura Transistores, resistores, capacitores Portas lgicas, Flip-flops Somadores, comparadores, contadores, registradores Processadores, controladores, ASICs Fsico Clulas analgicas e digitais Mdulos, unidades

Portas

Registrador

Microcircuitos

Processador

Placas de circuito impresso, mdulos multicircuitos

Como mostrado na tabela 1.1, os principais componentes no nvel de transistores so transistores, resistores e capacitores, que so combinados para formar circuitos analgicos e digitais que realizam uma dada funcionalidade. Esta funcionalidade usualmente descrita por um conjunto de equaes diferenciais ou por algum tipo de relacionamento entre corrente e tenso. A representao fsica destes circuitos, denominados clulas, podem consistir de componentes do nvel de transistores e as conexes que os interconectam.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-4

Os principais componentes do nvel de portas so portas lgicas e flip-flops. Portas lgicas so circuitos especiais que implementam operaes Booleanas, tais como E e OU. Um flip-flop um elemento bsico de memria que capaz de armazenar um bit de informao, podendo assumir o valor 0 (falso) ou 1 (verdadeiro). Portas e flip-flops so clulas digitais que podem ser grupadas para formar mdulos ou unidades aritmticas e de memria. Os mdulos so utilizados como componentes bsicos no nvel de registradores. O comportamento de cada mdulo pode ser descrito com o uso de equaes Booleanas e diagramas de mquinas de estados finitas (Finite State Machines - FSMs). No nvel de registradores, os principais componentes so unidades aritmticas e de memria, tais como, somadores, comparadores, multiplicadores, contadores, registradores, bancos de registradores, filas, etc. Cada um destes componentes um mdulo com dimenses fixas, um atraso de propagao e um conjunto de posies (fixas) para as entradas e sadas do mdulo. Estes componentes do nvel de registradores podem ser montados e interconectados em microcircuitos, que podem ser usados como componentes bsicos no nvel de abstrao acima. Usualmente, estes microcircuitos so descritos por fluxogramas, conjuntos de instrues, diagramas de FSMs ou tabelas de estados. O mais alto nvel de abstrao apresentado na tabela o nvel de processador, onde os componentes bsicos so processadores, memrias, controladores e interfaces, alm de circuitos de aplicao especfica (Application Specific Integrated Circuits - ASICs). Geralmente, um ou mais destes componentes so montados em uma placa de circuito impresso e conectados com fios que so impressos na placa. O comportamento de sistemas compostos destes componentes do nvel de processadores usualmente descrito utilizando-se uma linguagem natural, uma especificao executvel em alguma linguagem de descrio de hardware (Hardware Description Language - HDL), ou um algoritmo ou programa escrito em uma linguagem de programao convencional. A representao estrutural mais comum para sistemas digitais o diagrama de blocos. Dependendo do nvel de abstrao, cada bloco pode representar objetos correspondentes ao nvel, por exemplo, portas lgicas no nvel de abstrao de portas; registradores, somadores, etc. no nvel de registradores; e controladores e ASICs no nvel de processador. As interconexes representam as conexes entre os objetos. A figura 1.4 mostra o diagrama de blocos para a unidade lgica e aritmtica (ULA) e os registradores de entrada e sada, os quais constituem partes essenciais de qualquer sistema computacional. No diagrama de blocos, no h detalhamento dos componentes, mas apenas uma idia genrica da estrutura como um todo. Cada bloco pode ser mostrado com mais detalhes, em algum outro diagrama de blocos mais detalhado, ou num diagrama esquemtico. Isto revela a natureza hierrquica existente por detrs de qualquer projeto de sistema.
R1
4

R2
4 1

Cout 1

ULA
4

controle

R3

Figura 1.4 - Diagrama de blocos genricos de uma ULA e seus registradores.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-5

A figura 1.5 mostra o diagrama de blocos mais detalhado para a unidade lgicoaritmtica (ULA) da figura 1.4. J a figura 1.6 detalha o somador completo, que o tipo de bloco usado para compor a ULA.
R13 R2 3 R12 R2 2 R11 R2 1 R10 R2 0
Controle

xor 3

xor 2

xor 1

xor 0

I3
Ci

I2
Ci

I1
Ci

I0
Ci

Cout
Co

FAD 3
Co

FAD 2
Co

FAD 1
Co

FAD 0

R3 3

R3 2

R3 1

R3 0

Figura 1.5 - Diagrama de blocos mais detalhado de uma ULA.

R1 i

Ii FAD i
Ci

X0

A0

A1

A2

X1

O0
Co

R3 i

Figura 1.6 - Esquemtico de um somador completo (full-adder - FAD). Para representar o comportamento de sistemas digitais no nvel de portas lgicas usamse tabelas verdades e equaes Booleanas. No nvel de registradores, usa-se algum tipo de linguagem para descrever as transferncias de dados entre os registradores. Para possibilitar a simulao do sistema no nvel de processador so geralmente utilizadas linguagens procedurais para descrever os algoritmos na forma de programas executveis. Por exemplo, para a estrutura da ULA dada na figura 1.4, a descrio algortmica poderia ser: se (controle=0) R3_ R1+R2; seno R3_ R1-R2; Esta descrio indica que o valor de controle determina se a ULA realizar uma soma ou uma subtrao.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-6

1.2 Tipos de Dados e Representao de Dados


Nesta seo, iremos estudar os tipos de dados mais comumente encontrados nos sistemas digitais, mostrando como eles podem ser codificados em formato binrio. Os dados encontrados nos sistemas digitais (note-se que os computadores atuais so sistemas digitais) podem ser classificados em uma das seguintes categorias: Nmeros usados em clculos aritmticos; Letras do alfabeto, usadas no processamento de dados; Smbolos discretos, usados para diversos propsitos

Todos os dados so representados em formato binrio porque o uso deste formato facilita o projeto de circuitos eletrnicos que exibem duas condies possveis, as quais so convenientemente interpretadas como os valores 0 e 1 de um dgito binrio (bit). Tais circuitos eletrnicos so projetados para realizar um repertrio de operaes necessrias que so disponibilizadas nos computadores.

1.2.1 Notao Posicional


Todos os sistemas numricos utilizados pelo ser humano so posicionais. Em um sistema posicional, cada dgito possui um peso associado. Assim, o valor de um dado nmero corresponde a uma soma ponderada de seus dgitos, como por exemplo: 1999 = 1 1000 + 9 100 + 9 10+ 9 1 Note que, no nmero anterior, o peso de cada posio 10i, onde i corresponde posio do dgito, contada a partir da direita, e sendo i=0. para o dgito mais direita. Em geral, qualquer nmero decimal D , no formato d1 d0 d-1 d-2 tem como valor: D = d1 101 + d0 100 + d-1 10-1 + d-2 10-2 onde 10 chamado base. Num sistema posicional genrico, a base pode ser qualquer valor inteiro r, e um dgito numa posio i assume peso ri . Logo, podemos escrever o formato genrico de um nmero em tal sistema como sendo dm-1 dm-2 d1 d0 . d-1 d-2 d-n onde h m dgitos esquerda do ponto e n dgitos direita do ponto. Note que, se no houver ponto, assume-se que este est direita do dgito mais direita. O valor deste nmero o somatrio dos produtos de cada dgito pela correspondente potncia da base: D=
m1 i = n

ri

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-7

Para um nmero qualquer, o dgito mais direita comumente referenciado como dgito menos significativo (least-significative bit - LSB, em ingls), ao passo que o dgito mais esquerda denominado dgito mais significativo (most-significative bit MSB, em ingls). Desde que sistemas digitais usam dgitos binrios, estaremos particularmente interessados no sistema binrio. Neste sistema, a base utilizada 2, de modo que um nmero em binrio assume a forma: bm-1 bm-2 b1 b0 . b-1 b-2 b-n e seu valor pode ser encontrado por B=
m 1

i= n

b 2
i

Similarmente ao sistema decimal, o ponto no sistema binrio denominado ponto binrio. Normalmente, quando se trabalha com sistemas de base no-decimal, indica-se a base subscrevendo-se o valor da base direita do nmero. Exemplos: 101012 = 1 16 + 0 8 + 1 4 + 0 2 + 1 1 = 2110 .11112 = 1 0.5 + 1 0.25 + 1 0.125 + 1 0.0625 = 0.937510

1.2.2 Nmeros Octais e Hexadecimais


Alm do sistema decimal e do sistema binrio, dois outros sistemas so de grande importncia por proverem representaes convenientemente compactas de nmeros grandes. Trata-se dos sistemas octal (base 8) e hexadecimal (base 16). No sistema octal, cada dgito representa um valor entre 0 e 7. J no sistema hexadecimal, cada dgito representa um valor entre 0 e 15. Para representar os valores maiores do que 9 usando apenas um dgito, utilizam-se letras. Assim, o valor 10 representado por A, o 11, por B e assim por diante, at 15 (que representado por F). A tabela 1.2 mostra os inteiros binrios de 0 a 10001, juntamente com os equivalentes octal, decimal e hexadecimal. Note que cada dgito octal pode ser representado por 3 dgitos binrios, enquanto que um dgito hexadecimal pode ser representado por 4 dgitos binrios. Tabela 1.2 - Representao de inteiros em binrio, octal, decimal e hexadecimal.
Binrio 0 1 10 11 100 101 110 Octal 0 1 2 3 4 5 6 Decimal 0 1 2 3 4 5 6 Hexa 0 1 2 3 4 5 6

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-8

111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001

7 10 11 12 13 14 15 16 17 20 21

7 8 9 10 11 12 13 14 15 16 17

7 8 9 A B C D E F 10 11

A tabela 1.3 mostra os inteiros binrios de 0 a 10001 e seus equivalentes octal, decimal e hexadecimal codificados em binrio. Tabela 1.3 - Representao de inteiros em binrio, octal, decimal e hexadecimal.
Binrio Octal codificado em binrio Decimal codificado em binrio Hexadecimal codificado em binrio

0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001

000 001 010 011 100 101 110 111 001 000 001 001 001 010 001 011 001 100 001 101 001 110 001 111 010 000 010 001

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0001 0000 0001 0001 0001 0010 0001 0011 0001 0100 0001 0101 0001 0110 0001 0111

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0001 0000 0001 0001

Para se converter um nmero binrio em octal separam-se os dgitos em grupos de 3, a partir do ponto binrio para a esquerda. Aps, substitui-se cada grupo pelo dgito octal correspondente. Exemplo:

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-9

10100111002 = 001 010 011 100 = 12348 E para converter-se um nmero em binrio para hexadecimal, o procedimento anlogo, exceto que os grupos devero ser de 4 dgitos.

Exemplo 1.1: converter-o nmero binrio que segue para hexadecimal 10100111002 = 0010 1001 1100 = 29C16 Note que nestes exemplos foram adicionados zeros esquerda, de modo que todos os grupos tivessem 3 dgitos, no caso da converso direta binrio-octal, e 4 dgitos no caso da converso direta binrio-hexadecimal. A converso no sentido oposto tambm bastante simples. Substitui-se cada dgito octal ou hexadecimal pelo conjunto de 3 ou 4 dgitos binrios que o representa. Exemplo 1.2: converter-os nmeros que seguem para binrio. 7658 = 1111101012 FED16 = 1111111011012

1.2.3 Converso entre Sistemas Numricos


Como regra geral, no se pode converter um nmero representado numa determinada base para outra base simplesmente substituindo-se dgitos de uma base pelos seus equivalentes na outra. Isto funciona somente nos casos em que ambas bases so potncias de um mesmo nmero (como os casos mostrados anteriormente). Quando no este o caso, ser necessrio utilizar-se um procedimento mais complexo o qual requer operaes aritmticas.. A seguir, ser mostrado como converter um nmero em qualquer base para a base 10, e viceversa, usando aritmtica de base 10. Como indicado na sub-seo 1.2.1, o valor de um nmero em qualquer base representado pela frmula: D=
m1 i = n

ri

Onde r a base do nmero, m indica o nmero de dgitos esquerda do ponto e n indica o nmero de dgitos direita do ponto. Uma outra alternativa equao anterior re-escrever a parte inteira da equao por: D = (((( dm-1 ) r + dm-2 ) r + ) r + d1 ) r + d0 Desta equao, possvel derivar um procedimento iterativo que obtm cada um dos dgitos do nmero a partir do mais significativo, acumulando a soma decimal ponderada.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-10

Essa equao tambm um bom ponto de partida para converter um nmero decimal D para outra base r qualquer. Se dividirmos D por r na equao, a parte parametrizvel da equao representa o quociente Q = ((( dm-1 ) r + dm-2 ) r + ) r + d1 com resto R = d0 . Em outras palavras, d0 obtido como o resto da diviso inteira de D por r. Alm disso, como o quociente Q na equao anterior tem o mesmo formato do nmero original, sabe-se que sucessivas divises por r permitem obter-se sucessivos dgitos de D, da direita para a esquerda, at que todos os dgitos de D tenham sido encontrados.

1.2.4 Soma e Subtrao de Nmeros Binrios


O procedimento para a adio e subtrao de nmeros binrios semelhante ao que se usa para nmeros decimais. A principal diferena est nas tabelas de adio e subtrao, que contm apenas os dgitos 0 e 1. Para somar dois nmeros decimais, faz-se a soma de um par de dgitos de cada vez, comeando com o dgito menos significativo de cada nmero. Se a soma de um dado par igual ou maior que 10, o excesso (tambm chamado de transporte ou carry) usado na soma do prximo par de dgitos mais significativos. Para somar dois nmeros binrios, o procedimento basicamente o mesmo, mas usa-se um carry inicial c0 igual a 0. A tabela 1.4 mostra a soma si e o bit de carry ci+1 para cada possvel combinao de xi, yi e ci. Tabela 1.4 - Adio de nmeros binrios. xi + yi + ci 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 si 0 1 1 0 1 0 0 1 ci+1 0 0 0 1 0 1 1 1

Exemplo 1.3: Somar os nmeros binrios 987 e 123. 512 1 1 1 S10 1 0 S9 256 1 1 0 S8 128 1 1 0 S7 64 1 1 1 1 S6 32 0 1 1 0 S5 16 1 1 1 1 S4 8 1 1 0 0 S3 4 0 0 1 1 S2 2 1 1 1 1 S1 1 1 1 0 S0

x y carries x+y

Primeiro se soma x0 = 1 e y0 = 1, produzindo carry c1 = 1 e soma s0 = 0. Em seguida, se soma x1 = 1, y1 = 1 e c1 = 1, obtendo-se carry c2 = 1 e soma s1 = 1. Este processo continua at se gerar c11 = 1 e carry s10 = 0.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-11

A subtrao de nmeros binrios realizada de maneira semelhante, subtraindo-se um par de bits, um a cada vez, no entanto, sempre gerado um bit de emprstimo (borrow) e no um bit de carry, e um bit de diferena ao invs de um bit de soma. A tabela 1.5 mostra a diferena di e o bit de borrow bi+1 para cada possvel combinao de xi, yi e bi. Tabela 1.5 - Subtrao de nmeros binrios. xi - yi - bi 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 di 0 1 1 0 1 0 0 1 bi+1 0 1 1 1 0 0 0 1

O procedimento para subtrao muito semelhante ao de adio: a partir dos dgitos menos significativos, gera-se os bits de borrow b1 e de diferena d0, de acordo com a Tabela 4, e assim por diante, da direita para a esquerda, at o bit de borrow mais significativo bm e o bit de diferena mais significativo dm-1. Exemplo 1.4: Subtrair o nmero binrio 123 de 987. 512 1 0 1
D9

x y borrows x-y

256 1 0 1
D8

128 1 1 0
D7

64 1 1 1 1
D6

32 0 1 0 1
D5

16 1 1 0 0
D4

8 1 1 0 0
D3

4 0 0 0 0
D2

2 1 1 0 0
D1

1 1 1 0 d0

Primeiro faz-se a subtrao entre x0 = 1 e y0 = 1, produzindo borrow b1 = 0 e diferena d0 = 0. Em seguida, faz-se a subtrao de y1 = 1, b1 = 1 de x1 = 1, obtendo-se borrow b2 = 0 e soma s1 = 0. Este processo continua at se gerar d9 = 1.

1.2.5 Representao de Nmeros Negativos


At o presente momento, tratamos somente de nmeros positivos. Nmeros negativos podem ser representados de diversas formas. A representao que usamos normalmente denominada sinal-magnitude. No entanto, a maioria dos computadores usa o sistema de representao em complemento, para facilitar a implementao dos circuitos aritmticos. 1.2.5.1 Representao de nmeros binrios positivos e negativos Nmeros binrios positivos podem ser representados como nmeros sem sinal. No entanto, para se representarem nmeros negativos, necessria a utilizao de alguma

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-12

notao. A forma de representao mais simples sinal-magnitude. Nesta representao, o nmero consiste de duas partes: a magnitude e o sinal. A magnitude expressa a quantidade e o sinal indica se a quantidade positiva ou negativa. Quando sinal-magnitude usado para nmeros binrios, o sinal representado pelo dgito mais significativo: 0 indica sinal positivo ao passo que 1 indica sinal negativo. Assim, os nmeros +9 e 9 escritos em binrio se diferenciam somente pelo bit mais significativo: +9 = 01001 -9 = 11001 Note que foram necessrios 5 bits para representar esses nmeros: 4 para a magnitude e 1 (o mais da esquerda) para representar o sinal. Dado um nmero binrio com n bits, o intervalo de representao possvel ser de (2 -1) at +(2n-1-1). Note tambm que h duas representaes possveis para o zero: -0 e +0.
n-1

1.2.5.2 Sistema de representao em complementos A representao em complemento foi criada com o intuito de simplificar a operao de subtrao e manipulaes lgicas, evitando a necessidade de comparaes de magnitude e sinal. Dado um sistema de base r qualquer, existem dois tipos de complementos possveis: Complemento de r Complemento de (r-1).

Iniciemos o estudo pelo complemento de (r-1). Seja um nmero N na base r representado com n dgitos. O complemento de (r-1) de N definido por (rn-1) N. Para nmeros decimais, r = 10, (r-1) = 9 e o complemento de 9 de N dado por (10n-1) N. Exemplo 1.5: encontrar o complemento de 9 dos nmeros decimais que seguem. 98710: (1000 - 1) - 987 = 999 - 987 = 12 54670010: 1238910: No caso de N ser um nmero binrio, r = 2, (r-1) = 1 e o complemento de 1 de N dado por (2n-1) N.

Exemplo 1.6: encontrar o complemento de 1 dos nmeros binrios que seguem. 101112: (32 - 1) - 23 = 31 - 23 = 8 = 10002 10110012: 00011112:

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-13

J o complemento de r de um nmero N na base r representado com n dgitos definido por rn N, se N 0 e 0 se N = 0. Comparando-se com o complemento de (r-1), notamos que o complemento de r obtido somando-se 1 ao complemento de (r-1). Para nmeros decimais, r = 10, e o complemento de 10 de N dado por 10n N. O complemento de r de um nmero binrio chamado complemento de dois e a representao derivada dele chamada representao em complemento de dois. Para nmeros binrios, o sinal do nmero representado pelo bit mais significativo, que 0 para nmeros positivos e 1 para negativos. Assim, pode-se obter um nmero negativo a partir de um nmero positivo, complementando-se cada bit (i.e., substituindo-se cada 0 por 1 e cada 1 por 0), incluindo o bit de sinal e somando-se 1. O bit de carry que ocorra deve ser ignorado. Portanto, quando se complementa o 0 e o bit de carry mais significativo descartado, obtm-se 0 como complemento de dois. Isto mostra que o 0 tem uma representao nica em complemento de dois. Como o 0 um nmero positivo, se ter um nmero positivo no-zero a menos do que nmeros negativos, ou seja, o intervalo de nmeros que podem ser representados em complemento de dois -(2n-1) at +(2 n-1 - 1). Exemplo 1.7: determine o intervalo de representao para nmeros binrios com 4 dgitos (bits), assumindo-se o uso de complemento de 2 Pelas frmulas acima, conclui-se que o intervalo de representao para nmeros de quatro bits em complemento de 2 vai de -2 3 = -8 at 2 3 - 1 = +7. Uma maneira simples de se obter o complemento de dois de um nmero binrio fazer o complemento do nmero e somar 1 a ele. Exemplo 1.8: encontre o complemento de 2 do nmero binrio que segue. 101112: 010002 + 12 = 010012

1.2.5.3 Adio e subtrao em complemento de dois Como dito anteriormente, a representao em complemento de dois foi desenvolvida para facilitar a implementao de adio e subtrao de nmeros binrios. Com o complemento de dois possvel realizar somas e subtraes de nmeros com e sem sinal usando o mesmo circuito lgico. Para somar nmeros em complemento de dois, usa-se a aritmtica binria mostrada na tabela 1.4 e ignora-se qualquer bit de carry alm do bit de sinal. Por exemplo, somar dois nmeros positivos gera um resultado positivo correto: 0010 (+2) + 0100 (+4) 0110 (+6)

Da mesma maneira, somar dois nmeros negativos sempre produzir uma soma negativa correta, desde que seja ignorado o bit de carry alm do bit de sinal:

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-14

1110 (-2) + 1100 (-4) 1010 (-6)

No entanto, existem casos em que uma operao produz um resultado que excede o intervalo de representao do sistema numrico, criando uma condio chamada estouro ou overflow. Via de regra, a adio de dois nmeros com sinais diferentes nunca produz um overflow. Entretanto, quando se somam dois nmeros com o mesmo sinal que produz uma soma que maior que o maior nmero representvel, pode-se obter um resultado incorreto. Por exemplo, 0100 (+4) + Do mesmo modo, 1100 (-4) + 1011 ( -5) 0111 (+7) 0101 (+5) 1001 (-7)

Como os exemplos sugerem, possvel identificar uma regra simples para detectar overflow em adies: ocorre um overflow sempre que o sinal da soma diferente do sinal dos operandos. Mas, como ser visto, para implementar um circuito implementando a soma, mais fcil identificar oveflow usando a seguinte regra: ocorre um overflow sempre que os bits de carry para o bit de sinal e a partir do bit de sinal so diferentes. Para realizar a subtrao em complemento de dois, pode-se usar o mesmo procedimento usado para nmeros binrios sem sinal e as regras para a deteco de overflow so as mesmas da adio. Mas, para implementar a subtrao no se usa este procedimento. Ao invs disto, faz-se o complemento de dois do nmero que se quer subtrair (subtraendo) e faz-se a soma dele com o nmero do qual vai se subtrair. Por exemplo, 0010 (+2) 1100 000 1110 ( -2)

Complemento de dois de (+4) Carries Em complemento de dois

Para se implementar esta subtrao basta um circuito complementador e um somador. Como se est realizando uma adio, a regra para deteco de overflow a da adio.

Exerccios
Exerccio 1.1 - Realizar as converses indicadas a seguir. a) 179 para binrio

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-15

179 2 = 89 89 2 = 44

resto = 1 (dgito menos significativo) resto = 1

b) 467 para octal 467 8 = 58 58 8 = resto = 3 (dgito menos significativo)

c) 3417 para hexadecimal 3417 16 =

Exerccio 1.2 - Encontrar a representao em complemento de r para os exemplos anteriores. 98710 : 1000 - 987 = 13 54670010: 1238910: 101112: 32 - 23 = 9 = 10012 10110012: 00011112:

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-16

Exerccio 1.3 - Encontrar, para os exemplos anteriores, a representao em complemento de 2 usando operaes de complemento. 10110012: 00011112:

Bibliografia Suplementar
[1] GAJSKI, Daniel D. Principles of Digital Design, New Jersey: Prentice Hall, 1997 (ISBN 0-13-301144-5) [2] MANO, M. Morris; Computer Engineering: Hardware Design. New Jersey: Prentice Hall, 1988 (ISBN 0-13-162926-3)

Você também pode gostar