Sistemas Digitais para Computação

Documentos relacionados
Sistemas Digitais para Computação. AULAS TEÓRICAS 19 a 33

Dispositivo Lógico Programável(PLD)

Aula 11. Dispositivos Lógicos Programáveis. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

Dispositivos de Lógica Programável

ELD - Eletrônica Digital Aula 11 Introdução à Lógica Programável. Prof. Antonio Heronaldo de Sousa

SSC0112 Organização de Computadores Digitais I

Capítulo13 Arquiteturas de Dispositivos Lógicos Programáveis Pearson. Todos os direitos reservados.

Hardware Reconfigurável

Parte # 2 - Circuitos Combinatórios

SSC512 Elementos de Lógica Digital. Memórias. GE4 Bio

SSC0112 Organização de Computadores Digitais I

Universidade Federal do ABC

Circuitos Lógicos. Profa. Grace S. Deaecto. Faculdade de Engenharia Mecânica / UNICAMP , Campinas, SP, Brasil.

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS. SEL Sistemas Digitais Prof. Homero Schiabel

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

PCS 3115 Sistemas Digitais I

1. Sistemas de numeração e códigos 23

Profa. Luiza Maria Romeiro Codá Profa. Dra Maria Stela Veludo de Paiva

MEMÓRIAS. Sistemas Digitais II Prof. Marcelo Wendling Nov/18

Eletrônica Digital II (Memórias) Prof. Eng. Antonio Carlos Lemos Júnior

COMPUTADOR. Adão de Melo Neto

Universidade de São Paulo

Dispositivos Lógicos Programáveis (PLDs) Leandro Schwarz

CALCULADORA SIMPLES COM ULA

Memórias. Memórias: Utilização:

MEMÓRIAS PAPEL FOTOGRAFIA FITA PERFURADA DISPOSITIVOS MAGNÉTICOS DISPOSITIVOS ÓPTICOS DISPOSTIVOS DE ESTADO SÓLIDO

Memória (conceitos) MEMÓRIA VOLÁTIL

Arquitetura e Organização de Computadores. Processador Registrador Memória. Professor Airton Ribeiro

Memórias. SEL-415 Introdução à Organização dos Computadores. Parte 1. Aula 4. Profa. Luiza Maria Romeiro Codá

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 5 Memória interna

DADOS DO COMPONENTE CURRICULAR

Revisão de Circuitos Digitais

ELETRÔNICA DIGITAL II

Arquitetura de Computadores Memória Principal

Arquitetura e Organização de Computadores. Processador Registrador Memória. Professor Airton Ribeiro

MEMÓRIAS SEMICONDUTORAS

FPGA & VHDL. Tutorial

ARQUITETURA DE COMPUTADORES. Nível da Lógica Digital. Prof.: Agostinho S. Riofrio

Sistemas Digitais Módulo 10 Circuitos Sequenciais: Latches e Flip-Flops

Organização e Arquitetura de Computadores I

Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP. Memórias de Dados e de Programa

Organização e Arquitetura de Computadores I

UNIVERSIDADE ESTADUAL PAULISTA. Campus de Guaratinguetá Colégio Técnico Industrial de Guaratinguetá Professor Carlos Augusto Patrício Amorim

Relatórios de Práticas no LABORATORIO

COMPUTADOR. Adão de Melo Neto

Circuito combinacional

ELE Microprocessadores I. AULA 12 Arquitetura do Microprocessador Interface com as memórias

Estrutura Básica de um Computador

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

Painel Luminoso com LEDs

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

Organização e Arquitetura de Computadores I

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 10: MEMÓRIA E HIERARQUIA DE MEMÓRIAS

Introdução à Computação

Sistemas de Computação. Seção Notas. A Memória Principal. Notas. Sexta Aula. Haroldo Gambini Santos. 26 de abril de Notas

Eletrônica Digital. Memórias Semicondutoras PROF. EDUARDO G. BERTOGNA UTFPR / DAELN

Sistemas de Computação

Sistemas Digitais II DISPOSITIVOS DE MEMÓRIA. Prof. Marlon Henrique Teixeira julho/2014

ROM

Circuitos Lógicos Aula 26

Relatórios de Práticas no LABORATORIO

FACULDADE LEÃO SAMPAIO

Adriano J. Holanda FAFRAM. 4 e 11 de maio de 2012

CIRCUITOS SEQUENCIAIS. Adão de Melo Neto

Escola Politécnica de Pernambuco Departamento de Engenharia Elétrica PROGRAMA EMENTA OBJETIVOS

SISTEMAS DIGITAIS MEMÓRIAS E CIRCUITOS DE LÓGICA PROGRAMÁVEL

14/3/2016. Prof. Evandro L. L. Rodrigues

Circuitos Digitais. Tipos de circuitos digitais: Circuitos combinacionais Circuitos sequenciais

Componentes de um computador Microcontroladores e microprocessadores Tecnologia em Manutenção Industrial MICROCONTROLADORES PROFESSOR FLÁVIO MURILO

Aula Expositiva 03. DCC 001 Programação de Computadores 2 o Semestre de 2011 Prof. Osvaldo Carvalho DCC

DEFINIÇÃO É TODO AQUELE DISPOSITIVO CAPAZ DE ARMAZENAR INFORMAÇÃO. A

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

Latch SR (Set/Reset)

SUBSISTEMA DE MEMÓRIA FELIPE G. TORRES

ELETRÔNICA DIGITAL I

Painel Luminoso com LEDs

Circuitos Sequenciais

Lógica: Combinacional x Sequencial

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

HARDWARE COMPONENTES BÁSICOS E FUNCIONAMENTO. Wagner de Oliveira

FPGA & VHDL. Tutorial Aula 1. Computação Digital

EPROM - EEPROM Dispositivos Lógicos Programáveis

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS DLP. 15/8/2013 Prof. Joselito ELP1DLP1 / npee / DEE 1

Geradores de Clock e Memórias

Capítulo VII Elementos de Memória

Flip-Flop. Uma das coisa importantes que se pode fazer com portas booleanas é criar memória.

EELi02. Prof. Vinícius Valamiel

Barramento. Prof. Leonardo Barreto Campos 1

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES

Memórias. IFRN -Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte 17/01/2013

CIRCUITOS DIGITAIS. Contadores com Registradores e Memórias. Prof. Denis Fantinato Prof. Rodrigo Moreira Bacurau

LISTA DE EXERCÍCIOS #2 (BASEADO NO ENADE COMPUTAÇÃO)

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO4: MEMÓRIAPRINCIPAL

Organização e Arquitetura de Computadores I

SSC510 Arquitetura de Computadores 1ª AULA

Sistemas Digitais I LESI :: 2º ano. Introdução


Circuitos Sequenciais

Transcrição:

Sistemas Digitais para Computação AULAS TEÓRICAS 9 a 33 Prof. MSc. Mário Oliveira Orsi Prof. MSc. Carlos Alexandre Ferreira de Lima OUT 24

