目录
[(2)Modification History 和命令行](#(2)Modification History 和命令行)
[(7)PWM、QSPI、I²C 信号](#(7)PWM、QSPI、I²C 信号)
1、wgl实例一:
cpp
{MD5Code : aced97d3f8aab323bf79d855d923f4a6}
{userDataSize:2559}
{******************************************************}
{}
{All Rights Reserved}
{}
{Project Name : }
{File Name : data/VIHL_R01_HIBOXSTERV100.wgl}
{Date : 2022-02-09 14:53:04}
{AutoJtag version : 2020-01-07 No.1 V2.6.12}
{vParser version : 2015-04-15 No.1}
{Author : }
{Email : }
{}
{Module Name : DIG_TOP}
{Abstract : }
{Called By : }
{}
{Modification History}
{------------------------------------------------------}
{$Log: $}
{}
{}
{}
{******************************************************}
{CmdLine : jtag_test -bsdl bsdl/DIG_TOP.bsdl -wgl data/VIHL_R01_HIBOXSTERV100.wgl -tb data/vihl_tb.v -config cfg/jtagbsdl.cfg -mincycle 41666ps -replace -check_acpin_loopback off -check_inout_loopback off -nlegbc off -accept_clock -use_old_single_die_case on -testcase ViHL -project_name DIG_TOP}
{ bsdl/DIG_TOP.bsdl : mtime=2021-09-02,21:19:31; md5code=afbec5db6afc17416bc8259f0083b9f7}
{ cfg/jtagbsdl.cfg : mtime=2021-06-11,11:42:37; md5code=efaac2924c0619fb0e0e7f4e9770393b}
waveform DIG_TOP
signal
SFC_CLK : input;
SFC_HOLD : input;
SFC_DIN : input;
SFC_DOUT : output;
SFC_WP : input;
AD_TEST_DIG : bidir;
BIST_EN : bidir;
CLK_ATE_REF : bidir;
ERROR_FLAG : bidir;
QSPI_CLK : bidir;
QSPI_CS_N : bidir;
QSPI_D2 : bidir;
QSPI_D3 : bidir;
QSPI_DIN : bidir;
QSPI_DOUT : bidir;
SCL_SLV : bidir;
SDA_SLV : bidir;
SFC_CSN : bidir;
TEST_PWM0 : bidir;
TEST_PWM1 : bidir;
TEST_PWM2 : bidir;
TEST_PWM3 : bidir;
TEST_PWM4 : bidir;
TEST_PWM5 : bidir;
TEST_PWM6 : bidir;
TEST_PWM7 : bidir;
TEST_PWM8 : bidir;
end
timeplate timeplate_1 period 41666ps
SFC_CLK := input[0ps:D,15000ps:S,35000ps:D];
SFC_HOLD := input[0ps:P,1000ps:S];
SFC_DIN := input[0ps:P,1000ps:S];
SFC_DOUT := output[0ps:X,9000ps:Q,10000ps:X];
SFC_WP := input[0ps:U,15000ps:S,35000ps:U];
AD_TEST_DIG := input[0ps:P,1000ps:S];
AD_TEST_DIG := output[0ps:X,9000ps:Q,10000ps:X];
BIST_EN := input[0ps:P,1000ps:S];
BIST_EN := output[0ps:X,9000ps:Q,10000ps:X];
CLK_ATE_REF := input[0ps:P,1000ps:S];
CLK_ATE_REF := output[0ps:X,9000ps:Q,10000ps:X];
ERROR_FLAG := input[0ps:P,1000ps:S];
ERROR_FLAG := output[0ps:X,9000ps:Q,10000ps:X];
QSPI_CLK := input[0ps:P,1000ps:S];
QSPI_CLK := output[0ps:X,9000ps:Q,10000ps:X];
QSPI_CS_N := input[0ps:P,1000ps:S];
QSPI_CS_N := output[0ps:X,9000ps:Q,10000ps:X];
QSPI_D2 := input[0ps:P,1000ps:S];
QSPI_D2 := output[0ps:X,9000ps:Q,10000ps:X];
QSPI_D3 := input[0ps:P,1000ps:S];
QSPI_D3 := output[0ps:X,9000ps:Q,10000ps:X];
QSPI_DIN := input[0ps:P,1000ps:S];
QSPI_DIN := output[0ps:X,9000ps:Q,10000ps:X];
QSPI_DOUT := input[0ps:P,1000ps:S];
QSPI_DOUT := output[0ps:X,9000ps:Q,10000ps:X];
SCL_SLV := input[0ps:P,1000ps:S];
SCL_SLV := output[0ps:X,9000ps:Q,10000ps:X];
SDA_SLV := input[0ps:P,1000ps:S];
SDA_SLV := output[0ps:X,9000ps:Q,10000ps:X];
SFC_CSN := input[0ps:P,1000ps:S];
SFC_CSN := output[0ps:X,9000ps:Q,10000ps:X];
TEST_PWM0 := input[0ps:P,1000ps:S];
TEST_PWM0 := output[0ps:X,9000ps:Q,10000ps:X];
TEST_PWM1 := input[0ps:P,1000ps:S];
TEST_PWM1 := output[0ps:X,9000ps:Q,10000ps:X];
TEST_PWM2 := input[0ps:P,1000ps:S];
TEST_PWM2 := output[0ps:X,9000ps:Q,10000ps:X];
TEST_PWM3 := input[0ps:P,1000ps:S];
TEST_PWM3 := output[0ps:X,9000ps:Q,10000ps:X];
TEST_PWM4 := input[0ps:P,1000ps:S];
TEST_PWM4 := output[0ps:X,9000ps:Q,10000ps:X];
TEST_PWM5 := input[0ps:P,1000ps:S];
TEST_PWM5 := output[0ps:X,9000ps:Q,10000ps:X];
TEST_PWM6 := input[0ps:P,1000ps:S];
TEST_PWM6 := output[0ps:X,9000ps:Q,10000ps:X];
TEST_PWM7 := input[0ps:P,1000ps:S];
TEST_PWM7 := output[0ps:X,9000ps:Q,10000ps:X];
TEST_PWM8 := input[0ps:P,1000ps:S];
TEST_PWM8 := output[0ps:X,9000ps:Q,10000ps:X];
end
(1)文件头信息
cpp
MD5Code : aced97d3f8aab323bf79d855d923f4a6
userDataSize:2559
Project Name :
File Name : data/VIHL_R01_HIBOXSTERV100.wgl
Date : 2022-02-09 14:53:04
AutoJtag version : 2020-01-07 No.1 V2.6.12
vParser version : 2015-04-15 No.1
- **
MD5Code:**文件内容的校验码,用于验证文件是否被篡改。 - **
userDataSize:**用户数据区大小,2559 字节。 AutoJtag version和 **vParser version:**生成工具和解析工具的版本信息。- **
Date:**生成日期。
(2)Modification History 和命令行
cpp
CmdLine : jtag_test -bsdl bsdl/DIG_TOP.bsdl -wgl data/VIHL_R01_HIBOXSTERV100.wgl ...
- 这是用 AutoJTAG 工具生成波形的命令行。
- **
-bsdl**指定 BSDL 文件,这是一个标准边界扫描描述文件(芯片的 I/O 定义)。 - **
-wgl**指定输出波形文件(你贴的这个文件)。 - **
-tb**指定 testbench 文件,用于仿真。 -config指定配置文件。
(3)波形定义
cpp
waveform DIG_TOP
signal
SFC_CLK : input;
SFC_HOLD : input;
SFC_DIN : input;
SFC_DOUT : output;
...
TEST_PWM8 : bidir;
end
waveform DIG_TOP: 表示这个波形文件是针对 DIG_TOP 模块的。- **
signal:**定义了所有信号和方向: - **
input:**输入信号(由测试系统驱动芯片) - **
output:**输出信号(芯片输出到测试系统) - **
bidir:**双向信号(可能既是输入又是输出,如 I²C、QSPI 等接口) - 这里包括:
- **
SFC_*系列:**可能是 Flash/SFC 控制信号 - **
QSPI_*系列:**QSPI 接口信号 - **
SCL_SLV / SDA_SLV:**I²C 信号 - **
TEST_PWM*:**测试用 PWM 信号 - **
ERROR_FLAG:**测试错误标志 - **
BIST_EN:**内建自测试使能信号
(4)时间周期定义
cpp
timeplate timeplate_1 period 41666ps
- **
timeplate_1**是这个时间标记表的名字。 period 41666ps表示这个波形的一个完整周期是 41666 皮秒 ≈ 41.666 ns。- 这通常对应芯片的测试时钟周期。
(5)信号状态标记格式
cpp
SFC_CLK := input[0ps:D,15000ps:S,35000ps:D];
- **
SFC_CLK**是信号名。 input表示信号在测试中作为输入驱动芯片。[0ps:D,15000ps:S,35000ps:D]表示 信号在周期中的状态变化:0ps:D→ 在 0ps 时,状态为 D(下降沿/低电平?)15000ps:S→ 在 15000ps 时,状态变为 S(高电平/稳定?)35000ps:D→ 在 35000ps 时,状态变回 D
注:状态字母(P、S、D、U、X、Q)是 AutoJTAG 的内部符号,通常代表:
- P → 使用之前的状态值(Previous format shape),即保持之前周期的值不变。
- S → 从 pattern 强制替换(Force logic substituted from pattern),即使用 pattern 中给定的值。
- D→ 低电平(0)或下降沿状态(具体看工具定义,一般表示逻辑 0)。
- U →高电平(1)或未定义/未驱动状态(具体看工具定义,一般表示逻辑 1)。
- X → 未知或不关心(Don't care)。
- Q → 输出有效(通常表示输出被采样或已经稳定)。
实际意义可能需要参考 AutoJTAG 文档。
(6)双向信号
像 AD_TEST_DIG、BIST_EN、QSPI_* 等信号,同时有 input 和 output:
cpp
AD_TEST_DIG := input[0ps:P,1000ps:S];
AD_TEST_DIG := output[0ps:X,9000ps:Q,10000ps:X];
- 输入阶段:驱动芯片。
- 输出阶段:采集芯片输出。
- 这正是边界扫描测试常用的 驱动/采样切换。
(7)PWM、QSPI、I²C 信号
- **
TEST_PWM0~8:**测试用 PWM 信号,周期内状态变化被明确标记。 - **
QSPI_*:**QSPI 总线时序,包括 CLK、CS、数据线。 - **
SCL_SLV/SDA_SLV:**I²C 总线信号。
每个信号都有 input/output 状态,说明 JTAG 测试会在不同时间点对这些信号 驱动 或 采样。