目录

1.fsdbreport可以将fsdb的某个信号值抽出

2.fsdbreport manual

3.其他使用工具


0.Verdi培训整理笔记

文档记录在个人百度网盘

1.fsdbreport可以将fsdb的某个信号值抽出

该功能在波形比较的时候有大用。举例:

这个命令是将psel==1&penable==1&pwrite==0&pready==1时对应的prdata数据写到tmp_prdata.txt文件中,可以不加-exp条件,直接写出prdata数据,注意这个数据只在跳变的时候写出 -w 32是指定prdata的位宽

-bt :begin time

-et:end time

以上可以设置dump的开始结束时间,有时我们只需要某个时刻的值

-cn:设置显示列数, 0 表示所有满足的信号以一列形式显示

-s:后面可跟多个信号或信号范围,可带通配符 " * "

显示结果如下:满足i_*,和o_*的信号按列显示在time=1000ns=1000000000fs的信号值

还有其他很多用法可以在Synopsys官网上找到。下面贴出官网的手册

2.fsdbreport manual

fsdbreport is a utility to generate an ASCII text file of value change lists for specified signals from an FSDB dump file.
NOTE:    fsdbreport supports FSDB files with transaction-type signals with the following exceptions:
1) Transaction type signals cannot be used with -strobe or 
-levelstrobe options. Otherwise, error messages similar to the following are printed to the console:
*WARN* Transaction type signal </BusTop/MyAHB_1/AhbTransaction> cannot be used with -strobe!
*WARN* Report stop!
*WARN* Transaction type signal </BusTop/MyAHB_1/AhbTransaction> cannot be used with -levelstrobe!
*WARN* Report stop!

2) To accommodate the long and variable length of transaction type value changes, fsdbreport automatically uses a non-table format report (that is, -cn 0) whenever a transaction type signal exists in the signal list. The output format looks like the following:

Time:0
SystemC/HRESP    00
SystemC/HADDR    00000000000000000000000000000000
SystemC/HWRITE    0
Time:60000
/BusTop/MyAHB_1/AhbTransaction
*** single read (0 60000)-(0 140000) ***
Command=single read
Master='d 2
Slave='d 2
StartAddress='d 14526
Data="00000000000000000000000010101010"
Response=split
BurstType=single
BeatCount='d 1
SizePerBeat=1 byte

