Algoritmo DFT March? Checkerboard 2

Algoritmo DFT March? Checkerboard 2
Photo by Tamanna Rumee on Unsplash

5. Porque é que março parece intuitivo do ponto de vista da estrutura da memória

5.1 Como aceder

SRAM Considere um banco:

  • Selecionar uma linha específica (wordline) com o barramento de endereços
  • Ler ou escrever o valor de uma célula através da bitline ligada a essa linha
  • Apenas "um endereço" pode ser controlado com certeza de cada vez

Assim, a unidade básica do teste é naturalmente esta.

"Selecionar um endereço → efetuar uma sequência de leitura/escrita → passar para o endereço seguinte"

Este fluxo sobrepõe-se quase 1:1 à definição do elemento março.


5.2 Como se detecta uma falha do descodificador de endereços?

Por exemplo, num endereço:

  • A falha do descodificador faz com que duas linhas se acendam ao mesmo tempo.
  • Nesse endereço, w1 poderia fazer com que a célula pretendida fosse 1, assim como a célula na linha vizinha.

Agora em outro endereço:

  • Esperamos que a célula vizinha seja r0, mas lemos 1.

Se repetirmos r0, r1 várias vezes, subindo e descendo como a Marcha C-, certamente leremos em algum momento o valor "unintended cell turned on together and overwrote".

Este é o mecanismo pelo qual o March C- detecta a falha do descodificador de endereços.


5.3 Como detetar uma falha de acoplamento:

Falha de acoplamento é a seguinte situação.

Uma falha em que o valor de uma célula vizinha (vítima) não é alterado ou mantido quando uma operação específica (escrita, alternância) é realizada na célula agressora

Marco C- é:

  • imediatamente após fazer w1 a uma célula qualquer
  • seguimos um padrão de verificar a sua célula vizinha com r0 ou r1, repetindo-a várias vezes, invertendo o sentido para cima/baixo.

