ATPG之STIL格式说明

2023-12-14 07:48
文章标签 说明 格式 atpg stil

本文主要是介绍ATPG之STIL格式说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ATPG之STIL格式说明

 

ATPG之STIL

STIL test protocol file(.SPF)

转自: http://www.blogbus.com/bb2hh-logs/60233278.html

Author:pythonlong


stil文件是atpg的基础,用好atpg工具当然要熟悉stil格式。

下面是基本说明:)

STIL 1.0 { 

Extension DesignP2000.5; 

Header { 

Title " TetraMAX(TM) 2000.05-i000622_173054 STIL output"; 

Date "Wed Dec 3117:21:05 1999"; 

History { } 

Signals { 

CLK In; RSTB In; SDI2In; SDI1 In; INC In; SCAN In; HACKIN In; si4 In; 

six In; D0 InOut; D1InOut; D2 InOut; D3 InOut; SDO2 Out; COUT Out; 

HACKOUT Out; so4 Out;sox Out; 

SignalGroups { 

_pi = 'D0 + D1 + D2 + D3+ CLK + RSTB + SDI2 + SDI1 + INC + 

SCAN + HACKIN + si4 +six'; 

_default_Clk1_Timing_ ='RSTB'; 

_io = 'D0 + D1 + D2 +D3' { WFCMap 0X->0; WFCMap 1X->1; WFCMap 

ZX->Z; WFCMapNX->N; } 

_po = 'SDO2 + COUT + D0+ D1 + D2 + D3 + HACKOUT + so4 + sox'; 

_default_In_Timing_ ='D0 + D1 + D2 + D3 + CLK + RSTB + SDI2 + 

SDI1 + INC + SCAN +HACKIN + si4 + six'; 

_default_Out_Timing_ ='SDO2 + COUT + D0 + D1 + D2 + D3 + HACKOUT 

+ so4 + sox'; 

_default_Clk0_Timing_ ='CLK'; 

ScanStructures { 

// Uncomment and modifythe following to suit your design 

// ScanChain chain_name{ ScanIn chain_input_name; ScanOut chain_output_name; } 

Timing { 

WaveformTable_default_WFT_ { 

Period '100ns'; 

Waveforms { 

_default_In_Timing_ { 0{ '0ns' D; } } 

_default_In_Timing_ { 1{ '0ns' U; } } 

_default_In_Timing_ { Z{ '0ns' Z; } } 

_default_In_Timing_ { N{ '0ns' N; } } 

_default_Clk0_Timing_ {P { '0ns' D; '50ns' U; '80ns' D; } } 

_default_Clk1_Timing_ {P { '0ns' U; '50ns' D; '80ns' U; } } 

_default_Out_Timing_ { X{ '0ns' X; } } 

_default_Out_Timing_ { H{ '0ns' X; '40ns' H; } } 

_default_Out_Timing_ { T{ '0ns' X; '40ns' T; } } 

_default_Out_Timing_ { L{ '0ns' X; '40ns' L; } } 

PatternBurst _burst_ {PatList { 

_pattern_ { 

}} 

PatternExec { 

PatternBurst_burst_; 

Procedures { 

capture_CLK { 

W _default_WFT_; 

forcePI: V { _pi=\r13 #; _po=\j \r9 X ; } 

measurePO: V { _po=\r9 #; } 

pulse: V { CLK=P; _po=\j\r9 X ; } 

capture_RSTB { 

W _default_WFT_; 

forcePI: V { _pi=\r13 #; _po=\j \r9 X ; } 

measurePO: V { _po=\r9 #; } 

pulse: V { RSTB=P;_po=\j \r9 X ; } 

capture { 

W _default_WFT_; 

forcePI: V { _pi=\r13 #; _po=\j \r9 X ; } 

measurePO: V { _po=\r9 #; } 

 

// Uncomment and modifythe following to suit your design 

// PRE_CLOCK_MEASUREProcedures { 

// load_unload { 

// W_default_WFT_; 

// C { test_so=X;test_si=0; test_si2=0; test_so2=X; clk=0; tclk=0; reset=1; test_se=1; } 

// Shift { W_default_WFT_; 

// V { _si=#; _so=#; CLK= P; } 

// } 

// } 

// TMAX GENERATEDPOST_CLOCK_MEASURE (Closer to DFTCompiler Procedures { 

// load_unload { 

// W_default_WFT_; 

// C { test_si=0;test_si2=0; clk=0; tclk=0; reset=1; test_se=1; } 

// V { _so=##; } 

// Shift { W_default_WFT_; 

// V { _si=##; _so=##;clk=P; } 

// } 

MacroDefs { 

test_setup { 

W _default_WFT_; 

V { CLK=0; RSTB=1;} 

 

开始版本和头不用说。

1.定义设计的信号,即哪些是输入信号,哪些是输出信号,哪些信号是输入输出。

eg.

Signals { 

CLK In; RSTB In; SDI2In; SDI1 In; INC In; SCAN In; HACKIN In; si4 In; 

six In; D0 InOut; D1InOut; D2 InOut; D3 InOut; SDO2 Out; COUT Out; 

HACKOUT Out; so4 Out;sox Out; 

 

2.定义信号组:

_in = input pins

_out = output pins

_io = bidirectional pins

_pi = inputs +bidirectional pins

_po = outputs +bidirectional pins

_si = scan chain inputs

_so = scan chain outputs

设置时钟的信号组

eg.

SignalGroups { 

_pi = 'D0 + D1 + D2 + D3+ CLK + RSTB + SDI2 + SDI1 + INC' ;

_io = 'D0 + D1 + D2 +D3' ;

_po = 'SDO2 + COUT + D0+ D1 + D2 + D3 + HACKOUT + so4 + sox'; 

_default_Clk0_Timing_ ='CLK'; 

 

3.定义扫描链结构

eg.

ScanStructures { 

ScanChain "c1"{ ScanIn SDI2; ScanOut SDO2; } 

ScanChain "c2"{ ScanIn SDI1; ScanOut D1; } 

ScanChain "c3"{ ScanIn DIN; ScanOut YABX; } 

ScanChain "c4"{ ScanIn "IRQ[4]"; ScanOut XYZ; } 

}

对于双向io还有额外参数WFCMap设置多状态情况下的值

 

4.定义信号组各种状态的时序

如时钟周期,输入0,1,Z,N。输出H,L,T,X

其中0,表示输入01,表示输入1Z,表示输入关闭,N,表示输入未知。

H,表示输出为高;L,表示输出为低;T,表示输出关闭;X,表示输出无操作

P表示脉冲,D表示强制为低,U表示强制为高

eg.如下,定义了输入的0,1,N,Z的时序以及Clockreset的脉冲波形,输出的HLTX波形。

Timing { 

WaveformTable_default_WFT_ { 

Period '100ns'; 

Waveforms { 

_default_In_Timing_ { 0{ '0ns' D; } } 

_default_In_Timing_ { 1{ '0ns' U; } } 

_default_In_Timing_ { Z{ '0ns' Z; } } 

_default_In_Timing_ { N{ '0ns' N; } } 

_default_Clk0_Timing_ {P { '0ns' D; '50ns' U; '80ns' D; } } 

_default_Clk1_Timing_ {P { '0ns' U; '50ns' D; '80ns' U; } } 

_default_Out_Timing_ { X{ '0ns' X; } } 

_default_Out_Timing_ { H{ '0ns' X; '40ns' H; } } 

_default_Out_Timing_ { T{ '0ns' X; '40ns' T; } } 

_default_Out_Timing_ { L{ '0ns' X; '40ns' L; } } 

 

5.定义各种操作的时序,如:

capture_RSTB { 

W _default_WFT_; 

forcePI: V { _pi=\r13 #; _po=\j \r9 X ; } 

measurePO: V { _po=\r9 #; } 

pulse: V { RSTB=P;_po=\j \r9 X ; } 

}

由于atpg是基于周期的,所以一个向量V即可表示一个周期,另外F表示forceforce信号为固定值;C表示condition,满足某一条件,向下进行。

定义了一个capture_RSTB的操作,这个操作使用_default_WFT_定义的x信号组的状态时序,包含3个周期:

第一个周期forcePI操作,#表示输入,\r表示重复,\j表示连接。所以第一周期表示信号组_pi输入13个数据,信号组_po的每个信号在原来的值基础上连接上一个x

第二个周期measurePo操作,_po得到9个输出.

第三个周期pulse操作,产生RSTB脉冲,信号组_po重新连接上9x

 

WFT waveform tabletiming procedure 定义

调用WFT时,用W来引用

F:表示force signal

V:表示一个cycle,例如,"rst"=1,"clk"=P

C:表示一个条件的判断conditional


这篇关于ATPG之STIL格式说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/491727

相关文章

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

java中新生代和老生代的关系说明

《java中新生代和老生代的关系说明》:本文主要介绍java中新生代和老生代的关系说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、内存区域划分新生代老年代二、对象生命周期与晋升流程三、新生代与老年代的协作机制1. 跨代引用处理2. 动态年龄判定3. 空间分

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

Mysql常见的SQL语句格式及实用技巧

《Mysql常见的SQL语句格式及实用技巧》本文系统梳理MySQL常见SQL语句格式,涵盖数据库与表的创建、删除、修改、查询操作,以及记录增删改查和多表关联等高级查询,同时提供索引优化、事务处理、临时... 目录一、常用语法汇总二、示例1.数据库操作2.表操作3.记录操作 4.高级查询三、实用技巧一、常用语

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

Maven中的profiles使用及说明

《Maven中的profiles使用及说明》:本文主要介绍Maven中的profiles使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录主要用途定义 Profiles示例:多环境配置激活 Profiles示例:资源过滤示例:依赖管理总结Maven 中的

Before和BeforeClass的区别及说明

《Before和BeforeClass的区别及说明》:本文主要介绍Before和BeforeClass的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Before和BeforeClass的区别一个简单的例子当运行这个测试类时总结Before和Befor

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以