tenga sentido.
Hardware, no instrucciones.
Sigue las mismas entradas hasta celdas lógicas independientes.
Vista 3D con foco · A–D entradas · Espacio reloj · R reinicio · L etiquetas · 1–6 capítulos · Esc libera
El renderizado 3D no está disponible
Los controles lógicos, las tablas de verdad y el motor de formas de onda siguen disponibles.
Empieza con un experimento de cinco minutos
En Sumador completo, cambia A, B y C. SUM es su paridad; CARRY está a nivel alto cuando al menos dos de ellas lo están. No hace falta reloj. Abre Dentro de una LUT para ver qué bit almacenado seleccionan las entradas. Cambia un bit de memoria: habrás reconfigurado un circuito, no cambiado una entrada de datos.
Después carga el Pipeline de 2 etapas, abre Recordar un bit y emite un pulso de reloj. Ambos registros muestrean sus valores D en el mismo flanco. El segundo registro muestrea la salida anterior del primero, no un valor que acabe de producir ese flanco. Desactiva CE para mantener el estado. SRST es síncrono y tiene prioridad sobre CE.
Qué significa realmente una LUT
En una LUT de cuatro entradas, la dirección es I0 + 2·I1 + 4·I2 + 8·I3. Hay 16 bits almacenados. INIT[address] es el resultado combinacional. El árbol visible 16→8→4→2→1 es una red lógicamente equivalente de 15 multiplexores de dos entradas. I0 selecciona dentro de cada par; I1, I2 e I3 seleccionan grupos cada vez mayores. Esta explicación no presupone ninguna disposición concreta de transistores. El árbol muestra la selección que implican las entradas de la LUT ya llegadas; sus puertas internas no se simulan con retardos individuales. F se actualiza tras un único retardo agregado de LUT de 620 ps.
Por ejemplo, 0x6666 implementa I0 XOR I1; 0x9696 implementa la paridad de tres entradas; 0xE8E8 implementa una función de mayoría de tres entradas. Las ocho posiciones superiores se repiten cuando una función ignora I3. El contenido de la memoria de la LUT no cambia mientras varían las entradas de datos.
¿Qué es configurable y qué no lo es?
La configuración determina los bits de las LUT, las fuentes de entrada y si la salida visible de una celda usa F o la Q registrada. Los multiplexores y el cableado metálico ya existen en el chip fabricado; la configuración selecciona su comportamiento. El microscopio de enrutamiento lo abstrae como una fuente seleccionada por destino. Los dispositivos reales tienen pistas finitas y propias de cada familia, conectividad de conmutación y restricciones de enrutamiento, no una matriz de cruce universal.
Cada una de las 16 celdas del laboratorio tiene una LUT4 y un DFF opcional de flanco positivo. Un bloque lógico configurable real suele agrupar varios elementos lógicos; los nombres, los tamaños de LUT y las reglas de empaquetado y de compartición varían según la familia. Algunas FPGA usan LUT más grandes o fraccionables. Las tecnologías de configuración de las FPGA también varían: no deduzcas que todas las FPGA usan una configuración SRAM volátil.
El motor digital
El motor usa picosegundos enteros, eventos de señal en cola, retardos de transporte en la interconexión y un retardo inercial en la LUT. El retardo de una ruta no constante es 260 ps + 140 ps × Manhattan hops + added route delay. Las entradas conectadas a una constante tienen un retardo de ruta modelado nulo. El retardo de la LUT es de 620 ps; el de reloj a Q, de 220 ps; el setup y el hold, de 200 ps y 120 ps. Son cifras explicativas, no especificaciones de ningún chip.
Todas las entradas D se muestrean antes de que cambie cualquier Q en un flanco de subida ideal compartido. Por eso la realimentación del contador es síncrona. Los bucles de realimentación totalmente combinacionales se rechazan. X significa que un valor digital no está garantizado: una entrada de LUT desconocida produce un resultado conocido solo cuando coinciden todas las posiciones compatibles de la tabla. Una violación de setup/hold produce un estado desconocido conservador. El motor no predice una tensión analógica de metaestabilidad ni su resolución probabilística.
Pulso de reloj programa un pulso completo en un límite futuro de la cuadrícula de reloj de 12 ns, después de que el estado actual haya tenido su tiempo de setup. Los límites sin actividad pueden omitirse entre acciones del usuario; es un banco de pruebas interactivo, no un oscilador en marcha continua. Iniciar reloj pone en cola esos pulsos de forma repetida. Siguiente evento pausa la propagación automática y avanza una marca de tiempo de simulación. El instrumento de formas de onda y la exportación VCD contienen estados del modelo realmente registrados, no ondas sinusoidales ilustrativas. La pantalla conserva un historial deslizante de hasta 4000 instantáneas por tiempo de evento.
La temporización es una hoja de cálculo explícita y aparte
El capítulo de temporización no modifica el circuito en vivo ni su forma de onda. Comprueba un camino hipotético de registro a registro en esquinas mín./máx. ilustrativas. El setup usa la llegada más tardía: tCQ(max) + route(max) + N·tLUT(max). Su plazo es T + capture−launch skew − uncertainty − setup. El hold usa la llegada más temprana y exige que supere capture−launch skew + uncertainty + hold. Un desfase positivo en la captura favorece el setup y perjudica el hold. Reducir solo la frecuencia de reloj no corrige una violación de hold en el mismo flanco.
La hoja usa tCQ máx./mín. = 0,22/0,10 ns y tLUT máx./mín. = 0,62/0,18 ns. A cada comprobación se le aplica por separado un margen de incertidumbre conservador de 0,10 ns. Un límite de frecuencia calculado solo con el setup no garantiza la temporización de todo el diseño. La hoja omite la reconvergencia de reloj, las excepciones, los caminos multiciclo, el análisis con varios relojes y las esquinas de temporización de los fabricantes.
La configuración y el pequeño compilador
El mapeador booleano acepta como máximo cuatro variables, además de NOT, AND, XOR, OR y paréntesis. Analiza una expresión, evalúa los 16 casos y mapea exactamente esa función en una LUT4. Asigna una celda didáctica fija y cuatro conexiones de entrada. No sintetiza Verilog arbitrario, no resuelve la congestión real del enrutamiento, no realiza una colocación guiada por la temporización ni genera un flujo de bits de fabricante. El RTL generado describe la netlist configurada actual del laboratorio, con el reset síncrono y las asignaciones no bloqueantes de los registros. La compatibilidad con la inicialización de registros en una FPGA depende del dispositivo y de la herramienta.
Programar una palabra, cambiar una ruta o elegir la salida registrada o directa se trata como una reconfiguración de todo el modelo: el reloj se detiene, la ejecución y el historial de formas de onda se reinician, Q se inicializa a 0 y se conservan los niveles elegidos de las entradas primarias. No es una simulación de reconfiguración parcial dinámica. Los archivos de proyecto JSON guardan el circuito y las entradas primarias, no el estado de ejecución analógico o transitorio.
Recursos dedicados y límites del modelo
Las columnas BRAM y DSP son contexto arquitectónico: se pueden inspeccionar, pero no se instancian en las netlists lógicas incluidas. En muchas arquitecturas reales, las cadenas de acarreo dedicadas aceleran la aritmética. Aquí, el sumador y el contador usan lógica de LUT a propósito para mostrar el mecanismo booleano; no pretenden ser un mapeo optimizado con cadenas de acarreo.
No se modelan el comportamiento de los transistores, el consumo, el calor, la integridad de la señal, la metaestabilidad analógica, los estándares eléctricos de E/S, el desfase detallado del árbol de reloj, la probabilidad de alteraciones en la SRAM, el grado de velocidad del dispositivo ni el patillaje del fabricante. La separación entre capas, los terminales con aspecto de encapsulado y las dimensiones son ilustrativos. Ejecutar este simulador de JavaScript no es ejecutar una FPGA: reproduce en software la semántica digital descrita.
Controles y accesibilidad
Arrastra para orbitar; arrastra con Mayús o con el botón derecho para desplazar; pellizca para hacer zoom. Selecciona Arriba para una vista en planta ortográfica. Haz clic en una celda lógica, un bit de LUT o un punto de cruce del enrutamiento. Todos los parámetros editables del circuito también están disponibles en controles de formulario normales. Mientras la vista 3D tiene el foco, la rueda hace zoom, las teclas de flecha orbitan, A–D cambian las entradas primarias, Espacio pone en cola un pulso de reloj, R reinicia la ejecución, 1–6 cambian de capítulo, L muestra u oculta las etiquetas, ? abre esta guía y Escape libera la vista. El laboratorio usa WebGL 2 nativo y calcula cada señal en este navegador.
Referencias técnicas principales
Los conceptos de arquitectura y las ecuaciones de temporización se han contrastado con las fuentes siguientes. Los enlaces externos se abren en una pestaña nueva.
Por qué existe la memoria dedicada
Una LUT almacena una pequeña tabla de verdad, y algunas LUT de FPGA también pueden configurarse como memoria distribuida. Los búferes, las FIFO y las tablas de mayor tamaño se implementan de forma más eficiente con recursos dedicados de RAM en bloque. Los bloques reales tienen capacidades, anchos, modos de puerto, habilitaciones de escritura, temporización de lectura y comportamiento de lectura durante la escritura específicos.
Otro papel para los bits
En este laboratorio, los bits INIT de una LUT definen una función booleana. En un diseño de memoria en funcionamiento, las direcciones, los datos y las habilitaciones de escritura acceden a datos de usuario. Estos dos usos no deben confundirse con los bits de configuración que eligen el modo de funcionamiento de la RAM o enrutan sus puertos.
Selecciona las celdas LUT ámbar para volver a la ruta de datos simulada. Este modelo visual no inventa latencias de BRAM, comportamientos de colisión de doble puerto ni datos de usuario almacenados.
Un multiplicador no tiene por qué consumir muchas LUT
Muchas familias de FPGA incluyen bloques aritméticos dedicados para operaciones como la multiplicación y la multiplicación-acumulación. Pueden incluir registros de pipeline, sumadores, multiplexores de operandos y conexiones en cascada. El ancho, el tratamiento del signo, las operaciones admitidas y la temporización dependen del dispositivo.
Del HDL al recurso adecuado
Una herramienta de síntesis puede inferir un bloque DSP a partir de RTL aritmético cuando el dispositivo de destino, el ancho de los operandos y los ajustes de síntesis lo permiten. También puede implementar una función más pequeña en LUT. Más recursos de hardware pueden funcionar a la vez, pero su rendimiento y su latencia siguen dependiendo del reloj, de la segmentación en pipeline y del movimiento de datos.
Este laboratorio didáctico muestra deliberadamente funciones pequeñas basadas en LUT. No afirma que su columna DSP esquemática sea una primitiva aritmética simulada de un fabricante.
Guarda las palabras de LUT configuradas, las rutas, la selección de registros y los niveles de las entradas primarias. Las formas de onda y el estado transitorio de los registros no forman parte de un archivo de configuración.
Configuración portátil
Un archivo JSON legible y validado en formato FABRIC. No es un flujo de bits de fabricante.
Punto de control en el navegador
Se guarda solo en este navegador. Su disponibilidad depende de la política de almacenamiento del navegador.
Actividad de señales grabada
Exporta la traza actual por tiempo de evento en el formato estándar Value Change Dump (escala de tiempo de 1 ps).
Descripción de hardware legible
Generada a partir de la netlist realmente programada, no de un borrador de expresión sin aplicar.
En el número actual
Los suscriptores abren cada exhibición nueva el día de su estreno. Una cuenta gratuita de DigiSim abre esta a partir del {memberDate}; sin cuenta se abre el {anonymousDate}.
Iniciar sesión o registrarseVer planesLa exposición no está disponible. La reproducción está en pausa. Recarga para reintentar.