JP3907398B2 - 半導体集積回路装置の設計方法 - Google Patents
半導体集積回路装置の設計方法 Download PDFInfo
- Publication number
- JP3907398B2 JP3907398B2 JP2000349938A JP2000349938A JP3907398B2 JP 3907398 B2 JP3907398 B2 JP 3907398B2 JP 2000349938 A JP2000349938 A JP 2000349938A JP 2000349938 A JP2000349938 A JP 2000349938A JP 3907398 B2 JP3907398 B2 JP 3907398B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- model
- storage device
- storing
- functional block
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Description
【発明の属する技術分野】
本発明は、複数の機能を有する回路を複数個配置した半導体集積回路装置の設計方法に関する。
【0002】
【従来の技術】
近年、複数のLSIを共通の基板上に形成したシステムLSIという概念が提起されており、システムLSIの設計手法としても各種の提案がなされている。特に、システムLSIの利点は、DRAMなどのメモリや、ロジックLSIや、高周波回路などのアナログ回路を1つの半導体装置内に収納して、多種,多機能の半導体装置を極めて高集積化して実現することができることである。
【0003】
【発明が解決しようとする課題】
ところで、上記従来のシステムLSIにおいては、システムLSIを設計する際に、IP,コアと呼ばれる設計資産を利用することが多い。そのとき、各コアは個別に設計されたものなので、これらを統合したときには必ずしも円滑な動作が得られないことがある。しかし、従来のコア又はIPは、その中身がブラックボックスとなっているので、円滑な動作を確保するシステムを設計するためには多大の手間と時間とを要しているのが現実である。
【0004】
本発明の目的は、IPの機能の同一性を図りつつIPの選択を柔軟に行なうための手段を講ずることにより、最適化が容易な半導体集積回路装置の設計方法の提供を図ることにある。
【0014】
【課題を解決するための手段】
本発明の第1の半導体集積回路装置の設計方法は、機能を格納する第1の記憶装置と、上記機能用のテストベンチを格納する第2の記憶装置と、機能を有するIPを格納する第3の記憶装置と、HWモデルとSWモデルとを含むアーキテクチャモデルを格納する第4の記憶装置を有する半導体集積装置の設計システムによる半導体集積回路装置の設計方法であって、各々ある機能を有する複数のIPを、上記機能を有するIPを格納する第3の記憶装置に格納するステップ(a)と、ある仕様を満たすための機能群構造を、上記機能を格納する第1の記憶装置及び上記機能用のテストベンチを格納する第2の記憶装置から構築するステップ(b)と、上記第3の記憶装置から上記機能群構造中の各機能について、当該機能を有するIPを選択して取り出して、上記機能群構造中の各機能と置き換えるステップ(c)と、上記IPを機能ブロックレベルに階層展開するステップ(d)と、上記階層展開された各機能ブロックごとに、当該機能ブロックの実現化対象を、上記アーキテクチャモデルを格納する第4の記憶装置中のHWモデルとSWモデルとに割り当てるように分割するステップ(e)と、上記ステップ(e)の後、割り当てられた上記機能群構造中の各機能ブロックのHWモデルとSWモデルとへの割り当てを決定するための動的性能解析を行なうステップ(f)とを含み、上記ステップ(f)では、ある機能ブロックをHWに割り当てたときのCPUの負荷率がある下限値よりも小さいときは、当該機能ブロックの割り当てがSWに切り換えられる。
【0015】
本発明の第2の半導体集積回路装置の設計方法は、機能を格納する第1の記憶装置と、上記機能用のテストベンチを格納する第2の記憶装置と、機能を有するIPを格納する第3の記憶装置と、HWモデルとSWモデルとを含むアーキテクチャモデルを格納する第4の記憶装置を有する半導体集積装置の設計システムによる半導体集積回路装置の設計方法であって、各々ある機能を有する複数のIPを、上記機能を有するIPを格納する第3の記憶装置に格納するステップ(a)と、ある仕様を満たすための機能群構造を、上記機能を格納する第1の記憶装置及び上記機能用のテストベンチを格納する第2の記憶装置から構築するステップ(b)と、上記第3の記憶装置から上記機能群構造中の各機能について、当該機能を有するIPを選択して取り出して、上記機能群構造中の各機能と置き換えるステップ(c)と、上記IPを機能ブロックレベルに階層展開するステップ(d)と、上記階層展開された各機能ブロックごとに、当該機能ブロックの実現化対象を、上記アーキテクチャモデルを格納する第4の記憶装置中のHWモデルとSWモデルとに割り当てるように分割するステップ(e)と、上記ステップ(e)の後、割り当てられた上記機能群構造中の各機能ブロックのHWモデルとSWモデルとへの割り当てを決定するための動的性能解析を行なうステップ(f)とを含み、上記第4の記憶装置には、HWの機能毎に当該HWと等価な機能を有するSWモデルを格納しており、上記ステップ(f)では、時間軸に沿って消費電力が上限を超えた場合は、当該機能ブロックの割り当てがHWに切り換えられる。
【0029】
【発明の実施の形態】
−IPOSデバイスの基本的な構造−
ここで配線の断面積を大きく確保しつつ、多種,多機能のデバイスを内蔵した半導体装置を実現するための1つの手段として、配線層を有する半導体配線基板例えばシリコン配線基板(Super−Sub)上に、各種デバイスを内蔵したチップIPを搭載する構成がある。その場合、各チップIP内に設けられる回路(IC)は半導体装置の設計上IP(Intellectual Property)として扱うことができ、各種IPを半導体配線基板上に貼り合わせたものと考えることができる。つまり、半導体デバイス全体は、“IP On Super−Sub”であるので、シリコン配線基板とIP群とを備えた半導体デバイス全体を“IPOSデバイス”とする。
【0030】
図1(a),(b),(c)は、IP(チップIP)群を搭載するための配線基板となるシリコン配線基板の平面図、シリコン配線基板上に搭載されるIP群の例を示す平面図、及びシリコン配線基板の断面図である。図1(a),(b)に示すように、シリコン配線基板10上には各種IPを搭載するための複数の領域が設けられており、、各領域には、例えば、Analog−IP,Logic −IP,CPU−IP,Flash メモリ−IP,SRAM−IP,DRAM−IP,I/O−IPなどの各種IP群がチップIPとして搭載可能となっている。図1(c)に示すように、シリコン配線基板10は、シリコン基板11と、シリコン基板10上に絶縁膜(図示せず)を挟んで設けられたグランドプレーン12と、グランドプレーン12の上に層間絶縁膜を挟んで設けられた第1配線層13と、第1配線層13の上に層間絶縁膜を挟んで設けられた第2配線層14と、第2配線層14の上にパッシベーション膜を挟んで設けられたパッド15とを備えている。パッド15,各配線層13,14及びグランドプレーン12間は、それぞれコンタクト(図示せず)を介して所望の部位で互いに接続されている。そして、各IPは、パッド15上に貼り付けられて、各IPが配線層13,14により互いにあるいはグランドプレーン12に電気的に接続される構造となっている。
【0031】
シリコン配線基板10内の配線層13,14の寸法の制約は緩やかであり、数μm幅の配線をも設けることができるので、以下のような効果がある。経験的に、今までの半導体集積回路装置の微細化が進展した過程において、もっとも配線としての特性が良好であった世代の寸法を有する配線を設けることが可能となる。また、配線の電気インピーダンスを低減することができる。
【0032】
そして、シリコン配線基板上のチップIPは多くの機能を有しているが、これに対しては2つの考え方がある。1つは、できるだけ多くの機能を使用するという考え方であり、もう1つは、使用する機能を制限するという考え方である。つまり、ユーザの多様な要求に応えるためには、多種の使用方法に対応できる構成を有していることが好ましいが、反面、実際の使用に際してはいずれかの機能に限定する必要がある。つまり、この2つの相反する要求を満足させることにより、ユーザの多様な要求に応えつつ、少品種,大量生産に適したIPOSデバイスを構築することができるのである。
【0033】
したがって、後に選択,制限,切り換え,設定などの処理を柔軟に行なうことを前提として、つまり、機能に関する処理の柔軟性を保持しつつ,多種の機能をハードウェア(HW),ソフトウェア(SW)に分けて各IP(チップIP)に組み込むことが重要となる。
【0034】
そこで、以下の実施形態においては、IPOSデバイスを例とした大規模なシステム(以下、「IPOSシステム」という)に適したHW/SW協調設計について説明する。ただし、本発明は、必ずしもIPOSシステムだけでなく、従来のいわゆるシステムLSIなどの大規模な集積回路システムの設計にも適用が可能である。
【0035】
(実施形態)
−HW/SW協調設計全体の概略−
図2は、本発明の実施形態におけるHW/SW協調設計の概略的な手順を示すフロー図である。
【0036】
ステップST1で、機能ライブラリ(機能Lib)やテストベンチを用いて機能設計を行ない、ステップST2で、IP機能Libを用いたIP機能設計を行なう。このステップST1,ST2では、半導体デバイスに搭載される各IPに要求される機能が例えばC言語により記述される。例えばJPEGの場合には、信号処理(アルゴリズム)だけが記載されているような状態である。
【0037】
次に、ステップST3で、アーキテクチャモデルLibを用いてシステムのアーキテクチャ設計を行なう。システムのアーキテクチャモデルLibには、アーキテクチャモデルがシステムの設計に必要なHW,SWモデルとして存在しているので、このステップST3では、各モデルをバスに接続してシステム全体の概略的な構造を作り上げる。
【0038】
次に、ステップST4で、各機能(機能ブロック)をアーキテクチャのコンポーネントに割り当てるマッピングを行なった後、ステップST5で、性能Libを用いて性能解析を行ない、その結果、不具合があればステップST3のアーキテクチャ設計,又はステップST4のマッピングに戻り、性能が満足されるまでこれらのステップを繰り返すループ処理を行なう。
【0039】
次に、ステップST6,ST7で、それぞれIPハードウェアモデルLibを用いたHW設計と、例えばIPソフトウェアモデルLibを用いたSW設計とを個別に行なってから、HW及びSWが詳細化されてくると、ステップST8で、I/Fモデルを用いたHW/SW協調検証を行なう。その後、ステップST9で、実チップを用いて実チップの機能を確認するための実チップ検証を行なう。
【0040】
−機能設計及びIP機能設計−
図3は、機能設計を行なうステップST1と、IP機能設計を行なうステップST2との詳細な処理の内容を説明するための部分フロー図である。
【0041】
ステップST1においては、以下の手順により、機能設計を行なう。機能Libには、f1,f2,f3,f4などの種々の機能(function)が格納されている。この機能f1,f2,f3,f4とは、例えば画像処理におけるMPEGKL,JPEG,Blue-toothなどの機能である。また、テストベンチLibには、tb1,tb2,tb3,tb4などの種々のテストベンチが格納されている。このテストベンチtb1,tb2,tb3,tb4は、機能設計が適正か否かを判断するための与えられるデータである。例えば、図3のステップST1中に示すように、機能f1,f2,f3を組み合わせたデザインがある場合には、入力テストベンチとして、テストベンチからtb1を取り出して、これを入力データとして与える。また、出力データとして例えば画像出力のテストベンチtb2を与える。その結果、ここで作り上げたデザインが適正かどうかがある程度検証される。
【0042】
次に、ステップST2におけるIP機能設計は以下の手順で行なわれる。IP機能Libには、各機能f1,f2,f3,f4ごとに、この機能を実現するためのいくつかのIPが格納されている。例えば、機能f1に対してf1−ip1〜f1−ip4があり、機能f2に対してf2−ip1〜f2−ip3があり、機能f3に対してf3−ip1,f3−ip2がある。そこで、おおよその見当をつけて、デザイン中の機能f1,f2,f3に対して用いるIPを指定する。例えば、機能f1に対してはf1−ip4を、機能f2に対してはf2−ip1を、機能f3に対してはf3−ip2を用いるというようにパラメータを指定する。
【0043】
次に、ステップST1で作り上げられたデザイン中の各機能f1,f2,f3に、それぞれf1−ip4,f2−ip1,f3−ip2を当てはめる。つまり、IP機能の選択を行なう。この段階では、選び出された各IPはいずれもステップST1における機能f1,f2,f3を有しているので、ステップST1で検証した結果と同じ結果が得られる。
【0044】
このように、機能が互いに共通する複数のIPをLibに格納しておいて、機能ごとに適当なIPを選択することにより、IPを代えても機能の同一性が保持されるので、従来大きかった設計変更の確率をできるだけ小さくすることができる。
【0045】
次に、IP機能をさらに詳細に個々の機能に分けるIP機能の階層展開を行なう。例えば、f1−ip4について階層展開をすると、f1−ip4−A(例えば逆コサイン変換)を行なってからf1−ip4−B(例えば量子化)を行ない、その後f1−ip4−C(例えばハフマン符号化)を行なうという機能になっていたとする。つまり、IPであるf1−ip4を機能ブロックf1−ip4−A,f1−ip4−B,f1−ip4−Cに展開するのである。同様に、f2−ip1,f3−ip2についても階層展開を行なって、f2−ip1についてはf2−ip1−Aという機能ブロックが、f3−ip2についてはf3−ip2−A,f3−ip2−Bという機能ブロックがそれぞれ得られたとする。そして、この階層展開された各機能ブロックをデザイン中の各機能f1,f2,f3に置換する。この階層展開されたIPの中身をHW/SW分割するのが本発明の1つの特徴である。
【0046】
−アーキテクチャ設計−
次に、図4は、ステップST3における処理の内容を説明するための部分フロー図である。同図に示すように、アーキテクチャモデルLibには、CPU,メモリ,ASIC(ロジック回路),BUS,バスブリッジモデル,I/Fモデルなどのコンポーネント(c)についての多くの種類が格納されている。そこで、このコンポーネントごとに各種のコンポーネントパラメータをもっているので、コンポーネントパラメータの値を与える。つまり、CPUについては動作周波数,キャッシュヒット率があり、DRAMについては動作周波数,ビット幅があり、ASICについては動作周波数,ビット幅があり、BUSについてはバスクロック,バス幅,転送レート(bps),アービトレーション方法があり、バスブリッジモデルについてはバスブリッジ間遅延があり、I/FモデルとしてUARTを選択したときには入出力転送レート(bps),入出力ビット幅,動作周波数,ビット幅がある。そして、各コンポーネントパラメータに具体的な値を入れる。そして、このパラメータ指定を行なってから、例えば図4に示すように、CPU1(c1),DRAM1(c2),ASIC1(c3),ASIC2(c6)及びUART(c5)をBUS1,BUS2及びバスブリッジ1(c4)を介して接続した構造を有するアーキテクチャを作り上げる。
【0047】
ここで、このアーキテクチャの特徴は、複数のバス(BUS1,BUS2)を備え、BUS1−BUS2間を接続するバスブリッジ1(c4)をコンポーネントとして設けている点である。バスは3つ以上あってもよく、このような複数のバスを設けることにより、半導体デバイスのような半導体配線基板を有する構造に適したアーキテクチャを構築することができる。複数のバスの例としては、標準バスに低速バス,高速バスなどを別途設けたものが考えられる。そして、バスブリッジモデルを設けることにより、当該バスブリッジモデルに接続される2つのバスのビット幅が互いに異なる場合などにおいてもデータの円滑な転送を図ることができる。バスブリッジモデルの例としては、16ビット幅のBUS(例えばバス1)のデータを8ビットずつ別のBUS(例えばBUS2)に送り込むバッファがある。また、アーキテクチャにおいて、I/FモデルをASICとは別に設けたことにより、入出力の信号を取り扱うI/Fモデルにおける信号の遅延や消費電力を考慮したシステムの最適化が可能になる。
【0048】
−マッピング−
次に、図5は、ステップST4,ST5におけるマッピングと性能解析の概略とを説明するための部分フロー図である。
【0049】
同図に示すように、ステップST4においては、ステップST2のIP機能設計によって得られたデザイン中の階層展開されたIPを、HWとSWとに割り当てる処理であるマッピングを行なう。例えば、テストベンチtb1は、HWとしてI/FモデルであるUARTに割り当てられる。また、テストベンチtb2は、HWとしてDRAM1に割り当てられる。また、階層展開されているf1−ip4中の機能ブロックf1−ip4−A(bl1)はHWとしてASIC1に、機能ブロックf1−ip4−B(bl2),機能ブロックf1−ip4−C(bl3)はSWとしてCPU1に、f2−ip1中の機能ブロックf2−ip1−A(bl4)はSWとしてCPU1に、f2−ip2中の機能ブロックf3−ip2−A(bl5),機能ブロックf2−ip2−A(bl6)はすべてHWとしてASIC2にそれぞれ割り当てられる。
【0050】
ここで、このマッピングの特徴は、テストベンチをI/Fモデルにマッピングしたことである。従来、単に入力信号として扱われていたテストベンチをHWであるI/Fモデルにマッピングすることにより、後の性能解析の際に遅延を考慮した処理時間の解析が可能になり、また、I/Fモデルが動作することを考慮した消費電力の解析が可能になる。つまり、解析精度の向上を図ることができる。
【0051】
また、このように、1つのIPをHWとSWとにわけてマッピングができるようになったのは、IP機能設計において、上述のようにIPを機能ブロックのレベルまで階層展開したからである。そして、マッピングに応じて、図5の左下に示すように、各機能とデザイン中のコンポーネントとのマッピング対応表が機能番号(a1〜an)とともに作成される。また、例えば機能ブロックf1−ip4−A→機能ブロックf1−ip4−Bというパスは、ASIC1→BUS1→(DRAM1→)CPU1というデータのパスとなり、機能ブロックf1−ip4−B→機能ブロックf1−ip4−Cというパスは、CPU1→(DRAM1→)CPU2というデータのパスとなることが、ブロック間パステーブルとして作成され、設計装置の記憶装置(図示せず)に格納される。なお、括弧内のコンポーネントはその部分が経由される場合もあり、経由されない場合もあることを示している。
【0052】
ここで、このように機能ブロック間パステーブルを作成することにより、後述するような動的な性能解析を精度よく行なうことができる。
【0053】
次に、このようなマッピング結果を用いてステップST5における性能解析を行なう。このステップにおいては、静的解析と動的解析とを行なってもよいし、静的解析及び動的解析のうちいずれか一方のみを行なってもよい。
【0054】
−性能解析(静的解析)−
性能解析のうち静的解析は、例えば所望のパラメータを変数としてシステム全体のコスト関数(Cost-tot)を定義して、このコスト関数(Cost-tot)を求める。そして、コスト関数(Cost−tot)が最小又はある上限値以下になるかを目標として設計を進める。このコスト関数(Cost-tot)の一例として、例えば下記式(1)
がある。ここで、k1,k2,k3は重み係数であり、SpeedHW-totはHW全体の処理速度であり、SpeedSW-totはSW全体の処理速度であり、Area HW-totはHW全体の面積であり、Area SW-totはSW全体の面積であり、PowerHW-totはHW全体の消費電力であり、PowerSW-totはSW全体の消費電力である。つまり、この例では、パラメータである処理速度ができるだけ大きく,面積ができるだけ小さく、消費電力ができるだけ小さくなるようにシステムを構築したいと考えていることになる。そこで、コスト関数(Cost-tot)は小さいほどよいとする。例えば、各種のマッピングMAP1,MAP2,MAP3を行なった結果、コスト関数(Cost-tot)が図6に示す値になったとする。このときには、もっとも値が小さいマッピングMAP1が最適であると判断する。
【0055】
ここで、例えば処理速度に関する計算は、マッピング結果を用いて、下記式(2)
のように行なわれる。ここで、式(2)において、図5に示すように、マッピングしたときの機能ブロック番号をbl1〜bl6とし、コンポーネント番号をc1〜c6とする。そして、fは動作周波数であり、Rはバスの転送レートであり、Pは機能のパスに対する優先順位(優先度)(0〜1の値)を表している。この優先順位Pは、バスに接続されるすべてのコンポーネントの優先度を合計すると1になるように設定されている。
【0056】
すると、式(2)中の例えば機能ブロックbl1(f1−ip4−A)の処理速度は、下記式(3)
のように求められる。つまり、処理速度はできる限り小さい方が好ましいことから、動作周波数f,転送レートR,優先順位Pの逆数からコスト関数(Cost-tot)のうち処理速度Speedの成分を計算する。
【0057】
次に、式(1)中のSWについての処理速度成分SpeedSW-totは、マッピングのブロック間パステーブルに基づいて、下記式(4)
により求められる。この計算の考え方は以下の通りである。機能ブロックをfunctionによって表すと、処理はC言語によって記述することができ、C言語で記述すればアセンブリ言語にコンパイルすることが可能となる。したがって、アセンブラのステップ数で処理速度を演算することができるからである。
【0058】
ここで、すると、式(4)中の例えば機能ブロックbl1(f1−ip4−A)の処理速度は、下記式(5)
SpeedSW-bl1(StCPU-c1,fCPU )=St CPU-c1 /f CPU (5)
のように求められる。このステップ数が小さいほど速度が大きいので、式(5)の数値がなるべく小さいことが望ましいことになる。
【0059】
次に、面積に関する計算は、マッピング結果を用いて、下記式(6)
のように行なわれる。つまり、IP機能を選択した後でIP機能の階層展開を行なう前に使用される各IP(f1−ip4,f2−ip1,f3−ip2)の情報があるので、これからHW部分の面積を求めることができる。
【0060】
次に、機能ブロックをコンパイルすると、アセンブラでメモリサイズがわかるので、SWのメモリの部分をすべて加算しておいて、それにエリアDRAMというデータベースを用いてDRAMの1ビット当たりの面積(単価)を計算する。それに、メモリサイズを乗じると、下記式(7)
Area SW-tot=(MsizeSW-bl1+…+MsizeSW-bl6)×Area DRAM (7)
により、求めることができる。
【0061】
このように、IP内が機能ブロックに分割されたことにより、機能ブロックのSWの部分からメモリサイズを計算すると、各機能ブロック間で面積を重複して計算する場合があるので、これを考慮して面積の計算精度の悪化を防止するのである。
【0062】
次に、HW部分の消費電力に関する計算は、マッピング結果を用いて、下記式(8)
Power HW-tot=Power HW-b1+…+Power HW-bl6 (8)
のように行なわれる。すると、式(8)中の例えば機能ブロックbl1(f1−ip4−A)の消費電力は、下記式(9)
により、表される。ただし、αは機能ブロックbl1のパワー係数でIP性能Libから抽出されるもの、fc3はコンポーネントc3(ASIC1)の動作周波数、Vc3はコンポーネントc3(ASIC1)の電圧、Pc3はコンポーネントc3(ASIC1)の優先順位(優先度)を示している。この優先度をトグル数の代わりに用いることで、トグル数がわからない静的解析においても、ある程度の確度で消費電力が求まることになる。
【0063】
また、SW部分の消費電力に関する計算は、下記式(10)
PowerSW-tot=PowerSW-CPU-tot+PowerSW-MEM-tot (10)
により求められる。式(10)の第1項は、
PowerSW-CPU-tot=αCPU×fCPU×LoadCPU (11)
となる。ここで、αCPUはCPUのパワー係数でIP性能Libから抽出されるもの、LoadCPUはCPUロード(0〜1)であって、「SWにマッピングされた機能ブロックのメモリサイズの合計(bit)」を「すべての機能ブロックをSWにマッピングしたときのメモリサイズの合計(bit)」で除したものである。
【0064】
一方、式(10)の第2項は、
PowerSW-MEM-tot=αDRAM×fDRAM×(VDRAM)2 ×PDRAM (12)
となる。αDRAMはDRAMのパワー係数でIP性能Libから抽出されるもの、fDRAMはDRAMの動作周波数(Hz)、VDRAMはDRAMの電圧、PDRAMはDRAMの優先順位を示している。この優先度を用いることで、トグル数がわからない静的解析においても、ある程度の確度で消費電力が求まることになる。
【0065】
そして、以上の計算を行なって上で、式(1)から最終的に決定されるコスト関数(Cost-tot)が最小になるか、下限値以下になったときに静的解析に関する限り、設計されたシステムが適切であると判断する。
【0066】
−性能解析(動的解析)−
動的解析においては、面積Area については静的解析と同じであるので、処理速度Speedと消費電力Powerのみを求める。動的解析においては、設計システムに実際にデータを入力させて動作させるシミュレーションを行なう。したがって、実行時間(Time (sec))や、各機能ブロックの入出力データ、トグル率がシミュレーションから得られる。
【0067】
そこで、動的解析においては、基本的には、この得られた要素を上記式(1)〜(12)に代入することにより、コスト関数(Cost-tot)の値を求めることができる。その際、式(1)における(SpeedHW-tot+SpeedSW-tot)は、シミュレーションで得られた時間Timeに置き換えることができ、式(9)における各コンポーネントの優先順位Pはシミュレーションで得られた各コンポーネントのトグル数で置き換えることができる。そして、式(11)におけるCPUロードLoadCPUは、実際のシミュレーションから求まる平均ロードを用いる。
【0068】
さらに、式(12)におけるDRAMの優先順位P(優先度)はシミュレーションで得られたDRAMのトグル数で置き換えることができる。
【0069】
−HW/SW分割(静的分割)−
次に、ステップST4,ST5と共に行なわれるIP内のHW/SW分割について説明する。HW/SWには静的分割と動的分割とがあるが、まず、静的な分割について説明する。
【0070】
図7は、静的なHW/SW分割を説明するための図である。同図に示すように、半導体デバイスなどのシステムに利用されるハードIPには、機能A,機能B,機能C,機能Dがあり、かつ、これらの機能のON・OFFを設定するための設定レジスタがある。ただし、HW/SW分割における「機能」とは本実施形態における「機能ブロック」を意味している。一方、IP性能Libには、各機能A,機能B,機能C,機能DについてのSWモデルが例えばC/C++言語によって記述されて格納いる。このとき、各機能をHWとSWとによって動作させた結果、1つの機能を変更,修正,削除する必要が生じる場合がある。ここで、例えば、設定レジスタ内の機能DをOFFにすることで、例えば機能Dへのクロックの供給を停止するなどの制御を行なって、機能Dが動作しないようにすることができる。これにより、無駄な電力の消費を抑制して消費電力の低減を図ることができる。また、各機能A〜D間の接続を変更することもできる。
【0071】
さらに、例えば1つの機能DをHWからIP性能Libに用意されたSWモデルに切り換えたり、用意しているLib内のSWモデルを修正することもできる。つまり、いずれかのLib内に各機能と等価なSWモデルを準備しておくことにより、1つのIP内をHW/SW分割することができ、ハードIPの機能が不足したときにも設計を進めることができる。また、SWの機能を修正,追加することにより、システムの変更に柔軟に対応することができる。
【0072】
−動的なHW/SW分割−
次に、動的なHW/SW分割について説明する。図7に示すHW/SW分割は、HW,SWの設定を行なった後は、原則としてその後の修正は行なわない。それに対し、動的なHW/SW分割,つまりHW/SW動作の切り換えにおいては、機能(機能ブロック)が動作しながら柔軟に変更,追加,修正を受けることができる。このような動的なHW/SW分割の例として、以下、第1〜第3の具体例について説明する。
【0073】
1.第1の具体例
第1の具体例では、図7に示すIPにおいて、各機能のON,OFFをSWによって制御し、かつ、停止させる場合はIP性能Libから同等のSWモデルを呼びだしてこれを用いる。設定レジスタへの制御信号により、各機能を動作させながらHW/SWの切り換えを行なうことができる。
【0074】
2.第2の具体例
図8(a),(b)は、動的なHW/SWの切り換えにおける消費電力Powerのタイムチャート図である。また、図9は、このHW/SWの切り換え制御のためのプログラムの例をC言語で示す図である。図9に示すように、設定レジスタの制御により、SWモデルからfunc−Cを呼び出してこちらを動作させた場合に、図8(a)に示すように、IPの消費電力Powerが消費電力の上限値MAXpowerを越える時があるとする。動的解析からどの機能が動作しているかが時間軸に応じてわかるので、あるレジスタに各機能の消費電力の合計を計算しながら書き込んでおいて、その値が上限値MAXpowerを超えるときを検出すればよい。そして、IPの消費電力Powerが消費電力の上限値MAXpowerを越えると、図9に示すように、設定レジスタの制御によりハードIPの機能CをONにして、代わりにハードIPの機能Cを動作させる。これにより、図8(b)に示すように、消費電力Powerが上限値MAXpowerを越えることがなくなり、所望の制約条件の下での作動を確保することができる。つまり、この例では、当該IPの機能A,Cが動作する期間には機能CがSWによって実現にされるが、機能A,B,Cが動作する期間には機能CがHWによって実現されるように設計することになる。
【0075】
3.第3の具体例
図10(a),(b)は、動的なHW/SWの切り換えにおける処理速度Speedの消費電力依存性を示す図である。また、図11は、このHW/SWの切り換え制御のためのプログラムの例をC言語で示す図である。図11に示すように、CPUの設定レジスタの制御により、CPUのロード(%)がある値IDLEよりも大きいときには機能CをHWにより実行し、CPUのロード(%)がある値IDLE以下のときに機能CをSWにより実行するよう制御する。つまり、機能Cを常にHWで実行すると、図10(a)に示すように処理時間Timeが上限値MAXtimeを越える事態が発生する。そこで、レジスタにCPUのロード(%)を検知しながら書き込んでおいて、CPUのロード(%)がある値IDLEを越えるときを検出しながら、CPUのロード(%)がある値IDLE以下のときには設定レジスタの制御によりハードIPの機能CをOFFにして、代わりにSWモデルからfunc−Cを呼び出してSWを動作させる。そして、CPUのロード(%)がある値IDLEを越えると、機能CをHWにより実行する。このような制御を行なうことにより、図10(b)に示すように、処理時間Timeが上限値MAXtimeを越えることがなくなり、所望の制約条件の下での作動を確保することができる。
【0076】
−HW/SW協調検証−
次に、ステップST8の協調検証について説明する。上述のステップST4のマッピング処理,ステップST5の性能解析処理に基づいて最終的に決定されたHW,SWの構成に従い、ステップST6,ST7で、HW設計とSW設計とを行なって、HWモデルとSWモデルとをそれぞれ作成する。HWモデルを作成する際にはIPハードウェアモデルLib(BCA,RTL又はゲートレベルで記述)を利用し、SWモデルを作成する際にはIPソフトウェアモデルLib(C言語,C++言語又はアセンブラで記述)を利用する。
【0077】
次に、ステップST8では、ステップST6,ST7で作成したHWモデル及びSWモデルを利用して、HW/SW協調検証を行なうが、そのためにはHW−SW間のI/Fモデルが必要となる。そこで、以下の手順により、I/Fモデルモデルを作成する。
【0078】
まず、図13に示すようなメモリマップを作成する。このメモリマップは、SWにプログラムをコンパイルしたものである。HWは、レジスタをメモリにマッピングする。
【0079】
そして、各機能ブロックのアドレスを決定し、各機能ブロックのアドレステーブルをデータバース化して、メモリマップDBに登録する。そして、図14に示すように、メモリマップDBに登録されたHWのレジスタとアドレスとの対応表をとりだして、アドレスデコーダを作成する。
【0080】
バスコントローラは、各HWブロックのP(優先度)にしたがって、各バス毎のアービトレーション方法ごとに用意したHDLテンプレートを生成する。すなわち、バスコントローラは、各ハードウェアのレジスタアドレスをメモリマップDBから抽出して、関数を作成し、これをドライバー関数テンプレートとしてSWモデルに格納する。
【0081】
図15は、基本ハードウェアアクセス用のドライバー関数テンプレートの一例を示す図である。このようなメモリマップDB,アドレスデコーダ,関数テンプレートを利用することにより、設計されたシステムのHWによってSWを動作させたり、システムのSWによってHWを動作させることが可能になり、HW/SW協調検証を行なうことができる。
【0082】
【発明の効果】
本発明により、IPの機能に着目してより最適化された半導体集積回路装置を形成するための設計が可能になった。
【図面の簡単な説明】
【図1】(a),(b),(c)は、IP群を搭載するための配線基板となるシリコン配線基板の平面図、シリコン配線基板上に搭載されるIP群の例を示す平面図、及びシリコン配線基板の断面図である。
【図2】本発明の実施形態におけるHW/SW協調設計の概略的な手順を示すフロー図である。
【図3】機能設計とIP機能設計との詳細な処理の内容を説明するための部分フロー図である。
【図4】システムアーキテクチャ設計における処理の内容を説明するための部分フロー図である。
【図5】マッピングと性能解析の概略とを説明するための部分フロー図である。
【図6】各種のマッピングを行なった結果のコスト関数(Cost-tot)の値の例を示す図である。
【図7】静的なHW/SW分割を説明するための図である。
【図8】(a),(b)は、動的なHW/SWの切り換えにおける消費電力Powerのタイムチャート図である。
【図9】消費電力を考慮したHW/SWの切り換え制御のためのプログラムの例をC言語で示す図である。
【図10】(a),(b)は、動的なHW/SWの切り換えにおける処理速度Speedの消費電力依存性を示す図である。
【図11】処理速度を考慮したHW/SWの切り換え制御のためのプログラムの例をC言語で示す図である。
【図12】協調検証を説明するための図である。
【図13】SWにプログラムをコンパイルして得られたメモリマップを示す図である。
【図14】メモリマップDBに登録されたHWのレジスタとアドレスとの対応表をとりだして、アドレスデコーダを作成する処理を示す図である。
【図15】基本ハードウェアアクセス用のドライバー関数テンプレートの一例を示す図である。
【符号の説明】
10 シリコン配線基板
11 シリコン基板
12 グランドプレーン
13 第1配線層
14 第2配線層
15 パッド
Claims (2)
- 機能を格納する第1の記憶装置と、上記機能用のテストベンチを格納する第2の記憶装置と、機能を有するIPを格納する第3の記憶装置と、HWモデルとSWモデルとを含むアーキテクチャモデルを格納する第4の記憶装置を有する半導体集積装置の設計システムによる半導体集積回路装置の設計方法であって、
各々ある機能を有する複数のIPを、上記機能を有するIPを格納する第3の記憶装置に格納するステップ(a)と、
ある仕様を満たすための機能群構造を、上記機能を格納する第1の記憶装置及び上記機能用のテストベンチを格納する第2の記憶装置から構築するステップ(b)と、
上記第3の記憶装置から上記機能群構造中の各機能について、当該機能を有するIPを選択して取り出して、上記機能群構造中の各機能と置き換えるステップ(c)と、
上記IPを機能ブロックレベルに階層展開するステップ(d)と、
上記階層展開された各機能ブロックごとに、当該機能ブロックの実現化対象を、上記アーキテクチャモデルを格納する第4の記憶装置中のHWモデルとSWモデルとに割り当てるように分割するステップ(e)と、
上記ステップ(e)の後、割り当てられた上記機能群構造中の各機能ブロックのHWモデルとSWモデルとへの割り当てを決定するための動的性能解析を行なうステップ(f)とを含み、
上記ステップ(f)では、ある機能ブロックをHWに割り当てたときのCPUの負荷率がある下限値よりも小さいときは、当該機能ブロックの割り当てがSWに切り換えられることを特徴とする半導体集積回路装置の設計方法。 - 機能を格納する第1の記憶装置と、上記機能用のテストベンチを格納する第2の記憶装置と、機能を有するIPを格納する第3の記憶装置と、HWモデルとSWモデルとを含むアーキテクチャモデルを格納する第4の記憶装置を有する半導体集積装置の設計システムによる半導体集積回路装置の設計方法であって、
各々ある機能を有する複数のIPを、上記機能を有するIPを格納する第3の記憶装置に格納するステップ(a)と、
ある仕様を満たすための機能群構造を、上記機能を格納する第1の記憶装置及び上記機能用のテストベンチを格納する第2の記憶装置から構築するステップ(b)と、
上記第3の記憶装置から上記機能群構造中の各機能について、当該機能を有するIPを選択して取り出して、上記機能群構造中の各機能と置き換えるステップ(c)と、
上記IPを機能ブロックレベルに階層展開するステップ(d)と、
上記階層展開された各機能ブロックごとに、当該機能ブロックの実現化対象を、上記アーキテクチャモデルを格納する第4の記憶装置中のHWモデルとSWモデルとに割り当てるように分割するステップ(e)と、
上記ステップ(e)の後、割り当てられた上記機能群構造中の各機能ブロックのHWモデルとSWモデルとへの割り当てを決定するための動的性能解析を行なうステップ(f)とを含み、
上記第4の記憶装置には、HWの機能毎に当該HWと等価な機能を有するSWモデルを格納しており、上記ステップ(f)では、時間軸に沿って消費電力が上限を超えた場合は、当該機能ブロックの割り当てがHWに切り換えられることを特徴とする半導体集積回路の設計方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000349938A JP3907398B2 (ja) | 2000-11-16 | 2000-11-16 | 半導体集積回路装置の設計方法 |
US09/985,286 US6785876B2 (en) | 2000-11-16 | 2001-11-02 | Design method for semiconductor integrated circuit device |
US10/875,176 US20040243959A1 (en) | 2000-11-16 | 2004-06-25 | Design method for semiconductor integrated circuit device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000349938A JP3907398B2 (ja) | 2000-11-16 | 2000-11-16 | 半導体集積回路装置の設計方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002157291A JP2002157291A (ja) | 2002-05-31 |
JP3907398B2 true JP3907398B2 (ja) | 2007-04-18 |
Family
ID=18823257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000349938A Expired - Fee Related JP3907398B2 (ja) | 2000-11-16 | 2000-11-16 | 半導体集積回路装置の設計方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US6785876B2 (ja) |
JP (1) | JP3907398B2 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7131097B1 (en) * | 2002-09-24 | 2006-10-31 | Altera Corporation | Logic generation for multiple memory functions |
KR100488084B1 (ko) * | 2002-12-07 | 2005-05-06 | 한국전자통신연구원 | 마이크로 컨트롤러 소프트 아이피 내장용 롬 소프트아이피의 생성 방법 및 이 방법을 실행시키기 위한프로그램을 기록한 기록매체 |
US7191111B2 (en) * | 2003-09-11 | 2007-03-13 | International Business Machines Corporation | Method, apparatus, and computer program product for implementing dynamic cosimulation |
US20050246287A1 (en) * | 2004-04-16 | 2005-11-03 | Taiwan Semiconductor Manufacturing Co., Ltd. | Method for facilitating transaction of integrated circuit production among various parties through a network platform |
US7627843B2 (en) * | 2005-03-23 | 2009-12-01 | International Business Machines Corporation | Dynamically interleaving randomly generated test-cases for functional verification |
US7788625B1 (en) * | 2005-04-14 | 2010-08-31 | Xilinx, Inc. | Method and apparatus for precharacterizing systems for use in system level design of integrated circuits |
US7308668B2 (en) * | 2005-06-30 | 2007-12-11 | International Business Machines Corporation | Apparatus and method for implementing an integrated circuit IP core library architecture |
US7451426B2 (en) * | 2005-07-07 | 2008-11-11 | Lsi Corporation | Application specific configurable logic IP |
US7580824B1 (en) * | 2005-12-21 | 2009-08-25 | Altera Corporation | Apparatus and methods for modeling power characteristics of electronic circuitry |
US20070214438A1 (en) * | 2006-03-09 | 2007-09-13 | Chen Peter H Chen Hanping | Method for static power characterization of an integrated circuit |
US8234624B2 (en) * | 2007-01-25 | 2012-07-31 | International Business Machines Corporation | System and method for developing embedded software in-situ |
JP5166194B2 (ja) * | 2008-10-03 | 2013-03-21 | 株式会社東芝 | アーキテクチャ検証装置 |
JP5516596B2 (ja) * | 2009-03-31 | 2014-06-11 | 日本電気株式会社 | 高レベル合成での設計空間探索の方法及び装置 |
JP5123255B2 (ja) * | 2009-06-09 | 2013-01-23 | 株式会社東芝 | アーキテクチャ検証装置 |
US8479129B1 (en) * | 2010-05-21 | 2013-07-02 | Marvell International Ltd. | Dynamic time domain randomization techniques for SOC and IP verification |
WO2018163291A1 (ja) * | 2017-03-07 | 2018-09-13 | 三菱電機株式会社 | アーキテクチャ選定装置、アーキテクチャ選定方法およびアーキテクチャ選定プログラム |
JP6752393B1 (ja) | 2019-11-19 | 2020-09-09 | 三菱電機株式会社 | 設計支援システムおよび設計支援プログラム |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06251102A (ja) | 1993-02-22 | 1994-09-09 | Matsushita Electric Ind Co Ltd | 回路設計方法と回路検索方法と回路修正方法および回路設計装置 |
JP2815281B2 (ja) | 1993-04-19 | 1998-10-27 | 株式会社ピーエフユー | デジタル回路設計支援システムおよびその方法 |
JPH08153129A (ja) | 1994-09-27 | 1996-06-11 | Toshiba Corp | 再利用容易化装置 |
US5870588A (en) * | 1995-10-23 | 1999-02-09 | Interuniversitair Micro-Elektronica Centrum(Imec Vzw) | Design environment and a design method for hardware/software co-design |
US6178542B1 (en) | 1997-02-24 | 2001-01-23 | Lucent Technologies Inc. | Hardware-software co-synthesis of embedded system architectures using quality of architecture metrics |
US6131182A (en) | 1997-05-02 | 2000-10-10 | International Business Machines Corporation | Method and apparatus for synthesizing and optimizing control logic based on SRCMOS logic array macros |
US6195593B1 (en) | 1997-09-03 | 2001-02-27 | Seiko Epson Corporation | Reusable modules for complex integrated circuit devices |
US6199031B1 (en) | 1998-08-31 | 2001-03-06 | Vlsi Technology, Inc. | HDL simulation interface for testing and verifying an ASIC model |
US6356862B2 (en) * | 1998-09-24 | 2002-03-12 | Brian Bailey | Hardware and software co-verification employing deferred synchronization |
JP2000293552A (ja) | 1999-04-01 | 2000-10-20 | Nec Corp | ハードウェア設計管理装置 |
JP2000315222A (ja) * | 1999-04-30 | 2000-11-14 | Matsushita Electric Ind Co Ltd | 集積回路装置の設計用データベース及び集積回路装置の設計方法 |
JP4077578B2 (ja) * | 1999-04-30 | 2008-04-16 | 松下電器産業株式会社 | 集積回路装置の設計方法 |
-
2000
- 2000-11-16 JP JP2000349938A patent/JP3907398B2/ja not_active Expired - Fee Related
-
2001
- 2001-11-02 US US09/985,286 patent/US6785876B2/en not_active Expired - Fee Related
-
2004
- 2004-06-25 US US10/875,176 patent/US20040243959A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20020059554A1 (en) | 2002-05-16 |
US20040243959A1 (en) | 2004-12-02 |
US6785876B2 (en) | 2004-08-31 |
JP2002157291A (ja) | 2002-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3907398B2 (ja) | 半導体集積回路装置の設計方法 | |
US9910605B2 (en) | Page migration in a hybrid memory device | |
US7299442B2 (en) | Probabilistic congestion prediction with partial blockages | |
US7624366B2 (en) | Clock aware placement | |
US6898769B2 (en) | Decoupling capacitor sizing and placement | |
US6993738B2 (en) | Method for allocating spare cells in auto-place-route blocks | |
US20130339917A1 (en) | Automating current-aware integrated circuit and package design and optimization | |
JP2002288253A (ja) | 集積回路設計中にデカップリング・キャパシタンスを加えるための方法 | |
Murali et al. | An application-specific design methodology for on-chip crossbar generation | |
US20230118981A1 (en) | General purpose functionality processor with a scalable architecture for neural networks | |
JP2007026170A (ja) | 半導体集積回路の自動レイアウト方法、自動レイアウトプログラム、および自動レイアウト装置 | |
Singh et al. | NARMADA: Near-memory horizontal diffusion accelerator for scalable stencil computations | |
US6671867B2 (en) | Analytical constraint generation for cut-based global placement | |
US5815406A (en) | Method and system for designing a circuit using RC and timing weighting of nets | |
US6654945B1 (en) | Storage medium in which data for designing an integrated circuit is stored and method of fabricating an integrated circuit | |
US20140040848A1 (en) | Controllable Turn-Around Time For Post Tape-Out Flow | |
US9507741B2 (en) | System-on-chip design structure | |
Kubo et al. | Global routing by iterative improvements for two-layer ball grid array packages | |
US6957413B1 (en) | System and method for specifying integrated circuit probe locations | |
US7117467B2 (en) | Methods for optimizing package and silicon co-design of integrated circuit | |
US20160117179A1 (en) | Command replacement for communication at a processor | |
Chen et al. | Distributed memory interface synthesis for Network-on-Chips with 3D-stacked DRAMs | |
JP2000099550A (ja) | Icパッケージ解析装置、icパッケージ解析方法およびicパッケージ解析プログラムを記録した媒体 | |
JP2007334549A (ja) | 集積回路装置の製造方法 | |
Grun et al. | Access pattern-based memory and connectivity architecture exploration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040223 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040309 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040428 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040615 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040804 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20041102 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041130 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050105 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20050128 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070116 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110126 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110126 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120126 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130126 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |