|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
VCD,FSDB,WLF波形文件简介 " K5 f: j& o/ n
4 G- _5 \9 t" ^7 z v& \9 y8 y
wlf(wave log file)文件: j0 N5 M: Q. r3 x9 c8 z$ V
vsim -view vsim.wlf -do run.do在modelsim中使用命令行打开wlf波形文件,run.do为要查看的波形信号
8 o* S5 W' B! D rwlf只能通过modelsim生成以及显示,不是通用的波形文件格式
3 m( y4 a( x/ P0 i$ {
' {: C& d1 v# n% B4 OVCD(value change dump)文件9 G! i$ r" S# l- B U! q) `% q# y
VCD是一个通用的波形文件格式,是IEEE1364标准(Verilog HDL语言标准,p325)中定义的一种ASCII文件.- T- q; o& ?# D1 V5 ^
可以通过Verilog HDL的系统函数$dumpfile,$dumpvars等来生成。通过$dumpvars的参数来规定抽取仿真中某个特定模块和信号的VCD数据。8 z) m; p, m3 b- Y
文件主要包含了头信息,变量的预定义和变量值的变化信息。它包含了信号的变化信息,相当于记录了整个仿真的信息。可以这个文件来再现仿真以及显示波形。另外我们还可以通过这个文件来估计设计的功耗。可以在verilog代码中通过系统函数来dump VCD文件。另外,我们也可以通过modelsim 命令来生成VCD文件。具体的命令:3 h9 _* z0 d3 e* Q+ a
vcd file myfile.vcd //准备在modelsim中生成myfile.vcd文件
& T1 D$ Y# X+ j5 ]! }; F. Cvcd add /test/dut/* //添加信号( a. g+ @+ V' k$ y9 A6 k8 i
这个就生成一个含dut下所有信号的VCD数据信息。我们在使用来进行仿真; Z; X5 t; @. j& [) d) f' ?& s% l/ W+ d
! J! a ~1 D& h3 ]vsim -vcdstim myfile.com test;
; A& Z) b5 U! Z( K/ N" Zadd wave /*;$ n: e( W( L1 `) v! ?
run -all;) p2 }" q* y5 p* @' o( A
用法举例(通过仿真器生成):
3 D( g! [8 M: _- w7 ?8 W# S3 u J# `: ginitial begin
B1 b' t! O6 g& y. ` T- y$dumpfile("result.dump"); //生成对应的文件) z/ w3 v- U' D. |5 M
$dumpvars[(<levels>), *]; //如何规定单一关注的信号$ }+ ]9 |2 [1 l0 I$ V4 K
$dumpvars; //dump所有层次的信号
& i, U& I% L% a0 E" C0 G/ ~$dumpvars(1, top); //top模块中的所有信号
% T& u# V, d2 B' ?$dumpvars(0, top); //top模块及其模块中的所有信号
' f& h! _" ~/ \$ `/ B S9 u8 Rend
- M2 b- E; s5 D }
# E+ B7 ~! G8 e" a0 B5 q( KEncounter 和 PrimeTime PX (Prime Power)都可以通过输入网表文件,带功耗信息的库文件以及仿真后产生的VCD文件来实现功耗分析。
4 {& x* g% u4 d' }8 T$dumpfile("mmu_test_dump.txt");+ m& r$ v& @+ f
$dumpvars(1,mmu_test.ret_out); //mmu_test模块下的ret_out信号
' V# h7 x6 [3 \: T. ?% ?% z5 O$ s4 z/ M
" P c: E s7 M0 _/ R
fsdb(fast signal database)文件
# d( U$ d# s/ y5 ]fsdb文件是verdi使用一种专用的数据格式,类似于VCD,但是它是只提出了仿真过程中信号的有用信息,除去了VCD中信息冗余,就像对VCD数据进行了一次huffman编码。因此fsdb数据量小,而且会提高仿真速度。VCD文件使用verilog内置的系统函数来实现的,fsdb是通过verilog的PLI接口来实现的。$fsdbDumpfile,$fsdbDumpvars等5 S& A) T7 l: M3 O- q C+ u# \# @, f
Testbench中加入:9 S& o O3 u. s) p0 Y
initial
) W8 o; K/ r) R" L: J" L Qbegin6 b1 c' q5 U6 [9 s3 m" {
$fsdbDumpfile("*.fsdb");# |8 d9 S+ Q8 U9 J
$fsdbDumpvars(0,**);$ e% I9 I4 J( z3 x/ w$ E/ B
end |
|