MC542 Organização de Computadores Teoria e Prática 2007 Prof. Paulo Cesar Centoducatte [email protected] www.ic.unicamp.br/~ducatte MC542 4.1 MC542 Circuitos Lógicos Projeto de Circuitos Seqüenciais “DDCA” - (Capítulo 3) “FDL” - (Capítulo 7) MC542 4.2 Projeto de Circuitos Seqüenciais Sumário • • • • Introdução Latches e Flip-Flops Projeto de Circuitos Síncronos Registradores • • Registradores de Deslocamento Contadores – Uso de Registradores com Barramento – Assíncronos – Síncronos MC542 4.3 Introdução • As saídas de um circuito seqüencial dependem dos valores presente e passados de suas entradas. • Lógica seqüencial possue memória. • Algumas definições: – Estado (State): conjunto de informações a cerca do circuito necessárias para se prever o seu comportamento futuro. – Latches e flip-flops: elementos de estado que armazenam um bit – Circuitos seqüencias Síncronos: circuito combinacional seguido de um banco de flip-flops MC542 4.4 Elementos de Estados • O estado de um circuito determina o seu comportamento futuro • Elementos de Estado armazenam o estado – – – – Circuito bi-estável Latch SR Latch D Flip-flop D » Outros tipos de flip-flops • JK • T • SR MC542 4.5 Circuito Bi-estável • Bloco Fundamental para a construção dos outros elementos de estado • Duas saídas: Q, Q • Sem entradas. I2 Q I1 Q I1 Q I2 Q MC542 4.6 Circuito Bi-estável: Comportamento • Considere os dois casos abaixo: 1 I1 0 Q – Q = 0: então Q = 1 e Q = 0 0 – Q = 1: então Q = 0 e Q = 1 0 1 I2 I1 I2 1 1 0 Q Q Q • O circuito bi-estável armazena 1 bit do estado na variável, Q (ou Q ) • Porém não há entrada para controle do estado MC542 4.7 Elemento de Memória com Controle Load A Data B Output TG1 TG2 MC542 4.8 SR Latch • Latch Set/Reset (Latch SR) • Definições – Set: Saída igual a 1 – Reset: saída igual a 0 • Quando a entrada set, S, é 1 (e R = 0), Q = 1 • Quando a entrada reset, R, é 1 (e S = 0), Q = 0 R S R Q N2 Q Q S • Qual a tabela verdade? N1 MC542 4.9 SR Latch • Considere os quatro casos possíveis: •S = 1, R = 0 •S = 0, R = 1 •S = 0, R = 0 •S = 1, R = 1 MC542 4.10 SR Latch • S = 1, R = 0: then Q = 1 and Q = 0 R 0 N1 1 Q 0 S 0 1 N2 0 Q • S = 0, R = 1: then Q = 0 and Q = 1 R 1 N1 0 Q 1 S 0 0 N2 1 Q MC542 4.11 SR Latch • S = 0, R = 0: então Q = Qprev e Q = Qprev Qprev = 0 R 0 N1 Qprev = 1 0 R Q 1 S 0 0 (memória!) 0 N1 1 Q 0 N2 1 Q S 1 0 N2 0 Q • S = 1, R = 1: então Q = 0 e Q = 0 (estado invalido: Q ≠ NOT Q) R 1 N1 0 Q 0 S 0 1 N2 0 Q MC542 4.12 SR Latch R S Q a Q b Q S R Q 0 0 0/1 1/0 0 1 0 1 1 0 1 0 1 1 0 0 a b (no change) MC542 4.13 SR Latch Latch SR R Q S Q t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 1 R 0 1 S Qa Qb 0 1 0 1 0 ? ? Time MC542 4.14 Latch SR com Enable R En S R Q(t + 1) 0 x x Q(t) (no change) 1 0 0 Q(t) (no change) 1 0 1 0 1 1 0 1 1 1 1 x R Q En Q S S MC542 4.15 Latch SR com Enable 1 Clk 0 1 R 0 1 S 0 1 ? Q 0 1 ? Q 0 Time S Q Clk R Q MC542 4.16 Latch SR com Nand S Q En Q R Qual a tabela verdade? MC542 4.17 Latch D S D (Data) En D Q(t + 1) 0 x Q ( t) 1 0 0 1 1 1 Q En Q R En D R S D R S Q Q D Q En Q Q Q MC542 4.18 Latch D t 1 t 2 t 3 t 4 En D Q Time MC542 4.19 Flip-Flop D • • • • Duas entradas: CLK, D Q só muda na borda (subida ou decida) do CLK O flip-flop “samples” D na borda do CLK O flip-flop é chamado de dispositivo edge-triggered devido a ser ativo na borda do clock Flip-Flop D D Q Q MC542 4.20 Flip-Flop D Mestre-Escravo Master Slave Q D Clock D Q Clk Q Q m D Q Clk Q s Q Q CLK D Q CLK D D Q L1 Q Q CLK N1 D Q Q L2 Q Q MC542 4.21 Flip-Flop D Mestre-Escravo Clock D Q m Q = Q s MC542 4.22 Flip-Flop D vs. Latch D CLK D Q Q D Q Q CLK D Q (latch) Q (flop) MC542 4.23 Flip-Flop D vs. Latch D CLK D Q Q D Q Q CLK D Q (latch) Q (flop) MC542 4.24 Flip-Flop D Q Qa Clk Q Qa Q Qb Q Qb Q Qc Q Qc D Clock D D Clock D Qa Qb Qc MC542 4.25 Flip-Flop D Sensível à Borda de Subida 1 2 P3 P1 5 Q 6 Q Clock 3 D 4 P2 P4 D Clock Q Q MC542 4.26 FF D Mestre-Escravo com Preste e Clear Assíncronos Preset D Q Clock Q Clear Preset D Q Q Clear MC542 4.27 FF D Sensível à Borda com Preste e Clear Assíncrono Preset Q Preset D Q Clock Q Q Clear D Clear MC542 4.28 FF D Com Reset Síncrono CLK D Reset D Q Q MC542 4.29 Flip-Flop Tipo T D T Q Q Q Q Clock T Q( t + 1 ) 0 Q( t ) 1 Q( t ) T Q Q MC542 4.30 Flip-Flop Tipo JK J D K Q Q Q Q Clock J K Q ( t + 1) 0 0 1 1 0 1 0 1 Q ( t) 0 1 Q (t) J Q K Q MC542 4.31 Registradores • Conjunto de elementos de memória (flip-flops) utilizados para armazenar n bits. • Utilizam em comum os sinais de clock e controle CLK D0 D Q Q0 CLK D1 D Q Q1 D2 D Q Q2 D3 D Q Q3 D3:0 4 4 Q3:0 MC542 4.32 Shift Register Apresenta o seuinte comportamento: In Q1 Q2 Q3 Q4 = Out t0 1 0 0 0 0 t1 0 1 0 0 0 t2 1 0 1 0 0 t3 1 1 0 1 0 t4 1 1 1 0 1 t5 0 1 1 1 0 t6 0 0 1 1 1 t7 0 0 0 1 1 MC542 4.33 Shift Register In Clock D Q Q Q1 D Q Q Q2 D Q Q Q3 D Q Q4 Out Q MC542 4.34 Shift Register com Carga Paralela Parallel output Q3 D Q Q Serial input Shift/Load Q2 D Q Q Parallel input Q1 D Q Q Q0 D Q Q Clock MC542 4.35 Shift Register Universal • Entrada Serial – Deslocamento a Esquerda – Deslocamento a Direita • Carga Paralela • Saída Paralela • Exercício: Desenhe o Diagrama do Shift Register Universal de 4 bits. MC542 4.36 Registradores em um Barramento Data Extern Bus Clock R1 R1in R1out R2 R2in R2out Rk Rkin Rkout Control circuit Function MC542 4.37 Registradores em um Barramento Bus R 1out D R 2out Q D Q Q D Q R 1in Q D Q Q Q R 2in Clock R1 R2 MC542 4.38 Contadores • Assíncronos • Síncronos MC542 4.39 Contadores Contador Binário Q2 Q1 Q0 t0 0 0 0 t1 0 0 1 t2 0 1 0 t3 0 1 1 t4 1 0 0 t5 1 0 1 t6 1 1 0 t7 1 1 1 clk MC542 4.40 Contador Binário – FF Tipo T Clock Q 0 Q 1 Q 2 Count 0 1 2 3 4 5 6 7 0 MC542 4.41 Contador Binário – FF Tipo T 1 Clock T Q T Q Q T Q Q 0 Q Q Q 1 Q 2 Contador Binário Assíncrono (up-counter) MC542 4.42 Contador Binário – FF Tipo T (Down-Counter) Clock Q0 Q1 Q2 Count 0 7 6 5 4 3 2 1 0 MC542 4.43 Contador Binário – FF Tipo T (Down-Counter) 1 Clock T Q T Q Q T Q Q 0 Q Q Q 1 Q 2 Contador Binário Assíncrono (down-counter) MC542 4.44 Contadores Síncronos Clock cycle Q 2 Q 1 Q 0 Q 0 0 0 0 1 0 0 1 2 0 1 0 3 0 1 1 4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1 8 0 0 0 1 changes Q 2 changes MC542 4.45 Contador Binário Síncrono Clock Q0 Q1 Q 2 Q3 Count 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 MC542 4.46 Contador Binário Síncrono 1 T Q T Q Q 0 Clock Q T Q Q 1 Q T Q Q 2 Q Q 3 Q MC542 4.47 Contador Binário Síncrono com Enable e Clear Enable Clock T Q Q T Q Q T Q Q T Q Q Clear MC542 4.48 Contador de 4 bits com FF D Enable D Q Q0 Q D Como determinar as funções de exitação de cada FF? Q Q1 Q D Q Q2 Q 1. Projeto por Inspeção 2. Projeto de Máquina de Estados Finitos (FSM) Clock D Q Q3 Q Output carry MC542 4.49 Contador de 4 bits com FF D com Carga Paralela Enable D0 0 1 D1 0 1 D Q Q0 Q D Q Q1 Q D2 0 1 D Q Q2 Q D3 0 1 D Q Q3 Q Output carry Load Clock MC542 4.50 Contador Módulo (exemplo:. Módulo 6) Clock Q Q Q 0 1 2 Count 0 1 2 3 4 5 0 1 MC542 4.51 Contador Módulo (exemplo: Módulo 6) 1 Enable 0 D 0 D 0 D 0 1 2 Load Q 0 Q 1 Q 2 Clock Clock MC542 4.52 Contador Módulo 6 com Reset Assíncrono 1 T Q T Q Q 0 Clock Q T Q Q 1 Q Q 2 Q MC542 4.53 Contador Módulo 6 com Reset Assíncrono Clock Q0 Q1 Q2 Count 0 1 2 3 4 5 0 1 2 MC542 4.54