LoginSignup
1
2

VCD ファイルフォーマット リバエベース 解説

Posted at

概要

VCD(Value change dump)ファイルのフォーマットについて
リバエベースで確認できた内容についてまとめる。
本記事の内容だけで、GTKWaveで波形を確認することができるvcdを作成できる。

vcd ファイルは宣言部とデータ部に大きく分けることができる。
vcd ファイルは ASCII なので手書きできる。

宣言部

wire, module, reg を記すことが出来る。
wire, reg は宣言が同じ形式

wire, reg の宣言

$var reg 1 hoge piyo $end

$var:変数宣言表記
reg:値がレジスタであることを意味する。ワイヤの場合はwire
1:ビット数。4bitなら4
hoge:識別子。本当になんでもいい。 1でも変数名と同名でも
piyo:変数名 reg の名前
$end:終了表記

上記の宣言で verilog の

reg giyo;

と同じ意味となる。

module の宣言

$scope module hoge $end
wire, reg の宣言
$upscope $end

hoge:モジュールインスタンス名
構造の問題なので以降のデータ部には影響しない

データ部

表記は3種類

  1. タイムスタンプ
  2. 1bit 信号
  3. 多bit 信号
    各行間に空行を入れても問題ない(GTKWaveでは)

1. タイムスタンプ

#3

絶対時間のタイムスタンプ
verilog シミュレーションの#表記とは意味が若干異なる

2. 1bit 信号

1hoge
or
0hoge

1:1に変化することを意味する
hoge:変数識別子。宣言部で宣言した識別子
空白の挿入は 許されない

3. 多bit 信号

b1010 hoge

b:2進表記識別子。省略不可。h不可
1010Aに変化することを意味する。上位bitの0は省略可
hoge:変数識別子。宣言部で宣言した識別子
空白の挿入は 絶対

簡単な自作 vcd と波形

mymade.vcd
$var wire 1 hoge a $end
$var reg  4 123 c $end

#0
b1 123
0hoge
$end
#3
1hoge
#5
0hoge
#6
b1010 123
#10

image.png

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2