Sistemas Digitais para Computação Roteiro da 9 a aula Referência ao Programa: Circuitos Combinacionais Circuitos Multiplexadores e Decodificadores de endereço Referência Livro Texto: Capítulo 9. 9.4 e 9.7 a 9.9 Objetivo: apresentar os Circuitos Multiplexadores; Decodificadores de Endereço; Expansão MULTIPLEXADORES DIGITAIS (SELETORES DE DADOS) - Possui N entradas e apenas (uma) Saída - Cada uma das N entradas pode ser um barramento de n vias (linha de dados) - Entradas endereçamento K Selecionam uma das entradas para colocar na saída MUX N potencia de 2 I N = 2 K entradas de dados I I 2 I 3 I 4 S Multiplex de duas entradas Simbologia: Projeto: A I I S I A.I.I Mux 2: I M (canal de saída) I `2: S linhas de dados I 5 I 6 A linhas de endereçamento ou de seleção S = A.I.I + A.I.I + A.I.I + A.I.I S = A.I + A. I I K *Convenção A = S I A = S I Esquema A.I.I I I A.I.I A.I.I AI ` ` ` ` I A 2

Multiplex de quatro entradas Mux 4: A A S I I I I I 2 4 :. S I 2 I 3 I 3 A A I I S I 2 I 3 EXERCÍCIOS: ) MUX 8: Mux 4: A A I A 2 A A S I I I 2 I I 3 I 2 I 4 8 :. S I 3 I 5 I 4 I 6 I 5 I 7 I 6 I 7 A 2 A A 3

2) MUX 6: 2 3 4 5 6 7 8 S 9 2 3 4 5 6 4

GERADORES DE PRODUTOS CANÔNICOS / DECODIFICADORES DE ENDEREÇOS I MUX N : N I GPC = Dec End 2 K saídas K entradas Mux 2 : I I A A Decodificador de Endereço :2 Entrada A 5

MUX 4 : I I I 2 I 3 4 saídas DECOD 2:4 2 entr. 6

MUX 8 :... 6 7 8 saídas A 2 3 entradas A A 7

EXPANDINDO MUX Exemplo : MUX 4 : com 2 : 2: 2: 2: Exercícios:. 8: usando 2:, 2. 6 : usando 2 :, 4. 8: usando 4: e 2:, usando 4 A A S I I I 2 I 3 Exemplo 2: 8: usando 2: 2: 2: 2: 2: 2: A 2 A A S I I I 2 I 3 I 4 I 5 I 6 I 7 2: 2: EXERCÍCIOS EM SALA NO ANEXO DA AULA 9 8

N I Sistemas Digitais para Computação Roteiro da 2 a aula Referência ao Programa: Circuitos Combinacionais Circuitos Demultiplexadores Referência Livro Texto: Capítulo 9. 9.4 e 9.7 a 9.9 Objetivo: apresentar os circuitos Demultiplexadores; Aplicações: roteamento, conversão serie / paralelo, sequenciamento de operações e Circuitos de Sintetização de funções booleanas DEMULTIPLEXADORES DIGITAIS K DEMUX K linhas de seleção S S S 2 S 3 S 4 S 5 S 6 = I = I = I = I = I = I = I n Simbologia: Canal ou linha de entrada DEMUX : N N canais de saída N= 2 K A k - A 9

Demux :2 I Dado de entrada D :2 S S A entrada de seleção *Convenção A =, S = I, S = A =, S =, S = I A I S S S= AI S= AI I S = A I S = AI A Demux :4 I D :4 S S S2 S3 A A

I S = A. A. I S = A. A. I S 2 = A. A. I S 3 = A. A. I A A S S S 2 S 3 I I I I

Usando GPG I S = A. A. I S = A. A. I S 2 = A. A. I S 3 = A. A. I Decod 2:4 2

Expansão de DeMultiplex D :4 usando D :2 D :2 I S S D :2 S S A A S S S 2 S 3 I I I I A D :2 S2 S3 A A 2 A A S S S 2 S 3 S 4 S 5 S 6 S 7 I I I I I I I I Exercícios: ) D :8 com D :2 S D :2 S S D :2 S S2 D :2 I S D :2 S3 S D :2 S2 S3 D :2 S S A2 S2 A D :2 S3 A 3

GERAÇÃO / SINTETIZAÇÃO DE FUNÇÕES BOOLEANAS COM MUX. Exemplo: ) Sintetizar a função usando mux: SOLUÇÃO: Três variáveis três entradas de endereço A, B e C mux 2 3 = 8 : Oito entradas I i constantes = ou É necessário a expansão do segundo termo para usarmos AB e C O inverso da simplificação ª Redundância portanto, já que o ultimo termo está repetido temos: Basta então definir (figura à seguir) as entradas I i do Mux 8: convenientemente para obtermos os termos da expressão: I 3 = I 7 = I 6 = E I =I =I 2 =I 4 =I 5 = 4

+ 5 V MUX 8 : I A.B.C I A.B.C I 2 A.B.C I 3 A.B.C I 4 I 5 A.B.C A.B.C I 6 A.B.C I 7 A.B.C A B C 5

2) Sintetizar a função usando mux: A + B C + AC + ABC t + 2 t + 3 t + 4 t inverso da simplificação a redundância: X = XY + XY 2 t = B C = A B. C + A.B. C + 3 t = AC = A B.C + A B.C + 4 t = A B.C t + 2 t + 3 t + 4 t I = I = I3 = I I2 2 = II4 4 = I5 = I6 = I7 = 6

+ 5 V MUX 8 : I A.B.C I A.B.C I 2 A.B.C I 3 A.B.C I 4 I 5 A.B.C A.B.C I 6 A.B.C I 7 A.B.C A B C 7

3) Sintetizar a função usando mux: não precisa expandir.. A B S 4: S B = I Interessante : usando um Mux 2: S = A S A I = = B = I A 8

4) Sintetizar a função usando mux: SOLUÇÃO: Três variáveis mux 2 3 = 8 : expansão dos termos: AB + BC + AC t + 2t + 3t t = AB(C + C) = ABC+ABC + 2t = BC(A + A) = ABC+ABC + 3t = AC(B + B) = ABC+ABC + t + 2t + 3t = ABC+ABC+ABC+ABC SOLUÇÃO: + 5 V MUX 8 : ABC+ABC+ABC+ABC I I A.B.C A.B.C Mux 8: I 6 = I 3 = I 5 = I 7 = I = I = I 2 = I 4 = I 2 I 3 I 4 I 5 I 6 A.B.C A.B.C A.B.C A.B.C A.B.C I 7 A.B.C A B C 9

5) Sintetizar a função usando mux: SOLUÇÃO: Três variáveis mux 2 3 = 8 : expansão dos termos: XZ + YZ t + 2t t = XZ(Y + Y) = XYZ+XYZ + 2t = YZ(X + X) = XYZ+XYZ t + 2t + 3t = XYZ+XYZ+XYZ+XYZ SOLUÇÃO: + 5 V MUX 8 : XYZ+XYZ+XYZ+XYZ I I A.B.C A.B.C Mux 8: I = I 2 = I 3 = I 7 = I = I 4 = I 5 = I 6 = I 2 I 3 I 4 I 5 I 6 A.B.C A.B.C A.B.C A.B.C A.B.C I 7 A.B.C A B C OS EXERCÍCIOS EM SALA E AS ATIVIDADES PARA CASA ESTÃO NO ANEXO DE EXERCÍCIOS DA AULA 2 2

Sistemas Digitais para Computação Roteiro da 22 a aula Referência ao Programa: Circuitos Seqüenciais Tipos de Flip Flop Referência Livro Texto: Capítulo 5. a 5.8 Objetivo: apresentar os circuitos Flip Flop SR, Flip Flop SR com Clock e Flip Flop D e aplicações Dispositivos Básicos de memória Pergunta: ual seria um dispositivo digital que é ativado com entrada Saída é e depois de desativado (repouso) a entrada a saída permanece em Seqüência: Repouso SET = SET independente de qq outra coisa = na 2 a porta:.= inverte = (trava e passa a não depender mais de SET pode tirar que continua em memoriza SET Torcendo o esquema: ) FLIP FLOP SR ativado com nível baixo FF S R SET Proibido S R * a RESET Setado Resetado Repouso RESET * indeterminado (inválido) a = saída anterior A notação com Barra superior indica que ativa a porta --> saída = Diagrama de estados: 2

Setado S R S R S R Proibido Resetado S R Análise do estado PROIBIDO Simultaneamente pulsadas em Retornam ao S R a status proibido setado - a saída princ. = resetado - a saída princ. = repouso - mantém a anterior * * ficou setado * ficou resetado * * Conclusão: não se sabe qual o estado que vai, apenas que será um dos dois, isto é, no proibido não fica ( no, somente com ) 22

2) FLIP FLOP SR ativado e desativado com nível alto FF S R S R S R status a Repouso Resetado Setado * Proibido Diagrama de Estados: S R status a a mantêm Setado SR Resetado Resetado SR SR Setado Proibido? Proibido S R 3) FLIP FLOP SR gatilhável (com clock} (sincronizável) FF SR com Clock Ck S R status x x a Repouso a Repouso Resetado Setado * Proibido X = qualquer ( ou ) Clock = dispositivo não reconhece as entradas Repouso = habilita as entradas e funciona como flip-flop SR (exercício anterior) 23

Simbologia S R SR Ck Clock com Nível ativa o FF- SR 4) Flip Flop D com clock Ck Ck Não tem condição proibida Na presença de Ck = D = S = R = RESETA D = S = R = SETA uando Ck =, não reconhece as entradas S/R = a (Repouso) Conclusão: A saída tem o mesmo valor da entrada D em determinado instante permite a transferência de dados em instantes de tempos definidos. 24

Simbologia: Diagrama de estados:: D D Ck FF- D com CK disparado com transição: Simbologia Positiva CK Negativa CK D D D D Ck Ck Aplicação: transferência paralela de dados binários: Ex.: saídas (bits)xyz de um circuito lógico combinacional transferidas simultaneamente através das entradas D de três FF-D (com o mesmo Clock) para as saídas 2 e 3) que pode armazena-los para posterior utilização D XYZ 23 D Circuito Lógico Combinacional X Y Z D D 2 2 D D 3 3 OS EXERCÍCIOS EM SALA E AS ATIVIDADES PARA CASA ESTÃO NO ANEXO DE EXERCÍCIOS DA AULA 22 Ck 25

Sistemas Digitais para Computação Roteiro da 23 a aula Referência ao Programa: Circuitos Seqüenciais; Tipos de Flip Flop Referência Livro Texto: Capítulo 5. a 5.8 Objetivo: apresentar os circuitos Flip Flop SR ME, Flip Flop JK ME ) Flip Flop SR MESTRE ESCRAVO S R m a?? m a?? Ck Ck S R status a a mantêm Resetado Setado?? Proibido uem segura o mestre em m = m = é o Ck =, R = S = Se Ck busca Set, Reset?? Não sabendo qual a condição, é impossível determinar o final. 26

FF JK ME J m a K m a Ck Ck J K status a a mantêm Resetado Setado Diagrama de estados a a TOGGLE J K Resetado Setado Aplicação: muito mais flexível que os FF-SR com clock, status proibido Toggle (comutação) muito utilizado em todos os tipos de contadores. 27

FF JK ME Outra análise S J K R Ck J S K R SR Ck Ck J K a a S' R' status Repouso Resetado Setado TOGGLE Trocado 28

FF JK ME com Preset e Clear J K Ck ou Preset e Clear são ativados com e portanto : Nível de repouso SÃO PRIORITÁRIAS e ASSÍNCRONAS (não dependem do clock) J e K Dependem do clock PR CL Ck J K status X X X Proibido / indesejável X X X Presetamento, setamento prévio, forçado X X X Clear forçado `-- X X a a Repouso por ausência de clock a a Repouso por ausência J e K preparado Resetado Setado a a TOGGLE OCORREU TRANSIÇÃO 29

