Calculadora estados contador Johnson
Cuatro biestables conectados como contador Johnson dan 8 estados únicos, el doble del número de etapas. Indique cuántas etapas tiene y obtenga esa cifra, la del contador en anillo simple y, hasta 53 etapas, la del binario para comparar. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Etapas
- 4
- Estados únicos
- 8
- Estados del contador en anillo
- 4
- Módulo
- 8
- Estados del contador binario
- 16
Un contador Johnson, también llamado contador de anillo torcido o contador de Möbius, es un circuito secuencial tipo registro de desplazamiento en el que la salida invertida del último biestable alimenta la primera etapa. A diferencia de un contador binario libre que puede visitar 2 elevado a n códigos con n biestables, o de un contador en anillo simple que recorre solo n patrones one-hot, la topología Johnson recorre de forma sistemática exactamente 2n estados distintos antes de repetirse. Diseñadores digitales, estudiantes y programadores de FPGA necesitan esa cifra 2n al instante al dimensionar un módulo, elegir un decodificador o comparar estilos de contador en una hoja de datos. Esta calculadora acepta el número de etapas de biestable y devuelve el recuento de estados únicos con la fórmula de libro, más el recuento de anillo simple en paralelo y, cuando es exacto, el tamaño del contador binario para el mismo número de etapas.
Qué es un contador Johnson de anillo torcido y por qué tiene 2n estados
Parta de n biestables D cableados como registro de desplazamiento: en cada flanco de reloj el bit de la etapa i pasa a la etapa i más uno. En un contador en anillo simple, la salida no invertida de la última etapa regresa a la entrada de la primera, de modo que un uno (o un cero) circulante produce un ciclo de longitud n—la secuencia clásica one-hot o one-cold. Un contador Johnson tuerce esa realimentación: el complemento de la última etapa gobierna la primera.
Esa inversión duplica el recorrido del grafo de estados. Desde un reset a cero, la máquina avanza por n patrones crecientes que rellenan unos desde un extremo y luego n patrones decrecientes que los borran, en una órbita cerrada de longitud 2n sin códigos intermedios inválidos si se parte de una semilla legal. Todo código legal es un bloque contiguo de unos seguido de ceros o de ceros seguido de unos visto como desplazamiento circular de la cadena torcida—existen exactamente 2n de esas cadenas para anchura n.
Por eso el número de estados únicos de un contador Johnson es siempre el doble del número de etapas, con independencia de la frecuencia de reloj o del nodo tecnológico. Los diseñadores usan este módulo 2n para relojes divide-by-2n, generadores de década o multifase con n igual a cinco (diez estados) y controladores de secuencia de bajo coste lógico que decodifican con unos pocos gates de dos entradas en lugar de un árbol decodificador binario completo.
Qué puede hacer con ella
Comprobaciones de aula y laboratorio
Los alumnos introducen el número n de etapas de biestable y verifican que un contador Johnson de anillo torcido tiene exactamente 2n estados únicos antes de comparar con contadores de anillo (n) y binarios (2^n).
Calificación automática de exámenes y LMS
Califique preguntas de lógica digital sobre el módulo del contador Johnson con un oráculo determinista 2n en lugar de una simulación completa de biestables.
Dimensionado FPGA y diseño de secuencias
Elija n de modo que 2n coincida con la relación de división o el número de pasos multifase requeridos antes de escribir HDL para la cadena de desplazamiento y el decodificador.
Preguntas frecuentes
¿Cuántos estados únicos tiene un contador Johnson?
Un contador Johnson (anillo torcido) con n etapas de biestable tiene exactamente 2n estados únicos.
¿En qué se diferencia un contador Johnson de un contador en anillo?
Un contador en anillo simple realimenta la última etapa sin invertir y tiene n estados únicos. Un contador Johnson invierte esa realimentación y tiene 2n estados únicos.
¿Cuántos biestables necesito para un contador Johnson que divida entre 10?
Cinco. Un contador Johnson de 5 etapas recorre 10 estados antes de repetirse, la disposición de década habitual en contadores de década y generadores de ondas multifase.
¿Qué secuencia recorre un contador Johnson?
Desde un reinicio a cero se llena de unos desde un extremo, una etapa por pulso de reloj, y luego los vacía del mismo modo. Así salen n patrones de subida y n de bajada, y cada código válido es un bloque de unos junto a un bloque de ceros.
¿Por qué es fácil decodificar un contador Johnson?
Porque sus estados siguen ese patrón de bloques, cada uno se reconoce con unas pocas puertas de dos entradas en lugar de un árbol decodificador binario completo. Eso abarata la lógica en controladores de secuencia y divisores de reloj entre 2n.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"stages": 4
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.johnson_counter",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Contrato de entrada, campos de respuesta y reglas de validación
Ejemplo: stages igual a cuatro produce ocho estados Johnson únicos, cuatro de anillo y dieciséis binarios. Ejemplo: stages igual a cinco produce diez estados únicos—el arreglo Johnson de década habitual en contadores de década y generadores multifase. Envíe un cuerpo JSON con un campo obligatorio: stages, un entero positivo n de uno a diez mil. Se aceptan cadenas numéricas; los alias n, flip_flops, flipflops, stages_n, ff y count apuntan al mismo parámetro para que clientes SDK y widgets de formulario sigan siendo flexibles. stages ausente, valores no finitos, no enteros, cero, negativos o por encima del techo fallan con invalid_input y no se facturan. En éxito el cuerpo repite stages, informa unique_states como dos veces stages, ring_counter_states como stages para la comparación no torcida, y modulus igual a unique_states de modo que el lenguaje de divisor de frecuencia queda a un campo. La cadena formula reafirma unique_states igual a dos veces stages para mostrarla junto al número. Cuando stages es como máximo cincuenta y tres, también se devuelve binary_counter_states como dos elevado a stages para que pueda contrastar la capacidad lineal Johnson con la binaria exponencial usando enteros IEEE exactos; para n mayores ese campo de comparación se omite en lugar de redondearse o ponerse a null, según la regla de la plataforma de que las salidas opcionales desaparecen en vez de llevar null.
Dónde una API de estados del contador Johnson aporta valor
Apuntes de clase y manuales de laboratorio piden el número de estados únicos de un contador Johnson de cuatro o cinco bits; los tutores necesitan un oráculo determinista que siempre responda 2n en lugar de mezclar cifras de anillo, Johnson y binario. Arquitectos FPGA y ASIC esbozan módulos—ocho, diez, doce, dieciséis—antes de comprometer LUT o celdas estándar, y una calculadora de un solo campo es más rápida que montar un testbench HDL solo para comprobar la teoría de conteo. La validación fallida no consume saldo. Generadores de exámenes y plugins LMS llaman a un endpoint parse pequeño para calificar respuestas abiertas sin simular circuitos. Como la implementación es parse pura de nivel A, cada llamada con éxito cuesta el precio base publicado $0.002 sin tokens de modelo ni red saliente. Mantenga stages pequeño y entero, fije unique_states en las pruebas y obtendrá respuestas reproducibles para deberes, tablas de hoja de datos y workers de borde sin levantar un simulador de lógica secuencial propio.
Preguntas técnicas
¿Qué entrada exige la calculadora?
Un entero positivo stages de 1 a 10000 (alias: n, flip_flops, flipflops, stages_n, ff, count). No enteros, cero, negativos o valores ausentes devuelven invalid_input.
¿Por qué a veces falta binary_counter_states?
Solo se incluye cuando stages ≤ 53 para que 2^stages sea un entero seguro exacto. Para n mayores el campo opcional se omite en lugar de aproximarse o ponerse a null.
¿Cuánto cuesta la calculadora de estados del contador Johnson?
La herramienta del navegador es gratuita. Las solicitudes API usan saldo KIT prepago a $0.002 por llamada con éxito; la entrada inválida no se factura.