特集
» 2008年08月01日 00時00分 UPDATE

マルチクロックドメイン設計の落とし穴 (1/3)

複数のクロックドメインを利用するSoCには、設計者が見落としがちな注意点がある。それに気付かずにチップを作ってしまうと、なぜ問題が起きているのかを究明することすら難しくなる。そうした落とし穴の存在を認識しつつ、適切な設計手法とEDAツールを適用することにより、チップの再試作を回避し、市場投入までの時間のロスを防ぐことが可能になる。

[Shaker Sarwary(米Atrenta社),Saurabh Verma(米Atrenta社),EDN]

マルチクロックドメインの問題点

 最新のSoC(system on chip)には何種類ものクロックが存在し、その多くは非同期である。こうしたSoCでは、異なるクロックドメインをまたぐ(CDC:clock domain crossing)部分で、機能的障害を引き起こす検出困難な問題が起きる可能性がある。メタスタビリティ(準安定状態)や一貫性などに関する問題は、シミュレーションや静的タイミング解析では検出されないことが多い。そのため、チップにバグとして問題が残ってしまう。

 残念ながら、このようなクリティカルなCDCの諸問題について適切に論じた文献はほとんどない。そのため、設計者は、大きな誤ちを犯して初めてこの問題について学習するということになる。

 CDCに関するクリティカルな問題はいくつかある。イネーブル信号をベースとした同期の仕組みにおけるデータ/イネーブル信号間の不適切なシーケンス、グリッチ、データ信号の一貫性に関する不適切なシーケンスといったことである。

イネーブルベースの同期

 フリップフロップの出力は、データ/リセット信号のセットアップ/ホールド時間の制約に違反するとメタスタビリティの状態に陥ることがある。この状態は、データの送り側と、データを受け取るフリップフロップが非同期のクロックドメインに存在する場合に発生する。このようなメタスタビリティ状態を避けて下流の論理回路にきれいな信号を供給するために、シンクロナイザが使われる。シンクロナイザは、フリップフロップを利用した簡単なものでよい。

 クロックドメインをまたいでデータを転送するときは、まずデータがセットアップされ、次にデータを捕捉(キャプチャ)するために、転送先のドメインと同期をとるための制御信号が伝送される。クロックドメインをまたぐこのデータ転送手法は、よく使われる実証済みの技術である。ただし、注意すべき落とし穴がある。

 この技術では、イネーブル信号をアサート(有効に)する際にデータが安定していなければならない。セットアップしたいデータと、イネーブル信号をアサートするタイミングのマージンが小さ過ぎると、データ転送に失敗する可能性がある(図1)。これを防ぐ方法は、データのセットアップ時にフルハンドシェイクを行うことである。つまり、転送先ドメインに要求をアサートして同期をとり、次のデータのロードが生じるようにACK(acknowledge)を適切にアサートする。これによって、(数サイクル分の遅延が生じるかもしれないが)機能的な障害は回避できる。

図1クロックドメインをまたがるデータ転送 図1クロックドメインをまたがるデータ転送
       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

RSSフィード

EDN 海外ネットワーク

All material on this site Copyright © 2005 - 2017 ITmedia Inc. All rights reserved.
This site contains articles under license from UBM Electronics, a division of United Business Media LLC.