【芯片测试】:什么是 VCDSTIL?

第一篇:概念篇 ------ 什么是 VCDSTIL?为什么需要它?

系列:《VCDSTIL 实战:从仿真波形到 ATE 测试向量》第 1 篇(共 5 篇)


背景:芯片测试面临的转换难题

在数字芯片的开发流程中,设计工程师与测试工程师往往使用截然不同的"语言"。

设计端使用 仿真器 (如 ModelSim、VCS)来验证电路功能。仿真器产出的波形文件是 VCD(Value Change Dump)EVCD(Extended VCD) 格式,其记录方式是 事件驱动(Event-Based) 的------它只记录信号发生变化的那一刻,精确到皮秒级别。

测试端使用 ATE(Automatic Test Equipment,自动测试设备) 来对真实芯片施加激励并捕获响应。ATE 使用 STIL(Standard Test Interface Language) 格式来描述测试向量,其工作方式是 周期驱动(Cycle-Based) 的------时钟周期是一切的基本单位,所有信号的驱动和采样都必须以固定的时钟周期来描述。

这两种范式之间存在一道天然的鸿沟:

维度 VCD/EVCD(仿真) STIL(ATE 测试)
时间模型 事件驱动,连续时间轴 周期驱动,离散时钟周期
信号方向 通常不定义方向 必须明确 In / Out / InOut
数据量 可以非常巨大 需要压缩为有限数量的波形
格式标准 IEEE 1364 IEEE 1450

手动将 VCD 转换为 STIL 是一项极其繁琐且容易出错的工作。VCDSTIL 正是为了自动化这一转换过程而生的工具。


VCDSTIL 的核心概念

VCDSTIL 的核心任务一句话概括:

将事件驱动的仿真结果(VCD/EVCD 文件)自动转换为周期驱动的 ATE 测试程序(STIL 文件)。

其转换过程分为以下几个关键步骤:

1. 划分周期(Cycle Division)

VCDSTIL 首先根据用户指定的 测试周期宽度(Tester Cycle) 将连续的 VCD 时间轴切分成一个个离散的时钟周期。

例如,若 DUT 工作在 2.5 MHz,对应周期为 400 ns,则工具会以每 400 ns 为一个单元切割整个波形时间轴。

2. 归纳波形(Waveform Collection)

切分完成后,工具分析每个周期内各信号的变化模式,将不同的波形形状归纳整理。相同的波形只保留一份,最终形成一张 波形表(WaveformTable)

3. 生成向量(Vector Generation)

每个时钟周期与波形表中对应的波形进行匹配,生成最终的 测试向量(Pattern)

整体流程如下图所示:

复制代码
VCD/EVCD 文件
     │
     ▼
  划分周期(按 cycle_width)
     │
     ▼
  提取引脚方向信息(Pins File)
     │
     ▼
  归纳波形模式(Timing File)
     │
     ▼
  生成 STIL(Waveforms + Vectors)

三种工作模式

VCDSTIL 通过命令行参数 -work_mode 支持三种运行模式,三者对应转换流程的不同阶段:

模式一:gen_pins------生成引脚文件

bash 复制代码
VCDSTIL -setup setup.py -work_mode gen_pins

此模式分析 VCD 文件中出现的所有信号,自动生成一份 引脚定义文件(pins.csv)

注意 :VCD 格式本身不携带信号方向信息,因此工具默认将所有引脚标记为输入(in)。用户需要在生成后手动编辑该文件,根据 DUT 规格书修正方向,并为双向引脚(InOut)添加 I/O 控制信号。

模式二:gen_timing------生成时序文件

bash 复制代码
VCDSTIL -setup setup.py -work_mode gen_timing

此模式基于引脚文件,从 VCD 中自动提取各引脚的波形,生成 时序定义文件(timing.csv)

该文件包含每个引脚在各种情况下的波形描述,是工具用于最终生成 STIL 的核心数据。

模式三:默认模式------生成 STIL

bash 复制代码
VCDSTIL -setup setup.py

