[go: up one dir, main page]

JP2009237904A - 半導体集積回路の設計データの作成方法 - Google Patents

半導体集積回路の設計データの作成方法 Download PDF

Info

Publication number
JP2009237904A
JP2009237904A JP2008083324A JP2008083324A JP2009237904A JP 2009237904 A JP2009237904 A JP 2009237904A JP 2008083324 A JP2008083324 A JP 2008083324A JP 2008083324 A JP2008083324 A JP 2008083324A JP 2009237904 A JP2009237904 A JP 2009237904A
Authority
JP
Japan
Prior art keywords
hard macro
buffer
library
circuit block
timing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008083324A
Other languages
English (en)
Inventor
Koji Oya
功二 大屋
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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2008083324A priority Critical patent/JP2009237904A/ja
Publication of JP2009237904A publication Critical patent/JP2009237904A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】LSIチップ上でハードマクロの安定した性能の駆動を確保する。
【解決手段】半導体集積回路の設計データの作成方法であって、回路ブロックの形状情報、端子位置情報及びタイミング情報が記述された回路ブロックライブラリを作成し、回路ブロック及び回路ブロックに接続するユニットセルを有するモジュール回路の接続情報が記述されたネットリストを作成し、ユニットセルの形状情報、端子位置情報及びタイミング情報が記述されたユニットセルライブラリ、回路ブロックライブラリ及びネットリストを使用して、回路ブロックが配置される回路ブロック配置領域とユニットセルが配置されるユニットセル配置領域とが所定状態で設けられているモジュール回路のレイアウトデータを作成し、回路ブロックライブラリは、回路ブロック配置領域とユニットセル配置領域とが所定状態で設けられている場合の回路ブロックのタイミング情報が記述されている。
【選択図】図2

Description

