ディジタル回路用タイミングチャート清書ツール


概 要

ディジタル回路を設計する場合、組み合わせ回路であれば真理値表ですみますが、 (同期)順序回路などの時間軸がかかわってくる設計をする場合、タイミングチャートが 必要となってきます。概念設計のために落書きしているうちはいいのですが、 文書化したり、人に見せるために書こうとおもっても、単純な図の割には、 手間がかかります。

実際、最近、研究用装置のためのディジタル回路をCPLD上に実装しているのですが、 複雑になるにつれ、直感での設計が困難になってきて、まじめにタイミングをきめてから 回路図を引いたほうが効率がいいことに気づきました。その効率化のために、 簡易タイミングチャート清書ツールをつくりましたので、公開します。


処理のながれ

つくったのは とある形式でそれっぽく書いたテキストファイルから、PostScript(EPS) に 清書・変換する Perl のプログラムです。

 PerlScript ダウンロード(02/08/13)
 ダウンロード→chmod +x tchart.pl→必要ならパス修正→
 ./tchart ソースファイル (出力ファイル)

 試験公開 Win32 exeBorlandC++でコンパイルするまえのCPPソース(02/08/13)
 ダウンロード→適当なフォルダに→
 1:cmd.exe上で tchart.exe ソースファイル 出力ファイル
 2:tchart.exe にソースファイルをドロップ(拡張子をepsにして出力)

 BMPファイルを直接生成 for Win32 試験公開CPPソースtcbmp用サンプル(02/08/13)
 1:tcbmp.exe と tchart.exe を同一フォルダに入れる
 2:tchart.exe の出力EPSもしくは 原稿ファイル(.tc)をドロップ
   →拡張子 bmp でファイル生成
※ tcbmp.exe 実行時にコマンドが見つからないといわれたら、tcbmp.exe のショートカットを作り、その作業フォルダを .exe の格納フォルダに 設定

一応、AdobeのIllustrator 8.0 で読み込め、グループ解除すると編集できることも確認しました。 ただ、Perlとは何ぞ、EPSとは何ぞ、という方もいらっしゃるかと思いますので、CGI で ラッピングして、WWW経由で利用できるように試験公開してみます。
(予期せぬサーバ過負荷などの場合にはお断りなく機能制限などを加えます)

タイミングチャートオンライン生成

使い方は、上のフォームに以下の文法にしたがってタイミングチャートのソースを記述してください。 その後、「変換」を押すと下のフォームにEPSが出力されます。また「テキスト」を押すと、 テキスト形式で出力されます(ブラウザで「戻る」しなければなりません)。
横幅(1-1024pixel)を指定した上で、「GIF」ボタンを押すと、タイミングをGIFファイルで表示します (ブラウザによっては キャッシュされてしまう場合があるので再読み込みなどをお試し下さい& 名前をつけて保存、をするとゴミが保存されることがあるので、そのときは一旦戻って 「最新の画像」を拾ってください)。


文 法

※ 下の例と見比べるとわかりやすいかと。

実 例

実例として、MAXIM社のADC、MAX121を駆動するためのタイミングを設計をした例を 示します(クロック仕様:66MHz, オンライン版にコピー&ペースト可能)。
# MAX121 on clock 66MHz
@step 6
@lineheight 10
@lineskip 20
@capwidth 40

Clock66M 	~_~_~_~_|~_~_~_~_~_~_~_~_~_~_~_~_|~_~_~_~_~_~_~_~_~_~_~_~_|~_~_~_~_~_~_~_~_~_~_~_
#CLKIN 	______~~~~~~~~~~~~____________~~~~~~~~~~~~____________~~~~~~~~~~~~______
Start	______~~X=====================================================================
Minor	=B=======X0=X1=X2=X3=X4=X5=X6=X7=X8=X9=XA=XB=X0=X1=X2=X3=X4=X5=X6=X7=X8=X9=XA=XB=X0=X1=X2=X3=X4=X5=X6=X7=X8=X9=XA=
Major	=15=======X===========0============X===========1============X===========2==========
ConvST	~~~~~~~~~0~_1__________6_~7~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# ConvST ↓- CLKIN ↑ MIN50ns
CLKIN 	_________________4_~5~~~~~~~~~~A~_B___________~~~~~~~~~~~~____________~~~~~~~~~~~~
# CLKIN - SCLK MAX80ns
SCLK 	____________________________~~~~~~0~~~~~~____________~~~~~~1~~~~~~____________~~
SDATA   __________________________Dummy__________________________X===========MSB============X=
SAMPLE  ________________~4~O______________________~4~O______________________~4~O____________
# MAX121 major
@step 6
@lineheight 10
@lineskip 20
@capwidth 60

Start	___~==============================================================______
Major	==15==X=0==X=1==X=2==X=3==X=4==X=5==X=6==X=7==X=8==X=9==X=10==X=11==X=12==X=13==X=14==X=15======
ConvST	~~~~__~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CLKIN	______~~__~~__~~__~~__~~__~~__~~__~~__~~__~~__~~__~~__~~__~~__~~__~~____
SCLK	_______~~__~~__~~__~~__~~__~~__~~__~~__~~__~~__~~__~~__~~__~~__~~__~~___
SDATA	_______Dummy____X=13==X=12==X=11==X=10==X=9==X=8==X=7==X=6==X=5==X=4==X=3==X=2==X=1==X=0==_____
Sample	:::::|O::::|O::::|O::::|O::::|O::::|O::::|O::::|O::::|O::::|O::::|O::::|O::::|O::::|O::::|O::::|O::::

まとめ

これがどの程度役に立つか全く不明なのですが、なれると 適当に手書きするよりも、かなり早くなります。 ただのテキストであるためコピー&ペーストが楽です。また、ある程度細かいタイミングは、 きちっと書かないと誤解の元ですが、これも適当に文字をならべるだけでいいので、楽ですし、 「あ、ずれた」という場合にもすぐに対処できます。

ちょっと試してみる場合にはオンライン版で、頻繁に使いそうな場合は、ダウンロードして、 動くようにするとよいでしょう。出力がPSですので、ghostscript, ghostview などを ご用意下さい(Redhat系Linuxなら一式そろっているので、chmod+x 程度でそのまま動きます、 GIF化は特殊な独自開発ツール(未公開)をつかっているので、ダウンロード版には付属しません)。

なお、お約束ですが、「本ソフトウェア、サービスは無保証です。動作を保証するものでは ありませんし、これにより生じた障害の責任を熊谷はとりません」。

不審点は「あな。」付属のチャットでご質問下さい。


by くまがいまさあき、 →くまがいページリング
※このシステムは研究活動の一環で開発されました。 「論文にもならない成果はWEBで公開しよう」ポリシーに基づいて公開しています。 →Next?