Projete um circuito de forma que ele execute a seguinte contagem assíncrona: 1_{10} à 2_{10}, decrescente.
Passo 1
O enunciado pede um contador assíncrono (ripple) de 4 bits que conte de 1_{10} até 2_{10} em ordem decrescente, reapontando para 1_{10} sempre que atinge 2_{10}. Vamos usar flip-flops JK com todas as entradas J=K=1 (para funcionar como T=1) de modo que cada estágio inverta seu estado a cada borda ativa do relógio de entrada. Para realizar o reinício automático em 1_{10}, vamos detectar o estado terminal 2_{10}=0010_2 e disparar sinais assíncronos de PREset e CLeaR.
Passo 2
Construção do contador ripple decrescente de 4 bits: 1. Seja Q_0 o bit menos significativo (LSB) e Q_3 o mais significativo (MSB). 2. Conecte as entradas J_i=K_i=1 de cada flip-flop FF_i, i=0,1,2,3. 3. O clock externo alimenta diretamente o CLK de FF_0. 4. Para contagem decrescente, ligamos o fio de saída não invertida Q_i de FF_i ao CLK de FF_{i+1}. Assim, cada bit seguinte inverte quando o bit anterior desce de 1\to 0.
Passo 3
Detecção do estado terminal \,2_{10}=0010_2: 1. \,2_{10} em binário é \,Q_3Q_2Q_1Q_0 = 0\,0\,1\,0. 2. Precisamos de um AND que seja “1” exatamente quando Q_1=1 e Q_0=Q_2=Q_3=0. 3. Logo, definimos
T = Q_1 \;\land\; \overline{Q_0}\;\land\;\overline{Q_2}\;\land\;\overline{Q_3}.
Passo 4
Rede assíncrona de PREset e CLeaR para recarregar \,1_{10}=0001_2: 1. Ao detectar T=1, disparamos simultaneamente:
PRE_0 = 1 e CLR_1 = CLR_2 = CLR_3 = 1. 2. Todos os sinais de PRE e CLR são ativos em nível alto e têm prioridade sobre o clock. Assim, ao chegar em 0010_2, o contador é instantaneamente forçado para 0001_2. 3. Enquanto T=0, mantêm-se PRE_i=0 e CLR_i=0, permitindo a contagem normal.
Resposta
Esquematicamente, para cada i=0,1,2,3: \bullet J_i=K_i=1 \bullet CLK_0 = relógio externo \bullet CLK_{i+1} = Q_i (não invertido)
Rede de detecção
T = Q_1\,\land\,\overline{Q_0}\,\land\,\overline{Q_2}\,\land\,\overline{Q_3}.
Sinais assíncronos (ativos em nível alto) gerados por T: