5. Por qué marzo parece intuitivo desde el punto de vista de la estructura de la memoria
5.1 Cómo acceder
SRAM Consideremos un banco:

- Selecciona una fila específica (wordline) con el bus de direcciones
- Lee o escribe el valor de una celda a través del bitline conectado a esa fila
- Sólo "una dirección" puede ser controlada con certeza a la vez
Así que la unidad básica de la prueba es naturalmente esta.
"Seleccionar una dirección → realizar una secuencia de lectura/escritura → pasar a la siguiente dirección"
Este flujo en sí se solapa casi 1:1 con la definición del elemento March.
5.2 ¿Cómo se detecta un fallo del decodificador de direcciones?
Por ejemplo, en una dirección:
- Fallo del decodificador provoca que dos filas se enciendan al mismo tiempo.
- En esta dirección,
w1podría hacer que la celda prevista fuera 1, así como la celda de la fila vecina.
Ahora, en otra dirección:
- Esperamos que la celda vecina sea
r0, pero leemos1.
Si repetimos r0, r1 varias veces, subiendo y bajando como Marcha C-, seguramente leeremos en algún momento el valor "celda no intencionada encendida a la vez y sobrescrita".
Este es el mecanismo por el cual el March C- detecta fallo del decodificador de direcciones.
5.3 Cómo detectar un fallo de acoplamiento:
Fallo de acoplamiento es la siguiente situación.
Un fallo en el que el valor de una celda vecina (víctima) no se modifica o mantiene cuando se realiza una operación específica (escritura, conmutación) en la celda agresora
Marca C- es:
- inmediatamente después de hacer
w1a cualquier celda - se repite múltiples veces el patrón de comprobación de su celda vecina con
r0or1, invirtiendo el sentido arriba/abajo.
En el proceso:
- Para encontrar "fallos que sólo se revelan cuando el patrón de una célula vecina se encuentra en un determinado estado", forzamos varios ordenamientos relativos.
- Esto lleva un poco más de tiempo que simplemente escribir/leer el patrón Checkerboard una vez, pero te da una cobertura de fallos mucho mayor.
- Ahora, pongamos en contexto el Checkerboard del que a menudo oímos hablar en la práctica.
- Empecemos con una definición de una línea.
- En términos de bit a bit:
- Patrón A:
0x55...(...0101 0101) - Patrón B:
0xAA...(...1010 1010)
- Patrón A:
- Por dirección, esto suele ser:
- Dirección par →
0x5555_5555 - Dirección impar →
0xAAAA_AAAA
- Dirección par →
- O puedes invertirlo, de modo que 0s y 1s se alternen como un tablero de ajedrez en ambas direcciones horizontal (bitwise) y vertical (addresswise).
- El patrón opuesto se denomina Tablero de ajedrez invertido.
- Los patrones todo-0, todo-1 son, por supuesto, importantes.
w0 → r0,w1 → r1es suficiente para cubrir el fallo de atasco.- El fallo de transición también está cubierto hasta cierto punto.
- El problema es la interacción entre celdas vecinas.
- Cortocircuito/puente entre línea de bits/línea de palabras
- Fallo de acoplamiento
- Fallo sensible al patrón de vecindad (NPSF)
- Estos fallos suelen ser visibles sólo en las siguientes situaciones.
- Cuando dos celdas tienen valores diferentes (0/1)
- Cuando la vecindad tiene un patrón específico (por ejemplo, 010/101)
- Por ejemplo, si dos celdas están débilmente cortocircuitadas:
- Si ambas son 0, el cortocircuito puede no ser perceptible porque es 0, y el valor puede estar distorsionado por la corriente que fluye sólo cuando una es 0 y la otra es 1.
- Así que, desde una perspectiva de prueba:
- La forma más sencilla de hacerlo es con el patrón de tablero de ajedrez.
- Aquí hay un punto en el que es fácil confundirse.
- Algoritmo March =
↑, ↓+(r0, w1, r1, w0 ...)=
Una secuencia de operaciones - Checkerboard =
El fondo de datos
- Algoritmo March =
- En otras palabras, es más fácil ver la estructura así.
- Configura el fondo de datos a uno de sólido 0 / sólido 1 / damero / damero inverso
- Ejecuta la secuencia del algoritmo March en ese estado
- Por ejemplo:
- Paso 1: Llena toda la memoria con Damasco.
- Paso 2: Realizar el elemento
↑(rX, wY)deMarch C-mientras se está en ese estado. - Paso 3: Cambiar a Inverse-checkerboard y marchar de nuevo.
- Este es el tipo de configuración que se suele ver en los scripts de la herramienta MBIST.
- Hemos definido el Algoritmo y el Fondo ortogonalmente, y la combinación mejora la cobertura de fallos.
- En la especificación del producto real, se parece a esto.
- SoC de consumo:
Marca C- @ sólido 0/1- Añade una secuencia de damero corta si es necesario
- SoC de clase Automóvil / Servidor:
March C- @ solid 0/1March C- @ checkerboard / inverse-checkerboard- Agregar algoritmos orientados a NPSF de March SS para cumplir los objetivos de cobertura de diagnóstico.
- SoC de consumo:
- Ahora, por último, vamos a resumir la pregunta,
"¿Cuándo se decide este vector/algoritmo de prueba en el flujo de diseño?".
Es importante no confundir aquí algoritmo de marzo con vector ATPG. - En el mundo real, el proceso de selección de un algoritmo suele resumirse de la siguiente manera.
- Naturaleza del producto
- SoC de electrónica de consumo → "Calidad moderada + tiempo de prueba corto"
- Automóvil / Seguridad crítica → "Fiabilidad muy alta + aceptar un tiempo de prueba más largo"
- DPPM/PPM objetivo, Requisitos estándar
- Cobertura de diagnóstico ISO 26262
- Guía de cobertura de fundición / cliente
- Características de la memoria
- Single-port / Dual-port / Multi-port SRAM
- Archivo de registro, CAM, ROM, eDRAM, eFlash, etc: eFlash/eFuse/NVM incluye test de programación/borrado/retención
- La SRAM multipuerto utiliza la variante March con combinaciones de lectura/escritura entre puertos para fallos de interacción entre puertos
- Naturaleza del producto
- En la práctica, El compilador de memoria / proveedor de IP suele venir con un conjunto March recomendado.
- Como ingeniero de DFT, tomas esto y
- compruebas si cumple con los estándares de tu empresa / requisitos del cliente
- Ejemplo)
March C- + March LA + Checkerboard - Los ingenieros de DFT que trabajan en nuevos proyectos utilizan estos algoritmos por defecto, y sólo los ajustan para memorias inusuales (eFlash, SRAM especial, etc.)
- Ejemplo)
- Las pruebas lógicas y las pruebas de memoria tienen una filosofía diferente:
- Lógicas: escaneo + ATPG, centradas en fallos a nivel de puerta
- Memoria: acceso secuencial dirección a dirección, centradas en fallos de celda/vecino/decodificador
- El algoritmo de marcha es una prueba que repite una secuencia de lectura/escritura marchando a través de direcciones.
- La combinación de dirección (↑/↓) + operación (r0/r1/w0/w1) es la clave
- El concepto básico es March X, y la práctica real se basa en March C-.
- Checkerboard no es un algoritmo, sino un fondo.
Marcha C- @ sólido 0/1para la celda en sí yMarcha C- @ tablero de ajedrez/ tablero de ajedrez inversopara la interacción vecina.
- La elección del Algoritmo viene determinada por las opciones de la herramienta en el paso de inserción MBIST.
- No es como leer un artículo y elegir un March bonito y ponérselo después al crear un vector,
- Se determina en el momento de la inserción de la arquitectura DFT / MBIST mirando el requisito de la prueba, las características de la memoria y el tiempo de la prueba.
- compruebas si cumple con los estándares de tu empresa / requisitos del cliente
"Esta macro SRAM consigue una cobertura de fallos del XX% basada en March C- + Checkerboard"Requisito de prueba + Características de la memoria + Tiempo de prueba (coste ATE) + Valores predeterminados de la herramienta/biblioteca
7.1 Criterios de selección de algoritmos
7. Cuándo y cómo se decide Marzo/Checkerboard desde la perspectiva MBIST?"
Algoritmo:Marcha C-
Fondo:sólido 0/1,tablero de comprobación,tablero de comprobación inverso
6.3 Relación entre damero y marzo
Queremos crear una situación en la que "las celdas vecinas siempre tengan valores opuestos" para estimular la mayor interferencia posible entre
línea de bits / celda / línea de palabras.
6.2 ¿Por qué damero? (¿No puede ser todo-0/todo-1?)
Patrón de damero = un fondo de datos en el que las celdas de memoria están dispuestas de forma que las celdas vecinas siempre tienen valores opuestos, como
01010101... /10101010....
6.1 Qué es un patrón de tablero de ajedrez:

6. Antecedentes del Checkerboard y Algoritmo March
y si no, lo personalizas añadiendo más elementos March, añadiendo fondos, etc.Además, muchas empresas tienen un conjunto estándar de algoritmos MBIST a nivel de BU / empresa:En la práctica, es raro que ingenieros individuales diseñen algoritmos March desde cero, y plantillas estándar + alguna personalización es más la norma.
요약: Buenos puntos que los ingenieros de DFT/ATPG deben recordar
En resumen, los siguientes puntos son útiles para que los ingenieros de DFT/ATPG los tengan en la cabeza.Con este conocimiento, tendrás una mejor idea de cómo controlar al equipo de DFT en las reuniones de diseño de chips, y te sentirás mucho más cómodo cuando leas las especificaciones MBIST o las directrices de la fundición.Y cuando llegue el momento de diseñar tu propio marzo personalizado + fondo, este marco será un buen punto de partida..