IPコアとは
IPコア(Intellectual Property Core)は、LSI(大規模
集積回路)を構成する機能単位でまとめられた回路情報のことで、再利用を目的としています。単にIPとも呼ばれます。
ASIC(特定用途向け
集積回路)や
FPGA(
プログラマブルロジックデバイス)の開発において、設計の効率化に大きく貢献します。
1990年代以降、
ハードウェア記述言語を用いたLSI開発が主流となるにつれて、開発効率の向上が強く求められるようになりました。そこで、既存の回路設計を機能ブロック単位で再利用可能な形にまとめ、他の製品にも流用する手法が一般的になりました。この再利用可能な機能ブロックがIPコアとして普及し、開発者間や企業間で取引されるようになり、新たなビジネスモデルが生まれました。IPコアベンダーはLSI開発に必要なIPコアを提供し、LSI開発側はそれを使用するためにライセンス料を支払うという契約が一般的です。
IPは元来「知的財産」を意味しますが、半導体業界では回路情報が重要な技術製品であるため、形のない商品としてIPと呼ばれるようになりました。
IPコアの形態
IPコアは、その提供形態によって大きく分けて「ハードマクロ」と「ソフトマクロ」の2種類があります。
ハードマクロ
ハードマクロは、マスクデータとして提供されるIPコアです。シミュレーション用の等価ゲートモデルやビヘイビアモデルも同時に提供されることが多く、半導体プロセス技術に依存します。ソフトマクロと比較して、性能や面積の面で優れており、スタンダードセルでは実現できない回路(アナログ回路など)も含むことができます。
しかし、
プログラマブルロジックデバイスでは基本的に利用できません。ただし、
FPGAにあらかじめ組み込まれているハードマクロや、ストラクチャード
ASICに組み込まれているハードマクロもあります。実チップでの実績が豊富で、十分に検証されている可能性が高いというメリットがあります。
ソフトマクロ
ソフトマクロは、RTL(Register Transfer Level)の形で提供されるIPコアです。ユーザーは、自身のターゲットプロセスに合わせて論理合成を行うことができます。ハードマクロとは異なり、半導体プロセス技術に依存しません。
回路構成がわかるため、トラブル発生時の解析が容易であり、RTLレベルでのカスタマイズも可能です(ただし、商用IPコアの場合はサポート対象外となることがあります)。また、RTLレベルから論理合成されたネットリストの形で提供されることもあり、これは提供側がオリジナルのRTLを公開したくない場合に用いられます。この場合、ユーザーはIPコア内部の変更が基本的にできません。さらに、RTLより上位のビヘイビア記述の形で提供されることもあります。プロセッサコアの場合を特にソフトプロセッサといいます。
商用IPコアの他に、フリーで配布されているIPコアも存在します。
IPコアを利用する長所と短所
長所
開発期間の短縮: IPコアを利用することで、回路設計を最初から行うよりも大幅に開発期間を短縮できます。
プロセス非依存性: ソフトマクロの場合、半導体プロセス技術に依存しないため、様々なプロセスでの利用が可能です。
短所
品質と信頼性: IPコアによっては、詳細な設計仕様や検証結果が十分に提供されない場合があります。導入前に仕様や検証内容をしっかりと確認する必要があります。
接続性: 既存の回路にIPコアを組み合わせる際、仕様の確認ミスによって接続部分で問題が発生する可能性があります。
ハードマクロの制約: ハードマクロのIPコアは、特定の半導体プロセス技術に依存するため、異なるプロセスでは利用できません。
高額なライセンス費用: IPコアのライセンス契約には、導入時の一括契約金や量産製品ごとの契約金が発生する場合があります。契約形態によっては両方が必要な場合もあります。サポート体制なども含めて、コストがかさむ場合があるため、商用IPコアの利用は慎重に検討する必要があります。
IPコアの機能例
IPコアは、
デジタル回路だけでなくアナログ回路も存在します。
CPU(ソフトマクロのものはソフトプロセッサ、ハードマクロのものはハードプロセッサ)
DSP (デジタル信号処理)
CPU周辺回路(タイマー、DMA、割り込み制御など)
メモリ(
フラッシュメモリ、SRAM、DRAMなど):基本的に半導体プロセス技術依存で、フルカスタム
ASICでのみ利用可能
通信I/F(UART、SPI、I²C、USB、イーサネットなど)
バスI/F(PCI、
PCI Express、AHBなど)
基本算術演算(浮動小数点演算、FFTなど)
暗号化/復号(AES、DES、RSAなど)
動画・画像処理(静止画CODEC、動画CODEC、画像認識など)
音声処理(音声CODEC、音声合成など)
アナログ回路
AD/DA変換
オペアンプ
PLL、クロック、タイミング回路
電源回路
大電力ドライバ(モータドライバなど)
各種センサ(加速度、圧力、光/画像、温度など)
主な用途
IPコアは、主に以下の用途で利用されます。
ASIC (特定用途向け集積回路)
FPGAや
CPLDなどの
プログラマブルロジックデバイス
関連項目
ハードウェア記述言語
プログラマブルロジックデバイス
ASIC
システムLSI
EDA(半導体)
知的財産
オープンソースハードウェア
ライセンス生産