= !TimingChartViewer = こんな風にソースコードに書いて、 {{{ code c++ // TimingChart // // ACLK /|/ / / / / / / / / / / / / // ARADDR x|A A B B x x x x x x x x x : A B // ARVALID 0|1 1v1 1 0 0 0 0 0 0 0 0 0 // ARREADY x|0 1 0 1 x x x x x x x x x // RDATA x|x x x A x x B x C D x E x : \ // D(A0) D(A1) D(A2) D(B0) D(B1) // RLAST 0|0 0 0 0 0 0 0 0 1 0 0 1 0 // RVALID 0|0 0 0 1 0 0 1 0 1v1 0 1 0 // RREADY 0|0 0 1 1 0 1 1v1 1v1v1 1 0 // RREADY 0|0 0 1 1 0 1 1v1 1v1v1 1 0 // // TimingChartEnd }}} こんな風に起動すると {{{ tcv.jar axi_readburst.v }}} こんな出力が得られるソフトウェアを作りました。 [[Embed(TimingChartViewer.png)]] == 動作環境 == * Java(TM) SE Runtime Environment (動作は Windows7(x86_64)上のJava 1.6.0_27(64bit版) で確認しました) == 使い方 == [http://sourceforge.jp/projects/noodlybox/releases/ リリース一覧]から、!TimingChartViewer_r???をダウンロードして、適当なディレクトリに展開してください。 中に入っているtcv.jarが実行ファイルとして動作します。 起動は、以下のように打ち込んでください。 {{{ <tcv.jarを置いたパス>\tcv.jar <ファイル名> }}} !TimingChartViewerは、波形の記述が埋め込まれたVerilog HDLやVHDLのソースコードが与えられることを想定して開発されていますが、入力はテキストファイルであれば何でもかまいません。 ボタンとその動作 || ボタン || 動作 || || Reload || ファイルを読み直します。 || || Clip || 波形画像をクリップボードにコピーします。 || || PNG || PNG形式の画像を、与えられたファイルと同一のディレクトリに出力します。 || なお、ボタンにフォーカスがあたっている状態でスペースキーを押すと、マウスでボタンを押した場合と同じ効果があります。 == 制限など == * 信号の変化点を前後にずらすことはできないので、非同期信号の記述には向きません。 * クロックがHigh Activeであることが前提なので、クロックがLow Activeなタイミングチャートは表現できません。 * r219 および r226 ではバスにHi-Zを記述するとエラーになります。バグですので、修正を予定しています。 複雑な波形を描かなければならない場合は、 [http://www.mech.tohoku-gakuin.ac.jp/rde/contents/library/tchart/indexframe.html タイミングチャート清書ツール] などをご検討ください。 == 文法 == サンプルが [http://sourceforge.jp/projects/noodlybox/svn/view/trunk/doc/tcvsample.vhd?view=markup&root=noodlybox 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 /|/ / / /}}} || [[Embed(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}}} || [[Embed(01zx.png)]] || || {{{v}}} || 瞬間的にLow || {{{-- B_O 0|0 1v1 0}}} || [[Embed(v.png)]] || || {{{^}}} || 瞬間的にHigh || {{{-- C_O 1|0^0 0 1}}} || [[Embed(hat.png)]] || || {{{A B ... : comment}}} || バスのコメント || {{{-- INST_I x|A B x A : LD MOV}}} || [[Embed(bus.png)]] ||