Calculadora estados contador Johnson
Quatro flip-flops ligados como contador Johnson dão 8 estados únicos, o dobro do número de estágios. Informe quantos estágios há e receba esse número, o do contador em anel simples e, até 53 estágios, o do binário para comparar. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Estágios
- 4
- Estados únicos
- 8
- Estados do contador em anel
- 4
- Módulo
- 8
- Estados do contador binário
- 16
Um contador Johnson, também chamado contador de anel torcido ou contador de Möbius, é um circuito sequencial no estilo registrador de deslocamento em que a saída invertida do último flip-flop alimenta o primeiro estágio. Diferente de um contador binário livre que pode visitar 2 elevado a n códigos com n flip-flops, ou de um contador em anel simples que percorre apenas n padrões one-hot, a topologia Johnson percorre sistematicamente exatamente 2n estados distintos antes de se repetir. Projetistas digitais, estudantes e programadores de FPGA precisam desse valor 2n na hora ao dimensionar um módulo, escolher um decodificador ou comparar estilos de contador em um datasheet. Esta calculadora aceita o número de estágios de flip-flop e devolve a contagem de estados únicos com a fórmula de livro, mais a contagem de anel simples lado a lado e, quando exata, o tamanho do contador binário para o mesmo número de estágios.
O que é um contador Johnson de anel torcido e por que tem 2n estados
Comece com n flip-flops D ligados como registrador de deslocamento: em cada borda de clock o bit do estágio i passa para o estágio i mais um. Em um contador em anel simples, a saída não invertida do último estágio retorna à entrada do primeiro, de modo que um um (ou zero) circulante produz um ciclo de comprimento n—a sequência clássica one-hot ou one-cold. Um contador Johnson torce essa realimentação: o complemento do último estágio comanda o primeiro.
Essa inversão dobra o caminho no grafo de estados. A partir de um reset limpo, a máquina percorre n padrões crescentes que preenchem uns a partir de uma extremidade e depois n padrões decrescentes que os apagam, em uma órbita fechada de comprimento 2n sem códigos intermediários inválidos quando iniciada de uma semente legal. Todo código legal é um bloco contíguo de uns seguido de zeros ou de zeros seguido de uns visto como deslocamento circular da cadeia torcida—existem exatamente 2n dessas cadeias para largura n.
Por isso a contagem de estados únicos de um contador Johnson é sempre o dobro do número de estágios, independente da taxa de clock ou do nó tecnológico. Projetistas usam esse módulo 2n para clocks divide-by-2n, geradores de década ou multifase com n igual a cinco (dez estados) e controladores de sequência de baixo custo lógico que decodificam com poucos gates de duas entradas em vez de uma árvore decodificadora binária completa.
Casos de uso
Checagens de sala e laboratório
Os alunos informam a contagem n de estágios de flip-flop e verificam que um contador Johnson de anel torcido tem exatamente 2n estados únicos antes de comparar com contadores de anel (n) e binários (2^n).
Correção automática de provas e LMS
Corrija questões de lógica digital sobre o módulo do contador Johnson com um oráculo determinístico 2n em vez de uma simulação completa de flip-flops.
Dimensionamento FPGA e design de sequência
Escolha n de modo que 2n combine com a razão de divisão ou o número de passos multifase exigidos antes de escrever HDL para a cadeia de deslocamento e o decodificador.
Perguntas frequentes
Quantos estados únicos tem um contador Johnson?
Um contador Johnson (anel torcido) com n estágios de flip-flop tem exatamente 2n estados únicos.
Como um contador Johnson difere de um contador em anel?
Um contador em anel simples realimenta o último estágio sem inverter e tem n estados únicos. Um contador Johnson inverte essa realimentação e tem 2n estados únicos.
Quantos flip-flops preciso para um contador Johnson que divida por 10?
Cinco. Um contador Johnson de 5 estágios percorre 10 estados antes de se repetir, o arranjo de década comum em contadores de década e geradores de ondas multifásicas.
Que sequência um contador Johnson percorre?
A partir de um reset zerado, ele se enche de uns a partir de uma ponta, um estágio por pulso de clock, e depois os esvazia do mesmo jeito. São n padrões de subida e n de descida, e cada código válido é um bloco de uns ao lado de um bloco de zeros.
Por que é fácil decodificar um contador Johnson?
Como os estados seguem esse padrão de blocos, cada um é reconhecido com poucas portas de duas entradas, em vez de uma árvore decodificadora binária completa. Isso reduz o custo da lógica em controladores de sequência e divisores de clock por 2n.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/elec/johnson-counter \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"stages":4}'const res = await fetch("https://api.kit.forhosting.com/elec/johnson-counter", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"stages": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/johnson-counter",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"stages": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/johnson-counter", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"stages":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"stages":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/johnson-counter", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"stages": 4
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.johnson_counter",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Contrato de entrada, campos de resposta e regras de validação
Exemplo: stages igual a quatro produz oito estados Johnson únicos, quatro de anel e dezesseis binários. Exemplo: stages igual a cinco produz dez estados únicos—o arranjo Johnson de década comum em contadores de década e geradores multifase. Envie um corpo JSON com um campo obrigatório: stages, um inteiro positivo n de um a dez mil. Cadeias numéricas são aceitas; os aliases n, flip_flops, flipflops, stages_n, ff e count mapeiam para o mesmo parâmetro para que clientes SDK e widgets de formulário permaneçam flexíveis. stages ausente, valores não finitos, não inteiros, zero, negativos e acima do teto falham com invalid_input e não são cobrados. Em sucesso o corpo ecoa stages, informa unique_states como duas vezes stages, ring_counter_states como stages para a comparação não torcida, e modulus igual a unique_states para que a linguagem de divisor de frequência fique a um campo de distância. A string formula reafirma unique_states igual a duas vezes stages para exibição ao lado do número. Quando stages é no máximo cinquenta e três, binary_counter_states também é devolvido como dois elevado a stages para você contrastar a capacidade linear Johnson com a binária exponencial usando inteiros IEEE exatos; para n maiores esse campo de comparação é omitido em vez de arredondado ou null, conforme a regra da plataforma de que saídas opcionais desaparecem em vez de carregar null.
Onde uma API de estados do contador Johnson vale a pena
Notas de aula e manuais de laboratório pedem o número de estados únicos de um contador Johnson de quatro ou cinco bits; tutores precisam de um oráculo determinístico que sempre responda 2n em vez de misturar figuras de anel, Johnson e binário. Arquitetos FPGA e ASIC esboçam módulos—oito, dez, doze, dezesseis—antes de comprometer LUTs ou células padrão, e uma calculadora de um campo é mais rápida do que montar um testbench HDL só para checar a teoria de contagem. Validação falha não consome saldo. Geradores de prova e plugins LMS chamam um endpoint parse pequeno para corrigir itens abertos sem embutir simuladores de circuito. Como a implementação é parse pura tier A, cada chamada bem-sucedida custa o preço base publicado US$ 0,002 sem tokens de modelo e sem rede de saída. Mantenha stages pequeno e inteiro, fixe unique_states nos testes e você obtém respostas reproduzíveis para lição, tabelas de datasheet e workers de borda sem levantar um simulador de lógica sequencial próprio.
Perguntas técnicas
Qual entrada a calculadora exige?
Um inteiro positivo stages de 1 a 10000 (aliases: n, flip_flops, flipflops, stages_n, ff, count). Não inteiros, zero, negativos ou valores ausentes retornam invalid_input.
Por que binary_counter_states às vezes falta?
Só é incluído quando stages ≤ 53 para que 2^stages seja um inteiro seguro exato. Para n maiores o campo opcional é omitido em vez de aproximado ou null.
Quanto custa a calculadora de estados do contador Johnson?
A ferramenta no navegador é gratuita. Solicitações API usam saldo KIT pré-pago a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.