本開示技術にかかる設計支援プログラム、設計支援装置、および設計支援方法の好適な実施の形態を詳細に説明する。まず、実施の形態1では、設計対象回路内の任意のデータパスおよびデータパスに対応するクロックパスから任意のセルを選択する。そして、選択されたセルのセルタイプを置換することで複数種類の特性がそれぞれの特性の規格値に遵守し、さらに置換前に比べて規格値に余裕があるかを判断する実施例を説明する。
つぎに、実施の形態2〜4にて、ホールドタイミングスラックの特性分布がホールドタイミングの規格値に違反しているパスから対象セルを選択し、選択されたセルのセルタイプを置換することで複数種類の特性がそれぞれの特性の規格値を遵守する実施例を説明する。まず、実施の形態2では、対象セルのセルタイプが、複数のセルタイプから遅延値の特性分布のσに基づいて決定されたセルタイプに置換される例を示す。
つぎに、実施の形態3では、対象セルのセルタイプが、複数のセルタイプから遅延値の特性分布のμに基づいて決定されたセルタイプに置換される例を示す。最後に、実施の形態4では、対象セルのセルタイプが、複数のセルタイプから消費電力値の特性分布のμに基づいて決定されたセルタイプに置換される例を示す。
以下に添付図面を参照して、実施の形態1〜4を詳細に説明する。
(実施の形態1)
図1は、実施の形態1の一実施例を示す説明図である。設計対象回路100は、セルが初期配置済であり、クロックツリー合成後の部分回路の回路情報である。たとえば、Cell1は、セルタイプがBUF1である。設計対象回路100内のCell1〜Cell5の遅延値の特性分布に基づいてパス101のホールドタイミングスラックの特性分布およびセットアップタイミングスラックの特性分布が算出される。さらに、設計対象回路100内のCell1〜Cell5の消費電力値の特性分布に基づいてパス101の消費電力値の特性分布が算出される。パス101は、設計対象回路100を構成するデータパスおよびデータパスに対応するクロックパスである。
そして、たとえば、Cell1が、セルタイプがBUF1からBUF4に置換されると、設計対象回路100のパス101の各特性分布が再び算出される。そして、パス101の各特性分布が、各特性の規格値を遵守しているか否かが判断される。もしくは、パス101の少なくとも指定された特性分布が、置換前の指定された特性分布よりも規格値に対して余裕であるか否かが判断される。たとえば、消費電力値の特性分布が置換前に比べて規格値に対して余裕であるため、Cell1は、BUF4に決定される。
これにより、セルの置換により設計対象回路の複数種類の特性情報から異なる種類間の相関の有無にかかわらず制約に違反している特性情報を特定できる。したがって、複数種類の特性情報からどの種類の特性が違反しているかを容易に検出でき、それぞれの特性を改善することで部分回路を改善することができる。
(設計対象回路)
図2は、設計対象回路の一例を示す説明図である。設計対象回路200は、半導体集積回路内の部分回路を示している。設計対象回路200は、FF1およびFF2と、クロックパス201と、データパス202と、クロックパス201上のバッファであるCell3〜Cell5と、データパス202上のバッファであるCell1およびCell2と、を含む構成である。設計対象回路200では、理解の容易化のためにクロックパス201およびデータパス202上のセルをすべてバッファとしている。
実施の形態1では、Cell1〜Cell5をセル名として説明している。後述するBUF1〜BUF4は、セルタイプとして説明している。セルタイプが同一であれば、同一機能で同一特性である。実際には、物理情報などの回路情報に含まれている情報である。
実際には、コンピュータが、物理情報などの回路情報にアクセスすることで処理を実施するが、本実施の形態では、回路図を用いて説明する。なお、設計対象回路200は、記憶装置またはアクセス可能な外部のコンピュータの記憶装置に記憶されている。
(セルの特性分布)
図3−1は、セルの特性分布の一例を示す説明図である。実施の形態1では、バッファのセルタイプとしてBUF1〜BUF4を用いてセルの特性分布を説明する。まず、遅延値の特性分布について説明する。BUF1の特成分布では、中央値(μ)が50である。BUF2の特成分布では、μが70である。BUF3の特性分布では、μが120である。最後に、BUF4の特成分布では、μが110である。
つぎに、消費電力値の特性分布について説明する。BUF1の特成分布は、μを150として分布している。BUF2の特成分布は、μを130として分布している。BUF3は、μを100として分布している。最後に、BUF4は、μを90として分布している。図3−2にてμと標準偏差(σ)とをテーブルで示す。
図3−2は、セルタイプごとに遅延値および消費電力値のμとσの一例を示す説明図である。テーブル300は、セルタイプ301と、遅延値302のμと、遅延値302のσと、消費電力値303のμと、消費電力値303のσを含む構成である。BUF2を例に挙げると、遅延値302のμは70であり、消費電力値303のμは130であり、遅延値302のσは5であり、消費電力値303のσは10である。なお、実際には、各セルの特性情報は、利用者によりあらかじめライブラリとして用意され、記憶装置またはアクセス可能な外部のコンピュータの記憶装置に記憶されている。
つぎに、各セルの特性分布に基づいてパスの特性分布が算出される例を説明する。各セルの特性分布は、正規分布の特性式を用いて表すことができる。まず、遅延値の特性式の一例を下記式1にて示す。
ただし、lは、セルタイプの数を示している。本実施の形態では、セルタイプの数をBUF1〜BUF4までの4つであるとして説明する。そして、本実施の形態では、A0〜Amまでをあらかじめ利用者により決定されているとして、BUF1〜BUF4の遅延値の特性式を、それぞれα1〜α4にて示す。まず、BUF1の遅延値の特性式をα1に、BUF2の遅延値の特性式をα2に、BUF3の遅延値の特性式をα3に、BUF4の遅延値の特性式をα4に示す。
・α1=50+2×a1+1×a2
・α2=70+1×a1+3×a2
・α3=120+3×a1+2×a2
・α4=110+4×a1+2×a2
a1およびa2は、正規乱数である。そのため、μが0で、σの2乗が1で表される。α1の“μ+3σ”での値を例に挙げると、a1およびa2には、3が代入される。したがって、α1の“μ+3σ”での値は、59である。なお、α1〜α4は、記憶装置またはアクセス可能な外部のコンピュータの記憶装置に記憶されている。
つぎに、消費電力値の特性式の一例を下記式2にて示す。
だだし、上述したようにlは、セルタイプの数を示している。そして、本実施の形態では、B0〜Bmまでをあらかじめ利用者により決定されているとして、BUF1〜BUF4の消費電力値の特性式を、β1〜β4にて示す。まず、BUF1の消費電力値の特性式をβ1に、BUF2の消費電力値の特性式をβ2に、BUF3の消費電力値の特性式をβ3に、BUF4の消費電力値の特性式をβ4に示す。
・β1=150+1×b1+2×b2
・β2=130+4×b1+8×b2
・β3=100+2×b1+1×b2
・β4=90+1×b1+2×b2
b1およびb2は、正規乱数である。そのため、μが0で、σの2乗が1で表される。β1の“μ+3σ”での値を例に挙げると、b1およびb2には、3が代入される。したがって、β1の“μ+3σ”での値は、159である。なお、β1〜β4は、記憶装置またはアクセス可能な外部のコンピュータの記憶装置に記憶されている。
つぎに、ホールドタイミングスラックについて説明する。ホールドタイミングスラックとは、図2を例に説明すると、FF2へ入力されるクロック信号の立ち上がりからFF2へ入力されるデータ信号が変化するまでの時間である。そして、ホールドタイミングスラックの特性分布は、データパスおよびデータパスに対応するクロックパス上のセルの遅延値の特性式に基づいて多項式により算出される。ホールドタイミングスラックの特性分布を算出するための特性式の一例を下記式3に示す。
だだし、式3でのα1〜αnは、部分回路を構成するデータパスおよびデータパスに対応するクロックパス上のセルの遅延値の特性式である。実施の形態1では、式3のα1は、設計対象回路200内のCell1の遅延値の特性式を示している。したがって、本実施の形態では、nは、Cell1からCell5に対応して1〜5である。実施の形態1では、式3のx0〜xnを下記式4のように利用者によって決定されていることとして説明する。さらに、下記式4では、設計対象回路200内のデータパス202およびクロックパス201に基づいてホールドタイミングスラックの特性分布を算出するための特性式を示している。
X=100+0.2×(Cell1の遅延値の特性式)+0.3×(Cell2の遅延値の特性式)+0.4×(Cell3の遅延値の特性式)+0.5×(Cell4の遅延値の特性式)+0.6×(Cell5の遅延値の特性式)
・・・式4
つぎに、セットアップタイミングスラックについて説明する。セットアップタイミングスラックとは、図2を例に説明すると、FF2へ入力されるデータ信号の変化からFF2へ入力されるクロック信号の立ち上がりまでの時間である。そして、セットアップタイミングスラックの特性分布は、データパスおよびデータパスに対応するクロックパス上のセルの遅延値の特性分布に基づいて多項式により算出される。セットアップタイミングスラックの特性分布を算出するための特性式の一例を下記式5に示す。
だだし、式5でのαnは、部分回路を構成するデータパスおよびデータパスに対応するクロックパス上のセルの遅延値の特性式である。実施の形態1では、式5のα1は、設計対象回路200内のCell1の遅延値の特性式を示している。さらに、実施の形態1では、式5のy0〜ynを下記式6のように利用者によって決定されていることとして説明する。さらに、下記式6では、設計対象回路200内のデータパス202およびクロックパス201に基づいてセットアップタイミングスラックの特性分布を算出するための特性式を示している。
Y=150+0.2×(Cell1の遅延値の特性式)+0.4×(Cell2の遅延値の特性式)+0.6×(Cell3の遅延値の特性式)+0.8×(Cell4の遅延値の特性式)+1.0×(Cell5の遅延値の特性式)
・・・式6
つぎに、消費電力値の特性分布について説明する。消費電力値の特性分布は、データパスおよびデータパスに対応するクロックパス上のセルの消費電力値の特性分布に基づいて多項式により算出される。消費電力値の特性分布を算出するための特性式の一例を下記式7に示す。
だだし、式7でのβnは、部分回路を構成するデータパスおよびデータパスに対応するクロックパス上のセルの消費電力値の特性式である。実施の形態1では、式7のβ1は、設計対象回路200内のCell1の消費電力値の特性式を示している。さらに、実施の形態1では、式7のz0〜znを下記式8のように利用者によって決定されているとして説明する。さらに、下記式8では、設計対象回路200内のデータパス202およびクロックパス201に基づいて消費電力値の特性分布を算出するための特性式を示している。
Z=300+0.3×(Cell1の消費電力値の特性式)+0.4×(Cell2の消費電力値の特性式)+0.5×(Cell3の消費電力値の特性式)+0.6×(Cell4の消費電力値の特性式)+0.7×(Cell5の消費電力値の特性式)
・・・式8
なお、式4、式6、式8は、初期配置およびクロックツリーが構築された後に、部分回路に応じて利用者によりモデリングされる式である。そして、記憶装置またはアクセス可能な外部のコンピュータの記憶装置に記憶されている。
(設計支援装置のハードウェア構成)
図4は、設計支援装置のハードウェア構成を示すブロック図である。図4において、設計支援装置は、CPU(Central Processing Unit)401と、ROM(Read‐Only Memory)402と、RAM(Random Access Memory)403と、磁気ディスクドライブ404と、磁気ディスク405と、光ディスクドライブ406と、光ディスク407と、ディスプレイ408と、I/F(Interface)409と、キーボード410と、マウス411と、スキャナ412と、プリンタ413と、を備えている。また、各構成部はバス400によってそれぞれ接続されている。
ここで、CPU401は、設計支援装置の全体の制御を司る。ROM402は、ブートプログラムなどのプログラムを記憶している。RAM403は、CPU401のワークエリアとして使用される。磁気ディスクドライブ404は、CPU401の制御にしたがって磁気ディスク405に対するデータのリード/ライトを制御する。磁気ディスク405は、磁気ディスクドライブ404の制御で書き込まれたデータを記憶する。
光ディスクドライブ406は、CPU401の制御にしたがって光ディスク407に対するデータのリード/ライトを制御する。光ディスク407は、光ディスクドライブ406の制御で書き込まれたデータを記憶したり、光ディスク407に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ408は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ408は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F409は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク414に接続され、このネットワーク414を介して他の装置に接続される。そして、I/F409は、ネットワーク414と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F409には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード410は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス411は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ412は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ412は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ413は、画像データや文書データを印刷する。プリンタ413には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(設計支援装置の機能的構成)
図5は、設計支援装置の機能的構成を示すブロック図である。設計支援装置500は、設定部501と、検出部502と、選択部503と、置換部504と、取得部505と、算出部506と、判断部507と、削除部508と、挿入部509と、出力部510を含む構成である。各機能(設定部501〜出力部510)は、具体的には、たとえば、図4に示したROM402、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶されたプログラムをCPU401に実行させることにより、または、I/F409により、その機能を実現する。
まず、実施の形態1では、ホールドタイミングの規格値(Dhd_st)と、セットアップタイミングの規格値(Dsu_st)と、消費電力値の規格値(P_st)を、それぞれ下記に示す値を一例として説明する。
・Dhd_st:185
・Dsu_st:250
・P_st:750
なお、それぞれの特性の規格値は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶されている。
設計対象回路200内の各セルにセルタイプが設定されている例を下記にセル名:セルタイプとして示す。実際には、回路情報が、各セルがどのセルタイプであるかの情報を有している。
・Cell1:BUF1
・Cell2:BUF1
・Cell3:BUF1
・Cell4:BUF1
・Cell5:BUF1
検出部502は、設計対象回路内の部分回路を構成するデータパスと当該データパスに対応するクロックパスを検出する機能を有する。具体的には、たとえば、CPU401が、設計対象回路200から任意のデータパス202とデータパス202に対応するクロックパス201を検出する。
つぎに、選択部503は、検出部502により検出されたデータパスおよびクロックパス上のセル群から対象セルを選択する機能を有する。具体的には、たとえば、CPU401が、データパス202およびクロックパス201から任意のセルを対象セルとして選択する。たとえば、Cell1が対象セルに選択される。
置換部504は、選択部503により選択された対象セルを、対象セルと同一機能で特性が異なるセルに置換する機能を有する。具体的には、たとえば、CPU401が、対象セルであるCell1のセルタイプと同一機能で特性が異なる任意のセルタイプに置換する。たとえば、Cell1は上述したようにBUF1である。したがって、Cell1のセルタイプをBUF4から、テーブル300内のBUF4を除いて任意のセルタイプに置換する。たとえば、Cell1のセルタイプがBUF4からBUF2に置換される。なお、置換結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。
置換結果をセル名:セルタイプで下記に示す。
・Cell1:BUF2
・Cell2:BUF1
・Cell3:BUF1
・Cell4:BUF1
・Cell5:BUF1
取得部505は、置換部504により対象セルが置換された後のデータパスおよびクロックパスに基づいて、部分回路に関する複数種類の特性情報を取得する機能を有する。ここで、特性情報とは、多項式を用いて算出される特性分布を示している。具体的には、たとえば、CPU401が、置換後の設計対象回路200に基づいて上記式4,6,8により算出されたホールドタイミングスラックの特性分布とセットアップタイミングスラックの特性分布と消費電力値の特性分布を取得する。
たとえば、対象セルが置換された置換済パス上のセルの特性に基づいて算出された複数種類の特性分布を下記に示す。
上記式4を用いて算出されたホールドタイミングスラックの特性分布をX0として下記に示す。まず、上記式4のXに各セルの遅延値の特性式が代入されている例を示す。
・X0=100+0.2×(70+1×a1+3×a2)+0.3×(50+2×a1+1×a2)+0.4×(50+2×a1+1×a2)+0.5×(50+2×a1+1×a2)+0.6×(50+2×a1+1×a2)
つぎに、算出結果を示す。
・X0=204+3.8×a1+2.4×a2
上記式6を用いて算出されたセットアップタイミングスラックの特性分布をY0として下記に示す。まず、上記式6に各セルの遅延値の特性式が代入されている例を示す。
・Y0=150+0.2×(70+1×a1+3×a2)+0.4×(50+2×a1+1×a2)+0.6×(50+2×a1+1×a2)+0.8×(50+2×a1+1×a2)+1.0×(50+2×a1+1×a2)
つぎに、算出結果を示す。
・Y0=304+5.8×a1+3.4×a2
上記式8を用いて算出された消費電力値をZ0として下記に示す。まず、上記式8に各セルの遅延値の特性式が代入されている例を示す。
・Z0=300+0.3×(130+4×b1+8×b2)+0.4×(150+1×b1+2×b2)+0.5×(150+1×b1+2×b2)+0.6×(150+1×b1+2×b2)+0.7×(150+1×b1+2×b2)
つぎに、算出結果を示す。
・Z0=657+3.4×b1+6.8×b2
上述したように式4と、式6と、式8は、正規分布の特性式である。そして、本実施の形態では、各特性分布が“μ±3σ”にて規格値を満たすとする。なお、実際には、“μ±3σ”にて規格値を満たすとするのは一例であり、“μ±σ”であったり“μ±4σ”であったりと利用者により種々変更可能である。まず、ホールドタイミングスラックの特性分布は、最速値が規格値との比較対象となる。したがって、ホールドタイミングスラックの特性分布の“μ−3σ”がホールドタイミングの規格値以上であれば、ホールドタイミングスラックの特性分布が規格値を遵守している。
したがって、上述したX0のa1およびa2には、−3が代入される。下記にX0の算出結果を示す。
・X0=185.4
つぎに、セットアップタイミングスラックの特性分布は、最速値が規格値との比較対象となる。したがって、セットアップタイミングスラックの特性分布の“μ−3σ”での値がセットアップタイミングの規格値以上であれば、セットアップタイミングスラックの特性分布が規格値を遵守している。
したがって、上述したY0のa1およびa2には、−3が代入される。下記にY0の取得結果を示す。
・Y0=276.4
そして、消費電力値の特性分布では、特性分布の最大値が規格値との比較対象となる。したがって、消費電力値の特性分布の“μ+3σ”が消費電力値の規格値以下であれば、消費電力値の特性分布が規格値を遵守している。
したがって、上述したZ0のb1およびb2には、3が代入される。下記にZ0の取得結果を示す。
・Z0=687.6
また、複数種類の特性分布を取得することとして説明しているが、設計支援装置500内で算出部506により算出することとしてもよい。
算出部506は、置換部504により対象セルが置換された後のデータパスおよびクロックパスに基づいて、部分回路に関する複数種類の特性情報を算出する機能を有する。
具体的には、たとえば、CPU401が、設計対象回路200内のセルのセルタイプに基づいて遅延値の特性式を取得して、式4、式6に代入することでホールドタイミングスラックの特性式とセットアップタイミングスラックの特性式を算出する。さらに、設計対象回路200内のセルのセルタイプに基づいて消費電力値の特性式を取得して式8に代入することで算出する。なお、算出結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。
これにより、部分回路に関する複数種類の特性分布が、部分回路を構成するデータパスおよびデータパスに対応するクロックパス上のセルの特性分布に基づいて自動で算出される。したがって、規格値に違反している特性を容易に特定することができる。
つぎに、判断部507は、取得部505により取得された部分回路に関する複数種類の特性情報(または、算出部506により算出された複数種類の特性情報)がそれぞれの制約に違反しているか否かを判断する機能を有する。まず、判断部507がホールドタイミングスラックの特性分布が規格値を遵守しているか否かを判断する機能について説明する。
具体的には、たとえば、CPU401が、ホールドタイミングスラックの特性分布の“μ−3σ”での値がDhd_st以上であるか否かを判断する。そして、特性分布の“μ−3σ”での値がDhd_st以上の場合、規格値を遵守していると判断し、特性分布の“μ−3σ”での値がDhd_st未満の場合、規格値に違反していると判断する。ホールドタイミングスラックの特性分布の“μ−3σ”での値は、185.4である。そして、Dhd_stは185である。
したがって、X0はDhd_st以上であると判断され、ホールドタイミングスラックの特性分布は、ホールドタイミングの規格値を遵守していると判断される。なお、判断結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。
つぎに、判断部507が、セットアップタイミングスラックの特性分布が規格値を遵守しているか否かを判断する機能について説明する。具体的には、たとえば、CPU401が、セットアップタイミングスラックの特性分布の“μ−3σ”での値がDsu_st以上であるか否かを判断する。そして、特性分布の“μ−3σ”での値がDsu_st以上の場合、規格値を遵守していると判断し、特性分布の“μ−3σ”での値がDsu_st未満の場合、規格値に違反していると判断する。
セットアップタイミングスラックの特性分布の“μ−3σ”での値は、上述したように276.4である。そして、セットアップタイミングの規格値であるDsu_stは250である。したがって、Y0はDsu_st以上であるため、セットアップタイミングスラックの特性分布は、セットアップタイミングの規格値を遵守していると判断される。なお、判断結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。
最後に、判断部507が、消費電力値が規格値を遵守しているか否かを判断する機能について説明する。具体的には、たとえば、CPU401が、消費電力値の特性分布の“μ+3σ”での値がP_st以下であるか否かを判断する。そして、特性分布の“μ+3σ”での値がP_st以下の場合、規格値を遵守していると判断し、特性分布の“μ+3σ”での値がP_stより大きい場合、規格値に違反していると判断する。
消費電力値の特性分布の“μ+3σ”での値は、上述したように687.6である。そして、消費電力値の規格値であるP_stは750である。したがって、Z0はP_st以下であるため、消費電力値の特性分布は、消費電力値の規格値を遵守していると判断される。なお、判断結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。
したがって、置換後のホールドタイミングスラックの特性分布とセットアップタイミングスラックの特性分布と消費電力値の特性分布が、それぞれの特性の規格地を遵守している。
また、判断部507は、取得部505により取得された置換後の特性分布が置換前の特性分布よりも規格値に対して余裕があるか否かを判断する機能を有する。たとえば、利用者により少なくとも消費電力値が置換前の特性分布よりも規格値に対して余裕となるように置換すると指定された場合について説明する。
具体的には、たとえば、CPU401が、P_stから置換前の消費電力値の特性分布での“μ+3σ”の値を引いた値を算出し、第1の算出結果とする。つぎに、P_stから置換後の消費電力値の特性分布での“μ+3σ”の値を引いた値を算出し、第2の算出結果とする。つぎに、第2の算出結果が第1の算出結果より大きい値であるか否かを判断する。
そして、たとえば、CPU401が、第2の算出結果が第1の算出結果よりも大きい値である場合、置換後の特性分布が置換前の特性分布よりも規格値に対して余裕があると判断される。一方、第2の算出結果が第1の算出結果以下の場合、置換後の特性分布が置換前の特性分布よりも規格値に対して余裕がないと判断される。なお、“μ+3σ”での値を用いて説明しているが、たとえば、“μ”での値により判断するなど種々変更可能である。
つぎに、たとえば、利用者により少なくともホールドタイミングスラックの特性分布が置換前の特性分布よりも規格値に対して余裕となるように置換すると指定された場合について説明する。
具体的には、たとえば、CPU401が、Dhd_stから置換前のホールドタイミングスラックの特性分布での“μ−3σ”の値を引いた値を算出し、第1の算出結果とする。つぎに、Dhd_stから置換後のホールドタイミングスラックの特性分布での“μ−3σ”の値を引いた値を算出し、第2の算出結果とする。つぎに、第2の算出結果が第1の算出結果未満であるか否かを判断する。
そして、たとえば、CPU401が、第2の算出結果が第1の算出結果未満である場合、置換後のホールドタイミングスラックの特性分布が置換前のホールドタイミングスラックの特性分布よりも規格値に対して余裕があると判断する。一方、第2の算出結果が第1の算出結果以上の場合、置換後のホールドタイミングスラックの特性分布が置換前のホールドタイミングスラックの特性分布よりも規格値に対して余裕がないと判断される。なお、判断結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。なお、“μ−3σ”での値を用いて説明しているが、たとえば、“μ”での値により判断するなど種々変更可能である。
これにより、複数種類の特性分布が規格値を遵守することができ、さらに、利用者により指定された種類の特性分布を最適化することができる。
また、置換部504は、判断部507により少なくとも1種類の特性情報が、特性情報の制約に違反していると判断された場合、あらたに対象セルと同一機能で特性が異なる複数のセルからすでに置換済みであるセルを除くセルに置換する機能を有する。または、置換部504は、判断部507により指定された種類の特性情報が、置換前の特性情報よりも特性情報の制約に対して余裕がないと判断された場合、対象セルと同一機能で特性が異なる複数のセルからあらたなセルに置換する機能を有する。
具体的には、たとえば、CPU401が、置換済であるセルのセルタイプをリストに登録することで、リスト内に含まれているセルタイプであるか否かによりすでに置換済であるかを判断することができる。Cell1が対象セルの場合、置換済リストには、BUF4とBUF2が登録されている。
そして、具体的には、たとえば、CPU401が、対象セルのセルタイプをテーブル300のセルタイプから置換済リスト内に含まれているセルタイプを除くセルタイプにあらたに置換する。たとえば、Cell1のセルタイプをBUF2からBUF3に置換する。なお、置換結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。
そして、再度、取得部505、判断部507の処理を繰り返すことで、複数の特性情報が、それぞれの制約に違反することを防止でき、それぞれの特性を最適化することができる。
また、選択部503は、判断部507により少なくとも1種類の特性情報が、特性情報の制約に違反していると判断された場合、検出部502により検出されたデータパスおよびクロックパス上のセル群からあらたに対象セルを選択する機能を有する。または、置換部504は、判断部507により指定された種類の特性情報が、置換前の特性情報よりも特性情報の制約に対して余裕がないと判断された場合、検出部502により検出されたパス上のセルからあらたに対象セルを選択する機能を有する。具体的には、たとえば、CPU401が、データパス202上のセルからCell1を除くセルをあらたに対象セルに選択する。データパス202上のセルでCell1を除くセルは、Cell2のみであるため、Cell2が選択される。
そして、再度、置換部504、取得部505、判断部507の処理を繰り返すことで、複数の特性情報が、それぞれの制約に違反することを防止でき、それぞれの特性を最適化することができる。
そして、出力部510は、判断部507により判断された判断結果を出力する機能を有する。具体的には、たとえば、CPU401が、複数種類の特性情報がそれぞれの特性情報の規格値を遵守していると判断した場合、各セルのセルタイプを回路情報に出力して保存する。また、たとえば、CPU401が、複数種類の特性情報のうち少なくとも1つの種類の特性情報が、規格値を遵守していないと判断した場合、規格値を遵守できないことを出力する。
出力形式としては、たとえば、ディスプレイ408への表示、プリンタ413への印刷出力、I/F409による外部装置への送信がある。また、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶することとしてもよい。
これにより、セルの置換により設計対象回路の複数種類の特性情報から異なる種類間の相関の有無にかかわらず制約に違反している特性情報を特定できる。したがって、複数種類の特性情報からどの種類の特性が違反しているかを容易に検出でき、それぞれの特性を改善することで部分回路を改善することができる。
なお、設定部501については、実施の形態1にて詳細な説明を行わなかったが、実施の形態2〜3にて詳細な説明をおこなう。
(実施の形態1にかかる設計支援装置500の設計支援処理手順)
図6は、実施の形態1にかかる設計支援装置500の設計支援処理手順を示すフローチャートである。図6において、まず、検出部502により、回路情報からパスを検出する(ステップS601)。ここでのパスとは、部分回路を構成するデータパスおよび当該データパスに対応するクロックパスを指し、設計対象回路200を例に挙げると、データパス202およびクロックパス201である。
ステップS601のつぎに、未選択のパスがあるか否かを判断する(ステップS602)。そして、未選択のパスがあると判断された場合(ステップS602:Yes)、未選択のパスから1つのパスを選択し(ステップS603)、パス上のセルを検出する(ステップS604)。そして、未選択のセルがあるか否かを判断する(ステップS605)。
未選択のセルがあると判断された場合(ステップS605:Yes)、置換済リストをクリアし(ステップS606)、選択部503により、未選択のセルから1つのセルを対象セルに選択する(ステップS607)。そして、対象セルのセルタイプを置換済リストに登録し(ステップS608)、同一機能で異なるセルのセルタイプを検索し(ステップS609)、置換済リストに含まれていないセルタイプがあるか否かを判断する(ステップS610)。
置換済リストに含まれていないセルタイプがあると判断された場合(ステップS610:Yes)、未置換のセルタイプから1つのセルタイプを選択する(ステップS611)。つづいて、置換・判断処理を実行し(ステップS612)、ステップS609へ戻る。
一方、置換済リストに含まれていないセルタイプがないと判断された場合(ステップS610:No)、ステップS605へ戻る。
ステップS605において、未選択のセルがないと判断された場合(ステップS605:No)、ステップS602へ戻る。ステップS602において、未選択のパスがないと判断された場合(ステップS602:No)、回路情報を出力し(ステップS613)、一連の処理を終了する。
図7は、図6で示した置換・判断処理(ステップS612)の詳細な処理手順を示すフローチャートである。まず、対象セルのセルタイプを検索されたセルタイプに置換し(ステップS701)、置換後の対象セルのセルタイプを置換済リストに登録する(ステップS702)。つづいて、算出部506により、置換後のホールドタイムの特性分布を算出し(ステップS703)、判断部507により、ホールドタイムの規格値を遵守しているか否かを判断する(ステップS704)。ホールドタイムの規格値を遵守している場合(ステップS704:Yes)、算出部506により、置換後のセットアップタイムの特性分布を算出し(ステップS705)、判断部507により、セットアップタイムの規格値を遵守しているか否かを判断する(ステップS706)。
セットアップタイムの規格値を遵守していると判断された場合(ステップS706:Yes)、算出部506により、置換後の消費電力値の特性分布を算出し(ステップS707)、判断部507により、消費電力値の規格値を遵守しているか否かを判断する(ステップS708)。消費電力値の規格値を遵守していると判断された場合(ステップS708:Yes)、判断部507により、指定された特性分布が置換前よりも規格値に対して余裕であるか否かを判断する(ステップS709)。指定された特性分布が置換前よりも規格値に対して余裕であると判断された場合(ステップS709:Yes)、置換後の回路情報を保存し(ステップS710)、ステップS609へ戻る。
一方、規格値を遵守していない場合(ステップS704:No、ステップS706:No、ステップS708:No)、置換前のセルタイプに戻し(ステップS711)、ステップS609へ戻る。さらに、置換前よりも規格値に対して余裕でないと判断された場合(ステップS709:No)、ステップS711へ移行する。
(実施の形態2)
つぎに、実施の形態2について説明する。実施の形態2では、各セルが遅延値の特性分布のσに基づいて初期設定され、さらに、対象セルのセルタイプが遅延値の特性分布のσに基づいて置換される。これにより、セルの置換により設計対象回路の複数種類の特性情報から異なる種類間の相関の有無にかかわらず制約に違反している特性情報を特定できる。
したがって、複数種類の特性情報からどの種類の特性が違反しているかを容易に検出でき、それぞれの特性を改善することができる。さらに、セルの遅延値のσに基づいて置換することで、製造後の半導体集積回路間にタイミングの特性のばらつきが生じることを低減するようにタイミングの特性を最適化することができる。
そして、実施の形態1で説明した構成と同一構成については同一符号を付して説明を省略する。なお、実施の形態2では、複数種類の特性分布を算出するための特性式およびそれぞれの特性の規格値を実施の形態1で示した式および値と同一の式および値を用いて説明する。
まず、設定部501は、設計対象回路の回路情報内の各セルを、特性の異なる複数のセルから遅延値の特性分布のσが最も小さい値であるセルに設定する機能を有する。具体的には、たとえば、CPU401が、設計対象回路200を構成するデータパス202およびデータパス202に対応するクロックパス201上のセルを順次選択し、テーブル300から選択されたセルと同一機能であり、遅延値の特性分布のσが最も小さいセルタイプを検索する。そして、選択されたセルのセルタイプを、検索されたセルタイプに設定する。なお、設定結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。
設定結果をセル名:セルタイプで下記に示す。
・Cell1:BUF1
・Cell2:BUF1
・Cell3:BUF1
・Cell4:BUF1
・Cell5:BUF1
これにより、できる限り遅延値のσが小さい値にセルのセルタイプを設定でき、タイミング特性にばらつきが生じることを防止することができる。
算出部506は、設定部501により設定されたセルの遅延値の特性分布に基づいてセットアップおよびホールドタイミングスラックの特性分布を算出し、各セルの消費電力値の特性分布に基づいて消費電力値の特性分布を算出する機能を有する。算出部506が特性分布を算出する機能は、実施の形態1で説明した機能と同一機能であるため詳細な説明を省略する。
式4を用いて算出されたホールドタイミングスラックの特性分布をX1として下記に示す。まず、X1に各セルの遅延値の特性式が代入されている例を示す。
・X1=100+0.2×(50+2×a1+1×a2)+0.3×(50+2×a1+1×a2)+0.4×(50+2×a1+1×a2)+0.5×(50+2×a1+1×a2)+0.6×(50+2×a1+1×a2)
つぎに、X1の算出結果を示す。
・X1=200+4×a1+2×a2
式6を用いて算出されたセットアップタイミングスラックの特性分布をY1として下記に示す。まず、Y1に各セルの遅延値の特性式が代入されている例を示す。
・Y1=150+0.2×(50+2×a1+1×a2)+0.6×(50+2×a1+1×a2)+0.8×(50+2×a1+1×a2)+1.0×(50+2×a1+1×a2)
つぎに、Y1の算出結果を示す。
・Y1=300+6×a1+3×a2
式8を用いて算出された消費電力値をZ1として下記に示す。まず、Z1に各セルの遅延値の特性式が代入されている例を示す。
・Z1=300+0.3×(50+2×b1+1×b2)+0.4×(50+2×b1+1×b2)+0.5×(50+2×b1+1×b2)+0.6×(50+2×b1+1×b2)+0.7×(50+2×b1+1×b2)
つぎに、Z1の算出結果を示す。
・Z1=675+2.5×b1+5×b2
上述したように式4と、式6と、式8は、正規分布の特性式である。そして、実施の形態2では、実施の形態1と同様に各特性分布の“μ±3σ”の値がすべて規格値を満たすか否かにより規格値を遵守しているとする。
判断部507は、算出部506により算出された複数種類の特性分布が、それぞれの特性の規格値を遵守しているか否かを判断する機能を有する。判断部507は、実施の形態1で説明した機能と同一機能であるため詳細な説明を省略する。まず、ホールドタイミングスラックの特性分布は、最速値が規格値との比較対象となる。したがって、ホールドタイミングスラックの特性分布の“μ−3σ”がホールドタイミングの規格値以上であれば、ホールドタイミングスラックの特性分布が規格値を遵守している。
したがって、上述したX1のa1とa2には、それぞれ−3が代入される。下記にX1の算出結果を示す。
・X1=182
X1はDhd_st以下であるため、ホールドタイミングスラックの特性分布は、ホールドタイミングの規格値に違反していると判断される。
つぎに、セットアップタイミングスラックの特性分布は、最速値が規格値との比較対象となる。したがって、セットアップタイミングスラックの特性分布の“μ−3σ”がセットアップタイミングの規格値以上であれば、セットアップタイミングスラックの特性分布が規格値を遵守している。
したがって、上述したY1のa1とa2には、それぞれ−3が代入される。下記にY1の算出結果を示す。
・Y1=273
Y1はDsu_st以上であるため、セットアップタイミングスラックの特性分布は、セットアップタイミングの規格値を遵守していると判断される。
最後に、消費電力値の特性分布は、最大値が規格値との比較対象となる。したがって、消費電力値の特性分布の“μ+3σ”が消費電力値の規格値以下であれば、消費電力値の特性分布が規格値を遵守している。
したがって、上述したZ1のb1とb2には、それぞれ3が代入される。下記にZ1の算出結果を示す。
・Z1=697.5
Z1はP_st以下であるため、消費電力値の特性分布は、消費電力値の規格値を遵守していると判断される。
つぎに、検出部502は、判断部507により設計対象回路の回路情報からホールドタイミングスラックの特性分布がホールドタイミングの規格値に違反していると判断されたパスを検出する機能を有する。具体的には、たとえば、CPU401が、判断結果に基づいてホールドタイミングの規格値に違反していると判断されているパスを検出する。上述したように判断部507によりホールドタイミングスラックの特性分布がホールドタイミングの規格値に違反していると判断されたため、検出部502では、クロックパス201およびデータパス202が検出される。
また、検出部502は、判断部507により設計対象回路の回路情報からセットアップタイミングスラックの特性分布がセットアップタイミングの規格値に違反していると判断されたパスを検出する機能を有する。
具体的には、たとえば、CPU401が、判断結果に基づいてセットアップタイミングの規格値に違反していると判断されているパスを検出する。なお、本実施の形態では、設計対象回路200内のパスが、クロックパス201およびデータパス202のみである。上述したように判断部507によりセットアップタイミングスラックの特性分布がセットアップタイミングの規格値を遵守していると判断されたため、検出部502では、パスが検出されない。
また、検出部502は、判断部507により設計対象回路から消費電力値の特性分布が消費電力値の規格値に違反していると判断された部分回路を構成するデータパスおよびデータパスに対応するクロックパスを検出する機能を有する。なお、検出部502は、消費電力値の規格値に違反しているパスが無いと判断された場合に、消費電力値の規格値に違反しているパスを検出することとしてもよい。
具体的には、たとえば、CPU401が、記憶装置から判断結果を読み出して、消費電力値の規格値に違反していると判断されている部分回路を構成するデータパスおよびデータパスに対応するクロックパスを検出する。上述したように判断部507により消費電力値の特性分布が消費電力値の規格値を遵守していると判断されている。したがって、実施の形態2では、検出部502により消費電力値の規格値に違反していると判断されている部分回路を構成するデータパスおよびクロックパスが検出されない。
つぎに、選択部503は、検出部502により検出されたクロックパス上のセルから遅延値の特性分布の中央値が最大のセルを対象セルに選択する機能を有する。または、検出されたデータパス上のセルから遅延値の特性分布の中央値が最小のセルを対象セルに選択する機能を有する。
そして、具体的には、たとえば、CPU401が、データパス202からセルをすべて抽出する。そして、セルごとにセルのセルタイプに基づいてテーブル300から遅延値302のμを読み出す。そして、遅延値302のμが最大のセルを対象セル候補1に選択する。データパス202では、上述したようにCell1およびCell2がいずれもBUF1に設定されている。したがって、Cell1およびCell2から任意のセルを対象セル候補1に選択する。ここでは、Cell1が対象セル候補1に選択されるとする。
具体的には、たとえば、CPU401が、クロックパス201からセルをすべて抽出する。そして、セルごとにセルタイプに基づいてテーブル300からμを読み出す。そして、μが最大のセルを対象セル候補2に選択する。クロックパス201では、上述したようにCell3〜Cell5がすべてBUF1に設定されている。したがって、Cell1〜Cell5の中から任意のセルを対象セル候補2に選択する。ここでは、Cell4が対象セル候補2に選択されるとする。
対象セル候補1にはCell1が選択され、対象セル候補2にはCell4が選択されている。したがって、いずれか一方のセルが対象セルに選択される。たとえば、設計対象回路200内のすべてのセルの遅延分布のμの平均値を算出し、算出された平均値と対象セル候補の遅延値のμとの差分の絶対値が大きい方のセルが対象セルに選択される。ただし、差分の絶対値が同一の場合、データパス上のセルが対象セルに選択されるとする。したがって、Cell1およびCell4は、いずれもBUF1であるため、算出された平均値と対象セル候補との差分の絶対値は同一である。したがって、データパス202上のセルであるCell1が選択される。
これにより、クロックパスおよびデータパス上からホールドタイミングスラックに最も影響するセルを自動で選択することができる。したがって、ホールドタイミングスラックの特性を改善でき、同時にセットアップタイミングスラックおよび消費電力値を制約に遵守させることで部分回路の改善を図ることができる。
つぎに、置換部504は、選択部503により選択された対象セルを、当該対象セルと同機能で特性の異なるセルの中で遅延値の特性分布の標準偏差が最も小さいセルに置換する機能を有する。具体的には、たとえば、CPU401が、テーブル300から対象セルのセルタイプを除くセルタイプから遅延値のσが最も小さい値のセルタイプを検索する。したがって、テーブル300からBUF4が検索される。そして、たとえば、CPU401が、対象セルのセルタイプを、検索されたセルタイプに置換する。なお、置換結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。
置換結果を下記にセル名:セルタイプにて示す。
・Cell1:BUF4
・Cell2:BUF1
・Cell3:BUF1
・Cell4:BUF1
・Cell5:BUF1
そして、再度、算出部506によりパスの複数種類の特成分布が算出され、判断部507により算出された複数種類の特性分布がそれぞれの特性の規格値を遵守しているか否かが判断される。
なお、算出方法は、上述したように式4と、式6と、式8に各セルの特性式を代入することで算出することができる。式4により算出されたホールドタイミングスラックの特性式をX2とし、式6により算出されたセットアップタイミングスラックの特性式をY2とし、式8により算出された消費電力値の特性式をZ2とする。算出結果は下記のようになる。
・X2=212+4.4×a1+2.2×a2
・Y2=312+6.4×a1+3.2×a2
・Z2=657+2.5×b1+5×b2
X2およびY2は特性分布の最速値である“μ−3σ”での値を、Z2は特性分布の最大値である“μ+3σ”での値を下記に示す。
・X2=191.6
・Y2=283.2
・Z2=679.5
X2、Y2、Z2は、判断部507によりそれぞれの規格値を遵守していると判断される。したがって、Cell1のセルタイプが置換されることで、置換後の設計対象回路200に関する複数種類の特性分布がすべて規格値を遵守することができる。
なお、出力部510は、実施の形態1の機能と同一機能であるため説明を省略する。
そして、削除部508は、判断部507によりホールドタイミングに違反していると判断された場合、対象セルがクロックパス上のセルでありバッファであれば、対象セルを削除する機能を有する。
具体的には、たとえば、CPU401が、対象セルがクロックパス上のセルでありバッファであるか否かを判断する。そして、対象セルがクロックパス上のセルでありバッファであれば、設計対象回路200内から対象セルを削除して、対象セルの入力に接続されている配線と出力に接続されている配線とを接続する。なお、削除結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。
削除部508により対象セルが削除された後に、再度、算出部506により複数種類の特性情報が算出され、判断部507により複数種類の特性情報がそれぞれの規格値に違反しているか否かが判断される。
つぎに、挿入部509は、判断部507によりホールドタイミングに違反していると判断された場合、対象セルがデータパス上のセルであれば、データパス上にあらたにバッファを挿入する機能を有する。
具体的には、たとえば、CPU401が、対象セルがデータパス上のセルであるか否かを判断する。そして、対象セルがデータパス上のセルであれば、あらたにバッファを挿入し、挿入されたバッファの入力と対象セルの出力とを接続する。そして、対象セルの出力先であるセルの入力と挿入したバッファの出力とを接続する。たとえば、挿入されるバッファは、複数のセルタイプの中から最も遅延値のμが小さいセルタイプとする。なお、挿入結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。
挿入部509によりバッファが挿入された後に再度、算出部506および判断部507により複数種類の特性情報が算出され、複数種類の特性情報がそれぞれの規格値に違反しているか否かが判断される。
実施の形態2では、ホールドタイミングの制約に違反している場合について説明した。つぎに、たとえば、検出部502によりセットアップタイミングの制約に違反しているデータパスおよびクロックパスが検出された場合の選択部503による対象セルの選択についてを下記に示す。
セットアップタイミングの制約に違反している部分回路を構成するデータパスおよびクロックパスが検出された場合、選択部503は、クロックパス上のセルからセルのタイミングの特性分布の中央値が最小のセルを対象セルに選択する機能を有する。または、選択部503は、データパス上のセルからセルのタイミングの特性分布の中央値が最大のセルを対象セルに選択する機能を有する。
具体的には、たとえば、CPU401が、データパス202上のセルをすべて抽出する。そして、セルごとにセルタイプに基づいてテーブル300からμを読み出す。つぎに、抽出したセルの中でμが最小のセルを対象セル候補1に選択する。
そして、具体的には、たとえば、CPU401が、クロックパス201上のセルをすべて抽出する。そして、セルごとにセルタイプに基づいてテーブル300からμを読み出す。つぎに、抽出したセルの中でμが最大のセルを対象セル候補2に選択する。
対象セル候補1または対象セル候補2のうち、いずれか一方のセルが対象セルに選択される。たとえば、設計対象回路200内のすべてのセルの遅延分布のμの中央値を算出し、算出された中央値と対象セル候補の遅延値のμとの差分の絶対値が大きい方のセルが対象セルに選択される。ただし、差分の絶対値が対象候補セル1および対象候補セル2で同一の場合、データパス上のセルである対象候補セル1が対象セルに選択されるとする。なお、選択結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。そして、置換部504、判断部507、出力部510の機能は、ホールドタイミングの例と同一であるため説明を省略する。
これにより、クロックパスおよびデータパス上からセットアップタイミングスラックに最も影響するセルを自動で選択することができる。したがって、セットアップタイミングスラックの特性を改善でき、同時にホールドタイミングスラックおよび消費電力値を制約に遵守させることで部分回路の改善を図ることができる。
そして、削除部508は、判断部507によりセットアップタイミングの制約に違反していると判断された場合、対象セルがデータパス上のセルでありかつバッファであれば、対象セルを削除する機能を有する。
具体的には、たとえば、CPU401が、対象セルがデータパス上のセルでありバッファであるか否かを判断する。そして、対象セルがクロックパス上のセルでありバッファであれば、設計対象回路200内から対象セルを削除して、対象セルの入力に接続されている配線と出力に接続されている配線とを接続する。なお、削除結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。
つぎに、挿入部509は、判断部507によりセットアップタイミングに違反していると判断された場合、対象セルがクロックパス上のセルであれば、クロックパス上にあらたにバッファを挿入する機能を有する。
具体的には、たとえば、CPU401が、対象セルがクロックパス上のセルであるか否かを判断する。そして、対象セルがクロックパス上のセルであれば、あらたにバッファを挿入し当該バッファの入力と対象セルの出力とを接続する。そして、対象セルの出力先であるセルの入力と挿入したバッファの出力とを接続する。なお、挿入結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。
また、消費電力値の制約に違反しているパスが検出された場合、選択部503は、パス上の任意のセルを選択する。よって、選択部503は、セットアップタイミングの制約に違反しているパスが検出された場合のように対象セルを選択しても、ホールドタイミングの制約に違反しているパスが検出された場合のように対象セルを選択してもよい。なお、選択結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。そして、置換部504、判断部507、削除部508、出力部510の機能は、セットアップタイミングの例と同一であるため説明を省略する。
実施の形態2では、設計対象回路内から選択された対象セルのセルタイプが、遅延値の特性分布のσに基づいて置換される。これにより、セルの置換により設計対象回路の複数種類の特性情報から異なる種類間の相関の有無にかかわらず制約に違反している特性情報を特定できる。
したがって、複数種類の特性情報からどの種類の特性が違反しているかを容易に検出でき、それぞれの特性を改善することができる。さらに、セルの遅延値のσに基づいて置換することで、ホールドタイミングスラックおよびセットアップタイミングスラックの特性にばらつきが生じることを低減させると同時に消費電力値の特性分布が規格値を遵守することができる。したがって、タイミングの特性にばらつきが少なくなるように部分回路を最適化し、部分回路の改善を図ることができる。
(実施の形態2にかかる設計支援装置500の設計支援処理手順)
図8は、実施の形態2にかかる設計支援装置500の設計支援処理手順を示すフローチャートである。ここで説明する設計支援処理手順では、セットアップタイミングの特性分布、ホールドタイミングの特性分布、消費電力値の特性分布がそれぞれの特性の規格値を遵守していると判断された場合に終了するとする。そして、処理の対象となるパスは、任意のパスである。
まず、設定部501により、設定処理を実行し(ステップS801)、Flag1=0とする(ステップS802)。Flag1は、部分回路がホールドタイミングの制約に違反しているか、またはセットアップタイミングの制約に違反しているかを示すフラグである。つぎに、算出部506により、ホールドタイムの特性分布を算出し(ステップS803)、判断部507により、ホールドタイムの規格値を遵守しているか否かを判断する(ステップS804)。
ホールドタイムの規格値を遵守していないと判断された場合(ステップS804:No)、Flag1=1とし(ステップS805)、置換処理1を実行し(ステップS806)、ステップS803へ戻る。
一方、ホールドタイムの規格値を遵守していると判断された場合(ステップS804:Yes)、セットアップタイムの特性分布を算出し(ステップS807)、判断部507により、セットアップタイムの規格値を遵守しているか否かを判断する(ステップS808)。
セットアップタイムの規格値を遵守していないと判断された場合(ステップS808:No)、Flag1=2(ステップS809)、置換処理2を実行し(ステップS810)、ステップS807へ戻る。
一方、セットアップタイムの規格値を遵守していると判断された場合(ステップS808:Yes)、消費電力値の特性分布を算出し(ステップS811)、消費電力値の規格値を遵守しているか否かを判断する(ステップS812)。
消費電力値の規格値を遵守していないと判断された場合(ステップS812:No)、置換処理3を実行し(ステップS813)、ステップS811へ戻る。
一方、消費電力値の規格値を遵守していると判断された場合(ステップS812:Yes)、出力部510により、それぞれの規格値を遵守していることを出力し(ステップS814)、一連の処理を終了する。
つぎに、図9は、図8に示した設定処理(ステップS801)の詳細な処理手順を示すフローチャートである。まず、部分回路を構成するデータパスおよびデータパスに対応するクロックパス上のセルの中で未選択のセルがあるか否かを判断する(ステップS901)。そして、未選択のセルがあると判断された場合(ステップS901:Yes)、未選択のセルから1つのセルを選択する(ステップS902)。つぎに、特性の異なる複数のセルタイプから遅延値の特性分布のσが最小のセルタイプを検索し(ステップS903)、複数検索されたか否かを判断する(ステップS904)。
まず、複数検索されなかったと判断された場合(ステップS904:No)、置換部504により、選択されたセルのセルタイプを検索されたセルタイプに設定し(ステップS905)、ステップS901へ戻る。これにより、部分回路を構成するデータパスおよびデータパスに対応するクロックパス上の各セルが、遅延値のばらつきが少ないセルタイプに自動で設定され、タイミングの特性にばらつきが生じるのを防止することができる。
一方、複数検索されたと判断された場合(ステップS904:Yes)、選択されたセルがクロックパス上のセルか否かを判断する(ステップS906)。クロックパス上のセルの場合(ステップS906:Yes)、置換部504により、選択されたセルのセルタイプを、検索されたセルから遅延値のμが最大のセルタイプに設定し(ステップS907)、ステップS901へ戻る。
一方、選択されたセルがクロックパス上のセルでない場合(ステップS906:No)、置換部504により、選択されたセルのセルタイプを、検索されたセルから遅延値のμが最小のセルタイプに設定し(ステップS908)、ステップS901へ戻る。一方、未選択のセルがないと判断された場合(ステップS901:No)、ステップS802へ移行する。
図10は、図8に示した置換処理1(ステップS806)の詳細な処理手順を示すフローチャートである。まず、選択処理を実行し(ステップS1001)、決定処理を実行する(ステップS1002)。つぎに、対象セルのセルタイプを除いて遅延値のσが最小のセルタイプを検索し(ステップS1003)、検索されたか否かを判断する(ステップS1004)。検索された場合(ステップS1004:Yes)、対象セルのセルタイプを検索されたセルタイプに置換し(ステップS1005)、ステップS803へ戻る。
一方、検索されなかった場合(ステップS1004:No)、対象セルはデータパス上のセルであるか否かを判断する(ステップS1006)。対象セルはデータパス上のセルであると判断された場合(ステップS1006:Yes)、挿入部509により、遅延値のσが最小であるバッファを追加し(ステップS1007)、ステップS803へ戻る。これにより、データパスの遅延量が増加し、ホールドタイミングの違反を防止することができる。
一方、対象セルはデータパス上のセルでないと判断された場合(ステップS1006:No)、対象セルはバッファか否かを判断する(ステップS1008)。対象セルはバッファであると判断された場合(ステップS1008:Yes)、削除部508により、対象セルを削除し(ステップS1009)、ステップS803へ戻る。これにより、クロックパスの遅延が減少し、ホールドタイミングの違反を防止することができる。
一方、対象セルはバッファでないと判断された場合(ステップS1008:No)、対象セルを選択済リストに登録し(ステップS1010)、ステップS1001へ戻る。
図11および図12は、図8に示した置換処理2(ステップS810)の詳細な処理手順を示すフローチャートである。まず、図11において選択処理を実行し(ステップS1101)、決定処理を実行する(ステップS1102)。つぎに、対象セルのセルタイプを除いて遅延値の特性分布のσが最小のセルタイプを検索し(ステップS1103)、検索されたか否かを判断する(ステップS1104)。検索された場合(ステップS1104:Yes)、i=1とし(ステップS1105)、置換部504により、対象セルのセルタイプを置換し(ステップS1106)、ステップS1113へ移行する(図12内のステップ)。ここでのiは、セルのセルタイプを置換することを示している。
一方、検索されなかった場合(ステップS1104:No)、対象セルはクロックパス上のセルか否かを判断する(ステップS1107)。クロックパス上のセルの場合(ステップS1107:Yes)、i=2とし(ステップS1108)、挿入部509により、遅延値の特性分布のσが最小であるバッファを追加し(ステップS1109)、ステップS1113へ移行する(図12内のステップ)。これにより、クロックパスの遅延を増加させ、セットアップタイミングの違反を防止することができる。なお、ここで、iは、バッファを追加することを示している。
一方、クロックパス上のセルでない場合(ステップS1107:No)、対象セルはバッファであるか否かを判断する(ステップS1110)。対象セルはバッファであると判断された場合(ステップS1110:Yes)、i=3とし(ステップS1111)、削除部508により、対象セルを削除し(ステップS1112)、ステップS1113へ移行する(図12内のステップ)。これにより、データパスの遅延を減少させ、セットアップタイミングの違反を防止することができる。なお、ここで、iは、対象セルを削除することを示している。
一方、対象セルはバッファでないと判断された場合(ステップS1110:No)、対象セルを置換済リストに登録し(ステップS1120)、ステップS1101へ戻る。
つぎに、図12に移って、上述したステップS1106、ステップS1109、またはステップS1112の処理のつぎに、算出部506により、ホールドタイムの特性分布を算出する(ステップS1113)。そして、ホールドタイムの規格値を遵守しているか否かを判断する(ステップS1114)。ホールドタイムの規格値を遵守していると判断された場合(ステップS1114:Yes)、ステップS807へ戻る。
一方、ホールドタイムの規格値を遵守していないと判断された場合(ステップS1114:No)、iが1か否か判断する(ステップS1115)。iが1の場合(ステップS1115:Yes)、置換前のセルタイプに戻し(ステップS1116)、ステップS1107へ戻る(図11内のステップ)。
一方、iが1でない場合(ステップS1115:No)、iが2か否か判断する(ステップS1117)。iが2の場合(ステップS1117:Yes)、追加前に戻し(ステップS1118)、ステップS1120へ移行する(図11内のステップ)。一方、iが2でない場合(ステップS1117:No)、削除前に戻し(ステップS1119)、ステップS1120へ移行する(図11内のステップ)。
つぎに、図13および図14は、図8に示した置換処理3(ステップS813)の詳細な処理手順を示すフローチャートである。まず、選択処理を実行し(ステップS1301)、決定処理を実行し(ステップS1302)、消費電力値のμおよびσが対象セルのセルタイプより小さいセルタイプを検索する(ステップS1303)。つぎに、検索されたか否かを判断し(ステップS1304)、検索されなかったと判断された場合(ステップS1304:No)、消費電力値のμが対象セルのセルタイプよりも小さいセルタイプを検索する(ステップS1305)。そして、検索されたか否かを判断する(ステップS1306)。
ステップS1304またはステップS1306において、検索されたと判断された場合(ステップS1304:Yes、ステップS1306:Yes)、検索されたセルタイプから遅延値の特性分布のσが最小のセルタイプを選択する(ステップS1307)。つぎに、i=1とし(ステップS1308)、置換部504により、対象セルのセルタイプを置換し(ステップS1309)、ステップS1313へ移行する(図14内のステップ)。
一方、検索されなかったと判断された場合(ステップS1306:No)、対象セルはバッファか否かを判断する(ステップS1310)。そして、対象セルはバッファであると判断された場合(ステップS1310:Yes)、i=3とし(ステップS1311)、削除部508により、対象セルを削除し(ステップS1312)、ステップS1313へ移行する(図14内のステップ)。一方、対象セルはバッファでないと判断された場合(ステップS1310:No)、対象セルを置換済リストに登録し(ステップS1320)、ステップS1301へ戻る。
つぎに、図14に移って、上述したステップS1309またはステップS1312の処理のつぎに、算出部506により、ホールドタイムの特性分布を算出し(ステップS1313)、ホールドタイムの規格値を遵守しているか否かを判断する(ステップS1314)。ホールドタイムの規格値を遵守していると判断された場合(ステップS1314:Yes)、算出部506により、セットアップタイムの特性分布を算出し(ステップS1315)、セットアップタイムの規格値を遵守しているか否かを判断する(ステップS1316)。
ホールドタイムの規格値を遵守していないと判断された場合(ステップS1314:No)、または、セットアップタイムの規格値を遵守していないと判断された場合(ステップS1316:No)、iが1か否かを判断する(ステップS1317)。iが1であると判断された場合(ステップS1317:Yes)、置換前のセルタイプに戻し(ステップS1318)、ステップS1310へ戻る(図13内のステップ)。一方、iが1でないと判断された場合(ステップS1317:No)、削除前に戻し(ステップS1319)、ステップS1320へ移行する(図13内のステップ)。一方、セットアップタイムの規格値を遵守していると判断された場合(ステップS1316:Yes)、ステップS811へ戻る。
つぎに、図10、図11、図13にて示した選択処理(ステップS1001、ステップS1101、ステップS1301)について説明する。図15は、選択処理の詳細な処理手順について示すフローチャートである。まず、flag1が0であるか否かを判断する(ステップS1501)。flag1が0であると判断された場合(ステップS1501:Yes)、消費電力値のμが最大のセルを対象セル候補1に選択し(ステップS1502)、ステップS1002(ステップS1102、ステップS1302)へ移行する。
一方、flag1が0でないと判断された場合(ステップS1501:No)、遅延値の特性分布のμの平均値を算出し(ステップS1503)、データパス上であり、決定済リストに含まれていないセルを検出する(ステップS1504)。そして、flag1が1であるか否かを判断し(ステップS1505)、flag1が1である場合(ステップS1505:Yes)、選択部503により、遅延値のμが最小のセルを対象セル候補1に選択する(ステップS1506)。
一方、flag1が1でない場合(ステップS1505:No)、選択部503により、遅延値のμが最大のセルを対象セル候補1に選択する(ステップS1507)。そして、ステップS1506またはステップS1507のつぎに、クロックパス上であり、決定済リストに含まれていないセルを検出する(ステップS1508)。そして、flag1が1であるか否かを判断し(ステップS1509)、flag1が1である場合(ステップS1509:Yes)、選択部503により、遅延値のμが最大のセルを対象セル候補2に選択する(ステップS1510)。
一方、flag1が1でない場合(ステップS1509:No)、選択部503により、遅延値のμが最小のセルを対象セル候補2に選択する(ステップS1511)。そして、ステップS1510またはステップS1511のつぎに、ステップS1002(ステップS1102、ステップS1302)へ移行する。
つぎに、図10、図11、図13にて示した決定処理(ステップS1002、ステップS1102、ステップS1302)について説明する。図16は、決定処理の詳細な処理手順を示すフローチャートである。まず、対象セル候補1または2が選択されたか否かを判断し(ステップS1601)、選択されたと判断された場合(ステップS1601:Yes)、対象セル候補1が選択されたか否かを判断する(ステップS1602)。対象セル候補1が選択されたと判断された場合(ステップS1602:Yes)、対象セル候補2が選択されたか否かを判断する(ステップS1604)。対象セル候補2が選択されたと判断された場合(ステップS1604:Yes)、N=|パスに含まれるセルの遅延値のμの平均値−対象セル候補1の遅延値のμ|を算出する(ステップS1605)。
そして、M=|遅延値のμの平均値−対象セル候補2の遅延値のμ|を算出し(ステップS1606)、N≧Mであるか否かを判断する(ステップS1607)。N≧Mでない場合(ステップS1607:No)、または対象セル候補1が選択されなかったと判断された場合(ステップS1602:No)、選択部503により、対象セル候補2を対象セルに選択する(ステップS1609)。
一方、N≧Mの場合(ステップS1607:Yes)、または対象セル候補2が選択されなかったと判断された場合(ステップS1604:No)、選択部503により、対象セル候補1を対象セルに選択する(ステップS1608)。そして、ステップS1608のつぎに、ステップS1003(ステップS1103、ステップS1303)へ移行する。
一方、対象候補セル1または2が選択されなかったと判断された場合(ステップS1601:No)、出力部510により、置換不可であることを出力し(ステップS1603)、一連の処理を終了する。
(実施の形態3)
つぎに、実施の形態3について説明する。実施の形態3では、遅延値のμに基づいて各セルのセルタイプが設定され、設計対象回路内から選択された対象セルが、遅延値のμに基づいて置換される。これにより、セルの置換により設計対象回路の複数種類の特性情報から異なる種類間の相関の有無にかかわらず制約に違反している特性情報を特定できる。
したがって、複数種類の特性情報からどの種類の特性が違反しているかを容易に検出でき、それぞれの特性を改善することができる。さらに、セルの遅延値のμに基づいて置換することで、タイミング特性が向上するように最適化することができる。そして、実施の形態1または2で説明した構成と同一構成については同一符号を付して説明を省略し、実施の形態1または2で説明した処理と同一の処理についても説明を省略する。なお、実施の形態3では、複数種類の特性のそれぞれの規格値を実施の形態1で示した値と同一の値を用いて説明する。
まず、設定部501は、設計対象回路の回路情報内の各セルを、特性の異なる複数のセルから遅延値の特性分布のμが最も小さい値であるセルに設定する機能を有する。具体的には、たとえば、CPU401が、記憶装置にアクセスして設計対象回路200内のセルを順次選択する。そして、記憶装置にアクセスしてテーブル300から遅延値の特性分布のμが最も小さいセルタイプを検索する。そして、選択されたセルのセルタイプを、検索されたセルタイプに設定する。なお、設定結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。これにより、遅延値が少ないデータパスおよびデータパスに対応するクロックパスを構築することができる。
設定結果をセル名:セルタイプで下記に示す。
・Cell1:BUF1
・Cell2:BUF1
・Cell3:BUF1
・Cell4:BUF1
・Cell5:BUF1
つぎに、算出部506は、設定部501によりセルタイプが設定された後の複数種類の特性分布を算出する。なお、算出部506は、実施の形態1で説明した機能と同一機能であるため詳細な説明を省略する。さらに判断部507は、複数種類の特性分布が、それぞれの特性の規格値を遵守しているか否かを判断する。なお、判断部507は、実施の形態1で説明した機能と同一機能であるため詳細な説明を省略する。
実施の形態2で示した設定結果の一例と同一であるため、設定後のパスの複数種類の特性分布に関する説明を省略する。したがって、ホールドタイミングスラックの特性分布がホールドタイミングの規格値に違反している。
つぎに、検出部502は、ホールドタイミングに違反しているパスを検出する機能を有する。実施の形態2で説明した機能と同一機能であるため説明を省略する。よって、設計対象回路200からクロックパス201とデータパス202が検出される。
つぎに、選択部503は、検出部502により検出されたホールドタイミング違反であるクロックパス上のセルから遅延値の特性分布の中央値が最大のセルを対象セルに選択する機能を有する。または、データパス上のセルから遅延値の特性分布の中央値が最小のセルを対象セルに選択する機能を有する。選択部503は、実施の形態2で説明した機能と同一機能であるため説明を省略する。したがって、選択部503によりデータパス202上からCell1が対象セル候補1に選択され、クロックパス201上からCell4が対象セル候補2に選択される。
データパス202上の対象セル候補1とクロックパス201上の対象セル候補2のいずれか一方のセルが、対象セルに選択される。選択基準として、実施の形態2で説明した基準と同一とする。したがって、Cell1およびCell4は、いずれもBUF1であるため、データパス202上のセルであるため、Cell1が選択される。
つぎに、置換部504は、選択部503により選択された対象セルが前記クロックパス上のセルの場合、対象セルを、当該対象セルと同機能で特性の異なるセルの中で遅延値の特性分布の中央値が最も大きい値であるセルに置換する機能を有する。または、置換部504は、選択部503により選択された対象セルがデータパス上のセルの場合、対象セルを、当該対象セルと同機能で特性の異なるセルの中で遅延値の特性分布の中央値が最も小さい値であるセルに置換する機能を有する。これにより、Cell1のセルタイプがBUF1からBUF2に置換される。
置換後の各セルのセルタイプを下記に示す。
・Cell1:BUF2
・Cell2:BUF1
・Cell3:BUF1
・Cell4:BUF1
・Cell5:BUF1
これにより、対象セルをホールドタイミングの特性を改善することができるセルに自動で置換でき、複数種類の特性が同時に制約を遵守させることで部分回路の改善を図ることができる。なお、上述した置換部504の機能はホールドタイミングに違反している場合の機能であるため、セットアップタイミングに違反している場合の置換部504の機能は後述する。
つぎに、算出部506は、置換部504により置換後の各セルの遅延値の特性分布に基づいてホールドタイミングスラックの特性分布およびセットアップタイミングスラックの特性分布を算出する機能を有する。さらに、算出部506は、置換部504により置換後の各セルの消費電力値の特性分布に基づいて消費電力値の特性分布を算出する機能を有する。なお、算出部506は、実施の形態1で説明した機能と同一機能であるため詳細な説明を省略する。
置換後のデータパス202およびクロックパス201に基づいて、算出されたホールドタイミングスラックの特性式をX3に、セットアップタイミングの特性式をY3に、消費電力値の特性式をZ3に示す。
・X3=204+3.8×a1+2.4×a2
・Y3=304+5.8×a1+3.4×a2
・Z3=657+3.4×b1+6.8×b2
そして、ホールドタイミングスラックの特性式の“μ−3σ”での値と、セットアップタイミングスラックの特性式の“μ−3σ”での値と、消費電力値の特性式の“μ+3σ”での値を下記に示す。
・X3=185.4
・Y3=276.4
・Z3=687.6
つぎに、判断部507は、実施の形態1および2で説明した機能と同一機能であるため説明を省略する。X3がDhd_stH以上であるためホールドタイミングスラックの特性分布は、ホールドタイミングの規格値を遵守していると判断される。そして、Y3がDsu_st以上であるためセットアップタイミングスラックの特性分布は、セットアップタイミングの規格値を遵守していると判断される。さらに、Z3がP_st以下であるため、消費電力値の特性分布は、消費電力値の規格値を遵守していると判断される。
そして、出力部510は、実施の形態1および2で説明した機能と同一機能であるため説明を省略する。
つぎに、セットアップタイミングの制約に違反している場合の置換部504の機能について説明する。セットアップタイミングの制約に違反しているときには、置換部504は、対象セルがクロックパス上のセルの場合、対象セルを、当該対象セルと同機能で特性の異なるセルの中で遅延値の特性分布の中央値が最も小さい値であるセルに置換する機能を有する。
これにより、セットアップタイミングの特性を改善することができるセルに自動で置換でき、複数種類の特性に制約を遵守させることで部分回路の改善を図ることができる。
または、置換部504は、選択部503により選択された対象セルがデータパス上のセルの場合、対象セルを、当該対象セルと同機能で特性の異なるセルの中で遅延値の特性分布の中央値が最も大きい値であるセルに置換する機能を有する。なお、実施の形態3では、ホールドタイミングに違反している場合の例により説明しているため、セットアップタイミングに違反している場合の例を省略する。
これにより、セットアップタイミングの特性を改善することができるセルに自動で置換でき、複数種類の特性に制約を遵守させることで部分回路の改善を図ることができる。
実施の形態3では、実施の形態2にて説明した処理と設定部501および置換部504に違いがあるが、その他の処理に関しては同一であるためフローチャートを用いての設計支援処理手順の説明を省略する。
(実施の形態4)
実施の形態4では、対象セルのセルタイプが、複数のセルタイプから消費電力値の特性分布のμに基づいて決定される例を示す。特にホールドタイミングの規格値に違反している例を用いて説明する。
まず、実施の形態4では、ホールドタイミングの規格値(Dhd_st)とセットアップタイミングの規格値(Dsu_st)と消費電力値の規格値(P_st)の一例としてそれぞれ下記に示す。
・Dhd_st:285
・Dsu_st:250
・P_st:750
まず、設定部501は、各セルのセルタイプを、消費電力値の特性分布のμが最小であるセルタイプに設定する機能を有する。具体的には、たとえば、CPU401が、設計対象回路200内のセルを順次選択し、テーブル300から選択されたセルと同一機能であり、消費電力値の特性分布のμが最小であるセルタイプを検索する。そして、選択されたセルのセルタイプを、検索されたセルタイプに設定する。なお、設定結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。
設定結果をセル名:セルタイプで下記に示す。
・Cell1:BUF4
・Cell2:BUF4
・Cell3:BUF4
・Cell4:BUF4
・Cell5:BUF4
これにより、各セルを、消費電力値のμが最小であるセルタイプに設定することで、消費電力値を低減することができる。
算出部506は、設定部501により設定されたセルタイプの遅延値の特性分布に基づいてホールドタイミングスラックの特性分布およびセットアップタイミングスラックの特性分布を算出する機能を有する。さらに、算出部506は、設定されたセルタイプの消費電力値の特性分布に基づいて消費電力値の特性分布を算出する機能を有する。なお、算出部506は、実施の形態1〜3で説明した機能と同一機能であるため詳細な説明を省略する。
設定後のデータパス202およびクロックパス201に基づいて算出されたホールドタイミングスラックの特性分布をX4に示し、セットアップタイミングスラックの特性分布をY4に示し、消費電力値の特性分布をZ4に示す。
・X4=320+8×a1+4×a2
・Y4=480+12×a1+6×a2
・Z4=525+2.5×b1+5×b2
X4およびY4は“μ−3”での値を、Z4は“μ+3”での値を下記に示す。
・X4=284
・Y4=426
・Z4=547.5
そして、検出部502は、X4がDhd_st以下であるためホールドタイミングの制約に違反しているため設計対象回路200を構成するデータパス202およびクロックパス201を検出する。なお、検出部502は、実施の形態2で説明した機能と同一機能であるため詳細な説明を省略する。
つぎに、選択部503は、実施の形態2で説明した処理と同一処理であるため説明を省略する。なお、データパス202上のCell1が対象セル候補1に、クロックパス201上のCell4が対象セル候補2に選択される。そして、実施の形態2で説明したように対象セル候補1または2のいずれか一方のセルを選択する。したがって、対象セル候補1が対象セルに選択される。
つぎに、置換部504は、選択部503により選択された対象セルがクロックパス上のセルの場合、対象セルを、当該対象セルと同機能で特性の異なるセルの中から遅延値のμが対象セルの遅延値のμより小さいセルに置換する機能を有する。または、置換部504は、選択部503により選択された対象セルがデータパス上のセルの場合、対象セルを、当該対象セルと同機能で特性の異なるセルの中から遅延値のμが対象セルの遅延値のμより大きいセルに置換する機能を有する。
具体的には、たとえば、CPU401が、テーブル300から対象セルのセルタイプの遅延値のμを取得する。そして、対象セルがクロックパス上のセルの場合、遅延値のμが対象セルの遅延値のμよりも小さいセルタイプをテーブル300から検索する。または、対象セルがデータパス上のセルの場合、遅延値のμが対象セルの遅延値のμよりも大きいセルタイプをテーブル300から検索する。そして、対象セルのセルタイプを、検索されたセルタイプの中から任意のセルタイプに置換する。
なお、置換結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。そして、ここで説明した置換部504の機能は、ホールドタイミング違反の場合の機能であるため、セットアップタイミング違反の場合の機能に関しては後述する。
また、置換部504は、選択部503により選択された対象セルがクロックパス上のセルの場合、対象セルを、当該対象セルと同機能で特性の異なるセルの中から消費電力値のμが最も小さい値であるセルに置換する機能を有する。具体的には、たとえば、CPU401が、テーブル300から対象セルのセルタイプを除くセルタイプから消費電力値のμが最も小さい値のセルタイプを検索する。したがって、テーブル300からBUF4が検索される。そして、たとえば、CPU401が、対象セルのセルタイプを、検索されたセルタイプに置換する。なお、置換結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。
たとえば、対象セルは、データパス上のCell1である。Cell1は、BUF4であるため、テーブル300からBUF4の遅延値302のμが読み出される。BUF4の遅延値302のμは、110である。そして、遅延値302のμが対象セルの遅延値302のμよりも大きいセルタイプ301をテーブル300から検索する。したがって、BUF3が検索される。よって、Cell1のセルタイプが、BUF4からBUF3に置換される。たとえば、遅延値302のμが対象セルの遅延値302のμよりも大きいセルタイプ301がテーブル300から複数検索された場合、対象セルを、消費電力値303のμが最も小さい値のセルタイプ301に置換することとしてもよい。
これにより、消費電力値を最も低減させることができるセルに自動で置換することで消費電力値の特性を最適化すると同時にセットアップタイミングスラックおよびホールドタイミングスラックが規格値を遵守することができる。したがって消費電力値が低減するように部分回路を最適化し、部分回路の改善を図ることができる。
そして、算出部506は、実施の形態1〜3で説明した機能と同一の機能であるため詳細な説明を省略する。
ホールドタイミングスラックの特性式をX5に示し、セットアップタイミングスラックの特性式をY5に示し、消費電力値の特性式をZ5に示す。
・X5=322+7.8×a1+4×a2
・Y5=482+13×a1+7.2×a2
・Z5=528+2.8×a1+4.7×a2
X5およびY5は“μ−3σ”での値を、Z5は“μ+3σ”での値を下記に示す。
・X5=286.6
・Y5=421.4
・Z5=550.5
つぎに、判断部507は、実施の形態1〜3で説明した機能と同一の機能であるため詳細な説明を省略する。“μ−3σ”でのX5がDhd_st以上であるためホールドタイミングスラックの特性分布はホールドタイミングの制約を遵守している。“μ−3”でのY5はDsu_st以上であるためセットアップタイミングスラックの特性分布はセットアップタイミングの制約を遵守している。“μ+3σ”でのZ5はP_st以下であるため消費電力値の特性分布は消費電力値の制約を遵守している。したがって、複数種類の特性分布がそれぞれの規格値を遵守しているため処理を終了する。
たとえば、実施の形態4では、消費電力値の特性分布の“μ+3σ”での値が実施の形態3に比べて小さい値であるため、消費電力値の規格値に対して余裕であることが分かる。したがって、セルの消費電力値の特性に基づいて各セルのセルタイプを決定することで、複数種類の特性がそれぞれの規格値を遵守し、特に消費電力値の特性を重視して最適化することができる。
つぎに、出力部510は、実施の形態1〜3で説明した機能と同一の機能であるため詳細な説明を省略する。
つぎに、セットアップタイミング違反の場合について説明する。置換部504は、選択部503により選択された対象セルがクロックパス上のセルの場合、対象セルを、当該対象セルと同機能で特性の異なるセルの中から遅延値のμが対象セルの遅延値のμより大きいセルに置換する機能を有する。または、置換部504は、選択部503により選択された対象セルがデータパス上のセルの場合、対象セルを、当該対象セルと同機能で特性の異なるセルの中から遅延値のμが対象セルの遅延値のμより小さいセルに置換する機能を有する。
具体的には、たとえば、CPU401が、テーブル300から対象セルのセルタイプの遅延値のμを取得する。そして、対象セルがクロックパス上のセルの場合、遅延値のμが対象セルの遅延値のμよりも大きいセルタイプをテーブル300から検索する。または、対象セルがデータパス上のセルの場合、遅延値のμが対象セルの遅延値のμよりも小さいセルタイプをテーブル300から検索する。そして、対象セルのセルタイプを、検索されたセルタイプの中から任意のセルタイプに置換する。
なお、置換結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。そして、判断部507、出力部510の機能は、上述した機能と同一であるため説明を省略する。
実施の形態4では、実施の形態2および3にて説明した処理と設定部501および置換部504に違いがあるが、その他の処理に関しては同一であるためフローチャートを用いての設計支援処理手順の説明を省略する。
以上説明したように、設計支援プログラム、設計支援方法、および設計支援装置によれば、部分回路を構成するデータパスおよびクロックパス上のセルから任意のセルを対象セルに選択し、当該対象セルと同一機能で特性の異なるセルに置換する。そして、置換後の部分回路に関する複数種類の特性分布が、それぞれの制約に違反しているか否かを判断することで、複数種類の特性から制約に違反している特性を特定できる。さらに、同時に複数の特性が制約を遵守することで、部分回路の改善を図ることができる。
また、少なくとも1種類の特性分布が制約に違反していると判断された場合、対象セルを、異なる特性のセルにあらたに置換し、置換後の部分回路の複数種類の特性分布がそれぞれの制約に違反しているか否かを判断する。これにより、同時に複数の特性が制約を遵守することができ、部分回路の改善を図ることができる。
また、少なくとも1種類の特性分布が制約に違反していると判断された場合、データパスおよびクロックパス上のセルからあらたに対象セルを選択し、置換後の部分回路の複数種類の特性分布がそれぞれの制約に違反しているか否かを判断する。これにより、同時に複数の特性が制約を遵守することができ、部分回路の改善を図ることができる。
また、対象セルを、当該対象セルと同機能で特性の異なるセルの中で遅延値の特性分布のσが最も小さいセルに置換する。これにより、ホールドタイミングスラックおよびセットアップタイミングスラックの特性にばらつきが生じることを低減させると同時に消費電力値の特性分布が規格値を遵守することができる。したがって、タイミングの特性にばらつきが少なくなるように部分回路を最適化し、部分回路の改善を図ることができる。
また、設計対象回路からホールドタイミングの制約に違反している部分回路を構成するデータパスおよびクロックパスを検出する。そして、クロックパス上のセルのうち遅延値のμが最大のセルとデータパス上のセルのうち遅延値のμが最小のセルから、いずれか一方のセルを対象セルに選択する。
これにより、クロックパスおよびデータパス上からホールドタイミングスラックに最も影響するセルを自動で選択することができる。したがって、ホールドタイミングスラックの特性を改善でき、同時にセットアップタイミングスラックおよび消費電力値を制約に遵守させることで部分回路の改善を図ることができる。
また、ホールドタイミングに違反している場合、対象セルがクロックパス上のセルであれば、対象セルを、遅延値のμが大きくなるように置換する。または、対象セルがデータパス上のセルであれば、対象セルを、遅延値のμが小さくなるように置換する。
これにより、対象セルをホールドタイミングの特性を改善することができるセルに自動で置換でき、さらに複数種類の特性に制約を遵守させることで部分回路の改善を図ることができる。
また、ホールドタイミングに違反している場合、対象セルがクロックパス上のセルであれば、対象セルを、対象セルと同一機能で異なる特性のセルの中で遅延値のμが最大のセルに置換する。または、対象セルがデータパス上のセルであれば、対象セルを、対象セルと同一機能で異なる特性のセルの中で遅延値のμが最小のセルに置換する。
これにより、ホールドタイミングの特性を改善することができるセルに自動で置換でき、さらに複数種類の特性に制約を遵守させることで部分回路の改善を図ることができる。
また、設計対象回路からセットアップタイミングの制約に違反している部分回路を構成するデータパスおよびクロックパスを検出する。そして、クロックパス上のセルのうち遅延値のμが最小のセルとデータパス上のセルのうち遅延値のμが最大のセルから、いずれか一方のセルを対象セルに選択する。
これにより、クロックパスおよびデータパス上からセットアップタイミングスラックに最も影響するセルを自動で選択することができる。したがって、セットアップタイミングスラックの特性を改善でき、同時にホールドタイミングスラックおよび消費電力値を制約に遵守させることで部分回路の改善を図ることができる。
また、セットアップタイミングに違反している場合、対象セルがクロックパス上のセルであれば、対象セルを、遅延値のμが小さくなるように置換する。または、対象セルがデータパス上のセルであれば、対象セルを、遅延値のμが大きくなるように置換する。これにより、セットアップタイミングの特性を改善することができるセルに自動で置換でき、複数種類の特性に制約を遵守させることで部分回路の改善を図ることができる。
また、セットアップタイミングに違反している場合、対象セルがクロックパス上のセルであれば、対象セルを、対象セルと同一機能で異なる特性のセルの中で遅延値のμが最小のセルに置換する。または、対象セルがデータパス上のセルであれば、対象セルを、対象セルと同一機能で異なる特性のセルの中で遅延値のμが最大のセルに置換する。
これにより、セットアップタイミングの特性を改善することができるセルに自動で置換でき、複数種類の特性に制約を遵守させることで部分回路の改善を図ることができる。
また、対象セルを、当該対象セルと同機能で特性の異なるセルの中から消費電力値のμが最小のセルに置換する。これにより、消費電力値を最も低減させることができるセルに自動で置換することで消費電力値の特性を最適化すると同時にセットアップタイミングスラックおよびホールドタイミングスラックが規格値を遵守することができる。したがって消費電力値が低減するように部分回路を最適化し、部分回路の改善を図ることができる。
また、対象セルが置換された後の指定された種類の特性分布が、対象セルが置換される前の指定された種類の特性分布よりも規格値に対して余裕があるか否かを判断する。これにより、利用者により指定された種類の特性分布を最適化し、同時にその他の種類の特成分布を規格値に遵守させる。したがって、利用者の必要に応じて部分回路の改善を図ることができる。
また、複数種類の特性情報をセルの特性に基づいて自動で算出することで、規格値に違反している特性を容易に特定することができる。
さらに、実施の形態1〜4で説明した機能は、レイアウト設計により初期配置がされてクロックツリーが生成された後の回路情報に実施することができる。したがって、レイアウト設計の初期段階で容易に複数種類の特性から制約違反の特性を特定することができ、回路変更が行われても手戻りが少なく設計期間を短縮することができる。
なお、本実施の形態で説明した設計支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータを、
設計対象回路内の部分回路を構成するデータパスと前記データパスに対応するクロックパスを検出する検出手段、
前記検出手段により検出されたデータパスおよびクロックパス上のセル群から対象セルを選択する選択手段、
前記選択手段により選択された対象セルを、前記対象セルと同一機能で特性が異なるセルに置換する置換手段、
前記置換手段により前記対象セルが置換された後のデータパスおよびクロックパスに基づいて、前記部分回路に関する複数種類の特性情報を取得する取得手段、
前記取得手段により取得された複数種類の特性情報がそれぞれの制約に違反しているか否かを判断する判断手段、
前記判断手段により判断された判断結果を出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
(付記2)前記置換手段は、
前記判断手段により少なくとも1種類の特性情報が、前記特性情報の制約に違反していると判断された場合、あらたに前記対象セルと同一機能で特性が異なる複数のセルからすでに置換済みであるセルを除くセルに置換し、
前記取得手段は、
前記対象セルがあらたに置換された後のデータパスおよびクロックパスに基づいて、前記部分回路に関する複数種類の特性情報を取得し、
前記判断手段は、
前記取得手段により取得された複数種類の特性情報がそれぞれの制約に違反しているか否かを判断することを特徴とする付記1に記載の設計支援プログラム。
(付記3)前記選択手段は、
前記判断手段により少なくとも1種類の特性情報が、前記特性情報の制約に違反していると判断された場合、前記データパスおよび前記クロックパス上のセル群から対象セルをあらたに選択することを特徴とする付記1または2に記載の設計支援プログラム。
(付記4)前記置換手段は、
前記対象セルを、前記対象セルと同機能で特性の異なるセルの中で遅延値の特性分布の標準偏差が最も小さいセルに置換し、
前記取得手段は、
前記置換手段により前記対象セルが置換された後のデータパスおよびクロックパスに基づいて、前記部分回路に関する複数種類の特性情報を取得することを特徴とする付記1〜3のいずれか1つに記載の設計支援プログラム。
(付記5)前記検出手段は、
前記設計対象回路から、ホールドタイミングスラックの特性分布がホールドタイミングの制約に違反している部分回路を構成するデータパスおよび前記データパスに対応するクロックパスを検出し、
前記選択手段は、
前記検出手段により検出されたクロックパス上のセルのうち遅延値の特性分布の中央値が最大のセルと、前記検出手段により検出されたデータパス上のセルのうち遅延値の特性分布の中央値が最小のセルから、いずれか一方のセルを前記対象セルに選択することを特徴とする付記1〜4のいずれか1つに記載の設計支援プログラム。
(付記6)前記置換手段は、
前記選択手段により選択された対象セルが前記クロックパス上のセルの場合、前記対象セルを、前記対象セルと同機能で特性の異なるセルの中で遅延値の特性分布の中央値が前記対象セルの遅延値の特性分布の中央値よりも小さいセルに置換し、前記対象セルが前記データパス上のセルの場合、前記対象セルを、前記対象セルと同機能で特性の異なるセルの中で遅延値の特性分布の中央値が前記対象セルの遅延値の特性分布の中央値よりも大きいセルに置換することを特徴とする付記1〜5のいずれか1つに記載の設計支援プログラム。
(付記7)前記置換手段は、
前記選択手段により選択された対象セルが前記クロックパス上のセルの場合、前記対象セルを、前記対象セルと同機能で特性の異なるセルの中で遅延値の特性分布の中央値が最も小さい値であるセルに置換し、前記対象セルが前記データパス上のセルの場合、前記対象セルを、前記対象セルと同機能で特性の異なるセルの中で遅延値の特性分布の中央値が最も大きい値であるセルに置換することを特徴とする付記1〜6のいずれか1つに記載の設計支援プログラム。
(付記8)前記検出手段は、
前記設計対象回路内から、セットアップタイミングスラックの特性分布がセットアップタイミングの制約に違反している部分回路を構成するデータパスおよび前記データパスに対応するクロックパスを検出し、
前記選択手段は、
前記検出手段により検出されたクロックパス上のセルのうちセルの遅延値の特性分布の中央値が最小のセル、または前記検出手段により検出されたデータパス上のセルのうちセルの遅延値の特性分布の中央値が最大のセルから、いずれか一方のセルを前記対象セルに選択することを特徴とする付記1〜4のいずれか1つに記載の設計支援プログラム。
(付記9)前記置換手段は、
前記選択手段により選択された対象セルが前記クロックパス上のセルの場合、前記対象セルを、当該対象セルと同機能で特性の異なるセルの中で遅延値の特性分布の中央値が前記対象セルの遅延値の特性分布の中央値よりも大きいセルに置換し、前記対象セルが前記データパス上のセルの場合、前記対象セルを、前記対象セルと同機能で特性の異なるセルの中で遅延値の特性分布の中央値が前記対象セルの遅延値の特性分布の中央値よりも小さいセルに置換し、
前記取得手段は、
前記置換手段により前記対象セルが置換された後のデータパスおよびクロックパスに基づいて、前記部分回路に関する複数種類の特性情報を取得することを特徴とする付記1〜4および8のいずれか1つに記載の設計支援プログラム。
(付記10)前記置換手段は、
前記選択手段により選択された対象セルが前記クロックパス上のセルの場合、前記対象セルを、当該対象セルと同機能で特性の異なるセルの中で遅延値の特性分布の中央値が最も大きい値であるセルに置換し、前記対象セルが前記データパス上のセルの場合、前記対象セルを当該対象セルと同機能で特性の異なるセルの中で遅延値の特性分布の中央値が最も小さい値であるセルを置換し、
前記取得手段は、
前記置換手段により前記対象セルが置換された後のデータパスおよびクロックパスに基づいて、前記部分回路に関する複数種類の特性情報を取得することを特徴とする付記1〜4、8および9のいずれか1つに記載の設計支援プログラム。
(付記11)前記置換手段は、
前記選択手段により選択された対象セルを、当該対象セルと同機能で特性の異なるセルの中から消費電力値の特性分布の中央値が最も小さいセルに置換し、
前記取得手段は、
前記置換手段により前記対象セルが置換された後のデータパスおよびクロックパスに基づいて、前記部分回路に関する複数種類の特性情報を取得することを特徴とする付記1〜10のいずれか1つに記載の設計支援プログラム。
(付記12)前記取得手段は、
置換前の部分回路の指定された種類の特性情報を取得し、
前記判断手段は、
前記置換後の部分回路の指定された種類の特性情報が、前記取得手段により取得された置換前の前記パスの指定された種類の特性情報よりも規格値に対して余裕があるか否かを判断することを特徴とする付記1〜11のいずれか1つに記載の設計支援プログラム。
(付記13)前記コンピュータを、
前記置換手段により前記対象セルが置換された後のデータパスおよびクロックパスに基づいて複数種類の特性情報を算出する算出手段、として機能させ、
前記判断手段は、
前記算出手段により算出された複数種類の特性情報がそれぞれの制約に違反しているか否かを判断することを特徴とする付記1〜12のいずれか1つに記載の設計支援プログラム。
(付記14)設計対象回路内の部分回路を構成するデータパスと前記データパスに対応するクロックパスを検出する検出手段と、
前記検出手段により検出されたデータパスおよびクロックパス上のセル群から対象セルを選択する選択手段と、
前記選択手段により選択された対象セルを、前記対象セルと同一機能で特性が異なるセルに置換する置換手段と、
前記置換手段により前記対象セルが置換された後のデータパスおよびクロックパスに基づいて、前記部分回路に関する複数種類の特性情報を取得する取得手段と、
前記取得手段により取得された複数種類の特性情報がそれぞれの制約に違反しているか否かを判断する判断手段と、
前記判断手段により判断された判断結果を出力する出力手段と、
を備えることを特徴とする設計支援装置。
(付記15)コンピュータが、
設計対象回路内の部分回路を構成するデータパスと前記データパスに対応するクロックパスを検出する検出工程、
前記検出工程により検出されたデータパスおよびクロックパス上のセル群から対象セルを選択する選択工程、
前記選択工程により選択された対象セルを、前記対象セルと同一機能で特性が異なるセルに置換する置換工程、
前記置換工程により前記対象セルが置換された後のデータパスおよびクロックパスに基づいて、前記部分回路に関する複数種類の特性情報を取得する取得工程、
前記取得工程により取得された複数種類の特性情報がそれぞれの制約に違反しているか否かを判断する判断工程、
前記判断工程により判断された判断結果を出力する出力工程、
を実行することを特徴とする設計支援方法。