Diseño de sistemas digitales y embebidos
El dominio de diseño de sistemas digitales y embebidos evalúa lógica combinacional y secuencial, máquinas de estado, análisis de temporización, cruce de dominios de reloj y programación de microcontroladores con periféricos. El examen combina cuentas de holgura temporal con decisiones de arquitectura de firmware.
Temporización síncrona
- Setup: Tclk ≥ Tcq + Tlogic(max) + Tsetup + skew.
- Hold: Tcq + Tlogic(min) ≥ Thold + skew; el hold no se arregla bajando la frecuencia.
- Con 50 MHz (Tclk = 20 ns), Tcq = 2 ns, lógica máxima 12 ns, Tsetup 3 ns y skew 1 ns: holgura = 20 − (2+12+3+1) = 2 ns. Si el skew sube a 4 ns, la holgura es −1 ns y el diseño falla a esa frecuencia.
FSM y cruce de reloj
- Moore: la salida depende del estado; Mealy: también de las entradas, reacciona antes pero es más propensa a glitches.
- Cruce de reloj: sincronizador de dos flip-flops, handshake o FIFO asíncrona; calcula MTBF y no uses una sola etapa.
- En firmware: ISR cortas, variables compartidas
volatile, prioridades definidas, watchdog y mapa de memoria verificado.
Ejemplo trabajado
Un contador síncrono recibe datos de un dominio a 25 MHz. El sincronizador de dos etapas añade dos ciclos de latencia, pero evita la propagación de metastabilidad. Si el evento se muestrea una sola vez, la probabilidad de fallo crece exponencialmente con la frecuencia de datos; documenta esa latencia y no la confundas con un retardo combinacional.
Trampas que cuestan puntos
Invertir setup y hold, olvidar skew/jitter, confiar en reset asíncrono sin sincronizar, no hacer debounce y medir el rendimiento sin considerar interrupciones.