JP4998150B2 - 半導体集積回路のフロアプラン編集装置 - Google Patents

半導体集積回路のフロアプラン編集装置 Download PDF

Info

Publication number
JP4998150B2
JP4998150B2 JP2007222081A JP2007222081A JP4998150B2 JP 4998150 B2 JP4998150 B2 JP 4998150B2 JP 2007222081 A JP2007222081 A JP 2007222081A JP 2007222081 A JP2007222081 A JP 2007222081A JP 4998150 B2 JP4998150 B2 JP 4998150B2
Authority
JP
Japan
Prior art keywords
partial
path
terminal
logic gate
route
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
Application number
JP2007222081A
Other languages
English (en)
Other versions
JP2009054067A (ja
Inventor
理砂子 内田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2007222081A priority Critical patent/JP4998150B2/ja
Priority to US12/216,966 priority patent/US8074198B2/en
Publication of JP2009054067A publication Critical patent/JP2009054067A/ja
Application granted granted Critical
Publication of JP4998150B2 publication Critical patent/JP4998150B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Description

本発明は、半導体集積回路のフロアプラン編集装置(以下、フロアプラン編集装置)に関する。
半導体集積回路のレイアウト設計においては、フロアプランという作業が行われる。フロアプランとは、設計者が、半導体集積回路に含まれる部品(論理ゲート素子や順序回路)の配置を決定するに先立って、コンピュータのグラフィカルインターフェース(GUI)を利用し、半導体集積回路の一部分である階層モジュールとその端子や、ハードマクロとその端子等の主要な部品の配置を対話的に決定するこという。また、このような作業を支援する装置をフロアプラン編集装置という。
設計者が、フロアプラン編集装置を用いて半導体集積回路をレイアウトするときに、フロアプラン編集装置では、半導体集積回路のフロアプランを行う。このフロアプランの工程では、階層モジュールの端部において階層モジュール間の配線の本数が多すぎて後の配線工程で階層モジュールに対して配線不可能になったり、配線の距離が遠すぎて信号を伝達するときの遅延時間が大きすぎたりしまわないように、階層モジュールの形状、配置と端子の位置を決定する。また、ある階層モジュールの端子やハードマクロの端子が接続先のハードマクロの端子に近すぎて後の配線工程で配線の混雑により配線不可能になったり、配線の距離が遠すぎて無駄な空間ができてしまったりすることのないように、ハードマクロの配置と階層モジュール端子の位置を決定したり、ハードマクロ間の距離を決定したりする。
このように、フロアプラン編集装置では、階層モジュールやハードマクロの接続関係、配線本数、配線の距離等を設計者にとって視覚的に分かりやすくさせるものである。このフロアプラン編集装置では、階層モジュール端子間、階層モジュールとハードマクロの端子間、ハードマクロ端子間などの接続関係、配線本数、配線の距離等を表す回路接続情報(ネットネスト)を基に、端子間のうちの一方の端子、他方の端子と、端子間の配線(経路)と、を表す表示データを表示する。表示データの経路は、直線等の線分により表示される。このような表示データは、ラッツネストもしくはフライラインと呼ばれ、ラッツネストの表示については、例えば、非特許文献1に記載されている。
また、半導体集積回路の端子間(特に、階層モジュールとハードマクロの端子間、ハードマクロ端子間の場合)は、経路に配置された複数の論理ゲート素子や複数の順序回路を介して接続されていることが多い。そこで、特許文献1に記載された技術では、端子間の経路に論理ゲート素子や順序回路が1つ以上配置されている場合に、端子間のうちの一方の端子、他方の端子と、経路と、素子とを表すラッツネストを表示している。
設計者は、階層モジュール、ハードマクロをチップに配置するための適切な位置を検討する場合、端子間に信号を伝達するときの遅延を考慮しなければならない。例えば、設計者は、端子間の遅延が1クロックサイクルに収まるか否かを考慮した上で、階層モジュール、ハードマクロの端子がチップに配置される適切な位置を検討したい。しかしながら、設計者が、フロアプラン編集装置を用いて半導体集積回路をレイアウトするときに、フロアプラン編集装置は、ラッツネストを表示するだけである。このため、ラッツネストが表示されたときに、階層モジュール、ハードマクロの端子がチップに配置される適切な位置を検討できることが望まれる。
フロアプランに関連する技術について紹介する。
上記の特許文献1として、特開2006−293701号公報には、ネット表示プログラムが開示されている。ネット表示プログラムは、基板に搭載する部品間の接続を表示するものである。このネット表示プログラムは、コンピュータに、画面に表示した部品の中から指定された複数個の部品を受け付ける指定受付手順と、前記指定された部品の内の任意の1つの部品を第1の部品として、該第1の部品の端子に接続する信号線に対して、電気信号が伝搬する方向、又は伝搬される方向に接続先を追跡する信号線追跡手順と、前記第1の部品以外の指定された部品を第2の部品として、該第2の部品の端子が前記追跡した信号線の接続先に含まれるとき、該第1と該第2の部品の端子間を接続線で結び、該接続線を表示する接続線表示手順と、を実行させることを特徴としている。
特開2006−301961号公報には、自動フロアプラン手法が開示されている(特許文献2)。自動フロアプラン手法は、少なくともブロック境界の入力及び出力情報を有し、予め形状と面積を設定した1つ以上のブラックボックスブロックと、ブロック境界の入力及び出力情報だけでなくブロック内部の構成要素とそれらの接続情報をも有する1つ以上のホワイトボックスブロックとで構成された半導体集積回路の階層型レイアウト設計において、階層構造を展開し配置したフラット配置の結果情報を基にしてブロックの形状や面積を決定するものである。この自動フロアプラン手法は、前記ブラックボックスブロックのコア領域として前記ブラックボックスブロックの内部に多角形又は円形又は楕円形を設定し、前記ブラックボックスブロックと、階層展開されたホワイトボックスブロック内部の構成要素との配置位置の重複を前記コア領域以外に対して許可して前記フラット配置を行う第1のステップと、前記ブラックボックスブロックと前記ホワイトボックスブロック内部の構成要素との配置位置の重複を確認する第2のステップと、前記重複の状況に応じて前記ブラックボックスブロックの形状及び面積を予め設定したものから変更する第3のステップと、を備え、設定した条件を満たすまで前記第1〜第3のステップを順番に繰り返すことを特徴としている。
特開平11−213029号公報には、レジスタ転送レベル論理記述ハードウェア性能評価装置が開示されている(特許文献3)。レジスタ転送レベル論理記述ハードウェア性能評価装置は、レジスタ転送レベル論理記述を入力してLSIハードウェア性能を予測評価するものである。この装置は、前記論理記述に基づき、各ブロックの大きさとブロック間の相対位置関係を決定するブロック面積推定手段と、前記ブロック間の相対位置関係情報に基づき、3次元的な容量を考慮したネットディレイを求めるパスディレイ計算手段と、消費電力を計算する消費電力計算手段と、複数のレジスタ転送レベル論理記述に対する上記各手段による評価値のトレードオフを表示する方式間評価手段とを備えたことを特徴としている。
特開平10−340291号公報には、論理シミュレーション用モデルの作成方法が開示されている(特許文献4)。論理シミュレーション用モデルの作成方法は、検証済みの論理回路情報より論理ブロックを抽出し前記論理ブロックの論理を最適化する論理合成手段と、前記論理回路情報からタイミング情報を抽出する遅延情報作成手段と、を備え、モデル作成時点で組み合わせ回路、及び順序素子の接続関係に基づき、かつ非同期ループも考慮して、素子の演算順序を決定することにより、冗長な処理を消去し、高速なシミュレーションを可能としたことを特徴としている。
特開2003−223479号公報には、回路設計装置が開示されている(特許文献5)。回路設計装置は、設計対象回路についての論理設計を行う論理設計部と、該論理設計部による論理設計結果に基づいてセルの配置を行う配置部と、該配置部により配置された該セルの相互間の配線を行う配線部と、該配置部による配置結果もしくは該配線部による配線結果に対して1以上のトレース開始ピンからパストレースを行うパストレース部と、該パストレース部によるパストレースが行われるときに、該1以上のトレース開始ピンから、パスが通過した配置対象セルの各ピンまでの積算ディレイ値の最大値又は最小値を算出するディレイ値算出部と、該論理設計部による論理設計後に、設計対象の全てのセルに単位ディレイ値を割り付けるとともに該セルの相互間の全てのネットにディレイ値として0を割り付けた状態で、該論理設計部による論理設計結果に対して該パストレース部によるパストレースを行いながら該ディレイ値算出部により積算ディレイ値の最大値又は最小値を算出させ、その積算ディレイ値の最大値又は最小値に基づいて、該設計対象回路における順序回路セル間もしくは入出力ピンと順序回路セルとの間のゲート段数を算出するゲート段数算出部と、を備えたことを特徴としている。
特開2005−228124号公報には、半導体集積回路設計における階層ブロック生成方法が開示されている(特許文献6)。半導体集積回路設計における階層ブロック生成方法は、コンピュータを用いて、半導体集積回路の論理階層情報を保持した回路情報から複数の階層ブロックを生成するものである。この階層ブロック生成方法は、前記半導体集積回路の論理階層情報を保持した回路情報を入力し、この入力した回路情報から前記半導体集積回路の各論理階層について回路構造を抽出する回路構造抽出工程と、前記抽出された各論理階層の回路構造に基づいて前記各論理階層を併合して複数の階層ブロックを生成し、この生成した階層ブロックの構造を出力する階層ブロック生成工程と、を有することを特徴としている。
マグマ・デザイン・オートメーション社発行「ブラストプランプロ」カタログ第2頁、[online]、2005年、[平成19年6月25日検索]、インターネット<URL:http://www.magma−da.co.jp/product/image_pr/PDF/PlanPro200506.pdf> 特開2006−293701号公報 特開2006−301961号公報 特開平11−213029号公報 特開平10−340291号公報 特開2003−223479号公報 特開2005−228124号公報
本発明の課題は、ラッツネストが表示されたときに、階層モジュール、ハードマクロの端子がチップに配置される適切な位置を検討することができる半導体集積回路のフロアプラン編集装置を提供することにある。
本発明の半導体集積回路のフロアプラン編集装置は、半導体集積回路をレイアウトするためのネットリストを入力する入力装置、を具備している。
前記ネットリストは、座標領域に配置された複数の端子と、前記複数の端子のうちの第1端子と第2端子間に配置されたM個の経路(Mは1以上の整数)と、前記M個の経路の各々に配置されたN個の順序回路(Nは0以上の整数)と、前記M個の経路の各々に配置されたm個の論理ゲート素子(mは0以上の整数)と、を含んでいる。
前記M個の経路における順序回路数N、論理ゲート素子数mは各々異なる。
本発明の半導体集積回路のフロアプラン編集装置は、更に、端子間経路検索部と、ラッツネスト生成部と、ラッツネスト表示制御部と、を具備している。
前記端子間経路検索部は、前記M個の経路の中から、前記順序回路数Nが最も小さい経路を選択経路として検索する最短経路検索処理を実行する。
前記ラッツネスト生成部は、前記第1端子、前記第2端子及び前記選択経路を表すラッツネストと、前記選択経路に対する前記論理ゲート素子数m、及び、前記選択経路に対する前記順序回路数Nである最小順序回路数を表す文字列とを生成する。
前記ラッツネスト表示制御部は、前記ラッツネストと前記文字列とを対応付けて表示装置に表示する。
設計者は、階層モジュール、ハードマクロをチップに配置するための適切な位置を検討する場合、端子間に信号を伝達するときの遅延を考慮しなければならない。例えば、設計者は、端子間の遅延が1クロックサイクルに収まるか否かを考慮した上で、階層モジュール、ハードマクロの端子がチップに配置される適切な位置を検討したい。
そこで、本発明のフロアプラン編集装置では、最短経路検索処理を実行することにより、M個の経路の中から、順序回路数Nが最も小さい経路を選択経路として検索する。その結果、ラッツネスト(第1端子、第2端子及び選択経路)と、文字列(論理ゲート素子数m、最小順序回路数N)とを表示装置に表示する。例えば、選択経路に順序回路が存在しない場合、設計者は、端子間の遅延を1クロックサイクル未満に収める必要がある。例えば、選択経路に順序回路が1つ存在する場合、設計者は、第1端子又は第2端子と順序回路間の遅延を1クロックサイクル未満に収める必要がある。このように、本発明のフロアプラン編集装置では、ラッツネストと文字列とが表示されたときに、設計者は、最も小さい順序回路数Nにより、端子間の遅延とクロックサイクルとを考慮することができる。このため、本発明のフロアプラン編集装置では、階層モジュール、ハードマクロがチップに配置される適切な位置を検討することができる。
以下に添付図面を参照して、本発明の半導体集積回路のフロアプラン編集装置について詳細に説明する。
[構成]
図1は、本発明の半導体集積回路のフロアプラン編集装置(以下、本発明のフロアプラン編集装置)の構成を示している。本発明のフロアプラン編集装置は、コンピュータであり、入力装置301と、データ処理装置302と、記憶装置303と、表示装置304と、を具備している。
入力装置301としては、キーボードやポインティングデバイス(マウス)等が例示される。
データ処理装置302は、コンピュータプログラムを実行するCPU(Central Processing Unit)である。コンピュータプログラムは、入力制御部3021と、検索部3022と、ラッツネスト生成部3023と、ラッツネスト表示制御部3024と、を含んでいる。検索部3022は、部分経路検索部30221と、端子間経路検索部30222と、を含んでいる。
記憶装置303は、接続情報記憶部3031と、部分接続情報記憶部3032と、配置距離指標記憶部3033と、上記のコンピュータプログラムと、を備えている。
入力装置301は、設計者の操作により、半導体集積回路をレイアウトするための回路接続情報(ネットリスト)を入力し、入力制御部3021に出力する。入力制御部3021は、そのネットリストを接続情報記憶部3031に格納する。
ネットリストは、座標領域に配置された複数の端子と、M個の経路(Mは1以上の整数)と、M個の経路の各々に配置されたN個の順序回路(Nは0以上の整数)と、M個の経路の各々に配置されたm個の論理ゲート素子(mは0以上の整数)と、を含んでいる。
M個の経路は、複数の端子のうちの第1端子と第2端子間に配置されている。N個の順序回路としては、フリップフロップやラッチ回路が挙げられる。以下、N個の順序回路をフリップフロップと称する。m個の論理ゲート素子としては、AND回路、OR回路、NAND回路、NOR回路、NOT回路等が挙げられる。ここで、M個の経路におけるフリップフロップ数N、論理ゲート素子数mは各々異なる。
M個の経路の各々は、X個の始点部分経路(Xは1以上の整数)と、Y個の中間部分経路(Yは1以上の整数)と、Z個の終点部分経路(Zは1以上の整数)と、を含んでいる。X個の始点部分経路は、第1端子とN個の順序回路のうちの1番目のフリップフロップ(Nが1以上である場合)との間に、m個の論理ゲート素子のうちのx個の論理ゲート素子(xはx<mを満たす整数)が配置されている。Y個の中間部分経路は、N個の順序回路のうちのJ番目のフリップフロップ{Nが2以上である場合、Jは、1≦J≦(N−1)を満たす整数}と(J+1)番目のフリップフロップとの間に、m個の論理ゲート素子のうちのy個の論理ゲート素子(yはy<mを満たす整数)が配置されている。Z個の終点部分経路は、N個の順序回路のうちのN番目のフリップフロップ(Nが1以上である場合)と第2端子との間に、m個の論理ゲート素子のうちのz個の論理ゲート素子(zはz<mを満たす整数)が配置されている。ここで、M個の経路における論理ゲート素子数(部分論理ゲート素子数とする)x、y、zは各々異なる。
部分経路検索部30221は、接続情報記憶部3031を参照して、M個の経路の各々に対して、X個の始点部分経路、Y個の中間部分経路、Z個の終点部分経路の中から、それぞれ、部分論理ゲート素子数x、y、zが最も大きい部分経路を選択始点経路、選択中間経路、選択終点経路として検索する最長経路検索処理を実行する。部分経路内の論理ゲート素子数が多ければ多いほど、その部分経路も長くなるので、選択始点経路、選択中間経路、選択終点経路は、最長経路として検索される。その後、部分経路検索部30221は、M個の経路の各々の選択始点経路、選択中間経路、選択終点経路と、それに対応する部分論理ゲート素子数x、y、zとを部分接続情報記憶部3032に格納する。
端子間経路検索部30222は、部分接続情報記憶部3032を参照して、M個の経路の中から、フリップフロップ数Nが最も小さい経路を選択経路として検索する最短経路検索処理を実行する。経路内のフリップフロップ数が少なければ少ないほど、その経路における処理時間が短くなるので、選択経路は、最短経路として検索される。その後、端子間経路検索部30222は、選択経路と、選択経路に含まれる選択始点経路、選択中間経路、選択終点経路のそれぞれに対する部分論理ゲート素子数x、y、zの合計値である論理ゲート素子数mと、選択経路に対するフリップフロップ数Nである最小フリップフロップ数と、を配置距離指標記憶部3033に格納する。
入力装置301は、設計者により指定される第2端子に対するラッツネスト表示要求を入力したものとする。ラッツネスト生成部3023は、ラッツネスト表示要求に応じて、接続情報記憶部3031と配置距離指標記憶部3033とを参照して、第1端子、第2端子及び選択経路を表すラッツネストと、選択経路に対する論理ゲート素子数m及び選択経路に対する最小フリップフロップ数Nを表す文字列とを生成する。ラッツネスト表示制御部3024は、ラッツネストと文字列とを対応付けて表示装置304に表示する。ラッツネストの選択経路は、第1端子と第2端子間を結ぶ線として表示装置304に表示される。
[動作]
図2は、本発明のフロアプラン編集装置の動作を示すフローチャートである。
設計者は、本発明のフロアプラン編集装置を用いることにより、半導体集積回路をレイアウトする。図3は、本発明のフロアプラン編集装置を用いることによりレイアウトされる半導体集積回路を示している。半導体集積回路は、接続端子103を有する階層モジュール102と、接続端子105を有するハードマクロ104と、を具備している。階層モジュール102は、チップ101に設けられている。ハードマクロ104は、チップ101又は階層モジュール102に設けられている。
入力装置301は、設計者の操作により、半導体集積回路をレイアウトするためのネットリストを入力し、入力制御部3021に出力する(ステップS1)。このとき、入力制御部3021は、入力装置301からのネットリストを接続情報記憶部3031に格納する接続情報記憶処理を実行する(ステップS2)。
図4Aは、接続情報記憶処理が実行されたときのネットリストを示す模式図である。図4Bは、接続情報記憶部3031に格納されるネットリストを示している。
上述のように、ネットリストは、座標領域に配置された複数の端子T01〜T03を含んでいる。複数の端子T01〜T03の各々は、階層モジュール102の接続端子103、ハードマクロ104の接続端子105のいずれかを表している。
上述のように、ネットリストは、更に、M個の経路(この場合、Mは3とする)を含んでいる。3個の経路をそれぞれ経路(504)(505、506、507、508)(509、510、511)とする。経路(504)は、複数の端子T01〜T03のうちの端子T01と端子T03間に配置されている。経路(505、506、507、508)(509、510、511)は、複数の端子T01〜T03のうちの端子T02と端子T03間に配置されている。
上述のように、ネットリストは、更に、経路(505、506、507、508)(509、510、511)の各々に配置されたN個のフリップフロップを含んでいる。経路(505、506、507、508)(509、510、511)のそれぞれに対応してNを“0”、“2”、“1”とした場合、経路(504)には、フリップフロップが配置されていない。経路(505、506、507、508)には、2個のフリップフロップF01、F02が配置されている。経路(509、510、511)には、1個のフリップフロップF03が配置されている。このように、経路(505、506、507、508)(509、510、511)におけるフリップフロップ数Nは各々異なる。
経路(504)は、始点である端子T01と、終点である端子T03との間に2個の論理ゲート素子が配置されている。
経路(505、506、507、508)は、X個の始点部分経路(この場合、Xは1とする)505と、Y個の中間部分経路(この場合、Yは2とする)506、507と、Z個の終点部分経路(この場合、Zは1とする)508と、を含んでいる。始点部分経路505は、始点である端子T02と、終点である1番目のフリップフロップF01との間にx個の論理ゲート素子(mを“6”、“7”とした場合、xは“2”とする)が配置されている。中間部分経路506、507は、始点である1番目のフリップフロップF01と、終点である2番目のフリップフロップF02との間にy個の論理ゲート素子(mを“6”、“7”とした場合、yは“2”、“3”とする)が配置されている。終点部分経路508は、始点である2番目のフリップフロップF02と、終点である端子T03との間にz個の論理ゲート素子(mを“6”、“7”とした場合、zは“2”とする)が配置されている。このように、経路(505、506、507、508)における部分論理ゲート素子数x、y、zは各々異なる。
経路(509、510、511)は、X個の始点部分経路(この場合、Xは2とする)509、510と、Y個の中間部分経路(Nが1の場合、Yは0とする)と、Z個の終点部分経路(この場合、Zは1とする)511と、を含んでいる。始点部分経路(509、510)は、始点である端子T02と、終点であるフリップフロップF03との間にx個の論理ゲート素子(mを“9”、“10”とした場合、xは“4”、“5”とする)が配置されている。終点部分経路(511)は、始点であるフリップフロップF03と、終点である端子T03との間にz個の論理ゲート素子(mを“9”、“10”とした場合、zは“5”とする)が配置されている。このように、経路(509、510、511)における部分論理ゲート素子数x、y、zは各々異なる。
部分経路検索部30221は、接続情報記憶部3031を参照して、階層モジュール102、ハードマクロ104、フリップフロップを始点、終点、論理ゲート素子を経由点として、最長経路検索処理を実行する(ステップS3)。図5Aは、最長経路検索処理が実行されたときのネットリストを示す模式図である。
最長経路検索処理(ステップS3)において、部分経路検索部30221は、経路(505、506、507、508)に対して、始点部分経路505、中間部分経路506、507、終点部分経路508の中から、それぞれ、部分論理ゲート素子数が最も大きい部分経路を選択始点経路、選択中間経路、選択終点経路として検索する。ここで、部分経路検索部30221は、始点部分経路505を選択始点経路505として検索する。この場合、選択始点経路505に対する部分論理ゲート素子数は“2”である。また、部分経路検索部30221は、中間部分経路506、507の中から、部分論理ゲート素子数が最も大きい中間部分経路507を選択中間経路507として検索する。この場合、選択中間経路507に対する部分論理ゲート素子数は“3”である。また、部分経路検索部30221は、終点部分経路508を選択終点経路508として検索する。この場合、選択終点経路508に対する部分論理ゲート素子数は“2”である。上述のように、部分経路内の論理ゲート素子数が多ければ多いほど、その部分経路も長くなるので、選択始点経路505、選択中間経路507、選択終点経路508は、最長経路として検索される。
また、最長経路検索処理(ステップS3)において、部分経路検索部30221は、経路(509、510、511)に対して、始点部分経路509、510、終点部分経路511の中から、それぞれ、部分論理ゲート素子数が最も大きい部分経路を選択始点経路、選択終点経路として検索する。ここで、部分経路検索部30221は、2個の始点部分経路509、510の中から、部分論理ゲート素子数が最も大きい始点部分経路510を選択始点経路510として検索する。この場合、選択始点経路510に対する部分論理ゲート素子数は“5”である。また、部分経路検索部30221は、終点部分経路511を選択終点経路511として検索する。この場合、選択終点経路511に対する部分論理ゲート素子数は“5”である。上述のように、部分経路内の論理ゲート素子数が多ければ多いほど、その部分経路も長くなるので、選択始点経路510、選択終点経路511は、最長経路として検索される。
部分経路検索部30221は、最長経路検索処理が実行されたときに、部分接続情報記憶処理を実行する(ステップS4)。図5Bは、部分接続情報記憶処理が実行されたときに部分接続情報記憶部3032に格納されるネットリストを示している。
部分接続情報記憶処理(ステップS4)において、部分経路検索部30221は、経路(504)と、それに対応する論理ゲート素子数“2”を部分接続情報記憶部3032に格納する。
また、部分接続情報記憶処理(ステップS4)において、部分経路検索部30221は、経路(505、506、507、508)の各々の選択始点経路505、選択中間経路507、選択終点経路508と、それに対応する部分論理ゲート素子数“2”、“3”、“2”とを部分接続情報記憶部3032に格納する。
また、部分接続情報記憶処理(ステップS4)において、部分経路検索部30221は、経路(509、510、511)の選択始点経路510、選択終点経路511と、それに対応する部分論理ゲート素子数“5”、“5”とを部分接続情報記憶部3032に格納する。
端子間経路検索部30222は、部分接続情報記憶部3032を参照して、階層モジュール102、ハードマクロ104を始点、終点、フリップフロップを経由点として、最短経路検索処理を実行する(ステップS5)。図6Aは、最短経路検索処理が実行されたときのネットリストを示す模式図である。
最短経路検索処理(ステップS5)において、端子間経路検索部30222は、経路(505、507、508)(510、511)の中から、フリップフロップ数Nが最も小さい経路を選択経路として検索する。この場合、端子間経路検索部30222は、経路(505、507、508)(510、511)の中から、フリップフロップ数Nが最も小さい経路(510、511)を選択経路(510、511)として検索する。上述のように、経路内のフリップフロップ数が少なければ少ないほど、その経路における処理時間が短くなるので、選択経路(510、511)は、最短経路として検索される。
端子間経路検索部30222は、最短経路検索処理が実行されたときに、配置距離指標記憶処理を実行する(ステップS6)。図6Bは、配置距離指標記憶処理が実行されたときに配置距離指標記憶部3033に格納されるネットリストを示している。
配置距離指標記憶処理(ステップS6)において、端子間経路検索部30222は、経路(504)と、経路(504)に対する論理ゲート素子数“2”と、経路に対するフリップフロップ数“0”と、を配置距離指標記憶部3033に格納する。
また、配置距離指標記憶処理(ステップS6)において、端子間経路検索部30222は、選択経路(510、511)と、選択経路(510、511)に含まれる選択始点経路510、選択中間経路、選択終点経路511のそれぞれに対する部分論理ゲート素子数“5”、“0”、“5”の合計値である論理ゲート素子数“10”と、選択経路(510、511)に対するフリップフロップ数である最小フリップフロップ数“1”と、を配置距離指標記憶部3033に格納する。
入力装置301は、設計者により指定される端子T03に対するラッツネスト表示要求を入力したものとする。この場合、ラッツネスト表示要求は、ラッツネスト生成部3023に出力される(ステップS7)。
図7は、本発明のフロアプラン編集装置を用いることによりラッツネスト表示される半導体集積回路を示している。
ラッツネスト生成部3023は、ラッツネスト表示要求に応じて、接続情報記憶部3031と配置距離指標記憶部3033とを参照して、ラッツネスト生成処理を実行する(ステップS8)。
ラッツネスト生成処理(ステップS8)において、ラッツネスト生成部3023は、端子T01、端子T02及び経路(504)を表すラッツネスト111と、経路(504)に対する論理ゲート素子数“2”及び経路(504)に対する最小フリップフロップ数“0”を表す文字列“2、0”とを生成する。
また、ラッツネスト生成処理(ステップS8)において、ラッツネスト生成部3023は、端子T02、端子T03及び選択経路(510、511)を表すラッツネスト112と、選択経路(510、511)に対する論理ゲート素子数“10”及び選択経路(510、511)に対する最小フリップフロップ数“1”を表す文字列“10、1”とを生成する。
ラッツネスト表示制御部3024は、ラッツネスト生成処理が実行されたときに、ラッツネスト表示処理を実行する(ステップS9)。
ラッツネスト表示処理(ステップS9)において、ラッツネスト表示制御部3024は、ラッツネスト111と文字列“2、0”とを対応付けて表示装置304に表示する。このとき、ラッツネスト111の選択経路(504)は、端子T01と端子T02間を結ぶ線として表示装置304に表示され、文字列“2、0”は、論理ゲート素子数“2”、フリップフロップ数“0”がこの順に表示装置304に表示される。
また、ラッツネスト表示処理(ステップS9)において、ラッツネスト表示制御部3024は、ラッツネスト112と文字列“10、1”とを対応付けて表示装置304に表示する。このとき、ラッツネスト112の選択経路(510、511)は、端子T02と端子T03間を結ぶ線として表示装置304に表示され、文字列“10、1”は、論理ゲート素子数“10”、フリップフロップ数“1”がこの順に表示装置304に表示される。
このように、本発明のフロアプラン編集装置を用いることにより、半導体集積回路がラッツネスト表示される。ここで、順序回路としてフリップフロップF01、F02、F03を挙げたが、ラッチ回路F01、F02、F03としてもよい。
[効果]
本発明のフロアプラン編集装置の効果について説明する。
設計者は、階層モジュール102、ハードマクロ104をチップ101に配置するための適切な位置を検討する場合、端子間に信号を伝達するときの遅延を考慮しなければならない。例えば、設計者は、端子間の遅延が1クロックサイクルに収まるか否かを考慮した上で、階層モジュール、ハードマクロの端子がチップに配置される適切な位置を検討したい。
そこで、本発明のフロアプラン編集装置では、最短経路検索処理を実行することにより、経路(504)(505、506、507、508)(509、510、511)の中から、フリップフロップ数Nが最も小さい経路を選択経路として検索する。その結果、ラッツネスト(第1端子、第2端子及び選択経路)と、文字列(論理ゲート素子数m、最小フリップフロップ数N)とを表示装置304に表示する。例えば、選択経路にフリップフロップが存在しない場合、設計者は、端子間の遅延を1クロックサイクル未満に収める必要がある。例えば、選択経路にフリップフロップが1つ存在する場合、設計者は、第1端子又は第2端子とフリップフロップ間の遅延を1クロックサイクル未満に収める必要がある。このように、本発明のフロアプラン編集装置では、例えばラッツネスト112と文字列“10、1”とが表示されたときに、設計者は、最も小さいフリップフロップ数Nにより、端子間の遅延とクロックサイクルとを考慮することができる。このため、本発明のフロアプラン編集装置では、階層モジュール102、ハードマクロ104がチップ101に配置される適切な位置を検討することができる。
また、本発明のフロアプラン編集装置では、最長経路検索処理を実行することにより、経路(505、506、507、508)(509、510、511)の中から、部分論理ゲート素子数x、y、zが最も大きい部分経路を選択始点経路、選択中間経路、選択終点経路として検索する。その結果、ラッツネスト{第1端子、第2端子及び選択経路(選択始点経路、選択中間経路、選択終点経路)}と、文字列{論理ゲート素子数m(m=x+y+z)、最小フリップフロップ数N}とを表示装置304に表示する。例えば、選択経路にフリップフロップが存在しなくても、最も大きい論理ゲート素子数mが規定数以内である場合、設計者は、端子間の遅延を1クロックサイクル未満に収める必要がある。例えば、選択経路にフリップフロップが1つ存在し、最も大きい論理ゲート素子数mが規定数以内である場合、設計者は、第1端子又は第2端子とフリップフロップ間の遅延を1クロックサイクル未満に収める必要がある。このように、本発明のフロアプラン編集装置では、例えばラッツネスト112と文字列“10、1”とが表示されたときに、設計者は、最も大きい論理ゲート素子数mと最も小さいフリップフロップ数Nとにより、端子間の遅延とクロックサイクルとを考慮することができる。このため、本発明のフロアプラン編集装置では、階層モジュール102、ハードマクロ104がチップ101に配置される適切な位置を検討することができる。
本発明によれば、半導体集積回路のフロアプラン設計やプリント基板の配線設計といった用途に適用できる。
図1は、本発明の半導体集積回路のフロアプラン編集装置(以下、本発明のフロアプラン編集装置)の構成を示している。 図2は、本発明のフロアプラン編集装置の動作を示すフローチャートである。 図3は、本発明のフロアプラン編集装置を用いることによりレイアウトされる半導体集積回路を示している。 図4Aは、接続情報記憶処理が実行されたときのネットリストを示す模式図である。 図4Bは、接続情報記憶部3031に格納されるネットリストを示している。 図5Aは、最長経路検索処理が実行されたときのネットリストを示す模式図である。 図5Bは、部分接続情報記憶処理が実行されたときに部分接続情報記憶部3032に格納されるネットリストを示している。 図6Aは、最短経路検索処理が実行されたときのネットリストを示す模式図である。 図6Bは、配置距離指標記憶処理が実行されたときに配置距離指標記憶部3033に格納されるネットリストを示している。 図7は、本発明のフロアプラン編集装置を用いることによりラッツネスト表示される半導体集積回路を示している。
符号の説明
101 チップ、
102 階層モジュール、
103 接続端子、
104 ハードマクロ、
105 接続端子、
301 入力装置、
302 データ処理装置、
3021 入力制御部、
3022 検索部、
30221 部分経路検索部、
30222 端子間経路検索部、
3023 ラッツネスト生成部、
3024 ラッツネスト表示制御部、
303 記憶装置、
3031 接続情報記憶部、
3032 部分接続情報記憶部、
3033 配置距離指標記憶部、
304 表示装置、
F01〜F03 順序回路(フリップフロップ又はラッチ回路)、
T01〜T03 端子、

Claims (8)

  1. 半導体集積回路をレイアウトするためのネットリストを入力する入力装置、
    を具備し、
    前記ネットリストは、
    座標領域に配置された複数の端子と、
    前記複数の端子のうちの第1端子と第2端子間に配置されたM個の経路(Mは1以上の整数)と、
    前記M個の経路の各々に配置されたN個の順序回路(Nは0以上の整数)と、
    前記M個の経路の各々に配置されたm個の論理ゲート素子(mは0以上の整数)と、
    を含み、
    前記M個の経路における順序回路数N、論理ゲート素子数mは各々異なり、
    更に、
    前記M個の経路の中から、前記順序回路数Nが最も小さい経路を選択経路として検索する最短経路検索処理を実行する端子間経路検索部と、
    前記第1端子、前記第2端子及び前記選択経路を表すラッツネストと、前記選択経路に対する前記論理ゲート素子数m、及び、前記選択経路に対する前記順序回路数Nである最小順序回路数を表す文字列とを生成するラッツネスト生成部と、
    前記ラッツネストと前記文字列とを対応付けて表示装置に表示するラッツネスト表示制御部と、
    を具備する半導体集積回路のフロアプラン編集装置。
  2. 前記M個の経路の各々は、
    前記第1端子と前記N個の順序回路のうちの1番目の順序回路(Nが1以上である場合)との間に前記m個の論理ゲート素子のうちのx個の論理ゲート素子(xはx<mを満たす整数)が配置されたX個の始点部分経路(Xは1以上の整数)と、
    前記N個の順序回路のうちのJ番目の順序回路{Nが2以上である場合、Jは、1≦J≦(N−1)を満たす整数}と(J+1)番目の順序回路との間に前記m個の論理ゲート素子のうちのy個の論理ゲート素子(yはy<mを満たす整数)が配置されたY個の中間部分経路(Yは1以上の整数)と、
    前記N個の順序回路のうちのN番目の順序回路(Nが1以上である場合)と前記第2端子との間に前記m個の論理ゲート素子のうちのz個の論理ゲート素子(zはz<mを満たす整数)が配置されたZ個の終点部分経路(Zは1以上の整数)と、
    を含み、
    前記M個の経路における部分論理ゲート素子数x、y、zは各々異なり、
    更に、
    前記M個の経路の各々に対して、前記X個の始点部分経路、前記Y個の中間部分経路、前記Z個の終点部分経路の中から、それぞれ、前記部分論理ゲート素子数x、y、zが最も大きい部分経路を選択始点経路、選択中間経路、選択終点経路として検索する最長経路検索処理を実行する部分経路検索部、
    を具備し、
    前記ラッツネスト生成部は、
    前記第1端子、前記第2端子及び前記選択経路を表すラッツネストと、前記選択経路の前記選択始点経路、前記選択中間経路、前記選択終点経路のそれぞれに対する部分論理ゲート素子数x、y、zの合計値である前記論理ゲート素子数m、及び、前記選択経路に対する前記順序回路数Nである前記最小順序回路数を表す文字列とを生成する
    請求項1に記載の半導体集積回路のフロアプラン編集装置。
  3. 更に、
    前記入力装置により入力された前記ネットリストが格納される接続情報記憶部と、
    部分接続情報記憶部と、
    を具備し、
    前記部分経路検索部は、
    前記接続情報記憶部を参照して、前記M個の経路の各々に対して、前記最長経路検索処理を実行し、
    前記M個の経路の各々の前記選択始点経路、前記選択中間経路、前記選択終点経路と、それに対応する論理ゲート素子数x、y、zとを前記部分接続情報記憶部に格納し、
    前記端子間経路検索部は、
    前記部分接続情報記憶部を参照して、前記最短経路検索処理を実行する
    請求項2に記載の半導体集積回路のフロアプラン編集装置。
  4. 更に、
    配置距離指標記憶部、
    を具備し、
    前記端子間経路検索部は、
    前記最短経路検索処理を実行した後、前記選択経路と、前記選択経路に対する前記論理ゲート素子数mと、前記選択経路に対する前記最小順序回路数とを前記配置距離指標記憶部に格納し、
    前記ラッツネスト生成部は、
    前記接続情報記憶部と前記配置距離指標記憶部とを参照して、前記ラッツネストと前記文字列とを生成する
    請求項3に記載の半導体集積回路のフロアプラン編集装置。
  5. 前記入力装置は、前記第2端子に対するラッツネスト表示要求を入力し、
    前記ラッツネスト生成部は、前記ラッツネスト表示要求に応じて、前記ラッツネストと前記文字列とを生成する
    請求項1〜4のいずれかに記載の半導体集積回路のフロアプラン編集装置。
  6. 前記半導体集積回路は、
    チップに設けられ、接続端子を有する階層モジュールと、
    前記チップ又は前記階層モジュールに設けられ、接続端子を有するハードマクロと、
    を具備し、
    前記複数の端子の各々は、前記階層モジュールの接続端子、前記ハードマクロの接続端子のいずれかを表している
    請求項1〜5のいずれかに記載の半導体集積回路のフロアプラン編集装置。
  7. 前記N個の順序回路は、フリップフロップである
    請求項1〜6のいずれかに記載の半導体集積回路のフロアプラン編集装置。
  8. 前記N個の順序回路は、ラッチ回路である
    請求項1〜6のいずれかに記載の半導体集積回路のフロアプラン編集装置。
JP2007222081A 2007-08-29 2007-08-29 半導体集積回路のフロアプラン編集装置 Expired - Fee Related JP4998150B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007222081A JP4998150B2 (ja) 2007-08-29 2007-08-29 半導体集積回路のフロアプラン編集装置
US12/216,966 US8074198B2 (en) 2007-08-29 2008-07-14 Apparatus and method for circuit layout using longest path and shortest path search elements

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007222081A JP4998150B2 (ja) 2007-08-29 2007-08-29 半導体集積回路のフロアプラン編集装置

Publications (2)

Publication Number Publication Date
JP2009054067A JP2009054067A (ja) 2009-03-12
JP4998150B2 true JP4998150B2 (ja) 2012-08-15

Family

ID=40409509

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007222081A Expired - Fee Related JP4998150B2 (ja) 2007-08-29 2007-08-29 半導体集積回路のフロアプラン編集装置

Country Status (2)

Country Link
US (1) US8074198B2 (ja)
JP (1) JP4998150B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8516412B2 (en) * 2011-08-31 2013-08-20 International Business Machines Corporation Soft hierarchy-based physical synthesis for large-scale, high-performance circuits
JP5182973B1 (ja) * 2011-10-19 2013-04-17 三菱航空機株式会社 配線の接続確認システム
US9378326B2 (en) * 2014-09-09 2016-06-28 International Business Machines Corporation Critical region identification
US11301606B1 (en) 2021-05-11 2022-04-12 Windbond Electronics Corp. Counting method for counting the stage number passing through a signal path on a graphical user interface

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2991143B2 (ja) * 1997-01-16 1999-12-20 日本電気株式会社 印刷配線板cad装置及びその配線設計方法
JP3080037B2 (ja) 1997-06-06 2000-08-21 日本電気株式会社 論理シミュレーション用モデルの作成方法
JPH11213029A (ja) 1998-01-30 1999-08-06 Hitachi Ltd レジスタ転送レベル論理記述ハードウェア性能評価装置
JP2003223479A (ja) 2002-12-09 2003-08-08 Fujitsu Ltd 回路設計装置
JP2005228124A (ja) 2004-02-13 2005-08-25 Matsushita Electric Ind Co Ltd 半導体集積回路設計における階層ブロック生成方法及び生成装置、並びに半導体集積回路設計における階層ブロック生成プログラム
US20050268258A1 (en) * 2004-06-01 2005-12-01 Tera Systems, Inc. Rule-based design consultant and method for integrated circuit design
JP2006293701A (ja) * 2005-04-11 2006-10-26 Fujitsu Ltd ネット表示プログラムおよびネット表示方法
JP2006301961A (ja) 2005-04-20 2006-11-02 Matsushita Electric Ind Co Ltd 半導体集積回路の自動フロアプラン手法

Also Published As

Publication number Publication date
US20090064079A1 (en) 2009-03-05
JP2009054067A (ja) 2009-03-12
US8074198B2 (en) 2011-12-06

Similar Documents

Publication Publication Date Title
US8015522B2 (en) System for implementing post-silicon IC design changes
Cheng et al. On joint learning for solving placement and routing in chip design
US7159202B2 (en) Methods, apparatus and computer program products for generating selective netlists that include interconnection influences at pre-layout and post-layout design stages
US6598215B2 (en) Datapath design methodology and routing apparatus
US8893070B2 (en) Method for repeated block modification for chip routing
JP2004342100A (ja) 集積回路の物理設計用のツールフロープロセス
US9443050B2 (en) Low-voltage swing circuit modifications
Chang et al. MR: A new framework for multilevel full-chip routing
Lin et al. qGDR: A via-minimization-oriented routing tool for large-scale superconductive single-flux-quantum circuits
JP4998150B2 (ja) 半導体集積回路のフロアプラン編集装置
JP2010257164A (ja) 半導体集積回路装置の設計方法およびプログラム
US11694016B2 (en) Fast topology bus router for interconnect planning
JP5444985B2 (ja) 情報処理装置
Dechu et al. An efficient routing tree construction algorithm with buffer insertion, wire sizing, and obstacle considerations
Knechtel et al. Structural planning of 3D-IC interconnects by block alignment
JP5447547B2 (ja) マクロ遅延解析装置、マクロ境界パスの遅延解析方法、マクロ境界パスの遅延解析プログラム
JP2012174226A (ja) 半導体集積回路のレイアウト設計方法
US9293450B2 (en) Synthesis of complex cells
JP2006268165A (ja) 集積回路のタイミング解析装置、集積回路のタイミング最適化装置、集積回路のタイミング解析方法、集積回路のタイミング最適化方法、集積回路基板の製造方法、制御プログラムおよび可読記録媒体
JP2012103992A (ja) 設計支援装置、設計支援方法および設計支援プログラム
JP5194461B2 (ja) 電流密度制限チェック方法及び電流密度制限チェック装置
Xiong et al. Extended global routing with RLC crosstalk constraints
Yang et al. SIAR: Splitting-graph-based interactive analog router
Lakshmanna et al. Research Article Perimeter Degree Technique for the Reduction of Routing Congestion during Placement in Physical Design of VLSI Circuits
JP2009205449A (ja) マクロ内端子配線を考慮したネットリストによって信号の遅延時間を予測する設計方法、及び、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100716

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120315

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120417

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120430

R150 Certificate of patent or registration of utility model

Ref document number: 4998150

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150525

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees