VCD Value Change Dump格式解析

VCD ValueChange Dump 是一种记录被选择信号在仿真过程中的变化情况的ASCII文件格式。常用的有四值格式(数值变化0,1,x,z,不含强度信息),扩展格式(含数值变化的所有信息)。
以四值格式VCD为例。

$date
»   Thu Dec 28 22:28:33 2023
$end
$version
»   Icarus Verilog 
$end
$timescale
»   1ps                                                                                           
$end
$var reg 1 ! e_clk $end
$var reg 1 " e_rst $end
$var reg 1 # e_ren $end
$var reg 1 $ e_wen $end
$var reg 4 % e_d[3:0] $end
$var reg 4 & e_q[3:0] $end
$var reg 1 ' e_empty $end
$var reg 1 ( e_mid $end
$var reg 1 ) e_full $end
$scope module fifo1 $end
$var reg 1 * clk $end
$var reg 1 + rst $end
$var reg 1 , ren $end
$var reg 1 - wen $end
$var reg 4 . d[3:0] $end
$var reg 4 / q[3:0] $end
$var reg 1 0 empty $end
$var reg 1 1 mid $end
$var reg 1 2 full $end
$comment regs is not handled $end
$var reg 2 3 w_adr[1:0] $end
$var reg 2 4 r_adr[1:0] $end
$upscope $end
$enddefinitions $end
#0
1!
0"
1#
1$
bZZZZ %
bUUUU &
U'

> 这里是引用

U(
U)
1*
0+
1,
1-
bZZZZ .
bUUUU /
U0
U1
U2
bUU 3
bUU 4
#5000000
0!
0*
#10000000
1!
bZZZZ &
1'
0(
0)
1*
bZZZZ /
10
01
02
b00 3
b00 4
#15000000
0!
1"
0*
1+
#20000000
1!
1*
#25000000
0!
0#
0$
b0001 %
0*
0,
0-
b0001 .
#30000000
1!
b0000 &
0'
1*
b0000 /
00
b01 3
#35000000
0!
1$
bZZZZ %
0*
1-
bZZZZ .
#40000000
1!
b0001 &
1'
1*
b0001 /
10
b01 4
#45000000
0!
1#
0*
1,
#50000000
1!
bZZZZ &
1*
bZZZZ /
#55000000
0!
0$
b0010 %
0*
0-
b0010 .
#60000000
1!
0'
1*
00
b10 3
#65000000
0!
b0011 %
0*
b0011 .
#70000000
1!
1(
1*
11
b11 3
#75000000
0!
b0100 %
0*
b0100 .
#80000000
1!
1*
b00 3
#85000000
0!
b0101 %
0*
b0101 .
#90000000
1!
1)
1*
12
b01 3
#95000000
0!
1$
bZZZZ %
0*
1-
bZZZZ .
#100000000
1!
1*
#105000000
0!
0$
b0110 %
0*
0-
b0110 .
#110000000
1!
1*
b10 3
b10 4
#115000000
0!
1$
bZZZZ %
0*
1-
bZZZZ .
#120000000
1!
1*
#125000000
0!
0#
0$
b0111 %
0*
0,
0-
b0111 .
#130000000
1!
b0011 &
1*
b0011 /
b11 3
b11 4
#135000000
0!
1#
1$
bZZZZ %
0*
1,
1-
bZZZZ .
#140000000
1!
bZZZZ &
1*
bZZZZ /
#145000000
0!
0#
0*
0,
#150000000
1!
b0100 &
0)
1*
b0100 /
02
b00 4
#155000000
0!
0*
#160000000
1!
b0101 &
1*
b0101 /
b01 4
#165000000
0!
0*
#170000000
1!
b0110 &
0(
1*
b0110 /
01
b10 4
#175000000
0!
0*
#180000000
1!
b0111 &
1'
1*
b0111 /
10
b11 4
#185000000
0!
0*
#190000000
1!
b0000 &
1*
b0000 /
#195000000
0!
1#
0*
1,
#200000000
1!
bZZZZ &
1*
bZZZZ /
#205000000
0!
0*
#210000000
1!
1*

关键字
$date 生成日期
$version 仿真器名称版本
$timescale 时间精度
$scope 作用范围
$var 信号名及对应符号

 reg 1 * clk    类型 reg  1位 信号名秒clk 以*号标记				

$comment 注释

$upscope 层次结构变化,跳至更高一层。
$enddefinitions 标识头结束

#0 时间偏移

1! 

以!标记的信号当前值为1 对应e_clk

U(   

以( 标记的信号当前值为U undefined 对应e_mid

bZZZZ  

binary 4位 值全为Z

你可能感兴趣的:(fpga开发)