-- NÃO HOUVE TRANSIÇÃO Diagrama de estados FF J K: J K X X X [ R ] [ S ] X resumindo: X Se um dispositivo JK - ME está resetado e se deseja continuar resetado, basta não ativar o setador (J = ), o resetador (K = X) tanto faz. X Se um dispositivo JKME está setado e se deseja continuar setado, basta não ativar o resetador (K = ), o setador (J = X) tanto faz. X Se um dispositivo JKME está setado e se deseja que seja resetado, basta garantir o resetador (K = ), o setador (J = X) tanto faz. X Se um dispositivo JKME está resetado e se deseja que seja setado, basta garantir o setador (J = ), o resetador (K = X) tanto faz. Obs: 24ª aula avaliação 3

Sistemas Digitais para Computação Roteiro da 25 a aula Referência ao Programa: Circuitos Seqüenciais Divisores de Freqüência / Contadores Assíncronos Contador de Modulo N (N = números de algarismos) CONTADOR ASSINCRONO DE MODULO 2 CONTA (,) Divisor por 2 Ck Ck CONTADOR ASSINCRONO DE MODULO 4 CONTA (,, 2, 3) S S Ck Ck S S DIVISOR POR 2 DIVISOR POR 4 Tomando as Saídas, Crescente 3 2 Tomando as invertidas Decrescente 3 2 Ck o o o ` ` ` ` ` ` ` ` o ` ` ` ` ` ` ` ` 3

CONTADOR ASSINCRONO DE MODULO 8 CONTA (,, 2, 3, 4, 5, 6, 7) S2 S 2 S 2 3 Ck Para SAÍDAS 2,, CRESCENTE 2 3 7 6 5 4 Para SAÍDAS INVERTIDAS DECRESCENTE 7 6 5 4 2 3 Ck S2 S S CONTADOR ASSINCRONO DE MODULO 6 CONTA ( a 5) S3 S2 S S 3 2 T 3 T T T 2 Ck 32

2 3 5 4 Saídas principais 2 3 2 9 4 5 6 7 8 Ck S3 S2 S S 5 4 3 2 2 Saídas invertidas 9 8 3 4 5 6 7 FLIP-FLOP TIPO T é o J K com as entradas J = K = e preset /clear em repouso = T Ck Ck 33

