スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Tools][SystemC] VCDファイルを階層ごとに修正する

SystemCで信号波形をダンプする際には、VCD形式で出力することが多いと思います。
SystemCのダンプ形式だと、「階層.信号」といった感じでフラットに出力されてしまうので、どうしても波形ビューワーで見ると、見づらいかと思います。


そこで、こんなものがあります。


Manipulate the Hierarchy of VCDs generated by ASI (OSCI) PoC SystemC Simulator


ダウンロード&ビルド

$> git clone git://github.com/yTakatsukasa/vcd_hierarchy_manipulator.git
$> cd vcd_hierarchy_manipulator/
$> make

これで、「vcd_hier_manip.x」が生成されると思います。


実際に使ってみる。

予め用意していた「systemc.vcd」を試してみました。

$> vcd_hier_manip.x systemc.vcd --output output.vcd

オリジナルとの差分がこちらになります。

--- systemc.vcd 2013-03-15 09:42:38.523658600 +0900
+++ output.vcd  2013-05-01 13:40:59.340473416 +0900
@@ -10,35 +10,40 @@
      1 ps
 $end

-$scope module SystemC $end
-$var wire    1  aaa  utop.w_clk       $end
-$var wire    1  aab  utop.w_xrst       $end
-$var wire    4  aac  utop.w_addr [3:0]  $end
-$var wire   32  aad  utop.w_wdata [31:0]  $end
-$var wire    1  aae  utop.w_ce       $end
-$var wire    1  aaf  utop.w_we       $end
-$var wire   32  aag  utop.w_rdata [31:0]  $end
-$var wire    1  aah  utop.uTB.we       $end
-$var wire    1  aai  utop.uTB.ce       $end
-$var wire   32  aaj  utop.uTB.wdata [31:0]  $end
-$var wire    4  aak  utop.uTB.addr [3:0]  $end
-$var wire    1  aal  utop.uTB.xrst       $end
-$var wire    1  aam  utop.uTB.clk       $end
-$var wire   32  aan  utop.uTB.rdata [31:0]  $end
-$var wire   32  aao  utop.uRAM.rdata [31:0]  $end
-$var wire    1  aap  utop.uRAM.we       $end
-$var wire    1  aaq  utop.uRAM.ce       $end
-$var wire   32  aar  utop.uRAM.wdata [31:0]  $end
-$var wire    4  aas  utop.uRAM.addr [3:0]  $end
-$var wire    1  aat  utop.uRAM.xrst       $end
-$var wire    1  aau  utop.uRAM.clk       $end
-$upscope $end
-$enddefinitions  $end
+       $scope module SystemC $end
+               $scope module utop $end
+                       $var wire 4 aac w_addr [3:0] $end
+                       $var wire 1 aae w_ce $end
+                       $var wire 1 aaa w_clk $end
+                       $var wire 32 aag w_rdata [31:0] $end
+                       $var wire 32 aad w_wdata [31:0] $end
+                       $var wire 1 aaf w_we $end
+                       $var wire 1 aab w_xrst $end
+                       $scope module uRAM $end
+                               $var wire 4 aas addr [3:0] $end
+                               $var wire 1 aaq ce $end
+                               $var wire 1 aau clk $end
+                               $var wire 32 aao rdata [31:0] $end
+                               $var wire 32 aar wdata [31:0] $end
+                               $var wire 1 aap we $end
+                               $var wire 1 aat xrst $end
+                       $upscope $end
+                       $scope module uTB $end
+                               $var wire 4 aak addr [3:0] $end
+                               $var wire 1 aai ce $end
+                               $var wire 1 aam clk $end
+                               $var wire 32 aan rdata [31:0] $end
+                               $var wire 32 aaj wdata [31:0] $end
+                               $var wire 1 aah we $end
+                               $var wire 1 aal xrst $end
+                       $upscope $end
+               $upscope $end
+       $upscope $end
+$enddefinitions $end

 $comment
 All initial values are dumped below at time 0 sec = 0 timescale units.
 $end
-
 $dumpvars
 0aaa
 0aab

確かに階層化されてますね。
これは便利ですね!!!

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。