ForHosting KIT · Matemáticas

Registro de desplazamiento LFSR

Indique una fila inicial de bits, las posiciones de toma y un número de pasos, y obtenga la secuencia de un LFSR de Fibonacci: la semilla 1000 con tomas 4 y 1 durante 8 pasos emite 00011110 y termina en 1101. Útil para ejercicios de CRC. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto
Si escribe
Estado
1000
Toques
4, 1
Obtiene
Longitud
4
Secuencia
00011110
Estado final
1101

Un registro de desplazamiento con realimentación lineal, o LFSR, es una máquina digital compacta que guarda una fila de bits y, en cada pulso de reloj, aplica XOR a un puñado de posiciones de toma para calcular un bit de entrada nuevo mientras desplaza el resto. Los diseñadores emplean registros LFSR para generar flujos de bits seudoaleatorios, restos de redundancia cíclica, secuencias de scramble y patrones de autoprueba incorporada sin almacenar una tabla de consulta. Esta calculadora acepta el estado inicial del registro como una cadena de ceros y unos, una lista de posiciones de toma numeradas desde 1 y contadas desde la izquierda, y el número de pasos de reloj que deben ejecutarse. Implementa un LFSR de Fibonacci: cada paso emite el bit más a la derecha, desplaza el registro un lugar hacia la derecha e inserta a la izquierda el XOR de los bits tomados.

Qué es un LFSR de Fibonacci y cómo cada reloj produce un bit

Un registro de desplazamiento con realimentación lineal es una máquina de estados finitos cuyo siguiente bit de entrada es una función lineal de su contenido actual, tomada sobre el cuerpo de dos elementos GF(2). En hardware esa función lineal no es más que XOR. Las posiciones se numeran desde 1 a la izquierda de la cadena de estado hasta n a la derecha.

En cada reloj el motor lee los bits de esas tomas, los combina con XOR para obtener un único bit de realimentación, emite el bit más a la derecha como la siguiente muestra de salida, desplaza cada bit un lugar hacia la derecha y escribe el bit de realimentación en la celda izquierda que queda libre.

Repetir ese paso produce una secuencia de bits determinista cuyo periodo es a lo sumo 2^n menos uno: el estado de ceros es un punto fijo, y cualquier otro estado de un polinomio de periodo máximo (primitivo) recorre los 2^n menos uno vectores no nulos restantes antes de repetirse. Polinomios clásicos de aula como x^4 más x más uno, que corresponde a las tomas 4 y 1 en un registro de cuatro bits, alcanzan ese periodo máximo cuando se arrancan desde una semilla no nula.

Los LFSR de Galois aplican XOR a varias celdas al desplazar y producen un flujo emparentado, pero no idéntico, para el mismo polinomio; esta calculadora no emula el cableado de Galois.

Ejercicios de aula con LFSR y CRC

Avance un registro de Fibonacci desde una semilla y una lista de tomas, y compare la secuencia de bits emitida y el estado final con la tarea resuelta a mano o con el polinomio del libro.

Prefijos PRBS y de autoprueba incorporada

Genere un prefijo conocido de un flujo LFSR de periodo máximo para comprobar que un FPGA, un ASIC o un scramble de software coinciden con las tomas especificadas tras el reset.

¿Cómo avanza este registro de desplazamiento con realimentación lineal en cada paso?

Implementa un LFSR de Fibonacci. El XOR de los bits en las posiciones de toma numeradas desde 1 es la realimentación. Se emite el bit más a la derecha, el registro se desplaza un lugar hacia la derecha y el bit de realimentación se escribe en la celda más a la izquierda.

¿Cómo se numeran las posiciones de toma?

El polinomio x^4+x+1 en cuatro bits son las tomas 4 y 1.

¿Qué ocurre si una toma supera la longitud del registro?

Una toma mayor que n describiría un polinomio distinto; el manejador rechaza el recubrimiento circular para que el contrato siga siendo honesto.

¿Qué produce una semilla de ceros?

Todos los bits de salida permanecen en 0 y el registro se queda en ceros, porque el XOR de ceros es cero. Ese punto fijo es comportamiento real de un LFSR, no un error. Use una semilla no nula para un flujo no trivial.

¿Cuál es la secuencia más larga que puede producir un LFSR?

Como máximo 2 elevado a n menos 1 bits antes de repetirse, siendo n la longitud del registro. Las tomas de periodo máximo, como 4 y 1 en un registro de cuatro bits, alcanzan ese límite desde cualquier semilla que no sea toda ceros.

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.

