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的用处主要体现在testdiagnosis,也分成以下三类:

  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:取反
相关推荐
tq10868 分钟前
先探索,后设计
笔记
hnult14 分钟前
2026 在线培训考试系统选型指南:核心功能拆解与选型逻辑
人工智能·笔记·课程设计
AI视觉网奇26 分钟前
ue 角色驱动衣服 绑定衣服
笔记·学习·ue5
三水不滴1 小时前
计网ping原理
经验分享·笔记·计算机网络
prog_61031 小时前
【笔记】思路分享:各种大模型免费当agent后台
笔记·大语言模型·agent·cursor
凯尔萨厮2 小时前
Maven(Windows下载安装)
笔记·maven
wdfk_prog2 小时前
[Linux]学习笔记系列 -- [drivers][input]serio
linux·笔记·学习
菩提小狗3 小时前
小迪安全2023-2024|第5天:基础入门-反弹SHELL&不回显带外&正反向连接&防火墙出入站&文件下载_笔记|web安全|渗透测试|
笔记·安全·web安全
Wentao Sun3 小时前
致敬软件创业者2026
笔记·程序人生
深蓝海拓4 小时前
PySide6,QCoreApplication::aboutToQuit与QtQore.qAddPostRoutine:退出前后的清理工作
笔记·python·qt·学习·pyqt