タイミング図は単なる視覚的チャート以上のものであり、デジタル信号がタイムライン上でどのように相互作用するかを理解するための設計図である。ハードウェア設計、ファームウェアのデバッグ、データ伝送プロトコルの分析を行っている場合でも、これらの図を正確に解釈できる力は根本的なものである。このガイドでは、タイミング図の構築と読み取りに必要なすべてのコンポーネントを分解し、正確な分析に必要な技術用語と構造的知識を確保する。
信号は孤立して存在しない。時計信号、データライン、制御信号と、同期した動きで相互作用する。1つのエッジや遅延値を誤解すると、システム障害につながる。この記事では、基本的な信号状態から複雑なタイミング制約まで、タイミング図の構造を詳細に解説する。

1. 基礎:軸と時間スケール ⏱️
すべてのタイミング図は座標系から始まる。明確な時間スケールがなければ、図は定性的なスケッチにすぎず、定量的なツールとはならない。
- 水平軸(時間): これは時間の進行を表す。通常、左から右へと流れます。単位は文脈によって異なり、秒、ミリ秒、マイクロ秒、ナノ秒、またはクロックサイクルなどが含まれる。
- 垂直軸(信号レベル): これは信号の状態を表す。通常は2値で、High(1)またはLow(0)を示すが、アナログ電圧レベルやマルチステート論理値を含むこともできる。
水平軸を設定する際には一貫性が重要である。グリッド線ごとに10ナノ秒のスケールを使用する場合、すべての信号がこのスケールに従わなければならない。これにより、イベント間の遅延や周期を正確に測定できる。
2. 信号線と識別 🔌
タイミング図の各水平線は特定の信号を表す。これらの線はシステム内の情報伝達の主な担い手である。
信号の命名規則
- 説明的な名前: 機能を説明する名前を使用する。たとえば、アドレスバス, データ有効、またはクロック有効.
- アクティブローの印: 低電位時にアクティブになる信号は、通常名前にバーを付けて表す(たとえば、チップ選択 またはnCS)またはアクティブローの記号を使用する。
- バスのグループ化: バスを表す複数の信号(たとえばData 0-7)は、幅を示すために、括弧やスラッシュでまとめてグループ化されることが多い。
信号トレース
トレースは、グラフ上の点を結ぶ線です。トレースの形状は、信号の動作を示しています。
- 定常線: 水平な線は定常状態を示します。高電位のままなら、信号は永続的にアサートされています。低電位のままなら、アサート解除されています。
- 段階的線: 電位間の垂直な遷移は、状態の変化を表します。理想的なモデルでは即時スイッチングを示すために、これらは直線的な垂直線として描くべきですが、現実の物理現象では遷移時間があります。
- ジグザグ線: これらは、不安定な遷移中に発生する可能性のあるノイズ、ギャップ、または高周波数の振動を表すことが多いです。
3. 信号の状態と論理レベル 🟢🔴
縦軸に表される論理レベルを理解することは、正しい解釈に不可欠です。
2値状態
- 論理高 (1): 縦軸の上部位置で表されることが一般的です。TTL論理では通常5Vです。CMOSでは供給電圧に近い値です。
- 論理低 (0): 縦軸の下部位置で表されることが一般的です。通常は0Vまたはグラウンドです。
特殊状態
- 高インピーダンス (Z): Hi-Zとも呼ばれます。この状態では信号がドライバから切り離され、バス上の他のデバイスがラインを制御できるようになります。しばしば破線または特定の「Z」ラベルで表されます。
- 無関係 (X): 信号の値が操作の結果に影響しないことを示します。しばしば「X」記号で表されます。
- 不明 (U): シミュレーション開始時に初期状態が定義されていない場合に使用されます。
4. 遷移とエッジ 📉📈
遷移は、信号が状態を変化する瞬間です。クロッキングおよびデータ整合性の観点から、タイミング図において最も重要な部分です。
立ち上がりエッジ
信号が低から高へ遷移するときに立ち上がりエッジが発生します。デジタル論理では、これはポジティブエッジトリガのフリップフロップのトリガとなることがよくあります。視覚的には上向きの垂直線で表現されます。
立ち下がりエッジ
信号が高から低へ遷移するときに立ち下がりエッジが発生します。ネガティブエッジトリガのデバイスはこの遷移に反応します。視覚的には下向きの垂直線で表現されます。
遷移時間
理想的な図では即時的な垂直線が描かれますが、実際の信号には有限の遷移時間があります。これは電圧が一つの論理しきい値から別のしきい値へ移動するのに必要な期間です。高速設計では、この時間が重要であり、信号がどれだけの帯域幅を消費するかを決定するからです。
5. クロック機構 ⚙️
クロックは操作を同期します。クロックがなければ、非同期システムはハンドシェイクに頼りますが、大多数の現代的なシステムはクロック信号を使ってデータ処理のリズムを定義しています。
クロック周期と周波数
- 周期 (T):クロック信号の1回の完全なサイクルにかかる時間(立ち上がりエッジから次の立ち上がりエッジまで)。
- 周波数 (f):1秒間に発生するサイクルの数で、ヘルツ(Hz)で測定されます。周波数は周期の逆数です(f = 1/T)。
デューティーサイクル
デューティーサイクルとは、1周期の間に信号がハイ状態である割合を指します。50%のデューティーサイクルは、信号が周期の半分はハイ、残りの半分はローであることを意味します。50%からのずれは、特定の論理ゲートのタイミングに影響を与えることがあります。
位相同期
マルチクロックシステムでは、クロック間の位相関係が重要です。2つのクロックは同じ周波数で動作しても、サイクル内の異なるタイミングで開始されることがあります。これは複数のクロックドメインを持つシステムにおいて特に重要です。
6. 時刻制約と遅延 ⏳
時刻制約は、信号が変化可能な許容範囲を定義します。これらの制約を違反すると、機能エラーが発生します。
セットアップ時間
セットアップ時間とは、クロックエッジの前にデータ信号が安定している必要がある最小時間です。データがクロックエッジに近すぎるように変化すると、受信デバイスが正しくキャプチャできなくなる可能性があります。
- 要件:データは立ち上がりエッジの前にXナノ秒間安定している必要がある。
- 違反時の結果:メタスタビリティまたは誤ったデータキャプチャ。
ホールド時間
ホールド時間とは、クロックエッジの後にデータ信号が安定したまま維持される必要がある最小時間です。これにより、データが確実にラッチされることが保証されます。
- 要件:データは立ち上がりエッジの後にYナノ秒間変化してはならない。
- 違反時の結果:データ破損またはレースコンディション。
伝播遅延
これは、信号がコンポーネントの入力から出力まで到達するまでにかかる時間です。物理的な経路や使用されるゲートの種類によって異なります。
スキュー
同じクロック信号が異なるコンポーネントに異なるタイミングで到達する場合にスキューが発生します。これは回路基板上のトレース長の違いによって起こる可能性があります。スキューは、有効なセットアップ時間およびホールド時間のマージンを減少させます。
7. データ符号化と有効性 📝
タイミング図では、データがクロック信号や制御信号に対して有効となるタイミングを示すことがよくあります。
データ有効ウィンドウ
バス上のデータが正確であることが保証される特定の期間があります。これは通常、クロックエッジと次のエッジの間、または制御信号のアサーションの間です。
符号化方式
- NRZ(非帰零):データは信号のレベルで表現されます。シンプルですが、データストリーム内にクロックが含まれていません。
- マーカンテイン符号化:各ビットはビット期間の中央での遷移で表現されます。これによりクロック回復が可能になります。
- 4B/5B:クロック回復に必要な十分な遷移を確保しつつ効率を維持するために使用されるブロック符号化方式です。
8. 時系列図の種類 📑
異なる文脈では、異なるスタイルの時系列図が必要です。
同期型時系列図
これらはマスタクロックに大きく依存しています。すべてのイベントはクロックエッジを基準としています。これにより、タイミングが予測可能で周期的であるため、解析が容易になります。
非同期型時系列図
これらはグローバルクロックに依存しません。イベントは前のイベントの完了(ハンドシェイキング)によってトリガーされます。イベント間の時間は可変であり、処理速度やネットワーク遅延に依存します。
プロトコル時系列図
これらは、I2C、SPI、UARTなどの2つのデバイス間の通信ルールに焦点を当てます。開始ビット、停止ビット、データビット、およびアックノリッジメント信号を定義します。
9. 一般的な記号の要約 📋
以下の表は、時系列図の可読性と一貫性を向上させるために使用される標準的な記号を要約しています。
| 記号 | 意味 | 使用状況 |
|---|---|---|
| ↗ | 立ち上がりエッジ | 正論理エッジトリガー論理 |
| ↘ | 立ち下がりエッジ | 負論理エッジトリガー論理 |
| ___ | 論理ロウ(0) | グラウンドまたは非アクティブ状態 |
| ___ | ロジックハイ(1) | VCCまたはアクティブ状態 |
| ~ | アクティブロー | 信号はローのときにアクティブ |
| X | 気にしない | 値は論理に影響しない |
| Z | ハイインピーダンス | 双方向バスの浮遊 |
| ⇨ | プロパゲーション遅延 | 入力変化と出力変化の間の時間 |
| ⏰ | クロックエッジ | 同期ポイント |
10. ドキュメント作成のベストプラクティス 📝
他人が理解できるタイミング図を作成するには、標準に従うことが必要です。ドキュメントが不十分だと、エンジニアリングの誤りが生じます。
- 一貫したスケーリング: 時間スケールが線形であることを確認してください。明確な指示がない限り、一方のセクションで時間を圧縮し、別のセクションで拡大しないでください。
- 明確な注釈: 複雑な相互作用を説明するためにテキストノートを追加してください。図が線だけに頼ると、混雑してしまうことがあります。
- 関連する信号をグループ化: 密接に相互作用する信号を縦方向に並べて配置してください。これにより、関係を理解するために必要な視線の移動が減ります。
- 重要なポイントをマーク: ライズ時間とホールド時間を明確に強調してください。有効な時間窓を示すために、カッコや陰影付き領域を使用してください。
- バージョン管理: デザインが変更されたら、図を直ちに更新する。古くなったタイミング図は、何も図がないよりも悪い。
11. よくある落とし穴と誤解 ⚠️
経験豊富なエンジニアですらタイミング図を誤読することがある。よくある誤りに注意することで、検証がしやすくなる。
曖昧な遷移
一部の図では、垂直でない遷移を描いている。線が傾いている場合は遷移時間があることを意味する。垂直の場合は即時変化を意味する。使用しているモデルを明確にすること。
文脈の欠如
信号がハイになる図は、何がそれをトリガーしているかが分からないと無意味である。データ信号が変化する原因となる制御信号を常に含めるべきである。
スケールの混乱
複数の図で同じスケールを前提とするのはよくある誤りである。図Aがマイクロ秒を、図Bがクロックサイクルを用いている場合、変換せずに直接比較してはならない。
ゴーストの無視
短いパルス(ゴースト)は、明確さを保つためにしばしば省略される。しかし、高速回路では、これらのゴーストが誤動作を引き起こすことがある。ゴーストがフィルタリングされているか無視されているかを常に明記する。
12. デバッグにおける実践的応用 🔍
タイミング図は、同期問題をデバッグするための主なツールである。システムが故障した際、図はタイミング制約がどこで違反されたかを特定するのに役立つ。
ステップバイステップでのデバッグ
- クロックを特定する:障害が発生したサブシステムの基準クロックを特定する。
- データの安定性を確認する:クロックエッジに対して、セットアップ時間およびホールド時間の間にデータラインが安定していることを確認する。
- 遅延を測定する:オシロスコープを用いて実際の伝播遅延を測定し、図の仕様と比較する。
- スキューを分析する:クロック信号が、異なるチップに異なるタイミングで到着しているかを確認する。
- 制御信号を確認する:データ転送が開始される前に、有効信号が正しくアサートされていることを確認する。
13. 高速設計における将来の考慮事項 🚀
技術が進歩するにつれて、タイミング図に対する要件がより厳しくなる。
- ジッター:非常に高い周波数では、クロックエッジ自体がずれることもある。タイミング図はジッターの余裕を考慮しなければならない。
- 電源管理:動的電圧・周波数スケーリング(DVFS)は、実行中にタイミングパラメータを変更することができる。図は動作モードを反映しなければならない。
- マルチドメインシステム:現代のチップはアナログ、デジタル、RFセクションを統合しています。タイミング図はこれらのドメインがどのようにインターフェースするかを示す必要があります。
14. 他のドキュメントとの統合 📚
タイミング図は単独で成立するものではありません。他の技術文書と統合されたときに最も効果を発揮します。
- 回路図:タイミングパスを構成する物理的な接続を示します。
- ステートマシン:タイミング信号を駆動する論理的なフローを示します。
- レジスタマップ:タイミング動作を決定する設定を示します。
15. シグナルインテグリティに関する最終的な考察 🛡️
タイミング図の構成要素を理解することは、シグナルインテグリティにとって不可欠です。抽象的な論理と物理的な現実の間のギャップを埋めます。時間、状態、エッジの要素を習得することで、エンジニアは堅牢で信頼性の高いシステムを設計できます。
タイミング図はハードウェアとソフトウェアの間の契約であることを思い出してください。これはエンゲージメントのルールを定義します。ハードウェアがタイミングルールに従わない場合、ソフトウェアは正しく動作できません。したがって、これらの図における正確さは単なる好みではなく、必須です。
シンプルなLEDの点滅を分析している場合でも、複雑なマルチギガビットデータストリームを分析している場合でも、構成要素は同じです。エッジに注目し、遅延を尊重し、ドキュメントの明確さを保ちましょう。このアプローチにより、設計が明確で検証可能かつ成功するようになります。