タイミングチャート清書ツール tchart(Jessie)

2015/10/22


タイミングチャート

タイミングチャートをきれいにかつ簡単に作る方法を探していた。
一時は表計算ツール(Microsoft Excelみたいなヤツ)を使ってみたが、マウスで罫線を指定するのが面倒だった。
できれば、テキストベースで「タイミングチャート記述言語」みたいなものを作成し、図を作ってくれるようなツールが欲しかった。
昔々、tchartを使ったことを思い出し、今一度探してみた。

インストール

ユーザ権限でインストールする。 tchartは東北学院大学 工学部 機械知能工学科 熊谷研究室様から(http://www.mech.tohoku-gakuin.ac.jp/rde/)からダウンロードする。
mkdir ~/TC;cd ~/TC
wget http://www.mech.tohoku-gakuin.ac.jp/rde/contents/library/tchart/tchart.pl
wget http://www.maibun.org/~nt/technicalnote/debian8/timingChart.sh
chmod 755 tchart.pl timingChart.sh

とにかく使う

  1. テキストエディタでソースコードを作る。拡張子は.tcに限定する。

    例:FF.tcとして保存する。
    @slant 0
    Q _~_~_~_~_~_~
    !Q ~_~_~_~_~_~_
    
  2. コンパイル
    ~/TC/timingChart.sh FF.tc
    #拡張子(.tc)は省略してもよい
    ~/TC/timingChart.sh FF
    
  3. 確認
    タイミングチャート(FF.png)が表示される。
    Timing Chart

ツールについて

tchart.plはEPS形式を出力する。TEXで使用するにはこれで十分だと思いが、他の用途を考えるとpng等に変換したい。
tchart付属の形式変換ツール(ps2img)は使用せず、convertで形式を変換(EPS→png)する。
毎回使用するので、コンパイル用スクリプト(timingChart.sh)に組み込む。

タイミングチャート記述言語

_,~等は信号レベルを表す。
"_":ローレベル
"~":ハイレベル(※)
"-":ハイ・インピーダンス(high-Z)
"=":2値もしくはバス信号
補助記号として縦線などを使用できる。
":":単位時間の空白を挿入
"X":バスの遷移を挿入
"|":縦線を挿入
パラメータ
例:@slant 0
パラメータ一覧
パラメータ (引数型式)説  明デフォルト
step [数値]1単位時間のチャート上での長さを規定。単位0.1ポイント。10
lineheight [数値]信号の高さを規定。単位0.1ポイント。10
lineskip [数値]信号の上下間隔(中心間)を規定。単位0.1ポイント。20
capwidth [数値]信号名の表示欄の幅を規定。単位0.1ポイント。40
slant [数値]信号遷移部の傾きを規定。0で鉛直、1で45度傾斜。0.3
signalline [文字列]信号を記述する線のスタイルを規定。PostScript型式。0 0 0 setrgbcolor 5 setlinewidth
borderline [文字列]外枠の線のスタイルを規定。PostScript型式。0.7 0.7 0.7 setrgbcolor 5 setlinewidth
gridline [文字列]縦線のスタイルを規定。PostScript型式。1 0 0 setrgbcolor 2 setlinewidth
capfont [文字列]信号名を書くフォントを指定。Helvetica(Arial)
strfont [文字列]信号中に書き込む文字列のフォントを指定。Helvetica(Arial)
rotate [0/1]EPS専用。1を指定すると図を時計回りに90度回転させる。0
bitmapmag [数値]tcbmp専用。ビットマップに変換する際に、1ポイントを何ピクセルにするかを指定。4

すばらしいツールを公開してくださいました、東北学院大学 熊谷氏に感謝します。
タイミングチャート清書ツール (http://www.mech.tohoku-gakuin.ac.jp/rde/contents/library/tchart/indexframe.html)