(57)【要約】【課題】  システム，ＬＳＩ，回路などの設計において、設計を自動的に行なうことによる設計工数の削減と設計対象の品質の向上とを実現する。【解決手段】  回路規模，メモリ容量，ピン数，動作周波数などのパラメータが異なる回路などが互いに異なる複数の回路に関する情報が格納されているデータベースを用いる場合、各回路のパラメータを自動的に解析し、解析結果に応じて、要求仕様に適合するように半導体集積回路の設計を自動的に行なう。プロセッサ回路についてはマイクロコードを自動的に解析して、プロセッサ回路の改善や統合などを行なう。演算，回路要素を含むブロック機能ＩＰを利用する場合には、ＩＰの構造を階層化して登録したデータベースを用い、ＩＰ内部の各機能の接続部分をＩＰの外部に引き出して、新たなＩＰやシステムを構築する。【選択図】        図１
2004288205.tif 000002
【特許請求の範囲】
【請求項１】
互いにパラメータが異なる複数の回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
上記半導体集積回路装置の要求仕様を入力するステップ（ａ）と、
上記データベースの複数の回路に関する情報を入力して、上記各回路のパラメータを自動的に解析するステップ（ｂ）と、
上記解析結果に応じて、要求仕様に適合するように上記半導体集積回路の設計を自動的に行なうステップ（ｃ）と
を含む半導体集積回路装置の設計方法。
【請求項２】
請求項１記載の半導体集積回路装置の設計方法において、
上記パラメータは、上記複数の回路の回路規模であり、
上記ステップ（ａ）では、設計される半導体集積回路装置の回路面積又はＧＡＴＥ数の制限範囲を入力し、
上記ステップ（ｂ）では、上記半導体集積回路装置の回路面積又はＧＡＴＥ数が上記制限範囲内に収められる状態で上記半導体集積回路装置内に搭載される回路の組み合わせを解析することを特徴とする半導体集積回路装置の設計方法。
【請求項３】
請求項２記載の半導体集積回路装置の設計方法において、
上記ステップ（ｂ）では、上記各回路間におけるパッドの共有可能性を解析することを特徴とする半導体集積回路装置の設計方法。
【請求項４】
請求項１記載の半導体集積回路装置の設計方法において、
上記パラメータは、上記複数の回路のメモリの種類又は容量であり、
上記ステップ（ａ）では、設計される半導体集積回路装置のメモリの種類又は容量の制限範囲を入力し、
上記ステップ（ｂ）では、上記各回路の外部メモリの共有状況と、各回路間におけるメモリの共有可能性又は分割可能性とに応じて、最適なメモリの組み合わせを解析することを特徴とする半導体集積回路装置の設計方法。
【請求項５】
請求項１記載の半導体集積回路装置の設計方法において、
上記パラメータは、上記複数の回路のピン数であり、
上記ステップ（ａ）では、設計される半導体集積回路装置の各回路におけるピン数の制限範囲を入力し、
上記ステップ（ｂ）では、上記各回路のピン数を上記制限範囲に収めながら、最適な回路の組み合わせを解析することを特徴とする半導体集積回路装置の設計方法。
【請求項６】
請求項５記載の半導体集積回路装置の設計方法において、
上記ステップ（ｂ）では、上記各回路のピンの種類をも考慮して、最適な回路の組み合わせを解析することを特徴とする半導体集積回路装置の設計方法。
【請求項７】
請求項１記載の半導体集積回路装置の設計方法において、
上記パラメータは、上記複数の回路のクロック周波数であり、
上記ステップ（ａ）では、設計される半導体集積回路装置の各回路におけるクロック周波数を入力し、
上記ステップ（ｂ）では、上記各回路の動作周波数が上記ステップ（ａ）で入力されたクロック周波数に適合するように、最適な回路の組み合わせを解析することを特徴とする半導体集積回路装置の設計方法。
【請求項８】
請求項７記載の半導体集積回路装置の設計方法において、
上記ステップ（ｂ）では、上記各回路におけるクロックジェネレータの共有化とクロックラインの最適化とのための解析を行なうことを特徴とする半導体集積回路装置の設計方法。
【請求項９】
互いに動作周波数が異なる複数の回路について少なくとも各回路の上限動作周波数に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
上記データベースに格納されている上記複数の回路の動作周波数と上限動作周波数とを解析して、上記複数の回路を最適化又は再構成することを特徴とする半導体集積回路装置の設計方法。
【請求項１０】
互いに動作周波数が異なる複数の回路について少なくとも各回路の上限動作周波数に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
上記半導体集積回路装置のクロックに関する要求仕様を入力するステップ（ａ）と、
上記データベースから上記複数の回路に関する情報を取り込んで、上記各回路の上限動作周波数と上記クロックに関する要求仕様との調整可能性を解析するステップ（ｂ）と、
上記解析結果に応じて、上記半導体集積回路の設計可能性の可否を表示するステップ（ｃ）と
を含む半導体集積回路装置の設計方法。
【請求項１１】
請求項１０記載の半導体集積回路装置の設計方法において、
上記ステップ（ｂ）では、上記各回路におけるクロック系統の同一化の可能性を含めて解析することを特徴とする半導体集積回路装置の設計方法。
【請求項１２】
請求項１０又は１１記載の半導体集積回路装置の設計方法において、
上記ステップ（ｃ）で、上記半導体集積回路装置の設計が不能であると判定されたとき、上記複数の回路のうちステップ（ａ）で入力されたクロックに関する要求仕様に適合しない回路には、上記クロックに関する要求仕様に適合させるための付加回路を生成するステップ（ｄ）をさらに含むことを特徴とする半導体集積回路装置の設計方法。
【請求項１３】
請求項１２記載の半導体集積回路装置の設計方法において、
上記ステップ（ｄ）では、上記複数の回路のうちステップ（ａ）で入力されたクロックに関する要求仕様に適合しない回路のうち少なくとも一部の回路を、非同期回路にするための付加回路を生成することを特徴とする半導体集積回路装置の設計方法。
【請求項１４】
マイクロコードによって制御される少なくとも１つの回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
上記データベースに格納されているマイクロコードによる回路の動作状況を解析して、上記回路を最適化又は再構成することを特徴とする半導体集積回路装置の設計方法。
【請求項１５】
マイクロコードによって制御される回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
設計対象となる回路を制御するための使用マイクロコードに関する要求仕様を入力するステップ（ａ）と、
上記データベース内の情報を取り込んでマイクロコードによる回路の動作状況を解析するステップ（ｂ）と、
上記解析された回路の動作状況と上記入力された使用マイクロコードに関する要求仕様とを比較して、設計対象となる回路を使用マイクロコードによって生成できる可能性を解析するステップ（ｃ）と、
上記解析結果に応じて、上記回路の設計可能性の可否を表示するステップ（ｄ）と
を含む半導体集積回路装置の設計方法。
【請求項１６】
請求項１５記載の半導体集積回路装置の設計方法において、
上記ステップ（ｂ）では、上記回路における並列動作状況を含めて解析するこを特徴とする半導体集積回路装置の設計方法。
【請求項１７】
請求項１５又は１７記載の半導体集積回路装置の設計方法において、
上記ステップ（ｂ）では、上記回路におけるメモリ使用容量及び必要演算ｂｉｔ数のうち少なくともいずれか１つを含めて解析することを特徴とする半導体集積回路装置の設計方法。
【請求項１８】
請求項１５〜１７のうちいずれか１つに記載の半導体集積回路装置の設計方法において、
上記ステップ（ｄ）で、上記回路の設計が不能であると判定されたとき、上記使用マイクロコードに関する要求仕様に適合させるための付加回路を生成するステップをさらに含むことを特徴とする半導体集積回路装置の設計方法。
【請求項１９】
各々複数の演算を含む複数の回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
設計対象となる回路に要求される機能を入力するステップ（ａ）と、
上記データベース内の情報を取り込んで、上記各回路の演算と上記要求される機能を実現するために必要な演算とを比較して、上記設計対象となる回路を上記データベースに格納された複数の回路に含まれる演算から生成できる可能性を自動的に解析するステップ（ｂ）と、
上記解析結果に応じて、上記回路の設計可能性の可否を自動的に表示するステップ（ｃ）と
を含む半導体集積回路装置の設計方法。
【請求項２０】
各々複数の演算を含む複数の回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
設計対象となる回路に要求される機能を入力するステップ（ａ）と、
上記データベース内に格納されている複数の回路のうち少なくとも１つの回路の情報を取り出して、上記取り出された回路に含まれる演算と上記要求される機能を実現するために必要な演算とを比較して、上記設計対象となる回路を上記取り出された回路に含まれる演算から生成できる可能性を自動的に解析するステップ（ｂ）と、
上記解析結果に応じて、上記要求される機能を実現するために不足している演算がある場合には、上記データベースに格納されている当該演算を含む回路を自動的に表示するステップ（ｃ）と
を含む半導体集積回路装置の設計方法。
【請求項２１】
各々複数の演算と、演算の実行に必要な回路要素とを含む複数の回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
設計対象となる回路に要求される機能を入力するステップ（ａ）と、
上記データベース内に格納されている複数の回路のうち少なくとも１つの回路の情報を取り出して、上記取り出された回路に含まれる演算に必要な回路要素と上記要求される機能を実現するために必要な演算とを比較して、上記取り出された回路に含まれる回路要素のうち，上記設計対象となる回路の生成に不要な回路要素を自動的に削除するステップ（ｂ）と
を含む半導体集積回路装置の設計方法。
【請求項２２】
複数の機能を含むＩＰに関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
上記ＩＰの各機能の接続部分をＩＰの外部に引き出せるように、上記データベースにＩＰの構造を階層化して格納することを特徴とする半導体集積回路装置の設計方法。
【請求項２３】
複数の機能を含む設計資産であるＩＰに関する情報が内部の機能の接続部分も含めて階層化されて格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
上記ＩＰの各機能と各機能の接続部分に関する情報を取り出すステップ（ａ）と、
上記取り出したＩＰの各機能のうち再利用の対象となる機能の接続部分をＩＰの外部に引き出すステップ（ｂ）と
を含む半導体集積回路装置の設計方法。
【請求項２４】
請求項２３記載の半導体集積回路装置の設計方法において、
上記ステップ（ｂ）の後、上記引き出された機能の接続部分を入出力ピンとして生成することにより、上記再利用の対象となる機能のみからなる新たな半導体集積回路装置を設計するステップをさらに含むことを特徴とする半導体集積回路装置の設計方法。
【請求項２５】
請求項２３記載の半導体集積回路装置の設計方法において、
上記ステップ（ｂ）の後、上記引き出された機能の接続部分を上記再利用の対象となるＩＰとは異なる他のＩＰと接続して、上記再利用の対象となるＩＰと上記他のＩＰとにより新たな半導体集積回路装置を設計するステップをさらに含むことを特徴とする半導体集積回路装置の設計方法。
【請求項２６】
請求項２３記載の半導体集積回路装置の設計方法において、
上記ステップ（ｂ）の後、上記引き出された機能の接続部分を上記再利用の対象となるＩＰとは異なる他のＩＰと接続するとともに、上記他のＩＰのうち上記引き出された機能と同じ機能を削除することにより、上記再利用の対象となるＩＰと上記他のＩＰとにより新たな半導体集積回路装置を設計するステップをさらに含むことを特徴とする半導体集積回路装置の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰなどの既存の資産を登録したデータベースを利用して半導体集積回路装置を設計する方法に関する。
【背景技術】
【０００２】
従来より、既存の資産であるＩＰを利用して新たな半導体集積回路装置（ＬＳＩ，システムＬＳＩ，回路など）を生成したり、既存の半導体集積回路装置の一部を改変したい場合、設計の段階で、どのＩＰ（チップなど）を利用してそのようなシステムなどを構築するかについては、設計者の熟練に頼った手作業による各ＩＰ中の機能の組み立てを行なっている。
【０００３】
特に、互いに回路規模，メモリ容量，ピン数，クロック系統などのパラメータや、同期・非同期の相違があるＩＰ同士を統合する場合や、複数のプロセッサを有するシステムを再構築，生成する場合、あるＩＰの一部を利用したい場合などにおいては、設計者の熟練度が特に要求される。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、近年のように、設計される対象となる半導体集積回路装置が大規模になってくると、半導体集積回路を構成する膨大な数の要素間で複数のパラメータの食い違いが相互に入り乱れて生じている。特に、既存の設計資産であるＩＰを再利用する際には、パラメータの食い違いなどによって、設計者の熟練度だけでは、ＩＰやその一部を有効に活用することが困難になっている。その結果、設計工期の大幅な増大や設計不能な自体も発生している。
【０００５】
本発明の目的は、上述のような従来の半導体集積回路装置の設計における不具合の大きな原因が、各ＩＰを機能に分けて解析，分割等するための適切な手段がなかった点にあることに着目し、各ＩＰの機能を解析してからパラメータの相違などに応じて半導体集積回路を設計することにより、設計の自動化による設計工期の短縮や設計される半導体集積回路装置の品質の向上を図ることにある。
【課題を解決するための手段】
【０００６】
本発明の第１の半導体集積回路装置の設計方法は、互いにパラメータが異なる複数の回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、上記半導体集積回路装置の要求仕様を入力するステップ（ａ）と、上記データベースの複数の回路に関する情報を入力して、上記各回路のパラメータを自動的に解析するステップ（ｂ）と、上記解析結果に応じて、要求仕様に適合するように上記半導体集積回路の設計を自動的に行なうステップ（ｃ）とを含んでいる。
【０００７】
この方法により、各々異なるパラメータを含む複数の回路を要求仕様に適合させながら１つの半導体集積回路に自動的にまとめることが可能になる。したがって、大規模な半導体集積回路装置を設計する場合にも、設計工期の短縮と設計される半導体集積回路装置の品質の向上とを図ることが可能になる。
【０００８】
上記パラメータを上記複数の回路の回路規模とし、上記ステップ（ａ）では、設計される半導体集積回路装置の回路面積又はＧＡＴＥ数の制限範囲を入力し、上記ステップ（ｂ）では、上記半導体集積回路装置の回路面積又はＧＡＴＥ数が上記制限範囲内に収められる状態で上記半導体集積回路装置内に搭載される回路の組み合わせを解析することにより、設計される半導体集積回路装置の回路面積をできるだけ小さく抑制することができる。
【０００９】
上記ステップ（ｂ）では、上記各回路間におけるパッドの共有可能性を解析することにより、パッドの共有化による回路面積の縮小が可能になる。
【００１０】
上記パラメータを、上記複数の回路のメモリの種類又は容量とし、上記ステップ（ａ）では、設計される半導体集積回路装置のメモリの種類又は容量の制限範囲を入力し、上記ステップ（ｂ）では、上記各回路の外部メモリの共有状況と、各回路間におけるメモリの共有可能性又は分割可能性とに応じて、最適なメモリの組み合わせを解析することにより、メモリ容量をできるだけ小さく抑制することが可能になる。
【００１１】
上記パラメータを、上記複数の回路のピン数とし、上記ステップ（ａ）では、設計される半導体集積回路装置の各回路におけるピン数の制限範囲を入力し、上記ステップ（ｂ）では、上記各回路のピン数を上記制限範囲に収めながら、最適な回路の組み合わせを解析することにより、ピン数の制限を考慮した設計が可能となる。
【００１２】
上記ステップ（ｂ）では、上記各回路のピンの種類をも考慮して、最適な回路の組み合わせを解析することにより、ピン属性の適合性をも考慮した設計が可能となる。
【００１３】
上記パラメータを、上記複数の回路のクロック周波数とし、上記ステップ（ａ）では、設計される半導体集積回路装置の各回路におけるクロック周波数を入力し、上記ステップ（ｂ）では、上記各回路の動作周波数が上記ステップ（ａ）で入力されたクロック周波数に適合するように、最適な回路の組み合わせを解析することにより、要求されるクロック周波数によって多数の回路を円滑に動作させながら、半導体集積回路装置を設計することが可能になる。
【００１４】
上記ステップ（ｂ）では、上記各回路におけるクロックジェネレータの共有化とクロックラインの最適化とのための解析を行なうことにより、さらに、設計される半導体集積回路装置の品質の向上を図ることができる。
【００１５】
本発明の第２の半導体集積回路装置の設計方法は、互いに動作周波数が異なる複数の回路について少なくとも各回路の上限動作周波数に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、上記データベースに格納されている上記複数の回路の動作周波数と上限動作周波数とを解析して、上記複数の回路を最適化又は再構成する方法である。
【００１６】
この方法により、互いに異なる動作周波数によって動作する複数の回路を組み込んだ半導体集積回路装置を容易に設計することができる。
【００１７】
本発明の第３の半導体集積回路装置の設計方法は、互いに動作周波数が異なる複数の回路について少なくとも各回路の上限動作周波数に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、上記半導体集積回路装置のクロックに関する要求仕様を入力するステップ（ａ）と、上記データベースから上記複数の回路に関する情報を取り込んで、上記各回路の上限動作周波数と上記クロックに関する要求仕様との調整可能性を解析するステップ（ｂ）と、上記解析結果に応じて、上記半導体集積回路の設計可能性の可否を表示するステップ（ｃ）とを含んでいる。
【００１８】
この方法により、複数の回路の上限動作周波数を考慮しながら、複数の回路の動作をクロックに関する要求仕様に適合させながら半導体集積回路装置を設計することができる。
【００１９】
上記ステップ（ｂ）では、上記各回路におけるクロック系統の同一化の可能性を含めて解析することにより、設計される半導体集積回路装置内のクロック系統をできるだけ簡素化することができる。
【００２０】
上記ステップ（ｃ）で、上記半導体集積回路装置の設計が不能であると判定されたとき、上記複数の回路のうちステップ（ａ）で入力されたクロックに関する要求仕様に適合しない回路には、上記クロックに関する要求仕様に適合させるための付加回路を生成するステップ（ｄ）をさらに含むことが好ましい。
【００２１】
その場合、上記ステップ（ｄ）では、上記複数の回路のうちステップ（ａ）で入力されたクロックに関する要求仕様に適合しない回路のうち少なくとも一部の回路を、非同期回路にするための付加回路を生成することもできる。
【００２２】
本発明の第４の半導体集積回路装置の設計方法は、マイクロコードによって制御される回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、上記データベースに格納されているマイクロコードによる回路の動作状況を解析して、上記回路を最適化又は再構成する方法である。
【００２３】
この方法により、プロセッサなどのマイクロコードに応じて動作する回路を自動的に最適化又は再構成することができる。
【００２４】
本発明の第５の半導体集積回路装置の設計方法は、マイクロコードによって制御される回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、設計対象となる回路を制御するための使用マイクロコードに関する要求仕様を入力するステップ（ａ）と、上記データベース内の情報を取り込んでマイクロコードによる回路の動作状況を解析するステップ（ｂ）と、上記解析された回路の動作状況と上記入力された使用マイクロコードに関する要求仕様とを比較して、設計対象となる回路を使用マイクロコードによって生成できる可能性を解析するステップ（ｃ）と、上記解析結果に応じて、上記複数の回路の設計可能性の可否を表示するステップ（ｄ）とを含んでいる。
【００２５】
この方法により、プロセッサ等の回路の機能を要求仕様に適合させるように修正したり、複数の回路の機能を１つの回路によって実現するなどの回路設計が可能になる。
【００２６】
上記ステップ（ｂ）では、上記回路における並列動作状況を含めて解析することにより、回路の簡素化が可能になる。
【００２７】
上記ステップ（ｂ）では、上記回路におけるメモリ使用容量及び必要演算ｂｉｔ数のうち少なくともいずれか１つを含めて解析することにより、設計される回路の過剰スペックの削減が可能になる。
【００２８】
上記ステップ（ｄ）で、上記回路の設計が不能であると判定されたとき、上記使用マイクロコードに関する要求仕様に適合させるための付加回路を生成するステップをさらに含むことが好ましい。
【００２９】
本発明の第６の半導体集積回路装置の設計方法は、各々複数の演算を含む複数の回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、設計対象となる回路に要求される機能を入力するステップ（ａ）と、上記データベース内の情報を取り込んで、上記各回路の演算と上記要求される機能を実現するために必要な演算とを比較して、上記設計対象となる回路を上記データベースに格納された複数の回路に含まれる演算から生成できる可能性を自動的に解析するステップ（ｂ）と、上記解析結果に応じて、上記回路の設計可能性の可否を自動的に表示するステップ（ｃ）とを含んでいる。
【００３０】
この方法により、多数の回路を１つの半導体集積回路装置に集約する作業を自動的に行わせることができる。
【００３１】
本発明の第７の半導体集積回路装置の設計方法は、各々複数の演算を含む複数の回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、設計対象となる回路に要求される機能を入力するステップ（ａ）と、上記データベース内に格納されている複数の回路のうち少なくとも１つの回路の情報を取り出して、上記取り出された回路に含まれる演算と上記要求される機能を実現するために必要な演算とを比較して、上記設計対象となる回路を上記取り出された回路に含まれる演算から生成できる可能性を自動的に解析するステップ（ｂ）と、上記解析結果に応じて、上記要求される機能を実現するために不足している演算がある場合には、上記データベースに格納されている当該演算を含む回路を自動的に表示するステップ（ｃ）とを含んでいる。
【００３２】
この方法によっても、多数の回路を１つの半導体集積回路装置に集約する作業を自動的に行わせることができる。
【００３３】
本発明の第８の半導体集積回路装置の設計方法は、各々複数の演算と、演算の実行に必要な回路要素とを含む複数の回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、設計対象となる回路に要求される機能を入力するステップ（ａ）と、上記データベース内に格納されている複数の回路のうち少なくとも１つの回路の情報を取り出して、上記取り出された回路に含まれる演算に必要な回路要素と上記要求される機能を実現するために必要な演算とを比較して、上記取り出された回路に含まれる回路要素のうち，上記設計対象となる回路の生成に不要な回路要素を自動的に削除するステップ（ｂ）とを含んでいる。
【００３４】
この方法により、既存の回路の機能を簡素化しながらこれを利用して新たな回路を生成することができる。
【００３５】
本発明の第９の半導体集積回路装置の設計方法は、複数の機能を含むＩＰに関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、上記ＩＰの各機能の接続部分をＩＰの外部に引き出せるように、上記データベースにＩＰの構造を階層化して格納する方法である。
【００３６】
この方法により、ＩＰの複数の機能のうち一部の機能を利用して半導体集積回路装置を設計するために利用できるデータベースを得ることができる。
【００３７】
本発明の第１０の半導体集積回路装置の設計方法は、複数の機能を含む設計資産であるＩＰに関する情報が内部の機能の接続部分も含めて階層化されて格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、上記ＩＰの各機能と各機能の接続部分に関する情報を取り出すステップ（ａ）と、上記取り出したＩＰの各機能のうち再利用の対象となる機能の接続部分をＩＰの外部に引き出すステップ（ｂ）とを含んでいる。
【００３８】
この方法により、ＩＰの一部の機能を利用して、種々の設計を行なうことが可能になる。
【００３９】
上記ステップ（ｂ）の後、上記引き出された機能の接続部分を入出力ピンとして生成することにより、上記再利用の対象となる機能のみからなる新たな半導体集積回路装置を設計するステップをさらに含むことにより、新たなＩＰを生成することができる。
【００４０】
上記ステップ（ｂ）の後、上記引き出された機能の接続部分を上記再利用の対象となるＩＰとは異なる他のＩＰと接続して、上記再利用の対象となるＩＰと上記他のＩＰとにより新たな半導体集積回路装置を設計するステップをさらに含むこともできる。
【００４１】
上記ステップ（ｂ）の後、上記引き出された機能の接続部分を上記再利用の対象となるＩＰとは異なる他のＩＰと接続するとともに、上記他のＩＰのうち上記引き出された機能と同じ機能を削除することにより、上記再利用の対象となるＩＰと上記他のＩＰとにより新たな半導体集積回路装置を設計するステップをさらに含むことにより、設計される半導体集積回路装置の占有面積の低減を図ることができる。
【発明の効果】
【００４２】
本発明の半導体集積回路装置の設計方法によれば、半導体集積回路装置の設計に利用する資産であるＩＰ，回路などの機能を適切に分割，解析する手段を講ずることにより、大規模な半導体集積回路装置の設計に適した設計方法の提供を図ることができる。
【発明を実施するための最良の形態】
【００４３】
（第１の実施形態）
本実施形態においては、既存の設計資産を利用して新たな半導体集積回路装置（システム又はシステムの１要素となるＬＳＩ）を設計する際に、既存の設計資産の共通点，制限などを考慮して再構成を行なう方法について、考慮するパラメータ毎に実施例に分けて説明する。
【００４４】
−第１実施例−
本実施例では、既存の設計資産の回路規模の制限の下にシステムやＬＳＩの再構成を行なう方法について説明する。図１は、本実施例におけるシステム再構成の基本的な手順を示すフローチャートである。
【００４５】
まず、ステップＳＴ１１で、再構成条件に関する情報を入力する。この再構成条件の情報には、回路規模条件として、ＧＡＴＥ数，チップ面積などの条件がある。チップ面積として、Ｌ×Ｗの寸法が登録されている。
【００４６】
次に、ステップＳＴ１２で、ステップＳＴ１１で入力された再構成条件と、システム構成要素ＤＢ（データベース）内の情報と、設計ＤＢ（データベース）内の情報とが入力された場合に、回路規模条件のエリアに収めることのできるチップの組み合わせを自動的に検出する（解析）。この検出項目の例としては、ＬＳＩ内部の機能ブロックのＧＡＴＥ数や面積の検出、同一ブロックやパッド，パッド周囲の部分など共通部分の共有可能な部分の検出、最適組み合わせに対するＧＡＴＥ数や面積の算出などがある。このシステム構成要素ＤＢには、再構成しようとするシステムを構成するＬＳＩの回路規模に関する情報、例えば、論理ＧＡＴＥ数，チップ面積などの情報が登録されている。また、設計ＤＢには、ライブラリによってＧＡＴＥ面積が変わるなどというノウハウや、機能ブロックの面積に関する情報が登録されている。
【００４７】
次に、ステップＳＴ１３で、システムの再構成を実行する。その内容としては、例えば、ソフトウエア又はＲＴレベルでの回路合成、シミュレーション、合成結果に対する自動レイアウト、レイアウトから抽出した遅延情報などのバックアノテーションなどがある。その後、ステップＳＴ１４で、再構成の結果を出力する。
【００４８】
図２は、パッド部分の共有化を自動的に行なってシステムの再構成を行なう場合における手順を示すフローチャートである。図３（ａ）〜（ｄ）は、図２の各ステップにおいて現れる再構成の対象となる回路の構造やデータを示す図である。以下、図３（ａ）〜（ｄ）を参照しながら、図２のフローチャートに沿って、本具体例の処理を説明する。
【００４９】
まず、ステップＳＴ２０で、設計対象となる回路の回路規模条件を入力する。この例では、“チップ面積が１０ｍｍ×１０ｍｍ＝１００ｍｍ2 以下であること”という条件が設定される。
【００５０】
次に、ステップＳＴ２１で、システム構成要素ＤＢから利用可能な回路Ａ〜Ｅについて、その面積に関する情報を入力すると、例えば図３（ａ）に示すような５つの回路Ａ〜Ｅのデータが取り出されたとする。そこで、この回路Ａ〜Ｅの中から所望の機能を果たしつつチップ面積１０ｍｍ×１０ｍｍ＝１００ｍｍ2 内に収まりそうな組み合わせを抽出する。すると、図３（ｂ）に示すように、回路Ａのみの場合と、回路Ｂと回路Ｄとを組み合わせる場合と、回路Ｃと回路Ｅとを組み合わせる場合とが抽出される。なお、回路Ｂと回路Ｄとを組み合わせると、１００ｍｍ2 以上の面積になるが、後述するような共有化による面積の低減を図ることで１００ｍｍ2 以下にできる可能性があることから、検討の対象とする。
【００５１】
次に、ステップＳＴ２２で、ＬＳＩ内部の機能ブロックのＧＡＴＥ面積をチェックして、共通部分があれば同一ブロックブロック等を共有化する。そして、ステップＳＴ２３で、組み合わせたＬＳＩ内で、パッドの冗長部分を削除して共有化する。たとえば、図３（ｃ）に示すように、回路Ｂと回路Ｄのパッド面積を抽出すると、回路Ｂにおいては、ＶＣＣパッドが１０個、ＧＮＤパッドが１０個あり、１つのパッドの面積が０．５ｍｍ2 であるとする。一方、回路Ｄにおいては、ＶＣＣパッドが８個、ＧＮＤパッドが８個あるとし、１つのパッドの面積は共通であるとする。このとき、そのまま回路Ｂと回路Ｄとを搭載すると総パッド数は３６個になるが、パッドを共有化することで回路Ｂと回路Ｄとを組み合わせたときの総パッド数が、ＶＣＣパッド１２個とＧＮＤパッド１２個とで済むことがわかったとする。つまり、パッドの部分の共有化により、１２×０．５＝６（ｍｍ2 ）の面積低減が可能になる。同様に、回路Ｃと回路Ｅとを組み合わせると、パッド部分の共有化により、８（ｍｍ2 ）の面積低減が可能になるとする。
【００５２】
その結果、ステップＳＴ２４で、最適組み合わせの決定と面積の再計算とを行なうと、図３（ｄ）に示すように、回路Ａ（そのまま）と、回路Ｂと回路Ｄとを組み合わせた新たな回路路Ｂ’と、回路Ｃと回路Ｅとを組み合わせた新たな回路Ｃ’とからなるシステムが再構成される。
【００５３】
ここで、図２に示すフローにおいて、回路規模条件が入力されると、システム構成要素ＤＢから各回路の組み合わせを抽出することは、例えば“組み合わせる回路の数が２つ以下で、両者の面積の合計が１００±２５（ｍｍ2 ）であること”などという条件を設定しておくことにより、各回路の抽出、各回路のパッドの数や面積の検索及び抽出を自動的に行なわせることは容易である。したがって、ステップＳＴ２２，ＳＴ２３，ＳＴ２４の処理は容易に自動的に行なうことができる。
【００５４】
同様に、図１のフローにおいて示した機能ブロックのＧＡＴＥ数が共通であることなどを手がかりに、共有化できるブロックを抽出し、同一ブロックを共有化してシステムを再構成する作業を自動的に行わせることができる。
【００５５】
本実施例では、システム又はＬＳＩの再構成において、パッド面積の削減や回路ブロックの共有化による半導体集積回路装置の低減を図ることができる。
【００５６】
−第２の実施例−
本実施例では、既存の設計資産が使用しているメモリを最適化しつつシステムやＬＳＩの再構成を行なう方法について説明する。
【００５７】
図４は、本実施例におけるシステム再構成の基本的な手順を示すフローチャートである。図５（ａ）〜（ｃ）は、それぞれ順に、本実施例におけるシステムの再構成を行なう対象となる回路、メモリリスト及び再構成後の回路を示す図である。以下、図５（ａ），（ｂ）を参照しながら、図４のフローチャートに沿ってシステムの再構成の手順の例を説明する。本実施例においても、再構成のための基本的な処理の流れは、上記第１の実施例と同じであるが、入力される条件や再構成のための解析の内容が第１の実施例とは異なっている。
【００５８】
まず、ステップＳＴ１１で、再構成条件に関する情報を入力する。この再構成条件の情報には、メモリ使用の最適化条件として、ＬＳＩ内メモリ（内部メモリ），外部メモリなどの条件がある。
【００５９】
次に、ステップＳＴ１２で、ステップＳＴ１１で入力された再構成条件と、システム構成要素ＤＢ（データベース）内の情報と、設計ＤＢ（データベース）内の情報とが入力されると、メモリの共有化や分割を行ないながら回路の組み合わせの可能性を自動的に解析する。システム構成要素ＤＢには、システム内のメモリやＬＳＩ内部のメモリの構成や規格が登録されている。例えば、メモリサイズ（アドレス幅，ビット幅），アクセススピード，タイミング，メモリの種類などの情報が含まれている。設計ＤＢには、設計ノウハウとして、メモリの共有化，メモリの分割方法，アクセスタイミングなどの情報が含まれている。
【００６０】
解析項目の例としては、以下のものがある。まず、各ＬＳＩ内部で使用されているメモリと他のＬＳＩ内部のメモリとの比較や、外部メモリの共有状況の解析を行なう。例えば、図５（ａ）に示すように、回路Ａと回路Ｂとが共通のメモリ３にアクセスしており、回路Ｃと回路Ｅとが共通のメモリ６にアクセスしているものとする。ここから、外部メモリ３，６が共有されているという情報が得られる。また、図５（ｂ）に示すようなメモリリストが得られ、メモリ１〜７の種類，配置場所，メモリサイズ，アクセススピード（アクセスタイム）に関する情報が得られる。これをみると、メモリ１とメモリ２とは、種類がＳＲＡＭで、ビット幅が８ｂｉｔで、アドレス数はメモリ１の方がメモリ２よりも大きく、アクセスタイムはメモリ１の方がメモリ２よりも長いので、メモリ１で共用できるということがわかる。そこで、これらの２つの解析結果から最適なメモリの組み合わせの自動抽出を行なう。例えば、メモリ５を共有する回路Ａと回路Ｂとの組み合わせ、メモリ６を共有する回路Ｃと回路Ｅとの組み合わせを抽出し、さらに、メモリの共有化が可能なメモリや、メモリの分割の可能性を自動的に解析する。最終的に、アクセススピード，メモリサイズの検討を行なう。そして、問題がない範囲でメモリの共有化や分割を行なう。
【００６１】
その結果、ステップＳＴ１３で、システムの再構成を実行し、図５（ｃ）に示すように、回路Ａと回路Ｂとの組み合わせからなりメモリ１とメモリ３とを内蔵する新たな回路Ａ’と、回路Ｃと回路Ｅとの組み合わせからなりメモリ４とメモリ５とメモリ６とを内蔵する新たな回路Ｃ’とが生成される。すなわち、メモリ２はメモリ３によって共用され、メモリ３（外部ＲＯＭ）は新たな回路Ａ’内になお蔵される。また、メモリチップとして独立していたメモリ６は新たな回路Ｃ’内に内蔵される。この再構成の実行の際に、ソフトウエア又はＲＴレベルでの回路合成、シミュレーション、合成結果に対する自動レイアウト、レイアウトから抽出した遅延情報などのバックアノテーションなどを行なうことは第１の実施例と同様である。
【００６２】
そして、最終的に、ステップＳＴ１４で再構成の結果を出力する。本実施例においても、上記第１の実施例と同様に、図４に示す各ステップＳＴ１１〜ＳＴ１４を自動的に行なうことができる。なお、本実施例では、説明を省略しているが、メモリサイズに冗長がある場合には、メモリの分割を行なうこともできる。
【００６３】
本実施例により、メモリの共有化による構成の簡素化，チップ面積の削減や、メモリの分割によるチップ面積の削減などを図ることができる。
【００６４】
−第３の実施例−
本実施例では、既存の設計資産が使用しているピンの数や種類などの制限の下にシステムやＬＳＩの再構成を行なう方法について説明する。
【００６５】
図６は、本実施例におけるシステム再構成の基本的な手順を示すフローチャートである。図７（ａ），（ｂ）は、本実施例におけるシステムの再構成を行なう対象となるＬＳＩの再構成前後の状態を示す図である。以下、図７（ａ），（ｂ）を参照しながら、図６のフローチャートに沿ってシステムの再構成の手順の例を説明する。本実施例においても、再構成のための基本的な処理の流れは、上記第１の実施例と同じであるが、入力される条件や再構成のための解析の内容が第１の実施例とは異なっている。
【００６６】
まず、ステップＳＴ１１で、再構成条件に関する情報を入力する。この再構成条件には、ＬＳＩのパッケージピンのｐｉｎ数に関する条件として、“２０８ｐｉｎ以内であること”などの条件がある。
【００６７】
次に、ステップＳＴ１２で、ステップＳＴ１１で入力された再構成条件と、システム構成要素ＤＢ（データベース）内の情報と、設計ＤＢ（データベース）内の情報とが入力されると、ピン数の制限などの条件にしたがいながら回路の組み合わせの可能性を自動的に解析する。システム構成要素ＤＢには、各ＬＳＩの使用ｐｉｎ数と、各ｐｉｎの属性（ＩＮ，ＯＵＴ，ＩＮ／ＯＵＴの別），用途，ブロック系統（制御ブロック，出力回路ブロックなど）の分類などが登録されている。この例では、図７（ａ）に示すように、ＬＳＩ−Ａのピン数が２０８、ＬＳＩ−Ｂのピン数が８０、ＬＳＩ−Ｃのｐｉｎ数が１２０、ＬＳＩ−Ｄのｐｉｎ数が４０，ＬＳＩ−Ｅのピン数が９０個であるとする。また、設計ＤＢに格納されている設計ノウハウとしては、ブロック系統の分類や、ｐｉｎ属性，ｐｉｎ配置などがある。
【００６８】
解析項目の例としては、以下のものがある。まず、条件に応じたｐｉｎ数の解析を行なう。この例では、図７（ａ）に示すように、各ＬＳＩ−Ａ〜Ｅのｐｉｎ数がわかる。また、ｐｉｎの属性，ブロック系統によるＬＳＩの配置など、再構成のための解析を行なう。また、再構成による共有部分，冗長部分の最適化の可能性の解析などを行なう。ｐｉｎの種類には、デバッグｐｉｎ，電源ｐｉｎ，グランドｐｉｎ，テストｐｉｎ，プローブなどがあり、それらの部分がＬＳＩを統合することによって削減でき、冗長部分を削減することができる。そして、再構成情報として、ピン数，ｐｉｎ属性，ｐｉｎ種類，ブロック系統図などの情報を出力する。その結果、ＬＳＩ−ＢとＬＳＩ−Ｃとのピン数の和は２００個であり、ＬＳＩ−ＤとＬＳＩ−Ｅとのピン数の和は１３０個であって、ＬＳＩ−ＢとＬＳＩ−Ｃとの共有しうるｐｉｎの数は３個で、ＬＳＩ−ＤとＬＳＩ−Ｅとの間では共有できるｐｉｎがないという解析結果が得られたとする。別の組み合わせを検討すると、ＬＳＩ−ＢとＬＳＩ−Ｅとのピン数の和は１７０個であり、ＬＳＩ−ＣとＬＳＩ−Ｄとのピン数の和は１６０個であって、ＬＳＩ−ＢとＬＳＩ−Ｅとで共有できるブロックがあり且つ共有できるｐｉｎが１２個あること、ＬＳＩ−ＣとＬＳＩ−Ｄとで共有できるｐｉｎが８個あることという解析結果が得られたとする。
【００６９】
そこで、ステップＳＴ１３で、もっとも有利なパターンでステムの再構成を実行し、図７（ｂ）に示すように、ＬＳＩ−Ａはそのままで、ＬＳＩ−ＢとＬＳＩ−Ｅとの組み合わせからなりｐｉｎ数が１７０個の新たなＬＳＩ−Ｂ’と、ＬＳＩ−ＣとＬＳＩ−Ｄとの組み合わせからなりｐｉｎ数が１６０個の新たなＬＳＩ−Ｃ’とが生成される。この場合、ＬＳＩ−Ａはｐｉｎ数が制限値に達しているので他の回路と組み合わせることはできない。この再構成の実行の際に、ソフトウエア又はＲＴレベルでの回路合成、シミュレーション、合成結果に対する自動レイアウト、レイアウトから抽出した遅延情報などのバックアノテーションなどを行なうことは第１の実施例と同様である。
【００７０】
そして、最終的に、ステップＳＴ１４で再構成の結果を出力する。本実施例においても、上記第１の実施例と同様に、図４に示す各ステップＳＴ１１〜ＳＴ１４を自動的に行なうことができる。
【００７１】
本実施例によると、ｐｉｎ数やｐｉｎ属性などの制約からはずれることなく、ＬＳＩの再構成を自動的に行なうことができ、かつ、冗長部分の削除による構成の簡素化、コストの低減を図ることができる。
【００７２】
−第４の実施例−
本実施例では、既存の設計資産が使用している動作周波数（クロック周波数）の分類に応じてシステムやＬＳＩの再構成を行なう方法について説明する。
【００７３】
図８は、本実施例におけるシステム再構成の基本的な手順を示すフローチャートである。図９（ａ）〜（ｃ）は、それぞれ順に、本実施例におけるシステムの再構成を行なう対象となるＬＳＩの動作周波数の抽出結果、ＬＳＩの内部ブロックの動作周波数の抽出結果、再構成後のシステムの構成を示す図である。以下、図９（ａ）〜（ｃ）を参照しながら、図８のフローチャートに沿ってシステムの再構成の手順の例を説明する。本実施例においても、再構成のための基本的な処理の流れは、上記第１の実施例と同じであるが、入力される条件や再構成のための解析の内容が第１の実施例とは異なっている。
【００７４】
まず、ステップＳＴ１１で、再構成条件に関する情報を入力する。この再構成条件には、動作周波数の分類による再構成条件として、“クロック周波数が共通又は逓倍関係にあること”などの条件がある。
【００７５】
次に、ステップＳＴ１２で、ステップＳＴ１１で入力された再構成条件と、システム構成要素ＤＢ（データベース）内の情報と、設計ＤＢ（データベース）内の情報とが入力されると、動作周波数の制限条件にしたがいながら回路の組み合わせの可能性を自動的に解析する。
【００７６】
システム構成要素ＤＢには、各ＬＳＩに入力されるクロック周波数や、ＬＳＩの内部機能ブロック，内部ロジックなどについての動作周波数（使用しているクロック周波数）が登録されている。設計ＤＢに登録された設計ノウハウの例としては、同一周波数による再構成の方法やブロック分割に関するノウハウがある。
【００７７】
解析項目の例としては、以下のものがある。まず、各ＬＳＩの動作周波数を比較して同一周波数の組み合わせを抽出する。ここでは、図９（ａ）に示すように、各ＬＳＩ−Ａ〜Ｅの動作周波数がわかり、ＬＳＩ−ＡとＬＳＩ−Ｅとには共通の動作周波数２５ＭＨｚのクロック信号が入力され、ＬＳＩ−ＣとＬＳＩ−Ｄとには共通の動作周波数３３ＭＨｚのクロック信号が入力されることがわかる。また、ＬＳＩ内部ブロック毎の動作周波数を比較し、同一周波数の組み合わせブロックの可能性を解析する。ＬＳＩ自体に入力されるクロック周波数によって内部ブロックが動作しているとは限らず、一般的には、入力されたクロック信号の分周や逓倍を行なって使用していることが多いからである。この例では、図９（ｂ）に示すように、内部ブロックａ１，ａ２，ｂ２，ｅ１が７５ＭＨｚで、内部ブロックｃ１，ｃ２，ｄ２が５０ＭＨｚで、内部ブロックｂ１，ｂ３，ｄ１，ｅ２，ｅ３が６６ＭＨｚでそれぞれ動作することがわかったとする。そこで、ＬＳＩ単位の動作周波数の組み合わせ情報とＬＳＩの内部ブロック単位の動作周波数の組み合わせ情報とのＮＡＮＤ演算を行なって、共通のＬＳＩ内に収納できる内部ブロックの組み合わせを解析する。さらに、最適な組み合わせのうちでクロックの使用方法を再検討し、最適化（同一クロックジェネレータの共有化や、クロックラインの最適化など）を行なう。そして、最適な組み合わせ回路でのクリティカルパス（システムクリティカルパスや、各ＬＳＩ内でのクリティカルパス）の検出を行なっておく。
【００７８】
その結果、ステップＳＴ１３で、システムの再構成を実行し、図９（ｃ）に示すように、入力クロックが２５ＭＨｚで内部ブロックａ１，ａ２，ｂ２，ｅ１を含む新たなＬＳＩＡ’と、入力クロックが５０ＭＨｚで内部ブロックｃ１，ｃ２，ｄ２を含む新たなＬＳＩ−Ｂ’と、入力クロックが３３ＭＨｚで内部ブロックｂ１，ｂ３，ｄ１，ｅ２，ｅ３を含む新たなＬＳＩ−Ｃ’とからなるシステムを生成する。この再構成の実行の際に、ソフトウエア又はＲＴレベルでの回路合成、シミュレーション、合成結果に対する自動レイアウト、レイアウトから抽出した遅延情報などのバックアノテーションなどを行なうことは第１の実施例と同様である。
【００７９】
そして、最終的に、ステップＳＴ１４で再構成の結果を出力する。本実施例においても、上記第１の実施例と同様に、図４に示す各ステップＳＴ１１〜１４を自動的に行なうことができる。
【００８０】
なお、本実施例では、説明を省略しているが、メモリサイズに冗長がある場合には、メモリの分割を行なうこともできる。
【００８１】
本実施例により、クロック周波数の相違に起因するクロストークを回避しつつ、ＬＳＩの再構成を図ることができる。
【００８２】
なお、上記第１〜第４の実施例における回路やＬＳＩは、個別にチップ上に搭載されるものであってもよいし、システムＬＳＩとして共通のチップ上に搭載されるものであってもよい。
【００８３】
（第２の実施形態）
本実施形態においては、互いに異なる周波数によって動作する複数の回路、又は非同期回路と同期回路を組み合わせて１つの半導体集積回路装置（ＬＳＩ又はシステムＬＳＩ、以下、単に「システム」とする）を構築あるいは再構成するための設計方法について、各実施例に分けて説明する。
【００８４】
−第１の実施例−
図１０は、本実施例における設計方法を示すフローチャートである。図１１は、本実施例において使用する設計データベース内に登録されている既存の回路の情報を示す図である。
【００８５】
図１０に示すように、本実施例の再構成方法は、設計に利用する既存の資産である回路Ａ，Ｂ，Ｃ，Ｅに関するデータが登録されている設計データベースを用いて行なわれる。設計データベースには、図１１に示すように、各回路Ａ，Ｂ，Ｃ，Ｅの構成と、クロックＡ〜Ｆとに関する情報が登録されている。ここで、回路Ａは、クロックＡにより動作するように構成されており、クロックＡのクロック周波数はｆA で、上限動作周波数（動作が可能な最大周波数）はｆlimAである。回路ＢはクロックＢによって動作するように構成されており、クロックＢのクロック周波数はｆB で、上限動作周波数はｆlimBである。回路ＣはクロックＣ，Ｄによって動作するように構成されており、クロックＣ，Ｄのクロック周波数はｆC ，ｆD で、上限動作周波数はｆlimC，ｆlimDである。回路ＥはクロックＥ，Ｆによって動作するように構成されており、クロックＥ，Ｆのクロック周波数はｆE ，ｆF で、上限動作周波数はｆlimE，ｆlimFである。ここで、回路Ｃ，回路Ｅはいずれも２系統のクロックを使用する回路であるが、クロックＣとクロックＤとの間には依存関係がないが、クロックＥとクロックＦとの間には、ｆE ＞４×ｆF という依存関係がある。
【００８６】
以下、図１１を参照しながら図１０のフローチャートに沿って本実施例の再構成の方法について説明する。
【００８７】
まず、ステップＳＴ１０で、システムで使用するクロック系統の数である使用クロック数，設計対象のシステム全体で使用するクロックの周波数（以下、「システムクロック周波数」と呼ぶ），システムに要求される機能である必要機能などの各種パラメータを入力する。ここでは、使用クロック数としてクロックＺが１つだけ入力され、クロックＺの周波数つまりシステムクロック周波数がｆZ であるものとする。ただし、使用クロック数が複数ある場合には、システムクロック周波数も２種類存在することになる。この入力されたパラメータは、設計装置のパラメータ保持部に記憶されている。
【００８８】
次に、ステップＳＴ１１に進み、ステップＳＴ１０で入力された必要機能に関する情報を取り込むとともに、データベースから既存の資産に関する情報を取り込んで、設計対象のシステムに必要な機能に応じ、システムを構成する際に用いる回路を選択して出力する。ここでは、回路Ａ，Ｂ，Ｃ，Ｅが選び出されたものとする。
【００８９】
次に、ステップＳＴ１２で、選択された各回路Ａ，Ｂ，Ｃ，Ｅが使用しているクロックＡ〜Ｆの上限動作周波数ｆlimA〜ｆlimFの大小関係を解析する。その結果、以下の不等式（１）
ｆlimA＞ｆlimD＞ｆlimB＞ｆlimE＞ｆlimF＞ｆlimC                （１）
で表される関係を有することが明らかになったものとする。
【００９０】
次に、ステップＳＴ１３に進んで、ステップＳＴ１０で入力されたシステムクロック周波数ｆZ を取り込んで、システム全体の周波数関係を解析する。具体的には、システムクロック周波数ｆZ と、各選択回路の上限動作周波数ｆlimA〜ｆlimFとの大小関係を確認する。システムクロック周波数と各選択回路の上限動作周波数との関係によっては、各回路Ａ〜Ｅを組み合わせてシステムを構成できなくなる自体もあるからである。その結果、下記の不等式（２）
ｆlimA＞ｆlimD＞ｆlimB＞ｆZ ＞ｆlimE＞ｆlimF＞ｆlimC          （２）
で表される関係などを有することが明らかになったものとする。
【００９１】
次に、ステップＳＴ１４で、上記不等式（２）の関係を取り込むとともに、ステップＳＴ１０で入力された使用クロック数についての情報を取り出して、各回路Ａ，Ｂ，Ｃ，Ｅを１系統のクロックで動作させて１つのシステムを構成できるか否かを判定する。そして、設計しようとしているシステムの構築が可能であればステップＳＴ１５に進んで、システム全体のタイミングを検証した後、ステップＳＴ１６に進んで、構築されたシステムに関する情報を表示する。
【００９２】
一方、この例のように、不等式（２）で表される周波数関係がある場合には、システムクロック周波数ｆZ よりも小さい上限動作周波数ｆlimE，ｆlimF，ｆlimCを有するクロックＥ，Ｆ，Ｃがあるので、このままでは、１系統クロック動作のシステムを構成することができないので、ステップＳＴ１４の判別では、システムの構成が不可能であると判断される。したがって、ステップＳＴ１７に移行して、システムの構成が不可能である旨と再設計のために必要な情報とを表示する。
【００９３】
図１２は、再設計のために必要な情報の例を示す図である。同図に示すように、クロックＺだけでなくクロックＣ，Ｅ，Ｆの３系統のクロック（又はこれらを動作させるための１系統のクロック）が必要であることが表示されている。また、上記不等式（２）の関係もこのとき表示される。
【００９４】
なお、ステップＳＴ１３で、下記の不等式（３）
ｆlimA＞ｆlimD＞ｆlimB＞ｆlimE＞ｆlimF＞ｆlimC＞ｆZ           （３）
の関係を有することがわかった場合には、各回路Ａ，Ｂ，Ｃ，Ｅがシステムクロック周波数ｆZ で動作可能である。したがって、図１０に示すフローチャートにおいて、ステップＳＴ１６で、構築されたシステムに関する情報を出力することになる。
【００９５】
本実施例によると、既存の資産である回路Ａ，Ｂ，Ｃ，Ｅがあり、各回路のクロック周波数（動作周波数）が互いに異なる場合に、指定されたクロックを用いて、これらの回路を１つのシステムに構築できるか否かの判断を容易に行なうことができる。しかも、設計仕様の入力を除くと、各ステップを自動的に行なわせることも容易である。ただし、必ずしも各ステップを自動的に行なう必要はない。
【００９６】
また、本実施例の設計方法を利用して、既存のシステムのクロック系統を簡素化することも可能である。
【００９７】
−第２の実施例−
図１３は、本実施例における設計方法を示すフローチャートである。本実施例においても、設計データベースには、図１１に示す情報が格納されているものとする。以下、図１３のフローチャートに沿って、本実施例におけるシステムの設計方法について説明する。
【００９８】
本実施例においても、ステップＳＴ１０〜ＳＴ１６の処理を行なう点は、上記第１の実施例と同様である。
【００９９】
ここで、本実施例では、ステップＳＴ１４の判別において、システムの構築が不可能であると判断された場合には、ステップＳＴ１７に移行して、付加回路の生成を行なう。すなわち、上記不等式（２）の関係から明らかになっているシステムクロックＺによって動作させることができない回路ＣのクロックＣ，回路ＥのクロックＥ，Ｆに付加回路を生成する。
【０１００】
図１４は、各回路Ｃ内に付加回路Ｘが設けられ、回路Ｅ内に付加回路Ｙ，Ｚが設けられた例を示す図である。また、図１５（ａ），（ｂ）は、設計データベースに登録されている現在の回路（回路Ｃ，回路Ｅなど）の構成を示す回路図、及び付加回路生成後の回路を示す図である。図１５（ｂ）に示すように、システムクロック周波数ｆZ と、クロックＣ，Ｅ，Ｆのクロック周波数ｆC ，ｆE ，ｆF との周波数差による動作タイミングのズレを調整するためのフリップフロップを適宜配置する。これにより、各回路Ｃ，Ｅを高速回路にでき、クロックＺに応じて動作することが可能になる。
【０１０１】
なお、システムクロック周波数ｆz がクロック周波数ｆC ，ｆE ，ｆF などの整数倍になっている場合、クロックＣ，Ｅ，Ｆが入力される部位に分周器あるいは分周器と逓倍器を介設することで、回路Ｃ又は回路Ｅを同期回路にして、各回路の正常な動作を確保することができる。
【０１０２】
そして、ステップＳＴ１５で、タイミング検証がＯＫになるまで付加回路の追加，削除などを行い、最終的に各回路の動作タイミングが正常に維持されると、ステップＳＴ１６に進む。
【０１０３】
本実施例では、上記第１の実施例における効果だけでなく、付加回路の自動生成による新たなシステムの構築や、既存のシステムの再構築が可能になる。
【０１０４】
（第３の実施形態）
次に、プロセッサを制御するためのマイクロ命令列からなるマイクロコードを解析した結果を用いて、プロセッサ回路を再構成ないし設計する方法に関する第３の実施形態について説明する。特に、本実施形態においては、画像圧縮処理システム中の一部であるプロセッサ回路を、マイクロコードを手がかりに再構成する方法を例にとって説明する。
【０１０５】
−第１の実施例−
図１６は、本実施形態の第１の実施例におけるプロセッサ回路の再構成方法（設計方法）の手順を示すフローチャートである。図１７は、本実施形態の設計に用いる設計データベースに格納されているプロセッサに関する情報である。
【０１０６】
図１７に示すように、本実施形態において使用する設計データベースには、既存の資産として利用可能なプロセッサＡ，Ｂ，Ｃの内容に関する情報が格納されている。ここでは、画像処理システムの一部を再構成する動画像圧縮伸長用のプロセッサＡと、動画像伸長用のプロセッサＢと、静止画処理用のプロセッサＣが登録されている。なお、画像処理システムには、その種類に応じて他の多くの回路も搭載されており、それらの種類はどんなものがあってもよいものとする。プロセッサＡには、画像圧縮用回路エンジン群として、動き補償部ＭＥ-Aと、離散コサイン変換部ＤＣＴ-Aと、量子化部Ｑ-Aと、可変長符号化部ＶＬＣ-Aと、逆離散コサイン変換部ＩＤＣＴ-Aと、逆量子化部ＩＱ-Aとが配置されている。また、画像伸長用回路エンジン群として、可変長復号部ＶＬＤ-Aと、逆離散コサイン変換部ＩＤＣＴ-Aと、逆量子化部ＩＱ-Aとが配置されている。また、これらの回路エンジン群の作業領域Ｍｅｍ-Aが設けられている。プロセッサＢには、可変長復号部ＶＬＤ-Bと、逆離散コサイン変換部ＩＤＣＴ-Bと、逆量子化部ＩＱ-Bという伸長処理のみを行なう回路エンジン群が配置されている。プロセッサＣには、動き補償部ＭＥ-Cと、離散コサイン変換部ＤＣＴ-Cと、量子化部Ｑ-Cと、可変長符号化部ＶＬＣ-Cと、逆離散コサイン変換部ＩＤＣＴ-Cと、逆量子化部ＩＱ-Cという圧縮処理のみを行なう回路エンジン群が配置されている。これらの回路エンジン群において、同じ機能を有する回路エンジンであっても、配置されているプロセッサによって演算ｂｉｔ数のｂｉｔ冗長度が異なっている。
【０１０７】
以下、図１７を参照しながら、図１６のフローに沿って本実施形態における回路の再構成方法を説明する。
【０１０８】
まず、ステップＳＴ２０で、設計者が設計仕様として希望するパラメータを入力する。この例では、プロセッサＡを制御するためのマイクロ命令列を含むマイクロコードＡ（プロセッサＡを制御するためのプログラム）を利用して、プロセッサＡ，Ｂ，Ｃのすべての機能を有する回路に再構築するということをパラメータとして入力したものとする。このパラメータの入力は、各種選択することができ、例えば、プロセッサＡの過剰スペックを削除して簡素な構成にするという要求に沿って行なうこともできる。
【０１０９】
次に、ステップＳＴ２１で、設計データベースの内容を取り込み、マイクロコードＡを用いて、プロセッサ動作のシミュレーションを行なう。ステップＳＴ２１においては、以下の手順でシミュレーションを行なう。
【０１１０】
ステップＳＴ２２でメモリアドレスバスの解析を行なった後、ステップＳＴ２３でその解析結果をメモリアクセス情報として記憶する。このとき、メモリのアドレスバスをモニターし、どのアドレス空間にアクセスしているかを検出する。
【０１１１】
次に、ステップＳＴ２４で演算入出力データ値のMax.Min.からデータｂｉｔ数の解析を行なった後、ステップＳＴ２５でその解析結果をｂｉｔ冗長情報として記憶する。このとき、演算器の入出力データをモニターし、採りうる値の範囲を検出し、ｂｉｔ数の冗長度を把握する。
【０１１２】
次に、ステップＳＴ２６で並列演算命令の解析を行なった後、ステップＳＴ２７でその解析結果を並列動作情報として記憶する。このとき、各機能ブロックの起動命令で、同時に動作させているブロックがあるかどうかを検出し、並列動作の必要性を把握する。
【０１１３】
さらに、ステップＳＴ２８ですべての命令の解析が終了するまで上記処理を繰り返し行なった後、ステップＳＴ２９で、その解析結果を使用機能情報として記憶する。
【０１１４】
その後、ステップＳＴ３０で、設計データベース内の記述や仕様機能情報を取り込んで、機能による回路選択を行なう、その際、機能に合致するすべての回路を選択する。また、メモリについてはその容量に触れずに選択する。
【０１１５】
次に、ステップＳＴ３１で、メモリアクセス情報を取り込んで必要メモリ容量による回路選択を行なう。このとき、ステップＳＴ３０において選択した回路から、そのメモリ容量が必要メモリ容量以上かつ必要メモリ容量にもっとも近いメモリを選択し、それ以外のものを除外する。
【０１１６】
また、ステップＳＴ３２で、ｂｉｔ冗長情報を取り込んで必要ｂｉｔ数による回路選択を行なう。このとき、ステップＳＴ３１において選択した回路から、そのｂｉｔ数が必要ｂｉｔ数以上かつ必要ｂｉｔ数にもっとも近い回路を選択し、それ以外のものを除外する。
【０１１７】
さらに、ステップＳＴ３３で、並列動作情報の内容を取り込んで、並列動作の要，不要による回路の選択を行なう。このとき、ステップＳＴ３２を経て残っている回路のうち同一機能を有する複数の回路が存在する場合、それらが並列動作しない場合には１つだけ選択し、残りを削除する。
【０１１８】
その後、ステップＳＴ３４に進んで、不足回路があるか否かを判別し、不足する回路がなければステップＳＴ３５に進んで、システム全体のタイミングを検証した後、ステップＳＴ３６で、構築されたシステムに関する情報を表示する。
【０１１９】
一方、図１８に示す破線の回路（機能）が不足している場合には、このままではシステムを構成することができないので、ステップＳＴ３４の判別では、不足回路ありと判断される。したがって、ステップＳＴ３７に移行して、システムの構成が不可能である旨と再設計のために必要な情報とを表示する。
【０１２０】
本実施例によると、既存の資産であるプロセッサＡ，Ｂ，Ｃがある場合に、マイクロコードに対応した回路の生成又は再構成を行いたい場合、プロセッサを制御するための命令コードを含むマイクロコードを解析することで、その生成又は再構成が可能か否かの判断を自動的に行なうことができる。また、希望する生成又は再構成を行なうために必要な処理などに関する情報を表示することで、要求を満たすための対策を講ずることが容易になる。
【０１２１】
−第２の実施例−
図１９は、本実施例における設計方法を示すフローチャートである。本実施例においても、設計データベースには、図１７に示す情報が格納されているものとする。以下、図１９のフローチャートに沿って、本実施例におけるシステムの設計方法について説明する。
【０１２２】
本実施例においても、ステップＳＴ２０〜ＳＴ３０の処理を行なう点は、上記第１の実施例と同様である。ただし、図１６におけるステップＳＴ１６の処理は本実施例では行なわない。
【０１２３】
そして、ステップＳＴ４０で、ステップＳＴ２３において記憶しているメモリアクセス情報を取り込んで、最適なメモリを生成しておく。
【０１２４】
そしてステップＳＴ３２では、ｂｉｔ冗長情報と最適なメモリとを取り込んで必要ｂｉｔ数による回路選択を行なう。このとき、ステップＳＴ３０において選択した回路から、そのｂｉｔ数が必要ｂｉｔ数以上かつ必要ｂｉｔ数にもっとも近い回路を選択し、それ以外のものを除外する。その後、ステップＳＴ３３〜ＳＴ３６で、第１の実施例と同様の処理を行なう。
【０１２５】
ここで、本実施例では、ステップＳＴ３４の判別において、システムの構築が不可能であると判断された場合には、ステップＳＴ４１に移行して、付加回路の生成を行なう。すなわち、ブロック間接続回路の生成を行なう。そして、ステップＳＴ３５におけるシステム全体のタイミングの検証を行なって、全体タイミング検証でＯＫになるまで、ステップＳＴ４１における回路生成とステップＳＴ３５におけるタイミング検証とを繰り返し行なう。
【０１２６】
図２０は、本実施例によって生成された新たなプロセッサＤの構成を概略的に示すブロック回路図である。同図に示すように、プロセッサＤにおいて、プロセッサＡに配置されていた動き補償回路ＭＥ-Aは不要な回路であると判断されて削除され、プロセッサＡの可変長符号化部ＶＬＣ-Aの代わりに、プロセッサＣの可変長符号化部ＶＬＣ-Cが配置され、プロセッサＡの可変長復号部ＶＬＤ-Aの代わりにプロセッサＢの可変長復号部ＶＬＤ-Bが配置されている。また、作業領域Ｍｅｍ-Aの代わりに、メモリ容量の小さい作業領域Ｍｅｍ-Dが設けられている。さらに、プロセッサＡにおけるデータ圧縮処理とデータ伸長処理とを並列に行なう必要がないことや、プロセッサＡ，Ｂ，Ｃ間における並列動作がないことから、プロセッサＡ内のデータ伸長処理用回路エンジン群や、プロセッサＢ，Ｃ内の回路エンジン群の機能がすべてプロセッサＤに組み込まれている。
【０１２７】
本実施例によると、既存の資産であるプロセッサＡ，Ｂ，Ｃがある場合に、プロセッサを制御するための命令コードを含むマイクロコードを解析することで、プロセッサＡ，Ｂ，Ｃの機能をまとめて１つの新たな回路Ｄ（プロセッサ）を生成することができる。
【０１２８】
また、各プロセッサごとに過剰な機能を削除して、そのプロセッサ単体を再構成することも可能である。
【０１２９】
（第４の実施形態）
次に、設定した回路部品の組み合わせにおいて要求機能の実現可能性を判定する方法に関する第４の実施形態について、各実施例に分けて説明する。
【０１３０】
−第１の実施例−
図２１（ａ），（ｂ）は、第１の実施例における要求機能の実現可能性判定方法を説明するための図である。
【０１３１】
まず、図２１（ａ）に示すように、回路Ｘ，Ｙ，Ｚ，Ｗ，Ｖがある場合に、各回路に必要な演算を登録する。例えば回路Ｘには演算Ａ，Ｂ，Ｃが登録され、回路Ｙには演算Ａ，Ｂ，Ｄ，Ｅ，Ｆ，Ｇが登録され、回路Ｚには演算Ｅ，Ｆ，Ｇ，Ｈ，Ｉ，Ｊが登録され、回路Ｗには演算Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈ，Ｉ，Ｊ，Ｋ，Ｌが登録され、回路Ｖには演算Ｊ，Ｋ，Ｌが登録されているものとする。
【０１３２】
一方、図２１（ｂ）に示すように、設計者の要求によって実現したい機能Ｒ，Ｓ，Ｔ，Ｕが入力されたものとする。このとき、実現したい機能Ｒ，Ｓ，Ｔ，Ｕ（要求機能）を演算の組み合わせに自動的にコンパイルする。その結果、この例では、機能Ｒ，Ｓ，Ｔ，Ｕが、演算Ａ，Ｂ，Ｃ，Ｅ，Ｆ，Ｇ，Ｊ，Ｋ，Ｌの組み合わせによって実現しうることがわかったとする。そこで、これらの演算Ａ，Ｂ，Ｃ，Ｅ，Ｆ，Ｇ，Ｊ，Ｋ，Ｌを含む単一の回路又は複数の回路の組み合わせを自動的に検索する。この例では、単一の回路Ｗにより、あるいは複数の回路Ｘ，Ｚ，Ｖの組み合わせにより、あるいは複数の回路Ｘ，Ｙ，Ｖにより要求機能を実現することができ、その旨が自動的に表示される。一方、要求機能を実現できないときには、その旨が自動的に表示される。
【０１３３】
本実施例により、演算の種類を手がかりに要求機能を自動的に検索することができ、既存の資産である回路の情報を利用して新たな回路の生成などの可能性を迅速に判断することができる。
【０１３４】
−第２の実施例−
図２２は、第２の実施例における要求機能の実現可能性判定方法を説明するための図である。
【０１３５】
本実施例においても、図２１（ａ）に示すように、データベースには、演算Ａ，Ｂ，Ｃを行なう回路Ｘと、演算Ａ，Ｂ，Ｄ，Ｅ，Ｆ，Ｇを行なう回路Ｙと、演算Ｅ，Ｆ，Ｇ，Ｈ，Ｉ，Ｊを行なう回路Ｚと、演算Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈ，Ｉ，Ｊ，Ｋ，Ｌを行なう回路Ｗと、演算Ｊ，Ｋ，Ｌを行なう回路Ｖとが登録されているものとする。
【０１３６】
また、設計者の要求によって実現したい機能Ｒ，Ｓ，Ｔ，Ｕが入力されたものとする。そして、実現したい機能Ｒ，Ｓ，Ｔ，Ｕ（要求機能）を演算の組み合わせに自動的にコンパイルすると、第１の実施例と同様に、機能Ｒ，Ｓ，Ｔ，Ｕが、演算Ａ，Ｂ，Ｃ，Ｅ，Ｆ，Ｇ，Ｊ，Ｋ，Ｌの組み合わせによって実現しうることがわかっている。このとき、適当な単一の回路又は複数の回路の組み合わせを予め設定する。この例では、回路Ｘ，Ｖが登録されたものとする。このとき、回路Ｘ，Ｖの組み合わせにより、演算Ａ，Ｂ，Ｃ，Ｊ，Ｋ，Ｌが可能であることが出力される。そこで、回路Ｘ，Ｖの組み合わせにより実現できる演算Ａ，Ｂ，Ｃ，Ｊ，Ｋ，Ｌと、要求機能Ｒ，Ｓ，Ｔ，Ｕを実現するために必要な演算Ａ，Ｂ，Ｃ，Ｅ，Ｆ，Ｇ，Ｊ，Ｋ，Ｌとを比較することにより、演算Ｅ，Ｆ，Ｇが不足しているので処理不可能であることを自動的に導出し、さらに、この不足している演算Ｅ，Ｆ，Ｇを行なうことができる回路の組み合わせを探索する。その結果、この例では、回路Ｙ又は回路Ｚにより、要求機能を実現することができる旨が表示される。
【０１３７】
本実施例により、要求機能を満足するであろうと推定できる適当な回路を入力することにより、要求機能を実現するために不足している演算があればその演算が自動的に導出されるとともに、要求機能を実現するために必要な回路が自動的に探索される。よって、既存の資産である回路の情報を利用して新たな回路を迅速に生成することができる。
【０１３８】
−第３の実施例−
図２３（ａ），（ｂ）は、第３の実施例における要求機能の実現可能性判定方法を説明するための図である。
【０１３９】
まず、図２３（ａ）に示すように、回路Ｗがある場合に、各回路に必要な演算と、その演算を処理するのに必要な回路要素とを登録する。例えば回路Ｗには演算Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈ，Ｉ，Ｊ，Ｋ，Ｌが登録されている。そして、演算Ａは回路要素ａ，ｍにより、演算Ｂは回路要素ｂ，ｍにより、演算Ｃは回路要素ｃ，ｍにより、演算Ｄは回路要素ｄ，ｉ，ｐにより、演算Ｅは回路要素ｅ，ｊ，ｌ，ｐにより、演算Ｆは回路要素ｆ，ｐにより、演算Ｇは回路要素ｇ，ｍにより、演算Ｈは回路要素ｈ，ｏにより、演算Ｉは回路要素ｉ，ｍにより、演算Ｊは回路要素ｊ，ｅ，ｐにより、演算Ｋは回路要素ｋ，ｆ，ｐにより、演算Ｌは回路要素ｌ，ｉ，ｍ，ｐにより、それぞれ処理できるものとする。そして、演算Ａ〜Ｌを処理するために必要なすべての回路要素ａ〜ｐが登録される。
【０１４０】
また、設計者の要求によって実現したい機能Ｒ，Ｓ，Ｔ，Ｕが入力されたものとする。そして、実現したい機能Ｒ，Ｓ，Ｔ，Ｕ（要求機能）を演算の組み合わせに自動的にコンパイルすると、第１の実施例と同様に、機能Ｒ，Ｓ，Ｔ，Ｕが、演算Ａ，Ｂ，Ｃ，Ｅ，Ｆ，Ｇ，Ｊ，Ｋ，Ｌの組み合わせによって実現しうることがわかっている。このとき、実現したい機能を実現するために、適当な単一の回路又は複数の回路の組み合わせを設定する。この例では、回路Ｗが設定されたものとする。このとき、回路Ｗ内の演算Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈ，Ｉ，Ｊ，Ｋ，Ｌ内に登録されている回路要素と、要求機能Ｒ，Ｓ，Ｔ，Ｕを実現するために必要な演算Ａ，Ｂ，Ｃ，Ｅ，Ｆ，Ｇ，Ｊ，Ｋ，Ｌに含まれる回路要素とを比較することにより、必要な回路要素と、不要な回路要素とが区別された状態で出力される。
【０１４１】
本実施例では、回路の機能を実現するための演算を処理するための回路要素というハードウエアについて、必要なハードウエア資源と不要なハードウエア資源とが判別される。すなわち、要求機能に対して、利用しようとする既存の回路をデータベースなどから取り出すことにより、既存の回路のうち要求機能を満足するために必要な回路要素と不要な回路要素とが自動的に検出されるので、既存のハードウエア資源を利用して要求機能に応じた新たな回路を生成する際に、不要な回路要素を削除して簡素化を図ることができる。
【０１４２】
（第５の実施形態）
次に、複数の本実施形態においては、既存の資産であるＩＰ，設計データを利用して新たなＩＰ，ブロックなどと呼ばれる半導体集積回路装置（具体的には、ＬＳＩ，システムＬＳＩ）を設計する際に、既存のＩＰなどの一部だけを利用するための方法について説明する。
【０１４３】
従来、既存の設計データやＩＰを用いる場合、それらの外部ピンに信号を接続して利用する必要があったために、既存の設計データやＩＰの内部の一部の機能だけを流用して新たなＩＰなどを生成することは困難であった。
【０１４４】
そこで、本実施形態では、既存の設計データ，ＩＰの内部ノードから外部ピンを引き出すなどの手段を講ずることにより、既存の設計データやＩＰの一部の機能だけを流用するようにしている。以下、本実施形態における既存のＩＰの一部の機能のみを利用するための方法について、各実施例に分けて説明する。
【０１４５】
−第１の実施例−
本実施例においては、既存のＩＰの情報を階層化してデータベースに登録する方法にて初説明する。
【０１４６】
図２４は、内部ノードを外部に引き出すために機能別内部ノード（ピン）情報をデータベースに登録する手順を示すフローチャートである。同図に示すように、ステップＳＴ５０で、設計対象である新規ＩＰや設計データが入力されると、ステップＳＴ５１に進んで、既存のＩＰに関する情報が登録された設計データベースと、ハードウエア資源などに関する情報を格納しているライブラリとの情報を取り込んで、この情報を利用して新規ＩＰや設計データの機能階層に対応する入出力を抽出するための解析を行なう。そして、ステップＳＴ５２で、既存のＩＰ，設計データの内部から機能と機能毎の入出力ピン（ノード）との抽出を行なう。そして、抽出された機能，入出力ピン（ノード）に関する情報を階層を持たせて設計データベースに登録しておく。このとき、データベースに登録された情報の例については、後に詳しく説明する。
【０１４７】
図２５は、データベースに格納されている内部ノードなどに関する情報を利用して新たなＩＰなどを生成するために、内部ノードを外部に引き出す手順を示すフローチャートである。
【０１４８】
まず、ステップＳＴ６０で、設計仕様を入力し、ステップＳＴ６１で設計仕様を解析する。そして、ステップＳＴ６２で、設計データベース及びライブラリの情報を取り込んで、仕様に合わせた機能を選び出す。そして、ステップＳＴ６３で、機能毎の入出力ピン（ノード）の抽出を行なって、ステップＳＴ６４で、内部ノードを外部ピンとして出力する。
【０１４９】
図２６は、設計データベースに登録されたＩＰの例を示す図である。ＩＰ-A内には、ブロックＡ〜Ｄが配置されており、各ブロックＡ〜Ｄ内にはそれぞれ内部回路（Ａ-1など）が配置されている。そして、各内部回路の入力ピンＰＩＮ-IA〜ＰＩＮ-IHと、出力ピンＰＩＮ-OA 〜ＰＩＮ-OD と、ＩＰ-A内の内部ノードＮＡ１〜ＮＤ２とが設計データベースに登録されている。図２７は、この設計データベース内に登録されているＩＰ-Aの情報を表にして示す図である。同図に示すように、ＩＰ-A内には、ＩＰ-A内に含まれるブロックＡ〜Ｄと、各ブロックＡ〜Ｄの機能とが登録されており、さらに各機能毎に分類されて、外部ピンと内部ノードとが記述されている。外部ピンは、さらに入力ピンと出力ピンとに分類され、内部ノードも入力側ノードと出力側ノードとに分類されている。また、ＩＰ-Bなど、他のＩＰについても同様の情報が登録されている。
【０１５０】
このように、ＩＰの内部の機能を階層を持たせて登録しておくことにより、既存のＩＰを再利用する際に、低階層からの検索が可能となるのである。
【０１５１】
次に、このように内部ノードなどの情報が登録されたデータベースを用い、ＩＰ中の一部の回路（ブロック）を利用した半導体集積回路装置（ＬＳＩ，システムＬＳＩ，回路など）の設計方法について説明する。この方法には、大きく分けて２つの方法があり、以下、個別に説明する。
【０１５２】
−第２の実施例−
第２の実施例では、ＩＰ中の一部のブロックを当該ＩＰ全体の構造を維持しつつ利用する方法について説明する。
【０１５３】
ここでは、ある新たなシステム又はシステムの再構成の際に、図２８に示すＩＰ-A中のブロックＢ（ハッチング部分）が他のＩＰなどで必要な機能として選び出されたとして、この選出の手順と、この選出に応じて内部ノードを出力ピンとして引き出す手順とを説明する。
【０１５４】
まず、設計仕様の解析から仕様に合わせた機能が選び出される。この処理は、図２５に示すステップＳＴ６０〜ＳＴ６２において行なわれる。そして、ブロックＢが必要な機能としてブロックＢの入出力が外部ピンを介して行なわれているのか、内部ノードを介して行なわれているのかがデータベースから判定されるとともに、機能毎の入出力ピン（内部ノード）が抽出される。この処理は、図２５に示すステップＳＴ６３の処理に該当する。
【０１５５】
そして、図２９に示すように、ブロックＢの内部ノードのうち入力側ノードＮＡ９から信号を入力するための入力ピンＰＩＮ-NA9を新たに設け、且つ、入力側ノードＮＡ９に入力される信号を、ブロックＡからの信号と入力ピンＰＩＮ-NA9からの信号とに切り換えるためのセレクタＳＥＬ-B1 をインターフェースとして設ける。一方、ブロックＢの出力側ノードＮＢ４，ＮＢ５，ＮＢ７から信号を取り出すための出力ピンＰＩＮ-NB4，ＰＩＮ-NB5，ＰＩＮ-NB7をそれぞれ設ける。なお、入力ピンＰＩＮ-ID ，ＰＩＮ-IE ，ＰＩＮ-IG については、従来と同様に、新たなピンを設けることなく信号を入力させることができる。
【０１５６】
本実施例により、設計データやＩＰ中の各機能であるブロック，回路などの内部ノードという低階層をも登録してあるデータベースを利用して、この内部ノードから外部ピンを引き出すことができる。そして、内部ノードを介して当該ブロックや回路に信号を入出力するための入出力ピンを設けることにより、利用しようとする既存のＩＰを残したままで、利用したい資産である機能（ブロック，回路）のみを新たなＩＰの生成やＩＰの再構成に利用することが可能となる。例えば、同じシステム内に別の新たなＩＰを設けたいときなどに著効を発揮しうる方法である。すなわち、システム全体の回路面積の増大を抑制しつつ、システムの機能の拡大を図ることができる。
【０１５７】
言い換えると、既存の設計データやＩＰの内部の機能を階層を持たせて登録しておき、これを低階層から順次検索していくことで、最小限必要な機能のみを抽出することが可能になる。その際、必要に応じてインターフェースを設けることで、利用対象となるＩＰ内において、利用されるブロックと当該ＩＰ内に配置されている他のブロックとの信号のやりとりを円滑に維持しうる。
【０１５８】
−第３の実施例−
第３の実施例においては、あるＩＰ中の一部のブロック（機能）を当該ＩＰ全体の構造を考慮することなく抜き出して利用する方法について説明する。
【０１５９】
本実施例においても、ある新たなシステム又はシステムの再構成の際に、図３０に示すＩＰ-A中のブロックＢ（ハッチング部分）が他のＩＰなどで必要な機能として選び出されたとして、この選出の手順と、この選出に応じて内部ノードを出力ピンとして引き出す手順とを説明する。
【０１６０】
まず、設計仕様の解析から仕様に合わせた機能が選び出される。この処理は、図２５に示すステップＳＴ６０〜６２において行なわれる。そして、機能毎の入出力ピン（内部ノード）が抽出される。この処理は、図２５に示すステップＳＴ６３の処理に該当する。
【０１６１】
そして、図３０に示すように、ブロックＢの内部ノードのうち入力側ノードＮＡ９から信号を入力するための入力ピンＰＩＮ-NA9を新たに設ける。本実施例では、第２の実施例のようなセレクタなどのインターフェースを設ける必要はない。また、ブロックＢの出力側ノードＮＢ４，ＮＢ５，ＮＢ７から信号を取り出すための出力ピンＰＩＮ-NB4，ＰＩＮ-NB5，ＰＩＮ-NB7をそれぞれ設ける。なお、入力ピンＰＩＮ-ID ，ＰＩＮ-IE ，ＰＩＮ-IG については、従来と同様に、新たなピンを設けることなく信号を入力させることができる。
【０１６２】
このように、選択された機能の入出力が内部ノードである場合、外部にピンとして出力した後、それぞれを接続することで仕様を満たすことができる。そして、不使用部分からブロックＢと各入出力ピンとを分離することにより、ブロックＢを新たなＩＰや設計データとして用いることができる。また、この抜き出したブロックをデータベースに登録する場合には、元の内部ノードを外部ピンとして再定義して登録する。さらに、新たなＩＰや設計データが多くのブロックからなる場合にも、このブロックＢを新たなＩＰ又は設計データ中の１つのブロックとしてデータベースに登録することができる。
【０１６３】
本実施例により、設計データやＩＰ中の各機能であるブロック，回路などの内部ノードという低階層をも登録してあるデータベースを利用して、この内部ノードから外部ピンを引き出すことができる。そして、内部ノードを介して当該ブロックや回路に信号を入出力するための入出力ピンを設けることにより、既存のＩＰから利用したい資産である機能（ブロック，回路）のみを取り出して、新たなＩＰの生成や設計対象としているＩＰの再構成に利用することが可能となる。
【０１６４】
言い換えると、既存の設計データやＩＰの内部の機能を階層を持たせて登録しておき、これを低階層から順次検索していくことで、最小限必要な機能のみを抽出することが可能になる。
【０１６５】
−第４の実施例−
本実施例では、上記第２又は第３の実施例の方法により、既存のＩＰ内の一部の機能のみを利用した新たなＩＰなどの生成方法について、従来の方法と対比しながら説明する。
【０１６６】
“第１の具体例”
図３１（ａ），（ｂ）は、従来の方法における既存のＩＰと第１の具体例におけるＩＰの構造を示す図である。
【０１６７】
図３１（ａ）に示すように、従来、３つのＩＰ-X，ＩＰ-Y，ＩＰ-Zがある場合、各ＩＰ中に利用したい機能（ハッチング部分）があっても、利用対象である既存のＩＰ中の機能と、新たに設計しようとするＩＰなどとの信号のやりとりができなかった。従来は、各ＩＰの外部ピンとの信号のやりとりが可能にすぎないからである。
【０１６８】
それに対し、本具体例においては、図３１（ｂ）に示すように、上記第２の実施例の方法を利用して、データベースの低階層から各ＩＰの内部ノードを検索でき、これによって抽出された内部ノードから信号を取り出すための信号線や入出力ピンを容易に生成することができる。そして、各ＩＰ中の機能を個別に利用して、新たなＩＰや設計データを生成することができる。しかも、利用されるＩＰ自体はそのまま残しておくことができるので、当該システムの機能の拡大などに適した方法といえる。
【０１６９】
“第２の具体例”
図３２（ａ），（ｂ）は、従来の方法における既存のＩＰと第２の具体例において生成された新たなＩＰの構造を示す図である。
【０１７０】
図３２（ａ）に示すように、従来、３つのＩＰ-X，ＩＰ-Y，ＩＰ-Zがある場合、各ＩＰ中に利用したい機能（ハッチング部分）があっても、利用対象である既存のＩＰから一部の機能のみを取り出すことが困難であった。
【０１７１】
それに対し、本具体例においては、図３２（ｂ）に示すように、上記第３の実施例の方法を利用して、データベースの低階層から各ＩＰの内部ノードを検索でき、これによって抽出された内部ノードから信号を取り出すための信号線や入出力ピンを容易に生成することができる。そして、各ＩＰ中の機能を組み立てて新たなＩＰ-W（又は設計データ）を生成することができる。
【０１７２】
“第３の具体例”
図３３（ａ），（ｂ）は、従来の方法における既存のＩＰと第３の具体例における再構成されたＩＰの構造を示す図である。
【０１７３】
図３３（ａ）に示すように、従来、２つのＩＰ-X，ＩＰ-Yがある場合、各ＩＰ中に共通の機能（ハッチング部分）があっても、それらを各ＩＰで共有する１つの機能に集約することが困難であった。
【０１７４】
それに対し、本具体例においては、図３３（ｂ）に示すように、上記第２の実施例の方法などを利用して、データベースの低階層から各ＩＰの内部ノードを検索でき、これによって抽出された内部ノードから信号を取り出すための信号線や入出力ピンを容易に生成することができる。そして、１つのＩＰ-Xから当該機能を削除して、ＩＰ-XとＩＰ-Yとで１つの機能を共有化することができる。
【０１７５】
特に本実施形態の各実施例や各具体例における処理は、設計者の熟練度に頼ることなく、ほとんど自動的に行なうことが可能であるため、大規模なシステムの構築に際しても、設計工期の短縮を図ることが可能になり、設計される半導体集積回路装置の品質の向上をも図りうる。
【産業上の利用可能性】
【０１７６】
本発明の半導体集積回路装置の設計方法は、ＬＳＩ，いわゆるシステムＬＳＩの設計などに利用することができる。
【図面の簡単な説明】
【０１７７】
【図１】第１の実施形態の第１の実施例におけるシステム再構成の基本的な手順を示すフローチャート図である。
【図２】第１の実施形態の第１の実施例のパッド部分の共有化を自動的に行なう場合における手順を示すフローチャート図である。
【図３】（ａ）〜（ｄ）は、図２の各ステップにおいて現れる再構成の対象となる回路の構造やデータを示す図である
【図４】第１の実施形態の第２の実施例におけるシステム再構成の基本的な手順を示すフローチャート図である。
【図５】（ａ）〜（ｃ）は、それぞれ順に、第１の実施形態の第２の実施例におけるシステムの再構成を行なう対象となる回路、メモリリスト及び再構成後の回路を示す図である。
【図６】第１の実施形態の第３の実施例におけるシステム再構成の基本的な手順を示すフローチャート図である。
【図７】（ａ），（ｂ）は、第１の実施形態の第３の実施例におけるシステムの再構成を行なう対象となるＬＳＩの再構成前後の状態を示す図である。
【図８】第１の実施形態の第４の実施例におけるシステム再構成の基本的な手順を示すフローチャート図である。
【図９】（ａ）〜（ｃ）は、それぞれ順に、第１の実施形態の第４の実施例における再構成対象となるＬＳＩの動作周波数の抽出結果、ＬＳＩの内部ブロックの動作周波数の抽出結果、再構成後のシステムの構成を示す図である。
【図１０】第２の実施形態の第１の実施例における設計方法を示すフローチャート図である。
【図１１】第２の実施形態の第１の実施例において使用する設計データベース内に登録されている既存の回路の情報を示す図である。
【図１２】第２の実施形態の第１の実施例において再設計のために必要な情報の例を示す図である。
【図１３】第２の実施形態の第２の実施例における設計方法を示すフローチャート図である。
【図１４】第２の実施形態の第２の実施例における設計後のシステムの構成の例を示す図である。
【図１５】（ａ），（ｂ）は、第２の実施形態の第２の実施例における設計データベースに登録されている現在の回路の構成を示す回路図、及び付加回路生成後の回路を示す図である。
【図１６】第３の実施形態の第１の実施例におけるプロセッサ回路の再構成方法（設計方法）の手順を示すフローチャート図である。
【図１７】第３の実施形態の設計に用いる設計データベースに格納されているプロセッサに関する情報である。
【図１８】第３の実施形態の第１の実施例において再設計のために必要な情報の例を示す図である。
【図１９】第３の実施形態の第２の実施例における設計方法を示すフローチャート図である。
【図２０】第３の実施形態の第２の実施例によって生成された新たなプロセッサＤの構成を概略的に示すブロック回路図である。
【図２１】（ａ），（ｂ）は、第４の実施形態の第１の実施例における要求機能の実現可能性判定方法を説明するための図である。
【図２２】第４の実施形態の第２の実施例における要求機能の実現可能性判定方法を説明するための図である。
【図２３】（ａ），（ｂ）は、第４の実施形態の第３の実施例における要求機能の実現可能性判定方法を説明するための図である。
【図２４】第４の実施形態の第１の実施例における機能別内部ノード情報をデータベースに登録する手順を示すフローチャート図である。
【図２５】第４の実施形態の第１の実施例における内部ノードを外部に引き出す手順を示すフローチャート図である。
【図２６】第４の実施形態の第１の実施例における設計データベースに登録されたＩＰの例を示す図である。
【図２７】第４の実施形態の第１の実施例における設計データベース内に登録されているＩＰ-Aの情報を表にして示す図である。
【図２８】第４の実施形態の第２の実施例における設計データベース中のＩＰのブロックが必要な機能として選び出された状態を示す図である。
【図２９】第４の実施形態の第２の実施例における設計データベース中のＩＰのブロックの内部ノードを他のＩＰで利用するために引き出して入出力ピンを設けた状態を示す図である。
【図３０】第４の実施形態の第３の実施例における設計データベース中のＩＰのブロックの内部ノードを単独のＩＰを構成するために引き出して入出力ピンを設けた状態を示す図である。
【図３１】（ａ），（ｂ）は、従来の方法における既存のＩＰと第４の実施形態の第３の実施例の第１の具体例におけるＩＰの構造を示す図である。
【図３２】（ａ），（ｂ）は、従来の方法における既存のＩＰと第４の実施形態の第３の実施例の第２の具体例におけるＩＰの構造を示す図である。
【図３３】（ａ），（ｂ）は、従来の方法における既存のＩＰと第４の実施形態の第３の実施例の第３の具体例におけるＩＰの構造を示す図である。
【符号の説明】
【０１７８】
１〜７  メモリ
【図１】
2004288205.tif 000003
【図２】
2004288205.tif 000004
【図３】
2004288205.tif 000005
【図４】
2004288205.tif 000006
【図５】
2004288205.tif 000007
【図６】
2004288205.tif 000008
【図７】
2004288205.tif 000009
【図８】
2004288205.tif 000010
【図９】
2004288205.tif 000011
【図１０】
2004288205.tif 000012
【図１１】
2004288205.tif 000013
【図１２】
2004288205.tif 000014
【図１３】
2004288205.tif 000015
【図１４】
2004288205.tif 000016
【図１５】
2004288205.tif 000017
【図１６】
2004288205.tif 000018
【図１７】
2004288205.tif 000019
【図１８】
2004288205.tif 000020
【図１９】
2004288205.tif 000021
【図２０】
2004288205.tif 000022
【図２１】
2004288205.tif 000023
【図２２】
2004288205.tif 000024
【図２３】
2004288205.tif 000025
【図２４】
2004288205.tif 000026
【図２５】
2004288205.tif 000027
【図２６】
2004288205.tif 000028
【図２７】
2004288205.tif 000029
【図２８】
2004288205.tif 000030
【図２９】
2004288205.tif 000031
【図３０】
2004288205.tif 000032
【図３１】
2004288205.tif 000033
【図３２】
2004288205.tif 000034
【図３３】
2004288205.tif 000035