電子機器の高機能化を支えるために半導体チップは年々大規模化しています。数千万個~数億個のトランジスタが一糸乱れず働くように仕組まねばならない、と考えると、半導体設計の難しさの一端が想像できます。設計の複雑化に対処する方法として設計の階層化が進んできました。設計の階層化とは本質的にはひとつの仕事を複数の人で分担することを意味します。今日の多くのIT機器の開発プロジェクトにおいて、全体の設計は、チップ設計者・パッケージ設計者・ボード設計者の3名で分担して進められます。これら3名は実際には3チームであり、大企業の3部門であったり、あるいは3つの専門企業だったりします。階層設計を進める際、チップ-パッケージ間及びパッケージ-ボード間の階層間インタフェイスの信号やり取りについて取り決めを定めた後は、チップ・パッケージ・ボードそれぞれの内部について、3チームがそれぞれ専門性を発揮して効率的に設計を進めることができます。

階層設計を進める際の最大の課題は、分担を決める前段階にあります。システムには大規模化とともに高速化が求められ、信号の高速化は信号自身の流路の迂回や周囲信号の影響に対して大変敏感になるほどまで追求されているので、階層間インタフェイスを安易に取り決めてしまうと高速信号が全体として動作しない事態に陥ってしまうからです。高速信号を正しく動作させるためには、階層を素通しで見て、階層間インタフェイスを定める必要が出てきました。

以下本文では、簡単な例題プロジェクトを題材に取り、実際の操作フローをご紹介します。全体の接続関係の管理という観点についても触れています。ツールとしては、超階層設計機能を持ちかつ操作が簡単なGemPackageを用いています。