細かいところは文法をみて頂くとして(一度は一通り目を通してください)、ここでは概要について述べたいともいます。
本ツールでは時間を「単位時間」と呼ぶ一定の間隔で区切り、その単位時間毎に信号のレベルを規定する、という型式で作図していきます。信号の定義で「_」「~」「-」「=」の4文字のいずれかを書くことで、1単位時間がローレベル・ハイレベル・ハイインピーダンス・ハイもしくはロー(High-Zではないが任意)/バス(複数の信号の合成)として表記されます。
基本はそれだけで、それにバスの遷移を表す「X」などを追加したり、適当に文字列を書き込んで、信号に注釈や、バスの値を書き込んだりします。
まず、原稿は原則として半角英数文字と記号で書きます。1行毎に独立していて、その構造によって、信号を記述する行、パラメータを設定する行などがあります。
「@」で始まる行はパラメータを設定する行で、1単位時間を清書した図の上でどれだけの幅にするか、行間をいくらにするかなどを規定します。
空白文字(タブ・スペースなど)で区切られる行は、前半を信号の名前とし、後半をその信号の時間変化として解釈して、上記の記号が出てきた順番に、時間を追ってレベルを規定していきます。
例:
Clock _~_~_~_~_~_~
文法と以下の実例を見て頂ければ、簡単に図が書けるようになると思われます。実例は文法を読んだことを前提にしている記述もありますが、まずは図とその原稿の対応をご覧ください。
本ツールを用いて、タイミングチャートの編集ができるのは、原則として最終出力に似た形で原稿が書けるためです。 信号のレベルだけを書いているうちは、容易に出力図がイメージできますが、それに文字などを書き込み始めると信号間で時間がずれてきます。そのため、図を書く際は
以下の実例では、キーとなるポイントや実際に作図したときの様子なども記載しておきましたので参考にしてください。
出展(修正あり):トランジスタ技術誌2002年9月号 140ページ 図1-2
ポイント:
# From Transistor Gijutsu 2002/9 P140 Fig 1-2 @slant 0 Clk _~_~_~_~_~_~_~_~_~_~_~_~_~_~_~ Sync _~~__________~~__________~~___ G_Out =X5=X0=X1=X2=X3=X4=X5=X0=X1=X2=X3=X4=X5=X0=X G_LD _~~__________~~__________~~___ --- : NG_D_FF ___~~__________~~__________~~_ NG_LD _~~~~________~~~~________~~~~_ NG_Out =X4=X0=X0=X1=X2=X3=X4=X0=X0=X1=X2=X3=X4=X0=X
$B869F%U%!%$%k(B
(tragi_1_1.tc, 269 bytes, modified 2003/08/17)
Clk _~_~_~_~_~_~_~_~_~_~_~_~_~_~_~ Sync _~~__________~~__________~~___ G_Out =X=X=X=X=X=X=X=X=X=X=X=X=X=X=X G_LD _~~__________~~__________~~___ NG_D_FF ___~~__________~~__________~~_ NG_LD _~~~~________~~~~________~~~~_ NG_Out =X=X=X=X=X=X=X=X=X=X=X=X=X=X=X
出展(修正あり):トランジスタ技術誌2002年9月号 209ページ 図12
ポイント:
# From Transistor Gijutsu 2002/9 P209 Fig12 @slant 0 @step 3 EFM ~~|____|~~~~|________|~~~~|____ MainB ~~______~~___________~____ SideB ~~_____~~~__________~~____作図の手順(調整も含めて5分未満):
出展(修正あり):MAXIM社 308ksps ADC MAX121 データシート Figure 8
ポイント:
# MAXIM MAX121 ADC Datasheet Figure 8 (Mode 2) @slant 0.4 @step 8 CS ~~|__________::___________________~~~~ CLKIN ===__|~~__~1~_::_~13~__|~14~__~15~__~16~__~17~__== #CLKIN ===__~~__~~_::_~~__~~__~~__~~__~~__== SFRM ---~~~~~~~__::__________________~~--- FSTRT ---___~~~~__::_____________________-- SCLK ---~__~~__~1~_::_~13~__~14~__~15~__~16~__~17~--- #SCLK ---~__~~__~~_::_~~__~~__~~__~~__~~--- #SDATA ---_______===::=X===X===__________--- SDATA ---_______=MSB==::="_>_D2 "X=D1==X=LSB==__________--- T/H ___~~~~~~~~~~::~~~~__________________作図の手順(調整も含めて5〜10分くらい):
# MAX121 control circuits timing (major) @step 6 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____==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::::$B869F%U%!%$%k(B
# MAX121 control circuits timing (minor) @step 6 Clock66M ~_~_~_~_|~_~_~_~_~_~_~_~_~_~_~_~_|~_~_~_~_~_~_~_~_~_~_~_~_|~_~_~_~_~_~_~_~_~_~_~_ #CLKIN ______~~~~~~~~~~~~____________~~~~~~~~~~~~____________~~~~~~~~~~~~______ Start ______~~====================================================================== 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__________________________============MSB============X= SAMPLE ________________~4~O______________________~4~O______________________~4~O____________作図の手順:
(※)回路はALTERA社のFLEX6Kシリーズ上で実装していて、設計はMAX+plus Baselineを使用しています。これには「DFFE」という便利なプリミティブがあって、愛用しています。Enable付きのDFFなのですが、クロックにはメインのクロックを常に入力し、Enableには信号の遷移条件、CONVSTでいえば Major=0 and (Minor=0 or 6)を入れ、Dには信号の立ち上げ条件(Major=0 and Minor=6)を入れます。こうすると割とすっきりと書けます。