SISTEMAS DIGITAIS Contadores síncronos Prof. Carlos Sêrro Prof. João Paulo Carvalho Adaptado para lógica positiva por Guilherme Arroz Novembro de 2005 Sistemas Digitais 1 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contadores síncronos Para um contador ser síncrono, todos os FF devem ser actuados ao mesmo tempo. Logo, a linha de relógio deve ser comum Vamos fazer o projecto, de forma heurística, de um contador binário ascendente com 3 bits Novembro de 2005 Sistemas Digitais 2 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contadores síncronos Começamos com 3 FFs JK ET Os flancos de comutação não são importantes Mas são os mesmos para os 3 FFS Neste exemplo, admite-se que os flancos de comutação são os ascendentes Novembro de 2005 Sistemas Digitais 3 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contadores síncronos Vejamos a saída Q0 Ela muda sempre que ocorre um impulso (flanco ascendente) no relógio Novembro de 2005 Sistemas Digitais 4 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contadores síncronos Vejamos agora a saída Q1 Ela só muda quando ocorre um impulso (flanco ascendente) no relógio e Q0 está a 1 Novembro de 2005 Sistemas Digitais 5 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contadores síncronos Obtemos, então, o seguinte logigrama parcial Q0 muda em todos os flancos ascendentes de CLK Novembro de 2005 Q1 muda com um flanco ascendente em CLK se e só se Q0 = 1 Sistemas Digitais 6 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contadores síncronos Vejamos agora a saída Q2 Ela só muda quando ocorre um impulso (flanco ascendente) no relógio e Q0 e Q1 estão ambos e simultaneamente a 1 Novembro de 2005 Sistemas Digitais 7 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contadores síncronos Obtemos, então, o seguinte logigrama (final) Q2 muda com um flanco ascendente em CLK se e só se Q0 = 1 e Q1 = 1 Novembro de 2005 Sistemas Digitais 8 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contadores síncronos Generalizando para um contador síncrono de módulo 2n Precisamos de n FFs (por exemplo JK), todos a comutar no mesmo flanco Todas as entradas de relógio vêm ligadas ao CLK As entradas J e K do FF (i) vêm ligadas à saída de um AND cujas entradas são as saídas de todos os FFs que vêm para trás desde o FF0 até ao FF (i-1) Novembro de 2005 Sistemas Digitais 9 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contadores síncronos Para não aumentarmos muito o fan-in do último AND (número muito elevado de entradas) podemos optar por fazer Em rigor, este AND não é necessário. Apenas se inclui para permitir expansão Novembro de 2005 Sistemas Digitais 10 Prof. Carlos Sêrro Prof. João Paulo Carvalho Cont. Sínc. com Reset Reset: permite inciar o processo de contagem no estado 0; Repare-se que o Reset usa as entradas directas dos FFs e é activo a 0. Novembro de 2005 Sistemas Digitais 11 Prof. Carlos Sêrro Prof. João Paulo Carvalho Cont. Sínc. com Enable Enable: permite a contagem ou impede a progressão da contagem (nesse caso mantém o estado de contagem) Novembro de 2005 Sistemas Digitais 12 Prof. Carlos Sêrro Prof. João Paulo Carvalho Cont. de módulo arbitrário Pretende-se conceber um contador síncrono utilizando um procedimento sistemático de síntese Este método permite conceber contadores genéricos, independentemente de o módulo de contagem ser ou não potência de 2 Novembro de 2005 Sistemas Digitais 13 Prof. Carlos Sêrro Prof. João Paulo Carvalho Cont. de módulo arbitrário Exemplo: contador binário síncrono de módulo 6 (conta no CBN de 0 a 5) Estado Actual Tabela de estados Novembro de 2005 Estado Seguinte EA ES 000 001 001 010 010 011 011 100 100 101 101 000 Sistemas Digitais 14 Prof. Carlos Sêrro Prof. João Paulo Carvalho Síntese de um contador Vamos sintetisar este contador Isto é, a partir da tabela de estados do contador vamos obter o seu logigrama (esquema eléctrico) O processo de análise seguiria os mesmos passos pela ordem inversa Do logigrama para a tabela de estados Novembro de 2005 Sistemas Digitais 15 Prof. Carlos Sêrro Prof. João Paulo Carvalho Síntese de um contador Depois de estabelecida a tabela de estados, preenche-se uma tabela de transições, em que se indicam as mudanças de estado dos FFs Novembro de 2005 Sistemas Digitais 16 Prof. Carlos Sêrro Prof. João Paulo Carvalho Síntese de um contador Note-se que os estados 110 e 111 foram deliberadamente omitidos, por não pertencerem ao ciclo de contagem Em seguida escolhemos os FFs a utilizar Não é indiferente essa escolha, embora não possamos decidir, nesta fase, qual o tipo de FF que conduz à solução mínima (a solução mais económica em termos de circuito) Novembro de 2005 Sistemas Digitais 17 Prof. Carlos Sêrro Prof. João Paulo Carvalho Síntese de um contador Podemos, contudo, atender a algumas questões Os FFs JK são os que têm mais funcionalidade 4 funções, a saber: mantêm o estado, comutam, fazem Set e fazem Reset Os FFs SR só têm 3 funções (não comutam) Os FFs D apenas possuem uma função (copiam a tensão na entrada) Novembro de 2005 Sistemas Digitais 18 Prof. Carlos Sêrro Prof. João Paulo Carvalho Síntese de um contador Como regra geral (que, contudo, não é certa) podemos dizer que, quanto maior a funcionalidade, mais simples serão as expressões das equações de excitação a aplicar às entradas síncronas (J, K, etc.) As entradas síncronas dos FFs designam-se, nos contadores, por entradas de excitação Mas, é claro, um FF do tipo D apenas precisa de uma eq. de excitação, enquanto que um JK ou um SR precisa de duas Novembro de 2005 Sistemas Digitais 19 Prof. Carlos Sêrro Prof. João Paulo Carvalho Síntese de um contador A escolha é, por conseguinte, algo arbitrária No nosso caso vamos utilizar FFs JK ET que comutem nos flancos ascendentes A escolha do flanco de comutação e a estrutura dos FFs (ET ou MS) também é arbitrária Logo, não garantimos uma solução mínima no processo de síntese Novembro de 2005 Sistemas Digitais 20 Prof. Carlos Sêrro Prof. João Paulo Carvalho Síntese de um contador Podemos começar a esboçar o logigrama do contador O processo de síntese há-de conduzir à lógica de excitação dos FFs, a aplicar às entradas J e K Os estados de contagem do contador podem observar-se nas saída dos Ffs Novembro de 2005 Sistemas Digitais 21 Prof. Carlos Sêrro Prof. João Paulo Carvalho Síntese de um contador Para podermos escrever as equações de excitação dos FFs precisamos de começar por elaborar uma tabela de excitações para os FFs (JK no caso) Cada tipo de FF possui uma tabela de excitações diferente Novembro de 2005 Sistemas Digitais 22 Prof. Carlos Sêrro Prof. João Paulo Carvalho Síntese de um contador A tabela de excitações para um dado tipo de FF obtém-se da sua tabela de verdade, lendo-a “ao contrário” A tabela de verdade diz como se comportam as saídas quando aplicamos determinados níveis e flancos às entradas síncronas A tabela de excitações diz que níveis é que devemos aplicar às entradas para termos determinadas mudanças nas saídas Novembro de 2005 Sistemas Digitais 23 Prof. Carlos Sêrro Prof. João Paulo Carvalho Síntese de um contador Tabela de excitações de um FF JK CP J (t) K (t) Q(t+∆t) 0 0 Q(t) 0 1 0 1 0 1 1 1 Q(t) x x Q(t) 0 x x Q(t) 1 x x Q(t) A tabela de excitações de um JK obtém-se a partir da tabela de verdade do JK Novembro de 2005 Sistemas Digitais 24 Prof. Carlos Sêrro Prof. João Paulo Carvalho Síntese de um contador Com a tabela de transições do contador e a tabela de excitações dos FFs JK podemos construir a tabela de excitações do contador (acetato seguinte) Novembro de 2005 Sistemas Digitais 25 Prof. Carlos Sêrro Prof. João Paulo Carvalho Síntese de um contador Tabela de excitações do contador Novembro de 2005 Sistemas Digitais 26 Prof. Carlos Sêrro Prof. João Paulo Carvalho Síntese de um contador Notemos agora que, para cada coluna (J2, K2, etc.) temos funções combinatórias Porque J2, K2, etc, sendo funções de Q2, Q1 e Q0, estão definidas no mesmo instante t Novembro de 2005 Sistemas Digitais 27 Prof. Carlos Sêrro Prof. João Paulo Carvalho Síntese de um contador Logo, podemos obter as equações de excitação dos FFs (usando, por exemplo, o método de Karnaugh), directamente da tabela de excitações do contador Novembro de 2005 Sistemas Digitais 28 Prof. Carlos Sêrro Prof. João Paulo Carvalho Síntese de um contador Quadros de Karnaugh para J2, K2, J1 e K1 Novembro de 2005 Sistemas Digitais 29 Prof. Carlos Sêrro Prof. João Paulo Carvalho Síntese de um contador Para J0 e K0 não precisamos de quadros de Karnaugh, porque Q0 muda a cada impulso de relógio Novembro de 2005 Sistemas Digitais EA ES 000 001 001 010 010 011 011 100 100 101 101 000 30 Prof. Carlos Sêrro Prof. João Paulo Carvalho Síntese de um contador Equações de excitação para J2, K2, J1, K1, J0 e K0 Com J0 = K0 = 1, obrigamos o FF Q0 a mudar a cada flanco de comutação Como será o quadro de Karnaugh de J0 e de K0? Novembro de 2005 Sistemas Digitais 31 Prof. Carlos Sêrro Prof. João Paulo Carvalho Síntese de um contador Finalmente, o logigrama do contador Novembro de 2005 Sistemas Digitais 32 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contadores bidireccionais Vamos considerar um contador bidireccional de módulo 10 Bidireccional quer dizer ascendente/descendente (“up/down”) Conta de 0 a 9 ou de 9 a 0, consoante o nível de tensão aplicado a uma linha de controlo designada por UP/DOWN Com um 0 na linha de controlo deve contar ascendentemente Com um 1 deve contar descendentemente Novembro de 2005 Sistemas Digitais 33 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contadores bidireccionais Tabela de transições do contador Novembro de 2005 Sistemas Digitais 34 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contadores bidireccionais O processo de síntese deste contador é semelhante ao do contador anterior Contudo, ter em atenção que as equações de excitação para J3, K3, J2, etc., dependem agora, para além de Q3, Q2, Q1 e Q0, também da entrada UP/DOWN Novembro de 2005 Sistemas Digitais 35 Prof. Carlos Sêrro Prof. João Paulo Carvalho Carregamento em paralelo A capacidade de poder inicializar um contador com um valor à escolha é por vezes muito importante Os contadores com Carregamento em Paralelo têm essa funcionalidade Novembro de 2005 Sistemas Digitais 36 Prof. Carlos Sêrro Prof. João Paulo Carvalho Carregamento em paralelo Para adicionar a funcionalidade de Carregamento em Paralelo a um contador é necessário adicionar uma variável de controlo que comande o modo de funcionamento, e alterar a lógica que actua as entradas dos FFs Novembro de 2005 Sistemas Digitais 37 Prof. Carlos Sêrro Prof. João Paulo Carvalho Carregamento em paralelo Exemplo – Alterar um contador de módulo 8 para realizar carregamento paralelo Adicionamos uma linha de controlo COUNT que, quando activa, permite a contagem Adicionamos ainda uma linha de controlo LOAD que permite o carregamento em paralelo do contador quando está a 1 e que permite os outros modos (Count, Reset) quando a 0 Finalmente, uma linha RESET que, quando a 0, faz o Reset assíncrono do contador Novembro de 2005 Sistemas Digitais 38 Prof. Carlos Sêrro Prof. João Paulo Carvalho Carregamento em paralelo A lógica dos Ji e Ki vem determinada pela necessidade de carregar o nível aplicado à entrada Ii quando LOAD = 1, e por ter de levar em consideração o nível na linha COUNT quando LOAD = 0 Novembro de 2005 Sistemas Digitais 39 Prof. Carlos Sêrro Prof. João Paulo Carvalho Carregamento em paralelo Novembro de 2005 Sistemas Digitais 40 Prof. Carlos Sêrro Prof. João Paulo Carvalho Carregamento em paralelo Evidentemente, não devemos activar simultaneamente as variáveis de controlo COUNT e LOAD Mas podemos desactivar as duas em simultâneo e, nesse caso, o contador deve manter o estado de contagem Isto é, nem carrega em paralelo nem conta Novembro de 2005 Sistemas Digitais 41 Prof. Carlos Sêrro Prof. João Paulo Carvalho Símbolos IEC de contadores Contador assíncrono 74LS293 Ripple counter Reset (Count=0) assíncrono aos dois contadores, desde que G1 esteja activo Divisores de frequência por 2 e por 8 2 contadores ascendentes e independentes (excepto pelo Reset, que é comum) Novembro de 2005 Sistemas Digitais 42 Prof. Carlos Sêrro Prof. João Paulo Carvalho Símbolos IEC de contadores Contador síncrono genérico CTR 4 – Contador de 4 bits construído a partir de FFs que podem ser carregados com um comportamento do tipo D M1,M5 – Modos de funcionamento M1 – conta (a linha está a 1) M5 – carrega em paralelo (a linha está a 0) Novembro de 2005 A linha de Modo define dois modos diferentes. Os valores 1 e 5 apenas servem para indicar quais as linhas que dependem desta linha. Para se saber o que faz cada modo é necessário analisar todo o símbolo e procurar os valores 1 e 5 Sistemas Digitais 43 Símbolos IEC de contadores Prof. Carlos Sêrro Prof. João Paulo Carvalho Linha de relógio: A linha é dividida em duas para facilidade de leitura do símbolo. Isso pode ser interpretado como tendo a linha duas funções (tal como acontece com a linha de Modo) 1,3,4+: Indica que, se estiverem activas as entradas com os qualificadores 1, 3 e 4, o contador conta ascendentemente (se o contador tivesse o sinal - contaria descendentemente). Portanto, quando houver um flanco ascendente no relógio (o triângulo), e as linhas com qualificadores M1, G3 e G4 tiverem níveis 1, o contador conta. C2: É uma linha de clock que serve para despoletar outras operações descritas algures no símbolo (o carregamento paralelo, como veremos) Novembro de 2005 Sistemas Digitais 44 Prof. Carlos Sêrro Prof. João Paulo Carvalho Símbolos IEC de contadores Novembro de 2005 G3 e G4: Enables de contagem. A diferença entre os dois está em que um deles influencia a saída (de que já trataremos) enquanto que o outro, não. CT = 0: Linha de Reset assíncrono do contador. Quando activada coloca a contagem a 0 (CT=0). Sistemas Digitais 45 Prof. Carlos Sêrro Prof. João Paulo Carvalho Símbolos IEC de contadores Novembro de 2005 5,2D: Entrada de carregamento paralelo de cada um dos FF. O carregamento dá-se quando a linha M5 está activa (a 0) e quando surge um flanco ascendente no relógio (C2). Se tivessemos 5D (em vez de 5,2D), isso significaria que o carregamento seria assíncrono, isto é, que se verificava logo que a linha de modo era activada, não dependendo do relógio. A notação é semelhante para cada um dos 4 FFs, mas não precisa de vir repetida Sistemas Digitais 46 Prof. Carlos Sêrro Prof. João Paulo Carvalho Símbolos IEC de contadores Novembro de 2005 3CT=15: Linha de saída que indica que o contador atingiu o último estado de contagem (CT=15). A linha fica activa enquanto o contador estiver no estado 15 (1111), desde que o Enable G3 esteja activo [1], [2], [4] e [8]: Comentários (tudo o que estiver dentro de parêntesis rectos é comentário). Indicam o peso dos diversos flipflops na contagem Saídas (é onde se vê a contagem...) Sistemas Digitais 47 Símbolos IEC de contadores Prof. Carlos Sêrro Prof. João Paulo Carvalho Exemplo de contador Up/Down de 4 bits Novembro de 2005 Reparar na existência de modos de contagem ascendente (2,3+), descendente (2,4-) e carregamento paralelo síncrono (1,7) G5 e G6 são Enables M1 e M2 indicam se há contagem ou carregamento paralelo M3 e M4 definem a direcção da contagem O contador assinala quando chega a 15 se estiver em modo ascendente, ou a 0 se estiver em modo descendente Sistemas Digitais 48 Prof. Carlos Sêrro Prof. João Paulo Carvalho Estados Instáveis Apesar de todos os FF de um contador síncrono reagirem ao mesmo flanco de comutação, verifica-se que cada FF pode ser mais ou menos lento a reagir devido a vários aspectos envolvidos no seu fabrico – dispersão de características, neste caso que afectam o tempo de propagação tpd Novembro de 2005 Sistemas Digitais 49 Prof. Carlos Sêrro Prof. João Paulo Carvalho Estados Instáveis Logo, num contador síncrono (também) surgem estados instáveis sempre que numa mudança de estado está envolvido mais do que um FF O número de estados instáveis depende do número de FFs que mudam de estado Novembro de 2005 Sistemas Digitais 50 Prof. Carlos Sêrro Prof. João Paulo Carvalho Estados Instáveis Exemplo: Mudança de 7 (0111) para 8 (1000) Estado (estável) 7 Estado (estável) 8 Estados instáveis Novembro de 2005 Sistemas Digitais 51 Prof. Carlos Sêrro Prof. João Paulo Carvalho Interligação de contadores Muitas vezes é necessário proceder à interligação entre vários contadores integrados para aumentar o módulo de contagem por exemplo, utilizar contadores de 4 bits de módulo 10 (contadores BCD) para fazer um contador de módulo 100, com um (o de menor peso) a contar as unidades, e o outro a contar as dezenas Novembro de 2005 Sistemas Digitais 52 Prof. Carlos Sêrro Prof. João Paulo Carvalho Interligação de contadores Uma solução óbvia consiste em interligar os contadores de modo que um deles passe a ser o menos significativo, e os seguintes contem apenas quando todos os anteriores chegam ao último estado de contagem e passam para o primeiro estado Por exemplo, no contador de módulo 100 o contador das unidades, quando passa de 9 para 0, faz incrementar o das dezenas Novembro de 2005 Sistemas Digitais 53 Prof. Carlos Sêrro Prof. João Paulo Carvalho Interligação de contadores Afim de manter o carácter síncrono, a solução passa por interligar os contadores de forma a que o relógio seja comum o Enable de cada um dependa do facto de o conjunto dos contadores menos significativos terem chegado ao último estado de contagem Novembro de 2005 Sistemas Digitais 54 Prof. Carlos Sêrro Prof. João Paulo Carvalho Interligação de contadores Exemplo de ligação síncrona para formar um contador binário com 8 bits módulo 256 (16x16=256) Atenção ao facto de a função 3CT=15 vir activada no estado 15, depois do flanco ascendente de início desse estado. Ou seja, no fim do estado 15 é que aparece o flanco ascendente de relógio que incrementa o segundo contador Novembro de 2005 Sistemas Digitais 55 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contagens arbitrárias O carregamento paralelo dos contadores tem ainda a utilidade de permitir modificar os módulos de contagem Suponhamos que pretendemos transformar um contador de módulo 16 num de módulo 10 A solução consiste em detectar o último estado de contagem pretendido e usar essa linha para activar o carregamento em paralelo do contador Novembro de 2005 Sistemas Digitais 56 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contagens arbitrárias As linhas de carregamento paralelo serão utilizadas para impor o estado zero Note-se que não pode ser usado o Reset se ele for assíncrono e, supostamente, pretendemos manter o contador síncrono Novembro de 2005 Sistemas Digitais 57 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contagens arbitrárias Exemplo: Obter um contador de módulo 10 (conta de 0000 a 1001) a partir de um contador integrado de módulo 16 Novembro de 2005 Sistemas Digitais 58 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contagens arbitrárias A primeira vez que, na sequência de contagem, se encontram as duas linhas dos extremos a H, temos o estado de contagem 9 A detecção do estado 9 activa o carregamento em paralelo porque LOAD_L vem activo e M1 também Novembro de 2005 Sistemas Digitais 59 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contagens arbitrárias O carregamento em paralelo é do estado 0 Nos outros estados de contagem (0 a 8) COUNT_H vem activado e o contador conta (porque M2 vem activo nesses casos) Novembro de 2005 Sistemas Digitais 60 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contagens arbitrárias A menos que haja uma falha no funcionamento do contador, este nunca entra nos estados 10 a 15, para os quais foi originalmente desenhado Novembro de 2005 Sistemas Digitais 61 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contagens arbitrárias Poderia ter-se usado outro valor para carregar nas entradas de carregamento paralelo se a sequência pretendida a isso obrigasse Se se pretendesse, por exemplo, a sequência .…,4,5,6,7,8,9,4,… então detectar-se-ia o 9 da mesma forma, mas em vez de carregar o número 0, carregarse-ia o número 4 Novembro de 2005 Sistemas Digitais 62 Prof. Carlos Sêrro Prof. João Paulo Carvalho Contagens arbitrárias E que tal utilizar a detecção de um estado para fazer o Reset ao contador Reset síncrono? Reset assíncrono? E porque não utilizar o carregamento em paralelo e o Reset para obter ciclos de contagem mais complicados? E porque não detectar mais do que um estado? Novembro de 2005 Sistemas Digitais 63