3) The -of and -af options do not change the output format of a transaction's attribute value.
Usage:
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]
Options
Explanation
-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.aliafsdbs
-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.
-exp expression
Reports values when the expression changes to true (==1). The expression syntax is the same as the Logical Operation command under the Signal menu in nWave.
Example: fsdbreport verilog.fsdb -s system/data -exp "/system/addr=='h30 & /system/clock==1"
-f config_file
Specifies a text file which defines all the options except -h and -f. The pound (#) sign isadded to the beginning of a line as a comment line.
Example:
fsdbreport example.fsdb -f config_file -o output.txt
-find_forces
Shows signals with force, release, or deposit events and the signal values.
-h | -help
Prints the help message.
-level level_depth
Specifies the number of levels to be dumped under the specified scope. Use this option with the -s option.
When set to 0, all signals below the specified scope is dumped.
-levelstrobe "expression"
Dumps values when the expression holds true (level sampling). If the expression is not true, the time point and value are not dumped. The expression can consist of one strobe signal (for example, "a==1") or multiple strobe signals (for example, "a==1 && b==1"). The -strobe and -levelstrobe options cannot be used together.
Example:
fsdbreport verilog.fsdb -levelstrobe "/system/clock==1 && /system/sig==1" -s /system/data /system/addr
-log filename
Specifies the output log file name. The default file name is err.log.
-nolog
Disables generation of the fsdbreportLog log directory.
-nocase
When included, the mapping of signal names is not case-sensitive. The default is case-sensitive.
-no_fdr_glitch
Shows the stable value for force, release, and deposit events.
NOTE: This option is optional and is used with the -find_forces option; otherwise, it is ignored.
-no_value
Disables value display of force, release, and deposit events.
NOTE: This option is optional and is used with the -find_forces option; otherwise, it is ignored.
-o reported_file_name
Specifies the output report file name. If the -o option is not specified, the default is report.txt.
-of [b|o|d|u|h]
Defines the output display format as binary, octal, decimal, unsigned decimal, or hexadecimal. Its default value is binary. When this option is specified before the -s option, it is applied globally. When this option is specified after a signal, it is applied locally.
-period period_time
Dumps values at each specified time.
-precision precision_value
Defines the precision (the number of decimal places to include) of output values for analog signal types. This option is ignored for digital signal types.
Example:
- Original output without the -precision option:
> fsdbreport test.tr0.fsdb -s "I(vcc"
 
Time(1.0) I(vcc 
========== ==========
0.000000e+00 -10.0pA
5.000000e-11 23.4nA
1.000000e-10 25.0nA
3.000000e-10 30.4nA
1.100000e-09 41.0nA
2.100000e-09 43.3nA
3.100000e-09 43.4nA
- Report with the -precision 7 option:
> fsdbreport test.tr0.fsdb -s "I(vcc" -precision 7 -w 20 
-o report_with_precision_5.txt
 
Time(1.0) I(vcc 
========== ====================
0.000000e+00 -1.0000000e-11A
5.000000e-11 2.3453000e-08A
1.000000e-10 2.5039000e-08A
3.000000e-10 3.0451002e-08A
1.100000e-09 4.1056001e-08A
2.100000e-09 4.3309001e-08A
3.100000e-09 4.3463999e-08A
4.100000e-09 4.3423999e-08A
5.100000e-09 4.3402000e-08A
6.100000e-09 4.3387999e-08A
7.100000e-09 4.3374001e-08A
-pt time_precision
Defines the time precision (the number of decimal places to include) of the output value for analog signal types. This option is ignored for digital signal types.
Example:
fsdbreport hspice.fsdb -s "/v(_be0" -pt 5 -o 1.txt
-s {signal_name [options]}
Specifies the signals or scopes to be reported. When specifying a scope name, the wildcard character "*" is appended to the end with double quotes. At least one -s must be included.
NOTE: For system tasks or system functions, when a scope or signal name begins with '$' (for example, $root), it denotes a variable in the Unix shell, and gives a warning that the variable root value is not obtained. To avoid this error usage, use single quotes (') to replace double quotes ("). For example:
fsdbreport test.fsdb -s '/$root/En_a' -o test_report.txt
NOTE: If the output format needs to be specified for multiple signals, the output specification must immediately follow each of the desired signals. For example:
fsdbreport test_fsdb.fsdb -o multi_scope.txt
-s "/U_core_top*" -precision 5 -w 17 
"/U_pad_ring*" -precision 6 -w 20 -bt 555 -et 555
-precision 5 -w 17 belongs to the "/U_core_top*" signal 
-precision 6 -w 20 belongs to the "/U_pad_ring*" signal
If the following are specified, the -precision 6 -w 20 only belongs to /U_pad_ring:
fsdbreport test_fsdb.fsdb -o multi_scope.txt 
-s "/U_core_top*" "/U_pad_ring*" -precision 6 -w 20 
-bt 555 -et 555 -cn 20
-shift | -shiftneg
Specifies to shift (plus) or shiftneg (minus) the report time when the strobe signal matches the specified value. Use this option with the -strobe option.
Example: fsdbreport verilog.fsdb -shift 10 
-s "system/VMA" -strobe "system/clock==1" -o 1
Samples the value for VMA 10 time units after the clock becomes 1.
fsdbreport verilog.fsdb -shiftneg 300ps -s "system/VMA" 
-strobe "system/clock==1" -o 1
Samples the value for VMA 300ps before clock becomes 1.
-strobe "expression"
Reports values when the value of the strobe signal changes to the specified value (edge sampling). The strobe is in the format of “signal==value”. For multi-bit signals, the value is in binary without leading zeros.
-verilog | -vhdl
Specifies the output format as Verilog or VHDL format. When this option is specified before the -s option, it is applied globally. When this option is specified after a signal, it is applied locally.
-w column_width
Defines the width of the signal column. When this option is specified before the -s option, it is applied globally. When this option is specified after a signal, it is applied locally. The default column width is 10. If the width of the signal or value is greater than the specified column, then '*' is used in the signal or value. For example, if /system/addr is an 8-bit bus:
> fsdbreport verilog.fsdb -w 5 -s /system/addr
*addr is reported with values, such as, *0000 in report.txt.
For the strobe, level_strobe or expression signal, if the width is less than the maximum time width, the width is automatically expanded to the maximum time width.
NOTE: This option is ignored if the -csv option is also specified.
-ignore_2G
Reports FSDB if the signal count of input FSDB is over 2G.
Reporting fails if the count of user interested signal is over 2G.
-first_force
Only shows the first force event for signal. This option works only with the -find_forces option.
Examples:
1. Assign the begin time (1000ps) and end time (2000ps) for the report. The value of the end time must be greater than the value of the begin time; otherwise, no output is generated.
> fsdbreport verilog.fsdb -s /system/addr -bt 1000ps -et 2000ps
2. Report multiple signals. Only one -s option takes effect. If two or more are specified, only the last -s takes effect. For example, the following commands lead to the same result with addr being reported only:
> fsdbreport verilog.fsdb -s /system/clock -s /system/addr
> fsdbreport verilog.fsdb -s /system/addr
However, both clock and addr are reported with the following command:
> fsdbreport verilog.fsdb -s /system/clock /system/addr
3. Report a slice of a bus signal. The MSB and LSB of the partial bus must match the original bus. For example, if there is the addr[7:0] bus, bits 7, 6, 5, and 4 are extracted with the following command:
> fsdbreport verilog.fsdb -s "/system/addr[7:4]"
If the following command is executed, nothing is extracted:
> fsdbreport verilog.fsdb -s "/system/addr[4:7]"
4. Report signals in the signal list using different formats.
> fsdbreport fsdb/vhdl_typecase.fsdb -nocase -s top/SIMPLE_REC.FIELD3
-a simple.field3 -w 15 TOP/COMPLEX_REC.F1.FIELD3 -a complex.f1.field3
-w 20 top/a_std_logic_vector -af sean2.alias -of a -o output.txt
-bt 1000 -et 2000
 
simple.field3 is reported as the alias for the top/SIMPLE_REC.FIELD3 signal, complex.fl.field3 is reported as the alias for the TOP/COMPLEX_REC.F1.FIELD3 signal, and the alias values in sean2.alias are reported for the top/a_std_logic_vector signal.
5. Report signals using different output formats. For example, the formats are applied globally with the following command:
> fsdbreport verilog.fsdb -w 15 -of d \
-s /system/addr /system/clock
 
The column width is 15 and the radix is decimal for both /system/addr and /system/clock.
The following command applies column width of 12 and radix of 16 (hexadecimal) locally to /system/addr.
> fsdbreport verilog.fsdb -w 15 -of d -s /system/addr -w 12 \
-of h /system/clock
 
However, column width of 15 and radix of 10 (decimal) are applied globally to /system/clock.
6. Report a scope and its descendants. Multiple scopes may be specified.
> fsdbreport rtl.dump.fsdb -bt 10 -et 100 \
-s "/system/i_cpu/*" -level 3 /system/i_pram/clock -cn 0
Up to 3 levels of scopes below /system/i_cpu and the /system/i_pram/clock signal between 10-100ns are reported. The results are printed line by line.
7. Report the results for the specified strobe point using -strobe.
> fsdbreport verilog.fsdb -strobe "/system/clock==1" -s /system/data /system/addr
 
Only when the value of the /system/clock signal is 1, the values of the 
/system/data and /system/addr signals are reported.
8. Specify a configuration file. In the configuration file, all the command options (except -h or -f) are specified in a single line or multiple lines. The fsdbreport utility reads them in order. For example, the following three files generate the same extracted results:
File1:
-w 12 -s /system/addr /system/clock
-w 15 -et 1200
File2:
-w 12
-s /system/addr /system/clock -w 15 -et 12000
File3:
-w 12
-s /system/addr
/system/clock
-w 15 -et 12000
> fsdbreport verilog.fsdb -f File1
> fsdbreport verilog.fsdb -f File2
> fsdbreport verilog.fsdb -f File3
9. Report the results when the expression value changes to true.
> fsdbreport verilog.fsdb -exp "/system/addr=='h30 & /system/clock==1"
-s /system/data
 
When the value of the /system/addr signal is 'h30, and the value of the 
/system/clock signal is 1, the expression is TRUE. The value of the 
/system/data signal is reported     when the expression is TRUE.
10. Report the force, release or deposit information of the specified signals using -find_forces.
> fsdbreport rtl.fsdb -find_forces -s "/system/i_cpu/*" -level 2 -o report.txt
 
When the specified signals meet the following conditions, the signal information is reported:
• Signals with force, release, or deposit events
• Signals under the /system/i_cpu scope
• Signals located two levels under the specified scope. If the level is more than 2, the signals are ignored.
11. Report the force of the specified signals using -find_forces and -exclude_scope.
> fsdbreport rtl.fsdb -find_forces -s "/system/i_cpu/*" -exclude_scope "/system/i_cpu/s1/*" "/system/i_cpu/s2" -o report.txt
12. Exclude a specific scope without excluding its subscopes.
> fsdbreport test.fsdb –exclude_scope "/top/system" –o out.txt
13. Specify a scope and exclude the specified scope and its subscopes.
> fsdbreport test.fsdb –exclude_scope "/top/system/*" –o out.txt
14. Exclude multiple scopes.
> fsdbreport test.fsdb –exclude_scope "/top/system/*" "/top/S1" "/top/S2/" –o out.txt

3.其他使用工具

 1)波形类型转换类:fsdb2saif,fsdb2vcd,

    log2fsdb(只能增加某些周期性信号,从log txt直接产生fsdb波形,适合于siloti的某些分析)

    xml2fsdb

    vpd2fsdb,vcd2fsdb;

  2)fsdb的波形合并与抽取:fsdbextract,fsdbmerge;

  3)fsdb波形文件的修改,主要是scope:fsdbedit;

  4)由fsdb生成force等信息的报告,fsdbreport;

    由fsdb拿到file的依赖关系,gencom;

    由kdb db中抽出filelist,kdb_extract_source;

  5)使用工具:bacom,直接进行behavior analysis;(比普通的load,driver的分析,更加具体)

        arm的gdb debug库,分为elf和非elf两种;

        sdfin,对sdf进行编译;

        vdCov,直接打开verdi的coverage功能;

  

