Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação Aula 2-T 1. Projeto de Unidade Lógico-Aritmética (ULA): Funcionamento e características temporais de registradores. Outros operadores lógicos e aritméticos. Estrutura de uma ULA completa. Prof. José Luís Güntzel guntzel@inf.ufsc.br www.inf.ufsc.br/~guntzel/ine5406/ine5406.html Sistemas DigitaisSistemas Digitais INE 5406INE 5406 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.2 Cadenciamento de Sistemas Digitais • A maior parte dos sistemas digitais são sincronizados por um sinal monótono denominado relógio (ou clock, em inglês) • Sistemas digitais cadenciados por sinal de relógio são denominados síncronos • No projeto de sistemas digitais síncronos, registradores são utilizados 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.3 borda ascendente borda descendente período (T) nível altonívelbaixo Sinal de Relógio (ou Clock) tempo Características: • Período (T): tempo entre duas bordas consecutivas de mesmo tipo. Medido em submúltiplos do segundo (ms, µs, ns) • Freqüência: f = 1/T, medida em múltiplos do hertz (kHz, MHz, GHz) • Duty cycle: T1/T x 100 %, onde T1 é o tempo entre uma borda ascendente e a borda descendente que a segue. Nomenclatura borda ascendente = borda de subida = borda positiva = flanco de subida etc borda descendente = borda de descida = borda negativa = flanco de descida etc 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.4 Estimativa do Período do Relógio 0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 1 possíveis caminhos críticos • Período mínimo: Tmin > Tpcrit (Tpcrit = atraso do caminho crítico) • Freqüência máxima: fmax = 1/Tmin Ri ck Ro 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.5 Preliminares: 1 ns (1 nanossegundo) = 1 x 10-9 s T = 1/f ⇒ f = 1/T 1/1s = 1 Hz Cálculo: f = 1/ (10 x 10-9) Hz = 0,1x 10+9 Hz = 100 x 10+6 Hz = = 100 MHz Exemplo 1: Estime o período do relógio para um circuito combinacional cujo atraso crítico é 10 ns. Estimativa do Período do Relógio 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.6 O Latch RS Controlado símbolo circuito com portas nor e and mantém estado anteriorQtXX0 1 1 1 1 C proibido-11 estado reset001 estado set110 mantém estado anteriorQt00 comentárioQt+1SR tabela de transição de estados R S Q C Q R1 S1 Q Q R S C Quantos transistores CMOS são necessários? 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.7 O Latch RS Controlado Diagrama de estados tabela de transição de estados reset set C=1 ∧ R=0 ∧ S=1 C=1 ∧ R=1 ∧ S=0 C=0 ∨ (C=1 ∧ R=0 ∧ S=0) ∨ (C=1 ∧ R=0 ∧ S=1) C=0 ∨ (C=1 ∧ R=0 ∧ S=0) ∨ (C=1 ∧ R=1 ∧ S=0) QtXX0 1 1 1 1 C -11 001 110 Qt00 Qt+1SR 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.8 Latch D símbolo circuito a partir do latch RS controlado estado set111 estado reset001 mantém estado anteriorQtX0 comentárioQt+1DC R S Q C Q D C D Q C Q tabela de transição de estados Quantos transistores CMOS são necessários? 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.9 Latch D tabela de transição de estados 111 001 QtX0 Qt+1DC D Q C Q Q C D Q t1 t2 t3 t4 Exemplo de funcionamento 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.10 Latch D com ativação em lógica completar tabela de transição de estados110 000 QtX1 Qt+1DC Q C D Q t1 t2 t3 t4D Q C Q Exemplo de funcionamento 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.11 D C Qm Q FF mestre D Q C Q D Q C Q Q circuito Considerando uma implementação com portas CMOS, necessita 38 transistores: 2 x 18 + 2 = 38 Flip-flop D Mestre-Escravo FF escravo Assumindo que o inversor possui atraso desprezível, pode-se considerar que o FF escravo se comporte como um FF ativado com lógica negada… Comportamento do FF mestre: 111 001 QtX0 Qt+1DC 110 000 QtX1 Qt+1DC 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.12 D C Qm Q D Q C Q D Q C Q Q Flip-flop D Mestre-Escravo Exemplo de funcionamento C dado Qm Q 111 001 QtX0 Qt+1DC 110 000 QtX1 Qt+1DC FF mestre FF escravo 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.13 D Q C Q símbolo circuito com portas nand 11↑ 00↑ QtX≠↑ Qt+1DC tabela de transição de estados necessita 24 transistores D C 1 Q Q 2 4 3 5 6 Flip-flop D Disparado Pela Borda Ascendente (ou sensível à borda ascendente ou à borda de subida…) 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.14 D Q C Q Q C D Q 11↑ 00↑ QtX≠↑ Qt+1DC tabela de transição de estados Flip-flop D Disparado Pela Borda Ascendente Exemplo de funcionamento 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.15 Q C D Q 11↓ 00↓ QtX≠↓ Qt+1DC D Q C Q tabela de transição de estados Flip-flop D Disparado Pela Borda Descendente Exemplo de funcionamento 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.16 D Q C Q clear limpa dado CK Q CK Q limpa dado 11↑ 00↑ QtX≠↑ Qt+1DC tabela de transição de estados Flip-flop D Disparado Pela Borda Descendente, com Reset Assíncrono Exemplo de funcionamento 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.17 • Tempo de Preparação - tsu (setup time) • Tempo de Manutenção - th (hold time) • Atraso de Propagação - td ou tp (propagation delay) Latch D* Flip-flop D** Q CK D tsu th tdtd Q tsu th td valor da entrada D não é amostrado * ativado com lógica direta ** disparado pela borda de descida Características Temporais de Latches e Flip-flops 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.18 controle D Q C Q D3 Q3 D Q C Q D0 Q0 D Q C Q D2 Q2 D Q C Q D1 Q1 0123 entradas individuais saídas individuais Registrador com Carga Paralela • Existe um FF para cada bit a ser armazenado • Todos os FFs “obedecem” a um mesmo sinal de controle • O termo “carga paralela” refere-se ao fato de existir uma entrada para cada bit, de modo que é possível carregar simultaneamentetodos os bits do dado Símbolo no nível RT controle Reg 4 4 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.19 controle D Q C Q D3 Q3 D Q C Q D0 Q0 D Q C Q D2 Q2 D Q C Q D1 Q1 0123 Registrador com Carga Paralela Q controle D 1001 1001 0101 0011 0000 1001 0101 0011 0000 Exemplo de funcionamento (assumindo dados quaisquer de 4 bits na entrada D) A cada borda de subida de “controle” um novo dado é amostrado e fica armazenado no registrador (até a próxima borda de subida de “controle”) 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.20 controle D Q C Q D3 Q3 D Q C Q D0 Q0 D Q C Q D2 Q2 D Q C Q D1 Q1 0123 Registrador com Carga Paralela • Peculiaridade: a cada borda de subida de “controle” um novo dado é amostrado, mesmo que não se queira amostrar um dado novo… • Porém, às vezes pode ser necessário que o registrador obedeça a um sinal de controle sincronizado com o sinal de relógio. (Solução na próxima transparência…) 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.21 CK D Q C Q D3 Q3 0 1 D Q C Q D2 Q2 0 1 D Q C Q D1 Q1 0 1 D Q C Q D0 Q0 0 1 0123 carga Símbolo no nível RT Registrador com Carga Paralela Controlada carga ck Reg 4 4 • Existe um sinal de “carga” e um sinal de relógio (ck) • A cada borda ativa de “ck” cada FF amostra um valor de sua respectiva entrada “D”: – Se carga=0, cada FF amostra seu respectivo “Q” – Se carga=1, cada FF amostra um valor externo “Di” 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.22 Registrador com Carga Paralela Controlada CK D Q C Q D3 Q3 0 1 D Q C Q D2 Q2 0 1 D Q C Q D1 Q1 0 1 D Q C Q D0 Q0 0 1 0123 carga D ck carga 1001 1001 0101 0011 0000 1001 0000Q Exemplo de funcionamento (assumindo dados quaisquer de 4 bits na entrada D) 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.23 Registradores & Operadores Aritméticos ck R1 n R2 n +/- n n n op R3 ck ck A cada borda de relógio, este circuito faz: R3 ← R1 + R2 ou R3 ← R1 − R2 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.24 Registradores & Operadores Aritméticos ck R1 n R2 n op R3 ck ck +/− ck 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.25 Registradores & Operadores Aritméticos CR ck R1 n CR ck R2 n +/- n n n op CR ck R3 Se CR=1, a cada borda de relógio, este circuito pode fazer: R3 ← R1 + R2 ou R3 ← R1 − R2 Enquanto CR=0, após cada borda do relógio os conteúdos de R1, R2 e R3 não sofrem alteração. 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.26 Registradores & Operadores Aritméticos Este circuito pode ser “programado” para fazer (p.ex.): R1 ← A; R2 ← B; Enquanto (condição) { R1 ← R1 + R2; R2 ← B; } R1 n CR2 ck R2 n +/- n n n op C1 n 0 1 A B CR1 ck 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.27 CK dado (entrada serial) reset Q3 D C Q 3 clear Q Q2 D C Q 2 clear Q Q0 D C Q 0 clear Q Q1 D C Q 1 clear Q Registrador de Deslocamento à Direita Símbolo no nível RT desloca Reg desl 4 4 • Existe um sinal de “desloca” • A cada borda ativa de “desloca” cada FF amostra o valor da saída “Q” do FF adjacente à esquerda • O FF mais à esquerda lê um bit da entrada “dado”, a qual corresponde a uma “entrada serial” • Este registrador também pode ser visto como um registrador com carga serial… 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.28 CK reset dado Q3 Q2 Q1 Q0 CK dado (entrada serial) limpa Q3 D C Q 3 clear Q Q2 D C Q 2 clear Q Q0 D C Q 0 clear Q Q1 D C Q 1 clear Q Registrador de Deslocamento à Direita Exemplo de funcionamento 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.29 Registrador de Deslocamento à Direita controlado Complete as ligações faltantes CK D Q C Q Q3 0 1 D Q C Q Q2 0 1 D Q C Q Q1 0 1 D Q C Q Q0 0 1 0123 desloca Entrada serial Quantos ciclos de relógio será preciso manter “desloca”=1 até preencher o conteúdo deste registrador? 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.30 ULA Simples Suponha que se necessite de uma Unidade Lógico-Aritmética (ULA) capaz de realizar as seguintes operações S = A OR B S = A AND B S = A − B S = A + B operação “E” bit a bit01 “OU” bit a bit11 subtração10 adição00 comentárioC0C1 Símbolo no nível RT ULA A B S C n n n overflow 2 Obs: o sinal de overflow pode ou não ser necessário… 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.31 ULA Simples S = A OR B S = A AND B S = A − B S = A + B operação 01 11 10 00 C0C1 Visão Geral desta ULA +/- A B S C0 n n n AND/OR bit a bit C1 n n 0 1 S=A-B1 S=A+B0 operaçãoC0 S=A OR B1 S=A AND B0 operaçãoC0 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.32 ULA Simples Visão de um bit desta ULA (os demais bits serão similares) SC s0 c1 b0a0 C1 0 1 C0 0 1 S = A OR B S = A AND B S = A − B S = A + B operação 01 11 10 00 C0C1 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.33 ULA Simples Mas onde foi parar o overflow? Voltando ao projeto do todo… +/- A B S C0 n n n AND/OR bit a bit C1 n n+1 0 1 overflow “0” noverflow n+1 n+1 n n 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.34 Representando Dados com n bits (nível RT) +/- n n n overflow n overflow n+1 +/- n n Uma ULA para operandos com n bits cada Indicando como um número de n+1 bits é composto Convenção para indicar que o bit menos significativo está mais à direita 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.35 S n+1 noverflow n “0” n+1 “Decompondo” um número de n+1 bits em um número de n bits e mais um sinal Indicando como um número de n+1 bits é composto (outro exemplo) Representando Dados com n bits (nível RT) 1. Projeto de Unidade Lógico-Aritmética Prof.José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.36 ULA Simples Exercício 2: Acrescentar à ULA recém projetada uma saída de 1 bit chamada zero, que sinaliza se o resultado da operação é zero (“flag de zero”) Símbolo no nível RT ULA A B S C n n n overflow 2 zero S = 01 S != 00 significadozero 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.37 ULA Simples Exercício 2: Solução +/- A B S C0 n n n AND/OR bit a bit C1 n n+1 0 1 overflow “0” noverflow n+1 n+1 n n zero =0? n 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.38 ULA Simples Exercício 2: Então o problema se resume a projetar um circuito combinacional capaz de testar se número de n bits vale zero ou não… S = 01 S != 00 significadozero zero =0? n S 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.39 Testando Números Exercício 3: Projete um circuito comparador capaz de testar se dois números são iguais entre si. Seu funcionamento deve seguir a tabela abaixo. A = B1 A != B0 significadoiguais iguais Comp. n B n A 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.40 Um deslocador (shifter) com uso de multiplexadores 2:1 • Se desloca=1, este circuito desloca cada bit uma posição para a esquerda • Qual é o significado desta operação? entrada serial 10 A0 S0 10 A1 S1 10 A2 S2 10 A3 S3 desloca Deslocador Combinacional 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.41 Outro deslocador (shifter) com uso de multiplexadores 2:1 entrada serial 1 0 A0 S0 1 0 A1 S1 1 0 A2 S2 1 0 A3 S3 desloca • Se desloca=1, este circuito desloca cada bit uma posição para a direita • Qual é o significado desta operação? Deslocador Combinacional 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.42 Multiplicação com Circuito Combinacional • É uma implementação direta do esquema ao lado • Cada bit dos produtos parciais é gerado por meio de um “E” lógico x 1 0 0 1 1 0 1 1 + 1 0 0 1 1 0 0 1 - 0 0 0 0 - - 1 0 0 1 - - - 1 1 0 0 0 1 1 multiplicador resultado multiplicando produtos parciais O Multiplicador Matricial 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.43 O Multiplicador Matricial (p/ Números s/ Sinal) A0 B0A0 B1A0 B2 A1 B0A1 B1A1 B2 Somador de 3 bitsCarry outA2 B0A2 B1A2 B2 0 M0M1M2M3M4M5 Somador de 3 bitsCarry out Multiplicação com Circuito Combinacional • Para multiplicar dois números de n bits são necessários n-1 somadores de n bits • Problemas: – Custo – Atraso crítico! caminho crítico 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.44 O Símbolo no Nível RT 3 X 3 Y 6 S * O Multiplicador Matricial (p/ Números s/ Sinal) Multiplicação com Circuito Combinacional 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.45 O Multiplicador Matricial Pipeline Multiplicação com Circuito Combinacional • Passo 1: todos os produtos parciais são gerados • Passo 2: os produtos parciais são somados de dois em dois • Passo 3: os resultados do passo anterior são somados de dois em dois • … 1. Projeto de Unidade Lógico-Aritmética Prof. José Luís GüntzelINE/CTC/UFSC Sistemas Digitais - semestre 2008/2 slide 2T.46 Registradores de pipeline O Multiplicador Matricial Pipeline Multiplicação com Circuito Combinacional + n n n + n n n + n n n + n n n + n n n + n n n + n n n 1o estágio 2o estágio 3o estágio O Atraso crítico fica dividido por 3 (ou por 4 se contarmos o estágio de geração dos produtos parciais
Compartilhar