可编程逻辑阵列(PLA)检测:原理、方法与挑战

可编程逻辑阵列(PLA)作为早期可编程逻辑器件的重要代表,因其结构规整、易于实现组合逻辑与有限状态机,在数字系统设计中曾广泛应用。为确保PLA实现的功能正确可靠,完备且高效的测试技术至关重要。本文将系统阐述PLA的检测原理、核心方法及面临的技术挑战。

一、PLA结构与潜在故障

一个标准PLA包含三部分:

  1. 与阵列 (AND Array):可编程的“与”门网络,生成输入信号的乘积项(最小项)。
  2. 或阵列 (OR Array):可编程的“或”门网络,将选定的乘积项相加以形成输出。
  3. 输入/输出缓冲器:驱动输入信号和输出信号。
 

其可编程性通过熔丝、反熔丝或浮栅晶体管等工艺实现,这也引入了潜在的物理缺陷,映射到逻辑层表现为两类主要故障模型:

  • 固定型故障 (Stuck-at Faults, SAF):信号线(输入、输出、内部节点)永久固定为逻辑0(Stuck-at-0, SA0)或逻辑1(Stuck-at-1, SA1)。
  • 桥接故障 (Bridging Faults):两条或多条本不该连接的信号线发生短路。
  • 交叉点故障 (Crosspoint Faults):PLA特有的故障,指在可编程点(交叉点)上:
    • 多余器件故障:本应“断开”的编程点错误“连通”。
    • 缺失器件故障:本应“连通”的编程点错误“断开”。
    • 增长/缩减故障:影响乘积项或输出项的范围。
 

二、PLA检测的核心原理与方法

PLA检测的目标是施加一组输入向量(测试集),通过观察输出响应,尽可能高的覆盖率(如SAF覆盖率)检测上述故障。主要方法包括:

  1. 功能测试 (Functional Test)

    • 原理:基于PLA实现的逻辑功能(真值表或布尔方程)生成测试向量,验证所有可能的输入组合或关键功能路径。
    • 优点:直观,与具体实现无关。
    • 缺点:对于输入较多(n个输入有2^n种组合)的PLA,测试集过大,测试时间过长,效率低下;可能无法检测某些结构相关的故障(如特定交叉点故障)。
  2. 基于故障模型的测试 (Fault Model Based Test)

    • 原理:针对特定故障模型(主要是SAF和交叉点故障)生成测试向量。
    • 关键步骤
      • 故障激活 (Fault Activation):施加输入向量,使故障点在无故障电路与有故障电路上产生不同的逻辑值。
      • 故障传播 (Fault Propagation):确保激活的故障效应(错误值)能传播到至少一个可观察的输出端口。
    • 主要算法与技术
      • 布尔差分法 (Boolean Difference):计算输出函数对故障信号的布尔差分,直接得到能检测该故障的输入条件。
      • D算法 (D-Algorithm) / PODEM (Path-Oriented Decision Making):这些针对一般组合电路的自动测试向量生成(ATPG)算法经过适配,可用于PLA,在搜索激活和传播路径时考虑PLA的两级结构特点。
      • 针对PLA结构的专用算法:利用PLA结构特性(如乘积项共享)设计更高效的算法,例如通过分析乘积项与输出项的关系来推导测试。目标是生成最小化或接近最小化的测试集。
  3. 测试点插入 (Test Point Insertion)

    • 原理:在原始PLA设计中增加额外的输入控制点或输出观察点。
    • 目的:提高内部节点的可控性(Controllability)和可观测性(Observability),解决因冗余逻辑或扇出重组导致的测试难题,降低测试生成复杂度。
    • 代价:增加额外的芯片面积和引脚。
  4. 内建自测试 (Built-In Self-Test, BIST)

    • 原理:在PLA芯片内部集成测试向量生成器(如线性反馈移位寄存器LFSR)和输出响应分析器(如多输入特征寄存器MISR)。
    • 流程
      1. 测试模式:BIST电路自动生成伪随机或确定性测试向量施加到PLA。
      2. PLAs输出响应被压缩成特征码(Signature)。
      3. 将最终特征码与预存的正确特征码(Golden Signature)比较。
    • 优点:显著降低外部测试设备要求,支持现场测试和周期性测试,测试速度快。
    • 挑战:需要额外的硬件开销,测试覆盖率依赖于向量生成策略和响应压缩方法,可能存在混叠(Aliasing)问题(即不同的错误响应产生相同的错误特征码)。
 

三、PLA检测的挑战与发展

  • 测试集规模与效率:随着PLA规模增大,生成高覆盖率的最小测试集计算复杂度高。研究更高效的ATPG算法和启发式方法仍是重点。
  • 新型故障模型:随着工艺进步(如纳米级),新的物理缺陷机制(如瞬态故障、电阻性开路/短路)需要更精确的故障模型和测试方法。
  • 可测性设计 (Design for Testability, DFT):BIST和测试点插入等DFT技术已成为现代PLA及更复杂PLD(如FPGA)设计流程中的标准环节,在设计和测试之间寻求最优平衡。
  • 与FPGA测试的融合:现代FPGA通常包含可编程逻辑块(其基础结构类似PLA)、互连资源、存储器等。PLA测试技术是构建完整FPGA测试策略的基础组成部分。
 

四、结论

可编程逻辑阵列(PLA)的检测是一个涉及结构分析、故障建模、测试生成算法和可测性设计的综合技术领域。基于故障模型的结构化测试方法(辅以ATPG算法)是核心,而内建自测试(BIST)和测试点插入等可测性设计技术则是应对大规模、高复杂度电路的必然选择。随着集成电路工艺和设计方法的持续演进,PLA及相关可编程逻辑器件的测试技术也将不断发展,以满足对芯片高可靠性和低成本测试的持续追求。