************************************** ********** CDG2 - Resumo P1 ********** ************************************** Data : 02/10/2003 a 27/11/2003 Versão : 04/07/2007 Professor: Ricardo Caneloi dos Santos Autor : Leandro Salvador ( leandrosalvador.com.br ) * Tipos de Circuitos Digitais - circuitos combinacionais - as saídas dependem somente das entradas - exemplo _______________ | circuito | entrada ----->| |-----> saída | combinacional | ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ - circuitos seqüenciais - possui uma realimentação da saída para a entrada, denominada "estado interno" - neste caso a saída depende da entrada e do seu estado interno - exemplo circuito seqüêncial |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯| | estado interno | |,-------------------------. | || _______________ | | |`---->| circuito | | | entrada|----->| |---*--->|saída | | combinacional | | | ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ | |_______________________________| * Flip-Flop (F.F.) - o F.F. também é chamado de biestável por possuir 2 estados estáveis: 0 e 1 - são elementos básicos de contadores e registradores - tem função de armazenar níveis lógicos temporariamente - funciona como uma memória - exemplo |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯| R -----|ent1 Si |----- Q ck -----|controle | S -----|ent2 Si'|----- Q' |_______________| - tipos - monoestável - set = 1 --> muda temporariamente a saída - exemplo _____|¯¯|_____ - biestável - set = 1 --> inverte a saída indefinidamente - exemplo _____|¯¯¯¯|_____ - astável - set = 1 --> não interfere na saída - exemplo _____|¯¯|__|¯¯|__|¯¯¯¯¯ * Flip-Flop RS (básico-assíncrono) - tabela da verdade R S Q 0 0 Qa 0 1 1 1 0 0 1 1 condição proibida * Flip-Flop RS (síncrono) - um sinal externo chamado pulso de clock determina quando as saídas são atualizadas - quando ck = 0, as saídas Q e Q' ficam inalteradas - quando ck = 1, as saídas Q e Q' são função de R, S, Qa - o pulso de clock sincroniza a atualização das saídas Q e Q' - tabela da verdade ck R S Q 0 x x Qa 1 0 0 Qa 1 0 1 1 1 1 0 0 1 1 1 condição proibida * Flip-Flop JK - master/slave (mestre/escravo) - variação do F.F. RS, onde não há condição proibida - F.F. sensível à borda de descida, pois as saídas são atualizadas somente na transição negativa do pulso de clock - tabela da verdade ck J K Q 0 x x Qa 1 x x Qa v 0 0 Qa v 0 1 0 v 1 0 1 v 1 1 Qa' v --> borda de descida - bloco lógico _______________ ------| J (S) Q |----- -----o|> ck | ------| K (R) Q'|----- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ * Flip-Flop JK (com entradas Clear e Preset) - as entradas clear e preset atuam diretamente nas saídas Q e Q', independentemente do sinal de clock - as entradas clear e preset são assíncronas - tabela da verdade ck PR' CLR' J K Q x [0] 1 x x 1 x 1 [0] x x 0 [0] 1 1 x x Qa [1] 1 1 x x Qa v 1 1 0 0 Qa v 1 1 0 1 0 v 1 1 1 0 1 v 1 1 1 1 Qa' x 0 0 x x condição proibida * Flip-Flop Tipo D - equivalente a um F.F JK com um inversor em suas entradas - bloco lógico _______________ _______________ --*--------| J Q |----- ------| D Q |----- | --o|> ck | ==> -----o|> ck | '-|>o----| K Q'|----- | Q'|----- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ - tabela da verdade ck D Q v 0 0 v 1 1 - utilizado como divisor de freqüência - bloco lógico ,--------------------------------. | _______________ | `------| D Q |----- | -----o|> ck | | | Q'|---------' ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ - freqüências ^ ck |__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__ | | Q |_____|¯¯¯¯¯|_____|¯¯¯¯¯|_____|¯¯ * Flip-Flop Tipo T - equivalente a um F.F JK com suas entradas curto-circuitadas - bloco lógico _______________ _______________ --*--------| J Q |----- ------| T Q |----- | --o|> ck | ==> -----o|> ck | '--------| K Q'|----- | Q'|----- ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ - tabela da verdade ck T Q [0] x Qa [1] x Qa v 0 Qa v 1 Qa' - utilizado como divisor de freqüência - bloco lógico "1" _______________ "1" _______________ '-----| T Q |-----*--- Qx '-----| T Q |----- Qy -----o|> ck | '---------------o|> ck | | Q'| | Q'| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ - freqüências ^ ck |__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__ | | Qx |_____|¯¯¯¯¯|_____|¯¯¯¯¯|_____|¯¯ | | Qy |___________|¯¯¯¯¯¯¯¯¯¯¯|________ * Registrador de Deslocamento - registrador serve para armazenamento e manipulação de dados - num registrador os dados devem ser tratados de forma serial ou paralela - configurações básicas - série-série - série-paralelo - paralelo-série - paralelo-paralelo (latch) - o número de bits armazenados é função do número de F.F. - número de bits = número de F.F. - nos registradores com entrada/saída serial, os dados se deslocam internamente, sendo chamados registradores de deslocamento - terra - terra de segurança --> chuveiro, descargas elétricas - terra de referência de sinal --> RS 232, referência para tensão - modo serial - RS 232 - uma informação é recebida ou transmitida bit a bit numa única linha - esquema I1 1 ^ I2 0 linha | I3 1 ----------- |¯¯|__|¯¯|__ I4 0 | |I1 I2 I3 I4 - vantagens - alta distância (RS 232 --> +12V, 0V, -12V --> 24V --> maior distância) - baixo custo - desvantagens - baixa velocidade - modo paralelo - todos os bits da informação são recebidos ou transmitidos simultaneamente - número de bits = número de linhas - esquema /\ I1 1 ----|--|---- I2 0 ----|--|---- I3 1 ----|--|---- I4 0 ----|--|---- \/ \ `--> linha - vantagens - alta velocidade - desvantagens - baixa distância (paralelo --> +5V, 0V --> 5V --> menor distância) - alto custo * Registrador de Deslocamento com F.F. Tipo D (série-paralelo) - circuito Q0 Q1 Q2 Q3 entrada ______ | ______ | ______ | ______ | serial ------| D Q|-----*----| D Q|-----*----| D Q|-----*----| D Q|-----' ,----|>ck | ,----|>ck | ,----|>ck | ,----|>ck | | ¯¯¯¯¯¯ | ¯¯¯¯¯¯ | ¯¯¯¯¯¯ | ¯¯¯¯¯¯ clock --*-----------------*-----------------*-----------------* - freqüências ^ 1 2 3 4 5 6 7 8 9 10 11 ck |__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯| | entrada | série |_______|¯¯¯¯¯¯¯¯¯¯¯¯¯|_________|¯¯|_______________________________ | Q0 | |________|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|_____|¯¯¯¯¯|___________________________ | Q1 | |______________|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|_____|¯¯¯¯¯|_____________________ | Q2 | |____________________|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|_____|¯¯¯¯¯|_______________ | Q3 | |__________________________|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|_____|¯¯¯¯¯|_________ | - o 1º FF sincroniza o sinal de entrada - após 4 pulsos a informação encontra-se em paralelo - os registradores de deslocamento podem ter várias larguras (4, 8, 16, 32, ...) - estas larguras refletem o número de F.F. utilizados * Registrador de Deslocamento com F.F. Tipo D (paralelo-série) - circuito - ver anotações (muito complexo) - se clear = 0 (ativa) - Q0 = 0, Q1 = 0, Q2 = 0, Q3 = 0 - se E (enable) = 0 - não carrega - Q0 = 0, Q1 = 0 Q2 = 0, Q3 = 0 (mantém 0) - se E (enable) = 1 - ativa - Q0 = I0, Q1 = I1, Q2 = I2, Q3 = I3 - inicialmente Q3 = I3 - após o 1º pulso de clock, Q3 = I2 - após o 2º pulso de clock, Q3 = I1 - após o 3º pulso de clock, Q3 = I0 - tabela da verdade ^ck Q0 Q1 Q2 Q3 clear 0 0 0 0 enable I0 I1 I2 I3 1º x I0 I1 I2 2º x x I0 I1 3º x x x I0 ^ --> borda de subida * Contadores - os contadores são formados por F.F. que, acionados por um sinal de clock, permanecem mudando de estado de acordo com uma seqüência pré-determinada - num circuito contador, a entrada de clock é suficiente para fazê-lo contar dentro de uma seqüência - circuito lógico sinal de clock ----->|¯¯¯¯¯¯¯| circuito contador |_______| | | | | v v v v seqüência pré-determinada (contagem) - classificação dos contadores - tipo de controle - assíncrono - síncrono - tipo de contagem - crescente - decrescente - tipo de código - hexadecimal - decimal (década) - outros... * Contador Assíncrono - aquele controlado por pulsos de clock não simultâneos - somente o 1º F.F. recebe o clock - os demais F.F. são ligados na saída dos F.F. anteriores - circuito lógico "1" Q0 "1" Q1 "1" Q2 "1" Q3 | ______ | | ______ | | ______ | | ______ | '--| T Q|--* '--| T Q|--* '--| T Q|--* '--| T Q|--' clock ----o|>ck | '----o|>ck | '----o|>ck | '----o|>ck | ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ * Contador Assíncrono Crescente Hexadecimal - circuito lógico "1" Q0 "1" Q1 "1" Q2 "1" Q3 | ______ | | ______ | | ______ | | ______ | '--| T Q|--* '--| T Q|--* '--| T Q|--* '--| T Q|--' clock ----o|>ck | '----o|>ck | '----o|>ck | '----o|>ck | ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ - freqüências ^ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ck |__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯| | | 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 Q0 |_____|¯¯¯¯¯|_____|¯¯¯¯¯|_____|¯¯¯¯¯|_____|¯¯¯¯¯|_____|¯¯¯¯¯|_____|¯¯¯¯¯|_____|¯¯¯¯¯|_____|¯¯¯¯¯|_____| | | 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 Q1 |___________|¯¯¯¯¯¯¯¯¯¯¯|___________|¯¯¯¯¯¯¯¯¯¯¯|___________|¯¯¯¯¯¯¯¯¯¯¯|___________|¯¯¯¯¯¯¯¯¯¯¯|______ | | 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 Q2 |_______________________|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|_______________________|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|______ | | 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 Q3 |_______________________________________________|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|______ | | 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 - atraso - é importante notar que na passagem do estado F (1111) para o estado 0 (0000), o atraso total é igual ao número de F.F. em série - neste caso, o atraso total é igual a 4 vezes o atraso de cada F.F. - fórmula período de clock mínimo > 4 x atraso de cada F.F. ou então f max clock < f F.F. max / 4 - o circuito gerou em seqüência (up) o código hexadecimal, retornando a 0000 após 1111 - este circuito divide a freqüência do clock por 2, 4, 8 e 16 (Q0, Q1, Q2 e Q3, respectivamente) - diagrama de estados (0)---->(1)---->(2)---->(3)---->(4)---->(5) | | (F) (6) | | (E) (7) | | (D)<----(C)<----(B)<----(A)<----(9)<----(8) * Contador Assíncrono Crescente Decimal - utiliza o mesmo circuito do contador hexadecimal assíncrono crescente - quando o contador passar pelo estado 10, ou A (1010), todas as saídas Q deverão ser zeradas, utilizando o CLR - utiliza-se uma porta NAND - entradas --> Q1' Q2 Q3' Q4 - saída --> CLR - circuito lógico _________ | Q1|---|>o---|¯¯¯¯\ | Q2|---------| | Q2 ---|¯¯¯\ | Q3|---|>o---| |o-----. ==> | |o--- CLR (todos) .--|CLR Q4|---------|____/ ' Q4 ---|___/ ' ¯¯¯¯¯¯¯¯¯ | '-----------------------------------' - diagrama de estados (F)---->(0)---->(1)---->(2)---->(3)---->(4)---->(5) | | | (E) (A)<------------(9)<----(8)<----(7)<----(6) | (D) | - caso haja uma falha e o contador caia no (C) estado B (inicialmente), o contador | demorará 5 pulsos de clock para voltar à (B) malha principal * Contador Assíncrono Crescente de 2 a 8 - circuito lógico .----------------------------------------------------------------. | | "1" _____o_____ Q0 "1" _____o_____ Q1 "1" _____o_____ Q2 "1" _____o_____ Q3 | | | PR | | | | PR | | | | PR | | | | PR | | | '--| T Q |-----* '--| T Q |-----* '--| T Q |-----* '--| T Q |-----' | clock ----o|>ck Q'| |----o|>ck Q'|--. '----o|>ck Q'|--. '----o|>ck Q'|--. | | CLR | | | CLR | | | CLR | | | CLR | | | ¯¯¯¯¯o¯¯¯¯¯ | ¯¯¯¯¯o¯¯¯¯¯ | ¯¯¯¯¯o¯¯¯¯¯ | ¯¯¯¯¯o¯¯¯¯¯ | | .----' | | | | | | | | | | | | | | | | /¯¯¯¯|----' 1 | | | | | | | | |-------------------------' 0 | | | | | *----o| |----------------------------------------)--------' 0 | | | | \____|----------------------------------------)-----------------------)--------' 1 | | sai 2 entra 9 | | | | (0100) (1001) | | | '----------------------------------------------------*-----------------------*----------------' - tabela da verdade Q3 Q2 Q1 Q0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 [2] 0 0 1 1 3 0 1 0 0 4 0 1 0 1 5 0 1 1 0 6 0 1 1 1 7 1 0 0 0 [8] 1 0 0 1 9 --> início - freqüências ^ 1 2 3 4 5 6 7 8 9 10 11 ck |__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯| | | 0 1 0 1 0 1 0 1 0 1 0 Q0 |_____|¯¯¯¯¯|_____|¯¯¯¯¯|_____|¯¯¯¯¯|_____|¯¯¯¯¯|_____|¯¯¯¯¯|_____| | | 0 0 1 1 0 0 1 1 0 0 1 Q1 |___________|¯¯¯¯¯¯¯¯¯¯¯|___________|¯¯¯¯¯¯¯¯¯¯¯|___________|¯¯¯¯¯¯ | | 0 0 0 0 1 1 1 1 0 0 0 Q2 |_______________________|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|__________________ | | 0 0 0 0 0 0 0 0 1 1 0 Q3 |_______________________________________________|¯¯¯¯¯¯¯¯¯¯¯|______ | | 0 1 2 3 4 5 6 7 8 9 2 * Contador Assíncrono Decrescente Octal - circuito lógico "1" "1" "1" | ______ | ______ | ______ '--| T Q|---. '--| T Q|---. '--| T Q| clock ----o|>ck Q'|-. '----o|>ck Q'|-. '----o|>ck Q'|-. ¯¯¯¯¯¯ | ¯¯¯¯¯¯ | ¯¯¯¯¯¯ | Q0 Q1 Q2 - freqüências ^ 1 2 3 4 5 6 7 8 9 10 ck |__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯|__|¯¯| | | 1 0 1 0 1 0 1 0 1 0 Q0 |¯¯¯¯¯|_____|¯¯¯¯¯|_____|¯¯¯¯¯|_____|¯¯¯¯¯|_____|¯¯¯¯¯|_____| | | 1 1 0 0 1 1 0 0 1 1 Q1 |¯¯¯¯¯¯¯¯¯¯¯|___________|¯¯¯¯¯¯¯¯¯¯¯|___________|¯¯¯¯¯¯¯¯¯¯¯| | | 1 1 1 1 0 0 0 0 1 1 Q2 |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|_______________________|¯¯¯¯¯¯¯¯¯¯¯¯ | | 7 6 5 4 3 2 1 0 7 6 - reparar que as saídas Q0, Q1, Q2 estão ligadas nas saídas negadas Q' de seus respectivos F.F. - quando a saída Q está em borda de descida, a saída Q' está em borda de subida - por esse motivo nos contadores decrescentes utilizamos a borda de subida ----------//----------