本発明は、コンピュータによる設計に用いられる半導体集積回路の設計データの作成方法に関する。
秘匿情報を含むハードマクロ回路(以下、ハードマクロともいう)を使用してLarge Scale Integration(LSI、大規模集積回路)チップの設計を行う場合、ハードマクロ設
計者は、ハードマクロの回路構造を開示せずにハードマクロの設計データをLSIチップ設計者に提供する必要がある。ハードマクロの設計データとして、ハードマクロの枠サイズ及び端子位置の座標情報を含むレイアウトデータ、ハードマクロのタイミング規格(タイミング条件ともいう)を含むタイミングライブラリがLSIチップ設計者に提供される。LSIチップの設計状況に応じて、ハードマクロの外部端子に接続されるセルの配置が異なるため、ハードマクロとLSIチップとのインターフェースにおけるタイミング規格も異なる。一般的に、ハードマクロのタイミングライブラリは、ハードマクロの設計者の想定範囲内で十分に検証されている。
特開平11−307728号公報 特開2004−15032号公報
汎用的に用いられるハードマクロを設計する段階では、ハードマクロやハードマクロに接続されるセルが、LSIチップにどのように配置配線されるのかを、ハードマクロ設計者が確定することは困難である。そのため、ハードマクロ設計者は、LSIチップ上でハードマクロが配置配線される状況を多数想定することによりハードマクロのタイミングライブラリを作成し、LSIチップ設計者に提供している。しかし、LSIチップの設計においてハードマクロ設計者の想定範囲外の配置配線が行われた場合、その配置配線におけるタイミング規格は十分に検証されたものではなく、動作不具合が起こり得る可能性がある。本発明は、LSIチップ上でハードマクロが安定した性能で駆動できる技術の提供を目的とする。
本発明は前記課題を解決するために、以下の手段を採用した。すなわち、本発明は、コンピュータによる設計に用いられる半導体集積回路の設計データの作成方法であって、コンピュータが、所定の機能を有する回路ブロックの形状情報、端子位置情報及びタイミング情報が記述された回路ブロックライブラリを作成するステップと、前記回路ブロック及び前記回路ブロックに接続するユニットセルを有するモジュール回路の接続情報が記述されたネットリストを作成するステップと、前記ユニットセルの形状情報、端子位置情報及びタイミング情報が記述されたユニットセルライブラリ、前記回路ブロックライブラリ及び前記ネットリストを使用して、前記回路ブロックが配置される回路ブロック配置領域と前記ユニットセルが配置されるユニットセル配置領域とが所定状態で設けられている前記モジュール回路のレイアウトデータを作成するステップと、を実行し、前記回路ブロックライブラリは、前記回路ブロック配置領域と前記ユニットセル配置領域とが所定状態で設けられている場合の前記回路ブロックのタイミング情報が記述されている。
本作成方法によって作成されるモジュール回路のレイアウトデータは、回路ブロック配置領域とユニットセル配置領域とが所定状態で設けられている。そして、本作成方法によって作成される回路ブロックライブラリには、回路ブロック配置領域とユニットセル配置
領域とが所定状態で設けられている場合の回路ブロックのタイミング情報が記述されている。したがって、モジュール回路のレイアウトデータを使用してLSIチップの設計を行った場合、LSIチップ上におけるハードマクロの安定した性能での駆動を確保することが可能となる。
また、本発明は、以上のいずれかの処理を実行するコンピュータその他の装置、機械等であってもよい。また、本発明は、コンピュータその他の装置、機械等に、以上のいずれかの機能を実現させるプログラムであってもよい。また、本発明は、そのようなプログラムをコンピュータ等が読み取り可能な記録媒体に記録したものでもよい。
本発明によれば、LSIチップ上のハードマクロを安定した性能で駆動させることが可能となる。
以下、図面に基づいて、本発明を実施するための最良の形態(以下、実施形態という)に係る設計支援装置について説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
<システムの概要>
本設計支援装置は、レイアウト作成システムを起動し、ハードマクロのネットリスト、セルライブラリを使用して、ハードマクロのレイアウトデータを作成する。ハードマクロは、所定の機能を実現する機能ブロック(回路ブロックともいう)であり、例えば、Central Processing Unit(CPU)、Random Access Memory(RAM)、Read Only Memory
(ROM)等の機能を有する。また、ハードマクロは、論理ブロックの配置や内部配線が予め固定されたコアである。
ハードマクロのネットリストは、ハードマクロが備えるセルの接続情報が記述されたデータである。セルライブラリは、セルのサイズ(大きさ)、形状、端子位置の座標情報等が記述されたデータ及びセルのタイミング情報が記述されたデータを含む。ハードマクロのレイアウトデータは、ハードマクロが備えるセルの配置情報及びセル間の配線情報を含むデータである。すなわち、ハードマクロのレイアウトデータは、ハードマクロ内部のレイアウトを記述したデータである。
また、本設計支援装置は、ライブラリ作成システムを起動し、ハードマクロのレイアウトデータ及びセルライブラリを使用して、ハードマクロライブラリを作成する。ハードマクロライブラリは、ハードマクロレイアウトライブラリ及びハードマクロタイミングライブラリを含む。ハードマクロレイアウトライブラリは、ハードマクロのサイズ(大きさ)、形状、端子位置の座標情報等のデータを有する。ハードマクロタイミングライブラリは、ハードマクロのタイミング規格(タイミング情報ともいう)が記述されたタイミングテーブルを備える。タイミング規格は、例えば、入力信号に対するセットアップ時間及びホールド時間、出力信号に対する最大遅延時間及び最小遅延時間である。
ハードマクロタイミングライブラリには、ハードマクロの外部条件を考慮したタイミング規格が記述される。ハードマクロの外部条件として、ハードマクロの外部端子に接続される最初の論理回路をバッファ(信号中継回路あるいはユニットセルともいう)とする。そして、ハードマクロ及びバッファの配置について、ハードマクロの外部端子に対してバッファが近接配置された状態を想定する。すなわち、本設計支援装置は、ハードマクロの外部端子に対してバッファが近接配置された状態を想定して、ハードマクロタイミングライブラリを作成する。
ハードマクロの外部端子に対してバッファが近接配置された状態とは、ハードマクロの外部端子とバッファとを接続する配線の長さが物理的に最小値となるように、ハードマクロの外部端子に対してバッファが配置された状態をいう。ハードマクロの外部端子に対してバッファが近接配置されることにより、ハードマクロを安定した性能で駆動させることができる。したがって、ハードマクロの外部端子に対してバッファが近接配置された状態とは、ハードマクロを安定した性能で駆動できる配置状態ともいえる。本明細書では、ハードマクロの外部端子に対してバッファが近接配置された状態を、所定状態あるいは所定配置状態ともいう。
また、上述のハードマクロタイミングライブラリの作成において、タイミング規格にマージン(余裕)が付加される。この場合、ハードマクロの外部端子に接続されるバッファの配置位置を考慮して、タイミング規格にマージンが付加される。タイミング規格にマージンが付加されることで、ハードマクロタイミングライブラリを使用してLSIチップの設計が行われた場合のハードマクロの動作を保証することができる。
また、本設計支援装置は、ネットリスト作成システムを起動し、ラッパーモジュールのネットリストを作成する。ラッパーモジュールは、ハードマクロ及びバッファを備えるモジュール回路である。ラッパーモジュールのネットリストは、ハードマクロとバッファとの接続情報が記述されたデータである。
また、本設計支援装置は、レイアウトデータ作成システムを起動し、ハードマクロライブラリ、ラッパーモジュールのネットリスト及びバッファライブラリ(信号中継回路ライブラリ又はバッファセルライブラリともいう)を用いて、ラッパーモジュールのレイアウトデータを作成する。バッファライブラリ(ユニットセルライブラリともいう)は、バッファの大きさ、形状、端子位置の座標等が記述されたデータ及びバッファのタイミング情報が記述されたデータを含む。
ラッパーモジュールのレイアウトデータは、ハードマクロ及びそのハードマクロの外部端子に接続されるバッファの配置配線情報が記述されたデータである。ラッパーモジュール内のバッファは、ハードマクロの外部端子に対して近接配置されている。
また、ハードマクロライブラリ、ラッパーモジュールのネットリスト及びバッファライブラリを用いて作成されたラッパーモジュールのレイアウトデータは、ハードマクロの内部構造(回路構造)がブラックボックス状態となっている。すなわち、ハードマクロライブラリ、ラッパーモジュールのネットリスト及びバッファライブラリを用いて作成されたラッパーモジュールのレイアウトデータは、ハードマクロの内部構造が記述されていない状態のレイアウトデータである。これは、ラッパーモジュールのレイアウトデータの作成において用いられるハードマクロライブラリには、ハードマクロの内部構造が記述されていないためである。
以下において、ハードマクロライブラリ、ラッパーモジュールのネットリスト及びバッファライブラリを用いて作成されたラッパーモジュールのレイアウトデータを、ブラックボックス状態のレイアウトデータという。なお、本設計支援装置は、ハードマクロライブラリ、ラッパーモジュールのネットリスト及びバッファライブラリを用いて作成されたラッパーモジュールのレイアウトデータ内にバッファの配置に関しての固定配置属性を記述する。
また、本設計支援装置は、レイアウトデータ作成システムを起動し、ハードマクロのレイアウトデータ、ラッパーモジュールのネットリスト及びバッファライブラリを用いて、
ラッパーモジュールのレイアウトデータを作成する。ハードマクロのレイアウトデータ、ラッパーモジュールのネットリスト、バッファライブラリを用いて作成されたハードマクロ及びバッファのレイアウトデータは、ハードマクロの内部構造がホワイトボックス状態となっている。
すなわち、ハードマクロのレイアウトデータ、ラッパーモジュールのネットリスト、バッファライブラリを用いて作成されたラッパーモジュールのレイアウトデータは、ハードマクロの内部構造が記述された状態のレイアウトデータである。これは、ラッパーモジュールのレイアウトデータの作成において用いられるハードマクロのレイアウトデータには、ハードマクロの内部構造が記述されているためである。
以下において、ハードマクロのレイアウトデータ、ラッパーモジュールのネットリスト、バッファライブラリを用いて作成されたラッパーモジュールのレイアウトデータを、ホワイトボックス状態のレイアウトデータという。
また、本設計支援装置は、タイミング検証システムを起動し、ブラックボックス状態のレイアウトデータ及びホワイトボックス状態のレイアウトデータのタイミング検証を行う。そして、本設計支援装置は、タイミング比較システムを起動し、ブラックボックス状態のレイアウトデータのタイミング検証の結果と、ホワイトボックス状態のレイアウトデータのタイミング検証の結果とを比較する。
ブラックボックス状態のレイアウトデータのタイミング検証の結果が所望の結果となっている場合、ハードマクロ設計者は、ブラックボックス状態のレイアウトデータ、ラッパーモジュールのネットリスト及びハードマクロライブラリの各データをLSIチップ設計者に提供する。ここで、バッファライブラリは、ハードマクロ設計者及びLSIチップ設計者がともに共通のデータを予め用意しておくため、ハードマクロ設計者は、バッファライブラリのデータをLSIチップ設計者には提供しない。
LSIチップ設計者に提供されるブラックボックス状態のレイアウトデータは、ハードマクロの内部構造が記述されていない。そのため、ブラックボックス状態のレイアウトデータをLSIチップ設計者に提供した場合であっても、ハードマクロの内部構造がLSIチップ設計者に知得されることを抑制できる。
そして、LSIチップ設計者は、ブラックボックス状態のレイアウトデータを使用して、LSIチップの設計を行う。LSIチップ設計者に提供されるブラックボックス状態のレイアウトデータは、ハードマクロの外部端子に対してバッファが近接配置された状態である。また、LSIチップ設計者に提供されるハードマクロライブラリには、ハードマクロの外部端子に対してバッファが近接配置された状態のタイミングライブラリが含まれている。
ブラックボックス状態のレイアウトデータは、バッファの配置に関する固定配置属性が与えられているため、LSIチップ上では、ハードマクロの外部端子に対してバッファが近接配置されることになる。例えば、レイアウトツールの自動配置を使用してLSI設計を行った場合であっても、LSIチップ上には、ハードマクロの外部端子に対して常にバッファが近接配置されることになる。したがって、ブラックボックス状態のレイアウトデータを使用したLSIチップの設計において、LSIチップ上でハードマクロを安定した性能で配置・利用することが可能となる。
LSIチップの設計データは、本設計支援装置を使用するユーザが受け取る。そして、この設計データに基づいて、LSIチップの作成が行われることで、LSIチップの設計
者にハードマクロの内部構造が知得されることなく、LSIチップの製造が可能となる。
図1に、本設計支援装置を実現するためのコンピュータ1のハードウェア構成を示す。図1に示すように、コンピュータ1は、コンピュータプログラムを実行することでコンピュータ1を制御するCPU2、CPU2で実行されるコンピュータプログラムやCPU2が処理するデータを記憶するメモリ3を有する。また、同図に示すように、コンピュータ1は、CPU2と各種の装置とを接続するインターフェース4、ハードディスク駆動装置5、可搬媒体駆動装置6、入力装置7、表示装置8を有している。
メモリ3は、CPU2で実行されるプログラムやCPU2で処理されるデータを記憶する。メモリ3は、例えば、揮発性のRAM、不揮発性のROMである。インターフェース4は、Universal Serial Bus(USB)等のシリアルインターフェース、あるいは、Peripheral Component Interconnect(PCI)等のパラレルインターフェースのいずれでも
よい。なお、CPU2と各装置とをインターフェース4で接続しているが、CPU2と各装置との間を異なるインターフェースで接続してもよい。また、複数のインターフェースをブリッジ接続してもよい。
ハードディスク駆動装置5は、メモリ3にロードされるプログラムを格納する。また、ハードディスク駆動装置5は、CPU2で処理されるデータを記憶する。可搬媒体駆動装置6は、例えば、Compact Disc(CD)、Digital Versatile Disk(DVD)、HD−DVD、ブルーレイディスク等の駆動装置である。また、可搬媒体駆動装置6は、フラッシュメモリ等の不揮発性メモリを有するカード媒体の入出力装置であってもよい。可搬媒体駆動装置6が駆動する媒体は、例えば、ハードディスク駆動装置5にインストールされるコンピュータプログラム、入力データ等を格納する。入力装置7は、例えば、キーボード、マウス、ポインティングデバイス、ワイヤレスリモコン等である。
表示装置8は、CPU2で処理されるデータやメモリ3に記憶されるデータを表示する。表示装置8は、例えば、液晶表示装置、プラズマディスプレイパネル、Cathode Ray Tube(CRT)、エレクトロルミネッセンスパネル等である。
図2は、本設計支援装置の機能ブロック図である。本設計支援装置は、操作部11、格納部12、レイアウト部13、検証部14、ライブラリ作成部15、ライブラリ検証部16、外部端子抽出部17、ネットリスト作成部18、タイミング規格抽出部19、タイミング規格算出部20及びタイミング規格比較部21を有する。これらの各機能部は、CPU2、メモリ3等を含むコンピュータ、各装置及びコンピュータ上で実行されるプログラム等によって実現することができる。
操作部11は、ユーザからの入力を受け付け、所定のコマンドや必要なデータを入力するときなどに操作される。
格納部12は、ネットリストデータベース(以下、ネットリストDBという)30、ライブラリデータベース(以下、ライブラリDBという)31及びレイアウトデータベース(以下、レイアウトDBという)32を有する。
ネットリストDB30には、ハードマクロのネットリストのデータ及びラッパーモジュールのネットリストのデータが格納される。ライブラリDB31には、セルライブラリのデータ、ハードマクロライブラリのデータ及びバッファライブラリのデータが格納される。レイアウトDB32には、ハードマクロのレイアウトデータ、ブラックボックス状態のレイアウトデータ及びホワイトボックス状態のレイアウトデータが格納される。
レイアウト部13は、ハードマクロのネットリスト及びセルライブラリを使用して、ハードマクロのレイアウトデータを作成する。そして、レイアウト部13は、作成したハードマクロのレイアウトデータをレイアウトDB32に格納する。
さらに、レイアウト部13は、ハードマクロライブラリ、ラッパーモジュールのネットリスト及びバッファライブラリを使用して、ブラックボックス状態のレイアウトデータを作成する。そして、レイアウト部13は、作成したブラックボックス状態のレイアウトデータをレイアウトDB32に格納する。
また、レイアウト部13は、ハードマクロのレイアウトデータ、ラッパーモジュールのネットリスト及びバッファライブラリを使用して、ホワイトボックス状態のレイアウトデータを作成する。そして、レイアウト部13は、作成したホワイトボックス状態のレイアウトデータをレイアウトDB32に格納する。
なお、ブラックボックス状態のレイアウトデータ及びホワイトボックス状態のレイアウトデータの作成において、レイアウト部13は共通のフロアプランを使用する。すなわち、ハードマクロ及びバッファの配置位置や状態について、ブラックボックス状態のレイアウトデータとホワイトボックス状態のレイアウトデータとでは同一となる。これは、レイアウトデータのタイミング検証において、ハードマクロ及びバッファの配置位置や状態によって差が出ないようにするためである。
検証部14は、レイアウト部13によって作成されたレイアウトデータに記述されたハードマクロが所定の機能や性能を満たしているか否かを実配線にて検証する。例えば、検証部14は、ハードマクロが所定の駆動速度や所定のクロックで動作するか否かを検証する。
ライブラリ作成部15は、ハードマクロのレイアウトデータ及びセルライブラリを使用して、ハードマクロライブラリを作成する。ライブラリ作成部15は、タイミング規格にマージンを付加してハードマクロタイミングライブラリを作成する。そして、ライブラリ作成部15は、作成したハードマクロライブラリのデータをライブラリDB31に格納する。
ライブラリ検証部16は、ハードマクロライブラリが、所望のライブラリとなっているか否かを検証する。例えば、ライブラリ検証部16は、ハードマクロタイミングライブラリに記述されているタイミング規格が適正値となっているか否かを検証する。また、ハードマクロタイミングライブラリに記述されているタイミング規格にマージンが付加されている場合、ライブラリ検証部16は、付加されたマージンが正確に反映されているか否かを検証する。
外部端子抽出部17は、ハードマクロのネットリストを使用して、ハードマクロのネットリストに記述されているハードマクロの外部端子を抽出する。例えば、ハードマクロ設計者などのユーザによってハードマクロのモジュール名が指定された場合、ハードマクロのモジュール名に対応するハードマクロの外部端子が抽出される。また、ハードマクロのネットリストから、予め特定のハードマクロのモジュール名に対応するハードマクロの外部端子を抽出するようにしておいてもよい。
ネットリスト作成部18は、バッファライブラリと、外部端子抽出部17により抽出された外部端子とを使用して、ハードマクロ及びそのハードマクロの外部端子に接続されるバッファを含むラッパーモジュールのネットリストを作成する。そして、ネットリスト作成部18は、作成したラッパーモジュールのネットリストをネットリストDB30に格納
する。
タイミング規格抽出部19は、ブラックボックス状態のレイアウトデータ及びハードマクロライブラリを使用して、ハードマクロライブラリに記述されているタイミング規格を抽出する。例えば、タイミング規格抽出部19は、ブラックボックス状態のレイアウトデータからバッファが配置されている位置を求める。そして、タイミング規格抽出部19は、バッファ配置位置に対応するタイミング規格をハードマクロライブラリから抽出する。この場合、タイミング規格抽出部19は、バッファ配置位置に対応するタイミング規格を、ハードマクロの外部端子ごとに抽出する。ブラックボックス状態のレイアウトデータは、ハードマクロの内部構造が記述されていない状態のレイアウトデータである。そのため、ブラックボックス状態のレイアウトデータ及びハードマクロライブラリを使用することにより、タイミング規格抽出部19は、ハードマクロライブラリに記述されているタイミング規格を抽出する。
タイミング規格算出部20は、ホワイトボックス状態のレイアウトデータを使用して、タイミング規格を算出する。例えば、タイミング規格算出部20は、ホワイトボックス状態のレイアウトデータからバッファが配置されている位置を求める。そして、タイミング規格算出部20は、ホワイトボックス状態のレイアウトデータを使用して、バッファ配置位置に対応するタイミング規格を算出する。この場合、タイミング規格算出部20は、バッファ配置位置に対応するタイミング規格を、ハードマクロの外部端子ごとに算出する。ホワイトボックス状態のレイアウトデータは、ハードマクロの内部構造が記述された状態のレイアウトデータである。そのため、ホワイトボックス状態のレイアウトデータを使用することにより、タイミング規格算出部20は、バッファ配置位置に対応するタイミング規格を算出する。
タイミング規格比較部21は、ハードマクロの外部端子ごとに、タイミング規格抽出部19によって抽出されたタイミング規格とタイミング規格算出部20によって算出されたタイミング規格とを比較する。具体的には、タイミング規格比較部21は、ハードマクロの外部端子ごとに、タイミング規格抽出部19によって抽出されたタイミング規格が、タイミング規格算出部20によって抽出されたタイミング規格よりも条件的に余裕があるか否かを判定する。例えば、タイミング規格が、セットアップ時間である場合、タイミング規格比較部21は、タイミング規格抽出部19によって抽出されたセットアップ時間が、タイミング規格算出部20によって抽出されたセットアップ時間よりも長いか否かを判定する。
ハードマクロの外部端子の一つ以上について、タイミング規格抽出部19によって抽出されたタイミング規格が、タイミング規格算出部20によって抽出されたタイミング規格よりも条件的に余裕がない場合、タイミング規格比較部21は、レイアウト部13に通知する。タイミング規格比較部21から通知を受けたレイアウト部13は、フロアプランを変更して、ブラックボックス状態のレイアウトデータ及びホワイトボックス状態のレイアウトデータを再度作成する。
図3は、本設計支援装置が実行する提供データ作成処理の流れを示すフローである。本設計支援装置は、操作部11を介して必要なデータやコマンドが入力されることにより、提供データ作成処理を実行する。まず、本設計支援装置は、ハードマクロのネットリスト及びセルライブラリを使用して、ハードマクロのレイアウトデータを作成する(S01)。
次に、本設計支援装置は、S01の処理で作成されたレイアウトデータに記述されているハードマクロが所定の機能や性能を満たしているか否かについて、実配線にてタイミン
グ検証を行う(S02)。
S01の処理にて作成されたレイアウトデータに記述されているハードマクロが所定の機能や性能を満たしていない場合(S02の処理でNO)、本設計支援装置は、S01の処理に戻り、ハードマクロのレイアウトデータの作成をやり直す。
一方、S01の処理にて作成されたレイアウトデータに記述されているハードマクロが所定の機能や性能を満たしている場合(S02の処理でYES)、本設計支援装置は、S03の処理に進む。本設計支援装置は、ハードマクロのレイアウトデータ及びセルライブラリを使用して、ハードマクロライブラリを作成する(S03)。次に、本設計支援装置は、ハードマクロライブラリが、所望のライブラリとなっているか否かを検証する(S04)。
ハードマクロライブラリが、所望のライブラリとなっていない場合(S04の処理でNO)、本設計支援装置は、S03の処理に戻り、ハードマクロライブラリの作成をやり直す。一方、ハードマクロライブラリが、所望のライブラリとなっている場合(S04の処理でYES)、本設計支援装置は、S05の処理に進む。本設計支援装置は、ハードマクロのネットリストに記述されているハードマクロの外部端子を抽出する(S05)。
次に、本設計支援装置は、ハードマクロ及びそのハードマクロの外部端子に接続されるバッファを含むラッパーモジュールのネットリストを作成する(S06)。そして、本設計支援装置は、ハードマクロライブラリ、ラッパーモジュールのネットリスト及びバッファライブラリを使用して、ブラックボックス状態のレイアウトデータを作成する(S07)。
次に、本設計支援装置は、ハードマクロのレイアウトデータ、ラッパーモジュールのネットリスト及びバッファライブラリを使用して、ホワイトボックス状態のレイアウトデータを作成する(S08)。
そして、本設計支援装置は、ブラックボックス状態のレイアウトデータ及びハードマクロライブラリを使用して、ハードマクロライブラリに記述されているタイミング規格を抽出する(S09)。次に、本設計支援装置は、ホワイトボックス状態のレイアウトデータを使用して、タイミング規格を算出する(S10)。
そして、本設計支援装置は、S09の処理で抽出されたタイミング規格とS10の処理で算出されたタイミング規格とを比較する(S11)。具体的には、ハードマクロの外部端子ごとに、S09の処理で抽出されたタイミング規格が、S10の処理で算出されたタイミング規格よりも条件的に余裕があるか否かが判定される。
ハードマクロの外部端子の一つ以上について、S09の処理で抽出されたタイミング規格が、S10の処理で算出されたタイミング規格よりも条件的に余裕がない場合(S11の処理でNO)、本設計支援装置は、S07の処理に戻り、レイアウトデータの作成をやり直す。この場合、本設計支援装置は、フロアプランを変更して、レイアウトデータを再度作成する。
一方、ハードマクロの外部端子のすべてについて、S09の処理で抽出されたタイミング規格が、S10の処理で算出されたタイミング規格よりも条件的に余裕がある場合(S11の処理でYES)、本設計支援装置は、提供データ作成処理を終了する。
S03の処理で作成されたハードマクロライブラリ、S06の処理で作成されたラッパ
ーモジュールのネットリスト及びS07の処理で作成されたブラックボックス状態のレイアウトデータが、LSIチップ設計者への提供データである。S07及びS08の処理で使用されるバッファライブラリは、LSIチップ設計者によって使用されるバッファライブラリと共通であるため、LSIチップ設計者への提供データには含まれていない。
〈タイミングテーブルの説明〉
次に、ハードマクロタイミングライブラリ内のタイミングテーブルについて、図4から図9を参照して説明する。LSIチップの設計において、ハードマクロ及びバッファのレイアウトを行う場合、ハードマクロタイミングライブラリ内のタイミングテーブルが参照される。タイミングテーブルには、ハードマクロのタイミング規格が、ハードマクロの外部条件に対応して記述されている。この場合におけるハードマクロの外部条件は、ハードマクロの入力端子では、入力信号の波形なまり(波形の劣化)であり、ハードマクロの出力端子では、出力端子の外部容量(外部負荷)である。
図4、図6及び図8は、ハードマクロ40の外部端子41にバッファ42が接続されている場合のハードマクロ40及びバッファ42の配置例である。バッファ42及びクロックバッファ43は、外部端子辺44の任意の箇所に配線45を接続させることで、ハードマクロ40の外部端子41と接続可能である。図4、図6及び図8に示すバッファ42A、42B、42C、42D及び42Eは駆動能力が同じであり、ハードマクロ40の外部端子41と1対1で接続されている。クロックバッファ43は、ハードマクロ40にクロックを供給するセルである。図4、図6及び図8では、ハードマクロ40のクロックは1系統としている。なお、図4から図9において、バッファ42A、42B、42C、42D及び42Eを総称する場合には、バッファ42という。
図5、図7及び図9は、タイミングテーブル50の一例であり、ハードマクロ40のタイミングライブラリが参照される場合におけるタイミングテーブル50の参照箇所の説明図である。図5は、ハードマクロ40及びバッファ42の配置が図4の配置例である場合のタイミングテーブル50の参照箇所の説明図である。図7は、ハードマクロ40及びバッファ42の配置が図6の配置例である場合のタイミングテーブル50の参照箇所の説明図である。図9は、ハードマクロ40及びバッファ42の配置が図8の配置例である場合のタイミングテーブル50の参照箇所の説明図である。
図5、図7及び図9に示すタイミングテーブル50の行パラメータは、クロックバッファ43から入力される信号の波形なまりの影響の度合いを示している。具体的には、クロックバッファ43の位置及び配線45の長さ等とタイミングテーブル50の行パラメータとは対応しており、クロックバッファ43の位置及び配線45の長さ等に応じて、タイミングテーブル50の行パラメータが参照される。タイミングテーブル50の上段の行パラメータが参照された場合、下段の行パラメータよりも波形なまりの影響が少なく、急峻な波形がクロックバッファ43から入力されることを意味している。
タイミングテーブル50の列パラメータは、ハードマクロ40の外部端子41が入力端子である場合、バッファ42から入力される信号の波形なまりの影響の度合いを示している。また、タイミングテーブル50の列パラメータは、ハードマクロ40の外部端子41が出力端子である場合、出力端子の外部容量の影響の度合いを示している。具体的には、バッファ42の位置及び配線45の長さ等とタイミングテーブル50の列パラメータとは対応しており、バッファ42の位置及び配線45の長さ等に応じて、タイミングテーブル50の列パラメータが参照される。外部端子41が入力端子である場合において、左側の列パラメータが参照されると、右側の列パラメータよりも波形なまりの影響が少なく、急峻な波形がバッファ42から入力されることを意味している。また、外部端子41が出力端子である場合において、左側の列パラメータが参照されると、右側の列パラメータより
も外部容量の影響が少ないことを意味している。
図4及び図5について説明する。図4では、バッファ42B及びクロックバッファ43は、ハードマクロ40の外部端子41に対して近接して配置されているが、バッファ42A、42C、42D及び42Eは、ハードマクロ40の外部端子41に対して近接して配置されていない。図4に示す配置は、バッファ42をハードマクロ40の外部端子41に近接して配置するというフロアプランを使用しない場合に起こり得る。
図4では、クロックバッファ43はハードマクロ40の外部端子41に近接して配置されているので、図5に示すタイミングテーブル50では、最上段の行パラメータが参照される。そして、バッファ42の位置及び配線45の長さ等に応じて、図5のタイミングテーブル50の列パラメータが参照され、入力端子又は出力端子に対するタイミング規格が決定される。
例えば、LSIチップの設計において、図4のようにハードマクロ40及びバッファ42が配置されている場合、図5のタイミングテーブル50のフィールド1A、1B、1C、1D及び1Eに記述されているタイミング規格が参照される。
図6及び図7について説明する。図6では、クロックバッファ43及びバッファ42A、42B、42C、42D及び42Eは、ハードマクロ40の外部端子41に対して近接配置されていない。図6に示す配置は、クロックバッファ43及びバッファ42をハードマクロ40の外部端子41に近接して配置するというフロアプランを使用しない場合に起こり得る。
図6では、クロックバッファ43は、ハードマクロ40の外部端子41に対して最も遠くに配置されているので、図7に示すタイミングテーブル50では、最下段の行パラメータが参照される。そして、バッファ42の位置及び配線45の長さ等に応じて、図7のタイミングテーブル50の列パラメータが参照され、入力端子又は出力端子に対するタイミング規格が決定される。
図6では、バッファ42及びクロックバッファ43は、ハードマクロ40の外部端子41に対して近接して配置されていないため、配線45が長くなり配線遅延による影響を受けやすい。したがって、図7に示すタイミングテーブル50では、最下段の行パラメータ及び行パラメータC、D、Eを参照することによってタイミング規格が決定される。例えば、LSIチップの設計において、図6のようにハードマクロ40及びバッファ42が配置される場合、図7のフィールド5C、5D及び5Eに記述されているタイミング規格が参照される。
図8及び図9について説明する。図8では、バッファ42及びクロックバッファ43は、ハードマクロ40の外部端子41に対して近接配置されている。図8の配置は、バッファ42及びクロックバッファ43をハードマクロ40の外部端子41に近接して配置するというフロアプランを使用して配置された場合である。
図8では、クロックバッファ43は、ハードマクロ40の外部端子41に対して近接して配置されているので、図9に示すタイミングテーブル50では、最上段の行パラメータが参照される。そして、バッファ42の位置及び配線45の長さ等に応じて、図9のタイミングテーブル50の列パラメータが参照され、入力端子又は出力端子に対するタイミング規格が決定される。
図8では、バッファ42及びクロックバッファ43は、ハードマクロ40の外部端子4
1に対して近接して配置されているため、配線45が短くなり配線遅延による影響を受けにくい。したがって、図9に示すタイミングテーブル50では、最上段の行パラメータ及び列パラメータAを参照することによってタイミング規格が決定される。例えば、LSIチップの設計において、図8のようにハードマクロ40及びバッファ42が配置される場合、図9のタイミングテーブル50のフィールド1Aに記述されているタイミング規格が参照される。
本支援設計装置は、ハードマクロ40の外部端子41に対してバッファ42が近接配置された状態を想定して、ハードマクロタイミングライブラリを作成する。すなわち、本支援設計装置は、ハードマクロ40の外部端子41に対してバッファ42が近接配置されたフロアプランを使用することにより、ハードマクロ40及びバッファ42の配置が行われた状態を想定して、ハードマクロタイミングライブラリを作成する。
例えば、図8の配置状態を想定して、ハードマクロタイミングライブラリを作成する。上述のように、LSIチップの設計において、図8のようにハードマクロ40及びバッファ42が配置される場合、図9のタイミングテーブル50のフィールド1Aに記述されているタイミング規格が参照される。
そこで、本支援設計装置は、LSIチップの設計で参照されるタイミング規格に絞って、ハードマクロタイミングライブラリを作成する。具体的には、本支援設計装置は、LSIチップの設計で参照されるタイミング規格のみをタイミングテーブル50に記述することによりハードマクロタイミングライブラリを作成する。これにより、ハードマクロライブラリの作成及び検証の工数を削減することができる。
そして、タイミング規格を絞る事でタイミングテーブル50に記述するタイミング規格のデータ量が少なくなり、ハードマクロタイミングライブラリのファイルサイズ(データ量)を小さくすることができる。
また、図8の配置状態であっても、外部端子41ごとに外部容量が異なる場合がある。この場合には、外部端子41ごとに異なる外部容量に応じて、タイミングテーブル50のタイミング規格の参照箇所を増やせばよい。そして、図9のタイミングテーブル50において参照される可能性が低いタイミング規格を削減することにより、タイミングライブラリのデータ量を増やすことなく、外部端子41ごとに異なる外部容量に応じたタイミングテーブル50を作成することができる。
次に、ネットリスト作成部18によって作成されるラッパーモジュール60のネットリストについて説明する。図10に、ラッパーモジュール60のネットリストの一例を示す。図11に、図10のラッパーモジュール60のネットリストに記述されるラッパーモジュール60の概念図を示す。図11のラッパーモジュール60は、ハードマクロ40が有する外部端子41A、41B、41C、41Dに対応する外部端子61A、61B、61C、61Dを備える。そして、ラッパーモジュール60は、外部端子41A、41B、41C、41Dと、外部端子61A、61B、61C、61Dとをそれぞれ接続する引き付け配置用のバッファモジュール62を備える。なお、以下において、外部端子41A、41B、41C、41Dを総称する場合には外部端子41といい、外部端子61A、61B、61C、61Dを総称する場合には外部端子61という。
図10のラッパーモジュール60のネットリストの行1には、「module Wrapper(A,B,C,D)」が記述されている。これは、トップモジュール名として、Wrapperを定義しており、ラッパーモジュール60の外部端子61がA、B、C、Dという名前であることを示している。
図10のラッパーモジュール60のネットリストの行3−6には「input A;」、「input B;」、「output C;」、「output D;」が記述されている。これは、ラッパーモジュール60の外部端子61の入出力定義である。すなわち、図10のラッパーモジュール60のネットリストでは、input A及びinput Bが入力端子であり、output C及びoutput Dが出力端子であることを定義している。
図10のラッパーモジュール60のネットリストの行8には、「wire In#A, In#B, Out#C, Out#D;」が記述されている。これは、ラッパーモジュール60内部の接続情報である。この例では、「In#A」、「In#B」、「Out#C」、「Out#D」の4つのネット接続情報が定義されている。
図10のラッパーモジュール60のネットリストの行10には、「HARDMACRO hardmacro (.A(In#A), .B(In#B), .C(Out#C), .D(Out#D));」が記述されている。これにより、ラ
ッパーモジュール60内に存在するサブモジュールとして、HARDMACRO(ハードマクロ4
0)が定義されることになる。そして、HARDMACROというモジュール名のマクロを固有名
としてhardmacroと名付け、HARDMACROの端子と何が接続されているかを定義している。すなわち、HARDMACROの端子AにはIn#Aというネットが接続され、HARDMACROの端子BにはIn#Bというネットが接続され、HARDMACROの端子CにはIn#Cというネットが接続され、HARDMACROの端子DにはIn#Dというネットが接続されることが定義されている。図11では、外部端子41Aには配線45Aが接続され、外部端子41Bには配線45Bが接続され、外部端子41Cには配線45Cが接続され、外部端子41Dには配線45Dが接続されていることを示している。
図10のラッパーモジュール60のネットリストの行12−14には、「HIKITSUKE#BUF hikitsuke#buf(.In#Buf#A(A), .Out#Buf#A(In#A), .In#Buf#B(B), .Out#Buf#B(In#B), .In#Buf#C(Out#C), .Out#Buf#C(C). .In#Buf#D(Out#D), .Out#Buf#D(D))」が記述されて
いる。これにより、ラッパーモジュール60内に存在するサブモジュールとして、HIKITSUKE#BUF(バッファモジュール62)が定義されることになる。そして、HIKITSUKE#BUFというモジュール名のマクロを固有名としてhikitsuke#bufと名付け、HIKITSUKE#BUFと何が接続されているかを定義している。
図10のラッパーモジュール60のネットリストの行19−20には、「module HIKITSUKE#BUF (In#Buf#A, Out#Buf#A, In#Buf#B, Out#Buf#B, In#Buf#C, Out#Buf#C, In#Buf#D, Out#Buf#D);」が記述されている。これは、ラッパーモジュール60内に存在するサブモジュールとしてのHIKITSUKE#BUF及びHIKITSUKE#BUFの端子を定義している。
図10のラッパーモジュール60のネットリストの行22−29には、「input In#Buf#A;」、「input In#Buf#B;」、「input In#Buf#C;」、「input In#Buf#D;」、「output Out#Buf#A;」、「output Out#Buf#B;」、「output Out#Buf#C;」、「output Out#Buf#D;」が記述されている。これは、HIKITSUKE#BUFの端子の入出力定義である。すなわち、図1
0のラッパーモジュール60のネットリストでは、「In#Buf#A」、「In#Buf#B」、「In#Buf#C」及び「In#Buf#D」が入力端子であり、「Out#Buf#A」、「Out#Buf#B」、「Out#Buf#C」及び「Out#Buf#D」が出力端子であることを定義している。図11では、外部端子63A、外部端子63B、外部端子63C及び外部端子63Dがバッファモジュール62の入力端子であることが示され、外部端子64A、外部端子64B、外部端子64C及び外部端子64Dがバッファモジュール62の出力端子であることが示されている。
図10のラッパーモジュール60のネットリストの行31には、「BUFFER buf#A (.A(In#Buf#A), .Y(Out#Buf#A));」と記述されている。これは、BUFFERという名前のユニット
セルを固有名としてbuf#Aと名付け、BUFFERの端子に何が接続されているかを定義してい
る。すなわち、「BUFFER(buf#A)」の端子Aには「In#Buf#A」が接続され、「BUFFER(buf#A)」の端子Yには「Out#Buf#A」が接続されることが定義されている。図11では、
バッファ42Aの端子Aには入力端子63Aが接続され、バッファ42Aの端子Yには出力端子64Aが接続されていることが示されている。また、図10のラッパーモジュール60のネットリストの行32−34についても同様である。
図10のラッパーモジュール60のネットリストの行19−34には、HIKITSUKE#BUF
の内部構造が定義(記述)されている。一方、図10のラッパーモジュール60のネットリストの行10では、HARDMACROが呼び出されているが、HARDMACROの内部構造は定義(記述)されていない。したがって、ハードマクロ40及びバッファ42のレイアウトデータを作成する際にハードマクロライブラリを使用した場合、ブラックボックス状態のレイアウトデータが作成される。一方、ハードマクロ40及びバッファ42のレイアウトデータを作成する際にハードマクロレイアウトデータを使用した場合、ホワイトボックス状態のレイアウトデータが作成される。
次に、レイアウト部13によって作成されるラッパーモジュール60のレイアウトデータについて説明する。図12は、ラッパーモジュール60のレイアウトデータの一例である。図12に示すラッパーモジュール60のレイアウトデータには、ハードマクロ40及びバッファ42が配置されている。ハードマクロ40の形状は、矩形となっており、ハードマクロ40の一辺に外部端子辺44が設けられている。なお、本明細書では、矩形とは、長方形および正方形を含む直角四辺形を指すものとする。
図12に示すラッパーモジュール60のレイアウトデータには、バッファ42を配置するためのバッファ配置領域(ユニットセル配置領域ともいう)70が設けられており、バッファ配置領域70内にバッファ42が配置されている。また、ラッパーモジュール60のレイアウトデータには、ハードマクロ40が配置される領域(回路ブロック配置領域ともいう)が設けられ、そこにハードマクロ40が設けられる。バッファ配置領域70内には、バッファ42に隣接するようにセル用の電源71が設けられている。図12に示すように、バッファ配置領域70はハードマクロ40に対して近接して設けられている。したがって、バッファ42は、ハードマクロ40の外部端子辺44に対して近接配置された状態となっている。ハードマクロ40の外部端子辺44の任意の位置に外部端子41を設けることが可能である。
また、外部端子41とバッファ42とが配線45によって接続されている。そして、図12に示すように、バッファ配置領域70は、外部端子41に接続される配線45の伸長方向に配置されている。このように、バッファ配置領域70の横幅を、ハードマクロ40に設けられた外部端子辺44の長さに応じて設けてもよい。また、バッファ配置領域70の横幅を、ハードマクロ40に設けられた外部端子辺44の長さよりも短くするようにしてもよい。さらに、バッファ配置領域70の横幅を、ハードマクロ40に設けられた外部端子辺44の長さよりも長くするようにしてもよい。
なお、ハードマクロ40の形状は非矩形であってもよい。ハードマクロ40の形状が非矩形の場合、ハードマクロ40の形状が矩形の場合と同様に、ハードマクロ40に設けられた外部端子辺44に対してバッファ配置領域70を設けるようにすればよい。すなわち、ハードマクロ40の形状に合わせてバッファ配置領域70を設けるようにすればよい。
図13は、ラッパーモジュール60のレイアウトデータの一例である。図13に示すラッパーモジュール60のレイアウトデータには、ハードマクロ40及びバッファ42が配置されている。ハードマクロ40の形状は、矩形となっており、ハードマクロ40の四辺
に外部端子辺44が設けられている。
図13に示すラッパーモジュール60のレイアウトデータでは、ハードマクロ40の四辺に対してバッファ配置領域70が設けられており、バッファ配置領域70内にバッファ42が配置されている。すなわち、図13に示すラッパーモジュール60のレイアウトデータは、ハードマクロ40の四辺に設けられている外部端子辺44すべてに対してバッファ配置領域70が設けられている。バッファ配置領域70内には、バッファ42に隣接するようにセル用の電源71が設けられている。なお、ラッパーモジュール60のレイアウトデータに、ハードマクロ40が配置される領域が設けられていることは、図12と同様である。
図13に示すように、バッファ配置領域70はハードマクロ40に対して近接して設けられている。したがって、バッファ42は、ハードマクロ40の外部端子辺44に対して近接配置された状態となっている。ハードマクロ40の外部端子辺44の任意の位置に外部端子41を設けることが可能である。また、外部端子41とバッファ42とが配線45によって接続されている。
なお、ハードマクロ40の形状は非矩形であってもよい。ハードマクロ40の形状が非矩形の場合、ハードマクロ40の形状が矩形の場合と同様に、ハードマクロ40に設けられた外部端子辺44に対してバッファ配置領域70を設けるようにすればよい。すなわち、ハードマクロ40の形状に合わせてバッファ配置領域70を設けるようにすればよい。
〈ラッパーモジュール60のパターン例の説明〉
LSIチップの設計において、ラッパーモジュール60をどの場所にどの方向で配置するかは、LSIチップの設計者が決定する。そこで、LSIチップの設計の際、ラッパーモジュール60の配置場所や配置方向に制限が発生しないようにするため、予めラッパーモジュール60のパターンを複数用意しておく。図14は、ラッパーモジュール60のパターン例についての説明図である。
図14に示すラッパーモジュール60A〜60Dは、それぞれバッファ42A〜42Gを備えている。バッファ42A〜42Gは、ハードマクロ40の外部端子辺44に対して近接配置された状態となっている。図14に示すラッパーモジュール60Aとラッパーモジュール60Bとは、線Aを軸として対象となっている。図14に示すラッパーモジュール60Aとラッパーモジュール60Cとは、線Bを軸として対象となっている。図14に示すラッパーモジュール60Aとラッパーモジュール60Dとは、180度の回転対称となっている。
また、図15に示すラッパーモジュール60E〜60Hは、それぞれバッファ42H〜42Nを備えている。バッファ42H〜42Nは、ハードマクロ40の外部端子辺44に対して近接配置された状態となっている。図15に示すラッパーモジュール60Eとラッパーモジュール60Fとは、線Aを軸として対象となっている。図15に示すラッパーモジュール60Eとラッパーモジュール60Gとは、線Bを軸として対象となっている。図15に示すラッパーモジュール60Eとラッパーモジュール60Hとは、180度の回転対称となっている。
〈ラッパーモジュール60内のバッファ配置領域70の利用〉
LSIチップの設計におけるラッパーモジュール60内のバッファ配置領域70の利用について、図16及び図17を参照して説明する。図16及び図17は、LSIチップ上にラッパーモジュール60が配置された場合の説明図である。図16及び図17に示すラッパーモジュール60は、外部端子辺44がハードマクロ40の上辺に設けられている。
太線で囲まれているバッファ配置領域70がハードマクロ40の外部端子辺44に対して近接配置されている。また、図16及び図17では、点線で囲まれた範囲がLSIチップのロジック領域80であり、LSIチップのロジック(論理回路)を配置することが可能な領域である。
ラッパーモジュール60内のバッファ配置領域70に配置されるバッファ42の内部構造は、ラッパーモジュール60のレイアウトデータに記述されている。そのため、ラッパーモジュール60内のバッファ配置領域70は、LSIチップ上で階層展開が可能である。図16のバッファ配置領域70は階層展開前であり、図17のバッファ配置領域70は階層展開後である。図17のバッファ配置領域70内にはバッファ42が配置されていない箇所があり、バッファ配置領域70内のバッファ42が配置されていない空き領域には、LSIチップのロジックを配置することが可能である。したがって、ラッパーモジュール60のバッファ配置領域70を階層展開することにより、バッファ配置領域70内の空き領域の有効活用が可能となる。
〈ハードマクロ40の外部端子41とバッファ42との接続配線例〉
上述したように、本設計支援装置によって作成されるラッパーモジュール60のレイアウトデータには、ハードマクロ40の外部端子41とバッファ42とを接続する配線45が設けられている。さらに、本設計支援装置は、ハードマクロ40の外部端子41とバッファ42とを接続する配線45が設けられていないラッパーモジュール60のレイアウトデータを作成してもよい。ハードマクロ40の外部端子41とバッファ42とを接続する配線45が設けられていないラッパーモジュール60のレイアウトデータを使用する場合、LSIチップ上の状況に応じて、LSIチップ設計者はその時の最短経路となるように配線45を設けることが可能である。
図18は、ハードマクロ40の外部端子41とバッファ42とを接続する場合のパターンを示す図である。図18の例では、LSIチップ設計者は、ハードマクロ40の外部端子41とバッファ42とを接続する配線45が設けられていないラッパーモジュール60のレイアウトデータを使用している。
図18において、バッファ42は、ハードマクロ40の外部端子41に対して近接配置されている。図18の例では、配線経路パターンA及び配線経路パターンBの2種類が存在している。このような配線経路パターンが存在する場合、LSIチップ設計者は、LSIチップの設計状況に合わせて、配線経路パターンA又は配線経路パターンBの選択が可能となる。
また、ハードマクロ40の外部端子41とバッファ42とを接続する配線45が設けられているラッパーモジュール60のレイアウトデータを使用する場合、LSIチップ上の状況に応じて、LSIチップの設計者は、配線経路パターンを変更することも可能である。例えば、図18に示す配線経路パターンAによる配線45が設けられたラッパーモジュール60のレイアウトデータを使用してLSIチップの設計が行われる場合、LSIチップの設計者は、配線経路パターンBによる配線45に変更することができる。これは、LSIチップの設計者が何らかの理由(LSIチップの他の配線を優先させたい等の理由)で、配線経路パターンBによる配線45に切り替えたい場合に有効である。
〈ラッパーモジュール60のレイアウトデータの応用例〉
通常、汎用マクロとしてハードマクロ40を設計する際には、LSIチップの設計状況を確認できないため、動作不具合の原因となる電圧降下の影響を見積もることが困難である。このような場合、ハードマクロ40への電圧降下による影響を抑制するレイアウトデータの作成が望まれる。
図19に、ハードマクロ40の外周に電源配線(強化電源リングともいう)90を設けたラッパーモジュール60のレイアウトデータを示す。図19に示すように、ハードマクロ40を囲むように電源配線90が設けられており、ハードマクロ40に対する電圧源が強化されている。また、図19に示すハードマクロ40及びバッファ42は、図12で説明したハードマクロ40及びバッファ42と同様の構成である。このように、予めハードマクロ40の外周に電源配線90を設けたレイアウトデータを作成することにより、ハードマクロ40への電圧降下による影響を抑制することが可能である。
なお、図10から図19では、クロックバッファ43については言及していないが、ラッパーモジュール60はクロックバッファ43を備えていてもよい。すなわち、クロックバッファ43をハードマクロ40の外部端子41に対して近接配置させてもよい。この場合、バッファ42のうちのいずれかをクロックバッファ43に替えてもよい。
〈コンピュータ読み取り可能な記録媒体〉
コンピュータに上記いずれかの機能を実現させるプログラムをコンピュータが読み取り可能な記録媒体に記録することができる。そして、コンピュータに、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。ここで、コンピュータ読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータから読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータから取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、DAT、8mmテープ、メモリカード等がある。また、コンピュータに固定された記録媒体としてハードディスクやROM等がある。
以下に本発明の諸態様を付記としてまとめる。
(付記1)
コンピュータによる設計に用いられる半導体集積回路の設計データの作成方法であって、
コンピュータが、
回路ブロックの形状情報、端子位置情報及びタイミング情報が記述された回路ブロックライブラリを作成するステップと、
前記回路ブロック及び前記回路ブロックに接続するユニットセルを有するモジュール回路の接続情報が記述されたネットリストを作成するステップと、
前記ユニットセルの形状情報、端子位置情報及びタイミング情報が記述されたユニットセルライブラリ、前記回路ブロックライブラリ及び前記ネットリストを使用して、前記回路ブロックが配置される回路ブロック配置領域と前記ユニットセルが配置されるユニットセル配置領域とが所定状態で設けられている前記モジュール回路のレイアウトデータを作成するステップと、を実行し、
前記回路ブロックライブラリは、前記回路ブロック配置領域と前記ユニットセル配置領域とが所定状態で設けられている場合の前記回路ブロックのタイミング情報が記述されている半導体集積回路の設計データの作成方法。
(付記2)
前記回路ブロックライブラリは、前記回路ブロック配置領域と前記ユニットセル配置領域とが近接した状態で設けられている場合の前記回路ブロックのタイミング情報が記述されている付記1に記載の半導体集積回路の設計データの作成方法。
(付記3)
前記ユニットセル配置領域は、前記回路ブロック配置領域の周囲に設けられている付記1または2に記載の半導体集積回路の設計データの作成方法。
(付記4)
前記レイアウトデータは、前記回路ブロックに電源を供給するための電源配線領域が更に設けられている付記1から3の何れか一項に記載の半導体集積回路の設計データの作成方法。
(付記5)
前記レイアウトデータは、前記回路ブロックと前記ユニットセルとを結ぶ配線が更に設けられ、
前記ユニットセル配置領域は、前記配線の伸長方向に設けられている付記1から4の何れか一項に記載の半導体集積回路の設計データの作成方法。
(付記6)
前記ユニットセル配置領域は、展開可能である付記1から5の何れか一項に記載の半導体集積回路の設計データの作成方法。
(付記7)
前記ユニットセル配置領域は、前記回路ブロックの形状及び端子位置に応じて設けられている付記1から6の何れか一項に記載の半導体集積回路の設計データの作成方法。
本設計支援装置を実現するためのコンピュータのハードウェア構成を示す図である。 本設計支援装置の機能ブロック図である。 本設計支援装置が実行する提供データ作成処理の流れを示すフローである。 ハードマクロ及びバッファの配置例を示す図である。 ハードマクロのタイミングライブラリが参照される場合におけるタイミングテーブルの参照箇所の説明図である。 ハードマクロ及びバッファの配置例を示す図である。 ハードマクロのタイミングライブラリが参照される場合におけるタイミングテーブルの参照箇所の説明図である。 ハードマクロ及びバッファの配置例を示す図である。 ハードマクロのタイミングライブラリが参照される場合におけるタイミングテーブルの参照箇所の説明図である。 ラッパーモジュールのネットリストの例を示す図である。 ラッパーモジュールのネットリストに記述されるラッパーモジュールの概念図である。 ラッパーモジュールのレイアウトデータの例を示す図である。 ラッパーモジュールのレイアウトデータの例を示す図である。 ラッパーモジュールのパターン例についての説明図である。 ラッパーモジュールのパターン例についての説明図である。 LSIチップ上におけるラッパーモジュールの配置についての説明図である。 LSIチップ上におけるラッパーモジュールの配置についての説明図である。 ハードマクロの外部端子とバッファとを接続する場合のパターンを示す図である。 ハードマクロの外周に電源配線を設けたラッパーモジュールのレイアウトデータを示す図である。
符号の説明
1 コンピュータ
2 CPU
3 メモリ
4 インターフェース
5 ハードディスク駆動装置
6 可搬媒体駆動装置
7 入力装置
8 表示装置
11 操作部
12 格納部
13 レイアウト部
14 検証部
15 ライブラリ作成部
16 ライブラリ検証部
17 外部端子抽出部
18 ネットリスト作成部
19 タイミング規格抽出部
20 タイミング規格算出部
21 タイミング規格比較部
30 ネットリストデータベース
31 ライブラリデータベース
32 レイアウトデータベース

Claims (5)

  1. コンピュータによる設計に用いられる半導体集積回路の設計データの作成方法であって、
    コンピュータが、
    回路ブロックの形状情報、端子位置情報及びタイミング情報が記述された回路ブロックライブラリを作成するステップと、
    前記回路ブロック及び前記回路ブロックに接続するユニットセルを有するモジュール回路の接続情報が記述されたネットリストを作成するステップと、
    前記ユニットセルの形状情報、端子位置情報及びタイミング情報が記述されたユニットセルライブラリ、前記回路ブロックライブラリ及び前記ネットリストを使用して、前記回路ブロックが配置される回路ブロック配置領域と前記ユニットセルが配置されるユニットセル配置領域とが所定状態で設けられている前記モジュール回路のレイアウトデータを作成するステップと、を実行し、
    前記回路ブロックライブラリは、前記回路ブロック配置領域と前記ユニットセル配置領域とが所定状態で設けられている場合の前記回路ブロックのタイミング情報が記述されている半導体集積回路の設計データの作成方法。
  2. 前記回路ブロックライブラリは、前記回路ブロック配置領域と前記ユニットセル配置領域とが近接した状態で設けられている場合の前記回路ブロックのタイミング情報が記述されている請求項1に記載の半導体集積回路の設計データの作成方法。
  3. 前記ユニットセル配置領域は、前記回路ブロック配置領域の周囲に設けられている請求項1または2に記載の半導体集積回路の設計データの作成方法。
  4. 前記レイアウトデータは、前記回路ブロックに電源を供給するための電源配線領域が更に設けられている請求項1から3の何れか一項に記載の半導体集積回路の設計データの作成方法。
  5. 前記レイアウトデータは、前記回路ブロックと前記ユニットセルとを結ぶ配線が更に設けられ、
    前記ユニットセル配置領域は、前記配線の伸長方向に設けられている請求項1から4の何れか一項に記載の半導体集積回路の設計データの作成方法。
JP2008083324A 2008-03-27 2008-03-27 半導体集積回路の設計データの作成方法 Pending JP2009237904A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008083324A JP2009237904A (ja) 2008-03-27 2008-03-27 半導体集積回路の設計データの作成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008083324A JP2009237904A (ja) 2008-03-27 2008-03-27 半導体集積回路の設計データの作成方法

Publications (1)

Publication Number Publication Date
JP2009237904A true JP2009237904A (ja) 2009-10-15

Family

ID=41251775

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008083324A Pending JP2009237904A (ja) 2008-03-27 2008-03-27 半導体集積回路の設計データの作成方法

Country Status (1)

Country Link
JP (1) JP2009237904A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011107967A (ja) * 2009-11-17 2011-06-02 Fujitsu Semiconductor Ltd 設計検証装置、設計検証方法及び設計検証プログラム
JP2011170771A (ja) * 2010-02-22 2011-09-01 Renesas Electronics Corp 半導体集積回路及びそのタイミング調整方法
JP2014038471A (ja) * 2012-08-15 2014-02-27 Fujitsu Semiconductor Ltd レイアウトモデル作成装置
CN116306466A (zh) * 2023-05-18 2023-06-23 北京紫光青藤微系统有限公司 一种版图布局方法及版图结构

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011107967A (ja) * 2009-11-17 2011-06-02 Fujitsu Semiconductor Ltd 設計検証装置、設計検証方法及び設計検証プログラム
JP2011170771A (ja) * 2010-02-22 2011-09-01 Renesas Electronics Corp 半導体集積回路及びそのタイミング調整方法
JP2014038471A (ja) * 2012-08-15 2014-02-27 Fujitsu Semiconductor Ltd レイアウトモデル作成装置
CN116306466A (zh) * 2023-05-18 2023-06-23 北京紫光青藤微系统有限公司 一种版图布局方法及版图结构

Similar Documents

Publication Publication Date Title
CN107066681B (zh) 集成电路和制造集成电路的计算机实现方法
US8527930B2 (en) Generating and using route fix guidance
US10713410B2 (en) Method for legalizing mixed-cell height standard cells of IC
US11036913B2 (en) Integrated circuit methods using single-pin imaginary devices
KR102718979B1 (ko) Beol을 고려하여 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템
KR102419645B1 (ko) 집적 회로를 설계하기 위한 컴퓨터 구현 방법, 컴퓨팅 시스템, 및 집적 회로의 제조 방법
US20110239178A1 (en) Layout design apparatus, layout design method, and computer readable medium having a layout design program
JP2009237904A (ja) 半導体集積回路の設計データの作成方法
US9892226B2 (en) Methods for providing macro placement of IC
US20230237228A1 (en) Computer readable recording medium with stored program and method of extracting parasitic parameters of a 3d ic thereof
KR20170094744A (ko) 집적 회로 및 상기 집적 회로의 제조를 위한 컴퓨터 구현 방법
CN114444426A (zh) 芯片设计方法、装置、存储介质及电子设备
US8418116B2 (en) Zone-based optimization framework for performing timing and design rule optimization
EP4220471A1 (en) Method of designing layout of semiconductor integrated circuit and design system performing same
JP6316311B2 (ja) パターンベースの電源グランド(pg)ルーティングおよびビア生成
KR102451155B1 (ko) 반도체 장치의 설계 방법 및 시스템
US11126768B2 (en) Methods of designing semiconductor devices, design systems performing the same and methods of manufacturing semiconductor devices using the same
US8132141B2 (en) Method and apparatus for generating a centerline connectivity representation
US10970452B2 (en) System for designing semiconductor circuit and operating method of the same
JP2009134439A (ja) ソフトマクロを用いたレイアウト設計方法、ソフトマクロのデータ構造及びソフトマクロライブラリの作成方法
KR102788878B1 (ko) 반도체 장치의 제조 방법
US11092885B2 (en) Manufacturing methods of semiconductor devices
US20140033153A1 (en) Method For Assisting in Logic Circuit Design to Place Cells on IC Substrate and Optimize Wiring, Device For Assisting in Logic Circuit Design Using This Method, and Computer Program Executable By This Device
KR20230125436A (ko) 반도체 집적 회로의 레이아웃 설계 방법 및 이를 수행하는 설계 시스템
KR20230005671A (ko) 집적 회로의 레이아웃 생성 방법