欢迎光临专业集成电路测试网~~欢迎加入IC测试QQ群:111938408

专业IC测试网

当前位置: 网站主页 > 测试工程 >

STIL格式向量的介绍

时间:2024-06-27 22:27来源:芯爵ChipLord 作者:ictest8_edit 点击:

 

 

STIL(Standard Test Interface Language)是一种标准化语言,用于定义测试向量,主要用于ATE设备测试过程。STIL文件结构化且模块化,适用于各种测试需求。本文将详细介绍STIL格式向量的基本构成、各个模块的作用及其在测试中的应用,并通过示例和图片帮助大家更好地理解。

1. STIL 格式向量的基本构成

 

STIL文件包含多个块,每个块定义了不同的测试参数和设置。主要的块包括:

  • Signals Block:定义测试引脚信号。

  • Timing Block 和 Waveform Table:定义信号的时序集和波形格式。

  • DC Levels Block:定义应用于和期望从被测试设备(DUT)获得的直流信号电平(VIL/VIH,VOL/VOH)。

  • Pattern Block:定义测试向量,这些向量在固定时间段内进行时间切片,指定在该时间段内各个引脚的操作。

     

此外,这些参数集可以通过以下模块引用并链接起来,以定义执行测试向量所需的完整参数集:

  • SignalGroups Block:将多个引脚组合在一起,如总线和控制信号。

  • PatternBurst Block:将一个或多个Pattern Blocks链接到一个模式序列中。

  • PatternExec Block:将PatternBurst Block与必要的DC电平和时序集结合在一起。

     

1.1 Signals Block

 

定义与作用Signals Block用于定义引脚信号。每个引脚只能有一个定义,支持多种信号类型,如输入、输出、双向、供电等。

语法

  •  
  •  
  •  
  •  
Signals { ( SigName ( In | Out | InOut | Supply | Pseudo ) ( ; | ( { ( ScanIn | ScanOut ) ;} ) ) )*}

示例

  •  
  •  
  •  
  •  
  •  
  •  
Signals { "pc4" InOut; irq InOut; scan0 In { ScanIn; }}

 

1.2 SignalGroups Block

 

定义与作用SignalGroups Block用于创建信号组的命名引用,方便对一组信号进行统一管理。

语法

  •  
  •  
  •  
  •  
  •  
  •  
SignalGroups { ( GroupName = '( SigName | GroupName ) ( + ( SigName | GroupName ) )*' ;  |    ( WFCMap { ( FROM_WFC -> TO_WFC( TO_WFC )+ ; )* ( FROM_WFC1 FROM_WFC2 -> TO_WFC ; )* } )  )*)* }

 

示例

  •  
  •  
  •  
  •  
  •  
  •  
SignalGroups {   "porta" = ` "pa7" + "pa6" + "pa5" + "pa4" + "pa3" + "pa2" + "pa1" + "pa0" ` ;  "portb" = ` "pb7" + "pb6" + "pb5" + "pb4" + "pb3" + "pb2" + "pb1" + "pb0" ` ;  all = `porta + portb'; }

 

1.3 Timing Block 和 WaveformTable Blocks

 

定义与作用Timing Block定义了时序边的放置和参考的周期性波形格式。每个Timing Block可以包含一个或多个WaveformTable,每个WaveformTable包含周期和一组波形。

语法

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Timing  TimingName  {  ( WaveformTable TableName {    Period TimeExpr ;    Waveforms {     (SigName {       (WFC)* {        ( TimeExpr (Event ( | Event)* ); )*       } )*     } )*    }  } }

示例

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Timing "Param_Time_Set" {  WaveformTable "T1" {   Period '100nS';   Waveforms {    "Control_pins" { 0 { '45nS' D; }}    "Control_pins" { 1 { '50nS' U; }}    "Data_pins" { 0 { '10ns' D; '70nS' U; }}    "Data_Pins" { 1 { '15nS' U; '75nS' D; }}   }  } }

 

 

 

 

1.4 DC Levels Block

 

定义与作用DCLevels Block定义了应用于每个测试模式的直流电平。每个DC参数只能在特定信号中定义一次。

语法

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
(DCLevels (DCLevelsName) {    (SignalName {   (VIH (dc_expr)+;)   (VIL (dc_expr)+;)   (VIHH (dc_expr)+;)   (VOH (dc_expr)+;)   (VOL (dc_expr)+;)  })* })*

 

示例

  •  
  •  
  •  
  •  
  •  
  •  
  •  
DCLevels dc_func {  ins {   VIH 'vih1';   VIL 'vil1';  } }

 

1.5 Pattern Block

 

定义与作用Pattern Block定义了模式向量数据,用于具体测试操作。

语法

  •  
  •  
  •  
  •  
Pattern PatName {   ( WaveformTableDeclaration | FunctionalVector )* }

示例

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Pattern example {  W _default_WFT_;   LABEL: V { ALL = 00000000 00000000 00000000 00000000; }   V { ALL = 11111111 11111111 11111111 11111111; }  Loop 10 {   V { ALL = 11111111 11111111 11111111 11111111; }   V { ALL = HHHHHHHH HHHHHHHH HHHHHHHH HHHHHHHH; }   V { ALL = 00000000 00000000 00000000 00000000; }   V { ALL = LLLLLLLL LLLLLLLL LLLLLLLL LLLLLLLL; }  }  Loop 5 {      V { ALL = 11111111 11111111 11111111 11111111; }  }  Stop; }

 

1.6 PatternBurst Block

 

定义与作用PatternBurst Block定义了测试期间执行的模式序列。

语法

  •  
  •  
  •  
  •  
  •  
PatternBurst BurstName  {  PatList    ( PatName ;)* }

示例

  •  
  •  
  •  
  •  
  •  
  •  
PatternBurst "_burst_" {     PatList {         "first_pattern";     } }

 

1.7 PatternExec Block

 

定义与作用PatternExec Block是定义执行测试所需所有部分的“粘合剂”。

语法

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
PatternExec (PAT_EXEC_NAME) {  ( Category CATEGORY_NAME ; )*  ( Selector SELECTOR_NAME ; )*  ( APGSteering APG_STEERING_NAME; )  ( DCLevels (DC_LEVELS_NAME);)  ( Timing TIMING_NAME ; )  ( PatternBurst PAT_BURST_NAME ; ) }

示例

  •  
  •  
  •  
  •  
  •  
  •  
PatternExec "FuncExec" {  DCLevels "DCLevels";  Timing "Timing";  PatternBurst "FuncBurst"; }

 

2. STIL 格式向量在测试中的应用

 

标准化:提供了一种标准化的方式来定义测试向量,确保了不同测试设备之间的兼容性。

可读性:其结构化的格式使得测试工程师能够清晰地理解和修改测试向量。

灵活性:支持多种测试需求,如直流电平测量、时序控制等。

3. 一个简单的STIL示例

 

以下是一个简单的STIL文件示例,通过该示例可以更好地理解STIL语言的实际应用。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
STIL 1.0;Signals { DIR In; OE_ In; A0 In; A1 In; A2 In; A3 In; A4 In; A5 In; A6 In; A7 In; B0 Out; B1 Out; B2 Out; B3 Out; B4 Out; B5 Out; B6 Out; B7 Out;}
SignalGroups { ABUS='A7 + A6 + A5 + A4 + A3 + A2 + A1 + A0'; BBUS='B7 + B6 + B5 + B4 + B3 + B2 + B1 + B0'; ALL ='DIR + OE_ + ABUS + BBUS';}
Timing "basic_timing" { WaveformTable "one" {  Period '500ns';  Waveforms {   DIR { 01 { '0ns' D/U; }}   OE_ { 01 { '0ns' U; '200ns' D/U; '300ns' U; }}   ABUS { 01 { '10ns' D/U; }}   BBUS { HLZ { '0ns' Z; '0ns' X; '260ns' H/L/T; '280ns' X;}}  } } // end WaveformTable one} // end Timing "basic_timing"
PatternBurst "pat1_burst" { PatList { "pattern_1"; } // end PatternBurst "pat1_burst"
PatternExec { Timing "basic_timing"; PatternBurst "pat1_burst";} // end PatternExec
Pattern " pattern_1" { W "one";LAB000: V { ALL=0000000000LLLLLLLL; } // Measure all VOL hereLAB001: V { ALL=0010000000HLLLLLLL; } // Measure B7 VOH here V { ALL=0001000000LHLLLLLL; } V { ALL=0000100000LLHLLLLL; } V { ALL=0000010000LLLHLLLL; } V { ALL=0000001000LLLLHLLL; } V { ALL=0000000100LLLLLHLL; } V { ALL=0000000010LLLLLLHL; }LAB008: V { ALL=0000000001LLLLLLLH; } // Measure B0 VOH hereStop;} // end Pattern " pattern_1"

 

4. STIL 格式向量的缩写解释

4.1 Signals Block 缩写解释

 

  • SigName = String representing the signal name

  • In = Defines the signal as input

  • Out = Defines the signal as output

  • InOut = Defines the signal as bidirectional

  • Supply = Defines power or ground signals

  • Pseudo = Used when the signal is not a device pin

  • ScanIn = Defines the signal as scan input

  • ScanOut = Defines the signal as scan output

     

4.2 SignalGroups Block 缩写解释

 

  • GroupName = String representing the signal group name

  • WFCMap = Block allows mapping WaveformCharacter values to other WaveformCharacters

  • FROM_WFC = WaveformCharacter to be mapped to another WaveformCharacter

  • FROM_WFC1 = First WaveformCharacter to be mapped to another WaveformCharacter

  • FROM_WFC2 = Second WaveformCharacter to be mapped to another WaveformCharacter

  • TO_WFC = WaveformCharacter or list of WaveformCharacters to use as the substitute WaveformCharacter

     

4.3 Timing Block 和 WaveformTable Blocks 缩写解释

 

  • TimingName = String representing the name of the Timing block

  • TableName = String representing the name of the WaveformTable block

  • Period = Defines the cycle period

  • WFC = Defines the waveform character to use for pattern data

  • TimeExpr = ' ( integer | float ) ( engineering_prefix ) ( unit ) '

  • Event:

    • D | ForceDown - Forces the VIL value

    • U | ForceUp - Forces the VIH value

    • Z | ForceOff - Turns the driver off when the driver mode is HiZ

    • N | ForceUnknown - Same as the U format

    • L | CompareLow - Compares for a value less than VOL

    • H | CompareHigh - Compares for a value greater than VOH

    • X | CompareUnknown - Don't care

    • T | CompareOff - Compares for a value between VOL and VOH

       

4.4 DCLevels Block 缩写解释

 

  • DCLevelsName = String representing the name of the DCLevels block

  • SignalName = String representing the signal or signal group name

  • VIH = Specifies the drive high voltage

  • VIL = Specifies the drive low voltage

  • VIHH = Specifies the alternate drive voltage

  • VOH = Specifies the compare high voltage

  • VOL = Specifies the compare low voltage

     

4.5 Pattern Block 缩写解释

 

  • PatName = String representing the name of a Pattern block

  • WaveformTableDeclaration = ( W | WaveformTable ) ident

  • FunctionalVector = ( ParallelVector | LoopVector | MatchVector | Macro | Procedure )

  • Vector = (F | V) { SigName = ( WFC )+ ; }

  • Condition = C { SigName = ( WFC )+ ; }

  • WFC = (letter | digit | # | %)

     

4.6 PatternExec Block 缩写解释

 

  • CATEGORY_NAME = Selects the Category block name

  • SELECTOR_NAME = Selects the Selector block name

  • APG_STEERING_NAME = Selects the APGSteering block name that assigns the DUT pins to APG resources

  • DC_LEVELS_NAME = Selects the DCLevels block

  • TIMING_NAME = Selects the Timing block

  • PAT_BURST_NAME = Selects the PatternBurst block to execute

 

通过STIL语言,测试工程师可以高效地定义和管理复杂的测试向量,提升测试过程的准确性和效率。

希望这篇文章能帮助你更好地理解STIL格式向量及其在设备测试中的应用,更多DFT专业知识在知识星球。

 
写留言
 
 
 
 
 

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
用户名: 验证码: 点击我更换图片