CONTADOR DE FAIXA é um contador assíncrono obtido a partir de um contador de módulo N (para uma faixa de contagem menor ou igual a N) Exemplo : CONTADOR DE FAIXA DE 2 A 5 - crescente 2 3 5 4 Inicio 2 Fim 5 Ck S2 S S S2 S S T 2 2 T T Ck Exemplo 2: CONTADOR DE FAIXA DE 5 A 2 - decrescente É obtido através da leitura das saídas invertidas no mesmo circuito acima: 5 4 2 3 34

Sistemas Digitais para Computação Roteiro da 26 a aula Referência ao Programa: Circuitos Seqüenciais (estados), Projetos de contadores de Faixa.. Contador de faixa/ 2 transições. 2 3 4 5 6 transição transição 4 9 Passos: - Pensar em mód 6 2- Inicializar 2 = c p p c p c c p 6 = 9 = 3- Transição p p c c c p c c 4 = 4 = Detectar Forçar 4- Clear ou Preset Ocupado coloca um AND 5- Clear ou Preset Sobra = 3 2 S3 S2 S S 3 2 T T T T 3 2 s s s s 3 2 s3 s2 s 6 4 s +5V k Ck [2] [9] [4] 35

2. Contador de faixa/ 2 transições Decrescente 4 3 2 Primeiro Método: complementar os estados 5 4 o o o o o o o o o 5 Complemento para N- 5 6 7 8 9 Monta o contador crescente para os complementares 2 3 4 5 Toma as bordas barradas 9 6 8 7 3 2 S 3 S 2 S S 3 2 32 3 2 +5V 3 2 4 k Ck 5 [5] 36

Exemplo : Projetar um Contador Assíncrono DECRESCENTE na seqüência: 4 3 7 3 4 3 2 3 4 5 6 7 6 7 COMPLEMENTAR OS ESTADOS (3) (4) (2) (5) () (6) () (7) S2 S S 2 2 2 2 +5V 2 5 k Ck [3] [6] [4] 37

Solução: 3 7 5 O CK inicia no FF de saída o é o clock de 2 2 é o clock de detectar o () e forçar o () CK 2 S2 S S 2 2 +5V k 2 Ck [] OS EXERCÍCIOS EM SALA E AS ATIVIDADES PARA CASA ESTÃO NO ANEXO DE EXERCÍCIOS DA AULA 25 e 26 38

Sistemas Digitais para Computação Roteiro da 27 a aula Referência ao Programa: Circuitos Seqüenciais: Contadores Síncronos para seqüência qualquer; projetos de contadores síncronos Exemplo : Projetar um Contador síncrono na seqüência: 3 2 Solução:. Pensar em modulo 3 com Ck comum (sincronizado) 3 J J 2 Ck K K Ck a J K X resetado p/ resetado (manter J=, K qq) X resetado p/ setado (colocar J=, K qq) X setado p/ resetado (manter K=, J qq) X setado p/ setado (manter K=, J qq) 2. Lembrar a regra do funcionamento do FF-JK 3. Construir a tabela considerando o item. 4. Usar o mapa para encontrar: J, K, J, K: 2 3 J X X J = K X X K = a J K J K X X 3 X X 2 X X X X J K X X X X J = K = 39

5. Esquematizar o circuito resultante J = K = J = K = J J K K Ck Exemplo 2: Projetar um Contador síncrono na seqüência: 3, 4,, 2,, 3... Solução: 3 4 2. Pensar em modulo 3 com Ck comum (sincronizado) 2 J2 J J Ck K2 2 K K 4

2. Lembrar a regra do funcionamento do FF-JK 3. Construir a tabela considerando o item 2 Ck a J K X resetado p/ resetado (manter J=, K qq) X resetado p/ setado (colocar J=, K qq) X setado p/ resetado (manter K=, J qq) X setado p/ setado (manter K=, J qq) a 2 J2 K2 J K J K 3 X X X 4 X X X X X X 2 X X X X X X 5 X X X X X X fora 6 X X X X X X 7 X X X X X X 4. Usar o mapa para encontrar J2, K2, J, K, J, K:,, 2,,,, 2,,,, X X X X X X X X X X X J2 = K2 =,, 2,,,, 2,,,, X X X X X X X X X X X J = 2 K =,, 2,,,, 2,,,, X X X X X X X X X X X J = K =, 2,,,, 4 5 3 7 2 6 4

5. Esquematizar o circuito resultante 42

43

OS EXERCÍCIOS EM SALA E AS ATIVIDADES PARA CASA ESTÃO NO ANEXO DE EXERCÍCIOS DA AULA 27 44

Sistemas Digitais para Computação Roteiro da 28 a aula Referência ao Programa: Circuitos Seqüenciais Registradores Referência Livro Texto: Capítulo 5.6 a 5.8; 7.5, 7.8 a 7.22 Objetivo: apresentar Registradores estáticos e de Deslocamento, Contador circular (anel) e contador Johnson (anel invertido), Revisão Flip Flop D com SR Ck Na presença de Ck = S = D = R = RESETA D D D = S = R = SETA Ck desabilita Habilita (enable) copia o dado na saída: D uando Ck =, não reconhece as entradas S/R a (Repouso) Não tem condição proibida Diagrama de estados: 45

FF D com J K J D D K Ck Ck sem transição com transição copia o dado na saída: D repouso Exemplo de projeto de contador síncrono com FF D com Transição 2 D2 D D 2 Ck +5V k [ 3 ] 7 3 2 5 2 D2 D D 3 2 2 5 5 7 7 3 X X X 4 X X X 6 X X X. Prever para onde (combinação) tem que ir e coloca esta nas entradas 2. Projeto mais fácil que JK, mas, em geral resulta em expressões mais complexas. 46

3. Mapa de Karnougt,, 2,,,, 2,,,, 3 2 X 4 5 7 6 X X D = 2 + +,, 2,,,, 2,,,, X X X X X X D2 = 2 + D = 2. + 4. Esquema 2 D2 D D 2 Ck +5V k [ 3 ] 47

REGISTRADOR ESTÁTICO: EXEMPLO: Registrador estático de 4 bits 4 FF - D com clock sincronizado SAÍDAS D D D D CK ENTRADAS Carrega / armazena uma palavra cada FF - D guarda um bit REGISTRADORES DE DESLOCAMENTO: São registradores baseados em dispositivos FF- D Sincronos D D Ck sem transição repouso com transição copia o dado na saída: D Na presença de transição Ck D = S = e R = RESETA ( = ) D = S = e R = SETA ( = ) 48

REGISTRADORES DE DESLOCAMENTO Exemplo 4 bits Deslocamento para a direita: Com Carga serial e Saída Paralela a entrada do seguinte é a sa í da do anterior. D = Entrada Serial à esq. Saídas Paralelas 3 2 2 2 CK EX: carregar o numero 3 = Clear D Ck 3 2 X ~-- 49

Deslocamento para a esquerda : Com carga serial e Saída Paralela. EX: carregar o numero = Saídas Paralelas 3 2 2 2 CK Clear D = Entrada Serial à direita Clear D Ck 2 3 X ~-- 5

Deslocamento para a direita: Com carga PARALELA e Saída SERIAL SH LD A B C D * Sa 2 Sb Sc Sd 2 CK EX: carregar o numero 3 = Clear LD Ck S A S B S C S D SSD x ~-- a etapa: Clear geral ~-- 2a etapa: Carga Paralela Ex.: ABCD = * * * Deslocamento * * * * * * * 5

