最近の更新 (Recent Changes)

2014-07-01
2014-06-30
2014-06-29
2012-11-11
2012-04-21
2012-03-25

Latest File Releases

TimingChartViewer (r245)2012-02-15 00:10
isesimutil (r230)2012-01-01 23:07
nbox_util (r247)2012-03-11 22:19
noodlybox (0012)2010-01-01 19:46

Wikiガイド(Guide)

サイドバー (Side Bar)

TimingChartViewer

こんな風にソースコードに書いて、

  1. // TimingChart
  2. //
  3. // ACLK /|/ / / / / / / / / / / / /
  4. // ARADDR x|A A B B x x x x x x x x x : A B
  5. // ARVALID 0|1 1v1 1 0 0 0 0 0 0 0 0 0
  6. // ARREADY x|0 1 0 1 x x x x x x x x x
  7. // RDATA x|x x x A x x B x C D x E x : \
  8. // D(A0) D(A1) D(A2) D(B0) D(B1)
  9. // RLAST 0|0 0 0 0 0 0 0 0 1 0 0 1 0
  10. // RVALID 0|0 0 0 1 0 0 1 0 1v1 0 1 0
  11. // RREADY 0|0 0 1 1 0 1 1v1 1v1v1 1 0
  12. // RREADY 0|0 0 1 1 0 1 1v1 1v1v1 1 0
  13. //
  14. // TimingChartEnd

こんな風に起動すると

tcv.jar axi_readburst.v

こんな出力が得られるソフトウェアを作りました。 TimingChartViewer.png

32bitWindows用実行ファイルの、操作デモもあります。

動作環境

  • Java(TM) SE Runtime Environment (動作は Windows7(x86_64)上のJava 1.6.0_27(64bit版) で確認しました)

使い方

リリース一覧から、TimingChartViewer_r???をダウンロードして、適当なディレクトリに展開してください。 中に入っているtcv.jarが実行ファイルとして動作します。

起動は、以下のように打ち込んでください。

<tcv.jarを置いたパス>\tcv.jar <ファイル名>
 または
java -jar <tcv.jarを置いたパス>\tcv.jar <ファイル名>

TimingChartViewerは、波形の記述が埋め込まれたVerilog HDLやVHDLのソースコードが与えられることを想定して開発されていますが、入力はテキストファイルであれば何でもかまいません。

ボタンとその動作

ボタン 動作
Reload ファイルを読み直します。 r245で廃止しました。ウィンドウがフォアグラウンドになると勝手にファイルを読み直します。
Copy 波形画像をクリップボードにコピーします。
PNG PNG形式の画像を、与えられたファイルと同一のディレクトリに出力します。

なお、ボタンにフォーカスがあたっている状態でスペースキーを押すと、マウスでボタンを押した場合と同じ効果があります。

制限など

  • 信号の変化点を前後にずらすことはできないので、非同期信号の記述には向きません。
  • クロックがHigh Activeであることが前提なので、クロックがLow Activeなタイミングチャートは表現できません。
  • r219 および r226 ではバスにHi-Zを記述するとエラーになります。バグですので、修正を予定しています。

複雑な波形を描かなければならない場合は、 タイミングチャート清書ツール などをご検討ください。

文法

サンプルが tcvsample.vhd にあります。

各行の形式は、バスでない1本の信号ならば

信号名 信号レベル|信号レベル 信号レベル ...
バスならば
信号名 信号レベル|信号レベル 信号レベル ... : コメント コメント ...
のように記述します。

1本の信号の場合は、キャラクタとして / 0 1 z x が使用できます。

バスの場合は、キャラクタとして x A B C ... Z が使用できます。

最初の信号レベルは、タイミングチャートに載る以前の信号レベルを意味します。 最初の信号レベルと次の信号レベルの間に|があるのは可読性を上げるためであり、空白と同様に扱われます。

vは、Highが連続するけれど瞬間的にLowになる波形、 ^ (ハット)は、Lowが連続するけれど瞬間的にHighになる波形、俗に言うヒゲを表現するために使用します。

バスの場合は、: (コロン) のあとにコメントを書きます。タイミングチャートの中で、Aがコロンのあとの最初の文字列、Bが二番目の文字列、Cが三番目の文字列、というように置換されます。

記述 意味 表示
TimingChart 解釈の開始行 -- TimingChart
TimingChartEnd 解釈の終了行 -- TimingChartEnd
/ クロック信号 -- CLK_I /|/ / / / CLK_I.png
\ 次の行に続く -- HOGE_I x|A x B : \
| 空白と同じ扱い -- FUGA_O 0|0 1 1 0
0, 1, z, x Low High HiZ 不定 -- A_I 0|0 1 z x 01zx.png
v 瞬間的にLow -- B_O 0|0 1v1 0 v.png
^ 瞬間的にHigh -- C_O 1|0^0 0 1 hat.png
A B ... : comment バスのコメント -- INST_I x|A B x A : LD MOV bus.png

リリース履歴(新しいもの順)

r245 自動リロードとパーサのバグ修正。ユーザには影響ないが、開発環境をEclipseに移行した。
r226 Javaで再実装。クリップボードへのコピー、正しい大きさのPNG画像出力、T0,T1,T2,...の表示を可能にした。
r219 Tclで実装した、最初のリリース。PNG画像出力機能がいまいち。

実装予定機能

  • ウィンドウがフォアグラウンドになると自動でリロードする
  • 0-1で滑らかに表示
  • バスのz対応
  • Negative CLK n|n n n
  • 1/2 clock周期 / _ / _ / _
  • テストベンチ OVLをクリップボードに吐く
  • 表示x,y位置の調整
  • 信号名と波形の間の空白を減らす