連載
» 2010年08月09日 00時00分 公開

FPGA Watch(3):意外とよく似ているASICとFPGAの開発フロー (2/2)

[堀内 伸郎 日本アルテラ株式会社,@IT MONOist]
前のページへ 1|2       

タイミング条件設定と検証手法

 FPGAの設計において、特にASIC設計者が厄介と感じているのは、タイミング条件の設定や検証手法ではないでしょうか。

 もし、設計(論理合成、配置配線)の際の条件設定や設計結果の検証で、FPGA特有の手法やツールを習得する必要があるとすれば、設計者の負担はとても大きくなるので、できれば避けたいと考えるのは当然でしょう。また、FPGAのタイミング設定手法や検証ツールでは、複雑なタイミング条件の設定や検証ができず、重大なタイミングエラーを見落としてしまうという問題を指摘する声もあります。この問題はFPGA業界全体で見ると、現在でも完全には否定できません。

 ただし、ASIC設計でデファクトとなっているSDC(Synopsys Design Constraints)の表記を用いたタイミング設定と検証をサポートしているツールもあります(注)。こうしたツールを使用することで、ASIC設計者の負担を軽減し、かつ複雑なタイミング解析を正しく行うことが可能です。数十nmという微細プロセスを用いたFPGAを活用し開発を成功させるためには、SDCベースのツールは必須と考えるべきでしょう。

※注:代表的なものにアルテラのQuartus IIがあります。


 なお、タイミング検証・解析には、スタティックタイミング解析の手法を用います。使うツールは異なっても、SDCベースであれば手法としてはASICと同一です。

FPGA開発ソフトウェアツールを用いた設計 図2 FPGA開発ソフトウェアツールを用いた設計(アルテラの「Quartus II」の例)

タイミング設計の難易度

 タイミング設計が確実に行えるかどうかは、誤動作しないシステムを作ることと同時に、開発を早く完了させることに大きくかかわってきます。その重要な要素の1つがクロック設計です。

 ASIC設計では、論理合成や配置配線のステップで、「クロックシンセシス」あるいは「クロックツリーコンパイル」という手法によって、クロックの負荷分散やスキュー調整を行います。この調整が実は簡単ではなく、配置配線の前後での差異が大きくなって、やり直しを何度も行うことがあります。

 FPGAの場合は、あらかじめ数多くの階層的なクロックツリーが配線済みとなっており、負荷、スキュー、クロストークなどの問題はすべてクリアになっているので、クロック設計に関する設計収束がより迅速になります。

 クロック以外の遅延についても、FPGAでは論理合成と配置配線を密接(同時)に実施するため、ASICのような配置配線前後でのやり直しに必要な時間を大幅に削減できます。ASICの場合は、ASICベンダとのやりとりの繰り返しも加わるのでこの時間は甚大です。

 非同期タイミングの検証もシミュレーションに加えて、実機検証をすぐにできるのがFPGAの利点です。この点でも時間と失敗のリスクを低減できます。


複雑で困難なシステム設計を容易にする仕組み

 高機能・高性能な最先端のFPGAには、最新の高速インターフェイスや複雑なタイミング管理が必須となっています。FPGAに限らず、例えば高速なDDRインターフェイスの設計や複数のクロックドメイン間のタイミング調整などに携わったことのある設計者の皆さんは、特にこの難度を十分お分かりになると思います。

 そのため、FPGAが高性能になったことが理解できても(いや理解すればするほど)、その設計の複雑さ・困難さに頭を痛めるのではないでしょうか。ASIC設計の経験者であればなおさら痛感されることでしょう。逆に、「FPGAで簡単にできるはずがない」と思われるかもしれません。

 ところが、FPGAは複雑で困難を極めるようなシステム設計を容易にしてしまう仕組みが実装されているのです。それにより、設計者の設計期間を短縮させ、設計者やその企業のコアコンピテンシーにかかわる開発に、より多くの時間を割り当てることを可能にします。

 例えば、FPGAに実装済みのPLL(Phase Locked Loop)回路は、幅広い設定範囲で多種類の異なる位相や遅延を持つクロック信号を生成でき、これをFPGA内部や外部で使用できます。また、DDRメモリインターフェイスの制御回路も実装済みのFPGAであれば、タイミング制約が厳しいDDRインターフェイスを外部条件の変化にも適応しながら容易に設計できます。別の例としては、シリアルトランシーバのシグナルインテグリティの改善もツール内で最適な条件を確認・設定できますし、FPGA製品によっては、オンザフライで設定変更することも可能です。

 このようなFPGA特有の回路や機能については、最低限の知識の習得が必要になりますが、その習得のために費やす時間よりももっと大きな利益 ――開発負担の軽減、開発期間の短縮―― という結果が得られることでしょう。



 今回は、FPGAの現在の開発ソフトウェアと開発環境について、FPGA初心者の方やASIC設計経験者の方を意識して紹介しました。FPGA初心者の方でもすぐに取り掛かれるということ、そしてASICユーザーの方はこれまでの経験をFPGA設計で生かせるということがご理解いただけたのではないでしょうか。もちろん、FPGA特有の機能(仕組み)については、最低限の知識(学習)が必要ですが、開発ソフトウェアもそれをアシストしてくれますので安心してください。

 次回は、引き続き「FPGAの開発環境」について紹介します。(次回に続く)


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.