CONTADORES REALIMENTADOS (ROTAÇÃO) 3 2 D 2 2 Ck Ck Exemplo de Possíveis Seqüências: 3 2 5 8 3 9 3 ANEL 8 9 2 4 4 6 2 2 2 6 3 5 5 7 7 5 4 3 3 4 7 52

CONTADOR JHNSON DE 4 BITS 3 2 D 2 2 Ck Ck 8 2 9 2 8 9 2 4 2 5 4 4 3 5 3 4 7 6 3 7 5 6 3 5 2 OS EXERCÍCIOS EM SALA E AS ATIVIDADES PARA CASA ESTÃO NO ANEXO DE EXERCÍCIOS DA AULA 28 Obs: 29ª aula aula resumo no laboratório, 3ª aula Revisão para avaliação e 3ª aula avaliação 53

Sistemas Digitais para Computação Roteiro da 32 a aula Referência ao Programa: Circuitos de Memória Referência Livro Texto: Capítulo. a.9 Objetivo: apresentar as Definições de Memória; Descrição Geral de uma memória; Conexão entre Memória e Processador; Barramento; Memória ROM; Memória RAM Descrição Geral Memórias Digitais - uaisquer dispositivos capazes de armazenar informação (números letras, símbolos, comandos etc.) codificada de forma binária, que permitem, ainda, acesso e recuperação da informação. - Requerem sinais de: Endereçamento (identificação da posição) Seleção / Habilitação Especificação de operação (leitura/escrita) Sincronismo (clock) - No Computador Subsistema responsável pelo armazenamento de dados (antes, durante e após um processamento) ou de instruções (comandos) Podem ser: Unidades básicas de memória semicondutoras (FLIP-FLOPs} Memória Principal (Registradores e Acumuladores Internos) Memória de Massa (Tambores, Discos, Fitas, Cartões) Conceitos Básicos: Célula de Memória: Dispositivo ou Ctto utilizado para armazenar bit ( ou ) Ex: FF, capacitor carregado, pequeno local numa fita ou disco. Palavra: Grupo de bits(células) que representam a menor quantidade de informação veiculada na memória. Tamanho da Palavra: quantidade de bits lidos ou escritos paralela ou simultaneamente. Ex.: palavra de 8 bits, 6 bits,..., 64 bits Capacidade: numero total de bits ou de palavras que a memória pode armazenar EX.: numero total de palavras X tamanho da palavra 6K X 8 = 6K Bytes = 6 x 24 x 8 bits = 6384 palavras de 8 bits = 372 bits Organização: disposição ou arranjo com que a memória é constituída. EX.: 6K X 8, 8K X 6 (mesma capacidade; organizações diferentes) Densidade: capacidade de armazenamento de bits no mesmo espaço Endereço: Conjunto de bits que identificam a posição de memória onde está armazenada uma palavra.ex: posição memória endereço de memória Escrita: operação de colocação de uma palavra (conteúdo) em uma posição (endereço) especificado, substituindo a anterior. 54

Leitura: operação de recuperação da informação armazenada (conteúdo) de uma determinada posição (endereço). Memórias de Endereçamento Explícito: Cada posição de memória é associada a um numero inteiro de a N-. Se: m linhas de dados (entrada/saída), A memória = vetor N X m N registradores de m bits cada. O arranjo requer K linhas de endereço N = 2 K ou K = (log N) / (log 2) = log 2 N Linhas de Endereço Linhas de Dados E D E Memória D E2 N X m D2...... EK - Dm - Sinais de Controle Memórias de Endereçamento Implícito: Na organização a palavra a ser lida ou escrita é implicitamente especificada EX.: LIFO (Last In First Out) Ultima escrita a Lida FIFO (First In First Out) a escrita a Lida escrita leitura escrita leitura Pilha (Stack) Fila (ueue) Memórias de Endereçamento por Conteúdo (Content Addressable memories CAMs): Especificar a posição através do conteúdo armazenado atualmente, através de busca e associação quando o resultado é positivo (math = casamento) Memórias somente de Leitura (Read Only Memories - ROM): Permite apenas a leitura de uma palavra previamente armazenada. 55

Memórias de Leitura e Escrita: Permite a leitura e a substituição (gravação). Memórias Não Voláteis: Retêm os dados íntegros por tempo indeterminado mesmo sem alimentação. EX: Fitas, núcleos de ferrite, discos, ROMs Memórias Voláteis: Os dados se perdem quando retirada a alimentação. Geralmente são baseadas em FF Memórias de Acesso Aleatório (Randon Access Memories RAMs): Chega direto ao local da informação armazenada Tempo de acesso é pequeno e uniforme São de leitura e escrita e voláteis. Memórias Estáticas: Os dados não deterioram com o tempo. Memórias Dinâmicas: Os dados necessitam ser reinseridos periodicamente (Refresh) Ex.:2 em 2 min. Vantagem: simplicidade (às vezes velocidade) e preço. Desvantagem: sistema de Refresh. Memórias de Acesso Seqüencial ou Serial: Passa por todos os endereços anteriores da localidade desejada. Ex.: fitas Magnéticas e registradores de deslocamento. O tempo de acesso depende da posição. Tempo de Acesso: É o tempo contado desde o instante da colocação do endereço até o complemento da operação, ou seja o aparecimento da informação à saída (leitura) ou a inclusão do dado na posição de memória (escrita). Representação Genérica da arquitetura de uma memória: Endereço Memória Dados Controle 56

Barramento: conjunto de linhas de Endereço, Dados e de Controle Barramento de Endereço: Fornece a posição da informação (dados) que se quer acessar Barramento de Dados: contém a informação a ser lida Barramento de Controle: sinais que controlam o funcionamento da memória: habilitação, leitura, escrita, programação etc. 57

58

A arquitetura interna da Memória Formada geralmente por uma matriz, decodificadores e um bloco de controle As linhas de endereços direcionadas para dois decodificadores (linha / coluna) Posição de memória cruzamento linha com coluna Numero de posições = 2n, onde n = num. de linhas de endereço Cada posição contém uma ou várias Células de memória. Decodificadores selecionam linha e coluna 59

Princípios básicos de operação Acessar com o endereço A 3 A 2 A A = Leitura/escrita (ARUITETURA INTERNA) Conexões CPU Memória 6

figura 5.4: Conexões CPU Memória Operação de Escrita:. CPU manda endereço binário da posição de memória onde deve ser armazenado o dado linhas do barramento de endereço 2. CPU coloca o dado linhas de barramento de dados 3. CPU ativa as linhas de controle para a operação da escrita na memória 4. Os Cis de memória decodificam o endereço posição que esta sendo selecionada 5. Os dados são transferidos para o local selecionado. 6

Operação de Leitura:. CPU manda endereço binário da posição de memória onde deve ser recuperado o dado linhas do barramento de endereço 2. CPU ativa as linhas de controle para a operação da leitura da memória 3. Os Cis de memória decodificam o endereço posição que esta sendo selecionada 4. Os Cis de memória colocam o dado linhas de barramento de dados 5. Os dados são transferidos para a CPU. Tipos de Memórias ROM Básica Programável em fabrica ROM PROM - PROGRAMÁVEL EPROM UVPRON Apaga com ultravioleta / grava eletricamente EAPRON Apaga eletricamente / grava eletricamente (Esareble) 62