剩下的:1)vericom,编译verilog;

    2)vhdlcom,编译vhdl;

    3)nWave,只打开fsdb;

    4)siloti,打开siloti;(波形文件大小会比fsdb小很多,只记录真正的驱动点,

      很多propgate的驱动不会记录,方便rtl波形反标netlist波形)

verdi方法fsdbreport将fsdb的某个信号值抽出为可读文件 及波形转换,合并,修改工具,Verdi培训整理笔记相关推荐

  1. android gl修改工具,Android OpenGL学习笔记五 gl的一些方法

    由于本人在学习过程中发现一大堆的gl...gl..gl的所以决定总结下关于Opengl的函数(核心库gl)的理解 以下都在onSurfaceCreated()方法里执行,其实就是初始化 //清除屏幕色 ...

  2. testbench文件显示波形_modelsim仿真没有波形或看不到波形的原因及解决方法 - 全文...

    关于modelsim仿真时出现 No objects found matching '/*' 问题在Modelsim6.2系列版本中仿真时,点击start simulateion后,出现Objects ...

  3. PWM信号通过功率三极管控制电机,PWM波形失真问题。

    电路图如下所示 上图M+为5V电源,电机与二极管D3并联. 在调试过程中,PB6输入频率为15.268KHz.占空比36.17%为PWM信号(既周期为64uS,高电平为17uS).PWM信号如下图所示 ...

  4. can总线用java怎么解析_CAN信号值解析

    本文提供一种可以解析CAN信号各信号值的一种方法并进行说明. 一般情况下,高端一点的设备会计算每一个信号的值,但是接受到CAN信号的报文实际上有各种情况,如何通过设定的起始位和数据长度来获取某一信号的 ...

  5. CANalyzer及CANOE使用五:无DBC,调CSV方式的网关信号转发或单通道信号值控制ECU其他信号变化(包含设计自动化测试)

    前言 Panel界面 CSV文件解析 发送与接收 验证 测试用例说明 拓展思维 补充说明 ---------------- 前言 请输入公众号:总线网络.关注我,获取汽车网络开发及测试方面资料,更新干 ...

  6. 读一个文件的java程序_java 读文件的几种方法(一)

    先前使用一直很混乱的使用过这些方法,但都没有好好做过总结. 这两天趁有空,小结一下. 1.输入输出流 说起 java的 读写文件不得不说java中的输入输出流对象, 被读取的对象为输入流(如某个文件, ...

  7. matlab中读文件的行数_[转载]MATLAB中获取大型文本文件行数方法研究(转)

    在工作中会有很多特殊的需要,比如我现在就遇到一个需要将大型的文本格式数据文件(比如5G)读取到MATLAB中,同时进行一定的处理.由于XP的内存是绝对没有办法将5G的数据一次性加载到工作空间的,此时一 ...

  8. php 多个文件,PHP实现将多个文件中的内容合并为新文件的方法示例

    本文实例讲述了PHP实现将多个文件中的内容合并为新文件的方法.分享给大家供大家参考,具体如下: function test() { $hostdir= iconv("utf-8", ...

  9. 刀模图是什么意思_“吃鸡”光子公布神秘图,海岛图上有44个坐标,暗示信号值取消?...

    大家好,欢迎来到由小鱼干开讲的<吃鸡新鲜事速报>,今天绝地求生官方终于公布了新地图"卡拉金"的具体细节,新地图为2*2大小,部分建筑可被破坏,并且这个地图的" ...

最新文章

  1. All About Lily Chou-Chou
  2. 排序算法-02直接插入(python实现)
  3. 划分VLAN,以及VLAN间通信
  4. mac给服务器传送文件
  5. 童继龙:论ERP顾问的创新分享与专业精神
  6. ad电阻原理图_【雕爷学编程】Arduino动手做(2)---光敏电阻模块
  7. Spring整合Redis详解
  8. (24)System Verilog设计十进制计数器
  9. WPS文字2013利用绘图工具中的形状裁剪出各式各样的图片
  10. java jshell_Java基础教程——Jshell
  11. 微信商城的这六大优势,以及这些丰富的功能,你知道吗?
  12. 有什么好用的windows PDF阅读器?答案在这里面
  13. 路面坑洼检测中的视觉算法
  14. python 基于百度aip库 实现识别图片中的文字
  15. 态密度的Delta函数公式以及范霍夫奇点
  16. android熄屏微信收到原理,求助,如何才能在息屏状态下显示收到的微信消息内容?...
  17. CAN节点报文丢失超时时间检测CANoe自动化脚本实现
  18. 【调剂】上海电力大学控制工程 、通信工程、人工智能等专业调剂信息
  19. 给“四时有惑”播客招募几位志愿者
  20. 零基础入门推荐系统 - 新闻推荐(一)

热门文章

  1. ipmitool命令
  2. 清华大学微积分教育领头人是谁?
  3. 嵌入式系统开发期末复习——英文名词解释
  4. java stun_公开的免费STUN服务器
  5. 钉钉氚云到金碟之一:金碟KIS专业版的DELPHI接口
  6. Meteor安装方法
  7. ES中如何实现类似having的先聚合再过滤查询
  8. hive中having 后面count(xx) 条件的问题
  9. Unity解决同材质物体重叠产生Z-Fighting的问题
  10. 篮球传奇辅助工具分享