POSThttps://api.kit.forhosting.com/math/linear-feedback-shift-register

¿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.

curl -X POST https://api.kit.forhosting.com/math/linear-feedback-shift-register \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"state":"1000","taps":[4,1],"steps":8}'
{
  "state": "1000",
  "taps": [
    4,
    1
  ],
  "steps": 8
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "math.linear_feedback_shift_register",
  "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.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

max_length64
max_steps4096
HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Si alguna toma queda más allá de la longitud del registro, la tarea falla con invalid_input en lugar de inventar un recubrimiento circular.

Qué es un LFSR de Fibonacci y cómo cada reloj produce un bit

La forma de Fibonacci, que este endpoint implementa, conserva una fila de n bits y una lista de posiciones de toma.

Contrato de entrada, numeración de tomas, forma de la respuesta y errores

Envíe por POST un cuerpo JSON con tres campos obligatorios. state es el registro inicial como cadena de caracteres 0 y 1; el carácter más a la izquierda es la posición 1 y la longitud de la cadena es la anchura del registro, de uno a sesenta y cuatro bits. El espacio en blanco dentro de state se ignora, de modo que un nibble espaciado como 1 0 0 0 se acepta. taps es un arreglo no vacío de posiciones enteras numeradas desde 1 cuyos bits se combinan con XOR para formar la realimentación de Fibonacci; cada toma debe quedar entre 1 y la longitud del registro, ambos inclusive. steps es el número de relojes a ejecutar, un entero de 1 a 4096; cada reloj emite un bit de salida. Se aceptan los alias seed o register para state, tap_positions para taps, y n o count para steps. Los campos ausentes, los no-bits en state, los no enteros, las listas de tomas vacías y los valores fuera de los límites publicados fallan con invalid_input nombrando el campo y no se facturan. El error distintivo de esta capacidad es una toma que rebasa el registro: si state tiene cuatro bits y taps incluye 5, el manejador rechaza la solicitud con un mensaje de que la posición de toma supera la longitud del registro, en lugar de envolver módulo n, lo cual implementaría en silencio un polinomio distinto. En caso de éxito el cuerpo devuelve como eco length, la cadena canónica state, taps y steps; devuelve bits como un arreglo de enteros 0 y 1 en orden de reloj; devuelve sequence como esos mismos bits concatenados para copiar y pegar; y devuelve final_state, el contenido del registro tras el último desplazamiento, para que quien llama pueda reanudar la máquina. Ejemplo: state 1000, taps 4 y 1, steps 8 produce bits 0,0,0,1,1,1,1,0, sequence 00011110 y final_state 1101.

Dónde rinde una API de secuencia de bits LFSR

Los cursos de diseño digital y los laboratorios de HDL piden al alumnado avanzar a mano un LFSR de Fibonacci durante unos pocos pasos y cotejar un polinomio de hoja de datos con un volcado de bits; un oráculo determinista que usa la misma numeración de izquierda a derecha y el mismo convenio de desplazamiento a la derecha elimina discusiones sobre cuál extremo es el bit cero. La validación fallida no consume saldo. Las tareas de comunicaciones y de codificación usan LFSR cortos como motor lineal detrás de comprobaciones de resto CRC, códigos de Gold y scramble aditivo; generar aquí el flujo de referencia permite que un calificador compare una implementación del estudiante con un contrato JSON estable en lugar de una captura de pantalla. Los generadores de autoprueba incorporada y de PRBS en silicio y en tejidos FPGA son LFSR en esencia: los scripts de verificación pueden llamar a este endpoint para producir un prefijo conocido de una secuencia de periodo máximo y comprobar después que el dispositivo bajo prueba emite el mismo prefijo tras el reset. Como la implementación es parse puro de tier A, cada llamada exitosa cuesta el precio base publicado de $0.002 sin tokens de modelo y sin red saliente.

Oráculos para bancos de prueba HDL

Alimente pruebas unitarias con un volcado de bits determinista para que un modelo LFSR en Verilog o VHDL no adopte en silencio el sentido de desplazamiento contrario ni tomas numeradas desde 0.

¿Cuánto cuesta la calculadora de registro de desplazamiento con realimentación lineal?

La herramienta del navegador es gratuita. Las solicitudes a la API usan saldo prepago de KIT a $0.002 por llamada exitosa; la entrada inválida no se factura.

Ver la documentación completa del KIT →