JP2004288205A - 半導体集積回路装置の設計方法 - Google Patents
半導体集積回路装置の設計方法 Download PDFInfo
- Publication number
- JP2004288205A JP2004288205A JP2004140208A JP2004140208A JP2004288205A JP 2004288205 A JP2004288205 A JP 2004288205A JP 2004140208 A JP2004140208 A JP 2004140208A JP 2004140208 A JP2004140208 A JP 2004140208A JP 2004288205 A JP2004288205 A JP 2004288205A
- Authority
- JP
- Japan
- Prior art keywords
- semiconductor integrated
- integrated circuit
- designing
- circuit device
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】 システム,LSI,回路などの設計において、設計を自動的に行なうことによる設計工数の削減と設計対象の品質の向上とを実現する。
【解決手段】 回路規模,メモリ容量,ピン数,動作周波数などのパラメータが異なる回路などが互いに異なる複数の回路に関する情報が格納されているデータベースを用いる場合、各回路のパラメータを自動的に解析し、解析結果に応じて、要求仕様に適合するように半導体集積回路の設計を自動的に行なう。プロセッサ回路についてはマイクロコードを自動的に解析して、プロセッサ回路の改善や統合などを行なう。演算,回路要素を含むブロック機能IPを利用する場合には、IPの構造を階層化して登録したデータベースを用い、IP内部の各機能の接続部分をIPの外部に引き出して、新たなIPやシステムを構築する。
【選択図】 図1
【解決手段】 回路規模,メモリ容量,ピン数,動作周波数などのパラメータが異なる回路などが互いに異なる複数の回路に関する情報が格納されているデータベースを用いる場合、各回路のパラメータを自動的に解析し、解析結果に応じて、要求仕様に適合するように半導体集積回路の設計を自動的に行なう。プロセッサ回路についてはマイクロコードを自動的に解析して、プロセッサ回路の改善や統合などを行なう。演算,回路要素を含むブロック機能IPを利用する場合には、IPの構造を階層化して登録したデータベースを用い、IP内部の各機能の接続部分をIPの外部に引き出して、新たなIPやシステムを構築する。
【選択図】 図1
Description
本発明は、IPなどの既存の資産を登録したデータベースを利用して半導体集積回路装置を設計する方法に関する。
従来より、既存の資産であるIPを利用して新たな半導体集積回路装置(LSI,システムLSI,回路など)を生成したり、既存の半導体集積回路装置の一部を改変したい場合、設計の段階で、どのIP(チップなど)を利用してそのようなシステムなどを構築するかについては、設計者の熟練に頼った手作業による各IP中の機能の組み立てを行なっている。
特に、互いに回路規模,メモリ容量,ピン数,クロック系統などのパラメータや、同期・非同期の相違があるIP同士を統合する場合や、複数のプロセッサを有するシステムを再構築,生成する場合、あるIPの一部を利用したい場合などにおいては、設計者の熟練度が特に要求される。
しかしながら、近年のように、設計される対象となる半導体集積回路装置が大規模になってくると、半導体集積回路を構成する膨大な数の要素間で複数のパラメータの食い違いが相互に入り乱れて生じている。特に、既存の設計資産であるIPを再利用する際には、パラメータの食い違いなどによって、設計者の熟練度だけでは、IPやその一部を有効に活用することが困難になっている。その結果、設計工期の大幅な増大や設計不能な自体も発生している。
本発明の目的は、上述のような従来の半導体集積回路装置の設計における不具合の大きな原因が、各IPを機能に分けて解析,分割等するための適切な手段がなかった点にあることに着目し、各IPの機能を解析してからパラメータの相違などに応じて半導体集積回路を設計することにより、設計の自動化による設計工期の短縮や設計される半導体集積回路装置の品質の向上を図ることにある。
本発明の第1の半導体集積回路装置の設計方法は、互いにパラメータが異なる複数の回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、上記半導体集積回路装置の要求仕様を入力するステップ(a)と、上記データベースの複数の回路に関する情報を入力して、上記各回路のパラメータを自動的に解析するステップ(b)と、上記解析結果に応じて、要求仕様に適合するように上記半導体集積回路の設計を自動的に行なうステップ(c)とを含んでいる。
この方法により、各々異なるパラメータを含む複数の回路を要求仕様に適合させながら1つの半導体集積回路に自動的にまとめることが可能になる。したがって、大規模な半導体集積回路装置を設計する場合にも、設計工期の短縮と設計される半導体集積回路装置の品質の向上とを図ることが可能になる。
上記パラメータを上記複数の回路の回路規模とし、上記ステップ(a)では、設計される半導体集積回路装置の回路面積又はGATE数の制限範囲を入力し、上記ステップ(b)では、上記半導体集積回路装置の回路面積又はGATE数が上記制限範囲内に収められる状態で上記半導体集積回路装置内に搭載される回路の組み合わせを解析することにより、設計される半導体集積回路装置の回路面積をできるだけ小さく抑制することができる。
上記ステップ(b)では、上記各回路間におけるパッドの共有可能性を解析することにより、パッドの共有化による回路面積の縮小が可能になる。
上記パラメータを、上記複数の回路のメモリの種類又は容量とし、上記ステップ(a)では、設計される半導体集積回路装置のメモリの種類又は容量の制限範囲を入力し、上記ステップ(b)では、上記各回路の外部メモリの共有状況と、各回路間におけるメモリの共有可能性又は分割可能性とに応じて、最適なメモリの組み合わせを解析することにより、メモリ容量をできるだけ小さく抑制することが可能になる。
上記パラメータを、上記複数の回路のピン数とし、上記ステップ(a)では、設計される半導体集積回路装置の各回路におけるピン数の制限範囲を入力し、上記ステップ(b)では、上記各回路のピン数を上記制限範囲に収めながら、最適な回路の組み合わせを解析することにより、ピン数の制限を考慮した設計が可能となる。
上記ステップ(b)では、上記各回路のピンの種類をも考慮して、最適な回路の組み合わせを解析することにより、ピン属性の適合性をも考慮した設計が可能となる。
上記パラメータを、上記複数の回路のクロック周波数とし、上記ステップ(a)では、設計される半導体集積回路装置の各回路におけるクロック周波数を入力し、上記ステップ(b)では、上記各回路の動作周波数が上記ステップ(a)で入力されたクロック周波数に適合するように、最適な回路の組み合わせを解析することにより、要求されるクロック周波数によって多数の回路を円滑に動作させながら、半導体集積回路装置を設計することが可能になる。
上記ステップ(b)では、上記各回路におけるクロックジェネレータの共有化とクロックラインの最適化とのための解析を行なうことにより、さらに、設計される半導体集積回路装置の品質の向上を図ることができる。
本発明の第2の半導体集積回路装置の設計方法は、互いに動作周波数が異なる複数の回路について少なくとも各回路の上限動作周波数に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、上記データベースに格納されている上記複数の回路の動作周波数と上限動作周波数とを解析して、上記複数の回路を最適化又は再構成する方法である。
この方法により、互いに異なる動作周波数によって動作する複数の回路を組み込んだ半導体集積回路装置を容易に設計することができる。
本発明の第3の半導体集積回路装置の設計方法は、互いに動作周波数が異なる複数の回路について少なくとも各回路の上限動作周波数に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、上記半導体集積回路装置のクロックに関する要求仕様を入力するステップ(a)と、上記データベースから上記複数の回路に関する情報を取り込んで、上記各回路の上限動作周波数と上記クロックに関する要求仕様との調整可能性を解析するステップ(b)と、上記解析結果に応じて、上記半導体集積回路の設計可能性の可否を表示するステップ(c)とを含んでいる。
この方法により、複数の回路の上限動作周波数を考慮しながら、複数の回路の動作をクロックに関する要求仕様に適合させながら半導体集積回路装置を設計することができる。
上記ステップ(b)では、上記各回路におけるクロック系統の同一化の可能性を含めて解析することにより、設計される半導体集積回路装置内のクロック系統をできるだけ簡素化することができる。
上記ステップ(c)で、上記半導体集積回路装置の設計が不能であると判定されたとき、上記複数の回路のうちステップ(a)で入力されたクロックに関する要求仕様に適合しない回路には、上記クロックに関する要求仕様に適合させるための付加回路を生成するステップ(d)をさらに含むことが好ましい。
その場合、上記ステップ(d)では、上記複数の回路のうちステップ(a)で入力されたクロックに関する要求仕様に適合しない回路のうち少なくとも一部の回路を、非同期回路にするための付加回路を生成することもできる。
本発明の第4の半導体集積回路装置の設計方法は、マイクロコードによって制御される回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、上記データベースに格納されているマイクロコードによる回路の動作状況を解析して、上記回路を最適化又は再構成する方法である。
この方法により、プロセッサなどのマイクロコードに応じて動作する回路を自動的に最適化又は再構成することができる。
本発明の第5の半導体集積回路装置の設計方法は、マイクロコードによって制御される回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、設計対象となる回路を制御するための使用マイクロコードに関する要求仕様を入力するステップ(a)と、上記データベース内の情報を取り込んでマイクロコードによる回路の動作状況を解析するステップ(b)と、上記解析された回路の動作状況と上記入力された使用マイクロコードに関する要求仕様とを比較して、設計対象となる回路を使用マイクロコードによって生成できる可能性を解析するステップ(c)と、上記解析結果に応じて、上記複数の回路の設計可能性の可否を表示するステップ(d)とを含んでいる。
この方法により、プロセッサ等の回路の機能を要求仕様に適合させるように修正したり、複数の回路の機能を1つの回路によって実現するなどの回路設計が可能になる。
上記ステップ(b)では、上記回路における並列動作状況を含めて解析することにより、回路の簡素化が可能になる。
上記ステップ(b)では、上記回路におけるメモリ使用容量及び必要演算bit数のうち少なくともいずれか1つを含めて解析することにより、設計される回路の過剰スペックの削減が可能になる。
上記ステップ(d)で、上記回路の設計が不能であると判定されたとき、上記使用マイクロコードに関する要求仕様に適合させるための付加回路を生成するステップをさらに含むことが好ましい。
本発明の第6の半導体集積回路装置の設計方法は、各々複数の演算を含む複数の回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、設計対象となる回路に要求される機能を入力するステップ(a)と、上記データベース内の情報を取り込んで、上記各回路の演算と上記要求される機能を実現するために必要な演算とを比較して、上記設計対象となる回路を上記データベースに格納された複数の回路に含まれる演算から生成できる可能性を自動的に解析するステップ(b)と、上記解析結果に応じて、上記回路の設計可能性の可否を自動的に表示するステップ(c)とを含んでいる。
この方法により、多数の回路を1つの半導体集積回路装置に集約する作業を自動的に行わせることができる。
本発明の第7の半導体集積回路装置の設計方法は、各々複数の演算を含む複数の回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、設計対象となる回路に要求される機能を入力するステップ(a)と、上記データベース内に格納されている複数の回路のうち少なくとも1つの回路の情報を取り出して、上記取り出された回路に含まれる演算と上記要求される機能を実現するために必要な演算とを比較して、上記設計対象となる回路を上記取り出された回路に含まれる演算から生成できる可能性を自動的に解析するステップ(b)と、上記解析結果に応じて、上記要求される機能を実現するために不足している演算がある場合には、上記データベースに格納されている当該演算を含む回路を自動的に表示するステップ(c)とを含んでいる。
この方法によっても、多数の回路を1つの半導体集積回路装置に集約する作業を自動的に行わせることができる。
本発明の第8の半導体集積回路装置の設計方法は、各々複数の演算と、演算の実行に必要な回路要素とを含む複数の回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、設計対象となる回路に要求される機能を入力するステップ(a)と、上記データベース内に格納されている複数の回路のうち少なくとも1つの回路の情報を取り出して、上記取り出された回路に含まれる演算に必要な回路要素と上記要求される機能を実現するために必要な演算とを比較して、上記取り出された回路に含まれる回路要素のうち,上記設計対象となる回路の生成に不要な回路要素を自動的に削除するステップ(b)とを含んでいる。
この方法により、既存の回路の機能を簡素化しながらこれを利用して新たな回路を生成することができる。
本発明の第9の半導体集積回路装置の設計方法は、複数の機能を含むIPに関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、上記IPの各機能の接続部分をIPの外部に引き出せるように、上記データベースにIPの構造を階層化して格納する方法である。
この方法により、IPの複数の機能のうち一部の機能を利用して半導体集積回路装置を設計するために利用できるデータベースを得ることができる。
本発明の第10の半導体集積回路装置の設計方法は、複数の機能を含む設計資産であるIPに関する情報が内部の機能の接続部分も含めて階層化されて格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、上記IPの各機能と各機能の接続部分に関する情報を取り出すステップ(a)と、上記取り出したIPの各機能のうち再利用の対象となる機能の接続部分をIPの外部に引き出すステップ(b)とを含んでいる。
この方法により、IPの一部の機能を利用して、種々の設計を行なうことが可能になる。
上記ステップ(b)の後、上記引き出された機能の接続部分を入出力ピンとして生成することにより、上記再利用の対象となる機能のみからなる新たな半導体集積回路装置を設計するステップをさらに含むことにより、新たなIPを生成することができる。
上記ステップ(b)の後、上記引き出された機能の接続部分を上記再利用の対象となるIPとは異なる他のIPと接続して、上記再利用の対象となるIPと上記他のIPとにより新たな半導体集積回路装置を設計するステップをさらに含むこともできる。
上記ステップ(b)の後、上記引き出された機能の接続部分を上記再利用の対象となるIPとは異なる他のIPと接続するとともに、上記他のIPのうち上記引き出された機能と同じ機能を削除することにより、上記再利用の対象となるIPと上記他のIPとにより新たな半導体集積回路装置を設計するステップをさらに含むことにより、設計される半導体集積回路装置の占有面積の低減を図ることができる。
本発明の半導体集積回路装置の設計方法によれば、半導体集積回路装置の設計に利用する資産であるIP,回路などの機能を適切に分割,解析する手段を講ずることにより、大規模な半導体集積回路装置の設計に適した設計方法の提供を図ることができる。
(第1の実施形態)
本実施形態においては、既存の設計資産を利用して新たな半導体集積回路装置(システム又はシステムの1要素となるLSI)を設計する際に、既存の設計資産の共通点,制限などを考慮して再構成を行なう方法について、考慮するパラメータ毎に実施例に分けて説明する。
本実施形態においては、既存の設計資産を利用して新たな半導体集積回路装置(システム又はシステムの1要素となるLSI)を設計する際に、既存の設計資産の共通点,制限などを考慮して再構成を行なう方法について、考慮するパラメータ毎に実施例に分けて説明する。
−第1実施例−
本実施例では、既存の設計資産の回路規模の制限の下にシステムやLSIの再構成を行なう方法について説明する。図1は、本実施例におけるシステム再構成の基本的な手順を示すフローチャートである。
本実施例では、既存の設計資産の回路規模の制限の下にシステムやLSIの再構成を行なう方法について説明する。図1は、本実施例におけるシステム再構成の基本的な手順を示すフローチャートである。
まず、ステップST11で、再構成条件に関する情報を入力する。この再構成条件の情報には、回路規模条件として、GATE数,チップ面積などの条件がある。チップ面積として、L×Wの寸法が登録されている。
次に、ステップST12で、ステップST11で入力された再構成条件と、システム構成要素DB(データベース)内の情報と、設計DB(データベース)内の情報とが入力された場合に、回路規模条件のエリアに収めることのできるチップの組み合わせを自動的に検出する(解析)。この検出項目の例としては、LSI内部の機能ブロックのGATE数や面積の検出、同一ブロックやパッド,パッド周囲の部分など共通部分の共有可能な部分の検出、最適組み合わせに対するGATE数や面積の算出などがある。このシステム構成要素DBには、再構成しようとするシステムを構成するLSIの回路規模に関する情報、例えば、論理GATE数,チップ面積などの情報が登録されている。また、設計DBには、ライブラリによってGATE面積が変わるなどというノウハウや、機能ブロックの面積に関する情報が登録されている。
次に、ステップST13で、システムの再構成を実行する。その内容としては、例えば、ソフトウエア又はRTレベルでの回路合成、シミュレーション、合成結果に対する自動レイアウト、レイアウトから抽出した遅延情報などのバックアノテーションなどがある。その後、ステップST14で、再構成の結果を出力する。
図2は、パッド部分の共有化を自動的に行なってシステムの再構成を行なう場合における手順を示すフローチャートである。図3(a)〜(d)は、図2の各ステップにおいて現れる再構成の対象となる回路の構造やデータを示す図である。以下、図3(a)〜(d)を参照しながら、図2のフローチャートに沿って、本具体例の処理を説明する。
まず、ステップST20で、設計対象となる回路の回路規模条件を入力する。この例では、“チップ面積が10mm×10mm=100mm2 以下であること”という条件が設定される。
次に、ステップST21で、システム構成要素DBから利用可能な回路A〜Eについて、その面積に関する情報を入力すると、例えば図3(a)に示すような5つの回路A〜Eのデータが取り出されたとする。そこで、この回路A〜Eの中から所望の機能を果たしつつチップ面積10mm×10mm=100mm2 内に収まりそうな組み合わせを抽出する。すると、図3(b)に示すように、回路Aのみの場合と、回路Bと回路Dとを組み合わせる場合と、回路Cと回路Eとを組み合わせる場合とが抽出される。なお、回路Bと回路Dとを組み合わせると、100mm2 以上の面積になるが、後述するような共有化による面積の低減を図ることで100mm2 以下にできる可能性があることから、検討の対象とする。
次に、ステップST22で、LSI内部の機能ブロックのGATE面積をチェックして、共通部分があれば同一ブロックブロック等を共有化する。そして、ステップST23で、組み合わせたLSI内で、パッドの冗長部分を削除して共有化する。たとえば、図3(c)に示すように、回路Bと回路Dのパッド面積を抽出すると、回路Bにおいては、VCCパッドが10個、GNDパッドが10個あり、1つのパッドの面積が0.5mm2 であるとする。一方、回路Dにおいては、VCCパッドが8個、GNDパッドが8個あるとし、1つのパッドの面積は共通であるとする。このとき、そのまま回路Bと回路Dとを搭載すると総パッド数は36個になるが、パッドを共有化することで回路Bと回路Dとを組み合わせたときの総パッド数が、VCCパッド12個とGNDパッド12個とで済むことがわかったとする。つまり、パッドの部分の共有化により、12×0.5=6(mm2 )の面積低減が可能になる。同様に、回路Cと回路Eとを組み合わせると、パッド部分の共有化により、8(mm2 )の面積低減が可能になるとする。
その結果、ステップST24で、最適組み合わせの決定と面積の再計算とを行なうと、図3(d)に示すように、回路A(そのまま)と、回路Bと回路Dとを組み合わせた新たな回路路B’と、回路Cと回路Eとを組み合わせた新たな回路C’とからなるシステムが再構成される。
ここで、図2に示すフローにおいて、回路規模条件が入力されると、システム構成要素DBから各回路の組み合わせを抽出することは、例えば“組み合わせる回路の数が2つ以下で、両者の面積の合計が100±25(mm2 )であること”などという条件を設定しておくことにより、各回路の抽出、各回路のパッドの数や面積の検索及び抽出を自動的に行なわせることは容易である。したがって、ステップST22,ST23,ST24の処理は容易に自動的に行なうことができる。
同様に、図1のフローにおいて示した機能ブロックのGATE数が共通であることなどを手がかりに、共有化できるブロックを抽出し、同一ブロックを共有化してシステムを再構成する作業を自動的に行わせることができる。
本実施例では、システム又はLSIの再構成において、パッド面積の削減や回路ブロックの共有化による半導体集積回路装置の低減を図ることができる。
−第2の実施例−
本実施例では、既存の設計資産が使用しているメモリを最適化しつつシステムやLSIの再構成を行なう方法について説明する。
本実施例では、既存の設計資産が使用しているメモリを最適化しつつシステムやLSIの再構成を行なう方法について説明する。
図4は、本実施例におけるシステム再構成の基本的な手順を示すフローチャートである。図5(a)〜(c)は、それぞれ順に、本実施例におけるシステムの再構成を行なう対象となる回路、メモリリスト及び再構成後の回路を示す図である。以下、図5(a),(b)を参照しながら、図4のフローチャートに沿ってシステムの再構成の手順の例を説明する。本実施例においても、再構成のための基本的な処理の流れは、上記第1の実施例と同じであるが、入力される条件や再構成のための解析の内容が第1の実施例とは異なっている。
まず、ステップST11で、再構成条件に関する情報を入力する。この再構成条件の情報には、メモリ使用の最適化条件として、LSI内メモリ(内部メモリ),外部メモリなどの条件がある。
次に、ステップST12で、ステップST11で入力された再構成条件と、システム構成要素DB(データベース)内の情報と、設計DB(データベース)内の情報とが入力されると、メモリの共有化や分割を行ないながら回路の組み合わせの可能性を自動的に解析する。システム構成要素DBには、システム内のメモリやLSI内部のメモリの構成や規格が登録されている。例えば、メモリサイズ(アドレス幅,ビット幅),アクセススピード,タイミング,メモリの種類などの情報が含まれている。設計DBには、設計ノウハウとして、メモリの共有化,メモリの分割方法,アクセスタイミングなどの情報が含まれている。
解析項目の例としては、以下のものがある。まず、各LSI内部で使用されているメモリと他のLSI内部のメモリとの比較や、外部メモリの共有状況の解析を行なう。例えば、図5(a)に示すように、回路Aと回路Bとが共通のメモリ3にアクセスしており、回路Cと回路Eとが共通のメモリ6にアクセスしているものとする。ここから、外部メモリ3,6が共有されているという情報が得られる。また、図5(b)に示すようなメモリリストが得られ、メモリ1〜7の種類,配置場所,メモリサイズ,アクセススピード(アクセスタイム)に関する情報が得られる。これをみると、メモリ1とメモリ2とは、種類がSRAMで、ビット幅が8bitで、アドレス数はメモリ1の方がメモリ2よりも大きく、アクセスタイムはメモリ1の方がメモリ2よりも長いので、メモリ1で共用できるということがわかる。そこで、これらの2つの解析結果から最適なメモリの組み合わせの自動抽出を行なう。例えば、メモリ5を共有する回路Aと回路Bとの組み合わせ、メモリ6を共有する回路Cと回路Eとの組み合わせを抽出し、さらに、メモリの共有化が可能なメモリや、メモリの分割の可能性を自動的に解析する。最終的に、アクセススピード,メモリサイズの検討を行なう。そして、問題がない範囲でメモリの共有化や分割を行なう。
その結果、ステップST13で、システムの再構成を実行し、図5(c)に示すように、回路Aと回路Bとの組み合わせからなりメモリ1とメモリ3とを内蔵する新たな回路A’と、回路Cと回路Eとの組み合わせからなりメモリ4とメモリ5とメモリ6とを内蔵する新たな回路C’とが生成される。すなわち、メモリ2はメモリ3によって共用され、メモリ3(外部ROM)は新たな回路A’内になお蔵される。また、メモリチップとして独立していたメモリ6は新たな回路C’内に内蔵される。この再構成の実行の際に、ソフトウエア又はRTレベルでの回路合成、シミュレーション、合成結果に対する自動レイアウト、レイアウトから抽出した遅延情報などのバックアノテーションなどを行なうことは第1の実施例と同様である。
そして、最終的に、ステップST14で再構成の結果を出力する。本実施例においても、上記第1の実施例と同様に、図4に示す各ステップST11〜ST14を自動的に行なうことができる。なお、本実施例では、説明を省略しているが、メモリサイズに冗長がある場合には、メモリの分割を行なうこともできる。
本実施例により、メモリの共有化による構成の簡素化,チップ面積の削減や、メモリの分割によるチップ面積の削減などを図ることができる。
−第3の実施例−
本実施例では、既存の設計資産が使用しているピンの数や種類などの制限の下にシステムやLSIの再構成を行なう方法について説明する。
本実施例では、既存の設計資産が使用しているピンの数や種類などの制限の下にシステムやLSIの再構成を行なう方法について説明する。
図6は、本実施例におけるシステム再構成の基本的な手順を示すフローチャートである。図7(a),(b)は、本実施例におけるシステムの再構成を行なう対象となるLSIの再構成前後の状態を示す図である。以下、図7(a),(b)を参照しながら、図6のフローチャートに沿ってシステムの再構成の手順の例を説明する。本実施例においても、再構成のための基本的な処理の流れは、上記第1の実施例と同じであるが、入力される条件や再構成のための解析の内容が第1の実施例とは異なっている。
まず、ステップST11で、再構成条件に関する情報を入力する。この再構成条件には、LSIのパッケージピンのpin数に関する条件として、“208pin以内であること”などの条件がある。
次に、ステップST12で、ステップST11で入力された再構成条件と、システム構成要素DB(データベース)内の情報と、設計DB(データベース)内の情報とが入力されると、ピン数の制限などの条件にしたがいながら回路の組み合わせの可能性を自動的に解析する。システム構成要素DBには、各LSIの使用pin数と、各pinの属性(IN,OUT,IN/OUTの別),用途,ブロック系統(制御ブロック,出力回路ブロックなど)の分類などが登録されている。この例では、図7(a)に示すように、LSI−Aのピン数が208、LSI−Bのピン数が80、LSI−Cのpin数が120、LSI−Dのpin数が40,LSI−Eのピン数が90個であるとする。また、設計DBに格納されている設計ノウハウとしては、ブロック系統の分類や、pin属性,pin配置などがある。
解析項目の例としては、以下のものがある。まず、条件に応じたpin数の解析を行なう。この例では、図7(a)に示すように、各LSI−A〜Eのpin数がわかる。また、pinの属性,ブロック系統によるLSIの配置など、再構成のための解析を行なう。また、再構成による共有部分,冗長部分の最適化の可能性の解析などを行なう。pinの種類には、デバッグpin,電源pin,グランドpin,テストpin,プローブなどがあり、それらの部分がLSIを統合することによって削減でき、冗長部分を削減することができる。そして、再構成情報として、ピン数,pin属性,pin種類,ブロック系統図などの情報を出力する。その結果、LSI−BとLSI−Cとのピン数の和は200個であり、LSI−DとLSI−Eとのピン数の和は130個であって、LSI−BとLSI−Cとの共有しうるpinの数は3個で、LSI−DとLSI−Eとの間では共有できるpinがないという解析結果が得られたとする。別の組み合わせを検討すると、LSI−BとLSI−Eとのピン数の和は170個であり、LSI−CとLSI−Dとのピン数の和は160個であって、LSI−BとLSI−Eとで共有できるブロックがあり且つ共有できるpinが12個あること、LSI−CとLSI−Dとで共有できるpinが8個あることという解析結果が得られたとする。
そこで、ステップST13で、もっとも有利なパターンでステムの再構成を実行し、図7(b)に示すように、LSI−Aはそのままで、LSI−BとLSI−Eとの組み合わせからなりpin数が170個の新たなLSI−B’と、LSI−CとLSI−Dとの組み合わせからなりpin数が160個の新たなLSI−C’とが生成される。この場合、LSI−Aはpin数が制限値に達しているので他の回路と組み合わせることはできない。この再構成の実行の際に、ソフトウエア又はRTレベルでの回路合成、シミュレーション、合成結果に対する自動レイアウト、レイアウトから抽出した遅延情報などのバックアノテーションなどを行なうことは第1の実施例と同様である。
そして、最終的に、ステップST14で再構成の結果を出力する。本実施例においても、上記第1の実施例と同様に、図4に示す各ステップST11〜ST14を自動的に行なうことができる。
本実施例によると、pin数やpin属性などの制約からはずれることなく、LSIの再構成を自動的に行なうことができ、かつ、冗長部分の削除による構成の簡素化、コストの低減を図ることができる。
−第4の実施例−
本実施例では、既存の設計資産が使用している動作周波数(クロック周波数)の分類に応じてシステムやLSIの再構成を行なう方法について説明する。
本実施例では、既存の設計資産が使用している動作周波数(クロック周波数)の分類に応じてシステムやLSIの再構成を行なう方法について説明する。
図8は、本実施例におけるシステム再構成の基本的な手順を示すフローチャートである。図9(a)〜(c)は、それぞれ順に、本実施例におけるシステムの再構成を行なう対象となるLSIの動作周波数の抽出結果、LSIの内部ブロックの動作周波数の抽出結果、再構成後のシステムの構成を示す図である。以下、図9(a)〜(c)を参照しながら、図8のフローチャートに沿ってシステムの再構成の手順の例を説明する。本実施例においても、再構成のための基本的な処理の流れは、上記第1の実施例と同じであるが、入力される条件や再構成のための解析の内容が第1の実施例とは異なっている。
まず、ステップST11で、再構成条件に関する情報を入力する。この再構成条件には、動作周波数の分類による再構成条件として、“クロック周波数が共通又は逓倍関係にあること”などの条件がある。
次に、ステップST12で、ステップST11で入力された再構成条件と、システム構成要素DB(データベース)内の情報と、設計DB(データベース)内の情報とが入力されると、動作周波数の制限条件にしたがいながら回路の組み合わせの可能性を自動的に解析する。
システム構成要素DBには、各LSIに入力されるクロック周波数や、LSIの内部機能ブロック,内部ロジックなどについての動作周波数(使用しているクロック周波数)が登録されている。設計DBに登録された設計ノウハウの例としては、同一周波数による再構成の方法やブロック分割に関するノウハウがある。
解析項目の例としては、以下のものがある。まず、各LSIの動作周波数を比較して同一周波数の組み合わせを抽出する。ここでは、図9(a)に示すように、各LSI−A〜Eの動作周波数がわかり、LSI−AとLSI−Eとには共通の動作周波数25MHzのクロック信号が入力され、LSI−CとLSI−Dとには共通の動作周波数33MHzのクロック信号が入力されることがわかる。また、LSI内部ブロック毎の動作周波数を比較し、同一周波数の組み合わせブロックの可能性を解析する。LSI自体に入力されるクロック周波数によって内部ブロックが動作しているとは限らず、一般的には、入力されたクロック信号の分周や逓倍を行なって使用していることが多いからである。この例では、図9(b)に示すように、内部ブロックa1,a2,b2,e1が75MHzで、内部ブロックc1,c2,d2が50MHzで、内部ブロックb1,b3,d1,e2,e3が66MHzでそれぞれ動作することがわかったとする。そこで、LSI単位の動作周波数の組み合わせ情報とLSIの内部ブロック単位の動作周波数の組み合わせ情報とのNAND演算を行なって、共通のLSI内に収納できる内部ブロックの組み合わせを解析する。さらに、最適な組み合わせのうちでクロックの使用方法を再検討し、最適化(同一クロックジェネレータの共有化や、クロックラインの最適化など)を行なう。そして、最適な組み合わせ回路でのクリティカルパス(システムクリティカルパスや、各LSI内でのクリティカルパス)の検出を行なっておく。
その結果、ステップST13で、システムの再構成を実行し、図9(c)に示すように、入力クロックが25MHzで内部ブロックa1,a2,b2,e1を含む新たなLSIA’と、入力クロックが50MHzで内部ブロックc1,c2,d2を含む新たなLSI−B’と、入力クロックが33MHzで内部ブロックb1,b3,d1,e2,e3を含む新たなLSI−C’とからなるシステムを生成する。この再構成の実行の際に、ソフトウエア又はRTレベルでの回路合成、シミュレーション、合成結果に対する自動レイアウト、レイアウトから抽出した遅延情報などのバックアノテーションなどを行なうことは第1の実施例と同様である。
そして、最終的に、ステップST14で再構成の結果を出力する。本実施例においても、上記第1の実施例と同様に、図4に示す各ステップST11〜14を自動的に行なうことができる。
なお、本実施例では、説明を省略しているが、メモリサイズに冗長がある場合には、メモリの分割を行なうこともできる。
本実施例により、クロック周波数の相違に起因するクロストークを回避しつつ、LSIの再構成を図ることができる。
なお、上記第1〜第4の実施例における回路やLSIは、個別にチップ上に搭載されるものであってもよいし、システムLSIとして共通のチップ上に搭載されるものであってもよい。
(第2の実施形態)
本実施形態においては、互いに異なる周波数によって動作する複数の回路、又は非同期回路と同期回路を組み合わせて1つの半導体集積回路装置(LSI又はシステムLSI、以下、単に「システム」とする)を構築あるいは再構成するための設計方法について、各実施例に分けて説明する。
本実施形態においては、互いに異なる周波数によって動作する複数の回路、又は非同期回路と同期回路を組み合わせて1つの半導体集積回路装置(LSI又はシステムLSI、以下、単に「システム」とする)を構築あるいは再構成するための設計方法について、各実施例に分けて説明する。
−第1の実施例−
図10は、本実施例における設計方法を示すフローチャートである。図11は、本実施例において使用する設計データベース内に登録されている既存の回路の情報を示す図である。
図10は、本実施例における設計方法を示すフローチャートである。図11は、本実施例において使用する設計データベース内に登録されている既存の回路の情報を示す図である。
図10に示すように、本実施例の再構成方法は、設計に利用する既存の資産である回路A,B,C,Eに関するデータが登録されている設計データベースを用いて行なわれる。設計データベースには、図11に示すように、各回路A,B,C,Eの構成と、クロックA〜Fとに関する情報が登録されている。ここで、回路Aは、クロックAにより動作するように構成されており、クロックAのクロック周波数はfA で、上限動作周波数(動作が可能な最大周波数)はflimAである。回路BはクロックBによって動作するように構成されており、クロックBのクロック周波数はfB で、上限動作周波数はflimBである。回路CはクロックC,Dによって動作するように構成されており、クロックC,Dのクロック周波数はfC ,fD で、上限動作周波数はflimC,flimDである。回路EはクロックE,Fによって動作するように構成されており、クロックE,Fのクロック周波数はfE ,fF で、上限動作周波数はflimE,flimFである。ここで、回路C,回路Eはいずれも2系統のクロックを使用する回路であるが、クロックCとクロックDとの間には依存関係がないが、クロックEとクロックFとの間には、fE >4×fF という依存関係がある。
以下、図11を参照しながら図10のフローチャートに沿って本実施例の再構成の方法について説明する。
まず、ステップST10で、システムで使用するクロック系統の数である使用クロック数,設計対象のシステム全体で使用するクロックの周波数(以下、「システムクロック周波数」と呼ぶ),システムに要求される機能である必要機能などの各種パラメータを入力する。ここでは、使用クロック数としてクロックZが1つだけ入力され、クロックZの周波数つまりシステムクロック周波数がfZ であるものとする。ただし、使用クロック数が複数ある場合には、システムクロック周波数も2種類存在することになる。この入力されたパラメータは、設計装置のパラメータ保持部に記憶されている。
次に、ステップST11に進み、ステップST10で入力された必要機能に関する情報を取り込むとともに、データベースから既存の資産に関する情報を取り込んで、設計対象のシステムに必要な機能に応じ、システムを構成する際に用いる回路を選択して出力する。ここでは、回路A,B,C,Eが選び出されたものとする。
次に、ステップST12で、選択された各回路A,B,C,Eが使用しているクロックA〜Fの上限動作周波数flimA〜flimFの大小関係を解析する。その結果、以下の不等式(1)
flimA>flimD>flimB>flimE>flimF>flimC (1)
で表される関係を有することが明らかになったものとする。
flimA>flimD>flimB>flimE>flimF>flimC (1)
で表される関係を有することが明らかになったものとする。
次に、ステップST13に進んで、ステップST10で入力されたシステムクロック周波数fZ を取り込んで、システム全体の周波数関係を解析する。具体的には、システムクロック周波数fZ と、各選択回路の上限動作周波数flimA〜flimFとの大小関係を確認する。システムクロック周波数と各選択回路の上限動作周波数との関係によっては、各回路A〜Eを組み合わせてシステムを構成できなくなる自体もあるからである。その結果、下記の不等式(2)
flimA>flimD>flimB>fZ >flimE>flimF>flimC (2)
で表される関係などを有することが明らかになったものとする。
flimA>flimD>flimB>fZ >flimE>flimF>flimC (2)
で表される関係などを有することが明らかになったものとする。
次に、ステップST14で、上記不等式(2)の関係を取り込むとともに、ステップST10で入力された使用クロック数についての情報を取り出して、各回路A,B,C,Eを1系統のクロックで動作させて1つのシステムを構成できるか否かを判定する。そして、設計しようとしているシステムの構築が可能であればステップST15に進んで、システム全体のタイミングを検証した後、ステップST16に進んで、構築されたシステムに関する情報を表示する。
一方、この例のように、不等式(2)で表される周波数関係がある場合には、システムクロック周波数fZ よりも小さい上限動作周波数flimE,flimF,flimCを有するクロックE,F,Cがあるので、このままでは、1系統クロック動作のシステムを構成することができないので、ステップST14の判別では、システムの構成が不可能であると判断される。したがって、ステップST17に移行して、システムの構成が不可能である旨と再設計のために必要な情報とを表示する。
図12は、再設計のために必要な情報の例を示す図である。同図に示すように、クロックZだけでなくクロックC,E,Fの3系統のクロック(又はこれらを動作させるための1系統のクロック)が必要であることが表示されている。また、上記不等式(2)の関係もこのとき表示される。
なお、ステップST13で、下記の不等式(3)
flimA>flimD>flimB>flimE>flimF>flimC>fZ (3)
の関係を有することがわかった場合には、各回路A,B,C,Eがシステムクロック周波数fZ で動作可能である。したがって、図10に示すフローチャートにおいて、ステップST16で、構築されたシステムに関する情報を出力することになる。
flimA>flimD>flimB>flimE>flimF>flimC>fZ (3)
の関係を有することがわかった場合には、各回路A,B,C,Eがシステムクロック周波数fZ で動作可能である。したがって、図10に示すフローチャートにおいて、ステップST16で、構築されたシステムに関する情報を出力することになる。
本実施例によると、既存の資産である回路A,B,C,Eがあり、各回路のクロック周波数(動作周波数)が互いに異なる場合に、指定されたクロックを用いて、これらの回路を1つのシステムに構築できるか否かの判断を容易に行なうことができる。しかも、設計仕様の入力を除くと、各ステップを自動的に行なわせることも容易である。ただし、必ずしも各ステップを自動的に行なう必要はない。
また、本実施例の設計方法を利用して、既存のシステムのクロック系統を簡素化することも可能である。
−第2の実施例−
図13は、本実施例における設計方法を示すフローチャートである。本実施例においても、設計データベースには、図11に示す情報が格納されているものとする。以下、図13のフローチャートに沿って、本実施例におけるシステムの設計方法について説明する。
図13は、本実施例における設計方法を示すフローチャートである。本実施例においても、設計データベースには、図11に示す情報が格納されているものとする。以下、図13のフローチャートに沿って、本実施例におけるシステムの設計方法について説明する。
本実施例においても、ステップST10〜ST16の処理を行なう点は、上記第1の実施例と同様である。
ここで、本実施例では、ステップST14の判別において、システムの構築が不可能であると判断された場合には、ステップST17に移行して、付加回路の生成を行なう。すなわち、上記不等式(2)の関係から明らかになっているシステムクロックZによって動作させることができない回路CのクロックC,回路EのクロックE,Fに付加回路を生成する。
図14は、各回路C内に付加回路Xが設けられ、回路E内に付加回路Y,Zが設けられた例を示す図である。また、図15(a),(b)は、設計データベースに登録されている現在の回路(回路C,回路Eなど)の構成を示す回路図、及び付加回路生成後の回路を示す図である。図15(b)に示すように、システムクロック周波数fZ と、クロックC,E,Fのクロック周波数fC ,fE ,fF との周波数差による動作タイミングのズレを調整するためのフリップフロップを適宜配置する。これにより、各回路C,Eを高速回路にでき、クロックZに応じて動作することが可能になる。
なお、システムクロック周波数fz がクロック周波数fC ,fE ,fF などの整数倍になっている場合、クロックC,E,Fが入力される部位に分周器あるいは分周器と逓倍器を介設することで、回路C又は回路Eを同期回路にして、各回路の正常な動作を確保することができる。
そして、ステップST15で、タイミング検証がOKになるまで付加回路の追加,削除などを行い、最終的に各回路の動作タイミングが正常に維持されると、ステップST16に進む。
本実施例では、上記第1の実施例における効果だけでなく、付加回路の自動生成による新たなシステムの構築や、既存のシステムの再構築が可能になる。
(第3の実施形態)
次に、プロセッサを制御するためのマイクロ命令列からなるマイクロコードを解析した結果を用いて、プロセッサ回路を再構成ないし設計する方法に関する第3の実施形態について説明する。特に、本実施形態においては、画像圧縮処理システム中の一部であるプロセッサ回路を、マイクロコードを手がかりに再構成する方法を例にとって説明する。
次に、プロセッサを制御するためのマイクロ命令列からなるマイクロコードを解析した結果を用いて、プロセッサ回路を再構成ないし設計する方法に関する第3の実施形態について説明する。特に、本実施形態においては、画像圧縮処理システム中の一部であるプロセッサ回路を、マイクロコードを手がかりに再構成する方法を例にとって説明する。
−第1の実施例−
図16は、本実施形態の第1の実施例におけるプロセッサ回路の再構成方法(設計方法)の手順を示すフローチャートである。図17は、本実施形態の設計に用いる設計データベースに格納されているプロセッサに関する情報である。
図16は、本実施形態の第1の実施例におけるプロセッサ回路の再構成方法(設計方法)の手順を示すフローチャートである。図17は、本実施形態の設計に用いる設計データベースに格納されているプロセッサに関する情報である。
図17に示すように、本実施形態において使用する設計データベースには、既存の資産として利用可能なプロセッサA,B,Cの内容に関する情報が格納されている。ここでは、画像処理システムの一部を再構成する動画像圧縮伸長用のプロセッサAと、動画像伸長用のプロセッサBと、静止画処理用のプロセッサCが登録されている。なお、画像処理システムには、その種類に応じて他の多くの回路も搭載されており、それらの種類はどんなものがあってもよいものとする。プロセッサAには、画像圧縮用回路エンジン群として、動き補償部ME-Aと、離散コサイン変換部DCT-Aと、量子化部Q-Aと、可変長符号化部VLC-Aと、逆離散コサイン変換部IDCT-Aと、逆量子化部IQ-Aとが配置されている。また、画像伸長用回路エンジン群として、可変長復号部VLD-Aと、逆離散コサイン変換部IDCT-Aと、逆量子化部IQ-Aとが配置されている。また、これらの回路エンジン群の作業領域Mem-Aが設けられている。プロセッサBには、可変長復号部VLD-Bと、逆離散コサイン変換部IDCT-Bと、逆量子化部IQ-Bという伸長処理のみを行なう回路エンジン群が配置されている。プロセッサCには、動き補償部ME-Cと、離散コサイン変換部DCT-Cと、量子化部Q-Cと、可変長符号化部VLC-Cと、逆離散コサイン変換部IDCT-Cと、逆量子化部IQ-Cという圧縮処理のみを行なう回路エンジン群が配置されている。これらの回路エンジン群において、同じ機能を有する回路エンジンであっても、配置されているプロセッサによって演算bit数のbit冗長度が異なっている。
以下、図17を参照しながら、図16のフローに沿って本実施形態における回路の再構成方法を説明する。
まず、ステップST20で、設計者が設計仕様として希望するパラメータを入力する。この例では、プロセッサAを制御するためのマイクロ命令列を含むマイクロコードA(プロセッサAを制御するためのプログラム)を利用して、プロセッサA,B,Cのすべての機能を有する回路に再構築するということをパラメータとして入力したものとする。このパラメータの入力は、各種選択することができ、例えば、プロセッサAの過剰スペックを削除して簡素な構成にするという要求に沿って行なうこともできる。
次に、ステップST21で、設計データベースの内容を取り込み、マイクロコードAを用いて、プロセッサ動作のシミュレーションを行なう。ステップST21においては、以下の手順でシミュレーションを行なう。
ステップST22でメモリアドレスバスの解析を行なった後、ステップST23でその解析結果をメモリアクセス情報として記憶する。このとき、メモリのアドレスバスをモニターし、どのアドレス空間にアクセスしているかを検出する。
次に、ステップST24で演算入出力データ値のMax.Min.からデータbit数の解析を行なった後、ステップST25でその解析結果をbit冗長情報として記憶する。このとき、演算器の入出力データをモニターし、採りうる値の範囲を検出し、bit数の冗長度を把握する。
次に、ステップST26で並列演算命令の解析を行なった後、ステップST27でその解析結果を並列動作情報として記憶する。このとき、各機能ブロックの起動命令で、同時に動作させているブロックがあるかどうかを検出し、並列動作の必要性を把握する。
さらに、ステップST28ですべての命令の解析が終了するまで上記処理を繰り返し行なった後、ステップST29で、その解析結果を使用機能情報として記憶する。
その後、ステップST30で、設計データベース内の記述や仕様機能情報を取り込んで、機能による回路選択を行なう、その際、機能に合致するすべての回路を選択する。また、メモリについてはその容量に触れずに選択する。
次に、ステップST31で、メモリアクセス情報を取り込んで必要メモリ容量による回路選択を行なう。このとき、ステップST30において選択した回路から、そのメモリ容量が必要メモリ容量以上かつ必要メモリ容量にもっとも近いメモリを選択し、それ以外のものを除外する。
また、ステップST32で、bit冗長情報を取り込んで必要bit数による回路選択を行なう。このとき、ステップST31において選択した回路から、そのbit数が必要bit数以上かつ必要bit数にもっとも近い回路を選択し、それ以外のものを除外する。
さらに、ステップST33で、並列動作情報の内容を取り込んで、並列動作の要,不要による回路の選択を行なう。このとき、ステップST32を経て残っている回路のうち同一機能を有する複数の回路が存在する場合、それらが並列動作しない場合には1つだけ選択し、残りを削除する。
その後、ステップST34に進んで、不足回路があるか否かを判別し、不足する回路がなければステップST35に進んで、システム全体のタイミングを検証した後、ステップST36で、構築されたシステムに関する情報を表示する。
一方、図18に示す破線の回路(機能)が不足している場合には、このままではシステムを構成することができないので、ステップST34の判別では、不足回路ありと判断される。したがって、ステップST37に移行して、システムの構成が不可能である旨と再設計のために必要な情報とを表示する。
本実施例によると、既存の資産であるプロセッサA,B,Cがある場合に、マイクロコードに対応した回路の生成又は再構成を行いたい場合、プロセッサを制御するための命令コードを含むマイクロコードを解析することで、その生成又は再構成が可能か否かの判断を自動的に行なうことができる。また、希望する生成又は再構成を行なうために必要な処理などに関する情報を表示することで、要求を満たすための対策を講ずることが容易になる。
−第2の実施例−
図19は、本実施例における設計方法を示すフローチャートである。本実施例においても、設計データベースには、図17に示す情報が格納されているものとする。以下、図19のフローチャートに沿って、本実施例におけるシステムの設計方法について説明する。
図19は、本実施例における設計方法を示すフローチャートである。本実施例においても、設計データベースには、図17に示す情報が格納されているものとする。以下、図19のフローチャートに沿って、本実施例におけるシステムの設計方法について説明する。
本実施例においても、ステップST20〜ST30の処理を行なう点は、上記第1の実施例と同様である。ただし、図16におけるステップST16の処理は本実施例では行なわない。
そして、ステップST40で、ステップST23において記憶しているメモリアクセス情報を取り込んで、最適なメモリを生成しておく。
そしてステップST32では、bit冗長情報と最適なメモリとを取り込んで必要bit数による回路選択を行なう。このとき、ステップST30において選択した回路から、そのbit数が必要bit数以上かつ必要bit数にもっとも近い回路を選択し、それ以外のものを除外する。その後、ステップST33〜ST36で、第1の実施例と同様の処理を行なう。
ここで、本実施例では、ステップST34の判別において、システムの構築が不可能であると判断された場合には、ステップST41に移行して、付加回路の生成を行なう。すなわち、ブロック間接続回路の生成を行なう。そして、ステップST35におけるシステム全体のタイミングの検証を行なって、全体タイミング検証でOKになるまで、ステップST41における回路生成とステップST35におけるタイミング検証とを繰り返し行なう。
図20は、本実施例によって生成された新たなプロセッサDの構成を概略的に示すブロック回路図である。同図に示すように、プロセッサDにおいて、プロセッサAに配置されていた動き補償回路ME-Aは不要な回路であると判断されて削除され、プロセッサAの可変長符号化部VLC-Aの代わりに、プロセッサCの可変長符号化部VLC-Cが配置され、プロセッサAの可変長復号部VLD-Aの代わりにプロセッサBの可変長復号部VLD-Bが配置されている。また、作業領域Mem-Aの代わりに、メモリ容量の小さい作業領域Mem-Dが設けられている。さらに、プロセッサAにおけるデータ圧縮処理とデータ伸長処理とを並列に行なう必要がないことや、プロセッサA,B,C間における並列動作がないことから、プロセッサA内のデータ伸長処理用回路エンジン群や、プロセッサB,C内の回路エンジン群の機能がすべてプロセッサDに組み込まれている。
本実施例によると、既存の資産であるプロセッサA,B,Cがある場合に、プロセッサを制御するための命令コードを含むマイクロコードを解析することで、プロセッサA,B,Cの機能をまとめて1つの新たな回路D(プロセッサ)を生成することができる。
また、各プロセッサごとに過剰な機能を削除して、そのプロセッサ単体を再構成することも可能である。
(第4の実施形態)
次に、設定した回路部品の組み合わせにおいて要求機能の実現可能性を判定する方法に関する第4の実施形態について、各実施例に分けて説明する。
次に、設定した回路部品の組み合わせにおいて要求機能の実現可能性を判定する方法に関する第4の実施形態について、各実施例に分けて説明する。
−第1の実施例−
図21(a),(b)は、第1の実施例における要求機能の実現可能性判定方法を説明するための図である。
図21(a),(b)は、第1の実施例における要求機能の実現可能性判定方法を説明するための図である。
まず、図21(a)に示すように、回路X,Y,Z,W,Vがある場合に、各回路に必要な演算を登録する。例えば回路Xには演算A,B,Cが登録され、回路Yには演算A,B,D,E,F,Gが登録され、回路Zには演算E,F,G,H,I,Jが登録され、回路Wには演算A,B,C,D,E,F,G,H,I,J,K,Lが登録され、回路Vには演算J,K,Lが登録されているものとする。
一方、図21(b)に示すように、設計者の要求によって実現したい機能R,S,T,Uが入力されたものとする。このとき、実現したい機能R,S,T,U(要求機能)を演算の組み合わせに自動的にコンパイルする。その結果、この例では、機能R,S,T,Uが、演算A,B,C,E,F,G,J,K,Lの組み合わせによって実現しうることがわかったとする。そこで、これらの演算A,B,C,E,F,G,J,K,Lを含む単一の回路又は複数の回路の組み合わせを自動的に検索する。この例では、単一の回路Wにより、あるいは複数の回路X,Z,Vの組み合わせにより、あるいは複数の回路X,Y,Vにより要求機能を実現することができ、その旨が自動的に表示される。一方、要求機能を実現できないときには、その旨が自動的に表示される。
本実施例により、演算の種類を手がかりに要求機能を自動的に検索することができ、既存の資産である回路の情報を利用して新たな回路の生成などの可能性を迅速に判断することができる。
−第2の実施例−
図22は、第2の実施例における要求機能の実現可能性判定方法を説明するための図である。
図22は、第2の実施例における要求機能の実現可能性判定方法を説明するための図である。
本実施例においても、図21(a)に示すように、データベースには、演算A,B,Cを行なう回路Xと、演算A,B,D,E,F,Gを行なう回路Yと、演算E,F,G,H,I,Jを行なう回路Zと、演算A,B,C,D,E,F,G,H,I,J,K,Lを行なう回路Wと、演算J,K,Lを行なう回路Vとが登録されているものとする。
また、設計者の要求によって実現したい機能R,S,T,Uが入力されたものとする。そして、実現したい機能R,S,T,U(要求機能)を演算の組み合わせに自動的にコンパイルすると、第1の実施例と同様に、機能R,S,T,Uが、演算A,B,C,E,F,G,J,K,Lの組み合わせによって実現しうることがわかっている。このとき、適当な単一の回路又は複数の回路の組み合わせを予め設定する。この例では、回路X,Vが登録されたものとする。このとき、回路X,Vの組み合わせにより、演算A,B,C,J,K,Lが可能であることが出力される。そこで、回路X,Vの組み合わせにより実現できる演算A,B,C,J,K,Lと、要求機能R,S,T,Uを実現するために必要な演算A,B,C,E,F,G,J,K,Lとを比較することにより、演算E,F,Gが不足しているので処理不可能であることを自動的に導出し、さらに、この不足している演算E,F,Gを行なうことができる回路の組み合わせを探索する。その結果、この例では、回路Y又は回路Zにより、要求機能を実現することができる旨が表示される。
本実施例により、要求機能を満足するであろうと推定できる適当な回路を入力することにより、要求機能を実現するために不足している演算があればその演算が自動的に導出されるとともに、要求機能を実現するために必要な回路が自動的に探索される。よって、既存の資産である回路の情報を利用して新たな回路を迅速に生成することができる。
−第3の実施例−
図23(a),(b)は、第3の実施例における要求機能の実現可能性判定方法を説明するための図である。
図23(a),(b)は、第3の実施例における要求機能の実現可能性判定方法を説明するための図である。
まず、図23(a)に示すように、回路Wがある場合に、各回路に必要な演算と、その演算を処理するのに必要な回路要素とを登録する。例えば回路Wには演算A,B,C,D,E,F,G,H,I,J,K,Lが登録されている。そして、演算Aは回路要素a,mにより、演算Bは回路要素b,mにより、演算Cは回路要素c,mにより、演算Dは回路要素d,i,pにより、演算Eは回路要素e,j,l,pにより、演算Fは回路要素f,pにより、演算Gは回路要素g,mにより、演算Hは回路要素h,oにより、演算Iは回路要素i,mにより、演算Jは回路要素j,e,pにより、演算Kは回路要素k,f,pにより、演算Lは回路要素l,i,m,pにより、それぞれ処理できるものとする。そして、演算A〜Lを処理するために必要なすべての回路要素a〜pが登録される。
また、設計者の要求によって実現したい機能R,S,T,Uが入力されたものとする。そして、実現したい機能R,S,T,U(要求機能)を演算の組み合わせに自動的にコンパイルすると、第1の実施例と同様に、機能R,S,T,Uが、演算A,B,C,E,F,G,J,K,Lの組み合わせによって実現しうることがわかっている。このとき、実現したい機能を実現するために、適当な単一の回路又は複数の回路の組み合わせを設定する。この例では、回路Wが設定されたものとする。このとき、回路W内の演算A,B,C,D,E,F,G,H,I,J,K,L内に登録されている回路要素と、要求機能R,S,T,Uを実現するために必要な演算A,B,C,E,F,G,J,K,Lに含まれる回路要素とを比較することにより、必要な回路要素と、不要な回路要素とが区別された状態で出力される。
本実施例では、回路の機能を実現するための演算を処理するための回路要素というハードウエアについて、必要なハードウエア資源と不要なハードウエア資源とが判別される。すなわち、要求機能に対して、利用しようとする既存の回路をデータベースなどから取り出すことにより、既存の回路のうち要求機能を満足するために必要な回路要素と不要な回路要素とが自動的に検出されるので、既存のハードウエア資源を利用して要求機能に応じた新たな回路を生成する際に、不要な回路要素を削除して簡素化を図ることができる。
(第5の実施形態)
次に、複数の本実施形態においては、既存の資産であるIP,設計データを利用して新たなIP,ブロックなどと呼ばれる半導体集積回路装置(具体的には、LSI,システムLSI)を設計する際に、既存のIPなどの一部だけを利用するための方法について説明する。
次に、複数の本実施形態においては、既存の資産であるIP,設計データを利用して新たなIP,ブロックなどと呼ばれる半導体集積回路装置(具体的には、LSI,システムLSI)を設計する際に、既存のIPなどの一部だけを利用するための方法について説明する。
従来、既存の設計データやIPを用いる場合、それらの外部ピンに信号を接続して利用する必要があったために、既存の設計データやIPの内部の一部の機能だけを流用して新たなIPなどを生成することは困難であった。
そこで、本実施形態では、既存の設計データ,IPの内部ノードから外部ピンを引き出すなどの手段を講ずることにより、既存の設計データやIPの一部の機能だけを流用するようにしている。以下、本実施形態における既存のIPの一部の機能のみを利用するための方法について、各実施例に分けて説明する。
−第1の実施例−
本実施例においては、既存のIPの情報を階層化してデータベースに登録する方法にて初説明する。
本実施例においては、既存のIPの情報を階層化してデータベースに登録する方法にて初説明する。
図24は、内部ノードを外部に引き出すために機能別内部ノード(ピン)情報をデータベースに登録する手順を示すフローチャートである。同図に示すように、ステップST50で、設計対象である新規IPや設計データが入力されると、ステップST51に進んで、既存のIPに関する情報が登録された設計データベースと、ハードウエア資源などに関する情報を格納しているライブラリとの情報を取り込んで、この情報を利用して新規IPや設計データの機能階層に対応する入出力を抽出するための解析を行なう。そして、ステップST52で、既存のIP,設計データの内部から機能と機能毎の入出力ピン(ノード)との抽出を行なう。そして、抽出された機能,入出力ピン(ノード)に関する情報を階層を持たせて設計データベースに登録しておく。このとき、データベースに登録された情報の例については、後に詳しく説明する。
図25は、データベースに格納されている内部ノードなどに関する情報を利用して新たなIPなどを生成するために、内部ノードを外部に引き出す手順を示すフローチャートである。
まず、ステップST60で、設計仕様を入力し、ステップST61で設計仕様を解析する。そして、ステップST62で、設計データベース及びライブラリの情報を取り込んで、仕様に合わせた機能を選び出す。そして、ステップST63で、機能毎の入出力ピン(ノード)の抽出を行なって、ステップST64で、内部ノードを外部ピンとして出力する。
図26は、設計データベースに登録されたIPの例を示す図である。IP-A内には、ブロックA〜Dが配置されており、各ブロックA〜D内にはそれぞれ内部回路(A-1など)が配置されている。そして、各内部回路の入力ピンPIN-IA〜PIN-IHと、出力ピンPIN-OA 〜PIN-OD と、IP-A内の内部ノードNA1〜ND2とが設計データベースに登録されている。図27は、この設計データベース内に登録されているIP-Aの情報を表にして示す図である。同図に示すように、IP-A内には、IP-A内に含まれるブロックA〜Dと、各ブロックA〜Dの機能とが登録されており、さらに各機能毎に分類されて、外部ピンと内部ノードとが記述されている。外部ピンは、さらに入力ピンと出力ピンとに分類され、内部ノードも入力側ノードと出力側ノードとに分類されている。また、IP-Bなど、他のIPについても同様の情報が登録されている。
このように、IPの内部の機能を階層を持たせて登録しておくことにより、既存のIPを再利用する際に、低階層からの検索が可能となるのである。
次に、このように内部ノードなどの情報が登録されたデータベースを用い、IP中の一部の回路(ブロック)を利用した半導体集積回路装置(LSI,システムLSI,回路など)の設計方法について説明する。この方法には、大きく分けて2つの方法があり、以下、個別に説明する。
−第2の実施例−
第2の実施例では、IP中の一部のブロックを当該IP全体の構造を維持しつつ利用する方法について説明する。
第2の実施例では、IP中の一部のブロックを当該IP全体の構造を維持しつつ利用する方法について説明する。
ここでは、ある新たなシステム又はシステムの再構成の際に、図28に示すIP-A中のブロックB(ハッチング部分)が他のIPなどで必要な機能として選び出されたとして、この選出の手順と、この選出に応じて内部ノードを出力ピンとして引き出す手順とを説明する。
まず、設計仕様の解析から仕様に合わせた機能が選び出される。この処理は、図25に示すステップST60〜ST62において行なわれる。そして、ブロックBが必要な機能としてブロックBの入出力が外部ピンを介して行なわれているのか、内部ノードを介して行なわれているのかがデータベースから判定されるとともに、機能毎の入出力ピン(内部ノード)が抽出される。この処理は、図25に示すステップST63の処理に該当する。
そして、図29に示すように、ブロックBの内部ノードのうち入力側ノードNA9から信号を入力するための入力ピンPIN-NA9を新たに設け、且つ、入力側ノードNA9に入力される信号を、ブロックAからの信号と入力ピンPIN-NA9からの信号とに切り換えるためのセレクタSEL-B1 をインターフェースとして設ける。一方、ブロックBの出力側ノードNB4,NB5,NB7から信号を取り出すための出力ピンPIN-NB4,PIN-NB5,PIN-NB7をそれぞれ設ける。なお、入力ピンPIN-ID ,PIN-IE ,PIN-IG については、従来と同様に、新たなピンを設けることなく信号を入力させることができる。
本実施例により、設計データやIP中の各機能であるブロック,回路などの内部ノードという低階層をも登録してあるデータベースを利用して、この内部ノードから外部ピンを引き出すことができる。そして、内部ノードを介して当該ブロックや回路に信号を入出力するための入出力ピンを設けることにより、利用しようとする既存のIPを残したままで、利用したい資産である機能(ブロック,回路)のみを新たなIPの生成やIPの再構成に利用することが可能となる。例えば、同じシステム内に別の新たなIPを設けたいときなどに著効を発揮しうる方法である。すなわち、システム全体の回路面積の増大を抑制しつつ、システムの機能の拡大を図ることができる。
言い換えると、既存の設計データやIPの内部の機能を階層を持たせて登録しておき、これを低階層から順次検索していくことで、最小限必要な機能のみを抽出することが可能になる。その際、必要に応じてインターフェースを設けることで、利用対象となるIP内において、利用されるブロックと当該IP内に配置されている他のブロックとの信号のやりとりを円滑に維持しうる。
−第3の実施例−
第3の実施例においては、あるIP中の一部のブロック(機能)を当該IP全体の構造を考慮することなく抜き出して利用する方法について説明する。
第3の実施例においては、あるIP中の一部のブロック(機能)を当該IP全体の構造を考慮することなく抜き出して利用する方法について説明する。
本実施例においても、ある新たなシステム又はシステムの再構成の際に、図30に示すIP-A中のブロックB(ハッチング部分)が他のIPなどで必要な機能として選び出されたとして、この選出の手順と、この選出に応じて内部ノードを出力ピンとして引き出す手順とを説明する。
まず、設計仕様の解析から仕様に合わせた機能が選び出される。この処理は、図25に示すステップST60〜62において行なわれる。そして、機能毎の入出力ピン(内部ノード)が抽出される。この処理は、図25に示すステップST63の処理に該当する。
そして、図30に示すように、ブロックBの内部ノードのうち入力側ノードNA9から信号を入力するための入力ピンPIN-NA9を新たに設ける。本実施例では、第2の実施例のようなセレクタなどのインターフェースを設ける必要はない。また、ブロックBの出力側ノードNB4,NB5,NB7から信号を取り出すための出力ピンPIN-NB4,PIN-NB5,PIN-NB7をそれぞれ設ける。なお、入力ピンPIN-ID ,PIN-IE ,PIN-IG については、従来と同様に、新たなピンを設けることなく信号を入力させることができる。
このように、選択された機能の入出力が内部ノードである場合、外部にピンとして出力した後、それぞれを接続することで仕様を満たすことができる。そして、不使用部分からブロックBと各入出力ピンとを分離することにより、ブロックBを新たなIPや設計データとして用いることができる。また、この抜き出したブロックをデータベースに登録する場合には、元の内部ノードを外部ピンとして再定義して登録する。さらに、新たなIPや設計データが多くのブロックからなる場合にも、このブロックBを新たなIP又は設計データ中の1つのブロックとしてデータベースに登録することができる。
本実施例により、設計データやIP中の各機能であるブロック,回路などの内部ノードという低階層をも登録してあるデータベースを利用して、この内部ノードから外部ピンを引き出すことができる。そして、内部ノードを介して当該ブロックや回路に信号を入出力するための入出力ピンを設けることにより、既存のIPから利用したい資産である機能(ブロック,回路)のみを取り出して、新たなIPの生成や設計対象としているIPの再構成に利用することが可能となる。
言い換えると、既存の設計データやIPの内部の機能を階層を持たせて登録しておき、これを低階層から順次検索していくことで、最小限必要な機能のみを抽出することが可能になる。
−第4の実施例−
本実施例では、上記第2又は第3の実施例の方法により、既存のIP内の一部の機能のみを利用した新たなIPなどの生成方法について、従来の方法と対比しながら説明する。
本実施例では、上記第2又は第3の実施例の方法により、既存のIP内の一部の機能のみを利用した新たなIPなどの生成方法について、従来の方法と対比しながら説明する。
“第1の具体例”
図31(a),(b)は、従来の方法における既存のIPと第1の具体例におけるIPの構造を示す図である。
図31(a),(b)は、従来の方法における既存のIPと第1の具体例におけるIPの構造を示す図である。
図31(a)に示すように、従来、3つのIP-X,IP-Y,IP-Zがある場合、各IP中に利用したい機能(ハッチング部分)があっても、利用対象である既存のIP中の機能と、新たに設計しようとするIPなどとの信号のやりとりができなかった。従来は、各IPの外部ピンとの信号のやりとりが可能にすぎないからである。
それに対し、本具体例においては、図31(b)に示すように、上記第2の実施例の方法を利用して、データベースの低階層から各IPの内部ノードを検索でき、これによって抽出された内部ノードから信号を取り出すための信号線や入出力ピンを容易に生成することができる。そして、各IP中の機能を個別に利用して、新たなIPや設計データを生成することができる。しかも、利用されるIP自体はそのまま残しておくことができるので、当該システムの機能の拡大などに適した方法といえる。
“第2の具体例”
図32(a),(b)は、従来の方法における既存のIPと第2の具体例において生成された新たなIPの構造を示す図である。
図32(a),(b)は、従来の方法における既存のIPと第2の具体例において生成された新たなIPの構造を示す図である。
図32(a)に示すように、従来、3つのIP-X,IP-Y,IP-Zがある場合、各IP中に利用したい機能(ハッチング部分)があっても、利用対象である既存のIPから一部の機能のみを取り出すことが困難であった。
それに対し、本具体例においては、図32(b)に示すように、上記第3の実施例の方法を利用して、データベースの低階層から各IPの内部ノードを検索でき、これによって抽出された内部ノードから信号を取り出すための信号線や入出力ピンを容易に生成することができる。そして、各IP中の機能を組み立てて新たなIP-W(又は設計データ)を生成することができる。
“第3の具体例”
図33(a),(b)は、従来の方法における既存のIPと第3の具体例における再構成されたIPの構造を示す図である。
図33(a),(b)は、従来の方法における既存のIPと第3の具体例における再構成されたIPの構造を示す図である。
図33(a)に示すように、従来、2つのIP-X,IP-Yがある場合、各IP中に共通の機能(ハッチング部分)があっても、それらを各IPで共有する1つの機能に集約することが困難であった。
それに対し、本具体例においては、図33(b)に示すように、上記第2の実施例の方法などを利用して、データベースの低階層から各IPの内部ノードを検索でき、これによって抽出された内部ノードから信号を取り出すための信号線や入出力ピンを容易に生成することができる。そして、1つのIP-Xから当該機能を削除して、IP-XとIP-Yとで1つの機能を共有化することができる。
特に本実施形態の各実施例や各具体例における処理は、設計者の熟練度に頼ることなく、ほとんど自動的に行なうことが可能であるため、大規模なシステムの構築に際しても、設計工期の短縮を図ることが可能になり、設計される半導体集積回路装置の品質の向上をも図りうる。
本発明の半導体集積回路装置の設計方法は、LSI,いわゆるシステムLSIの設計などに利用することができる。
1〜7 メモリ
Claims (26)
- 互いにパラメータが異なる複数の回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
上記半導体集積回路装置の要求仕様を入力するステップ(a)と、
上記データベースの複数の回路に関する情報を入力して、上記各回路のパラメータを自動的に解析するステップ(b)と、
上記解析結果に応じて、要求仕様に適合するように上記半導体集積回路の設計を自動的に行なうステップ(c)と
を含む半導体集積回路装置の設計方法。 - 請求項1記載の半導体集積回路装置の設計方法において、
上記パラメータは、上記複数の回路の回路規模であり、
上記ステップ(a)では、設計される半導体集積回路装置の回路面積又はGATE数の制限範囲を入力し、
上記ステップ(b)では、上記半導体集積回路装置の回路面積又はGATE数が上記制限範囲内に収められる状態で上記半導体集積回路装置内に搭載される回路の組み合わせを解析することを特徴とする半導体集積回路装置の設計方法。 - 請求項2記載の半導体集積回路装置の設計方法において、
上記ステップ(b)では、上記各回路間におけるパッドの共有可能性を解析することを特徴とする半導体集積回路装置の設計方法。 - 請求項1記載の半導体集積回路装置の設計方法において、
上記パラメータは、上記複数の回路のメモリの種類又は容量であり、
上記ステップ(a)では、設計される半導体集積回路装置のメモリの種類又は容量の制限範囲を入力し、
上記ステップ(b)では、上記各回路の外部メモリの共有状況と、各回路間におけるメモリの共有可能性又は分割可能性とに応じて、最適なメモリの組み合わせを解析することを特徴とする半導体集積回路装置の設計方法。 - 請求項1記載の半導体集積回路装置の設計方法において、
上記パラメータは、上記複数の回路のピン数であり、
上記ステップ(a)では、設計される半導体集積回路装置の各回路におけるピン数の制限範囲を入力し、
上記ステップ(b)では、上記各回路のピン数を上記制限範囲に収めながら、最適な回路の組み合わせを解析することを特徴とする半導体集積回路装置の設計方法。 - 請求項5記載の半導体集積回路装置の設計方法において、
上記ステップ(b)では、上記各回路のピンの種類をも考慮して、最適な回路の組み合わせを解析することを特徴とする半導体集積回路装置の設計方法。 - 請求項1記載の半導体集積回路装置の設計方法において、
上記パラメータは、上記複数の回路のクロック周波数であり、
上記ステップ(a)では、設計される半導体集積回路装置の各回路におけるクロック周波数を入力し、
上記ステップ(b)では、上記各回路の動作周波数が上記ステップ(a)で入力されたクロック周波数に適合するように、最適な回路の組み合わせを解析することを特徴とする半導体集積回路装置の設計方法。 - 請求項7記載の半導体集積回路装置の設計方法において、
上記ステップ(b)では、上記各回路におけるクロックジェネレータの共有化とクロックラインの最適化とのための解析を行なうことを特徴とする半導体集積回路装置の設計方法。 - 互いに動作周波数が異なる複数の回路について少なくとも各回路の上限動作周波数に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
上記データベースに格納されている上記複数の回路の動作周波数と上限動作周波数とを解析して、上記複数の回路を最適化又は再構成することを特徴とする半導体集積回路装置の設計方法。 - 互いに動作周波数が異なる複数の回路について少なくとも各回路の上限動作周波数に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
上記半導体集積回路装置のクロックに関する要求仕様を入力するステップ(a)と、
上記データベースから上記複数の回路に関する情報を取り込んで、上記各回路の上限動作周波数と上記クロックに関する要求仕様との調整可能性を解析するステップ(b)と、
上記解析結果に応じて、上記半導体集積回路の設計可能性の可否を表示するステップ(c)と
を含む半導体集積回路装置の設計方法。 - 請求項10記載の半導体集積回路装置の設計方法において、
上記ステップ(b)では、上記各回路におけるクロック系統の同一化の可能性を含めて解析することを特徴とする半導体集積回路装置の設計方法。 - 請求項10又は11記載の半導体集積回路装置の設計方法において、
上記ステップ(c)で、上記半導体集積回路装置の設計が不能であると判定されたとき、上記複数の回路のうちステップ(a)で入力されたクロックに関する要求仕様に適合しない回路には、上記クロックに関する要求仕様に適合させるための付加回路を生成するステップ(d)をさらに含むことを特徴とする半導体集積回路装置の設計方法。 - 請求項12記載の半導体集積回路装置の設計方法において、
上記ステップ(d)では、上記複数の回路のうちステップ(a)で入力されたクロックに関する要求仕様に適合しない回路のうち少なくとも一部の回路を、非同期回路にするための付加回路を生成することを特徴とする半導体集積回路装置の設計方法。 - マイクロコードによって制御される少なくとも1つの回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
上記データベースに格納されているマイクロコードによる回路の動作状況を解析して、上記回路を最適化又は再構成することを特徴とする半導体集積回路装置の設計方法。 - マイクロコードによって制御される回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
設計対象となる回路を制御するための使用マイクロコードに関する要求仕様を入力するステップ(a)と、
上記データベース内の情報を取り込んでマイクロコードによる回路の動作状況を解析するステップ(b)と、
上記解析された回路の動作状況と上記入力された使用マイクロコードに関する要求仕様とを比較して、設計対象となる回路を使用マイクロコードによって生成できる可能性を解析するステップ(c)と、
上記解析結果に応じて、上記回路の設計可能性の可否を表示するステップ(d)と
を含む半導体集積回路装置の設計方法。 - 請求項15記載の半導体集積回路装置の設計方法において、
上記ステップ(b)では、上記回路における並列動作状況を含めて解析するこを特徴とする半導体集積回路装置の設計方法。 - 請求項15又は17記載の半導体集積回路装置の設計方法において、
上記ステップ(b)では、上記回路におけるメモリ使用容量及び必要演算bit数のうち少なくともいずれか1つを含めて解析することを特徴とする半導体集積回路装置の設計方法。 - 請求項15〜17のうちいずれか1つに記載の半導体集積回路装置の設計方法において、
上記ステップ(d)で、上記回路の設計が不能であると判定されたとき、上記使用マイクロコードに関する要求仕様に適合させるための付加回路を生成するステップをさらに含むことを特徴とする半導体集積回路装置の設計方法。 - 各々複数の演算を含む複数の回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
設計対象となる回路に要求される機能を入力するステップ(a)と、
上記データベース内の情報を取り込んで、上記各回路の演算と上記要求される機能を実現するために必要な演算とを比較して、上記設計対象となる回路を上記データベースに格納された複数の回路に含まれる演算から生成できる可能性を自動的に解析するステップ(b)と、
上記解析結果に応じて、上記回路の設計可能性の可否を自動的に表示するステップ(c)と
を含む半導体集積回路装置の設計方法。 - 各々複数の演算を含む複数の回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
設計対象となる回路に要求される機能を入力するステップ(a)と、
上記データベース内に格納されている複数の回路のうち少なくとも1つの回路の情報を取り出して、上記取り出された回路に含まれる演算と上記要求される機能を実現するために必要な演算とを比較して、上記設計対象となる回路を上記取り出された回路に含まれる演算から生成できる可能性を自動的に解析するステップ(b)と、
上記解析結果に応じて、上記要求される機能を実現するために不足している演算がある場合には、上記データベースに格納されている当該演算を含む回路を自動的に表示するステップ(c)と
を含む半導体集積回路装置の設計方法。 - 各々複数の演算と、演算の実行に必要な回路要素とを含む複数の回路に関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
設計対象となる回路に要求される機能を入力するステップ(a)と、
上記データベース内に格納されている複数の回路のうち少なくとも1つの回路の情報を取り出して、上記取り出された回路に含まれる演算に必要な回路要素と上記要求される機能を実現するために必要な演算とを比較して、上記取り出された回路に含まれる回路要素のうち,上記設計対象となる回路の生成に不要な回路要素を自動的に削除するステップ(b)と
を含む半導体集積回路装置の設計方法。 - 複数の機能を含むIPに関する情報が格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
上記IPの各機能の接続部分をIPの外部に引き出せるように、上記データベースにIPの構造を階層化して格納することを特徴とする半導体集積回路装置の設計方法。 - 複数の機能を含む設計資産であるIPに関する情報が内部の機能の接続部分も含めて階層化されて格納されているデータベースを用いて半導体集積回路装置を設計する方法であって、
上記IPの各機能と各機能の接続部分に関する情報を取り出すステップ(a)と、
上記取り出したIPの各機能のうち再利用の対象となる機能の接続部分をIPの外部に引き出すステップ(b)と
を含む半導体集積回路装置の設計方法。 - 請求項23記載の半導体集積回路装置の設計方法において、
上記ステップ(b)の後、上記引き出された機能の接続部分を入出力ピンとして生成することにより、上記再利用の対象となる機能のみからなる新たな半導体集積回路装置を設計するステップをさらに含むことを特徴とする半導体集積回路装置の設計方法。 - 請求項23記載の半導体集積回路装置の設計方法において、
上記ステップ(b)の後、上記引き出された機能の接続部分を上記再利用の対象となるIPとは異なる他のIPと接続して、上記再利用の対象となるIPと上記他のIPとにより新たな半導体集積回路装置を設計するステップをさらに含むことを特徴とする半導体集積回路装置の設計方法。 - 請求項23記載の半導体集積回路装置の設計方法において、
上記ステップ(b)の後、上記引き出された機能の接続部分を上記再利用の対象となるIPとは異なる他のIPと接続するとともに、上記他のIPのうち上記引き出された機能と同じ機能を削除することにより、上記再利用の対象となるIPと上記他のIPとにより新たな半導体集積回路装置を設計するステップをさらに含むことを特徴とする半導体集積回路装置の設計方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004140208A JP2004288205A (ja) | 2004-05-10 | 2004-05-10 | 半導体集積回路装置の設計方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004140208A JP2004288205A (ja) | 2004-05-10 | 2004-05-10 | 半導体集積回路装置の設計方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32507799A Division JP2001142928A (ja) | 1999-11-16 | 1999-11-16 | 半導体集積回路装置の設計方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004288205A true JP2004288205A (ja) | 2004-10-14 |
Family
ID=33297024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004140208A Pending JP2004288205A (ja) | 2004-05-10 | 2004-05-10 | 半導体集積回路装置の設計方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004288205A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010039677A (ja) * | 2008-08-04 | 2010-02-18 | Fujitsu Ltd | 設計支援プログラム、設計支援装置、および設計支援方法 |
US10303832B2 (en) | 2015-09-18 | 2019-05-28 | Mitsubishi Electric Corporation | Architecture generating device |
JP2020506491A (ja) * | 2017-01-08 | 2020-02-27 | アルファイクス コーポレイションAlphaics Corporation | 人工知能および強化学習によるシステムオンチップ(SoC)回路の設計システムおよび方法 |
-
2004
- 2004-05-10 JP JP2004140208A patent/JP2004288205A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010039677A (ja) * | 2008-08-04 | 2010-02-18 | Fujitsu Ltd | 設計支援プログラム、設計支援装置、および設計支援方法 |
US10303832B2 (en) | 2015-09-18 | 2019-05-28 | Mitsubishi Electric Corporation | Architecture generating device |
JP2020506491A (ja) * | 2017-01-08 | 2020-02-27 | アルファイクス コーポレイションAlphaics Corporation | 人工知能および強化学習によるシステムオンチップ(SoC)回路の設計システムおよび方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3119646B2 (ja) | 再コンフュギュレーション可能なハードウェアシステムの評価装置及び演算処理方法 | |
US6857110B1 (en) | Design methodology for merging programmable logic into a custom IC | |
US7275233B2 (en) | Methods and apparatuses for designing integrated circuits | |
US5644498A (en) | Timing shell generation through netlist reduction | |
JP2877303B2 (ja) | 集積回路の自動設計装置 | |
US5737234A (en) | Method of optimizing resource allocation starting from a high level block diagram | |
CN103324511B (zh) | 配置可编程设备的方法、可编程设备及机器可读存储介质 | |
JPH08101861A (ja) | 論理回路合成装置 | |
EP1250757A2 (en) | Method for implementing a physical design for a dynamically reconfigurable logic circuit | |
US11232247B1 (en) | Adaptable dynamic region for hardware acceleration | |
US8332788B1 (en) | Generating a module interface for partial reconfiguration design flows | |
JP2007087215A (ja) | ハードウェアモデルの変換処理に用いられるデータ構造、コンピュータプログラム、方法、及びシステム | |
JP2001142928A (ja) | 半導体集積回路装置の設計方法 | |
US5987239A (en) | Computer system and method for building a hardware description language representation of control logic for a complex digital system | |
White et al. | Tincr—A custom CAD tool framework for Vivado | |
US20040083443A1 (en) | High-level synthesis method | |
Kourfali et al. | Efficient hardware debugging using parameterized FPGA reconfiguration | |
JPH10256383A (ja) | 半導体装置及びその回路構成方法 | |
JP2004288205A (ja) | 半導体集積回路装置の設計方法 | |
Raaijmakers | Run-Time Partial Reconfiguration on the Virtex-II Pro | |
Abdelkrim et al. | Reconfigurable SoC FPGA based: Overview and trends | |
Brayton | The future of logic synthesis and verification | |
Guo et al. | RapidStream 2.0: Automated Parallel Implementation of Latency–Insensitive FPGA Designs Through Partial Reconfiguration | |
Kwadjo et al. | Exploring a Layer-based Pre-implemented Flow for Mapping CNN on FPGA | |
JP2001209670A (ja) | 高位合成方法、および、高位合成方法の実施に使用される記録媒体 |