DFT笔记20

3 LOGIC AND FAULT SIMULATION

仿真的用途有以下三个方面:

  1. 设计阶段:logic simulation就是用来看设计是不是符合spec以及设计中有什么错误(还能定位这些错误的位置)。
  2. 测试开发阶段:仿真故障电路的行为,这里用到的test patterns可以知道pattern的质量以及指导更多的向量生成。
  3. 电路故障仿真阶段:就是fault simulation,也被用在故障诊断中,定位硬件中的加工缺陷。

这一章分成两个部分:

  • 前半部分:logic simulation
    • 介绍logic circuit models,逻辑电路模型
    • 流行的logic simulation技术
    • 描述电路中可能出现的不良,怎么形成的,以及怎么在logic simulation中被检测到
  • 后半部分:fault simulation(源于logic simulation,但很多技术衍生出来可以快速仿真故障行为)
    • 介绍了一堆方法:serial, parallel, deductive, concurrent......
    • 还有一些方法,牺牲准确性,降低执行时间(对大规模设计很有意义)

通过这一章学习可以知道主要的logic and fault simulation技术,在选择仿真方法以满足设计需求的时候,这些背景知识将会非常有价值。

3.1 INTRODUCTION

Simulation就是在物理构建之前预测电路设计的过程。对于数字电路,仿真有两个目的:

  1. logic simulation:确认设计符合spec(通常指没有故障的仿真)
  2. fault simulation:被专门用来仿真故障电路
    1. 给定测试向量集,确定是否能检测感兴趣的故障模型
    2. 也是ATPG中非常重要的部分

3.1.1 Logic Simulation for Design Verification

logic simulation的主要应用就是design verification,按照设计阶段分成:

  1. behavioral level or electronic system level (ESL):用ESL描述语言例如C/C++、SystemC、SystemVerilog
  2. register-transfer level (RTL) design stage:用硬件描述语言hardware description languages (HDLs) 例如Verilog、VHDL,描述一些模块例如:
    1. registers
    2. counters
    3. data processing units
    4. controllers
    5. the data/control flow between these blocks。以上2点不涉及到时序分析,所以也被叫做functional verification
  3. gate-level:其实到这一步就足够了
  4. switch-level:对于一些高性能的设计会有这一步,介于gate-level和transistor-level之间
  5. transistor-level:太耗时,通常用来表征一些cell libraries比如SRAMs和DRAMs

logic simulation流程如下图:

需要的东西:

  1. functional specification documents:包含了功能和性能方面的设计目标
  2. 每个设计阶段有对应的电路描述:
    1. behavioral design:ESL code
    2. RTL design:HDL code
    3. gate-level design:netlist
    4. switch and transistor-level design:SPICE models
  3. verification testbenches
    1. input stimuli
    2. simulated responses

上图是每一个design stage的验证流程。如果某个阶段出现的结果和预期不符,那么就重新设计或者修正,直到没有design bug出现,然后才能往下一个design stage走。

3.1.2 Fault Simulation for Test and Diagnosis

需要好好体会logic simulation和fault simulation的区别。logic simulation发现的错误有可能是designers或者EDA软件导致的。fault simulation是担心有些工艺过程出现的fault,所以先仿真看能不能有效的筛查出来,fault simulation通常假设设计是无误的。

fault simulation的用处主要体现在test 和diagnosis,也分成以下三类:

  1. 评估一组测试pattern的故障检测有效性,通常叫fault coverage
  2. 识别检测不到的故障,但又很重要的话,designer或者ATPG需要加额外的pattern提高fault coverage
  3. 帮助在不牺牲fault coverage的情况下实现压缩。ATPG的第一步就是从fault simulator开始
  4. 协助做fault diagnosis

3.2 SIMULATION MODELS

仿真模型在门级。

3.2.1 Gate-Level Network

gate-level network就是一些逻辑门互连,例如下图(circuit N在这一章被一直用来举例):

对应的布尔逻辑运算如下:

3.2.1.1 Sequential Circuits

Sequential circuits时序逻辑电路(大部分设计都是时序的)分为两种:

  1. 同步synchronous(这节讨论这种,因为更为广泛使用)
  2. 异步asynchronous

下图例为一个时序逻辑电路的Huffman model:

分为两部分:

  1. combinational logic
  2. flip-flops

combinational logic的输入分为:

  1. primary inputs (PIs) x1,x2,......,xn
  2. flip-flop的输出y1,y2,......,yl,也叫pseudo primary inputs (PPIs)

combinational logic的输出分为:

  1. primary outputs (POs) z1,z2,......,zm
  2. flip-flop的输入Y1,Y2,......,Yl,也叫pseudo primary outputs (PPOs)

门级的描述中,flip-flop相当于一个functional block或者逻辑门的互连,如下图例(由D flip-flop组成的NAND,只是举个例子不具有实用价值):

输入输出:

  1. D:数据输入
  2. Clock:时钟(上升沿触发)
  3. PresetB:异步复位(低电平触发)
  4. ClearB:清零(低电平触发)
  5. Q:不取反
  6. QB:取反
相关推荐
程序边界10 小时前
一台数据集成软件的拆解笔记(下):一致性、容错、跑批与迁移,KFS 真正难的地方在这
java·前端·笔记
金色光环12 小时前
【DSP学习】C2000_ADC中断_笔记
笔记·学习
zhangrelay12 小时前
mrpt杂乱笔记-26-10-31
笔记·学习
熊猫钓鱼>_>13 小时前
平行视界兼容模式与魔法变量配置避坑【鸿蒙心迹】
运维·服务器·开发语言·笔记·华为·harmonyos·openharmony
IT199514 小时前
Docker 快速部署 DM8 达梦数据库|完整踩坑笔记
笔记·docker·容器
東隅已逝,桑榆非晚14 小时前
算法2. 双指针法-复写零
c++·笔记·学习·算法
云析赢指标公式网415 小时前
文华财经指标源码笔记:WINNER筹码函数、控盘变量与MACD变体的调试记录
java·笔记·算法
无心水15 小时前
22、数学与经济管理(运筹学) 核心考点与学习笔记
人工智能·笔记·学习·架构师·软考·软考架构师·软考系统架构师
xxwl58516 小时前
Nginx 基础学习笔记
笔记·学习·nginx
January120716 小时前
【AI方法笔记】2026-11-02:模型流式吐 JSON 时,前端会遇到四种崩法
前端·人工智能·笔记·json