No processo:

    • Para encontrar "falhas que só se revelam quando o padrão de uma célula vizinha está num determinado estado", forçamos várias ordenações relativas.
  • Isso leva um pouco mais de tempo do que simplesmente escrever/ler o padrão do Checkerboard uma vez, mas dá uma cobertura de falhas muito maior.
  • Agora, vamos colocar em contexto o Checkerboard que ouvimos falar frequentemente na prática.
  • Comecemos com uma definição de uma linha.
  • Em termos bit a bit:
    • Padrão A: 0x55... (...0101 0101)
    • Padrão B: 0xAA... (...1010 1010)
  • Por endereço, isto é normalmente:
    • Endereço par → 0x555555_5555
    • Endereço ímpar → 0xAAAA_AAAA
  • Ou você pode inverter, de modo que 0s e 1s se alternem como um tabuleiro de xadrez em ambas as direções horizontal (bitwise) e vertical (addresswise).
  • O padrão oposto é chamado de tabuleiro de xadrez invertido.
  • Os padrões Tudo-0, Tudo-1 são obviamente importantes.
    • w0 → r0, w1 → r1 é suficiente para cobrir a falha de arrancamento.
    • A falha de transição também é coberta até certo ponto.
  • O problema é a interação entre células vizinhas.
    • Short/bridge entre bitline/wordline
    • Coupling fault
    • Neighbourhood pattern sensitive fault (NPSF)
  • Estas falhas são muitas vezes apenas visíveis nas seguintes situações.
    • Quando duas células têm valores diferentes (0/1)
    • Quando a vizinhança tem um padrão específico (por exemplo, 010/101)
  • Por exemplo, se duas células estiverem fracamente em curto-circuito:
    • Se ambas forem 0, o curto-circuito pode não ser percetível porque é 0, e o valor pode ser distorcido pela corrente que flui apenas quando uma é 0 e a outra é 1.
  • Então, de uma perspetiva de teste:
  • A maneira mais simples de fazer isso é com o padrão Checkerboard.
  • Aqui está um ponto em que é fácil confundir-se.
    • Algoritmo de Marcha =
      ↑, ↓ + (r0, w1, r1, w0 ...) =
      Uma seqüência de operações
    • Checkerboard =
      O fundo de dados
  • Em outras palavras, é mais fácil olhar a estrutura assim.
    1. Definir o fundo de dados para um dos solid 0 / solid 1 / checkerboard / inverse-checkerboard
    2. Executar a seqüência do algoritmo de março nesse estado
  • Por exemplo:
    • Passo 1: Preencher toda a memória com Checkerboard.
    • Passo 2: Executar o elemento ↑(rX, wY) da March C- enquanto estiver nesse estado.
    • Passo 3: Mudar para Inverse-checkerboard e marchar novamente.
  • Este é o tipo de configuração que se vê frequentemente nos scripts da ferramenta MBIST.
  • Definimos o Algoritmo e o Fundo ortogonalmente, e a combinação melhora a cobertura de falhas.
  • Na especificação real do produto, parece algo como isto.
    • Consumidor SoC:
      • Marcha C- @ solid 0/1
      • Adicione uma sequência quadriculada curta, se necessário
    • Automotivo / SoC de classe de servidor:
      • March C- @ solid 0/1
      • March C- @ checkerboard / inverse-checkerboard
      • Adicionar March SS, algoritmos orientados para NPSF para cumprir os objectivos de cobertura de diagnóstico.
  • Agora, finalmente, vamos resumir a questão,
    "Quando é que este vetor/algoritmo de teste é decidido no fluxo de conceção?".
    É importante não confundir algoritmo de março com vetor de ATPG aqui.
  • No mundo real, o processo de seleção de um algoritmo pode ser normalmente resumido da seguinte forma.
    1. Natureza do produto
      • Eletrónica de consumo SoC → "Qualidade moderada + tempo de teste curto"
      • Automotiva/Segurança crítica → "Fiabilidade muito elevada + aceitar tempo de teste mais longo"
    2. DPM/PPM alvo, Requisitos da norma
      • Cobertura de diagnóstico ISO 26262
      • Diretrizes de cobertura da fundição/cliente
    3. Caraterísticas da memória
      • SRAM de porta única / porta dupla / porta múltipla
      • Arquivo de registo, CAM, ROM, eDRAM, eFlash, etc: eFlash/eFuse/NVM inclui teste de programa/erro/retenção
      • Multi-port SRAM usa a variante March com combinações de leitura/escrita entre portas para falhas de interação de portas
  • Na prática, o compilador de memória / fornecedor de IP vem frequentemente com um conjunto March recomendado.
  • Como engenheiro DFT, você pega isso e
    • verifica se ele atende aos padrões da sua empresa / requisitos do cliente
      • Exemplo)March C- + March LA + Checkerboard
      • Os engenheiros de DFT em novos projectos utilizam estes algoritmos como predefinições e apenas os afinam para memórias pouco usuais (eFlash, SRAM especial, etc.)
      1. Os testes lógicos e os testes de memória têm filosofias diferentes:
        • Lógico: varrimento + ATPG, centrado na falha ao nível da porta
        • Memória: acesso sequencial endereço a endereço, centrado na falha célula/vizinho/decodificador
      2. O algoritmo de marcha é um teste que repete uma sequência de leitura/escrita percorrendo os endereços.
        • A combinação de direção (↑/↓) + operação (r0/r1/w0/w1) é a chave
      3. O conceito básico é o March X, e a prática atual é baseada no March C-.
      4. Checkerboard não é um algoritmo, mas um background.
        • March C- @ solid 0/1 para a célula em si e
        • March C- @ checkerboard/inverse-checkerboard para a interação entre vizinhos.
      5. A escolha do Algoritmo é determinada pelas opções da ferramenta na etapa de inserção do MBIST.
        • Não é como ler um artigo e escolher um março bonito e colocá-lo mais tarde ao criar um vetor,
        • É determinado no momento da arquitetura DFT / inserção MBIST, observando os requisitos de teste, as caraterísticas da memória e o tempo de teste.
"Esta macro SRAM alcança XX% de cobertura de falhas com base no March C- + Checkerboard"
Requisito de teste + Caraterísticas da memória + Tempo de teste (custo ATE) + Padrões da ferramenta/biblioteca

7.1 Critérios de seleção de algoritmos

7. Quando e como é que o March/Checkerboard é decidido na perspetiva do MBIST?"


Algoritmo: Marcha C-
Fundo: sólido 0/1, checkerboard, inverse-checkerboard

6.3 Relação entre Checkerboard e March


Queremos criar uma situação em que "células vizinhas sempre tenham valores opostos" para estimular o máximo de interferência entre
bitline / célula / wordline possível.

6.2 Porquê Checkerboard? (Não pode ser Tudo-0/Tudo-1?)


Padrão quadriculado = um fundo de dados no qual as células de memória são dispostas de modo que as células vizinhas sempre tenham valores opostos, como
01010101... / 10101010....

6.1 O que é um padrão quadriculado:

6. Background do Checkerboard e Algoritmo de March


e, se não, personaliza-o adicionando mais elementos March, adicionando fundos, etc.Além disso, muitas empresas têm um conjunto padrão de algoritmos MBIST ao nível da UN/empresa:Na prática, é raro que engenheiros individuais concebam algoritmos March a partir do zero, e modelos padrão + alguma personalização é mais a norma.


요약: Bons pontos para os engenheiros de DFT/ATPG se lembrarem

Para resumir, os seguintes pontos são úteis para os engenheiros de DFT/ATPG terem nas suas cabeças.Com esse conhecimento, você terá uma idéia melhor de como controlar a equipe de DFT em reuniões de design de chip e ficará muito mais confortável ao ler especificações MBIST ou diretrizes de fundição.E quando chegar a hora de projetar seu próprio custom March + background, este quadro será um bom ponto 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