Vous êtes sur la page 1sur 423

SISTEMAS DIGITAIS

APONTAMENTOS DAS AULAS TEORICAS


Guilherme Arroz Carlos Srro e

Verso 1.1 a 3 de Agosto de 2005

Instituto Superior Tcnico e Departamento de Engenharia Electrotcnica e e de Computadores TagusPark Porto Salvo

Historial
3 de Agosto de 2005 22 de Fevereiro de 2005 6 de Dezembro de 2004 26 de Outubro de 2004 14 de Setembro de 2004 v1.1 v1.0 v0.2 v0.1 v0.0 Verso corrente. a Foi adicionado o Cap tulo 19, e foram feitas correcoes no texto da verso 0.2 c a Foram adicionados os Cap tulos 17 e 18, e feitas correces no texto da verso 0.1 co a Foram adicionados os Cap tulos 15 e 16, e feitas correces no texto da verso 0.0 co a Verso original a

Referncias e
Endereo de e-mail: cas @ digitais.ist.utl.pt c Pgina da cadeira de Sistemas Digitais: http://sd.tagus.ist.utl.pt a Verso 1, reviso 1, de 3 de Agosto de 2005 a a

Prefcio a
Este texto foi desenvolvido a partir dos resumos das aulas tericas da cadeira de o Sistemas Digitais das licenciaturas em Engenharia Informtica e de Computaa dores (LEIC), em Engenharia Electrnica (LEE), e em Redes de Comunicaao o c e de Informao (LERCI), leccionados no ano lectivo de 2003/2004 no campus ca do TagusPark do Instituto Superior Tcnico. e Como tal, o presente texto representa uma tentativa de incluir num unico local os apontamentos tericos essenciais ` compreenso da matria de Sistemas Digitais, o a a e tal como ela foi ensinada nesse ano lectivo. Por isso, no deve ser entendido como a um texto completo, mas sim como uma coleco de resumos tericos que no ca o a dispensam o estudo mais aprofundado da matria por um dos textos referenciados e na bibliograa indicada no m de cada um dos cap tulos. No essencial, o texto segue a matriz das aulas tericas, tais como elas foram o desenvolvidas por um de ns (Guilherme Arroz) e postas ` disposiao dos alunos o a c nesse ano lectivo. Aqui e ali o texto foi revisto e aumentado, com o objectivo de o tornar mais claro, por vezes mais completo.

Organizao do texto ca
O presente texto encontra-se organizado em 3 partes: a primeira trata dos fundamentos tericos subjacentes a todos os circuitos e sistemas digitais, e cobre os o Cap tulos 1 a 5; a segunda trata dos circuitos combinatrios, e vai do Cap o tulo 6 ao Cap tulo 11; e a terceira parte lida com os circuitos sequenciais, nos Cap tulos 12 a 19. Em simultneo desenvolveram-se ainda dois outros textos, pelo que presentea mente esto dispon a veis: o presente documento, com os resumos das aulas tericas, que designamos o por Sistemas Digitais: Apontamentos das Aulas Tericas ou, mais sucino tamente, por SD:AAT; um manual com a resoluao de alguns exerc c cios, os mais importantes, com o nome Sistemas Digitais: Exerc cios Resolvidos, que designamos abreviadamente por SD:ER; e um Glossrio, designado simbolicamente por SD:GL. a Em futuras verses prev-se a incluso, em SD:AAT, de alguns apndices com o e a e matria que complementa a que dada nas aulas tericas, e que a completa. e e o iii

iv Salientam-se, em particular, um apndice com uma descriao sucinta da notaao e c c de dependncia usada na Norma IEC 60617-12, e um outro com as regras essene ciais que esto na base de um correcto desenho dos diagramas de blocos, dos a logigramas e dos esquemas elctricos. Finalmente prev-se a incluso futura de e e a um apndice que descreve os mtodos mais simples de anlise que permitem o e e a diagnstico de falhas nos circuitos digitais. o

Notas ` margem e a ndice remissivo


Espalhados pelo texto podemos encontrar trs tipos de notas ` margem: e a chamadas de atenao para partes do texto particularmente importantes, c geralmente escritas em itlico; so referenciadas pelo s a a mbolo especial que se mostra nesta margem, ` esquerda; a
Este um comentrio e a obviamente pouco interessante.

comentrios em itlico destinados a complementar a matria; sero inclu a a e a dos ao longo das sucessivas verses do texto, ` medida que a reacao dos alunos o a c a determinados pontos mais obscuros ou dif ceis justique as suas incluses; o e conceitos chave, em negrito, que constituem as entradas do Glossrio (SD:GL). a Nesse sentido, o Glossrio m coadjuvante importante do texto, na medida a e em que sistematiza os principais conceitos num unico documento. Os con ceitos so referenciados por entradas ` margem, em cor, o que facilita a sua a a procura aps consulta ao Glossrio ou ao o a Indice Remissivo. No Indice Remissivo encontram-se trs tipos de referncias: (i) as normais, em e e tipo direito, para indicar as pginas do texto onde se encontram os conceitos que a no precisam de ser salientados de forma especial; (ii) as referncias em itlico, a e a que identicam as pginas do texto onde existem conceitos chave, em negrito e a acentuados ` margem; e (iii) as entradas do Glossrio ou de outros apndices, a a e em negrito.

Os conceitos em

negrito esto no a
Glossrio a

Agradecimentos
Os autores esto agradecidos aos alunos Paulo Gomes, Joo Nunes e Joo a a a Loureiro, que apontaram erros no texto de verses anteriores e que sugeriram, o em alguns casos, alteraoes ao mesmo, com o propsito de o tornar mais claro. c o Oeiras, 3 de Agosto de 2005 Guilherme Arroz Carlos Srro e

Indice
I FUNDAMENTOS 1
3 3 5 7 7 7 9 9 10 12 12 15 16 19 19 19 25 25 29 29 29 31 31 33

1 SISTEMAS DE NUMERACAO 1.1 Sistemas de numeraao posicionais . . . . . . . . . . . . . . . . . c 1.1.1 1.1.2 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.3 1.3.1 1.3.2 1.3.3 1.4 1.4.1 1.4.2 1.5 1.6 Representaao na base 2 . . . . . . . . . . . . . . . . . . . c Representaao na base 16 . . . . . . . . . . . . . . . . . . c Converso entre a base 10 e as bases 2 e 16 . . . . . . . . a Converso da base 2 para a base 16 . . . . . . . . . . . . a Converso da base 16 para a base 2 . . . . . . . . . . . . a Truncagens e arredondamentos . . . . . . . . . . . . . . . Adioes na base 2 e noutras bases . . . . . . . . . . . . . c Subtracoes na base 2 e noutras bases . . . . . . . . . . . c Multiplicaao na base 2 e noutras bases . . . . . . . . . . c Notaao de sinal e mdulo . . . . . . . . . . . . . . . . . . c o Notaao de complemento para 2 . . . . . . . . . . . . . . c

Converso entre Bases . . . . . . . . . . . . . . . . . . . . . . . . a

Aritmtica Binria . . . . . . . . . . . . . . . . . . . . . . . . . . e a

Nmeros com Sinal . . . . . . . . . . . . . . . . . . . . . . . . . . u

Referncias Bibliogrcas . . . . . . . . . . . . . . . . . . . . . . e a Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 CODIGOS 2.1 2.2 2.3 2.4 Conceito de Cdigo . . . . . . . . . . . . . . . . . . . . . . . . . . o Cdigos Numricos . . . . . . . . . . . . . . . . . . . . . . . . . . o e Cdigo Binrio Natural (CBN) . . . . . . . . . . . . . . . . . . . o a Cdigo Binrio Reectido (CBR) . . . . . . . . . . . . . . . . . . o a 2.4.1 Construo do CBR a partir do CBN . . . . . . . . . . . ca v

vi 2.5

INDICE Cdigo BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 2.5.1 2.5.2 2.6 2.7 Representaao de nmeros em BCD . . . . . . . . . . . . c u Adiao em BCD . . . . . . . . . . . . . . . . . . . . . . . c 33 33 35 36 37 37 38 38 39 41 41 42 44 47 48 48 48 50 50 53 53 54 58 58 60 62 64 65 65

Os Cdigos memn . . . . . . . . . . . . . . . . . . . . . . . . . o Cdigos Alfanumricos . . . . . . . . . . . . . . . . . . . . . . . . o e 2.7.1 2.7.2 O cdigo ASCII o . . . . . . . . . . . . . . . . . . . . . . .

O cdigo ISO-8859-1 . . . . . . . . . . . . . . . . . . . . . o

2.8 2.9

Referncias Bibliogrcas . . . . . . . . . . . . . . . . . . . . . . e a Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 ALGEBRA DE BOOLE BINARIA 3.1 3.2 3.3 3.4 3.5 Variveis e Funoes Booleanas . . . . . . . . . . . . . . . . . . . . a c Funoes com Uma Varivel . . . . . . . . . . . . . . . . . . . . . c a Funoes com Duas Variveis . . . . . . . . . . . . . . . . . . . . . c a Funoes com Mais do que Duas Variveis . . . . . . . . . . . . . c a Axiomas e teoremas . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.1 3.5.2 3.6 3.7 Axiomas . . . . . . . . . . . . . . . . . . . . . . . . . . . . Teoremas . . . . . . . . . . . . . . . . . . . . . . . . . . .

Referncias Bibliogrcas . . . . . . . . . . . . . . . . . . . . . . e a Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 REPRESENTACAO DAS FUNCOES 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 Expresses booleanas . . . . . . . . . . . . . . . . . . . . . . . . . o Tabelas de verdade . . . . . . . . . . . . . . . . . . . . . . . . . . O Conjunto {AND, OR, NOT} . . . . . . . . . . . . . . . . . . . Soma de mintermos . . . . . . . . . . . . . . . . . . . . . . . . . Produto de maxtermos . . . . . . . . . . . . . . . . . . . . . . . . Representaao por Logigrama . . . . . . . . . . . . . . . . . . . . c Importncia das Funoes NAND e NOR . . . . . . . . . . . . . . a c Referncias Bibliogrcas . . . . . . . . . . . . . . . . . . . . . . e a Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INDICE 5 METODO DE KARNAUGH 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 Simplicaao algbrica . . . . . . . . . . . . . . . . . . . . . . . . c e Minimizaao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . c Adjacncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e Quadros de Karnaugh com 4 Variveis . . . . . . . . . . . . . . . a Implicantes e Implicantes Primos . . . . . . . . . . . . . . . . . . Minimizaao com Indiferenas . . . . . . . . . . . . . . . . . . . . c c Quadros de 5 Variveis . . . . . . . . . . . . . . . . . . . . . . . . a Minimizaao Usando os Maxtermos . . . . . . . . . . . . . . . . . c O Algoritmo de Karnaugh . . . . . . . . . . . . . . . . . . . . . .

vii 69 69 70 70 74 76 79 82 84 87 87 88

5.10 Referncias Bibliogrcas . . . . . . . . . . . . . . . . . . . . . . e a 5.11 Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

II

CIRCUITOS COMBINATORIOS

93
95 95 96 97 99

6 ELEMENTOS TECNOLOGICOS 6.1 6.2 6.3 6.4 Portas Lgicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Sinais Binrios . . . . . . . . . . . . . . . . . . . . . . . . . . . . a Tipos de Circuitos Integrados Digitais . . . . . . . . . . . . . . . A Fam TTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . lia 6.4.1 6.4.2 6.5 6.6 6.7 6.8 6.9 6.5.1

N veis elctricos dos circuitos TTL . . . . . . . . . . . . . 100 e Sa das totem-pole e tri-state . . . . . . . . . . . . . . . . . 101 N veis elctricos dos circuitos CMOS . . . . . . . . . . . . 103 e

A Familia CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Encapsulamento dos Integrados . . . . . . . . . . . . . . . . . . . 104 Fan-out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Dissipaao de Potncia . . . . . . . . . . . . . . . . . . . . . . . . 105 c e Tempos de Propagaao das Portas . . . . . . . . . . . . . . . . . 105 c

6.10 Referncias Bibliogrcas . . . . . . . . . . . . . . . . . . . . . . 106 e a 7 LOGICA DE POLARIDADE 7.1 7.1.1 7.1.2 7.1.3 107

Lgicas de Polaridade, Positiva e Negativa . . . . . . . . . . . . . 107 o S mbolos dos circuitos digitais . . . . . . . . . . . . . . . . 107 Razo da lgica de polaridade . . . . . . . . . . . . . . . . 109 a o Tabelas de verdade f sicas e lgicas . . . . . . . . . . . . . 110 o

viii 7.1.4 7.1.5 7.1.6 7.2 7.3 7.2.1 7.3.1 7.3.2 7.4 7.5 7.6

INDICE Portas lgicas em lgica de polaridade . . . . . . . . . . . 113 o o Tabelas de verdade genricas e f e sicas . . . . . . . . . . . 114 Logigramas e esquemas elctricos em lgica de polaridade 120 e o Buers, inversores e conversores de polaridade . . . . . . 127 Geraao de logigramas . . . . . . . . . . . . . . . . . . . . 129 c Expresses booleanas a partir de logigramas . . . . . . . . 131 o

Contedo Semntico . . . . . . . . . . . . . . . . . . . . . . . . . 124 u a Logigramas e Expresses Booleanas . . . . . . . . . . . . . . . . . 129 o

Exemplo de Utilizaao . . . . . . . . . . . . . . . . . . . . . . . . 136 c Referncias Bibliogrcas . . . . . . . . . . . . . . . . . . . . . . 138 e a Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 145

8 ANALISE E S INTESE COMBINATORIA 8.1 8.2 8.3 8.4 8.5 8.6

Enquadramento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Anlise de Circuitos Combinatrios . . . . . . . . . . . . . . . . . 146 a o Projecto de Circuitos Combinatrios . . . . . . . . . . . . . . . . 148 o S ntese de Circuitos Combinatrios . . . . . . . . . . . . . . . . . 151 o Referncias Bibliogrcas . . . . . . . . . . . . . . . . . . . . . . 154 e a Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 157

9 CODIFICADORES E DESCODIFICADORES 9.1 9.1.1 9.1.2 9.2 9.3 9.4

Descodicadores . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Expanso de descodicadores . . . . . . . . . . . . . . . . 160 a Utilizaao de descodicadores na implementaao de funes c c co lgicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 o

Codicadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Referncias Bibliogrcas . . . . . . . . . . . . . . . . . . . . . . 164 e a Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 169

10 MULTIPLEXERS E DEMULTIPLEXERS

10.1 Multiplexers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 10.1.1 Simbolos dos multiplexers . . . . . . . . . . . . . . . . . . 172 10.1.2 Expanso de multiplexers . . . . . . . . . . . . . . . . . . 174 a 10.2 Demultiplexers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 10.3 Aplicaoes dos Multiplexers e dos Demultiplexers . . . . . . . . . 179 c 10.4 Referncias Bibliogrcas . . . . . . . . . . . . . . . . . . . . . . 182 e a 10.5 Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

INDICE 11 CIRCUITOS ARITMETICOS 187

ix

11.1 Somadores Binrios . . . . . . . . . . . . . . . . . . . . . . . . . . 187 a 11.2 Subtractores Binrios . . . . . . . . . . . . . . . . . . . . . . . . 190 a 11.3 Somadores e Subtractores em Complemento para 2 . . . . . . . . 192 11.4 Somadores BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 11.5 Referncias Bibliogrcas . . . . . . . . . . . . . . . . . . . . . . 195 e a 11.6 Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

III

CIRCUITOS SEQUENCIAIS

197
199

12 LATCHES

12.1 Latches Simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 12.2 Latches Controlados . . . . . . . . . . . . . . . . . . . . . . . . . 205 12.3 Referncias Bibliogrcas . . . . . . . . . . . . . . . . . . . . . . 210 e a 12.4 Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 13 FLIP-FLOPS 217

13.1 Flip-ops Master-slave . . . . . . . . . . . . . . . . . . . . . . . . 217 13.2 Flip-ops Edge-triggered . . . . . . . . . . . . . . . . . . . . . . . 224 13.3 Temporizaoes nos Flip-ops . . . . . . . . . . . . . . . . . . . . 227 c 13.4 Referncias Bibliogrcas . . . . . . . . . . . . . . . . . . . . . . 228 e a 13.5 Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 14 CONTADORES 233

14.1 Contadores Ass ncronos . . . . . . . . . . . . . . . . . . . . . . . 233 14.1.1 Flip-ops T . . . . . . . . . . . . . . . . . . . . . . . . . . 235 14.1.2 Diagrama temporal . . . . . . . . . . . . . . . . . . . . . . 237 14.1.3 Contadores ass ncronos com mdulos arbitrrios . . . . . 237 o a 14.1.4 S mbolos dos contadores ass ncronos . . . . . . . . . . . . 239 14.2 Contadores S ncronos . . . . . . . . . . . . . . . . . . . . . . . . 240 14.2.1 Concepao heur c stica de um contador s ncrono . . . . . . 240 14.2.2 Contadores s ncronos com entrada de Enable . . . . . . . 243 14.2.3 Concepao de contadores s c ncronos de mdulo qualquer . 243 o 14.2.4 Contadores s ncronos com vrios modos de funcionamento 246 a 14.2.5 Contadores s ncronos com carregamento em paralelo . . . 247

INDICE 14.3 S mbolos dos Contadores . . . . . . . . . . . . . . . . . . . . . . . 249 14.4 Estados Instveis . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 a 14.5 Interligao de Contadores . . . . . . . . . . . . . . . . . . . . . . 252 ca 14.6 Carregamento em Paralelo . . . . . . . . . . . . . . . . . . . . . . 253 14.7 Referncias Bibliogrcas . . . . . . . . . . . . . . . . . . . . . . 254 e a 14.8 Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

15 REGISTOS

263

15.1 Conceito de Registo . . . . . . . . . . . . . . . . . . . . . . . . . 263 15.2 Registos Simples . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 15.3 Registos com Enable . . . . . . . . . . . . . . . . . . . . . . . . . 265 15.4 Registos de Deslocamento . . . . . . . . . . . . . . . . . . . . . . 266 15.5 Registos Multimodo . . . . . . . . . . . . . . . . . . . . . . . . . 268 15.6 Transferncias entre Registos . . . . . . . . . . . . . . . . . . . . 270 e 15.6.1 Interligaao de registos . . . . . . . . . . . . . . . . . . . . 270 c 15.6.2 Interligaao entre registos utilizando multiplexers . . . . . 270 c 15.6.3 Buers tri-state . . . . . . . . . . . . . . . . . . . . . . . . 272 15.6.4 Interligaao entre registos utilizando barramentos tri-state 276 c 15.7 Referncias Bibliogrcas . . . . . . . . . . . . . . . . . . . . . . 276 e a 15.8 Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 16 CIRCUITOS SEQUENCIAIS S INCRONOS 281

16.1 Circuitos S ncronos e Ass ncronos . . . . . . . . . . . . . . . . . . 281 16.2 Modelo de um Circuito Sequencial S ncrono . . . . . . . . . . . . 283 16.3 Anlise dos Circuitos Sequenciais S a ncronos . . . . . . . . . . . . 283 16.4 Modelos de Mealy e de Moore . . . . . . . . . . . . . . . . . . . . 287 16.5 S ntese de Circuitos Sequenciais S ncronos . . . . . . . . . . . . . 288 16.6 Exemplo de Concepao de Diagramas de Estados . . . . . . . . . 289 c 16.6.1 Concepao de diagramas de estados: modelo de Moore . . 290 c 16.6.2 Concepao de diagramas de estados: modelo de Mealy . . 293 c 16.7 S ntese Clssica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 a 16.7.1 S ntese Clssica com Flip-ops D . . . . . . . . . . . . . . 296 a 16.7.2 S ntese Clssica com Flip-ops JK . . . . . . . . . . . . . 300 a 16.8 S ntese com um Flip-op por Estado . . . . . . . . . . . . . . . . 301 16.9 Fluxogramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 16.10Referncias Bibliogrcas . . . . . . . . . . . . . . . . . . . . . . 314 e a 16.11Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314

INDICE 17 MEMORIAS 329

xi

17.1 Read Only Memories (ROMs) . . . . . . . . . . . . . . . . . . 330 17.1.1 Tipos de ROMs . . . . . . . . . . . . . . . . . . . . . . . . 330 17.1.2 Utilizaao das ROMs . . . . . . . . . . . . . . . . . . . . . 331 c 17.1.3 Estrutura de uma ROM . . . . . . . . . . . . . . . . . . . 331 17.1.4 Funcionamento de uma MROM . . . . . . . . . . . . . . . 332 17.1.5 Descodicaao coincidente . . . . . . . . . . . . . . . . . . 334 c 17.1.6 S mbolos das ROMs . . . . . . . . . . . . . . . . . . . . . 334 17.1.7 Temporizaoes na leitura de uma ROM . . . . . . . . . . 336 c 17.1.8 Expanso de ROMs . . . . . . . . . . . . . . . . . . . . . 339 a 17.2 Random Access Memories (RAMs) . . . . . . . . . . . . . . . . 341 17.2.1 Tipos de RAMs . . . . . . . . . . . . . . . . . . . . . . . . 341 17.2.2 S mbolos das RAMs . . . . . . . . . . . . . . . . . . . . . 342 17.2.3 Estrutura de uma RAM esttica (SRAM) . . . . . . . . . 344 a 17.2.4 Ciclos de leitura e de escrita numa SRAM . . . . . . . . . 348 17.2.5 Expanso de RAMs . . . . . . . . . . . . . . . . . . . . . 350 a 18 LOGICA PROGRAMAVEL 351

18.1 Read Only Memories (ROMs) . . . . . . . . . . . . . . . . . . 351 18.2 Programmable Logic Arrays (PLAs) . . . . . . . . . . . . . . . 353 18.3 Programmable Array Logic (PALs) 19 MAQUINAS DE ESTADOS . . . . . . . . . . . . . . . 358 363

19.1 Circuito Controlado e Circuito de Controlo . . . . . . . . . . . . 363 19.2 Mquinas de Estados e Fluxogramas . . . . . . . . . . . . . . . . 366 a 19.3 Implementaao com ROMs . . . . . . . . . . . . . . . . . . . . . 367 c 19.3.1 Estrutura bsica de controlo por ROM . . . . . . . . . . . 369 a 19.3.2 Controlo por ROM com endereamento expl c cito . . . . . 373 19.3.3 Controlo por ROM com endereamento impl c cito . . . . . 382 19.4 Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388

xii

INDICE

Parte I

FUNDAMENTOS

Cap tulo 1

Sistemas de Numerao ca
1.1 Sistemas de numerao posicionais ca
Sistema decimal Base 10

Estamos to habituados a contar e a executar as operaes bsicas (adio, a co a ca subtraco, multiplicaao e diviso) usando um sistema decimal, com base b = ca c a = 10, que nem paramos para pensar por um momento nos algoritmos que esto a na base dessas operaoes. c A utilizaao dessa base era inevitvel, j que a humanidade se habituou, desde c a a muito cedo, a contar pelos dedos das mos. Ocasionalmente usa outros sistemas a de numeraao. Por exemplo, usa o sistema sexagesimal, com base b = 60, c para contar as unidades horrias de minutos e segundos, ou o sistema a duodecimal com base b = 12, ou o sistema de base b = 24, para identicar as horas do dia. Todos estes sistemas so posicionais ou ponderados, na medida em que cada a nmero formado por uma sequncia de d u e e gitos ou algarismos, em que cada d gito possui um peso caracter stico da posiao que ocupa na sequncia. c e Nada nos impede, contudo, de usar sistemas com bases no naturais, por exema plo com bases inteiras negativas, bases racionais e irracionais, reais, ou at bases e complexas. E usamos ainda sistemas no posicionais, como o caso do sistema a e de numeraao romano, em que no h pesos associados aos d c a a gitos. Neste curso vamos estar interessados apenas nos sistemas posicionais (que designamos, mais simplesmente, por sistemas de numerao) de base b e, em ca particular, nos sistemas de numeraao binrio (com b = 2) e hexadecimal (com c a b = 16). Ocasionalmente, refererir-nos-emos a outros sistemas de numerao, ca com uma base natural arbitrria. a Por outro lado, comearemos por estudar os nmeros sem sinal, deixando para c u a Seco 1.4 o estudo dos nmeros com sinal. ca u Para que cada quantidade numrica seja expressa por uma e s uma sequncia e o e de d gitos, um sistema de numeraao de base b arbitrria possui b d c a gitos, sendo que cada um deles deve exprimir, por si s, um nmero diferente, menor do que o u b. Assim, um d gito exprimir a ausncia de qualquer quantidade, usando-se, a e nesse caso, o s mbolo 0 para o representar. Outro d gito expressar a quantidade a 3

Sistema sexagesimal Base 60 Sistema duodecimal Base 12

Sistemas posicionais ou ponderados D gito ou algarismo Peso Sistemas no a posicionais

Sistema de numeraao c de base b

Nmeros sem sinal u

CAP ITULO 1. SISTEMAS DE NUMERACAO

Um nmero sem sinal escrito num sistema de numerao de base b, que desiu ca e gitos, gnaremos por N(b) , vem representado por uma sequncia innita de d N(b) <> d2 d1 d0, d1 d2 ,

unitria, e o s a mbolo 1 representar esse d a gito. Os restantes d gitos exprimiro a quantidades de duas, trs, quatro, . . . , (b 1) unidades. e

em que o s mbolo <> utilizado indistintamente para signicar que N(b) e e representado pela sequncia, ou que a sequncia representa N(b) . Nesta e e sequncia, cada d e gito di ponderado por um peso bi associado ` sua posiao. e a c Se agora efectuarmos a soma polinomial
+

N(10) =

di bi = + d2b2 + d1b1 + d0b0 + d1b1 +

Equivalente decimal

na base 10, obtemos o equivalente decimal N(10) de N(b) . A igualdade anterior sugere que um nmero sem sinal dever ser representado u a por uma sequncia innita de d e gitos. Tal sequncia , naturalmente, imposs e e vel de escrever ou de utilizar. Nessas condioes, torna-se nita a sequncia procec e dendo `s seguintes operaoes: (i) truncamento dos d a c gitos no signicativos ` a a esquerda da representaao, se existirem; (ii) truncamento dos d c gitos ` direita a da representaao ou, quando tal no for poss c a vel, arredondamento do d gito de menor peso. Obtemos, nessas condioes, uma sequncia nita, c e N(b) <> dq1 dq2 . . . d1 d0 , d1 . . . dp , com preciso eventualmente reduzida em relaao ` de N(b) , sequncia essa com a c a e q d gitos para a esquerda e p d gitos para a direita da v rgula (eventualmente, p pode ser nulo). O equivalente decimal de N(b) vem, ento, dado pela soma a
q1

N(10)
i=p

dibi = dq1 bq1 + + d0b0 + d1b1 + + dp bp .

Um exemplo ajuda a claricar estas questes. O nmero 460, 13(7) tem por o u equivalente decimal o nmero u 4 72 + 6 71 + 1 71 + 3 72 = 1 1 +3 7 49 = 196 + 42 + 0, 142857 + 0, 061224 = 238, 204081 . = 4 49 + 6 7 + 1

Notemos que este resultado possui uma parte fraccionria innita. Se a quisera mos tornar nita o que podemos ou no querer fazer, consoante o problema a que tivermos em mos precisamos de a truncar ou de a arredondar. a Escrevemos, ento, por exemplo, que a 460, 13(7) 238, 20408(10)

1.1. SISTEMAS DE NUMERACAO POSICIONAIS se quisermos obter uma preciso de 5 casas decimais fraccionrias (neste caso a a truncmos a parte fraccionria) , ou a a 460, 13(7) 238, 2041(10)

se apenas precisarmos de 4 casas decimais (neste caso arredondmo-la). a Mais ` frente estudaremos a questo da preciso a dar a um nmero fraccionrio, a a a u a numa base arbitrria, que como quem diz, a questo da truncagem ou do a e a arredondamento correcto da parte fraccionria. a Uma questo nal sobre a designaao a dar a um nmero escrito numa base a c u arbitrria. Estamos habituados a dizer que o nmero trinta e sete v a u rgula cinco se representa por 37, 5. Mas, naturalmente, tal s poss num sistema oe vel de base 10, em que trinta tem o signicado de 3 10. Ou seja, a frase trinta e sete v rgula cinco representa apenas o nmero 37, 5(10) e no possui qualquer u a espcie de signicado em qualquer outro sistema de numeraao. e c E se quisermos identicar verbalmente o nmero 37, 5(8)? Ou o nmero 37, 5(9)? u u Ou ainda o nmero 37, 5(b), com b 11? u
O maior dos dgitos no nmero 37, 5(b) o 7. u e Logo, b tem que ser, pelo menos, igual a 8.

Naturalmente, j no podemos verbalizar esses nmeros da mesma forma. A a a u maneira correcta de o fazer consiste em escrever que o nmero 37, 5(b) se designa u por trs sete v e rgula cinco na base b. E isto porque o trs na base b = 10 e e ainda o trs numa base em que b = 10 e b 4, outro tanto acontecendo com e os outros dois d gitos. Pela mesma ordem de razes, dizemos que um nmero decimal tem d o u zima ou parte decimal, mas que um nmero numa base arbitrria b = 10 tem parte u a fraccionria. a

1.1.1

Representao na base 2 ca
Sistema binrio a Base 2 Bit

No sistema binrio ou sistema de base b=2 usam-se apenas os d a gitos 0 e 1, que tambm se designam por bits. Assim sendo, um nmero binrio leg e u a timo , por e exemplo, o nmero 1101, 11(2), que tem por equivalente decimal o nmero que u u resulta da soma 1 23 + 1 22 + 0 21 + 1 20 + 1 21 + 1 22 = 1 1 = 18+14+11+1 +1 2 4 = 8 + 4 + 1 + 0, 5 + 0, 25 = 13, 75(10) . Como podemos constatar, a d zima , neste caso, nita. Escrevemos, ento, e a 1101, 11(2) = 13, 75(10) se quisermos duas casas na parte decimal, ou 1101, 11(2) 13, 8(10)

se apenas quisermos uma casa decimal, ou ainda 1101, 11(2) 14(10)

6 se no quisermos nenhuma. a

CAP ITULO 1. SISTEMAS DE NUMERACAO

Para o sistema de numeraao binrio util o conhecimento das potncias de 2 c a e e mais importantes, porque nos ajuda a manejar com mais facilidade os pesos bi necessrios `s converses entre bases. a a o Por exemplo, ajuda saber que o 1 mais signicativo (com maior peso, mais ` a esquerda) no nmero 110100011(2) tem peso 28 = 256. u Na Tabela 1.1 representam-se algumas potncias 2n , para valores inteiros de n e entre 10 e +10. Tabela 1.1: Potncias 2n, para n inteiro entre 10 e +10 e
2n 1 2 4 8 16 32 64 128 256 512 1k = 1024 n 0 1 2 3 4 5 6 7 8 9 10 2n 1, 0 0, 5 0, 25 0, 125 0, 0625 0, 03125 0, 015625 0, 0078125 0, 00390625 0, 001953125 0, 0009765625

Em particular, chama-se a atenao para a designaao 1k dada ` potncia 210 = c c a e = 1 024(10), que a potncia de 2 que mais se aproxima de 1 000(10) (por essa e e razo, o factor k toma a designaao habitual de quilo no sistema binrio). a c a Para 10 < n < 20 usam-se exclusivamente estas designaoes. Por exemplo, c 216 = 26 210 = 64 1 024(10) = 65 536(10) , valor este que habitualmente se designa por 64 k. Para n = 20 usa-se a potncia e 220 = 210 210 = 1 024 1 024 = 1 048 576 . Tambm neste caso 220 = 1 M = 1 k1 k a potncia de 2 que mais se aproxima e e e de 106 , pelo que o factor M toma a designao habitual de mega. ca (10) Finalmente, para n = 30 usa-se a potncia e 230 = 1 M 1 k = 1 G . Sendo 1 G a potncia de 2 que mais se aproxima de 109 , o factor G toma a e (10) designaao habitual de giga. c Assim, temos, por exemplo, 223 = 23 220 = 8 M , e 239 = 29 230 = 512 G .

1.2. CONVERSAO ENTRE BASES

1.1.2

Representao na base 16 ca
Sistema hexadecimal Base 16

No sistema hexadecimal, com base b=16, usamos 16 d gitos. E claro, teremos que encontrar 16 representaoes (s c mbolos) diferentes para cada um deles. No sistema decimal usamos os d gitos 0 a 9, que podemos continuar a utilizar no sistema hexadecimal. Mas agora precisamos de inventar d gitos. A forma habitual de o fazer consiste em recorrer `s primeiras 6 letras do alfabeto para a representar os d gitos hexadecimais que, no sistema decimal, correspondem aos nmeros (sequncias de dois d u e gitos) 10 a 15. Ento, no sistema hexadecimal a usamos, para alm dos s e mbolos 0 a 9, tambm as letras a a f, ou, o que e e o mesmo, A a F. E como estabelecer os equivalentes decimais destas letras? E simples: fazemos A(16) = a(16) = 10(10) , B(16) = b(16) = 11(10) , ... F(16) = f(16) = 15(10) . Naturalmente os d gitos decimais mantm-se no sistema hexadecimal: 0(16) = e = 0(10), 1(16) = 1(10), etc. Por exemplo, um nmero hexadecimal leg u timo F30,DA(16), que ter por equie a valente decimal o nmero que resulta da soma u 15 162 + 3 161 + 0 160 + 13 161 + 10 162 = 1 1 = 15 256 + 3 16 + 13 + 10 16 256 = 3840 + 48 + 0, 8125 + 0, 0390625 = 3888, 8515625(10) . Mais uma vez, estamos na presena de um nmero com uma d c u zima nita. Escrevemos, ento, por exemplo a F30, DA(16) 3888, 9(10)

se apenas quisermos uma preciso de uma casa decimal (neste caso arredondmos a a a d zima).

1.2
1.2.1

Converso entre Bases a


Converso entre a base 10 e as bases 2 e 16 a

Uma vez que j sabemos obter o equivalente decimal de um nmero escrito no a u sistema binrio ou no sistema hexadecimal (no fundo, j sabemos converter da a a base 2 ou 16 para a base 10), precisamos agora de aprender a converter da base 10 para a base 2 ou para a base 16, e ainda entre as bases 2 e 16. No caso geral, o problema da converso entre sistemas de numerao consiste a ca no seguinte: dado um nmero N representado num sistema de base b1, ou u

CAP ITULO 1. SISTEMAS DE NUMERACAO

seja, dado N(b1 ) , pretende-se representar esse nmero num sistema de base b2 , u obtendo-se N(b2 ) . No caso geral, quando b1 = 10 e b2 = 10, a mudana pode efectuar-se direcc tamente, utilizando operaes aritmticas na base b1 ou na base b2 , existindo co e para tanto algoritmos apropriados para os dois casos. Contudo, a mudana vem geralmente facilitada se for efectuada atravs do sisc e tema de numeraao de base 10, utilizando-se exclusivamente operaoes aritmc c e ticas nessa base. Assim, por exemplo, para converter um nmero, dado no u sistema de base b1 = 3, para o seu equivalente no sistema com base b2 = 7, converte-se primeiro o nmero para o seu equivalente na base 10 e, em seguida, u opera-se a converso para a base b2 = 7. a Este processo no introduz erros no tocante ` converso da parte inteira. Cona a a tudo, a converso da parte fraccionria nem sempre d um resultado nito e, a a a nesses casos, h que arredond-lo ou trunc-lo. Ento, a utilizaao da base 10 a a a a c como passo intermdio pode, se no pusermos os cuidados devidos, provocar e a uma acumulaao de erros que devemos evitar. c a c e Quando b1 = 10 e b2 = 10, a converso pode ser feita com as operaoes aritmticas na base b2 , o que torna esse mtodo por vezes incmodo. Por isso, usa-se e o frequentemente um mtodo diferente que utiliza a aritmtica da base b1, isto , e e e a aritmtica decimal. Nesse mtodo opera-se em duas fases, uma que trata a e e parte inteira, e outra que trata a parte decimal do nmero. u
Mtodo das divises e o sucessivas

A converso da parte inteira feita pelo mtodo das divises sucessivas, que a e e o consiste em reter os restos das sucessivas divises por b2 do nmero decimal o u dado e dos quocientes entretanto obtidos, at obter um quociente nulo. e Como exemplo, admitamos que quer amos converter 136(10) para a base 2. Fazemos as seguintes divises: o 136 0 d0 2 68 0 d1

2 34 0 d2

2 17 1 d3

2 8 0 d4

2 4 0 d5

d6

2 2 0

2 1 1 d7

2 0

Obtemos, assim,

136(10) <> 10001000(2) .

Mtodo das e multiplicaoes c sucessivas

Para a converso da parte decimal utiliza-se o mtodo das multiplicaoes sucesa e c sivas, que consiste em reter as partes inteiras das multiplicaoes por b2 da parte c decimal dada e das sucessivas partes decimais entretanto obtidas, at que seja e atingida a preciso pretendida para a parte fraccionria do nmero convertido a a u (mais ` frente estudaremos a questo da preciso mais em pormenor). a a a

1.2. CONVERSAO ENTRE BASES Por exemplo, para converter 0, 375(10) para a base 2 fazemos 0, 375 2 = 0, 750 d1 = 0 0, 750 2 = 1, 500 d2 = 1

0, 500 2 = 1, 000 d3 = 1 . Ou seja, 0, 375(10) <> 0, 011(2) (neste caso particular obteve-se uma parte fraccionria nita). a A converso de um nmero na base b1 = 10 para a base b2 = 16 pode ser feita a u usando os mesmos algoritmos. Basta, para isso, obter os restos das divises por o 16 e as partes inteiras das multiplicaes por 16. Contudo, existe um processo co mais expedito que consiste em converter o nmero dado para a base 2, e em u seguida convert-lo para a base 16 utilizando o mtodo que iremos estudar j a e e a seguir.

1.2.2

Converso da base 2 para a base 16 a

Este processo de converso vem simplicado (no necessitamos de passar pela a a base 10) porque a base b2 = 16 uma potncia da base b1 = 2. e e Para percebermos o que est em jogo, vamos estabelecer um paralelo entre cada a d gito hexadecimal e o seu equivalente binrio. a Vamos ento escrever, na Tabela 1.2, essas equivalncias (j agora, inclu a e a mos tambm os equivalentes decimais). e Como podemos constatar, cada dgito hexadecimal formado sempre por se e quncias de 4 dgitos binrios. e a Ento, no processo de converso para a base 16 basta-nos formar grupos de 4 a a bits a partir da v rgula do nmero binrio, para a esquerda e para a direita, e u a escrever um d gito hexadecimal por cada grupo. Nos casos em que, ao fazermos os agrupamentos, restam grupos com menos do que 4 bits (nas posioes mais sic gnicativas e menos signicativas), preenchem-se esses agrupamentos com zeros no signicativos at carem com 4 bits. a e Por exemplo, para converter 11110, 101(2) para a base 16 fazemos os agrupamentos 0001 0001 1 1110 1110 E , , , 1010 1010 A(16) e as correspondncias e

de onde resulta que 11110, 101(2) = 1E, A(16) .

1.2.3

Converso da base 16 para a base 2 a

Este processo de converso o oposto do anterior: o nmero na base 16 v cada a e u e um dos seus d gitos decomposto em 4 bits. Por exemplo, se quisermos converter para binrio o nmero 4A9, E(16) fazemos a u

10

CAP ITULO 1. SISTEMAS DE NUMERACAO

Tabela 1.2: Equivalncias entre os d e gitos hexadecimais e as sequncia de d e gitos (nmeros) binrios e decimais u a
D gito hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F N mero u binrio a 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Nmero u decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

4 0100

A 1010

9 1001

, ,

E(16) 1110

de onde resulta que 4A9, E(16) = 10010101001, 111 (notar que se eliminaram os zeros no signicativos nas posioes mais e menos signiticativas). a c E claro que este mtodo vlido para qualquer converso em que b1 e b2 se e e a a relacionam por potncias de 2. Por exemplo, para converter um nmero da e u base 4 para a base 2 decompomos cada d gito do nmero na base 4 em dois u d gitos binrios (porque 4 = 22 ). Identicamente, para converter um nmero da a u base 3 para a base 9 agrupamos cada conjunto de 2 d gitos do nmero na base u 3 para formar um d gito na base 9 (porque 9 = 32).

1.2.4

Truncagens e arredondamentos

Vamos denir em seguida os critrios de arredondamento da parte fraccionria e a de um nmero, quando h lugar a tal. Quando no se justicar fazer um u a a arredondamento, truncamos a parte fraccionria. a Em primeiro lugar, nem sempre se torna necessrio arredondar a parte fraca cionria de um nmero. Por exemplo, se o nmero a representar for abstracto, a u u sem contedo f u sico, pode no fazer sentido proceder ao seu arredondamento. a Assim, uma representaao para o nmero com a parte fraccionria reduzida c u a a p d gitos s faz sentido porque no queremos com ela encher vrias folhas o a a

1.2. CONVERSAO ENTRE BASES

11

de papel (nesses casos, o nmero p de casas fraccionrias -nos imposto pela u a e preciso dos clculos em que estiver envolvido). a a Pelo contrrio, se quisermos representar o resultado de uma mediao f a c sica, por exemplo da corrente elctrica que, num dado momento, circula por um circuito e electrnico de baixa potncia, a preciso da mediao vem naturalmente limitada o e a c pela preciso do miliamper a metro que a mediu. No faz sentido, nesse caso, a inventar uma preciso que no existe, inserindo d a a gitos na parte fraccionria a que no possuem contedo f a u sico. Consideremos um exemplo: uma determinada mediao de corrente produziu um c valor de 13,75 mA, ou seja, um resultado com uma preciso de 1 unidade em a 100 (1/100). A converso deste nmero decimal no seu equivalente numa base a u a a b2 , qualquer que ela seja, no deve inventar preciso. Quer isso dizer que no devemos obter um resultado que, aps converso, venha com uma preciso a o a a superior a 1/100. Por exemplo, se convertermos o nmero 13, 75(10) para binrio obtemos o nmero u a u 1101, 11000 . Mas qual ser a representaao binria correcta para 13, 75 mA? a c a Se retivermos um d gito binrio na parte fraccionria, obtemos um resultado a a com uma preciso de 1 unidade em 21 = 2, isto , de 0,5 (inferior ` preciso do a e a a nmero original, que igual a 1/100). u e Se retivermos dois d gitos binrios na parte fraccionria, obtemos um resultado a a com uma preciso de 1 unidade em 22 = 4, isto , de 0,25 (ainda inferior ` a e a preciso do nmero original). E por a fora. a u Se agora retivermos 6 d gitos binrios na parte fraccionria, obtemos um resula a tado com uma preciso de 1 unidade em 26 = 64, isto , ainda inferior ` preciso a e a a do nmero dado. u Mas se retivermos 7 d gitos binrios na parte fraccionria, obtemos um resultado a a com uma preciso de 1 unidade em 27 = 128, e 1/128 uma preciso superior a e a a ` que nos dada. Ou seja, inventmos preciso onde ela no existia. e a a a Segue-se que, com este exemplo, devemos apresentar 6 d gitos binrios na parte a fraccionria, e 13, 75(10) mA <> 1101, 110000(2) mA. a Neste exemplo no tivemos que arredondar o resultado (limitmo-nos a trunca a a -lo), mas h casos em que temos que o fazer. Isso particularmente evidente a e quando o processo de converso gera uma parte fraccionria innita ou innita a a peridica; mas tambm nos casos em que se obtm partes fraccionrias nitas o e e a pode-se justicar arredond-las se, por motivos de preciso, as quisermos com a a menos d gitos. Considere-se ento a representao a ca N(b) <> dq1 dq2 d1 d0 , d1 di di1 , do nmero N na base b. u O problema do arredondamento da parte fraccionria de um nmero consiste a u em determinar o que fazer ao d gito di em funao do d c gito di1. E essa deciso vai ser diferente consoante as bases forem pares ou a mpares. Nas bases pares divide-se b por 2, formando-se desta forma dois conjuntos de d gitos que designaremos por parte baixa e por parte alta. Por exemplo, na

12

CAP ITULO 1. SISTEMAS DE NUMERACAO

Naturalmente, nos casos em que di no vem ala terado h truncagem em a vez de arredondamento.

base 10 obtemos uma parte baixa com o conjunto de d gitos {0, 1, 2, 3, 4} e uma parte alta com o conjunto {5, 6, 7, 8, 9}. O critrio de arredondamento , ento, o e e a a seguinte: se o d gito di1 estiver contido na parte baixa, di no vem alterado; no caso contrrio, soma-se uma unidade a di. a Por exemplo, o nmero 0, 997(10) vem arredondado para 1, 00(10) se quisermos u reter duas casas decimais (notar como a soma de uma unidade ao 9 na casa das centsimas se propagou at `s unidades). e ea Da mesma forma, o nmero 111, 11110(2) vem arredondado para 1000, 000(2) se u quisermos reter trs casas na parte fraccionria (a soma de uma unidade ao 1 e a com peso 23 propaga-se para a parte inteira). Nas bases mpares, ao dividir-se b por dois obtm-se duas partes com igual e nmero de d u gitos, tal como acontece com as bases pares, mas obtm-se ainda e um d gito que ca de fora. Por exemplo, para uma base b = 5 obtm-se uma e parte baixa com o conjunto de d gitos {0, 1} e uma parte alta com o conjunto {3, 4}, sobejando o d gito {2}. O que se faz nestes casos no alterar o d e a gito di se o d gito di1 estiver contido na parte baixa, e somar uma unidade a di nos outros dois casos, Por exemplo, os nmeros 302, 024(5) e 302, 022(5) vm arredondados para 302, 03(5) u e se quisermos reter duas casas na parte fraccionria, enquanto que o nmero a u c 302, 021(5) vem truncado para 302, 02(5) nas mesmas condioes.

1.3
1.3.1

Aritmtica Binria e a
Adies na base 2 e noutras bases co

Consideremos o seguinte exemplo de adiao: 435(10) + 389(10) = 824(10). Prec tendemos, com o exemplo, deduzir o algoritmo da adiao nesta base. c Esquematicamente temos:
3 2 1

4 3 5 3 8 9 8 2 4

colunas

Algoritmo da adio ca

Transporte na adio ca

Comea-se pela coluna 1 (da direita). Se o resultado da adio nessa coluna no c ca a exceder o valor b = 10, o resultado vem colocado nessa coluna, sem alterao. ca Se o resultado da adiao nessa coluna for igual a, ou exceder, o valor b = 10, o c que se coloca nessa coluna a diferena entre o valor produzido e b, gerando-se, e c ento, um transporte, C, para a coluna seguinte (a designaao C vem da palavra a c em ingls Carry). e Passa-se em seguida ` coluna 2, onde se repete a operaao anterior, somando a c ainda o transporte proveniente da coluna 1, se existir. E o mesmo acontece com as restantes colunas. No nosso exemplo a adiao na primeira coluna produziu um transporte, c

1.3. ARITMETICA BINARIA Tabela 1.3: Tabela da adiao no sistema binrio c a


Adiao binria c a

13

+ 0 1

0 0 1

1 1 10

+ 1

5 9 4

coluna

C=1

e na coluna 2 tivemos de adicionar esse transporte aos operandos na coluna, gerando um novo transporte,
2

+ 1

1 3 8 2

coluna

O algoritmo da adiao binria em tudo semelhante ao da adiao no sistema c a e c decimal (e, de facto, ao da adiao em qualquer sistema de numeraao posicional), c c excepto que se utiliza b = 2 em vez de b = 10. Comea-se, ento, pela coluna da direita, vindo o resultado da adiao colocado c a c ainda nessa coluna. Desde que no exceda o valor b = 2, como por exemplo em a + 1 0 1(2)

C=1

o resultado vem colocado nessa coluna, sem alteraao (para efectuar a adiao c c binria, consultar a Tabela 1.3, que contm a operaao de adiao binria de dois a e c c a operandos com um bit cada um). Se o resultado da adio for igual a, ou exceder, o valor b = 2, haver que colocar ca a nessa coluna o valor da diferena entre o valor produzido e b, gerando-se, ento, c a um transporte para a coluna seguinte. Por exemplo, 1(2) + 1(2) d um valor a 10(2), ou 2(10), que igual a b = 2. Ento, o que se coloca nessa coluna a e a e diferena entre o valor 2(10) que se produziu e o valor b = 2, obtendo-se 0 e um c transporte C = 1: + 1 1 1 0(2)

C=1

14

CAP ITULO 1. SISTEMAS DE NUMERACAO Tabela 1.4: Tabela da adiao no sistema hexadecimal c
Adiao hexadecimal c

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

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

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

2 2 3 4 5 6 7 8 9 A B C D E F

3 3 4 5 6 7 8 9 A B C D E F

4 4 5 6 7 8 9 A B C D E F

5 5 6 7 8 9 A B C D E F

6 6 7 8 9 A B C D E F

7 7 8 9 A B C D E F

8 8 9 A B C D E F

9 9 A B C D E F

A A B C D E E 10

B B C D E F 10 11 12 13 14 15 16 17 18 19

C C D E F 10 11 12 13 14 15 16 17 18 19

D D E F 10 11 12 13 14 15 16 17 18 19

E E F 10 11 12 13 14 15 16 17 18 19

F F 10 11 12 13 14 15 16 17 18 19 1A

10 11

10 11 12

10 11 12 13

10 11 12 13 14

10 11 12 13 14 15

10 11 12 13 14 15 16

1A 1B 1C 1D

10 11 12 13 14 15 16 17

1A 1B 1C

10 11 12 13 14 15 16 17 18

1A 1B

10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E

O valor do transporte que for gerado adicionado aos valores da coluna imee diatamente ` esquerda, e o algoritmo prossegue de forma idntica para todas as a e colunas. Por exemplo, para efectuar a adiao 1111(2) + 101(2) fazemos c
4 3 2 1

+ 1 De notar que

1 1 1 1 1 0 1 0 1 0 0

colunas

1111(2) 101(2) 10100(2)

<> <> <>

15(10) 5(10) 20(10) .

De notar ainda que na coluna 3 se procedeu ` adiao de trs unidades, gerando a c e uma soma igual a 1 e um transporte C = 1. No sistema hexadecimal utilizamos ainda o mesmo algoritmo da adiao. Natuc ralmente, teremos agora que saber adicionar dois d gitos hexadecimais, para o que utilizamos a Tabela 1.4. Vamos ver, com alguns exemplos, como se constroi esta tabela.

1.3. ARITMETICA BINARIA

15

Por exemplo, a adiao 4(16) + 9(16) a mesma que 4(10) + 9(10), o que d 13(10). c e a Mas 13(10) corresponde a um unico d gito na base 16, o d gito D(16), que menor e do que a base b = 16. Logo, o resultado da soma 4(16) + 9(16) d D(16) e no a a gera transporte. Notemos como fazemos o racioc nio na base 10, porque estamos habituados a raciocinar nesta base (mas podamos raciocinar numa base qualquer). Ainda um outro exemplo: 6(16) + D(16). Como D(16) = 13(10), fazemos: 6(16) + D(16) = 6(10) + 13(10) = 19(10) . Como 19(10) > 16(10), devemos reter o que resultar da subtraco 19(10) ca 16(10) = 3(10) <> 3(16) e gerar um transporte. Logo, 6(16) + D(16) = 13(16). Passemos agora ` adiao de dois nmeros na base 16, por exemplo 4A57(16) + a c u + D293(16). Faz-se: + 1
1

4 D 1
0

A 2 C
0

5 9 E
0

7 (16) 3 (16) A (16)

1.3.2

Subtracoes na base 2 e noutras bases c


Algoritmo da subtraco ca Aditivo e subtractivo

O algoritmo da subtraco pode resumir-se ao seguinte: se numa coluna i, ca qualquer, o aditivo for maior do que o subtractivo, o resultado da subtraco ca vem na coluna i, sem alteraao. c No caso contrrio, soma-se a base ao aditivo e coloca-se na coluna i o resultado a da diferena entre este valor e o subtractivo, gerando-se um transporte para a c coluna i + 1. Assim, por exemplo, 2 3 (10) 8 (10) 1 5 (10) fazendo-se a diferena (b + 3) 8 = (10 + 3) 8 = 5 na coluna mais ` direita e c a gerando-se um transporte igual a 1 para a coluna imediatamente ` esquerda. a De idntica forma, no sistema binrio faz-se, por exemplo, e a 1 0 (2) 1 (2) 0 1 (2) ou seja, faz-se a diferena (b + 0) 1 = (2 + 0) 1 = 1 e gera-se um transporte. c

Transporte na subtracao c

Por exemplo, para efectuar a subtracao 1001101(2) 10111(2) fazemos: c

16
7 6

CAP ITULO 1. SISTEMAS DE NUMERACAO


5 4 3 2 1

0 1

0 1 1
1 0

1 0 0
1

1 1 1
1

0 1 1
0

1 1 0

colunas

Neste exemplo no gerado transporte da coluna 1 para a coluna 2. Porm, na a e e coluna 2 gerado um transporte (1 para 2 igual a 1, com transporte igual a e 1) para a coluna 3. Esse transporte adicionado, na coluna 3, ao subtractivo e (1 + 1 = 2, isto , 0(2) e transporte 1) que depois subtra do aditivo (0 e e do para 1 igual a 1, mantendo-se o transporte). De forma idntica se procederia e com as colunas 4 a 7. Na base 16 temos o mesmo algoritmo. Por exemplo, para efectuar 9F1B(16) 4A36(16) faz-se:
4 3 2 1

9 4 5
0 0

F A 4
1

1 3 E
0

B (16) 6 (16) 5
(16)

colunas

De notar, na coluna 2, que se faz 3(10) para 17(10), o que d 14(10) <> E(16) , a gerando-se um transporte igual a 1. De notar ainda que, na coluna 3, se faz A(16) = 10(10) mais o transporte 1 d 11(10); 11(10) para F(16) <> 15(10) d a a 4(10) <> 4(16), gerando-se um transporte nulo. E de notar que este algoritmo produz um resultado incorrecto quando o subtractivo maior que o aditivo. Com efeito, a aplicaao do algoritmo nestas e c situaes produz um transporte que se vai propagar indenidamente a partir de co uma coluna i e sucessivamente para as colunas i+1, i+2, etc. como no seguinte exemplo 1 0 0
0 1

1
1

1
1

1 1

0 1 1
0

1 1 0

(2) (2) (2)

Este problema s vem resolvido quando estudarmos os nmeros com sinal e, em o u particular, quando se apresentar a representaao em complemento para 2, na c Subsecao 1.4.2. c

1.3.3

Multiplicao na base 2 e noutras bases ca

O produto de dois nmeros numa base arbitrria vai, mais uma vez, obedecer u a ao algoritmo da multiplicaao. Por exemplo, na base b = 10 temos c

1.3. ARITMETICA BINARIA Tabela 1.5: Tabela da multiplicaao no sistema binrio c a


Multiplicaa o binria c a

17

0 1

0 0 0

1 0 1

1 3 3 4 1 6

5 2 7 4 1

7 3 1 1

(10) (10)

(10)

Notemos que agora podemos ter transportes maiores do que a unidade. Por exemplo, 1 4
1

5 7
2

7 3 1

(10) (10)

Da mesma forma, na base b = 2 podemos multiplicar dois nmeros desde que u conheamos a tabela de multiplicao de dois d c ca gitos nessa base (Tabela 1.5). Por exemplo, 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1
(2) (2) (2)

1 1

0 1

Notemos como fcil a multiplicao nesta base. Como cada d e a ca gito do multiplicador s pode ser 0 ou 1, a multiplicaao desse d o c gito pelo multiplicando s o pode dar o prprio multiplicando ou uma linha com zeros. o Para a multiplicaao na base b = 16 precisamos de conhecer a respectiva tabela c (Tabela 1.6). Vejamos como deduzir uma posiao desta tabela (sabendo-se deduzir uma, pode c deduzir-se a tabela toda). Por exemplo, consideremos o produto C(16) B(16) = 84(16). A melhor forma de obter este resultado raciocinar em decimal, como zemos para as adioes e para e c

18

CAP ITULO 1. SISTEMAS DE NUMERACAO Tabela 1.6: Tabela da multiplicaao no sistema hexadecimal c
Multiplicaa o hexadecimal c

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

0 0 0 0 0 0 0 0 0 0 0

1 0 1 2 3 4 5 6 7 8 9

2 0 2 4 6 8 A C E 10 12 14 16 18

3 0 3 6 9 C F 12 15 18 1B 1E 21 24 27

4 0 4 8 C 10 14 18 1C 20 24 28 2C 30 34 38

5 0 5 A F 14 19 1E 23 28 2D 32 37 3C 41 46

6 0 6 C 12 18 1E 24 2A 30 36 3C 42 48 4E 54

7 0 7 E 15 23 31 38 3F 46 54 62 69

8 0 8 10

9 0 9 12 24 36 48 51 63 75 87

A 0 A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 96

B 0 B 16 21 2C 37 42 4D 58 63 6E 79 84 8F

C 0 C 18 24 30 3C 48 54 60 6C 78 84 90

D 0 D 27 34 41 4E 5B 68 75 82 8F

E 0 E

F 0 F 1E 3C 4B 5A 69 78 87 96

1A 1C 38 46 54 62 70 7E 8C

18 1B 28 2D 38 3F 40 48

2A 2D

1C 20 2A 30

0 A 0 B 0 C 0 E 0 F

50 5A 60 6C 70 7E 78

4D 58 5B 68

9A A5

9C A8 B4 4 D2

0 D 1A

9C A9 B6 C3

1C 2A

8C 9A A8 B6

1E 2D 3C 4B 5A

A5 B4 C3 D2 E1

as subtraces. Assim, C(16) <> 12(10) e B(16) <> 11(10). Ora 12(10) 11(10) = co = 132(10). Convertendo agora para hexadecimal obtemos 132(10) = 128(10) + 4(10) = 8(10) 16(10) + 4(10) <> 84(16) . Agora, multiplicar dois nmeros hexadecimais simples. Por exemplo, u e 5 7 C 2 A (16) 1 D 0 (16) 2

2 8

4 5 5

A C 2 9

E 2 2 A 6 6 C

2 8 F Com efeito, reparemos como 5 4


4

2 0

(16)

C E
9 2

2 2
8

A D 2

(16) (16) (16)

ou como

1.4. NUMEROS COM SINAL 4 5 5 F


0 1

19 A C 2 9
1

2 2
0

8 8

E 2 6 6
0

2 A C
0

(16)

(16)

1.4
1.4.1

N meros com Sinal u


Notaao de sinal e mdulo c o

A representaao de nmeros reais tem de ter em conta que os nmeros podem c u u ser positivos, negativos ou o nmero 0. u Num sistema digital, um nmero sempre representado com um determinado u e nmero de bits, o comprimento do nmero, que corresponde ao nmero de bits u u u dos registos onde o nmero armazenado e ao nmero de bits dos circuitos que u e u processam os nmeros. u Suponhamos, para simplicar, e a titulo de exemplo, que o comprimento de 4 e bits. Uma primeira ideia consiste em representar o nmero em mdulo e sinal. O mu o o dulo j no nos oferece diculdade, mas no bvio como podemos representar a a a eo o sinal. A forma mais evidente reservar um bit para o sinal e denir, por e exemplo, que se esse bit for 0 o nmero positivo e se for 1 negativo. u e e Com quatro bits podemos, ento, representar os nmeros inteiros que se indicam a u na Tabela 1.7. Esta forma de representar nmeros inteiros uma das formas poss u e veis. Tem, porm, alguns inconvenientes. e Em primeiro lugar, repare-se que existem duas representaoes para o nmero 0, c u o que pode originar problemas. Em segundo lugar, quando necessario fazer operaoes sobre os nmeros assim e c u representados, necessario processar de forma diferente o mdulo e o sinal, e e o e ainda necessrio escolher a operaao a realizar em termos da operaao desejada a c c e do sinal dos nmeros. u Por exemplo, se pretendermos fazer a operaao (+5) + (3), o que realmente c e necessrio fazer a subtraco 5 3, cando o sinal positivo. Se o problema a e ca for realizar (5) + (+3), ento h que realizar tambm uma subtraco mas do a a e ca mdulo do nmero negativo menos o do positivo, sendo o resultado um nmero o u u negativo. Obviamente, tudo isto complica signicativamente os circuitos lgicos que realo izam a operaao de soma (e tambm os que realizam a subtraco). c e ca
Representaao de um c n mero em mdulo e u o sinal Bit de sinal

1.4.2

Notaao de complemento para 2 c

Seria interessante se pudssemos representar os nmeros de tal forma que fosse e u poss realizar as operaoes de soma e de subtraco sempre da mesma forma, vel c ca

20

CAP ITULO 1. SISTEMAS DE NUMERACAO Tabela 1.7: Nmeros com 4 bits representados em mdulo e sinal u o
Representaao c 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 N mero u representado +0 +1 +2 +3 +4 +5 +6 +7 0 1

2 3 4

independentemente de os nmeros serem positivos ou negativos. E isso poss u e vel utilizando a representaao em complemento para 2. c
Complemento para 2 de um n mero u

Comecemos por perceber o que o complemento para 2 de um nmero. Ou, e u mais correctamente, o complemento para 2n. Designa-se por complemento para 2n de um nmero x com n bits o resultado da operao 2n x. Obtemos, desta u ca forma, o simtrico de x. e Por exemplo, o complemento para 24 de 0101 e 1 0 0 1 0 1 0 0 0 1 0 1 1

O nmero 1011 , ento, o complemento para 24 ou, mais simplesmente, o u e a complemento para 2 de 0101. Repare-se que, se o nmero x tem n bits, o seu complemento para 2 represenu e tavel de igual modo com n bits. o E bvio que o complemento para 2 do complemento para 2 de um nmero x u e x, j que 2n (2n x) = x. Assim, o complemento para 2 de 1011 , como se a e pode vericar, 0101. Uma forma mais expedita de obter o complemento para 2 de um nmero conu siste, como se poder vericar, em complementar (negar) todos os bits do a nmero e somar-lhe 1. Novamente, tomando como exemplo o nmero 5 (0101), u u

1.4. NUMEROS COM SINAL

21

pode obter-se o complemento para 2 de 5 negando-o (1010) e somando-lhe 1 (1011), o que vem dar o mesmo resultado que vimos atrs. a Ainda uma terceira forma para obter o complemento para 2 de um nmero u utiliza o seguinte algoritmo: percorre-se a representaao do nmero a complec u mentar, desde o bit menos signicativo at ao mais signicativo. Por cada 0 que e se encontra, reproduz-se esse 0. Quando se encontrar o primeiro 1, tambm se e reproduz. A partir da trocam-se os 0s com os 1s. , Por exemplo, o complemento para 2 do nmero negativo 1011101100 o nmero u e u positivo 0100010100: 1011101 0100010 trocamse 100 100 copiamse

e o complemento para 2 do nmero positivo 0100010100 o nmero negativo u e u 1011101100: 0100010 1011101 trocamse 100 100 copiamse

Na notaao de complemento para 2, os nmeros so tambm representados de c u a e forma a que um dos bits (o mais signicativo) represente o sinal. Tal como na representaao em mdulo e sinal, o bit a 0 indica que o nmero positivo, e a c o u e 1 indica que o nmero negativo. Portanto, com n bits para representar um u e nmero, sobram n 1 bits para alm do sinal para representar, de alguma u e forma, o mdulo do nmero (veremos j adiante que isso no completamente o u a a e verdade). Na representao em complemento para 2 de um nmero positivo x, o nmero ca u u e representado pelo seu mdulo. Por exemplo, o nmero +5(10) representado, o u e em notaao de complemento para 2 com 4 bits, como 0101(C2), em que o c ndice referencia este modo de representaao, ou notaao (a notaao de complemento c c c para 2). Na representao em complemento para 2 de um nmero negativo, o nmero x ca u u representado pelo complemento para 2 de x. e Por exemplo o nmero 5(10) representado, em notaao de complemento para u e c 2, por 1011(C2). Repare-se que a determinaao do complemento para 2 de um c nmero deixa j o bit de sinal do nmero simtrico com o valor correcto. u a u e A representaao dos 16 nmeros possiveis em complemento para 2 com 4 bits c u vem ilustrada na Figura 1.1. Como natural, o nmero de nmeros representveis com n bits de 2n. Como e u u a e se pode ver da gura, o intervalo representado [2n1, +2n1 1], no nosso e caso [8, +7]. A razo da assimetria entre o nmero de positivos e o de negativos a u

Bit mais signicativo No confundir a reprea sentaao de um nmero c u em notao de comca plemento para 2 com a obtenao do complec mento para 2 de um nmero. u A representao de +5 em comca plemento para 2 com 4 bits 0101; o complee mento para 2 de +5 o e seu simtrico, 5, que se e representa por 1011 em notaao de complemento c para 2. Representaao de um c n mero em u complemento para 2

22

CAP ITULO 1. SISTEMAS DE NUMERACAO


0 (0000) 1 (1111) 2 (1110) 3 (1101) 4 (1100) 5 (1011) 6 (1010) 7 (1001) 8 (1000) +1 (0001) +2 (0010) +3 (0011) +4 (0100) +5 (0101) +6 (0110) +7 (0111)

Figura 1.1: Os 16 nmeros possiveis em complemento para 2 com 4 bits u radica na necessidade de representar o 0 e de no ter duas representaes para a co ele. Com esta representaao, pode operar-se sobre os nmeros sem que o sinal de cada c u um deles receba qualquer espcie de tratamento particular, ou, se quisermos, o e bit de sinal tratado da mesma forma que todos os outros. e
Adio em ca complemento para 2

Estudemos alguns exemplos de adioes nesta notaao. c c Soma de dois numeros positivos: (+2) + (+5) = +7. 0 0 0 0 1 1 1 0 1 0 1 1
(C2) (C2) (C2)

Os dois nmeros esto representados em complemento para 2, tal como a sua u a soma. Soma de dois numeros negativos. (2) + (5) = 7. 1 1 1 1 0 0 1 1 0 0 1 1 A soma realiza-se normalmente somando os nmeros bit a bit. u
(C2) (C2) (C2)

+ 1

O resultado tem um transporte que no consideraremos por sair fora dos n bits a (4, neste caso) da representao. O resultado est certo: 7(10) <> 1001 (C2). ca a Soma de um numero positivo com um numero negativo, com resultado positivo. (+5) + (3) = +2. 0 1 0 1 1 0 0 0 1 1 1 0
(C2) (C2) (C2)

+ 1

1.4. NUMEROS COM SINAL

23

Mais uma vez ignoramos o transporte por estar fora da nossa capacidade de representaao. O resultado esta certo. c Soma de um numero positivo com um numero negativo, com resultado negativo. (+2) + (5) = 3. + 0 1 1 0 0 1 1 1 0 0 1 1
(C2) (C2) (C2)

Como se pode ver, o resultado est correcto: 3(10) <> 1101 a

(C2) .

Como evidente, se somarmos dois nmeros do mesmo sinal pode ocorrer um e u resultado que no representavel com o nmero de bits dispon a e u vel. Por exemplo, se somarmos (+4) + (+5) = +9, o nmero +9 no representavel com 4 bits u a e em notaao de complemento para 2. Por isso, o resultado incoerente: c e 0 0 1 1 1 0 0 0 0 0 1 1
(C2) (C2) (C2)

De acordo com a nossa metodologia, a soma daria 7 o que , como se disse, e incoerente. Houve overow na adiao em complemento para 2. Sempre que c somarmos dois nmeros positivos e o resultado parea ser um nmero negativo, u c u ou inversamente, estamos perante uma situao de overow na adiao em ca c complemento para 2. Repare-se na Figura 1.2 o signicado de uma soma. A nossa soma anterior de +2 com +5 signica a rotaao no anel representado na Figura 1.1, de +5 c posioes (no sentido dos ponteiros do relgio) a partir da posiao +2. c o c
0 (0000) 1 (1111) 2 (1110) 3 (1101) 4 (1100) 5 (1011) 6 (1010) 7 (1001) 8 (1000) +1 (0001) +2 (0010) +3 (0011) +4 (0100) +5 (0101) +6 (0110) +7 (0111)

Overow na adio ca em complemento para 2 De notar que a existncia de um transporte e para o exterior numa adiao de nmeros sem c u sinal condiao sue c ciente para concluirmos ter havido overow na adiao. c

Figura 1.2: Representaao grca da soma (+2) + (+5) = +7, com nmeros de c a u 4 bits representados em notaao de complemento para 2 c Vejamos agora o que acontece com a soma de (+4)+(+5) na Figura 1.3: parte-se do +4 e roda-se +5 posioes no sentido do ponteiro do relgio. c o

24

CAP ITULO 1. SISTEMAS DE NUMERACAO


0 (0000) 1 (1111) 2 (1110) 3 (1101) 4 (1100) 5 (1011) 6 (1010) 7 (1001) 8 (1000) +1 (0001) +2 (0010) +3 (0011) +4 (0100) +5 (0101) +6 (0110) +7 (0111)

Figura 1.3: Representaao grca da soma (+4) + (+5) = 7 (?), com nmeros c a u de 4 bits representados em notaao de complemento para 2. Esta operao c ca produziu overow Repare-se que agora ultrapassmos o limite de representaao da notaao de a c c complemento para 2 com 4 bits, e entrmos pelo outro lado. E passamos, a portanto, a nmeros com o sinal contrrio, o que signica que houve overow.. u a Como evidente, nunca ocorre overow somando nmeros de sinais contrrios. e u a Pode-se provar que o overow ocorre sempre que o transporte do ultimo bit diferente do transporte do bit anterior, como acontece em: e 0 0 1
0 1

1 1 0

0 0 0

0 1 1

(C2) (C2) (C2)

Subtracao em c complemento para 2

A utilizaao de nmeros representados em complemento para 2 permite realizar c u subtracoes de forma muito simples. Como se sabe, realizar a subtracao x y c c o mesmo que realizar a soma x + (y). Por outro lado, dado um nmero y e u representado em notaao de complemento para 2, obter o seu simtrico, isto , c e e o nmero y, na mesma notao, signica, na prtica, obter o complemento u ca a para 2 de y. Ou seja, podemos utilizar os mesmos circuitos para fazer somas e subtraces co em complemento para 2, ao contrrio do que sucede se os nmeros estiverem a u representados em sinal e mdulo. Com efeito, o complemento para 2 de um o nmero representado em complemento para 2 pode ser efectuado trocando os u 0s com os 1s o que fcil de fazer num circuito apropriado, como veremos e a a ` frente neste curso e adicionando 1, o que pode ser feito com o somador que, de qualquer forma, necessrio para fazer as somas. e a Do ponto de vista grco, a subtraco x y pode ser realizada rodando, no a ca anel da Figura 1.1 a partir do nmero x, de y posioes no sentido contrrio ao u c a dos ponteiros do relgio. Por exemplo, na Figura 1.4 est ilustrada a subtraco o a ca (+2) (+5) = 3.

1.5. REFERENCIAS BIBLIOGRAFICAS


0 (0000) 1 (1111) 2 (1110) 3 (1101) 4 (1100) 5 (1011) 6 (1010) 7 (1001) 8 (1000) +1 (0001) +2 (0010) +3 (0011) +4 (0100) +5 (0101) +6 (0110) +7 (0111)

25

Figura 1.4: Representaao grca da subtraco (+2) (+5) = 3, com c a ca nmeros de 4 bits representados em notaao de complemento para 2 u c Esta subtraco no produziu overow porque no ultrapassmos o limite de ca a a a representaao da notaao de complemento para 2 com 4 bits (no entrmos c c a a pelo outro lado, gerando nmeros com o sinal contrrio). u a
Overow na subtracao em c complemento para 2

1.5

Referncias Bibliogrcas e a

Srro, Carlos Sistemas Digitais: Fundamentos Algbricos, IST Press, Lisboa, e e 2003, Secoes 1.1, 1.2, e 1.4 a 1.7. c Arroz, G. S., Monteiro, J. C. e Oliveira, A. L. Introduao aos Sistemas c Digitais e Microprocessadores, Seces 2.1 e 2.2. co Mano, Morris M., and Kime, Charles R. Logic and Computer Design Fundamentals, 2nd ed., Prentice Hall International, Inc., New Jersey, USA, 2000, Secoes 1.1 a 1.3. c

1.6

Exerc cios

Nota: os exerc cios identicados com um asterisco () esto resolvidos em a SD:ER. () 1.1 Escrever os seguintes nmeros em forma polinomial: u a) d) g) a) d) g) 23(10); 36(8); 1 023, 003(4). 437(8); 0, 46(7); a32b, 5a(12). b) e) 4 087(10); E5, 3(16); c) f) 39, 28(10); 255, 6(7);

1.2 Passar para a base 10 os seguintes nmeros: u b) e) 325(6); 10101, 100101(2); c) f) 0, 245(8); A2D, 9A(16);

26

CAP ITULO 1. SISTEMAS DE NUMERACAO

1.3 Escreva as representaes binria e hexadecimal de: co a a) 25, 25(10); b) 212, 5(10); c) 4, 9875(10). () 1.4 Determinar as bases b e c em: a) 5A(16) = 132(b); b) 20(10) = 110(c). 1.5 Passe a) b) c) 1.6 Passe a) b) c) para as bases 4, 8 e 16 os seguintes nmeros: u 1101101, 1001101(2); 10111110, 00001111(2); 111010, 01111(2). para a base 2 os seguintes nmeros: u 2031, 123(4); 432, 56(8); EA2, F5(16).

1.7 Passe para a base 3 os seguintes nmeros: u a) 585(9); b) 467, 3(9). 1.8 Converter o nmero 257(10) para as bases 8 e 16, directamente e atravs u e da base 2. 1.9 Escrever as potncias de 2 desde 24 at 215. e e () 1.10 O resultado da leitura do valor de uma tenso elctrica de 25,76 V. a e e Representar em binrio esse valor. a 1.11 Em que bases pode estar escrito o nmero 3A2, B7 (b)? u 1.12 Escrever a tabela de multiplicaao na base 5 e utiliz-la para calcular c a directamente 34(5) 23(5). No utilizar a base 10 como intermediria. a a

() 1.13 A primeira expediao a Marte provou a existncia de civilizaoes inc e c teligentes no planeta vermelho porque descobriu, gravada numa rocha, a equaao c 5 x2 50 x + 125 = 0 ,

bem como as respectivas soluoes, x1 = 5 e x2 = 8. O valor x1 = 5 c pareceu razovel aos elementos da expediao, mas a outra soluao indicava a c c claramente que os marcianos no utilizavam, como ns, o sistema decimal a o de contagem (talvez porque no possu a ssem 10 dedos nas mos). Quantos a dedos acha que os marcianos tinham nas mos? Justique. a

() 1.14 Como sabe do exerc anterior, a primeira expediao a Marte provou a cio c existncia de antigas civilizaoes inteligentes no planeta vermelho. Uma e c das descobertas mais importantes consistiu em perceber que os marcianos usavam um sistema de numeraao com 13 s c mbolos, incluindo os s mbolos 0 a 9, tal como ns usamos na Terra, e ainda os s o mbolos, c , e L. Por outro lado, conseguiu-se provar que os marcianos conheciam as operaoes c aritmticas de adiao e de subtracao. Tendo a expediao terrestre ene c c c contrado o seguinte fragmento de uma operaao de adiao gravada numa c c rocha,

1.6. EXERC ICIOS L + 9 3 5 9 L 4 c c 9 6 42 3

27

decidiu enviar esse fragmento para a Terra para ser decifrado (os espaos c em branco correspondem a s mbolos que no se conseguiram ler). Refaa a c a adiao preenchendo os fragmentos da operaao que no puderam ser c c a recuperados pela expediao terrestre, e diga quais os valores que descobriu c para os s mbolos c , e L. 1.15 Representar, em notaao de sinal e mdulo com 6 bits, os nmeros decic o u mais +24, 24, +57, 75 e 3, 625. 1.16 Qual a capacidade de representaao da notao de sinal e mdulo (o e c ca o intervalo dentro do qual poss representar, nesta notaao, um nmero e vel c u com n bits)?

1.17 Obter o complemento para 2 dos nmeros binrios 00001110101 e 1111111101, u a representados em notaao de complemento para 2. c 1.18 Qual o nmero decimal que equivalente aos nmeros binrios 00001110101 e u e u a e 1111111101, representados em notaao de complemento para 2? c 1.19 Representar, em notao de complemento para 2 com 10 bits, os nmeros ca u decimais +65 e 5.

() 1.20 Representar os nmeros decimais +5, 5, +54 e 54 em notaao de u c complemento para 2 com: a) 4 bits; b) 5 bits; c) 6 bits; d) 7 bits; e) 10 bits; f) 15 bits. 1.21 Realizar, em notaao de complemento para 2 com 10 bits, as seguintes c somas decimais: a) (+65) + (+5); b) (+65) + (5); c) (65) + (+5); d) (65) + (5). 1.22 A soma decimal (+30) + (+5), realizada em notaao de complemento para c 2 com 6 bits, produz overow? E a soma (17) + (21), realizada nas mesmas circunstncias? Justique. a () 1.23 Provar que a subtraco ca 110010 (C2) 110110 (C2)

de dois nmeros representados em notaao de complemento para 2 pode u c ser substitu pela soma da 110010 (C2) + 001010 (C2) do aditivo com o complemento para 2 do subtractivo. 1.24 A subtraco decimal (30)(+5), realizada em notao de complemento ca ca para 2 com 6 bits, produz overow? E a subtraco (+17) (21), ca realizada nas mesmas circunstncias? Justique. a

28

CAP ITULO 1. SISTEMAS DE NUMERACAO

Cap tulo 2

Cdigos o
2.1 Conceito de Cdigo o

Quando queremos representar informaao binria s podemos recorrer aos s c a o mbolos (bits) 0 e 1, como sabemos. Mas representar informaao numrica em c e binrio apenas uma parte da realidade, sendo que tambm necessrio ara e e e a ranjar um meio de representar informaao no numrica, como seja informaao c a e c alfabtica (letras maisculas e minsculas, acentuadas ou no, s e u u a mbolos de pontuao, s ca mbolos de controlo, etc.). Tal faz-se recorrendo a cdigos binrios, que mais no so do que maneiras de o a a a representar com 0s e 1s toda a informaao que se enumerou acima. Para c tal, estabelecem-se palavras do cdigo binrio com um nmero adequado de bits o a u e em nmero suciente para representar toda a informao que queremos. u ca Naturalmente, desta forma podemos estabelecer um elevad ssimo nmero de u cdigos binrios, e nem todos apresentam o mesmo interesse. Assim sendo, o a faz sentido comearmos por estabelecer uma taxonomia que tente agrupar os c cdigos mais interessantes em grupos distintos. Existem, assim, duas grandes o classes de cdigos, a dos cdigos numricos e a dos cdigos alfanumricos, que o o e o e estudaremos mais ` frente. a
Cdigo binrio o a

2.2

Cdigos Numricos o e

Um exemplo ajudar-nos- a compreender alguns conceitos ligados aos cdigos a o em geral, e aos cdigos numricos em particular. o e Suponhamos que quer amos desenvolver um sistema digital para controlar o elevador de um prdio com r/c, duas caves e trs andares. Como temos 6 e e possibilidades distintas de representar e individualizar os 6 pisos do prdio, e precisamos de comear por escrever um cdigo numrico com 6 palavras distintas, c o e uma por cada piso a que o elevador tem acesso. Ou seja, vamos estabelecer uma correspondncia biun e voca entre cada um dos pisos e um conjunto de bits por piso, diferente para cada um deles, e que constitui uma palavra do cdigo. o Naturalmente, a primeira pergunta que nos ocorre sobre o comprimento das e 29

Palavra

Comprimento de uma palavra

30

CAP ITULO 2. CODIGOS

Cdigo regular o

palavras, isto , o nmero de bits por palavra. Embora teoricamente cada e u palavra possa ter um comprimento diferente do de todas as outras, vamos o limitar-nos apenas aos chamados cdigos regulares, em que todas as palavras do cdigo tm o mesmo comprimento. o e No caso do elevador, as palavras do cdigo tm que ter um comprimento adeo e quado. Como temos 6 possibilidades distintas, bastam-nos 3 bits para compri mento de cada uma das palavras. E claro que, nestas condioes, apenas vamos c utilizar 6 das 8 combinaoes poss c veis. A unica restriao que necessitamos de c ter presente que no devemos codicar dois pisos com a mesma palavra, nae a turalmente para evitar confuses. o Deste modo, j estabelecemos o nmero de palavras (6) e o comprimento de a u cada palavra (3) para o nosso sistema de controlo do elevador. E estamos agora 8 o veis, um que sirva os em posiao de escolher, de entre os C6 = 28 cdigos poss c nossos propsitos. Por exemplo, o cdigo o o 2a cave 000 001 010 011 100

1a cave r/c o 1 andar 2o andar

3o andar 101 serve. Reparemos que o formmos como se estivessemos a escrever nmeros com a u 3 bits cujos equivalentes decimais fossem desde 0 at 5. Geramos, desta forma, e um cdigo binio natural ou CBN, com palavras de comprimento 3. o a Mas pod amos escolher outro cdigo, por exemplo, o 2a cave 1a cave r/c o 1 andar 000 001 011 010

2o andar 110 3o andar 111 Agora temos um cdigo em que palavras consecutivas apenas diferem num bit. o Dizemos, neste caso, que estamos em presena de um cdigo binrio reectido c o a ou CBR, com palavras de comprimento 3 (neste caso um CBR incompleto, como veremos mais ` frente). a Nestes dois cdigos escolhemos palavras com um comprimento mnimo de 3 bits. o Porm, ningum nos obriga a escolher o comprimento m e e nimo: podemos usar comprimentos maiores. Escolhamos um comprimento de 4 bits, por exemplo, e

2.3. CODIGO BINARIO NATURAL (CBN) o cdigo o 2a cave 0000 1a cave 0001 r/c 0010

31

1o andar 0011 2o andar 0100 3o andar 0101 Mais uma vez, estamos a gerar um cdigo binrio natural, desta vez com o a palavras de comprimento 4 Dado que estamos a usar, neste caso, palavras com um comprimento maior do que o estritamente necessrio, o cdigo diz-se redundante. a o A redundncia confere ao cdigo alguma capacidade de deteco de erros e, a o ca eventualmente, tambm de correco de erros. Por exemplo, se alguma vez e ca constatarmos que o elevador se encontra num piso codicado com 1111, que no a palavra do cdigo, claramente existe um erro, que pode em seguida ser ou e o no corrigido consoante a capacidade de correcao de erros que conferirmos ao a c sistema que processa as palavras.
Cdigo redundante o Detecao e correcao de c c erros

2.3

Cdigo Binrio Natural (CBN) o a


Cdigo binrio natural o a (CBN)

Como acabmos de ver, o cdigo binrio natural ou CBN formado por palavras a o a e de comprimento xo (trata-se de um cdigo regular). Se o comprimento de cada o palavra for igual a n, o nmero mximo de palavras do cdigo igual a 2n. u a o e O CBN gerado formamdo os nmeros na base 2 que tm por equivalentes e u e decimais os nmeros 0(10) a (2n 1)(10). Por exemplo, o CBN com palavras de u comprimento 5 possui 32 palavras, com equivalentes decimais que vo de 0(10) a at 31(10) (Tabela 2.1). e

2.4

Cdigo Binrio Reectido (CBR) o a


Cdigo binrio o a reectido (CBR)

Existem inmeros exemplos de cdigos binrios reectidos. Neste texto apenas u o a iremos mencionar um deles, porventura o mais conhecido, que passaremos a designar, mais simplesmente, por cdigo binrio reectido, ou CBR. o a Trata-se de um cdigo que no ponderado na medida em que, ao contrrio o a e a do que sucede com o CBN, no podemos atribuir pesos `s posioes dos bits nas a a c palavras. Por outras palavras, no podemos associar a cada palavra do CBR a um equivalente decimal. A caracter stica essencial do CBR que certos pares de palavras apenas diferem e num bit. Por isso essas palavras designam-se por adjacentes. Como veremos mais tarde, quando no Cap tulo 5 estudarmos a minimizaao das funoes booleanas c c simples, esta caracter stica vai ser muito util. Na Tabela 2.2 representa-se o CBR com palavras de comprimento 4.

Palavras adjacentes

32

CAP ITULO 2. CODIGOS

Tabela 2.1: O cdigo binrio natural (CBN) com palavras de comprimento 5 o a

Equivalente decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Palavra do CBN 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111

Equivalente decimal 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Palavra do CBN 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111

Tabela 2.2: O cdigo binrio reectido (CBR) com palavras de comprimento 4 o a

Linha nmero u 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

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

Como podemos constatar, a primeira e a segunda linhas representam palavras adjacentes porque apenas diferem num bit. Outro tanto sucede com a segunda e a terceira linhas, a terceira e a quarta, etc. Na realidade, para alm destes pares de linhas contguas, O cdigo CBR possui e o ainda outros pares de linhas adjacentes como, por exemplo, as linhas 1 e 4. Por outro lado, a primeira e a ultima linhas tambm so adjacentes, o que resulta e a de o cdigo ser completo, isto , formado por todas as 2n conguraoes binrias o e c a possveis com palavras de comprimento n. Como iremos ver mais para a frente

2.5. CODIGO BCD

33

neste curso, esta propriedade de adjacncia entre vrios pares de linhas vai ser e a muito importante.

2.4.1

Construao do CBR a partir do CBN c

a E fcil construit um CBR a partir de um CBN com palavras com o mesmo comprimento. Existindo mais do que uma maneira de o fazer, indicaremos de seguida a mais expedita (construao recursiva). c Comece-se por considerar o CBR com palavras com comprimento n = 1 bit: 0 1 Para formar um CBR com palavras de n bits parte-se do CBR com palavras de n 1 bits, repetindo em seguida cada uma das suas palavras por ordem inversa (como se estivessem reectidas num espelho, da a designaao dada ao cdigo). c o c Em seguida junta-se-lhe o n-simo bit igual a 0 nas primeiras 2n1 posioes, e e igual a 1 nas 2n1 posioes seguintes. c Por exemplo, a partir do CBR anterior com palavras de comprimento n = 1 fazemos 0 0 1 1 0 1 1 0

para obter o CBR com palavras de comprimento 2. E a partir deste, fazemos 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0

para obter o CBR com palavras de comprimento 3. E o mesmo para maiores dimenses das palavras. o

2.5
2.5.1

Cdigo BCD o
Representao de nmeros em BCD ca u

Uma situao muito frequente a da necessidade de codicar numericamente ca e dez quantidades distintas, correspondentes aos d gitos do sistema decimal, 0(10)

34

CAP ITULO 2. CODIGOS

a 9(10). Tal sucede, por exemplo, em mquinas de calcular que utilizam o sistema a decimal para a entrada de dados e para a sa dos resultados. da Naturalmente, podemos utilizar as 10 primeiras palavras de comprimento 4 do CBN que passar, nestas circunstncias, a car redundante (na medida em que a a apenas utilizamos 10 das 16 palavras desse cdigo). Obtemos, nessas condioes, o c o e o cdigo BCD (do ingls Binary Coded Decimal, ou Decimal Codicado em Binrio) da Tabela 2.3. a Tabela 2.3: O cdigo BCD o

Cdigo BCD o

D gito decimal 0 1 2 3 4 5 6 7 8 9

Palavra do cdigo BCD o 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

Cdigos o decimais-binrios a

Em alternativa, utilizamos um dos muitos cdigos decimais-binrios existentes. o a Para distinguir entre uma palavra do cdigo BCD e a representaao do nmero o c u binrio com a mesma conguraao, utilizamos a palavra BCD em a c ndice quando nos referimos ao cdigo. Por exemplo, 0111(2) identica, como sabemos, um o nmero binrio que tem 7(10) como equivalente decimal. Este mesmo d u a gito decimal vem representado, no cdigo BCD, pela palavra 0111(BCD). o Devemos notar que uma palavra do cdigo BCD codica um e s um d o o gito decimal. Se quisermos codicar k d gitos decimais (num nmero decimal com u parte inteira formada por um d gito das unidades, um d gito das dezenas, etc. e, eventualmente, com parte fraccionria com um d a gito para as dcimas, outro e para as centsimas, etc.) precisaremos de k palavras do cdigo BCD, uma por e o cada d gito decimal. Por exemplo, codicamos o nmero 37, 5(10) por u 37, 5(10) <> 0011 0111 , 0101(BCD) , (separaram-se as palavras do cdigo BCD apenas para ajudar ` compreenso o a a da sequncia de bits). Isto completamente distinto de e e 37, 5(10) <> 100101, 1(2) , a representaao do nmero decimal na base 2. c u Inversamente, uma sequncia arbitrria de bits signica nmeros completamente e a u diferentes consoante ela for interpretada como um nmero BCD ou como um u nmero binrio. Por exemplo, u a 10011001(2) <> 99(BCD) ,

2.5. CODIGO BCD mas 10011001(2) <> 27 + 24 + 23 + 20 = 155(10) e 10011001(2) <> 103(C2) .

35

Devemos notar, nalmente, que nem todas as sequncias de bits podem represene tar codicaoes em BCD de nmeros decimais (no esquecer que h sequncias c u a a e binrias de 4 bits que no constituem palavras do cdigo BCD). Por exemplo, a a o a sequncia 00101101(2), quando separada para identicar um poss nmero e vel u e BCD, como em 0010 1101(2), mostra a existncia de uma palavra BCD e de uma outra que no BCD. a e

2.5.2

Adio em BCD ca

Como referimos anteriormente, em certos sistemas os dados de entrada e os resultados vm apresentados no cdigo BCD. Nesses casos, e por razes de ecincia, e o o e devemos procurar realizar a operaao de adiao directamente no cdigo BCD c c o (j que as restantes operaoes aritmticas bsicas podem sempre ser reduzidas a a c e a adioes). Com efeito, a alternativa, mais complexa, consistiria em comear por c c converter do cdigo BCD para o CBN os dados de entrada, realizar as operaoes o c aritmticas no CBN e, nalmente, converter os resultados do CBN para o cdigo e o BCD. Quando se efectua, no cdigo BCD, a adio de dois d o ca gitos, trs casos diferentes e podem ocorrer: 1 o resultado da adiao, A, inferior ou igual a 9(10) e representa uma c e palavra leg tima do cdigo; o 2 A est compreendido entre 10(10) e 15(10), e o resultado obtido na adio a ca no constitui uma palavra do cdigo (porque corresponde a uma sequncia a o e binria entre 1010 e 1111) sendo, por isso, incorrecto; a 3 A tem um valor compreendido entre 16(10) e 18(10) ( de notar que a adiao e c em questo apenas envolve operandos com um d a gito decimal, isto , entre e 0(10) e 9(10), pelo que o resultado da operaao no pode ultrapassar 18(10)); c a neste caso, como iremos ver de seguida, a sequncia binria do resultado e a corresponde a uma palavra do cdigo BCD (porm corresponde a uma o e palavra errada) e gera-se um transporte para alm do bit de maior peso e da palavra de cdigo; tambm neste caso o resultado obtido , obviamente, o e e incorrecto. Em resumo, se tentarmos efectuar a adiao de duas palavras do cdigo BCD c o com o intuito de adicionar os seus equivalentes decimais, apenas no caso em que A inferior ou igual a 9(10) que o resultado da adiao vem correcto. Nos outros e e c dois casos haver que corrigir o resultado, sendo que o algoritmo de correco a ca e sempre o mesmo, como iremos ver j de seguida: adiao de seis unidades a A. a c Na Figura 2.1 ilustram-se os trs casos poss e veis de adiao de dois d c gitos no cdigo BCD. o
Adio BCD ca

Algoritmo de correcao c da adiao em BCD c

36 Caso 1 3 +5 8 Caso 2 6 +7 13 0001 Caso 3 8 +9 17 1 0001 0011 +0101 1000 0110 +0111 1101 +0110 0011 1000 +1001 0001 +0110 0111

CAP ITULO 2. CODIGOS

A = 8(10)

erro correcao c A = 13(10)

erro correcao c A = 17(10)

Figura 2.1: Casos poss veis de adiao de dois d c gitos no cdigo BCD: (a) o o resultado A da adiao vem compreendido entre 0(10) e 9(10) e est correcto; (b) c a o resultado vem compreendido entre 10(10) e 15(10) e precisa de correcao; e (c) c o resultado vem compreendido entre 16(10) e 18(10) e tambm necessita de ser e corrigido

2.6

Os Cdigos memn o

Os cdigos m-em-n so cdigos decimais binrios com m uns e (n m) zeros em o a o a cada palavra de comprimento n. Nesta classe destacam-se os cdigos 1-em-n, de que se apresenta um exemplo, o o cdigo 1-em-10, na Tabela 2.4. Trata-se de um cdigo ponderado, com pesos o o 9, 8, . . . , 1, 0. Tabela 2.4: O cdigo 1-em-10 o
Equivalente decimal 0 1 2 3 4 5 6 7 8 9 Cdigo 1-em-10 o 9876543210 0000000001 0000000010 0000000100 0000001000 0000010000 0000100000 0001000000 0010000000 0100000000 1000000000

2.7. CODIGOS ALFANUMERICOS

37

2.7

Cdigos Alfanumricos o e

Como se armou no m da Secao 2.1, existem duas grandes classes de cdigos: a c o dos cdigos numricos, de que estudmos anteriormente os principais exemplos, o e a e a dos cdigos alfanumricos, que estudaremos a seguir. o e Trata-se de cdigos que tm por objectivo codicar, para alm de informao o e e ca numrica, tambm informaao alfabtica, como sejam as letras maisculas e e e c e u minsculas, os s u mbolos de pontuaao, as letras acentuadas caracter c sticas dos alfabetos latinos, os s mbolos utilizados nas l nguas orientais, etc, e ainda s mbolos de controlo.

2.7.1

O cdigo ASCII o
Cdigo ASCII o

Na Tabela 2.5 representa-se o cdigo ASCII. Trata-se de um cdigo alfanumrico o o e limitado, apenas capaz de codicar a principal informao alfabtica (letras ca e maisculas e minsculas, e s u u mbolos de pontuaao) e informaao de controlo c c (por exemplo mudana de linha, m de cheiro, tabulaao, etc.), que utiliza c c palavras de comprimento 7. Tabela 2.5: O cdigo ASCII o
b6 b5 b4 b3 b2 b1 b0 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 000 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI 001 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 010 SP ! # $ % & ( ) * + , . / 011 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 100 @ A B C D E F G H I J K L M N O 101 P Q R S T U V W X Y Z [ \ ] 110 a b c d e f g h i j k l m n 0 111 p q r s t u v w x y z { | } DEL

As duas primeiras colunas da tabela, que usam os dois bits com maior peso iguais a 00, identicam os caracteres de controlo. Por exemplo, SP manda um espao para um dispositivo de sa (por exemplo, um cran de computador). c da e BEL, por seu turno, faz soar uma campa nha. CR signica Carriage Return, o que faz o cursor (no mesmo cran) mudar para a linha seguinte, na mesma e coluna, enquanto que LF signica Line Feed, o que faz o mesmo cursor mudar para o in cio (primeira coluna) da linha corrente (naturalmente, CR+LF ou

38

CAP ITULO 2. CODIGOS

LF+CR, pela ordem indicada, faz mudar o cursor para a primeira coluna da linha seguinte).
Notar que esta forma simplicada de representaao substitui uma c palavra ASCII, com 7 bits, por dois dgitos hexadecimais, com 8 bits.

Normalmente usa-se o cdigo hexadecimal para simplicar a representaao das o c palavras ASCII. Assim, por exemplo, a codicao ASCII da palavra SIM, isto , ca e 1010011 1001001 1001101 (separaram-se as palavras apenas para ajudar ` coma preenso da sequncia de bits) vem simplicada para 53 49 4B(16) ou, ainda mais a e simplesmente, por 53494B h ou 53494B H, em que h ou H so abreviaturas a de hexadecimal.

2.7.2

O cdigo ISO-8859-1 o

Uma limitao sria do cdigo ASCII resulta de ele ter sido desenhado para ca e o codicar informao alfabtica na l ca e ngua inglesa, que no contm s a e mbolos de acentuaao (como o portugs ou o germnico). Por outro lado, no c c e o a a e capaz de codicar os s mbolos utilizados nas l nguas orientais. Claramente, com 7 bits era imposs fazer melhor. vel A primeira opo de extenso do cdigo ASCII consistiu em aumentar o nmero ca a o u de bits por palavra para 8, mantendo os 7 bits menos signicativos iguais aos do ASCII. Ou seja, para os valores 00 h a 7F h os cdigos coincidem. Infelizmente, o foram criados vrios cdigos alfanumricos com esses pressupostos, cdigos esses a o e o que no so, contudo, compat a a veis entre eles.
Cdigo ISO-8859-1 ou o Isolatin-1

Destaca-se, de entre eles, o cdigo ISO-8859-1, vulgarmente conhecido por cdigo o o Isolatin-1, que permite os caracteres acentuados das l nguas latinas da Europa Ocidental, por exemplo o ou o portugus, o n espanhol ou ainda o c a e u alemo. a A incluso de caracteres de outros alfabetos (grego, cir a lico, armnio, hebreu, e a rabe, indiano, etc.), de s mbolos matemticos e de guras geomtricas, e ainda a e de dezenas de milhar de caracteres ideogrcos, como os utilizados em chins, a e levou ao aparecimento do UNICODE ou ISO/IEC 10646 UCS-2 (Universal Character Set-2), um cdigo evolutivo com 16 bits por s o mbolo, aberto ` incluso de a a novos caracteres e s mbolos.

Cdigo UNICODE o

2.8

Referncias Bibliogrcas e a

Srro, Carlos Sistemas Digitais: Fundamentos Algbricos, IST Press, Lisboa, e e 2003, Secoes 2.1, e 2.3 a 2.5. c Arroz, G. S., Monteiro, J. C. e Oliveira, A. L. Introduao aos Sistemas c Digitais e Microprocessadores, Secoes 2.3 e 2.4. c Mano, Morris M., and Kime, Charles R. Logic and Computer Design Fundamentals, 2nd ed., Prentice Hall International, Inc., New Jersey, USA, 2000, Secoes 1.4 e 1.5. c

2.9. EXERC ICIOS

39

2.9

Exerc cios

Nota: os exerc cios identicados com um asterisco () esto resolvidos em a SD:ER. () () () 2.1 Utilizar o CBN para codicar a seguinte informaao decimal: c (a) N = 31; (b) N = 1 674; (c) N = 52 674. 2.2 Construir um CBR com palavras de comprimento 5. 2.3 Construir um cdigo reectido de valncia 3 e com palavras de comprio e mento 3. Determinar as adjacncias entre palavras do cdigo (Nota. Por e o valncia de um cdigo entende-se o nmero de s e o u mbolos por ele utilizados. Assim, um cdigo binrio um cdigo de valncia 2, e um cdigo ternrio o a e o e o a tem valncia 3). e 2.4 Construir um cdigo reectido de valncia 4 e com palavras de comprio e mento 2. 2.5 Codicar os d gitos decimais 0, 1, . . . , 9 utilizando cdigos binrios pono a derados com os pesos indicados: (a) (c) (e) pesos 6 3 2 1; pesos 7 3 1 2; pesos 8 7 4 2. (b) (d) pesos 7 3 2 1; pesos 5 4 2 1;
Cdigo reectido o Valncia e

() ()

2.6 Considere o nmero octal 352, 4(8). Represente-o em decimal, em binrio u a e no cdigo BCD. o 2.7 Realizar as operaoes indicadas no cdigo BCD: c o (a) (c) 37(10) + 12(10); 37(10) 12(10); (b) (d) 1024(10) + 379(10); 1024(10) 379(10).

2.8 Converter para o cdigo BCD os nmeros decimais dados e, em seguida, o u executar as operaoes pedidas. c (a) (d) 12, 5 + 21; 3, 5 0, 71. (b) 123, 1 21, 5; (c) 7, 5 + 9, 81;

2.9 Descodicar a seguinte informao ASCII: ca 1000010 1001111 1010010 1001001 1001110 1000111 0100001 .

40

CAP ITULO 2. CODIGOS

Cap tulo 3

Algebra de Boole Binria a


3.1 Variveis e Funes Booleanas a co
Sistemas e circuitos digitais

Os sistemas digitais assentam em circuitos (os circuitos digitais) que assumem, em cada instante, um de dois unicos estados poss veis. Se os designarmos por 0 e por 1 (veremos mais tarde que haveremos de preferir outras designaoes c para os estados, porm a essncia do problema mantm-se, independentemente e e e das designaoes), podemos utilizar o sistema de numeraao binrio como suc c a porte algbrico, e os cdigos binrios como suporte da informaao processada e e o a c veiculada por esses circuitos e sistemas. Do ponto de vista algbrico teremos, naturalmente, que recorrer a uma lgebra e a especial, designada por lgebra de Boole binria, que faa uso dos s a a c mbolos 0 e 1 e que os utilize de forma sistemtica, com excluso de todos os outros. a a Ou seja, vamos ter que desenvolver uma lgebra que, ao contrrio da lgebra a a a corrente, recorre a variveis e a funoes que apenas podem assumir os valores a c 0 e 1. Quais as operaoes (e operadores) que podemos utilizar nessa lgebra, c a o que discutiremos na Secao 3.5. Porm, deve car desde j claro que essa e c e a a lgebra ir desenvolver-se axiomaticamente, com base num conjunto restrito de a postulados. Antes de passarmos ao estudo dessa lgebra, porm, vamos apresentar infora e malmente alguns conceitos bsicos. O primeiro tem a ver com as designaoes a a c dar a cada um dos s mbolos 0 e 1. Design-los-emos por quantidades booleanas a simples. E aos conjuntos ordenados destes s mbolos como, por exemplo, em (0, 1, 1, 0, 0, 1), damos a designaao de quantidades booleanas gerais. c Por outro lado, utilizaremos frequentemente variveis com as designaoes haa c bituais em qualquer lgebra, por exemplo x, A, z5 ou , no esquecendo que a a elas apenas podem tomar valores no conjunto {0, 1}. Essas variveis tomaro a a a designaao colectiva de variveis booleanas simples ou, por vezes e de forma mais c a fcil, de variveis (booleanas). a a Por outro lado, iremos precisar correntemente de conjuntos ordenados de varia veis, por exemplo x = (x1, x2, . . . , xn), que designaremos por variveis booleanas a gerais. 41

Algebra de Boole binria a

Quantidades booleanas simples e gerais

Variveis (booleanas a simples)

Variveis booleanas a gerais

42

CAP ITULO 3. ALGEBRA DE BOOLE BINARIA

Funoes booleanas c simples

Finalmente, precisaremos de denir funoes booleanas, que mais no so do que c a a aplicaoes do conjunto {0, 1}n no conjunto {0, 1}, por exemplo f(x1 , x2, . . . , xn). c Trata-se, neste caso mais geral, de uma funo booleana simples, f, de uma ca varivel booleana geral x = (x1 , x2, . . . , xn). No caso particular em que apenas a est envolvida uma varivel booleana simples, digamos x, teremos que f(x) a a e uma funao booleana simples de uma varivel booleana simples. c a Nos casos mais complicados necessitaremos de conjuntos ordenados de funoes c booleanas simples, como em f = (f1 , f2 , . . . , fk ), em que todas as funoes booc leanas simples f1 , f2 , . . . fk envolvem o mesmo nmero de variveis booleanas u a simples, como, por exemplo, em f1 (x1 , x2, . . . , xn), f2 (x1, x2, . . . , xn), . . . , fk (x1 , x2, . . . , xn) .

Funoes booleanas c gerais Funoes lgicas c o

Neste caso falamos de uma funo booleana geral, f , da varivel booleana geral ca a x = (x1 , x2, . . . , xn). Estas funoes, por vezes tambm designadas por funoes lgicas, vo desemc e c o a penhar um papel central nas metodologias de anlise e de s a ntese dos circuitos digitais, que empreenderemos a partir do Cap tulo 8. Para isso, precisamos de saber representar adequadamente as funes booleanas o que faremos co no Cap tulo 4 e precisamos ainda de saber dar-lhes a forma ou as formas algbricas mais simples, um problema que designaremos por minimizaao das e c funoes e que estudaremos no Cap c tulo 5.

3.2
Complementaao ou c negaao c Complemento de uma varivel ou funo a ca

Funoes com Uma Varivel c a

Antes de analisarmos as funoes booleanas simples de 1 varivel booleana simc a ples, digamos fi (x), precisamos de introduzir a operaao de complementao ou c ca a de negao da varivel x (ou da funao fi ). E fcil perceber o sentido desta ca a c operaao: se x (ou fi ) tiver, num dado momento, o valor 0, o seu complemento c tem o valor 1 nesse momento. E inversamente, se o valor de x (ou de fi ) for 1 a certa altura, ento o seu complemento tem o valor 0 nessa altura. S prea o cisamos de arranjar um s mbolo para o complemento da varivel ou da funo. a ca Utilizaremos x e fi para designar esses complementos. Nestas condioes, fcil perceber que apenas podemos formar 4 funoes booc e a c leanas simples de 1 ou menos variveis booleanas simples: as funoes a c f0 = x, f1 = x, f2 = 0 e f3 = 1 .

Tabela de verdade (lgica) o

Vamos escrever estas funoes numa tabela especial, designada por tabela de c verdade lgica ou, mais simplesmente, por tabela de verdade das funes, que o co representa os valores lgicos 0 ou 1 de cada funo booleana simples para cada o ca um dos valores lgicos 0 ou 1 da varivel booleana simples. Como neste caso o a temos 4 funoes booleanas simples, o que representamos na Tabela 3.1 so, na c a realidade, 4 tabelas de verdade compactadas numa unica. Notemos como a funo identidade, f0 (x) = x, possui, para cada linha, o mesmo ca valor que x. Notemos ainda como a funo complementao (ou funo negao, ou funo ca ca ca ca ca NOT), f1 (x) = x, possui, para cada linha, o complemento do valor de x.

Funao identidade c Funo ca complementaao c (negaao, NOT) c

3.2. FUNCOES COM UMA VARIAVEL

43

Tabela 3.1: Tabelas de verdade das funoes booleanas simples de uma ou zero c variveis booleanas simples, onde se enumeram as linhas pelos equivalentes deca imais dos nmeros binrios correspondentes `s quantidades booleanas simples u a a 0 e 1 (Nota: a numeraao das linhas no faz parte da tabela) c a
Funo ca identidade f0 (x) = x 0 1 Funao c complementao ca f1 (x) = x 1 0 Funao c constante 0 f2 (x) = 0 0 0 Funao c constante 1 f3 (x) = 1 1 1

Linha # 0 1

x 0 1

Finalmente, notemos como as funoes constantes 0 e 1, respectivamente f2 (x) = c = 0 e f3(x) = 1, possuem o valor constante 0 e 1 qualquer que seja o valor de x. Estas funoes vo intervir a dois n c a veis: (i) em expresses booleanas, ou exo presses lgicas, como acabmos de ver nos quatro casos anteriores (expresses o o a o booleanas mais complexas sero estudadas na Secao 4.1); e (ii) em logigramas e a c esquemas elctricos, que mais no so do que representaoes grcas adequadas e a a c a para as funes. co Nestes ultimos casos teremos que estabelecer uma simbologia prpria para cada o funao, ou melhor, para cada operador funcional (operador identidade, operador c NOT, operador constante 0 e operador constante 1). Como veremos no Cap tulo 6, a cada um destes operadores algbricos vai corresponder uma contrapartida e f sica directa que pode assumir trs variantes: (a) a forma de uma porta lgica, e o como acontece com o operador NOT; (b) a forma de um o (uma linha, ou ligaao), como acontece com o operador identidade; ou (c) a forma de n c veis de tenso elctrica H e L, em representaao dos operadores constantes. a e c Importa, por isso, comear a apresentar alguns desses s c mbolos, ` medida que se a tornam necessrios. Naturalmente, ao faz-lo estamos a sair da esfera estrita da a e a lgebra de Boole binria para passarmos para o campo da implementaao f a c sica dos sistemas digitais, sob a forma de circuitos digitais. Como ainda muito e cedo para fazermos essa passagem, procederemos com cuidado por agora. A representaao de uma porta NOT ou porta inversora num logigrama ou esc quema elctrico faz-se ` custa de um s e a mbolo normalizado (alis, os s a mbolos normalizados no sero apenas utilizados para representar as portas lgicas, a a o como tambm representaro outros circuitos mais complexos que havemos de e a estudar umais tarde). A norma internacional que est na base dessas representaoes designa-se por a c norma IEC 60617-12 e foi estabelecida pela Comisso Electrotcnica Internacional a e (esta norma foi subsequentemente transposta para normas nacionais pelos pa ses que integram a Comisso). a Neste curso seguiremos a norma IEC 60617-12 de forma to escrupulosa quanto a poss vel, o que tem trs vantagens. Por um lado, a representaao dos circuitos e c digitais torna-se rigorosa e independente de quaisquer fantasias representativas (o que sucede frequentemente, mesmo em textos com responsabilidades pedaggicas). o

Funoes constantes c

Operadores 0, 1, identidade e NOT Porta lgica o

Porta NOT (inversora)

Norma IEC 60617-12

44

CAP ITULO 3. ALGEBRA DE BOOLE BINARIA

Por outro lado, um logigrama ou esquema elctrico normalizado pode ser correce tamente interpretado em qualquer parte do mundo (por quem conhea a norma, c naturalmente), o que lhe confere um carcter de universalidade que uma sima bologia ad-hoc no possui. a Finalmente, uma simbologia exacta como esta dispensa a incluso de um e a texto mais ou menos longo a explicar as caracter sticas dos circuitos, porque essas caracter sticas so evidentes: basta interpretar correctamente os s a mbolos.
S mbolos de uma porta NOT

mbolos IEC para a porta NOT. Embora interNa Figura 3.1 apresentam-se dois s mutveis, por vezes d-se a primazia a um deles, consoante os circuitos em que a a se inserem (como veremos mais tarde).

Figura 3.1: S mbolos IEC poss veis para uma porta NOT

3.3

Funoes com Duas Variveis c a

O nmero de funoes booleanas simples de 2 ou menos variveis j muito u c a a e maior do que 4. Vamos tentar perceber quantas so essas funoes, e em seguida a c generalizar para um nmero n qualquer de variveis booleanas simples. u a Comecemos por perceber a estrutura das tabelas de verdade para as funoes c de 2 variveis. Enquanto para uma varivel, por exemplo x, a tabela s tem a a o duas linhas, para os valores 0 e 1 da varivel (vd. a Tabela 3.1), para tabelas a com 2 variveis, por exemplo x e y, vamos precisar de 4 linhas, correspondentes a aos 4 valores lgicos poss o veis para essas variveis: ou seja, as tabelas vo ter a a uma linha por cada quantidade booleana geral (x, y) = (0, 0), (x, y) = (0, 1), (x, y) = (1, 0) e (x, y) = (1, 1). E, se quisermos numerar as linhas, podemos atribuir-lhes os equivalentes decimais dos nmeros binrios 00, 01, 10 e 11, ou u a seja, respectivamente 0, 1, 2 e 3 se admitirmos que o peso de x maior do que e o de y. Quanto `s colunas da tabela, existe uma coluna por funao. a c Vamos agora ver quantas tabelas de verdade podemos construir para funoes de 2 c ou menos variveis ou, o que o mesmo, quantas funoes de 2 variveis ou menos a e c a conseguimos construir. Na Tabela 3.1 inclu mos 4 colunas, uma por funao (ou c seja, esto l 4 tabelas de verdade); por outro lado, as 4 colunas corresponderam a a a todos as quantidades booleanas gerais que conseguimos formar. E para 2 variveis? Com 4 linhas por tabela de verdade, conseguimos formar 16 a quantidades booleanas gerais. Logo, h 16 funoes com 2 ou menos variveis, a c a como mostra a Tabela 3.2. Generalizando, com n variveis booleanas simples podemos formar 22 funoes a c booleanas simples, um nmero que cresce exponencialmente com n. u
n

3.3. FUNCOES COM DUAS VARIAVEIS

45

Tabela 3.2: Poss veis funoes booleanas simples com duas ou menos variveis c a booleanas simples
x y 0 0 0 1 1 0 1 1 f0 0 0 0 0 f1 1 0 0 0 f2 0 1 0 0 f3 1 1 0 0 f4 0 0 1 0 f5 1 0 1 0 f6 0 1 1 0 f7 1 1 1 0 f8 0 0 0 1 f9 1 0 0 1 f10 0 1 0 1 f11 1 1 0 1 f12 0 0 1 1 f13 1 0 1 1 f14 0 1 1 1 f15 1 1 1 1

Das funoes com 2 variveis salientamos as seguintes: c a f3(x, y) = x f5(x, y) = y f8(x, y) = xy f14(x, y) = x + y f7(x, y) = x y f1(x, y) = x + y f6(x, y) = x y f9(x, y) = x y (a (a (a (a (a (a (a (a funao c funao c funao c funao c funao c funao c funao c funao c complementaao) c complementaao) c AND) OR) NAND) NOR) OU-exclusivo) Equivalncia) e
Funao c complementaao c (negaao, NOT) c

Vamos examinar estas funoes mais em pormenor. A funo complementao c ca ca (ou negao, ou NOT) j conhecida para 1 varivel. Para 2 variveis toma ca ae a a duas formas poss veis, f3 (x, y) = x ou f5 (x, y) = y ,

como mostra a sua tabela de verdade, inclu na Tabela 3.3. da Tabela 3.3: Tabelas de verdade das funes complementaao, AND e OR com 2 co c variveis, onde se enumeram as linhas pelos equivalentes decimais dos nmeros a u binrios correspondentes `s quantidades booleanas gerais (0, 0), (0, 1), (1, 0) e a a (1, 1) (Nota: a numeraao das linhas no faz parte da tabela) c a
Funo ca complement. f3 (x, y) = x 1 1 0 0 Funao c complement. f5 (x, y) = y 1 0 1 0 Funo ca AND f8 (x, y) = x y 0 0 0 1 Funao c OR f14 (x, y) = x + y 0 1 1 1

Linha # 0 1 2 3

x 0 0 1 1

y 0 1 0 1

Reparemos como f3 (x, y) = x vale 1 onde x vale 0, e vice-versa. E, identicamente, como f5(x, y) = y vale 1 onde y vale 0, e vice-versa.
ca a A funo AND de 2 variveis, f8 (x, y) = x y, vale 1 apenas quando as duas variveis valem 1. Notemos a simbologia do operador utilizado para representar a
Funao AND de 2 c variveis a

46

CAP ITULO 3. ALGEBRA DE BOOLE BINARIA

esta funo, traduzida pelo s ca mbolo colocado entre as variveis ou, para a simplicar, sem o ponto, como em f8 (x, y) = x y.
Funao OR de 2 c variveis a

A funo OR de 2 variveis, f14(x, y) = x + y, vale 1 se pelo menos uma das ca a variveis valer 1. A simbologia do operador que representa esta funo traduza ca -se pelo s mbolo +. Na Tabela 3.4 encontramos mais quatro funoes que importa salientar. c Tabela 3.4: Tabelas de verdade das funoes NAND, NOR, Ou-exclusivo e c Equivalncia com 2 variveis, onde se enumeram as linhas pelos equivalentes e a decimais dos nmeros binrios correspondentes `s quantidades booleanas gerais u a a (0, 0), (0, 1), (1, 0) e (1, 1)
Funo ca NAND f7 (x, y) = x y 1 1 1 0 Funo ca NOR f1 (x, y) = x + y 1 0 0 0 Funao c OU-exclusivo f6 (x, y) = x y 0 1 1 0 Funo ca Equivalncia e f9 (x, y) = x y 1 0 0 1

x 0 0 1 1 Funes NAND e NOR co de 2 variveis a Funao OU-exclusivo c

y 0 1 0 1

A funo NAND com 2 variveis, f7 (x, y) = x y, o complemento do AND. E a ca a e funo NOR com 2 variveis, f1 (x, y) = x + y, o complemento do OR . ca a e Por sua vez, a funo Ou-exclusivo, f6 (x, y) = x y, vale 1 quando x e y tomam ca valores diferentes: def x y = xy + xy . Quanto ` funo Equivalncia, f9 (x, y) = x y, vale 1 quando x e y tiverem o a ca e mesmo valor (quando forem equivalentes): x Devemos notar que x y = xy + xy .
def

Funao Equivalncia c e

y = x y.

Funoes identidade c Funoes constantes c

Finalmente, mencionam-se as funoes identidade, f12 (x, y) = x e f10 (x, y) = y, e c as funoes constantes, f0 (x, y) = 0 e f15(x, y) = 1. c Para completar esta secao, vamos de seguida apresentar os s c mbolos IEC de algumas portas lgicas, as que implementam os operadores AND, OR, NAND, o NOR, XOR e XNOR. Notemos que o operador XOR implementa a funao Ouc -exclusivo, e que o operador XNOR implementa a funao Equivalncia. c e Na Figura 3.2 apresentam-se os s mbolos IEC das portas lgicas com os mesmos o nomes e com 2 entradas. Como veremos mais tarde, no Cap tulo 7 em que estudaremos a lgica de poo laridade, veremos que estas designaoes s so vlidas para certos contextos, e c o a a nessa altura apresentaremos designaoes mais apropriadas para algumas destas c portas.

Operadores AND, OR, NAND, NOR, XOR e XNOR

S mbolos das portas AND, OR, NAND. NOR, XOR e XNOR com 2 entradas

3.4. FUNCOES COM MAIS DO QUE DUAS VARIAVEIS


Porta AND Porta OR Porta NAND

47

&

&

Porta NOR

Porta XOR

Porta XNOR

=1

=1

Figura 3.2: S mbolos IEC das portas AND, OR, NAND, NOR, XOR (que implementa a funao OU-exclusivo) e XNOR (que implementa a funao Equivalncia) c c e com 2 entradas

3.4

Funoes com Mais do que Duas Variveis c a

Como vimos na secao anterior, com n variveis booleanas simples podemos forc a n mar 22 funoes booleanas simples. Naturalmente, este crescimento exponencial c com o valor de n torna impraticvel a enumeraao de todas as funoes para um a c c valor arbitrrio de n, com n > 2. Contudo, podemos enumerar algumas. Por a exemplo, as funoes AND, OR, NAND e NOR com mais de 2 variveis, com c a expresses lgicas o o fAND (k, l, . . . , z) = k l . . . z fOR (k, l, . . . , z) = k + l + + z fNOR (k, l, . . . , z) = k + l + + z e com os s mbolos IEC da Figura 3.3, nos casos em que as portas lgicas com o as mesmas designaoes possuem 3 entradas (facilmente podemos extrapolar os c s mbolos para mais do que 3 entradas).
Porta AND Porta OR Porta NAND Porta NOR S mbolos das portas AND, OR, NAND e NOR com 3 entradas

fNAND(k, l, . . . , z) = k l . . . z

&

&

Figura 3.3: S mbolos IEC das portas AND, OR, NAND e NOR com 3 entradas Pod amos ainda enumerar outras funoes, como as funoes identidade e consc c tantes que envolvem 3 ou mais variveis. Mas, naturalmente, js as conhecemos a a dos casos em que apenas esto envolvidas 1 e 2 variveis. a a Quanto ` funao OU-exclusivo, podemos ainda extrapol-la para mais do que a c a 2 variveis. Mas nesses casos preferem-se utilizar portas XOR com 2 entradas a e utilizar a propriedade associativa da funao (como estudaremos mais ` frente c a neste cap tulo) para formar portas XOR com 3 ou mais entradas. E outro tanto para a funao Equivalncia e para as correspondentes portas XNOR. c e

48

CAP ITULO 3. ALGEBRA DE BOOLE BINARIA

3.5
3.5.1
Soma lgica e produto o lgico o Axioma das comutatividades

Axiomas e Teoremas da Algebra de Boole Binria a


Axiomas

A lgebra de Boole binria formada por um conjunto {A, B, C, . . .} e por a a e duas operaoes binrias, + (soma lgica) e (produto lgico) que satisfazem a c a o o propriedade de fecho e que obedecem aos seguintes axiomas ou postulados: Axioma das comutatividades A1a. AB = BA A1b. A + B = B + A Axioma das distributividades A2a. A(B + C) = AB + AC A2b. A + BC = (A + B)(A + C) Axioma das identidades. Este axioma dene a existncia de dois elementos e identidade, o 0 e o 1, que so os elementos neutro, respectivamente, da soma a lgica (o 0) e do produto lgico (o 1): o o A3a. A1 = A A3b. A + 0 = A

Axioma das distributividades

Axioma das identidades

Axioma do complemento

Axioma do complemento A4a. AA = 0 A4b. A + A = 1 O produto lgico pode ser omitido, quando do facto no resultar confuso; por o a a exemplo, pode escrever-se A B em lugar de AB, como j vimos anteriormente. a

Precedncias e

Por seu turno, em expresses que envolvam vrios produtos e somas lgicas o o a o produto tem precedncia sobre a soma; ; assim, e A+BC deve ser entendido como primeiro fazendo-se o produto lgico de B por C e s o o em seguida a soma lgica desse produto com A. o Quando necessrio, utilizam-se parntesis para tornar claras as sequncias de a e e operaoes numa expresso. Por exemplo, c a (A + B) C deve ser entendido como primeiro fazendo-se a soma lgica de A com B e s o o depois o produto lgico dessa soma com C. o

3.5.2

Teoremas

E razoavelmente elevado o nmero de teoremas que podemos deduzir no conu texto da lgebra de Boole binria acima denida. Limitar-nos-emos a enunciar a a em seguida os principais. Sugere-se que o aluno pelo menos tente provar alguns deles.

3.5. AXIOMAS E TEOREMAS Teorema da idempotncia. e T1a. A A = A T1b. A + A = A

49
Teorema da idempotncia e

Teorema dos elementos absorventes. O 0 e o 1, que so denidos a axiomaticamente como elementos neutros, respectivamente, da soma lgica e o do produto lgico, so igualmente elementos absorventes, respectivamente, do o a produto lgico e da soma lgica: o o T2a. A0 = 0 T2b. A + 1 = 1 Teorema da associatividade. T3a. (A + B) + C = A + (B + C) T3b. (A B) C = A (B C) Teorema da involucao. T4. A = A Teorema da absorcao. T5a. A + A B = A T5b. A (A + B) = A Teorema da redundancia. T6a. A + A B = A + B T6b. A (A + B) = A B Teorema da adjacencia. T7a. A B + A B = A T7b. (A + B) (A + B) = A Princ pio da dualidade. Este princ pio estabelece o seguinte: toda a expresso formada por elementos do conjunto {A, B, C, . . .} mais os elementos 0 a e 1 e que envolva as operaes de soma lgica, de produto lgico e de compleco o o mentaao, possui uma expresso dual que se obtm trocando cada soma por um c a e produto lgico e cada produto por uma soma lgica, e ainda os 0s por 1s e o o os 1s por 0s. Assim, a expresso dual da expresso A 1 + A 1 (A + 0) (A + 0). Repare-se a a e que as variveis ou os seus complementos (os chamados literais), no caso A e a A, no vm alterados por dualidade. a e Devemos notar que os axiomas e a grande maioria dos teoremas da lgebra de a Boole binria existe em verses duais (a excepo o teorema da involuao). a o ca e c Por exemplo, como o teorema da absorao na forma A + AB = A vlido, c e a tambm o a sua forma dual, A(A + B) = A. e e

Teorema dos elementos absorventes

Teorema da associatividade

Teorema da involuo ca Teorema da absorao c

Teorema da redundncia a

Teorema da adjacncia e

Princ pio da dualidade

Literal

50
Leis de De Morgan

CAP ITULO 3. ALGEBRA DE BOOLE BINARIA

Leis de De Morgan. T8a. AB = A + B T8b. A + B = AB

Teoremas envolvendo o OU-exclusivo

Teoremas envolvendo o OU-exclusivo. Existem vrios teoremas que ena volvem a funao OU-exclusivo de duas ou mais variveis booleanas simples. c a Antes de enumerarmos alguns desses teoremas, relembremos a denio do OUca -exclusivo, def A B = A B + A B = (A + B) (A + B) . Consideremos, ento, os principais teoremas envolvendo OU-exclusivos: a T9. A B = B A T11. A 0 = A T12. A 1 = A (Comutatividade da funao OU-exclusivo) c (Associatividade da funao OU-exclusivo) c T10. A (B C) = (A B) C

T13. A B = A B = A B = A

(como sabemos, a funao Equivalncia, A B, igual ao complemento da funao c e e c OU-exclusivo).

3.6

Referncias Bibliogrcas e a

Srro, Carlos Sistemas Digitais: Fundamentos Algbricos, IST Press, Lisboa, e e 2003, Cap tulo 3. Arroz, G. S., Monteiro, J. C. e Oliveira, A. L. Introduao aos Sistemas c Digitais e Microprocessadores, Secoes 3.1.1 a 3.1.9. c Mano, Morris M., and Kime, Charles R. Logic and Computer Design Fundamentals, 2nd ed., Prentice Hall International, Inc., New Jersey, USA, 2000, Secoes 2.1, 2.2, 2.6 e 2.7. c

3.7

Exerc cios

Nota: os exerc cios identicados com um asterisco () esto resolvidos em a SD:ER. () () () 3.1 Mostre que a funao Equivalncia comutativa e associativa. c e e 3.2 Prove a seguinte lei de De Morgan: x + y = x y. 3.3 Escreva tabelas de verdade adequadas para as seguintes funoes booleanas c simples: a) b) c) f(A, B, C) = A (B + C) (B + C); f(A, B, C, D) = A (B + C (B + D)); f(A, B, C) = A C + B C.

3.7. EXERC ICIOS ()

51
Induao completa c

3.4 Prove, examinando todos os casos poss veis (demonstrao por induo ca ca completa), que os seguintes teoremas so vlidos (os pares de teoremas so a a a duais): a) b) c) d) e) A = A; A+0= A A+1= 1 A+A= A A+A= 1 A1 = A; A0 = 0; A A = A; A A = 0.

() ()

3.5 Prove, por induao completa, que A B +A C +B C = A B +A C (teorema c do consenso). 3.6 Atravs de manipulaes algbricas, e utilizando os axiomas e os teoremas e co e da lgebra de Boole binria que conhece, verique as seguintes igualdades: a a a) b) c) (A + B + A B) (A + B) A B = 0; A B (D + D C) + (A + D A C) B = B; [(B + C) A] + (C D) = C D.

Teorema do consenso

3.7 Verique as seguintes igualdades: a) b) c) d) e) X + Y Z = (X + Y ) (X + Z); X (Y + Z) = X Y + X Z; (A B) C = A (B C); (A + B) (A + C) (B + C) = (A + B) (A + C); A C + A B + B C = A C + B C.

Como as designa? 3.8 Usando os teoremas do texto, simplicar algebricamente as expresses o booleanas das seguintes funoes booleanas simples: c a) b) () F = X Y Z + X Y Z + X Z; G = X (Y Z + Y Z).

3.9 Simplique algebricamente a) b) c) d) A B C D + A B C D + A B C D + A B C D + A B C D + A B C D; X +XY Z +Y; XY +W XY Z +XY; X Y Z + Y Z + X Z.

3.10 Simplique algebricamente as seguintes funoes: c a) b) c) d) f f f f = C B (A D) + C B A + B C D + A D; = C (B A) D + B C D + A D + A B D; = A (C D) + A B + A C D + A C D; = A C D + A C D + (A C) D + B D. = A B C D + B C D + A (C D)B + A B C D; = A B C D + A B C + A B D + A C D + C D + A B C + A C D; = A C (B D) + A B D + A B D + A B C D + A C D; = A B C + A C (C + D) + A + B + D.

3.11 Simplique algebricamente as seguintes funes: co a) b) c) d) f f f f

52 3.12 Verique que: a) b) c) d) se se X X

CAP ITULO 3. ALGEBRA DE BOOLE BINARIA

A B = 0, ento A = B; a A B = A C, ento B = C; a +Y = X Y XY; = X 1.

() 3.13 Um tcnico de laboratrio qu e o mico possui quatro produtos qu micos, A, B, C e D, que devem ser guardados em dois depsitos. Por convenincia, o e necessrio mover um ou mais produtos de um depsito para o outro de e a o tempos a tempos. A natureza dos produtos tal que perigoso guardar B e e e C juntos, a no ser que A esteja no mesmo depsito. Tambm perigoso a o e e guardar C e D juntos se A no estiver no depsito. Escreva uma expresso a o a para uma funao, Z, tal que Z = 1 sempre que exista uma combinaao c c perigosa em qualquer dos depsitos. o () 3.14 Existem trs interruptores de parede, a, b e c. A = 1 representa a condiao e c interruptor a ligado, e A = 0 representa a condiao interruptor a deslic gado. De modo similar, as variveis B e C esto associadas `s posioes a a a c dos interruptores b e c, respectivamente. Escreva uma expresso booleana a para uma funao Z, de modo que a alteraao do estado de um interrupc c tor, independentemente dos outros, v provocar a mudana do valor da a c funao. c

Cap tulo 4

Representao das Funoes ca c


4.1 Representao por Expresses Booleanas ca o

Consideremos a seguinte funao booleana simples, c F = AB + AC. Esta forma de representaao designa-se por forma normal disjuntiva ou soma de c produtos da funo. ca
conjuntiva ou produto de somas:
Forma normal disjuntiva ou soma de produtos Forma normal

Em alternativa, a mesma funao pode ser descrita pela seguinte forma normal c F = A (B + C) . Em ambos os casos estamos a representar a funao por expresses booleanas ou c o lgicas. Devemos notar que existem muitas expresses booleanas para represeno o tar uma determinada funo booleana simples, embora tenhamos representado ca F apenas por duas delas. Para obter uma expresso booleanas a partir de outra basta proceder a algumas a manipulaoes algbricas. Por exemplo, a partir da forma normal disjuntiva c e A B + A C de F podemos obter: A B + A C = A (B + C) por utilizao do axioma da distributividade do produto lgico em relaao ` ca o c a soma lgica. o As representaoes das funoes booleanas simples em somas de produtos ou em c c produtos de somas designam-se, em conjunto, por representao algbrica das ca e funoes, por oposiao a outras formas de representaao como as que iremos c c c estudar j de seguida. a Nem sempre a representaao algbrica de uma funao booleana simples vem em c e c forma normal conjuntiva ou disjuntiva. Por exemplo, a expressso algbrica a e G = A B + A B C (X + Y ) 53

conjuntiva ou produto de somas Expresses booleanas o (lgicas) o

Representaao algbrica c e

54

CAP ITULO 4. REPRESENTACAO DAS FUNCOES

vem numa forma mista entre as duas. Naturalmente, por manipulaao algbrica c e sempre poss e vel obter formas normais a partir de formas mistas, em geral por aplicaao dos axiomas da distributividade. Porm, a inversa nem sempre c e a poss e vel. Por exemplo, a expresso normal disjuntiva AB + A B C no se a consegue pr em forma mista. o

4.2
Tabela de verdade (lgica) o

Representao por Tabelas de Verdade ca

Como j sabemos do cap a tulo anterior, uma das formas de representao de ca uma funao booleana simples recorre ` sua tabela de verdade lgica ou, mais c a o simplesmente, tabela de verdade, que unica para cada funao. e c A tabela de verdade para uma funao arbitrria, f(xn , xn1, . . . , x2, x1), tem a c a seguinte estrutura, j conhecida: (i) n + 1 colunas, sendo as primeiras n colunas a para as variveis booleanas simples e uma coluna para a funao; e (ii) 2n linhas, a c cada uma correspondente a uma quantidade booleana geral diferente; e (iii) as linhas so ordenadas pelos equivalentes decimais dos nmeros binrios que a u a identicam as quantidades booleanas gerais. Como exemplo, consideremos, na Tabela 4.1, a tabela de verdade de uma funo ca arbitrria de 3 variveis booleanas simples, F (A, B, C). a a Tabela 4.1: Tabela de verdade da funo booleana simples F (A, B, C) = ca = A B + A C, onde se enumeram as linhas pelos equivalentes decimais dos nmeros binrios correspondentes `s quantidades booleanas gerais (Nota: a u a a numeraao das linhas no faz parte da tabela) c a
Linha # 0 1 2 3 4 5 6 7 A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 0 0 0 0 1 0 1 1

Porque precisamos de numerar as linhas da tabela pelos equivalentes decimais dos nmeros binrios que as identicam, precisamos de atribuir pesos `s u a a variveis booleanas simples A, B e C. Regra geral, admite-se que a varivel a a mais ` esquerda na tabela a que tem maior peso, e que a varivel mais ` a e a a direita tem o menor peso (mas esta regra no tem que ser sempre seguida). a Se admitirmos esta distribuiao de pesos, a varivel booleana simples C tem um c a peso igual a 20 = 1, a varivel B tem um peso igual a 21 = 2, e a varivel A a a tem um peso igual a 22 = 4. Nestas condioes: c

4.2. TABELAS DE VERDADE

55

1. a linha (A, B, C) = (0, 0, 0), correspondente ao nmero binrio 000, tem u a como equivalente decimal o valor 0 22 + 0 21 + 0 20 = 0; 2. a linha (A, B, C) = (0, 0, 1), correspondente ao nmero binrio 001, tem u a como equivalente decimal o valor 0 22 + 0 21 + 1 20 = 1; 3. a linha (A, B, C) = (0, 1, 0), correspondente ao nmero binrio 010, tem u a como equivalente decimal o valor 0 22 + 1 21 + 0 20 = 2; etc.; 4. a linha (A, B, C) = (1, 1, 1), correspondente ao nmero binrio 111, tem u a como equivalente decimal o valor 1 22 + 1 21 + 1 20 = 7, e as linhas da tabela encontram-se ordenadas pelos equivalentes decimais dos nmeros binrios que as identicam (de 0 at 7), como se disse acima. u a e Pe-se, de seguida, o problema de ler uma tabela de verdade e, dessa leitura, o deduzir a expresso booleana da funao nela representada. Esse problema ser a c a abordado em pormenor mais ` frente neste cap a tulo, quando se estudarem as formas cannicas das funoes booleanas simples. o c Entretanto, podemos deduzir o seguinte: 1. a funao F possui 1s nas linhas 4, 6 e 7 da tabela de verdade; c 2. a linha 4 caracterizada pela quantidade booleana geral (A, B, C) = e = (1, 0, 0), pelo que F = 1 quando A = 1, B = 0 e C = 0 e, portanto, quando A B C = 1; 3. a linha 6 caracterizada pela quantidade booleana geral (A, B, C) = e = (1, 1, 0), pelo que F = 1 quando A = 1, B = 1 e C = 0 e, portanto, quando A B C = 1; 4. a linha 7 caracterizada pela quantidade booleana geral (A, B, C) = e = (1, 1, 1), pelo que F = 1 quando A = 1, B = 1 e C = 1 e, portanto, quando A B C = 1; Segue-se que F = AB C +AB C +AB C,

que podemos, obviamente, tentar simplicar usando os axiomas e os teoremas da lgebra de Boole binria: a a F = ABC +AB C +AB C = A C (B + B) + A B (C + C) = AB + AC. A leitura de uma tabela de verdade pode ser feita de forma mais expedita por simples anlise do seu contedo. Para vermos como, consideremos mais uma a u vez a Tabela 4.1 e, nela, os pares de linhas em que a funao vale 1 e que apenas c diferem numa quantidade booleana simples. Como F = 1 nas linhas 4, 6 e 7, apenas existem dois pares de linhas nestas condioes: o par (4, 6) e o par (6, 7). c As linhas do par (4, 6) diferem na varivel B que vale 0 na linha 4 e 1 a na linha 6 mantendo-se as restantes variveis com valores constantes, mais a

56

CAP ITULO 4. REPRESENTACAO DAS FUNCOES

exactamente A = 1 e C = 0. Segue-se que podemos identicar esse par de linhas pela expresso booleana A C (ver a Tabela 4.2), independentemente do valor de a B, j que com A = 1 e C = 0 se tem A C = 1. Como F = 1 para o par, segue-se a que F = AC + ... . Nas reticncias est inclu a contribuio do outro par. e a da ca Tabela 4.2: Tabela de verdade da funao booleana simples F (A, B, C) = c = A B + A C, onde se identicam pelas suas expresses booleanas os pares de o linhas em que F = 1 e que s diferem numa quantidade booleana simples (Nota: o a numerao das linhas no faz parte da tabela) ca a
Linha # 0 1 2 3 4 5 6 7 A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 0 0 0 0 1 0 1 1 Este par de linhas representa-se por A C Este par de linhas representa-se por A B Logo, F = A B + A C

Consideremos agora o par (6, 7), que muda na varivel C e que mantm consa e tantes A = 1 e B = 1. Ento, a expresso booleana que identica este par de a a linhas A B (ver ainda a Tabela 4.2). Segue-se que e F = AB +... . Tambm aqui, as reticncias incluem a contribuio do outro par de linhas. e e ca Da conjugaao destas duas expresses conclui-se que c o F (A, B, C) = A B + A C , como j tinhamos obtido. a Podemos agora passar ao problema inverso, o da escrita de uma tabela de verdade a obtenao da tabela a partir da expresso booleana da funao que c a c representa. Consideremos, como exemplo, a funao c F1 (A, B, C) = A + A B + A B C . A expresso parcial A B C vai identicar uma (e s uma) linha da tabela em a o que a funao vale 1, mais concretamente a linha para a qual A = 0, B = 0 e c C = 0 isto , a linha 0 (ver a Tabela 4.3). e Isto porque, para estes valores das variveis, temos A B C = 1 e, por conseguinte, a F1 = 1 (no esquecer que F1 igual ` soma lgica desta expresso com outras, a e a o a e se a expresso vale 1, a funao tambm vale 1). a c e

4.2. TABELAS DE VERDADE

57

Tabela 4.3: Tabela de verdade da funao booleana simples F1(A, B, C) = A + c + A B + A B C (Nota: a numeraao das linhas no faz parte da tabela) c a
Linha # 0 1 2 3 4 5 6 7 A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F1 1 0 1 1 1 1 1 1 Esta quadra de linhas representa-se por A Este par de linhas representa-se por A B Esta linha representa-se por A B C

Reparar que uma linha da tabela vai corresponder a um produto lgico que o envolve todos os literais da funao, no caso os literais A, B e C. c Consideremos agora a expresso parcial A B de F1. Como a esta expresso falta a a um literal, ela vai identicar duas linhas da tabela em que a funao vale 1. Mais c exactamente, trata-se das linhas em que A = 0 e B = 1, ou seja, as linhas 2 e 3 (independentemente dos poss veis valores de C). Finalmente, a expresso parcial A (em que faltam 2 literais) vai identicar quatro a linhas da tabela em que a funao vale 1. Ou seja, identica todas as linhas em c que A = 1, isto , as linhas 4 a 7 (independentemente dos poss e veis valores de B ou de C). Segue-se que F1 vale 1 nas linhas 0, 2, 3 e 4 a 7, e vale 0 na que resta, a linha 1. Naturalmente, existe uma outra forma de escrever a tabela de verdade de uma funao, dada a sua expresso booleana. Basta ir gerando tabelas de verdade c a parciais para cada uma das parcelas da soma lgica (ou factores do produto o lgico) da expresso. Por exemplo, a tabela de verdade da funao anterior pode o a c ser obtida como se ilustra na Tabela 4.4. Tabela 4.4: Tabela de verdade da funao booleana simples F1(A, B, C) = A + c + A B + A B C, gerada a partir de tabelas de verdade parciais para cada uma das parcelas da soma lgica o
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 A 0 0 0 0 1 1 1 1 AB 0 0 1 1 0 0 0 0 ABC 1 0 0 0 0 0 0 0 F1 = A + A B + A B C 1 0 1 1 1 1 1 1

58

CAP ITULO 4. REPRESENTACAO DAS FUNCOES

4.3

O Conjunto {AND, OR, NOT}

Qualquer funao booleana simples pode ser representada recorrendo apenas a c este conjunto de trs funoes. Por exemplo, a funao Equivalncia, A B, pode e c c e ser escrita de diversas formas, A B AB + AB = AB AB = AB + AB, que apenas utilizam as funoes do conjunto {AND, OR, NOT}. c
def

= (A + B) (A + B)

Para justicar que qualquer funao booleana simples pode ser expressa usando c apenas as funoes do conjunto {AND, OR, NOT}, consideremos a tabela de c verdade da Tabela 4.5, onde se apresentam trs funoes, F 1, F 2 e F 3, obtidas e c da tabela de verdade de uma funao F arbitrria, de modo a que cada uma das c a funoes F 1 a F 3 apenas tem um 1 na tabela. c Tabela 4.5: Tabela de verdade das funoes F 1, F 2 e F 3, obtidas da tabela de c verdade da funo F ca
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F1 0 0 0 0 0 0 0 1 F2 0 0 0 0 0 0 1 0 F3 0 0 0 0 1 0 0 0 F 0 0 0 0 1 0 1 1

E facil ver que F = F 1 + F 2 + F 3. E facil de ver tambm que F 1 = A B C, que e F 2 = A B C e que F 3 = A B C Logo, ser a F = AB C +AB C + AB C.
Outros conjuntos universais so, por exema plo, {NAND} e {NOR}, como veremos ` frente. a Conjunto completo (universal)

Este mtodo utilizvel com generalidade. Logo, sempre poss e e a e vel denir qualquer funao booleana simples utilizando o conjunto {AND, OR, NOT}, c pelo que este conjunto se designa por completo ou universal.

4.4

Representao por Somas de Mintermos ca

Repare-se que o mtodo que se acabou de descrever possibilitou a passagem e da representaao por tabela de verdade para uma representaao por expresso c c a

4.4. SOMA DE MINTERMOS

59

algbrica. Por acaso, como sabemos, no se obteve a expresso algbrica mais e a a e simples poss para a funao F . vel c Contudo, esta expresso tem uma caracter a stica muito importante: trata-se de uma uma soma de produtos e TODOS os produtos envolvem TODOS os literais da funao (recordemos da pgina 49 que um literal uma varivel ou o seu c a e a complemento). Os produtos lgicos deste tipo chamam-se mintermos ou termos minimais da o funao em causa. Repare-se que cada mintermo corresponde a um dos 1s da c funao. Por exemplo, o mintermo A B C corresponde ao 1 da ultima linha da c tabela. Se numerarmos as linhas da tabela de verdade como se fez atrs, com os a equivalentes decimais dos nmeros binrios que correspondem `s quantidades u a a booleanas gerais em cada linha [a linha correspondente ` quantidade booleana a geral (A, B, C) = (0, 0, 0) numerada com 0, a linha correspondente ` quane a tidade booleana geral (A, B, C) = (0, 0, 1) numerada com 1, etc., se A for a e varivel com maior peso], obtm-se uma tabela de verdade como a da Tabela 4.1, a e que se repete na Tabela 4.6 por comodidade. Tabela 4.6: Tabela de verdade da funo booleana simples F (A, B, C) = ca = A B + A C onde se enumeram as linhas pelos equivalentes decimais dos nmeros correspondentes `s quantidades booleanas gerais (Nota: a numeraao u a c das linhas no faz parte da tabela) a
Linha # 0 1 2 3 4 5 6 7 A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 0 0 0 0 1 0 1 1 Mintermo ou termo minimal

Podemos, assim, referir cada um dos mintermos pelo nmero da respectiva linha u da tabela. Por exemplo, A B C ser o mintermo m7 e A B C ser o mintermo a a m4 . Mais uma vez, esta numeraao s faz sentido depois de termos atribu c o do pesos `s variveis (no caso, admitiu-se que A era a varivel com maior peso). a a a Sendo assim, podemos escrever F = m4 + m6 + m7 = AB C +AB C +AB C, ou ainda, F = m(4, 6, 7) .

60
Soma de mintermos Primeira forma cannica ou forma o cannica disjuntiva o

CAP ITULO 4. REPRESENTACAO DAS FUNCOES

A expresso, que unica para a funao, uma soma de mintermos. Trata-se da a e c e primeira forma cannica ou forma cannica disjuntiva da funao. o o c Cada funao booleana simples representvel por uma e s uma forma cannica c e a o o disjuntiva, embora possa ser representada algbricamente por diversas formas e normais disjuntivas.

4.5

Representao por Produtos de Maxtermos ca

Tal como se constru a expresso anterior em termos dos 1s da funo, u a ca poder amos ter trabalhado com os 0s, como se ilustra na Tabela 4.7. Tabela 4.7: Tabela de verdade das funoes G1 a G5, obtidas da tabela de verdade c da funao F c
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 G1 0 1 1 1 1 1 1 1 G2 1 0 1 1 1 1 1 1 G3 1 1 0 1 1 1 1 1 G4 1 1 1 0 1 1 1 1 G5 1 1 1 1 1 0 1 1 F 0 0 0 0 1 0 1 1

Agora fcil de ver que e a F = G1G2G3G4G5 , e, com algum trabalho de anlise, conclui-se que a G1 = A + B + C G2 = A + B + C G3 = A + B + C G4 = A + B + C G5 = A + B + C Por exemplo, G1 vale 1 por toda a parte excepto para a linha (A, B, C) = = (0, 0, 0), em que vale 0. Logo, G1 deve ser o complemento da funao que c apenas vale 1 nessa linha e 0 nas restantes, isto , o complemento de m0 = A B C. e Ou seja, G1 = A B C = A + B + C . Em resumo, F = (A + B + C) (A + B + C) (A + B + C) (A + B + C) (A + B + C) .

4.5. PRODUTO DE MAXTERMOS

61

Estamos, agora, na presena de um produto de somas em que TODOS os facc tores do produto envolvem TODOS os literais da funo. Cada uma das somas ca um maxtermo ou termo maximal da funao. A expresso, por seu turno, um e c a e produto de maxtermos. Trata-se da segunda forma cannica ou forma cannica o o conjuntiva da funao, que unica para F . c e Cada funao booleana simples representvel por uma e s uma forma cannica c e a o o conjuntiva, embora possa ser representada algbricamente por diversas formas e normais conjuntivas. Os maxtermos esto associados com os 0s da tabela de verdade da funo e a ca podem ser numerados. Assim, a funao ser c a F = (A + B + C) (A + B + C) (A + B + C) (A + B + C) (A + B + C) = M0 M1 M2 M3 M5 = M (0, 1, 2, 3, 5) . Notemos a forma como so lidos da tabela de verdade os maxtermos e os a mintermos da funao: c enquanto que para a obtenao do c ndice de um mintermo contam as variveis a a 1 na tabela, para a formao de um maxtermo contam as variveis s 0; ca a a expresso de um mintermo formada lendo cada varivel a 1 e incluindoa e a -a na expresso do mintermo na forma no complementada; por exemplo, o a a mintermo m6 de F formado pelo produto dos literais A, B e C; e a expresso de um mintermo formada pelo produto de literais que resultam a e de se considerar todas as variveis; por exemplo, a expresso do mintermo a a m6 de F m6 = A B C; e a expresso de um maxtermo formada lendo cada varivel a 0 e incluindo-a a e a na expresso do maxtermo na forma complementada; por exemplo, o maxa termo M2 de F formado pela soma dos literais A, B e C; e a expresso de um maxtermo formada pela soma de literais que resultam a e de se considerar todas as variveis; por exemplo, a expresso do maxtermo a a M2 de F M2 = A + B + C. e Para terminar, vejamos a relaao entre os mintermos da primeira forma cannica c o e os maxtermos da segunda forma cannica de uma dada funo. Como vimos o ca atrs para uma funao arbitrria de 3 variveis, o maxtermo M0 = A + B + C a c a a o complemento do mintermo m0 = A B C, e vice-se versa. Na realidade esta e igualdade estende-se a todo o par (mi , Mi), mi = Mi e Mi = mi , 0 i 2n 1 ,

Maxtermo ou termo maximal Produto de maxtermos Segunda forma cannica ou forma o cannica conjuntiva o

para qualquer funao booleana simples de n variveis booleanas simples. Porm, c a e no esquecer que, se a funao possui mi na sua forma cannica disjuntiva, no a c o a pode possuir Mi na sua forma cannica conjuntiva (a funao vale 1 ou vale 0 na o c linha i da tabela de verdade, mas no pode valer simultaneamente 1 e 0 nessa a linha).

62

CAP ITULO 4. REPRESENTACAO DAS FUNCOES

4.6
Logigrama

Representao por Logigrama ca

Comecemos por considerar, na Figura 4.1, o logigrama correspondente ` exa presso em forma normal disjuntiva F = A B + A C. a

B A

&

AB
1

F = AB + AC

&

AC

Figura 4.1: Logigrama correspondente ` expresso em forma normal disjuntiva a a F = AB +AC Devemos notar, no logigrama, a forma grca de vrias portas lgicas, j conhea a o a cidas do Cap tulo 3, que representam as funoes lgicas envolvidas: c o 1. uma porta NOT, ou porta inversora, que implementa a funao complec mentaao que transforma a varivel booleana simples de entrada, C, na c a a da; funao booleana simples C ` sa c
1

2. duas portas AND com 2 entradas cada uma, uma que implementa a funao c produto lgico das variveis booleanas simples A e B `s entradas para o a a dar a funo booleana simples A B ` sa ca a da, e a outra que implementa a funao produto lgico da varivel booleana simples A e da funao booleana c o a c a c a da; e simples C `s entradas para dar a funao booleana simples A C ` sa
A B
&

AB

A C

&

AC

3. nalmente, uma porta OR que implementa a funao soma lgica das c o a ca funoes booleanas simples A B e A C `s entradas para dar a funo booc leana simples F = A B + A C ` sa do circuito. a da
AB AC
1

AB + AC

Considere-se agora a representaao por soma de mintermos. O logigrama corc respondente ser o que se ilustra na Figura 4.2. a Repare-se que cada mintermo representado por uma porta lgica AND com 3 e o entradas (porque cada mintermo envolve 3 literais). H, portanto, uma corresa pondncia entre os 1s da tabela de verdade de uma funao booleana simples, e c

4.6. REPRESENTACAO POR LOGIGRAMA


A B C

63

&

m7 = A B C

B
&

m6 = A B C

f=

m(4,6,7)

&

m4 = A B C

Figura 4.2: Logigrama correspondente ` expresso em forma cannica disjuntiva a a o F = m(4, 6, 7) os produtos na expresso booleana da primeira forma cannica da funao, e as a o c portas lgicas na representaao grca (logigrama). o c a De notar ainda que os s mbolos IEC das portas NOT se encontram numa posiao c que no habitual. Tal decorre das regras muito rigorosas denidas na norma IEC a e 61802-1 quanto ao posicionamento dos s mbolos. Esta questo vem aprofundada a no Apndice B. e Dado conhecermos j os s a mbolos IEC das portas lgicas mais usuais, deveo mos agora perguntar quantas entradas podem essas portas possuir (no Cap tulo anterior apenas se apresentaram s mbolos para portas com 1, 2 e 3 entradas). Obviamente com a excepao da porta NOT, que apenas tem uma entrada, qualc quer porta lgica pode, teoricamente, ter o nmero de entradas que quisermos. o u Contudo, razes tecnolgicas associadas ao fabrico dos circuitos integrados que o o as implementam sicamente nos circuitos digitais (como veremos no Cap tulo 6) xam o nmero de entradas das portas a duas, trs, quatro, cinco e, por vezes, u e oito. Mas no h nada de r a a gido nesta armaao, e o aluno deve assegurar-se, c caso a caso, que a porta lgica de que necessita possui o nmero de entradas o u pretendidas. A t tulo de exemplo, apresentam-se de seguida os s mbolos de duas portas com um nmero de entradas pouco habitual: u uma porta NAND com 5 entradas:
A B C D E
&

Norma IEC 61082-1

S mbolo de uma porta NAND com 5 entradas ABCDE

64
S mbolo de uma porta NOR com 4 entradas

CAP ITULO 4. REPRESENTACAO DAS FUNCOES

uma porta NOR com 4 entradas:


A B C D
1

A+B+C+D

Note-se, mais uma vez, que as portas XOR e XNOR em geral apenas possuem 2 entradas, e que as funoes OU-exclusivo e Equivalncia com mais do que 2 c e variveis booleanas simples so constru a a das ` custa de mltiplas portas com 2 a u entradas, utilizando as correspondentes propriedades associativas. Por exemplo, a funo A B C formada da seguinte maneira: ca e
A B C
=1 =1

ABC

Por outro lado, utilizam-se muitas vezes os teoremas relativos ao OU-exclusivo da Subsecao 3.5.2 para formar negaoes de variveis ou funoes. Por exemplo, c c a c atendendo a que A 1 = A, podemos substituir uma porta NOT da seguinte maneira:
A H
=1

A1= A

Notemos como neste logigrama o valor lgico 1 vem representado por um nvel o H (algo que estudaremos mais tarde, quando se falar na lgica de polaridade no o Cap tulo 7). Finalmente, h ocasies em que necessitamos de uma porta com um elevado a o nmero de entradas mas no dispomos de tal porta. No caso em que a coru a respondente funao booleana associativa podemos fazer como anteriormente c e para a funao Ou-exclusivo, como em c
A B C D E F
& & &

ABCD EF

Mas ateno que as funoes NAND e NOR no so associativas, pelo que a ca c a a soluo anterior no lhes aplicvel. ca a e a

4.7

Importncia das Funes NAND e NOR a co

Como se viu, qualquer funo pode ser representada como uma soma de minterca mos. Seja, por exemplo, a funao anteriormente dada como exemplo: c F = AB C +AB C + AB C.

4.8. REFERENCIAS BIBLIOGRAFICAS

65

Como sabemos, a dupla negaao no altera uma funao (teorema da involuao), c a c c donde: F = AB C +AB C +AB C. Mas, aplicando uma das leis de de Morgan obtemos F = (A B C)(A B C)(A B C) . Ora, nesta expresso s surgem NANDs e NOTs: a o 1. o NAND com 3 entradas A B C; 2. o NAND com 3 entradas A B C; 3. o NAND com 3 entradas A B C; 4. o NAND global, ainda com 3 entradas, (A B C)(A B C)(A B C); e 5. os NOTs B e C. Por outro lado, um NOT pode ser feito com um NAND, uma vez que AA = A ou ainda que A1 = A. Isso signica que podemos utilizar apenas NANDs na representaao da funao. c c Do mesmo modo, e partindo da segunda forma cannica, pode-se mostrar que o a funo pode ser representada apenas por NORs. ca E, naturalmente, o que vlido para a funao F vlido para qualquer funao e a c e a c booleana simples. Da que os conjuntos {NAND} e {NOR} sejam conjuntos completos, tal como o o conjunto {AND, OR, NOT}, como vimos anteriore mente.

4.8

Referncias Bibliogrcas e a

Srro, Carlos Sistemas Digitais: Fundamentos Algbricos, IST Press, Lisboa, e e 2003, Cap tulo 5. Arroz, G. S., Monteiro, J. C. e Oliveira, A. L. Introduao aos Sistemas c Digitais e Microprocessadores, Seces 3.1.10 a 3.1.13, e 3.2. co Mano, Morris M., and Kime, Charles R. Logic and Computer Design Fundamentals, 2nd ed., Prentice Hall International, Inc., New Jersey, USA, 2000, Secoes 2.3 e 2.6. c

4.9

Exerc cios

Nota: os exerc cios identicados com um asterisco () esto resolvidos em a SD:ER.

66

CAP ITULO 4. REPRESENTACAO DAS FUNCOES

4.1 Dada a expresso em forma normal conjuntiva da funo booleana simples a ca f1 = (a + b) (a + c) (b + c) , determinar a sua expresso mais simples em forma normal disjuntiva. a 4.2 Dada a expresso em forma mista da funao booleana simples a c f2 = a b + a b c (x + y) , coloc-la na forma: (i) de uma soma de produtos; e (ii) de um produto de a somas. () 4.3 Desenhar as tabelas de verdade das seguintes funoes booleanas simples, c a) b) c) d) e) F1(A, B, C) = A B C + A B C + A C; F2(A, B, C) = A (B + C) (B + C); F3(A, B, C, D) = A [B + C (B + D)]; F4(A, B, C) = A C + B C; F5(A, B, C) = A (B C + B C),

e identicar, para cada uma delas, as correspondentes formas cannicas. o 4.4 Vericar, examinando todos os casos poss veis, que A B+A C+B C=A B+ +A C. () 4.5 Considere as seguintes funoes booleanas simples: c a) b) f(A, B, C) = (A B) C + A (B C); f(A, B, C, D) = A + A B C + C D (C D + C D) + + C D (C D + CD).

Escreva-as na forma normal conjuntiva (produto de somas) mais simples que conseguir. 4.6 Considere a funao de 3 variveis dada pela expresso c a a f(A, B, C) = (A + B) A B C . Escreva esta funao na forma de uma soma de produtos. c 4.7 Numere os seguintes mintermos e maxtermos: (a) (c) (e) () A + B; A B C; A B C D; (b) (d) (f) A C; A + B + C; A + B + B + D.

4.8 Represente por uma soma de mintermos e por um produto de maxtermos a funao c f(A, B, C) = (A + B) C + (A C) A B . 4.9 Dada a funao c f(A, B, C, D) = (A + B) C + A (C D) + A B C D , obtenha: a) a tabela de verdade; b) a expresso em soma de mintermos; a c) a expresso em produto de maxtermos; a d) a expresso em soma de mintermos da funao f(A, B, C, D). a c

()

4.9. EXERC ICIOS

67

() 4.10 Utilizar o conjunto completo {AND,OR,NOT} para representar algebricamente (em somas de produtos) as seguintes funoes booleanas simples: c a) b) f1 = (a b c) a; f2 = (a b) c.

() 4.11 Representar as seguintes funoes booleanas simples em primeira forma c cannica: o a) f1 = (a b c) a; b) f2 = (a b) c. () 4.12 Representar as seguintes funoes booleanas simples em segunda forma c cannica: o a) f1 = (a b c) a; b) f2 = (a b) c. 4.13 Traar os logigramas correspondentes `s expresses dadas para as seguintes c a o funoes booleanas simples: c a) b) c) f = a c + b c + a b c; g = (a + b c) a; h = M (2, 4, 6, 7).

() 4.14 Considere o logigrama da Figura 4.3.


A D B
& =1 1 & & 1

A D

Figura 4.3: Logigrama utilizado no Exerc 4.14 cio Redesenhe-o da forma mais simples que conseguir. () 4.15 Usando apenas: a) b) c) NANDs; NORs; AOIs,

desenhe o logigrama da seguinte funao: c f(A, B, C) = (A C) B + B C + A C . (Nota: AOI a sigla de And-Or Invert. Ou seja, o logigrama deve apree sentar um primeiro andar com portas AND e um segundo andar com uma porta NOR). 4.16 Modicar o logigrama do Exerc cio 4.14 por forma a apenas se usarem portas NANDs.
And-Or Invert (AOI)

68

CAP ITULO 4. REPRESENTACAO DAS FUNCOES

4.17 Modicar o logigrama do Exerc cio 4.14 por forma a apenas se usarem portas NORs. 4.18 Ponha as seguintes funoes c a) b) c) f = A (B + (C D) (A + B)) + A B C + B (C D); f = (A + B) (C + D) (A + B) (A + D); f = (A + B + C) (C + D) (A D),

na forma de: a) uma soma de produtos; b) um produto de somas.

Cap tulo 5

Mtodo de Karnaugh e
5.1 Simplicao Algbrica de Funoes Booleanas ca e c Simples
Expresses o simplicadas

A simplicaao algbrica pode ser utilizada para se obterem expresses booleanas c e o mais simples (expresses simplicadas) para as funoes, ou para se obterem exo c presses sob determinadas formas. o Como exemplo, consideremos a simplicaao algbrica da seguinte funao booleana c e c simples, f(a, b, c) = a b c + a c + b c . Fazemos: f(a, b, c) = a b c + a c + b c = (a b + a + b) c = (b + a + b) c = 1c = c. Suponhamos agora que pretendemos obter, a partir da expresso de uma funao a c booleana simples, g(a, b, c, d) = a b d + a c d + a c d + a b d , uma outra expresso que apenas possua operadores de duas variveis e negaoes. a a c Fazemos: g(a, b, c, d) = a b d + a c d + a c d + a b d = a (b d + c d) + a (c d + b d) . E se pretendermos colocar a expresso do exemplo anterior s em NANDs fazea o mos: g(a, b, c, d) = a b d + a c d + a c d + a b d = (a b d)(a c d)(a c d)(a b d) . 69

70

CAP ITULO 5. METODO DE KARNAUGH

5.2
Expresses m o nimas

Minimizao de Funoes Booleanas Simples ca c

O que se pretende agora obter a expresso ou expresses m e a o nimas de uma dada funao. Naturalmente, o conceito de m c nimo depende do critrio que escolhere mos. Usaremos como critrio o nmero de termos na expresso (termos produto e u a numa soma de produtos ou termos soma num produto de somas) e o nmero de u literais nos termos. Presume-se a representaao de uma funao a dois n c c veis, isto , numa das suas e formas normais ou cannicas, disjuntivas ou conjuntivas. o A minimizaao algbrica por utilizaao dos axiomas e teoremas da lgebra de c e c a Boole binria poss (temos vindo a faz-la) mas , por vezes, dif e carece a e vel e e cil de experincia. Preferimos, por isso, recorrer a um mtodo semi-grco desie e a gnado por mtodo de Karnaugh. e

5.3

Adjacncias em Mapas de Karnaugh e

Antes de passarmos ao mtodo semi-grco de Karnaugh, iremos ver de seguida e a que h mtodos tabulares interessantes para simplicar funoes booleanas. a e c Como se viu anteriormente, uma funao pode ser representada de vrias formas. c a Por exemplo, a funao F = A B +A C que temos vindo a usar pode ser represenc tada pela tabela de verdade da Tabela 4.1 e que se reproduz, por comodidade, na Tabela 5.1. Tabela 5.1: Tabela de verdade da funao booleana simples F (A, B, C) = A B + c +A C
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 0 0 0 0 1 0 1 1

A partir desta tabela podemos ler a correspondente forma cannica disjuntiva, o F = AB C +AB C + AB C, que j vimos que pode vir simplicada algbricamente para: a e F = AB C +AB C +AB C = A C (B + B) + A B (C + C) = AB + AC.

5.3. ADJACENCIAS

71

Do mesmo modo que a representaao de funoes pode ser feita indiferentemente c c utilizando uma forma tabular ou uma expresso booleana, o prprio processo a o de simplicaao pode ser feito dos dois modos. c Reparemos, ento, na forma como se chegou ao termo A B na expresso acima. a a Isso conseguiu-se por junao dos mintermos A B C e A B C que correspondem c a `s linhas 6 e 7 (a negrito) na tabela.
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 0 0 0 0 1 0 1 1

Reparemos que essas linhas tm uma particularidade: em ambas a funao vale e c 1 (naturalmente) e, so as duas unicas linhas da tabela em que A e B valem a simultaneamente 1. A diferenca entre as duas linhas est na varivel C. Logo, a a pode-se concluir que, nesta funo, basta A e B valerem 1 para a funao tambm ca c e valer 1. Da a concluso que F = A B + . a Podia ser feito o mesmo racioc nio para o outro produto. Mas, nesse caso, as linhas em causa so a 4 e a 6. a
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 0 0 0 0 1 0 1 1

a E fcil de ver que, agora, basta que A seja 1 e C seja 0 para se concluir que a funao vale 1. Da que tambm podemos escrever F = A C + . c e E como no h mais 1s, podemos concluir que F = A B +A C, como tinhamos a a visto anteriormente.

Podemos, ento, simplicar directamente a funao por observaao da tabela a c c associando linhas em que a funo tenha o valor 1 e que diram apenas de uma ca varivel: no primeiro produto associamos as linhas 6 e 7, que diferem apenas a na varivel C, e no segundo associamos as linhas 4 e 6, que diferem apenas na a varivel B. a

72
Linhas adjacentes

CAP ITULO 5. METODO DE KARNAUGH

Destas linhas, que diferem apenas de uma varivel, diz-se serem adjacentes. a E claro que era bom, como aconteceu no primeiro caso, que todas as linhas adjacentes estivessem sicamente encostadas. Mas, com 3 variveis, cada linha a tem sempre 3 linhas adjacentes e, na tabela, imposs e vel colocar sicamente uma linha encostada a outras trs. e Esta situao levou ` alteraao da tabela, de forma a que se satiszessem estes ca a c requisitos. Esta nova forma de desenhar a tabela designa-se por quadro de Karnaugh ou mapa de Karnaugh. Na Figura 5.1 apresenta-se um quadro de Karnaugh genrico para uma funao e c booleana simples de 3 variveis (ou seja, um quadro em que no se representa, a a internamente, a funao). c

Quadro (mapa) de Karnaugh Quadro de Karnaugh com 3 variveis a

BC A 00 0 1 A1

01 A2 P

11

10

A3

Figura 5.1: Quadro de Karnaugh genrico de uma funao de 3 variveis onde se e c a ilustram alguns quadrados adjacentes
Quadrados adjacentes

Repare-se que, para cada posiao do mapa, h 3 quadrados adjacentes. Por c a exemplo a posiao P tem, como posioes adjacentes: (i) a posiao A1, que se c c c diferencia de P apenas por causa da varivel C; (ii) a posiao A2, que diferente a c e apenas na varivel A; e (iii) e a posiao A3, que diferente apenas na varivel a c e a B. Repare-se que tudo se passa como se as posioes laterais estivessem encostadas, c o que se conseguiria com o mapa desenhado sobre um cilindro de eixo vertical (Figura 5.2).

BC A 00 0 1 A3

01

11

10 A2

A1

Figura 5.2: Quadro de Karnaugh de uma funao de 3 variveis onde se ilustram c a outros quadrados adjacentes A funao F = A B + A C que temos vindo a considerar est ilustrada no mapa c a de Karnaugh da Figura 5.3, que tambm mostra a leitura da sua expresso e a simplicada. So vlidas no mapa de Karnaugh todas as associaoes de 2 elementos ada a c jacentes, no s no sentido formal do termo, mas tambm no de localizaao a o e c cont gua no mapa.

5.3. ADJACENCIAS
BC A 00 0 1 0 1

73

01 0 0

11 0 1

10 0 1 AB AC

F = AB + AC

Figura 5.3: Quadro de Karnaugh da funao F = A B + A C, com leitura da sua c expresso simplicada a Como fcil de ver, a numeraao das linhas da tabela de verdade da funao e a c c passam para as correspondentes posioes no quadro de Karnaugh pela ordem c que se indica na Figura 5.4.
BC A 00
0 1

01
3

11
2

10 0
6

0
4

0
5

0
7

0 1

Figura 5.4: Quadro de Karnaugh de uma funao booleana simples de 3 variveis c a onde se identicam os seus 8 quadrados, numerando-os de 0 a 7, de acordo com os equivalentes numricos dos nmeros binrios correspondente `s quantidades e u a a booleanas gerais (A, B, C) = (0, 0, 0) a (A, B, C) = (1, 1, 1) Devemos acentuar que esta no a unica forma de desenhar o mapa de Karnaugh a e de uma funao de 3 variveis. c a Consideremos outro exemplo: F = de Karnaugh da Figura 5.5.
BC A
0

m(0, 2, 4, 5, 6) e o correspondente mapa

00
1

01
3

11
2

10 1
6

0 BC 1
4

1
5

0
7

0 0

1 AB

BC

F = AB+BC +BC

Figura 5.5: Quadro de Karnaugh da funao F = c m(0, 2, 4, 5, 6), com os agrupamentos de unidades que do uma expresso simplicada, F = A B + a a + BC +BC a E fcil de ler do mapa a expresso a F = AB + BC + BC . Mas tambm fcil de ver que os dois termos nais se podem simplicar, e e a

74

CAP ITULO 5. METODO DE KARNAUGH

obtendo-se para a funao a expresso mais simples c a F = AB + C. Ora esta expresso igualmente leg a e vel no mapa de Karnaugh. De facto, os dois grupos de dois 1s nas extremidades do mapa so adjacentes e podem a juntar-se entre si para originar o quadro da Figura 5.6, onde fcil agora ler e a directamente a expresso mais simplicada. a
BC A
0

C 00
1

01
3

11
2

10 1
6

0
4

1
5

0
7

0 0

1 AB

F = AB+C

Figura 5.6: Quadro de Karnaugh da funao F = c m(0, 2, 4, 5, 6), com os agrupamentos de unidades que do uma expresso mais simplicada, F = A B + a a +C

5.4

Quadros de Karnaugh com 4 Variveis a

O mapa de Karnaugh anterior foi apresentado para 3 variveis booleanas sima ples. Contudo, pelo menos em teoria, podemos construir um mapa com um nmero arbitrrio de variveis. Na prtica, porm, com mais de 6 variveis u a a a e a torna-se bastante dif a utilizaao dos mapas de Karnaugh e, alm disso, h cil c e a outros mtodos de minimizaao mais ecazes (que, no entanto, assentam nos e c mesmos princ pios do mtodo agora apresentado). e
Quadro de Karnaugh com 4 variveis a

Um quadro com 4 variveis constri-se facilmente. A partir de um mapa de a o 3 variveis, replica-se o quadro por reexo num espelho imaginrio, como se a a a sugere na Figura 5.7.
CD AB
0

00
1

01
3

11
2

10

00
4 5 7 6

01
12 13 15 14

11
8 9 11 10

10

Figura 5.7: Quadro de Karnaugh para uma funao booleana simples com 4 c variveis booleanas simples a Repare-se na varivel assinalada a negrito que a que distingue os dois lados a e do mapa. Repare-se, ainda, na numeraao das diversas posies. c co

5.4. QUADROS DE KARNAUGH COM 4 VARIAVEIS

75

Uma vez constru um quadro de 4 variveis, vejamos agora como podemos do a inserir no mapa uma funo com o mesmo nmero de variveis, por exemplo ca u a F = m(1, 5, 6, 7, 11, 12, 13, 15) .

O quadro da funao vem ilustrado na Figura 5.8. c


CD AB
0

00
1

01
3

11
2

10 0
6

00
4

0
5

1
7

0 1
15 14

01
12

0
13

1 1
9 11

1 0
10

11
8

1 0

1 1

10 F =

m(1, 5, 6, 7, 11, 12, 13, 15)

Figura 5.8: Quadro de Karnaugh da funao F = c Passemos agora ` minimizaao desta funao. a c c

m(1, 5, 6, 7, 11, 12, 13, 15)

` A primeira vista, poderia parecer interessante juntar os 4 1s centrais num grupo unico. No entanto, para cobrir os restantes 1s haveria a necessidade de associar cada um deles com um dos 1s do grupo central, como se ilustra na Figura 5.9(a).
CD AB 00 01 11 10 00 0 0 1 0 01 1 1 1 0 (a) 11 0 1 1 1 10 0 1 0 0 AB 00 01 11 10 CD 00 0 0 1 0 01 1 1 1 0 (b) 11 0 1 1 1 10 0 1 0 0

Figura 5.9: (a) Quadro de Karnaugh da funao anterior, com uma tentativa de c agrupamentos que no a mais simples; (b) remove-se o grupo central, por ser a e redundante Verica-se, portanto, que o grupo central no necessrio. Restam os outa e a ros grupos, como se indica na Figura 5.9(b). A leitura deste quadro fcil e a (Figura 5.10), conduzindo ` seguinte expresso m a a nima em soma de produtos: F (A, B, C, D) = A C D + A B C + A B C + A C D . Notemos como se l cada um dos agrupamentos. Para tanto, vamos dar dois e exemplos.

76

CAP ITULO 5. METODO DE KARNAUGH


ACD 00 00 01 ABC 11 10 0 0 1 0 01 1 1 1 0 11 0 1 1 1 10 0 1 0 0 AC D ABC

CD AB

Figura 5.10: Leitura do quadro de Karnaugh da funao anterior c 1. Grupo A B C a expresso deste agrupamento resulta do facto de os a literais A e B e C se manterem com um valor constante dentro do grupo; quanto ` varivel D, no aparece na expresso porque no se mantm a a a a a e constante dentro do grupo. 2. Grupo A B C os literais A, B e C mantm-se constantes dentro do e grupo, enquanto que a varivel D desaparece porque varia dentro do a grupo.

5.5

Implicantes e Implicantes Primos

Para um pouco mais de aprofundamento sobre o mtodo de Karnaugh que nos e permita perceber melhor o que realmente estamos a fazer e, portanto, traar c tcticas adequadas, vamos dar algumas denioes: a c
Funao implicao c ca Implicante

Para funoes das mesmas variveis, diz-se que uma funao booleana simples F 1 c a c implica outra funao F 2 quando, para todas as quantidades booleanas gerais de c entrada em que a funao F 1 vale 1, a funao F 2 tambm vale 1. Quando F 1 c c e e um produto, diz-se ser um implicante da funao F 2. c No nosso caso, por exemplo, A C D um implicante da funao F . Repare-se e c que todos os mintermos de uma funao F so implicantes dessa funao. c a c Nos quadros de Karnaugh, os implicantes correspondem a associaes vlidas co a de 1s. No mapa da Figura 5.11, indicam-se alguns implicantes da funao de c 3 variveis, F = m(0, 2, 4, 5, 6). a
BC A 00
0 1

01
3

11
2

10 1
6

0
4

1
5

0
7

0 0

Figura 5.11: Quadro de Karnaugh da funao de 3 variveis F = c a com alguns implicantes da funao c

m(0, 2, 4, 5, 6)

5.5. IMPLICANTES E IMPLICANTES PRIMOS

77

Repare-se que o mintermo m6 , por exemplo, para alm de ser um implicante e da funao tambm um implicante do produto que resulta da associaao dos c e e c e mintermos m2 e m6 , isto , B C. Repare-se, ainda, que este produto implicante do produto correspondente ` e a associaao dos mintermos m0 , m2 , m4 e m6 , isto , C. c e Por m, constate-se que este ultimo implicante no implica mais nenhum pro a duto, implicando apenas a funao. c Ao implicante de uma funao booleana simples que no implica nenhum outro c a ca a implicante chama-se implicante primo da funo. A importncia dos implicantes primos decorre de eles corresponderem, no mapa de Karnaugh, aos grupos maiores, que no podem ser expandidos. Ora acontece que esses so exactaa a mente os grupos que nos interessam para as minimizaoes, j que possuem as c a expresses mais simples, com menos literais. o A expresso algbrica minimizada de uma funao expressa em soma de produtos a e c sempre uma soma de implicantes primos da funo. e ca Retome-se o exemplo anterior da funo de 4 variveis, ca a F = m(1, 5, 6, 7, 11, 12, 13, 15) .
Implicante primo

Soma de implicantes primos

Na Figura 5.9(a) esto assinalados todos os implicantes primos de F . Porm, a e como vimos, nem todos os implicantes primos da funao foram usados na exc presso minimizada, como se viu no quadro da Figura 5.9(b) e que se repete na a Figura 5.12, por comodidade.
CD AB
0

AC D 00
1

01
3

11
2

10 0
6

00
4

0
5

1
7

0 1
15 14

01
12

0
13

1 1
9 11

1 0
10

ABC

ABC

11
8

1 0

1 1

10

ACD

Figura 5.12: (a) Quadro de Karnaugh da funao booleana simples F = c = m(1, 5, 6, 7, 11, 12, 13, 15) que assinala os implicantes primos da funao por c intermdio dos quadrados assinalados a cinzento e Repare-se que cada um dos implicantes primos usados tem uma particularidade fundamental: O implicante primo A C D, por exemplo, o unico que associa o mintermo e correspondente ao quadrado 11 (assinalado a cinzento), isto , m11 . e Do mesmo modo, cada um dos outros implicantes primos associa um mintermo que no pode ser associado de outra forma. Assim, o implicante A B C primo a e por causa do mintermo m12 , no quadrado 12 assinalado a cinzento; o implicante A C D primo por causa do mintermo m1 , no quadrado 1 assinalado a e

78

CAP ITULO 5. METODO DE KARNAUGH

cinzento; e o implicante A B C primo por causa do mintermo m6 , no quadrado e 6 assinalado a cinzento. Ao contrrio, o implicante primo correspondente `s posioes centrais do mapa a a c (que acabou por no ser usado), associa mintermos que podem ser associados a de outra forma, pelo que no um implicante fundamental para a minimizaao a e c da funao. c
Implicante primo essencial

Os implicantes primos que associam mintermos que no podem ser associados a em implicantes primos de outra forma, so designados por implicantes primos a essenciais da funao. c E os quadrados que contm mintermos que tornam essencial um dado implicante e primo (como os assinalados a cinzento na Figura 5.12) designam-se por quadrados essenciais. Como vimos, a expresso algbrica de uma funao em termos de soma de proa e c dutos uma soma de implicantes primos. Mas no tm que ser usados todos os e a e implicantes primos. No entanto, todos os implicantes primos essenciais tm de e estar presentes na expresso mnima. a No exemplo anterior, os implicantes primos A C D, A B C, A C D e A B C so a implicantes primos essenciais da funao, e a expresso minimizada a soma c a e desses implicantes. Convm referir que, embora neste exemplo os unicos implicantes usados sejam e implicantes primos essenciais, isso no uma regra geral. Com efeito, repare-se a e na funao da Figura 5.13. c
CD AB
0

Quadrado essencial

AC D 00
1

01
3

11
2

10 1
6

AB D

00 ABC 01
12 4

1
5

1
7

0 1
15 14

0
13

1 0
9 11

0 0
10

ABD

11
8

0 0

0 1

10

ABCD

Figura 5.13: (a) Quadro de Karnaugh de uma funao que possui implicantes c primos essenciais (devido aos quadrados assinalados a cinzento) e no essenciais a Neste exemplo, os implicantes primos so os seguintes: a 1. A B D um implicante primo essencial por ser o unico implicante e primo a associar o mintermo m2 , correspondente ao quadrado 2 no mapa (quadrado essencial); 2. A B D um implicante primo essencial por ser o unico implicante e primo a associar o mintermo m7 , correspondente ao quadrado 7 no mapa (quadrado essencial); 3. A B C D um implicante primo essencial por ser um mintermo (o e mintermo m11) que no pode ser associado com qualquer outro mintermo a (quadrado essencial);

5.6. MINIMIZACAO COM INDIFERENCAS

79

4. A B C um implicante primo no essencial porque ambos os mintermos e a nele associados podem ser associados de outras formas; e a 5. A C D um implicante primo no essencial porque ambos os mintermos nele associados podem ser associados de outras formas. Neste caso, a expresso m a nima da funao incluir todos os implicantes primos c a essenciais e um dos no essenciais, dessa forma se associando todos os mintermos a da funao. H, portanto, duas expresses minimas para a funao: c a o c F = AB D +AB D + AB CD +AB C, e F = AB D +AB D +AB CD +AC D.

Convm tambm chamar a atenao para o facto de que podem existir funoes e e c c sem implicantes primos essenciais na sua soma de produtos m nima. Com efeito, considere-se na Figura 5.14 o exemplo da funao c G= m(0, 1, 5, 7, 8, 10, 14, 15) .

CD AB
0

ABC 00
1

CD 10
2

AC D 00 01
1 3

01
3

11 0
7 6

AB
0

11
2

10 0
6

00
4

1
5

1 1
13 15

0 0
14

00
4

1
5

1
7

0 1
15 14

01
12

0 0
8 9

1 1
11 10

ABD ABC

01
12

0
13

1 0
9 11

0 1
10

BCD

11 10

0 0 ABD

1 1

11
8

0 1

1 0

10

0 BCD

AC D

Figura 5.14: Quadro de Karnaugh de uma funao, G, que no possui implicantes c a primos essenciais e que tem duas somas de produtos m nimas Como podemos constatar, esta funao possui duas expresses minimas, c o G = ABC + ABD + ABC + ABD e G = AC D +B CD +AC D +B CD,

e no tem quaisquer implicantes primos essenciais. a

5.6

Minimizao com Indiferenas ca c

Por vezes acontece que, numa funao lgica, certas conguraoes de entradas c o c nunca ocorrem. E poss vel tirar partido desse facto para, em muitos casos, minimizar adicionalmente a expresso algbrica da funo. a e ca

80

CAP ITULO 5. METODO DE KARNAUGH

Estudemos um exemplo, ao longo do qual se explora a metodologia a usar. Consideremos que se pretende obter uma funao que tem como variveis de c a entrada os quatro bits de uma representaao em cdigo BCD, e que deve gerar c o na saida um 1 apenas quando o nmero representado for mltiplo de 3. u u Podemos construir a tabela de verdade da funao pretendida (Tabela 5.2). As c variveis de entrada so A3, A2, A1 e A0, que representam os quatro bits do a a cdigo BCD (A3 tem o maior peso). o Tabela 5.2: Tabela de verdade de uma funao booleana simples detectora de c d gitos BCD que so mltiplos de 3 a u
BCD 0 1 2 3 4 5 6 7 8 9 A3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 A2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 A1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 A0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 F 0 0 0 1 0 0 1 0 0 1 Observaoes c No m ltiplo de 3 a e u No m ltiplo de 3 a e u No m ltiplo de 3 a e u u E m ltiplo de 3 No m ltiplo de 3 a e u No m ltiplo de 3 a e u u E m ltiplo de 3 No m ltiplo de 3 a e u No m ltiplo de 3 a e u u E m ltiplo de 3 No BCD a e No BCD a e No BCD a e No BCD a e No BCD a e No BCD a e

Repare-se que temos trs situaes diferentes: e co d gitos BCD que so mltiplos de 3 (F = 1); a u d gitos BCD que no so mltiplos de 3 (F = 0); a a u
Indiferena c

conguraoes de entrada que no so d c a a gitos BCD (assinaladas com os s mbolos na tabela), indicadoras de indiferenas. c Neste ultimo caso no importante considerar o valor da funao, uma vez que a e c as conguraoes de entrada respectivas nunca ocorrem e, portanto, o valor que c a funo teria nessa situao indiferente. ca ca e Inicialmente no vamos ter isso em conta e vamos obter a expresso m a a nima da funao com valores 0 nessas posioes (a opo mais conservadora), como se c c ca ilustra na Figura 5.15. Obtemos, neste caso, F = A3 A2 A1 A0 + A3 A2 A1 A0 + A3 A2 A1 A0 .

5.6. MINIMIZACAO COM INDIFERENCAS


A1 A0 00
0 1

81

A3 A2

01
3

11
2

10 0
6

00
4

0
5

0
7

1 0
15 14

01
12

0
13

0 0
9 11

1 0
10

11
8

0 0

0 0

10

Figura 5.15: Quadro de Karnaugh de uma funao booleana simples que detecta c d gitos BCD so mltiplos de 3; admite-se que se colocam 0s nos quadrados a u 10 a 15, que correspondem a valores nas entradas que no so d a a gitos BCD Mas experimentemos agora protelar para mais tarde a atribuio de valores ca a ` funao nas conguraoes que no correspondem a d c c a gitos BCD, colocando indiferenas no quadro (Figura 5.16). c
A1 A0 00
0 1

A3 A2

01
3

11
2

10 0
6

00
4

0
5

0
7

1 0
15 14

01
12

0 0
13

11
8

11

10

10

Figura 5.16: Quadro de Karnaugh de uma funao booleana simples que detecta c d gitos BCD que so mltiplos de 3; agora incluem-se indiferenas nos quadrados a u c que correspondem a quantidades booleanas gerais de entrada que no so d a a gitos BCD Considere-se, por exemplo, o mintermo m9 , a negrito. Se nas posioes corresponc dentes `s indiferenas o valor da funao fosse 1, poder-se-iam associar os quatro a c c mintermos a negrito, simplicando consideravelmente a expresso. Mas como, a de facto, o valor que a funao toma nestas posioes indiferente, porque no c c e a colocar nesses quadrados os valores que mais nos convm? O mesmo acontece e para outras posioes no mapa. c Podemos, ento, fazer a minimizaao que se indica na Figura 5.17. a c E, neste caso, obtemos a seguinte soma de produtos m nima para a funao: c F = A3 A0 + A2 A1 A0 + A2 A1 A0 . Como se v, muito mais simples a expresso obtida por recorrermos ` exibie e a a lidade que existe por serem certas posioes indiferentes. c Tenha-se em conta que a funao descrita pela expresso obtida deixou de ter c a posioes no denidas. As conguraes de variveis de entrada corresponc a co a dentes `s indiferenas que foram associadas com mintermos da funao passaram a c c

82

CAP ITULO 5. METODO DE KARNAUGH


A2 A1 A0 01
1 3

A3 A2

A1 A0 00
0

11
2

10 0
6

00
4

0
5

0
7

1 0
15

01
12

0 0 A3 A0
13

0 1

1
14

A2 A1 A0

11
8

11

10

10

Figura 5.17: Quadro de Karnaugh de uma funao booleana simples que detecta c d gitos BCD que so mltiplos de 3, e correspondente minimizaao quando se a u c consideram as indiferenas c a provocar uma saida igual a 1 para a funao. E as que no foram associadas c a passaram a gerar uma saida igual a 0. Esta tcnica de utilizao das indiferenas generalizadamente usada para mie ca c e nimizar as expresses das funoes lgicas, que passam ento a designar-se por o c o a funoes incompletamente especicadas ou funoes incompletas, por oposio `s c c ca a funoes completamente especicadas ou funoes completas, que no possuem inc c a diferenas. c

Funoes completa e c incompletamente especicadas

5.7

Quadros de 5 Variveis a

A obtenao de mapas de Karnaugh de 5 variveis faz-se a partir de um mapa c a de 4 variveis, da mesma forma que este se obteve a partir de um mapa de 3 a variveis. a
Quadro de Karnaugh com 5 variveis a

Ilustra-se na Figura 5.18 uma estrutura poss vel de um quadro de 5 variveis, a mostrando tambm a numeraao das diversas posioes admitindo que a varivel e c c a de maior peso A e a de menor peso E. e e
CDE 000
0

AB

001
1

011
3

010
2

110
6

111
7

101
5

100
4

00
8 9 11 10 14 15 13 12

01
24 25 27 26 30 31 29 28

11
16 17 19 18 22 23 21 20

10

Figura 5.18: Estrutura de um quadro de Karnaugh de 5 variveis, em que A a e a varivel de maior peso a

5.7. QUADROS DE 5 VARIAVEIS

83

Para alm de todas as adjacncias vlidas num mapa de 4 variveis (em cada e e a a uma das metades) existem agora adjacncias entre posioes simtricas em e c e relaao ao eixo de simetria vertical. c Vejamos um exemplo. Consideremos a funao c F = m(0, 2, 6, 9 11, 13, 14, 16, 18, 20, 24, 31)

com indiferenas nas posioes 1, 4, 22 e 27, o que se pode representar, em c c alternativa, da seguinte forma F = m(0, 2, 6, 9 11, 13, 14, 16, 18, 20, 24, 31) + md (1, 4, 22, 27) ,

O preenchimento do quadro permite obter a Figura 5.19.


C DE 000
0

(notar que 9 11 o mesmo que 9, 10, 11). e

AB

001
1

011
3

010
2

110
6

111
7

101
5

100
4

00
8

1
9

0
11 10

1
14

1
15

0
13

0
12

01
24

0
25

1
27

1
26 30

1
31

0
29

1
28

11
16

1
17

0
19

0
18 22

0
23

1
21

0
20

0 1

10

Figura 5.19: Quadro de Karnaugh da funao booleana simples F c = m(0, 2, 6, 9 11, 13, 14, 16, 18, 20, 24, 31) + md (1, 4, 22, 27)

Vamos mostrar como devemos minimizar esta funao, comeando por identicar c c os implicantes primos essenciais (a cinzento na Figura 5.20). Como esta funao possui vrios implicantes primos, essenciais e no essenciais, c a a optou-se por ger-los em mais de um quadro. Por outro lado, optou-se por a no incluir os 0s no mapa, visto que apenas vamos tratar dos 1s e das a indiferenas. Esta uma prtica usual, que seguiremos daqui para a frente c e a (excepto, claro est, quando estivermos a lidar com os 0s e com as indiferenas, a c como faremos no pargrafo seguinte, caso esse em que eliminaremos os 1s do a quadro). Os implicantes primos essenciais so: a o assinalado com IPE1, com a expresso B E, pois os mintermos m18 e m20 a no tm outra forma de se associar em outros implicantes primos; a e O assinalado com IPE2, com a expresso A B D E, por causa do mintermo a m13; O assinalado com IPE3, com a expresso A D E, por causa do mintermo m14 ; a O assinalado com IPE4, com a expresso A B D E, por causa do mintermo a m31;

84
C DE 000
0

CAP ITULO 5. METODO DE KARNAUGH

AB

001
1

011
3

010
2

110
6

111
7

101
5

100
4

00
8

1
9

1
11 10 14

1
15 13 12

IPE1 BE

01
24 25

1
27

1
26 30

1
31 29

1
28

11
16

1
17 19

1
18 22

10

1 (a)

23

21

20

AB

C DE 000
0

001
1

011
3

010
2

110
6

111
7

101
5

100
4

00
8

1
9

1
11 10 14

1
15 13 12

IPE2 ABDE

01
24 25

1
27

1
26 30

1
31 29

1
28

11
16

1
17 19

1
18 22

10

1 (b)

23

21

20

Figura 5.20: Minimizaao da funo booleana simples F = c ca 11, 13, 14, 16, 18, 20, 24, 31) + md (1, 4, 22, 27)

m(0, 2, 6, 9

O assinalado com IPE5, com a expresso A C D E, por causa do mintermo a m24 . Repare-se que o grupo formado pela soma de mintermos m9 + m10 + m11 + m14 , embora muito tentador, no correcto. a e Uma soma de produtos m nima e F = B E +ABDE +ADE +AB DE +AC DE +AB CE, mas devemos notar que esta expresso no unica. a a e

5.8

Minimizao Usando os Maxtermos ca

Do mesmo modo que se usaram, at agora, no contexto do mtodo de Karnaugh, e e associaoes de mintermos para obter expresses em somas de produtos (forma c o normal disjuntiva), igualmente poss e vel associar maxtermos, obtendo-se expresses em produtos de somas (forma normal conjuntiva). o
Produto de implicados primos Implicado primo Implicado

A expresso algbrica minimizada de uma funao expressa em produto de somas a e c sempre um produto de implicados primos, entendendo-se por implicado primo um e implicado da funo (ou que implicado pela funao) e que no implicado por ca e c a e nenhum outro implicado da funao. c

5.8. MINIMIZACAO USANDO OS MAXTERMOS


IPE3 AB CDE 000
0

85

ADE 001
1

011
3

010
2

110
6

111
7

101
5

100
4

00
8

1
9

1
11 10 14

1
15 13 12

01
24 25

1
27

1
26 30

1
31 29

1
28

11
16

1
17 19

1
18 22

10

1 (c)

23

21

20

AB

CDE 000
0

001
1

011
3

010
2

110
6

111
7

101
5

100
4

00
8

1
9

1
11 10 14

1
15 13 12

IPE4 AB DE

01
24 25

1
27

1
26 30

1
31 29

1
28

11
16

1
17 19

1
18 22

10

1 (d)

23

21

20

Figura 5.20: cont. Recorde-se que os maxtermos so identicados por 0s nos mapas de Karnaugh a (ou nas tabelas de verdade) das funoes, pelo que os implicados primos corresc pondero aos agrupamentos maiores que poss a e vel fazer com os 0s e que obedecem `s regras de formaao de agrupamentos no mtodo de Karnaugh. a c e Estudemos ento um exemplo. Seja a F = M (1, 3, 9, 11, 12, 13, 14), com indiferenas nas posioes 4, 6 e 8 , c c

o que tambm se representa, de forma condensada, por e F = M (1, 3, 9, 11, 12, 13, 14) Md (4, 6, 8) .

O mapa de Karnaugh para esta funao tem a forma que se indica na Figura 5.21. c E de notar que o facto de se representar a funao como um produto de maxc termos na sua especicaao no signica que ela tenha de ser minimizada (ou c a simplicada) para se obter uma expresso na forma de produto de somas. A a especicaao inicial uma coisa, e a forma como se opta por obter a expresso c e a da funao outra, independente. c e O produto de somas m nimo que se obtm para F : e e F = (B + D) (B + D) (A + C) , acentuando-se que todos os implicados primos so essenciais: a
Implicado primo essencial

86
CDE 000
0

CAP ITULO 5. METODO DE KARNAUGH

AB

001
1

011
3

010
2

110
6

111
7

101
5

100
4

00
8

1
9

1
11 10 14

1
15 13 12

01
24 25

1
27

1
26 30

1
31 29

1
28

11
16

1
17 19

1
18 22

10

1 ACD E

1 IPE5 (e) IPNE1

23

21

20

AB

CDE 000
0

ABC E 001
1

011
3

010
2

110
6

111
7

101
5

100
4

00
8

1
9

1
11 10 14

1
15 13 12

01
24 25

1
27

1
26 30

1
31 29

1
28

11
16

1
17 19

1
18 22

10

1 (f)

23

21

20

Figura 5.20: cont.


CD AB
0

B+D 00
1

01
3

11
2

10 1
6

00
4

1 0
8 5

0
7

0 1
15 14

B+D

01
12

1
13

11 10 A+C

0
9 11

1
10

Figura 5.21: Md (4, 6, 8)

Minimizaao da funao F c c

M (1, 3, 9, 11, 12, 13, 14)

B + D por causa do maxtermo M14 ; B + D por causa dos maxtermos M1 , M3 e M11 ; e A + C por causa do maxtermo M13. Recorde-se que, quando se lem somas nos mapas de Karnaugh (ou nas tabelas e

5.9. O ALGORITMO DE KARNAUGH

87

de verdade), as variveis que se mantm em 0 so lidas na forma no negada e a e a a as que se mantm em 1 so lidas na forma negada. e a

5.9

O Algoritmo de Karnaugh

O mtodo de Karnaugh de minimizaao de funoes booleanas simples pode ser e c c implementado pelo algoritmo que se esboa a seguir: c 1. se se quiserem obter apenas a ou as somas de produtos m nimas para a funao, prosseguir com o passo 2; se se pretende obter apenas o produto c ou produtos de somas m nimos para a funao, ir para o passo 6; c 2. estabelecem-se todos os implicantes primos essenciais, e incluem-se na soma de produtos m nima da funao; c 3. escolhe-se o menor nmero de implicantes primos no essenciais que cou a brem todos os 1s do quadro; se apenas existir uma soluao, continuar c no passo 5; 4. de entre as vrias alternativas obtidas no passo anterior, escolhem-se as a solues que contm o menor nmero de implicantes primos no essenciais co e u a com o menor nmero de literais que cobrem todos os 1s do quadro (ou u seja, de entre as alternativas obtidas no passo 3, escolhem-se as mais simples); 5. na soma de produtos m nima da funao, somam-se logicamente os implic cantes primos essenciais obtidos no passo 2 com os implicantes primos no a essenciais obtidos nos passos 3 e 4; o algoritmo termina aqui; 6. repetir os passos 2 a 5 para os 0s do quadro, obtendo-se implicados primos em vez de implicantes primos e produtos de somas m nimos em vez de somas de produtos m nimas. Deve realar-se que os passos 3 e 4 podem gerar mais do que uma soluo, c ca existindo, nesses casos, mais do que uma soma de produtos m nima (ou um produto de somas m nimo) para a funao. c Para nalizar, refere-se que este algoritmo (e todo o mtodo de Karnaugh) de e e dif aplicaao para funoes com mais do que 5 ou 6 variveis booleanas simples, cil c c a dada a dimenso dos quadros necessrios e a diculdade na percepao de todas a a c as adjacncias, com a consequente diculdade na geraao dos implicantes ou e c implicados primos. Por outro lado, o algoritmo pode ser extendido para funoes booleanas gerais, c mas nesse caso o nmero de funoes booleanas simples envolvidas deve ser peu c queno, no mximo de 3. Neste curso no iremos desenvolver esta possibilidade, a a que deixamos para as referncias adequadas. e

5.10

Referncias Bibliogrcas e a

Srro, Carlos Sistemas Digitais: Fundamentos Algbricos, IST Press, Lisboa, e e 2003, Cap tulo 7.

88

CAP ITULO 5. METODO DE KARNAUGH

Arroz, G. S., Monteiro, J. C. e Oliveira, A. L. Introduao aos Sistemas c Digitais e Microprocessadores, Secoes 3.1.8 e 3.3.1. c Mano, Morris M., and Kime, Charles R. Logic and Computer Design Fundamentals, 2nd ed., Prentice Hall International, Inc., New Jersey, USA, 2000, Secoes 2.4 e 2.5. c

5.11

Exerc cios

Nota: os exerc cios identicados com um asterisco () esto resolvidos em a SD:ER. () 5.1 Nas tabelas de verdade das funoes booleanas simples c a) b) f1 (A, B, C) = (A + B) C + A (B + C); e f2 (A, B, C, D) = A + A B C + C D (C D + C D) ,

identicar todas as linhas adjacentes `s linhas em que as funoes tm o a c e valor 1. 5.2 Dado, no quadro de Karnaugh da funo booleana simples F (A, B, C), o ca quadrado correspondente ` quantidade booleana geral (A, B, C) = (1, 1, 1), a quantos quadrados lhe so adjacentes? E para o quadrado (A, B, C, D, E) = a = (0, 1, 1, 1, 0) no quadro da funo booleana simples F (A, B, C, D, E)? ca () 5.3 Identicar todos os agrupamentos leg timos de dois 1s no quadro de Karnaugh da funao booleana simples F (A, B, C) = m(1 7), e indicar c as correspondentes expresses booleanas. o 5.4 Identicar todos os agrupamentos mximos no quadro de Karnaugh da a funao booleana simples F (A, B, C, D) = m(1 4, 10, 12 14). c () 5.5 Dada a funao F = c m(0 2, 4 7, 10), dizer se os seguintes mintermos e somas de mintermos so ou no implicantes de F : a a a) b) c) d) e) d) () m1 ; m3 ; m1 + m2 ; m1 + m3 ; m0 + m1 + m2 ; m4 + m5 + m6 + m7 .

5.6 Identicar todos os implicantes primos essenciais das funoes booleanas c simples que se seguem (admita que A a varivel booleana simples com e a maior peso): a) b) F1(A, B, C, D) = m(0 2, 4 7, 10) ; F2(A, B, C, D) = A B C + A B D + B C + D ,

e identicar os correspondentes quadrados essenciais. Identicar ainda, para cada uma das funoes, pelo menos 2 implicantes primos no essencic a ais.

5.11. EXERC ICIOS

89

5.7 Escrever a ou as formas normais disjuntivas m nimas para as funoes c booleanas simples que se seguem (A a varivel booleana simples com e a maior peso): a) b) () 5.8 F (A, B, C, D) = m(0 2, 4 7, 10) ; G(A, B, C, D) = A B C + A B D + B C + D .

Escrever a ou as formas normais disjuntivas m nimas para a funao c booleana simples F (A, B, C, D) = A B C D + B C D + A B C D + A B C D + A B C D , tendo em conta que nunca surgem as combinaes de valores nas entradas co correspondentes aos mintermos 1, 4, 7, 10 e 11.

()

5.9 Porque que o agrupamento formado pela soma de mintermos m9 +m10 + e + m11 + m14 num quadro de Karnaugh de 4 variveis est incorrecto? E a a num quadro com n > 4 variveis? a 5.10 Obter a ou as somas de produtos m nimos para a funao c f= m(0, 1, 4 7, 9, 12, 14 17, 20, 21, 25, 28, 30) .

5.11 Que outras somas de produtos m nimos existem para a funo ca F = m(0, 2, 6, 9 11, 13, 14, 16, 18, 20, 24, 31) + md (1, 4, 22, 27)

estudada no texto? 5.12 Obter a ou as somas de produtos m nimos para a funao c f= m(2, 6 10, 13, 18, 23, 25, 29) ,

com indiferenas nas posioes 0, 3, 11, 21, 26 e 27. c c 5.13 a) Minimize a funao c F = M (1, 2, 5, 8, 9, 11, 12, 15, 17, 19, 21, 23 25, 28 31) ,

com indiferenas em 6, 7, 10, 14, 16, 18, 26 e 27, por forma a facilitar uma c futura implementao com NANDs com qualquer nmero de entradas. ca u b) Indique se existe algum implicado primo essencial e, em caso armativo, escreva a ou as correspondentes expresses lgicas. o o 5.14 Minimizar as seguintes funoes booleanas simples (admita que A a c e varivel booleana simples com maior peso): a a) b) f(A, B, C, D) = f(A, B, C, D) = M (3, 4, 6, 7, 11, 12, 14) ; M (0, 2 8, 10, 12, 13) .

5.15 Minimizar as seguintes funoes booleanas simples, em que A a varivel c e a com maior peso: a) b) f(A, B, C, D) = m(2 5, 8, 9, 14, 15) ; f(A, B, C, D, E) = m(0, 1, 3, 8, 9, 13 17, 19, 24, 25, 27, 31) .

90

CAP ITULO 5. METODO DE KARNAUGH

5.16 Minimizar a seguinte funao booleana simples: c f(A, B, C, D) = A C D + B C D + A B C + A B C D + +AB CD + ABD +AB C D. 5.17 Minimize as seguintes funoes booleanas simples: c a) b) f= f= m(0, 2, 6, 8 10, 12) + md (1, 3, 4, 11, 13, 14) ; m(1, 2, 6, 9, 13 15, 17, 22, 25, 29 31) + md (7, 8, 18, 23) . md (4, 11, 14, 20, 21, 25) .

() 5.18 Minimizar a seguinte funao booleana simples: c f= m(1, 3, 5, 6, 9, 12, 17, 19, 22, 27, 28, 30)+

5.19 Minimize a seguinte funao booleana simples, c f = m(0, 4, 6, 11, 12, 14 16, 24, 31) + md (2, 8, 27, 28) ,

e escreva a expresso booleana de um implicante primo da funao. a c 5.20 a) Minimize a funao c x= M (7, 10, 14, 15, 17, 23 26, 30, 31) ,

com indiferenas nas posioes 1, 6, 8, 9, 12, 20, 21 e 22, e desenhe o seu c c logigrama usando apenas NANDs de 2 entradas. Dispe, nas entradas, o das variveis complementadas e no complementadas. a a b) Nas posioes em que havia indiferenas na funao da al c c c nea anterior coloque 1s. Desenhe o logigrama desta nova funao partindo do logic grama anterior, sem o alterar, excepto por acrescentar outros elementos. 5.21 a) Utilizando mapas de Karnaugh, minimize a funao c f= M (1, 2, 4, 9, 10, 12, 15, 17, 24, 30, 31) ,

com indiferenas nas posioes 3, 5, 8, 14, 18, 20, 22 e 25. c c b) Minimizando esta funao em produto de somas e em soma de produtos c obteria duas expresses equivalentes? Porqu? o e 5.22 Minimize a funao c f= m(0, 1, 3, 5, 7 10, 15, 18, 19, 22, 25, 27, 29, 31) ,

sabendo que existem indiferenas nas posioes 2, 11, 12, 20 e 30. A c c funao deve ser minimizada por forma a ser implementada facilmente com c NANDs. 5.23 Dada a seguinte funao: c f= m(0, 5, 6, 8, 12, 14, 22, 29) ,

com indiferenas nas posioes 1, 4, 10, 21, 16, 19, 20, 23, 25 e 26, c c a) minimize-a e represente-a sob a forma de uma soma de produtos; b) identique um implicante primo essencial e um no essencial. a

5.11. EXERC ICIOS () 5.24 Uma funao de 4 variveis dada na forma c a e y = (m1 + m3 + m5 + m9 + m10 + m11 + m12 + m14 ) (M8 M10) .

91

O factor (M8M10) necessrio para a deniao da funao, ou no fornece e a c c a qualquer indicaao que no esteja j contida no primeiro factor do produto c a a lgico? Responda referindo-se separadamente aos dois termos mximos o a que constituem o segundo factor. 5.25 a) Minimize a seguinte funao c f= m(2, 7, 9, 11, 12, 14, 15, 17, 23) + md (0, 4, 6, 8, 10, 13, 20, 22, 28) .

b) Identique todos os implicantes primos essenciais da funao. c 5.26 Dada a seguinte funao, c f= M (1, 3, 5, 8, 10, 12 14, 21, 23, 24, 26, 31) Md (0, 4, 7, 15, 17, 18, 27, 28) ,

a) minimize-a de modo a facilitar uma futura implementaao com NANDs; c b) identique na expresso m a nima anterior os implicantes primos essenciais. 5.27 Minimizar a seguinte funo: ca f = A (C D) + A B + A C D + A C D . 5.28 a) Minimizar a seguinte funao usando o mtodo de Karnaugh: c e f= M (1, 7, 9, 12, 14, 18, 19, 21, 22, 25, 28, 30, 31) ,

com indiferenas nas posioes 4, 15, 16, 17 e 20. c c b) A partir da funo f, sem a alterar e usando o m ca nimo de lgica poss o vel, construir uma funao g com uma tabela de verdade lgica semelhante mas c o que gera sa 1 nas posioes 1, 4 e 21. da c c) Indique, na funao f, um implicante (ou implicado) primo que no seja c a essencial, e outro que o seja. 5.29 a) Minimize, pelo mtodo de Karnaugh, a funao e c f(A, B, C, D, E) = M (2, 4, 7, 9, 10, 12, 18, 24, 30, 31) ,

com indiferenas nas posioes 11, 15, 26, 28 e 29 (admita que A a varivel c c e a com maior peso), de forma a ser facilmente implementada com NANDs de qualquer nmero de entradas, No desenhe o logigrama, mas determine a u a expresso da funao em NANDs. a c b) Considere a funao obtida na al c nea anterior. Qual o valor que ela assumir para a quantidade booleana geral de entrada (A, B, C, D, E) = a = (1, 1, 0, 1, 0)? Porqu? e

92

CAP ITULO 5. METODO DE KARNAUGH

5.30 Dada a seguinte funao, e sabendo que na sua implementaao indiferc c e ente o valor que ela toma para as combinaes de entrada referentes aos co mintermos 3, 9, 10, 16, 20 e 30, f = M (0, 1, 3, 4, 7, 11, 12, 16, 17, 19, 26, 29, 30, 31) ,

a) minimize-a de modo a realiz-la apenas com NORs; a b) se, por acaso, ocorrerem as combinaoes de entrada correspondentes `s c a quantidades booleanas gerais com axos 9, 16 e 30, quais so os valores a que a implementaao obtida na al c nea anterior apresenta? 5.31 a) Usando o mtodo de Karnaugh, minimize a funao e c f = B A+ BAD +C D +AB CD + CB D. b) Indique um implicante primo essencial e um no essencial. a

Parte II

CIRCUITOS COMBINATORIOS

93

Cap tulo 6

Elementos Tecnolgicos o
6.1 Portas Lgicas o

O interesse do que se tem vindo a analisar reside no facto de as funoes lgicas c o poderem ser usadas para representar as acoes e os processamentos pretendidos c para um determinado equipamento, e poderem ser implementadas sicamente por circuitos electrnicos. o Considere-se o seguinte problema: pretende-se desenhar um alarme de um carro que assinale, tocando um besouro, que o carro circula com uma porta aberta ou que est estacionado com as luzes acesas. a Se o carro tiver 4 portas, podemos representar cada porta por uma varivel, a P 1 a P 4. Admitamos que cada uma das variveis estar a 1 quando a porta a a correspondente est aberta. A funao P signicar ento, quando a 1, que existe a c a a pelo menos uma porta aberta. Ento teremos P = P 1 + P 2 + P 3 + P 4. a Do mesmo modo, L ser uma varivel que est a 1 quando as luzes esto acesas a a a a e C uma varivel que est a 1 quando a chave est ligada. a a a E facil de ver que o alarme A ser obtido pela expresso a a A = C P + CL, representvel pelo logigrama da Figura 6.1 a
P1 P2 P3 P4 C
1 & 1 1

P
&

Figura 6.1: Logigrama do alarme A = C P + C L 95

96

CAP ITULO 6. ELEMENTOS TECNOLOGICOS

A implementao sica do logigrama feita por um circuito elctrico em que ca e e os diversos operadores lgicos so implementados por portas lgicas (gates) o a o realizadas em circuitos integrados. Um exemplo de circuito integrado o caso e do 74LS08, que implementa os ANDs (ver a folha de especicaao do integrado). c

6.2
Sinal binrio ideal a

Sinais Binrios a

A Figura 6.2(a) ilustra a variaao com o tempo de um sinal binrio ideal numa c a ligaao entre a sa de uma porta lgica e a entrada ou entradas de outras c da o portas. Como se pode constatar, a representaao do sinal ideal apresenta descontinuic dades nos instantes de tempo designados por t1 , t2 , e t3 , possuindo um dos dois valores binrios, 0 ou 1, nos intervalos entre esses instantes. a
Valores binrios a 1 0 Tempo Tenses o elctricas e VH VL t1 t2 t3 Tempo

Figura 6.2: Sinal binrio: (a) ideal; (b) real a


Sinal binrio real a

Sinal real (analgico) o

Num sistema digital prtico, contudo, no existem sinais ideais. Os sinais binrios a a a reais so, nesses sistemas, representados por valores de grandezas elctricas a e geralmente tenses ou correntes pelo que a representaao da informaao deo c c ver neles ser feita de forma cont a nua, por intermdio de sinais analgicos. e o Assim sendo, a forma ideal da Figura 6.2(a) deve ser entendida apenas como uma representaao aproximada dos sinais que podemos encontrar nas linhas (ou c condutores) que ligam as entradas e as sa das das portas lgicas. o A Figura 6.2(b) ilustra um sinal binrio real, tendo como ordenadas tenses a o elctricas. Como podemos constatar, as descontinuidades da Figura 6.2(a) do e a agora lugar a transioes ou ancos entre as tenses VH e VL , ancos esses que c o levam tempo a estabelecer-se. Quando um sinal muda de uma tenso alta, VH , para uma tenso baixa, VL , a a dizemos que ocorreu um anco descendente.

Flancos

Flanco descendente

6.3. TIPOS DE CIRCUITOS INTEGRADOS DIGITAIS

97
Tempo de decrescimento tf ou fall time Flanco ascendente Tempo de crescimento tr ou rise time

Como esta transiao no instantnea, um anco descendente possui um certo c a e a tempo de decrescimento para efectuar a mudana. Este tempo designa-se habic tualmente por tf ou fall time. Pelo contrrio, uma transiao de VL para VH d origem a um anco ascendente, a c a com um certo tempo de crescimento, designado por tr ou rise time, para efectuar a mudana entre os dois valores de tenso. c a Por outro lado, como resultado de imperfeies existentes nos componentes co electrnicos das portas lgicas, sinais que se deviam manter constantes entre o o transies, como na Figura 6.2(a), podem utuar ligeiramente em torno dos co valores VH e VL , como mostra a Figura 6.2(b). Isso signica que os valores binrios 1 e 0 devem corresponder, na realidade, a a intervalos de valores ou a faixas de tenses elctricas, designados habitualmente o e por n veis (de tenso) H ou L, respectivamente um n alto (HIGH) ou um n a vel vel baixo (LOW). A associaao entre os intervalos de tenso H e L e os valores lgicos 0 e 1 c a o e matria que deixaremos para o Cap e tulo 7. Basta dizer, por agora, que muitas vezes se faz a associaao de H a 1 e de L a 0, mas que nada impede a associaao c c contrria. a Enquanto um sinal tiver um valor de tenso elctrica contido no interior de uma a e das faixas H ou L, o seu valor binrio (1 ou 0) bem denido. Quando o valor a e da tenso elctrica sair fora dessas faixas, o valor binrio do sinal ca indenido a e a (Figura 6.3).
Tenses o elctricas e H

N vel alto, HIGH ou H N vel baixo, LOW ou L

L Tempo

Figura 6.3: Sinal binrio da Figura 6.2 indicando as faixas de tenso H e L a a Uma forma de representaao idealizada de um sinal binrio ser, ento, a da c a a a Figura 6.4(a), onde se acentuam os ancos entre os n veis H e L, com os seus tempos de crescimento e de decrescimento, mas em que se simplica a forma do sinal, por forma a aproximar-se da representaao ideal da Figura 6.2(a). c Nos casos em que no necessrio acentuar os tempos de crescimento e de a e a decrescimento dos ancos, usa-se a representaao ideal da Figura 6.4(b). c

6.3

Tipos de Circuitos Integrados Digitais

A tecnologia dos circuitos integrados responsvel pelo tremendo desenvolvie a mento dos sistemas digitais, uma vez que possibilitou a construo de circuitos ca electrnicos digitais muito complexos a custos extremamente reduzidos. o

98
N veis de tenso a H L t1

CAP ITULO 6. ELEMENTOS TECNOLOGICOS

t2 (a)

t3

N veis de tenso a H L t1 t2 (b) t3 t

Figura 6.4: (a) Forma de representaao habitual dos sinais binrios, com nfase c a e nos ancos de mudana dos sinais e dos seus tempos de crescimento e decrescic mento; e (b) representaao simplicada, ideal, onde no aparecem os tempos de c a crescimento e de decrescimento
Circuito integrado (CI)

Um circuito integrado (CI) formado por um pequeno cristal de sil e cio (em geral, mas h outras tecnologias) onde se difundiram impurezas para formar a transistores, d odos, resistncias e outros elementos de circuitos, interligados e entre si para formarem circuitos de maior ou menor complexidade. Um circuito integrado digital materializa circuitos digitais. Os circuitos integrados digitais so fceis (relativamente) de conceber e produzir, assumindo custos a a muito baixos. Cada CI digital pode ter entre algumas de portas lgicas e alguns milhes delas. o o Por exemplo, o circuito integrado usado habitualmente no nosso laboratrio com o circuitos AND tem 4 portas AND independentes, que podem ser usadas separadamente. Um circuito como um contador tem algumas dezenas de portas que esto previamente interligadas para formar o contador. J um microprocessador a a avanado, como o Pentium ou o PowerPC, tem vrios milhes de portas ou c a o circuitos equivalentes. Existem vrias tecnologias para fabricar circuitos integrados digitais. a

Circuito integrado digital

Tecnologia TTL Transistores bipolares

Fam TTL lia Subfam lias lgicas o

1. Tecnologia TTL: uma tecnologia que foi muito usada e que estabeleceu critrios e normas. Utiliza transistores bipolares a funcionar ao corte ou ` e a saturao. Tem um comportamento mdio no que diz respeito ao tempo ca e de propagaao por porta (este tempo mede, de forma simplicada, a vec locidade da porta), ao consumo em energia elctrica e ` potncia dissipada e a e sob a forma de calor. Os circuitos com esta tecnologia formam a fam lia TTL, que se subdivide em vrias sub-familias com caracter a sticas diferenciadas, mas todas compat veis entre si. Dado ter-se tornado muito popular,

6.4. A FAM ILIA TTL

99

outras tecnologias tm circuitos com entradas e sa e das compat veis com os circuitos TTL. E uma tecnologia em perda a favor da tecnologia CMOS. c 2. Tecnologia CMOS: a outra tecnologia de grande divulgaao. Utiliza tran sistores MOS com canais de 2 tipos. E relativamente mais lenta que a TTL, mas consome menos. Recentemente, os ganhos de velocidade da tecnologia CMOS, combinados com a grande capacidade de integraao e c os baixos consumos energticos e potncia dissipada, colocaram-na como e e a tecnologia mais importante no projecto e fabrico de CIs. Os circuitos com esta tecnologia formam a fam CMOS, tambm dividida em diversas lia e sub-familias. E a tecnologia em mais rpido crescimento. a 3. Tecnologia ECL: utiliza transistores bipolares na zona activa. E a tecnologia mais rpida comercialmente disponivel. Tem um consumo muito elevado. a E de relativamente dif utilizao. Est reservada a nichos de aplicaao cil ca a c muito reduzidos. 4. Outras tecnologias: nMOS e pMOS, GaAs, IIL, etc.
Tecnologia CMOS Transistores MOS

Fam CMOS lia

Tecnologia ECL

Tecnologias nMOS, pMOS, GaAs, IIL

6.4

A Fam TTL lia

Usaremos no laboratrio circuitos integrados da fam TTL por ser electrio lia camente mais robusta criando, por isso menos problemas a alunos com pouca experincia. e Os circuitos desta fam caracterizam-se por um conjunto de parmetros, de lia a que se destacam: as tenses de alimentao: +5V 5% para as sries normais (comerciais), o ca e e +5V 10% para as sries militares; a tenso de +5V habitualmente e a e designada por Vcc , e os circuitos TTL so alimentados entre a tenso Vcc e a a a tenso da massa (GND = 0V); a as temperaturas de funcionamento: [0, 70] oC para as sries comerciais, ene quanto que as sries militares usam circuitos mais robustos, que suportam e temperaturas no intervalo [55, 125] oC; as sub-familias: N (Normal), L (Low Power), H (High Speed), LS (Low Power Schottky, a mais usada actualmente), S (Schottky), ALS (Advanced Low Power Schottky), AS (Advanced Schottky), F (Fast), etc.; os tempos de atraso (ou tempos de propagao) e os consumos de corrente ca t picos: por exemplo, para uma porta 74x00 (em que x designa uma das subfam lias TTL), os valores so os indicados na Tabela 6.1. a em cada sub-fam lia, a srie 54xnn a srie militar e a 74xnn a srie come e e e e ercial.
Tenses de alimentaao o c (TTL)

Temperaturas de funcionamento (TTL)

Sub-fam lias TTL

Tempo de propagaao c (atraso) Consumo de corrente (TTL)

100

CAP ITULO 6. ELEMENTOS TECNOLOGICOS

Tabela 6.1: Tempos de propagaao e consumos de corrente t c picos para o mesmo circuito integrado em trs sub-fam e lias TTL diferentes
Sub-fam lia TTL N (7400) LS (74LS00) S (74S00) Tempo de atraso t pico (ns) 7 a 11 9 a 10 3a5 Corrente de alimentao t ca pica (mA) 4 a 12 0, 8 a 2, 4 10 a 20

6.4.1

N veis elctricos dos circuitos TTL e

Como vimos anteriormente, numa ligaao entre duas portas arbitrrias, em c a tecnologia TTL ou noutra tecnologia qualquer, os fabricantes de circuitos integrados apenas garantem certos intervalos (gamas) de tenses elctricas nas suas o e sa das e entradas, que designam por n veis H e L. Deste modo, se a sa de uma porta se encontrar, em cada instante, num desses da intervalos, pode-se considerar que a porta imps na sa um determinado n o da vel de tenso, que aceite pelas entradas das portas `s quais a sa se liga. a e a da No caso da fam TTL os fabricantes garantem que, aparte os momentos em lia que se verica uma transiao ` sa de uma porta em resultado de uma muc a da dana nas entradas, a sa da porta estar no n H (entre +2,4V e +5V), c da a vel ou no n vel L (entre 0V e +0,4V), como mostra a Figura 6.5, se as entradas estiverem tambm num desses n e veis.
TTL
Vcc = +5V

H
+2,4V

N vel alto

+0,4V GND = 0V

N vel baixo

Figura 6.5: N veis H e L na tecnologia TTL Repare-se, contudo, que existe aquilo a que habitualmente chamamos ru do elctrico, e que mais no do que a inuncia electromagntica de todos os came a e e e pos que existem na zona onde est o circuito (emisses de rdio, TV, telemveis, a o a o ru provocado pelo arranque e paragem de motores elctricos, emisso elecdo e a tromagntica de outras ligaoes do mesmo circuito, etc.). e c Assim, poss que ` sa da porta tenhamos um valor vlido (por exemplo e vel a da a +0,3V) e ` entrada da porta que lhe est ligada se observe um valor invlido a a a (por exemplo, +0,5V). Para ter em conta esta possibilidade, as entradas das portas tm uma especie caao um pouco mais ampla, sendo os valores entre +2V e +5V interpretac

6.4. A FAM ILIA TTL

101

dos como n vel H, e os valores entre 0V e +0,8V interpretados como n vel L (Figura 6.6).
Sa da TTL
Vcc = +5V +5V Margem de ru do de 0,4 V

Entrada TTL

H
+2,4V

H
+2V +0,8V

+0,4V GND = 0V

0V

Figura 6.6: A margem de ru em TTL de 0,4V do e O intervalo de 0,4V entre os valores extremos ` saida e ` entrada designa-se, a a naturalmente, por margem de ruido.

Margem de ru do

6.4.2

Sa das totem-pole e tri-state

No poss ligar as sa a e vel das das portas TTL habituais, sob pena de as podermos destruir por excessivo consumo de corrente e consequente dissipao de potncia ca e (Figura 6.7).
&

Figura 6.7: A ligaao das sa c das das portas TTL totem-pole pode conduzir `s a suas destruies devido ao excessivo consumo de corrente elctrica co e Tal deve-se ao modo como so constru a dos os andares de sa dessas portas, da designados por totem-pole. H, contudo, portas TTL especiais, designadas por portas tri-state, em que os a andares de sa que so controlados por uma entrada suplementar designada da a por entrada de Enable (EN) podem vir interligados. Os circuitos que usam sa das tri-state apresentam uma simbologia IEC espec ca, como mostra a Figura 6.8 para o caso de uma porta NAND com 3 entradas. Como se pode ver, a porta NAND tem as 3 entradas habituais, A, B e C, e a entrada suplementar de Enable, EN, que controla a funao tri-state da sa c da
Sa das totem-pole O desenho dos circuitos TTL e, em particular, dos seus andares de sada sai fora do mbito a desta cadeira. Sa das e portas tri-state

102

CAP ITULO 6. ELEMENTOS TECNOLOGICOS


A B C ENABLE & S EN

Figura 6.8: S mbolo IEC de uma porta NAND com sa tri-state da


Qualicador de sa da

S. Essa funao vem representada no s c mbolo por um qualicador de sa com a da forma de um tringulo invertido, . a Quando ` entrada de Enable aplicamos um determinado valor lgico, digamos a o 1 [Figura 6.9(a)], a porta reage como um vulgar NAND, gerando os valores lgicos na sa compat o da veis com a expresso habitual S = A B C. O seu andar a de sa comporta-se, nestas circunstncias, como o de um vulgar NAND com da a sa totem-pole. da
A B C 1 & S = ABC EN (a) 0 A B C & Hi-Z EN (b)

A designao tri-state ca provm do facto de e podermos encontrar na sada os habituais valores 0 e 1 (ou, se quisermos, os nveis L e H) de um totem-pole, e ainda a condiao de alta c impedncia, Hi-Z. a Sa em alta da impedncia (Hi-Z) a

Figura 6.9: (a) A porta NAND com sa tri-state tem a entrada de Enable, da EN, com o n vel de tenso que lhe permite funcionar normalmente, como se a de um totem-pole se tratasse; (b) quando a entrada EN tem o outro n vel de tenso, a sa ca em alta impedncia (Hi-Z) a da a Quando a EN aplicamos um 0 [Figura 6.9(b)], a sa da porta ca em alta da impedncia (o que se simboliza por Hi-Z), e tudo se passa como se a sada a estivesse desligada (ou seja, no conseguimos identicar 1s e 0s na sada). a a E fcil de entender que podemos ligar as sa das de duas ou mais portas tri-state desde que controlemos devidamente as portas por forma a que uma e apenas uma das portas funcione, de cada vez, como um totem-pole, e as outras tenham as suas sadas em alta impedncia. a E o que se faz, por exemplo, no logigrama da Figura 6.10. Se EN 1 estiver a 1 e EN 2 e EN 3 estiverem a 0, por exemplo, as duas portas inferiores tm as suas sa e das em alta impedncia (esto desligadas) e o que a a aparece na sa comum o que se encontra ` sa do AND superior, ou seja, da e a da S = A B. Se, noutra altura diferente, se zer EN 2 = 1 e EN 1 = EN 3 = 0, agora o e AND e o NOT que tm a sa em alta impedncia, e o que surge na sa e da a da comum o que est ` sa do NOR, isto , S = C + D. e a a da e E se numa terceira altura, diferente das duas enteriores, se tiver EN 1 = EN 2 = = 0 e EN 3 = 1, agora o NOT que debita E para a sa S, porque o AND e e da o NOR tm as suas sa e das em alta impedncia. a Em resumo, `s entradas de Enable apenas deveremos aplicar as quantidades a booleanas gerais (EN 1, EN 2, EN 3) = (1, 0, 0), ou (0, 1, 0), ou ainda (0, 0, 1), e no outras. Em particular no faz sentido aplicar (EN 1, EN 2, EN 3) = (0, 0, 0) a a

6.5. A FAMILIA CMOS


A B EN1 C D EN2 & EN

103

1
EN 1 EN S

E EN3

Figura 6.10: As sa das tri-state podem vir interligadas desde que se garanta, por intermdio dos n e veis de tenso aplicados `s diversas entradas de Enable, a a que uma e apenas uma sa de cada vez no est em alta impedncia da a a a a `s entradas, porque ento as trs portas estariam em alta impedncia e nenhuma a e a funao era gerada na sada nessas circunstncias. c a Esta operaao de seleco de uma das sa c ca das das portas de cada vez designa-se por multiplexagem temporal.
Multiplexagem temporal

6.5

A Familia CMOS

Os circuitos desta fam caracterizam-se por um conjunto de parmetros, de lia a que se destacam: as sub-familias: 4000, 74HC e 74HCT. A sub-fam 4000 a primeira fam lia e lia CMOS, que tem vindo a ser progressivamente abandonada e substitu da pelas outras. Os circuitos da sub-fam 74HC tm as referncias e os pinos lia e e compat veis com os dos circuitos equivalentes (com a mesma designaao) c da familia TTL. Mas no so electricamente compat a a veis. Os circuitos da sub-fam 74HCT so uma variante de circuitos HC com n lia a veis de tenso a totalmente compativeis com os da fam TTL. lia as tenses de alimentao: +5V 5% para os circuitos 74HC e 74HCT, e +3 o ca a +18V para os circuitos 4000; estas tenses so habitualmente designadas o a por Vdd , e os circuitos CMOS so alimentados entre a tenso Vdd e a tenso a a a da massa (GND = 0V).
Sub-fam lias CMOS

Tenses de alimentaao o c (em CMOS)

6.5.1

N veis elctricos dos circuitos CMOS e

Os niveis de tenso nos circuitos da familia CMOS so diferentes dos da familia a a TTL (Figura 6.11). No caso da srie 4000 os niveis so variveis com a tenso de alimentaao, que e a a a c pode ir de +3V a +18V. Aplicam-se as mesmas convenoes que nos circuitos c TTL. Os n veis ilustrados so os das entradas das portas. a

104

CAP ITULO 6. ELEMENTOS TECNOLOGICOS


CMOS
Vdd = +5V

H
+3,5V

N vel alto

+1,5V

L
GND = 0V

N vel baixo

Figura 6.11: N veis H e L na tecnologia CMOS

6.6

Encapsulamento dos Integrados

Os circuitos integrados so pequenos cristais de sil a cio que, para poderem ser facilmente utilizados, esto inseridos em envlucros que facilitam o seu manuseio a o e interligao. ca Os integrados que vamos usar esto encapsulados num tipo particular de ena vlucro designado por DIP (Dual in-line package) por terem dois conjuntos o de pinos (terminais), organizados em duas las em lados opostos do encapsulamento. Existem integrados deste tipo com um nmero de pinos entre 8 e 64. Na u Figura 6.12 ilustra-se um integrado com 14 pinos.
8

Dual in-line package Pinos

14

Figura 6.12: Exemplo de circuito integrado que utiliza um envlucro com 14 o pinos Repare-se na forma como os pinos so numerados. O pino 1 e o ultimo esto a a prximos de uma pequena reentrncia no encapsulamento, que pode tomar a o a forma ilustrada ou outras.

6.7
Fan-out

Fan-out

O fan-out de uma saida o nmero de entradas normais a que essa saida pode e u estar ligada. Esse valor anda na ordem de 10 a poucas dezenas.

6.8. DISSIPACAO DE POTENCIA

105

6.8

Dissipao de Potncia ca e

Os circuitos integrados so alimentados electricamente e, no seu funcionamento, a dissipam a energia elctrica sob a forma de calor. O problema do aquecimento e e das tcnicas de arrefecimento dos integrados so, com a elevada integrao, e a ca cada vez mais dif ceis de tratar. No caso dos circuitos CMOS, a energia fundamentalmente gasta nas transies e co de n vel, sendo desprezvel o valor gasto em repouso, quando no h transioes. a a a c E por isso que os processadores dissipam mais se a frequncia de funcionamento e maior. e J no caso dos circuitos TTL, a energia gasta, quer nas transioes entre n a e c veis, quer quando os circuitos se mantm num n constante, H ou L. e vel

6.9

Tempos de Propagao das Portas ca

Como vimos na Secao 6.2, as portas lgicas apresentam ancos nas transioes c o c entre n veis, aos quais esto associados tempos de crescimento e de decrescia mento dos sinais binrios. a Por outro lado, e porque os circuitos integrados so dispositivos reais e f a sicos, as suas sa das tambm no reagem instantaneamente `s mudanas que ocorrem e a a c nas suas entradas. Isso quer dizer que, se observarmos os seu comportamentos ao longo do tempo, notamos tempos de propagao (ou tempos de atraso) na ca resposta dos integrados. Vejamos o exemplo de uma porta AND na Figura 6.13, onde se salientam os tempos de propagaao da porta, tpLH na transio do n L para o n H na c ca vel vel sa da, e tpHL na transio do n H para o n L, sempre na sa ca vel vel da.
A B
&

Tempos de propagaao c (atraso)

tpLH e tpHL

50%

50%

Z tpLH

50% tpHL

50%

Figura 6.13: Uma porta AND e um diagrama temporal onde se representa a variaao na sa Z que resulta de determinadas variaoes nas entradas A e B, c da c impostas arbitrariamente Deve notar-se que o tempo de propagaao tpLH pode ser diferente do tempo c tpHL .

106
tpd (tempo de propagaao de uma c porta) Diagrama temporal

CAP ITULO 6. ELEMENTOS TECNOLOGICOS

Por vezes designam-se os dois tempos colectivamente por tempo de propagao ca da porta, com a sigla tpd (propagation delay time). Os diagramas do gnero do que se representa na Figura 6.13 designam-se por e diagramas temporais.

6.10

Referncias Bibliogrcas e a

Mano, Morris M., and Kime, Charles R. Logic and Computer Design Fundamentals, 2nd ed., Prentice Hall International, Inc., New Jersey, USA, 2000, Secoes 2.1, 2.8 e 2.9. c

Cap tulo 7

Lgica de Polaridade o
7.1
7.1.1

Lgicas de Polaridade, Positiva e Negativa o


S mbolos dos circuitos digitais
Normas IEC

Os s mbolos que utilizmos para as portas lgicas esto denidos internacionala o a mente em normas emanadas da IEC (International Electrotechnical Commission ou Comisso Electrotcnica Internacional). a e Trata-se de s mbolos aplicveis no s `s portas lgicas, como a outros cira a o a o cuitos mais complexos, geralmente sob a forma de circuitos integrados, que estudaremos nos cap tulos que se seguem ` medida que forem sendo necessrios a a (multiplexers, descodicadores, contadores, registos, memrias, etc.). o Esta uniformizaao possui algumas vantagens bvias: c o os s mbolos so de utilizaao universal em logigramas e esquemas elctricos; a c e ou seja, desde que seja respeitada a sua representaao simblica nos circuitos c o lgicos em que intervm (representaao essa que est contida na norma IEC o e c a 60617-12), qualquer pessoa capaz de entender um circuito desenhado por e outrem; como a simbologia rigorosa, no h margem de manobra para o desenho de e a a s mbolos mais ou menos fantasiosos (s mbolos fantasiosos signica s mbolos arbitrrios, abertos a interpretaoes incorrectas); e a c os s mbolos dispensam a descriao dos circuitos em l c ngua natural (portugus e ou outra); com efeito, tal descrio no s redundante como geralmente ca e a o pouco correcta e incompleta, pelo que s temos a ganhar com a sua dispensa. o No devemos, contudo, imaginar que esta simbologia se deve ou pode aplicar a a qualquer circuito digital. Com efeito, circuitos muito complexos por exemplo, certas memrias de grande dimenso, os circuitos lgicos programveis ou os mio a o a croprocessadores e respectivos circuitos auxiliares, cujas funcionalidades no so a a facilmente descrit veis pela norma IEC possuem s mbolos muito complexos, e as vantagens que se acabaram de apontar podem, ento, perder-se. Nesses a 107

Logigramas e esquemas elctricos e Norma IEC 60617-12

108

CAP ITULO 7. LOGICA DE POLARIDADE

casos sugere-se a utilizaao de uma simbologia simplicada, no normalizada, c a acompanhada de uma descriao da correspondente funcionalidade. c Para alm da norma 60617-12, existem outras normas IEC que se preocupam e com o desenho dos logigramas e dos esquemas elctricos. Neste contexto apenas e nos interessa a norma IEC 61082, que estabelece, entre outros conceitos importantes, que o uxo dos sinais elctricos decorre da esquerda para a direita ou e de cima para baixo nos desenhos dos circuitos, e que qualquer alteraao a estas c orientaoes deve ser explicitamente referenciada com uma seta. c No que diz respeito `s portas lgicas, os s a o mbolos IEC possuem contornos rectangulares colocados verticalmente, com um qualicador geral no topo que identica o tipo de porta: o qualicador geral & para uma porta AND, o qualicador geral 1 para uma porta OR, o qualicador geral 1 para uma porta NOT, ou o qualicador geral =1 para uma porta XOR. De propsito no foram referidas as portas NAND e NOR. Isso deve-se a que, por o a razes que sero apresentadas mais tarde, estas portas passam a ser substitu o a das, respectivamente, por portas AND e OR. Importa salientar aqui um facto importante: qualquer porta lgica possui dois o smbolos IEC em alternativa, que resultam um do outro pela aplicao de uma ca das leis de De Morgan. Por exemplo, os s mbolos que se seguem so equivalentes, a

Norma IEC 61082

Qualicador geral Qualicador geral & Qualicador geral 1 Qualicador geral 1 Qualicador geral = 1

A B

&

AB

A B

A+B

como resulta de A+B = AB , pela aplicaao de uma das leis de de Morgan. c Da mesma forma, os s mbolos

A B

&

AB

A B

A+B

so equivalentes, como resulta de a A+B = AB .


Qualicadores de entrada e de sa da

Indicadores de polaridade

Mais ` frente iremos caracterizar estes e outros s a mbolos, que passaro a ter a designaoes apropriadas consoante existem ou no os qualicadores de entrada c a ou de sa da , com um signicado que no o de negaao lgica, como podem a e c o sugerir as equivalncias anteriores (estes qualicadores tambm se designam por e e indicadores de polaridade).

7.1. LOGICAS DE POLARIDADE, POSITIVA E NEGATIVA

109

7.1.2

Razo da lgica de polaridade a o

Como vimos nas Subsecoes 6.4.1 e 6.5.1, os n c veis de tenso H e L so, na a a realidade, gamas de valores de tenso elctrica que dependem da tecnologia a e utilizada. Em qualquer dos casos que foram apresentados (tecnologias TTL e CMOS), contudo, esses n veis so positivos porque os circuitos so alimentados entre a a uma tenso Vcc = +5V ou Vdd = +5V (eventualmente, outra tenso positiva) a a e a tenso da massa (GND = 0 V). a Porm, h tecnologias em que os circuitos so alimentados com tenses negatie a a o vas. E o caso, por exemplo, da tecnologia ECL, em que os circuitos integrados so habitualmente alimentados entre a tenso da massa (GND = 0 V) e uma a a tenso negativa, (Vee = 5, 2V), como ilustra a Figura 7.1. a
TTL (CMOS)
Vcc (Vdd ) = +5V GND = 0V

ECL 10k H

H
+2, 4V

0, 9V 1, 7V

L
+0, 4V GND = 0V

L
Lgica positiva o (a)

Vee = 5, 2V Lgica negativa o (b)

Figura 7.1: (a) A utilizaao de uma tecnologia TTL (ou CMOS) favorece a c escolha de uma lgica positiva, enquanto que (b) a utilizaao de uma tecnologia o c ECL favorece a utilizaao de uma lgica negativa c o Ora o problema que se levanta como associar os valores lgicos 0 e 1 da lgebra e o a de Boole que temos utilizado at aqui, com os nveis de tenso nos circuitos e a utilizados nas diversas tecnologias fsicas, de uma forma que seja independente da tecnologia ou de preferncias pessoais. e Uma associao poss ilustrada na Figura 7.1(a) que casa bem com ca vel as tecnologias que usam tenses positivas, como o caso da TTL e da CMOS, o e o faz corresponder o 0 lgico ao n L e o 1 lgico ao n H. E a lgica positiva, o vel o vel que temos vindo a utilizar at aqui. e Mas existe outra associaao poss c vel, a da lgica negativa da Figura 7.1(b), que o faz a ligaao oposta: faz-se corresponder o 0 lgico ao n H e o 1 lgico ao n c o vel o vel L. Esta associaao faz sentido se utilizarmos uma tecnologia com os circuitos c a serem alimentados por tenses negativas (como a ECL), porque o 0 lgico o o corresponde ` gama de tenses prximas da da massa (0V), isto , ao n alto a o o e vel (H), e o 1 lgico ca reservado para a outra gama de tenses, o n baixo (L). o o vel

Lgica positiva o Lgica negativa o

110

CAP ITULO 7. LOGICA DE POLARIDADE

Lgica de polaridade o

Naturalmente, quando se utiliza a lgebra de Boole estas questes no fazem a o a sentido, apenas se tornando importantes quando queremos implementar um determinado circuito. Como daqui para a frente vamos estar interessados nas implementaoes, teremos de decidir por uma ou por outra ou, melhor ainda, c achar uma soluao alternativa. c o co E o que faremos com a lgica de polaridade, em que prescindimos das associaes entre 0s, 1s, Ls e Hs. E de caminho vamos deixar cair completamente os 0s e os 1s (ou seja, apenas lidaremos com os Hs e os Ls), reservando os primeiros apenas para o tratamento algbrico das funoes em tabelas e c de verdade, quadros de Karnaugh, expresses lgicas, etc. o o

7.1.3

Tabelas de verdade f sicas e lgicas o

Para podermos utilizar a lgica de polaridade tal como a enuncimos anteo a riormente, h que proceder a algumas mudanas que possivelmente j esto a c a a enraizadas no nosso pensamento. Por exemplo, consideremos a tabela de verdade de uma certa funao booleana simples. No contexto da lgebra de Boole c a no tivemos nenhuma diculdade em estabelecer essa tabela com os seus 0s a e 1s. Mas se vamos prescindir dos 0s e 1s na implementao dos circuitos digitais ca e na utilizao da lgica de polaridade, temos que poder desenhar um tipo ca o diferente de tabela de verdade, apenas com Ls e Hs. Para distinguir os dois o tipos de tabela designamos a primeira por tabela de verdade lgica ou, mais simplesmente, e na linha do que zemos nos cap tulos anteriores, por tabela de verdade e a segunda por tabela de verdade f sica. Naturalmente, temos de perceber como passar das j nossas conhecidas tabelas a de verdade lgicas para as correspondentes tabelas de verdade f o sicas, e vice-versa, para todo e qualquer circuito digital. Para o fazer vamos recorrer a um exemplo. Suponhamos, ento, que tinhamos a que resolver o seguinte problema prtico: temos ` nossa disposiao um detera a c minado circuito, que desconhecemos (por exemplo, o circuito est contido num a circuito integrado cuja denominaao est apagada), mas sabemos onde esto as c a a suas entradas e sa das. Com estes dados podemos injectar nas entradas n veis H ou L, e vericar os n veis gerados pelo circuito nas suas sa das. Desta forma podemos estabelecer a tabela de verdade f sica do circuito. A questo saber a e de que circuito se trata. Suponhamos, ento, que com esta experincia obtinhamos a tabela de verdade a e f sica da Tabela 7.1 para um circuito com duas entradas, A e B, e uma sa da, S. Se conseguirmos perceber o que este circuito representa em lgica positiva (e j o a agora, porque no em lgica negativa?), podemos deduzir a expresso lgica da a o a o funao booleana simples que ele implementa. c Ora a converso da tabela de verdade f a sica para lgica positiva simples: basta o e substituir H por 1 e L por 0, como vimos acima pela deniao desta lgica. c o Obtemos, ento, a Figura 7.2. a Facilmente percebemos que o circuito em questo uma porta NAND com 2 a e entradas.

Tabela de verdade (lgica) o Tabela de verdade f sica

7.1. LOGICAS DE POLARIDADE, POSITIVA E NEGATIVA

111

Tabela 7.1: Tabela de verdade f sica de um circuito desconhecido, cuja funao c pretendemos determinar

A L L H H

B L H L H

S H H H L

Tabela de verdade f sica A L L H H B L H L H S H H H L Lgica positiva o H=1 L=0

Tabela de verdade em lgica positiva o A 0 0 1 1 B 0 1 0 1 S 1 1 1 0

Figura 7.2: A converso da tabela de verdade f a sica da esquerda para a lgica o positiva d a tabela de verdade em lgica positiva de um NAND com 2 entradas a o E se zessemos o mesmo exerc para tentar perceber o signicado do circuito cio desconhecido em lgica negativa, obtinhamos a Figura 7.3 e, da tabela de vero dade lgica, perceb o amos que estvamos em presena de um porta NOR com 2 a c entradas.
Tabela de verdade f sica A L L H H B L H L H S H H H L Lgica negativa o H=0 L=1 Tabela de verdade em lgica negativa o A 1 1 0 0 B 1 0 1 0 S 0 0 0 1

Figura 7.3: A converso da tabela de verdade f a sica da esquerda para a lgica o negativa d a tabela de verdade em lgica negativa de um NOR com 2 entradas a o Mas anal trata-se de um NAND ou de um NOR? Naturalmente, o circuito e o mesmo. A nossa interpretaao que diferente. c e e A diculdade com que nos deparamos provm de querermos forar uma das e c interpretaes. A unica soluo razovel para este dilema consiste em, quando co ca a estivermos a lidar com os circuitos lgicos, prescindir totalmente da lgica poo o sitiva e da lgica negativa e, consequentemente, das tabelas de verdade lgicas, o o

112

CAP ITULO 7. LOGICA DE POLARIDADE

dos 0s e dos 1s, e carmos pelas tabelas de verdade fsicas dos circuitos e pela lgica de polaridade. o Isto , passamos a distinguir claramente entre: e
Valores lgicos 0 e 1 o

o a co os valores lgicos 0 e 1 que possuem as variveis booleanas simples e as funes booleanas simples, quando estas ultimas so representadas por expresses a o booleanas como, por exemplo,

f(x, y) = x y + x y + x y , ou por tabelas de verdade lgicas, como em o


x 0 0 1 1 y 0 1 0 1 f(x, y) 0 1 1 0

f (x, y) = x y + x y + x y

ou por quadros de Karnaugh como em


y x 0 1

0 0 1

1 1 0

f (x, y) = x y + x y + x y = xy + xy

Contexto algbrico e N veis de tenso H e L a

isto , no contexto algbrico; e e e os n veis de tenso H e L nos circuitos lgicos que representam essas variveis a o a e funoes, e nas suas representaes por logigramas como em c co
x
1 &

1 1 &

f(x,y) = x y + x y

Contexto f sico

ou nos correspondentes esquemas elctricos e implementaoes f e c sicas numa determinada tecnologia, ou seja, no contexto f . sico

7.1. LOGICAS DE POLARIDADE, POSITIVA E NEGATIVA

113

Desta forma asseguramos que o contexto f sico dos circuitos totalmente presere vado a partir do contexto algbrico, no processo de implementao dos circuitos e ca lgicos e das suas representaoes por logigramas e esquemas elctricos. Mas, o c e obviamente, teremos de cuidar do interface entre o contexto algbrico e o f e sico, tornando fcil e natural a passagem de um para o outro. E o que faremos j de a a seguida.

7.1.4

Portas lgicas em lgica de polaridade o o

Em lgica de polaridade existem 2n variantes de um determinado circuito (porta o lgica, por exemplo) com n entradas e sa o das. Por exemplo, existem 8 variantes de portas AND com 2 entradas, 4 variantes de portas Buer (apenas com uma entrada e uma sa da), 16 variantes de portas OR com 3 entradas, etc. Como exemplo, consideremos as 8 variantes de portas AND com 2 entradas. Os s mbolos das portas so constru a dos colocando ou no indicadores de polaridade a (qualicadores ) nas entradas e na sa dos ANDs, como sugere a Figura 7.4. da
&

S mbolos IEC das portas AND com 2 entradas

AND com 2 entradas activas a H e sa activa a H da AND com 2 entradas activas a H e sa activa a L da AND com 2 entradas activas a L e sa activa a H da AND com 2 entradas activas a L e sa activa a L da AND com 1 entrada activa a L e a outra a H, e sa activa a H da AND com 1 entrada activa a H e a outra a L, e sa activa a H da AND com 1 entrada activa a L e a outra a H, e sa activa a L da AND com 1 entrada activa a H e a outra a L, e sa activa a L da

&

&

&

&

&

&

&

Figura 7.4: S mbolos IEC das 8 variantes de portas AND com 2 entradas Naturalmente, temos de distinguir estas 8 variantes, j que se trata de 8 circuitos a vel distintos. A maneira de as distinguir pelo n de actividade das entradas e e das sa das. Para tanto, convenciona-se que a existncia do qualicador numa entrada ou e numa sada torna essa entrada ou essa sada activa a L, enquanto que a no a existncia do qualicador torna a entrada ou sada activa a H. e

N vel de actividade

Entrada ou sa activa da a H ou a L

114

CAP ITULO 7. LOGICA DE POLARIDADE

Assim, por exemplo, a primeira porta designa um AND com as entradas activas a H e a sa activa a H, enquanto que a segunda porta um AND com as da e entradas activas a H e a sa activa a L; etc. Notemos, em particular, que a da numa entrada ou numa sada no signica negaao, a c presena do qualicador c mas apenas actividade a L. Da que, por exemplo, no falemos em NAND para a o segundo smbolo da Figura 7.4, mas em porta AND com entradas activas a H e sada activa a L. De facto, a designaao NAND (ou, pela mesma razo, a c a designaao NOR) apenas faz sentido em lgica positiva ou em lgica negativa, c o o j que sugere a existncia de uma negaao ` sa do AND (do OR), o que no a e c a da a se verica com a presena do qualicador . c Da mesma forma poder amos estabelecer os 8 s mbolos de portas OR com 2 entradas, ou os 16 s mbolos de portas AND com 3 entradas, etc. (a questo a dos 4 s mbolos de Buers, com uma entrada e uma sa da, ser estudada mais ` a a frente).

7.1.5

Tabelas de verdade genricas e f e sicas

Agora que j sabemos identicar as diversas portas do mesmo tipo, importa a colocar a seguinte questo: dado o s a mbolo IEC de uma porta, como que ela e pode ser implementada, por exemplo em TTL (que usa preferencialmente uma lgica positiva) ou em ECL (que usa preferencialmente uma lgica negativa)? o o Para responder ` questo, precisamos de estabelecer a tabela de verdade f a a sica de cada uma das portas e a correspondente tabela de verdade lgica, em lgica o o positiva ou negativa. Como j sabemos gerar a tabela de verdade lgica a partir a o da correspondente tabela de verdade f sica, temos que aprender a gerar a tabela de verdade f sica de uma porta a partir do seu s mbolo IEC. Para o podermos fazer, devemos colocar previamente uma outra questo: se a temos 2n s mbolos IEC para outras tantas portas do mesmo tipo com n entradas e sa das, como que elas se relacionam do ponto de vista f e sico? De facto, deve haver uma relao, dado que os seus s ca mbolos se obtm uns dos outros por e incluso ou remoao de indicadores de polaridade. a c
Tabela de verdade genrica e Tabela de verdade genrica das portas e AND com 2 entradas

Por exemplo, dado que h 8 portas AND com 2 entradas, o que que h de a e a comum e de diferente para todas elas? O que h de comum pode traduzir-se a numa tabela de verdade genrica para todos os 8 ANDs com 2 entradas. e Essa tabela (Tabela 7.2) diz em que condioes que a sa do AND vem c e da activa (A), por denio de AND (ou, para sermos mais precisos, por denio ca ca de produto lgico, adaptado a estas circunstncias): apenas quando as duas o a entradas estiverem activas. Basta que uma delas esteja inactiva (I) para a sa da tambm vir inactiva. e Para passarmos desta tabela de verdade genrica para todos os ANDs de 2 ene tradas ` tabela de verdade f a sica de um AND em particular, basta considerar os respectivos n veis de actividade nas entradas e nas sa das. Por exemplo, na Figura 7.5 ilustra-se a obtenao da tabela de verdade f c sica de um AND com 2 entradas activas a L e sa activa a H. Como as entradas X da e Y so activas a L, onde se encontra um A nas correspondentes colunas da a tabela de verdade genrica colocado um L na tabela de verdade f e e sica, e onde

7.1. LOGICAS DE POLARIDADE, POSITIVA E NEGATIVA

115

Tabela 7.2: Tabela de verdade genrica para todas as portas AND com 2 ene tradas

X I I A A

Y I A I A

Z I I I A

Tabela de verdade genrica de um AND e X X Y


&

Tabela de verdade f sica de um AND com entradas activas a L e sa activa a H da Entradas activas a L AL IH Sa da activa a H AH IL X H H L L Y H L H L (c) Z L L L H

Y I A I A (b)

Z I I I A

I Z I A A

(a)

Figura 7.5: Porta AND com 2 entradas activas a L e sa activa a H; (a) da s mbolo IEC; (b) tabela de verdade genrica, vlida para todos os ANDs com 2 e a entradas; e (c) tabela de verdade f sica para o AND da parte (a) se encontra um I coloca-se um H. Por outro lado, como a sa Z activa a H, da e onde estiver um A coloca-se um H e onde estiver um I pe-se um L. o A partir da tabela de verdade f sica podemos obter em seguida a tabela de verdade em lgica positiva e em lgica negativa para a porta lgica em questo o o o a (Figura 7.6). Finalmente, destas tabelas conclu mos estar em presena de um NOR em lgica c o positiva, e de um NAND em lgica negativa. o Vamos agora ver a questo da representaao da porta das Figuras 7.5(a) e 7.6 a c em lgica de polaridade, em lgica positiva e em lgica negativa. o o o Relembremos, mais uma vez, que qualquer porta possui dois s mbolos. Assim sendo, a porta da Figura 7.5(a) vem representada, em lgica de polaridade, pelo o s mbolo de um AND com 2 entradas activas a L e sa activa a H ou, em da alternativa, pelo s mbolo de um OR com 2 entradas activas a H e sa activa da a L, como j sabemos da Subsecao 7.1.1: a c
X Y
&

X Y

Mas como a porta em questo representada por um NOR em lgica positiva, a e o

116

CAP ITULO 7. LOGICA DE POLARIDADE

Tabela de verdade genrica e X X Y


&

Y I A I A

Z I I I A Tabela de verdade em lgica positiva o X 1 Y 1 0 1 0 Z 0 0 0 1 NOR em lgica o positiva

I I A A

Tabela de verdade f sica X AND com entradas activas a L e sa activa a H da em lgica de o polaridade H H L L Y H L H L Z L L L H

H1 L0

1 0 0

H0 L1

Tabela de verdade em lgica negativa o X 0 0 1 1 Y 0 1 0 1 Z 1 1 1 0 NAND em lgica o negativa

Figura 7.6: A partir da tabela de verdade f sica de uma porta AND com 2 entradas activas a L e sa activa a H, obtemos as correspondentes tabelas de da verdade em lgica positiva e em lgica negativa o o conclu mos que a porta vem representada, nesta lgica, pelos dois s o mbolos alternativos de um NOR (um NOR propriamente dito ou um AND com as entradas negadas), isto , os mesmos s e mbolos da sua representao em lgica ca o de polaridade:
X Y
&

X Y

NOR em lgica positiva o

A representaao simblica , contudo, diferente em lgica negativa. Agora a c o e o porta vem representada pelos s mbolos alternativos de um NAND (um NAND propriamente dito, ou um OR com as entradas negadas):
X Y
1

X Y

&

NAND em lgica negativa o

Naturalmente, este exerc pode ser estendido identicamente a qualquer outra cio porta. Daqui resulta o seguinte processo de converso simblica: dados os a o smbolos de uma porta em lgica de polaridade, podemos obter os smbolos cor o

7.1. LOGICAS DE POLARIDADE, POSITIVA E NEGATIVA

117

respondentes em lgica positiva sem fazer alteraao nenhuma; para obter os o c smbolos em lgica negativa, podemos fazer uma de duas coisas: (i) mantemos o a funao (AND ou OR) e trocamos as polaridades nas entradas e na sada; ou c (ii) mantemos as polaridades e trocamos a funo (AND por OR ou vice-versa). ca Por outro lado, para obtermos o smbolo alternativo numa determinada lgica, o trocamos a funao (AND por OR e vice-versa) e tambm trocamos as polaric e dades. Por exemplo,
A B
&

AB

A B

A+B

ou
A B
&

AB

A B

A+B

como tinhamos visto anteriormente na Seco 7.1.1 quando se armou que estas ca representaoes alternativas so consequncia das leis de Morgan. c a e De notar como se distinguem cuidadosamente as designaoes poss c veis para a mesma porta: desenhamos a porta em lgica de polaridade atendendo `s poo a laridades das entradas e da sa e ` funo (AND ou OR). Em lgica positiva da a ca o ou negativa designamos as funoes por NAND ou por NOR (tais funoes no c c a existem em lgica de polaridade), e falamos em negaoes nas entradas e nas o c sa das, em vez de polaridades. Em resumo, em lgica de polaridade temos portas AND com n entradas, todas o com a tabela de verdade genrica da Tabela 7.3, (com a sa activa s quando e da o todas as entradas estiverem activas), que podemos instanciar em 2n+1 portas AND f sicas distintas, consoante os n veis de actividade nas suas entradas e sa das. Tabela 7.3: Tabela de verdade genrica de todas as portas AND com n entradas e
E1 I I I A A E2 I I I A A E3 I I I A A En1 I I A A A En I A I I A S I I I I A Tabela de verdade genrica das portas e AND

Da mesma forma, temos portas OR com n entradas, todas com a tabela de verdade genrica da Tabela 7.4, (com a sa activa desde que pelo menos uma e da entrada esteja activa), que podemos instanciar em 2n+1 portas OR f sicas distintas, consoante os n veis de actividade nas suas entradas e sa das.

Tabela de verdade genrica das portas OR e

118

CAP ITULO 7. LOGICA DE POLARIDADE

Tabela 7.4: Tabela de verdade genrica de todas as portas OR com n entradas e


E1 I I I A A E2 I I I A A E3 I I I A A En1 I I A A A En I A I I A S I A A A A

Tabela de verdade genrica dos Buers e

Finalmente, temos 4 variantes de Buers, que so portas com uma entrada e a uma saida com a tabela de verdade genrica da Tabela 7.5. Para todas elas, a e sa vem activa se a entrada estiver activa. da Tabela 7.5: Tabela de verdade genrica para todas as portas Buer e
E I A S I A

Se agora instanciarmos as 4 variantes que resultam de atribuirmos n veis de actividade ` entrada e ` sa a a da, obtemos as seguintes portas lgicas: o um Buer com a entrada e a sa activas a H, com o s da mbolo IEC e a tabela de verdade f sica que se seguem.
E Buer com a entrada e a sa activas a H da
1

S L H

L H

Do ponto de vista lgico, este Buer reproduz na sa o n o da vel de tenso a que tiver sido aplicado ` entrada; apesar da aparente inutilidade lgica desta a o porta, ela ir ser util mais ` frente, quando estudarmos a utilizaao da sua a a c variante com sa tri-state. da um Buer com a entrada e a sa activas a L, com o s da mbolo IEC e a tabela de verdade f sica que se seguem.
E Buer com a entrada e a sa activas a L da
1

S H L

H L

7.1. LOGICAS DE POLARIDADE, POSITIVA E NEGATIVA

119

Tal como o anterior, este Buer reproduz na sa o n que for aplicado ` da vel a entrada, tendo os dois a mesma utilidade. um Buer com a entrada activa a H e a sa activa a L, com o s da mbolo IEC e a tabela de verdade f sica que se seguem.
Buer com a entrada activa a H e a sa activa a L da (porta NOT ou conversor de polaridade) E
1

S H L

L H

Trata-se de uma porta que umas vezes se comporta como uma porta NOT, ou inversor ou negao, e outras vezes como um conversor de polaridade (esta ca ultima designaao ser tornada clara mais ` frente). c a a nalmente, um Buer com a entrada activa a L e a sa activa a H, com o da s mbolo IEC e a tabela de verdade f sica que se seguem.
Buer com a entrada activa a L e a sa activa a H da (porta NOT ou conversor de polaridade) E
1

Porta NOT (inversor, negaao) c Conversor de polaridade

S L H

H L

Tal como o Buer anterior, temos agora tambm uma porta NOT (por vezes, e um conversor de polaridade), com o s mbolo alternativo. Tambm por vezes se usa o s e mbolo de uma porta XOR em lgica de polaridade o (a seguir ilustrado com 2 entradas activas a L e a sa activa a H). da
=1

A
1 &

1 1 &

A B = AB + AB

Figura 7.7: Circuito equivalente a uma porta XOR Dado que uma porta XOR pode ser sempre ser reduzida, por exemplo, ao circuito lgico da Figura 7.7 (mas h outros circuitos representativos de um XOR), o a o s mbolo desta porta justica-se sobretudo como forma compactada do referido circuito. H, contudo, uma outra razo para o uso desse s a a mbolo: na tecnologia CMOS uma porta XOR no implementada pelo cicrcuito anterior, ou equiva e alente, antes recorrendo a um tipo de portas diferentes designadas por portas

120

CAP ITULO 7. LOGICA DE POLARIDADE

de transmisso; nessas condioes, justica-se a utilizaao do s a c c mbolo do XOR como representaao de uma porta bsica, ao mesmo n do das portas AND e c a vel OR.

7.1.6
Logigrama

Logigramas e esquemas elctricos em lgica de poe o laridade

Num logigrama desenhado em lgica de polaridade leg o e timo incluir portas complexas, com diferentes n veis de actividade, como a que se indica na Figura 7.8(a).
&

&
&

(a)

(b)

1 & 1 &

&

(c)

(d)

Figura 7.8: (a) Porta complexa, para implementar em TTL; (b) uma primeira transformaao, que substitui a porta AND com 3 entradas por duas portas c AND com 2 entradas cada uma; (c) uma segunda transformao, que desloca ca os indicadores de polaridade da entrada do AND para a sa de dois Buers, da transformando-os em portas NOT; e (d) uma terceira transformao, que subsca titui os dois ANDs anteriores por um unico
Esquema elctrico e

Em TTL existem portas AND com 3 entradas, mas as entradas devem ter todas os mesmos nveis de actividade: se os nveis de actividade forem H, a porta um e AND ou un NAND em lgica positiva; se forem o L, a porta um NOR ou e um OR em lgica posio tiva.

Porm, quando queremos implementar a porta e passamos ao esquema elctrico e e numa determinada tecnologia, deixamos de poder utilizar este s mbolo se ele no possuir contrapartida directa num circuito integrado ou em parte dele; nesa sas condioes, temos de desenhar pormenorizadamente o circuito equivalente ` c a porta. Por exemplo, em TTL no existe a porta da Figura 7.8(a) sob a forma de um cira cuito integrado. Para obter o circuito equivalente procedemos por etapas. Como em TTL existem portas com 2 entradas com os mesmos n veis de actividade, uma transformao poss a que se ilustra na Figura 7.8(b). ca vel e Se em seguida colocarmos nas linhas de entrada dois Buers com entradas e sa das activas a H, a funo no vem alterada. E se depois deslocarmos os ca a indicadores de polaridade das entradas do primeiro AND para as sa das dos Buers, que so ento convertidos em portas NOT, obtemos o logigrama da a a Figura 7.8(c) sem alterar a funao. c Finalmente, se substituirmos os dois ANDs de 2 entradas por um unico AND com 3 entradas activas a H, obtemos o logigrama da Figura 7.8(d).

7.1. LOGICAS DE POLARIDADE, POSITIVA E NEGATIVA

121

Como os trs logigramas que obtivemos tm contrapartida sob a forma de e e circuitos integrados TTL, todos so pass a veis de ser utilizados em esquemas elctricos. Por exemplo, o logigrama da Figura 7.8(b) d origem ao esquema e a elctrico da Figura 7.9, formado por 1/4 de um NOR em lgica positiva (do tipo e o 74LS02), e por 1/4 de um AND em lgica positiva (do tipo 74LS08). o
U1 1/4 x 74LS02 1 & 3 2 1 2

U2 1/4 x 74LS08
&

Figura 7.9: Esquema elctrico que corresponde ao logigrama da Figura 7.8(b), e e que utiliza portas lgicas da sub-fam Low Power Schottky TTL o lia Para nalizarmos esta questo, vamos estabelecer a tabela de verdade f a sica da porta complexa da Figura 7.8(a). Porque se trata de um AND com 3 entradas, podemos desde logo gerar a sua tabela de verdade genrica (Tabela 7.6). e Tabela 7.6: Tabela de verdade genrica de um AND com 3 entradas e
A I I I I A A A A B I I A A I I A A C I A I A I A I A S I I I I I I I A

Porque se trata de um AND com duas entradas activas a L e uma entrada activa a H, e sa activa a H, podemos converter a tabela de verdade genrica da e na tabela de verdade f sica da porta em questo (Tabela 7.7, onde se admitiu, a arbitrariamente, que as variveis A e B vm ligadas `s entradas activas a L e a e a que a varivel C vem ligada ` entrada activa a H). a a Evidentemente, em geral deparamo-nos com ciruitos mais complexos do que a porta da Figura 7.8(a). Porm, os princ e pios que nos permitem obter as tabelas de verdade f sicas desses circuitos, bem como as suas implementaes numa co determinada tecnologia, so os mesmos que se acabaram de apresentar. a Um outro problema que se pe o seguinte: dado que dispomos, para cada o e porta, de dois smbolos alternativos, qual deles devemos utilizar em cada caso? Por exemplo, qual dos s mbolos alternativos

122

CAP ITULO 7. LOGICA DE POLARIDADE

Tabela 7.7: Tabela de verdade f sica da porta da Figura 7.8(a), onde se admite que as variveis A e B vm ligadas `s entradas activas a L e que a varivel C a e a a vem ligada ` entrada activa a H a
A H H H H L L L L B H H L L H H L L C L H L H L H L H S L L L L L L L H

&

ou

devemos usar? A resposta a esta questo depende da forma do circuito que estamos a sintetizar. a Por exemplo, se estivermos a representar o logigrama de uma funao booleana c simples em forma disjuntiva (soma de produtos) devemos usar o s mbolo que explicite que estamos a somar logicamente um certo nmero de produtos lgicos, u o como se ilustra na Figura 7.10.
&

&

. . .
&

Figura 7.10: Logigrama (e esquema elctrico simplicado) a utilizar quando se e representa uma soma de produtos E mesmo que, por razes de oportunidade, estejamos a implementar esse circuito o com NANDs em lgica positiva, devemos usar a mesma estrutura no logigrama o e no esquema elctrico, como se indica na Figura 7.11(a). e Ou seja, descartamos a possibilidade de usar o logigrama da Figura 7.11(b) porque, embora correcto do ponto de vista lgico e, tal como o da Figura 7.11(a), o equivalente ao do da Figura 7.10, no acentua o facto de estarmos a representar a uma soma de produtos.

7.1. LOGICAS DE POLARIDADE, POSITIVA E NEGATIVA

123

&

NAND em lgica positiva o

&

&

&

em vez de . . .
&

&

. . .
&

(a)

(b)

Figura 7.11: (a) Logigrama (e esquema elctrico simplicado) a utilizar quando e se representa uma soma de produtos implementada com NANDs em lgica poso itiva; (b) embora este logigrama esteja correcto do ponto de vista lgico e seja, o como o anterior, equivalente ao logigrama da Figura 7.10, no acentua que esa tamos a representar uma soma de produtos, pelo que no deve ser utilizado a

Por outro lado, podemos alterar o logigrama da Figura 7.10 substituindo os ANDs com entradas e sa das activas a H por ORs com entradas e sa das activas a L, e o OR com entradas e sa activa a H por um AND com entradas e sa da da activa a L, como se faz na Figura 7.12 (b).

&

&

&

. . .
&

. . .
1

(a)

(b)

Figura 7.12: (a) Logigrama (e esquema elctrico simplicado) inicial; (b) logie grama equivalente e correcto do ponto de vista lgico, mas que tambm no o e a acentua o facto de estarmos a representar uma soma de produtos, pelo que no a deve ser utilizado Mas, mais uma vez, nesse logigrama no se acentua o facto de estarmos a rea presentar uma soma de produtos, pelo que no o devemos utilizar. a Identicamente, se a funao for dada em forma conjuntiva (produto de somas) c como na Figura 7.13(a), podemos transformar o seu logigrama (e esquema elctrico parcial) como na Figura 7.13(b), implementando-a com NORs em e lgica positiva, porque preservmos a estrutura da funao. o a c

124

CAP ITULO 7. LOGICA DE POLARIDADE

NOR em lgica positiva o

&

&

. . .
1

. . .
1

(a)

(b)

Figura 7.13: (a) Logigrama (e esquema elctrico simplicado) de uma funo em e ca forma conjuntiva (produto de somas); (b) logigrama equivalente e correcto do ponto de vista lgico, que reecte o facto de estarmos a lidar com um produto o de somas, embora implementado com NORs em lgica positiva o

7.2

Conte do Semntico u a

At agora utilizmos designaoes para as variveis e funes booleanas simples, e a c a co por exemplo A, B, C, x, y, z, . . . , com designaoes que no ilustram as acoes a elas associadas. Ou seja, procuc a c rmos dar designaoes simplicadas `s variveis e funoes, a m de as poder a c a a c utilizar ecazmente nas expresses lgicas, nos quadros de Karnaugh, etc. o o Quando apenas temos de lidar com os aspectos algbricos dos sistemas lgicos e o e vantajoso reter esses tipos de designaoes. Contudo, quando passamos ao n c vel f sico e ` implementaao dos circuitos lgicos, torna-se imprescind a c o vel aprofundar esta questo, passando a conferir contedo semntico `s variveis a `s a u a a a a funoes. c Explicitemos melhor o signicado desta armaao. Se uma determinada varivel c a (ou funao) booleana simples identicar uma situao em que uma certa porta c ca est aberta, por exemplo, ser mais interessante design-la por a a a P ORT A.ABERT A ou por outra designaao semelhante, em vez de A ou de x. Diz-se, nessas c circunstncias, que se conferiu contedo semntico ` varivel (ou ` funo) em a u a a a a ca jogo. Para percebermos melhor o signicado destes contedos, comecemos por conu siderar um sensor de entrada para o alarme de um carro, alarme esse que deve detectar a situaao em que a porta do condutor se encontra aberta. c Vamos concentrar a nossa atenao no sensor e na ligaao ao alarme. c c O sensor constitu por um comutador de duas posies, por uma resistncia e do co e de pull-up ligada ` tenso de alimentaao, Vcc , e por uma porta NOT (Figua a c ra 7.14).

Conte do semntico u a

Sensor (entrada)

7.2. CONTEUDO SEMANTICO


VCC Sensor R U1 H
1

125

Alarme

S mbolos: Carro com porta aberta

PORTA.ABERTA L Carro com porta fechada

Figura 7.14: Sensor de alarme de um carro: quando a porta do condutor est a aberta, na linha de sa do sensor aparece um n L da vel Se o comutador estiver ligado ` resistncia (o que corresponde, com esta mona e tagem, ` situao de porta aberta), teremos na sua sa uma tenso prxima a ca da a o de Vcc e, na sa do NOT, um n L adequado para aplicaao ` entrada do da vel c a circuito de alarme. Se, pelo contrrio, o comutador estiver ligado ` massa (e, portanto, a porta est a a a fechada), teremos uma tenso nula ` entrada do NOT e, em consequncia, um a a e n H na sua sa (Figura 7.15). vel da
VCC Sensor R U1 L
1

Alarme

S mbolos: Carro com porta aberta

PORTA.FECHADA H Carro com porta fechada

Figura 7.15: O mesmo sensor de alarme da gura anterior: quando a porta do condutor est fechada, na linha de sa do sensor aparece um n H a da vel O problema que se pe reside, ento, na designao a dar ` linha de sada do o a ca a sensor e ` varivel que nela se suporta. a a Em relaao ` designaao da varivel, podemos escolher uma de duas em alterc a c a nativa, P ORT A.ABERT A ou P ORT A.F ECHADA ,

A designaao linha c deve ser tomada num sentido lato, incluindo nela toda e qualquer ligaao contida num c logigrama ou esquema elctrico, seja ela e representativa de um o num prottipo em o breadboard, de uma pista de um circuito impresso ou de um circuito integrado, etc.

consoante a ligaao que zermos do sensor ` porta do carro. Para a ligaao que c a c se ilustra na Figura 7.14, ou seja, em que a posiao de porta aberta corresponde c a ` situao em que o comutador est ligado ao Vcc , com um n L ` sa do ca a vel a da NOT sempre que a porta estiver aberta (naturalmente, pod amos ter optado pela ligaao contrria), a designao da linha dever ser c a ca a P ORT A.ABERT A L .

126

CAP ITULO 7. LOGICA DE POLARIDADE

Varivel activa a Varivel activa a L a

Quere-se com esta designaao armar que, quando o n de tenso na linha c vel a e a a ca L, a porta est aberta e a varivel P ORT A.ABERT A est activa. A designao a anterior deve identicar, ento, a varivel P ORT A.ABERT A como sendo activa a a a L. Naturalmente, se nestas circunstncias o n a vel na linha for H porque o coe mutador est na outra posiao, a porta do carro est fechada (admitimos que a c a a porta apenas pode encontar-se numa destas duas posioes, j que estamos a c a a a lidar com variveis binrias), e a varivel P ORT A.ABERT A est inactiva. a a Na Figura 7.15 ilustra-se a situaao alternativa, em que damos a outra desic gnaao semntica ` varivel, que se passa a chamar P ORT A.F ECHADA. Para c a a a que o problema seja exactamente o mesmo da Figura 7.14, devemos agora designar a linha por P ORT A.F ECHADA H , o que signica que o carro tem a porta fechada quando na linha tivermos um n H e aberta para o n L. Neste caso, a designaao anterior deve, ento, vel vel c a identicar a varivel P ORT A.F ECHADA como sendo activa a H. a Em resumo, verica-se que a linha que serve de suporte a uma varivel tem pelo a menos duas designaes em alternativa, para as mesmas condioes no circuito, co c sendo opcional a escolha entre as duas. Constata-se ainda que a designao da linha composta pela designaao da ca e c varivel seguida do n de tenso em que a varivel vem activa. Por exemplo, a vel a a a linha com a designaao c P ORT A.ABERT A L suporta a varivel a P ORT A.ABERT A , que activa a L. e

Varivel inactiva a

Varivel activa a H a

Funao activa (a H, a c L) Actuador (sa da)

O que se acabou de dizer para uma varivel de entrada de um circuito lgico a o e igualmente vlido para uma funo de sada e para a sua ligaao a um actuador a ca c (actuador esse tomado num sentido lato, incluindo indicadores luminosos). Finalmente, dado que P ORT A.ABERT A P ORT A.F ECHADA e P ORT A.F ECHADA P ORT A.ABERT A , conclu mos que podemos usar, para a linha em questo, no duas mas quatro a a opoes, c P ORT A.ABERT A L P ORT A.F ECHADA H P ORT A.ABERT A H P ORT A.F ECHADA L ,

(7.1)

7.2. CONTEUDO SEMANTICO escolhendo-se em cada situaao a mais adequada. c

127

Assim, se na designaao da linha pretendermos acentuar o facto de o n c vel L indicar uma porta aberta, como na Figura 7.14, utilizaremos P ORT A.ABERT A L ou P ORT A.F ECHADA L .

Se, pelo contrrio, quisermos realar que o n a c e vel H que deve indicar porta fechada, como na Figura 7.15, utilizaremos P ORT A.F ECHADA H ou P ORT A.ABERT A H .

No esqueamos, porm, que temos uma situao completamente diferente se a c e ca quisermos que o n de tenso H indique porta aberta e que o n L indique vel a vel porta fechada. Nesse caso teremos: P ORT A.ABERT A H P ORT A.F ECHADA L P ORT A.ABERT A L P ORT A.F ECHADA H , que formalmente diferente do conjunto de designaoes (7.1). Estas designaoes e c c so aplicveis ` situao oposta ` que foi representada nas Figuras 7.14 e 7.15, a a a ca a com o sensor a indicar porta aberta quando ligado ` massa. a Uma consequncia importante do facto de podermos, em geral, designar quale quer linha por uma de quatro maneiras diferentes, mas equivalentes, que e as variveis ou funoes que se suportam nessa linha possuem n a c veis de actividade que no esto correlacionados com os nveis de actividade nas entradas a a e nas sadas nos smbolos das portas `s quais a linha se liga, como mostra a a Figura 7.16 para um caso particular.

(7.2)

7.2.1

Buers, inversores e conversores de polaridade

As mltiplas designaoes que podemos dar a uma determinada linha permiteu c -nos ainda justicar a armaao, feita a propsito da tabela de verdade genrica c o e de um Buer, na Tabela 7.5, pgina 118, de que as portas Buer que possuem a n veis de actividade diferentes nas entradas e nas sa das podem ser interpretados como portas NOT ou, alternativamente, como conversores de polaridade. Com efeito, suponhamos que se aplica ` entrada de uma dessas portas uma a varivel ACT U A (naturalmente, sendo gerada por uma outra porta qualquer, a poder igualmente ser considerada como uma funao), e que essa varivel (ou a c a funao) activa a L. A designaao da linha de entrada da porta dever, ento, c e c a a ser ACT U A L. Se considerarmos que a porta se comporta como um NOT [Figura 7.17(a)], obtemos ` sa a funao ACT U A ou, em alternativa, a funao N AO.ACT U A a da c c o complemento da funao de entrada com o mesmo n de actividade. c vel Ou seja, designamos a linha de sa por ACT U A L ou por N AO.ACT U A L. da Se, pelo contrrio, interpretarmos a porta como um conversor de polaridade a [Figura 7.17(b)], designamos a sa por ACT U A H, ou seja, usando a mesma da

128
U2

CAP ITULO 7. LOGICA DE POLARIDADE


U2 U1 & COMUTADOR.FECHADO H

U1
& COMUTADOR.ABERTO L

U3 &

U3 &

U2 U1 & COMUTADOR.ABERTO H

U2 U1 & COMUTADOR.FECHADO L

U3 &

U3 &

Figura 7.16: Quatro exemplos do mesmo circuito, com designaoes e n c veis de actividade variados, porm totalmente equivalentes, para as funoes booleanas e c simples geradas pela porta AND da esquerda. Como podemos constatar, os n veis de actividade das funoes no esto correlacionados com o n c a a vel de actividade da sa da porta geradora da funao nem com os n da c veis de actividade das entradas das portas ` qual a funao vem aplicada a c

Buer como porta NOT

Buer como porta conversora de polaridade

ACTUA L ACTUA H

ACTUA L ACTUA H

ACTUA L ACTUA H

ACTUA H ACTUA L

ACTUA L ACTUA H

ACTUA L ACTUA H

ACTUA L ACTUA H

ACTUA H ACTUA L

(a)

(b)

Figura 7.17: (a) Utilizaao de um Buer como porta inversora (ou NOT); e (b) c como conversor de polaridade

varivel (ou funao) de entrada, ACT U A, mas com a polaridade trocada. Em a c qualquer dos casos, a tabela de verdade genrica do Buer a da Tabela 7.5, e e e a tabela de verdade f sica do NOT ou do conversor de polaridade igual nos e dois casos. Naturalmente, outro tanto se passaria se a varivel (ou funao) de entrada fosse a c activa a H, como alis tambm se explicita na Figura 7.17. a e

7.3. LOGIGRAMAS E EXPRESSOES BOOLEANAS

129

7.3

Logigramas e Expresses Booleanas o

Nesta Secao vamos abordar dois problemas t c picos na lgica de polaridade: (i) o dada a expresso booleana de uma dada funo booleana simples, pretende-se a ca obter o logigrama da funao se forem conhecidos os n c veis de actividade das variveis independentes e da prpria funao; e (ii) o problema oposto, isto , a o c e dado o logigrama de um circuito, pretende-se obter a expresso da funao de a c sa e a correspondente tabela de verdade f da sica.

7.3.1

Geraao de logigramas c

Vamos ento supor que conhecida a expresso booleana de uma dada funao a e a c booleana simples e ainda os n veis de actividade das variveis de entrada e da a prpria funo. Pretende-se obter o logigrama da funao. o ca c Para abordar este problema consideremos o seguinte exemplo: dada a funao e c F = A B +A C e as variveis A, B e C so geradas de tal forma que A L, B L, a a e C H. Pretende-se ainda que F L por razes que tm a ver com o circuito a o e jusante, ao qual F vai ser aplicada. Comeamos por gerar um logigrama para F que no leva em linha de conta os c a nveis de actividade nas entradas e na sada, como se ilustra na Figura 7.18.
1

A
&

AB
1

B
&

F = AB + AC

AC

Figura 7.18: Logigrama da funao F = A B + A C que no leva em linha de c a conta os n veis de actividade nas entradas e na sa da Em seguida inserimos no logigrama as variveis e a funao com n a c veis de actividade a H. Naturalmente, o logigrama no vem alterado por esta operao a ca (Figura 7.19).
1

A H

A H A L
&

AB H
1

B H
&

F H = (A B + A C) H

AC H

C H

Figura 7.19: Incluso, no logigrama anterior, das variveis e da funao com a a c n veis de actividade a H

130

CAP ITULO 7. LOGICA DE POLARIDADE

A terceira fase passa agora a tomar em consideraao os n c veis de actividade exigidos. Para tanto, temos de adaptar o logigrama obtido a esses n veis, ajustando os n veis de actividade das entradas das portas de entrada e da sa da da porta de sa da, como sugere a Figura 7.20.
1

A L

A H A L
&

AB H
1

B L
&

F L = (A B + A C) L

AC H

C H

Figura 7.20: Logigrama modicado que leva em linha de conta os n veis de actividade correctos para as variveis de entrada e para a funao a c Em relaao ao logigrama obtido ressalta a redundncia do Buer com entrada c a e sa activa a L, que pode ser removido. Para reforar esta ideia, notar que da c a entrada e a sa do Buer possuem a mesma designaao, A L. Obtm-se, da c e ento, o logigrama da Figura 7.21, na sua forma nal. a
A L
&

AB H
1

B L
&

F L = (A B + A C) L

AC H

C H

Figura 7.21: Logigrama nal para a funao c Embora leg timo, este logigrama no est descrito numa forma adequada para a a ser implementado sicamente. Por outras palavras, no um esquema elctrico. a e e Tal deve-se, como j sabemos, ao facto de no existirem portas AND integradas a a com n veis de actividade diferentes nas entradas. Se quisermos implementar, por exemplo em TTL, o logigrama anterior, temos que modic-lo sem alterar a funao. Comecemos por incluir dois Buers com a c entrada e sa activas a H nas linhas A L e B L (Figura 7.22), o que no da a altera a funao. c Notemos que ` sa dos Buers temos funes com a mesma designaao e n a da co c vel de actividade das variveis nas suas entradas. a Em seguida deslocamos os indicadores de polaridade que esto `s entradas dos a a ANDs para as sa das dos Buers, o que tambm no altera em nada a funao. e a c Ao faz-lo, porm, passamos a ter ANDs que existem em TTL. Por outro lado, e e passamos, agora, a ter nas sa das dos Buers as mesmas funes mas com a co polaridade oposta, como mostra o esquema elctrico da Figura 7.23. Nessas e condioes, os Buers passam a funcionar como portas NOT ou como conversores c de polaridade (iremos ver qual a designaao mais adequada j a seguir). c a

7.3. LOGIGRAMAS E EXPRESSOES BOOLEANAS

131

A L
& 1

B L
1

B L

AB H
1

F L = (A B + A C) L

A L

&

AC H

C H

Figura 7.22: Alteraao do logigrama anterior, que no altera a funao c a c


A H
1 &

B L
1

B H

AB H
1

F L = (A B + A C) L

A H

&

AC H

C H

Figura 7.23: Esquema elctrico para implementaao da funao dada e c c Finalmente, mudamos a designaao A L na entrada superior para A H. Esta c nova designaao, sendo equivalente, tem, contudo, o n de actividade adaptac vel do ao n de actividade da entrada do AND a que se liga. vel Este um princ fundamental para a correcta geraao e leitura dos logigramas e pio c em lgica de polaridade: de entre as vrias designaoes alternativas que cada o a c linha do logigrama pode ter, escolhemos sempre a alternativa que faz coincidir o nvel de actividade da varivel ou funao que a linha suporta com o nvel de a c actividade da entrada da porta a que a linha est ligada. a Embora este procedimento no seja estritamente necessrio, como o provam os a a exemplos da Figura 7.16, na pgina 128, esta forma de actuar garante a correcta a interpretao das vrias funoes intermdias e nal do logigrama. Por exemplo, ca a c e lemos directamente a funao A B ` sa do AND superior (porque `s suas c a da a entradas aplicamos a varivel A e a funao B), a funao A C ` sa do AND a c c a da inferior (porque temos A e C `s suas entradas), e F = A B + A C ` sa do a a da esquema elctrico (porque as entradas do OR so A B e A C). e a Por outro lado, devemos notar a designaao dada `s linhas de sa dos Buers, c a da que suportam funoes com n c veis de actividade adaptados aos n veis de actividade das entradas dos ANDs a que se ligam. O Buer que transforma B L em B H um conversor de polaridade. O outro Buer, que transforma A H em e A H, uma porta NOT . e

7.3.2

Expresses booleanas a partir de logigramas o

Vamos agora considerar o problema inverso do anterior: dado um logigrama em lgica de polaridade, pretendemos determinar a expresso lgica da funao de o a o c sa e a correspondente tabela de verdade f da sica.

132

CAP ITULO 7. LOGICA DE POLARIDADE

No que toca ` obtenao da expresso lgica da funao de sa procuramos, a c a o c da como se disse anteriormente, escolher para cada linha do logigrama a varivel a ou funao mais adequada, que garanta a igualdade entre o n de actividade c vel dessa varivel ou funao e o n a c vel de actividade da entrada da porta a que a linha se liga. Consideremos o logigrama da Figura 7.24.
A H B L C H D L
1

&

X H
1

F L

Figura 7.24: Logigrama que serve de exemplo Notemos que o logigrama contm alguns dos desajustes que acabmos de mene a cionar. Por essa razo redesignamos algumas das linhas de entrada, mantendo a a funo e o logigrama (Figura 7.25). ca
Conversor de polaridade

A L B H C L D L

A H

&

X H = (A B C) H
1

F H

Figura 7.25: Logigrama que resulta do anterior por redesignaao de algumas c das linhas de entrada Podemos agora constatar que ` entrada do AND existem duas variveis, B e a a C, e uma funao, A, cujos n c veis de actividade coincidem com os n veis de actividade das entradas da porta. Logo, a funao X ` sa do AND tem a c a da expresso X = A B C. a Como esta funao tem o n de actividade oposto ao n da entrada do OR c vel vel a ` qual a linha de suporte se liga, devemos redesignar X H para X L, como mostra a Figura 7.26. Por idntica razo, redesignamos tambm a funao de e a e c sa da, de F L para F H, tambm como mostra a gura. e Nestas condioes, e s nestas, o OR tem presente `s suas entradas D L e X L, c o a gerando na sua sa F H a funao F = X + D. Ento, da c a F = X +D = AB C + D, que poderemos simplicar para F = A B C D. No que diz respeito ` geraao da tabela de verdade f a c sica do circuito, temos que estender o que se fez anteriormente relativamente a este tipo de tabelas, e

7.3. LOGIGRAMAS E EXPRESSOES BOOLEANAS


1

133

A L B H C L D L

A H

&

X H = (A B C) H X L = (A B C) L
1

F H = (X + D) H

Figura 7.26: Logigrama que resulta do anterior por redesignaao das linhas que c suportam a funao intermdia X e a funao de sa F c e c da incluir nela os nveis de actividade das variveis de entrada e da funao. Com a c efeito, s assim podemos analisar uma linha qualquer da tabela e perceber quais o as variveis que esto activas e, em consequncia disso, deduzir o n de tenso a a e vel a na sa percebendo, assim, se a funao de sa est ou no activa. da c da a a Consideremos na Tabela 7.8 a tabela de verdade f sica do circuito da Figura 7.24. A tabela tem as linhas numeradas para facilitar a exposiao do racioc c nio. Tabela 7.8: Tabela de verdade f sica do circuito da Figura 7.24
# linha 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A H L L L L L L L L H H H H H H H H B L L L L L H H H H L L L L H H H H C H L L H H L L H H L L H H L L H H D L L H L H L H L H L H L H L H L H F L H H H H H L H H H H H H H H H H

Podemos preencher a tabela linha a linha, deduzindo a actividade ou inactividade das entradas e sa das das portas e, por esse modo, deduzir os n veis de tenso nas diversas linhas do circuito, at chegarmos ao n de tenso na linha a e vel a que suporta a funao de sa c da. Por exemplo, a linha 0 da tabela impe n o veis L em todas as linhas de entrada. a Ora com um L na linha A H, a entrada do conversor de polaridade est activa, e, por conseguinte, a sua sa tambm deve estar activa (por deniao de da e c Buer, vd. a Tabela 7.5). Como essa sa activa a H, temos um H na linha da e

134

CAP ITULO 7. LOGICA DE POLARIDADE

que liga essa sa ` entrada superior do AND [Figura 7.27(a)]. da a


Entrada activa A H (a) B L C H D L L L L L Entrada inactiva A H (b) B L C H D L L L L L
1 1 1

Sa da activa H
&

F L

Sa da inactiva
&

L
1

F L

A H (c) B L C H D L

L L L L

Entradas activas
&

L
1

Sa da activa H F L

Figura 7.27: Estado das linhas do circuito quando aplicamos `s entradas os a n veis de tenso que correspondem ` primeira linha da Tabela 7.8 a a Ou seja, o AND tem um n vel H na linha superior e dois n veis L nas outras duas linhas. Isso quer dizer que a entrada superior e a entrada inferior esto a activas, mas a entrada do meio est inactiva. Ora este facto suciente para a e tornar inactiva a sa do AND (por deniao de AND, vd. a Tabela 7.3), e da c como essa sa activa a H, signica que temos um L na linha de sa do da e da AND [Figura 7.27(b)]. Segue-se que o OR tem as duas entradas activas, pelo que a sua sa deve estar da activa (por deniao de OR, vd. a Tabela 7.4). Como essa sa activa a H, c da e devemos ter um H na linha de sa [Figura 7.27(c)], como salienta a Tabela 7.8 da na linha 0. E, da mesma forma, poder amos construir as restantes linhas da Tabela 7.8. Mas tambm podemos preench-la globalmente e de forma mais expedita, se e e olharmos com atenao para o logigrama da Figura 7.24. Por exemplo, podemos c constatar que o AND tem a sa inactiva, a L, desde que pelo menos uma das da suas entradas esteja inactiva (por deniao de AND). Ora isso acontece em trs c e situaes: co a linha B L est a L (e a entrada a que essa linha se liga activa a H), o a e que acontece nas linhas 0 a 3 e 8 a 11 da tabela;

7.3. LOGIGRAMAS E EXPRESSOES BOOLEANAS

135

a linha C H est a H (e a entrada a que essa linha se liga activa a L), o a e que acontece nas linhas 2 e 3, 6 e 7, 10 e 11, e 14 e 15 da tabela; a da a a linha A H est a H e, por conseguinte, a sa do Buer est a L (e a entrada a que essa linha se liga activa a H), o que acontece nas linhas 8 a e 15 da tabela. Nestas trs situaes a entrada superior do OR est activa, a L, pelo que a sua e co a sa est activa, a H (por deniao de OR). Logo, a sa do circuito vem a H da a c da (e a funao de sa est inactiva) nas linhas 0 a 3 e 6 a 15 da tabela. c da a Sobejam as linhas 4 e 5. Devemos notar que, para as linhas pares, com D L a L, a entrada inferior do OR nal est activa, o que suciente para que a sa a e da dessa porta venha activa, isto , a H. Logo, a funo F vem a H na linha 4. e ca Resta a linha 5, em que a funao F vem a L. c Retomemos ento a tabela anterior, que reproduzimos na Tabela 7.9. a Tabela 7.9: Ainda a tabela de verdade f sica do circuito da Figura 7.24
# linha 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A H L L L L L L L L H H H H H H H H B L L L L L H H H H L L L L H H H H C H L L H H L L H H L L H H L L H H D L L H L H L H L H L H L H L H L H F L = ABCD L H H H H H L H H H H H H H H H H

Como a funao F s vem activa na linha 5 (no esquecer que F activa a L), ela c o a e deve ser constitu por apenas um mintermo. Vamos ver que mintermo esse. da e ` A primeira vista poderia parecer que se trata do mintermo m5 , visto que ele aparece na linha 5 da tabela. Mas isso no verdade, como podemos constatar a e pelo facto de F estar activa quando: a e a a A H est a L ou, o que o mesmo, A L est a L, ou ainda a varivel A est activa; a

136

CAP ITULO 7. LOGICA DE POLARIDADE

B L est a H ou, o que o mesmo, B H est a H, ou ainda a varivel B a e a a est activa; a C H est a L ou, o que o mesmo, C L est a L, ou ainda a varivel C a e a a est activa; e, nalmente, a D L est a H ou, o que o mesmo, D H est a H, ou ainda a varivel a e a a D est activa; a Segue-se que a funao s vem activa quando as variveis A e B e C e D esto c o a a activas, pelo que F deve ser, na realidade, o produto lgico dessas variveis, tal o a como tinhamos concluido directamente do logigrama da funao. c Ou seja, F = A B C D = m0 . Notemos, ento, que o nmero da linha que corresponde a um determinado a u mintermo da funao no coincide com o ndice do mintermo. Tal aconteceria c a se as variveis fossem todas activas a H porque, nesse caso, elas vinham activadas a com um H e inactivadas com um L, qualquer que fosse a linha da tabela que estivessemos a considerar. Como, neste exemplo, os n veis de actividade so a diferentes de H, segue-se que so diferentes o nmero da linha em que a funo a u ca vem activa e o ndice do mintermo que constitui a primeira forma cannica da o funao. c Repare-se que pod amos ter raciocinado da forma alternativa, considerando os maxtermos da funao nas linhas em que F est inactiva. Por exemplo, na linha c a 0 temos F inactiva. Ora, para que a funao venha inactiva, suciente que uma c e das seguintes variveis, A ou B ou C ou D, venha inactiva, o que corresponde a ao maxtermo M5 . E outro tanto pod amos deduzir em relaao `s outras linhas c a da tabela.

7.4

Exemplo de Utilizao ca

Vamos considerar novamente o exemplo do alarme de carro do in do Cap cio tulo 6 e que usa no apenas a porta do lado do condutor, mas todas as 4 portas, a para fazer actuar o alarme caso alguma esteja aberta quando a chave de iginiao c est ligada. Pretende-se ainda activar o alarme caso o carro esteja estacionado a com as luzes acesas. Vamos representar cada porta por uma varivel, P A1 a P A4, que estar a L a a quando a porta correspondente est aberta (os sensores que geram estas variveis a a foram desenhado anteriormente). A funao P ORT AS.ABERT AS signicar, c a quando activa, que existe pelo menos uma porta aberta. Ento teremos a P ORT AS.ABERT AS = P A1 + P A2 + P A3 + P A4 . Do mesmo modo, LU Z ser uma varivel que est a H quando as luzes esto a a a a acesas, e CHAV E uma varivel que est a L quando a chave da igniao est a a c a ligada. a E fcil de ver que o alarme (funo ALARM E) ser obtido pela expresso ca a a ALARM E = CHAV E P ORT AS.ABERT AS + CHAV ELU Z .

7.4. EXEMPLO DE UTILIZACAO

137

Deduzimos do enunciado do problema que as variveis de entrada P A1 a P A4 a so activas L, que a varivel LU Z activa a H e que a varivel CHAV E activa a a e a e a L. Nada dito, porm, sobre o n de actividade da funao ALARM E, de e e vel c sa da, nem sobre o n de actividade da funao P ORT AS.ABERT AS, uma vel c funao intermdia. c e E claro, o n vel de actividade da funao ALARM E tem a ver com o circuito c a jusante, que h-de accionar o sinalizador acstico ou luminoso do alarme a u do carro. Pelo contrrio, a deciso sobre o n a a vel de actividade da funao c P ORT AS.ABERT AS exclusivamente de quem desenha o logigrama do cire cuito. Admitiremos, arbitrariamente, que as duas funes so activas a H. co a Nestas condioes, podemos de imediato desenhar o logigrama da Figura 7.28 c (comparar com o logigrama da Figura 6.1, na pgina 95, desenhado em lgica a o positiva).
PA1 PA2 PA3 PA4 L L L L
1

PORTAS.ABERTAS H

& 1

CHAVE L CHAVE H LUZ H

ALARME H

&

Figura 7.28: Logigrama do alarme do carro A passagem a esquema elctrico implica a introduao de um conversor de poe c laridade entra a linha CHAV E L e a entrada inferior do AND superior, que e activa a H (Figura 7.29).
U1 74LS20 PA1 PA2 PA3 PA4 L L L L
1

PORTAS.ABERTAS H

CHAVE L

U2-2 1/4 74LS00 U2-1 1/4 74LS00 & & CHAVE H U2-3 1/4 74LS00
&

U2-4 1/4 74LS00


1

ALARME H

CHAVE H LUZ H

Figura 7.29: Esquema elctrico do alarme do carro e A linha de sa do conversor ser, ento, designada por CHAV E H, e a da a a varivel CHAV E ter, nessa linha, o mesmo n H de polaridade da entrada a a vel da porta.

138

CAP ITULO 7. LOGICA DE POLARIDADE

Por outro lado, aproveitamos para obter o menor nmero de integrados no u esquema elctrico em lgica positiva (TTL), o que se consegue substituindo o e o conversor de polaridade por uma porta NAND de 2 entradas. No total vamos precisar de 1 integrado, U1, formado por uma porta NAND de 4 entradas (do tipo 74LS20), e de outro integrado, U2, com 4 portas NAND de 2 entradas (do tipo 74LS00).

7.5

Referncias Bibliogrcas e a

Este Cap tulo no tem referncias bibliogrcas. a e a

7.6

Exerc cios

Nota: os exerc cios identicados com um asterisco () esto resolvidos em a SD:ER. () 7.1 Em lgica de polaridade no existem portas NAND e NOR. Existem apeo a nas portas AND, OR, NOT e conversores de polaridade (por vezes tambm e portas XOR, embora estas possam sempre ser compostas por portas dos tipos anteriores). Em contrapartida, a incluso de indicadores de polaa ridade permite obter todas as variantes de portas de que necessitamos. Diga que integrados TTL (em lgica positiva) utilizaria para implementar o as seguintes portas com 2 entradas, e desenhe os s mbolos IEC para cada uma delas: (a) porta OR com as entradas e a sa activas a L; da (b) porta AND com as entradas e a sa activas a L; da (c) porta OR com as entradas activas a H e a sa activa a L; da (d) porta AND com as entradas activas a H e a sa activa a L; da (e) porta OR com as entradas activas a L e a sa activa a H; da (f) porta AND com as entradas activas a L e a sa activa a H. da 7.2 Repita o exerc anterior para as seguintes portas com 3 entradas (poscio sivelmente necessitar de circuitos mais complexos do que uma simples a porta de substituiao): c (a) (b) (c) (d) (e) (f) ()
Tabela de verdade genrica das portas e XOR com 2 entradas

()

porta OR com 2 entradas activas a H e uma a L, e a sa da activa a H; porta OR com 2 entradas activas a H e uma a L, e a sa da activa a L; porta AND com 2 entradas activas a H e uma a L, e a sa da activa a H; porta AND com 2 entradas activas a H e uma a L, e a sa da activa a L; porta XOR com as 3 entradas activas a H e a sa activa a H; da porta XOR com as 3 entradas activas a L e a sa activa a H. da

7.3 A descriao da funao OU-exclusivo em lgica de polaridade traduz-se c c o pela tabela de verdade genrica da Tabela 7.12 para uma porta XOR com e 2 entradas.

7.6. EXERC ICIOS

139

Tabela 7.12: Tabela de verdade genrica para uma porta XOR com 2 entradas e
A I I A A B I A I A AB I A A I

a) Desenhe o s mbolo IEC desta porta que tenha as entradas activas a L e a sa activa a H. da b) Repita a al nea anterior para o caso de a entrada A ser activa a L, B ser activa a H e a sa ser activa a L. da c) Mostre que as portas das al neas a) e b) so sicamente apenas uma, a e ainda que so idnticas a um XOR com entradas activas a H e a sa a e da activa a H. () 7.4 Pretende-se implementar a funao booleana simples OU T = IN 1 + IN 2 c admitindo que: a) os n veis de actividade de IN 1, de IN 2 e de OU T so todos H; a b) IN 1 activa a L e IN 2 e OU T so activas a H; e a c) IN 1 e IN 2 so activas a L e OU T activa a H; a e d) IN 1 e IN 2 so activas a H e OU T activa a L. a e Estabelecer, para todos os casos, a tabela de verdade de OU T . () 7.5 Que funao ou funoes booleanas simples so geradas pelas portas lgicas c c a o da Figura 7.30?
IN1 H IN2 H (a)
1

OUT1 H

IN1 L IN2 H

OUT2 H

(b)

IN1 L IN2 H

OUT3 H

IN1 H IN2 H

OUT4 H

(c)

(d)

Figura 7.30: Logigramas do Exerc 7.5 cio () () 7.6 Dada a porta da Figura 7.31, determinar a expresso lgica da funao de a o c sa e construir a tabela de verdade f da sica correspondente. 7.7 Obter, em lgica HCT, os esquemas elctricos correspondentes aos logio e gramas dos Exerc cios 7.4 e 7.6. Para simplicar os esquemas, no incluir a os pinos dos circuitos integrados.

140
IN1 L IN2 L IN3 H

CAP ITULO 7. LOGICA DE POLARIDADE


1

OUT L

Figura 7.31: Logigrama da funo do Exerc 7.6 ca cio () 7.8 Pretende-se estabelecer o logigrama e a tabela de verdade f sica de uma funao booleana simples, ACT U AT E (IN 1, IN 2, SEL, DET ECT ), que c deve vir activada quando forem satisfeitas uma ou outra mas no ambas a as condioes que se descrevem a seguir: c 1. as entradas IN 1 ou IN 2 ou ambas esto activadas; a 2. as entradas SEL e DET ECT esto activadas. a Admitir: a) que IN 1, IN 2, SEL, DET ECT e ACT U AT E so todas activas a a H; b) que IN 1 e IN 2 so activas a H, e que SEL, DET ECT e ACT U AT E a so activas a L. a 7.9 So fornecidas as entradas A L, B H, C L e D H. Usando integrados a TTL, desenhe os esquemas elctricos das seguintes funes, e co a) Z = (A + B + C) (B + D); b) Z = (A + B + C) (C c) Z = A + B + C + D, admitindo que Z L. () 7.10 Pretende-se implementar um circuito lgico que acende uma luz sob coo mando dos terminais IN L e T OL L. A funao que vai permitir acender c a luz dever ser activa a L e ser comandada pelos seguintes sinais: a a (1) ligar a luz (T OL H); (2) inibir (IN L); (3) emergncia (EM ERG L); e e (4) a ocasio no adequada (T N R H). a a e A luz dever acender-se desde que a ocasio seja adequada, o comando de a a luz no seja inibido pela varivel IN , e seja dada uma ordem para ligar a a a luz. Se, contudo, se vericar uma emergncia, a luz dever acendere a -se, independentemente dos outros comandos. Desenhe um logigrama em lgica de polaridade para o circuito, e estabelea o correspondente esquema o c elctrico em lgica positiva. e o 7.11 Considere o circuito da Figura 7.32. Sabendo que as variveis IN T ERRU P T OR.ON e ACCAO1 esto actia a vadas, e que a linha DESLIGAR L est ao n H, a vel a) em que n de tenso est a linha CON DICAO H? Porqu? vel a a e b) a funao RESU LT ADO est ou no activa? Porqu? c a a e D);

7.6. EXERC ICIOS


INTERRUPTOR.ON L ACCAO1 H
& & 1 1

141

CONDICAO H

RESULTADO H

DESLIGAR L

Figura 7.32: Logigrama da funo do Exerc 7.11 ca cio 7.12 Projecte um circuito com 3 entradas onde so aplicadas as variveis booa a leanas simples ACCAO1, ACCAO2 e ACCAO3, e uma sa onde vem da gerada a funao booleana simples RESU LT ADO. RESU LT ADO dever c a estar activa quando ACCAO1 estiver activa e uma e s uma das outras o duas variveis estiver activa, ou quando apenas ACCAO3 estiver activa. a ACCAO2 activa a H, enquanto que as outras duas variveis e a funao e a c so activas a L. a 7.13 So dados A L, B H, C L e D H. Utilizando os circuitos integrados a existentes na lgica HCT (positiva) desenhe os esquemas elctricos das o e seguintes funoes, estabelecendo o paralelo entre esses esquemas e os logic gramas que obtm em lgica de polaridade directamente das expresses e o o das funoes Z, (com Z H). c a) Z = (A + D) (B + C) ; b) Z = A B C + B D ; c) repita as al neas a) e b) para o caso de ser Z L. 7.14 Considere o circuito com o logigrama da Figura 7.33.
SENSOR.ACTIVO L ACCAO.INIBIDA H
1 &

ERRO.POTENCIAL L

X
&

ALERTA.ACTIVO L

ALARME L

POSTO.OCUPADO H

Figura 7.33: Logigrama da funo do Exerc 7.14 ca cio Supondo que as variveis SEN SOR.ACT IV O e ACCAO.IN IBIDA esto a a activas, e que a linha P OST O.OCU P ADO H est no n L, indique, a vel justicando: a) se a varivel ERRO.P OT EN CIAL est activa ou inactiva; a a b) em que n est a linha ALARM E L; vel a c) estabelea uma designaao razovel (com contedo semntico) para a c c a u a linha marcada com um X. 7.15 Projecte o circuito combinatrio de controlo de um elevador entre dois o pisos. O circuito possui as seguintes entradas: (1) ELEV.N O.P ISO.IN F ERIOR L;

142

CAP ITULO 7. LOGICA DE POLARIDADE (2) ELEV.N O.P ISO.SU P ERIOR L; (3) ELEV.A.SU BIR H; (4) ELEV.A.DESCER H; (5) P EDIDO.DE.SU BIDA L; (6) P EDIDO.DE.DESCIDA L; e (7) P ORT A.ABERT A H, e as seguintes sa das: (a) M ARCHA.ASCEN DEN T E H; (b) M ARCHA.DESCEN DEN T E H; (c) P ORT A.SU P.BLOQU EADA L; e (d) P ORT A.IN F.BLOQU EADA L.

7.16 E dado o logigrama da Figura 7.34.


IN1 H IN2 L
&

IN3 L

OUT H

IN4 L

Figura 7.34: Logigrama utilizado no Exerc 7.16 cio Determine a expresso booleana da funao OU T (IN 1, IN 2, IN 3, IN 4). a c () 7.17 Considere os logigramas da Figura 7.35, todos semelhantes. Estabelea c as tabelas de verdade f sicas para as trs funoes, e deduza directamente e c as suas expresses lgicas a partir das tabelas. Em seguida, conrme as o o expresses analisando os logigramas correspondentes. o

7.6. EXERC ICIOS

143

X H
& 1

Y L a)
1 & 1

A L

Z L

X H
& 1

Y L b)
1 & 1

B H

Z L

X H
& 1

Y L c)
1 & 1

C L

Z L

Figura 7.35: Logigramas utilizados no Exerc 7.17 cio

144

CAP ITULO 7. LOGICA DE POLARIDADE

Cap tulo 8

Anlise e S a ntese de Circuitos Combinatrios o


8.1 Enquadramento

As matrias anteriores s tm interesse na medida em que permitem gerar recure o e sos e metodologias para resolver problemas concretos reais de automatizaao, c de clculo, de monitorizao ou outros em que os circuitos digitais possam ser a ca utilizados. Os circuitos digitais so de dois tipos: combinatrios e sequenciais. Ambos a o possuem um conjunto de entradas por onde os dados so introduzidos no cira cuito, e um outro de saidas onde so reectidos os resultados do processamento a realizado. Os circuitos combinatrios so aqueles que permitem prever os valores lgicos (ou o a o n veis de tenso) das sa a das num determinado instante em funao da combinaao c c de valores lgicos (n o veis) nas entradas do circuito no mesmo instante. So os a que nos vo ocupar de imediato. Os circuitos sequenciais so circuitos em que os a a valores (n veis) das sa das num determinado instante no depende apenas dos a valores (n veis) das entradas nesse instante, mas tambm da sequncia desses e e valores (n veis) ao longo do tempo. Vamos analisar, para j, os circuitos combinatrios. a o Este tipo de circuitos pode ser descrito por um modelo como o que se apresenta na Figura 8.1, em que existem n entradas, p sa das e um conjunto de p funoes c booleanas simples de, no limite, n variveis booleanas simples correspondentes a a `s entradas. Do ponto de vista sico, o circuito constitu por um conjunto de portas e e do pelas suas interligaoes, que implementam as p funoes. c c 145
Circuito combinatrio o

Circuito sequencial

146

CAP ITULO 8. ANALISE E S INTESE COMBINATORIA


1 2 3 n1 n 1 2 3 p1 p

n entradas

Circuito combinatrio o

p sa das

Figura 8.1: Modelo de circuito combinatrio o

8.2

Anlise de Circuitos Combinatrios a o

Basicamente, a anlise de um circuito combinatrio feita a partir do seu logia o e grama ou esquema elctrico, e pode ser executada de duas formas: (i) ou se e levantam as equaoess das sa c das do circuito; (ii) ou se escreve a tabela de verdade do circuito. Como evidente, as duas formas no so conceptualmente diferentes, mas utie a a lizam ferramentas diferentes. No caso de derivaao da equaao do circuito, o que h a fazer : c c a e criar nomes para todas as funoes nas sa c das de portas que dependem apenas das entradas, e determinar as suas expresses em funao das variveis de o c a entrada; repetir o processo para as portas que dependem das portas j tratadas e das a variveis de entradas; a aplicar sucessivamente o passo anterior at se terem determinado todas as e funoes de sa c da. Exemplique-se com o circuito da Figura 8.2.
A H
1

T3 H

B H C H
1

B H

&

T1 H
1

F1 H

A H

&

T2 H
=1

T4 H

D H
1

T5 H

F2 H

Figura 8.2: Logigrama de um circuito combinatrio onde se identicam as o funoes T1 a T5 nas sa c das das portas lgicas que interessa analisar para a o obtenao das equaoes de sa do circuito c c da

8.2. ANALISE DE CIRCUITOS COMBINATORIOS Aps identicaao das sa o c das dos dois ANDs obtemos: T1 = B C T2 = A B .

147

Seguidamente procede-se ` identicao das sa a ca das das portas do segundo n vel, obtendo-se: T3 = A + T1 = A + B C T4 = T2 D = (A B) D = A B D + A D + B D T5 = T2 + D = A B + D . As funoes de sa so, portanto, c da a F 1 = T3 + T4 = A + B C + A B D + A D + B D = A+BC +BD+BD F 2 = T5 = A B + D Para se obter a tabela de verdade f sica do circuito, podemos utilizar o procedimento que foi usado na Subseco 7.3.2, a propsito da construao da Tabela 7.8: ca o c procedendo linha a linha (o que pode tornar morosa a sua construo), ou proceca dendo globalmente em relaao ` tabela toda. c a Contudo, quando o logigrama relativamente complexo, util construir a tabela e e de verdade f sica aos poucos, a partir das tabelas de funoes intermdias (de c e maneira anloga ` que foi usada para determinar as expresses booleanas das a a o funoes nas sa c das do logigrama anterior). Para exemplicar esta metodologia, consideremos o logigrama da Figura 8.3.
X H Y H Z H
&

T1 H

T2 H
1

&

T3 H

&

S H

T6 H C H

&

T4 H

C H

&

T5 H

Figura 8.3: Logigrama de outro circuito combinatrio onde se identicam as o sa das T1 a T6 das portas lgicas que interessa analisar para a obtenao da o c tabela de verdade f sica do circuito

148

CAP ITULO 8. ANALISE E S INTESE COMBINATORIA

Tabela 8.1: Construao da tabela de verdade f c sica do circuito com o logigrama na Figura 8.3, com a construo de tabelas para as funoes intermdias ca c e
X H Y H Z H L L L L H H H H L L H H L L H H L H L H L H L H T3 H L L L L L L H H T4 H L L L L L H L H T5 H L L L H L L L H C H L L L H L H H H C H H H H L H L L L T1 H L L L L L L L H T2 H L H H H H H H H T6 H L H H L H L L L S H L H H L H L L H

A tabela de verdade f sica do circuito pode obter-se imediatamente (Tabela 8.1). Por exemplo, a funao T1 vem activa (a H) apenas quando as variveis X, Y e c a Z estiverem activas (todas a H), o que apenas ocorre na ultima linha da tabela. Ou, tomando ainda outro exemplo, para que a funao nal C venha activa (a c H) basta que uma das funoes intermdias, T3 , T4 ou T5 esteja activa (a H). Por c e seu turno, T3 vem activa quando X e Y esto activas (linhas 6 e 7); a T4 vem activa quando X e Z esto activas (linhas 5 e 7); e a T5 vem activa quando Y e Z esto activas (linhas 3 e 7), a pelo que C ca activa nas linhas 3, 5, 6 e 7.

8.3

Projecto de Circuitos Combinatrios o

Para realizar o projecto de um circuito combinatrio poss o e vel atacar o problema na sua complexidade total, mas o mais comum dividir o problema em e problemas mais simples, concebendo o circuito como um conjunto de mdulos o de menor complexidade, devidamente interligados. Seguidamente analisa-se cada um dos mdulos e, se ele j sucientemente o e e simples para ser projectado com as ferramentas que temos, projecta-se. Se isso no acontece, continua a diviso em mdulos mais simples. a a o Um dos conceitos importantes , portanto, o de hierarquia de projecto, partindo e da descriao mais abstracta do circuito atravs de um modelo semelhante ao c e do da Figura 8.1, para mdulos de menor complexidade, e assim por diante at o e chegar `s portas lgicas. a o Exempliquemos com um circuito detector de paridade mpar com 9 entradas e 1 sa da, supostas todas activas a H, com o diagrama de blocos da Figura 8.4.

8.3. PROJECTO DE CIRCUITOS COMBINATORIOS


X0 X1 X2 X3 X4 X5 X6 X7 X8 H H H H H H H H H

149

Detector de paridade mpar com 9 entradas

Z0 H

Figura 8.4: Diagrama de blocos de um detector de paridade mpar com 9 entradas e 1 sa da, todas activas a H Este circuito recebe 9 bits nas entradas e produz um resultado igual a 1 se e s o se o nmero de bits a 1 nas entradas for u mpar. A sua utilidade a de detectar e erros de transmisso de dados com 9 bits em paralelo, garantindo que os dados a transmitidos possuem paridade par (a sa vem activa se houver algum bit da trocado). Podemos calcular a funao Z0 de 9 variveis e implementar o circuito corresponc a dente, mas tal seria uma tarefa de enorme complexidade. Assim, prefer e vel dividir o problema em problemas menores, por exemplo em 3 detectores de paridade mpar, apenas com 3 entradas. Obtm-se, assim, o diagrama de blocos da Figura 8.5. e
X0 H X1 H X2 H
A0 A1 A2

Detector de paridade mpar B0 com 3 entradas

X3 H X4 H X5 H

A0 A1 A2

Detector de paridade mpar B0 com 3 entradas

A0 A1 A2

Detector de paridade mpar B0 com 3 entradas

Z0 H

X6 H X7 H X8 H

A0 A1 A2

Detector de paridade mpar B0 com 3 entradas

Figura 8.5: Diagrama de blocos de um detector de paridade mpar com 9 entradas, constru com 3 detectores de paridade do mpar com 3 entradas cada um Seguidamente pensa-se na constituio de cada um dos blocos (Figura 8.6). ca
A0 H A1 H A2 H
=1 =1

B0 H

Figura 8.6: Logigrama de um detector de paridade mpar com 3 entradas activas a H e sa activa a H da

150

CAP ITULO 8. ANALISE E S INTESE COMBINATORIA

Por m, podem usar-se portas XOR ou, em vez delas, portas de outro tipo. Por exemplo, o XOR pode ser implementado pelo circuito com NANDs (em lgica o positiva) da Figura 8.7.
X H
& & & &

(XY) H

Y H

Figura 8.7: Logigrama de implementaao de um XOR com 2 entradas, feito ` c a custa de NANDs (em lgica positiva) o A hierarquia de projecto que foi ilustrada feita com base num sistema que e utiliza vrios mdulos iguais. Mas nem sempre poss proceder desse modo. a o e vel Por exemplo, se se pretender obter um circuito combinatrio que adiciona ou o multiplica dois nmeros de 4 bits, podemos ter como primeira desagregaao do u c modelo inicial algo como se ilustra na Figura 8.8.
Operando 1 Operando 2

Somador

Multiplicador

Selecao c da operao ca

Selector

Resultado

Figura 8.8: Diagrama de blocos de um adicionador/multiplicador de dois nmeros de 4 bits u As vantagens de utilizaao deste tipo de procedimento com hierarquizao so: c ca a melhor concepao estrutural e visualizao da estrutura do circuito; c ca em cada n vel, h abstracao em relaao aos pormenores dos n a c c veis inferiores; replicaao de mdulos com reutilizaao. c o c

8.4. S INTESE DE CIRCUITOS COMBINATORIOS

151

Idealmente, o projecto deveria ser feito segundo uma aproximaao top-down. c No entanto, muitas vezes h condicionalismos em relaao aos mdulos que a c o podemos usar em n veis inferiores, o que leva a que muitas vezes se combine ou at se substitua a estratgia top-down por uma estratgia bottom-up. e e e

Projecto top-down Projecto bottom-up

8.4

S ntese de Circuitos Combinatrios o

Admitindo que as regras de projecto j apresentadas foram utilizadas, os cira cuitos combinatrios que se apresentam so, naturalmente, de pequena dio a menso. Nessas circunstancias o que h a fazer : a a e denir o nmero de entradas e sa u das e atribuir-lhes nomes; obter a tabela de verdade para cada sa ou, em alternativa, obter as suas da expresses lgicas; o o obter as expresses lgicas simplicadas das funes de sa o o co da; desenhar o logigrama do circuito, fazendo eventualmente adaptaoes para c minimizar o nmero de circuitos integrados a utilizar; u vericar a correcao do projecto; e c desenhar o esquema elctrico do circuito. e O primeiro ponto deve ser evidente nesta fase do projecto. Ao obter a tabela de verdade de uma funao frequente descobrir que aquilo c e que era evidente no est completamente esclarecido e necessita de mais proa a funda anlise sobre o comportamento pretendido do circuito em circunstncias a a marginais. A simplicaao pode ser feita de qualquer forma, desde a simplicaao algbrica c c e a ` simplicaao utilizando pacotes de software adequados, passando pela mic nimizaao usando quadros de Karnaugh. c O desenho do logigrama e do esquema elctrico pode ser feito usando um softe ware adequado (schematic capture) ou, simplesmente, ` mo. Convm usar a a e a experincia acumulada para minimizar o nmero de integrados a utilizar. e u A vericaao de correcao pode ser feita manualmente ou utilizando pacotes de c c software destinados ` simulaao de circuitos. De qualquer forma, sempre a c e necessrio vericar no m, com um circuito real, se tudo funciona como previsto. a H pormenores que escapam a algum do software de simulaao comumente a c utilizado. Como exemplo, consideremos o projecto de um circuito de converso entre um a d gito BCD e o d gito correspondente no cdigo Excesso de 3 (ou cdigo D+3). O o o cdigo Excesso-3 no j muito utilizado mas, no passado, facilitou a realizaao o a e a c de certos circuitos aritmticos. Trata-se de um cdigo decimal-binrio e, como e o a tal, possui 10 palavras, numeradas de 0 a 9. A sua construo resulta da do ca cdigo BCD adicionando 3 unidades a cada palavra homloga desse cdigo (da o o o a designaao Excesso-3). Vejamos na Tabela 8.2 o cdigo D + 3. c o
Cdigo Excesso de 3 o (D + 3)

152

CAP ITULO 8. ANALISE E S INTESE COMBINATORIA Tabela 8.2: Cdigo Excesso-3 (ou D + 3) o
D gito 0 1 2 3 4 5 6 7 8 9 Cdigo o 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100

Para implementar este circuito precisamos de uma lgica com 4 entradas (por o onde se apresentam as palavras do cdigo BCD) e 4 sa o das (onde so devolvidas a as palavras no cdigo Excesso-3). As entradas sero designadas, por exemplo, o a por A, B, C e D, sendo A a mais signicativa, e as sa das por W, X, Y e Z, sendo W a mais signicativa (diagrama de blocos na Figura 8.9).

A B C D

H H H H

Conversor BCD D+3

W X Y Z

H H H H

Figura 8.9: Diagrama de blocos de um conversor do cdigo BCD para o cdigo o o D+3 A converso entre os dois cdigos ser, ento, a que se ilustra na tabela de a o a a verdade lgica da Tabela 8.3. o Para obter agora as funoes de sa c da, usaremos quadros de Karnaugh, tendo em consideraao que as posioes dos mapas que no correspondem a d c c a gitos BCD so indiferenas (Figura 8.10). a c Dos quadros de Karnaugh poss ler: e vel W = A+BC +BD X = BC+BD+BCD Y = CD+CD Z=D A anlise destas funoes mostra que poss construir o circuito na tecnologia a c e vel Low Power Schottky TTL usando:

8.4. S INTESE DE CIRCUITOS COMBINATORIOS

153

Tabela 8.3: Tabela de verdade lgica do conversor do cdigo BCD para o cdigo o o o Excesso-3
D gito 0 1 2 3 4 5 6 7 8 9 Cdigo BCD o B C D 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 Cdigo D+3 o W X Y Z 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0

A 0 0 0 0 0 0 0 0 1 1

CD AB
0

CD 00
1

01
3

11
2

10

AB
0

00
1

01
3

11
2

10 1
6

00
4 5 7 6

00
4 5

1
7

01
12

1 1
13

1
15

1
14

01
12

1
13

11
8

11
8

15

14

11

10

11

10

10

10

W CD AB
0

X CD

00
1

01
3

11
2

10

AB
0

00
1

01
3

11
2

10 1

00
4

1
5 7

1
6

00
4

1
5 7 6

01
12

1 1 Y
13

1
15

01
14

1
12

1
13

11
8

11
8

15

14

11

10

11

10

10

10

Figura 8.10: Minimizaao das funoes de sa do conversor BCD D + 3 c c da 3 NOTs 6 ANDs de 2 entradas 1 AND de 3 entradas 2 ORs de 3 entradas 1 OR de 2 entradas 1 IC de negaoes (74LS04) usado a 50% c 2 ICs de ANDs de 2 entradas (74LS08), com o segundo IC usado a 50% 1 IC de ANDs de 3 entradas (74LS11) usado a 33% que no existem e teriam de ser implementados a por ORs de 2 entradas 2 ICs em conjunto com os anteriores (74LS32), com o segundo usado a 25%.

154

CAP ITULO 8. ANALISE E S INTESE COMBINATORIA

Manipulando um pouco a expresso, e ` custa de construir um circuito mais a a lento (e de alguma experincia), poss obter o seguinte circuito, que utiliza e e vel apenas 1 IC de ANDs de 2 entradas (74LS08) a 25%, 1 IC de ORs de 2 entradas (74LS32) a 50%, e 1 IC de XORs (74LS86) a 75%, como se mostra no esquema elctrico simplicado da Figura 8.11 (sem a indicaao dos pinos dos integrados). e c
A H B H U1-1 1/4 74LS32 C H D H U3-2 1/4 74LS86
=1 1

U2-1 1/4 74LS08


&

U1-2 1/4 74LS32


1

W H

X H

U3-1 1/4 74LS86


=1

U3-3 1/4 74LS86


=1

D H

Y H Z H

Figura 8.11: Esquema elctrico do conversor BCD D + 3 e Para se obter este esquema elctrico repare-se que: e 1. combinmos as expresses de W e de X para aproveitar um OR em comum a o e usar um XOR: W = A + B (C + D) X = B (C + D) + B C D = B (C + D) ; 2. construimos a funao Y com outro XOR (usmos D, uma vez que j era c a a necessrio para formar Z): a Y =CD+CD =C D = C D = C D;

3. usmos um XOR para fazer a negaao: a c Z = D = D 1.

8.5

Referncias Bibliogrcas e a

Mano, Morris M., and Kime, Charles R. Logic and Computer Design Fundamentals, 2nd ed., Prentice Hall International, Inc., New Jersey, USA, 2000, Secoes 3.1 a 3.4. c

8.6. EXERC ICIOS

155

8.6

Exerc cios

Nota: os exerc cios identicados com um asterisco () esto resolvidos em a SD:ER. 8.1 Porque que o detector de paridade e mpar com 9 entradas da Figura 8.4 pode ser dividido em 3 detectores de paridade mpar com 3 entradas, como mostra o diagrama de blocos da Figura 8.5? 8.2 Justique que o circuito da Figura 8.7 implementa de facto um XOR com 2 entradas. 8.3 Dado um nmero com 8 bits, N U M 7 H a N U M 0 H, desenhar o diau grama de blocos de um circuito combinatrio que gera o seu complemento o para 2. 8.4 Desenhar o logigrama de um circuito combinatrio com trs entradas, o e X2 H a X0 H, e trs sa e das, Y 2 H a Y 0 H (que representam nmeros u decimais entre 0 e 7), por forma a que o circuito calcule o valor de Y = =(3X) mod 8.

156

CAP ITULO 8. ANALISE E S INTESE COMBINATORIA

Cap tulo 9

Codicadores e Descodicadores
No projecto de circuitos digitais, como vimos, habitual dividir os projectos, e organizando-os hierarquicamente e realizando-os a partir de mdulos de como plexidade inferior ao problema que se quer resolver. Neste cap tulo e nos seguintes estudaremos alguns mdulos t o picos que so rea -utilizados com frequncia no projecto de sistemas digitais e que correspondem e tambm a circuitos integrados existentes no mercado. e

9.1

Descodicadores
Denio de ca descodicador

Um descodicador um circuito que permite obter, a partir de um conjunto e de bits que constituem uma palavra de um determinado cdigo, a identicaao o c dessa palavra. Para isso, o descodicador tem tantas sa das quanto o nmero u de palavras de cdigo, e activa, em cada momento, a sa correspondente ` o da a palavra de cdigo presente nas entradas. o Por exemplo um descodicador binrio de n bits possuiu n entradas onde so a a aplicadas palavras do CBN (Cdigo Binrio Natural) de comprimento n, desde o a 00 . . . 0 at 11 . . . 1. Este descodicador tem ainda 2n sa e das, numeradas de 0 a 2n 1, sendo que uma e apenas uma pode vir activa de cada vez. Em termos de funcionamento, um descodicador binrio de 3 bits pode ser a descrito pela tabela de verdade lgica da Tabela 9.1, em que Si a sa correo e da spondente ` palavra i do cdigo. a o

Descodicador binrio a

O s mbolo deste circuito, de acordo com a norma IEC 60617-12, o que se e representa na Figura 9.1(a), admitindo que todas as entradas e todas as sa das so activas a H. Na Figura 9.1(b) representa-se o mesmo descodicador e ainda a 3 variveis booleanas simples aplicadas `s entradas e 8 funoes booleanas sima a c ples geradas nas sa das, com designaoes arbitrrias e sem contedo semntico c a u a signicativo. De notar o qualicador geral BIN/1-OF-8 atribu ao s do mbolo (em alternativa pod amos usar o qualicador geral BIN/OCT), signicando que aplicamos `s a 157

Qualicador geral BIN/1-OF-8 ou BIN/OCT

158

CAP ITULO 9. CODIFICADORES E DESCODIFICADORES

Tabela 9.1: Tabela de verdade lgica de um descodicador binrio de 3 bits o a


Palavra 000 001 010 011 100 101 110 111 S0 1 0 0 0 0 0 0 0 S1 0 1 0 0 0 0 0 0 S2 0 0 1 0 0 0 0 0 S3 0 0 0 1 0 0 0 0 S4 0 0 0 0 1 0 0 0 S5 0 0 0 0 0 1 0 0 S6 0 0 0 0 0 0 1 0 S7 0 0 0 0 0 0 0 1

BIN/1-OF-8 0 1 2 3 4 5 6 7 (a)

BIN/1-OF-8 0 1 2 3 4 5 6 7 (b) OUT0 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 H H H H H H H H

1 2 4

INC H INB H INA H

1 2 4

Figura 9.1: (a) S mbolo de um descodicador binrio de 3 bits com todas as a entradas e sa das activas a H, de acordo com a norma IEC 60617-12; (b) o mesmo descodicador com 3 variveis booleanas simples aplicadas `s entradas a a (com designaes arbitrrias, sem contedo semntico), e poss co a u a veis designaes co para as funes booleanas simples de sa que so geradas pelo circuito co da a entradas palavras do CBN e que obtemos nas sa das palavras de um cdigo o especial, da fam dos cdigos 1emn (no caso, do cdigo 1em8), em que lia o o em cada palavra com 8 bits apenas existe um 1 (no caso do descodicador, apenas uma sa est activa de cada vez). da a
Pesos das entradas

De notar ainda os pesos relativos das entradas do s mbolo da Figura 9.1: a entrada 4 tem peso 4; a entrada 2 tem peso 2; e a entrada 1 tem peso 1,

Sa activa da

e o modo como uma e apenas uma sa vem activa de cada vez: da a funao OU T 0 deve vir activa, a H, se e s se a palavra do cdigo de entrada c o o for (IN A, IN B, IN C)=(L,L,L), ou 0 em decimal;

9.1. DESCODIFICADORES

159

a funao OU T 1 deve vir activa, a H, se e s se a palavra do cdigo de entrada c o o for (IN A, IN B, IN C)=(L,L,H), ou 1 em decimal; a funao OU T 2 deve vir activa, a H, se e s se a palavra do cdigo de entrada c o o for (IN A, IN B, IN C)=(L,H,L), ou 2 em decimal; etc, a funao OU T 7 deve vir activa, a H, se e s se a palavra do cdigo de entrada c o o for (IN A, IN B, IN C)=(H,H,H), ou 7 em decimal. Ou seja, para determinar a sa que est activa em cada instante, somamos da a os pesos das entradas que esto activas nesse instante. Por exemplo, a sa a da OU T 3 vem activa quando (IN A, IN B, IN C)=(L,H,H) porque a entrada IN B est activa e possui peso 2 e a entrada IN C tambm est activa e possui peso a e a 1 (a soma dos pesos igual a 3). e Podemos, ento, deduzir a tabela de verdade f a sica para este descodicador, como se ilustra na Tabela 9.2. De notar como uma e s uma sa vem activa o da de cada vez, como pretendemos. Tabela 9.2: Tabela de verdade f sica do descodicador binrio da Figura 9.1 a
IN B H L L H H L L H H OUT 4 H 3 H L L L L H L L L L L L H L L L L

A H L L L L H H H H

C H L H L H L H L H

7 H L L L L L L L H

6 H L L L L L L H L

5 H L L L L L H L L

2 H L L H L L L L L

1 H L H L L L L L L

0 H H L L L L L L L

Da tabela de verdade f sica do circuito fcil obter a sua estrutura interna e a (Figura 9.2). De notar que o s mbolo utilizado na parte direita da gura um e s mbolo composto. Para alm deste tipo de descodicadores (binrios de n bits), existem ainda e a descodicadores espec cos para certos cdigos, como por exemplo o cdigo o o BCD. Esse tipo, em particular, tem 4 entradas e 10 sa das, como mostra o s mbolo IEC da Figura 9.3, e designa-se por descodicador BCD. De notar o qualicador geral BCD/DEC atribu ao s do mbolo (em alternativa pod amos usar o qualicador geral BCD/1-OF-10), signicando que aplicamos a `s entradas palavras do cdigo BCD e que obtemos nas sa o das palavras do cdigo o 1em10, em que em cada palavra com 10 bits apenas existe um 1 (no caso do descodicador, apenas uma sa est activa de cada vez). da a muito frequente que os descodicadores tenham as suas sa E das activas a L. Nessas circunstncias, as portas de sa so NANDs em vez de ANDs (em lgica a da a o positiva), e a sa activa passa a ser a que est, de cada vez, a L. O s da a mbolo IEC de um descodicador binrio de 3 bits, semelhante ao da Figura 9.1 mas a com sa das activas a L, ser o que se representa na Figura 9.4. a

S mbolo composto

Descodicador BCD

Qualicador geral BCD/1-OF-10 ou BCD/DEC

160

CAP ITULO 9. CODIFICADORES E DESCODIFICADORES


1

4 H
1

2 H
1

&

0 H 1 H 2 H 3 H 4 H 5 H 6 H 7 H

1 H

Figura 9.2: Estrutura interna do descodicador binrio da Figura 9.1 a


BCD/DEC 0 1 2 3 4 5 6 7 8 9

1 2 4 8

Figura 9.3: S mbolo de um descodicador BCD com entradas e sa das activas a H, de acordo com a norma IEC 60617-12

9.1.1

Expanso de descodicadores a

Muitas vezes os descodicadores que existem no mercado no tm o nmero a e u de entradas (e de sa das) que so necessrias para descodicar um determinado a a cdigo. E, por isso, necessrio expandi-los. o a
Entrada de Enable Dependncia de Enable e (EN)

Para isso, muitos tm uma entrada de Enable, geralmente designada por EN, e que congura uma dependncia de Enable (EN). Esta entrada, quando activada, e permite que o descodicador funcione normalmente. Quer isso dizer que, nessas condioes, existe sempre uma, mas apenas uma, sa seleccionada. c da Se, pelo contrrio, EN estiver desactivada, as sa a das vm desactivadas em bloco. e Assim, se as sa das forem activas a H, elas viro todas a L. E se forem activas a a L, elas viro todas a H. No caso de as sa a das serem do tipo tri-state, a

9.1. DESCODIFICADORES
BIN/1-OF-8 0 1 2 3 4 5 6 7

161

1 2 4

Figura 9.4: S mbolo de um descodicador binrio de 3 bits, com entradas activas a a H e sa das activas a L, de acordo com a norma IEC 60617-12 desactivaao de EN signica que todas as sa c das cam em alta impedncia. a
BIN/1-OF-8 0 1 2 3 4 5 6 7 OUT0 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 L L L L L L L L

EN L

EN

INC H INB H INA H

1 2 4

Figura 9.5: S mbolo IEC de um descodicador binrio de 3 bits com entradas a de dados activas a H e entrada de Enable activa a L, e com sa das tri-state activas a L. Ao s mbolo adicionaram-se designaoes com contedo semntico c u a para as entradas e sa das Na Figura 9.5 apresenta-se o s mbolo IEC de um descodicador binrio de 3 a bits com Enable e sa das tri-state activas a L, e na Tabela 9.3 mostra-se a correspondente tabela de verdade f sica. Usando descodicadores com Enable podemos construir descodicadores de n entradas com descodicadores menores. Exemplica-se na Figura 9.6 com um descodicador binrio de 4 bits que utiliza descodicadores binrios de 2 a a bits. Naturalmente, os n veis de actividade nas entradas e nas sa das dos descodicadores de 2 bits foram escolhidos arbitrariamente. Contudo, as entradas de Enable devem ter o mesmo nvel de actividade das sa das, caso contrrio a ter amos de colocar portas NOT entre as sa das do descodicador da esquerda e as entradas de Enable dos descodicadores da direita.

9.1.2

Utilizao de descodicadores na implementaao de ca c funes lgicas co o


Gerador de mintermos

Repare-se que um descodicador implementa todos os mintermos das variveis a de entrada. Assim sendo, deve ser poss usar o descodicador para implemenvel

162

CAP ITULO 9. CODIFICADORES E DESCODIFICADORES

Tabela 9.3: Tabela de verdade f sica do descodicador binrio da Figura 9.5 a


IN B H L L H H L L H H OUT 4 L 3 L Hi-Z H H H H L H H H Hi-Z H H H L H H H H

A H L L L L H H H H

C H L H L H L H L H

EN L H L L L L L L L L

7 L Hi-Z H H H H H H H L

6 L Hi-Z H H H H H H L H

5 L Hi-Z H H H H H L H H

2 L Hi-Z H H L H H H H H

1 L Hi-Z H L H H H H H H

0 L Hi-Z L H H H H H H H

BIN/1-OF-4 ENABLE L 4 H 8 H EN 1 2 0 1 2 3

BIN/1-OF-4 EN 1 2 0 1 2 3 0 1 2 3 L L L L

BIN/1-OF-4 EN 1 2 0 1 2 3 4 5 6 7 L L L L

BIN/1-OF-4 EN 1 2 0 1 2 3 8 L 9 L 10 L 11 L

BIN/1-OF-4 EN 1 H 2 H 1 2 0 1 2 3 12 13 14 15 L L L L

Figura 9.6: Logigrama com a estrutura de um descodicador binrio de 4 bits a com Enable, constru com descodicadores binrios de 2 bits do a tar funoes na forma de uma soma de mintermos (ou seja, em primeira forma c cannica), com auxilio de portas OR, como bvio. o eo

9.2. CODIFICADORES

163

Na Figura 9.7 ilustra-se o logigrama de um circuito usando esse princ pio, que implementa a funao lgica F (a, b, c) = m(0, 2, 3, 5). c o
BIN/1-OF-8 m0 H 0 1 m2 H 2 m3 H 3 4 m5 H 5 6 7

c H b H a H

1 2 4

F H

Figura 9.7: Implementaao da funao booleana simples F (a, b, c) = c c = m(0, 2, 3, 5) que utiliza um descodicador binrio de 3 bits e uma porta a OR com entradas e sa activas a H da De salientar a geraao dos mintermos m0 a m7 da funao F (a, b, c) nas sa c c das do descodicador, todos activos a H. Como se pretende construir o logigrama da primeira forma cannica da funao, isto , uma soma de mintermos, vamos o c e necessitar de uma porta OR com entradas activas a H. No caso em que se pretende obter F H (como escolhemos fazer, mas pod amos ter tomado a opao c de obter F L), a sa da porta tambm deve ser activa a H. da e

9.2

Codicadores
Codicador

Um circuito com funcionamento algo inverso o codicador, com tantas entradas e quantas as palavras do cdigo 1-em-n e com tantas sa o das quanto o nmero de u bits da palavra do cdigo de sa o da. Ou seja, um codicador um circuito que e converte palavras do cdigo 1-em-n na entrada para palavras de um cdigo o o arbitrrio na sa a da. O problema maior com o codicador que acabmos de denir est na descriao a a c do seu comportamento quando mais que uma entrada est activa, ou seja, a quando deixamos de ter ` entrada palavras do cdigo 1-em-n. De facto, nessas a o circunstancias no e bvio o que fazer, uma vez que na sa s pode estar a o da o presente uma das palavras do cdigo. o A soluao clssica consiste em atribuir prioridades `s entradas e codicar a c a a entrada mais prioritria. Obtm-se, ento, um circuito que se designa habituala e a mente por codicador de prioridades, embora uma designaao mais correcta seja c a de transcodicador. Assim, para um codicador de prioridades com sa das no cdigo BCD, em que o se opta por dar `s entradas com maior peso a maior prioridade, teremos a tabela a de verdade f sica da Tabela 9.4 admitindo que as entradas e as sa das so todas a activas a H. Repare-se que tambm necessrio ter uma sa que indique se h alguma e e a da a entrada a 1, para poder distinguir a situao em que no est nenhuma entrada ca a a a 1 da situao em que a entrada menos prioritria, I0, est a 1. ca a a

Codicador de prioridades Transcodicador

164

CAP ITULO 9. CODIFICADORES E DESCODIFICADORES

Tabela 9.4: Tabela de verdade f sica de um codicador de prioridades com sa das no cdigo BCD, em que a entrada I9 a mais prioritria o e a
I0 H I1 H I2 H I3 H I4 H I5 H I6 H I7 H I8 H I9 H L H L L H L L L H L L L L H L L L L L H L L L L L L H L L L L L L L H L L L L L L L L H L L L L L L L L L H L L L L L L L L L L H BCD LLLL LLLH LLHL LLHH LHLL LHLH LHHL LHHH HLLL HLLH Val H L H H H H H H H H H H

9.3

Referncias Bibliogrcas e a

Mano, Morris M., and Kime, Charles R. Logic and Computer Design Fundamentals, 2nd ed., Prentice Hall International, Inc., New Jersey, USA, 2000, Secoes 3.5 a 3.8, 3.10 e 3.12. c

9.4

Exerc cios

Nota: os exerc cios identicados com um asterisco () esto resolvidos em a SD:ER. () 9.1 Na parte (a) da Figura 9.8 apresenta-se um descodicador binrio de 3 a bits com entradas activas a H, enquanto que na parte (b) se apresenta um outro descodicador, em tudo idntico ao anterior excepto pelas entradas, e que so agora activa a L. Se a estes descodicadores se aplicar `s entradas a a a quantidade booleana geral (IN A, IN B, IN C) = (H,L,L), qual a sa e da que vem activa nos dois casos? Porqu? e 9.2 Estabelecer o s mbolo IEC, a tabela de verdade f sica e o logigrama interno de um descodicador binrio de 4 bits com entradas activas a L e sa a das activas a H. Qual o fan-in de cada uma das entradas? Como faria para melhorar a situaao? c () 9.3 Escrever a tabela de verdade f sica do descodicador BCD da Figura 9.3. 9.4 Como ser o s a mbolo IEC de um descodicador BCD com sa das activas a L? E com entradas activas a L? 9.5 Construa um logigrama com a estrutura interna de um descodicador BCD com sa das activas a L.

9.4. EXERC ICIOS


BIN/1-OF-8 0 1 2 3 4 5 6 7 (a) BIN/1-OF-8 0 1 2 3 4 5 6 7 (b)

165

INC H INB H INA H

1 2 4

INC H INB H INA H

1 2 4

Figura 9.8: (a) S mbolo IEC de um descodicador binrio de 3 bits com entradas a activas a H; e (b) s mbolo de um descodicador idntico, mas com entradas e activas a L () 9.6 Como ser o s a mbolo IEC do descodicador expandido da Figura 9.6? 9.7 Construa um descodicador binrio de 4 bits com Enable, ` custa de a a descodicadores binrios de 3 bits. a 9.8 Construa um descodicador binrio de 5 bits com Enable, ` custa de a a descodicadores binrios de 4 bits. Como ser o s a a mbolo IEC deste descodicador? 9.9 Construa um descodicador binrio de 5 bits com Enable, ` custa de a a descodicadores binrios de 3 bits. a 9.10 Utilizando descodicadores BCD e o m nimo de lgica adicional, projecte o um descodicador binrio com 4 bits. a 9.11 Utilizando descodicadores BCD e o m nimo de lgica adicional, projecte o um descodicador binrio com 6 bits. a () 9.12 Diga como poder utilizar 9 descodicadores do tipo 74x138 para implea mentar um descodicador com 6 linhas de entrada e 64 linhas de sa da. O descodicador 74x138 tem o s mbolo IEC que se ilustra na Figura 9.9.
74x138 BIN/OCT 0 1 1 2 2 3 4 4 & 5 EN 6 7

74x138

Figura 9.9: S mbolo IEC de um descodicador 74x138

166

CAP ITULO 9. CODIFICADORES E DESCODIFICADORES

9.13 Tendo-se, na Figura 9.7, ligado a varivel A ` entrada 4, a varivel B ` a a a a entrada 2 e a varivel C ` entrada 1, o que que se pode armar em a a e relaao aos pesos das variveis? c a 9.14 Se na Figura 9.7 zessemos as ligaes das entradas de forma diferente, co por exemplo ligando A a 1, B a 2 e C a 4, mas mantendo os pesos das variveis, qual seria a funao implementada nesse caso? a c () 9.15 Implementar a funao booleana simples F (a, b, c) = c m(1 3, 7) utilizando um descodicador binrio de 3 bits com sa a das activas a H, como o da Figura 9.1. Que funoes e correspondentes n c veis de actividade se obtm nas sa e das do descodicador? () 9.16 Implementar a funao booleana simples F (a, b, c) = c m(1 3, 7) do exerc cio anterior, mas utilizando agora um descodicador binrio de 3 a bits com sa das activas a L, como o 74x138 da Figura 9.9. Que funoes c e correspondentes n veis de actividade se obtm nas sa e das do descodicador? () 9.17 Implementar a funao booleana simples F (a, b, c) = M (0, 4 6) utic lizando um descodicador binrio de 3 bits com sa a das activas a H, como o da Figura 9.1 (de notar que esta funao a mesma dos Exerc c e cios 9.15 e 9.16). Que funoes e correspondentes n c veis de actividade se obtm nas e sa das do descodicador? () 9.18 Implementar a funao booleana simples F (a, b, c) = M (0, 4 6) utic lizando um descodicador binrio de 3 bits com sa a das activas a L, como o 74x138 da Figura 9.9 (de notar que esta funao a mesma dos Exerc e c cios 9.15 e 9.16). Que funoes e correspondentes n c veis de actividade se obtm nas sa e das do descodicador? 9.19 Repetir os Exerc cios 9.15 a 9.18 na implementaao da funao booleana c c simples F (a, b, c).
74x42

9.20 Dado o descodicador 74x42 da Figura 9.10, diga como faria para gerar, a ` custa dele e, eventualmente, de portas lgicas suplementares, a funao o c f(A, B, C, D) = m(1, 2, 4, 8). E poss vel, com este descodicador e lgica suplementar, gerar qualquer funao de 4 variveis? Porqu? o c a e 9.21 Usando um descodicador e a lgica suplementar que achar convenientes, o construa a funao f = A B + B C. c 9.22 Considere o circuito da Figura 9.11. Qual a expresso lgica da funao e a o c que ele implementa? 9.23 E dado o logigrama da Figura 9.12. Utilizando um descodicador ` sua a escolha, implemente a funao realizada pelo circuito dado. c 9.24 Desenhe um logigrama com a estrutura interna do codicador BCD da Tabela 9.4.

() 9.25 Traar o logigrama de um codicador de prioridades com 4 entradas, I0 c a I3, e duas sa das, A1 e A0. A entrada I3 dever ter prioridade sobre I2 a que, por sua vez, dever ter prioridade sobre I1, e esta sobre I0. Prever a ainda a existncia de uma entrada de Enable e de duas outras sa e das,

9.4. EXERC ICIOS


74x42 BCD/DEC 0 1 2 3 4 5 6 7 8 9

167

1 2 4 8

Figura 9.10: S mbolo IEC de um descodicador 74x42


BIN/OCT 0 1 1 2 2 3 4 4 & 5 EN 6 7

X H Y H Z H H L L

&

F H

Figura 9.11: Logigrama de um circuito que implementa uma funao booleana c simples cuja expresso se pretende determinar a
C L
&
1 =1

A H B H

F H
=1

C H A L

&

Figura 9.12: Logigrama utilizado no Exerc 9.23 cio uma de Enable e outra de Grupo, em que esta ultima indica se, estando o codicador activo, h pelo menos uma entrada activa. Todas as entradas a devero ser activas a H. a 9.26 Desenhe um transcodicador que aceita nas suas entradas um d gito BCD e fornece nas suas sa das o cdigo requerido para acender um display de o 7 segmentos representativo do d gito na entrada. 9.27 Implemente um transcodicador do CBR (cdigo binrio reectido) para o a o cdigo de 7 segmentos, utilizando um transcodicador do cdigo BCD o o para o cdigo de 7 segmentos. o

168

CAP ITULO 9. CODIFICADORES E DESCODIFICADORES

9.28 Repetir o Exerc 8.4, mas usando agora um codicador e um descodicio cador binrios. a () 9.29 Implementar as funoes booleanas simples c a) f(A, B, C, D) = b) g(A, B, C, D, E) = m(0, 3, 5, 10, 11); M (0, 5, 7, 14, 30, 31)

usando apenas um descodicador do tipo 74x138 e a lgica suplementar o m nima que considerar necessria. Admitir que, nas duas funes, A a a co e varivel booleana simples com maior peso. a

Cap tulo 10

Multiplexers e Demultiplexers
10.1 Multiplexers

O multiplexer um circuito combinatrio muito comum em sistemas digitais. e o A sua funcionalidade bsica a de um circuito que realiza a funo de selecco a e ca ca de uma entrada, sugerida pela analogia mecnica da Figura 10.1. Naturalmente, a o nmero de entradas pode ser diferente de quatro mas, para o efeito da funao u c de selecao que pretendemos, admitiremos que ele sempre uma potncia de 2. c e e
x0 x1 x2 x3 y Selecao de uma c entrada Analogia mecnica de a um multiplexer

SEL EN ABLE

Figura 10.1: Analogia entre um comutador mecnico e a funao de selecao de a c c uma entrada realizada por um multiplexer Um multiplexer tem, portanto, 2n entradas de dados das quais selecciona uma, e entradas de controlo ou de seleco que permitem escolher a entrada de dados ca que, em cada momento, v encaminhado o n de tenso nela aplicado para a e vel a sa de dados do multiplexer. da Um multiplexer de 4 entradas de dados e com entradas e sa activas a H, por da exemplo, tem o s mbolo IEC da Figura 10.2(a). Na Figura 10.2(b), as entradas Di so de dados, e as entradas Si so de seleco. a a ca O nmero binrio colocado no par (S1, S0), sendo S1 a varivel booleana simples u a a 169
Entradas de dados Entradas de seleco ou ca de controlo Sa de dados da

170

CAP ITULO 10. MULTIPLEXERS E DEMULTIPLEXERS


MUX 0 0 G3 1 0 1 2 3 (a) S0 H S1 H D0 D1 D2 D3 H H H H MUX 0 G0 3 1 0 1 2 3 (b) OUT H

Figura 10.2: (a) S mbolo de um multiplexer com 4 entradas de dados, com entradas e sa activas a H, de acordo com a norma IEC 60617-12; (b) o da mesmo multiplexer, ao qual se juntaram variveis de seleco S0 e S1, de dados a ca D0 a D3, e uma funao de sa OU T c da com maior peso (porque est aplicada ` entrada de selecao de maior peso), a a c determina a entrada de dados cujo valor colocado na sa e da.
Dependncia And (G) e

O s mbolo G 3 uma abreviatura para as dependncias And G0, G1, G2, G3, e e aplicadas `s entradas 0, 1, 2 e 3, respectivamente. a As entradas de selecao, 0 e 1, indicam os pesos das potncias de 2 que ponderam c e as palavras do CBN aplicadas s entradas SEL0 e SEL1. Por exemplo, se SEL0 a e SEL1 estiverem ambas activadas, os pesos somam 20 + 21 = 3 e G3 vem activada, o que faz com que a entrada 3 venha seleccionada. Nessas condioes, a c quantidade booleana simples aplicada a essa entrada de dados vem reproduzida na sa da. A descriao funcional deste multiplexer ser a da Tabela 10.1, e a tabela de c a verdade f sica correspondente vem descrita pela Tabela 10.2, admitindo-se que todas as entradas e a sa so activas a H.. da a Tabela 10.1: Descriao funcional do multiplexer da Figura 10.2(b) c
S1 H L L H H S0 H L H L H OUT H D0 H D1 H D2 H D3 H

A estrutura interna deste multiplexer vem ilustrada na Figura 10.3, mais uma vez admitindo-se que todas as entradas e a sa so activas a H. da a a E fcil de explicar o funcionamento do multiplexer a partir da sua estrutura interna. De facto, cada uma das quatro possiveis conguraoes das variveis S0 c a e S1 fazem que as sa das de trs dos ANDs estejam forcosamente a L e que a e sa do quarto AND tenha um n de tenso igual ao da respectiva entrada da vel a Di. A sa OU T ter, portanto, o n L + L + L + Di = Di. da a vel Por exemplo, se S0 e S1 estiverem ambas inactivas as duas entradas inferiores

10.1. MULTIPLEXERS Tabela 10.2: Tabela de verdade f sica do multiplexer da Figura 10.2(b)
D3 H L H D2 H D1 H L H D0 H L H S1 H L L L L H H H H S0 H L L H H L L H H OUT H L H L H L H L H

171

L H

SEL1 H

SEL0 H

IN0 H IN1 H

&

OUT H IN2 H IN3 H

Figura 10.3: Logigrama com a estrutura interna do multiplexer da Figura 10.2(b), com entradas e sa activas a H, de acordo com a norma IEC da 60617-12 da porta AND de cima esto activas e, nessas circunstncias, a sa desse AND a a da vem igual a D0. Os outros ANDs tm as sa e das inactivas (a L) uma vez que est inactiva pelo menos uma das 2 entradas inferiores de cada uma das portas. a A sa OU T , ento, igual a D0. da e a Da mesma forma, as outras conguraoes poss c veis de S0 e de S1 seleccionam uma das outras 3 entradas, e o n vel de tenso na sa vem igual ao dessa a da entrada. Por vezes, convm que o multiplexer seja dotado de uma entrada de Enable e que permita controlar melhor o seu funcionamento. O Enable permite, quando activo, que o multiplexer tenha a funcionalidade descrita. Quando inactivo, faz com que a sa do dispositivo esteja inactiva, independentemente dos valores da lgicos aplicados `s entradas. o a Na Figura 10.4 vem desenhado o s mbolo IEC de um multiplexer idntico ao da e Figura 10.2 mas com entrada de Enable activa a L. Repare-se que este multiplexer foi desenhado com um Enable activo a L (situaao c
Entrada de Enable

172

CAP ITULO 10. MULTIPLEXERS E DEMULTIPLEXERS


MUX EN L S0 H S1 H D0 D1 D2 D3 H H H H EN 0 G0 3 1 0 1 2 3

OUT H

Figura 10.4: S mbolo IEC de um multiplexer em que todas as entradas e a sa da so activas a H, com excepao da entrada de Enable que activa a L a c e muito frequente), o que quer dizer que a funao de selecao s feita quando c c o e tivermos aplicado um L ` linha de Enable. Caso contrrio, a sa vem inactiva. a a da Na Tabela 10.3 apresenta-se a tabela de verdade f sica do multiplexer da Figura 10.4. De notar que esta tabela idntica ` da Tabela 10.2 para todas e e a as linhas em que a entrada de Enable est activa. Quando esta entrada vem a desactivada, a sa do multiplexer vem inactiva. da Tabela 10.3: Tabela de verdade f sica do multiplexer com Enable da Figura 10.4
D3 H L H D2 H L H D1 H L H D0 H L H S1 H L L L L H H H H S0 H L L H H L L H H EN L H L L L L L L L L OUT H L L H L H L H L H

Quanto ` estrutura interna deste multiplexer, podemos v-la na Figura 10.5. a e

10.1.1

Simbolos dos multiplexers

J vimos a subsecao anterior os s a c mbolos IEC 60617-12 de alguns multiplexers. Agora vamos estudar mais alguns s mbolos.
74x151

Na Figura 10.6 est representado um multiplexer do tipo 74x151 com 8 entradas a de dados. Anote-se que: o facto de se tratar de um multiplexer indicado pelo qualicador geral MUX e na parte superior do rectngulo; a

Qualicador geral MUX

10.1. MULTIPLEXERS
SEL1 H SEL0 H EN L

173

IN0 H IN1 H

&

OUT H IN2 H IN3 H

Figura 10.5: Logigrama com a estrutura interna do multiplexer da Figura 10.4


74x151 MUX EN 0 0 1 G7 2 0 1 2 3 4 5 6 7

Figura 10.6: S mbolo IEC de um multiplexer do tipo 74x151, com 8 entradas de dados activas a H e Enable activo a L, e com duas sa das complementares as trs entradas de selecao devem ser entendidas em conjunto (da a chaveta); e c quando se aplica a essas entradas uma determinada quantidade booleana geral, o seu equivalente decimal gerado internamente e vem activada a e entrada com ese nmero (como sabemos, o G representa uma dependncia u e And); o Enable , neste multiplexer, activo a L; e o circuito representado possui 2 sa das, sendo uma a negaao da outra. c O simbolo IEC da Figura 10.7(a) representa um multiplexer qudruplo com a a designaao 74x157, com 2 entradas de dados em cada multiplexer individual, e c com entradas de selecao e de Enable comuns. Por essa razo, estas linhas esto c a a num bloco de controlo comum colocado no topo do s mbolo. Quanto ao circuito da Figura 10.7(b), trata-se de um multiplexer duplo com 4 entradas de dados e entradas de Enable independentes, e entradas de selecao c comuns (o 74x153).

74x157

74x153

174

CAP ITULO 10. MULTIPLEXERS E DEMULTIPLEXERS


74x157 EN G1 MUX EN 0 1 2 3 MUX 0 G0 3 1 74x153

1 1

(a)

(b)

Figura 10.7: (a) S mbolo de um multiplexer qudruplo (o 74x157), de acordo a com a norma IEC 60617-12 cada multiplexer possui 2 entradas de dados, e entradas de selecao e de Enable no bloco de controlo comum; com excepao c c do Enable, as entradas e as sa das so todas activas a H; (b) um multiplexer a duplo (o 74x153), em que cada multiplexer individual possui 4 entradas de dados activas a H e entrada de Enable independente, activa a L, e com entradas de seleco comuns, activas a H ca

10.1.2

Expanso de multiplexers a

A expanso de multiplexeres pode ser feita de duas formas bsicas. a a


Estrutura em rvore a

Uso de camadas sucessivas de multiplexers, numa estrutura em rvore. Na a Figura 10.8 ilustra-se a construo de um multiplexer com 16 entradas de ca dados, a partir de multiplexers de 4 entradas de dados. De notar, em particular, a designao dadas `s entradas IN0 a IN15, cuja nuca a meraao funao dos pesos relativos dos multiplexers. Por exemplo, o mulc e c tiplexer superior o que corresponde `s entradas com e a ndices de menor peso (0 a 3), dado que este multiplexer vem seleccionado com (SEL3, SEL2) = = (L, L); o segundo multiplexer corresponde `s entradas com a ndices imediatamente superiores (4 a 7), porque este multiplexer vem seleccionado com (SEL3, SEL2) = (L, H) reparar que SEL3 tem mais peso do que SEL2; etc. Utilizaao de um descodicador auxiliar e de uma porta OR. Na Figura 10.9 c ilustra-se este tipo de soluao para um multiplexer funcionalmente idntico c e ao anterior, embora com o dobro das entradas de dados e, naturalmente, mais uma entrada de selecao. c De notar, agora, que o multiplexer U1 o que corresponde `s entradas e a com ndices de menor peso (0 a 7), dado que ele contribui com a unica entrada activa (a L) do OR quando o seu Enable est activo, isto , quando a e (SEL4, SEL3) = (L,L); da mesma forma, o multiplexer U2 corresponde `s a entradas com ndices imediatamente superiores (8 a 15) porque ele contribui

10.2. DEMULTIPLEXERS
ENABLE H SEL2 H SEL3 H

175

H SEL0 H SEL1 H IN0 IN1 IN2 IN3 H H H H H

MUX EN 0 G0 3 1 0 1 2 3

IN4 IN5 IN6 IN7

H H H H H

MUX EN 0 G0 3 1 0 1 2 3

OUT H

IN8 IN9 IN10 IN11

H H H H H

IN12 IN13 IN14 IN15

H H H H

Figura 10.8: Logigrama de um multiplexer com 16 entradas de dados, realizado a ` custa de multiplexers com 4 entradas de dados, numa estrutura em rvore a com a unica entrada activa do OR quando o seu Enable est activo, isto , a e quando (SEL4, SEL3) = (L,H) reparar que SEL4 tem mais peso do que SEL3; etc.

10.2

Demultiplexers
Selecao de uma sa c da Analogia mecnica de a dum demultiplexer

A funcionalidade bsica de um demultiplexer oposta ` da de um multiplexer. a e a Nesse sentido, um demultiplexer realiza a funo de selecco de uma sa , com ca ca da a analogia mecnica sugerida pela Figura 10.10. a De forma idntica ` que acontecia para as entradas de dados dos multiplexers, e a admitiremos que o nmero de sa u das do demultiplexer sempre uma potncia e e de 2. Um demultiplexer tem, portanto, 2n sa , das quais uma vem, em cada modas mento, seleccionada por intermdio de n entradas de controlo ou de seleco, que e ca

Sa das de um demultiplexer Entradas de seleco ou ca de controlo

176

CAP ITULO 10. MULTIPLEXERS E DEMULTIPLEXERS


1/2 74x139A

ENABLE H SEL3 H SEL4 H

BIN/1-OF-4 0 1 1 2 2 3 EN

SEL2 H SEL1 H SEL0 H U1 74x151 MUX EN 0 0 1 G7 2 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 H H H H H H H H 0 1 2 3 4 5 6 7 U3 74x151 MUX EN 0 0 1 G7 2 IN8 IN9 IN10 IN11 IN12 IN13 IN14 IN15 H H H H H H H H 0 1 2 3 4 5 6 7 IN24 IN25 IN26 IN27 IN28 IN29 IN30 IN31 H H H H H H H H IN16 IN17 IN18 IN19 IN20 IN21 IN22 IN23 H H H H H H H H U2 74x151 MUX EN 0 0 1 G7 2 0 1 2 3 4 5 6 7 U4 74x151 MUX EN 0 0 1 G7 2 0 1 2 3 4 5 6 7

1/2 74x20 1 OUT H

Figura 10.9: Esquema elctrico de um multiplexer de 32 entradas, realizado ` e a custa de multiplexers de 4 entradas, de um descodicador auxiliar e de uma porta OR
y0 y1 x y2 y3

SEL EN ABLE

Figura 10.10: Analogia entre um comutador mecnico e a funao de selecao de a c c uma sa realizada por um demultiplexer da
Entrada de dados

permitem veicular o n vel de tenso aplicado ` entrada de dados para a sa a a da seleccionada.

10.2. DEMULTIPLEXERS Na Figura 10.11 apresenta-se o logigrama de um demultiplexer com 4 sa das.


SEL1 H SEL0 H

177

&

OUT0 H

&

OUT1 H

IN H
&

OUT2 H

&

OUT3 H

Figura 10.11: Logigrama de um demultiplexer com 4 sa das E de notar que a estrutura deste demultiplexer igual ` da de um descodicador e a binrio de 2 bits com Enable, de que se apresenta um exemplo na Figura 10.12. a
IN1 H IN0 H

&

OUT0 H

&

OUT1 H

EN H
&

OUT2 H

&

OUT3 H

Figura 10.12: Logigrama de um descodicador binrio de 2 bits com Enable, a que acentua a semelhana com o demultiplexer com 4 sa c das da Figura 10.11 Com efeito, basta identicar a entrada de Enable do descodicador com a entrada de dados do demultiplexer e as entradas de dados do descodicador com as entradas de selecao do demultiplexer. c

178

CAP ITULO 10. MULTIPLEXERS E DEMULTIPLEXERS

Qualicador geral DMUX ou DX

No admira, por isso, que os s a mbolos IEC dos demultiplexers sejam semelhantes aos dos descodicadores com Enable, distinguindo-se destes pelo qualicador geral DMUX, ou DX, como mostra a Figura 10.13 para um demultiplexer com 4 sa das.

DX EN H SEL0 H SEL1 H IN H EN 0 G0 3 1

0 1 2 3

OUT0 OUT1 OUT2 OUT3

H H H H

Figura 10.13: S mbolo IEC de um demultiplexer com 4 sa das, a que se juntaram designaoes poss c veis para as entradas e sa das Os restantes qualicadores tm signicados em tudo idnticos aos que foram e e utilizados a propsito dos multiplexers. o Podemos, ento, estabelecer facilmente a tabela de verdade f a sica deste tipo de circuito, como se indica na Tabela 10.4 para um demultiplexer com 4 sa das e Enable, todas activas a H. Tabela 10.4: Tabela de verdade f sica compactada de um demultiplexer com 4 sa das e Enable, todas activas a H
EN H L H H H H SEL1 H L L H H SEL0 H L H L H OUT3 H L L L L IN OUT2 H L L L IN L OUT1 H L L IN L L OUT0 H L IN L L L

74x138

Para nalizar, na Figura 10.14 apresenta-se o s mbolo IEC do 74x138, um demultiplexer com 8 sa das que podemos identicar, em alternativa, com um descodicador binrio de 3 bits. a Na interpretao como demultiplexer [Figura 10.14(a)], o 74x138 possui uma ca unica entrada de dados (como seria de esperar) formada pelo AND entre IN0, IN1 e IN2, sendo duas dessas entradas activas a L e a outra a H. Na interpretao como descodicador [Figura 10.14(b)], o 74x138 possui trs ca e entradas de dados, IN0, IN1 e IN2, e uma entrada de Enable formada pelo AND entre EN0, EN1 e EN2, sendo dois dos Enables activos a L e o outro a H.

74x155

Na Figura 10.15, por seu turno, est representado o s a mbolo IEC do 74x155. Trata-se de um demultiplexer duplo com: (i) entradas de selecao comuns aos c

10.3. APLICACOES DOS MULTIPLEXERS E DOS DEMULTIPLEXERS 179

74x138 DX SEL0 H SEL1 H SEL2 H IN0 H IN1 L IN2 L 2 & 0 G0 7 0 1 2 3 4 5 6 7 OUT0 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 L L L L L L L L IN0 H IN1 H IN2 H EN0 H EN1 L EN2 L

74x138 BIN/OCT 0 1 1 2 2 3 4 4 & 5 EN 6 7 (b) OUT0 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 L L L L L L L L

(a)

Figura 10.14: (a) S mbolo IEC do 74x138, utilizado como demultiplexer; e (b) s mbolo do 74x138, utilizado como descodicador com Enable dois demultiplexers simples, entradas essas identicadas no bloco de controlo comum; (ii) entradas de Enable independentes e activas a L para cada um dos demultiplexers simples; (iii) entrada de dados activa a H para um dos demultiplexers e activa a L para o outro; e (iv) sa das activas a L.
74x155 SEL0 H SEL1 H 0 G0 3 1 DX EN1 L IN1 H G4 4

0 1 2 3

OUT10 OUT11 OUT12 OUT13 OUT20 OUT21 OUT22 OUT23

L L L L L L L L

EN2 L IN2 L

Figura 10.15: S mbolo IEC do 74x155

10.3

Aplicaes dos Multiplexers e dos Demulco tiplexers

Uma das aplicaoes dos multiplexers a de realizar a multiplexagem e demultic e plexagem de um conjunto de variveis, como mostra a Figura 10.16. a Uma outra aplicaao de um multiplexer na implementaao de funoes. Tal c e c c torna-se poss vel porque um multiplexer gera internamente uma soma de produtos de todas as variveis de selecao, e portanto, uma soma de mintermos. a c

180

CAP ITULO 10. MULTIPLEXERS E DEMULTIPLEXERS


MUX H EN 0 0 G3 1 0 1 2 3 H SELOUT0 H SELOUT1 H EN 0 G0 3 1

DX

SELIN0 H SELIN1 H IN0 IN1 IN2 IN3 H H H H

0 1 2 3

OUT0 OUT1 OUT2 OUT3

H H H H

Figura 10.16: Multiplexagem e demultiplexagem de dados, conseguida ` custa a de um multiplexer e de um demultiplexer Considere-se, por exemplo, a funao descrita pela tabela de verdade lgica da c o Tabela 10.5. Tabela 10.5: Tabela de verdade lgica de uma funao booleana simples de 2 o c variveis booleanas simples a
A 0 0 1 1 B 0 1 0 1 f(A,B) 0 1 1 0

Utilizando um multiplexer de 2 variveis de selecao e 4 variveis de entrada a c a de dados (tantas quantas as linhas da tabela), comecemos por ligar as variveis a da funao `s variveis de selecao do multiplexer pela mesma ordem de pesos, c a a c como se indica na Figura 10.17(a).
MUX B H A H 0 0 G3 1 0 1 2 3 (a) B H A H L H H L MUX 0 G0 3 1 0 1 2 3 (b)

f H

Figura 10.17: (a) Ligaao das variveis booleanas simples A e B `s entradas de c a a seleco de um multiplexer com 4 entradas de dados; (b) ligaoes `s entradas ca c a de dados Quando A = 0 e B = 0, o multiplexer selecciona para a sua sa o valor da presente na entrada de dados 0. A funo, nessas circunstncias, deve dar 0 ca a (primeira linha da tabela). Se ligarmos o n vel L ` entrada 0 do multiplexer, a este, quando A = B = 0, apresentar na sa o valor da funao (n a da c vel L).

10.3. APLICACOES DOS MULTIPLEXERS E DOS DEMULTIPLEXERS 181 Se zermos o mesmo para o resto das entradas do multiplexer e das linhas respectivas da tabela, o multiplexer car a representar toda a funo, como se a ca indica na Figura 10.17(b). Isso permite usar um multiplexer de n variveis de selecao para construir quala c quer funao de n variveis. c a Mas pode-se ir um pouco mais longe. Observe-se o seguinte exemplo: usando o mesmo multiplexer de duas entradas de selecao, vamos agora implementar uma c funao booleana simples de 3 variveis, por exemplo a funao da Tabela 10.6. c a c Tabela 10.6: Tabela de verdade lgica de uma funao booleana simples de 3 o c variveis booleanas simples a
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 f(A,B,C) 0 0 0 1 1 1 1 0

Comecemos por ligar duas das variveis de entrada `s entradas de selecao do a a c multiplexer. Podemos escolher quaisquer duas variveis, mas ser mais bvio se a a o escolhermos as duas mais signicativas, A e B. Ligamo-las de forma idntica ` e a que se utilizou anteriormente, como mostra a Figura 10.17(a). Repare-se agora no que acontece quando A = 0 e B = 0. O multiplexer selecciona a entrada de dados 0. Mas a funao tem duas linhas com A = 0 e B = 0, e c para ambas o valor da funao 0. Logo, podemos aplicar um n L ` entrada c e vel a 0, como sugere a Figura 10.18(a).

MUX B H A H L 0 G0 3 1 0 1 2 3 (a) B H A H L C H H C L

MUX 0 0 G3 1 0 1 2 3 (b)

f H

f H

Figura 10.18: (a) Aplicaao de um n c vel L ` entrada 0 do multiplexer; (b) de a uma maneira geral, temos de aplicar `s entradas de dados as funoes booleanas a c simples poss veis da varivel booleana simples que sobeja, C, depois de escolhia das A e B para aplicar `s entradas de selecao a c

182

CAP ITULO 10. MULTIPLEXERS E DEMULTIPLEXERS

Na situaao seguinte (A = 0 e B = 1) j a tabela no tem o mesmo valor para c a a a funao nas duas linhas. De facto, com A = 0 e B = 1 a funo vale 0 quando c ca C = 0 e vale 1 quando C = 1. Isto , nessa fatia da tabela a funao vale C. e c Ento, a entrada 1 de dados do multiplexer deve vir ligada a C, como se indica a na Figura 10.18(b). Fazendo o mesmo para o resto da tabela, obtm-se a Tabela 10.7. e Tabela 10.7: Tabela de verdade lgica da funao de 3 variveis que temos vindo o c a a estudar, dividida em 4 fatias (porque temos duas das variveis, A e B, a servir a de selecao do multiplexer) c
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 f(A,B,C) 0 0 0 1 1 1 1 0 f =C f =0

f =C

f =1

E o circuito nal ca como se indica na Figura 10.18(b). E poss vel, como se exemplicou atrs, construir qualquer funao f de n variveis a c a com um multiplexer de n 1 variveis de selecao e, eventualmente, uma a c negao. ca De uma forma geral, escolhemos n 1 variveis (arbitrariamente, embora seja a mais simples escolher as de maior peso) que aplicamos `s entradas de selecao, e a c a cada uma das entradas de dados aplicaremos uma funao da varivel que resta c a (como sabemos, as funoes de uma varivel X so 0, 1, X e X), funao essa c a a c escolhida adequadamente para cada fatia de duas linhas da tabela de verdade da funao f a implementar. c

10.4

Referncias Bibliogrcas e a

Mano, Morris M., and Kime, Charles R. Logic and Computer Design Fundamentals, 2nd ed., Prentice Hall International, Inc., New Jersey, USA, 2000, Secoes 3.5 a 3.8, 3.10 e 3.12. c

10.5

Exerc cios

Nota: os exerc cios identicados com um asterisco () esto resolvidos em a SD:ER.

10.5. EXERC ICIOS

183

() 10.1 Desenhar a tabela de verdade f sica e o logigrama com a estrutura interna de um multiplexer com 4 entradas de dados, admitindo que as entradas de dados e a sa so activas a L, e que as entradas de selecao so activas da a c a a H. () 10.2 Desenhar o s mbolo IEC de um multiplexer idntico ao do da Figura 10.4, e mas com sa tri-state. da () 10.3 Escrever a tabela de verdade f sica do multiplexer do exerc anterior. cio () 10.4 Desenhar o logigrama de um multiplexer com uma estrutura em rvore a e com 16 entradas de dados, formado por um primeiro n vel com multiplexers de 2 entradas de dados e um segundo n vel formado por um multiplexer com 8 entradas de dados. Admitir que as entradas e a sa da so todas activas a H. a 10.5 Dado o descodicador duplo da Figura 10.19, do tipo 74x139, diga como o pode utilizar para demultiplexar dois bits de dados, A L e B L.
74x139 BIN/1-OF-4 1 2 EN 0 1 2 3 74x139

Figura 10.19: S mbolo IEC de um descodicador duplo do tipo 74x139 10.6 Diga como pode ligar dois multiplexers como o da Figura 10.20, do tipo 74x251, de modo a construir um multiplexer com 16 entradas e 1 sa da. Use a lgica discreta suplementar que entender necessria. o a
74x251 MUX EN 0 0 1 G7 2 0 1 2 3 4 5 6 7

74x251

Figura 10.20: S mbolo IEC de um multiplexer 74x251

184

CAP ITULO 10. MULTIPLEXERS E DEMULTIPLEXERS

10.7 Suponha que dado o multiplexer da Figura 10.20, do tipo 74x251. Pree tende-se obter, numa das suas sa das, o n vel de tenso oposto ao n a vel aplicado ` entrada 5 de dados. Quais os n a veis a aplicar `s vrias entradas, a a e qual a sa pretendida? da 10.8 Utilize o multiplexer da Figura 10.2(a), na pgina 170, para gerar a funao a c booleana simples Z = S1 S0 + S0 V + S1 S0 V . 10.9 Diga como pode utilizar o multiplexer da Figura 10.2(a), na pgina 170, a para gerar a funo booleana simples Z = S1 S0 + S0 W + V W + S0 W . ca 10.10 Utilize um multiplexer com 8 entradas de dados para gerar a funo ca Z = m(0, 3, 5, 6, 9, 10, 12, 15). Trace um logigrama que implemente a mesma funao, mas que utiliza apenas ANDs com entradas activas a H e c sa activa a L. Se s utilizar circuitos integrados que contm, cada um, da o e dois ANDs deste tipo com 4 entradas, compare as duas soluoes de implec mentaao contabilizando, em cada caso, o nmero total de integrados. c u 10.11 Utilize um multiplexer com 8 entradas de dados para gerar a funo ca f(A, B, C, D, E) = m(0 5, 10, 13, 20 25, 30, 31). 10.12 Dispe de 4 multiplexeres com 3 entradas de controlo, e de um descodio cador de 2 entradas. Projecte, usando o material referido, um multiplexer com 5 entradas de controlo (e, portanto, com 32 entradas de dados). Especique as suposies que fez em relaao ao material de que dispe. Se co c o necessitar, pode utilizar portas lgicas suplementares. o 10.13 Dispe de multiplexeres com 3 entradas de controlo, e de descodicadores o de 3 entradas. Especicando em pormenor os circuitos que usar, comstruir um multiplexer com 6 entradas de controlo. 10.14 Usando um multiplexer com 3 entradas de controlo e a lgica adicional o que entender, sintetize as seguintes funoes booleanas simples: c a) b) c) d) e) f f f f f = (A B) (C D); = (A B) (C D); = A B + A C D + A B C D; = m(0, 2, 3, 5, 7, 12 14) + md (1, 10, 15); = A B (C D) + A B C + A C D + B C D.

10.15 Considere o circuito da Figura 10.21.


MUX L A H B L L C L H EN 0 0 G3 1 0 1 2 3

X H Z H

Figura 10.21: Circuito utilizado no Exerc 10.15 cio

10.5. EXERC ICIOS a) b)

185

Qual a expresso lgica da funao booleana simples X, expressa e a o c nas variveis A, B e C? a Se as variveis A, B e C estiverem activas, qual o n de tenso a e vel a na linha Z H?

10.16 Considere o circuito da Figura 10.22.


MUX 0 0 1 G7 2 0 1 2 3 4 5 6 7 F H

A H B H C H L H D L H D H D H H L

Figura 10.22: Circuito utilizado no Exerc 10.16 cio a) b) c) Sendo A a varivel de maior peso e D a de menor peso, diga qual a a funo f(A, B, C, D) sintetizada pelo multiplexer da gura. ca Simplique-a pelo processo que entender. Quando ocorrer uma mudana na conguraao das variveis de c c a controlo, podero ocorrer picos na sa a da? Porqu? e Como construiria a mesma funao na sa activa a L do c da multiplexer?

10.17 Usando um multiplexer de 3 entradas de controlo, construa um circuito que realiza a funao constru na Figura 9.11 (Exerc c da cio 9.22, na pgia na 166). 10.18 E dada a seguinte funao, f = A B + B C + C A + A B C. c a) b) Implemente-a usando um multiplexer com 4 entradas de dados. Usando o multiplexer anterior, quantas implementaoes diferentes c da funao poderia fazer? Porqu? c e Qual a funao concretizada pelo circuito? e c Sintetize de novo a funo usando o m ca nimo de lgica poss o vel.

10.19 Considere o circuito da Figura 10.23. a) b)

10.20 Considere que dispe de multiplexers de 8 linhas de dados e uma linha de o Enable activa a L. A sa do multiplexer activa a L, e do tipo TTL da e e convencional (totem-pole). Usando o m nimo de lgica adicional, construa o um multiplexer com 16 entradas de dados.

186

CAP ITULO 10. MULTIPLEXERS E DEMULTIPLEXERS

MUX D H C H B H
=1

0 G0 3 1 0 1 2 3 F H

=1

A H

Figura 10.23: Circuito utilizado no Exerc 10.19 cio

Cap tulo 11

Circuitos Aritmticos e
11.1 Somadores Binrios a

Circuitos aritmeticos so aqueles que realizam operaoes aritmticas sobre, em a c e princ pio, nmeros binrios. u a Para realizar circuitos aritmticos teremos que utilizar funoes lgicas, uma vez e c o que so estas de que dispomos em termos de circuitos. a O circuito mais simples que podemos considerar o circuito que implementa a e soma de dois algarismos binrios. a Recordemos a Tabela 1.3 da soma na base 2, que reproduzimos na Tabela 11.1 sob uma forma ligeiramente diferente, para facilitar a exposiao. c Tabela 11.1: Tabela da adiao no sistema binrio c a
Adiao binria c a

A+B B=0 B=1

A=0 0 1

A=1 1 10

O circuito somar, portanto, dois bits, e o resultado tem 2 bits, em que um o a e resultado da soma propriamente dito e o outro o transporte para o algarismo e seguinte. Se zermos corresponder aos d gitos na base 2, isto , 0 e 1, os valores lgicos e o correspondentes, respectivamente 0 e 1, podemos construir a tabela de verdade das duas funoes lgicas que representam o resultado da soma (Tabela 11.2). c o O transporte habitualmente representado por CO, signicando Carry Out e (transporte para o exterior). 187

188

CAP ITULO 11. CIRCUITOS ARITMETICOS Tabela 11.2: Tabela da adiao no sistema binrio c a
AB 00 01 10 11 Soma 0 1 1 0 Transporte 0 0 0 1

Podemos realizar a simplicao das duas funes pelo mtodo de Karnaugh, ca co e mas da tabela de verdade conseguimos obter imediatamente S = AB

CO = A B .

O circuito pode, ento, ser facilmente desenhado (Figura 11.1). a


A H B H
=1 &

CO H

S H

Figura 11.1: Logigrama de um semi-somador


Semi-somador

Este circuito tem o nome de semi-somador. A razo para a designao semi a ca prende-se com o facto de o circuito no ser capaz de somar os bits dos operandos a e ainda o transporte proveniente de uma coluna mais ` direita, como necessrio a e a fazer quando somamos dois nmeros binrios com n bits, por exemplo em u a
3 2 1 0

+ 1
1

1 0
1

1 1 0
0

0 0 1
1

1 1 0

(2) (2) (2)

Colunas

Somador completo

Nesses casos necessrio ir um pouco mais longe. E preciso desenvolver um e a circuito somador completo, capaz de somar os 3 bits que podemos encontrar em cada uma das colunas da soma: os dois bits dos operandos, A e B, e ainda o transporte proveniente da coluna imediatamente ` direita, CI (CI tem o a signicado de Carry In, ou transporte de entrada). As sa das S e CO do somador completo tm, como tabelas de verdade, as que resultam da adiao e c destes 3 bits, e que se apresentam na Tabela 11.3. A partir desta tabela podemos gerar os quadros de Karnaugh das funoes CO c e S e, em seguida, obter as suas expresses m o nimas, por exemplo em somas de produtos. Mas porque as tabelas de verdade so muito simples, facilmente a

11.1. SOMADORES BINARIOS Tabela 11.3: Tabela de verdade de um somador completo


A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 CI 0 1 0 1 0 1 0 1 S 0 1 1 0 1 0 0 1 CO 0 0 0 1 0 1 1 1

189

deduzimos directamente as expresses das funoes: o c S = A B CI CO = A B + CI (A B) . Com estas expresses podemos agora construir um somador completo ` custa o a de dois semi-somadores, j que elas so, no essencial, extenses das expresses a a o o das sa das de um semi-somador (ver atrs). Basta acrescentar uma porta OR a no m, como sugere a Figura 11.2.
1/2 S A H B H
& & 1 =1

1/2 S
=1

S H

CO H

CI H

Figura 11.2: Logigrama de um somador completo, formado por dois semi-somadores e uma porta OR Admitindo a existncia de somadores completos, podemos associ-los para reae a lizar somadores de n bits, constru dos iterativamente a partir de somadores completos. Na Figura 11.3 ilustra-se o diagrama de blocos de um somador iterativo de 4 bits. Repare-se que, nesta gura, o bit mais signicativo est colocado ` esquerda e o a a menos signicativo ` direita, pelo que o uxo da informao decorre da direita a ca para a esquerda (ao contrrio do que admitido por omisso nos logigramas, a e a diagramas de blocos e esquema elctricos, da a incluso de setas) e a Porm, este tipo de representaao mais natural, j que a habitual quando se e c e a e fazem adioes ver, por exemplo, a soma anterior, que se reproduz a seguir. c

Somador iterativo de n bits

190
A3 B3 A2

CAP ITULO 11. CIRCUITOS ARITMETICOS


B2 A1 B1 A0 B0

Ai

Bi Ci

Ai

Bi Ci

Ai

Bi Ci

Ai

Bi Ci

CO

C4

Ci1 Si

C3

Ci1 Si

C2

Ci1 Si

C1

Ci1 Si

C0

CI

S3

S2

S1

S0

Figura 11.3: Diagrama de blocos de um somador iterativo de 4 bits, formado pela interligaao de quatro somadores completos c

Colunas

+ 1
1

1 0
1

1 1 0
0

0 0 1
1

1 1 0

(2) (2) (2)

74x283

Na Figura 11.4 apresenta-se o s mbolo IEC de um somador iterativo de 4 bits, o 74x283.


74x283 0 P 3 0 Q 3 CI CO 3 0

Figura 11.4: S mbolo IEC do 74x283


Qualicador geral Qualicadores de entrada Pi, Qi e CI Qualicadores de sa da i e CO

De notar o qualicador geral que indica um somador. De notar ainda os qualicadores de entrada P0 a P3 e Q0 a Q3, e os qualicadores de sa 0 a 3, da para alm dos qualicadores que identicam os transportes. e

11.2

Subtractores Binrios a

Subtractor completo Subtractor iterativo de n bits

O problema da subtraco de nmeros binrios (sem sinal) pode ser resolvido ca u a recorrendo a subtractores completos e, a partir destes, formando subtractores iterativos de n bits, de forma anloga ` que foi utilizada para os adicionadores a a binrios da secao anterior. a c Para o fazermos, comeamos por apresentar, na Tabela 11.4, a operaao de c c subtraco A B no sistema binrio admitindo que existe um transporte ca a

11.2. SUBTRACTORES BINARIOS

191

CI da subtraco anterior o que produz a diferena D e um transporte CO ca c e c ca (recordar que A o aditivo e B o subtractivo na operaao de subtraco). e

Aditivo e subtractivo

Tabela 11.4: Tabela da subtraco no sistema binrio ca a


A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 CI 0 1 0 1 0 1 0 1 D 0 1 1 0 1 0 0 1 CO 0 1 1 1 0 0 0 1

Em relaao a esta tabela devemos notar como, para cada par de valores nas c entradas A e B, se adiciona CI a B e depois se subtrai de A para a obtenao c da diferena D e do transporte CO. c Na Figura 11.5 apresentam-se os quadros de Karnaugh destas funoes. c
B, CI A 00 0 1 0 1 B, CI A 00 0 1 0 0

01 1 0

11 0 1

10 1 0

01 1 0

11 1 1

10 1 0

D = A B CI ou D = A B CI

CO = A B + ACI + B CI = A B + CI (A B + A B) = A B + CI (A B)

Figura 11.5: Quadros de Karnaugh das funoes booleanas simples D e CO c As equaoes lgicas que se obtm so, ento, c o e a a D = A B CI

CO = A B + ACI + BCI o que, aps manipulaao simples, permite obter o c D = A B CI

CO = A B + CI (A B) . Estas ultimas equaoes sugerem a utilizaao de dois semi-somadores como os da c c Figura 11.1 para formar D e CO, como se ilustra na Figura 11.6.

192
1/2 S
=1

CAP ITULO 11. CIRCUITOS ARITMETICOS

A H

1/2 S
=1 1

D H B H
& & 1

CO H

CI H

Figura 11.6: Logigrama de um subtractor completo formado por dois semi-somadores e lgica adicional o

11.3

Somadores e Subtractores em Complemento para 2

Como sabemos da Subsecao 1.4.2, a soma de dois nmeros representados em c u notaao de complemento para 2 feita como se de nmeros binrios se tratasse. c e u a Ou seja, a soma de nmeros com n bits representados nessa notaao usa um u c somador binrio de n bits, e o resultado vem correcto ` sa do somador desde a a da que no haja overow na operaao. a c Por outro lado, como tambm j sabemos, para detectar um eventual overow e a na adiao em complemento para 2 basta ver se o transporte proveniente do c ultimo bit para o exterior do somador diferente do transporte proveniente e do bit anterior e que vai para a posio do bit de sinal, o que pode ser feito ca simplesmente com uma porta XOR. Da mesma subsecao, sabemos ainda que a utilizaao de nmeros representados c c u em notaao de complemento para 2 permite realizar subtracoes de forma muito c c simples. Com efeito, realizar a subtraco x y o mesmo que realizar a soma x + ca e + (y). Por outro lado, trocar o sinal a um nmero representado em notaao u c de complemento para 2 signica, na prtica, obter o complemento para 2 do a nmero. Assim sendo, a subtraco em complemento para 2 pode ser obtida a u ca partir de um somador binrio. a Usando as propriedades da funo OU-exclusivo a seguir listadas: ca x1 =x x0 =x
Somador/subtractor

e ainda a possibilidade de usar a varivel CI de um somador para adicionar uma a unidade aos dois nmeros, poss realizar um circuito somador/subtractor em u e vel complemento para 2 com o logigrama da Figura 11.7.

11.4. SOMADORES BCD


SUB H/ADD L
=1

193

B H
=1

SUB H/ADD L L H

Operaao c R= A+B R= AB

=1

74x283
=1

0 P 3 0 Q 3 CI CO COUT H 3 0 R H

A H

Figura 11.7: Logigrama de um somador/subtractor em complemento para 2

11.4

Somadores BCD

Como se viu no Cap tulo 2, o cdigo BCD uma forma de representar algarismos o e decimais. Um nmero representado em BCD no est representado em base 2. u a a Como bvio, tal representaao no pretende ter qualquer signicado aritmtico eo c a e e, para alm disso, no destinada ` realizaao de operaoes aritmticas. e a e a c c e No entanto, tal poss e vel e, por vezes, interessante. Isso acontece quando e temos representaoes de nmeros em BCD sobre os quais necessrio fazer c u e a pequenos clculos que no justicam, por exemplo, a converso para binrio. a a a a A soma em BCD feita, naturalmente, d e gito decimal a d gito decimal. Por exemplo, se somarmos 3 + 5 deveremos obter o algarismo 8. Se, para isso usarmos um somador de 4 bits, podemos observar a seguinte operao: ca 0 + 0 1 0 1 1 1 0 1 0 0 0

As duas parcelas so algarismos BCD, tal como o resultado. a Muitas vezes, porm, o resultado da soma (desde que maior que 9) no pode e a ser representado por um algarismo BCD. Por exemplo, 7 + 5 = 12 produz o seguinte resultado: 0 1 1 1 + 0 1 0 1 1 que no um algarismo BCD. a e 1 0 0

194

CAP ITULO 11. CIRCUITOS ARITMETICOS

Em certos casos pode obter-se at um transporte no somador. Por exemplo, se e somarmos 8 + 9 = 17 observa-se: + 1 1 0 1 0 0 0 0 0 0 1 0 1

Repare-se que a sequncia de nmeros em BCD que podem ser resultado de uma e u soma de dois digitos BCD pode ser ilustrada como se indica na Tabela 11.5. Tabela 11.5: Soma de dois d gitos BCD, interpretada em decimal, em binrio e a em BCD
Resultado em decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 em binrio a 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 em BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

1 1 1 1

0001 0001 0001 0001 0001 0001 0001 0001 0001 0001

Como estamos a tentar utilizar somadores binrios para fazer a soma, o resultado a que obtemos o que corresponde ` coluna central da tabela, quando o que e a quer amos obter seria o da coluna da direita. Mas repare-se que, a partir do nmero 10(10), o resultado na coluna da direita u seria o que se obteria de um somador se somssemos 0110, isto , 6(10), ao a e resultado da coluna do meio. Por exemplo, se o resultado em binrio, ` sa a a da do somador, fosse o nmero 15(10) = 1111(2), far u amos + 1 1 1 0 1 0 1 1 1 1 0 0 1

Isso quer dizer que poss corrigir o resultado da soma adicionando 6(10) = e vel = 0110(2), de forma a obter-se o resultado certo em BCD, com o d gito correcto (digamos, o d gito das unidades) e ainda um transporte para o algarismo seguinte, interpretado como um segundo d gito BCD (o d gito das dezenas).

11.5. REFERENCIAS BIBLIOGRAFICAS

195

A detecao das condies em que se tem de fazer a correcao fcil de determic co c e e nar. A correcao tem de ocorrer em dois casos: c 1. o resultado uma conguraao superior a 9(10); ou e c 2. existe um transporte da soma. No primeiro caso, a detecao faz-se por uma funao lgica dos bits ` sa do c c o a da somador binrio, que facilmente se conclui ser F = X Y + X Z, em que X a e o bit de maior peso da soma (de notar que X Y detecta uma soma com um resultado igual ou superior a 12(10), enquanto que X Z detecta um resultado igual a 10(10) ou a 11(10)). No segundo caso, a detecao faz-se pelo transporte do somador. c
somador de dois d gitos BCD, que pode ser ligado em cascata para somar unidades,

O circuito ilustrado na Figura 11.8 mostra como se pode, portanto, fazer um


Somador de dois d gitos BCD

dezenas, centenas, etc.


74x283 0 A H 3 0 B H 3 CIN H CI Q P

74x283 0 3 L CO
1

0 P 3 0 Q L L 3 CI CO COUT H 3 0 (A+B) H

&

10.OR.11 H
1

&

GT.EQ.12 H

Figura 11.8: Somador de dois d gitos BCD

11.5

Referncias Bibliogrcas e a

Mano, Morris M., and Kime, Charles R. Logic and Computer Design Fundamentals, 2nd ed., Prentice Hall International, Inc., New Jersey, USA, 2000, Secoes 4.4 e 4.5. c

196

CAP ITULO 11. CIRCUITOS ARITMETICOS

11.6

Exerc cios

Nota: os exerc cios identicados com um asterisco () esto resolvidos em a SD:ER. 11.1 Provar que um somador completo pode ser construido ` custa de dois semia -somadores como os da Figura 11.1, obtendo-se o logigrama da Figura 11.2. 11.2 Utilizar um somador integrado de 4 bits como o 74x283 da Figura 11.4, para implementar um conversor do cdigo BCD para o cdigo Excesso de o o 3 (para a deniao deste ultimo, ver a pgina 151). c a

Parte III

CIRCUITOS SEQUENCIAIS

197

Cap tulo 12

Latches
12.1 Latches Simples

Muitas vezes, no projecto de um sistema digital necessrio recorrer a circuitos e e lgicos cujo comportamento depende no s dos valores nas entradas em cada o a o momento, mas tambm do comportamento anterior dessas entradas, isto , a cire e cuitos cujo comportamento determinado, parcial ou totalmente, pelas entradas e que ocorreram no passado. Esses cicuitos designam-se por circuitos sequenciais, por oposiao aos circuitos combinatrios que estudmos nos cap c o a tulos anteriores. Consideremos o circuito da Figura 12.1.
S H
1

Circuito sequencial Circuito combinatrio o

Q H

Figura 12.1: Exemplo de circuito sequencial muito simples Admitamos que os valores iniciais da funao Q e da varivel de entrada S so c a a iguais a L. Essa situaao estvel, como se pode facilmente constatar e, porc e a tanto, mantm-se Q H em L. e Vejamos o que acontece agora se a varivel S for activada, isto , se aplicarmos a e um n H no o S H. Nesse caso, e como H + L = H, o valor da funao Q vel c altera-se e ca Q H = H. Como H + H = H, a situao Q H = H mantm-se ca e estvel a partir daqui. a Se agora aplicarmos um n L na linha S H, a linha Q H mantm-se activa, vel e isto , a H. e Este comportamento pode ser descrito sinteticamente pela Tabela 12.1, em que Q H(t) representa o valor, num determinado instante t, da linha de sa do da circuito OR, e Q H(t+t) o valor da mesma linha um breve intervalo de tempo e t depois, em que t o tempo de atraso do circuito OR. e Um diagrama temporal ilustrativo do comportamento deste circuito o que se e representa na Figura 12.2. 199

200

CAP ITULO 12. LATCHES

Tabela 12.1: Tabela de verdade f sica do circuito sequencial da Figura 12.1


S H L L H H Q H(t) L H L H Q H(t+t) L H H H

S H

Q H

Figura 12.2: Diagrama temporal que ilustra o funcionamento do elemento de memria da Figura 12.1 o Este circuito muito simples constitui, como se pode ver, uma memria elementar, o capaz de armazenar 1 bit de informao. Com efeito, o n de tenso em Q H ca vel a indica se alguma vez, durante o funcionamento do circuito, a linha S H foi activada. O defeito do circuito da Figura 12.1 que, uma vez assumido o n e vel H na linha de sa da, este no pode vir alterado. Assim, como elemento de memria a o este circuito pouco interessante, uma vez que s podemos registar nele um tipo e o de informaao (forar o n c c vel H na linha de sa da). Seria mais util dispormos de uma memria elementar mais completa, ainda capaz de armazenar 1 bit de o informaao, mas em que consegu c ssemos controlar indistintamente os dois n veis L e H na sa (isto , forar a linha de sa a L ou a H, conforme quisessemos). da e c da Um circuito que cumpre essa especicaao o da Figura 12.3. c e
S H
1

Memria elementar o

P H

&

Q H

R H

R L

Figura 12.3: Modicaao do circuito da Figura 12.1 que permite armazenar um c n L ou um n H na linha de sa Q H vel vel da Suponhamos que, inicialmente, as linhas Q H, S H e R H esto todas a L. a Nesse caso teremos P H = L e R L = H. De onde se conclui que Q H continua a L e, por consequncia, que a situaao estvel. e c e a Se, agora, a linha S H for levada a H, mantendo-se R H a L, teremos P H a H e, por conseguinte, Q H assumir o valor H. a Da mesma forma que no circuito anterior, se em seguida desactivarmos a varivel a

12.1. LATCHES SIMPLES

201

S (fazendo S H = L) a funao Q continuar activa (Q H = H). At aqui tudo c a e se passa como anteriormente, no circuito da Figura 12.1. vel Levemos agora R H a H. Como R L ca com o n L, e independentemente do n de P H (que , por enquanto, H), vir Q H = L. E claro que, a partir vel e a de agora, e enquanto no voltar a ser activada a linha de entrada S H, a linha a de sa Q H permanecer a L. da a Estamos, pois, na posse de um circuito de memria cujo contedo pode ser o u alterado sempre que se queira e que , por isso, um circuito mais ex que o e vel anterior. O comportamento deste circuito pode ser descrito pela Tabela 12.2. Tabela 12.2: Tabela de verdade f sica do elemento de memria da Figura 12.3 o
S H L L L L H H H H R H L L H H L L H H Q H(t) L H L H L H L H Q H(t+t) L H L L H H L L

Um diagrama temporal ilustrativo do funcionamento desta memria o da o e Figura 12.4.


S H

R H

Q H

Figura 12.4: Diagrama temporal que ilustra o comportamento do elemento de memria da Figura 12.3 o Deve notar-se que, ao contrrio do que sucede no diagrama temporal da Figua ra 6.7, na pgina 101, o diagrama da Figura 12.4 vem simplicado, no incluindo a a os tempos de propagaao no circuito e admitindo transioes instantneas entre c c a os n veis L e H. Esta uma situaao muito comum, que seguiremos no futuro e c sempre que no haja possibilidade de confuses devido `s simplicaoes. a o a c Convm, desde j, chamar a atenao para um caso que origina geralmente ale a c gumas diculdades de interpretaao. Trata-se da situaao em que se encontram c c activas simultaneamente as linhas S H e R H. Repare-se que se est a pedir a

202

CAP ITULO 12. LATCHES

ao circuito, de acordo com o que vimos anteriormente, que ele active e desactive simultaneamente a linha de saida Q H (a ponha simultaneamente a L e a H). Como tais ordens so contraditrias, o circuito no pode cumprir ambas. a o a Dada a estrutura do circuito, o resultado , como se pode ver na Tabela 12.2, a e ca pica, poss e vel, colocaao do valor L na linha Q H. Esta situao, embora at c no oferecendo quaisquer diculdades conceptuais e no implicando qualquer a a actividade no previs do circuito. a vel Uma outra situao, que por vezes confundida com a primeira, a que a seguir ca e e se descreve. Admita-se que se tem S H = R H = H. Como vimos, vir Q H = L neste a circuito. Admita-se agora que S H e R H transitam simultaneamente para L. Essa simultaneidade no poss se encararmos escalas de tempo muito nas a e vel em que, por exemplo, a diferena entre os tempos de propagaao dos sinais nas c c linhas de entrada seja signicativa. De qualquer modo, se a diferena entre uma c transio e outra for maior que a ordem de grandeza do tempo de atraso dos ca circuitos, prevalece, claro, a combinaao intermdia. No caso de ser menor, e c e tudo depende dos atrasos relativos dos circuitos e o resultado no previsvel. a e
Latches Latch SR

O circuito agora apresentado pertence a uma classe de circuitos que so desia gnados por latches. Neste caso concreto trata-se do latch SR. Um latch tal como um ip-op, que estudaremos no cap tulo seguinte pode ser denido como um dispositivo que armazena 1 bit de informaao e que pode ser mantido c indenidamente num qualquer de dois estados, comutando (mudando) de um para o outro por activaao de determinadas entradas. A diferena entre um c c latch e um ip-op ser explicada oportunamente, mas podemos adiantar desde a j que ela depende das entradas e do modo como as entradas forem actuadas. a Uma anlise rudimentar do circuito da Figura 12.5 revela que tem um coma portamento exactamente igual ao anterior. Este circuito tambm se emprega e muito. Alis, tem a vantagem de necessitar apenas de duas portas lgicas e do a o mesmo tipo.
S H
1 1

R H

Q H

Figura 12.5: Forma alternativa ` do latch da Figura 12.3 a Uma forma mais usual de desenhar o latch SR a da Figura 12.6. A saida Q H e , normalmente, a negaao da saida Q H excepto na situao particular em que e c ca as variveis de entrada S e R esto simultaneamente activas. Nessa situao a a ca teremos Q H = Q H = L. Esse caso , porm, de menor interesse, sendo, por e e isso, frequente que Q H seja representada por Q H ou, o que o mesmo, por e Q L, como mostra a gura.
Estados de um latch

Os n veis de tenso na sa Q H denem os estados do latch. Dizemos, assim, a da e de forma simplicada, que o latch se encontra, num determinado momento, no estado Q = H ou no estado Q = L (em vez de Q H = H ou Q H = L). Desta forma, a activaao da entrada S leva o latch para o estado Q = H, e a c activaao da entrada R leva o latch para o estado Q = L. c

12.1. LATCHES SIMPLES

203

S H

Q H ou Q L ou Q H

R H

Q H

Figura 12.6: Logigrama habitual de um latch SR Tabela 12.3: Tabela de verdade f sica do latch SR da Figura 12.6
S H L L H H R H L H L H Q H(t+t) Q H(t) L H L Q L(t+t) Q L(t) H L L Modo Manutenao c Reset Set Fora LL c

A tabela de verdade f sica para este circuito identica ` da Tabela 12.2. Na e a Tabela 12.3 representa-se uma verso abreviada, que tem em conta tambm a a e saida Q L. Notemos que na tabela esto identicadas vrios modos de funcionaa a mento do latch SR: o modo de manuteno do estado do latch, com S e R inactivas, em que o ca seu estado se mantm e, por conseguinte, se tem Q H(t+t) = Q H(t) ; do e mesmo modo, Q L(t+t) = Q L(t) ; o modo de Reset do latch, com R activa mas S inactiva, em que se faz o Reset da sa Q H, o que signica que se tem Q H(t+t) = L e, por conseguinte, da tambm se tem Q L(t+t) = H; e o modo de Set do latch, com S activa mas R inactiva, em que se faz o Set da sa Q H, o que signica que se tem Q H(t+t) = H e, por conseguinte, da tambm se tem Q L(t+t) = L; e, nalmente, e um modo de funcionamento sem nenhuma designaao especial, com S e R c activas, em que as sa Q H e Q L vem foradas a L; neste modo de da e c funcionamento, e apenas neste, as sa das no so complementares. a a Fazem, por isso, sentido as designaoes S e R, com o signicado de Set e c Reset, respectivamente e que se podem traduzir por pr (ou activar) e o repor (ou desactivar) a funao de sa Q. c da A interpretao da Tabela 12.3 deve, ento, ser feita nos seguintes moldes: ca a 1. na primeira linha as variveis de entrada S e R esto ambas inactivas, ou a a seja, no se quer fazer o Set nem o Reset do latch; nessas condioes, a c as funoes de sa Q e Q mantm o seu valor anterior; c da e

Modos de funcionamento de um latch SR Modo de manutenao c

Modo de Reset

Modo de Set

Funcionamento de um latch SR

204

CAP ITULO 12. LATCHES

2. na segunda linha faz-se o Reset do latch, j que R est activa (e S est a a a inactiva); ento, a funao de sa Q vem desactivada (a L) e Q vem a H; a c da 3. na terceira linha os papis das entradas vm trocados, isto , agora faz-se e e e o Set do latch, com S activa (e R inactiva); nessas condioes, a funao c c de sa Q vem activada (a H) e Q vem a L; da 4. nalmente, na quarta linha tenta fazer-se simultaneamente o Set e o Reset do latch; como vimos anteriormente, estas ordens so contraa ditrias na medida em que o circuito no pode simultaneamente activar e o a desactivar a funao Q, e ele responde colocando a L as funoes de sa c c da Q e Q. E tambm comum utilizar o circuito da Figura 12.7, que semelhante ao anterior e e mas com as variveis de entrada S e R activas no nivel L (por isso, este tipo de a latch designa-se habitualmente por latch S R).
S L
&

Latch S R

Q H

&

R L

Q L

Figura 12.7: Logigrama de um latch S R


Modos de funcionamento de um latch S R

A tabela de verdade f sica simplicada para este latch a da Tabela 12.4, em e que podemos constatar os mesmos modos de funcionamento do latch SR, excepto pelo facto de os n veis de actividade das entradas serem diferentes nos dois casos. Tabela 12.4: Tabela de verdade f sica de um latch S R
S L L L H H R L L H L H Q H(t+t) H H L Q H (t) Q L(t+t) H L H Q L(t) Modo Fora HH c Set Reset Manutenao c

As designaoes S L e R L so, naturalmente, equivalentes a S H e R H. c a


Funcionamento de um latch S R

A interpretao da Tabela 12.4 deve, ento, ser feita nos seguintes moldes: ca a 1. na primeira linha pretende efectuar-se simultaneamente o Set e o Reset do latch, o que o circuito no consegue fazer; a sua resposta consiste a em colocar a H as duas funoes de sa c da; 2. na segunda linha faz-se o Set do latch, j que S est activa e R inactiva; a a nessas condioes, a sa Q H vem activa (a H) e a outra sa a L; c da da 3. na terceira linha faz-se o Reset do latch, com R activa e S inactiva; ento, a sa Q H vem desactivada (a L) e a outra sa vem a H; a da da

12.2. LATCHES CONTROLADOS

205

4. nalmente, na ultima linha no se quer fazer o Set nem o Reset do a e latch; nessas condioes, as funoes de sa Q e Q mantm o seu valor c c da anterior. Como bvio, podem considerar-se latches SR com mais de uma entrada S ou eo R, como se exemplica na Figura 12.8 para um latch S R.
S1 L S2 L
&

Q H

R2 L R1 L

&

Q L

Figura 12.8: Logigrama de um latch S R com duas entradas de Set e duas de Reset Neste latch, a activao da saida Q H conseguida pela activaao de S1 ou ca e c de S2 (com o n L), indiferentemente, e a desactivaao da sa conseguida vel c da e pela activaao de R1 ou de R2 , tambm indiferentemente. c e A representaao destes circuitos de acordo com a norma IEC 60617-12 feita por c e um simbolo com contorno rectangular, como habitual, mas sem qualicador e geral, situao que extensiva a todos os elementos bi-estveis (latches e ipca e a -ops). Na Figura 12.9 representa-se o s mbolo IEC do latch S R da Figura 12.8.
S S R R S mbolo do latch S R

Figura 12.9: S mbolo IEC do latch S R da Figura 12.8 De notar que a norma IEC 60617-12 usa o qualicador de entrada S para designar a dependncia Set, e o qualicador de entrada R para designar a dependncia Reset. e e
Qualicadores de entrada S e R Dependncias Set (S) e e Reset (R)

12.2

Latches Controlados

Os latches at agora estudados respondem a mudanas de n e c veis nas suas entradas, logo que elas ocorrem. Um latch deste tipo usualmente designado por e assincrono porque o seu comportamento no sincronizado por qualquer sinal. a e Mas consideremos o circuito sequencial da Figura 12.10. Estamos, agora, na presena de um latch SR cujo comportamento depende do c n numa entrada de controlo, EN . Ou seja, temos agora um latch controlado vel do tipo SR, ou latch SR controlado, ou latch SR sincronizado, ou ainda latch SRT.

Latch ass ncrono

Latch SR controlado, ou sincronizado ou SRT

206
S H
&

CAP ITULO 12. LATCHES


S L

&

Q H

EN H
& &

R L

Q L

R H

Figura 12.10: Circuito de um latch SR controlado, ou sincronizado Como podemos observar, quando a varivel de entrada EN est a H as variveis a a a S e R aparecem complementadas nas linhas S L e R L de entrada para o latch S R da direita, e globalmente o circuito comporta-se como um latch SR. Pelo contrrio, quando a varivel de entrada EN est a L as portas AND da esquerda a a a do logigrama tm pelo menos uma entrada inactiva, e as suas sa e das vm a H, e pelo que o latch S R da direita mantm o seu estado. e Ou seja, a linha de entrada EN H, quando activa, permite que as restantes entradas regulem o funcionamento do latch, e quando inactiva inibe qualquer mudana deste, que mantm o seu estado. Esta entrada tem, portanto, e natuc e ralmente, o nome de Enable. Ento, a tabela de verdade f a sica que descreve o funcionamento deste latch (Tabela 12.5) semelhante ` que descreve o comportamento de um latch SR e a ass ncrono quando a varivel EN est activa. No caso contrrio, o circuito no a a a a reage `s mudancas nas entradas S e R. a Tabela 12.5: Tabela de verdade f sica de um latch SR controlado
EN H L H H H H S H L L H H R H L H L H Q H(t+t) Q H (t) Q H (t) L H H Q L(t+t) Q L(t) Q L(t) H L H Modo Manutenao c Manutenao c Reset Set Fora HH c

Funcionamento de um latch SR controlado

No caso de se estabelecer, com EN a L, uma congurao nas entradas S e R ca que faria o latch mudar de estado se EN estivesse activa, o que se passa que e essa mudanca ocorrer logo que EN que activa. a
Modos de funcionamento de um latch SR controlado

Podemos, por conseguinte, armar que os modos de funcionamento deste latch so idnticos ao do latch no controlado quando a entrada de Enable est activa, a e a a e que mantm o estado quando ela est inactiva. e a E importante chamar a atenao de novo para o que se passa com as variveis c a S e R activas. Neste caso, se EN H estiver a H, as saidas Q H e Q L passam a H como se pode observar na ultima linha da Tabela 12.5. Mas quando EN H passa a L, mantendo-se as variveis R e S a H, ocorre ` entrada do latch a a S R simples formado pelos dois ANDs da direita aquilo para que j tinhamos a chamado a atenao, isto , a passagem simultnea de L para H das suas c e a

12.2. LATCHES CONTROLADOS

207

duas linhas de entrada, S L e R L. Nestas condioes imposs c e vel, como se viu, prever a reacao do circuito. c Na Figura 12.11 ilustra-se, com um diagrama temporal, o funcionamento do latch SR controlado.
S H

R H

EN H Q H

Q H

Reset

Manuteno ca

Manuteno ca

Set Manuteno ca

Manuteno ca

Manuteno ca

Reset

Sa das = HH

Figura 12.11: Diagrama temporal com o funcionamento de um latch SR controlado, onde se identicam os estados pelos quais o circuito passa Na Figura 12.12 representa-se o s mbolo de um latch SR controlado com entradas activas a H, de acordo com a norma IEC 617-12,
1S 1R C1 S mbolo de um latch SR controlado

Figura 12.12: S mbolo IEC de um latch SR controlado O qualicador de entrada C1 um exemplo de dependncia de Controlo C, e e prevista na norma IEC 60617-12, que no essencial arma que todos os qualicadores de entrada ou de sa com o s da mbolo m apenas produzem a sua funao normal quando Cm est activa. c a Muitas vezes util dispor, nos latches SR, de entradas suplementares que pere mitam coloc-los num dos seus dois estados poss a veis, independentemente dos n veis de tenso nas entradas de Set e de Reset. a Com essas entradas suplementares podemos, ento, denir um estado incial para a o latch, antes do seu funcionamento normal. Com efeito, no podemos prever a o estado de um latch SR alis, de qualquer latch ou ip-op (no cap a tulo seguinte) quando inicialmente o ligamos ` tenso de alimentao, podendo a a a ca sa Q assumir o n H ou o n L, e a sa Q o seu complemento. Da a da vel vel da necessidade dessas outras entradas. As entradas suplementares, que recebem o nome de Preset (a que leva o latch
Estado inicial Qualicadores de entrada C1 Dependncia de e Controlo (C)

Manuteno ca

Set

Set

Preset e Clear

208

CAP ITULO 12. LATCHES

Entradas ass ncronas ou directas S mbolo de um latch SR controlado com Preset e Clear

para o estado Q H = H) e de Clear (a que leva o latch para Q H = L), so a entradas ass ncronas ou directas, na medida em que o efeito das suas activaoes c imediato, no dependendo das entradas S ou R. e a Na Figura 12.13(a) apresenta-se o logigrama e na parte (b) o s mbolo IEC de um latch SR controlado com entradas ass ncronas activas a L.
PR L S H
& &

Q H 1S 1R

EN H
& &

C1 S R (b) CLR L (a)

Q L

R H

Figura 12.13: (a) Latch SR controlado ao qual se acrescentaram entradas ass ncronas de Preset e de Clear activas a L; (b) S mbolo IEC do latch O funcionamento deste latch , no essencial, o seguinte: (i) quando as entradas e de Preset e de Clear esto inactivas, o latch comporta-se como um latch SR a controlado normal; (ii) quando a entrada de Preset est activa e a de Clear a inactiva, com a entrada de Enable inactiva, o latch colocado no estado de Set e (Q H = H); (iii) quando a entrada de Clear est activa e a de Preset inactiva, a com a entrada de Enable inactiva, o latch colocado no estado de Reset (Q H = e = L); e (iv) no devemos activar simultaneamente as entradas de Preset e de a Clear (porqu?). e De notar, no s mbolo IEC da Figura 12.13(b), a designaao S e R dada aos qualic cadores das entradas ass ncronas, que se referem, respectivamente, `s entradas a Preset e Clear. Esses qualicadores denotam os comportamentos ass ncronos dessas entradas, assim se distinguindo das entradas com qualicadores 1S e 1R que dependem do qualicador de entrada C1 (entrada de Controlo), e que correspondem `s entradas de Set e de Reset normais deste latch. a Os latches SR controlados so circuitos largamente usados, mas no constituem a a os unicos tipos de latch existentes. Um outro tipo um latch com apenas uma e entrada sincronizada e que memoriza o n de tenso presente nessa entrada vel a em dado momento. Suponhamos que, num latch SR controlado, obrigamos a entrada R a ser igual a ` negaao da entrada S. Neste caso, na tabela de verdade f c sica do latch SR restariam apenas trs linhas, como se sugere na Tabela 12.6. e Tudo se passa como se a funao de sa Q seguisse o n de tenso na varivel c da vel a a de entrada S. E claro que a verso ass a ncrona deste latch tem pouco interesse prtico. Com efeito, o valor de Q ser, nesse caso, sempre igual ao de S e, a a portanto, o efeito de memria do circuito no existe. Tal no o caso na o a a e verso de latch controlado que acabmos de estudar, uma vez que a a funao a a c a de memria garantida quando a linha EN H est inactiva. o e

12.2. LATCHES CONTROLADOS

209

Tabela 12.6: Tabela de verdade f sica do latch SR controlado, modicada por forma a obrigar a entrada R a ser sempre igual ` negao da entrada S a ca
EN H L H H S H L H R H H L Q H(t+t) Q H(t) L H Q L(t+t) Q L(t) H L

O circuito modicado est representado na Figura 12.14. a


D H
&

S EN H
&

Q H Q L

R
1

Figura 12.14: Logigrama de um latch D controlado Note-se que modicmos a designaao da entrada S, substituindo-a por D. Esta a c designaao provm da palavra inglesa Data (dados), uma vez que este circuito c e muito usado para memorizar dados. Este tipo de latch conhecido por latch e e D controlado, e tem o mesmo comportamento em relaao ` entrada de Enable c a que o latch SR controlado. Uma arquitectura alternativa para o latch D controlado vem representada na Figura 12.15, e fcil a constataao de que o funcionamento do circuito no se e a c a altera.
D H
&

Latch D controlado

S R
&

Q H Q L

EN H

Figura 12.15: Logigrama alternativo para um latch D controlado Neste tipo de latch, como vimos, quando a varivel EN est activa a funao Q a a c reproduz a varivel de entrada D. E usual designar este tipo de funcionamento a por funcionamento transparente. A tabela de verdade f sica, ser, portanto, a que se apresenta na Tabela 12.7, a admitindo que as variveis D e EN so activas a H. a a

Funcionamento transparente

210

CAP ITULO 12. LATCHES Tabela 12.7: Tabela de verdade f sica de um latch D controlado
EN H L H H D H L H Q H(t+t) Q H(t) L H Q L(t+t) Q L(t) H L Modo Manutenao c Copia Copia

Modos de funcionamento Modo de manutenao c

Desta tabela podemos deduzir os seguintes modos de funcionamento para este latch: o modo de manuteno do estado do latch, com a entrada de Enable inactiva, ca em que o seu estado se mantm e, por conseguinte, se tem Q H(t+t) = e = Q H(t) ; do mesmo modo, Q L(t+t) = Q L(t); e o modo de cpia, com Enable activa, em que vem copiado para a sa Q H o da o n de tenso que se encontrar aplicado ` entrada D H. vel a a A representaao do latch D controlado, de acordo com a norma IEC 60617-12, c est ilustrada na Figura 12.16. a
1D C1

Modo de cpia o

S mbolo do latch D controlado

Figura 12.16: S mbolo IEC para um latch D controlado


Qualicador de entrada D Entrada de dados

O qualicador de entrada D siginica, na norma IEC 60617-12, uma entrada de dados.

12.3

Referncias Bibliogrcas e a

Mano, Morris M., and Kime, Charles R. Logic and Computer Design Fundamentals, 2nd ed., Prentice Hall International, Inc., New Jersey, USA, 2000, Secao 5.2. c

12.4

Exerc cios

Nota: os exerc cios identicados com um asterisco () esto resolvidos em a SD:ER. 12.1 Porque que o circuito da Figura 12.1, na pgina 199, sequencial? Como e a e que ele se diferencia de um circuito combinatrio? e o 12.2 Admitindo que o circuito da Figura 12.1, na pgina 199, sequencial, a e em que medida que o seu comportamento depende no s dos valores e a o nas entradas em cada momento, mas tambm do comportamento passado e

12.4. EXERC ICIOS

211

dessas mesmas entradas, como resulta da deniao de circuito sequencial c dada no in cio deste cap tulo? E quo longe no passado que temos a e que procurar para assegurar o comportamento presente do circuito? 12.3 Para cada um dos circuitos representados na Figura 12.17, desenhe um diagrama temporal semelhante ao da Figura 12.2 e responda `s seguintes a questes: o
X H
&

S H

X H

&

S H

(a)

(b)

X H

S H

X H

=1

S H

(c)

(d)

Figura 12.17: Exemplos de 4 circuitos a) b) trata-se de um circuito combinatrio ou sequencial? o poder servir como elemento de memria elementar? a o

12.4 Justique o andamento do diagrama temporal da Figura 12.4, na pgina 201. a 12.5 Para cada um dos circuitos representados na Figura 12.17, responda, justicando, se se trata de um latch. 12.6 Certique-se que o circuito da Figura 12.5, na pgina 202, possui o mesmo a comportamento do da Figura 12.3, na pgina 200. a () 12.7 Na Tabela 12.3 da pgina 203, identicar com setas adequadas a transio a ca ou transioes entre linhas da tabela que correspondem ` situao em que c a ca se tem S H = R H = H, com Q H = L e Q L = L, e em que se provoca a transio simultnea para L de S H e R H, admitindo que os tempos de ca a propagaao das portas so diferentes. O que podemos deduzir em relaao c a c ao estado nal do latch? () 12.8 Completar o diagrama temporal da Figura 12.18, representativo do funcionamento de um latch SR em determminadas condioes de n c veis de tenso nas entradas, admitindo que incialmente Q H = H e Q L = L, e a que o tempo de propagaao das duas portas de 10 ns. Como se comporta c e o latch nestas condioes? c 12.9 Complete o diagrama temporal da Figura 12.19, que representa o funcionamento de um latch S R em determminadas condioes de n c veis de tenso nas entradas. Identique ao longo do diagrama cada um dos esa tados por que passa o latch, de forma semelhante ` que se apresenta na a Figura 12.11, na pgina 207. a 12.10 Desenhe o s mbolo IEC dos latches das Figuras 12.6, na pgina 203, e a 12.7, na pgina 204. a

212

CAP ITULO 12. LATCHES

S H

R H Q H

Q L 0 50 100 150 140 200 t (ns)

Figura 12.18: Diagrama temporal incompleto que descreve o comportamento de um latch SR em determinadas condioes de n c veis de tenso nas entradas a
S L

R L Q H

Q L

Figura 12.19: Diagrama temporal incompleto que descreve o comportamento de um latch S R em determinadas condioes de n c veis de tenso nas entradas a 12.11 Para o circuito da Figura 12.20(a), complete o correspondente diagrama temporal da Figura 12.20(b). Desenhe ainda poss veis logigramas para o latch SR.
A H

B H A H B H C H 1D C1 Q1 H (a) Q2 H (b) Q1 H S R Q2 H C H

Figura 12.20: (a) Circuito do Exerc 12.11; (b) diagrama temporal incompleto cio para o circuito

12.4. EXERC ICIOS

213

() 12.12 Considere o latch SR controlado da Figura 12.13, na pgina 208, com a entradas ass ncronas de Preset e de Clear activas a L. Mostre que o comportamento deste latch o que se explicou no texto que acompanha a e gura. () 12.13 Considere a modicaao da Figura 12.21, que transforma um latch SR c a c controlado num latch JK controlado. A ideia por detrs desta modicaao tentar obviar aos problemas levantados pelos latches SR controlados, e apontados na pgina 206 e nos Exerc a cios 12.7 e 12.8 (diculdade em prever o estado nal do latch ou o latch entrar em oscilaao quando as c entradas esto todas a H e se muda a entrada de Enable de H para L). a Ser que o latch JK controlado resolve esses problemas? Analise o seu a funcionamento.
&

Latch JK controlado

J H

&

Q H

EN H
& &

K H

Q L

Figura 12.21: Latch JK controlado, obtido por modicaao de um latch SR c controlado 12.14 O logigrama e o s mbolo IEC da Figura 12.22 representam um latch SR com preponderncia do Set. Analise o funcionamento do circuito explia cando o que se entende por preponderncia do Set, e estabelea uma a c tabela de verdade f sica para o latch. Como poderia modicar o logigrama por forma a obter um latch SR com preponderncia do Reset? E qual ser a a o seu s mbolo IEC?
S H
1
1

Q L S1 1

&

R Q H

R H (a)

(b)

Figura 12.22: (a) Logigrama de um latch SR com preponderncia do Set; (b) a s mbolo IEC correspondente 12.15 Desenhe um circuito que, quando actuado por um boto, muda de estado a de cada vez que o boto sucessivamente activado e desactivado. a e 12.16 Considere o circuito da Figura 12.23, que corresponde a um latch SR modicado, e complete o diagrama temporal nele inclu do.

214

CAP ITULO 12. LATCHES

1 S H

&

&

X H

Q H

1 R H

&

(a)

S H

R H

X H Q H (b)

Figura 12.23: (a) Logigrama do latch SR modicado do Exerc cio 12.16; e (b) diagrama temporal a completar 12.17 Dado o circuito da Figura 12.24(a), complete o correspondente diagrama temporal, na Figura 12.24(b). 12.18 O fabricante de um latch SR controlado como o da Figura 12.10, na pgina 206, garante que os tempos de propagaao tpHL nas sa a c das Q H e Q L so maiores do que os tempos tpLH correspondentes. Construa um a diagrama temporal que prove ou no que o fabricante tem razo. a a

12.4. EXERC ICIOS

215

A H B H S R Q1 H

1D C1

Q2 H

(a)

A H

B H Q1 H

Q2 H (b)

Figura 12.24: (a) Circuito do Exerc 12.17; e (b) diagrama temporal a comcio pletar

216

CAP ITULO 12. LATCHES

Cap tulo 13

Flip-ops
13.1 Flip-ops Master-slave

Em muitas aplicaoes inconveniente o uso de elementos de memria com func e o cionamento transparente. Seria interessante dispor de elementos em que a mudana de estado, a ocorrer, se d num momento bem determinado e sob o c e controlo do utilizador, independentemente do momento em que as entradas que provocam a alteraao se estabelecem. c A todos os elementos de memria em que no existe transparncia e em que as o a e eventuais mudanas de estado ocorrem em ancos de uma linha de sincronizao, c ca chamaremos ip-ops. A linha de sincronizaao usualmente designada por entrada de relgio, ` qual c e o a so aplicados impulsos de relgio. a o Convm referir aqui que, noutros textos, se chamam indistintamente ip-ops e aos elementos que aqui designamos por ip-ops e aos latches. Em qualquer caso, trata-se de uma conveno e nada de fundamental est em jogo nesta ca a contradio. ca Consideremos, ento, o ip-op com o circuito da Figura 13.1. a
S H R H CP H 1S 1R C1
1

Flip-op Entrada de relgio o Impulsos de relgio o

1S 1R C1

Q H Q L

CP L

Figura 13.1: Logigrama de um ip-op SR master-slave que comuta nos ancos descendentes Este circuito pode ser redesenhado para mostrar a estrutura completa com portas lgicas, como mostra a Figura 13.2. o O funcionamento do circuito pode ser seguido com alguma facilidade. Assim, com a varivel de entrada CP desactivada, o latch de entrada est num estado a a 217
Funcionamento de um ip-op SR master-slave

218
S H
& &

CAP ITULO 13. FLIP-FLOPS

&

&

Q H

CP H
& & & &

Q L

R H
1

CP L

Figura 13.2: Logigrama de um ip-op SR master-slave que comuta nos ancos descendentes, em que se mostram todas as portas lgicas envolvidas o qualquer e mantm o segundo latch no mesmo estado, uma vez que CP L est e a ao n H e permite que as suas entradas o controlem. vel Quando CP H passa a H, o segundo latch ca isolado, mantendo o estado anterior, uma vez que CP L est no n L. O primeiro latch, pelo contrrio, a vel a est agora aberto ` inuncia das entradas e assume o estado que estas lhe a a e impem. o Quando CP H volta a L, temos o primeiro latch de novo isolado das entradas e ligado ao segundo, inuenciando-o e fazendo-o assumir o estado que as entradas lhe impuseram. Portanto, globalmente, o ip-op ca sens vel aos n veis nas entradas durante o tempo em que a varivel CP est activa, mas as suas sa a a das no reagem a a c c eventuais condioes nas linhas S H e R H que provoquem mudana. A reacao c das sa das surge apenas aps a passagem da varivel CP de activa para inactiva, o a isto , no anco descendente da linha CP H (o outro anco designado por e e anco ascendente). O tipo de arquitectura que acabmos de descrever para o ip-op das Figua ras 13.1 e 13.2, e que assenta na existncia de um latch de entrada e noutro de e sa da, denomina-se master-slave, sendo o primeiro latch o master e o segundo o slave. O ip-op em questo designa-se, ento, e de forma simplicada, por a a ip-op SR master-slave. Por outro lado, este tipo de ip-op em particular comuta (ou muda de estado) nos ancos descendentes dos impulsos de relgio. Diz-se, ento, que os ancos o a descendentes dos sinais de relgio so os ancos de comutao do ip-op. o a ca Naturalmente, existem outros ip-ops que comutam nos ancos ascendentes dos impulsos de relgio. o A Tabela 13.1 descreve o funcionamento de um ip-op SR master-slave pela sua tabela de verdade f . sica Desta tabela podemos deduzir os seguintes modos de funcionamento para este ip-op: o modo de manuteno do estado do ip-op, quando no existe anco de ca a comutaao na entrada de relgio ou, existindo anco, as entradas S e R c o

Flanco descendente e ascendente

Flip-op master-slave Flip-op SR master-slave Comutaao nos ancos c descendentes Flanco de comutaao c

Tabela de verdade f sica

Modos de funcionamento Modo de manutenao c

13.1. FLIP-FLOPS MASTER-SLAVE

219

Tabela 13.1: Tabela de verdade f sica de um ip-op SR master-slave que comuta nos ancos descendentes

S H(t) L L H H

R H(t) L H L H

CP H

Q H(t+1) Q H (t) L H ? Q H (t)

Q H(t+1) Q H (t) H L ? Q H (t) Q H (t) Q H (t)

Modo Manutenao c Reset Set Manutenao c Manutenao c Manutenao c

L H

Q H (t) Q H (t)

esto inactivas, em que o seu estado se mantm e, por conseguinte, se tem a e Q H(t+1) = Q H(t) ; do mesmo modo, Q L(t+1) = = Q L(t) ; o modo de Reset do ip-op, quando existe anco de comutaao e R est c a activo e S inactivo, em que se faz o Reset da sa Q H, o que tem como da consequncia que Q H(t+1) = L e, por conseguinte, Q L(t+1) = H; e o modo de Set do ip-op, quando existe anco de comutaao e S est activo c a e R inactivo, em que se faz o Set da sa Q H, o que tem como consequncia da e que Q H(t+1) = H e, por conseguinte, Q L(t+1) = L; e um modo de funcionamento sem nenhuma designaao especial, quando existe c anco de comutaao mas S e R esto ambas activas, em que no se pode c a a prever o estado nal do ip-op; neste modo de funcionamento no se garante a que as sa das sejam complementares. O facto de a reacao do ip-op, no caso descrito na quarta linha da tabela, c no ser previs resultante de uma situao semelhante, j analisada para o a vel e ca a latch SR controlado. De facto, nas circunstncias que imediatamente antecedem as que so referidas a a nessa linha da tabela, existe actividade simultnea das variveis S e R e um n a a vel H no impulso aplicado ` linha CP H. Quando a linha CP H vem a L, o latch a master tem um comportamento que depende dos tempos de propagaao das c suas portas de entrada, ou seja, um comportamento que no podemos prever. a E sendo o seu comportamento imprevis vel, o do slave tambm o quando e e aparece o anco de comutaao. Logo, a reacao global do ip-op imprevis c c e vel. Este facto sucientemente desagradvel para que se tenha procurado obvi-lo. e a a Nessas circunstncias surgiu um novo tipo de ip-op, o ip-op JK master-slave, a com um comportamento semelhante ao do ip-op SR master-slave mas em que se impe que, no caso das duas entradas estarem activas, e perante um anco o de comutaao num impulso de relgio, o ip-op altere o seu estado. Por outras c o palavras, redeniu-se a correspondente linha da Tabela 13.1. O funcionamento de um ip-op JK master-slave est, assim, descrito pela a tabela de verdade f sica da Tabela 13.2, de onde se destacam os mesmo modos

A designaao Q H(t+1) c identica o nvel de tenso na sada Q H de a um ip-op no instante t + 1 que se segue a um anco de comutao ca (comparar com a designaao c Q H(t+t) utilizada nos latches para identicar o nvel de tenso na sada, a decorrido que o seu e tempo de propagao) ca Modo de Reset Modo de Set

Flip-op JK master-slave

Tabela de verdade f sica

220

CAP ITULO 13. FLIP-FLOPS

Tabela 13.2: Tabela de verdade f sica de um ip-op JK master-slave que comuta nos ancos descendentes
J H(t) L L H H K H(t) L H L H L H CP H Q H(t+1) Q H(t) L H Q H(t) Q H(t) Q H(t) Q H(t) Q H(t+1) Q H (t) H L Q H (t) Q H (t) Q H (t) Q H (t) Modo Manutenao c Reset Set Comutaao c Manutenao c Manutenao c Manutenao c

Modo de comutao ca

de funcionamento do ip-op SR master-slave, e ainda um modo de comutao ca em que os n veis de tenso nas sa a das mudam (comutam). Na Figura 13.3 ilustra-se a arquitectura de um ip-op JK master-slave.

J H

&

&

Q H

&

&

Q H

CP H
& & & &

K H

Q L
1

Q L

CP L

Figura 13.3: Logigrama de um ip-op JK master-slave que comuta nos ancos descendentes E necessrio, desde j, chamar a atenao para certas particularidades que o a a c funcionamento deste circuito apresenta.
Funcionamento de um ip-op JK master-slave

Suponhamos, assim, que Q H est no n H e que CP H passa de L para H. a vel Se as variveis J e K estiverem inactivas, nada se altera. a Mas analise-se, agora, o que se passa quando a varivel de entrada K passa a a estar activa (K H = H), mantendo-se CP activa. Ento, o primeiro latch a muda de estado, isto , Q H, que estava ao n H, passa, por acao de K, ao e vel c n L. Repare-se, agora, que futuras alteraoes nos n vel c veis de tenso aplicados a a `s variveis J e K j no se repercutiro no funcionamento do latch. De facto, a a a a se K deixar de estar activa, as entradas do master deixaro tambm de estar a e activas, o que, de qualquer forma, no altera o novo n ` sa do latch. a vel a da Mais ainda, repare-se que, como a funao de sa Q permanece activa, a linha c da Q L est ao n L, o que bloqueia o AND onde entra a varivel J, mantendo a vel a a entrada superior do master inactiva. Assim, mesmo que a varivel J seja a

13.1. FLIP-FLOPS MASTER-SLAVE

221

activada, isso no se reectir numa mudana de estado do master. Portanto, a a c criou-se uma situaao em que o ip-op mudar irremediavelmente de estado c a vel quando CP H voltar ao n L. Esta anlise mostra, assim, que: a vel L, o primeiro latch no vem inuenciado pelas ena a) com CP H ao n tradas; b) com CP H ao n vel H, o primeiro latch ca receptivo `s entradas e o a segundo isolado do primeiro. Se, durante esse intervalo de tempo, alguma vez as entradas forem tais que motivem a alteraao de estado do latch c master, mesmo que tal conguraao no seja a ultima antes de CP H c a passar a L, o ip-op mudar de estado logo que CP H volte a L; a c) quando CP H passa de H a L, isola-se novamente o master das entradas, enquanto o slave copia o estado do master; isto d-se sempre neste tipo a de ip-ops e , por vezes, fonte de erros de utilizaao quando no levado e c a em conta. Recomenda-se, por isso, muita atenao a esta caracter c stica. Este tipo de comportamento tem o nome de ones catching, que se justica pelo facto de poder ser usado como detector de 1s. A t tulo de exemplo mostra-se, na Figura 13.4, um diagrama temporal com uma evoluao poss c vel para as formas de onda nas entradas de um ip-op JK master-slave. De notar que o impulso provocado em K H provoca o Reset do master, Reset este que se repercute nas sa das do ip-op assim que aparece o prximo anco descendente o em CP . E mais impulsos que ocorressem em K H com a entrada CP activa apenas serviriam para conrmar o estado de Reset do master e do ip-op. Os ip-ops deste tipo tem o s mbolo IEC da Figura 13.5. Aqui, o 1 que antecede o J e o K e que se segue ao C nos qualicadores de entrada 1J, 1K e C1, indica que existe um efeito de disparo pela entrada C1 (dependncia de Controlo, C), que condiciona a acao das entradas 1J e 1K (os e c n veis nestas entradas apenas so levados em consideraao pelo ip-op enquanto a c C1 estiver activada, a H).
Ones catching

S mbolo do ip-op JK master-slave Qualicadores de entrada 1J, 1K e C1 Dependncia de e Controlo (C)

Por outro lado, como sabemos j, a acao destas duas entradas apenas tem a c efeito nas sa das do ip-op depois de o master ter transferido para o slave essa acao (manter o estado, fazer o Reset da sa Q, etc.), isto , nos ancos c da e descendentes dos impulsos de relgio. A indicaao deste modo de funcionamento o c vem dada pelo s mbolo de atraso colocado junto `s sa a das (qualicador de sa da ). No caso do ip-op da Figura 13.5, a entrada de relgio vem activada (a H) o depois de ocorrer um anco ascendente num impulso de relgio, pelo que no o anco seguinte, o anco descendente, as sa das reectem o funcionamento que resulta dos n veis aplicados `s entradas J e K enquanto C1 est activada. O a a comportamento ones catching no , em si, representado no s a e mbolo. Muitas vezes util dispor nos ip-ops, tal como nos latches, de entradas sue plementares que permitam coloc-los num dos seus dois estados poss a veis, independentemente dos n veis de tenso nas entradas sincronizadas por CP . Essas a entradas suplementares recebem, como vimos, o nome de Preset (a que leva o ip-op para o estado Q H = H) e de Clear (a que leva o dispositivo para

S mbolo de atraso Qualicador de sa da

Preset e Clear

222

CAP ITULO 13. FLIP-FLOPS

J H

K H

CP H Q H

Q L

Q H

Q L

Manuteno ca

Manuteno ca

Manuteno ca Reset Manuteno ca

Manuteno ca

Manuteno ca

Master

Manuteno ca

Copia master Sa das = LH

Slave

Figura 13.4: Diagrama temporal com o comportamento de um ip-op JK master-slave que ilustra o fenmeno de ones catching o

Copia master Sa das = HL

1J C1 1K

Figura 13.5: S mbolo IEC de um ip-op JK master-slave que comuta nos ancos descendentes dos impulsos de relgio o Q H = L), e so designadas por entradas ass a ncronas ou directas. Neste sentido, essas entradas distinguem-se das outras, aquelas que estudmos anteriormente, a que se designam por entradas s ncronas.
tradas ass ncronas de Set (Preset) e de Reset (Clear) activas a L.

Entradas ass ncronas ou directas Entradas s ncronas Entradas ass ncronas de Set (S) e de Reset (R) Qualicadores de entrada S e R

Na Figura 13.6 ilustra-se o logigrama de um ip-op JK master-slave com en E na Figura 13.7 encontra-se o simbolo IEC desse ip-op. E de notar que os qualicadores de entrada R e S, que se referem, respectivamente, `s entradas a Clear e Preset, denotam os seus comportamentos ass ncronos, no dependentes a do qualicador de entrada C1.

Copia master Sa das = HL

Copia master Sa das = LH

Manuteno ca

Set

Troca

Troca

13.1. FLIP-FLOPS MASTER-SLAVE


PR L
& &

223

Q H

&

&

J H CP H K H
& & & &

Q H

Q L
1

Q L

CP L

CL L

Figura 13.6: Logigrama de um ip-op JK master-slave com entradas ass ncronas de Preset e de Clear activas a L e que comuta nos ancos descendentes dos impulsos de relgio o
1J C1 1K S R

Figura 13.7: S mbolo IEC de um ip-op JK master-slave com entradas ass ncronas de Preset e de Clear activas a L e que comuta nos ancos descendentes dos impulsos de relgio o Da mesma forma que aconteceu anteriormente, poss e vel denir um ip-op D master-slave, com uma entrada s ncrona D. Basta considerar um ip-op SR master-slave em que a entrada R feita sempre igual ` negao da entrada S, e a ca como j foi feito no caso dos latches. a

Flip-op D master-slave

O s mbolo IEC de um tal ip-op o que se representa na Figura 13.8. Notemos e que este ip-op comuta nos ancos ascendentes. o que se traduz na incluso a de um tringulo na entrada de relgio, orientado no sentido do uxo dos sinais. a o
1D C1 S R

S mbolo do ip-op D master-slave

Figura 13.8: S mbolo IEC de um ip-op D master-slave com entradas ass ncronas de Preset e de Clear activas a L e que comuta nos ancos ascendentes dos impulsos de relgio o A incluso deste tringulo tem o seguinte signicado: quando a entrada de a a relgio est inactiva (a H), os n o a veis de tenso na entrada s a ncrona, D, no a afectam o funcionamento do ip-op; quando a entrada de relgio passa a car o

224

CAP ITULO 13. FLIP-FLOPS

activa (porque foi gerado um anco descendente que a levou ao n vel L), o master ca receptivo aos n veis na entrada s ncrona; e aquando do anco seguinte (ascendente) os n veis do master so transmitidos ao slave e aparecem na sa a da do ip-op. Logo, este ip-op comuta nos ancos ascendentes dos impulsos de relgio, ao contrrio do que sucedia com os ip-ops master-slave anteriores. o a

13.2

Flip-ops Edge-triggered

Flip-op edge-triggered

Os ip-ops master-slave que acabmos de analisar no cobrem todos os tipos a a de comportamento poss em relaao ` entrada de relgio. Um outro tipo de vel c a o reacao a que os ip-ops usualmente chamados edge-triggered apresentam. c e Nestes ip-ops, a reacao, a dar-se, ocorre num determinado anco do impulso c de relogio e independente dos n e veis nas entradas, excepto num curto intervalo de tempo em torno desse anco. Examinemos o ip-op D edge-triggered da Figura 13.9. (Nota: A descriao c seguinte est inclu para satisfazer a curiosidade do estudante. A estrutura a da interna dos edge-triggered no faz parte da matria da disciplina; porm, o uso a e e deste tipo de ip-ops, faz!)
1

Flip-op D edge-triggered

D H

&

&

&

Q H

CP H
& &

Q L

&

Figura 13.9: Flip-op D edge-triggered que comuta nos ancos ascendentes dos impulsos de relgio o
Funcionamento de um ip-op D edge-triggered

O funcionamento deste circuito j um pouco mais dif de seguir. Para e a cil comear, conveniente encar-lo como sendo constitu por 3 latches SR simc e a do ples, conforme se indica na gura. Repare-se, agora, no seguinte: enquanto a linha CP H se mantm em L, as e sa das dos ANDs 2 e 3 esto em H e, por consequncia, o latch de sa mantera e da -se- no estado em que se encontrava anteriormente, independentemente da a entrada D. Isto , o ip-op mostra na sa o valor anteriormente memorizado. e da

13.2. FLIP-FLOPS EDGE-TRIGGERED

225

Esta entrada D tem, por outro lado, inuncia directa nas sa e das dos ANDs 1 e 4. Com efeito, estando as sa das de 2 e 3 em H, a sa do AND 1 igual da e a D, enquanto que o AND 4 assume o n vel oposto. As variaoes de n em c vel D reectem-se nestes dois pontos mas no avanam mais enquanto os circuitos a c 2 e 3 estiverem bloqueados pela inactividade da varivel CP . Portanto o sinal a a CP H est a aguentar os dois latches da primeira camada. Vamos agora supor, para a continuao da nossa anlise, que D H assume o ca a valor H. A anlise podia ser identicamente feita para D H em L. a Teremos, nesse caso, que a sa do AND 1 assume o n H e a do AND 4 o da vel n L. Se agora CP passar a estar activa, isto , se CP H vier a H, verica-se vel e o seguinte: as entradas do AND 2 esto todas com o valor H, tal como as do a AND 3 com excepao, nesta ultima, da entrada que provm da sa do AND c e da 4, que est em L. Ento, a sa do AND 2 passar a L, originando um estado a a da a estvel no latch superior. A sa do AND 3 continuar a H, mantendo um a da a estado estvel no latch inferior. O latch de sa assume o estado H, isto , a da e copia o valor da linha D H. A partir de agora as alteraoes na entrada D no afectam o circuito. De facto, c a estando a sa do AND 2 a L, cam impostas a H as sa da das dos ANDs 1 e 3 impossibilitando, por este meio, qualquer inuncia de D no latch de sa e da. Repare-se que, quando o latch superior da primeira camada reagiu, bloqueou qualquer mudana no latch inferior a partir desse momento e at CP H voltar c e a L e retomar o n H. vel Quando a linha CP H volta a assumir o valor L, as sa das dos NANDs 2 e 3 voltam a H e retoma-se a situao inicial. Assim, nesta transiao, no ocorre ca c a qualquer mudana de estado. c Na Figura 13.10 apresenta-se um diagrama temporal que ilustra o comportamento do ip-op D edge-triggered da Figura 13.9. Recomenda-se uma observaao atenta desse diagrama em conjunao com a logigrama do ip-op. c c Assume-se que, inicialmente, a linha Q H est inactiva. a Recapitulando: no ip-op D edge-triggered da Figura 13.9 a sa Q H assume da o estado da entrada D H quando se d uma transiao L H na entrada CP H, a c e mantm o estado, independentemente do n em D H, enquanto CP H est e vel a a H, a L, ou ainda durante as transies H L nessa linha. co O ip-op s reage, portanto, quando na entrada CP H ocorrem ancos asceno dentes dos impulsos de relgio. Diz-se, por isso, que este ip-op comuta nos o ancos ascendentes desses impulsos.
de verdade f sica.
Comutaao nos ancos c ascendentes Tabela de verdade f sica de um ip-op D edge-triggered Modos de funcionamento Modo de manutenao c

Na Tabela 13.3 descreve-se o funcionamento deste ip-op atravs da sua tabela e

Da tabela deduz-se existirem os seguintes modos de funcionamento para este ip-op: o modo de manuteno do estado, quando no existe anco de comutaao, em ca a c que o estado do ip-op se mantm e, por conseguinte, se tem Q H(t+1) = e = Q H(t); do mesmo modo, Q L(t+1) = Q L(t); e o modo de cpia do ip-op, quando existe anco de comutaao, em que se o c copia para a sa Q H o n de tenso que se encontrar aplicado ` entrada da vel a a D H.

Modo de cpia o

226

CAP ITULO 13. FLIP-FLOPS

CP H

D H

AND1 H

AND2 H

AND3 H

AND4 H Q H

Q L

Figura 13.10: Diagrama temporal com o funcionamento do ip-op D edge-triggered da Figura 13.9 Tabela 13.3: Tabela de verdade f sica de um ip-op D edge-triggered que comuta nos ancos ascendentes
D H(t) L H L H CP H Q H(t+1) L H Q H (t) Q H (t) Q H (t) Q H(t+1) H L Q H (t) Q H (t) Q H (t) Modo Cpia o Cpia o Manutenao c Manutenao c Manutenao c

Como bvio existem tambm outros tipos de ip-ops edge-triggered. So e o e a comuns os ip-ops JK. Na Figura 13.11 ilustra-se a representaao deste tipo de ip-ops de acordo com c a norma IEC 60617-12.
S mbolo do ip-op D edge-triggered S mbolo do ip-op JK edge-triggered Qualicadores de entrada e

Na parte a) da gura representa-se um ip-op D edge-triggered e na parte b) um ip-op JK, em ambos os casos que comutam nos ancos descendentes dos impulsos de relgio. o o O tringulo interior ao s a mbolo (qualicador de entrada ), na linha de relgio, indica que o ip-op do tipo edge-triggered. e A presena de um tringulo exterior ` entrada de relgio do ip-op, orientado c a a o no sentido do uxo dos sinais (qualicador de entrada ), indica que o ip-op comuta nos ancos descendentes. Se o tringulo estiver ausente, o ip-op a comuta nos ancos ascendentes do sinal de relgio. o

13.3. TEMPORIZACOES NOS FLIP-FLOPS

227

1D C1 S R (a)

1J C1 1K S R (b)

Figura 13.11: (a) S mbolo IEC de um ip-op D edge-triggered com entradas ass ncronas de Preset e de Clear e que comuta nos ancos descendentes dos impulsos de relgio; (b) s o mbolo idntico para um ip-op JK edge-triggered e
ncronas de Set Em ambos os casos, representam-se nos s mbolos entradas ass (Preset) e de Reset (Clear).

Entradas ass ncronas de Set (S) e de Reset (R)

13.3

Temporizaes nos Flip-ops co

Os ip-ops so caracterizados, do ponto de vista temporal, por vrios parmea a a tros. Para comear, o tempo de propagaao. O tempo de propagao (ou tempo de c c ca atraso) , denido de forma geral, como o intervalo de tempo que decorre entre o e instante em que ocorre o anco activo do sinal de relgio (anco de comutaao) o c e o instante em que as sa das vem actualizadas. E representado por tpd . e O tempo de propagaao deve ser distinguido consoante ocorrer um anco asc cendente ou um anco descendente numa sa de um ip-op, em resposta ao da aparecimento de um anco de comutaao. Se, por exemplo, na sa Q ocorrer c da uma transiao do n L para o n H, o tempo de propagaao designa-se por c vel vel c tpLH . No caso contrrio, designa-se por tpHL , sendo que tpLH e tpHL podem ter a valores diferentes. Por outro lado, os tempos de propagaao tpLH e tpHL aplicam-se igualmente ` c a sa Q e, em geral, possuem um valor diferente dos valores para a sa Q. Dos da da 4 valores poss veis, a Figura 13.12 apenas representa dois deles.
Tempo de propagaao c (atraso) de um ip-op tpd

tpLH e tpHL

CP H Q H

50%

50%

tpLH Q H tpHL
50%

Figura 13.12: Tempos de propagaao de um ip-op c

228

CAP ITULO 13. FLIP-FLOPS

No momento em que o relgio muda de n o vel, as entradas devem estar estveis, a por forma a evitar uma situaao em que a reacao do ip-op que dependente c c de uma corrida entre sinais dentro do circuito e seja, portanto, no previs a vel. Isso evitado, no caso dos ip-ops edge-triggered, evitando mudanas nas e c entradas num intervalo de tempo que envolve o anco de comutaao. c O intervalo de tempo que decorre entre o instante em que as entradas tm de e estar estveis e o momento em que ocorre o anco de comutaao denomina-se a c tempo de preparao ou set-up time, e representa-se por tsu . ca O intervalo de tempo que medeia entre o instante em que ocorre o anco de comutaao e o momento em que as entradas j podem variar o tempo de c a e manuteno ou hold time e representa-se por th . ca Na Figura 13.13 ilustram-se esses tempos.
CP H
50%

Tempo de preparaao c ou set-up time, tsu

Tempo de manutenao c ou hold time, th

tsu th

Figura 13.13: Tempos de preparaao e de manutenao de um ip-op c c

13.4

Referncias Bibliogrcas e a

Mano, Morris M., and Kime, Charles R. Logic and Computer Design Fundamentals, 2nd ed., Prentice Hall International, Inc., New Jersey, USA, 2000, Secao 5.3. c

13.5

Exerc cios

Nota: os exerc cios identicados com um asterisco () esto resolvidos em a SD:ER. () 13.1 Identicar, na Figura 13.4, os instantes ou os intervalos de tempo em que ocorre o fenmeno de ones catching. o () 13.2 Desenhar o s mbolo IEC de um ip-op SR master-slave sem entradas ass ncronas de Set e de Reset. () 13.3 Desenhar o s mbolo IEC de um ip-op SR master-slave com entradas ass ncronas de Set e de Reset (ou de Preset e de Clear). Todas as entradas, s ncronas e ass ncronas, devem ser activas a L. Descrever o funcionamento deste ip-op com um diagrama temporal onde se realce o efeito das entradas s ncronas e ass ncronas. () 13.4 Construir um ip-op JK master-slave a partir de: a) b) um ip-op D master-slave; um latch D controlado.

13.5. EXERC ICIOS

229

13.5 Construir um ip-op T edge-triggered a partir de um ip-op JK, tambm e sica que se indica edge-triggered. Um ip-op T tem a tabela de verdade f na Tabela 13.4, para o caso em que comuta nos ancos ascendentes. De notar que o comportamento deste ip-op garante que, a cada anco de comutaao, h troca do seu estado se a entrada s c a ncrona T estiver activa. Em todas as outras situaes, o ip-op mantm o estado. co e Tabela 13.4: Tabela de verdade f sica de um ip-op T edge-triggered que comuta nos ancos ascendentes
T H(t) L H L H CP H Q H(t+1) Q H(t) Q H(t) Q H(t) Q H(t) Q H(t) Q H(t+1) Q H (t) Q H (t) Q H (t) Q H (t) Q H (t)

Tabela de verdade f sica de um ip-op T edge-triggered

() 13.6

O ip-op hipottico A, do tipo edge-triggered, obtido por transe e formaao de um ip-op JK do mesmo tipo como mostra a Figura 13.14. c Ser que o ip-op A facilmente utilizvel na prtica, ou apresenta proba e a a lemas?
Flip-op A

&

A H CP H

1J C1 1K

Q H Q L

Figura 13.14: Flip-op hipottico, do tipo edge-triggered, com a designaao de e c ip-op A () 13.7 Para o circuito representado na Figura 13.15, estabelecer o diagrama temporal da sa S entre t0 e t1 , admitindo que em t0 se tem (Q1, Q2, Q3) = da = (L, H, H). () 13.8 Considere o circuito representado na Figura 13.16 e admita que os ip-ops utilizados possuem th = 5 ns e tsu = 4 ns, e que as portas lgicas o possuem o mesmo tempo de atraso, tpd = 10 ns. Analisando o circuito apresentado, e tendo em consideraao as caracc ter sticas indicadas, responda `s seguintes perguntas. a a) Qual o tipo de ip-op utilizado? b) Qual o tempo de atraso m nimo de um ip-op para que o circuito funcione correctamente? E qual a frequncia mxima de funcionamento e e a do circuito nessas circunstncias? a

230
&

CAP ITULO 13. FLIP-FLOPS

1J C1 1K

Q1 H

1J C1 1K

Q2 H

1J C1 1K

Q3 H

CP H

=1

S H

CP H t0 t1

Figura 13.15: Exemplo de circuito sequencial s ncrono


H
& 1D C1 1D C1 1 1D C1

CP H

Figura 13.16: Exemplo de circuito sequencial s ncrono 13.9 Usando um ip-op RS, construa um ip-op XY edge-triggered que comuta nos ancos ascendentes e que possui a tabela de verdade f sica da Tabela 13.5. Tabela 13.5: Tabela de verdade f sica de um ip-op XY edge-triggered que comuta nos ancos ascendentes
X H(t) L L H H Y H(t) L H L H L H CP H Q H(t+1) Q H(t) H L Q H(t) Q H(t) Q H(t) Q H(t) Q H(t+1) Q H(t) L H Q H(t) Q H(t) Q H(t) Q H(t)

13.10 Considere um ip-op D edge-triggered. Transforme-o, usando lgica o exterior, num JK edge-triggered. 13.11 Dispe de latches D controlados. Construa com eles e com a lgica como o

13.5. EXERC ICIOS binatria que entender um ip-op JK master-slave. o 13.12 Transforme um ip-op D num ip-op RS.

231

13.13 Mostre que, no circuito da Figura 13.17, que representa um ip-op master-slave, as entradas directas (ass ncronas) S e R se sobrepem `s o a entradas s ncronas S e R.
R L S H
& & & &

S L
&

Q H

CP L
& & & & &

Q L

R H S L CP H R L

Figura 13.17: Flip-op RS master-slave com entradas ass ncronas de Set e de Reset () 13.14 O circuito da Figura 13.18 baseado num ip-op D edge-triggered e e constitui uma proposta de aproveitamento deste circuito para substituir uma porta NOT (!).
H
1D

IN H

C1 S R

OUT H

tsu,D max = 20 ns tsu,RS max = 6 ns th = 0 ns tpd,RS max = 50 ns tpd,C max = 40 ns

S L (t) L H L H H H H H

R L (t) H L L H H H H H

D H(t)

CP H

Q H(t+1) H L H H L Q H(t)

Q H(t+1) L H H L H Q H (t) Q H (t) Q H (t)

Modo Set Reset Fora HH c Cpia o Cpia o Manutenao c Manutenao c Manutenao c

H L

L H

Q H(t) Q H(t)

Figura 13.18: Circuito do Exerc 13.14 cio

232

CAP ITULO 13. FLIP-FLOPS Com efeito, enquanto a varivel IN de entrada est inactiva (a L), o Reset a a ass ncrono do ip-op actua e OU T L ca a H. Por outro lado, quando IN muda de L para H, vem aplicado ` entrada de relgio do ip-op um a o anco ascendente e, como a entrada D est activa, a funo OU T de sa a ca da passa a L. Ou seja, aparentemente OU T = IN . Os parmetros temporais do ip-op esto indicados na gura: tsu,D max a a o tempo mximo de preparaao da entrada D, tsu,RS max o tempo e a c e mximo de preparaao das entradas R e S, th o tempo de manutenao das a c e c entradas, tpd,RSQ max o tempo mximo de propagaao desde as entradas e a c R e S at ` sa Q, e tpd,CQ max o tempo mximo de propagaao desde e a da e a c a entrada de relgio at ` sa Q. o e a da Explique porque que o circuito no funciona. e a

13.15 Considere o circuito da Figura 13.19, em que B um boto que, quando e a premido, estabelece o contacto a tracejado e, quando no premido, estaa belece o contacto a cheio.
VCC R
S R

Q H

1D C1

OUT H

R VCC

Figura 13.19: Circuito do Exerc 13.15 cio a) Qual a utilidade do circuito? e b) Utilize um ip-op JK para realizar, no circuito, a mesma funao que c a que est a ser realizada pelo ip-op D. a 13.16 Verique que o circuito da Figura 13.20 funciona como um ip-op que opera correctamente se se considerar o tempo de propagaao nas portas c OR da entrada.
&

R L CP H S L
1
&

Q H

Q L

Figura 13.20: Circuito do Exerc 13.16 cio

Cap tulo 14

Contadores
14.1 Contadores Ass ncronos

Uma aplicaao clssica dos ip-ops na realizaao de contadores ass c a e c ncronos. Esses contadores so circuitos sequenciais constituidos por vrios ip-ops ina a terligados, o primeiro dos quais recebe impulsos de relgio pela linha de relgio o o do contador, que est ligada ` sua entrada de relgio. Uma das sa a a o das deste ip-op, por sua vez, vai servir de entrada de relgio ao ip-op seguinte, este o ao seguinte, e por a fora, at ao ultimo ip-op do contador. e Cada impulso de relgio faz evoluir a conguraao dos ip-ops, que passam a o c contar segundo um determinado cdigo com palavras com um comprimento que o igual ao nmero de ip-ops do contador. e u Ou seja, o que os contadores ass ncronos contam so os impulsos de relgio. Mais a o exactamente, a evoluao atravs da sequncia de estados de contagem feita pelas c e e e transies entre estados de contagem, que so consequncia do aparecimento de co a e ancos activos ou ancos de comutao aplicados `s entradas de relgio dos ipca a o -ops. Por exemplo, um contador binrio de 3 bits um circuito com trs ip-ops a e e que evolui ao longo da sequncia de (estados de) contagem da Tabela 14.1, e correspondente ao CBN com palavras de comprimento 3. a E fcil de perceber que o ip-op cuja sa foi denominada Q0 (o que tem da menor peso) muda de estado cada vez que o contador recebe um impulso de relgio. Um ip-op JK com ambas as entradas a H tem exactamente esse o comportamento (modo de comutaao). Usaremos um ip-op edge-triggered c que comuta nos ancos descendentes dos impulsos aplicados ` sua entrada de a relgio, como sugere a Figura 14.1. A escolha entre edge-triggered e master-slave o irrelevante, mas a deniao do anco de comutaao no , como veremos. e c c a e Se observarmos, agora, de novo a sequncia de contagem, podemos observar que e o ip-op Q1 muda de estado sempre que o ip-op Q0 transita de H para L. E o que acontece nas transies LLH LHL, LHH HLL, etc. co
Sequncia de estados e (de contagem) Estados de contagem Flanco activo (de comutaao) c Contador binrio de 3 a bits Linha de relgio de um o contador ass ncrono

Como estamos a usar ip-ops que reagem nos ancos descendentes dos impulsos de relgio, podemos, ento usar, precisamente a transio de Q0 para atacar a o a ca 233

234

CAP ITULO 14. CONTADORES

Tabela 14.1: Sequncia de contagem para um contador binrio de 3 bits, que e a utiliza o CBN com palavras de comprimento 3
Sequncia e de contagem Q2 H L L L L H H H H L Q1 H L L H H L L H H L Q0 H L H L H L H L H L

H
1J

Q0 H

CLK H (impulsos a contar)

C1 1K

Figura 14.1: Andar Q0 (de menor peso) de um contador binrio de 3 bits, que a conta segundo o CBN entrada de relgio de Q1. As entradas J e K do ip-op Q1 tero de estar o a igualmente a H para que, sempre que surge a transiao referida, o ip-op mude c de estado. Obtemos, assim, o logigrama parcial da Figura 14.2.
H
1J

H Q0 H
1J C1 1K

Q1 H

CLK H (impulsos a contar)

C1 1K

Figura 14.2: Os andares Q0 (de menor peso) e Q1 (intermdio) de um contador e binrio de 3 bits, que conta segundo o CBN a Do mesmo modo, o terceiro ip-op dever mudar de estado quando o sea gundo transita de H para L. Logo, o circuito completo ser o que se indica a na Figura 14.3. Neste contador, como se pode perceber, os ip-ops nunca reagem simultanea mente. E a mudana de um que pode provocar a mudana do outro. Neste c c sentido, no h qualquer sincronismo entre os diversos ip-ops. O circuito a a e

14.1. CONTADORES ASS INCRONOS


H
1J

235
H H
1J C1 1K

Q0 H

Q1 H

1J C1 1K

Q2 H

CLK H (impulsos a contar)

C1 1K

Figura 14.3: Os trs andares de um contador binrio de 3 bits, que conta segundo e a o CBN ass ncrono, por isso, e o contador um contador ass e ncrono. Repare-se que importante serem descendentes os ancos de relgio em que e o os ip-ops reagem. Algumas questes se podem colocar. Que aconteceria se o os ip-ops reagissem nos ancos ascendentes? E, se isso acontecesse, como se poderia, apesar de tudo, com alteraoes ao circuito, obter o mesmo tipo de c comportamento? So perguntas interessantes. a Este contador conta segundo uma sequncia de 8 estados. Por isso se designa e o por contador mdulo 8. Repare-se que, atingido o ultimo estado de contagem (o estado 7) e recebido um novo impulso de relgio, o contador evolui de novo para o o primeiro estado (o estado 0) e recomea a contagem. c Os contadores ass ncronos podem ainda incluir uma entrada de Reset ass ncrona que permite inici-los no estado 0. Por exemplo, o contador da Figura 14.3 pode a ser acrescentado com a entrada RESET L da Figura 14.4 que, quando activa, actua de imediato as entradas ass ncronas dos ip-ops, levando o contador para o estado LLL.
H
1J

Contador ass ncrono

Contador mdulo 8 o

H Q0 H
1J C1 1K R

H Q1 H
1J C1 1K R

Q2 H

CLK H (impulsos a contar)

C1 1K R

RESET L

Figura 14.4: Contador asss ncrono mdulo 8 que conta segundo o CBN, com o entrada ass ncrona de Reset

14.1.1

Flip-ops T

Como se pode ver pela aplicaao feita, os ip-ops JK esto subaproveitados, c a uma vez que, dos seus quatro modos de funcionamento, apenas um (com J H = = K H = H, o modo de comutaao) est a ser usado. c a Por isso, surge frequentemente, no contexto dos contadores, um novo tipo de ip-op que uma simplicaao do JK. Trata-se de um ip-op apenas com e c uma entrada s ncrona, designada por T H, tal que quando T H = L mantm e o estado, e quando T H = H complementa o estado. A tabela de verdade f sica
Os fabricantes de circuitos integrados raramente disponibilizam este tipo de ip-op. Na prtica, os ip-ops a T so substitudos por a ip-ops JK com as entradas sncronas ligadas a H.

236

CAP ITULO 14. CONTADORES

de um ip-op T edge-triggered ser, assim, a da Tabela 14.2, se admitirmos a que o ip-op comuta nos ancos ascendentes dos impulsos de relgio. o Tabela 14.2: Tabela de verdade f sica de um ip-op T edge-triggered que comuta nos ancos ascendentes dos impulsos de relgio o
T H(t) L H Modos de funcionamento Modo de manutenao c L H CP H Q H(t+1) Q H(t) Q H(t) Q H(t) Q H(t) Q H(t) Q H(t+1) Q H(t) Q H(t) Q H(t) Q H(t) Q H(t) Modo Manutenao c Comutaao c Manutenao c Manutenao c Manutenao c

Note-se como este ip-op apenas possui dois modos de funcionamento: o modo de manuteno do estado, quando no existe anco de comutaao ou ca a c quando existe anco e T H = L, em que o estado do ip-op se mantm e, e por conseguinte, se tem Q H(t+1) = Q H(t); do mesmo modo, Q L(t+1) = = Q L(t) ; e o modo de comutao, quando existe anco de comutaao e T H = H, em ca c que os n veis de tenso nas sa a das mudam (comutam). O s mbolo IEC deste ip-op o que se apresenta na Figura 14.5, admitindo que e ele do tipo edge-triggered e que comuta nos ancos ascendentes (dos impulsos e de relgio). o
1T C1

Modo de comutao ca

S mbolo do ip-op T edge-triggered

Figura 14.5: S mbolo IEC de um ip-op T edge-triggered que comuta nos ancos ascendentes Uma verso ainda mais simples prescinde da entrada T H e tem apenas a a entrada de relgio, como mostra a Tabela 14.3. o Tabela 14.3: Tabela de verdade f sica de um ip-op T edge-triggered simplicado que comuta nos ancos ascendentes
CP H Q H(t+1) Q H(t) Q H(t) L H Q H(t) Q H(t) Q H(t+1) Q H(t) Q H(t) Q H(t) Q H(t) Modo Comutaao c Manutenao c Manutenao c Manutenao c

14.1. CONTADORES ASS INCRONOS

237

Este tipo de ip-op permite construir contadores do tipo anteriormente ilustrado de forma mais simples mas com a mesma estrutura.

14.1.2

Diagrama temporal

Como se viu atrs, a evoluao dos estados dos contadores ass a c ncronos tem a particularidade de, para alm de no ser s e a ncrona, se realizar com as transies co de estado a ocorrerem na sequncia de outra transio. Ilustremos isso no diae ca grama temporal da Figura 14.6, em que representamos (um pouco exageradamente para a escala) os tempos de atraso dos ip-ops envolvidos no contador binrio de mdulo 8 da Figura 14.3. a o
Estados de contagem CLK H Q0 H 0 1 2 3 4 5 6 7 0

L L L

H L L

L H L

H H L

L L H

H L H

L H H

H H H

L L L

Q1 H

Q2 H

Nota: As curvas com setas indicam transioes nas sa c das dos ip-ops que so a consequncia de ancos descendentes (ancos de comutao) dos ip-ops. e ca

Figura 14.6: Diagrama temporal que explicita as transies de estados nas sa co das dos ip-ops do contador binrio de mdulo 8 da Figura 14.3, com o consequente a o aparecimento de estados instveis em algumas das transioes a c Neste diagrama podemos observar facilmente a evoluao dos estados de conc tagem. Mas tambm se pode ver que existem estados intermdios, que so ese e a tados instveis (ou transitrios) que correspondem a fases de transio entre dois a o ca estados estveis. So uma consequncia directa do mecanismo de contagem. No a a e diagrama temporal que se repete na Figura 14.7 podem ser vistos os estados de contagem, estveis (a negrito) e instveis (em itlico). a a a Os estados instveis assinalados existem naturalmente devido ao mecanismo de a contagem e so perfeitamente previs a veis, devido exactamente a esse facto. A sua duraao da ordem do tempo de propagao dos ip-ops utilizados. c e ca

Estados estveis e a instveis (transitrios) a o

14.1.3

Contadores ass ncronos com mdulos arbitrrios o a

a E fcil conceber um contador ass ncrono para contar em qualquer mdulo que o seja potncia de 2. No entanto, por vezes so precisos contadores que contem e a noutros mdulos. A soluao clssica consiste em utilizar um contador com o c a um mdulo que a potncia de 2 imediatamente superior, e utilizar a entrada o e e ass ncrona de Reset do contador para o levar para o estado 0, aps o ultimo o estado de contagem. Para isso, realiza-se esse Reset com a descodicaao do estado a seguir ao ultimo c

238

CAP ITULO 14. CONTADORES

CLK H Q0 H

Q1 H

Q2 H Estveis a Instveis a 0 1 0 2 3 2 0 4 5 4 6 7 6 4 0

Figura 14.7: Repetiao do diagrama temporal da Figura 14.6 que identica os c estados estveis de contagem (a negrito) e os estados instveis que ocorrem a a nalgumas transies (em itlico) co a estado de contagem. E usado esse estado e no o ultimo porque o ultimo estado a tem de ser estvel at vir o impulso de relgio a contar. Assim, por exemplo, a e o para realizar um contador binrio de mdulo 6 que vai contar de 0 a 5 no CBN, a o utiliza-se um contador mdulo 8, descodica-se o estado 6 e aplica-se o sinal o resultante da descodicaao ao Reset ass c ncrono dos ip-ops, como mostra a Figura 14.8.
H
1J

H Q0 H
1J C1 1K R

H
&

Q1 H

1J C1 1K R

Q2 H

CLK H

C1 1K R

COUNT6 L

Figura 14.8: O contador ass ncrono binrio de 3 bits da Figura 14.3, que conta a segundo o CBN, vem modicado para contar apenas de 0 a 5 Note-se que, para descodicar o estado 6, apenas se tiveram em consideraao c os n veis H de sa dos dois ultimos ip-ops. Isso resulta do facto de, para da qualquer sequncia de contagem, o conjunto dos bits a 1 de um nmero sure u gir simultaneamente a 1 pela primeira vez justamente nesse nmero. Da que u no valha a pena ter os 0s em consideraao. De facto, no nosso caso o estado a c (Q2 H, Q1 H, Q0 H) = (H,H,L) o primeiro que tem os dois n e veis mais signicativos a H. O outro o estado (Q2 H, Q1 H, Q0 H) = (H,H,H), que apenas e surgiria aps o estado (Q2 H, Q1 H, Q0 H) = (H,H,L) se no zessemos o o a Reset dos ip-ops. Note-se, em segundo lugar, que crimos mais um estado instvel, o 6. Mas isso a a habitual nos contadores ass e ncronos. Por m, h que ter em conta que o conjunto dos tempos de atraso dos disposia tivos utilizados tem de ser tal que garanta que todos os ip-ops so postos a a L antes do sinal de Reset ser desactivado.

14.1. CONTADORES ASS INCRONOS

239

14.1.4

S mbolos dos contadores ass ncronos


74LS293

A Figura 14.9 ilustra o s mbolo IEC de um contador ass ncrono em tecnologia TTL do tipo 74LS293.
74LS293 12 13 RCTR G1 1CT=0 DIV2

10

DIV8 0 11 + CT 2

5 4 8

Figura 14.9: S mbolo do contador ass ncrono 74LS293, de acordo com a norma IEC O s mbolo possui trs blocos distintos. O bloco superior designado, como e e j sabemos, por bloco de controlo comum, e contm as dependncias que so a e e a comuns aos blocos inferiores. O qualicador geral RCTR no bloco de controlo comum identica um contador ass ncrono (Ripple Counter). Os dois blocos inferiores, com os qualicadores gerais DIV2 e DIV8, signicam que o contador , na realidade, formado por dois e contadores (que funcionam como divisores de frequncia, um divisor por 2 e um e divisor por 8). As entradas que fazem parte do bloco de controlo comum comandam os dois blocos inferiores. A entrada superior estabelece uma dependncia And (ou dee pendncia G) sobre a outra entrada, conferida pelos qualicadores de entrada G1 e e 1. O qualicador de entrada CT=m signica que, quando a entrada correspondente estiver activa, o contador vem carregado internamente com o valor m. No caso do 74LS293, CT=0 signica o carregamento de 0 no contador, o que o mesmo e que dizer que se faz o seu Reset. Da conjugaao das funoes das duas enc c tradas do bloco de controlo comum podemos ento concluir que, se ambas as a entradas estiverem activas (ambas a H), se far o Reset ass a ncrono dos dois contadores/divisores de frequncia. e Por seu turno, o qualicador de sa CTm vem colocado em mltiplas sa da u das agrupadas por uma chaveta, o que signica que o estado de contagem do contador vem dado pela soma das potncias de 2 correspondentes `s sa e a das activas. Por exemplo, se o divisor de frequncia por 8 se encontrar no estado de cone tagem 6, as sa das identicadas por CT1 e por CT2 esto activas (isto , a H), a e enquanto que a sa identifcada por CT0 est inactiva (isto , a L). da a e Dado que o bloco intermdio do 74LS293 constitui um divisor por 2, ser natue a ralmente composto por um unico ip-op, enquanto que o divisor por 8 do bloco
Bloco de controlo comum Qualicador geral RCTR Divisor de frequncia e Se considerarmos um diagrama temporal que envolva a entrada de relgio do contador e as o sadas CT0 a CT2 do di visor por 8, constatamos que essas sadas pos suem, respectivamente, frequncias que so 1/2, e a 1/4 e 1/8 da frequncia e de relgio (da o nome o de divisor de frequncia e por 2, por 4 ou por 8). Qualicadores de entrada G1 e 1 Qualicador de entrada CT=m Qualicador de sa da CTm

240

CAP ITULO 14. CONTADORES

Qualicador de entrada +

inferior ser composto por trs ip-ops. As entradas de relgio para ambos os a e o divisores tornam-se activas nos ancos descendentes dos impulsos a elas aplicados. O qualicador de entrada + que lhes est afecta signica que os contadores a so ambos do tipo ascendente, incrementando de uma unidade a cada anco a descendente dos impulsos de relgio respectivos. o

14.2

Contadores S ncronos

Estes contadores so ainda circuitos sequenciais constituidos por vrios ipa a -ops interligados, tal como sucede com os contadores ass ncronos. E tal como eles, cada impulso de relgio aplicado ` linha de relgio faz evoluir a sequncia o a o e de estados do contador, que passa a contar segundo um determinado cdigo o pr-estabelecido. e Porm, ao contrrio dos contadores ass e a ncronos, a interligaao entre os ip-ops c completamente diferente. Agora, todos os ip-ops recebem em simultneo e a impulsos de relgio pela linha de relgio do contador, que est ligada `s entradas o o a a de relgio de todos os ip-ops. Isso signica que todos os ip-ops so actuados o a no mesmo anco dos impulsos de relgio. o Tal como no caso dos contadores ass ncronos, o que os contadores s ncronos contam so os impulsos de relgio. Mais exactamente, contam o nmero de a o u ancos activos aplicados ` linha de relgio. a o

Linha de relgio de um o contador s ncrono

14.2.1

Concepo heur ca stica de um contador s ncrono

A concepao de um contador s c ncrono pode ser feita aplicando os conceitos de s ntese de circuitos sequenciais s ncronos que sero apresentados no Cap a tulo 16, partindo de um diagrama de estados que reicta a sequncia de contagem pree tendida. Em certos casos, porm, poss realizar uma concepo mais heur e e vel ca stica. Retomemos o exemplo de um contador binrio de 3 bits. Pretende-se um contador a que conte segundo a sequncia da Tabela 14.1 da pgina 234, que repetimos na e a Tabela 14.4 por facilidade de exposiao. c Sero necessrios trs ip-ops. Utilizaremos, arbitrariamente, ip-ops JK a a e edge-triggered a comutarem nos ancos ascendentes. Como o circuito s e ncrono, teremos as linhas de relgio interligadas entre si e ` linha de relgio do contador. o a o As trs saidas sero denominadas Q2 H, Q1 H e Q0 H, sendo Q2 H a que vai e a corresponder ao bit mais signicativo da contagem. Podemos, ento, comear a c a construir o contador, como mostra a Figura 14.10.
1J

Q0 H

1J C1 1K

Q1 H

1J C1 1K

Q2 H

CLK H

C1 1K

Figura 14.10: Primeira fase de construo do contador s ca ncrono mdulo 8, que o conta segundo o CBN

14.2. CONTADORES S INCRONOS

241

Tabela 14.4: Sequncia de contagem para um contador binrio de 3 bits, que e a utiliza o CBN com palavras de comprimento 3
Sequncia e de contagem Q2 H L L L L H H H H L Q1 H L L H H L L H H L Q0 H L H L H L H L H L

Repare-se que, tal como no caso do contador ass ncrono, o ip-op Q0 muda de estado em todas as transies, isto , muda de estado sempre que surge um co e anco activo na linha de relgio. Isso consegue-se, tal como no caso referido, o colocando as linhas J e K do ip-op sempre a H. No caso do segundo ip-op, ele deve mudar de estado, como se pode concluir por inspecao da sequncia de estados pretendida, sempre que no bit menos c e signicativo se d a transiao de H para L. Aqui no podemos utilizar essa a c a transio para actuar o relgio do ip-op, como zemos no caso ass ca o ncrono. Assim, temos de reformular a nossa tctica. Tudo o que podemos controlar so a a as linhas J e K. E essas devem ser postas a H (para o ip-op mudar de estado) quando Q0 H est a H. Passamos, assim a utilizar os nveis de tenso dos sinais a a e no as transies dos mesmos para condicionar as mudanas de estado. a co c O circuito evolui, ento, para o logigrama parcial da Figura 14.11. a
H
1J

Q0 H

1J C1 1K

Q1 H

1J C1 1K

Q2 H

CLK H

C1 1K

Figura 14.11: Fase intermdia de construo do contador s e ca ncrono mdulo 8, o que conta segundo o CBN O controlo das entradas do terceiro ip-op mais complexo. De facto, a ideia e rpida que pode surgir de que as entradas do terceiro devem ser ligadas ` sa a a da do segundo ip-op est errada. De facto, no basta que a sa Q1 H esteja a a da activa (a H) para que Q2 H mude. Por exemplo, se (Q2 H, Q1 H, Q0 H) = = (L, H, L), o estado seguinte de contagem (L,H,H) e, contudo, Q2 H no se e a

242

CAP ITULO 14. CONTADORES

altera. De facto, para Q2 H se alterar ter de se ter Q1 H = Q0 H = H, como a se pode observar na sequncia de contagem proposta. e O circuito vir, ento, com o logigrama da Figura 14.12. a a
H
1J &

Q0 H

1J C1 1K

Q1 H

1J C1 1K

Q2 H

CLK H

C1 1K

Figura 14.12: Logigrama nal do contador s ncrono mdulo 8, que conta segundo o o CBN Repare-se que, no caso dos contadores sncronos irrelevante o anco activo de e relgio, ao contrrio do que sucede com os contadores assncronos. O circuito o a e um contador ascendente qualquer que seja o anco activo. Na realidade, o facto de o controlo da mudana dos ip-ops ser feito pelas entradas s c ncronas e no a pelo relgio, leva a que o anco deste perca relevncia (excepto para denir o o a instante em que se d a mudana). a c E bvio que, para um nmero maior de bits de contagem, para contagens em o u binrio natural, se ter sempre Ji = Ki = Q0 Q1 Qi1. Este produto lgico a a o pode ser implementado de duas formas: (i) como produto de i entradas; ou (ii) como um produto de duas entradas, com Ji = Ki = Ji1 Qi1. Neste ultimo caso usam-se ANDs apenas com 2 entradas mas, em contrapartida, o circuito ca mais lento, uma vez que as mudanas nas sa c das dos ip-ops tm, no pior e caso, de se propagar por i1 portas AND para as entradas carem estabilizadas. Na Figura 14.13 ilustra-se esta soluao alternativa para um contador s c ncrono binrio de mdulo 16. a o
CLK H H
& 1J C1 1K 1J C1 1K & 1J C1 1K & 1J C1 1K &

Q0 H

Q1 H

Q2 H

Q3 H

Figura 14.13: Um contador s ncrono binrio de mdulo 16, que utiliza portas a o AND com 2 entradas para formar as equaoes lgicas dos Ji e Ki (excepto, c o naturalmente para J0 e K0 , que so ligadas a H). Note-se que a porta AND que a a a a gera J1 e K1 no era estritamente necessria, j que J1 = K1 = Q0 , mas foi inclu para realar o padro de formaao dos Ji e dos Ki da c a c Os contadores s ncronos (como, alis, tambm os ass a e ncronos, como vimos atrs), a podem ainda contar com uma entrada de Reset ass ncrona que permite inicia -los no estado 0, utilizando para tanto as entradas ass ncronas dos ip-ops (Figura 14.14).

14.2. CONTADORES S INCRONOS


H
1J &

243

Q0 H

1J C1 1K R

Q1 H

1J C1 1K R

Q2 H

CLK H

C1 1K R

RESET L

Figura 14.14: Contador s ncrono binrio de mdulo 8, com entrada de Reset a o ass ncrona

14.2.2

Contadores s ncronos com entrada de Enable


Entrada de Enable (Modo)

Muitas vezes so necessrios contadores com uma entrada de Enable ou de Modo a a que controla o contador, impondo-lhe um modo de contagem quando recebe impulsos de relgio ou, pelo contrrio, mantendo o estado sem alteraao. Isso o a c fcil de concretizar alterando um pouco a lgica das entradas J e K, como e a o ilustra a Figura 14.15.
COUNT H ou HOLD L
1J

&

& 1J C1 1K R

Q0 H

Q1 H

1J C1 1K R

Q2 H

CLK H

C1 1K R

RESET L

Figura 14.15: Contador s ncrono binrio de mdulo 8, com entrada de Reset a o ass ncrona e entrada s ncrona de Enable (Modo), COU N T H ou HOLD L Repare-se que, se a varivel COU N T estiver activa (a H), a funcionalidade do a contador a que temos vindo a descrever. Se, pelo contrrio, COU N T estiver e a inactiva, todas as entradas J e K cam a L, e os ip-ops no alteram o seu a estado, cando portanto bloqueado o valor da contagem. Por esta razo, podemos designar essa entrada por HOLD em vez de COU N T , a desde que simultaneamente lhe troquemos a polaridade. Ou seja, em vez de COU N T H podemos ter HOLD L.

14.2.3

Concepo de contadores s ca ncronos de mdulo qualo quer

A concepao de qualquer contador s c ncrono pode sempre ser feita utilizando um procedimento sistemtico de s a ntese, que ser mais tarde retomado no estudo a dos circuitos sequenciais s ncronos em geral. Para exemplicar, aborda-se aqui o problema de conceber um contador de mdulo 6 que conta segundo o CBN e que utiliza palavras de comprimento o 3, contando de 0 a 5.

244
Tabela de transies co

CAP ITULO 14. CONTADORES

Comea-se por denir, numa tabela de transies, o estado para que evolui o c co contador a partir de um outro estado. Teremos assim, a tabela de transies da Tabela 14.5, em que a coluna da co esquerda designa o estado actual ou estado presente do contador, EA, e a coluna da direita identica o seu estado seguinte, ES. Tabela 14.5: Tabela de transioes de um contador de mdulo 6 que utiliza o c o CBN com palavras de comprimento 3, contando de 0 a 5
EA Q2 H(t) L L L L H H Q1 H(t) L L H H L L Q0 H(t) L H L H L H Q2 H(t+1) L L L H H L ES Q1 H(t+1) L H H L L L Q0 H(t+1) H L H L H L

Estado actual (presente) e estado seguinte Tabela de transies de co um contador s ncrono mdulo 6 o

O facto da sntese com ip-ops JK produzir, muitas vezes, um logigrama mais simples, reside no facto de estes ip-ops terem 4 modos de funcionamento (contra 2 ou 3 para os outros ip-ops que estudmos), a o que em geral permite simplicar as equaoes c lgicas o das entradas sncronas. Contudo, os ip-ops JK necessitam de equaoes de excitao c ca para as entradas J e K, enquanto que, por exemplo, os ip-ops D apenas necessitam de equaoes de excitaao c c para uma entrada D.

Repare-se que s colocamos na tabela os estados correspondentes ` contagem o a pretendida para o contador. De facto, com trs ip-ops podia-se codicar, e como alis se viu atrs, os estados 6 e 7. Mas como esses valores cam fora do a a ciclo de contagem do contador, no so utilizados. a a O contador, como qualquer circuito s ncrono, pode ser implementado usando ip-ops de qualquer tipo. Usualmente mais fcil trabalhar com ip-ops JK a a a este n vel. O circuito usar, assim, trs ip-ops do tipo JK, um para cada a e bit, e comear, como anteriormente, pelo pr-esquema da Figura 14.16. c a e
1J

Q0 H

1J C1 1K

Q1 H

1J C1 1K

Q2 H

CLK H

C1 1K

Figura 14.16: Primeira fase de s ntese de um contador s ncrono de mdulo 6 o que conta de 0 a 5 no CBN A tarefa de projectar o circuito resume-se a decidir que funoes lgicas utilizar c o para atacar as entradas J H e K H de cada um dos ip-ops (as chamadas equaoes de excitao dos ip-ops). c ca Repare-se que, se se pretender que um ip-op JK mantenha o estado L ao receber um impulso de relgio, temos duas hipteses: ou se faz J H = K H = L o o e o ip-op no muda de estado (modo de manutenao do estado), ou se coloca a c J H = L e K H = H, que uma ordem para assumir o estado L (modo e de Reset), o que tem o mesmo efeito. Portanto, s necessario garantir que o e J H = L, sendo indiferente o valor da entrada K H.

Equaoes de excitao c ca

14.2. CONTADORES S INCRONOS

245
Tabela de excitaoes de c um ip-op JK

Fazendo o mesmo tipo de racioc nio para todas as outras transies poss co veis, obtm-se a Tabela 14.6, denominada tabela de excitaoes de um ip-op JK. e c Tabela 14.6: Tabela de excitaes de um ip-op JK co
Q H(t) Q H(t+1) L L H H L H L H J(t) K(t) L H H L

Podemos em seguida obter uma tabela de excitaoes do contador substituindo, c em cada ponto da tabela de estados, o n de tenso que pretendemos que as vel a sa das dos ip-ops assumam pelo n de tenso a colocar nas suas entradas vel a de excitaao, ou entradas s c ncronas (Tabela 14.7). Tabela 14.7: Tabela de excitaoes do contador de mdulo 6 c o
Estado Actual Q2 H(t) L L L L H H Q1 H(t) L L H H L L Q0 H(t) L H L H L H J2 H(t) K2 H(t) J1 H(t) K1 H(t) L L H H L L L J0 H(t) K0 H(t) H

Tabela de excitaoes do c contador mdulo 6 o

H H L L L

H H

H H

Da tabela de excitaoes do contador podemos obter directamente os mapas de c Karnaugh que deniro as expresses lgicas das entradas s a o o ncronas dos ip-ops. Convm, contudo, notar-se que, por observaao da tabela de excitaoes, se cone c c clui directamente que J0 H = K0 H = H. Por outro lado, nas posioes correspondentes a valores no existentes da sequncia c a e de contagem so colocadas indiferenas nos mapas de Karnaugh, como bvio. a c eo Ou seja, os quadros de Karnaugh que iro permitir obter as equaes de exa co citaao dos ip-ops possuem indiferenas por dois tipos de razes: (i) as que c c o resultam da tabela de excitaoes dos ip-ops; e (ii) as que resultam de estados c de contagem no utilizados. a Obtemos, assim, os mapas da Figura 14.17, de onde se podem obter as seguintes equaoes de excitaao dos ip-ops do contador, c c J2 = Q1 Q0 K2 = Q0 J1 = Q0 Q2 K1 = Q0 J0 = 1 K0 = 1 ,

Reparemos que as tabelas de excitaes do co contador representam circuitos combinatrios, o j que as excitaoes e a c as sadas dos ip-ops esto a denidas no mesmo instante t.

246
Q1 Q0 00 0 1 0

CAP ITULO 14. CONTADORES


Q1 Q0 Q2 00 0 1 0 0

Q2

01 0 J2

11 1

10 0

01 1 0 J1

11

10

Q1 Q0 Q2 00 0 1 0

01 1 K2

11

10

Q1 Q0 Q2 00 0 1

01 K1

11 1

10 0

Figura 14.17: Quadros de Karnaugh de onde se podem extrair as equaoes de c excitaao dos ip-ops do contador s c ncrono de mdulo 6 o e o circuito nal ter o logigrama da Figura 14.18, admitindo uma implea mentaao com ip-ops edge-triggered que comutam no anco ascendente. c

H
& 1J 1J C1 1K & 1J C1 1K

CLK H

C1 1K

Q2 H Q1 H Q0 H

Figura 14.18: Logigrama do contador s ncrono de mdulo 6, que conta de 0 a 5 o no CBN

14.2.4

Contadores s ncronos com vrios modos de funa cionamento

E poss projectar contadores com vrios modos de funcionamento. J se viu vel a a anteriormente o caso de um contador com uma entrada de Modo que permite que ele conte ou que mantenha o estado. O mtodo geral de projectar contadores e desse tipo continua a ser a utilizaao das metodologias gerais de s c ntese dos circuitos sequenciais s ncronos.
Contadores bidireccionais (ou ascendentes/descendentes ou up/down)

Um exemplo comum o dos contadores bidireccionais, tambm chamados ase e cendentes/descendentes ou up/down, que podem contar ascendentemente ou descendentemente, consoante o n de uma varivel de Modo. Na Tabela 14.8 vel a apresenta-se a tabela de transioes de um contador desse tipo de mdulo 10. c o A s ntese do circuito seria feita sem diculdade, com as adaptaoes necessrias c a para ter em conta que os Js e os Ks so agora funoes, no s das sa a c a o das dos ip-ops, como tambm da varivel U P/DOW N . e a

14.2. CONTADORES S INCRONOS

247

Tabela 14.8: Tabela de transioes de um contador binrio ascenc a dente/descendente de mdulo 10 que conta de 0 a 9 ou de 9 a 0, consoante o o n de tenso numa entrada de Modo designada por U P L/DOW N H vel a

EA UP L/DOWN H = L Q3 H Q2 H Q1 H Q0 H L L L L L L L L H H L L L L H H H H L L L L H H L L H H L L L H L H L H L H L H Q3 H Q2 H Q1 H Q0 H L L L L L L L H H L L L L H H H H L L L L H H L L H H L L L H L H L H L H L H L

ES UP L/DOWN H = H Q3 H Q2 H Q1 H Q0 H H L L L L L L L L H L L L L L H H H H L L L L H H L L H H L H L H L H L H L H L

14.2.5

Contadores s ncronos com carregamento em paralelo

Em muitas aplicaoes importante utilizar contadores com a capacidade de c e realizar o carregamento de um valor pr-determinado e arbitrrio, antes de proe a ceder ` contagem, de forma a inici-lo com esse valor. a a Tal pode ser realizado se multiplexarmos a lgica normal de contagem com a o lgica destinada a proceder a esse carregamento. o Exemplica-se este procedimento na Figura 14.19 com a adiao dessa possibilic dade ao contador binrio de mdulo 8 com Enable anteriormente projectado na a o Figura 14.15, na pgina 243. a Para clareza da gura, rearrumam-se os ip-ops e adiciona-se uma linha de controlo, LOAD H, que procede ao carregamento quando est activa e que a permite os outros modos quando inactiva. A lgica de J0 e K0 ser determinada pela necessidade de fazer aparecer na sa o a da Q0 H o n de tenso que aplicarmos ` entrada I0 H (ou seja, assegurar que vel a a Q0 H = I0 H) sempre que a linha LOAD H estiver a H, e por assegurar em Q0 H o n H (o da linha COU N T H) no caso oposto. vel J0 = LOADI0 + COU N T K0 = LOADI0 + COU N T . E de forma semelhante com as outras excitaoes dos ip-ops: c J1 = LOADI1 + COU N T Q0

K1 = LOADI1 + COU N T Q0

248
COUNT H LOAD H

CAP ITULO 14. CONTADORES

MUX G1 1 1

J0 H K0 H

I0 H
&

1J C1 1K R

Q0 H

MUX & G1 1 1

J1 H K1 H

I1 H
&

1J C1 1K R

Q1 H

MUX & G1 1 1

J2 H K2 H

I2 H
&

1J C1 1K R

Q2 H

CLK H RESET L

Figura 14.19: Circuito com trs modos de funcionamento s e ncrono (carregamento em paralelo, contagem binria ascendente de mdulo 8, e manuteno do a o ca estado), e um modo de funcionamento ass ncrono (Reset) e K2 = LOADI2 + COU N T Q1Q0 , o que se pode obter, de forma compacta, usando 3 multiplexers. Repare-se que um ip-op JK, para ser carregado com o n de tenso de uma vel a linha Ii H, ter de ter Ji = Ii e Ki = Ii. a Deve notar-se que as entradas de controlo no devem vir simultaneamente actia vas. Por isso, este contador possui 4 modos de funcionamento, a saber:
Modo de carregamento em paralelo Entradas de carregamento em paralelo

J2 = LOADI2 + COU N T Q1Q0

um modo de carregamento em paralelo, s ncrono, do valor que estiver presente nas entradas de carregamento em paralelo, I2 H, I1 H e I0 H, se a entrada de Modo LOAD H, e s ela, estiver activa (neste modo so escolhidas as o a entradas 1 dos multiplexers, ligadas a Ii H e a Ii H); sendo o carregamento s ncrono, ele s efectivado quando ocorre um anco de relgio ascendente, oe o que o anco de comutaao dos ip-ops utilizados; e c um modo de contagem ascendente, tambm s e ncrono, se a entrada de Modo

Modo de contagem ascendente

14.3. S IMBOLOS DOS CONTADORES

249

COU N T H, e s ela, estiver activa [neste modo so escolhidas as entradas 1 o a dos multiplexers porque LOAD H est inactiva, pelo que (J0, K0) = (H,H), a (J1, K1) = (Q0, Q0) e (J2, K2) = (Q1 Q0, Q1 Q0), como acontece para um contador binrio s a ncrono de mdulo 8]; como este modo s o e ncrono, a contagem s efectivada quando ocorrem ancos de comutaao dos ip-ops; oe c ncrono, quando a entrada de Modo RESET L estiver um modo de Reset, ass activa (sendo ass ncrono, o Reset efectivado assim que a varivel RESET e a vem activa); e
ca ncrono, quando nenhuma das entradas um modo de manuteno do estado, s de Modo estiver activa [neste modo so escolhidas as entradas 1 dos multia plexers porque LOAD H est inactiva, pelo que (Ji, Ki) = (L,L)]. a
Modo de Reset

Modo de manutenao c do estado

14.3

S mbolos dos Contadores


74LS161A

A Figura 14.20 ilustra o s mbolo IEC de um contador do tipo 74LS161A. Este s mbolo relativamente complexo, porm representativo dos contadores s e e ncronos integrados que existem.
74LS161A CTRDIV16 CT=0 M1 M2 3CT=15 G3 G4 C5/2,3,4+ 1,5D [1] [2] [4] [8]

Figura 14.20: S mbolo IEC de um contador 74LS161A Passemos ` explicaao do s a c mbolo. CTRDIV16: o qualicador geral do s e mbolo. Trata-se de um contador de 4 bits (CTR) que pode ser entendido como um divisor de frequncia por 16 e (DIV16), na medida em que conta segundo o CBN de 0(10) a 15(10). Modos de funcionamento: h uma linha de Modo que dene dois modos de a funcionamento do contador (h outros modos, por exemplo de Reset, que a no so controlados pelo n a a vel de tenso nesta linha): o modo M1 ocorre a quando a linha de Modo est a L, e o modo M2 quando a linha est a H a a (os qualicadores 1 e 2 so convencionais, e apenas servem para ligar a a linha de Modo a outras linhas que utilizem estes qualicadores e que, por
Qualicador geral CTRDIV16

Modos de funcionamento

250

CAP ITULO 14. CONTADORES

esse facto, dependem desta, como o caso das linhas com os qualicadores e de entrada C5/2,3,4+ e 1,5D).
Modo M1 (carregamento em paralelo) Modo M2 (contagem ascendente) Qualicador de entrada C5 Dependncia de e Controlo (C) Qualicadores de entrada e

e O modo M1 o modo de carregamento em paralelo e corresponde ao carregamento em paralelo s ncrono do contador, como veremos j a seguir. a O modo M2 o modo de contagem e corresponde, como tambm veremos e e mais ` frente, ` contagem normal, ascendente, do contador. a a Linha de relgio: o qualicador de entrada C5 congura uma dependncia de o e controlo, C, que condiciona a acao das entradas que possuem o qualicador c 5. Associado a C5 existe um qualicador de entrada na linha de relgio o que indica, como habitualmente, que os ip-ops do contador possuem uma estrutura do tipo edge-triggered. Por seu turno, a ausncia de um tringulo e a exterior ` entrada de relgio, orientado no sentido do uxo dos sinais (qualia o cador de entrada ), indica que os ip-ops comutam nos ancos ascendentes dos impulsos de relgio. o G3 e G4: so qualicadores de entrada que designam dependncias And com a e efeito sobre as entradas ou sa das que possuam os qualicadores 3 e 4 ( o caso e da entrada de relgio com o qualicador 2,3,4+, e da sa com o qualicador o da 3CT=15). Trata-se, naturalmente, de dois de Enables de contagem e de um Enable da sa 3CT=15. da 2,3,4+: um qualicador de entrada que indica que, ao satisfazerem-se as e condioes 2, 3 e 4, o contador conta ascendentemente (o qualicador + signic ca contagem ascendente e o qualicador , se existisse, signicaria contagem descendente). Como podemos constatar, este qualicador est associado ao a qualicador C5 (com efeito, ter C5/2,3,4+ o mesmo que ter uma linha de e entrada com dois qualicadores, o qualicador C5 e o qualicador 2,3,4+). Por sua vez, C5 est ligado ao qualicador a , como vimos anteriormente. Logo, existe contagem ascendente se ocorrer um anco ascendente na linha de relgio, se o modo M2 estiver activo (entrada de Modo a H) e se as linhas o de Enable G3 e G4 estiverem ambas activas. CT=0: um qualicador de entrada que identica o Modo de Reset ass e ncrono do contador (CT signica Count). Quando a linha vem activada (a L), o contador vem de imediato para o estado 0(10), sem aux de um anco de lio relgio (por isso o Reset ass o e ncrono). O Reset seria s ncrono se, em vez de CT=0, tivessemos este qualicador a depender de C5 na forma 5CT=0. 1,5D: um qualicador de entrada que identica em que condioes se faz e c o carregamento em paralelo dos 4 ip-ops do contador (como sabemos, o carregamento em paralelo do contador permite fornecer-lhe um valor inicial de contagem). O carregamento d-se quando a linha de Modo est a L (Modo a a M1) e quando surge um anco activo na entrada de relgio (C5). Trata-se, o portanto, de um carregamento em paralelo s ncrono (se o contador tivesse, por exemplo, o qualicador de entrada 1D em vez do qualicador 1,5D, isso signicava que o carregamento seria ass ncrono, isto , que se vericava logo e que a linha de modo viesse activada, independentemente da existncia ou e no de ancos de comutaao na linha de relgio; esse tipo de carregamento a c o vem implementado em vrios contadores, s a ncronos e ass ncronos, mas no a no 74LS161A).

Qualicadores de entrada G3 e G4 Dependncia And (G) e

Qualicador de entrada 2,3,4+

Qualicador de entrada CT=0 Modo de Reset Reset ass ncrono

Qualicador de entrada 1,5D Valor inicial Carregamento em paralelo s ncrono

14.4. ESTADOS INSTAVEIS

251
Qualicador de sa da 3CT=15

3CT=15: trata-se de um qualicador de sa que indica que a contagem da do contador atingiu o estado 15 (relembrar que CT signica Count). Esta sa vem activada durante todo o estado 15 de contagem se o Enable G3 da estiver activo (dependncia And). e
a [1], [2], [4] e [8]: os qualicadores entre parntesis rectos indicam comentrios e que, no sendo estritamente necessrios, ajudam contudo a interpretar o a a s mbolo. Neste caso indicam os pesos dos diversos ip-ops no processo de contagem.

Comentrios a Pesos dos ip-ops

14.4

Estados Instveis a

Quando se estudaram os contadores ass ncronos chamou-se a atenao para a c existncia de estados instveis que resultam do funcionamento dessas estruturas. e a Como sabemos, esses estados evoluem entre si at se atingir um estado estvel, e a e no podem ser evitados uma vez que resultam, como se disse, do prprio a o mecanismo de funcionamento daqueles contadores. Numa primeira anlise ao caso dos contadores s a ncronos, pode resultar a ideia errada que no existem, neste caso, estados instveis. De facto, como todos a a os ip-ops recebem simultaneamente o impulso de relgio que provoca uma o dada transio, e como cada ip-op s tem, no mximo, uma transiao (ou ca o a c muda de estado ou mantm o estado) para cada impulso, pode ser dado o passo e suplementar de admitir que todos os ip-ops que alteram o estado o fazem simultaneamente. No assim, uma vez que os tempos de propagaao de cada a e c ip-op dependem de muitos factores e, portanto, no so determinveis em a a a absoluto. Sabemos os intervalos de variaao, mas no os valores absolutos dos c a tempos de propagaao. c Daqui resulta que os diversos ip-ops podem reagir em tempos diferentes, desde que dentro das suas especicaoes. Por exemplo, no ip-op 74LS76A os c fabricantes especicam um tempo de propagao mximo de 20 ns, sendo 15 ns ca a o tempo de propagao t ca pico. E, assim, poss vel que num determinado contador haja ip-ops a reagir em 20 ns e outros em 15 ns, e at alguns em menos tempo e que isso. Da resulta o aparecimento de estados instveis. a Na Figura 14.21 ilustra-se um exemplo dessa situaao, para um contador s c ncrono com 4 ip-ops, na passagem do estado estvel 7 para o estado estvel 8 (QA H a a a sa do ip-op menos signicativo). e da Como se pode observar, no processo de transitar do estado 7 para o estado 8 o contador vai passar, neste exemplo, pelos estados instveis 7 , 15 , 13 , 12 a e, nalmente, 8 . E evidente que seria poss vel obter-se uma qualquer outra sequncia de estados instveis, obtidos por transiao de apenas um ip-op de e a c cada vez por uma ordem diferente da que se apresenta na gura. Existem, portanto, estados instveis tambm em contadores s a e ncronos. H, contudo, a diferenas entre os estados instveis nos contadores ass c a ncronos e nos contadores s ncronos: duraao: os estados instveis em contadores s c a ncronos tm duraoes da ordem e c de grandeza da diferena entre os tempos de propagaao dos ip-ops, enc c
74LS76A Tempos mximo e a t pico de propagaao c

252
Estados estveis a CLK H QA H

CAP ITULO 14. CONTADORES

H H

QB H

H H

QC H

H H

H H

QD H Estados instveis a

L H

H H H

7 15 13 12 8 tpd
max

= 20 ns

Figura 14.21: Transiao entre o estado estvel de contagem 7 e o estado estvel c a a 8, num contador s ncrono quanto que nos contadores ass ncronos essa duraao da ordem de grandeza c e dos prprios tempos de de propagaao. o c previsibilidade: nos contadores ass ncronos pode-se prever a exacta sequncia e de estados instveis, uma vez que essa sequncia est relacionada exactaa e a mente com o mecanismo de contagem. No caso dos contadores s ncronos, tal no pode ser feito. Sabemos que existem estados instveis, mas no sabemos a a a a ordem por que aparecem. tipo de estados: nos contadores ass ncronos ascendentes, os estados instveis a so sempre estados de contagem com valores inferiores ao do do estado de a partida. Por exemplo, na transiao de 7 para 8 os estados instveis so 6 , 4 c a a e 0 , por esta ordem. No caso dos contadores s ncronos os estados instveis, a como se pode ver na Figura 14.21, podem ter valores de contagem superiores ao do estado de partida.

14.5

Interligao de Contadores ca

Muitas vezes necessrio proceder ` interligao entre vrios contadores para e a a ca a aumentar o mdulo de contagem. Uma soluao bvia consiste em interlig-los de o c o a modo a que um dos contadores seja o menos signicativo e os seguintes contem apenas quando o primeiro chega ao ultimo estado de contagem simultaneamente com a passagem deste para o primeiro estado. A soluao, para manter o carcter s c a ncrono da interligao, passa por ligar os ca contadores de forma a que o relgio seja comum e a que o Enable de contagem de o cada um dependa do conjunto dos contadores menos signicativos terem chegado ao ultimo estado de contagem. Um exemplo desse tipo de ligaao encontra-se c na Figura 14.22 para um um contador s ncrono de mdulo 256. o

14.6. CARREGAMENTO EM PARALELO

253

74LS161A CTRDIV16

74LS161A CTRDIV16 CT=0 M1 M2 3CT=15 G3 G4 C5/2,3,4+ 1,5D [1] [2] [4] [8]

RESET L COUNT H/LOAD L ENABLE1 H ENABLE2 H CLK H

CT=0 M1 M2 3CT=15 G3 G4 C5/2,3,4+ 1,5D [1] [2] [4] [8]

Figura 14.22: Contador s ncrono de mdulo 256 implementado por ligaao o c s ncrona de dois contadores s ncronos de mdulo 16 o

14.6

Utilizao do Carregamento em Paralelo ca na Realizao de Diferentes Mdulos de ca o Contagem


Naturalmente, podemos sempre sintetizar este tipo de contadores da forma que aprendemos na Subsecao 14.2.3. c Dcada e

O carregamento em paralelo dos contadores tem outra utilidade, que a de e permitir modicar os mdulos de contagem. o Suponhamos que pretendemos utilizar um contador de mdulo 16, como o que o se utilizou no exemplo anterior, e transform-lo num contador de mdulo 10 a o (divisor de frequncia por 10 ou dcada). A soluo consiste em detectar o ultimo e e ca estado de contagem pretendido e usar essa linha para activar o carregamento em paralelo do contador. As linhas de carregamento em paralelo sero utilizadas a para impor o estado de contagem 0(10). Note-se que no pode ser usado o Reset, a uma vez que ele ass e ncrono e, supostamente, pretendemos manter o contador s ncrono. Na Figura 14.23 ilustra-se o logigrama deste contador modicado. Repare-se que no necessrio que a porta lgica que descodica (ou detecta) a e a o o estado 9 tome em linha de conta os n veis a L ` sa do contador. De facto, a da a primeira vez que, na sequncia de contagem, se encontram os dois n e veis dos extremos a H, quando o contador chega ao estado 9(10). Assim, se detectarmos e apenas essa situao, detectamos o estado 9(10), uma vez que os estados seguintes ca no vo aparecer. a a De igual modo se poderia ter usado outro valor para carregar nas entradas de carregamento em paralelo, se a sequncia pretendida a isso obrigasse. Se se e pretendesse, por exemplo, a sequncia de contagem decimal e , 4, 5, 6, 7, 8, 9, 4, ,

ento detectar-se-ia o estado 9(10) da mesma forma, mas em vez de carregar o a nmero 0(10) carregar-se-ia o nmero 4(10). u u

254

CAP ITULO 14. CONTADORES


COUNT H/LOAD L 74LS161A CTRDIV16 RESET L CT=0 M1 M2 3CT=15 G3 G4 C5/2,3,4+ L L L L 1,5D [1] [2] [4] [8]
&

ENABLE1 H ENABLE2 H CLK H

Figura 14.23: Contador s ncrono de mdulo 10 constru com base num cono do tador do mesmo tipo mas de mdulo 16 o

14.7

Referncias Bibliogrcas e a

Mano, Morris M., and Kime, Charles R. Logic and Computer Design Fundamentals, 2nd ed., Prentice Hall International, Inc., New Jersey, USA, 2000, Secoes 5.4, 5.7 e 6.3 a 6.5. c

14.8

Exerc cios

Nota: os exerc cios identicados com um asterisco () esto resolvidos em a SD:ER. 14.1 a) Construir um contador ass ncrono descendente de mdulo 8 usando os o ip-ops e portas que entender. b) Diga quais so os estados instveis por que o contador passa na transio a a ca do estado estvel 4 para o estado estvel 3. a a c) A soluao de ligaao entre os ip-ops que escolheu a unica? No caso c c e contrrio, diga quais as formas alternativas de efectuar essas ligaoes. a c () 14.2 Considere o logigrama da Figura 14.24, constitu por um contador do binrio ass a ncrono e por um multiplexer com 8 entradas de dados. a) Desenhe o diagrama temporal da sa F H quando uma sequncia da e de 10 impulsos aplicada ` entrada CLK H. Suponha que inicialmente e a o contador tem o valor de contagem 0(10). No d relevo ` existncia de a e a e estados instveis nem de atrasos nos circuitos. a b) Entrando agora em conta com a existncia de estados instveis e de e a atrasos nos circuitos, desenhe o diagrama temporal pormenorizado que inclua as variveis I2, I1, I0 e a funao F das transioes resultantes da a c c passagem do estado de contagem 3(10) para o estado de contagem 4(10).

14.8. EXERC ICIOS


RCTR3 0 CT 2

255

CLK H

I0 H I1 H I2 H

MUX 0 0 1 G7 2 0 1 2 3 4 5 6 7

F H

Figura 14.24: Logigrama do circuito do Exerc 14.2 cio 14.3 Considere o contador ass ncrono da Figura 14.25.

&

H CP H H

1J C1 1K

1J C1

H H

1J C1 1K

1J C1 1K

1K

A H

B H

C H

D H

Figura 14.25: Logigrama do contador ass ncrono do Exerc 14.3 cio a) Determine o mdulo de contagem e desenhe o diagrama temporal das o sa das A H, B H, C H e D H, em funo da linha CP H. ca b) Qual a frequncia mxima de funcionamento do contador, descrita e e a em funao dos tempos relevantes dos componentes utilizados? c () 14.4 Estabelecer o s mbolo IEC do contador ass ncrono integrado 74HCT393, fabricado em tecnologia HCMOS compat com TTL. Esse contador vel e constitu por dois contadores/divisores de frequncia independentes e do e idnticos, cada um de mdulo 16 e com uma entrada de Reset activa a e o H. Os contadores contam ascendentemente a cada anco descendente dos impulsos aplicados `s suas entradas de relgio. Os ip-ops utilizadas nos a o contadores so do tipo edge-triggered. a () 14.5 Estabelecer o s mbolo IEC do contador ass ncrono integrado 74HC4024, fabricado em tecnologia HCMOS. Trata-se de um contador/divisor de frequncia por 128, com uma entrada de Reset activa a H. O contador e conta ascendentemente a cada anco descendente dos impulsos aplicados a ` entrada de relgio. Os ip-ops utilizadas nos contadores so do tipo o a edge-triggered. 14.6 a) Utilizando ip-ops JK edge-triggered que comutam nos ancos descendentes, desenhe o logigrama de um contador s ncrono mdulo 8 ou mdulo o o 6, consoante o valor de uma varivel de controlo, C H, tenha o n H a vel ou L, respectivamente.
74HCT393

74HC4024

256

CAP ITULO 14. CONTADORES b) Modique o circuito da al nea anterior por forma a que, para alm do e funcionamento a descrito, o contador possa tambm aceitar um carrega e mento em paralelo do exterior quando uma segunda varivel de controlo, a P E H, estiver activa.

14.7 Projecte um contador s ncrono mdulo 7, usando os ip-ops que entender. o 14.8 Considere o circuito da Figura 14.26.
CTR4 0

Q0 H

=1

Q0 H Q1 H CP H
+ CT =1

Q1 H Q2 H
=1

Q2 H
3

Q3 H

=1

Q3 H

MODO H

Figura 14.26: Circuito do Exerc 14.8 cio a) Estabelea as sequncias de contagem nas sa c e das Q3 H a Q0 H que se obtm quando a varivel M ODO est activa e inactiva, respectivamente. e a a b) Como poderia designar este circuito? Essa designao est inteiramente ca a correcta? 14.9 Utilizando ip-ops do tipo D, projecte um contador up/down s ncrono de mdulo 6 cuja contagem varie entre 1(10) e 6(10) do CBN. o 14.10 Utilizando o mtodo clssico de s e a ntese da Subsecao 14.2.3, projecte um c contador s ncrono com a seguinte sequncia de contagem: e , 0, 3, 7, 2, 5, 0, . Pode utilizar os ip-ops que desejar. 14.11 a) Utilizando o mtodo clssico de s e a ntese da Subsecao 14.2.3, projecte c um contador s ncrono com a seguinte sequncia de contagem: e , 6, 0, 2, 3, 5, 6, . O referido contador deve ter a possibilidade de ser incializado assincronamente com o nmero 6. u b) Quais os factores que limitam a frequncia mxima de contagem do e a contador que acabou de projectar? 14.12 Utilizando o mtodo clssico de s e a ntese da Subsecao 14.2.3, projecte um c contador s ncrono com a seguinte sequncia de contagem: e , 0, 1, 2, 3, 7, 9, 10, 12, 0, .

14.8. EXERC ICIOS

257

Pode utilizar os ip-ops que desejar. O contador deve ainda possuir uma linha P E H que, quando activada, permite o carregamento em paralelo do contador e, quando inactiva, permite a contagem. Indique se optou por um carregamento em paralelo s ncrono ou ass ncrono, e justique. 14.13 a) Utilizando ip-ops JK edge-triggered que comutam nos ancos descendentes, desenhe o logigrama de um contador s ncrono mdulo 8 ou 6, o conforme o valor de uma varivel de controlo, C, estiver activa ou inactiva, a respectivamente. Justique a escolha que fez do n de actividade desta vel varivel. a b) Modique o circuito da al nea anterior de forma a que, para alm do e funcionamento l descrito, o contador possa tambm fazer o carregamento a e em paralelo do exterior quando uma segunda varivel de controlo, P E, a estiver activa. Justique a escolha que fez do n vel de actividade desta varivel. a 14.14 Desenhe o logigrama de um contador s ncrono que possa contar mdulo o 16, mdulo 8 ou carregar em paralelo do exterior. Dispe, para o efeito, o o de ip-ops D edge-triggered que comutam nos ancos ascendentes. Os modos de funcionamento deste contador so controlados pelas variveis a a C1 e C2 da forma que se indica na Tabela 14.9. Tabela 14.9: Tabela com os modos de funcionamento do contador do Exerc cio 14.14
C1 H L L H C0 H L H L Modo Carregamento em paralelo Contagem mdulo 8 o Contagem mdulo 16 o

14.15 Desenhar, justicando, o s mbolo IEC do 74LS192, um contador s ncrono integrado com as seguintes caracter sticas: trata-se de uma dcada (divisor e de frequncia por 10) que conta ascendente (de 0 a 9) ou descendentemente e (de 9 a 0) no CBN, com entradas de relgio independentes (a selecao do o c tipo de contagem feita pela aplicaao de impulsos de relgio ` entrada e c o a de relgio adequada). Os ip-ops so do tipo edge-triggered e comutam o a nos ancos ascendentes. O contador permite carregamento em paralelo ass ncrono com uma entrada de carregamento activa a L dedicada a esse efeito. Existe ainda uma entrada de Reset ass ncrona activa a H. Finalmente, o contador possui duas sa das activas a L que vm activadas nas e seguintes condies: uma delas quando o contador est a contar ascendenco a temente e passa pelo estado 9; a outra quando o contador est a contar a descendentemente e passa pelo estado 0. Em qualquer dos casos, estas sa das s vm activadas durante a fraco de cada impulso de relgio em o e ca o que estas condioes esto activas e o impulso est a L. c a a 14.16 Dispondo de contadores mdulo 8 com entrada de carregamento em pao ralelo P E H (que permite seleccionar entre carregamento em paralelo quando activa, e contagem quando inactiva), construa:

74LS192

258 a) um contador mdulo 10; o b) um contador mdulo 100. o

CAP ITULO 14. CONTADORES

14.17 So dados contadores do tipo ilustrado na Figura 14.27. a


CTRDIV10

RESET L CIN L U H/D L PE L CLK H IN0 H IN1 H IN2 H IN3 H

CT=0 EN1 M2[UP] 1CT=9 M3[DOWN] C5[LOAD] C4/1,2+/1,34,5D [1] [2] [4] [8]

COUT L

Q0 H Q1 H Q2 H Q3 H

CIN L H L L

U H/D L H L

PE L H H H L

Modo Manuteno ca Contagem ascendente Contagem descendente Carregamento em paralelo

Figura 14.27: Contador utilizado no Exerc 14.17 cio a) Utilizando 3 destes contadores e mais a lgica adicional que entender o necessria, projecte um contador decimal (dcada ou divisor de frequncia a e e por 10) ascendente de modo programvel (at 999). a e b) Diga que valores colocaria nas entradas de carregamento em paralelo dos contadores para que eles contassem mdulo 123. o 14.18 Repita o Exerc cio 14.10, mas utilizando agora um contador integrado 74LS161A (Figura 14.20). 14.19 Repita o Exerc cio 14.12, mas utilizando agora um contador integrado 74LS161A (Figura 14.20). () 14.20 Utilizando um contador como o da Figura 14.28, projecte um contador com a seguinte sequncia de contagem: e , 0, 1, 2, 3, 4, 5, 6, 7, 0, . Indique ainda se optou por um carregamento em paralelo s ncrono ou ass ncrono, e justique. 14.21 Considere o contador da Figura 14.29(a). a) Complete o diagrama temporal na parte (b) da gura. b) Qual o tempo m nimo entre os dois primeiros ancos descendentes dos impulsos de relgio do diagrama temporal, em funao dos parmetros o c a temporais que considerar relevantes?

14.8. EXERC ICIOS

259

CTRDIV16 CT=0 1+ C2 M1 1,2D [1] [2] [4] [8]

Figura 14.28: Contador utilizado no Exerc 14.20 cio


Q1 H QF H

H CLK H

1J C1 1K R

1J C1 1K

(a)

CLK H Q1 H

QF H (b)

Figura 14.29: (a) Contador utilizado no Exerc 14.21; (b) diagrama temporal cio a completar

14.22 a) Usando dois contadores s ncronos de 4 bits que especicar como achar a conveniente, construa um contador s ncrono mdulo 200. o b) Rera qual a frequncia mxima de contagem do novo contador, em e a funao dos parmetros temporais que achar conveniente. c a

14.23 Dispe de dois contadores decimais s o ncronos como o da Figura 14.27. a) Ligue 3 destes contadores para formar um contador mdulo 1000. o b) Calcule a frequncia mxima de funcionamento do contador mdulo e a o

260 1000 sabendo que:

CAP ITULO 14. CONTADORES

tpd,CLKQ = 15 ns tpd,CLKCOUT = 25 ns tpd,CINCOUT = 8 ns tsu,CIN = 15 ns 14.24 So dados os seguintes tipos de ip-ops: a 1. master-slave; 2. edge-triggered a comutar nos ancos ascendentes; 3. edge-triggered a comutar nos ancos descendentes, com tsu = 10 ns th = 10 ns tpd = 9 ns 4. edge-triggered a comutar nos ancos descendentes, com tsu = 10 ns th = 10 ns tpd = 12 ns Considerando apenas os tipos de ip-ops indicados, quais de entre eles e que: a) podero ser utilizados no circuito da Figura 14.30? a
H CLK H
1J C1 1K 1J C1 1K

Figura 14.30: Circuito utilizado no Exerc 14.24 cio b) podero ser utilizados no circuito, operando este ` frequncia de 50 a a e MHz? () 14.25 Utilize um contador binrio s a ncrono de mdulo 16 com Reset e carregao mento em paralelo s ncronos, para realizar um contador com a sequncia e de contagem , 0, 1, 2, 3, 4, 5, 0, 1, ,
74LS163A

isto , com mdulo 6. Desenhe um diagrama temporal que mostre o fune o cionamento do contador. Modique o logigrama que obteve para acomodar um contador integrado do tipo 74LS163A como o da Figura 14.31.

() 14.26 Repetir o Exerc 14.25 mas utilizando agora um contador com Reset cio ass ncrono. () 14.27 Utilizar um contador integrado do tipo 74LS163A para implementar uma dcada (contador com 10 estados), com sequncia de contagem e e , 6, 7, 8, 9, , 14, 15, 6, 7, .

14.8. EXERC ICIOS


74LS163A CTRDIV16 5CT=0 M1 M2 3CT=15 G3 G4 C5/2,3,4+ 1,5D [1] [2] [4] [8]

261

Figura 14.31: S mbolo IEC de um contador 74LS163A () 14.28 Utilizar um contador integrado 74LS163A para implementar a sequncia e de contagem , 1, 2, 3, 6, 7, 8, 12, 13, 1, 2, .

Recorrer ao menor nmero poss de integrados para desenhar o esquema u vel elctrico do circuito que obtiver. e

() 14.29 Desenhar o diagrama de estados completo do contador do Exerc 14.25, cio que utiliza o contador integrado 74LS163A. O que acontece ao contador se ele for inicializado no estado 12(10) quando o circuito vem alimentado electricamente? 14.30 Utilizar um contador integrado 74LS163A para implementar um contador s ncrono que conte segundo o cdigo Excesso de 3 (para a deniao deste o c cdigo, ver a pgina 151). o a 14.31 Utilizar dois contadores integrados do tipo 74LS163A para construir um contador s ncrono de mdulo 193 que conte segundo o CBN desde 63 at o e 255. 14.32 E dado o contador da Figura 14.32. Qual a sua sequncia de contagem? e e 14.33 Admita que, no exerc anterior, substituia o contador 74LS163A por um cio contador integrado 74LS161A como o da Figura 14.20. O que aconteceria ao contador? () 14.34 O contador da Figura 14.33 usa um contador integrado do tipo 74x169. Qual a sequncia de contagem do contador? e e
74x169

262

CAP ITULO 14. CONTADORES

74LS163A CTRDIV16 H 5CT=0 M1 M2 3CT=15 G3 G4 C5/2,3,4+ 1,5D [1] [2] [4] [8]

&

CLK H

QA H QB H QC H QD H

Figura 14.32: Contador utilizado no Exerc 14.32 cio

74x169 CTRDIV16 M1[LOAD] M2[COUNT] M3[UP] M4[DOWN] 3,5CT=15 4,5CT=0 G5 L CLK H G6 2,3,5,6 +/C7 2,4,5,6 1,7D [1] [2] [4]
1

Q0 H Q1 H Q2 H Q3 H

[8]

Figura 14.33: Contador utilizado no Exerc 14.34 cio

Cap tulo 15

Registos
15.1 Conceito de Registo

Um registo um circuito capaz de memorizar um certo nmero de bits, o que e u constitui uma unidade de informaao em si: por exemplo um carcter ASCII c a com 7 bits, um nmero inteiro binrio de 16 bits, ou qualquer outro tipo de u a informaao. c Basicamente, o registo deve poder tratar essa informao globalmente, isto , ca e como um todo, e no bit a bit. a

15.2

Registos Simples
Andar (de um registo)

Um registo simples de n bits constitu por n ip-ops, em geral do tipo D, e do com uma entrada de relgio comum. Cada um dos ip-ops constitui 1 andar o do registo. Nessas condioes, as entradas do registo so lidas e registadas simulc a taneamente, e apresentadas globalmente ` sa a da, como mostra a Figura 15.1.
I0 H
1D C1

I1 H
1D C1

I2 H
1D C1

I3 H
1D C1

CLK H Q0 H Q1 H Q2 H Q3 H

Figura 15.1: Registo simples com 4 andares Repare-se que a estrutura muito simples, sendo a interligaao entre os divere c sos ip-ops (andares) apenas garantida pela linha de relgio. Como se pode o perceber, trata-se de um circuito sequencial s ncrono, o que comum a todos e os tipos de registo que iremos considerar. A palavra I0 I1 I2 I3 tratada globalmente, sem nenhuma especicidade ligada e a cada bit. 263

264

CAP ITULO 15. REGISTOS

Uma variante comum deste registo assenta na incluso de um controlo de apagaa mento (Reset ou Clear) da informaao registada, utilizando, para isso, as linhas c de Reset ass ncronas dos ip-ops, como se mostra na Figura 15.2.
I0 H
1D C1 R

I1 H
1D C1 R

I2 H
1D C1 R

I3 H
1D C1 R

CLK H CLEAR L Q0 H Q1 H Q2 H Q3 H

Figura 15.2: Registo simples com 4 andares e Reset ass ncrono


S mbolo de um registo simples
R C1 1D R C1 1D

O s mbolo IEC deste registo vem ilustrado na Figura 15.3(a).

(a)

(b)

Figura 15.3: (a) S mbolo IEC de um registo simples com 4 andares formados por ip-ops edge-triggered e Reset ass ncrono; e (b) s mbolo IEC de um registo idntico mas formado por latches D e Como cada um dos 4 andares tem um tratamento semelhante, o simbolo exibe quatro mdulos iguais que correspondem aos 4 ip-ops. No bloco de controlo o comum colocado no topo incluem-se dois qualicadores de entrada j conhecidos, a o qualicador R, que indica uma dependncia Reset, e o qualicador C1, que e e um exemplo de dependncia de Controlo. e Repare-se que os qualicadores de entrada dos 4 ip-ops so iguais, mas que a apenas se ilustra o qualicador do ip-op superior, admitindo-se que o ip-op por debaixo dele herda os qualicadores do primeiro ip-op, que o ip-op que se encontra na terceira posiao herda os qualicadores do segundo, etc. c Com isto a norma IEC pretende melhorar a legibilidade do s mbolo. De notar que o carregamento em paralelo do registo s e ncrono, uma vez que os qualicadores 1D de entrada dos ip-ops dependem, atravs do s e mbolo 1, dos impulsos de relgio aplicados a C1. o Uma questo que se pode levantar a de saber se os registos tm de ser consa e e tru dos com ip-ops edge-triggered ou se podem ser construidos com outro tipo de dispositivos de memria (latches ou ip-ops). Desde logo no h qualquer o a a problema na utilizaao de ip-ops master-slave, para alm dos cuidados a ter c e em qualquer utilizaao desse tipo de dispositivo. c

Qualicadores de entrada R e C1

15.3. REGISTOS COM ENABLE

265

O caso dos latches D mais delicado. Para circuitos do tipo do ilustrado e e do seguinte, no h qualquer problema. Existem registos formados por latches, a a como o da Figura 15.3(b), que so dispositivos bastante uteis. Se, porm, pena e sarmos nos registos de deslocamento que a seguir se apresentaro, o uso de a latches D absolutamente de excluir devido `s suas caracter e a sticas de transparncia. e Uma outra questo a de considerar a utilizaao de ip-ops JK. Nada h a a e c a opor, excepto o facto de que os circuitos caro porventura mais complexos, a uma vez que um ip-op desse tipo no permite guardar directamente o n a vel de tenso presente numa linha, como sucede com os ip-ops D. a

15.3

Registos com Enable

Por vezes temos necessidade de utilizar registos com Enable, isto , com uma e entrada que possibilite, quando ocorre um determinado anco de um impulso de relgio, optar entre manter a informaao armazenada no registo ou registar o c novos dados. Tal faz-se de forma muito bvia recorrendo a um multiplexer ` entrada de cada o a ip-op, que permita escolher se o que se carrega em cada ip-op um dado e vindo do exterior ou, pelo contrrio, o seu prprio contedo, mantendo, assim a o u a informaao inalterada. Ou seja, obtm-se a soluo descrita na Figura 15.4. c e ca Notemos que a entrada de Enable pode ser apropriadamente designada por entrada de Modo, j que permite dois modos de funcionamento do registo: a o modo de carregamento em paralelo do registo que permite, como o nome indica, o carregamento em paralelo da quantidade booleana geral (I3, I2, I1, I0); ou o modo de manuteno do estado do registo. ca O simbolo IEC deste registo ser o que se ilustra na Figura 15.5. a O qualicador de entrada M2 est relacionado, por intermdio do s a e mbolo 2, com as entradas de carregamento em paralelo (entradas D dos ip-ops) atravs dos e qualicadores de entrada 1,2D. Este modo realiza-se apenas se a entrada M2 estiver activa, isto , a H, e se e aparecer um anco ascendente de relgio (o que indicado pelo s o e mbolo 1 ligado ao qualicador de entrada de relgio, C1). Ou seja, o carregamento em paralelo o s e ncrono (se fosse ass ncrono, as entradas D dos ip-ops teriam qualicadores 2D em vez de 1,2D), isto , ocorre imediatamente aps um anco de comutaao e o c dos ip-ops que aparea quando a entrada de Modo estiver activa. c Quando a entrada de Modo est inactiva, a L, no se faz carregamento em a a paralelo. Por omisso, supe-se que o registo mantm o seu estado. Contudo, a o e esta operaao ainda s c e ncrona, como se percebe pelo logigrama do registo, pelo que sucessivos ancos de comutaao com a entrada de Modo inactiva apenas c conrmam a manutenao do estado do registo. c

Entrada de Modo Modos de funcionamento

Modo de carregamento em paralelo

Modo de manutenao c

266

CAP ITULO 15. REGISTOS

MUX G1

I0 H

1 1

1D C1 R

Q0 H

LOAD H

MUX G1

I1 H CLK H RESET L

1 1

1D C1 R

Q1 H

MUX G1

I2 H

1 1

1D C1 R

Q2 H

MUX G1

I3 H

1 1

1D C1 R

Q3 H

Figura 15.4: Registo de 4 andares com Reset ass ncrono e uma entrada de Modo, LOAD H, que permite o carregamento em paralelo s ncrono se estiver activada, ou a manutenao do valor carregado quando inactiva c

M2 R C1 1,2D

Figura 15.5: S mbolo IEC do registo da Figura 15.4

15.4

Registos de Deslocamento

Um outro tipo de registo muito importante o registo de deslocamento. Na sua e verso mais simples, um registo de deslocamento um registo em que os dados, a e

15.4. REGISTOS DE DESLOCAMENTO

267

em vez de entrarem em paralelo como no caso dos exemplos anteriores, surgem em srie, isto , bit a bit, por uma unica entrada de dados. Como mostra a e e Figura 15.6, o circuito base muito simples de desenhar. e
I H
1D C1 1D C1 1D C1 1D C1

CLK H Q0 H Q1 H Q2 H Q3 H

Figura 15.6: Registo de deslocamento para a direita com 4 andares formados por ip-ops edge-triggered do tipo D a comutar nos ancos ascendentes Neste caso usaram-se 4 ip-ops D edge-triggered a comutar nos ancos ascendentes, mas bvio que se podiam ter usado mais ou menos andares, com eo outros tipos de ip-ops contudo, ver a observao da pgina 265 no que diz ca a respeito ` impossibilidade de usar latches D neste tipo de circuitos, devido `s a a suas caractersticas de transparncia. e Quanto ao s mbolo IEC deste registo, podemos constatar na Figura 15.7 a existncia de um qualicador de entrada da forma C1 , em que a seta para a e direita signica que o registo desloca para a direita, como mostra o logigrama da Figura 15.6, o que no s mbolo signica de cima para baixo. Com efeito, notar que a entrada de dados est ligada ` entrada D do primeiro ip-op (o de cima, a a no s mbolo).
SRG4 C1 1D

Figura 15.7: S mbolo IEC do registo de deslocamento para a direita da Figura 15.6 Naturalmente, o deslocamento s e ncrono (quando houver um anco de comutao), uma vez que a seta est precedida do qualicador C1). ca a Uma designaao comum para este tipo de registos SIPO (Serial-In, Parallelc e -Out), por oposiao aos registos PIPO (Parallel-In, Parallel-Out) estudados nas c Secoes 15.2 e 15.3. De notar que os primeiros fazem deslocamento, enquanto c que os ultimos no o podem fazer. a Naturalmente, podemos ainda imaginar registos de deslocamento do tipo SISO (Serial-In, Serial-Out) ou do tipo PISO (Parallel-In, Serial-Out). Na Figura 15.8 ilustram-se os s mbolos IEC destes registos. E de realar que se trata, nos dois casos, de registos de deslocamento, sendo que c os registos PISO necessitam de dois modos de funcionamento, um para carregar
SIPO (Serial-In, Parallel-Out) PIPO (Parallel-In, Parallel-Out) SISO (Serial-In, Serial-Out) PISO (Parallel-In, Serial-Out)

268
SRG4 C1 1D

CAP ITULO 15. REGISTOS


SRG4 M2 C1 1,2D

(a)

(b)

Figura 15.8: S mbolos IEC de registos do tipo: (a) SISO; e (b) PISO em paralelo os dados de entrada, e outro para o subsequente deslocamento (no caso, para a direita). Por outro lado, acentua-se que tudo o que foi dito para os registos de deslocamento para a direita pode igualmente ser aplicado a registos de deslocamento para a esquerda, como o da Figura 15.9.
I H

1D C1

1D C1

1D C1

1D C1

CLK H Q0 H Q1 H Q2 H Q3 H

Figura 15.9: Registo de deslocamento para a esquerda com 4 andares Neste caso o s mbolo IEC (Figura 15.10) deve ter uma seta orientada para a esquerda, indicando um deslocamento de baixo para cima no s mbolo.
SRG4 C1 1D

Figura 15.10: S mbolo IEC de um registo de deslocamento para a esquerda, com 4 andares formados por ip-ops D edge-triggered

15.5

Registos Multimodo

E poss conceber registos multimodo, usando a ideia de incluir um multiplexer vel antes de cada uma das entradas D dos ip-ops. Nesse caso, cada modo de

15.5. REGISTOS MULTIMODO

269

funcionamento corresponde a uma das entradas do multiplexer que selecciona a origem dos dados para cada entrada D. O registo de deslocamento universal um registo com 4 modos de funcionae mento: o modo de carregamento em paralelo que permite, como o nome indica, o carregamento em paralelo de uma quantidade booleana geral com um nmero u de bits igual ao nmero de andares do registo; u o modo de deslocamento para a direita; o modo de deslocamento para a esquerda; e o modo de manuteno (s ca ncrono) do estado do registo. Na Figura 15.11 ilustra-se um andar genrico de um registo de deslocamento e universal.
MUX

Registo de deslocamento universal Modos de funcionamento Modo de carregamento em paralelo

Modo de deslocamento para a direita Modo de deslocamento para a esquerda Modo de manutenao c

MODE0 H MODE1 H INi H


1D C1

0 G0 3 1 0 1 2 3

1D C1

1D C1

CLK H

Qi-1 H

Qi H

Qi+1 H

Figura 15.11: Andar genrico, i, de um registo de deslocamento universal e E de notar que os 4 modos so assegurados atravs de 4 quantidades booleanas a e gerais aplicadas `s entradas de Modo, M ODE0 H e M ODE1 H, em que a a varivel M ODE1 tem mais peso do que M ODE0. Isso resulta de as entradas a de Modo terem sido ligadas `s entradas de selecao do multiplexer da forma a c indicada na gura. Na Figura 15.12 apresenta-se o s mbolo IEC de um registo de deslocamento universal, o 74x194. Repare-se que existem no s mbolo entradas srie nos dois ip-ops extremos do e registo. Essas entradas tm qualicadores 1,4D no caso do deslocamento para e a direita, porque associados ` seta com o qualicador 1. E tm qualicadores a e 2,4D no caso do deslocamento para a esquerda, porque associados ` seta com o a qualicador 2. Por outro lado, existem ainda entradas separadas de carregamento em paralelo (com qualicadores 3,4D) em todos os andares do registo. Assim sendo, o modo M3 o de carregamento em paralelo s e ncrono, o modo M1 o de deslocamento para a direita (naturalmente, s e ncrono), o modo M2 e
74x194

270
74x194 SRG4 0 M0 3 1 C4 1 / 2 R 1,4D 3,4D 3,4D 3,4D 3,4D 2,4D

CAP ITULO 15. REGISTOS

Figura 15.12: S mbolo IEC de um registo de deslocamento universal, o 74x194 o de deslocamento para a esquerda (mais uma vez s ncrono), e o modo M0, por omisso, o modo de manuteno do estado do registo (tambm s a e ca e ncrono). De notar ainda que a entrada de relgio, com o qualicador C4, apenas uma o e (um e apenas um pino do integrado), embora esteja cindida em duas partes para no sobrecarregar o simbolo. Contudo, era perfeitamente leg a timo indicar apenas uma entrada no s mbolo com o qualicador C4 / 1 / 2.

15.6
15.6.1

Transferncias entre Registos e


Interligaao de registos c

Muitas aplicaes em Sistemas Digitais, nomeadamente no que diz respeito ` co a Arquitectura de Computadores, assentam na existncia de um certo nmero de e u registos interligados que permitem transferir informaao entre si, directamente c ou atravs de blocos de lgica combinatria que processam a informaao contida e o o c nos registos. No imediato, iremos estudar apenas soluoes para possibilitar a c troca de informaao entre um conjunto de registos. c A interligao de registos ser feita interligando, atravs de outros dispositivos, ca a e o conjunto das suas sa das e entradas. E oportuno introduzir aqui a noao de c barramento (bus em ingls). Um barramento um conjunto de linhas que e e transportam sinais do mesmo tipo e que devem ser tratados de forma semelhante. Por exemplo o conjunto de linhas de sa de um registo constitui um da barramento.

Barramento

15.6.2

Interligaao entre registos utilizando multiplexers c

Supondo que temos um certo nmero de registos que devem trocar informaao u c entre si, a soluao mais evidente consiste na utilizaao de multiplexers nas enc c tradas dos registos, multiplexers esses que permitem seleccionar a origem da informaao que vai ser armazenada em cada registo. c

15.6. TRANSFERENCIAS ENTRE REGISTOS

271

Suponhamos uma situaao em que h 4 registos de 5 bits cada um, que prec a tendemos interligar (Figura 15.13).

Reg. 0 LOAD,0 H
M2 C1

Reg. 1 LOAD,1 H
M2 C1

IN0,0 H IN1,0 H IN2,0 H IN3,0 H IN4,0 H

1,2D

OUT0,0 H OUT1,0 H OUT2,0 H OUT3,0 H OUT4,0 H

IN0,1 H IN1,1 H IN2,1 H IN3,1 H IN4,1 H

1,2D

OUT0,1 H OUT1,1 H OUT2,1 H OUT3,1 H OUT4,1 H

CLK H LOAD,2 H

Reg. 2
M2 C1

Reg. 3 LOAD,3 H
M2 C1

IN0,2 H IN1,2 H IN2,2 H IN3,2 H IN4,2 H

1,2D

OUT0,2 H OUT1,2 H OUT2,2 H OUT3,2 H OUT4,2 H

IN0,3 H IN1,3 H IN2,3 H IN3,3 H IN4,3 H

1,2D

OUT0,3 H OUT1,3 H OUT2,3 H OUT3,3 H OUT4,3 H

Figura 15.13: Quatro registos de 5 bits cada um, que pretendemos ver interligados A sa i do registo j vem designada por OUTi,j. Do mesmo modo, a entrada i da do registo j vem designada por INi,j. Para os interligarmos, cada registo vai precisar de ter, em cada entrada, um multiplexer de 4 entradas de dados, o que signica a utilizaao de 20 multiplexers c de 4 entradas. Deste modo consegue-se, para cada registo, multiplexar em cada uma das suas entradas os barramentos de sa de todos os registos, incluindo da ele prprio. o Escolhendo um dos registos para ilustrar a soluao, teremos a situaao descrita c c na Figura 15.14. Esta soluao muito complexa, mas tem a vantagem de permitir, em cada c e momento, transferir dados para os n registos simultaneamente. Uma soluao mais interessante do ponto de vista de complexidade consiste em c usar, para todos os registos, apenas um conjunto de multiplexers, em vez de um para cada registo. Isso leva a que todos os registos vejam na sua entrada a mesma informaao, e s aquele em que se pretende carregar a informaao c o c de sa de um deles que deve ver activado o seu modo de carregamento em da e paralelo. Perde-se, claro, a hiptese de fazer vrias transferncias simultaneamente, uma e o a e vez que o recurso cr tico (os multiplexers) passa a estar partilhado.

272
MUX

CAP ITULO 15. REGISTOS

SEL0 H SEL1 H OUT0,0 OUT0,1 OUT0,2 OUT0,3 H H H H

0 G0 3 1 0 1 2 3

MUX 0 G0 3 1

OUT1,0 OUT1,1 OUT1,2 OUT1,3

H H H H
MUX 0 G0 3 1

0 1 2 3

Reg. i LOADi H CLK H IN0,i H IN1,i H IN2,i H IN3,i H


MUX M2 C1 1,2D

OUT0,i H OUT1,i H OUT2,i H OUT3,i H OUT4,i H

OUT2,0 OUT2,1 OUT2,2 OUT2,3

H H H H

0 1 2 3

IN4,i H

0 G0 3 1

OUT3,0 OUT3,1 OUT3,2 OUT3,3

H H H H
MUX 0 G0 3 1

0 1 2 3

OUT4,0 OUT4,1 OUT4,2 OUT4,3

H H H H

0 1 2 3

Figura 15.14: A interligaao dos 4 registos da Figura 15.14 pode ser feita com c multiplexers, mas a soluo muito complexa. Nesta gura apenas se apresenta ca e a ligaao a um dos registos c

15.6.3
Buer tri-state

Buers tri-state

Antes de avancar com uma soluao mais simples, h que apresentar um novo c a dispositivo o Buer tri-state. Trata-se um dispositivo com uma entrada e uma sa de dados com capacidade tri-state, e uma entrada de Enable que da controla essa capacidade tri-state de acordo com a tabela de verdade f sica da Figura 15.15(b), que mais no do que uma extenso da tabela de verdade a e a genrica da Tabela 7.5, na pgina 118. e a Ou seja, quando a entrada de Enable est activa, a sa assume um n que a da vel e uma cpia do n que estiver presenta ` entrada de dados do Buer. Quando, o vel a pelo contrrio, a entrada de Enable est inactiva, ento a sa ca em alta a a a da impedncia [o que se representa por Hi-Z na Figura 15.15(b)]. a

15.6. TRANSFERENCIAS ENTRE REGISTOS

273

EN H IN H EN H
1 EN

IN H L H (b)

OUT H Hi-Z L H

OUT H

L H H

(a)

Figura 15.15: S mbolo IEC de um Buer tri-state com entradas de dados e de Enable activas a H, e com a sa tambm activa a H; e (b) tabela de verdade da e f sica deste Buer Quanto ao s mbolo IEC deste Buer, ver a Figura 15.15(a). Muitas vezes estes Buers no aparecem de forma isolada nos circuitos integraa dos, mas em conjuntos de 4 ou de 8. A Figura 15.16 apresenta o s mbolo de um Buer qudruplo do tipo 74HCT244. a
74HCT244 EN

74HCT244

Figura 15.16: S mbolo IEC de um Buer tri-state qudruplo do tipo 74HCT244 a No s mbolo, a unica particularidade digna de realce a existncia dos quali e e cadores gerais colocados em cada um dos 4 Buers e orientados no sentido das entradas para as sa das, que indicam a existncia de amplicaao dos sinais e c de entrada (a designaao Buer vem desta caracter c stica de amplicaao), para c alm de identicarem o sentido do uxo da informaao. e c H duas aplicaoes fundamentais para os Buers tri-state. Por um lado pera c mitem simplicar a complexidade das operaoes de multiplexagem, sem o rec curso a multiplexers. Por outro lado, potenciam a utilizaao de linhas bidirecc cionais. A utilizaao de Buers tri-state para multiplexar temporalmente vrios dac a dos j conhecida da Subsecao 6.4.2, e pode ser traduzida pelo logigrama e a c da Figura 15.17 no caso de o nmero de dados a multiplexar ser igual a dois. u Considere-se a linha SEL.IN 1 H = H. Nestas circunstncias, o Buer superior a vem inibido (a sua sa vem em alta impedncia) e o inferior activado, coloda a cando o n de tenso da linha de entrada IN 1 H na linha de sa OU T H. vel a da Inversamente, se SEL.IN 1 H = L teremos o Buer inferior inibido e o superior activado, obtendo-se OU T H = IN 0 H. A estrutura apresentada tem, assim, o comportamento de um multiplexer de duas entradas de dados e uma de selecao. Com um descodicador de n entradas c

Qualicador geral

274
IN0 H
1 1

CAP ITULO 15. REGISTOS

SEL.IN1 H

EN

OUT H IN1 H
1 EN

Figura 15.17: Multiplexagem temporal de dois dados, obtida ` custa de dois a Buers tri-state e um conjunto de Buers tri-state poss e vel contruir um multiplexer de 2n entradas de dados. Consideremos agora a questo da bidireccionalidade, observando o logigrama a da Figura 15.18.
Buer tri-state IN1,i H OUT1,i H OUTi.TO.INj H IN2,i H OUT2,i H
1 EN 1 EN

Barramento bidireccional

Buer tri-state IN1,j H

Linha 1

1 EN

OUT1,j H

IN2,j H Linha 2
1 EN

OUT2,j H

INn,i H OUTn,i H
1 EN

INn,j H Linha n
1 EN

OUTn,j H

OUTj.TO.INi H

Figura 15.18: Barramento bidireccional com n linhas, controlado por Buers tri-state unidireccionais Neste logigrama poss e vel observar as vrias linhas do barramento, com cada a uma delas a ligar dois Buers tri-state unidireccionais, um ` direita e outro ` a a esquerda no desenho. Admite-se que as entradas de dados dos Buers esto ligadas `s sa a a das OU T i H e OU T j H de registos apropriados, e que as linhas do barramento esto ligadas a a `s entradas IN i H e IN j H dos mesmos registos. Se a linha OU T i.T O.IN j H estiver activa, a H, ento os buers da direita a esto inibidos, as suas sa a das esto em alta impedncia e, consequentemente, a a

Buer tri-state unidireccional

15.6. TRANSFERENCIAS ENTRE REGISTOS

275

portam-se como se no estivessem ligados ao barramento. Em contrapartida, a os Buers da esquerda esto activos e a informaao que se encontra nas linhas a c OU T i de sa do registo i transmitida atravs dos Buers e pelo barramento da e e para a parte direita, onde pode ser lida ou armazenada no registo j. Se a linha OU T i.T O.IN j H estiver inactiva, a L, observa-se exactamente o contrrio, com a transferncia a ser efectuada da sa do registo j, atravs dos a e da e Buers da direita, pelo barramento e da para a entrada do registo i, onde pode ser aramazenada. Um barramento bidireccional como este permite ento trocar, sobre as mesmas a linhas, informao nas duas direces (uma de cada vez, claro). Este tipo de ca co aplicaao muito importante, como veremos em Arquitectura de Computadores. c e Na Figura 15.19(a) apresenta-se o s mbolo IEC do 74x245, um Buer tri-state bidireccional t pico, com 8 linhas. E na Figura 15.19(b) ilustram-se dois andares do Buer (de entre os 8 que ele possui), mais os respectivos sinais de controlo.
OUTEN L
&

74x245 Buer tri-state bidireccional

74x245 G3 3EN1 3EN2 1 2

&

L.TO.R H L0 H
1 EN 1 EN 1 EN 1 EN

R0 H

L1 H

R1 H

(a)

(b)

Figura 15.19: (a) S mbolo IEC de um Buer tri-state bidireccional com 8 linhas, o 74x245; (b) logigrama de dois dos 8 andares do Buer, e respectivos sinais de controlo Realam-se os qualicadores gerais colocados nos dois sentidos em cada um c dos 8 Buers, o que ilustra claramente o sentido do uxo da informao. ca De notar que, se a entrada de Enable das sa das, OUTEN L, estiver inactiva, todos os Buers cam com as suas sa das em alta impedncia e o barramento a da esquerda ca separado do barramento da direita. Quando OUTEN L est a activa, a transferncia d-se da esquerda para a direita se L.TO.R H estiver e a activa, e da direita para a esquerda se estiver inactiva.

276

CAP ITULO 15. REGISTOS

15.6.4

Interligaao entre registos utilizando barramentos c tri-state

Os Buers tri-state unidireccionais permitem simplicar consideravelmente o problema da interligaao de registos. Se admitirmos que os registos possuem c uma capacidade tri-state nas sa das, controlada por uma linha OE L (OE de Output Enable) o que comum vericar-se podemos organizar o logigrama e da Figura 15.20 em que se interligam quatro registo de 5 bits, tal como se fez para a Figura 15.13. Repare-se que desapareceram os circuitos em volta dos registos da Figura 15.14, cando apenas presente dois descodicadores. O descodicador superior faz o Enable da sa de um e apenas de um registo da de cada vez (aquele que se pretende que seja a fonte da informao a transferir). ca Pelo barramento passa, ento, o contedo desse registo, contedo esse que a u u e apresentado simultaneamente ` entrada de todos os registos. Por sua vez, o a descodicador inferior escolhe o registo que vem com o modo de carregamento em paralelo activo e, portanto, o registo que armazena o que est presente no a barramento, quando surgir o anco de comutaao no relgio. c o Dada a sua simplicidade e capacidade de modularizaao, esta soluao com barc c ramentos tri-state muito comum neste tipo de problemas, em que se pretendem e interligar vrios registos com idnticas dimenses. a e o

15.7

Referncias Bibliogrcas e a

Mano, Morris M., and Kime, Charles R. Logic and Computer Design Fundamentals, 2nd ed., Prentice Hall International, Inc., New Jersey, USA, 2000, Secao 5.1 a 5.3, 7.4 e 7.5. c

15.8

Exerc cios

Nota: os exerc cios identicados com um asterisco () esto resolvidos em a SD:ER. () 15.1 Recorrendo a 4 ip-ops JK, implemente um registo com 4 andares que permita fazer deslocamento ` direita, deslocamento ` esquerda, deslocaa a mento circular ` direita, e memorizar em paralelo. a () 15.2 a) Construa um registo com 4 ip-ops do tipo D capaz de memorizar em paralelo do exterior, de efectuar a diviso do seu contedo por dois, e a u de duplicar o seu contedo (desde que o resultado da duplicaao continue u c a poder ser representado com 4 bits). b) Amplie o circuito anterior, de forma a ligar quatro registos idnticos e aos pedidos na al nea anterior a um barramento comum. 15.3 Suponha que dispe de um registo de deslocamento ` direita com 4 bits o a e carregamento em paralelo s ncrono. Construa, usando o material que

15.8. EXERC ICIOS

277

BIN/1-OF-4 0 1 2 3 OE0 H OE1 H OE2 H OE3 H EN M2 C1 1,2D

1 2

# do registo origem da informaao c

EN M2 C1 1,2D

CLK H EN M2 C1 1,2D

# do registo destino da informaao c


BIN/1-OF-4 0 1 2 3

1 2

EN M2 C1 1,2D

Figura 15.20: Logigrama de um sistema formado por 4 registos interligados com sa das tri-state

achar necessrio e que especicar como entender conveniente, um circuito a a com os seguintes modos de funcionamento: (i) deslocamento de um bit ` a direita; (ii) deslocamento de um bit ` esquerda; (iii) carregamento de a

278

CAP ITULO 15. REGISTOS dados em paralelo; (iv) complementao do seu contedo; e (v) no fazer ca u a nada (apesar de receber impulsos de relgio). o

15.4 Construa um registo de 6 bits que possa operar nos seguintes modos: (i) memorizar em paralelo do exterior; (ii) multiplicar por 4 o seu contedo u (at 15); (iii) multiplicar por 8 o seu contedo (at 7; e (v) efectuar a e u e diviso inteira do seu contedo por 4. a u 15.5 Construa um registo de deslocamento com 4 bits com os seguintes modos: (i) deslocamento de uma posiao para a direita; (ii) deslocamento de uma c posiao para a esquerda; (iii) complementaao do contedo; e (iv) adiao c c u c de uma unidade ao seu contedo (por exemplo, se o contedo for 0101 u u passar a 0110). a 15.6 Construa, usando os ip-ops que achar conveniente e o m nimo poss vel de lgica adicional, um registo de 4 bits com os seguintes modos de funo cionamento: (i) carregamento em paralelo; (ii) contagem descendente; (iii) reset s ncrono; e (iv) deslocamento ` direita (no sentido do bit menos siga nicativo). () 15.7 Um registo de deslocamento de comprimento varivel um registo SISO a e com um nmero varivel de bits. Este tipo de registo utilizado para u a e provocar um nmero varivel de ciclos (de relgio) de atraso da entrada u a o para a sa da. O comprimento vem especicado por uma varivel booleana a geral de controlo. Desenhe o logigrama de um registo de deslocamento com comprimento varivel entre 1 e 8 bits. Use, para tanto, um registo a SIPO e mdulos combinatrios. o o 15.8 Projecte um circuito capaz de reconhecer os seguintes padres binrios: o a 0101 e 0110. Utilize um registo de deslocamento do tipo SIPO e portas lgicas. o () 15.9 Como projectaria um andar (genrico) de um registo de deslocamento e com carregamento em paralelo ass ncrono? E se fosse com carregamento em paralelo s ncrono? 15.10 Dispe de dois registos, A e B, com 4 bits cada um, que permitem, a o cada impulso de relgio, a memorizaao em paralelo dos valores que se o c lhes apresentam `s entradas. a a) Ligue-os sobre um barramento comum, por forma a que a informaao c possa ser transferida de A para B ou de B para A. b) Ligue-os sobre um terceiro registo (Buer C), tambm com 4 bits. e A informao a ser transferida de A par B ou de B para A dever ser ca a memorizada temporariamente no Buer. Neste caso, a transferncia da e informaao dever ocorrer em dois impulsos de relgio consecutivos. c a o 15.11 Dispe de 3 registos idnticos, R1, R2 e R3, cada um com 4 andares e o e constitu dos por ip-ops do tipo D e sa das tri-state. Desenhe as ligaoes c internas entre os ip-ops de um dos registos, e as ligaoes externas entre c os registos, de modo a que a informaao de qualquer dos registos possa c ser transferida para outro ou outros registos, de acordo com as tabelas da Tabela 15.1.

15.8. EXERC ICIOS

279

Tabela 15.1: Tabelas de verdade f sicas com os modos de funcionamento do circuito do Exerc 15.11 cio

ORG1 H L L H H

ORG0 H L H L H

Modo Origem em R1 Origem em R2 Origem em R3

DEST2 H L L L L H H

DEST1 H L L H H L L

DEST0 H L H L H L H

Modo Destino R1 e Destino R2 e Destino R3 e Destinos so R1 e R2 a Destinos so R1 e R3 a Destinos so R2 e R3 a

15.12 Dispe de um registo que no de deslocamento, com 4 bits, e de um o a e circuito somador completo de 4 bits. Projecte, usando os multiplexers e as portas que achar conveniente, um circuito que permita realizar a seguinte operaao: ((A 2) + B)/2). As operaoes parciais decorrero c c a sequencialmente: o valor de A ser inicialmente carregado em paralelo no a registo e depois multiplicado por 2; em seguida o resultado dessa operaao c dever ser somado com B e, aps isso, o novo resultado dever vir dividido a o a por 2. No se pretende o projecto do circuito de controlo (isso constituir matria a a e para os cap tulos seguintes), mas apenas do circuito controlado (o circuito que pedido, com o registo de deslocamento, os multiplexers e as portas). e 15.13 O registo de deslocamento universal 74x194 da Figura 15.12 utilizado e no circuito da Figura 15.21 para formar um contador em anel, com apenas uma sa activa de cada vez. da Qual a sequncia de contagem do contador? Desenhar um diagrama de e e estados que justique a sua resposta. 15.14 O contador em anel do exerc anterior tem dois problemas: (i) se, como cio consequncia de uma falha no circuito ou de ru a sua unica sa activa e do, da vier a L, o contador passa ao estado 0000 e ca nesse estado por tempo indeterminado; e (ii) se um 1 extra vier, pelos mesmos motivos, inserido na sequncia de contagem (por exemplo, criando o estado de contagem 0101), e o contador segue um ciclo de contagem incorrecto (deixa de funcionar como contador em anel) e ca nesse ciclo por tempo indeterminado. Desenhar um contador em anel auto-corrector que no tenha estes problemas. a
Contador em anel

Contador em anel auto-corrector

280

CAP ITULO 15. REGISTOS

74x194 INIT H H CLK H SRG4 0 M0 3 1 C4 1 / 2 R 1,4D 3,4D 3,4D 3,4D 3,4D 2,4D

Q3 H Q2 H Q1 H Q0 H

Figura 15.21: Contador em anel que utiliza um registo de deslocamento universal

Cap tulo 16

Circuitos Sequenciais S ncronos


16.1 Circuitos S ncronos e Ass ncronos

Relembremos, dos cap tulos anteriores, que os circuitos sequenciais (ao contrrio a do que sucede com os circuitos combinatrios) apresentam n o veis de tenso (vaa lores lgicos) nas sa o das que podem ser diferentes para n veis de tenso (valores a lgicos) iguais nas entradas. o Existem vrias formas de realizar circuitos sequenciais. Desde logo poss a e vel realizar circuitos sequenciais sem utilizar ip-ops, apenas construindo realimentaoes entre as sa c das de circuitos combinatrios e algumas entradas, como o acontece com o circuito da Figura 16.1(a) um latch RS como o da Figura 12.5, redesenhado para fazer salientar a (nica) linha de realimentaao ou o circuito u c da Figura 16.1(b), com duas linhas de realimentaao. c
1

X H X H
1

&

Z H

Z H
1 &

Y1 H

Y H

1 1

Y0 H

(a)

(b)

Figura 16.1: Logigramas de circuitos sequenciais que no utilizam ip-ops a (circuitos ass ncronos). O circuito da parte (a) um latch RS, j conhecido da e a Figura 12.5 No se deve, contudo, inferir que todos os circuitos formados por circuitos coma 281

282

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

binatrios com realimentaoes entre as sadas e as entradas so, necessariao c a mente, circuitos sequenciais. Este tipo de circuitos possui vantagens e inconvenientes: de mais dif proe cil jecto, e os circuitos so mais delicados de interligar. Como no h qualquer a a a sinal que coordene o momento em que as diversas variveis de realimentaao a c so actualizadas, estes circuitos so denominados de sequenciais ass a a ncronos. O facto de um circuito ser constru em torno de ip-ops (ou latches) no do a garante, por si s, que o circuito no seja ass o a ncrono. Por exemplo, o circuito da Figura 16.2 , tambm, um circuito ass e e ncrono e, contudo, possui dois ip-ops edge-triggered.
1D 1D

Circuitos sequenciais ass ncronos

OUT H

QA H

C1

CLK H

C1

Figura 16.2: Logigrama de um circuito sequencial ass ncrono que utiliza ip-ops edge-triggered do tipo D
Os ip-ops do circuito esto a individualmente organizados como divisores de frequncia por e 2 pelo que, no conjunto, formam um contador assncrono de mdulo 4. o

Com efeito, uma mudana de estado do segundo ip-op apenas pode ser conc sequncia de uma mudana (um anco ascendente) na sa do primeiro e ocorre, e c da portanto assincronamente em relaao a ele. Mais uma vez se trata de um circuito c sequencial ass ncrono, uma vez que no h um sinal que coordene a mudana a a c dos dois ip-ops. Os circuitos que nos vo ocupar daqui para a frente so designados por cira a cuitos sequenciais s ncronos. Um circuito sequencial s ncrono um circuito que e

Circuitos sequenciais s ncronos

baseado em ip-ops (ou em outros elementos de memria adequados) que e o reagem ao mesmo anco do relgio, ou seja, com interligaao das linhas de o c relgio de todos eles. O circuito da Figura 16.3 exemplo de um circuito seo e quencial s ncrono.
1 & 1 &

Z H

X H
&

DA H

QA H
1D C1

&

DB H

1D C1

QB H

CLK H

Figura 16.3: Exemplo de circuito sequencial s ncrono

16.2. MODELO DE UM CIRCUITO SEQUENCIAL S INCRONO

283

16.2

Modelo de um Circuito Sequencial S ncrono

Como vimos anteriormente, os circuitos s ncronos podem ser caracterizados, em primeira anlise, por possu a rem um conjunto de ip-ops (ou outros elementos de memria com as mesmas caracter o sticas sem transparncia) que reagem e sincronamente aos ancos de comutao dos impulsos de relgio aplicados sica o multaneamente a todos eles.
ca o e Desta forma, os ip-ops garantem uma funo de memria da sequncia de valores lgicos (ou n o veis de tenso elctrica) aplicados `s suas entradas externas, a e a at um determinado instante. No fundo, os ip-ops descrevem, a cada anco e de comutaao do relgio, um novo estado do circuito que pode, eventualmente, c o ser igual ao anterior.
Funao de memria c o Estado de um circuito s ncrono

Ter de existir tambm um mdulo de lgica combinatria que, em funao dos a e o o o c n veis de tenso (ou valores lgicos) presentes nas entradas externas e do estado a o actual ou estado presente do circuito, permite determinar e apresentar aos ip-ops, para armazenagem, o prximo estado do circuito o seu estado seguinte. o A esta lgica combinatria d-se o nome de lgica do estado seguinte. o o a o Por m, necessrio um outro bloco de lgica combinatria que, tambm em e a o o e funao do estado actual do circuito e dos n c veis (valores lgicos) presentes nas o entradas externas, determina as sa das do circuito a chamada lgica de e o sa . da O modelo descrito na Figura 16.4 descreve a estrutura genrica de um circuito e sequencial s ncrono.

Estado actual (presente) Estado seguinte Lgica do estado o seguinte Lgica de sa o da

Estado seguinte Entradas externas actuais CLK H Lgica o do estado seguinte

Lgica o de sa da

Sa das actuais

Memria o (ip-ops) Estado actual

Figura 16.4: Modelo de um circuito sequencial s ncrono genrico, onde se pode e observar um conjunto de ip-ops sincronizados pelos mesmos ancos de comutao, uma lgica do estado seguinte e uma lgica de sa ca o o da. As sa das dos ip-ops denem, em cada instante, o estado actual do circuito sequencial. As entradas dos ip-ops denem, directa ou indirectamente, o estado seguinte do circuito

16.3

Anlise dos Circuitos Sequenciais S a ncronos

Para a anlise de um circuito sequencial s a ncrono parte-se do esquema elctrico e ou do logigrama do circuito e obtm-se descrioes de maior n de abstraco, e c vel ca

284

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

que permitam concluir do comportamento do circuito em vez da sua estrutura, tal qual ela vem dada pelo logigrama ou pelo esquema elctrico. e O procedimento a seguir relativamente linear: e
Equaoes de excitao c ca Equaoes de sa c da

c ca c 1. levantam-se do circuito as equaoes de excitao dos ip-ops e as equaoes da sa do circuito; da

Tabela de excitaoes do c circuito

2. com as equaes de excitaao dos ip-ops estabelece-se uma tabela de exco c citaes do circuito onde, para cada estado actual e para cada congiguraao co c das entradas externas, se identicam os n veis de tenso aplicados aos ipa -ops; 3. a partir da tabela de excitaoes do circuito elabora-se uma outra tabela c onde, para cada estado actual e para cada conguraao de entradas exc ternas, se identica o estado seguinte do circuito e o n correspondente vel das sa das; essa tabela designa-se por tabela de transies e de sa ; co das 4. a partir da tabela de transies do circuito podemos, por codicao dos co ca estados, obter uma tabela de estados e de sa das do circuito; 5. em alternativa ` tabela de estados e de sa a das, pode construir-se um grafo orientado representando os estados, as transioes entre estados e as sa c das, a que se chama diagrama de estados. Vamos exemplicar a aplicaao destas regras para o circuito anteriormente rec presentado na Figura 16.3. 1. Equacoes de excitacao dos flip-flops e equacoes de sa da a E fcil de ver, a partir do logigrama do circuito, que se vericam as seguintes equaoes de excitaao e de sa c c da: DA = QAX + QBX DB = QAX Z = (QA + QB) X 2. Tabela de excitacoes do circuito O circuito possui dois ip-ops, pelo que poder ter 4 estados. Na tabela de a excitaoes da Tabela 16.1 apresentam-se todos os estados do circuito e, para c cada n de tenso na entrada externa, representam-se os n vel a veis de tenso em a DA H e em DB H. Notar como esta tabela traduz os circuitos combinatrios de excitaao dos ipo c -ops, j que toda ela denida no instante t. a e 3. Tabela de transicoes e de sa das Como os ip-ops D assumem nas sa das os n veis de tenso que tm presentes a e nas entradas s ncronas quando recebem o anco activo do impulso de relgio, o e fcil perceber que a tabela de transioes igual, para estes ip-ops, ` tabela a c e a de excitaes. Obtemos, ento, a tabela de transies e de sa co a co das do circuito na Tabela 16.2.

Tabela de transies e co de sa das Codicao dos estados ca Tabela de estados e de sa da

Diagrama de estados

16.3. ANALISE DOS CIRCUITOS SEQUENCIAIS S INCRONOS Tabela 16.1: Tabela de excitaes para o circuito da Figura 16.3 co
Estado actual QA H(t) QB H(t) L L H H L H L H N veis em DA e em DB X H(t) = L DA H(t) DB H(t) L L L L L L L L X H(t) = H DA H(t) DB H(t) L H H H H H L L

285

Tabela 16.2: Tabela de transioes e de sa c das para o circuito da Figura 16.3

Estado actual QA H(t) QB H(t) L L H H L H L H

Estado seguinte X H(t) = L QA H(t+1) QB H(t+1) L L L L L L L L X H(t) = H QA H(t+1) QB H(t+1) L H H H H H L L L H H H

Sa Z H(t) da X H(t) = L X H(t) = H

L L L L

Notar como os estados actuais e as sa das so denidas no instante t, e como a os estados seguintes so denidos no instante t + 1. Por outro lado, reparar a como as excitaoes D(t) em cada ip-op (na Tabela 16.1) coincidem com as c suas sa das Q(t+1) os estados seguintes da Tabela 16.2. Esta ultima tabela j constitui uma descriao comportamental do circuito ao a c longo do tempo, na medida em que apresenta a evoluao estado actual estado c seguinte. Contudo, ainda poss obter uma tabela de estados para o circuito ou ainda o e vel seu diagrama de estados que, de forma mais abstracta e mais visual, permitem percepcionar o comportamento da mquina sequencial que lhe corresponde. a 4. Tabela de estados A partir da tabela de transies e de sa podemos agora estabelecer uma co da tabela de estados e de sa das que, por vezes, e de forma abreviada, se designa apenas por tabela de estados da mquina sequencial. a Para tanto necessitamos de codicar previamente os estados da mquina (e a do circuito sequencial). Ou seja, vamos, de forma abstracta, designar cada conguraao de estados dos ip-ops, no caso (QA H, QB H), por um nome c arbitrrio. a

Uma mquina sequena cial uma abstracao e c de um circuito sequencial sncrono. Geralmente descrita por um e diagrama de estados ou por uma tabela de estados e de sadas. Mquina sequencial a

Tabela de estados

286

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

Naturalmente, a codicaao dos estados , nesta fase de anlise, completamente c e a arbitrria. E usual designar os estados pelas primeiras letras do alfabeto latino a (A, B, etc.), mas podemos dar-lhes quaisquer outras designaoes. Por c exemplo, podemos fazer a codicaao de estados expressa pela Tabela 16.3. c Tabela 16.3: Tabela com a codicaao de estados da mquina sequencial que c a est a ser analisada a
Estado A B C D QA H L L H H QB H L H L H

Nesse caso obtm-se a tabela de estados da mquina sequencial que vem descrita e a pela Tabela 16.4. Tabela 16.4: Tabela de estados para a mquina sequencial que vem implemena tada pelo circuito da Figura 16.3
Estado actual A B C D Estado seguinte X=0 A A A A X=1 B D C C X=0 0 1 1 1 Z X=1 0 0 0 0

De notar que a tabela de sa das est representada em lgica positiva (com valores a o lgicos em vez de n o veis de tenso), dado estarmos agora no dom a nio algbrico, e onde nos manteremos com o diagrama de estados que se segue. De notar ainda que a tabela de estados representa, de facto, uma mquina a sequencial abstracta, que pode ser implementada pelo circuito da Figura 16.3 ou por muitos outros circuitos sequenciais diferentes (por exemplo, que usem ip-ops JK em vez de ip-ops D, ou que usem ainda ip-ops D edge-triggered mas que comutem nos ancos descendentes). 5. Diagrama de estados O diagrama de estados da mquina sequencial constri-se formando um grafo a o orientado com c rculos representrativos dos estados da mquina e com setas a a ligar estados, representando as transioes entre os estados. c Cada c rculo representativo de um estado conter a inscrio desse estado. As a ca transies entre estados so representadas por setas que vo dos estados actuais co a a para os estados seguintes. Junto a cada seta coloca-se uma indicao dos valca ores lgicos (porque estamos no dom o nio algbrico) das entradas externas que e ocasionam essa transio. ca

16.4. MODELOS DE MEALY E DE MOORE

287

Quanto aos valores lgicos das sa o das, vm associados aos valores lgicos das e o entradas externas que ocasionam as transies, e separados deles por um s co mbolo /. Na Figura 16.5 ilustra-se o diagrama de estados da mquina sequencial que foi a implementada pelo circuito da Figura 16.3.
Um estado actual 0/0 A 0/1 1/0 B Sa actual, Z(t), da no estado B

0/1

0/1

1/0

X/Z Entrada actual, X(t) , no estado B

C 1/0

1/0

D Um estado seguinte

Figura 16.5: Diagrama de estados do circuito sequencial s ncrono da Figura 16.3 Repare-se que, quer na tabela de transies, quer no diagrama de estados, a inco dicaao do estado seguinte corresponde a um futuro que se concretizar quando c a houver impulso de relgio (anco de comutao), enquanto que a sa se refere o ca da a ` situao presente (actual). ca Por exemplo, se o circuito se encontrar no estado actual B com a entrada externa (actual) a 1, a sa (actual) 0 enquanto o circuito se mantiver no estado B. da e Quando vier o anco de comutaao, o circuito passa para o estado seguinte D c e a sa deixa de ser 0. da De forma idntica, estando o circuito no estado actual B mas agora com a e entrada externa (actual) a 0, a sa (actual) 1 enquanto o circuito se mantiver da e no estado B. Quando vier o anco de comutaao, o circuito passa para o estado c seguinte A e a sa deixa de ser 1. da Ou seja, e em resumo, enquanto o circuito se encontrar no estado B, a sada actual Z(t) sempre o complemento da entrada actual X(t) . De forma semelhane te, concluiramos que outro tanto se passa quando o circuito est nos estados a C e D, mas que no estado A a sada actual sempre 0, independentemente do e valor lgico aplicado ` entrada actual. o a

16.4

Modelos de Mealy e de Moore

O modelo da Figura 16.4 no o unico que existe para estruturar circuitos a e sequenciais s ncronos. Este modelo foi apresentado por Mealy e, por isso, e conhecido por modelo de Mealy. Repete-se na Figura 16.6 por comodidade. Com efeito, h um outro modelo que, se bem que diferindo apenas num pea queno pormenor, d origem a circuitos com um comportamento sensivelmente a

Modelo de Mealy

288

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

Estado seguinte Entradas externas actuais CLK H Lgica o do estado seguinte

Lgica o de sa da

Sa das actuais

Memria o (ip-ops) Estado actual

Figura 16.6: Modelo de Mealy um circuito sequencial s ncrono diferente dos concebidos em torno do modelo de Mealy. Esse modelo alternativo, representado na Figura 16.7, designado por modelo de Moore, e a unica e diferena consiste na lgica de sa que apenas funao dos estados do circuito c o da e c e no das entradas externas. a

Modelo de Moore

Estado seguinte Entradas externas actuais CLK H Lgica o do estado seguinte Lgica o de sa da Estado actual Sa das actuais

Memria o (ip-ops)

Figura 16.7: Modelo de Moore um circuito sequencial s ncrono Isso quer dizer que, no modelo de Moore, as sa das num dado instante no so a a sens veis aos valores lgicos presentes nas entradas externas nesse instante, e o o circuito na sa reage apenas ao seu passado e no ao seu presente. Isso tem da a consequncias interessantes, que conduzem a diferenas entre os circuitos feitos e c segundo os dois modelos.

16.5

S ntese de Circuitos Sequenciais S ncronos

A s ntese de circuitos sequenciais s ncronos feita de forma aproximadamente e inversa ` metodologia de anlise dos circuitos. a a O processo inicia-se pela formalizaao de um problema em termos de um diac grama ou de uma tabela de estados. A este n sabemos pouco da estrutura vel do circuito, e apenas nos interessa estabelecer o comportamento pretendido. Assim, o n de abstraco do diagrama ou da tabela adequado. Em geral vel ca e prefere-se comear pelo diagrama, por ser mais intuitivo na fase de construo c ca que a tabela.

16.6. EXEMPLO DE CONCEPCAO DE DIAGRAMAS DE ESTADOS

289

Obtido o diagrama passa-se ` tabela de estados com o m de obter uma forma a adequada ` determinaao das equaoes do circuito. a c c Voltaremos a esta questo com mais pormenor mais ` frente neste texto. Para a a j, na Secao 16.6 procuraremos mostrar como conceber diagramas de estados. a c

16.6

Exemplo de Concepo de Diagramas de ca Estados

Exempliquemos o processo de construao de um diagrama de estados com o c seguinte problema: pretende-se obter um circuito que identique a ocorrncia e da sequncia binria 0101 na sua (nica) entrada. Quando isso ocorrer, e s e a u o nessas circunstncias, a sua sa deve exibir o valor 1. a da Temos, por conseguinte, um circuito sequencial s ncrono que podemos designar por detector da sequncia 0101 para o qual sabemos que existe uma e entrada (chamemos-lhe X) e uma sa (digamos, Z), para alm, naturalmente, da e da entrada de relgio (Figura 16.8). o
Detector da sequncia e 0101

X H

CLK H

Detector da sequncia e 0101

Z H

Figura 16.8: Diagrama de blocos do circuito sequencial s ncrono que detecta a sequncia 0101 e Em primeiro lugar, h que optar por construir uma mquina segundo o modelo a a ` de Mealy ou de Moore. A primeira vista pode no se vislumbrar qualquer a diferena, mas uma anlise um pouco mais profunda mostra-a. c a Se estivermos perante um modelo de Moore, a sada da mquina s passar a o a a 1 aps o anco de relgio que surge quando est presente o ultimo bit da o o a sequncia, e esta tiver sido completamente identicada. Se optarmos por um e modelo de Mealy, a sada surge logo que aparece aquele ultimo bit. Por outro lado, se o ultimo bit da sequncia tiver uma duraao encurtada, ento e c a a sada da mquina de Mealy tambm ter uma durao encurtada, enquanto a e a ca que a mquina de Moore ter uma sada com a duraao exacta de um perodo a a c de relgio. o Admitindo que o circuito realizado com ip-ops que reagem nos ancos dese cendentes, teremos, ento, diagramas temporais diferentes consoante se opte a por um ou outro modelo, como mostra a Figura 16.9. Na gura mostram-se as duas reacoes. No modelo de Moore, apesar do quarto c bit da sequncia estar presente quase desde o m do terceiro impulso de relgio e o apresentado, a reacao s surge no quarto impulso. A sa mantm-se a H c o da e enquanto o circuito se encontrar no estado para que transitou, isto , mantme e -se a H durante um per odo de relgio. o

290

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

CLK H

X H

Z H (modelo de Moore)

Z H (modelo de Mealy)

Notas: (i) no caso de se optar por uma mquina de Moore, a sada Z H vem a H depois de a aparecer o ultimo bit da sequncia, porm vem com a duraao de um perodo de relgio; e e c o (ii) no caso de se optar por uma mquina de Mealy, a sada Z H vem encurtada a (com uma duraao inferior a um perodo de relgio) se a entrada X H vier a H muito c o tarde nesse perodo de relgio, porm vem coincidente com o ultimo bit da sequncia. o e e

Figura 16.9: Diagramas temporais que ilustram a diferena de resultados obtic dos na sa do detector da sequncia 0101 se se optar por um modelo de Mealy da e ou por um modelo de Moore. Admite-se que o circuito sequencial vem implementado com ip-ops edge-triggered que comutam nos ancos descendentes No modelo de Mealy, a sa vem actualizada logo que surge o quarto bit da da sequncia (ou seja, a sa vem a H praticamente em coincidncia com o ultimo e da e bit da sequncia). E no prximo impulso o circuito inicia j a busca de nova e o a sequncia. No entanto, a duraao da sa a H depende da duraao do ultimo e c da c bit da sequncia. E se este bit vier encurtado em relaao ao per e c odo de relgio, o ento a sa a H tambm vem encurtada. a da e

16.6.1

Concepo de diagramas de estados: modelo de ca Moore

Comecemos, ento, por usar o modelo de Moore. Para construir um diagrama a de estados h que perceber inicialmente quantas entradas e sa a das tem o circuito. Neste caso fcil. Temos uma entrada e uma sa e a da. Isso quer dizer que cada estado ter, para alm da sua designao espec a e ca ca, tambm a indicaao da sua e c sa associada. da De cada estado sairo dois arcos, que correspondem aos dois valores lgicos da a o entrada (no caso das duas transies irem para o mesmo estado, pode usar-se co apenas um arco do grafo). A concepao do diagrama de estados de uma mquina sequencial s c a ncrona assenta apenas na anlise do comportamento pretendido. E vai sendo estruturado a ao longo do processo. Aqui, por exemplo, iniciaremos o diagrama com um estado (Figura 16.10) que corresponde a ainda no ter surgido nenhum bit ` entrada do a a circuito e que se chama, por isso, estado inicial. O estado inicial vem geralmente

Estado inicial

16.6. EXEMPLO DE CONCEPCAO DE DIAGRAMAS DE ESTADOS

291

assinalado com uma seta que converge para ele. No nosso caso, o estado inicial ter sa 0, uma vez que no se vericam ainda as condioes para a sa vir a da a c da a 1 (ainda no surgiu a sequncia 0101). a e

A/0

Figura 16.10: Evoluao na construao do diagrama de estados do detector da c c sequncia 0101, usando um modelo de Moore. Comea-se pelo estado inicial, e c designado arbitrariamente por estado A Repare-se que, neste momento, no temos qualquer informao sobre o nmero a ca u de ip-ops que vo ser usados no circuito e, portanto, no podemos seno usar a a a uma designaao abstracta para cada um dos estados. Usmos a letra A para c a o estado inicial, mas pod amos, por exemplo, usar Espera ou qualquer outra designaao. c No estado inicial podem ocorrer duas situaes: ou surge um bit 0 na entrada co ou surge um bit 1. Se surgir o bit 0, isso pode signicar o in da sequncia que cio e se pretende identicar, e ter de ser memorizado. Logo, haver que transitar a a da a para um estado (B ou Primeiro Bit, por exemplo). A sa de B ser 0, uma vez que ainda no se vericou a ocorrncia da sequncia completa. No caso de a e e surgir 1 no estado A, esse bit no o in da sequncia pretendida e, portanto, a e cio e a mquina vai continuar ` espera do prximo 0, que pode ser o in de uma a a o cio sequncia. Com entrada 1 manter-nos-emos, assim, no estado A. e

1 A/0 0 B/0

Figura 16.11: Evoluao na construao do diagrama de estados do detector da c c sequncia 0101, usando um modelo de Moore. Agora acrescentou-se um estado e B e estabeleceram-se as transies que partem do estado A co No estado B (Figura 16.12), se a entrada for 1 estamos no bom caminho para detectar a sequncia e passamos para um estado C que signica que, at esse e e estado, foram detectados os dois primeiros bits da sequncia. Se, porm, a e e entrada for 0 no estado B, isso signica que esse 0 no o segundo bit da a e sequncia e, portanto, que o anterior 0 no era o primeiro bit da sequncia. e a e No entanto, pode acontecer que este 0 seja, ele prprio, o primeiro bit de uma o sequncia, como se pode ver no exemplo 00101 . . . Assim, nesse caso o circuito e vai manter-se no estado B. No estado C, uma entrada a 0 conduz-nos ao estado D, onde ainda no se a detectou completamente a sequncia mas onde se detectaram j 3 dos 4 bits. e a Uma entrada a 1 no estado C, porm, signica que no estamos a detectar e a qualquer sequncia. Ao contrrio do que acontece com o 0 no estado anterior, e a este 1 no tem qualquer possibilidade de estar de alguma forma relacionado a com a sequncia. Portanto, recebido este 1, s resta ao circuito voltar ao estado e o inicial e iniciar nova espera (Figura 16.13).

292

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

1 A/0 0

0 B/0 1 C/0

Figura 16.12: Evoluao na construao do diagrama de estados do detector da c c sequncia 0101, usando um modelo de Moore. Aos estados A e B foi acrescene tado um terceiro estado, C, bem como as transies que partem de B co
1 1 A/0 0 0 B/0 1 C/0 0 D/0

Figura 16.13: Evoluao na construao do diagrama de estados do detector da c c sequncia 0101, usando um modelo de Moore. Aos estados A, B e C foi acrese centado um quarto estado, D, bem como as transies que partem de C co Se, agora, em D entrar um 1, a sequncia detectada e avanamos para um e e c estado E (Figura 16.14) em que, nalmente, a sa 1. Se a entrada for 0 no da e estado D, a hiptese de se tratar da sequncia no se verica e transita-se para o e a o estado B pelas razes j atrs expostas. o a a
1 1 A/0 0 0 B/0 1 C/0 0 D/0 1 E/1

Figura 16.14: Evoluao na construao do diagrama de estados do detector da c c sequncia 0101, usando um modelo de Moore. Ainda precisamos de um estado e E O estado E no o m das entradas no circuito. Novos bits vo ser presentes a e a a ` entrada, pelo que necessrio prever a evoluao a partir do estado E. e a c Mas agora temos um pequeno problema devido ` ambiguidade do enunciado. De a facto, o que admitir quando entra um novo bit a 0? Uma primeira interpretaao c que, tendo acabado a sequncia anterior, este bit pode ser o primeiro da e e prxima sequncia. Nesse caso, transitar-se-ia para o estado B. o e Mas outra interpretao surge se pretendermos considerar sequncias sobreca e postas. Nesse caso, como se ilustra a seguir,

0 1 0 1 0 1 0 1

podemos considerar que o bit 0 entrado no estado E , no o primeiro, mas o e a

16.6. EXEMPLO DE CONCEPCAO DE DIAGRAMAS DE ESTADOS

293

terceiro bit de uma nova sequncia, o que nos faria transitar para D. Optaremos e pela segunda hiptese, como mostra a Figura 16.15. o
1 A/0 0 0 B/0 1 C/0 0 1 0 0 D/0 1 E/1

Figura 16.15: Verso nal do diagrama de estados do detector da sequncia a e 0101, usando um modelo de Moore e admitindo sequncias sobrepostas e Repare-se que problemas de ambiguidade do tipo do exposto (e muito mais graves) so frequentes com descrioes dos problemas em linguagem corrente e, a c portanto, informal. E, por isso, muito importante que, em qualquer problema de engenharia, se comece por formalizar o que se pretende. Aqui, isso feito e usando o formalismo dos diagramas de estado.

16.6.2

Concepo de diagramas de estados: modelo de ca Mealy

Vamos agora refazer o exemplo anterior para um modelo de Mealy. Relembre-se que se pretende obter um circuito que identique a ocorrncia da sequncia e e 0101 na sua entrada. Quando isso ocorrer, e s nessas circunstncias, a sua o a sa deve exibir o valor 1. da No modelo de Mealy a sa depende no s do estado mas tambm dos valores da a o e lgicos aplicados ` entrada da mquina. Assim, cada estado, ao contrrio do o a a a que acontece no modelo de Moore, no tem a sa associada apenas a si. A a da sa depende do valor na entrada. Por isso, o valor da sa colocado junto da da e aos arcos de transio, onde esto as entradas. ca a O estado inicial ser, de novo, o estado A, como ilustra a Figura 16.16. a

Figura 16.16: Evoluao na construao do diagrama de estados do detector da c c sequncia 0101, usando um modelo de Mealy. Comea-se pelo estado inicial, e c designado por estado A Nesse estado podem surgir dois valores da entrada. Se a entrada for 0, evolui-se para o estado B pelas razes apontadas para a mquina de Moore. Se a entrada o a for 1, mantm-se o circuito no estado A. Em qualquer dos casos a sa 0, e da e como mostra a Figura 16.17. At se atingir o estado D o racioc e nio semelhante ao anteriormente realizado e (Figura 16.18).

294

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

1/0 A 0/0 B

Figura 16.17: Evoluao na construao do diagrama de estados do detector da c c sequncia 0101, usando um modelo de Mealy. Acrescentou-se um estado B e as e transies que partem do estado A co
1/0 1/0 A 0/0 B 1/0 C 0/0 D

0/0

Figura 16.18: Evoluao na construao do diagrama de estados do detector da c c sequncia 0101, usando um modelo de Mealy. Acrescentaram-se os estados C e e D, e as transies que partem de B e de C co Agora, como se est num modelo de Mealy, basta aparecer o valor 1 na entrada a para a mquina dar imediatamente sa 1. Claro que a entrada 0 provoca a a da sa 0 e faz o circuito evoluir de novo para B, admitindo que esse 0 possa ser da o in de uma sequncia (Figura 16.19). cio e
1/0 1/0 A 0/0 B 1/0 C 0/0 0/0 D 1/1

0/0

Figura 16.19: Evoluao na construao do diagrama de estados do detector da c c sequncia 0101, usando um modelo de Mealy. Mantendo os estados A a D e (no so necessrios mais estados), acrescentam-se mais transies admitindo a a a co sequncias sobrepostas e A transiao do estado D, neste modelo, tambm diferente. Repare-se que a c e e sa 1 j foi considerada. Assim sendo, no necessrio criar um estado apenas da a a e a para garantir essa sa da. Do estado D pode, ento, transitar-se (admitindo a sobreposiao de sequncias) directamente para o estado C, que caracterizado c e e por j ter entrado a sequncia 01 (Figura 16.20). a e Voltando agora ` anlise comparativa do comportamento dos circuitos projeca a tados segundo os dois modelos referidos, detalha-se na Figura 16.21 um pouco mais o diagrama temporal da Figura 16.9, incluindo os estados que os circuitos vo assumir. a Como se v, h realmente um comportamento diferente dos dois circuitos, eme a bora globalmente tenham a mesma funcionalidade.

16.7. S INTESE CLASSICA


1/0 1/0 A 0/0 B 1/0 C 0/0 0/0 0/0 1/1 D

295

Figura 16.20: Verso nal do diagrama de estados do detector da sequncia a e 0101, usando um modelo de Mealy e admitindo sequncias sobrepostas e

CLK H

X H

Moore Z H

Mealy Z H

Figura 16.21: Diagramas temporais que ilustram a diferena de resultados obtic dos na sa do detector da sequncia 0101 se se optar por um modelo de Mealy da e ou por um modelo de Moore. Nesta gura detalha-se a Figura 16.9, por incluso a dos estados pelos quais as duas mquinas passam a

16.7

S ntese Clssica a

A s ntese de circuitos sequenciais s ncronos passa por uma srie de passos que e permitem passar de uma descriao informal de um problema para a implec mentaao f c sica de um circuito que tem o comportamento pretendido. H vrios mtodos para realizar essa passagem. O mais clssico descreve-se e a a e a exemplica-se de seguida. 1. Diagrama de estados do circuito. Trata-se de estabelecer o comportamento pretendido num modelo formal, no amb a guo, que permite validar o que se pretende como comportamento. Trata-se de um passo opcional, uma vez que se pode, em alternativa, obter directamente a tabela de estados (ver a seguir). Mas mais frequente e muito mais intuitivo construir o e diagrama do que a tabela. 2. Tabela de estados e de sa das do circuito. A tabela de estados e de sa das obtm-se a partir do diagrama de estados, se o processo foi iniciado pelo e diagrama de estados. Continuamos ao nivel comportamental, mas a tabela adapta-se perfeitamente ` obtenao do logigrama nal para o circuito. a c

296

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

3. Escolha dos ip-ops. Trata-se de determinar o nmero de ip-ops u necessrio para suportar os estados da mquina, e de escolher o seu tipo. a a Como sabido, o nmero m e u nimo de ip-ops que necessrio prever o e a e menor inteiro que maior ou igual ao logaritmo na base 2 do nmero de e u estados da mquina. Quanto ao tipo de ip-ops a utilizar no circuito, no a a existe nenhuma maneira de garantir que um determinado tipo de ip-op conduz `s equaes de excitaao mais simples (ver, contudo, o comentrio a co c a da pgina 244). E nesta etapa que se gera a tabela de excitaes dos a co ip-ops escolhidos. 4. Codicao dos estados. Em princ ca pio, qualquer codicaao serve. A cada c codicaao corresponder, contudo, um circuito diferente e, naturalmente, c a algumas codicaoes vo gerar circuitos mais simples, enquanto outras c a daro origem a circuitos mais complexos. Contudo, no se dispe de um a a o algoritmo simples que permita determinar a conguraao que conduz ao c circuito m nimo. Nesta etapa obtemos a tabela de transioes e de sa c das do circuito. 5. Tabela de excitaoes do circuito. Depois de codicados os estados, obtec mos uma tabela de excitaoes do circuito a partir da tabela de transies c co anterior e da tabela de excitaoes dos ip-ops escolhidos. Trata-se de uma c tabela que descreve os n veis de tenso a aplicar `s entradas s a a ncronas dos ip-ops para que o comportamento temporal do circuito seja o que se estabeleceu na tabela de transies. Trata-se, pois, de uma tabela que co descreve os circuitos combinatrios de excitaao dos ip-ops, uma vez o c que na tabela todas as funes so descritas no mesmo instante t. co a 6. Equaes de excitaao dos ip-ops. Uma vez que a tabela de excitaoes co c c do circuito descreve as excitaoes a aplicar num instante t genrico aos ipc e -ops em funao dos seus estados no mesmo instante, podemos assim dec senhar quadros de Karnaugh para as excitaes e obter as correspondentes co equaoes lgicas. c o 7. Equaes de sa do circuito. Obtm-se as equaoes das sa co da e c das do circuito a partir da tabela de transies e de sa (de notar que, nessa tabela, as co da sa das num instante t so denidas em funao dos estados dos ip-ops a c no mesmo instante). 8. Logigrama ou esquema elctrico. Desenha-se em seguida o logigrama do e circuito, se necessrio o seu esquema elctrico. a e Para exemplicar o processo vai-se obter o circuito correspondente a um dos diagramas de estados obtidos na secao anterior. Ilustrar-se-` a construo c a ca utilizando ip-ops D e ip-ops JK. O diagrama de estados que se vai utilizar o da mquina de Mealy da Figura 16.20, que por comodidade se repete na e a Figura 16.22.

16.7.1

S ntese Clssica com Flip-ops D a

A tabela de estados e de sa das que se obtm do diagrama de estados lida e e directamente do diagrama (Tabela 16.5). O unico pormenor a ter em conta e que as sa das so vistas na tabela como correspondentes a determinados pares a

16.7. S INTESE CLASSICA


1/0 1/0 A 0/0 B 1/0 C 0/0 0/0 0/0 1/1 D

297

Figura 16.22: Diagrama de estados de Mealy do detector da sequncia 0101 com e sequncias sobrepostas, a implementar com ip-ops do tipo D e do tipo JK e (estado actual, entrada actual), isto , com tudo denido no mesmo instante, t. e Pelo contrrio, para os mesmos pares (estado actual, entrada actual) no instante a t, os estados seguintes so denidos no instante t + 1. a Tabela 16.5: Tabela de estados e de sa das para o detector de sequncias de e Mealy da Figura 16.22
EA ES/Z X=0 A B C D B/0 B/0 D/0 B/0 X=1 A/0 C/0 A/0 C/1

De notar, nesta tabela, como a sa vem a 0 nos estados actuais A, B e C, e da como ela vem igual a X no estado D, algo a que j tinhamos aludido anteriora mente a propsito da leitura dos diagramas de estado das mquinas de Mealy o a (ver, por exemplo, os comentrios nais da Secao 16.3, tecidos a propsito do a c o diagrama de estados da Figura 16.5). Como o circuito tem quatro estados, precisamos de dois ip-ops (22 = 4), que sero designados por Q1 e por Q0. a A determinao das conguraoes dos estados dos ip-ops que suportam cada ca c estado do circuito (a codicaao dos estados) no tem, como se disse atrs, c a a nenhuma metodologia de resultados garantidos para a obtenao do circuito mais c simples. O uso de algum bom senso pode, contudo, ajudar. Por exemplo, no nosso caso o estado A o estado inicial. O estado inicial ter e a de ser alcanado no in do funcionamento do circuito, actuando as entradas c cio directas (ass ncronas) dos ip-ops. Porque alguns ip-ops comerciais apresentam apenas entrada de CLEAR, parece razovel escolher, para o estado A, a a conguraao Q1 = 0 e Q0 = 0. c Por outro lado, a sa vale 1 apenas num lugar da tabela, quando a mquina da a est no estado actual D e X = 1. A funao mais simples que se pode conceber a c , ento, o produto lgico entre as sa e a o das dos ip-ops e a varivel de entrada. a Para isso, conviria que o estado D fosse codicado com Q1 = 1 e Q0 = 1, o que permite gerar uma funao muito simples de implementar, Z = X Q1 Q0. c

298

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

Variveis de estado a

As restantes conguraao so irrelevantes com o nosso conhecimento actual do c a circuito. Assim sendo, escolhe-se, por exemplo, a codicaao dos estados que c a se apresenta na Tabela 16.6 (`s sa a das dos ip-ops usual chamar variveis de e estado do circuito). Tabela 16.6: Tabela com a codicaao dos estados do detector de sequncias de c e Mealy da Figura 16.22
Estado A B C D Q1 H L L H H Q0 H L H L H

Substituindo, na anterior tabela de estados do circuito, os estados do circuito pelos estados dos ip-ops obtm-se a tabela de transies e de sa e co das da Tabela 16.7. Tabela 16.7: Tabela de transies e de sa co das do detector de sequncias de Mealy e da Figura 16.22
EA X H(t) = L Q1 H(t) Q0 H(t) L L H H L H L H Q1 H(t+1) Q0 H(t+1) / Z H(t) L L H L H H H H / / / / L L L L ES/Z X H(t) = H Q1 H(t+1) Q0 H(t+1) / Z H(t) L H L H L L L L / / / / L L L H

Esta tabela mostra-nos como devero evoluir as variveis de estado para satisa a fazer o comportamento pedido para o circuito. Para em seguida obtermos a tabela de excitaoes do circuito, consideremos o c seguinte: como sabemos da Secao 13.2 (ver a Tabela 13.3), para conseguir que c um ip-op D assuma um determinado n vel de tenso na sa Q H depois a da de ocorrido um anco de comutaao, basta colocar na entrada s c ncrona esse n vel de tenso antes de ocorrer o anco. Por isso, para passar da tabela de a transies anterior para a tabela de excitaoes do circuito, basta mudar o nome co c das colunas, como se faz na Tabela 16.8. De notar que se retiraram desta tabela as sa das do circuito, dado que as podemos gerar a partir da tabela de transies e de sa co das anteriormente obtida. Podemos agora obter as equaoes lgicas de D1, de D0 e de Z em funao de c o c

16.7. S INTESE CLASSICA

299

Tabela 16.8: Tabela de excitaes do detector de sequncias de Mealy da co e Figura 16.22 que usa ip-ops do tipo D
EA Excitaoes dos ip-ops c X H(t) = L Q1 H(t) Q0 H(t) L L H H L H L H D1 H(t) D0 H(t) L L H L H H H H X H(t) = H D1 H(t) D0 H(t) L H L H L L L L

Q1, de Q0 e de X recorrendo aos quadros de Karnaugh da Figura 16.23: D1 = X Q0 + X Q1 Q0 D0 = X Z = X Q1 Q0

X Q1 Q0
0

0
4

1 0
5

X Q1 Q0
0

X 0
4

1 0
5

Q1 Q0
0

0
4

1 0
5

00
1

0 0
3 7

00
1

1 1
3 7

00
1

0 0
3 7

01 11
2

1 1
6

01 11
2

0 0
6

01 11
2

0 1
6

0 1 D1

1 1 D0

0 0 Z

10

10

10

Figura 16.23: Quadros de Karnaugh para as excitaoes dos ip-ops D e para c a sa do detector de sequncias de Mealy da Figura 16.22 da e Finalmente, podemos desenhar na Figura 16.24 o logigrama do detector de sequncias que temos vindo a sintetisar. e Notemos que guardmos at esta altura a deciso sobre o modo de actuaao a e a c dos ip-ops cujo tipo foi anteriormente escolhido. Ou seja, todo o processo de sntese anterior apenas necessitou de saber que usmos ip-ops do tipo a D. S quando queremos desenhar o logigrama que temos de decidir se so o e a ip-ops master-slave ou edge-triggered, a comutar nos ancos ascendentes ou descendentes. No logigrama do nosso detector de sequncias escolhemos, arbitrariamente, utie lizar ip-ops D edge-triggered a comutar nos ancos descendentes.

300

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

1 &

Z H X H
1D C1 R & 1 1D C1 R

Q0 H

Q1 H

CLK H RESET L

Figura 16.24: Logigrama do detector de sequncias de Mealy que utiliza ipe -ops D

16.7.2

S ntese Clssica com Flip-ops JK a

Como evidente, todos os passos at ` deniao da tabela de transioes e de e e a c c sa das do circuito (Tabela 16.7) so idnticos ao caso em que se trabalha com a e ip-ops D. Naturalmente, agora precisamos de utilizar a tabela de excitaoes c dos ip-ops JK (Tabela 14.6 na pgina 245), em vez da tabela correspondente a dos ip-ops D. Combinando a tabela de transioes e a tabela de excitaoes dos ip-ops JK, c c obtm-se uma tabela de excitaes do circuito idntica ` da Tabela 16.8 em que e co e a se especica o n de tenses a aplicar `s entradas dos ip-ops para obter a vel o a evoluao pretendida. c Por exemplo para o quadrado assinalado a negrito na Tabela 16.9, indicam-se os n veis de tenso a colocar nas entradas s a ncronas J H e K H dos dois ip-ops para que o estado do primeiro se mantenha a L e o do segundo evolua de L para H, como especicado na parte esquerda da tabela para o estado actual (L,L) e entrada actual X H = L. Obtemos, assim, uma tabela em que temos a epecicaao dos n c veis a aplicar a J e a K em funao dos estados actuais e da entrada actual. c Tal como anteriormente, podemos obter os mapas de Karnaugh para os J e K na Figura 16.25 e as equaoes c J1 = X Q0 K1 = X Q0 + X Q0 = X Q0 J0 = X K0 = X .

A equaao da sa Z idntica ` obtida para os ip-ops D, uma vez que a c da e e a funao de sa no se altera com o tipo de ip-ops. c da a O circuito ter, portanto, o logigrama da Figura 16.26. a Como se pode observar, o circuito total possui complexidade idntica ` do cire a cuito obtido com ip-ops D. Deve, contudo, recordar-se a nota ` margem da a pgina 244, que arma que mais provvel obter circuitos de excitao mais a e a ca simples se se utilizarem ip-ops JK.

16.8. S INTESE COM UM FLIP-FLOP POR ESTADO

301

Tabela 16.9: Construo da tabela de excitaoes do detector de sequncias de ca c e Mealy da Figura 16.22, com a utilizaao de ip-ops JK, a partir da tabela de c transies do circuito co

EA X H(t) = L Q1 H(t) Q0 H(t) L L H H L H L H Q1 H(t+1) Q0 H(t+1) L L H L H H H H

ES X H(t) = H Q1 H(t+1) Q0 H(t+1) L H L H L L L L Tabela de excitaoes c Tabela de transies co

EA X H(t) = L Q1 H(t) Q0 H(t) L L H H L H L H

Excitaoes dos ip-ops c X H(t) = H J1 H(t) K1 H(t) J0 H(t) K0 H(t) L H H L L L H H

J1 H(t) K1 H(t) J0 H(t) K0 H(t) L L X L H H H X L L

16.8

S ntese com um Flip-op por Estado

Uma forma alternativa de implementar um circuito sequencial s ncrono consiste em utilizar um ip-op D por cada estado do circuito. Trata-se de um mtodo e que no garante a simplicaao do logigrama do circuito, mas que bastante esa c e truturado e permite realizaoes interessantes com os componentes programveis c a actualmente dispon veis. Por outro lado, com circuitos que tenham muitas entradas ou estados, pode mesmo ser a metodologia mais adequada por no obrigar a uma viso global do a a circuito na fase de concepao, e por conduzir a uma s c ntese muito simplicada no h, neste mtodo, que estabelecer as tabelas de transies e de sa a a e co das, nem as tabelas de excitaao do circuito, nem os mapas de Karnaugh para as c excitaoes e sa c das, que podem ter dimenses muito grandes se o nmero de o u entradas e de estados for elevado. A existncia de um ip-op por cada estado do circuito, claro, conduz a mais e e ip-ops do que os que so necessrios com as metodologias anteriores. Em a a cada momento, s um dos ip-ops v a sua sa Q H activada, e esse ipo e da -op determina o estado em que o circuito se encontra. No estado inicial h a que activar a sa do respectivo ip-op (o ip-op que corresponde ao estado da inicial) e desactivar os restantes. A simplicidade de s ntese que este mtodo permite resulta de podermos pr em e o

Se olharmos para as sadas dos n ip-ops do circuito, apenas com uma activa e todas as outras inactivas em cada impulso de relgio, o e como se estivessemos a descrever as diversas palavras de um cdigo o 1-em-n.

302

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS


X Q1 Q0
0

0
4

1 0
5

X Q1 Q0
0

0 1
2 6 4

1 0 1 K1

00
1

0 0
3

00
1

01 11
2

1
7

01
3

11 10

10

J1 X Q1 Q0
0

0
4

1 0
5

X Q1 Q0
0

0 0
3 7 4

1 1 1
6

00
1

1 1 J0

00
1

01
3

01 11
2

11
2

10

10

K0

Figura 16.25: Quadros de Karnaugh para as excitaoes dos ip-ops JK e para c a sa do detector de sequncias de Mealy da Figura 16.22 da e

1 &

Z H

X H
1J C1 1K R

&

Q0 H
=1

1J C1 1K R

Q1 H

CLK H RESET L

Figura 16.26: Logigrama do detector de sequncias de Mealy que utiliza ipe -ops JK correspondncia biun e voca determinadas partes do diagrama de estados e partes do logigrama nal do circuito. Vamos examinar as principais.
Transiao incondicional c

Na Figura 16.27(a) representa-se uma transio incondicional do estado A para ca o estado B (por transio incondicional entende-se uma transiao que no ca c a e condicionada pelos valores lgicos nas entradas externas). o A gura representa as duas notaoes poss c veis para este tipo de transio, admica tindo que apenas uma entrada externa, X, est em jogo. A Figura 16.27(b), por a seu lado, ilustra o troo de logigrama equivalente ` transiao, com uma ligaao c a c c directa do ip-op A ao ip-op B.

16.8. S INTESE COM UM FLIP-FLOP POR ESTADO


X=0 A X=1 B A
1D C1

303

B
1D C1

X= (a)

B (b)

Figura 16.27: (a) Uma transiao incondicional do estado A para o estado B no c diagrama de estados (isto , uma transio que no depende dos valores lgicos e ca a o na entrada X), tem por correspondncia (b) um troo do logigrama (com um e c ip-op por estado) que se traduz pela ligaao do ip-op A ao ip-op B c Relembrando que, numa implementao com um ip-op por estado, apenas ca um ip-op de cada vez tem a sua sa Q H activada, constatamos que, se da num determinado impulso de relgio o ip-op A que tem a sa activa e, o e da portanto, a sa de B est inactiva, no impulso de relgio seguinte os ip-ops da a o vem as suas sa e das com as actividades respectivas trocadas. A Figura 16.28 ilustra um outro tipo de transio, designada por transio condica ca cionada ou Fork.
X H X=0 A X=1 B A
1D C1 & &

Transiao condicionada c ou Fork

B
1D C1

C
1D C1

(a)

(b)

Figura 16.28: (a) Uma transiao do estado A para um dos estados B ou C c condicionada aos valores lgicos numa entrada, X, tem por correspondncia (b) o e um troo do logigrama (com um ip-op por estado) que se traduz pela ligaao c c do ip-op A aos ip-ops B ou C consoante o valor lgico aplicado a X o Trata-se de uma transiao que depende dos valores lgicos aplicados `s entradas c o a externas num determinado estado. Na gura apresenta-se a transio do estado ca A para os estados B ou C, condicionada ao valor lgico aplicado numa unica o entrada, X, quando o circuito est no estado A. a De notar que era poss vel estender este conceito a mais do que uma entrada, co porm tendo em atenao que k entradas externas do origem a 2k transies a e c a partir do estado de origem: nesse caso podamos usar um demultiplexer contro lado pelas entradas para encaminhar a sada do estado de origem para um dos 2k estados de destino.

304

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

Relembrando, mais uma vez, que numa implementaao com um ip-op por c estado, apenas um ip-op de cada vez tem a sua sa Q H activada, consda tatamos que, se num determinado impulso de relgio o ip-op A que tem a o e sa activa e, portanto, as sa da das de B e de C esto inactivas, no impulso de a relgio seguinte um dos ip-ops B ou C (mas apenas um deles) v a sua sa o e da activada, consoante o valor da entrada X no estado A.
Convergncia ou Join e

e A Figura 16.29 ilustra um terceiro tipo de transio, designada por convergncia ca ou Join.
A
1D

C1

C
1D C1

B
1D C1

(a)

(b)

Figura 16.29: (a) Uma transiao do estado A ou do estado B para o estado C c (convergncia), tem por correspondncia (b) um troo do logigrama (com um e e c ip-op por estado) que se traduz pela ligaao do ip-op A ou do ip-op B c ao ip-op C Trata-se de transies alternativas que no dependem dos valores lgicos aplico a o cados `s entradas externas. Na gura apresenta-se a transio do estado A ou a ca do estado B para o estado C, pelo que se utiliza uma porta OR para assegurar a convergncia. e Dado que numa implementao com um ip-op por estado, como sabemos, ca apenas um ip-op de cada vez tem a sua sa Q H activada, vericamos que, da se num determinado impulso de relgio o ip-op A (o ip-op B) que tem o e a sa activada e, portanto, as sa da das de B (de A) e de C esto inactivas, no a impulso de relgio seguinte ser o ip-op C que v a sua sa activada. Em o a e da qualquer dos casos, ser sempre a vez de C vir activado depois de A ou de B. a Finalmente, consideremos a geraao das sa c das, em que temos quatro casos, ilustrados na Figura 16.30.
Sa das de Mealy

Nas Figuras 16.30(a) e (b) representam-se sa das de Mealy ou sa das condicionadas, porque dependem dos valores lgicos aplicados `s entradas (apenas o a uma entrada e uma sa esto representadas nessas guras). Assim, na Figuda a ra 16.30(a) temos Z = X no estado A, enquanto que na Figura 16.30(b) temos Z = X no mesmo estado A. Por seu turno, nas Figuras 16.30(c) e (d) representam-se sa das de Moore ou sa das incondicionais, porque no dependem dos valores lgicos aplicados `s ena o a tradas. Por exemplo, na Figura 16.30(c) temos Z = 0 no estado A, enquanto que na Figura 16.30(d) temos Z = 1 no estado A, em ambos os casos de forma independente do valor na entrada X nesse estado.

Sa das de Moore

16.9. FLUXOGRAMAS
Sa das de Mealy Sa das de Moore

305

X/Z 0/0 A 1/1 (a) A

X/Z 0/1 A 1/0 (b)

X/Z 0/0 A 1/0 (c)

X/Z 0/1

1/1 (d)

Figura 16.30: (a) e (b) Sa das de Mealy, porque os seus valores dependem dos valores nas entradas (apenas uma entrada e uma sa se encontram represenda tadas); e (c) e (d) sa das de Moore, que no dependem dos valores nas entradas a A geraao das sa c das diferente para os quatro casos, como mostra a Figue ra 16.31. Retomemos agora na Figura 16.32 o diagrama de estados do detector de sequncias de Mealy da Figura 16.22, e vamos sintetiz-lo directamente (com um e a ip-op por estado), utilizando os conhecimentos entretanto adquiridos sobre a geraao de partes do logigrama do circuito. c Comeamos por considerar, na Figura 16.33, os 4 ip-ops correspondentes aos c 4 estados. Na gura inclui-se j a inicializaao do circuito, fazendo o Set do a c ip-op A e o Reset dos outros. Para comearmos a construir o logigrama, pensemos no seguinte. Para alm da c e inicializao, entra-se no estado A por dois caminhos possiveis, como se pode ver ca do facto de para ele convergirem duas setas no diagrama de estados: vai-se para A se o circuito estiver no estado A e a entrada X for 1, ou se estiver no estado C e X = 1. Esta dupla condiao podecolocar-se directamente no logigrama c do circuito, como mostra a Figura 16.34. Por outro lado, ao estado B chega-se por trs caminhos poss e veis, como ilustrado na Figura 16.35: do estado A com X = 0, do estado B com X = 0, ou do estado D com X = 0. O resto do circuito , agora, simples de obter (Figura 16.36). e

16.9

Fluxogramas

Uma forma alternativa de especicar circuitos sequenciais utiliza uxogramas que, no fundo, so formas alteradas de diagramas de estados. Os uxogramas a so representaoes mais compactas que os diagramas de estados, mas contm a a c e mesma informaao. c Com os uxogramas procura-se, em cada situao, apresentar apenas a inca formaao relevante, o que os torna particularmente uteis quando o nmero de c u entradas e de sa das elevado. e

306

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

0/0 A X/Z 1/1

X H A
1D C1

&

Z H Z=X no estado A (a)

0/1 (b) A X/Z 1/0

X H A
1D C1

&

Z H Z = X no estado A

0/0 A A X/Z 1/0


1D C1

Z H Z=L no estado A

(c)

(d) A

0/1 X/Z 1/1 A


1D C1

Z H Z=H no estado A

Figura 16.31: (a) e (b) A geraao de uma sa de Mealy necessita de uma porta c da AND com a polaridade adequada na entrada que est ligada ` entrada externa; a a porm, (c) e (d) as sa e das de Moore dispensam a existncia de portas AND e
1/0 1/0 A 0/0 B 1/0 C 0/0 0/0 0/0 1/1 D

Figura 16.32: Diagrama de estados de Mealy do detector da sequncia 0101 com e sequncias sobrepostas, a implementar usando um ip-op por estado e Com efeito, como j sabemos, os diagramas de estado aumentam exponenciala mente as suas dimenses com o aumento do nmero de entradas externas, visto o u que, de cada estado actual, devem partir 2k transies para os estados seguintes, co se k for o nmero de entradas externas. Por outro lado, precisamos de indicar, u para cada transiao (num diagrama de Mealy) ou para cada estado (num diac

16.9. FLUXOGRAMAS
A
1D C1

307

S R

CLK H INIT L

B
1D C1

S R

C
1D C1

S R

D
1D C1

S R

Figura 16.33: Construo do logigrama do detector da sequncias de Mealy da ca e Figura 16.32, usando um ip-op por estado. Nesta fase, apenas se incluem os ip-ops e a inicializaao do circuito c grama de Moore), os n veis de tenso (ou valores lgicos) em todas as sa a o das, o que torna dif a leitura do diagrama. cil Num uxograma, pelo contrrio, no se indicam todas as entradas (e transioes) a a c a partir de um dado estado actual, mas apenas as que so relevantes. Segue-se a que o nmero total de transies vem, com um uxograma, substancialmente u co reduzido. Identicamente, em cada estado actual ou transiao a partir desse c estado apenas se indicam, num uxograma, as sa das que esto activas, o que a facilita consideravelmente a sua leitura. Num uxograma um estado representado por um rectngulo, e as entradas e a surgem em losangos que representam decises. As sa o das, no caso dos modelos de Moore, so representadas dentro dos estados. No caso dos modelos de Mealy, a so representadas por um s a mbolo prprio formado por um rectngulo com os o a lados substitu dos por arcos de circunferncia. e Exempliquemos com o seguinte caso: considere-se uma estrada de montanha to estreita que apenas deixa passar uma viatura. A estrada , como quase a e todas as estradas, de sentido duplo na plan cie, mas de sentido unico na zona e de montanha (Figura 16.37, na pgina 310). a

308

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

&

A
1D C1

X H

S R

CLK H INIT L

B
1D C1

S R

C
1D C1

S R

D
1D C1

S R

Figura 16.34: Continuaao da construo do logigrama anterior, agora com as c ca excitaoes no estado A c Para resolver o problema instalaram-se duas cancelas nos dois extremos do troo c estreito. H seis detectores (sensores) na estrada nos locais assinalados por D1 a a D6, e dois semforos designados por S1 e S2. a O funcionamento pretendido para o circuito de controlo das cancelas o seguinte: e as cancelas esto normalmente fechadas, e os semforos S1 e S2 normalmente a a em vermelho. Quando surge uma viatura, por exemplo do lado esquerdo, pisa o detector D1. Se no houver nenhum carro a deslocar-se no troo estreito, o semforo S1 passa a c a a verde, a cancela C1 abre, e a viatura entra. Logo que passa no detector D2, essa barreira fechada, o semforo volta a vermelho e a situaao ca estvel e a c a neste estado at a viatura sair do sistema. Quando a viatura chega ao detector e D3, a cancela C2 abre e permanece aberta at a viatura pisar o detector D4. e Ento, a cancela fecha. a Se entretanto chegar uma viatura a qualquer dos lados, espera que a primeira saia e s ento se inicia de novo o processo no mesmo sentido ou no sentido o a inverso, conforme o sentido de chegada da viatura. No caso de chegarem duas viaturas ao mesmo tempo, d-se prioridade ao sentido da esquerda para a direita. a

16.9. FLUXOGRAMAS

309

&

A
1D C1

X H

H
& 1

S R

B
1D C1

S R

C
1D C1

S R

CLK H INIT L H

D
1D C1 S R

Figura 16.35: Continuaao da construo do logigrama anterior, com as exc ca citaoes no estado B c Esta ultima especicaao serve para simplicar o uxograma (depois de perceber c como funciona o mtodo, tente refazer o problema dando prioridade ao sentido e inverso ao da ultima passagem). Como evidente, dif desenhar um diagrama de estados para este circuito, e e cil uma vez que o circuito tem 6 entradas (os detectores, j que as cancelas e os a semforos so sa a a das) e, por conseguinte, 26 = 64 transies a partir de cada co um dos estados. Por isso, o uxograma mais interessante do que o diagrama e de estados, uma vez que em cada estado se vai ter em conta apenas a ou as entradas relevantes para a evoluao a partir desse estado. c Aos estados podem ser dadas designaoes apropriadas. No caso de um modelo c de Moore, as sa das e os correspondentes n veis de actividade so indicadas nos a estados. Porm, em cada estado apenas se indicam as sadas que esto activas, e a o que permite simplicar consideravelmente a leitura do uxograma. Assim, parte-se de um estado inicial, E0, em que o circuito espera que surja uma viatura. A partir desse estado h trs hipteses de evoluao: a e o c no surge viatura alguma e continua-se no mesmo estado; ou a

310

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

&

A
1D C1

X H
1

H
& 1

S R

B
1D C1

S R

&

C
1D C1

H CLK H

S R

& & D
1D C1

Z H

H INIT L

S R

Figura 16.36: Logigrama nal do detector da sequncias de Mealy da e Figura 16.32, implementado com um ip-op por estado
D6 D2 D3 S2 D5

C1

C2

S1 D1 D4

Figura 16.37: Uma estrada de montanha com duas cancelas, C1 e C2, seis sensores (detectores), D1 a D6, e dois semforos, S1 e S2 a surge uma viatura detectada por D1 do lado esquerdo inicia-se o processo de atravessamento da esquerda para a direita; ou surge uma viatura detectada por D5, e no h viatura em D1 inicia-se o a a

16.9. FLUXOGRAMAS processo de atravessamento da direita para a esquerda.

311

Este in pode ser, assim, especicado pela parte do uxograma da Figura 16.38. cio

E0

Espera

H E1 C1 H, S1 H

D1 H

D5 H E5 H C2 H, S2 H

Figura 16.38: In cio do uxograma de Moore de controlo do sistema da Figura 16.37 Admite-se que todas as entradas e sa das so activas a H e que: (i) a activaao de a c uma cancela signica levant-la; e que (ii) a activaao de um semforo signica a c a p-lo verde. o Repare-se que, no estado E0, se colocou um comentrio indicando que o esa tado o de Espera inicial. Por outro lado, as sa e das nesse estado esto todas a desactivadas, o que signica que as duas cancelas esto baixadas e que os dois a semforos esto vermelhos. E de facto, a situao inicial do sistema. a a ca No estado E1 a sa C1 vem activada (o que corresponde a levantar a cancela) da e a sa S1 tambm (o que corresponde ao semforo verde). Por outro lado, da e a neste estado C2 e S2 esto inactivas, o que signica que a cancela da direita na a Figura 16.38 est baixada e que o semforo correspondente est vermelho. a a a Em E5 so as sa a das C2 e S2 que vm activas e C1 e S1 que vm inactivas, e e e os papis das cancelas e dos semforos vm trocados em relao aos do estado e a e ca E1. O estado E1 corresponde ao in do atravessamento da esquerda para a direita, cio e E5 ao in do atravessamento da direita para a esquerda. cio O resto do uxograma deve ser mais ou menos evidente (Figura 16.39). De realar o seguinte em relaao ` parte esquerda do uxograma (concluses c c a o semelhantes podem ser extra das da anlise da parte direita): a no estado E2 a viatura j entrou na estrada de montanha, as cancelas esto a a fechadas e os semforos esto vermelhos; a a no estado E3 a viatura ainda est no troo de montanha, mas j pisou o a c a sensor D3, pelo que a cancela C2 abre;

312

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

E0

Espera

H E1 C1 H, S1 H

D1 H

D5 H H

D2 H H

E5 C2 H, S2 H

E2 D3 H H L D3 H H E3 C2 H D2 H H L D4 H H E4 D6 H H L D4 H H E8 L E7 C1 H L E6 L

D6 H

Figura 16.39: Fluxograma de Moore de controlo das cancelas e dos semforos a da Figura 16.37 no estado E4 a viatura est prestes a sair do troo de montanha para a a c estrada com duas vias, porque j pisou o sensor D4; a cancela C2 fecha, o a semforo S2 continua vermelho e as condioes na cancela e no semforo da a c a esquerda da Figura 16.37 mantm-se; neste estado espera-se que a viatura e deixe de pisar o sensor D4 enquanto estiver a pis-lo, o que pode demorar a vrios ciclos de relgio, o circuito mantm-se no estado E4, e s quando deixar a o e o de o pisar que o circuito se reinicia, voltando ao estado E0 e atendendo a e

Por exemplo, se a frequncia de relgio for e o de 1 MHz, ou seja, se o perodo de relgio for de o 1 s, o circuito d 106 a voltas ao estado E4 num segundo.

16.9. FLUXOGRAMAS eventuais pedidos em D1 ou em D5, sendo o primeiro prioritrio. a

313

Como se viu, o uxograma anterior um uxograma que representa um circuito e de Moore. As sa das esto dependentes, em exclusivo, dos estados. a Exempliquemos agora com um uxograma com sa das segundo o modelo de Mealy. Neste caso, vamos repetir o exemplo anterior mas com uma pequena alteraao: o semforo S1 ca activo (verde) apenas at o ve c a e culo abandonar o detector D1. Logo que isso acontece, o sinal volta a vermelho para impedir que um segundo ve culo siga o primeiro. A alteraao consiste em tornar a sa S1 dependente no s do estado E1 como c da a o da entrada D1. Trata-se de uma sa de Mealy, por oposiao `s do uxograma da c a da Figura 16.39, que so sa a das de Moore. O s mbolo de uma sa de Mealy num uxograma o que se indica na Fida e gura 16.40(a). Este s mbolo deve ser utilizado sempre que, num determinado estado, A por exemplo, se testa um certo nmero de condioes (variveis de u c a entrada) e se decide que, quando as condioes vm satisfeitas, se devem activar c e determinadas funoes de sa c da. Naturalmente, tal pressupe que, se as condioes o c de entrada no vierem satisfeitas, as sa a das no vm activadas nesse estado [Fia e gura 16.40(b)]. Por contraste, as sa das de Moore [Figura 16.40(c)] viro activadas no prprio a o estado, independentemente dos testes que se zerem, nesse estado, `s entradas. a O resultado nal para o circuito d o uxograma da Figura 16.41. a No caso do funcionamento do circuito ser representado por um uxograma, e bastante fcil a sua implementaao usando um ip-op por estado. Basta, para a c tanto, obter as relaoes entre partes do uxograma e partes do logigrama nal, c tal como se fez anteriormente para o caso dos diagramas de estado. Por exemplo, as transioes incondicionais so implementadas como se ilustra c a na Figura 16.42(a), enquanto que as transies condicionadas (ou Forks) e as co convergncias (ou Joins) so implementadas com indicam as Figuras 16.42(b) e a e (c). Quanto `s sa a das de Moore e de Mealy, sero implementadas como se ilustra a nas Figuras 16.43 e 16.44, respectivamente. Agora, fcil desenhar o logigrama do circuito. Por exemplo, a parte do logie a grama que tem a ver com a transiao do estado E1 para o estado E2 e conc sequente activaao das funoes de sa C1 e S1 em funao das variveis de c c da c a entrada D1 e D2 deve ser feita como mostra a Figura 16.45. Por exemplo, de notar que a transio de E1 para E2 se faz desde que a e ca varivel D2 esteja activada, independentemente do n a vel de tenso em D1 (se a D2 estiver desactivada, vai-se de E1 para E1). Por outro lado, a funao de sa S1 vem activada desde que se esteja no estado c da E1 e D1 esteja activada, cando o semforo 1 verde. De notar que, quando o a circuito est noutro estado que no o estado E1, o ip-op E1 tem a sa a L a a da e a funao S1 vem desactivada, o que faz com que o semforo 1 que vermelho. c a Finalmente, a funao de sa C1 vem activada se se estiver no estado E1 ou no c da estado E7 (e a cancela respectiva abre). Desde que o circuito esteja num estado diferente de E1 ou de E7, a funao C1 vem desactivada e a cancela fecha. c

314

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

Sa das activadas

Condio ca satisfeita? S Sa das activadas

(a) Estado B (b) Estado C

A Sa das activadas

Condio ca satisfeita? S Estado B (c)

Estado C

Figura 16.40: (a) S mbolo de uma sa de Mealy. Contraste entre uma sa da da de Mealy (b) e uma sa de Moore (c) num uxograma. Enquanto a primeira da identica, no interior do seu s mbolo, a sa ou sa da das que vm activadas num e determinado estado, A por exemplo, quando uma determinada condiao vem c satisfeita na entrada ou entradas testadas, a segunda, porque no depende das a entradas, v a sa ou sa e da das activadas no s mbolo do prprio estado o

16.10

Referncias Bibliogrcas e a

Mano, Morris M., and Kime, Charles R. Logic and Computer Design Fundamentals, 2nd ed., Prentice Hall International, Inc., New Jersey, USA, 2000, Secao 4.4. c

16.11

Exerc cios

Nota: os exerc cios identicados com um asterisco () esto resolvidos em a SD:ER. 16.1 Prove que os circuitos da Figura 16.1, na pgina 281, so sequenciais. a a

16.11. EXERC ICIOS

315

E0

Espera

H E1 C1 H

D1 H

D5 H H E5 C2 H

D1 H H S1 H

D5 H H

D2 H H

S2 H

E2 D3 H H L D3 H H E3 C2 H D2 H H L D4 H H E4 D6 H H L D4 H H E8 L E7 C1 H L E6 L

D6 H

Figura 16.41: Fluxograma de Mealy de controlo das cancelas e dos semforos a da Figura 16.37 16.2 Considere o logigrama da Figura 16.46 e desenhe: a) o diagrama de estados do circuito; b) um diagrama temporal que ilustre o funcionamento da sa do circuito da entre dois instantes, t0 e t1, sabendo que em t0 se tem Q0 H = L, Q1 H = = H e Q2 H = H, e em t1 se tem Q0 H = L, Q1 H = L e Q2 H = H.

316

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

A
1D

B
1D C1

(a)

B C1

X H A

&

B
1D C1

(b)
B

X H C

1D C1 &

C
1D C1

A
A B 1D C1 1

C
1D C1

(c)

B
1D C1

Figura 16.42: (a) Implementaao, com um ip-op por estado, de uma transio c ca incondicional, (b) de uma transio condicionada ou Fork, e (c) de uma conca vergncia ou Join de um uxograma e

A (a) Z H

A
1D C1

Z H Z=H no estado A

A (b)

A
1D C1

Z H Z=L no estado A

Figura 16.43: Implementaao de uma sa de Moore de um uxograma, com c da um ip-op por estado 16.3 Analise o circuito sequencial s ncrono da Figura 16.47, construindo a res-

16.11. EXERC ICIOS

317

X H L (a) X H H Z H A
1D C1

&

Z H Z=X no estado A

X H H (b) X H L Z H A
1D C1

&

Z H Z = X no estado A

Figura 16.44: Implementaao de uma sa de Mealy de um uxograma, com c da um ip-op por estado
E7
1D C1 1

C1 H

D1 H

&

S1 H

E1
1D C1 &

E2
1D C1

D2 H

Figura 16.45: Implementaao da transio do estado E1 para o estado E2 e das c ca funoes de sa C1 H e S1 H em funao das variveis de entrada D1 H e c da c a D2 H do circuito da Figura 16.37, usando um ip-op por estado pectiva tabela de estados e de sa das. 16.4 Analise o circuito sequencial s ncrono da Figura 16.48. Para tanto, a) desenhe o diagrama de estados do circuito; b) desenhe o diagrama temporal da sa Z H durante 5 impulsos de da relgio, admitindo que os dois ip-ops se encontram inicialmente no eso

318

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

&

1J C1 1K

Q0 H

1J C1 1K

Q1 H

1J C1 1K

Q2 H

=1

CLK H

S H

Figura 16.46: Logigrama do circuito sequencial s ncrono do Exerc 16.2 cio

&

X H

1S C1 1R

& 1T C1 &

Z H CLK H

Figura 16.47: Circuito sequencial s ncrono do Exerc 16.3 cio tado (QA, QB) = (L, L).
QA H H
1J C1 1K 1J C1 &

QB H

Z H

1K

CLK H

Figura 16.48: Circuito sequencial s ncrono do Exerc 16.4 cio 16.5 Considere o circuito da Figura 16.49. a) Trata-se de um circuito concebido segundo o modelo de Moore ou de Mealy? Justique brevemente. b) Determine a sua tabela de estados.
&

Z H

& 1J C1

& 1J C1 1K

X H H CLK H

1K

Figura 16.49: Circuito sequencial s ncrono do Exerc 16.5 cio

16.11. EXERC ICIOS

319

() 16.6 Para uma determinada mquina s a ncrona com entrada X H e sa Z H da obteve-se o comportamento temporal descrito na Figura 16.50. A mquina a foi constru segundo o modelo de Moore ou de Mealy? Justique. da

CLK H

X H

Z H

Figura 16.50: Comportamento temporal de uma mquina s a ncrona 16.7 Desenhe o diagrama de estados de uma mquina sequencial s a ncrona com duas entradas, X e Y , por onde surgem, em srie, os bits de dois nmeros e u binrios sem sinal para serem comparados. Admita que os bits de menor a peso dos nmeros surgem em primeiro lugar. As sa u das do circuito (quantas?) devem indicar, em cada momento, qual dos dois nmeros maior, u e ou se so iguais. a 16.8 A sa S de um circuito sequencial peridica, de per da e o odo 4, e apresenta a sequncia de trs 1s e um 0. E, portanto, do tipo e e
...1 0 1 1 1 0 1 1 1 0 1 1...

Desenhe um diagrama de estados para uma mquina de teste de Mealy, T , a que analise, momento a momento, a sa S do circuito, e que d sa 1 da e da sempre que ocorrer uma alteraao da sequncia de sa em S. O circuito c e da T deve poder ser ligado em qualquer instante, desconhecendo-se o estado de S nesse momento. () 16.9 Desenhe o diagrama de estados de uma mquina sequencial s a ncrona cuja funo gerar um bit de paridade para as palavras analizadas. As ca e palavras tm comprimento 3, mas o circuito usa 4 impulsos de relgio para e o analizar cada palavra: os primeiros 3 impulsos so para os bits da palavra a e o quarto impulso serve para a geraao do bit de paridade. O bit de c paridade deve vir igual a 1 se a paridade da palavra recebida for par, e a 0 se for mpar. Enquanto o quarto impulso no ocorrer, o valor na sa a da indiferente. Desenhe o circuito: (a) como uma mquina de Moore; e (b) e a como uma mquina de Mealy. a () 16.10 Desenhe um diagrama de estados para uma mquina de Mealy com uma a entrada srie e uma sa que repete a sequncia de entrada com dois e da e per odos de relgio de desfasamento. Os dois primeiros valores na sa o da devem ser iguais a 0. 16.11 Desenhe o diagrama de estados de uma mquina sequencial s a ncrona que gera uma das seguintes sequncias: 1 1 0 0 ou 0 1 0 1, conforme uma varivel e a

320

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS de controlo est a 0 ou a 1, respectivamente. A varivel de controlo pode a a mudar em qualquer momento e a mquina nunca deve, na transio, enviar a ca mais do que dois bits iguais.

() 16.12 Desenhe o diagrama de estados ou o uxograma de uma mquina sea quencial s ncrona com uma entrada, X, e duas sa das, Z0 e Z1, com o comportamento que se descreve em seguida: Z0 = 1 apenas quando, na entrada, se verica a sequncia 1 1 0 1, e Z0 = 0 em todos os restantes e casos; Z1 = 1 apenas quando, na entrada, se verica a sequncia 1 0 1 1, e e Z1 = 0 em todos os restantes casos. A mquina deve detectar sequncias a e com sobreposiao. c 16.13 Desenhe o diagrama de estados de uma mquina sequencial s a ncrona de Moore com duas entradas, X e Y , e uma sa da, Z, rais que: (i) se Y = 0, ento Z = X; e (ii) se Y = 1, ento Z igual ao valor de X no per a a e odo de relgio anterior. Admita que Y = 0 no instante inicial. o 16.14 Desenhe o diagrama de estados de uma mquina sequencial s a ncrona com uma entrada e uma sa e com o seguinte comportamento. da (i) A mquina recebe pela entrada sequncias de 4 bits, mas desses bits a e apenas considera os 3 primeiros. Como resposta, a mquina fornece uma a sequncia de 4 bits. e (ii) A sequncia de sa semelhante ` sequncia de entrada, mas inclui e da e a e um 1 suplementar. Esse 1 segue-se imediatamente ` primeira sequncia a e de dois 0s na entrada. Se tal sequncia no ocorrer na entrada, o 1 ser e a a acrescentado no m. Segue-se um exemplo de comportamento da mquina. a
Entrada: Sa da: 1 0 1 0 0 1 0 0 0 1 0 1 1 Bit 1 inserido no m 0 0 1 1 0 0 1 0 Bits 1 inseridos a meio Resto da sequncia e

16.15 Considere uma mquina sequencial s a ncrona com duas entradas, X1 e X2, e uma sa da, Z. A sa deve permanecer a 0 at que as entradas sejam da e iguais uma ` outra durante, pelo menos, 3 impulsos de relgio. Quando a o isso acontece, a sa dever gerar a sequncia 1 0 1 0. da a e Exemplo de funcionamento:
X1: X2: Z: 0 1 0 0 0 1 1 0 1 1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0

Desenhar o diagrama de estados da mquina. a 16.16 Desenhe o diagrama de estados de uma mquina sequencial s a ncrona de Moore com uma entrada, X, e uma sa da, Z, com o seguinte funcionamento: a sa s vai a 1 durante um per da o odo de relgio aps a entrada o o ter ido a 1 e regressado a 0.

16.11. EXERC ICIOS

321

16.17 Desenhe o diagrama de estados de uma mquina sequencial s a ncrona com uma entrada e uma sa com o seguinte comportamento: da a mquina possui dois modos de funcionamento; a no Modo 1 a sa copia a entrada; no Modo 2 a sa permanenteda da e mente 0; a mquina passa do Modo 1 para o Modo 2 quando recebe a sequncia a e 1111 na entrada; e a mquina passa do Modo 2 para o Modo 1 quando recebe a sequncia a e 0101 na entrada. 16.18 Desenhe o diagrama de estados de uma mquina sequencial s a ncrona com uma entrada e uma sa normalmente a 0, que, ao identicar a sequncia da, e 101 na entrada, gera na sa a sequncia 1010. da e 16.19 Desenhe o diagrama de estados ou o uxograma de uma mquina sequena cial s ncrona com uma entrada e trs sa e das, com o seguinte comportamento. a) A mquina recebe sequncias sucessivas de 4 bits, que interpreta como a e d gitos BCD, com o bit mais signicativo de cada d gito a entrar em primeiro lugar. A mquina apresentar em duas das sa a a das, e simultaneamente com o ultimo bit que entra, o resultado da diviso inteira do d a gito BCD por 3. b) Se a sequncia de entrada no for um d e a gito BCD, a terceira sa da da mquina assumir o valor 1, tambm em simultneo com o ultimo bit a a e a entrado. c) Consideram-se as sequncias de entrada sem sobreposiao, isto , como e c e grupos sucessivos e independentes de 4 bits. 16.20 Construa o diagrama de estados de uma mquina sequencial s a ncrona com uma entrada e uma sa com o seguinte comportamento: a sa vem a da da 1 durante um impulso de relgio sempre que as ultimas cinco entradas o comearem por dois 1s seguidos e tenham exactamente trs 1s. Por c e exemplo,
Entrada: Sa da: 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1

16.21 Desenhe o diagrama de estados (ou, se preferir, a tabela de estados ou o uxograma) de uma mquina sequencial s a ncrona com uma entrada e uma sa com o seguinte funcionamento: nos dois primeiros impulsos de da relgio a sa vem a 0; a partir da a sa vem a 1 se a entrada, em cada o da , da instante, igual ` entrada dois impulsos de relgio atrs e 0 nos restantes e a o a casos. 16.22 Desenhe o diagrama de estados de uma mquina sequencial s a ncrona com ` duas entradas, X0 e X1, e duas sa das, Y e Z. As entradas so aprea sentados nmeros binrios com 2 bits, tendo X1 o bit mais signicativo u a e X0 o menos signicativo. A mquina analisa sequncia sucessivas de a e trs nmeros. Se a sequncia for 2, 1, 2, a funao Y vem a 1 e a mquina e u e c a recomea a anlise de outra sequncia. No caso de a sequncia no ser a c a e e a

322

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS prevista, Z vem a 1 e a mquina recomea a anlise de outra sequncia. a c a e As sa das mantm o valor 1 durante um impulso de relgio. e o

16.23 Desenhe o diagrama de estados de uma mquina sequencial s a ncrona que faa as funoes de divisor de frequncia por 2 ou por 3 consoante o valor c c e lgico numa linha de controlo, M . o () 16.24 Elabore um diagrama de estados para uma mquina de Mealy que recebe a em srie, na sua unica entrada, uma palavra qualquer do cdigo BCD e o (entra em primeiro lugar o bit de maior peso), e cuja sa s vem a 1 se da o a palavra que entrou for inferior a 4(BCD) ou superior a 7(BCD) . O valor na sa no deve vir especicado para os trs primeiros bits da palavra. da a e () 16.25 Desenhe o diagrama de estados de uma mquina de Mealy que detecte a palavras do cdigo BCD. As palavras, com 4 bits, entram em srie por o e uma entrada unica, comeando pelo bit de maior peso. Ao m de quatro c impulsos de relgio o circuito deve vir reiniciado, preparado para detectar o uma nova palavra. Para alm da entrada, o circuito tem duas sa e das, X e Y , tais que: (i) se X = Y = 0, ento a palavra recebida no pertence a a ao cdigo BCD; (ii) se X = Y = 1 a palavra pertence ao cdigo; e (iii) o o se X = 1 e Y = 0 porque no foi poss e a vel, at ao momento, saber se a e palavra pertence ou no ao cdigo. a o 16.26 Desenhe o diagrama de estados de uma mquina sequencial s a ncrona com uma entrada e uma sa com esta ultima a assumir o valor 1 se os ultimos da, 4 bits forem um nmero par em BCD. Se o nmero for maior do que 9(10), u u a sa dever vir a 0. O bit que entra primeiro o bit mais signicativo. da a e Por outro lado, apenas interessa o valor da sa quando recebido o da e quarto bit. () 16.27 Obtenha o diagrama de estados (ou o uxograma) de uma mquina a sequencial s ncrona com duas entradas e duas sa das que compara dois d gitos BCD, A e B. Cada d gito apresentado em srie por uma das e e entradas, comeando pelo bit de menor peso. Nas entradas so presentes c a sequncias sucessivas de 4 bits. A sa deve indicar permanentemente se e da A > B, se A < B ou se A = B. 16.28 Desenhe o diagrama de estados de uma mquina sequencial s a ncrona com duas entradas e duas sa das. A mquina recebe, pelas suas entradas, a sequncias sucessivas de 4 bits. No m de cada sequncia a mquina deve e e a indicar se as duas sequncias que entraram so ou no d e a a gitos BCD. Se forem, a mquina deve ainda indicar se eles so ou no iguais. a a a () 16.29 Determinar um diagrama ou uma tabela de estados de uma mquina a sequencial s ncrona que recebe d gitos BCD a comear pelo bit menos c signicativo. A mquina dar sa 1 se o d a a da gito for mltiplo de 4. u 16.30 Desenhe o logigrama de uma mquina sequencial s a ncrona com uma entrada X que condiciona o comportamento do circuito da seguinte forma: se X = 0, a mquina possui o diagrama de estados da Figura 16.51(a); se a X = 1, o diagrama de estados o da Figura 16.51(b). e Indique a evoluao do circuito se, antes de receber o primeiro impulso de c relgio aps ligar o sistema, o circuito estiver no estado B e a varivel de o o a entrada estiver em 1.

16.11. EXERC ICIOS

323

B A C A E

F E (a)

D C

(b)

Figura 16.51: (a) Diagrama de estados da mquina s a ncrona do Exerc 16.30 cio no caso em que X = 0; e (b) no caso em que X = 1 16.31 a) Projecte um circuito sequencial s ncrono de Mealy que soma a constante 2 em binrio a um nmero com 3 bits entrado em srie, cando a u e preparado para repetir a operaao sucessivamente com outros nmeros na c u entrada. Caso haja transporte no m, despreze-o. Entram primeiro os bits de menor peso do nmero. u b) Transforme o diagrama de estados obtido na al nea anterior no pressuposto de o circuito representar uma mquina de Moore. a 16.32 Considerando o diagrama de estados da Figura 16.52, e sabendo que dispe de om oscilador de relgio CLK com uma frequncia de 1 Hz, o o e

B 0 1 A 1 0 1 E 0 1 D 1 0 C 0

Figura 16.52: Diagrama de estados da mquina s a ncrona do Exerc 16.32 cio a) sintetize o respectivo circuito sequencial s ncrono usando ip-ops D edge-triggered que comutem nos ancos descendentes de CLK; b) utilizando o circuito sintetizado sem qualquer alteraao, diga como c poderia obter uma onda de relgio CLK sincronizada com CLK mas de o per odo T = 3 s. 16.33 Partindo do diagrama de estados apresentado na Figura 16.53(a), desenhe o logigrama do respectivo circuito sequencial s ncrono, utilizando como

324

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS elementos de memria os ip-ops hipotticos do tipo A representados na o e Figura 16.53(b).
0/0 1/1 B C
1J &

0/0

1/0

1/0

CLK H A H

C1 1K

1/0 A 0/0 D 1A 0/1 (a) C1 (b)

Figura 16.53: (a) Diagrama de estados da mquina s a ncrona do Exerc 16.33; cio (b) ip-op hipottico do tipo A, a usar na implementaao da mquina e c a 16.34 Implemente, utilizando ip-ops JK e NANDs em lgica positiva, o ciro cuito sequencial s ncrono representativo da mquina com a tabela de esa tados e de sa das da Tabela 16.10. Trata-se de um circuito de Mealy ou de Moore? Tabela 16.10: Tabela de estados e de sa das da mquina sequencial s a ncrona do Exerc 16.34 cio
EA X=0 A B C D A C A B ES X=1 B D C D 0 0 1 1 Z

16.35 Projecte um contador que conte segundo o cdigo , 0, 3, 7, 2, 5, 0, . o Utilize os ip-ops que entender. 16.36 Projecte um circuito sequencial s ncrono descrito pela tabela de estados e de sa das da Tabela 16.11. Trata-se de um circuito de Mealy ou de Moore? 16.37 Projecte o circuito sequencial s ncrono especicado pelo diagrama de estados da Figura 16.54. Use os ip-ops que desejar. No necessrio a e a desenhar o logigrama. 16.38 Utilizando ip-ops JK, realize o projecto da mquina sequencial s a ncrona com a tabela de estados e de sa das da Tabela 16.12.

16.11. EXERC ICIOS

325

Tabela 16.11: Tabela de estados e de sa das do circuito sequencial s ncrono do Exerc 16.35 cio
EA ES/Z X=0 A B C D E F G B/0 A/0 B/0 E/0 B/1 G/0 E/0 X=1 D/0 G/0 G/0 G/1 A/1 B/0 D/1

0 1 A/0 0 1 0 D/0 C/1 B/0

Figura 16.54: Diagrama de estados do circuito sequencial s ncrono do Exerc cio 16.37 Tabela 16.12: Tabela de estados e de sa das da mquina sequencial s a ncrona do Exerc 16.38 cio
EA ES/Z X=0 A B C D E A/0 C/1 E/0 B/1 D/0 X=1 B/0 D/0 A/1 E/1 A/0

16.39 Um watchdog um circuito que vigia o bom funcionamento de outro e circuito. Para tal, o circuito vigiado deve enviar periodicamente impulsos ao watchdog. Se o circuito vigiado no enviar um ou mais desses ima pulsos peridicos, o watchdog activa uma sa de alarme. Desenhe o o da diagrama de estados de um watchdog s ncrono em que o impulso que

Watchdog

326

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS vem do circuito vigiado surge com um atraso mximo de 6 impulsos de a relgio, dura 1 per o odo de relgio, e s o e ncrono com este.

Mquina a incompletamente especicada (incompleta)

a ncrona incompletamente es16.40 Desenhe o logigrama da mquina sequencial s pecicada (ou, mais simplesmente, mquina incompleta) descrita pela tabela a de estados e de sa das da Tabela 16.13.

Tabela 16.13: Tabela de estados e de sa das da mquina sequencial s a ncrona incompleta do Exerc 16.40 cio
EA ES/Z (X2,X1) (0,0) A B C D A/0 A/1 C/1 B/0 (0,1) B/1 C/1 A/0 D/0 (1,0) C/0 / B/0 / (1,1) / D/0 / A/

16.41 Projecte, utilizando ip-ops do tipo T, um contador binrio Up/Down a s ncrono de mdulo 3. o 16.42 Utilizando ip-ops do tipo D, projecte um contador binrio de mdulo a o 8, com a possibilidade de ser inicializado sincronamente a 6. 16.43 Projecte um contador binrio de mdulo 3, usando um ip-op D para o a o bit menos signicativo e um JK para o mais signicativo. 16.44 Considere a entrada de um parque de estacionamento. Para um carro ser admitido no parque, tem de introduzir uma moeda na ranhura de uma caixa, moeda essa que activa um sensor M durante um impulso de relgio. o Aps essa ocorrncia, uma cancela levanta e o carro pode prosseguir com o e o estacionamento. Durante todo o tempo em que o carro est a entrar, a um detector D ca activo. A cancela fecha aps o carro ter saido da o frente do detector. Imediatamente depois do detector, existe uma banda de borracha que deve ser pisada duas vezes, uma por cada eixo de um carro. No caso de ser pisada trs vezes, isso signica que uma camioneta e est a tentar entrar (o que proibido), ou que h fraude. Nesse caso a a e a cancela dever fechar, caindo em cima do infractor (como soluao, no a c a e l muito aconselhvel, mas enm ...). a a Desenhe um uxograma de uma mquina sequencial s a ncrona que implemente o controlo da cancela. 16.45 Utilizando ip-ops JK, projecte um circuito sequencial s ncrono descrito pelo uxograma da Figura 16.55. 16.46 Repetir o Exerc 16.9, mas admitindo agora que na sa se reproduzem cio da os 3 bits da palavra de entrada, nos 3 ciclos de relgio que antecedem a o geraao do bit de paridade. c

16.11. EXERC ICIOS

327

H 2

A H L X H

B H L

L 3

A H H Y H 4 Y H, Z H

Figura 16.55: Fluxograma do circuito sequencial s ncrono do Exerc 16.45 cio () 16.47 Utilize um contador integrado do tipo 74LS161A para implementar a mquina sequencial s a ncrona representada pelo diagrama de estados da Figura 16.56.
1 0 A/0 1 B/0 0 0 1 0 1 G/0 0 F/1 0 0 C/0 1

D/0

E/0

Figura 16.56: Diagrama de estados da mquina sequencial s a ncrona do Exerc cio 16.47

328

CAP ITULO 16. CIRCUITOS SEQUENCIAIS S INCRONOS

Cap tulo 17

Memrias o
Os modernos computadores sejam eles sistemas embebidos autnomos, como putadores de uso geral ou servidores so constitu a dos basicamente por 5 unidades: a Unidade Central de Processamento ou CPU, a Unidade de Memria, o a Unidade de Controlo e as Unidades de Entrada e de Sa . Destas 5 unidades da vamos, neste cap tulo, estar interessados apenas na Unidade de Memria, conso titu por um conjunto de circuitos integrados de memria. da o Para alm da Unidade de Memria, interna aos computadores existem ainda e o memrias (discos, diskettes, tas magnticas, CDs, DVDs, etc.) que fazem parte o e da memria externa dos computadores e que comunicam com a CPU atravs o e das Unidades de Entrada e de Sa da. Nestas memrias externas a informaao o c e gravada em suportes magnticos ou pticos. No iremos aqui considerar estes e o a tipos de memria. o As memrias que nos interessam arrumam-se em dois grandes grupos: o das o RAMs (Random Access Memories ou memrias de leitura/escrita), e o das ROMs, o (Read Only Memories ou memrias de leitura). o As RAMs so memrias onde poss efectuar operaoes de escrita de dados e a o e vel c subsequentes operaoes de leitura dos dados entretanto escritos. As operaoes de c c escrita e de leitura decorrem na sequncia normal de funcionamento dos sistemas e em que as RAMs se inserem. Pelo contrrio, as ROMs so memrias que podem ser programadas (numa a a o operaao de escrita) uma unica vez, em alguns tipos de ROM mais do que uma c vez (mas sempre poucas vezes). Ou seja, a operaao corrente nas ROMs de c e leitura, durante o funcionamento normal dos sistemas em que estas memrias o se inserem, pelo que a operaao de escrita unica ou muito pouco frequente. c e A designaao Random Access Memory dada `s RAMs , hoje pouco clara, mas c a e tem a ver, na origem, com o facto de o tempo de acesso ` informaao nesse tipo a c de memria ser igual para todas as palavras, independentemente do endereo o c aleatrio que se lhe aplicasse. Antes do aparecimento deste tipo de dispositivo o existiam, basicamente, memrias srie, semelhantes a registos de deslocamento. o e Nesses dispositivos o tempo de acesso ` informao dependia da distncia a que a ca a ela se encontrava da sa da, quando se pretendia aceder-lhe. Para contrapor a este tipo de memrias, as memrias RAM passaram a ter acesso aleatrio. o o o 329

Unidade Central de Processamento (CPU) Unidade de Memria o Unidade de Controlo Unidades de Entrada e de Sa da

Random Access Memory (RAM) Read Only Memory (ROM) Operaoes de escrita e c de leitura

Memrias srie o e

330

CAP ITULO 17. MEMORIAS

17.1
17.1.1

Read Only Memories (ROMs)


Tipos de ROMs

A designaao Read Only Memory ou ROM aplica-se, na realidade, a um c conjunto diversicado de memrias, em que se incluem vrios tipos, como mostra o a a Figura 17.1.

ROM

MROM (ROM)

PROM

EPROM

E 2 PROM

Flash ROM

Figura 17.1: Principais tipos de ROMs ` A medida que caminhamos da esquerda para a direita na gura obtemos memrias que so progressivamente mais ex o a veis em matria de programaao (ese c crita), aproximando-se cada vez mais das caracter sticas das RAMs ou memrias o de leitura/escrita. Por outro lado, obtemos memrias com um custo por bit em o geral mais elevado.
Mask-Programmed ROM (MROM)

Assim, as MROMs ou Mask-programmed ROMs (por vezes tambm designadas, e incorrectamente, simplesmente por ROMs) so circuitos integrados projectaa dos de origem pelo fabricante com o contedo pretendido pelo utilizador. No u a podem ser programadas pelo utilizador, e o seu contedo no altervel. u a e a a As PROMs (ou Programmable ROMs) so variantes de ROMs que podem ser programadas uma unica vez pelo utilizador, por fuso de pequenos fus a veis. So a compradas com todos os fus veis intactos, e o utilizador recorre a um programador de PROMs para fundir alguns dos fus veis e deixar outros intactos, cando assim a memria programada com 1s e com 0s. No caso de ser necessrio alterar o a o contedo da PROM, h que programar um novo dispositivo e o anterior ca u a inutilizado. As EPROMs (ou Erasable PROMs) so memrias que podem ser programadas a o diversas vezes pelo utilizador (com recurso ainda a um programador de PROMs), e que podem ser apagadas submetendo-as a radiaao ultra-violeta durante um c intervalo de tempo relativamente prolongado. As EPROMs podem ser regravadas um certo nmero de vezes (dezenas a milhares). u As EEPROMs (Electrically Erasable PROMs, ou ainda E 2 PROMs) so EPROMs a que podem ser apagadas e reprogramadas electricamente, uma palavra de cada vez (em geral, uma palavra tem a dimenso de um byte), sem necessidade de as a retirar do circuito em que esto inseridas. Do mesmo modo, so alterveis um a a a nmero limitado de vezes. u As memrias Flash ou Flash ROMs so variantes de EEPROMs que podem ser o a apagadas ou reprogramadas electricamente, em blocos de palavras (um bloco de

Programmable ROM (PROM) Programador de PROM

Erasable PROM (EPROM)

Electrically Erasable PROM (EEPROM ou E 2 PROM)

Memrias Flash o

17.1. READ ONLY MEMORIES (ROMS)

331

cada vez). Tal como acontece com as memrias anteriores, tambm as memrias o e o Flash so alterveis um nmero limitado de vezes. So as memrias ROM a a u a o que mais se aproximam das memrias RAM sem, contudo, possuirem a mesma o facilidade de leitura e de escrita que so caracter a sticas das RAMs.

17.1.2

Utilizao das ROMs ca

As ROMs podem servir para varias aplicaoes: c suporte a programas em sistemas embebidos, programas esses que no iro a a ser alterados (uso de ROMs ou de PROMs) ou que podem ser actualizados um nmero pequeno de vezes (uso de EPROMS, de EEPROMS ou de memrias u o Flash); memorizaao de tabelas como veremos, por exemplo, no Cap c tulo 19, quando estudarmos as mquinas de estados, ou ainda em aplicaoes em que a c se pretende fazer uma converso de determinados dados (por exemplo, cona verses de cdigos) ou em que se querem gerar certas funoes analgicas o o c o (formas de onda sinusoidais, triangulares, em dentes de serra, etc.); implementaao de lgica combinatria (como veremos no Cap c o o tulo 18).

17.1.3

Estrutura de uma ROM


Palavra (de uma ROM) Bits de dados ROM de 2n por p (2n p) Clulas e

Uma ROM pode ser modelada por uma matriz com 2n linhas (palavras) e p colunas (p bits de dados por palavra), conjuntamente com um descodicador binrio de n bits e sa a das activas a H (Figura 17.2). De forma simplicada, diz-se que estamos em presena de uma ROM de 2n por p, c ou de uma ROM de 2np, porque possui 2n p clulas, uma por cada intersecao e c linhacoluna. Recorrendo a uma mscara fotogrca, o fabricante da ROM insere um n a a vel H ou um n L (respectivamente, um 1 ou um 0 em lgica positiva) em cada vel o uma das clulas, no processo de fabrico da ROM. e As n linhas de entrada do descodicador designam-se colectivamente por barramento de endereos da ROM, `s quais se aplicam endereos (quantidades c a c booleanas gerais). Para cada endereo aplicado `s entradas vai ser activada uma e s uma sa do c a o da descodicador, isto , uma e s uma palavra da ROM. Apenas a palavra que foi e o endereada pode debitar para as p sa c das do dispositivo (o barramento de dados) o que nessa palavra tiver sido programado pelo fabricante. Dizemos, ento, que se leu para as sa a das o contedo da palavra da ROM com u esse endereo, ou que foi feita a leitura de uma palavra da ROM, ou ainda, e mais c simplesmente, que foi feita uma leitura da ROM. Como ` aplicao de um endereo vai corresponder uma operaao de leitura da a ca c c palavra correspondente, com o consequente envio para o exterior dos bits programados nessa palavra (naturalmente, aps um certo tempo de propagaao), o c segue-se que o comportamento da ROM combinatrio. e o

Barramento de endereos (de uma c ROM) Endereo c Barramento de dados (de uma ROM) Leitura (de uma palavra) da ROM

332
GND

CAP ITULO 17. MEMORIAS

R BIN/1-OF-2n EN H A0 A1 n linhas de endereo c An-1 EN 1 2 0 1 2 3 4

R Clulas e com H Palavra Palavra Palavra Palavra Palavra 0 1 2 3 4

2n-1

Palavra 2n1 Clulas e com L D0 D1 D2 D3 Dp-1

p linhas de dados p bits por palavra

Figura 17.2: Modelo matricial de uma ROM com n linhas de endereo e p c linhas de dados, ou ROM de 2n p. Esta ROM possui 2n p clulas, umas e programadas com n veis H (a cinzento), outras a L (a branco) Assim sendo, no de estranhar que se possam utilizar ROMs na implementaao a e c de funoes booleanas gerais (uma funo booleana simples por sa c ca da) das variveis booleanas gerais aplicadas `s entradas de endereo, como faremos no a a c cap tulo seguinte.

17.1.4

Funcionamento de uma MROM

Vamos agora ver como constitu cada uma das clulas de uma MROM e da e (Figura 17.3). Como podemos observar na gura, uma clula formada por um transistor e e nMOS (se a MROM for unipolar, como o caso; no caso de uma MROM e bipolar teremos um transistor bipolar por clula) e por uma ligaao que, ou e c e deixada, ou retirada no processo de geraao da mscara da MROM (no caso e c a de uma PROM, a ligao substitu por um fus ca e da vel, e a ausncia de ligaao e c signica que o programador da PROM fundiu o fus vel). O transistor est ligado a a ` tenso de alimentaao, Vdd , e ` linha correspondente. a c a Admitamos, ento que, na clula que se encontra na intersecao da linha i com a a e c coluna j, o fabricante da MROM deixou car a ligaao [Figura 17.3(a)]. Quando c a palavra i for seleccionada pelo endereo aplicado `s entradas, o n H gerado c a vel na sa i do descodicador binrio torna o transistor condutor, pelo que a da a tenso Vdd (aproximadamente) aparece na coluna j. Ou seja, obtemos um n a vel H nessa coluna.

17.1. READ ONLY MEMORIES (ROMS)


Coluna j Coluna j

333

Linha i Vdd

Linha i Vdd

Ligaao c inserida na mscara a Sa j da N vel H na sa da (a)

Ligaao c removida na mscara a Sa j da N vel L na sa da (b)

Figura 17.3: Estrutura de cada uma das clulas de uma MROM em tecnologia e nMOS, admitindo que a palavra (linha) i est seleccionada. (a) Caso em que a a ligaao deixada na mscara da MROM, obtendo-se um H na coluna j. (b) c e a Caso em que a ligaao removida na mscara da MROM, obtendo-se um L na c e a coluna j Pelo contrrio, admitamos agora que na intersecao da linha i com a coluna j a c o fabricante da MROM removeu a ligao [Figura 17.3(b)]. Nessas condioes, ca c quando a palavra i for seleccionada o transistor conduz, porm a ausncia de e e ligaao signica que a tenso Vdd no pode passar para a coluna j. Ento, o que c a a a aparece na coluna j o n L proveniente da ligaao da coluna ` massa, GND, e vel c a atravs da correspondente resistncia de pull-down, R. Ou seja, obtemos um e e n L (praticamente 0 V) na coluna j. vel Se a linha i no tiver sido seleccionada pelo endereo presente `s entradas, a a c a sa correspondente do descodicador est a L e nenhum dos transistores nessa da a linha conduz , pelo que as correspondentes contribuioes se traduzem por n c veis L em todas as colunas. Consideremos agora uma coluna j qualquer. Duas situaes podem ocorrer. co 1. Na sa j apenas temos contribuies de n da co veis L dos diversos transistores ligados ` coluna com o mesmo nmero: (i) porque existe um n L proveniente a u vel do transistor na palavra i que foi endereada, estando o transistor desligado da c linha; e (ii) porque existem n veis L provenientes dos restantes transistores nessa coluna, pertencentes a palavras no endereadas (relembremos que apenas uma a c palavra vem endereada, ou seleccionada, de cada vez). Neste caso a sa j c da vem a L, n esse que resulta da leitura do bit a L armazenado na clula que vel e se encontra na intersecao da coluna j com a linha i que foi endereada. c c 2. Na sa j temos contribuies de n da co veis L e um (e s um) n H, proveniente o vel do transistor condutor na linha i que estiver, nesse momento, a ser endereada. c Neste caso a sa j vem a H, sendo este n resultante da leitura do bit a H da vel armazenado na clula que est na intersecao da coluna j com a linha i que foi e a c

334 endereada. c

CAP ITULO 17. MEMORIAS

Em resumo, uma ligaao deixada na mscara, na intersecao de uma linha com c a c uma coluna, signica um n H na coluna e na sa enquanto que uma ligaao vel da, c removida signica um n L. vel Finalmente, se a entrada de Enable da MROM (vd. a Figura 17.2) estiver inactiva, ento todas as sa a das do descodicador esto inactivas (a L) e todos os a transistores da MROM esto em no conduao, pelo que as sa a a c das vm todas a e L. Podemos, ento, armar que a ROM da Figura 17.2 tem sa a das activas a H, que vm desactivadas se zermos o Disable do dispositivo. e

17.1.5

Descodicaao coincidente c

O grande inconveniente da estrutura das ROMs na Figura 17.2 a dimenso do e a descodicador utilizado na selecao de uma linha (palavra). c Por exemplo, se pensarmos numa ROM de 256 4, esse descodicador possuir a 256 sa das, uma por cada palavra, e necessitar de 256 ANDs de 8 entradas a (mais uma entrada para o Enable). O descodicador vai, nessas circunstncias, a ocupar um espao considervel no circuito integrado, porque necessita de muitas c a portas e porque cada uma delas possui um elevado nmero de entradas. u Por essa razo, os fabricantes de ROMs utilizam um outro tipo de descodicao a ca que recorre a dois descodicadores mais pequenos, numa estrutura designada por descodicaao coincidente. Desta forma ganham em rea ocupada no circuito c a integrado, o que lhes permite incluir ROMs de maiores dimenses para a mesma o a rea. Por exemplo, a ROM anterior, de 256 4, em vez de vir organizada como uma matriz de 256 linhas por 4 colunas, vem, na prtica, organizada com uma matriz a de 32 32, sendo cada linha constitu por 8 palavras de 4 bits, como mostra da a Figura 17.4.
Descodicador de linha Descodicador de coluna

Um descodicador de linha de 5 bits selecciona, de cada vez, uma das 32 linhas (8 palavras) da matriz ` custa das linhas de endereo de menor peso, A0 a A4. a c Por seu turno, um descodicador de coluna de 3 bits utiliza as outras 3 linhas de endereo as de maior peso, A5 a A7 para seleccionar uma de entre c as 8 palavras de 4 bits que esto dispon a veis na linha da matriz seleccionada pelo descodicador de linha. Os 4 bits dessa palavra so lidos, ento, para o a a exterior da matriz e, da para as 4 linhas de sa , da, se as entradas de controlo permitirem. Apesar de esta soluao necessitar de dois descodicadores, eles so consideravelc a mente mais pequenos do que o descodicador unico: o descodicador de linha necessita de 32 ANDs de 5 entradas, e cada um dos 4 descodicadores de coluna requere 8 ANDs de 3 entradas.

17.1.6

S mbolos das ROMs

Os s mbolos das ROMs so relativamente simples. Ilustremos com o s a mbolo IEC simplicado de uma ROM t pica, de 2564 como a anterior, na Figura 17.5.
Qualicador geral ROM *

O qualicador geral ROM * identica uma ROM, com o asterisco substitu pela do

17.1. READ ONLY MEMORIES (ROMS)


Descodicador de linha (1-OF-32)

335

0 1 2 3

A0 H A1 H
Endereo c da linha Matriz de 32 x 32

A2 H A3 H A4 H
29 30 31

Endereo c da coluna

A5 H A6 H A7 H CS L OE L
&
1 EN

Descodicador de coluna (4 descodicadores 1-OF-8) e circuito de sa da

D0 H

D1 H

D2 H

D3 H

Figura 17.4: Uma ROM de 2564 vem, na prtica, organizada como uma matriz a de 32 32, com um descodicador de coluna e um descodicador de linha, para alm do circuito de sa controlado por duas linhas, CS L e OE L e da
ROM 256x4

A0 A1 A2 A3 A4 A5 A6 A7

H H H H H H H H

0 [0] A
0 A 255

D0 H D1 H D2 H D3 H

[1] A [2] A [3] A

7 & EN

CS H OE H

Figura 17.5: S mbolo IEC simplicado de uma ROM t pica de 256 4, com sa das tri-state e duas entradas de controlo activas a L correspondente dimenso. a As 8 linhas de endereo, A0 H a A7 H, permitem enderear (seleccionar) uma c c das 256 palavras para ser lida, desde que estejam activadas as entradas de controlo uma delas designada por Chip Select (CS L) ou, em alternativa, por Chip Enable (CE L), e a outra designada por Output Enable (OE L). Decorrido um certo tempo de propagaao, nas sa c das D0 H a D3 H aparece

336

CAP ITULO 17. MEMORIAS

o contedo dessa palavra (a questo dos tempos de propagaao ser examinada u a c a na Subsecao 17.1.7). c
Qualicadores de entrada Am Dependncia de e Endereo (A) c Qualicadores de sa A da

No s mbolo, a chaveta indica que as linhas de endereo devem ser tomados c em conjunto, com os qualicadores de entrada A0 a A255 a congurar uma dependncia de Endereo (A signica Address ou endereo). e c c Esta dependncia vem manifestada pelos qualicadores A0 a A255, que afectam e as sa das com o qualicador de sa A. A palavra seleccionada numa operaao de da c leitura da ROM, por aplicaao de certos n c veis de tenso `s entradas de endereo, a a c ser aquela que tem o endereo decimal que resulta da soma das potncias de 2 a c e das entradas activas (desde que as entradas de controlo permitam). Ora como vimos atrs, esta ROM possui duas entradas de controlo que permitem a a leitura de uma palavra. Quando uma delas, ou as duas, vm desactivadas, as e sa das da ROM cam todas em alta impedncia. O facto de as sa a das serem do tipo tri-state permite ligar mltiplas ROMs, ou ainda ROMs e outros dispou sitivos com sa das tri-state (RAMs, microprocessadores, etc.), a barramentos comuns de transporte de dados entre os diversos dispositivos.

Qualicadores de sa [i] da

da Em cada sa aparece ainda um qualicador de sa [i], opcional, que identica da o peso dessa sa relativamente `s outras. da a

17.1.7

Temporizaes na leitura de uma ROM co

Antes de passarmos ao estudo das temporizaoes que podemos observar na c leitura de uma palavra de ROM, vamos considerar com algum cuidado os signicados das variveis de controlo CS e OE que encontrmos nas Figuras 17.4 a a e 17.5.
Chip Select, CS

A entrada de Chip Select permite seleccionar uma ROM em particular de entre um conjunto de memrias (ROMs ou RAMs), em esquemas de memria do o o gnero dos que estudaremos na Subsecao 17.1.8 em que co-existem, no mesmo e c sistema, diversos circuitos de memria. o Nesses casos, a activaao ou inactivaao de CS ser controlada por um descodicador c c a de endereos externo, cuja funao seleccionar um circuito de memria de c c e o cada vez, consoante o endereo pretendido. Existir, assim, um espao de enc a c dereamento global, com cada circuito de memria afectado a uma certa zona c o de memria, que subconjunto do espao de endereamento. o e c c Se o CS L da ROM estiver activa, porque queremos aceder a uma palavra e com um endereo afectado ` zona de memria ocupada pela memria. Nesse c a o o caso queremos que a palavra lida da ROM seja colocada no barramento de dados comum aos diversos circuitos de memria, a m de poder ser lida por o outro circuito qualquer. Pelo contrrio, se CS L estiver inactiva queremos retirar a ROM do barraa mento de dados, porque queremos enderear outro circuito de memria que no c o a esta ROM em particular. Isto , queremos, neste caso, aceder a uma palavra e contida noutro circuito de memria, ou seja, a uma palavra com um endereo o c pertencente ` zona de memria que foi afectada a esse outro circuito. a o

Descodicador de endereos c Espao de c endereamento c Zona de memria o

Output Enable, OE

Quanto ` entrada de Output Enable, OE L, permite colocar a sa em alta a da impedncia (no caso de no querermos ler uma palavra da ROM), impedindo a a a

17.1. READ ONLY MEMORIES (ROMS)

337

memria de enviar dados para o barramento de dados, ou, pelo contrrio, deixar o a passar para o barramento o contedo de uma palavra lida da ROM. u Passemos, ento, ` questo das temporizaes num acesso ` ROM. a a a co a Uma ROM possui um certo tempo de propagaao (ou de atraso), desde o instanc te em que se aplica um novo endereo `s entradas e o instante em que, nas sa c a das, aparece o contedo da palavra lida desse endereo. Este tempo de propagaao u c c c toma a designaao espec c ca de tempo de acesso a partir do endereo, tAA, tal como descreve a Figura 17.6 para uma ROM t pica como a da Figura 17.5.

Tempo de acesso a partir do endereo, tAA c

Entradas de endereo c

Endereo c anterior

Novo endereo estvel c a

CS L

OE L = L tAA Sa das de dados t0 Dado anterior t1 t2 t3 t4 tOZ Novo dado estvel a t5 t6 Hi-Z

Figura 17.6: Parte das temporizaoes na operaao de leitura de uma palavra de c c uma ROM t pica A forma de onda de cima representa os sinais aplicados `s entradas de endereo a c (independentemente do nmero de linhas de endereo), a segunda representa a u c linha de Chip Select, CE L, a terceira apresenta a linha de Output Enable, OE L, activada em permanncia, e a de baixo representa os dados de sa e da (independentemente do nmero de linhas de sa u da). No instante t0 as linhas de endereo esto com determinados n c a veis de tenso, a umas a H e outras a L (notar a forma de representao desses n ca veis). Nesse instante as entradas de Chip Select e de Output Enable esto activas, pelo que a as sa das da ROM exibem um dado anterior, resultante de uma leitura prvia e da ROM (o dado correspondente ao endereo anterior). c Em t1 so aplicados `s linhas de endereo novos n a a c veis de tenso, que correspona dem a um novo endereo. Algumas dessas linhas mudam de n c vel, e outras no. a Contudo, imposs garantir que as linhas que mudam de n o fazem em e vel vel simultneo. Ou seja, durante um intervalo de tempo representado a cinzento a na gura, as linhas de endereo esto instveis, a ajustar-se ao novo endereo a c a a c partir do endereo anterior. At que em t2 o novo endereo ca estvel. A partir c e c a desse instante a ROM comea a descodicar o novo endereo e a seleccionar a c c palavra correspondente. Em t3 os dados de sa comeam a mudar para reectir o novo dado que da c e lido da ROM. Naturalmente, as mudanas nas linhas de dados no ocorrem c a

338

CAP ITULO 17. MEMORIAS

simultaneamente, pelo que entre t3 e t4 as sa das da ROM mantm-se instveis. e a das passam a reectir de forma estvel o dado que a Finalmente, em t4 as sa estava memorizado na palavra que acabou de ser endereada. c c a a e O intervalo de tempo entre t2 e t4, desde que o novo endereo est estvel at que aparece de forma estvel nas sa a das o dado correspondente, o tempo de e e acesso a partir do endereo, tAA. Para uma ROM bipolar tAA da ordem de c grandeza de 30 a 90 ns, para uma ROM nMOS da ordem de 35 a 500 ns, e e para uma ROM CMOS da ordem de 20 a 60 ns. Quando se arma que temos e uma ROM de 100 ns, por exemplo, estamos a referir-nos a este tempo.
Tempo de Output Disable, tOZ

Outro parmetro temporal importante o tempo de Output Disable, tOZ, medido a e entre o instante em que o Chip Select ca inactivo e o instante em que as sa das entram em alta impedncia, entre t5 e t6 . Notemos como se representa, no a diagrama temporal, uma situao de alta impedncia nas sa ca a das (nem a H nem a L). Na Figura 17.7 apresenta-se outra situao poss e diferente da anterior em ca vel que se activa o Chip Select depois de um endereo car estvel, admitindo ainda c a que o Output Enable se mantm activado em permanncia. e e
Entradas de endereo c tAA CS L tACS OE L = L tOE Sa das de dados Hi-Z Dado estvel a Endereo estvel c a

Figura 17.7: Outra parte das temporizaoes na operaao de leitura de uma c c palavra de uma ROM t pica Neste caso, as sa das que estavam em alta impedncia pelo facto de o CS estar a desactivado, saem da situaao de alta impedncia depois de decorrido um tempo c a de Output Enable, tOE. Se fosse a linha OE L a car activada em vez da linha CS L, ter amos a mesma situaao. No fundo, tOE mede o intervalo de tempo c que decorre desde que CS L ou OE L cam activos at que as sa e das saem da situao de alta impedncia. Se os endereos estiverem estveis h tempo ca a c a a suciente, o dado que se obtm nas sa e das estvel. Caso contrrio, instvel. e a a e a O tempo de acesso a partir do CS, tACS mede o tempo de acesso a partir do instante em que o CS ca activo at que as linhas de sa cam estveis (em algumas e da a ROMs o CS tem um efeito ligeiramente diferente do de OE, ao contrrio do a que sugere a Figura 17.4, e nesses casos o tACS diferente do tOE , como mostra e a gura anterior.) Enquanto os tempos de acesso tACS e tAA no forem cumpridos, no podemos a a

Tempo de Output Enable, tOE

Tempo de acesso a partir do CS, tACS

17.1. READ ONLY MEMORIES (ROMS)

339

esperar no barramento de dados o dado correspondente ` palavra endereada, a c mesmo que as sa das da ROM tenham deixado de estar na situao de alta ca impedncia por j ter decorrido o tempo tOE . Ou seja, depois de decorrido tOE a a mas antes de tACS e tAA terem terminado, obtemos no barramento de dados algo que no tem a ver com o dado pretendido (da estar indicado a cinzento). a

17.1.8

Expanso de ROMs a

Quando se pretendem obter ROMs com dimenses maiores do que as ROMs de o que dispomos, podemos distinguir dois problemas fundamentais: (i) queremos aumentar a dimenso das palavras lidas para cada endereo, mantendo o nmero a c u de palavras; ou (ii) queremos aumentar o nmero de palavras, mantendo a u dimenso das palavras; ou (iii) queremos fazer as duas coisas. a A expanso do nmero de bits por palavra realiza-se com grande simplicidade, a u por simples justaposiao de ROMs. Exemplica-se na Figura 17.8 com um c sistema de 1k 16 bits, formado a partir de duas ROMs de 1k 8. Ou seja, formamos uma ROM que, globalmente, possui 1k palavras de 16 bits.
10 A0-A9 ROM 0
ROM 1k x 8

ROM 1
ROM 1k x 8 EN

CS L A0 A1 A2 A3 A4 A5 A6 A7 A8 A9

EN 0 [0] A [1] A [2] A


0 A 1 023

D0 D1 D2 D3 D4 D5 D6 D7

[3] A [4] A [5] A [6] A

[7] A

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9

[0] A [1] A [2] A


0 A 1 023

D8 D9 D10 D11 D12 D13 D14 D15

[3] A [4] A [5] A [6] A

[7] A

16 D0-D15

Figura 17.8: Expanso de ROMs que duplica a dimenso de cada palavra, de 8 a a para 16, mantendo o nmero de palavras em 1k u Como podemos vericar pela gura, a ROM 0 contm a parte menos signicae tiva de uma palavra, D0 D7, enquanto que a ROM 1 contm a parte mais e signicativa, D8 D15 mas, obviamente, pod amos ter escolhido colocar na ROM 0 as partes altas das palavras e na ROM 1 as partes baixas. A operaao de leitura feita simultaneamente nas duas ROMs (o CS comum c e e a `s duas) e para o mesmo endereo (as linhas de endereo so comuns). Nessas c c a condioes, cada uma das ROMs envia para o barramento de dados a metade da c palavra que nela foi previamente escrita. Na gura ilustrada tambm uma representaao simplicada para os barramene e c tos de dados, D0D15, e de endereos, A0A9, e correspondentes interligaoes c c a `s ROMs.

340

CAP ITULO 17. MEMORIAS

Para a expanso do nmero de palavras da memria, h que colocar os diversos a u o a integrados em paralelo e prolongar para o exterior da memria a funao de o c descodicao atravs de um descodicador. Esse descodicador interage com ca e os diversos integrados atravs das respectivas linhas de Enable. e O exemplo que se segue corresponde ` implementaao de um sistema de memria a c o ROM com a dimenso de 4k 8, usando os integrados anteriores e um descodia cador binrio de 2 bits (Figura 17.9). a
A0-A9 10 10

A0-A11

ROM 1 A10-A11
ROM 1k x 8

ROM 0
ROM 1k x 8

CS1 L A0 A1 A2 A3 A4 A5 A6 A7 A8 A9

EN 0 [0] A [1] A [2] A


0 A 1 023

CS0 L D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9

EN 0 [0] A [1] A [2] A


0 A 1 023

D0 D1 D2 D3 D4 D5 D6 D7

[3] A [4] A [5] A [6] A

[3] A [4] A [5] A [6] A

[7] A

[7] A

8 D0-D7

10
BIN/1-OF-4

A10 1 A11 2

0 1 2 3

ROM 3
ROM 1k x 8

ROM 2
ROM 1k x 8

CS3 L A0 A1 A2 A3 A4 A5 A6 A7 A8 A9

EN 0 [0] A [1] A [2] A


0 A 1 023

CS2 L D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9

EN 0 [0] A [1] A [2] A


0 A 1 023

D0 D1 D2 D3 D4 D5 D6 D7

[3] A [4] A [5] A [6] A

[3] A [4] A [5] A [6] A

[7] A

[7] A

Figura 17.9: Expanso de ROMs que quadruplica o nmero de palavras, de 1k a u para 4k, mantendo a dimenso de cada palavra em 8 bits a Porque vamos usar 4k endereos, precisamos de 12 linhas de endereo, A0 a c c A11. Os bits de endereo que no podem ir para as ROMs, A10 e A11, so c a a utilizados pelo descodicador externo, que activa a entrada de CS (Chip Select) de cada uma das ROMs presentes no sistema, obviamente uma de cada vez. Por exemplo, se A10 = H e A11 = L, a ROM 1 vem activada. Mas se A10 = H e A11 = H, ento a ROM 3 que vem activada. a e Neste sistema de memria as diversas ROMs ocupam os endereos (em hexadeco c imal) que se indicam na Tabela 17.1.

17.2. RANDOM ACCESS MEMORIES (RAMS)

341

Tabela 17.1: Tabela com os endereos ocupados por cada uma das ROMs da c Figura 17.9

ROM 0 1 2 3

Endereos c 000h a 3FFh 400h a 7FFh 800h a BFFh C00h a FFFh

Naturalmente, pod amos, se assim entendessemos, aumentar o nmero de palau vras e a dimenso de cada uma delas, conjugando as expanses das Figura 17.8 a o e 17.9.

17.2
17.2.1

Random Access Memories (RAMs)


Tipos de RAMs

As RAMS so memrias de leitura/escrita, isto , memrias em que as operaoes a o e o c de leitura e de escrita so igualmente frequentes do ponto de vista estat a stico e que, por essa razo, so efectuadas aproximadamente com os mesmos tempos a a de atraso. Desta forma as RAMs distinguem-se das ROMs, j que para estas ultimas temos a uma das seguintes situaoes: c a operaao de escrita no pode ser de todo efectuada pelo utilizador (como c a acontece com as MROMs); a operaao de escrita s pode ser efectuada uma unica vez ( o que sucede c o e com as PROMs); a operaao de escrita pode ser efectuada mais do que uma vez, mas torna-se c necessrio retirar a memria do circuito para a reprogramar externamente a o (no caso das EPROMs); a operaao de escrita pode ser efectuada mltiplas vezes sem retirar a memria c u o do circuito, mas uma operaao pouco eciente do ponto de vista temporal e c (comparativamente com a operaao de leitura), para alm de necessitar de c e circuitos especiais; ou seja, as operaoes de escrita apenas ocorrem em circ cunstncias muito especiais como acontece, por exemplo, nas memrias a o Flash e nas EEPROMs quando se pretende substituir um programa armazenado na memria. o Existem RAMs de dois tipos: estticas, ou SRAMS, e dinmicas, ou DRAMs. As a a RAMs estticas so dispositivos em que os diversos bits so armazenados em a a a
Memrias RAM o estticas (SRAMs) a Memrias RAM o dinmicas (DRAMs) a

342

CAP ITULO 17. MEMORIAS

dispositivos do tipo latch controlado (ainda que estruturalmente muito simplicados) que podem manter indenidamente o seu contedo enquanto estiverem u alimentados electricamente. As RAMs dinmicas so dispositivos em que cada bit representado pela carga a a e elctrica de um pequeno condensador. Como todos os condensadores, estes e tm fugas, pelo que apenas conseguem manter a carga durante um intervalo e de tempo muito limitado. Da que seja preciso, quando se utiliza uma RAM u dinmica, incluir um circuito de refrescamento de constante reescrita do contedo a da RAM, de forma a que todos os condensadores vejam periodicamente reposta a respectiva carga. Neste curso preocupar-nos-emos apenas com as RAMs estticas. a

Circuito de refrescamento

17.2.2

S mbolos das RAMs

Uma RAM um dispositivo de memria com uma estrutura idntica ` de uma e o e a ROM (ver a Figura 17.2 na pgina 332), excepto que as clulas so agora consa e a titu das por latches modicados. As RAMs so, ento, organizadas em palavras de um certo comprimento (nmero a a u de bits), que podem ser acedidas em operaoes de escrita ou de leitura. c
Barramento de endereos (de uma c RAM) Leitura (de uma palavra) da RAM Escrita (numa palavra) da RAM Barramento de entrada Barramento de sa da Barramento de dados

A palavra pretendida referenciada por um endereo aplicado a um barramento e c de endereos. A operaao de leitura de uma palavra da RAM ou de escrita numa c c palavra da RAM referenciada por duas linhas separadas ou, noutros casos, e por uma unica linha. Os dados a escrever so introduzidos por um barramento de entrada e os dados a lidos podem ser acedidos num barramento de sa . Em alguns casos apenas da existe um unico barramento de dados, naturalmente bidireccional. Consideremos, na Figura 17.10, o s mbolo IEC de uma RAM t pica de 1k 8 (isto , com 1 024 palavras de 8 bits), com barramentos separados para a entrada e e para a sa de dados. da O simbolo semelhante ao de uma ROM, pelo que a seguir apenas mencionaree mos as principais diferenas. c A primeira tem a ver com a existncia de um bloco de controlo comum, que o e s mbolo simplicado da ROM da Figura 17.5 no possui (por isso, o s a mbolo da ROM simplicado). e Neste caso existem dois barramentos de dados, um de dados de entrada designado por (DAT AIN 0 7) H, e outro de dados de sa da, (DAT AOU T 0 7) H. Trata-se, em ambos os casos, de barramentos de 8 bits. Quanto ao barramento de endereos, tem as linhas necessrias para aceder a todas as palavras c a de memria no caso, 10 linhas de endereos, (ADDR0 9) H. o c A linha READ H permite efectuar uma operaao de leitura da RAM, enquanto c que a linha W RIT E H permite realizar uma operaao de escrita na RAM. Nac turalmente, nestes casos da responsabilidade do utilizador da memria garantir e o que apenas uma das operaoes vem activada de cada vez (mas podem estar as c duas inactivas, e ento no se faz nem a leitura nem a escrita numa palavra da a a memria). o

17.2. RANDOM ACCESS MEMORIES (RAMS)

343

RAM 1k x 8 0

ADDR0-9 H

0 A 1 023

READ H WRITE H CS L

1EN [READ] 1C2 [WRITE] G1 A,2D A

DATAIN0-7 H

DATAOUT0-7 H

Figura 17.10: S mbolo IEC de uma RAM de 1k 8 com dois barramentos de dados unidireccionais, um de entrada e um de sa da, e sa das tri-state De notar o qualicador de entrada G1 que, quando activo, permite que essas operaoes possam ser efectuadas, atravs do qualicador 1 (dependncia And). c e e A esta entrada ligamos, habitualmente, uma linha com a designaao CS L (CS c signica Chip Select). Quando esta entrada vem inactiva, inibe o funcionamento da RAM, colocando as sa das em alta impedncia atravs do qualicador EN a e (impedindo, deste modo, a memria de enviar dados para o barramento de o dados de sa numa operao de leitura), e impedindo as operaoes de escrita da ca c por meio do qualicador 2. Existem vrias estruturas alternativas ` ilustrada. A variante mais comum a a utiliza um unico barramento de dados, bidireccional. Naturalmente, nestes casos no h necessidade de controlar independentemente a escrita e a leitura. Por a a isso, existe apenas uma linha de controlo que, ora promove a operaao de leitura, c ora promove a operaao de escrita. c E comum designar a linha de controlo por READ H/W RIT E L, sendo que existir uma operaao de leitura se se aplicar um n H ` linha, e uma operaao a c vel a c de escrita se se aplicar um n L. Notemos que, neste caso, no conseguimos vel a controlar esta linha por forma a impedir uma operaao de eleitura ou de escrita, c ao contrrio do que sucede quando as variveis de READ e de W RIT E so a a a separadas. Para que no se efectue nenhuma das operaes, teremos de controlar a co o Chip Select da memria. o A Figura 17.11 ilustra uma memria RAM com essa arquitectura e com a dio menso da memria anterior. a o

344

CAP ITULO 17. MEMORIAS

RAM 1k x 8 0

ADDR0-9 H

0 A 1 023

READ H/WRITE L CS L

1EN [READ] 1C2 [WRITE] G1 A,2D A

DATA0-7 H

Figura 17.11: S mbolo IEC de uma RAM de 1k 8 com um unico barramento de dados, bidireccional, e com sa das tri-state

17.2.3

Estrutura de uma RAM esttica (SRAM) a

Na prtica, uma clula de memria esttica em tecnologia MOS (mas tambm h a e o a e a memrias bipolares TTL e BiCMOS) constitu por um latch SR simplicado, o e da formado por dois inversores entrecruzados, e por dois transistores nMOS, ligados como mostra a Figura 17.12.
Palavra
1

Bit

Bit

Figura 17.12: Estrutura de uma celula de memria esttica em tecnologia MOS, o a com um total de 6 transistores ` e As clulas encontram-se ainda associados outros circuitos para as operaoes de c escrita e de leitura, para alm dos descodicadores de linhas e de colunas. e Como, porm, os alunos no possuem os conhecimentos necessrios de Elece a a trnica Digital para podermos analisar o comportamento da clula e dos ciro e

17.2. RANDOM ACCESS MEMORIES (RAMS)

345

cuitos auxiliares, vamos recorrer ao seu equivalente funcional, apresentado na Figura 17.13.

IN H SEL L WR L
&
1D C1

1 EN

OUT H

Clula e de SRAM

IN H SEL L WR L

1D EN & C1

OUT H

Figura 17.13: Equivalente funcional de uma clula de memria SRAM. De notar e o a existncia de um latch D controlado, precedido por uma lgica de controlo da e o sua entrada de Enable e seguido por uma lgica de controlo da sua sa Q H o da O bit a escrever apresentado ` entrada D de um latch controlado, mas s e a oe escrito se a sua linha de Enable estiver activa, o que quer dizer que a linha de Selecao da clula, SEL L, deve estar activa, e a linha de Escrita, W R L, c e tambm deve estar activa. A linha SEL L controla no apenas a escrita no e a latch, mas tambm a leitura do seu contedo. Se na linha SEL L aplicarmos e u um n H, a sa da clula vem em alta impedncia. vel da e a As SRAMs utilizam clulas deste tipo numa estrutura matricial idntica ` da e e a Figura 17.2, como se armou atrs. A Figura 17.14 ilustra, de forma simplia cada, a estrutura interna de uma SRAM com 4 palavras de 2 bits, no caso em que se usam dois barramentos unidireccionais e independentes para a entrada e sa da dados. da A utilizaao de Buers tri-state nas sa c das permite que vrias destas memrias a o (ou ainda ROMs, microprocessadores, etc, com capacidade tri-state) possam partilhar o mesmo barramento de sa da. Naturalmente, podemos de maneira fcil expandir esta estrutura para SRAMs a de maiores dimenses. Por outro lado, veremos mais ` frente como modicar a o a estrutura desta SRAM para o caso em que se usa um unico barramento bidirec cional para a entrada e sa de dados. da Como se pode ver na Figura 17.14, a selecao de uma palavra da SRAM feita ` c e a custa de um descodicador, que ver uma das suas linhas de sa activada (a L) a da de cada vez, consoante o endereo aplicado ` memria (no devemos, contudo, c a o a esquecer que as RAMs reais utilizam descodicadores de linha e de coluna em descodicao coincidente, em vez de um descodicador unico). ca Repare-se que, para que haja escrita de um bit na clula que se encontra na e intersecao de uma dada linha e coluna, ter de vir seleccionada a palavra c a correspondente (activando-se a entrada SEL L da clula), e tambm a coluna e e e correspondente (activando-se a entrada W R L da clula).
Estrutura de uma SRAM

346
DATAIN1 H
BIN/1-OF-4 0
1D EN & C1

CAP ITULO 17. MEMORIAS


DATAIN0 H

Palavra 0
1D EN & C1

ADDR0 H

1
1D EN & C1 1D EN & C1

Palavra 1

ADDR1 H

2
1D EN & C1 1D EN & C1

Palavra 2

3
1D EN & C1 1D EN & C1

Palavra 3

READ H/WRITE L CS L

&

WR L

&

OUTEN L
1 EN 1 EN

OE L

DATAOUT1 H

DATAOUT0 H

Figura 17.14: Estrutura de uma SRAM de 42 com barramentos independentes e unidireccionais para a entrada e sa de dados da Deve tambm notar-se que as clulas das palavras que no so seleccionadas e e a a pelo descodicador (todas as palavras excepto a que endereada) cam com e c as suas sa das em alta impedncia, ou seja, no interferem com as sa a a das das clulas da palavra seleccionada. e
Operaao de escrita c numa SRAM

Consideremos uma operao de escrita na SRAM. ca Quando a linha READ H/W RIT E L vem a L (e desde que a memria tenha o sido seleccionada pela activaao do seu Chip Select, CS L), as entradas W R L c de todas as clulas vm activadas, mas apenas operada uma escrita na palavra e e e endereada, j que apenas as clulas dessa linha possuem as suas entradas c a e SEL L activas. Nestas condioes, escrevem-se nessa palavra, e apenas nessa, c os bits presentes no barramento DAT AIN H. Consideremos agora uma operao de leitura da SRAM. ca Neste caso a linha READ H/W RIT E L vem a H, o que inactiva todas as entradas W R L das clulas, pelo que no pode escrever-se nos latches (natue a ralmente). A palavra seleccionada pela linha SEL L debita para o barramento de sa o seu contedo (se a entrada de Output Enable, OE L, estiver activa e da u o Chip Select tambm estiver activo), e as restantes palavras, no seleccionadas, e a tm as suas sa e das em alta impedncia, como vimos anteriormente. a Finalmente, constatemos que, para impedir que numa operao de escrita se leia ca

Operaao de leitura de c uma SRAM

17.2. RANDOM ACCESS MEMORIES (RAMS)

347

igualmente para o exterior a palavra seleccionada (porque, estando SEL H activo, os bits da palavra seleccionada aparecem nas sa das das clulas da palavra), e devemos assegurar-nos que o Output Enable est inactivo durante a escrita. a Vamos considerar em seguida as modicaoes a fazer ao circuito de entrada/sa c da para acomodar um barramento tri-state bidireccional.

BIN/1-OF-4 0
1D EN & C1 1D EN & C1

Palavra 0

ADDR0 H

1
1D EN & C1 1D EN & C1

Palavra 1

ADDR1 H

2
1D EN & C1 1D EN & C1

Palavra 2

3
1D EN & C1 1D EN & C1

Palavra 3

READ H/WRITE L CS L

&

WR L

&

OUTEN L
1 EN 1 EN

OE L
1 1

DATA1 H

DATA0 H

Figura 17.15: Uma SRAM com um barramento tri-state bidireccional usa um circuito de entrada/sa com um Buer bidireccional comandado pelas 3 linhas da de controlo Como podemos observar na Figura 17.15, colocam-se Buers de sa , do tipo da tri-state, no caminho das linhas de sa das clulas de memria (OU T H) para da e o o barramento de dados, e Buers de entrada simples no caminho do barramento de dados para as linhas de entrada das clulas da memria (IN H). e o A entrada de Enable dos Buers de sa vem comandada por CS L e por da OE L, como no caso anterior (com dois barramentos diferenciados), e ainda pela linha READ H/W RIT E L. Quando aplicado um L ` linha READ H/W RIT E L (operaao de W RIT E, e a c se CS L e OE L estiverem activos), a sa OU T EN L da porta AND inferior da vem inactiva, e feito o Disable das sa e das dos Buers de sa da, o que impede a SRAM de enviar dados para o barramento. Ou seja, nestas condioes apenas c pode ser feita uma escrita na SRAM do dado proveniente do barramento.
Buer de sa da Buer de entrada A incluso dos Buers a de entrada permite diminuir signicativamente o fan-out dos circuitos que atacam as linhas DAT A1 H e DAT A0 H.

348

CAP ITULO 17. MEMORIAS

Quando se aplica um H ` linha READ H/W RIT E L (operaao de READ, a c da se CS L e OE L estiverem activos), a sa da porta inferior, OU T EN L, vem activa e feito o Enable das sa e das dos Buers de sa da, o que permite que o dado contido na palavra seleccionada seja lido para o barramento. a Se CS L ou OE L ou ambos estiverem inactivos, no pode haver leitura da nem escrita na SRAM. Com efeito, embora o dado que estiver no barramento passe atravs dos Buers de entrada e esteja presente `s entradas de todas e a a as clulas, ele no podem ser escrito nas clulas porque a linha W R L est e a e inactiva. Por outro lado, porque OU T EN L tambm est inactiva, a SRAM e a no envia nada para o barramento. a

17.2.4
Ciclo de escrita Ciclo de leitura

Ciclos de leitura e de escrita numa SRAM

A execuao da escrita numa palavra em memria, faz-se num ciclo de escrita e, c o do mesmo modo, a leitura feita num ciclo de leitura. e Um ciclo de leitura de uma RAM esttica igual ` operaao de leitura de uma a e a c ROM, que discutimos na Subsecao 17.1.7. Por essa razo no apresentaremos c a a aqui esse ciclo.
Ciclo de escrita controlado pelo WRITE Ciclo de escrita controlado pelo CS Estvel a tAS tCSW tAH

ADDR

Estvel a tCSW

CS L tAS READ H/ WRITE L tDS DATA Vlido a tDH tDS Vlido a tDH tWP tAH tWP

t1

t2

t3

t4

Figura 17.16: Ciclo de escrita numa palavra de uma SRAM O ciclo de escrita na SRAM est dependente da activaao simultnea dos sinais a c a de controlo CS e W RIT E (como sabemos, este ultimo conseguido colocando e a linha READ H/W RIT E L a L). Ora estes dois sinais no tm que car a e activos em simultneo e car inactivos em simultneo. a a Assim, na Figura 17.16 apresentam-se duas situaes distintas, a primeira em co que o W RIT E ca activo depois do CS, e a segunda em que o CS ca activo depois do W RIT E.
Ciclo de escrita controlado pelo W RIT E

No primeiro caso o ciclo de escrita comea a partir do instante t1 em que os dois c sinais vm activos, e termina quando os dois cam inactivos, em t2 . Trata-se e

17.2. RANDOM ACCESS MEMORIES (RAMS)

349

de um ciclo de escrita controlado pelo WRITE porque, depois do CS car activo, o ciclo s se inicia quando o W RIT E vem activo. o No segundo caso temos a situao contrria: o ciclo de escrita comea a partir ca a c e do instante t3 em que os dois sinais vm activos, e termina quando os dois cam inactivos, em t4. Trata-se de um ciclo de escrita controlado pelo CS porque, depois do W RIT E car activo, o ciclo s se inicia quando o CS vem activo. o Consideremos ento um ciclo de escrita controlado pelo W RIT E, com a seguinte a sequncia de operaoes: e c o endereo onde se quer escrever uma palavra colocado no barramento de c e endereos; antes, as linhas de endereo esto instveis porque mudaram para c c a a o novo endereo; c o CS vem activado; como os endereos foram alterados h pouco tempo, o c a que est no barramento de dados no garantidamente vlido (pode ser o a a e a contedo do endereo anterior, ou podem ser dados sem sentido, provocados u c pela transio de endereos); ca c actua-se em seguida o W RIT E; a partir daqui inicia-se o ciclo de escrita; h que esperar o tempo necessrio para que a escrita se efectue com sucesso; a a desactiva-se o W RIT E e, simultaneamente ou no, tambm o CS; em todo a e o caso, o ciclo de escrita termina; aps algum tempo, podem ser retirados os dados do barramento; o a operaao completada com a mudana do endereo para um novo ciclo, c e c c seja ele de leitura ou de escrita. Num ciclo de escrita controlado pelo CS temos uma situao semelhante, tambm ca e descrita na Figura 17.16. Quanto `s temporizaoes nos ciclos de escrita, devemos ter em atenao que a c c as clulas de memria da SRAM so constitu e o a das por latches. Logo, devemos assegurar os correspondentes tempos de preparao ou de set-up, tsu , e de ca manutenao ou de hold, th , quer em relaao aos endereos, quer em relaao aos c c c c dados. Os tempos de preparaao e de manutenao dos endereos so denidos relativac c c a mente aos in cios e aos ns dos ciclos de escrita. So eles o tempo de preparao a ca ou tempo de set-up do endereo, tAS, antes de se dar in ao ciclo, e o tempo de c cio manuteno ou tempo de hold do endereo, tAH, depois de terminar o ciclo. ca c Quanto aos dados, os tempos de preparaao e de manutenao so denidos c c a relativamente aos ns dos ciclos. Ou seja, h que assegurar que um determinado a dado est estvel no barramento antes e depois de terminar o ciclo que o escreve a a na memria. o Temos, por conseguinte, um tempo de preparao ou tempo de set-up do dado, ca tDS, antes de terminar o ciclo, e um tempo de manuteno ou tempo de hold do ca dado, tDH, depois de terminar o ciclo. Finalmente, os impulsos de W RIT E e de CS devem ter uma duraao m c nima, respectivamente o tempo de durao do WRITE, tWP, e o tempo de durao do ca ca CS, tCSW.
Tempo de preparaao c (set-up) do endereo, c tAS Tempo de manutenao c (hold) do endereo, tAH c

Ciclo de escrita controlado pelo CS

Tempo de preparaao c (set-up) do dado, tDS Tempo de manutenao c (hold) do dado, tDH Tempo de duraao do c WRITE, tWP Tempo de duraao do c CS, tCSW

350

CAP ITULO 17. MEMORIAS

17.2.5

Expanso de RAMs a

A questo da expanso de RAMs segue a par e passo com o processo de expanso a a a das ROMs. Ou seja, podemos expandir a dimenso de cada palavra colocando RAMs em a paralelo, alimentadas por um barramento de endereos comum e com cada uma c dss RAMs a recolher ou a enviar uma parte dos dados para o barramento de dados comum. Por exemplo, se quisermos formar palavras de 16 bits com RAMs de 4 bits, ligamos 4 RAMs em paralelo, com uma delas ligada a D0D3, outra a D4D7, outra a D8 D11, e a ultima a D12 D15 do barramento de dados D0 D15. Para expandir o nmero de palavras, arranjamos um descodicador externo u que actua os CE (ou CS) de cada uma delas ` custa das linhas de endereo a c suplementares necessrias ao nmero total de palavras. Ou seja, todas as RAMs a u so alimentadas em paralelo pelas linhas de endereo comum, e as linhas de a c endereo suplementares constituem as entradas do descodicador. c

Por exemplo, se possuirmos RAMs de 1k8 e quisermos ocupar uma zona de memria com 4k, usamos 4 RAMs, com cada uma delas a ocupar uma zona de o 1k. Como as RAMs possuem 10 entradas de endereo, aplicamos `s 4 RAMs as c a linhas de endereo A0 A9. Mas como a zona total a descodicar possui 4k, c so precisas mais 2 linhas de endereo, A10 e A11, que so as entradas de um a c a descodicador binrio de 2 bits. As 4 sa a das do descodicador constituem os 4 sinais de CS, um por cada RAM. Finalmente, podemos aumentar simultaneamente a dimenso e o nmero de a u palavras, utilizando as duas tcnicas anteriores, tal como fazemos com as ROMs. e

Cap tulo 18

Lgica Programvel o a
18.1 Read Only Memories (ROMs)

Uma ROM um dispositivo de memria e, como tal, foi estudado no Cap e o tulo 17, conjuntamente com outros tipos de memrias (RAMs). Mas uma das principais o aplicaoes das ROMs, como vimos, na implementaao de lgica combinatria, c e c o o quando se pretende realizar uma funao booleana geral de uma varivel booleana c a geral. Neste sentido, uma ROM pode ser considerada como um dispositivo lgico o programvel, ou PLD (Programmable Logic Device), e nesse contexto que a a e iremos estudar no presente cap tulo. Consideremos na Figura 18.1 uma ROM (hipottica) de 161, na qual queremos e programar a tabela de verdade f sica que se encontra representada na Tabela 18.1 (na realidade teremos que enviar a tabela de verdade para o fabricante da ROM, para ele gerar a mscara com as ligaoes nos s a c tios onde queremos n veis H e ausncias de ligaoes onde queremos n e c veis L).
ROM 16x1

Programmable Logic Device (PLD)

Z H Y H X H W H

0
0 A 15

F H

Figura 18.1: S mbolo IEC de uma ROM hipottica de 16 1 e Do s mbolo da ROM conclu mos que esperamos obter a funao booleana simples c F (W, X, Y, Z), em que W a varivel booleana simples com maior peso (porque e a est ligada ` entrada de endereo com maior peso) e Z a de menor peso. a a c A forma mais simples que temos de representar gracamente o contedo desta u ROM como se apresenta na Figura 18.2: a unica sa constitu por um e da e da OR ct cio com 16 entradas (uma por cada palavra da ROM), que recolhe os n veis H ou L previamente programados em cada uma das palavras, para essa sa da. 351

352

CAP ITULO 18. LOGICA PROGRAMAVEL

Tabela 18.1: Tabela de verdade f sica que queremos programar na ROM da Figura 18.1
Palavra # 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 W H A3 L L L L L L L L H H H H H H H H X H A2 L L L L H H H H L L L L H H H H Y H A1 L L H H L L H H L L H H L L H H Z H A0 L H L H L H L H L H L H L H L H Dados H L H H L L L H H H H L H L L H

Porque o OR possui um elevado nmero de entradas, usual represent-lo de u e a forma simplicada, com as 16 entradas reduzidas a uma unica linha, na qual se identicam as ligaoes aos 16 bits das 16 palavras. c Como de cada vez apenas uma palavra vem endereada, segue-se que apenas c uma entrada do OR vem com o n H ou L que tiver sido programado para essa vel palavra. As restantes entradas vm a L. Logo, do ponto de vista lgico, estamos e o efectivamente a implementar uma funo OR com 15 entradas inactivas (a L) ca e a restante entrada activa ou inactiva, consoante o que tiver sido programado na palavra seleccionada. E claro que as ROMs comerciais tm muito mais palavras e bits por palavra e possibilitando, assim, a implementaao de vrias funoes booleanas simples de c a c um nmero de variveis booleanas simples igual ao nmero de linhas de enu a u dereo. Por exemplo, uma ROM de 8 k 8 pode implementar, no mximo, c a 8 funoes booleanas simples (uma por cada sa c da) de 13 variveis booleanas a simples (porque 213 = 8 k). A ROM da Figura 18.2 pode, ento, ser encarada como uma matriz de ANDs a xos (os ANDs do descodicador binrio) seguida de uma matriz de ORs proa gramveis (os ORs que acabmos de mencionar, um por cada sa a a da). Na Figura 18.3 sugere-se, ento, uma representao grca para uma ROM, a ca a onde se salienta a matriz de ANDs xos e a matriz de ORs programveis. a

18.2. PROGRAMMABLE LOGIC ARRAYS (PLAS)

353

BIN/1-OF-16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1

EN H

EN

Z H Y H X H W H

1 2 3 4

F H

ROM de 16 1

Figura 18.2: Uma forma de representar gracamente a ROM da Figura 18.1 considera a (nica) sa como sendo a sa de um OR ct com 16 entradas, u da da cio umas programadas com o n H (aquelas onde se incluiu uma cruz), e outras vel programadas com o n L (onde no se colocou uma cruz) vel a
Matriz AND xa Matriz OR programvel a

Entradas de endereos c

2n

Sa das de dados

Figura 18.3: Uma ROM pode ser considerada como uma matriz de ANDs xos (no programveis), seguida de uma matriz de ORs programveis a a a

18.2

Programmable Logic Arrays (PLAs)

As ROMs que estudmos atrs constituem, como vimos, o primeiro exemplo de a a um PLD (dispositivo lgico programvel), na medida em que permitem gerar o a funoes booleanas simples de complexidade arbitrria, uma funao por sa c a c da. Tal deve-se ao facto de o descodicador interno da ROM gerar todos os mintermos das funoes, e de cada sa poder ser entendida como a soma lgica de um c da o subconjunto qualquer desses mintermos (Figura 18.2). A popularidade destes dispositivos na implementaao de funes booleanas devec co -se aos seguintes factores: como vimos atrs, fcil e rpido determinar o contedo a inserir numa a e a a u ROM para cada uma das funoes de sa c da; existem linguagens e dispositivos que programam automaticamente uma ROM,

354

CAP ITULO 18. LOGICA PROGRAMAVEL

a partir das expresses booleanas das funoes a implementar; torna-se, por o c isso, fcil alterar o contedo de uma ROM (se ela permitir que o seu contedo a u u seja reprogramado); e os preos das ROMs (como, alis, de outros PLDs) esto em baixa cont c a a nua, tornando-as cada vez mais econmicas. o Contudo, as ROMs apresentam dois inconvenientes: uma ROM pode ser mais dispendiosa, consumir mais potncia, ou ser mais e lenta do que um circuito que use dispositivos SSI e MSI para implementar as mesmas funes, ou que um circuito que use outros dispositivos lgicos co o programveis (como o caso das PLAs e PALs que estudaremos de seguida); a e e quando o nmero de variveis muito elevado, um circuito baseado numa u a e ROM pode tornar-se impraticvel devido ` limitaao do nmero de entradas a a c u dispon nas ROMs comerciais. vel Estes inconvenientes foram explorados pelos fabricantes de circuitos integrados, levando ` concepao de PLDs em que existe um certo nmero n de entradas de a c u dados, um nmero p de ANDs e um nmero q de ORs e correspondentes sa u u das de dados, podendo ser programadas as ligaoes entre os ANDs e as entradas, c por um lado, e entre os ORs e os ANDs, por outro. Ou seja, estamos agora em presena de dispositivos formados por uma matriz c de ANDs programveis, seguida de uma matriz de ORs tambm programveis, a e a como mostra a Figura 18.4 (comparar com a estrutura de ANDs e de ORs de uma ROM, na Figura 18.3).

Entradas e sa das de dados (de um PLD)

Entradas de dados

Matriz AND programvel a

Matriz OR programvel a

Sa das de dados

Figura 18.4: Uma PLA pode ser encarada como uma matriz de ANDs programveis seguida de uma matriz de ORs programveis a a
Programmable Logic Array (PLA)

Estas estruturas tm a designaao de PLAs, ou Programmable Logic Arrays. e c Naturalmente, estes dispositivos impem restries ` estrutura das expresses o co a o booleanas a implementar, j que cada uma das q funoes deve vir expressa a c numa soma de produtos, e o nmero total de implicantes dispon u veis no pode a ultrapassar p. Por comparaao, a implementao das mesmas funoes com uma ROM no c ca c a sofre qualquer espcie de restries relativamente `s suas expresses booleanas, e co a o j que o que fazemos, nesse caso, somar lgicamente os mintermos necessrios ` a e o a a primeira forma cannica de cada funao, e todos os mintermos esto dispon o c a veis nas sa das do descodicador interno ` ROM. a Consideremos a estrutura de uma PLA muito simples, na Figura 18.5.

18.2. PROGRAMMABLE LOGIC ARRAYS (PLAS)

355

H
1

L
=1 1 =1 1

&

&

&

&

&

&

Figura 18.5: Estrutura de uma PLA com n = 4 entradas de dados, p = 6 ANDs, e q = 2 ORs. Este dispositivo permite implementar duas funoes booleanas c simples de 4 variveis que possuam expresses booleanas em forma de somas de a o produtos limitadas a um mximo de 6 implicantes a Repare-se que a PLA tem 2 sa das, 4 entradas e 6 ANDs, o que permite implementar 2 funoes booleanas simples das 4 variveis de entrada, com expresses c a o em somas de produtos limitadas a 6 implicantes. Repare-se ainda que, nas saidas, as funoes podem ser negadas ou no, conforme c a o que se programar no controlo das portas XOR nais. Como exemplo, utilizemos a PLA anterior para construir as funoes F 1 e F 2 c dadas pelas tabelas de verdade f sicas da Tabela 18.2. Para implementar estas funoes em ROM haveria apenas que gravar as tabelas c na memria. Usando como exemplo uma ROM de 168, isso signicaria realizar o a programaao expressa na Figura 18.6. c Trata-se de um processo simples mas que acarreta um grande desperd cio de hardware, dado apenas aproveitarmos duas das oito possibilidades de gerao ca de funoes que a ROM permite. c No caso da PLA o processo ser um pouco mais complexo, mas o resultado cona

356

CAP ITULO 18. LOGICA PROGRAMAVEL

Tabela 18.2: Tabelas de verdade f sicas de duas funoes booleanas simples que c queremos implementar com a PLA da Figura 18.5
A H L L L L L L L L H H H H H H H H B H L L L L H H H H L L L L H H H H C H L L H H L L H H L L H H L L H H D H L H L H L H L H L H L H L H L H F1 H L H L H L H L H H L H H L L L H F2 H H H L L H H L H L H L L H H L H

BIN/1-OF-16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 1 1 1 1 1 1 1

EN

D H C H B H A H

1 2 3 4

ROM de 16 8 F1 H F2 H

Figura 18.6: A implementaao das funoes booleanas simples da Tabela 18.2 c c com uma ROM de 16 8 signica a programao da ROM na forma que aqui ca se indica

18.2. PROGRAMMABLE LOGIC ARRAYS (PLAS)

357

some menos recursos, como veremos. Uma vez que necessitamos de implementar o circuito de tal modo que as funoes vo estar em soma de produtos, convec a e niente proceder ` minimizaao das expresses booleanas para ver se conseguimos a c o implementar as expresses com o nmero de ANDs limitados de que dispomos o u na PLA. Utilizaremos o mtodo de Karnaugh, como mostra a Figura 18.7. e
CD AB
0

CD 00
1

01
3

11
2

10 0
6

AB
0

00
1

01
3

11
2

10 0
6

00
4

0
5

1
7

1 1
15 14

00
4

1
5

1
7

0 1
15 14

01
12

0
13

1 0
9 11

0 0
10

01
12

1
13

1 1
9 11

0 0
10

11
8

0 1

1 1

11
8

1 0

1 0

10

10

F1 = A D + C D + AB D

F2 = AC + B C + C D + B D

Figura 18.7: Mapas de Karnaugh para a implementao das funoes booleanas ca c simples da Tabela 18.2 Obtemos: F1 = AD + C D + AB D F2 = AC + B C + C D + B D . A colocaao de F 1 na PLA no oferece qualquer problema: so utilizados trs c a a e ANDs com as entradas ligadas de forma a conseguir os trs produtos necessrios, e a e utiliza-se um dos ORs para somar esses ANDs. O XOR nal programado e para no negar a funao (Figura 18.8). a c Surge um problema, contudo, quando queremos implementar F 2. E que so a precisos 4 produtos, todos diferentes dos trs j usados, e a PLA j s tem trs. e a a o e Podemos, porm, reparar que, no mapa de Karnaugh, se agruparmos os 0s e em vez dos 1s, obteremos uma expresso mais simples. Contudo, a PLA no a a tem uma estrutura que facilite o uso de produtos de somas. Por isso recorremos a um estratagema, que o de obter a expresso da negao e a ca de F 2 e, depois, usar a possibilidade oferecida pela PLA para negar essa negaao, c obtendo-se a funao F 2 pretendida. Nesse caso, o mapa de Karnaugh para F 2 c ser o que se ilustra na Figura 18.9. a E a expresso obtida para o complemento de F 2 a e F2 = B C + C D + AB D . Repare-se que um dos produtos necessrios, o produto A B D, j foi programado a a na PLA por causa de F 1. O resultado nal ser, ento, o que se ilustra na a a Figura 18.10. As PLAs comerciais possuem, naturalmente, tamanhos diversos e diferentes do da PLA da Figura 18.5. Um exemplo o da PLS100/101 da Philips. Trata-se e de uma PLA com 16 entradas, 48 ANDs e 8 ORs.

358

CAP ITULO 18. LOGICA PROGRAMAVEL

H
1

A H
1 1

L
=1

B H
1

F1 H
=1

C H
1

D H
&

AD H

&

CD H

&

ABD H

&

&

&

Figura 18.8: Uma PLA como a da Figura 18.5 permite implementar directamente a funao F 1 da Tabela 18.2 c
CD AB
0

00
1

01
3

11
2

10 1
6

00
4

0
5

0
7

1 0
15 14

01
12

0
13

0 0
9 11

1 1
10

11
8

0 1

0 1

10

F2 = B C + C D + AB D

Figura 18.9: Mapa de Karnaugh para a funao F 2 da Tabela 18.2 c

18.3

Programmable Array Logic (PALs)

No caso das ROMs, como se viu, as ligaoes dos ANDs esto xas e poss c a e vel programar as ligaoes dos ORs. No caso das PLAs poss programar ambas c e vel

18.3. PROGRAMMABLE ARRAY LOGIC (PALS)

359

H
1

A H
1 1

L
=1

B H
1

F1 H
=1

C H
1

F2 H

D H
&

AD H

&

CD H

&

ABD H

&

CD H

&

BC H

&

Figura 18.10: A PLA da Figura 18.5 permite implementar directamente a funao c F 1 e, indirectamente, tambm a funo F 2 da Tabela 18.2 e ca as ligaoes. c Vericou-se, contudo, que as potencialidades mais interessantes advinham da capacidade de programar os ANDs. Assim, desenvolveu-se um novo tipo de dispositivo em que as ligaoes entre os ANDs e os ORs esto xas e apenas poss c a e vel programar as ligaoes dos ANDs `s entradas, como mostra a Figura 18.11. c a A essa estrutura passou a chamar-se PAL, ou Programmable Array Logic. Tambm uma PAL apresenta restrioes quanto `s expresses booleanas das q e c a o funoes a implementar, j que cada uma delas deve ser representada em soma c a de produtos, e o nmero de implicantes da soma no pode exceder p por funao u a c (por comparao, numa PLA o nmero de implicantes dispon ca u veis igual a p e para todas as funoes). c Um exemplo de uma poss PAL, com 4 entradas, 12 ANDs e 4 sa vel das, o que e se apresenta na Figura 18.12. Repare-se que uma das linhas de saida realimentada para o interior da PAL e (acontece isto com alguma frequncia) para permitir construir funoes que nee c cessitem de um maior nmero de ANDs. u

Programmable Logic Array (PLA)

360

CAP ITULO 18. LOGICA PROGRAMAVEL

Entradas de dados

Matriz AND programvel a

Matriz OR xa

Sa das de dados

Figura 18.11: Uma PAL pode ser encarada como uma matriz de ANDs programveis seguida de uma matriz de ORs xos (no programveis) a a a

&

&

1 & 1

1 & 1

Figura 18.12: Estrutura de uma PAL com n = 4 entradas, p = 12 ANDs programveis, e q = 4 sa a das

O exemplo seguinte, para alm de ilustrar a programaao desta PAL, exemplica e c tambm este aspecto. e

18.3. PROGRAMMABLE ARRAY LOGIC (PALS)

361

Admitamos, ento, que se pretende programar na PAL a seguinte funao booa c leana geral: W = ABC +ABC D X = A+BCD Y = AB + CD + BD Z = ABC +ABC D + ACD + ABC D = W +AC D +AB CD. O resultado da programaao ser, ento, o que se indica na Figura 18.13. c a a
& 1

(18.1)

W H

A H

&

X H

B H
& 1

Y H

C H
& 1

Z H

D H

Figura 18.13: A PAL da Figura 18.12 aqui utilizada para programar a funao e c booleana geral (18.1) Este tipo de dispositivos pode tambm incluir ip-ops nas saidas, de modo a e

362

CAP ITULO 18. LOGICA PROGRAMAVEL

permitir realizar circuitos sequenciais. As folhas de especicaao de um conjunto de dispositivos reais que existem c dispon veis no mercado do exemplos dos dois tipos de PAL. A 16L8 um a e caso de uma PAL puramente combinatria, do tipo da ilustrada anteriormente. o As 16R4, 16R6 e 16R8 so PALs com uma componente sequencial formada a por um registo com sa das tri-state controladas por uma entrada de Enable suplementar.

Cap tulo 19

Mquinas de Estados a
19.1 Circuito Controlado e Circuito de Controlo

Os sistemas digitais com alguma complexidade no podem ser projectados como a vulgares mquinas sequenciais s a ncronas, porque os seus diagramas de estados, ou, em alternativa, as tabela de estados, so de grande dimenso, com um a a elevado nmero de entradas e de sa u das, para alm de um grande nmero de e u estados. Prefere-se, ento, organizar esses sistemas hierarquicamente, como foi sugerido a no Cap tulo 8, estabelecendo uma diviso clara entre o circuito que d suporte a a ao uxo e ` manipulaao de dados (o chamado circuito controlado, ou circuito de a c dados), por um lado, e um outro circuito que controla o primeiro (o circuito de controlo). O circuito controlado , em geral, formado por um conjunto de mdulos sime o ples tais como contadores, registos, multiplexeres, somadores, comparadores, memrias, algumas portas lgicas, etc, podendo ser combinatrio ou sequencial. o o o Pelo contrrio, o circuito de controlo sempre um circuito sequencial s a e ncrono. Projectar um sistema digital complexo consiste, ento, em projectar o circuito a de controlo e o circuito controlado correspondente. Na Figura 19.1 apresenta-se um diagrama de blocos poss para este sistema vel hierrquico. a Contudo, o diagrama no unico. Por exemplo, se o sistema controlado for a e s ncrono, precisa de uma ou mais entradas de relgio, que normalmente so o a obtidas de CLK H ou da sua negaao. Noutros sistemas, o sinal ou sinais de c relgio do circuito controlado so gerados pelo circuito de controlo. Naturalo a mente, se o circuito controlado for combinatrio, no necessita de entrada de o a relgio. o O circuito de controlo de um sistema complexo designa-se abstractamente por mquina de estados ou mquina algor a a tmica, mais simplesmente pela sigla ASM, que signica Algorithmic State Machine. O que distingue uma mquina de estados de uma vulgar mquina sequencial a a s ncrona, como as que estudmos anteriormente, a maneira como ela proa e e 363
Mquina de estados a (algor tmica) ou ASM

Circuito de controlo e circuito controlado (de dados) Existem sistemas de controlo e sistemas controlados que so circuitos a sequenciais assncronos, mas no os estudamos a nesta cadeira.

364

CAP ITULO 19. MAQUINAS DE ESTADOS

Ordens e condicionantes do exterior Comandos

Dados de entrada

Circuito de controlo (mquina a de estados) CLK H Circuito controlado

Estado Informao ca para o exterior Dados de sa da

Figura 19.1: Diagrama de blocos de um sistema digital complexo formado por um circuito de controlo e por um circuito controlado jectada para se inserir no sistemna global, controlando-o. Dado que o nmero u de entradas e de sa das , para uma mquina de estados, geralmente elevado, e a na prtica somos forados a usar uxogramas na sua especicaao e desenvolvia c c mento.
Unidade de Controlo Unidade Central de Processamento (CPU) Banco de registos (Register File) Memria Central o

Um exemplo de mquina de estados o da Unidade de Controlo de um (mia e cro)processador, que comanda a Unidade Central de Processamento ou CPU (Central Processing Unit). Na CPU so guardados, num banco de registos ou Register File, as instrues a co e os operandos que se obtm da Memria Central, so efectuadas as operaoes e o a c aritmticas e lgicas sobre os contedos dos operandos, e os resultados das e o u operaoes so guardados no banco de registo antes de os enviar ` Memria c a a o Central. Finalmente, a CPU actualiza um contador especial, designado por Contador de Programa, que contm o endereo de memria onde se encontra a e c o prxima instruo a ser operada. o ca Naturalmente, esta mquina de estados complexa e dif de projectar, at a e cil e mesmo porque se pretende que ela seja extremamente rpida (vejam-se as elea vadas frequncias de relgio dos microprocessadores actuais). O projecto destas e o ASMs , por essa razo, estudada em cadeiras de Arquitecturas de Computae a dores. Neste cap tulo vamos considerar um exemplo muito mais simples, de acesso a um parque de estacionamento t pico. O acesso faz-se por uma via de sentido unico, controlada na entrada e na sa pelas cancelas C1 a C3, pelos semforos da a S1 a S4, e pelos sensores D1 a D5. Como mostra a Figura 19.2, a mquina de estados h-de controlar o acesso ao a a parque lendo os n veis de tenso `s sa a a das dos sensores e gerando os sinais de controlo das cancelas e dos semforos, e os sinais de comando para o circuito a

Contador de Programa

19.1. CIRCUITO CONTROLADO E CIRCUITO DE CONTROLO

365

controlado. Por outro lado, o circuito controlado h-de indicar quando o para que se encontra cheio, enviando para o circuito de controlo um sinal de estado adequado.

D2 S3 D3 S4 C3 D5 D4 C2 D1 S2 S1 C1

Figura 19.2: O controlo do acesso ao parque de estacionamento dever abrir ou a fechar as cancelas de acesso C1 a C3 consoante os valores lidos nos sensores D1 a D5 e controlar os semforos S1 a S4, para alm de gerar os sinais a e de comando (no caso, dois sinais de relgio) necessrios ao funcionamento do o a circuito controlado, recolhendo deste o sinal de estado que indica quando o parque est cheio a Quanto ao circuito controlado, vai ser constitu por um contador ascendo dente/descendente, que guarda a informaao sobre o nmero de carros estac u cionados no parque (Figura 19.3). O contador possui duas entradas de relgio, uma designada por CP.U P H, que o incrementa o contador de uma unidade, e outra designada por CP.DOW N H, que decrementa o contador de uma unidade (este um exemplo em que os sinais e de relgio necessrios ao funcionamento do circuito controlado so gerados pelo o a a circuito de controlo). Quando o contador atinge um valor de contagem igual a ` capacidade mxima do parque, gera um sinal de estado, F U LL H, para o a circuito de controlo.
CTR CP.UP H CP.DOWN H FULL H

Figura 19.3: O circuito controlado formado por um contador ascene dente/descendente que indica, em cada instante, o nmero de carros estacionau dos no parque O funcionamento do sistema de acesso ao parque o que se descreve a seguir. e Quando o parque est cheio, s podem sair carros. Quando no est cheio, a o a a podem entrar ou sair. Porque a rua de acesso estreita, s pode passar um e o carro de cada vez. A sa detectada pela presena de um carro que pisa D4. Se no h da e c a a entrada em curso, o semforo S4 ca verde e a cancela C3 abre. Em seguida a

366

CAP ITULO 19. MAQUINAS DE ESTADOS

espera-se que o carro pise D5 e saia, para se fechar a cancela e colocar o semforo S4 em vermelho. Entretanto, coloca-se o semforo S2 a verde. a a Quando o carro pisa D2, abre-se C2, que se mantm aberta enquanto a e viatura estiver a pisar D2. Quando o carro deixar de pisar D2, o semforo a S2 passa a vermelho e C2 fecha. Nessa altura desconta-se uma unidade no contador de lugares ocupados no parque. A entrada comea com um carro a pisar D1. Se no h sa em curso, o c a a da semforo S1 ca verde e a cancela C1 abre, cando aberta enquanto o carro a detectado por D1. Quando o carro deixa D1, S3 ca a verde, e quando e chega a D3 a cancela C3 aberta e o carro entra, passando S3 a vermelho e e cando o circuito ` espera que D5 venha pisado (em rigor, pod a amos passar sem S3. Porqu?). S depois de D5 deixar de ser pisado que C3 fecha. e o e Nessa altura, o contador incrementado. e Tendo em atenao o modelo geral da Figura 19.1, para este caso particular a c situao a que descreve na Figura 19.4. ca e
D1 H D3 H D5 H D2 H D4 H

CP.UP H CP.DOWN H Circuito de controlo FULL H CLK H Circuito controlado

C1 H C3 H S2 H C2 H S1 H

S4 H

S3 H

Figura 19.4: Modelo da Figura 19.1, adaptado ao controlo do acesso ao parque de estacionamento da Figura 19.2

19.2

Mquinas de Estados e Fluxogramas a

Naturalmente, podia-se tentar obter em seguida um diagrama de estados para a mquina de estados que controla o acesso ao parque de estacionamento. Porm, a e como este circuito tem 6 entradas e 9 sa das, o diagrama caria muito confuso. Da que se recorra a um uxograma, por ser mais compacto. Esta , e alis, a forma mais comum de especicar e documentar as ASMs, dadas as suas a complexidades habituais. O uxograma de controlo de acesso ao parque de estacionamento encontra-se ilustrado nas Figuras 19.5 e 19.6, dada a sua complexidade.

19.3. IMPLEMENTACAO COM ROMS

367

1 E0 Espera

FULL H

D4 H H H

D4 H L

3 L D1 H H 2

Figura 19.5: Parte inicial do uxograma da ASM da Figura 19.4 Dado encontrar-se repartido por duas guras, o uxograma obriga ` incluso a a de indicadores de mudana de gura, representados por c c rculos numerados. A explicaao do uxograma bvia, pelo que dispensamos os respectivos coc e o mentrios. a Frisa-se, contudo, que se utilizaram as mesmas convenoes que foram usadas na c Secao 16.9 a propsito das Figuras 16.37 a 16.39 (pginas 310 a 312): c o a 1. admite-se que todas as entradas e sa das so activas a H; a 2. admite-se que a activao de uma cancela signica levant-la; e ca a 3. admite-se que a activao de um semforo signica coloc-lo a verde. ca a a

19.3

Implementao com ROMs ca

Como se viu at agora, existem dois problemas srios que dicultam a ime e plementaao de circuitos sequenciais com um elevado nmero de estados, de c u entradas e de sa das, como acontece com as mquinas de estados. a Por um lado, necessita-se de uma grande quantidade de lgica diversa para gerar o as excitaes dos ip-ops e as sa co das dos circuitos. E, por outro, em geral e dif sintetisar o circuito, dada a dimenso do uxograma (ou diagrama de cil a estados, ou tabela de estados) a que muitas vezes se chega. O ultimo aspecto foi facilitado com a s ntese com um ip-op por estado, muito utilizada nas implementaoes com dispositivos lgicos programveis devido ` c o a a

368

CAP ITULO 19. MAQUINAS DE ESTADOS

E1

Entrada C1 H, S1 H

E6

Sa da C3 H, S4 H

D1 H L

D4 H L E7

E2 S3 H

C3 H, S4 H

D3 H H

D5 H H E8

E3 C3 H, S3 H

C3 H

D3 H L

D5 H L E9

E4 C3 H

S2 H

D5 H H

D2 H H E10 C2 H, S2 H CP.DOWN H L L

E5 C3 H, CP.UP H

D5 H

D2 H

Figura 19.6: Continuaao do uxograma da Figura 19.5, correspondente `s c a situaes de entrada ou de sa de um carro no parque de estacionamento co da

existncia de programas que geram automaticamente soluoes prontas a serem e c transferidas para alguns desses dispositivos, nomeadamente CPLDs e FPGAs. Naturalmente, existem sempre limitaoes quanto `s dimenses desses disposic a o tivos, pelo que se procurou obter outro modo de implementaao de circuitos de c controlo que usasse pouca lgica discreta e que permitisse a implementaao de o c

19.3. IMPLEMENTACAO COM ROMS muitos estados, entradas e sa das.

369

O uso de ROMs permitiu caminhar nesse sentido. Permitiu mesmo dar um passo muito signicativo na evoluao dos circuitos de controlo complexos, com c o aparecimento do controlo microprogramado ou microprogramao, caracter ca stico dos processadores CISC das mainframes das dcadas de 60 a 80. e a O aparecimento dos modernos microprocessadores RISC fez perder importncia a este tipo de controlo, que lento se precisarmos de usar ROMs de grandes e dimenses, em tecnologia nMOS. A alternativa consistiu em implementaoes o c com PALs ou PLAs (muito rpidas) e s a nteses com um ip-op por estado, gerando implementaoes de dimenses muito considerveis. c o a Nesta secao iremos estudar as implementaoes por ROM, nas suas verses c c o mais simples. Contudo, deve car claro que no vamos abordar os problemas a da microprogramao que, por serem muito variados e complexos, deixaremos ca para uma cadeira posterior de Arquitectura de Computadores. Limitar-nos-emos, assim, a abordar os princ pios bsicos de implementaao de a c mquinas de estado usando um controlo por ROM, em diversas verses sucesa o sivamente mais complexas, sendo que a ultima contm j os fundamentos do e a controlo microprogramado.

Controlo microprogramado (microprogramaao) c Processadores CISC Microprocessadores RISC

19.3.1

Estrutura bsica de controlo por ROM a

Uma mquina de estados pode ser implementada com uma estrutura suportada a numa ROM, como a que vem ilustrada na Figura 19.7.
ROM Entradas actuais A0 A1 A2 REG Ap-2 Ap-1 CLK H D0 D1 D2 Sa das actuais

Dn-2 Dn-1

Estado seguinte

Estado actual

Figura 19.7: Diagrama de blocos de uma mquina de estados com controlo por a ROM que utiliza uma estrutura bsica a Se compararmos este diagrama de blocos com o da Figura 16.4, na pgina 283, a compreendemos que a ROM que agora vamos usar substitui a lgica do estado o seguinte e a lgica de sa do circuito. o da Se, por outro lado, compararmos este diagrama de blocos com o da Figura 19.1, vericamos que as entradas da Figura 19.7, sendo, naturalmente, as entradas externas da mquina de estados, so agora compostas pelas entradas externas do a a

370

CAP ITULO 19. MAQUINAS DE ESTADOS

circuito de controlo (as ordens e condicionantes da Figura 19.1) e pelas entradas de estado que provm do circuito controlado. e Identicamente, as sa das da Figura 19.7, isto , as sa e das externas ` mquina de a a estados, so compostas pelas sa a das para o exterior do circuito de controlo (a informaao para o exterior) e pelas sa c das (comandos) para o circuito controlado. Como podemos constatar no diagrama de blocos anterior, as entradas da mquia na e os sa das dos ip-ops (o seu estado actual, EA) constituem o barramento de endereos da ROM, A0 a Ap1 . c Quanto ao barramento de dados, D0 a Dn1, est dividido em duas partes: (i) a as entradas de excitaao dos ip-ops, que decidem o estado seguinte, ES, da c mquina; e (ii) as sa a das para o exterior da mquina de estados. a Quando, num per odo de relgio t, aplicamos ao barramento de endereos um o c determinado endereo, isso signica que a mquina se encontra num determic a nado estado (actual, no per t) e tem certos n do veis de tenso aplicados `s a a entradas (actuais). O contedo da palavra que lida da ROM nesse endereo, u e c e que foi previamente programado, identica as sa (actuais) a gerar para o da exterior da mquina, e o estado (seguinte, no per a odo de relgio t + 1) para o o qual a mquina ir evoluir. a a
Campos

Tudo se passa como se a palavra lida da ROM (o contedo desse endereo) se u c encontrasse formatada em dois campos, um para o estado seguinte e outro para as sa das actuais, como mostra a Figura 19.8.
Estado seguinte (ES) Sa das actuais

Figura 19.8: Formato das palavras quando se usa uma estrutura bsica de a controlo por ROM Para entendermos como programar a ROM para o correcto funcionamento deste tipo de controlo, consideremos na Figura 19.9 um uxograma muito simples de uma mquina de Mealy. a Neste caso temos: 3 estados, A, B e C; podemos, portanto, usar 2 variveis de estado, digamos a Q1 H e Q0 H; duas variveis de entrada, I0 H e I1 H; e a duas variveis de sa a da: X H, de Mealy, gerada no estado A se a entrada I1 estiver inactiva, e Y H, de Moore, gerada no estado C. O diagrama de blocos da Figura 19.7 ca, com esta mquina, estruturado como a se indica na Figura 19.10. O formato de cada palavra de ROM o que se indica na Figura 19.11. e A codicaao dos estados arbitrria, pelo que usaremos a atribuio de variveis c e a ca a de estado que consta da Tabela 19.1. Porque vamos trabalhar no contexto

19.3. IMPLEMENTACAO COM ROMS

371

I1 H

H C Y H

X H B

I0 H

Figura 19.9: Fluxograma de uma mquina de estados de Mealy muito simples a que serve de exemplo para uma implementaao por ROM, na sua estrutura c bsica a
ROM I0 H I1 H
1D

A0 A1 Q0 H A2

D0 D1 D2 NQ0 H

X H Y H

CLK H

C1 1D C1

Q1 H

A3

D3

NQ1 H

Figura 19.10: Diagrama de blocos com a estrutura bsica de controlo por ROM a para a mquina de estados da Figura 19.9 a
3 N Q1 2 N Q0 1 Y 0 X Bits de dados

Figura 19.11: Formato das palavras quando se usa um controlo por ROM bsico a na implementaao da mquina de estados da Figura 19.9 c a algbrico quando lidamos com as ROMs e com os seus contedos, todas as e u tabelas que iremos usar neste cap tulo envolvem exclusivamente 0s e 1s. O contedo da ROM vai ser denido por uma tabela de estados lgica como a u o da Tabela 19.2. Como se observou anteriormente, os contedos das palavras de ROM contm u e

372

CAP ITULO 19. MAQUINAS DE ESTADOS

Tabela 19.1: Tabela com a codicaao de estados para o circuito de controlo da c Figura 19.9, com controlo por ROM bsico a
Estado actual A B C Q1 H(t) 0 0 1 Q0 H(t) 0 1 0

Tabela 19.2: Tabela de estados lgica com o contedo da ROM a programar o u para a mquina de estados da Figura 19.9, quando se utiliza uma estrutura a bsica de controlo a
Q1 Estado A A A A B B B B C C C C Endereo c 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 Q0 A2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 I1 A1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 I0 A0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 NQ1 D3 0 0 1 1 0 0 0 0 1 0 1 0 NQ0 D2 1 1 0 0 0 0 0 0 0 0 0 0 Y D1 0 0 0 0 0 0 0 0 1 1 1 1 X D0 1 1 0 0 0 0 0 0 0 0 0 0

0s e 1s (em vez de Hs e de Ls) porque estamos a trabalhar no contexto algbrico com uma tabela de estados lgica. e o E de notar ainda que os 16 endereos de ROM (porque existem 4 linhas de c endereo) so repartidos por 4 zonas com 4 endereos cada uma: uma zona para c a c o estado A, outra para o estado B, outra para o estado C e, nalmente, uma quarta zona que no utilizada. Nesta ultima zona colocaram-se indiferenas a e c nos contedos das palavras (porque no so utilizados), embora a programaao u a a c da ROM obrigue a especicar 0s e 1s. Isto , a programaao da ROM exige e c a colocaao de 0s ou de 1s no lugar das indiferenas. c c

19.3. IMPLEMENTACAO COM ROMS

373

Vejamos como se constri uma linha qualquer da ROM, por exemplo a linha o com endereo 0. c Essa linha corresponde ao estado actual A (porque Q1 = Q0 = 0) com as entradas actuais I1 = I0 = 0. Como I1 = 0 neste estado, queremos ir para o estado B, pelo que N Q1 = 0 e N Q0 = 1. Por outro lado, no estado A queremos activar X e desactivar Y , pelo que programamos X = 1 e Y = 0.

19.3.2

Controlo por ROM com endereamento expl c cito

Para construir o circuito correspondente ao exemplo do parque de estacionamento com a metodologia anterior, a ROM deveria ter dimenses considerveis: o a

10 linhas de endereo, sendo 6 correspondentes `s entradas 5 externas ao c a sistema e uma de estado e 4 correspondentes `s variveis de estado; e a a 12 linhas de sa da, sendo 4 no campo Estado seguinte e 9 no campo Sa das 7 para o exterior do sistema e duas de comandos para o circuito controlado. Tratar-se-ia de uma ROM com 1 024 palavras de 12 bits, o que, no levantando a qualquer problema do ponto de vista prtico, exige uma ROM j com uma a a dimenso considervel. a a Porm, na maior parte dos circuitos reais, com um elevado nmero de variveis e u a de entrada, de sa e de estado, esta metodologia pode car comprometida. da Felizmente, h alternativas. Na primeira, que iremos estudar em seguida, as a variveis de entrada so retiradas do barramento de endereos da ROM, o que a a c permite diminuir consideravelmente o nmero de palavras relembremos que u cada linha de endereo a menos numa memria signica a reduo do nmero c o ca u de palavras para metade. Como no se pode prescindir da inuncia das variveis de entrada no funcionaa e a mento da mquina de estados, algo tem que ser feito. A ideia bsica consiste a a em: 1. eliminar as suas acoes nas sa c das, transformando as sa das de Mealy em sa das de Moore; e 2. limitar as acoes das variveis de entrada nas mudanas de estado, por c a c forma a que, de cada estado actual, s se possa evoluir para um de dois o estados seguintes (incluindo, eventualmente, o prprio). o Analisemos a estrutura e dois exemplos. O novo diagrama de blocos agora o e que se ilustra na Figura 19.12. Notemos como cada palavra da ROM vem agora formatada em quatro campos, sendo dois para o estado seguinte (ES0 e ES1), um para o teste das entradas, e um quarto campo para as sa das actuais (Figura 19.13). Porque cada palavra de ROM indica explicitamente dois estados seguintes em
Endereamento c expl cito

374

CAP ITULO 19. MAQUINAS DE ESTADOS


Estado seguinte 1 (ES1) ROM D0 D1 Estado seguinte 0 (ES0) Sa das actuais MUX2 A0 A1

REG

Ap-1 CLK H

Teste MUX1

Estado seguinte

Estado actual

Dn-1 Entradas actuais

Figura 19.12: Diagrama de blocos de uma mquina de estados que utiliza um a controlo por ROM com endereamento expl c cito
Sa das actuais

Teste

ES1

ES0

Figura 19.13: Formato das palavras de ROM quando se usa um controlo com endereamento expl c cito alternativa, esta estrutura designada por controlo por ROM com endereamento e c O MUX1 tem as suas linhas de entradas de dados ligadas `s linhas de entrada a do circuito de controlo. As linhas do campo de teste da ROM permitem, para cada estado actual, escolher a entrada ou combinaoes de entradas a testar. Se c a entrada seleccionada tiver o valor 0, por exemplo, ento o estado seguinte a escolhido o que vier indicado no campo ES0. No caso contrrio, ser o estado e a a seguinte ES1 a ser escolhido. Notemos que, desta forma, podemos facilmente implementar toda e qualquer transio condicionada que encontremos num uxograma. As transies inca co condicionais, que no envolvem testes a variveis de entrada, so igualmente a a a fceis de implementar: basta que programemos o mesmo estado seguinte nos a campos ES0 e ES1. Voltemos, ento, ` nossa mquina de estados simples, com o uxograma da a a a Figura 19.9. Para utilizar este tipo de estrutura, o uxograma vai ter que ser transformado. Se tal no fr poss a o vel, ento ser necessria alguma forma de a a a lgica adicional. o

expl cito.

19.3. IMPLEMENTACAO COM ROMS

375

Neste caso a sa X de Mealy, pelo que precisamos de transformar a mquina da e a de estados numa mquina de Moore. a Por outro lado, de cada estado actual s se vai, no mximo, para dois estados o a seguintes, pelo que, a esse n vel, no so necessrias alteraoes. a a a c Para passar a sa X a sa de Moore, temos duas hipteses: (i) inclui-se da da o X no estado B; ou (ii) acrescenta-se um estado antes de B. Em qualquer dos casos X vem activada mais tarde do que previsto, dependendo a escolha das temporizaoes espec c cas da aplicaao. Vamos admitir que X pode ser inclu c da no estado B, obtendo-se o uxograma da Figura 19.14.

L B X H

I1 H

H C Y H

I0 H

Figura 19.14: A mquina de estados de Mealy da Figura 19.9 tem de ser transa formada numa mquina de Moore para se poder utilizar um controlo por ROM a com endereamento expl c cito. Neste caso, admitiu-se que a sa X podia vir da activada no estado B Nessa hiptese, o diagrama de blocos da mquina de estados ser o que se ilustra o a a na Figura 19.15. A ROM passou a ser constitu por 4 palavras de 7 bits, em vez das 16 palavras da de 4 bits necessrias para a estrutura bsica de controlo. a a De notar que as linhas N Q0 so os bits de estado seguinte 0 (ES0) quando a o resultado da varivel testada der 0, e as linhas N Q1 so os bits de estado a a seguinte 1 (ES1) quando a varivel testada der 1. a O formato de cada palavra de ROM o que se indica na Figura 19.16. e Para a mesma codicaao de estados da Tabela 19.1, o contedo da ROM , c u e com esta estrutura, a que se indica na Tabela 19.3. Em relaao a esta tabela, tecem-se alguns comentrios: c a 1. como se armou anteriormente, as linhas N Q00 e N Q10 so os bits de a ES0 quando o resultado da varivel testada for 0, e as linhas N Q01 e a N Q11 so os bits de ES1 quando a varivel testada tiver o valor 1; e a a 2. na linha correspondente ao estado A testa-se a entrada I1 trata-se de uma transiao condicionada ao valor de I1 no estado A; c

376

CAP ITULO 19. MAQUINAS DE ESTADOS

ROM D0 D1 NQ00 H NQ10 H NQ01 H NQ11 H 1 MUX2 0 NQ0 H NQ1 H X H Y H

REG

Q0 H

D2 A0 D3 D4

Q1 H CLK H

D5 A1

D6

Teste 0

MUX1 1 I1 H

I0 H

Figura 19.15: Diagrama de blocos para a mquina de estados da Figura 19.14, a com controlo por ROM com endereamento expl c cito
6 Teste Teste 5 N Q11 4 N Q01 3 N Q10 2 N Q00 1 Y 0 X Bits de dados

ES1

ES0

Sa das actuais

Figura 19.16: Formato das palavras num controlo por ROM com endereamento c expl cito para a mquina de estados da Figura 19.14 a Tabela 19.3: Tabela de estados lgica com o contedo da ROM a programar o u para a mquina de estados da Figura 19.14, quando se utiliza uma estrutura de a controlo com endereamento expl c cito
Q1 Estado A B C A1 0 0 1 1 Q0 A0 0 1 0 1 Teste D6 1 0 NQ11 D5 1 0 0 NQ01 D4 0 0 0 NQ10 D3 0 0 1 NQ00 D2 1 0 0 Y D1 0 0 1 X D0 0 1 0

3. na linha correspondente ao estado B no feito qualquer teste, pelo que a e e indiferente o valor a inserir no campo com o mesmo nome (contudo, ver a observaao anterior que arma que no podemos programar indiferenas c a c na tabela);

19.3. IMPLEMENTACAO COM ROMS

377

4. a transio a partir do estado B incondicional, pelo que os dois campos ca e de estado seguinte apontam ambos para o estado A; 5. nalmente, no estado C testa-se I0 (outra transio condicionada, desta ca feita ao valor de I0). Consideremos agora o caso do parque de estacionamento e os uxogramas das Figuras 19.5 e 19.6. Neste caso no preciso alterar as sa a e das, porque so todas de Moore. Mas a preciso acrescentar alguns estados para garantir que, de qualquer um estado e actual, apenas se prossegue para um de dois estados seguintes, no mximo. a Tal torna-se necessrio apenas nas transies que partem do estado E0, pelo a co que apenas a parte do uxograma da Figura 19.5 precisa de ser redesenhada, como se ilustra na Figuras 19.17.

1 E0 Espera

L P

FULL H

H R

D4 H H H

D4 H L Q

D1 H H 2

Figura 19.17: Parte inicial do uxograma das Figuras 19.5 e 19.6, modicado para permitir um controlo por ROM com endereamento expl c cito Por comodidade, reproduz-se na Figura 19.18 o resto do uxograma de controlo. Agora vamos necessitar de 4 ip-ops, porque precisamos de codicar 14 estados. Sendo indiferente a codicaao das variveis de estado, podemos usar a c a codicao da Tabela 19.4. ca

378

CAP ITULO 19. MAQUINAS DE ESTADOS

E1

Entrada C1 H, S1 H

E6

Sa da C3 H, S4 H

D1 H L

D4 H L E7

E2 S3 H

C3 H, S4 H

D3 H H

D5 H H E8

E3 C3 H, S3 H

C3 H

D3 H L

D5 H L E9

E4 C3 H

S2 H

D5 H H

D2 H H E10 C2 H, S2 H CP.DOWN H L L

E5 C3 H, CP.UP H

D5 H

D2 H

Figura 19.18: Continuaao do uxograma da Figura 19.17 c

O diagrama de blocos da mquina de estados ser, por sua vez, o que se indica a a na Figura 19.19. De notar que as linhas N Q00 H a N Q30 H designam os bits do estado seguinte 0 (ES0) quando o resultado da varivel testada for o valor 0, e que as linhas a N Q01 H a N Q31 H designam os bits do estado seguinte 1 (ES1) quando a varivel testada tiver o valor 1. a

19.3. IMPLEMENTACAO COM ROMS

379

Tabela 19.4: Tabela de codicaao de estados para a mquina de estados das c a Figuras 19.17 e 19.18, com controlo por ROM com endereamento expl c cito
Estado E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 P Q R Q3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 Q2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 Q1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 Q0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

A ROM ter, agora 16 palavras de 20 bits, com o formato que se ilustra na a Figura 19.20. Utilizando a codicaao de estados da Tabela 19.4, o contedo da ROM para c u esta mquina de estados , com uma arquitectura com endereamento expl a e c cito, a que se indica na Tabela 19.5. Por exemplo, a primeira linha, com endereo 0 e com c (Q3, Q2, Q1, Q0) = (0, 0, 0, 0) , corresponde ao estado E0, de acordo com a codicaao de estados da Tabela 19.4. c Ora, neste estado testa-se a varivel de entrada F U LL, que foi ligada ` entrada a a 0 do MUX1 do diagrama de blocos da Figura 19.19. Segue-se que (T 2, T 1, T 0) = (0, 0, 0) nesta linha da ROM. Se F U LL = 1 deve escolher-se o estado seguinte 1 (isto , ES1), que se encontra e codicado nos bits D16 a D13 da palavra da ROM com as designaoes N Q31 c a N Q01, respectivamente. Nesta situao (com F U LL = 1), vai-se do estado ca actual E0 para o estado seguinte R, de acordo com o uxograma da Figura 19.19. Ora o estado R foi codicado com (Q3, Q2, Q1, Q0) = (1, 1, 0, 1) ,

CAP ITULO 19. MAQUINAS DE ESTADOS

Tabela 19.5: Tabela de estados lgica com o contedo da ROM a programar para a mquina de estados das Figuras 19.17 e 19.18, quando se o u a utiliza uma estrutura de controlo com endereamento expl c cito
Teste Q3 Q2 Q1 Q0 Estado E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 P Q R A3 A2 A1 A0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 T2 T1 T0 ES1 NQ31 NQ21 NQ11 NQ01 D16 1 0 0 0 0 0 0 1 1 1 1 0 0 0 D15 1 0 0 0 1 1 1 0 0 0 0 1 0 1 D14 0 0 1 1 0 0 1 0 0 1 1 1 0 1 D13 1 1 1 1 1 1 0 0 0 0 0 0 1 0 ES0 NQ30 NQ20 NQ10 NQ00 D12 1 0 0 0 0 0 0 0 1 1 0 1 0 0 D11 0 0 0 1 1 0 1 1 0 0 0 1 0 0 D10 1 1 1 0 0 0 1 1 0 0 0 0 0 0 D9 1 0 0 0 0 0 1 1 1 1 0 0 0 0 Sa das actuais CP.DOWN CP.UP S4 S3 S2 S1 C3 C2 C1 D8 0 0 0 0 0 0 0 0 0 0 1 0 0 0 D7 0 0 0 0 0 1 0 0 0 0 0 0 0 0 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0

D19 D18 D17 0 0 0 0 1 1 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0

380

19.3. IMPLEMENTACAO COM ROMS


ROM D0 D1 D2 D3 D4 D5 D6 D7 D8 NQ00 NQ10 NQ20 NQ30 NQ01 NQ11 NQ21 NQ31 H H H H H H H H MUX2 NQ0 H NQ1 H NQ2 H NQ3 H 1

381

C1 H C2 H C3 H S1 H S2 H S3 H S4 H CP.UP H CP.DOWN H

NQ0 H NQ1 H NQ2 H NQ3 H CLK H

REG

Q0 H Q1 H Q2 H Q3 H

A0 A1 A2 A3

D9 D10 D11 D12 D13 D14 D15 D16

D17 T0 H D18 T1 H D19 T2 H

MUX1 0 1 2 3 4 5

Figura 19.19: Diagrama de blocos da mquina de estados das Figuras 19.17 e a 19.18, com controlo por ROM com endereamento expl c cito

19

18

17

16

15

14

13

12

11

10

FULL D1 D2 D3 D4 D5
7 6 5 4 3 2

H H H H H H

T 2 T 1 T 0 N Q31 N Q21 N Q11 N Q01 N Q30 N Q20 N Q10 N Q00 CP.DOW N CP.U P

S4 S3 S2 S1 C3 C2 C1

Teste

ES1

ES0

Sa das actuais

Figura 19.20: Formato das palavras num controlo por ROM com endereamento c impl cito para a mquina de estados das Figuras 19.17 e 19.18 a

pelo que, nesta linha da ROM, o campo ES1 vem preenchido com essa codicaao. Quanto `s sa c a das actuais da mquina de estados, cam todas desactia vadas no estado E0. Se, pelo contrrio, F U LL = 0, deve escolher-se o estado seguinte 0 (isto , a e ES0), que se encontra codicado nos bits D12 a D9 da palavra da ROM com as designaoes N Q30 a N Q00, respectivamente. Neste caso vai-se para o estado c

382 seguinte P , que foi codicado com

CAP ITULO 19. MAQUINAS DE ESTADOS

(Q3, Q2, Q1, Q0) = (1, 0, 1, 1) , continuando a desactivar-se todas as sa das no estado E0. De forma semelhante pod amos preencher as restantes linhas com a programaao c da ROM.

19.3.3

Controlo por ROM com endereamento impl c cito

Endereamento c impl cito

Uma variante da estrutura anterior usa implicitamente um dos dois endereos de c estado seguinte, permitindo reduzir ainda mais as dimenses da ROM. Por essa o razo, este tipo de controlo designa-se por controlo por ROM com endereamento a c impl cito. Nessa estrutura, substitui-se o registo por um contador com carregamento em paralelo (Figura 19.21), e rearruma-se o uxograma para que, de cada estado actual, se possa evoluir para o estado seguinte de contagem, ou ento saltar para a um outro estado qualquer, no colocado imediatamente a seguir em termos de a contagem.
ROM CTR CLK H [LOAD] A0 A1 N vel Teste
=1

D0 D1

Sa das actuais

MUX Ap-1 Entradas actuais Estado actual Dn-1 Estado seguinte H

LOAD H

Figura 19.21: Diagrama de blocos de uma mquina de estados com controlo por a ROM com endereamento impl c cito Agora no preciso ter dois campos de estado seguinte na ROM, como acontecia a e com o endereamento expl c cito, e a poupana em matria de nmero total de c e u palavras provm desse facto. De notar que a poupana na dimenso de cada e c e a palavra, e no no nmero de palavras (que at pode ser ligeiramente superior a u e ao do controlo com endereamento expl c cito). Usando esta estrutura, h trs hipteses a partir de cada estado actual: a e o

19.3. IMPLEMENTACAO COM ROMS


Contagem

383

ou se continua a contar para o estado seguinte (contagem); ou se salta para um estado que no o estado seguinte de contagem, cona e soante o valor de uma varivel de entrada (transio condicionada ou salto a ca condicionado); para isso, existe um campo Teste que seleciona a varivel de a entrada, e um campo N onde se decide se o salto se deve efectuar quando vel ela tiver o valor 1 ou o valor 0; ou se salta incondicionalmente (independentemente do valor de qualquer varivel de entrada) para um estado que no o estado seguinte de cona a e ca tagem (transio ou salto incondicional), quando o estado seguinte corresponde obrigatoriamente a um salto na contagem; nesse caso selecciona-se a entrada 1 do MUX, e coloca-se o campo N vel a 1 (isso signica, de acordo com a mnemnica anterior, salta se 1 fr 1, o que , obviamente, verdadeiro). o o e Pode-se resumir a funcionalidade dos campos Teste e N vel com a seguinte mnemnica: salta-se se o valor da varivel de entrada seleccionada pelo campo o a Teste fr igual ao do campo Nvel. o O XOR com n veis de actividade diferentes nas entradas assegura essa funcionalidade, fazendo o carregamento em paralelo do contador em todas as situaes co de salto, e deixando contar no caso contrrio (relembrar que um XOR tem a a sa activa se uma e apenas uma das suas entradas estiver activa). da No exemplo do parque de estacionamento temos ainda 4 linhas de endereo, c cada uma correspondendo a um estado actual (tal como sucedia com o controlo por ROM com endereamento expl c cito), mas as palavras agora vo ter menos a bits: 9 bits de sa da; 1 bit de n vel; 3 bits de teste; e 4 bits de estado seguinte, num total de 17 bits por palavra. Cada palavra possui, ento, o formato que se a ilustra na Figura 19.22.
16 N Q3 15 N Q2 14 N Q1 13 N Q0 12 T2 11 T1 10 T0 9 N 8 7 6 5 4 3 2 1 0

Transiao condicionada c (salto condicionado)

Transiao (salto) c incondicional

CP.DOW N CP.U P

S4 S3 S2 S1 C3 C2 C1

ES

Teste

N vel

Sa das actuais

Figura 19.22: Formato das palavras num controlo por ROM com endereamento c impl cito para a mquina de estados que controla o acesso ao parque de estaa cionamento da Figura 19.2 Com podermos usar esta estrutura de controlo, agora temos que ter cuidado com a codicaao das variveis de estado, ao contrrio do que sucedia com as c a a arquitecturas anteriores, em que as codicaoes eram arbitrrias. c a

384

CAP ITULO 19. MAQUINAS DE ESTADOS

Com efeito, agora temos de garantir que o estado seguinte a cada estado actual possui, tanto quanto poss vel, a conguraao que se segue ` do estado actual, c a ou ento codicamo-lo com uma conguraao que corresponde a um salto. a c Ora, se examinarmos o uxograma das Figuras 19.17 e 19.18, constatamos que esse tipo de codicaoes simples de atribuir aos diversos estados, com excepao c e c dos estados E5 e E10. Com efeito, E5 evolui para E5 ou para E0, e E10 evolui para E10 ou para E0, isto , E5 e E10 evoluem, cada um, para um de dois e estados em que nenhum deles o estado seguinte na sequncia natural de e e contagem Da que tenhamos que fazer uma nova alteraao no uxograma. H que criar c a dois novos estados seguintes a E5 e a E10 que evoluam depois com saltos incondicionais para o estado inicial, E0. Para tanto, desenhamos nas Figuras 19.23 e 19.24 o novo uxograma para a mquina de estados que controla o acesso ao parque de estacionamento, a necessrio para este tipo de controlo. a

1 E0 Espera

L P

FULL H

H R

D4 H H H

D4 H L Q

D1 H H 2

Figura 19.23: Parte inicial do uxograma da mquina de estados que controla a o acesso ao parque de estacionamento, quando se utiliza um controlo por ROM com endereamento impl c cito Reparemos que a Figura 19.23, com o in do uxograma, igual ` Figura 19.17 cio e a porque esta parte do uxograma no precisa de ser alterada. a Por outro lado, a Figura 19.24 semelhante ` Figura 19.18, excepto que possui e a os dois estados suplementares, S e T , que se acabaram de referir.

19.3. IMPLEMENTACAO COM ROMS

385

E1

Entrada C1 H, S1 H

E6

Sa da C3 H, S4 H

D1 H L

D4 H L E7

E2 S3 H

C3 H, S4 H

D3 H H

D5 H H E8

E3 C3 H, S3 H

C3 H

D3 H L

D5 H L E9

E4 C3 H

S2 H

D5 H H

D2 H H E10 C2 H, S2 H CP.DOWN H

E5 C3 H, CP.UP H

D5 H L T

D2 H L

Figura 19.24: Continuaao do uxograma da Figura 19.23 c A nova codicaao de variveis de estado ser, ento, a que se indica na Tabec a a a la 19.6. Repare-se que as codicaes dos estados S e T foram colocadas na sequncia co e de E5 e de E10, respectivamente. As variveis de entrada vo ser seleccionadas da mesma forma que no exemplo a a anterior, com excepao do facto de se incluir o n H na ultima entrada (que c vel corresponde ao salto incondicional), seleccionvel com o valor 111 no campo de a

386

CAP ITULO 19. MAQUINAS DE ESTADOS

Tabela 19.6: Tabela de codicaao de estados para a mquina de estados das c a Figuras 19.23 e 19.24, com controlo por ROM com endereamento impl c cito
Estado E0 P Q E1 E2 E3 E4 E5 S R E6 E7 E8 E9 E10 T Q3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 Q2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 Q1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 Q0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

teste. Obtm-se, assim, o diagrama de blocos da Figura 19.25 para a mquina de e a estados que opera o controlo de acessos ao parque de estacionamento, quando se usa um controlo por ROM com endereamento impl c cito. Neste caso, a tabela de verdade lgica para a ROM ca preenchida como se o indica na Tabela 19.7. Notemos como, em cada uma das linhas da Tabela 19.7, vem sempre identicada uma situaao de salto. A progresso para o estado seguinte de contagem c a e efectuada pela desactivaao da linha LOAD H e corresponde a uma situaao c c em que no se verica a condiao de salto descrita nessa linha. a c Por exemplo, do estado actual E0 salta-se para o estado seguinte R se F U LL = = 1. No caso contrrio, prossegue-se com a contagem para o estado seguinte a a E0, isto , P (que no vem identicado na tabela, por no ser necessrio). Esta e a a a uma situao de salto condicionado. e ca Pelo contrrio, do estado actual S salta-se sempre para o estado seguinte E0, a independentemente dos valores das variveis de entrada. Neste caso no h a a a transio para um estado seguinte de contagem, pelo que estamos na presena ca c de um salto incondicional.

19.3. IMPLEMENTACAO COM ROMS

Tabela 19.7: Tabela de estados lgica com o contedo da ROM a programar para a mquina de estados das Figuras 19.23 e 19.24, quando se o u a utiliza uma estrutura de controlo por ROM com endereamento impl c cito
ES Q3 Q2 Q1 Q0 Estado E0 P Q E1 E2 E3 E4 E5 S R E6 E7 E8 E9 E10 T A3 A2 A1 A0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 NQ3 NQ2 NQ1 NQ0 D16 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 D15 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 D14 D13 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 T2 Teste T1 T0 N vel N D9 0 1 0 1 0 1 0 1 1 0 1 1 1 0 1 1 Sa das actuais CP.DOWN CP.UP S4 S3 S2 S1 C3 C2 C1 D8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 D7 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0

D12 D11 D10 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1

387

388

CAP ITULO 19. MAQUINAS DE ESTADOS

ROM D0 D1 D2 D3 D4 D5 D6 D7 D8 N H C1 H C2 H C3 H S1 H S2 H S3 H S4 H CP.UP H CP.DOWN H

CTR CLK H [LOAD] NQ0 H NQ1 H NQ2 H NQ3 H Q0 H Q1 H Q2 H Q3 H A0 A1 A2 A3

D9

=1

T0 H D10 T1 H D11 T2 H D12 D13 D14 D15 D16 NQ0 H

MUX 0 1 2 3 4 5 6 7

H H H H H H FULL D1 D2 D3 D4 D5 LOAD H

NQ1 H NQ2 H NQ3 H

Figura 19.25: Diagrama de blocos da mquina de estados das Figuras 19.23 e a 19.24, com controlo por ROM com endereamento impl c cito

19.4

Exerc cios

Nota: os exerc cios identicados com um asterisco () esto resolvidos em a SD:ER. 19.1 Pretende-se desenhar uma mquina de estados que implemente um cona versor pararelo-srie para nmeros com 8 bits. Cada nmero identicado e u u e por N U M 7 a N U M 0, sendo N U M 7 o bit mais signicativo e N U M 0 o menos signicativo. A mquina deve possuir uma entrada ST ART H a que, quando activada, desencadeia o processo de converso, e uma sa a da DON E H que, quando activada, indica o m do processo. Para facilitar o processo de converso, o circuito a controlar dever possuir: a a (i) um registo PISO com 8 bits do tipo indicado na Figura 19.26; e (ii) um contador (` sua escolha) que contabilize o nmero de deslocamentos a u efectuados. O registo e o contador devem possuir entradas de relgio que o so o complemento da entrada de relgio do circuito de controlo. a o (a) Desenhar um diagrama de blocos que contenha o circuito de controlo e o circuito controlado, identicando claramente as entradas e as sa das

19.4. EXERC ICIOS


SRG8 EN.SHIFT H SHIFT H/LOAD L CLOCK H G4 M2 M3 C1/3,4 1,2D

389

Figura 19.26: Registo de deslocamento do tipo PISO utilizado no Exerc 19.1 cio de cada um deles. (b) Desenhar o uxograma da ASM, justicando todas as opoes que toc mou, nomeadamente as que resultam de se pretender que a entrada de relgio do registo e do contador sejam o complemento da entrada de relgio o o do circuito de controlo. 19.2 Uma soluo alternativa ` do Exerc anterior pe o circuito de controlo ca a cio o a gerar os impulsos de relgio para o registo de deslocamento e para o o contador. Redesenhe o uxograma da mquina de estado nestas condioes. a c 19.3 Para simplicar o circuito controlado do Exerc cio 19.1, foi decidido remover o contador de deslocamentos. Redesenhe o uxograma da ASM para este caso. 19.4 Repita os trs exerc e cios anteriores, mas agora para um conversor sriee paralelo. Utilize o registo SIPO de 8 bits que entender. 19.5 No Exerc cio 8.3 desenhou-se um circuito complementador para 2 puramente combinatrio. Agora pretende-se desenhar uma soluo sequencial o ca s ncrona para o mesmo problema, sob a forma de um circuito de controlo e de um circuito controlado como o da Figura 19.27. O nmero de 8 bits a complementar designado por DAT 7 a DAT 0, sendo u e DAT 7 o bit mais signicativo e DAT 0 o menos signicativo. Esse nmero u deve vir inicialmente carregado em paralelo num registo de deslocamento do tipo PISO, e o seu complemento para 2 deve ser obtido em srie na e c sa OU T H, comeando pelo bit de menor peso. da A mquina de estados que controla o circuito da Figura 19.27 deve possuir a uma entrada ST ART H que, quando activada, desencadeia o processo de obtenao do complemento para 2 do nmero, e uma sa DON E H que, c u da quando activada, indica que a converso terminou. a Desenhar: (i) um diagrama de blocos para a totalidade do circuito; (ii) o uxograma da ASM; e (iii) um diagrama temporal que explicite as opoes c

390

CAP ITULO 19. MAQUINAS DE ESTADOS


74x161 CTRDIV16 H SRG8 EN.SHIFT H G4 M2 M3 C1/3,4 DAT7 H DAT6 H DAT5 H DAT4 H DAT3 H DAT2 H DAT1 H DAT0 H
=1

H H

SHIFT H/LOAD L
1

CT=0 M1 M2 3CT=15 G3 G4 C5/2,3,4+ 1,5D [1] [2]


&

CLK H

SHIFT.7 H

1,2D

[4] [8]

BIT.ACTUAL H

OUT H S R INVRT H

SET.INVRT H RESET.INVRT H

Figura 19.27: Circuito controlado utilizado no Exerc 19.5 cio que tomou e que mostre a geraao de, pelo menos, dois bits na sa c da OU T H. 19.6 Repita o exerc anterior para o caso em que os impulsos de relgio para cio o o circuito controlado so gerados no circuito de controlo. a 19.7 Repita o exerc cio anterior para o caso em que os bits que constiturm o complemento para 2 do nmero entrado so reinseridos no registo de u a deslocamento por forma a que, no m do processo de converso, este a contenha o complemento para 2 do nmero inicial. u 19.8 Para simplicar o circuito controlado do exerc cio 19.6, eliminaram-se o contador de deslocamentos e o ip-op que fora (ou no) a complec a mentaao do bit proveniente do registo de deslocamento. Obteve-se, asc sim, o circuito da Figura 19.28. Redesenhar o uxograma da ASM de controlo.

19.4. EXERC ICIOS

391

SRG8 EN.SHIFT H SHIFT H/LOAD L CLOCK H DAT7 H DAT6 H DAT5 H DAT4 H DAT3 H DAT2 H DAT1 H DAT0 H COMP H
=1

G4 M2 M3 C1/3,4 1,2D

BIT.ACTUAL H

OUT H

Figura 19.28: Circuito controlado utilizado no Exerc 19.8 cio

392

CAP ITULO 19. MAQUINAS DE ESTADOS

Indice Remissivo
1-em-10, ver Cdigo 1-em-10 o 1-em-n, ver Cdigos 1-em-n o 74HC4024, ver Contador ass ncrono 74HC4024 74HCT244, ver Buer tri-state unidireccional 74HCT244 74HCT393, ver Contador ass ncrono 74HCT393 74LS161A, ver Contador s ncrono 74LS161A 74LS163A, ver Contador s ncrono 74LS163A 74LS192, ver Contador s ncrono 74LS192 74LS293, ver Contador ass ncrono 74LS293 74x42, ver Descodicador 74x42 74x138, ver Descodicador 74x138, ver Demultiplexer 74x138 74x139, ver Descodicador 74x139 74x151, ver Multiplexer 74x151 74x153, ver Multiplexer 74x153 74x155, ver Demultiplexer duplo 74x155 74x157, ver Multiplexer 74x157 74x169, ver Contador s ncrono 74x169 74x194, ver Registo de deslocamento universal 74x194 74x245, ver Buer tri-state 74x245 74x251, ver Multiplexer 74x251 74x283, ver Somador 74x283 (A), ver Dependncia de Endereo e c Actuador, 126 Adiao, 1215 c BCD, 35 transporte na , ver Transporte na adio ca Aditivo, 15, 191 Algarismo, ver D gito Algebra de Boole binria, 4152 a Algorithmic State Machine, ver Mquina a de estados Algoritmo da adio, 12 ca da subtracao, 15 c de Karnaugh, 87 Anlise a dos circuitos digitais, 42 dos circuitos sequenciais s ncronos, 283287 Andar, 263 And-Or Invert, 67 AOI, ver And-Or Invert Aritmtica binria, 1219 e a Arredondamentos, 1012 ASM, ver Mquina de estados a Axioma das comutatividades, 48 das distributividades, 48 das identidades, 48 do complemento, 48 Banco de registos, 364 Barramento, 270 de dados, 370 de uma RAM, 342 de uma ROM, 331 de endereos, 370 c de uma RAM, 342 de uma ROM, 331 de entrada de uma RAM, 342 de sa da de uma RAM, 342 Base 10, ver Base do sistema decimal b, ver Base de um sistema de numeraao c 2, ver Base do sistema binrio a 12, ver Base do sistema duodecimal 16, ver Base do sistema hexadecimal 60, ver Base do sistema sexagesimal arbitrria, 3, 5 a complexa, 3 de um sistema de numeraao, 3 c do sistema binrio, 3, 5 a do sistema decimal, 3 do sistema duodecimal, 3 do sistema hexadecimal, 3, 7 do sistema sexagesimal, 3 inteira negativa, 3 irracional, 3

393

394
no natural, 3 a natural, 3 racional, 3 real, 3 Bit, 5 de sinal, 19, 21 mais signicativo, 21 Bloco de controlo comum, 239, 264 Buer de entrada, 347 de sa da, 347 tri-state 74x245, 275 bidireccional, 275 unidireccional, 274 unidireccional 74HCT244, 273 Buers, 127128 tri-state, 272275 (C), ver Dependncia de Controlo e Campos, 370, 373 CBN, ver Cdigo binrio natural o a CBR, ver Cdigo binrio reectido o a Clulas e de uma ROM, 331 Central Processing Unit, ver Unidade Central de Processamento Chip Select, 336 CI, ver Circuito integrado Ciclo de escrita, 348 controlado pelo CS, 349 controlado pelo W RIT E, 348 de leitura, 348 Circuito combinatrio, 145, 199, 245 o controlado, 363 de controlo, 363 de dados, ver Circuito controlado de refrescamento, 342 integrado, 98 digital, 98 sequencial, 145, 199, 233, 240 sequencial s ncrono estado actual de um , ver Estado actual estado de um , ver Estado de um circuito s ncrono estado inicial de um , ver Estado inicial estado presente de um , ver Estado actual estado seguinte de um , ver Estado seguinte funao de memria de um , c o ver Funao de memria c o

INDICE REMISSIVO
lgica de sa num , ver Lgica o da o de sa da lgica do estado seguinte num o , ver Lgica do estado seguinte o Circuitos aritmticos, 187196 e de controlo e controlados, 363366 digitais, 41, 43 anlise dos , ver Anlise dos a a circuitos digitais s ntese dos , ver S ntese dos circuitos digitais integrados CMOS, ver Fam CMOS lia ECL, ver Tecnologia ECL GaAs, ver Tecnologia GaAs IIL, ver Tecnologia IIL nMOS, ver Tecnologia nMOS pMOS, ver Tecnologia pMOS TTL, ver Fam TTL lia s ncronos e ass ncronos, 281282 sequenciais ass ncronos, 282 s ncronos, 282 sequenciais s ncronos, 281326 anlise dos , ver Anlise dos a a circuitos sequenciais s ncronos codicaao dos estados nos , c ver Codicaao dos estados c concepao dos diagramas de esc tados dos , 289295 diagrama de estado dos , ver Diagrama de estados e uxogramas, 305313 equaoes de excitaao dos ipc c -ops nos , ver Equaoes de c excitaao dos ip-ops c equaoes de sa nos , ver Equaoes c da c de sa da escolha dos ip-ops nos , ver Escolha dos ip-ops esquemas elctricos dos , 296 e logigramas dos , 296 modelos de Mealy e de Moore, 287288 modelos dos , 283 s ntese clssica dos , ver S a ntese clssica a s ntese com ip-ops D, ver S ntese clssica com ip-ops D a s ntese com ip-ops JK, ver S ntese clssica com ip-ops JK a s ntese com um ip-op por estado, ver S ntese com um ip-op por estado

INDICE REMISSIVO
s ntese dos , ver S ntese dos circuitos sequenciais s ncronos tabela de estados dos , ver Tabela de estados tabela de excitaoes dos , ver c Tabela de excitaes de um circo cuito s ncrono tabela de sa das dos , ver Tabela de sa das tabela de transioes dos , ver c Tabela de transies co variveis de estado dos , ver a Variveis de estado a Codicaao c dos estados, 284, 296 Codicador, 163 de prioridades, 163 Codicadores, 163 Cdigo o 1-em-10, 36 D + 3, ver Cdigo Excesso de 3 o ASCII, 3738 BCD, 3335, 196 adiao no , ver Adiao BCD c c algoritmo de correco no , ver ca Correco da adiao no cdigo ca c o BCD representao dos nmeros no ca u , 3335 transporte da adiao no , ver c Transporte da adiao no cdigo c o BCD binrio, 29 a binrio natural (CBN), 3031, 33 a 35, 39, 233 comprimento de uma palavra do , 30, 33, 34 operaoes aritmticas no , 35 c e palavra do , 30, 33, 34 binrio reectido (CBR), 3033 a comprimento de uma palavra de um , 33 palavra de um , 31, 33 palavras adjacentes de um , ver Palavras adjacentes conceito de , 29 Excesso de 3, 151, 196, 261 ISO-8859-1, 38 ISO/IEC 10646 UCS-2, ver Cdigo o UCS-2 Isolatin-1, ver Cdigo ISO-8859-1 o numrico e comprimento de uma palavra de um , ver Comprimento de uma palavra

395
palavra de um , ver Palavra redundante, 31 reectido, 39 regular, 30 UCS-2, 38 UNICODE, 38 valncia de um , ver Valncia e e Cdigos, 2939 o 1-em-n, 36 alfanumricos, 3738 e decimais-binrios, 34 a m-em-n, 36 numricos, 2931 e Comentrio, 251 a Comisso Electrotcnica Internacional, a e 107 Complementao, 42 ca de uma funao, ver Complementao c ca de uma varivel, ver Complementao a ca Complemento, ver Complementao ca Complemento para 2 adiao em , 22 c de um nmero, 20, 192 u notaao de , ver Notaao de comc c plemento para 2 overow na adio em , ver ca Overow na adiao em comc plemento para 2 overow na subtraco em , ver ca Overow na subtraco em ca complemento para 2 representao de um nmero em ca u , 21 subtraco em , 24 ca Comprimento de uma palavra, 29, 233 Comutao ca nos ancos ascendentes, 218, 225 nos ancos descendentes, 218 Conjunto completo, 58, 65 {AND,OR,NOT}, 67 universal, ver Conjunto completo Construao do CBR a partir do CBN, c 33 Consumo de corrente de uma porta TTL, 99 Contador binrio a de 3 bits, 233 de Programa, 364 decimal, ver Divisor de frequncia e por 10 em anel, 279 auto-corrector, 279

396
estados de contagem de um , ver Estados de contagem mdulo 8, 235 o mdulo 6 o tabela de excitaoes de um c , ver Tabela de excitaoes de c um contador mdulo 6 o s ncrono mdulo 6 o tabela de transies de um co , ver Tabela de transies de co um contador s ncrono mdulo o 6 sequncia de contagem de um e , ver Sequncia de estados de e contagem sequncia de estados de um , ver e Sequncia de estados de cone tagem Contador ass ncrono, 235 74HC4024, 255 74HCT393, 255 74LS293, 238 linha de relgio de um , ver Linha o de relgio de um contador aso s ncrono Contador s ncrono 74LS161A, 249, 261 modo de carregamento em paralelo de um , ver Modo de carregamento em paralelo do contador 74LS161A modo de contagem de um , ver Modo de contagem do contador 74LS161A modo de Reset de um , ver Modo de Reset do contador 74LS161A modo M1 de um , ver Modo de carregamento em paralelo do contador 74LS161A modo M2 de um , ver Modo de contagem do contador 74LS161A modos de funcionamento do , ver Modos de funcionamento do contador 74LS161A pesos dos ip-ops no , ver Pesos dos ip-ops qualicador de entrada 1,5D num , ver Qualicador de entrada 1,5D qualicador de entrada 2,3,4+ num , ver Qualicador de entrada 2,3,4+ qualicador de entrada C5 num , ver Qualicador de entrada

INDICE REMISSIVO
C5 qualicador de entrada CT=0 num , ver Qualicador de entrada CT=0 qualicadores de entrada G3 e G4 num , ver Qualicador de entrada G3 e G4 valor inicial num , 250 74LS163A, 260 74LS192, 257 74x169, 261 entradas de carregamento em paralelo de um , ver Entradas de carregamento em paralelo linha de relgio de um , ver Linha o de relgio de um contador s o ncrono modo de carregamento em paralelo de um , ver Modo de carregamento em paralelo modo de contagem ascendente de um , ver Modo de contagem ascendente modo de manutenao do estado de c um , ver Modo de manutenao c do estado modo de Reset de um , ver Modo de Reset modos de funcionamento de um , ver Modos de funcionamento Contadores, 233261 ass ncronos, 233240 com mdulos arbitrrios, 238 o a diagramas temporais dos , 237 238 estados estveis nos , ver Esa tados estveis a estados instveis nos , ver Esa tados instveis a estados transitrios nos , ver o Estados instveis a s mbolos IEC dos , 238240 interligaao de , ver Interligao c ca de contadores s mbolos dos , 249251 s ncronos, 240249 ascendentes/descendentes, ver Contadores s ncronos bidireccionais bidireccionais, 246 com carregamento em paralelo, 247249 com Enable, 243 com entrada de Modo, ver Contadores s ncronos com Enable com mdulo qualquer, 243246 o

INDICE REMISSIVO
com vrios modos de funcionaa mento, 246 concepao heur c stica dos , 240 242 up/down, ver Contadores s ncronos bidireccionais Contagem, 383 Contexto algbrico, 112 e f sico, 112 Controlo microprogramado, ver Microprogramao ca por ROM, 367386 com endereamento expl c cito, ver Endereamento expl c cito com endereamento impl c cito, ver Endereamento impl c cito estrutura bsica de , 369373 a Convergncia, 304, 313 e Converso a da base 10 para as bases 2 e 16, 79 da base 16 para a base 2, 910 da base 2 para a base 16, 9 entre bases, 712 Conversor de polaridade, 119 Correco ca da adio no cdigo BCD, 35 ca o de erros, 31 CPU, ver Unidade Central de Processamento, ver Unidade Central de Processamento CS tempo de duraao do , ver Tempo c de durao do CS ca D + 3, ver Cdigo Excesso de 3 o Dcada, ver Divisor de frequncia por e e 10 Demultiplexer, 175 74x138, 178 74x155, 178 analogia mecnica, 175 a entrada de dados de um , ver Entrada de dados de um demultiplexer entradas de controlo de um , ver Entradas de selecao de um c demultiplexer entradas de selecao de um , ver c Entradas de selecao de um c demultiplexer sa das de um , ver Sa das de um demultiplexer Demultiplexers, 175179 Dependncia e And (G), 170, 239, 250

397
de Controlo (C), 207, 221, 250 de Enable (EN), 160 de Endereo (A), 336 c Reset (R), 205 Set (S), 205 Descodicaao c coincidente, 334 Descodicador, 157 74x42, 166 74x138, 165 74x139, 183 BCD, 159 binrio, 157 a pesos das entradas num , 158 sa activa num , 158 da de coluna, 334 de endereos, 336 c de linha, 334 Descodicadores, 157163 Detecao de erros, 31 c Detector da sequncia 0101, 289 e Diagrama de estados, 279, 284, 295, 363, 366 temporal, 106, 199, 201, 207, 211, 212, 214, 221, 225, 228, 229 Diagramas de estados concepao dos , 289295 c modelo de Mealy, 293295 modelo de Moore, 290293 D gito, 3 Divises sucessivas, ver Mtodo das dio e vises sucessivas o Divisor de frequncia, 239, 249 e por 10, 253, 257, 258 por 2, 239 por 8, 239 DRAM, ver Memrias RAM dinmicas o a Dual in-line package, 104 E2 PROM, ver EEPROM EEPROM, 330 Electrically Erasable PROM, ver EEPROM (EN), ver Dependncia de Enable e Endereamento c expl cito, 373382 impl cito, 382386 contagem no , ver Contagem salto condicionado no , ver Transio ca condicionada salto incondicional no , ver Transio ca incondicional transiao condicionada no , ver c Transio condicionada ca

398
transiao incondicional no , ver c Transio incondicional ca Endereo, 331 c tempo de acesso a partir do , ver Tempo de acesso a partir do endereo c Entrada activa a H, 113 a L, 113 ass ncrona de Reset (Clear), 222, 227 de Set (Preset), 222, 227 de dados de um demultiplexer, 176 de Enable, 171 de Modo num registo, 265 de relgio, 217, 233, 236, 240 o Entradas ass ncronas num ip-op, 222 ass ncronas num latch SR, 208 de carregamento em paralelo, 248 de controlo de um demultiplexer, ver Entradas de selecao de um demultiplexer c de um multiplexer, ver Entradas de selecao de um multiplexer c de dados de um multiplexer, 169 de selecao c de um demultiplexer, 175 de um multiplexer, 169 directas num ip-op, ver Entradas ass ncronas num ip-op directas num latch SR, ver Entradas ass ncronas num latch SR s ncronas, 222 EPROM, 330 Equaoes c de excitaao, 244, 284 c de excitaao dos ip-ops, 296 c de sa da, 284, 296 Equivalente decimal, 4, 5, 7, 30, 31, 34 Erasable PROM, ver EPROM Escolha dos ip-ops, 296 Escrita ciclo de , ver Ciclo de escrita na RAM, 342 numa palavra da RAM, ver Escrita na RAM numa RAM esttica, 348349 a Espao c de endereamento, 336 c Esquema elctrico, 43, 107, 120 e

INDICE REMISSIVO
Estado actual, 244, 283 de um circuito s ncrono, 283 inicial, 207, 290 presente, ver Estado actual seguinte, 244, 283 Estados de contagem, 233 estveis, 237, 251 a instveis, 237, 251252 a transitrios, ver Estados instveis o a Estrutura de uma RAM esttica, 344348 a de uma ROM, 331332 em rvore, 174 a Excesso de 3, ver Cdigo Excesso de 3 o Expanso a de ROMs, 339341 Expresso a booleana, 43, 53 lgica, ver Expresso booleana o a Expresses o m nimas, 70 simplicadas, 69 Fall time, ver Tempo de decrescimento Fam lia CMOS, 99, 103 tenses de alimentaao da , 103 o c TTL, 98, 99103 sa das totem-pole na , 101103 sa das tri-state na , 101103 sub-fam lias da , ver Sub-fam lias TTL temperaturas de funcionamento da , 99 tenses de alimentao da , 99 o ca Fan-out, 104 Flanco, 96 activo, 233, 240242, 250 ascendente, 97, 218, 235, 248, 250 de comutao, 219, 225, ver Flanco ca activo, 236, 248 de relgio, 235, 240, 248 o descendente, 96, 218, 233, 235 Flash ROMs, ver Memrias Flash o Flip-op, 217 edge-triggered, 224 74LS76A, 251 com estrutura master-slave, 218 D edge-triggered, 224 funcionamento de um , 224 modo de cpia de um , ver o Modo de cpia de um ip-op o D edge-triggered

INDICE REMISSIVO
modo de manutenao de um , c ver Modo de manutenao de c um ip-op D edge-triggered modos de funcionamento de um , ver Modos de funcionamento de um ip-op D edge-triggered s mbolo IEC de um , 226 tabela de verdade f sica de um , 225 D master-slave, 223 s mbolo IEC de um , 223 entrada ass ncrona de Reset, 222, 227 entrada ass ncrona de Set, 222, 227 entrada de relgio de um , ver o Entrada de relgio o entradas ass ncronas num , ver Entradas ass ncronas num ip-op entradas directas num , ver Entradas ass ncronas num ip-op entradas s ncronas num , 222 anco de comutao de um , 218 ca hold time de um , 228 JK, 233, 235, 244, 248 tabela de excitaoes de um c , ver Tabela de excitaoes de c um ip-op JK JK edge-triggered, 240 modo de comutaao de um , c ver Modo de manutenao de c um ip-op JK edge-triggered modo de manutenao de um c , ver Modo de manutenao de c um ip-op JK edge-triggered modo de Reset de um , ver Modo de Reset de um ip-op JK edge-triggered s mbolo IEC de um , 226 JK master-slave, 219 funcionamento de um , 220 modo de comutaao de um , c ver Modo de manutenao de c um ip-op JK master-slave modo de manutenao de um , c ver Modo de manutenao de c um ip-op JK master-slave modo de Reset de um , ver Modo de Reset de um ip-op JK master-slave modo de Set de um , ver Modo de Set de um ip-op JK master-slave s mbolo IEC de um , 221

399
tabela de verdade f sica de um , 219 que comuta nos ancos ascendentes, 218, 225 que comuta nos ancos descendentes, 218 set-up time de um , 228 SR master-slave, 218 funcionamento de um , 217 modo de manutenao de um , c ver Modo de manutenao de c um ip-op SR master-slave modo de Reset de um , ver Modo de Reset de um ip-op SR master-slave modo de Set de um , ver Modo de Set de um ip-op SR master-slave modos de funcionamento de um , ver Modos de funcionamento de um ip-op SR master-slave tabela de verdade f sica de um , 218 T, 235236 T edge-triggered modo de comutaao de um , c ver Modo de manutenao de c um ip-op T edge-triggered modo de manutenao de um , c ver Modo de manutenao de c um ip-op T edge-triggered modos de funcionamento de um , ver Modos de funcionamento de um ip-op T edge-triggered s mbolo IEC de um , 236 tabela de verdade f sica de um , 229 tempo de atraso de um , ver Tempo de propagao de um ip-op ca tempo de manuteno de um , ca 228 tempo de preparaao de um , 228 c tempo de propagaao de um , c ver Tempo de propagaao de c um ip-op tempo de propagao mximo de ca a um , ver Tempo de propagao ca mximo a tempo de propagao t ca pico de um , ver Tempo de propagaao c t pico Flip-ops, 217232 Edge-triggered, 224227 Master-slave, 217224 temporizaes nos , 227228 co

400
Fluxograma, 305 sa condicionada num , ver Sa da da de Mealy sa de Mealy num , ver Sa da da de Mealy sa de Moore num , ver Sa da da de Moore sa incondicional num , ver Sa da da de Moore Fluxogramas e mquinas de estados, 364, 366 a 367 na especicaao das mquinas de c a estados, 364 no desenvolvimento das mquinas a de estados, 364 Fork, ver Transio condicionada ca Forma cannica o conjuntiva, 61 disjuntiva, 60 normal conjuntiva, 53, 123 disjuntiva, 53, 122 Funao c activa, 126 activa a H, 126 activa aL , 126 AND com mais de 2 variveis, 47 a de 2 variveis, 45 a booleana simples complementaao de uma , ver c Complementao ca complemento de uma , ver Complementaao c contedo semntico de uma , u a 124 negao de uma , ver Compleca mentaao c tabela de verdade de uma , ver Tabela de verdade tabela de verdade lgica de uma o , ver Tabela de verdade complementaao, 42, 45, 62 c constante 0, 43, 46 constante 1, 43, 46 de memria, 283 o de selecao de uma entrada, 169 c de selecao de uma sa c da, 175 Equivalncia, 46 e identidade de 1 varivel, 42 a de 2 variveis, 46 a implicaao, 76 c

INDICE REMISSIVO
NAND com mais de 2 variveis, 47 a de 2 variveis, 46 a negao, ver Funao complementaao ca c c NOR com mais de 2 variveis, 47 a de 2 variveis, 46 a NOT, ver Funao complementao c ca OR com mais de 2 variveis, 47 a de 2 variveis, 46 a OU-exclusivo, 46 produto lgico o de 2 variveis, 62 a soma lgica o de 2 variveis, 62 a Funcionamento de uma MROM, 332334 Funoes c booleanas, 4142 booleanas gerais, 42 booleanas simples, 42 com duas variveis booleanas sima ples, 4446 com mais do que duas variveis a booleanas simples, 47 com uma varivel booleana sima ples, 4244 minimizaao com indiferenas, ver c c Minimizaao com indiferenas c c minimizaao das , ver Minic mizaao das funoes booleanas c c simples minimizaao usando o mtodo de c e Karnaugh, ver Mtodo de Kare naugh minimizaao usando os maxterc mos, ver Minimizaao usando c os maxtermos simplicaao algbrica das , ver c e Simplicaao algbrica c e completamente especicadas, 82 completas, ver Funoes completac mente especicadas contedo semntico das , 124 u a 128 incompletamente especicadas, 82 incompletas, ver Funoes incomplec tamente especicadas lgicas, ver Funoes booleanas o c (G), ver Dependncia And e Gerador de mintermos, 161 H, ver N H vel Hi-Z, ver Sa em alta impedncia da a

INDICE REMISSIVO
Hold time, ver Tempo de manutenao c Implicado, 84 primo, 84 essencial, 85 Implicante, 76 primo, 77 essencial, 78 Implicantes, 7679 primos, 7679 Impulso de relgio, 217, 219, 233, 235, 238, o 240, 244, 250, 251 Indicador de polaridade, 108, 120, 138 Indiferena, 80 c Induao completa, 51 c Interligao de contadores, 252 ca com carregamento em paralelo, 253 Interligao de registos, 270 ca com multiplexers, 270271 utilizando barramentos tri-state, 276 Inversor, ver Porta NOT Inversores, 127128 ISO-8859-1, ver Cdigo ISO-8859-1 o Isolatin-1, ver Cdigo Isolatin-1 o Join, ver Convergncia e L, ver N L vel Latch, 202 ass ncrono, 205 controlado, 205 D controlado, 209 funcionamento transparente de um , 209 modo de cpia de um , ver o Modo de cpia de um latch D o controlado modo de manutenao de um , c ver Modo de manutenao de c um latch D controlado modos de funcionamento de um , ver Modos de funcionamento de um latch D controlado s mbolo IEC de um , 210 estados de um , 202 JK controlado, 213 SR, 202 funcionamento de um , 203 modo de manutenao de um , c ver Modo de manutenao de c um latch SR modo de Reset de um , ver Modo de Reset de um latch SR

401
modo de Set de um , ver Modo de Set de um latch SR modos de funcionamento de um , ver Modos de funcionamento de um latch SR sa das foradas a LL num , 203 c SR controlado, 205 com entradas de Preset e de Clear, 208 diagrama temporal de funcionamento de um , 207 entradas ass ncronas num , ver Entradas ass ncronas num latch SR entradas directas num , ver Entradas ass ncronas num latch SR funcionamento de um , 206 modo de funcionamento de um , ver Modo de funcionamento de um latch SR controlado modo de manutenao de um , c ver Modo de manutenao de c um latch SR controlado modo de Reset de um , ver Modo de Reset de um latch SR controlado modo de Set de um , ver Modo de Set de um latch SR controlado s mbolo IEC de um , 207 sa das foradas a HH num , c 206 SR sincronizado, ver Latch SR controlado S R, 204 funcionamento de um , 204 modo de manutenao de um , c ver Modo de manutenao de c um latch S R modo de Reset de um , ver Modo de Reset de um latch SR modo de Set de um , ver Modo de Set de um latch S R s mbolo IEC de um , 205 sa das foradas a HH num , c 204 SRT, ver Latch SR controlado Latches controlados, 205210 simples, 199205 Leis de De Morgan, 50 Leitura ciclo de , ver Ciclo de leitura

402
da RAM, 342 da ROM, 331 de uma palavra da RAM, ver Leitura da RAM de uma palavra da ROM, ver Leitura da ROM de uma RAM esttica, 348349 a de uma ROM, 336339 Linha de relgio, 233 o de um contador, 240 de um contador ass ncrono, 233 de um contador s ncrono, 240 Linhas adjacentes, 72 Literal, 49, 59 Lgica o de polaridade, 64, 107142 e expresses booleanas, 129136 o e logigramas, 129136 esquemas elctricos na , 120 e 123 exemplo de utilizaao da , 136 c 138 expresses booleanas e logigrao mas na , 131136 geraao dos logigramas na , 129 c 131 logigramas na , 120123 portas lgicas na , 113114 o razo da , 109110 a de sa da, 283, 369 do estado seguinte, 283, 369 negativa, 107123 positiva, 107123 Logigrama, 43, 62, 107, 120 Mapa de Karnaugh, ver Quadro de Karnaugh Mquina a algor tmica, ver Mquina de estaa dos de estados, 363, 364, 366, 367, 369, 370, 373, 374, 379 diagrama de blocos de uma , 375, 378, 386 entradas externas de uma , 369 uxograma de uma , 384 sa das actuais de uma , 381 sa das externas de uma , 370 de Mealy, 370 de Moore, 375 incompleta, ver Mquina incomplea tamente especicada incompletamente especicada, 326 sequencial, 285

INDICE REMISSIVO
tabela de estados de uma , ver Tabela de estados e de sa da sequencial s ncrona, 363 incompleta, ver Mquina incoma pletamente especicada incompletamente especicada, ver Mquina incompletamente esa pecicada Mquinas de estados, 363390 a e uxogramas, 364, 366367 Margem de ru do, 101 Mask-Programmed ROM, ver ROM Maxtermo, 61 m-em-n, ver Cdigos m-em-n o Memria o Central, 364 elementar, 200 ROM Chip Select de uma , 336 Output Enable de uma , 336 tempo de acesso a partir do CS numa , ver Tempo de acesso a partir do CS tempo de acesso a partir do endereo numa , ver Tempo c de acesso a partir do endereo c tempo de Output Disable de uma , ver Tempo de Output Disable tempo de Output Enable de uma , ver Tempo de Output Enable SRAM tempo de durao do CS numa ca , ver Tempo de durao do ca CS tempo de durao do W RIT E ca numa , ver Tempo de durao ca do W RIT E tempo de hold do dado numa , ver Tempo de manuteno do ca dado tempo de hold do endereo numa c , ver Tempo de manuteno ca do endereo c tempo de manuteno do dado ca numa , ver Tempo de manuteno ca do dado tempo de manutenao do endereo c c numa , ver Tempo de manuteno ca do endereo c tempo de preparaao do dado numa c , ver Tempo de preparao ca do dado

INDICE REMISSIVO

403

de contagem ascendente, 248 tempo de preparaao do endereo c c numa , ver Tempo de preparao ca de deslocamento para a direita do endereo c de um registo de deslocamento tempo de set-up do dado numa universal, 269 , ver Tempo de preparao ca de deslocamento para a esquerda do dado de um registo de deslocamento tempo de set-up do endereo numa c universal, 269 , ver Tempo de preparao ca de funcionamento do endereo c de um latch SR controlado, 206 Memria de leitura, ver ROM o de manuteno ca Memria de leitura/escrita, ver RAM o de um ip-op JK master-slave, Memria srie, 329 o e 220 Memrias, 329350 o de um ip-op SR master-slave, dinmicas, ver Memrias RAM dinmicas a o a 218 estticas, ver Memrias RAM estticas a o a de um ip-op D edge-triggered, Flash, 330 225 RAM de um ip-op JK edge-triggered, dinmicas, 341 a 244 estticas, 341 a de um ip-op T edge-triggered, 236 ROM, 330341 Mtodo e de um latch D controlado, 210 de um latch SR, 203 das divises sucessivas, 8 o de um latch SR controlado, 206 das multiplicaoes sucessivas, 8 c de Karnaugh, 6992 de um latch S R, 204 Microprocessadores de um registo, 265 RISC, 369 de um registo de deslocamento Microprogramao, 369 ca universal, 269 Minimizaao c de manuteno do estado, 249 ca com indiferenas, 7982 c de Reset, 249 das funoes booleanas simples, 42, c de um ip-op JK master-slave, 70 220 usando os maxtermos, 8487 de um ip-op SR master-slave, Mintermo, 59 219 Modelo de um ip-op JK edge-triggered, 244 de Mealy, 287 de um latch SR, 203 de Moore, 288 de um latch SR controlado, 206 Modo de um latch S R, 204 de cpia o do contador 74LS161A, 250 de um ip-op D edge-triggered, 225 de Set de um latch D controlado, 210 de um ip-op JK master-slave, 220 de carregamento em paralelo, 248 de um ip-op SR master-slave, de um registo, 265 219 de um registo de deslocamento de um latch SR, 203 universal, 269 do contador 74LS161A, 250 de um latch SR controlado, 206 de um latch S R, 204 de comutaao c M1 do contador 74LS161A, ver Modo de um ip-op JK edge-triggered, 233 de carregamento em paralelo do contador 74LS161A de um ip-op JK master-slave, M2 do contador 74LS161A, ver Modo 220 de contagem do contador 74LS161A de um ip-op T edge-triggered, 236 Modos de funcionamento de contagem de um ip-op JK master-slave, 220 do contador 74LS161A, 250 de um ip-op SR master-slave, 218

404
de um contador s ncrono, 248 de um ip-op D edge-triggered, 225 de um ip-op T edge-triggered, 236 de um latch D controlado, 210 de um latch SR, 203 de um latch S R, 204 de um registo, 265 de um registo universal, 269 do contador 74LS161A, 249 MROM, ver ROM Multiplexagem temporal, 103 Multiplexer 74x151, 172 74x153, 173 74x157, 173 74x251, 183 analogia mecnica, 169 a entrada de Enable num , ver Entrada de Enable entradas de controlo de um , ver Entradas de selecao de um c multiplexer entradas de dados de um , ver Entradas de dados de um multiplexer entradas de selecao de um , ver c Entradas de selecao de um c multiplexer sa de dados de um , ver Sa da da de dados de um multiplexer Multiplexers, 169175 expanso de , 174175 a s mbolos dos , 172173 Multiplicaao, 1619 c Multiplicaoes sucessivas, ver Mtodo c e das multiplicaoes sucessivas c Negao, ver Porta NOT ca de uma funao, ver Complementao c ca de uma varivel, ver Complementao a ca N veis de tenso H e L, 112 a N vel alto, ver N H vel baixo, ver N L vel de actividade, 113 de tenso, 97 a H, 64, 97 HIGH, ver N H vel L, 97 LOW, ver N L vel Norma IEC 60617-12, 43, 107, 205, 210 entrada de dados na , 210

INDICE REMISSIVO
IEC 61082, 108 IEC 61082-1, 63 Normas IEC, 107 Notaao c de complemento para 2, 1925, 192 de sinal e mdulo, 19 o Nmeros u com sinal, 1925 sem sinal, 3 Ones catching, 221 Operaao c de escrita, 329 de leitura, 329 Operador AND, 46 constante 0, 43 constante 1, 43 identidade, 43 NAND, 46 NOR, 46 NOT, 43 OR, 46 XNOR, 46 XOR, 46 Output Enable, 336 Overow na adiao em complemento para 2, c 23, 192 na subtracao em complemento para c 2, 25 Palavra, 29 comprimento de uma , ver Comprimento de uma palavra de ROM campos de uma , ver Campos de uma ROM, 331 Palavras adjacentes, 31 Peso, 3 Pesos dos ip-ops, 251 Pinos, 104 PIPO (Parallel-In, Parallel-Out), 267 PISO (Parallel-In, Serial-Out), 267 PLA, 354, 359 PLD, 351 entradas de dados de um , 354 sa das de dados de um , 354 Porta AND, 62 inversora, ver Porta NOT lgica, 43, 62 o NAND, 63 NOR, 64 NOT, 43, 62, 64, 119 OR, 62

INDICE REMISSIVO
tri-state, 101 TTL com sa em alta impedncia, da a ver Sa em alta impedncia da a com sa totem-pole, 101 da com sa tri-state, ver Portas da tri-state consumo de corrente de uma , ver Consumo de corrente de uma porta TTL de atraso de uma , ver Tempo de propagao de uma porta ca TTL de propagaao de uma , ver c Tempo de propagao de uma ca porta TTL Portas AND s mbolo IEC das , 113 tabela de verdade genrica das e , ver Tabela de verdade genrica e das portas AND AND com 2 entradas tabela de verdade genrica das e , ver Tabela de verdade genrica e das portas AND com 2 entradas Buer tabela de verdade genrica das e , ver Tabela de verdade genrica e dos Buers de transmisso, 120 a OR tabela de verdade genrica das e , ver Tabela de verdade genrica e das portas OR XOR com 2 entradas tabela de verdade genrica das e , ver Tabela de verdade genrica e das portas XOR com 2 entradas Precedncias, 48 e Primeira forma cannica, ver Forma cao nnica disjuntiva o Princ pio da dualidade, 49 Processadores CISC, 369 RISC, ver Microprocessadores RISC Produto de implicados primos, 84 de maxtermos, 61 de somas, 53, 123 lgico, 48 o Programador de PROMs, 330 Programmable Logic Array, ver PLA, ver PLA

405
Programmable Logic Device, ver PLD Programmable ROM, ver PROM Projecto bottom-up, 151 top-down, 151 PROM, 330 programador de , ver Programador de PROMs Propagation delay time, ver Tempo de propagao de uma porta ca Quadrado essencial, 78 Quadrados adjacentes, 72 Quadro de Karnaugh, 72 adjacncias num , 7074 e com 3 variveis, 72 a com 4 variveis, 7476 a com 5 variveis, 8284 a Qualicador de entrada +, 239 , 226, 250 , 108, 226, 250 1,5D, 250 1J, 221 1K, 221 2,3,4+, 250 C1, 207, 221 C5, 250 CT=0, 250 D, 210 G3, 250 G4, 250 R, 205, 208, 222, 264 S, 205, 208, 222 1, 239 Am, 336 CI, 190 CT=m, 239 G1, 239 Pi, 190 Qi, 190 de sa da , 108 , 221 3CT=15, 251 , 102 A, 336 CO, 190 CTm, 239 [i], 336 i, 190 geral, 108, 205 1, 108 = 1, 108 BCD/1-OF-10, 159

406
BCD/DEC, 159 BIN/1-OF-8, 157 BIN/OCT, 157 CTRDIV16, 249 DMUX, 178 DX, ver Qualicador geral DMUX MUX, 172 &, 108 , 273, 275 1, 108 RCTR, 239 ROM *, 334 , 190 Quantidades booleanas gerais, 41 booleanas simples, 41 (R), ver Dependncia Reset e RAM, 329 escrita na , ver Escrita na RAM escrita numa palavra da , ver Escrita na RAM esttica a barramento de dados de uma , ver Barramento de dados de uma RAM barramento de endereos de uma c , ver Barramento de endereos c de uma RAm barramento de entrada de uma , ver Barramento de entrada de uma RAM barramento de sa de uma da , ver Barramento de sa de da uma RAM ciclo de escrita controlado pelo CS numa , ver Ciclo de escrita controlado pelo CS ciclo de escrita controlado pelo W RIT E numa , ver Ciclo de escrita controlado pelo W RIT E ciclo de escrita numa , ver Ciclo de escrita ciclo de leitura de uma , ver Ciclo de leitura escrita numa , ver Escrita numa RAM esttica a estrutura de uma , ver Estrutura de uma RAM esttica a leitura de uma , ver Leitura de uma RAM esttica a leitura da , ver Leitura da RAM leitura de uma palavra da , ver Leitura da RAM tipos de , ver Tipos de RAM RAMs

INDICE REMISSIVO
s mbolos das , ver S mbolos das RAMs Random Access Memory, ver RAM Read Only Memory, ver ROM Register File, ver Banco de registos Registo conceito de , 263 de deslocamento universal, 269 74x194, 269, 279 modo de carregamento em paralelo de um , ver Modo de carregamento em paralelo de um registo de deslocamento universal modo de deslocamento para a direita de um , ver Modo de deslocamento para a direita de um registo de deslocamento universal modo de deslocamento para a esquerda de um , ver Modo de deslocamento para a esquerda de um registo de deslocamento universal modo de manutenao de um c , ver Modo de manutenao de c um registo de deslocamento universal entrada de Modo de um , ver Entrada de Modo num registo modo de carregamento em paralelo de um , ver Modo de carregamento em paralelo de um registo modo de manuteno de um , ver ca Modo de manutenao de um c registo modos de funcionamento de um , ver Modos de funcionamento de um registo, ver Modos de funcionamento de um registo PIPO, ver PIPO (Parallel-In, Parallel-Out) PISO, ver PISO (Parallel-In, Serial-Out) simples andar de um , ver Andar s mbolo IEC de um , 264 SIPO, ver SIPO (Serial-In, Parallel-Out) SISO, ver SISO (Serial-In, Serial-Out) Registos, 263276 com Enable, 265 de deslocamento, 266268

INDICE REMISSIVO
interligaao de , ver Interligao c ca de registos multimodo, 268270 simples, 263265 transferncia entre , ver Transe ferncia entre registos e Representao ca algbrica, 53 e de um nmero u em complemento para 2, 21 em mdulo e sinal, 19 o na base 16, 7 na base 2, 56 Rise time, ver Tempo de crescimento ROM, 331 barramento de dados de uma , ver Barramento de dados de uma ROM barramento de endereos de uma c , ver Barramento de endereos c de uma ROM bits de dados por palavra de uma , 331 clulas de uma , ver Clulas de e e uma ROM de 2n por p (2n p), 331 estrutura de uma , ver Estrutura de uma ROM funcionamento de uma , ver Funcionamento de uma MROM leitura da , ver Leitura da ROM leitura de uma palavra da , ver Leitura da ROM palavra de uma , 331 tipos de , ver Tipos de ROMs utilizao das , ver Utilizaao das ca c ROMs ROMs leitura de uma , ver Leitura de uma ROM s mbolos das , ver S mbolos das ROMs ROMss expanso de , ver Expanso de a a ROMs (S), ver Dependncia Set e Sa da activa a H, 113 a L, 113 condicionada, ver Sa de Mealy da de dados de um multiplexer, 169 de Mealy, 304, 313 de Moore, 304, 313

407
em alta impedncia, 102 a incondicional, ver Sa de Moore da totem-pole, 101 tri-state, 101 Sa das de um demultiplexer, 175 Salto condicional, ver Transio condica cionada incondicional, ver Transio incondica cional Segunda forma cannica, ver Forma cao nnica conjuntiva o Semi-somador, 188 Sensor, 124 Sequncia e de contagem, ver Sequncia de ese tados de contagem de estados, ver Sequncia de estae dos de contagem de estados de contagem, 233 Set-up time, ver Tempo de preparao ca S mbolo composto, 159 S mbolo IEC das portas AND, 113 de atraso, 221 de um ip-op D edge-triggered, 226 de um ip-op D master-slave, 223 de um ip-op JK edge-triggered, 226 de um ip-op JK master-slave, 221 de um ip-op T edge-triggered, 236 de um descodicador BCD, 159 de um descodicador binrio de 3 a bits, 159 de um latch D controlado, 210 de um latch SR controlado, 207 de um latch SR controlado com entradas de Preset e de Clear, 208 de um latch S R, 205 de um multiplexer, 169, 171 de um registo simples, 264 de uma porta AND com 2 entradas, 46 com 3 entradas, 47 de uma porta NAND com 2 entradas, 46 com 3 entradas, 47 com 5 entradas, 63 de uma porta NOR com 2 entradas, 46 com 3 entradas, 47

408
com 4 entradas, 64 de uma porta NOT, 44 de uma porta OR com 2 entradas, 46 com 3 entradas, 47 de uma porta XNOR com 2 entradas, 46 de uma porta XOR com 2 entradas, 46 do 74HC4024, 255 do 74HCT244, 273 do 74HCT393, 255 do 74LS161A, 249 do 74LS163A, 260 do 74LS192, 257 do 74LS293, 238 do 74x138, 165, 178 do 74x139, 183 do 74x151, 172 do 74x153, 173 do 74x155, 178 do 74x157, 173 do 74x169, 261 do 74x194, 269 do 74x245, 275 do 74x251, 183 do 74x283, 190 do 74x42, 166 S mbolos alternativos, 108 das RAMs, 342343 das ROMs, 334336 dos circuitos digitais, 107108 IEC, ver S mbolos dos circuitos digitais Simplicaao algbrica, 69 c e Sinais binrios, 9697 a Sinal analgico, 96 o binrio a ideal, 96 real, 96 Sinal e mdulo o notaao de , 19 c S ntese clssica, 295296 a com ip-ops D, 297299 com ip-ops JK, 300 com um ip-op por estado, 301 305 convergncia numa , ver Cone vergncia e sa de Mealy numa , ver Sa da da de Mealy

INDICE REMISSIVO
sa de Moore numa , ver Sa da da de Moore transiao condicionada numa c , ver Transio condicionada ca transiao incondicional numa c , ver Transio incondicional ca de um contador, 243, 246 dos circuitos digitais, 42 dos circuitos sequenciais s ncronos, 240, 243, 246, 288289 SIPO (Serial-In, Parallel-Out), 267 SISO (Serial-In, Serial-Out), 267 Sistema binrio, 3, 5 a base do , ver Base do sistema binrio a de numeraao, 3 c base de um , ver Base de um sistema de numerao ca binrio, ver Sistema binrio a a decimal, ver Sistema decimal duodecimal, ver Sistema duodecimal hexadecimal, ver Sistema hexadecimal ponderado, ver Sistema posicional posicional, ver Sistema posicional romano, 3 sexagesimal, ver Sistema sexagesimal decimal, 3 base do , ver Base do sistema decimal duodecimal, 3 base do , ver Base do sistema duodecimal hexadecimal, 3, 7 base do , ver Base do sistema hexadecimal no posicional, 3 a ponderado, ver Sistema posicional posicional, 3 d gito num , ver D gito peso de um d gito num , ver Peso sexagesimal, 3 base do , ver Base do sistema sexagesimal Sistemas de numeraao, 327 c arredondamentos num , ver Arredondamentos converso da base 16 para a base a 2, ver Converso da base 16 a para a base 2

INDICE REMISSIVO
converso da base 2 para a base a 16, ver Converso da base 2 a para a base 16 converso entre a base 10 e as a bases 2 e 16, ver Converso a da base 10 para as bases 2 e 16 converso entre bases, ver Cona verso entre bases a posicionais, 37 representao na base 16, ver Reca presentao na base 16 ca representao na base 2, ver Reca presentao na base 2 ca truncagens num , ver Truncagens digitais, 41, 43 Soma de implicantes primos, 77 de mintermos, 60 de produtos, 53, 122 lgica, 48 o Somador 74x283, 190, 196 completo, 188 de dois d gitos BCD, 195 iterativo de 4 bits, 189 de n bits, 189 Somador/subtractor, 192 Somadores BCD, 193195 binrios, 187190 a em complemento para 2, 192 SRAM, ver Memrias RAM estticas o a ciclo de escrita controlado pelo CS numa , ver Ciclo de escrita controlado pelo CS ciclo de escrita controlado pelo W RIT E numa , ver Ciclo de escrita controlado pelo W RIT E ciclo de escrita numa , ver Ciclo de escrita ciclo de leitura de uma , ver Ciclo de leitura escrita numa , ver Escrita numa RAM esttica a estrutura de uma , 345 leitura de uma , ver Leitura de uma RAM esttica a operaao de escrita numa , 346 c operaao de leitura de uma , 346 c Subtracao, 1516 c transporte na , ver Transporte na subtracao c Subtractivo, 15, 191 Subtractor completo, 190 iterativo de n bits, 190 Subtractores binrios, 190191 a em complemento para 2, 192 Sub-fam lias CMOS, 103 lgicas, 98 o TTL, 99

409

tAA , ver Tempo de acesso a partir do endereo c Tabela de estados, 245, ver Tabela de estados e de sa da, 296, 363 de estados e de sa da, 284 de excitaoes c de um ip-op JK, 245 de um circuito s ncrono, 296 de um contador mdulo 6, 245 o dos ip-ops, 296 de excitaoes de um circuito sequenc cial, 284 de sa das, 296 de transioes, 246, 296 c de um contador s ncrono mdulo o 6, 244 estado actual numa , ver Estado actual estado presente numa , ver Estado actual estado seguinte numa , ver Estado seguinte de transioes e de sa c das, 284 de verdade, 42, 54, 110 de verdade f sica, 110113, 203 de um ip-op D edge-triggered, 225 de um ip-op JK master-slave, 219 de um ip-op SR master-slave, 218 de um ip-op T edge-triggered, 229 de verdade genrica, 114120 e das portas AND, 117 das portas AND com 2 entradas, 114 das portas OR, 117 das portas XOR com 2 entradas, 138 dos Buers, 118 de verdade lgica, ver Tabela de o verdade

410
tACS , ver Tempo de acesso a partir do CS tAH , ver Tempo de manuteno do enca dereo c tAS , ver Tempo de preparao do enca dereo c tCSW , ver Tempo de duraao do CS c tDH , ver Tempo de manutenao do dado c tDS , ver Tempo de preparaao do dado c Tecnologia CMOS, 99 ECL, 99 GaAs, 99 IIL, 99 nMOS, 99 pMOS, 99 TTL, 98 Tempo de acesso a partir do CS , 338 a partir do endereo , 337 c de atraso, 105 de um ip-op, ver Tempo de propagaao de um ip-op c de uma porta TTL, ver Tempo de propagao de uma porta ca TTL de crescimento, 97 de decrescimento, 97 de durao ca do CS, 349 do W RIT E, 349 de hold do dado, ver Tempo de manuteno ca do dado do endereo, ver Tempo de manuteno c ca do endereo c de manuteno, 228 ca do dado, 349 do endereo, 349 c de Output Disable, 338 de Output Enable, 338 de preparao, 228 ca do dado, 349 do endereo, 349 c de propagao, 105 ca de L para H, 105 de um ip-op, 227 de uma porta, 106 de uma porta TTL, 99 mximo, 251 a t pico, 251 de set-up do dado, ver Tempo de preparaao c do dado

INDICE REMISSIVO
do endereo , ver Tempo de preparaao c c do endereo c Teorema da absorao, 49 c da adjacncia, 49 e da associatividade, 49 da idempotncia, 49 e da involuao, 49 c da redundncia, 49 a do consenso, 51 dos elementos absorventes, 49 Teoremas envolvendo o OU-exclusivo, 50 Termo maximal, ver Maxtermo minimal, ver Mintermo tf , ver Tempo de decrescimento th , 228, 229 Tipos de RAM, 341342 de ROM, 330331 tOE , ver Tempo de Output Enable tOZ , ver Tempo de Output Disable tpd , ver Tempo de propagao de uma ca porta, 227, 229 c tpHL , ver Tempo de propagaao de H para L, 227 ca tpLH , ver Tempo de propagao de L para H, 227 Transcodicador, 163 Transferncia entre registos, 270276 e Transio ca condicionada, 303, 313, 374, 383, 384, 386 incondicional, 302, 313, 374, 383 386 Transistores bipolares, 98 MOS, 99 Transporte da adio ca no cdigo BCD, 35 o na adio, 12 ca na subtracao, 15 c tr , ver Tempo de crescimento Truncagens, 1012 tsu , 228, 229 tWP , ver Tempo de durao do W RIT E ca UCS-2, ver Cdigo UCS-2 o UNICODE, ver Cdigo UNICODE o Unidade Central de Processamento, 329, 364 de Controlo, 329 de controlo, 364 de Entrada, 329 de Memria, 329 o

INDICE REMISSIVO
de Sa da, 329 Universal Character Set-2, ver Cdigo o UCS-2 Utilizaao c das ROMs, 331 Valncia, 39 e Valor inicial, 250 Valores lgicos 0 e 1, 112 o Variveis a booleanas, ver Variveis booleanas a simples booleanas gerais, 41 booleanas simples, 41 contedo semntico das , 124 u a 128 de estado, 298 Varivel a activa, 126 activa a H, 126 activa a L, 126 booleana simples complementaao de uma , ver c Complementao ca complemento de uma , ver Complementaao c contedo semntico de uma , u a 124 negao de uma , ver Compleca mentaao c inactiva, 126 Watchdog, 324 W RIT E tempo de duraao do , ver Tempo c de durao do W RIT E ca Zona de memria, 336 o

411

Vous aimerez peut-être aussi