Algoritmo de marcha DFT? Tablero de ajedrez 2

Algoritmo de marcha DFT? Tablero de ajedrez 2
Photo by Mayu Yamamura on Unsplash

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, w1 podrí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 leemos 1.

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 w1 a cualquier celda
  • se repite múltiples veces el patrón de comprobación de su celda vecina con r0 o r1, 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)
  • Por dirección, esto suele ser:
    • Dirección par → 0x5555_5555
    • Dirección impar → 0xAAAA_AAAA
  • 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 → r1 es 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
  • En otras palabras, es más fácil ver la estructura así.
    1. Configura el fondo de datos a uno de sólido 0 / sólido 1 / damero / damero inverso
    2. 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) de March 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/1
      • March C- @ checkerboard / inverse-checkerboard
      • Agregar algoritmos orientados a NPSF de March SS para cumplir los objetivos de cobertura de diagnóstico.
  • 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.
    1. 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"
    2. DPPM/PPM objetivo, Requisitos estándar
      • Cobertura de diagnóstico ISO 26262
      • Guía de cobertura de fundición / cliente
    3. 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
  • 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.)
      1. 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
      2. 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
      3. El concepto básico es March X, y la práctica real se basa en March C-.
      4. Checkerboard no es un algoritmo, sino un fondo.
        • Marcha C- @ sólido 0/1 para la celda en sí y
        • Marcha C- @ tablero de ajedrez/ tablero de ajedrez inverso para la interacción vecina.
      5. 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.
"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..

Enjoyed this article?

Get deep-dive semiconductor analysis and career insights delivered weekly. Free forever — no paywall, no upsell. Funded by sponsorships with a strict editorial firewall (Editorial Standards).

Work with me

Consulting · Collaboration · Support

Paid 1:1 technical consulting, speaker invitations, collaboration proposals, or just want to say thanks — all welcome.

View options →
VLSI Korea Free forever · No paywall · Weekly semiconductor insights from practicing engineers
Support