默认模式综合利用引脚文件和时序文件,完成从 VCD 到 STIL 的最终转换,输出完整的 STIL 工作空间。


实例 DUT 介绍:Intel I8254

本系列教程以经典的 Intel I8254 可编程计数器/定时器芯片作为示例 DUT。

芯片简介

I8254 是一款提供三路独立 16 位计数器的定时器芯片,每路计数器支持最高 10 MHz 的时钟输入,广泛应用于早期 PC 系统中的时间管理。

引脚方向定义

I8254 共有以下引脚,方向如下:

引脚名 方向 I/O 控制信号
A0, A1 Input ---
CLK0, CLK1, CLK2 Input ---
CS_ Input ---
D0 ~ D7 InOut in: D_dir=1out: D_dir=0
GATE0, GATE1, GATE2 Input ---
OUT0, OUT1, OUT2 Output ---
RD_, WR_ Input ---
D_dir Input ---

关键点:双向总线 D0~D7 的方向控制

D0~D7 是数据总线,工作在双向模式。其传输方向由 D_dir 信号控制:

  • D_dir = 1:数据总线为输入方向(CPU 写入 DUT)
  • D_dir = 0:数据总线为输出方向(DUT 输出到 CPU)

在 VCD 文件中,D_dir 是一个普通的信号;但在 STIL 中,它扮演着控制双向引脚 I/O 切换的核心角色,必须在 pins.csv 的 I/O Control 列中显式声明。

时序参数选择

I8254 工作在 2.5 MHz,对应 时钟周期 = 400 ns 。这是用户在运行 VCDSTIL 时需要指定的 cycle_width 参数值。

另外,仿真开始阶段(前 1600 ns)通常包含复位等初始化操作,不属于有效测试数据,因此 start_time 设置为 1600 ns,告知工具跳过这段时间。


小结

本篇介绍了 VCDSTIL 存在的工程背景,以及它的核心概念和三种工作模式。理解这些基础对于后续正确配置和使用工具至关重要。

核心要点回顾:

  • VCD 是事件驱动的,STIL 是周期驱动的,两者范式不同,需要工具桥接
  • VCDSTIL 的工作流分三步:提取引脚 → 提取时序 → 生成 STIL
  • VCD 不含信号方向信息,必须由用户手动补充
  • 双向引脚(InOut)需要在 pins.csv 中定义 I/O 控制信号
  • cycle_widthstart_time 是最关键的两个配置参数

下一篇将通过 图形界面(GUI) 完整走一遍转换流程,让你对整个操作有直观的感受。


下一篇 :[第二篇:GUI 实操篇 ------ 手把手用图形界面完成第一次转换](#第二篇:GUI 实操篇 —— 手把手用图形界面完成第一次转换)

相关推荐
Meraki.Zhang9 小时前
【芯片测试】:基于时钟的时序提取
芯片测试
黑猫学长呀4 天前
存储宝典第6篇:测试机台的PE板和PPB板有什么区别?
测试工具·fpga开发·ssd·芯片测试·ate·存储芯片·测试机台
Meraki.Zhang5 天前
【芯片测试】:SmarTest 8 Software Overview
芯片测试
Meraki.Zhang6 天前
【芯片测试】:SmarTest 8 Hardware Overview
芯片测试
Meraki.Zhang13 天前
【芯片测试】:斜坡直方图测试
芯片测试
Meraki.Zhang2 个月前
【芯片测试】:SmarTest 8:Usage of Test Tables 运行机制总结
芯片测试·93k
Meraki.Zhang2 个月前
【芯片测试】:SmarTest 8 Binning 运行机制总结
芯片测试·bin·93k
Meraki.Zhang6 个月前
【芯片测试篇】:SmarTest 8 三温和三压测试程序的搭建
芯片测试·ate·93k
FORCREAT-苏州永创7 个月前
半导体静态电性测试系统如何实现对各类电子元器件的评估测试?
半导体·芯片测试·半导体功率器件·静态参数测试仪