Fundamentos de diseño RTL
Expresa circuitos digitales en SystemVerilog. Estudia tipos, anchuras, signo, lógica combinacional y secuencial, módulos, parámetros y generate; verifica límites y fallos con bancos de pruebas independientes. Termina conectando pulsos periódicos y un acumulador, con evidencias de ejecución reproducibles.
Qué aprenderás
- Especificar anchura, signo, controlador, instante de validez y valor de reinicio de cada señal.
- Separar asignaciones combinacionales completas de actualizaciones de estado con reloj.
- Crear estructuras estáticas con parámetros y generate y probar configuraciones límite.
- Componer módulos mediante conexiones por nombre y funciones.
- Escribir estímulos sin carreras y modelos de referencia independientes.
- Distinguir evidencias de compilación, simulación, síntesis y ejecución en DDS.
Antes de empezar
Estos ejercicios del navegador usan modelos educativos; no compilan ni ejecutan HDL. Para ejecutar el código por separado, sigue la guía de Digital Design Studio para tu sistema operativo e inicia sesión cuando la operación lo requiera.
Instalación y primer inicio ↗ · Descargas ↗Programa
- RTL y contratos de módulos
- RTL: describir circuitos concurrentesConcepto
Separa el orden del software de la estructura paralela y especifica estado actual, siguiente estado e instantes de observación.
- Señales y puertos: contratos de ancho, dirección y tiempoConcepto
Lea interfaces y separe los criterios de verificación de salidas combinacionales y de estado.
- Módulos, puertos e instancias: conexiones como contratosConcepto
Compón módulos con conexiones por nombre, comprobando controlador único y límites de jerarquía.
- Comprobación: salida combinacional y almacenadaEvaluación
Distingue cambio de entrada y observación del registro.
- Tipos, anchuras, signo y expresiones
- logic, wire, X/Z y anchuras explícitasConcepto
Distingue declaración y almacenamiento; verifica literales, comparaciones, extensiones y desconocidos.
- Índices de vector, orden de bits y signoConcepto
Distinga índices, orden de transmisión serie e interpretación aritmética al leer caminos de datos.
- Anchos de selección, concatenación y repetición de bitsConcepto
Calcule ancho total y conservación de valor al construir caminos de datos.
- Complemento a dos, extensión de signo y desbordamientoConcepto
Distinga la interpretación signed y las condiciones de overflow con ecuaciones y contraejemplos.
- Comprobación: rango y extensión explícitaEvaluación
Revisa conjuntamente anchuras de entrada y salida.
- RTL combinacional completo y verificación
- RTL combinacional y asignaciones completasConcepto
Exprese la misma función con el operador condicional y always_comb y encuentre omisiones que infieren latches.
- Codificadores y prioridad: elija una entre varias peticionesConcepto
Distinga entre la hipótesis one-hot de un codificador simple y las salidas valid y de selección de un codificador con prioridad.
- Verificación del MUX: prueba exhaustiva y propiedadesConcepto
Compruebe por separado la cobertura combinacional y el almacenamiento y reduzca los contraejemplos.
- Comprobación de diseño: equivalencia de selección e instante de observaciónEvaluación
Distinga verificaciones resueltas con tablas de verdad de las que requieren observar el reloj.
- Estado, asignaciones y prioridad del reinicio
- Flip-flops, enable y prioridad de controlConcepto
Defina conservación, carga y reset como estado siguiente y evite crear puertas de reloj involuntarias.
- Asignaciones no bloqueantes y actualización simultáneaConcepto
Separe valores anteriores y siguientes para interpretar correctamente contadores y pipelines RTL.
- Contadores modulares, saturación y pulsos de finConcepto
Diseñe la política del máximo y el ciclo exacto de la señal de fin de cuenta.
- Práctica: verifique reset, retorno modular e invariantes del contadorPráctica
Compare cada flanco con una referencia y separe los efectos de inicialización, reset y ancho.
- Comprobación de diseño: límites de ancho, prioridad y retornoEvaluación
Resuelva casos límite y controles simultáneos desde una especificación de transición.
- Parámetros y generación de estructuras estáticas
- parameter, localparam, $clog2 y configuraciones límiteConcepto
Separa entradas dinámicas de configuración estática y diseña anchura y terminación para N=1 y valores que no son potencias de dos.
- generate: construir circuitos estáticos con buclesConcepto
Usa genvar y generate-if para crear jerarquía con nombres y revisar la distribución de lanes.
- function automatic y expresiones reutilizablesConcepto
Escribe funciones sin tiempo simulado y comprueba retorno, signo e independencia de la referencia.
- Comprobación: N=1 y anchuraEvaluación
Separa anchura mínima de número de estados válidos.
- Bancos de pruebas y verificación independiente
- Instantes de muestreo y causalidad en las formas de ondaConcepto
Separe estabilización combinacional, captura de reloj y orden de eventos al leer ondas.
- Práctica: un banco de pruebas que informa sus fallosPráctica
Separa DUT, estímulos, referencia y comprobación para probar reset, enable y retorno sin carreras.
- Plan de verificación, cobertura y referencia independienteConcepto
Distinga pruebas superadas de cumplimiento y planifique límites, cruces de condiciones y contraejemplos mínimos.
- Depuración del contador y contraejemplos mínimosConcepto
Diseñe pruebas cortas que distingan fallos de reset, enable y retorno en el límite.
- Comprobación: referencia y carrerasEvaluación
Selecciona expectativas independientes y observación tras actualización.
- Composición de módulos y práctica integrada
- Máquinas de estados: separe estado, transición y salidaConcepto
Construya una FSM desde su tabla y compare Moore, Mealy, estados ilegales y política de peticiones.
- Proyecto integrado: detector del patrón 101 con solapamientoConcepto
Aplique minimización de estados, entrada válida, salida registrada y referencia independiente en un diseño.
- Ready/valid y un búfer elástico de una posiciónConcepto
Diseñe la condición de transferencia y la entrada y salida simultáneas para que una ruta de datos que puede detenerse no pierda ni duplique elementos.
- Pipeline de multiplicación y suma y alineación de datosConcepto
Divida el cálculo mediante registros y mantenga alineados los datos, valid y los operandos auxiliares de cada transacción.
- Práctica integrada: pulsos periódicos y acumulador habilitadoPráctica
Especifica transferencias con valores anteriores y compara pausas, pulsos consecutivos y reinicio simultáneo.
- Diagnósticos y alcance de los resultados
- Setup, hold y presupuesto temporalConcepto
Separe retardos máximos y mínimos y calcule la condición de hold, independiente de la frecuencia.
- Cruces de dominios de reloj y metaestabilidadConcepto
Comprenda el alcance del sincronizador de dos etapas y distinga niveles de un bit, pulsos cortos y transferencias multibit.
- Compilación, lint y síntesis: alcance de los diagnósticosConcepto
Fija archivos, top y lenguaje; distingue sintaxis, anchura y latches de la verificación funcional.
- Registro de ejecución y continuación en DDSConcepto
Entrega fuentes, entradas, expectativas, fallos y versiones para reproducir la práctica.
- Comprobación final: funcionamiento y evidenciaEvaluación
Distingue el resultado local de la aceptación de una práctica DDS gratuita.