Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Trabalho flip flop
1. 1
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO RIO
GRANDE DO SUL
Campus Ibirubá
CLAUDIO JORGE ECKERT JUNIOR
FLIP-FLOPS, LATCH, CONTADORES E REGISTRADORES
Ibirubá
2016
2. 2
CLAUDIO JORGE ECKERT JUNIOR
FLIP-FLOPS, LATCH, CONTADORES E REGISTRADORES
Trabalho relacionado a disciplina de
Sistemas Digitais, atividade seis, bacharel
em Ciência da Computação, pelo Instituto
Federal de Ciência e Tecnologia do Rio
Grande do Sul Campus Ibirubá
Orientador: Vanessa Faria de Souza
Ibirubá
2016
5. 5
1 FLIP-FLOP
Flip-flop ou multivibrador biestável é um circuito digital pulsado capaz de
servir como uma memória de um bit. Um flip-flop tipicamente inclui zero, um ou dois
sinais de entrada, um sinal de clock, e um sinal de saída, apesar de muitos flip-flops
comerciais proverem adicionalmente o complemento do sinal de saída. Alguns flip-
flops também incluem um sinal da entrada clear, que limpa a saída atual. Como os
flip-flops são implementados na forma de circuitos integrados, eles também
necessitam de conexões de alimentação. A pulsação ou mudança no sinal do clock
faz com que o flip-flop mude ou retenha seu sinal de saída, baseado nos valores dos
sinais de entrada e na equação característica do flip-flop.
De forma geral podemos representar o flip-flop como um bloco onde temos 2
saídas: Q e Q', entrada para as variáveis e uma entrada de controle (Clock). A saída
Q será a principal do bloco. Este dispositivo possui basicamente dois estados de
saída. Para o flip-flop assumir um destes estados é necessário que haja uma
combinação das variáveis e do pulso de controle (Clock). Após este pulso, o flip-flop
permanecerá neste estado até a chegada de um novo pulso de clock e, então, de
acordo com as variáveis de entrada, mudará ou não de estado.
Quatro tipos de flip-flops possuem 8 aplicações comuns em sistemas de clock
não-sequencial: flip-flop T ("toggle"), flip-flop S-R ("set-reset"), flip-flop J-K e
o flip-flop D ("data").O comportamento de um flip-flop é descrito por sua equação
característica, que prevê a "próxima" (após o próximo pulso de clock) saída, em
termos dos sinais de entrada e/ou da saída atual, .
O primeiro flip-flop eletrônico foi inventado em 1919 por William Eccles e F.
W. Jordan. Ele foi inicialmente chamado de circuito de disparo Eccles-Jordan. O
nome flip-flop posterior descreve o som que é produzido em um alto-
falante conectado a uma saída de um amplificador durante o processo de
chaveamento do circuito.
1.1 TIPOS DE FLIP-FLOPS
6. 6
1.1.1 Flip-flop Tipo T
Se T estiver em estado alto, o flip-flop T (toggle) muda o estado sempre que a
entrada de clock sofrer uma modificação. Se a entrada T for baixa, o flip-flop
mantém o valor do seu estado. Seu comportamento é descrito pela
seguinte equação característica:
1.1.2 Flip-flop SR Sincrono
Um flip-flop S-R Sincrono depende da habilitação de suas entradas por um sinal de clock
para que essas possam alterar o estado do mesmo. Este sinal pode operar de duas formas:
mantendo as entradas ativas durante todo o período do pulso ou apenas no instante da
mudança de estado do sinal de clock. Essas duas formas de operação podem ser denominadas
como modo clocked e modo triggered, respectivamente.
O flip-flop "set/reset" ativa (set, muda sua saída para o nível lógico 1, ou retém se este já
estiver em 1) se a entrada S ("set") estiver em 1 e a entrada R ("reset") estiver em 0 quando
o clock for mudado. O flip-flop desativa (reset, muda sua saída para o nível lógico 0, ou a
mantém se esta já estiver em 0) se a entrada R ("reset") estiver em 1 e a entrada S ("set") estiver
em 0 quando o clock estiver habilitado. Se ambas as entradas estiverem em 0 quando o clock for
mudado, a saída não se modifica. Se, entretanto, ambas as entradas estiverem em 1 quando o
7. 7
clock estiver habilitado, nenhum comportamento particular é garantido. Isto é comumente escrito
na forma de uma "tabela verdade"
Legenda: S (Set), R (Reset), Qant (Estado anterior da saída Q), Qfim (Estado em que a saída
deve assumir "estado futuro" após a aplicação das entradas), Qfim* (Qfim Linha) De: Adilson
José Ngonga.
1.1.3 Flip-flop J-K
O flip-flop J-K aprimora o funcionamento do flip-flop R-S interpretando a
condição S = R = 1 como um comando de inversão. Especificamente, a combinação
J = 1, K = 0 é um comando para ativar (set) a saída do flip-flop; a combinação J = 0,
K = 1 é um comando para desativar (reset) a saída do flip-flop; e a combinação J = K
= 1 é um comando para inverter o flip-flop, trocando o sinal de saída pelo
seu complemento. Fazendo J = K o flip-flop J-K se torna um flip-flop T(Toggle).
A equação característica do flip-flop J-K é:
8. 8
O flip-flop J-K recebeu este nome em homenagem a Jack Kilby, o homem que inventou
o circuito integrado, em 1958, pelo qual ele recebeu o prêmio Nobel em Física no
ano 2000. "Jump-kill", também é utilizado como analogia a "set-reset".
1.1.4 Flip-flop D (Data)
O flip-flop D ("data" ou dado, pois armazena o bit de entrada) possui uma
entrada, que é ligada diretamente à saída quando o clock é mudado.
Independentemente do valor atual da saída, ele irá assumir o valor 1 se D = 1
quando o clock for mudado ou o valor 0 se D = 0 quando o clock for mudado. Este
flip-flop pode ser interpretado como uma linha de atraso primitiva ou um hold de
ordem zero, visto que a informação é colocada na saída um ciclo depois de ela ter
chegado na entrada.
A equação característica do flip-flop D é:
9. 9
O flip-flop pode ser utilizado para armazenar um bit, ou um digito binário de
informação. A informação armazenada em um conjunto de flip-flops pode
representar o estado de um sequenciador, o valor de um contador,
um caractere ASCII em uma memória de um computador ou qualquer outra parte de
uma informação.
Um uso é a construção de máquinas de estado finito a partir da lógica
eletrônica. O flip-flop lembra o estado anterior de máquina, e a lógica digital utiliza
este estado para calcular o próximo estado.
1.1.5 Flip-flop T (toggle)
O flip-flop "T" é útil para contagens. Sinais repetidos à entrada de clock farão
com que o flip-flop mude seu estado a cada transição de nível alto-para-baixo da
entrada de clock. Se sua entrada T for "1", a saída de um flip-flop pode ser ligada à
entrada clock de um segundo flip-flop e assim por diante até a saída final do circuito,
considerada com o conjunto de todas as saídas dos flip-flops individuais. A esta
montagem formada, caracterizamos como uma contagem, em sistema binário, do
número de ciclos da primeira entrada de clock, até um limite máximo de 2n
-1,
onde n é o número de flip-flops utilizados no circuito.
10. 10
Um dos problemas com este tipo de contador (chamado de contador de
ripple ou contador de pulsos) é que a saída é brevemente inválida conforme ocorre a
mudança de pulso através da lógica. Existem duas soluções para este problema. A
primeira é retirar uma amostra da saída apenas quando a mesma for válida. A
segunda, mais utilizada, é montar um tipo diferente de contador, chamado
de contador síncrono. Este utiliza uma lógica mais complexa para garantir que as
saídas do contador mudem todas a um mesmo período de tempo.
Divisão de frequência: um conjunto de flip-flops "T" utilizados da maneira
descrita acima irá funcionar de modo a dividir a frequência da entrada por 2n
na
saída do último flip-flop, aonde n é o número de flip-flops utilizados entre a entrada e
a saída.
Os registradores podem ser utilizados para armazenar dados
nos computadores. Um flip-flop "D" pode representar um dígito de um número
binário. A unidade de controle do computador envia o sinal de clock no momento
certo para poder capturar estes dados.
Pela família CMOS o flip-flop D é representado pelo integrado 4013 na série
4000 e pelos integrados versão HC da série 74XX.
2. LATCH
Latch é um circuito sequencial biestável assíncrono,[7] ou seja, é um circuito
constituído por portas lógicas, capaz de armazenar um bit de informação,[8]onde as
saídas de certo instante dependem dos valores de entrada do instante mais os
valores anteriores de saída, isto é, do seu estado atual, e onde as saídas mudam a
qualquer instante de tempo, podendo ter ou não variáveis de controle.[2] Seu nome
significa, em português, trinco ou ferrolho.[9]
Quando o latch é controlado por um clock, é chamado de latch
chaveado (gated latch)
2.1 Latch NOR SR
11. 11
O funcionamento do Latch NOR SR é idêntico ao do Latch NAND SR, ao final
de seu processamento, este, resulta na seguinte tabela verdade logo abaixo, quando
o Reset e o set são iguais a 1 , tem-se uma combinação limitada , este estado é
proibido, pois esta consegue quebrar a equação lógica Q = NOT Q.
2.2 Latch D
Latch D é um circuito eletrônico que possui duas entradas (D e CLK) e duas
saídas (Q e !Q).[12] Sua característica principal de funcionamento é transferir para a
saída Q o valor da entrada de dados D sempre que CLK for 1, e manter o mesmo
estado na saída se CLK for 0.[12] Originou-se da necessidade de evitar, no latch RS,
a ocorrência do estado proibido.[4] É construído a partir deste ao se colocar um
inversor entre as entradas R e S, evitando assim que R=1 e S=1 simultaneamente, o
que permitia a ocorrência do estado proibido.[4] Desta maneira, R e S passam a ser
denominados D (onde D=S).
Como mostra sua tabela verdade, a saída Q segue a entrada D, e por isto o
latch D é às vezes chamado latch transparente.
3 REGISTRADOR
12. 12
O registrador (português brasileiro) ou registo (português europeu) de uma CPU (unidade
central de processamento) é uma unidade de memória capaz de armazenar n bits.
Os registradores estão no topo da hierarquia de memória, sendo assim, são o meio
mais rápido e caro de se armazenar um dado.
Lembrando que os registradores são circuitos digitais capazes de armazenar
e deslocar informações binárias, e são tipicamente usados como um dispositivo de
armazenamento temporário. [1]
São utilizados na execução de programas de computadores, disponibilizando
um local para armazenar dados. Na maioria dos computadores modernos, quando
da execução das instruções de um programa, os dados são movidos da memória
principal para os registradores. Então, as instruções que utilizam estes dados são
executadas pelo processador e, finalmente, os dados são movidos de volta para a
memória principal. É uma tecnologia com custo elevado.
3.1 REGISTRADORES DE BASE
Registradores de base são registradores que recebem o endereço-base de
um dado objeto. Este tipo de registrador oferece aos programadores um subterfúgio
para a criação de "ponteiros" (variáveis, contendo o caminho para um endereço no
software). Imagine-se da seguinte forma:
Um programa que, tendo dois números, recebe de um outro programa outros
valores. Então, o que se faz é criar "atalhos" (path) que indicam qual valor será
usado. Assim, havendo somente uma imagem do valor, podem ser usados os
valores, sem alterá-los diretamente.
3.2 REGISTRADOR CONTADOR
Conta todas as repetições e deslocamentos, podendo ser atribuído um valor
de interrupção.[3]
13. 13
3.3 REGISTRADORES DE DADOS
Registradores de dados são utilizados para armazenar valores, tais
como inteiros e pontos flutuante. Em algumas UCPs (CPUs, em inglês) antigas e
mais baratas, é um registrador de dados especial, conhecido como acumulador, e é
utilizado implicitamente em muitas operações. O acumulador funciona como um
recipiente onde são colocados e somados valores de cálculos e comparações.
3.4 REGISTRADOR DE CARGA PARALELA
O tipo mais simples de registrador é um conjunto de flip-flops que são
carregados a cada ciclo de relógio. Este registrador básico será útil como registrador
de estado em um bloco de controle, onde são carregados em todos os ciclos do
relógio. Porém, para algumas aplicações queremos controlar se dentro desse ciclo
do relógio o registrador vai ser carregado ou apenas manter o valor anterior. Assim,
utilizaremos um registrador de carga paralela. No qual terá uma linha de carga que
controlará se o registrador é carregado com entradas externas, com todas elas
carregadas em paralelo.
A entrada externa utilizada para obter o controle sobre a carga do registrador
pode ser um multiplexador 2X1, que será colocado na frente de cada flip-flop, no
caso de um registrador de 4 bits.
3.5 REGISTRADOR DE DESLOCAMENTO
Pode-se também deslocar os conteúdos de um registrador para a direita ou
para a esquerda. Deslocar a direita significa mover um bit armazenado (em um flip-
flop) para o flip-flop que lhe está à direita. Por exemplo: Se um registrador de quatro
bits armazena originalmente 1101, então o deslocamento à direita resultará em
0110, ou seja, perdemos o bit que estava mais à direita (1), e colocamos um 0 no bit
à esquerda. Basicamente temos 4 tipos desses registradores dependendo da forma
como entra e como sai a informação dos mesmos, sendo eles: [4]
14. 14
SISO: entrada em série (serial) e uma saída em série (serial).
PISO: entrada em paralelo e uma saída em série (serial).
SIPO: entrada em série (serial) e uma saída em paralelo.
PIPO: entrada paralela e uma saída paralela.
3.6 REGISTRADOR CIRCULAR
A partir do momento que tem-se um registrador de deslocamento, pode-se
obter o registrador circular, que nada mais é que uma variação do registrador de
deslocamento. Essa variação consiste em uma adição de rotação no registrador, ou
seja, o bit que sai, volta. Assim, o bit que estiver mais à direita do registrador será
automaticamente deslocado para o bit que estiver mais à esquerda. Este registrador
precisa de algum recurso para que possa alocar alguma informação no registrador,
sendo este recurso por deslocamento ou carga paralela.
4 CONTADOR
Um contador é um circuito digital que evolui sob o comando de um clock, de
forma que seus estados reproduzam uma sequência pré-determinada. Contadores
digitais são utilizados principalmente para contagens, geração de palavras, divisão
de frequências, medição de frequência e tempo. São basicamente divididos em duas
categorias: contadores assíncronos e síncronos.
4.1 CONTADORES ASSÍNCRONOS
Nesse tipo de contador, o pulso de clock é aplicado apenas no primeiro
bloco flip-flop, enquanto para os demais blocos, a saída do bloco anterior é que vai
servir como clock. Os principais tipos de contadores assíncronos são:
Contadores de Pulso
15. 15
Contadores de Década
Contador Seqüencial de O a N
Contadores Assíncronos Decrescentes
Contadores Assíncronos Up-Down (crescente/decrescente)
4.2 CONTADORES DE PULSO
A principal característica de um contador de pulso é apresentar nas saídas, o código
binário 8421 em sequência. Seu circuito básico apresenta um grupo de quatro
blocos flip-flop JK mestre-escravo, os quais possuem as entradas J e K iguais e
sempre em nível alto (1).
É um circuito divisor de frequência, ou seja, a frequência dos pulsos na saída
é igual a metade da frequência de entrada no bloco, se no bloco entrar uma
frequência de 48 Hz, sairá uma frequência de 24 Hz que alimentará o próximo bloco
e assim pôr diante. Como divisor o funcionamento se dá da seguinte forma, a
primeira saída é igual a 2 elevado a 1 que é igual a dois, a segunda saída é igual a 2
elevado a 2 que é igual a 4, e assim por diante formando a partir da primeira saída
até a última os valores de 2,4,8,16,32,64,128,256,512,1024,2048,4096 para um CI
com 12 saídas como o CD4040,dividindo a frequência de entrada pelo valor da
saída resulta a nova frequência, exemplo 1Khz no clock e usando a saída
correspondente a 2 teremos 500 Hz na saída. A saída dos blocos será se dará pelas
saídas "Q". Esse contador contará uma seqüência de 0 a 15. A saída "Q" de maior
frequência é a saída menos significativa LSB (Less Significative Bit) e a saída "Q" de
menor frequência é a saída mais significativa MSB (Most Significative Bit)
4.3 CONTADORES DE DÉCADA
16. 16
É o circuito que efetua a contagem, em números binários, de zero a nove (10
algarismos), ou código BCD, isso significa seguir uma sequência binária 8421 de
0000 a 1001. Para construir esse circuito, utilizamos o contador de pulso,
interligando as entradas clear dos flip-flops. Para que o contador conte somente de 0
a 9, deve-se jogar um nível zero na entrada clear assim que surgir o caso (1010), ou
seja, no 10º pulso.
Para que isso aconteça, ligamos as saídas "Q" dos flip-flops 4 e 2 e as saídas
"Q*" (Q barra) dos flip-flops 3 e 1, em uma porta NAND, já que para a combinação
descrita, Q4=1, Q2=1, Q*3=1 e Q*1=1 a porta NAND só vai ter entradas 1, e
resultará uma saída 0, ativando os clears dos flip-flops.
4.4 CONTADOR SEQUÊNCIAL DE 0 A N
Neste contador, a quantidade de blocos flip-flop depende da quantidade
de bits do limite de contagem. Tendo dois blocos podemos contar no máximo de 0 a
3, tendo três blocos podemos contar no máximo de 0 a 7, tendo quatro blocos
podemos contar no máximo de 0 a 15, e assim por diante.
Funciona com o mesmo princípio do contador de década, porém o nível zero
a ser jogado no clear mudará. Por exemplo, se tivermos 3 flip-flops, a contagem será
feita até 7, sendo que esse será observado por um tempo mais curto, pois 7 em
binário é 111, e teremos que ligar todas as saídas Q na porta NAND para o nível
zero ativar o clear do flip-flops, resultando em um tempo menor de observação para
o número 7.
4.5 CONTADORES DE PULSO CRESCENTE/DECRESCENTE
17. 17
São também conhecidos como contadores UP/DOWN. Neste circuito temos
um multiplex entre os blocos, que está ligado a um barramento de controle, que irá
determinar se a contagem será crescente (o nível do barramento for 1) ou
decrescente (nível do barramento for 0).
19. 19
REFERÊNCIAS
WIKIPÉDIA a enciclopédia livre. Disponível nos seguintes links:
https://pt.wikipedia.org/wiki/Flip-flop#Flip-flop_SR_Sincrono
https://pt.wikipedia.org/wiki/Circuito_sequencial
https://pt.wikipedia.org/wiki/Registrador_(inform%C3%A1tica)
https://pt.wikipedia.org/wiki/Contador_(eletr%C3%B4nica)
Sistemas Digitais - Ronald J. Tocci - Neal S. Widmer
Floyd, Thomas L. Sistemas digitais: fundamentos e aplicações . 9 ed - Porto Alegre:
Bookman,2007.
Vahid, Frank. Sistemas digitais: projeto,otimização e HDLs - Porto Alegre: Artmed,
2008.
COMO FUNCIONAM OS REGISTRADORES DE DESLOCAMENTO (SHIFT-
REGISTERS)