语法
fsdbreport fsdb_file_name [-f config_file] [-bt time[unit]] [-et time[unit]] [-nocase] [-w column_width] [-o output_format] [-verilog|vhdl] -s {signal [-level level_depth] [-a name] [-w column_width] [-af alias_file] [-of [b|o|d|u|h]] [-verilog|-vhdl] [-precision precision_value] } [-strobe [signal=="value"] [-a name] [-w column_width] [-verilog|-vhdl] ] [-exp expression [-a name] [-w colomn_width] ] [-levelstrobe signal=="value" [-a name] [-w column_width] [-verilog|vhdl] ] [-shift shift_time | -shiftneg shiftneg_time] [-partition_sig_list file_name file_count] [-period period_time] [-cn column_number] [-o reported_file_name] [-pt time_precision] [-log [log_file_name]] [-find_forces [-no_value] [-no_fdr_glitch]]
选项意义
- a alias_name:别名,定义输出信号的别名,也就是起一个简单好记的名字
- af alias_file: 指定一个nWave别名文件
- **bt time[unit]**:指定报告的开始时间。如果缺省,则使用fsdb文件的开始时间。时间单位可以为Ms, Ks, s, ms, us, ns, ps, fs。默认单位为ns。
- cn,column_number:定义报告的列数,包括时间列。该参数可以设置为0或者大于1的整数。当设置为0时,信号的名字以及数值不会按照列表的形式打印出来,但是会一行一行得打印出来。如果另外使用了 -csv选项,那么这个选项就会被忽略。
- csv将输出报告保存为CSV格式。如果该选线与 -cn, -w一起使用,那么 -cn, -w会被忽略掉。
- et time[unit]指定报告的结束时间。如果缺省,使用fsdb的结束时间。时间单位可以为Ms, Ks, s, ms, us, ns, ps, fs。默认单位为ns。
- exclude_scope scope_name:排除所给定的范围中的信号。每个给定的范围都应该使用双引号括起来。如果要排除给定范围的子范围,必须在所给范围的后面添加通配符*。该选项必须与 -find_forces选项配合使用。
例如:-find_forces -exclude_scope “system/i_cpu*” “system/s1” - find_forces: 用强制、释放或暂存事件和信号值显示信号
- help | h: 显示帮助信息。
- level level_depth: 指定所给范围下输出的层次。该选项必须与 -s 选项配合使用。当设定为0时,给定范围中的所有信号都会被输出。
- levelstrobe “expression”: 当选通信号与所指定的信号相等时,输出信号。-strobe和-levelstrobe不能一起使用。
- log [log_file_name]: 指定输出日志文件。默认的文件名为 err.log。
- no_fdr_glitch: 展示强制、释放或者暂存事件中的稳定值。该选项是可选的并且必须与 -find_forces联合使用,否则会被忽略。
- no_value: 不展示强制、释放或者暂存事件中的值。该选项是可选的并且必须与 -find_forces联合使用,否则会被忽略。
- nocase:当包含该选项时,大小写不敏感。
- nolog:指示不生成日志文件。
- o report_file_name: 指定输出文件名称。
- of [b|o|d|u|h]: 指定输出数据的格式为二进制、八进制、十进制、无符号十进制或者十六进制。
- partition_sig_list: 指定信号的一部分。
- period period_time: 在每个指定的时间输出数据。
- precision precision_value: 为模拟信号类型的数据指定精度。如果是数字信号,该选项会被忽略。
- pt time_precision: 指定模拟信号的时间精度。如果是数字信号,该选项会被忽略。
- s {signal_name [option] }:指定要报告的信号或者范围。当指定范围时,必须在末尾使用通配符*
- shift | shift_time[unit]: 当选通信号与指定值相等时,指定移动的时间加一段时间或者减一段时间。该选项必须和 -strobe选项一起使用。
- strobe “expression”: 当选通信号与指定信号相等时,输出信号。
- verilog | vhdl: 指定输出格式为verilog或者vhdl类型。
- w column_width 定义信号列的宽度。如果还指定了 -csv 选项,该选项会被忽略。
例子
1. 指定报告的开始时间和结束时间
fsdbreport verilog.fsdb -s /system/addr -bt 1000ps -et 2000ps
此命令的意思是:将文件verilog.fsdb中的信号”/system/addr”,在时间段1000ps~2000ps内的值输出。
2. 报告总线信号的一个切片
fsdbreport verilog.fsdb -s "/system/addr[7:4]"
此命令和上一条命令很像,但是只报告”/system/addr”信号的[7:4]部分,且没有限定时间段。
3.以不同格式报告列表中的信号:
fsdbreport fsdb/vhdl_typecase.fsdb
-nocase
-s
top/A_SIMPLE_REC.FIELD3 -a simple.field3
-w 15 TOP/A_COMPLEX_REC.F1.FIELD3 -a complex.f1.field3
-w 20 top/a_std_logic_vector -af sean2.alias -of h
-o output.txt
-bt 1000 -et 2000
第一条命令指定fsdb文件,第二条命令指定大小写不敏感,第三条命令指定输出信号,这里的输出信号一共有三个,分别是第4,5,6行,第四行指定了输出信号且取了一个别名”simple.field3″,第7行指定输出文件的名字,第8行指定报告的启示和结束时间。
4.报告一个范围以及它的子范围,可以指定多个范围:
fsdbreport rtl.dump.fsdb -bt 10 -et 100 -s "/system/i_cpu/*" -level 3 /system/i_pram/clock -cn -0
5. 报告使用strobe指定点的结果。
fsdbreport verilog.fsdb -strobe "/system/clock==1" -s /system/data/system/addr
6.当表达式为真时,报告结果。
fsdbreport verilog.fsdb -exp "/system/addr=='h30 & /system/clock==1" -s /system/data
7.报告指定信号的强制、释放或者暂存信息使用 -find_forces.
fsdbreport rtl.fsdb -find_forces -s "system/i_cpu/*" -level 2 -o report.txt
8. 报告指定信号的强制信息,使用 -find_forces 和 -exclude_scope。
fsdbreport rtl.fsdb -find_forces -s "/system/i_cpu/*" -exclude_scope "/system/i_cpu/s1/*""system/i_cpu/s2" -o report.txt
来自对fsdbreport命令的帮助文档
没有回复内容