目录
一 概论
不知道大家在工作中有没有这么一个考虑:我们能不能基于测试用例产生的fsdb波形,从中得到我们关心的某一信号,在整个仿真期间,亦或者在某个仿真时间段内,其数值大小变化的情况。大家不要觉得思考这个很无趣。随着验证工作的复杂度提高,如果我们有时候能有一手这样的数据资料,将会对我们分析debug 问题,很有帮助。
Verdi的子工具 fsdbreport 应用程序包,可以帮我们从fsdb 波形中,抽离出想要的信号数值变化并产生一个列表txt 文件。
二 语法
fsdbreport fsdb_filename
[-f config_file]
[-bt time[unit]]
[-et time[unit]]
[-nocase][-w column_width]
[-of 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]]
[-levelstrobe "expression"][-a name]
[-w column_width]
[-verilog|-vhdl]]
[-shift shift_time | -shiftneg shiftneg_time][-period period_time]
[-cn column_number][-log filename]
[-o reported_filename]
[-pt time_precision][-csv]
[-find_forces [-no_value] [-no_fdr_glitch]]
[-ignore_2G]
[-first_force]
三 选项与说明
-a alias_name | Defines the alias for the output signal. |
-af alias_file | Specifies an nWave waveform alias file.NOTE: Specifies the -af option must be specified for each signal. For example: -s /tb/chip/lbu/core/dmac/haddr -a haddr -af novas.alias /tb/chip/lbu/core/dmac/hwdata -a hwdata -af novas.alias |
-bt time[unit] | Specifies the begin time of the report. If omitted, the begin time of the FSDB file is used. The time unit is Ms, Ks, s, ms, us, ns, ps, or fs. The default time unit is ns. |
-cn column_number | Defines the number of columns for the report, including the time column. Column number is set to be 0 or an integer larger than 1. When setting to 0, the signal name and its value are not printed in the format of a table, but line by line. NOTE: This option is ignored if the -csv option is also specified. |
-csv | Saves the output report file in the CSV format. If this option is specified with -cn and -w, these options are ignored.NOTE: If the selected signals contain stream, coverage, or SVA type signals, the -csv option is ignored and non-csv format is output. |
-et time[unit] | Specifies the end time of the report. If omitted, the end time of the FSDB is used. The time unit is Ms, Ks, s, ms, us, ns, ps, or fs. The default time unit is ns. |
-exclude_scope "scope1" ["scope2" … "scopeN"] |
Excludes signals under the specified scopes. Each scope is enclosed with double quotes. To exclude subscopes of the specified scopes, the wildcard character "*" is appended at the end of the scopes. Example: -find_forces -exclude_scope "/system/cpu/*" "/system/s1" NOTE: 1) Use this option with the -find_forces option. 2) The -exclude_scope option has higher priority than the -s option. |