gtkwave tcl 脚本用于添加特定信号

问题描述 投票:0回答:2

我有一个巨大的

VCD
文件,我将其与
gtkwave
结合使用来观察某些信号行为。我有一个存储在
.txt
文件中的信号列表,这些信号是我希望探测的信号。问题是,手动插入信号是一个艰苦而漫长的过程。所以我的问题是,

有没有办法,给定

.txt
文件来编写
.tcl
脚本,过滤列表中的指定信号并将其添加到波形编辑器?

tcl gtkwave
2个回答
4
投票

嗯,在查阅手册和一些

gists
之后,我发现这里和那里似乎有很多可以使用的
gtkwave
说明,这些说明(大部分)都列在
gtkwave
手册(附录E)上在这里。简而言之,您所要做的就是按照以下格式编写一个
.tcl
脚本:

# add_waves.tcl 
set sig_list [list sig_name_a, register_name\[32:0\], ... ] # note the escaping of the [,] brackets
gtkwave::addSignalsFromList $sig_list

然后调用 gktwave 为:

gtkwave VCD_file.vcd --script=add_waves.tcl

此外,还可以通过

tcl
中的以下语法访问 GUI 菜单选项:

gtkwave::/Edit/<Option> <value>

0
投票

我面临着同样的情况,并实施了接受的答案中提供的解决方案。

但是,我在解析 .txt 文件时浪费了一些时间,我只是没有注意到在这种情况下,不需要转义

[,]
字符,它是由 tcl 处理的。

我从

wave_names.txt
文件读取的最终脚本是:

proc listFromFile {filename} {
    set f [open $filename r]
    set data [split [string trim [read $f]]]
    close $f
    return $data
}

set sig_list [listFromFile wave_names.txt]

gtkwave::addSignalsFromList $sig_list
© www.soinside.com 2019 - 2024. All rights reserved.