Sistemas Digitais para Computação Roteiro da 33 a aula Projeto de Sistemas Digitais na Atualidade Referência ao Programa: Dispositivos Lógicos Programáveis Referência: Apostilha Arquitetura de Sistemas Digitais, Universidade Federal da Paraíba Alexandre Scaico Dezembro/2. INTRODUÇÃO Para muito de nós, a realização de um projeto de um sistema digital consiste em determinarmos a função lógica que o sistema que queremos projetar deve apresentar como resposta aos estímulos recebidos, e então construirmos um circuito lógico complexo que execute essa função a partir de circuitos lógicos simples (portas OR, AND, XOR, Flip-flops, contadores, registradores, etc.). Mas, devido a complexidade dos sistemas atuais, esse tipo de projeto está se tornando inviável devido a vários problemas que o projeto a nível de portas lógicas acarreta, tais como: - Alto número de CI s contendo os circuitos lógicos (portas lógicas) simples necessários; - Atraso global do sistema alto devido a contribuição individual dos atrasos de cada porta lógica individualmente; - Alto custo do projeto; - Necessidade de um grande layout físico para acomodar todos os componentes; - Alto consumo do sistema; - Possíveis erros de conexão e/ou mau contatos (confiabilidade do sistema); - Possíveis indisponibilidades dos circuitos necessários no mercado, acarretando em atraso na finalização dos projetos; - Necessidade de protótipos para testes, que acarreta em mais gastos. Junte a isso a evolução tecnológica que vem ocorrendo nos últimos 35 anos. Com a evolução, ocorreu um aumento na capacidade de processamento dos sistemas, e isso acarretou uma maior complexidade dos sistemas a serem projetados (e com isso um maior número de portas lógicas necessárias ao projeto). E também gerou uma maior escala de integração dos CI s, que é a VLSI (Integração em Altíssima Escala). Então, com a inviabilidade de se efetuar os projetos digitais da maneira convencional (com portas lógicas), pesquisas foram implementadas a fim de se obter uma forma alternativa mais viável de se efetuar os projetos em dispositivos que contivessem milhares de portas lógicas internamente, e que essas portas pudessem ser programadas de acordo com a necessidade do projeto a fim de implementar a função desejada (ao invés de ter que interligar uma quantidade considerável de CI s contendo portas lógicas, se usaria esse novo dispositivo). Esses estudos geraram a chamada lógica programável. Com a lógica programável surgiram vários novos dispositivos passíveis de serem programados pelo projetista (seja enviando o projeto para a produtora dos dispositivos efetuar a programação ou programando-o o próprio projetista). E, com esses dispositivos surgiu a necessidade de uma nova forma de se projetar, pois as formas tradicionais de projetos baseados em tabelas da verdade, em softwares de projeto lógico a partir de portas lógicas (o Eletronic Workbech é um exemplo), entre outros, já não eram mais viável. Dentre as novas técnicas que surgiram, a que despontou como a mais promissora é a descrição de hardware. Nesta modalidade de projeto, o projetista, com o auxílio do computador, descreve o hardware a ser projetado (o seu sistema digital) utilizando uma HDL (Hardware 63

Description Language Linguagem de Descrição de Hardware). Uma HDL é muito parecida com uma linguagem de programação de alto nível, como C ou Pascal. O projeto utilizando HDL se torna parecido com a programação, uma vez que o projetista inicialmente não se preocupa com a tecnologia que vai ser utilizada na implementação do projeto, e sim com a funcionalidade lógica do projeto. Após a descrição ser feita, existem várias ferramentas de simulação para testar a funcionalidade do projeto antes de sua implementação. E isto é importante porque reduz drasticamente o tempo de testes, uma vez que não é necessária a construção de protótipos e que, na ocorrência de um erro ou mudança no projeto, é muito simples se modificar a descrição do sistema em HDL. Ao término da etapa de teste é então escolhido o dispositivo que mais se adapte ao projeto (número de portas, tempo de resposta, etc.) e então utilizamos um software de síntese lógica, disponibilizado pelo fabricante do dispositivo, para convertermos a nossa descrição em HDL para um arquivo que contenha os dados necessários para a programação do dispositivo. E. uma vez realizada a programação, o dispositivo está pronto para ser utilizado. Deve-se ressaltar que existem dispositivos programáveis que só podem ser programados uma única vez (que são os que o projetista envia a descrição para o fabricante programar), e os que podem ser reprogramados de acordo com a necessidade (que são os programáveis pelo projetista). 2. A LÓGICA PROGRAMÁVEL 2. - O que é a Lógica Programável? Os componentes da lógica programável são dispositivos que possuem em sua lógica interna centenas (ou milhares) de portas lógicas, flip-flops e registradores; que são interligados internamente. Essas interconexões são os pontos programáveis da lógica. Podemos então programar essas conexões para permanecerem fechadas ou abertas, de acordo com a necessidade do projeto. Essas interconexões podem ser entendidas como fusíveis, que de acordo com a necessidade do projeto podem ou não ser queimados (desfazendo ou não a conexão entre portas lógicas). Essa queima é realizada pelo projetista, utilizando um software de programação do dispositivo. Existem vários tipos de dispositivos lógicos programável (PLD Programmable Logic Devices), como os mostrados abaixo: - PLA - PAL - Dispositivos Lógicos Programáveis Complexos (CPLD) - Arranjo de Portas Programáveis em Campo (FPGA) Podemos também considerar as memórias PROM como dispositivos de lógica programáveis se elas forem utilizadas para implementar funções lógicas. 2.2 Memórias PROM O conceito de programação de hardware (sistemas digitais) se materializou com a necessidade de se construir unidades de memória, cujo conteúdo fixo, não era perdido ao se desligar o sistema. Esta necessidade foi resolvida com a criação das memórias ROM, que vinham de fábrica com o seu conteúdo já determinado. Com a evolução surgiram as memórias PROM (ROM programável), cuja programação ocorria pela queima dos fusíveis internos (interconexões entre as portas lógicas básicas que compõem a PROM). Temos na figura a seguir o modelo de um PROM. Ela internamente 64

nada mais é que uma estrutura AND-OR, com a matriz AND fixa e a matriz OR programável. Então, podemos ver a matriz AND da PROM como um decodificador completo de endereços que pode ser programado a partir da matriz OR. Ao ser produzida, a PROM vem com todas as conexões internas. Para programá-la devemos aplicar níveis de tensão apropriados a fim de manter ou não a conexão de cada entrada de cada porta OR ( queimar ou não os fusíveis internos). Só que uma vez feita a programação, ela não pode ser desfeita. Com a evolução, sugiram novos tipos de ROMs que solucionaram essa limitação das PROMs, que são as EPROMs apagáveis por radiação ultravioleta, e as PROMs apagáveis eletricamente (EEPROM). Fig. (a) A arquitetura da PROM a torna adequada para PLDs; (b) Fusíveis são queimados para programar saídas para determinadas funções. 65

