La cobertura de fallas se refiere al% de la cantidad total de arcos que se prueban. Esto se puede hacer ya sea en pruebas posteriores al silicio (generación automática de patrones de prueba, autoprueba incorporada, etc.) para verificar defectos en el circuito fabricado, o como parte de una verificación formal (verificación de la implementación del circuito versus el registro de transferencia). nivel de descripción del circuito) durante las etapas de diseño anteriores.
Un arco se define como una ruta única desde un borde ascendente / descendente en un puerto de entrada a un borde ascendente / descendente en el puerto de salida, junto con cada nodo interno en el camino (ascendente o descendente).
Un inversor tiene dos arcos; in (r) - > out (f) y in (f) - > out (r).
Considere la puerta CMOS NAND:
La puerta NAND de 2 entradas tiene 4 arcos:
- a (r) - > out (f) para b = 1
- a (f) - > out (r) para b = 1
- b (r) - > out (f) para a = 1
- b (f) - > out (r) para a = 1
No puedes solo revisar cada puerta una vez, pero necesitas cubrir cada arco.
Como un ejemplo adicional que usa el caso NAND de 2 entradas, suponga que el cable está abierto entre Vdd y el PMOS conectado a la entrada B.
Ahora, si A aumenta (0- > 1) mientras mantiene B = 1, vería caer la salida y concluiría que la puerta funciona. Pero, la puerta no funcionará en el caso de que B se caiga (ya que los controles PMOS B están rotos).
A medida que crea una lógica de múltiples etapas más compleja, el número de arcos necesarios para una cobertura de fallas del 100% aumenta exponencialmente. Por lo tanto, no siempre es posible.