IPコア
出典: フリー百科事典『ウィキペディア(Wikipedia)』
IPコア (Intellectual Property Core) とは、LSIを構成するための部分的な回路情報で、特に機能単位でまとめられているものを指す。単にIPと呼ぶ場合もある。
ASIC開発やプログラマブルロジックデバイスを用いた開発の際に利用する。
1990年代以降、LSIの開発手法としてハードウェア記述言語による開発が盛んになり、開発効率の向上が求められた。 そこで、既存開発製品の回路を、機能ブロック単位で再利用可能な形にまとめ、他の製品でも利用可な部分はそれを流用する方法が用いられた。 更に、この再利用可能な機能ブロックは、その開発者だけでなく、他の開発者や他の会社との間でもやり取りが行われるようになり、 新しいビジネスモデルが発達した。 IPコアベンダは、LSIを開発するためのIPコアを提供し、LSI開発側はIPコアベンダーに使用料を支払う契約を結ぶのが一般的である。
IPとは元々は知的財産という意味だが、半導体業界において回路情報は重要な技術製品であり、形のない商品としてIPと呼ばれるようになった。
目次 |
[編集] IPコアの形態での分類
LSIの集積規模が飛躍的に向上したことを背景に、大規模なIPコアも開発されるようになった。 またプログラマブルロジックも、規模、速度ともに実用レベルに達すると、FPGAをメインのターゲットにしたIPコアも登場した。
- ハードマクロ
- マスクに相当する画像データとして提供される。シミュレーション用に等価なゲートモデルや、ビヘイビアモデルも同時に提供されることが多い。
- 半導体プロセス技術に依存する。
- ソフトマクロに比べ、性能、面積の面で優れる。
- スタンダードセルでは実現できない回路(アナログ回路など)も含むことができる。
- プログラマブルロジックデバイスでは、利用できない。ただし、FPGA等にあらかじめ埋め込まれているハードマクロが存在する場合もある。
- ストラクチャードASICでは、あらかじめ埋め込まれているハードマクロが存在する場合もある。
- 実チップになった実績があるものが多く、十分検証されている可能性が高い。
- ソフトマクロ
- RTLの形で提供されるもの。
- 利用者の手元でターゲットのプロセス用に論理合成すればよく、半導体プロセス技術に依存しない。
- 回路の構成がわかるため、トラブル発生時に解析が容易になる。
- RTLレベルでカスタマイズすることが可能。(商用IPコアの場合、サポートが受けられなくなる可能性もある。)
-
- ゲートレベルに論路合成されたネットリストの形のもの。
- 提供側がオリジナルのRTLを公開したくない場合に、ブラックボックスとして提供される。
- IPコア内部の変更は基本的にできない。
-
- RTLより上位のビヘイビア記述の形で提供されるものもある。
また、IPコアベンダーとして、商用のもの以外に、フリーで配布されているものもある。[ 1 ]
[編集] IPコアを利用するメリット / デメリット
メリット
- IPコアを利用することで、全てを1から開発するより開発期間を短縮できる。
- (RTLで提供されるソフトマクロの場合)半導体プロセス技術に依存しない。
デメリット
- 品質/信頼性 IPコアによっては詳細な設計仕様/検証結果がついていない場合もある。詳細な仕様や、どこまで正確に検証されているかを、よく確認する必要がある。
- 接続性 既存の回路にIPコアを組み合わせる場合、仕様の確認ミスから接続部分で問題が起こりやすい。
- ハードマクロのIPコアの場合、ターゲットの半導体プロセス技術以外では利用できない。
- 高額なライセンスフィー IPコアを購入してライセンス契約をする際は、導入時に契約金を払う場合と、量産製品1つ毎に契約金を払う場合とがある。契約形態によってはそれら両方の場合もある。トラブル時のサポート体制なども含め、かえってコストがかかる場合もありうるため、商用IPコアを利用する場合はよく検討する必要がある。
[編集] IPコアとして提供されている機能の例
デジタル回路のIPコアが一般的であるが、アナログ回路のIPコアも存在する。
- デジタル回路
- CPU / DSP
- CPU周辺回路 (Timer, DMA, 割り込み制御, 他)
- メモリ (FlashROM, SRAM, DRAM, 他)
-
- 基本的に半導体プロセス技術依存
- フルスクラッチのフルカスタムASICでのみ利用可能
-
- 通信I/F (UART, SPI, I2C, USB, Etherネット, ATM, JTAG, 他)
- バスI/F (PCI, PCI_Express, AHB, HDD I/F, 各種メモリカードI/F, 他)
- 基本算術演算 (浮動小数点演算, FFT, 他)
- 暗号化/復号化 (AES, DES, RSA, RC5, SHA1, MD5, SSL, 他)
- 画像処理 (静止画CODEC(JPEG, 他), 動画CODEC(MPEG), 画像認識, 他)
- 音声処理 (音声CODEC(MP3, AAC, μ-law, A-law), 音声合成, 他)
- アナログ回路
- 基本的に半導体プロセス技術依存
-
- AD/DA変換
- オペアンプ
- PLL/クロック/タイミング
- 電源
- 大電力ドライバ (モータードライバ)
- センサ (加速度, 圧力, 光/画像, 温度, 磁気, 電流/電圧, 他)
[編集] 主な用途
- ASIC
- FPGAやCPLDなどのプログラマブルロジックデバイス
[編集] 関連項目
[編集] 外部リンク
[1]OPENCORES