Então, podemos ver a PROM não apenas como uma memória apenas de leitura, mas também como um circuito combinatório genérico de n entradas e m saídas, cuja função lógica executada pode ser facilmente programável, como mostra a figura abaixo. Fig. 2 PROM vista como um circuito combinatório Mas o uso de PROMs como dispositivos programáveis apresentam algumas desvantagens, como por exemplo: - A memória não aproveita as vantagens das técnicas de minimização porque implementam diretamente a tabela da verdade; - uando um sistema possui menos saídas que o comprimento da palavra da memória, temos porções de memória que não são utilizadas totalmente. Por isso, os pesquisadores se empenharam em produzir dispositivos melhores que as memórias para implementar projetos lógicos, esses componentes são chamados de Dispositivos Lógicos Programáveis (PLD Programmable Logic Devices). 2.3 - Os Dispositivos Lógicos Programáveis (PLD) Dispositivos Lógicos Programáveis são dispositivos (circuitos integrados) configuráveis pelo usuário usados para implementar uma grande variedade de funções lógicas, tanto seqüenciais como combinacionais. PLDs podem implementar qualquer expressão booleana ou função construída a partir de estruturas lógicas. 66

Sua programação é efetuada pelo usuário utilizando uma ferramenta computacional de síntese lógica fornecida pelo fabricante do dispositivo. Podemos ter PLDs com pontos internos de programação permanentes ou reprogramáveis. Os pontos de programação são os fusíveis (conexões) que interconectam os elementos internos do PLD. É através da queima ou não desses fusíveis que programamos o dispositivo. Fig 2 a Exemplo de um dispositivo lógico programável. Devido a complexidade da estrutura interna dos PLDs, podemos dividi-los em duas categorias, como mostra a figura abaixo. E, em cada categoria temos os dispositivos mais representativos. PLD Arranjos Lógicos Programáveis Arranjos Lógicos Programáveis PAL PLA FPGA CPLD Fig. 3 Divisão dos PLDs 67

É importante destacar que esses componentes têm o objetivo central de oferecer a versatilidade, o baixo custo, a confiabilidade e a velocidade da microeletrônica em estruturas menos rígidas que as tradicionais. E, para que esses dispositivos sejam utilizáveis de maneira simples, os fabricantes oferecem programas de computador que, a partir de descrições simplificadas do circuito que se deseja projetar (em HDL), consegue-se gerar rapidamente a programação correta do dispositivo. Ressaltando-se que esses softwares, além de gerar o conteúdo a ser gravado (programado) no componente, oferecem recursos de simulação (verificação), documenta completamente o projeto e, ainda, gera roteiros de testes. 2.4 - Arranjos Lógicos Programáveis Os dispositivos que são arranjos lógicos programáveis possuem uma estrutura interna semelhante baseadas na estrutura interna AND-OR das PROMs. A estrutura consiste de um número de entradas ligadas a número de portas AND. As saídas das portas AND são conectadas as entradas de um número de portas OR, cujas saídas são as saídas do dispositivo. Nestes dispositivos podemos ter tanto as duas matrizes de portas programáveis, quanto apenas a matriz de portas AND programáveis. E isso gerou dois tipos de dispositivos: as PLAs e as PALs. Estes dispositivos, assim como as PROMs, só podem se programados um única vez. 2.4. - PLA A estrutura de uma PLA é muito semelhante a de uma PROM. Só que ela possui uma menor quantidade de portas AND (não formando um decodificador completo), e possuindo tanto a matriz de portas AND quanto a matriz de portas OR programáveis. Temos a seguir a Simbologia simplificada para PLD 68

Fig. 4 Na Estrutura típica de uma PLA a matriz de ANDs também é programável. Possuindo as duas matrizes de portas programáveis, as PLAs possibilitam que o projetista implemente termos minimizados (que não utilizam todas as entradas), como mostra o diagrama simplificado abaixo (note que cada linha de entrada das portas AND representam todas as entradas disponíveis na portas, estando apenas em notação simplificada). Fig 5 Implementação de uma função lógica usando PLA 69

2.4.2 PAL Com o uso da PLA s foram verificadas que existiam situações em que a flexibilidade da matriz OR programável era desnecessária, o que não justificava o uso da PLAs. Além disso, a existência das duas matrizes (AND e OR) programáveis acarretava uma grande propagação de atraso entre a entrada e a saída do dispositivo (além de uma maior custo do dispositivo). Por causa disso foi-se criado um dispositivo baseado no PLA só que mais simples, que é o PAL. O PAL se assemelha ao PLA, tendo apenas a matriz de portas AND programável (a de portas OR é fixa). Temos a seguir a estrutura interna simplificada de uma PAL. Fig. 6 (a) Estrutura típica de Arquitetura de uma PAL; (b) A mesma PAL programada para implementar determinadas funções. 7

Essa estrutura básica da PAL pode ser varia da em quatro alternativas básicas: - Combinatório; - Entrada/Saída Programada; - Saídas com registradores e realimentação; - Saídas com porta XOR. O PAL mais simples, o combinatório, tem as saídas iguais as somas de produtos, sem realimentação (o PAL da figura anterior). Os PALs mais complexos realimentam a saída de volta para a entrada, permitindo que a saída seja também uma entrada. Outra característica de PALs mais complexos e a existência de registradores na saída, que fornecem aos PALs a possibilidade de sintetizar circuitos seqüenciais síncronos. Um tipo de PAL bem complexo é o que dispõe de circuitos de saída que incorporam a porta XOR. Tais dispositivos são normalmente chamados de aritméticos porque são sempre necessários quando se quer sintetizar unidades aritméticas. 2.5 - Arranjos de Portas Programáveis (Programmable Gate Array) Os arranjos de portas programáveis são estruturas mais genéricas e versáteis que as baseadas na estrutura típica de um PROM (PAL, PAL ou a própria PROM). Nestas estruturas existem recursos de configuração e interligação mais genéricos que aqueles apresentados pelo rígido esquema baseado na estrutura AND-OR. Os fabricantes destes tipos de dispositivos garantem que com seu uso se consegue um fator de utilização de 8 a 9%, enquanto que com PALs, tipicamente, utiliza-se apenas cerca de 5% de seus componentes. Inicialmente, assim como as PROMs, estes componentes só eram passíveis de uma única programação. Mas, com o desenvolvimento das técnicas de fabricação, surgiram as versões programáveis em campo (que podiam ser reprogramadas de acordo com as necessidades do projetista), dentre as quais podemos destacar os FPGAs e os CPLDs. Devemos salientar que com o surgimento das versões programáveis em campo, as versões programadas na fábrica não deixaram de existir. Pois componentes programáveis em fábrica são sempre mais confiáveis, dispensam as etapas de programação e, dependendo do volume, são mais baratos. Devido a esses fatores é que os fabricantes oferecem versões programáveis em fábrica para os dispositivos programáveis em campo que dispõem. A idéia é que sempre que se necessitar de componentes para elevadas quantidades, utiliza-se o componente programável em campo para a construção dos protótipos, e uma vez terminado o projeto e assegurado que se disponha da programação correta do dispositivo, o fabricante poderá fornece-lo em versões programáveis de fábrica. 2.5. - CPLD (Complex PLD) De uma maneira genérica os CPLDs (ou EPLDs Erasable Programmable Logic Device) podem ser vistos como dispositivos que agregam em sua estrutura vários PLDs (PLA ou PAL) interligados por conexões programáveis, como ilustra a figura a seguir. Fig. 7 Visão genérica de um CPLD 7

Na realidade, sua estrutura interna é formada por centenas de macrocélulas programáveis, interligadas por conexões também programáveis (cada PLD da figura anterior seria, na verdade, uma macrocélula). Cada macrocélula é composta por uma matriz AND-OR (com a matriz AND programável e a OR fixa, como nos PALs) para implementar as funções lógicas combinacionais, cujas saídas ativam módulos de entrada/saída (compostos por flip-flops e realimentações com funções e interligações programáveis). Os pinos de E/S podem ser configurados como apenas saída, apenas entrada, ou entrada/saída. Os CPLDs são programáveis em campo, e podem ser reprogramados quantas vezes seja necessário. 2.5.2 - FPGA (Field Programmable Gate Array) Os FPGAs (Field Programmable Gate Arrays Arranjo de Portas Programáveis em Campo), em comparação com os PLDs, possuem uma arquitetura mais flexível baseada no conceito de blocos lógicos. Um bloco lógico (BL) consiste de um certo número de portas lógicas capazes de implementar uma grande variedade de funções lógicas dependendo de sua programação, e pode ou não conter registradores. Temos em detalhe, na figura abaixo, a estrutura interna de um BL típico do fabricante Xilinx, que consiste em dois registradores, um número de multiplexadores e uma unidade de função combinatória (para implementar as funções lógicas). Fig 8 Estrutura de um Bloco Lógico da Xilinx Tipicamente, os blocos lógicos de um FPGA são idênticos, e cada bloco pode ser programado individualmente para realizar um pedaço da lógica do projeto (decompondo a função lógica geral do projeto em funções menores que serão implementadas pelos blocos lógicos). A complexidade de um bloco lógico pode variar (não se limita a estrutura típica mostrada acima) consideravelmente entre diferentes FPGAs, indo desde um bloco de granularidade fina implementando uma ou duas funções lógicas de duas ou quatro variáveis, até blocos de granularidade grossa implementando diversas funções lógicas de quatro a dez variáveis. 72

Cada FPGA contém um grande número de blocos lógicos, tipicamente entre 5 e 25, e algumas vezes mais. Cada bloco lógico é conectado aos outros blocos lógicos e aos pinos de E/S por interconexões programáveis. Temos a seguir alguns exemplos de arquiteturas de FPGAs no que diz respeito ao blocos lógicos e as interconexões programáveis. Fig 9 Exemplos de arquitetura de FPGAs com respeitos as interconexões entre blocos lógicos Podemos entender as interconexões programáveis como um conjunto de fios e um conjunto de chaves programáveis entre esses fios. As chaves são programadas para conectar ou desconectar segmentos de fio, de forma a prover os caminhos de comunicação desejados. A figuras a seguir mostram exemplos. 73

2.6 - Considerações finais Fig. Exemplos de conexão entre Blocos Lógicos Como já foi dito, para efetuarmos um projeto utilizando os dispositivos explicados, necessitamos de uma nova técnica de projeto e de um software que permita realizar a programação (software de síntese lógica). Para o caso da programação, cada dispositivo possui o seu próprio software (de síntese lógica) que é fornecido pelo fabricante. Resta, então, aprender uma nova técnica de projeto. E, como também já foi mencionado, a técnica mais promissora nos dias atuais é a descrição de hardware. Pois, além das linguagens de descrição de hardware estarem amplamente difundidas e serem de fácil aprendizado (já que se parecem com uma linguagem de programação de alto nível), os softwares de síntese lógica (que programam os dispositivos) aceitam o projeto em linguagem de descrição de hardware para fazerem a programação dos dispositivos. E, dentre as linguagens de descrição de hardware, a mais promissora nos dias atuais é o Verilog HDL. 74

Devemos salientar também que, para o usuário final, FPGA e CPLD podem ser vistas como o mesmo tipo de estrutura. A única diferença está na sua estrutura interna, mas o seu resultado final é o mesmo. O fato é que um dos grandes fabricantes, a Xilinx usa o nome FPGA, enquanto outro grande fabricante, a Altera, usa o nome CPLD. Tanto faz usar uma ou a outra (embora os fabricantes tentem mostrar que a sua estrutura interna é sempre melhor), que se obtém o mesmo resultado. Na prática, tanto os FPGAs quanto os CPLDs são conhecidos como FPGAs. Existe atualmente uma nova tecnologia que permite usarmos um conceito chamado cache lógica com FPGAs. A cache lógica é um meio mais barato de se implementar lógica mais eficientemente. As funções ativas da aplicação que está sendo executada pelo FPGA podem ser reconfiguradas durante a execução, enquanto funções inativas são armazenadas em uma memória mais barata (um EPROM, por exemplo). uando uma nova função é necessária, ela é buscada na memória e escrita sobre as antigas. Ou seja, as funções vão sendo buscadas a medida que são necessárias como em uma cache de computador. Essa técnica foi desenvolvida pela ATMEL Corporation e, segundo a ATMEL, com isso conseguimos um aumento muito grande da utilização do FPGA, pois estudos seus mostram que em um FPGA de com uma função que o utiliza por completo, apenas 2 são utilizadas ao mesmo tempo. Então, utilizando essa tecnologia para fazer a cache das outras 8 portas podemos implementar essa mesma função com um FPGA de 2 portas (bem mais barato). Finalizando, é interessante saber que os dispositivos reprogramáveis não existem apenas na área digital. Existem circuitos reconfiguráveis analógicos, os FPAAs (Field Programmable Analog Arrays); e os mistos (que misturam estruturam analógicas e digitais), os FPMAs (Field Programmable Mixed Arrays). 2.7 Bibliografia. FREGNI, Edson e SARAIVA, Antonio M. Engenharia do Projeto Lógico Digital Ed. Edgard Blûcher LTDA, São Paulo, SP, 995. 2. SEALS, R. C. & WHAPSHOTT, G. F. Programmable Logic PLDs and FPGAs. Ed. McGraw-Hill, USA, 997. 3. DEWEY, Allen M. Analysis and Design of Digital Systems with VHDL. Ed. ITP, Boston, MA, USA, 997. 4. WESTE, Neil H. E. & ESHRAGHIAN, Kamran. Principles of CMOS VLSI Design A System Perspective. 2a Edition, Ed. Addison Wesley, Santa Clara, CA, USA, 993. 5. Altera Data Book. Altera Corporation, 996. 6. Implement Cache Logic with FPGAs. Aplication Note, Atmel Corporation, 999. 7. Programmable Logic Devices. (www.eeng.dcu.ie/~scaifer/csh/pld/pld.html} 8. FPGA Page. (www.ele.auckland.ac.nz/students/chengms/fpga.htm) 9. FPGA Research at University of Toronto. (www.eecg.toronto.edu\eecg\research\fpga.html). FIPSOC: Field Programmable System on a Chip Family. (www.sida.es\ftpsoc.htm) 75