JP5299198B2 - 設計支援プログラム、設計支援装置、および設計支援方法 - Google Patents

設計支援プログラム、設計支援装置、および設計支援方法 Download PDF

Info

Publication number
JP5299198B2
JP5299198B2 JP2009223871A JP2009223871A JP5299198B2 JP 5299198 B2 JP5299198 B2 JP 5299198B2 JP 2009223871 A JP2009223871 A JP 2009223871A JP 2009223871 A JP2009223871 A JP 2009223871A JP 5299198 B2 JP5299198 B2 JP 5299198B2
Authority
JP
Japan
Prior art keywords
arrangement position
cell
terminal
connection line
layout data
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
JP2009223871A
Other languages
English (en)
Other versions
JP2011076154A (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.)
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 JP2009223871A priority Critical patent/JP5299198B2/ja
Priority to US12/892,481 priority patent/US8584069B2/en
Publication of JP2011076154A publication Critical patent/JP2011076154A/ja
Application granted granted Critical
Publication of JP5299198B2 publication Critical patent/JP5299198B2/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、レイアウトデータの設計を支援する設計支援プログラム、設計支援装置、設計支援方法、半導体素子、およびマクロに関する。
従来、半導体集積回路のレイアウトでは、歩留まりの向上化やばらつきの低減化を図るためにトランジスタを形成するゲートの向きやピッチが揃えられて配置されている(下記特許文献1参照。)。
マスタースライス方式では、ゲートの向きやピッチを変えずに四方から配線が可能な構造が知られている(下記特許文献2,3参照。)。スタンダードセル方式では、マスタースライス方式とは異なりマクロを利用することができる。マクロは、半導体集積回路内で設計者により所望の場所に縦向きや横向きに配置される。したがって、縦向きのマクロが横向きに配置されるとマクロ内のゲートの向きが変わってしまうため、縦向きのマクロと横向きのマクロの2種類のマクロがあらかじめ用意されていた。
特開平04−163963号公報 特開昭58−166742号公報 特許第3275313号公報
しかしながら、従来のスタンダードセル方式では、利用者がマクロの向きに応じて2種類のマクロをそれぞれ設計しなければならなかった。従来では、2種類のマクロのうち、一方のマクロから他方のマクロへセルの配置位置およびセル間の接続線の配置位置を単に座標変換すると図23に示すような問題点があった。
図23は、従来例を示す説明図である。従来例1では、縦向きに配置されているマクロが、単に縦向きから横向きに変換されると、配線の接続関係は維持されるが、マクロ内に配置されているセルの向きが変わってしまう問題点があった。従来例2では、縦向きに配置されているマクロ内に用いられる各セルが、セルの向きが維持されるように変換されるとセル間の接続関係が変わってしまう(丸印で囲われた箇所)問題点があった。したがって、従来では、上述したように同一機能であっても縦向きのマクロと横向きのマクロの2種類のマクロをそれぞれ設計しなければならず、利用者(設計者)の手間が発生する問題点があった。
本発明の一観点によれば、複数の向きで配置されるマクロ内で用いられるセルのレイアウトデータから、前記セルの端子の配置位置を第1の端子の配置位置として検出する検出手段と、前記複数の向きのうち、前記第1の端子が用いられる一の向きと異なる他の向きで用いられる前記セルの第2の端子の配置位置を、前記一の向きから前記他の向きへの変化量と前記検出手段により検出された第1の端子の配置位置に基づいて算出する算出手段と、前記算出手段により算出された第2の端子の配置位置と、前記第1の端子の配置位置と、前記レイアウトデータと、を関連付ける関連付け手段と、前記関連付け手段により関連付けられた関連付け結果を出力する出力手段と、を備える設計支援装置が提供される。
開示の本設計支援プログラム、設計支援装置、および設計支援方法によれば、マクロの向きを変化させても、マクロ内に配置されているセルの向きおよびセル間の接続関係を維持可能とし、向きの異なるマクロの生成を容易化できるという効果を奏する。
実施の形態1の一例を示す説明図である。 セルのレイアウトデータの一例を示す説明図である。 実施の形態1にかかる設計支援装置のハードウェア構成を示すブロック図である。 実施の形態1にかかる設計支援装置の機能的構成を示すブロック図である。 検出結果と算出結果の一例を示す説明図である。 接続結果を示す説明図である。 設計支援装置400による設計支援処理手順の一例を示すフローチャートである。 実施の形態2にかかる設計支援装置の機能的構成を示すブロック図である。 第1のセル配置位置および第1の接続線配置位置が検出される具体例を示す説明図である。 セル1の第2のセル配置位置が算出される具体例を示す説明図である。 平行移動処理によりセル1が再配置される具体例を示す説明図である。 接続線1の第2の接続線配置位置が算出される具体例を示す説明図である。 回転移動処理により接続線1が再配置される具体例を示す説明図である。 移動処理後のレイアウトデータの出力例を示す説明図である。 設計支援装置800による設計支援処理手順の一例を示すフローチャートである。 第1の端子と第2の端子を備えるインバータの例を示す説明図である。 第1の端子がインバータの中心位置に配置されている例を示す説明図である。 第1の端子と第2の端子を備える2入力のNANDの例を示す説明図である。 第1の端子がNANDの中心位置に配置されている例を示す説明図である。 第1の端子と第2の端子を備える抵抗素子の例を示す説明図である。 第1の端子と第2の端子を備える容量素子の例を示す説明図である。 縦向きのマクロと横向きのマクロを示す説明図である。 従来例を示す説明図である。
以下に添付図面を参照して、本発明にかかる設計支援プログラム、設計支援装置、設計支援方法、半導体素子、およびマクロの好適な実施の形態を詳細に説明する。
まず、実施の形態1では、縦向きと横向きで配置されるマクロ内で用いられ、縦向きで用いられる第1の端子の配置位置と縦向きから横向きへの変化量に基づいて、横向きで用いられる第2の端子の配置位置を自動で特定する例を示す。さらに、第2の端子の配置位置へ端子を自動で挿入し、第1の端子と接続することで、第1の端子と第2の端子とを備えるセルを自動で生成する例を示す。
つぎに、実施の形態2では、実施の形態1で生成された複数のセルが配置されている縦向きのマクロから、横向きのマクロを自動で生成する例を示す。
そして、実施の形態3では、縦向きと横向きで配置されるマクロ内で用いられ、縦向きでは第1の端子を用い、横向きでは第2の端子を用いる半導体素子について説明する。
最後に、実施の形態4では、実施の形態3で示す複数の半導体素子が配置されているマクロについて説明する。
(実施の形態1)
図1は、実施の形態1の一例を示す説明図である。まず、<1>設計支援装置は、複数の向きで配置されるマクロ内で用いられるセルのレイアウトデータから、セルの端子の配置位置を第1の端子の配置位置として検出する。図1では、入力信号が外部から入力されるINの第1の端子の配置位置と、出力信号を出力するOUTの第1の端子の配置位置とが検出される。本実施の形態では、端子として所定層のビアが検出される。レイアウトデータの中心位置を原点(0,0)として、INの第1の端子の配置位置は、(−a,0)であり、OUTの第1の端子の配置位置は、(a,0)である。
そして、<2>設計支援装置は、複数の向きのうち、第1の端子が用いられる一の向きと異なる他の向きで用いられるセルの第2の端子の位置を、一の向きから他の向きへの変化量と第1の端子の配置位置に基づいて算出する。
ここで、マクロの向きについて説明する。まず、レイアウト設計では、レイアウト設計を実施するためのツールによりあらかじめレイアウトデータ上には、X軸やY軸が指定されている。そして、指定されたX軸とY軸の座標を用いて配線や素子の配置位置が決定されている。本実施の形態では、縦がレイアウトデータ上のY軸方向を示し、横がレイアウトデータ上のX軸を示している。そして、本実施の形態では、マクロの縦方向の長さが横方向の長さよりも長い場合、縦向きのマクロ(または、縦向きに配置されているマクロ)と定義し、横方向の長さが長い場合、横向きのマクロ(または、横向きに配置されているマクロ)と定義している。マクロの向きが縦向きと横向きのみの場合、第1の端子の配置位置からレイアウトデータの中心位置を中心にして90度回転させた位置が第2の端子の配置位置である。
つぎに、<3>設計支援装置は、第1の端子の配置位置と、第2の端子の配置位置と、セルのレイアウトデータとを関連付ける。具体的には、第1の端子の配置位置と第2の端子の配置位置とを図1に示すような表として関連付け、表にレイアウトデータを関連付けてもよい。そして、設計支援装置は、関連付けられた関連付け結果を出力する。
さらに、設計支援装置が、第2の端子の配置位置に端子を挿入する。具体的には、所定のビア層のビアが第2の端子の配置位置に挿入される。そして、設計支援装置が、第1の端子と第2の端子とを接続する。これにより、一の向きと他の向きとの2種類の向きでのマクロを容易に作成することができる。
(セルのレイアウトデータ)
図2は、セルのレイアウトデータの一例を示す説明図である。実施の形態1では、セルのレイアウトデータの一例としてインバータのレイアウトデータ200を用いる。まず、図2では、回路シンボルで示すようにインバータの入力端子が、INであり、出力端子が、OUTである。インバータでは、INに入力された信号が反転されてOUTから出力される。
そして、レイアウトデータ200では、拡散層の領域と、Poly(Polyimide)層のゲートと、LA層の配線と、LB層の配線と、NA層のビアと、NB層のビアと、NC層のビアとにより形成されている。拡散層の領域とLA層の配線は、NA層のビアを介して接続され、Poly層のゲートとLA層の配線は、NA層のビアを介して接続され、LA層の配線とLB層の配線は、NB層のビアを介して接続される。本実施の形態では、セルの境界を示すセル枠(セルの外周)は、すべて正方形である。インバータのトランジスタレベルの回路は公知であり、さらに、当該トランジスタレベルの回路を実現するレイアウトデータ200は、公知であるため説明を省略する。そして、本実施の形態では、NC層のビアが、端子である。図2では、INの第1の端子と、OUTの第1の端子が示されている。なお、本実施の形態1では、セルの中心位置が原点である。
さらに、理解の容易化のために矢印A方向からのレイアウトデータ200の3次元イメージ図を示す。なお、最下層に記載の白いブロックが、拡散層の領域である。従来では、INの第1の端子が外部(たとえば、他のセル)からの接続線であるLB層よりも上層の配線と接続され、INの第1の端子を介して外部から信号がインバータに入力される。そして、OUTの第1の端子が、外部からの接続線であるLB層よりも上層の配線と接続され、インバータからOUTの第1の端子を介して外部へ信号が出力される。
なお、レイアウトデータ200は、コンピュータがアクセス可能な記憶装置に記憶されている。
(設計支援装置のハードウェア構成)
図3は、実施の形態1にかかる設計支援装置のハードウェア構成を示すブロック図である。図3において、設計支援装置は、CPU(Central Processing Unit)301と、ROM(Read‐Only Memory)302と、RAM(Random Access Memory)303と、磁気ディスクドライブ304と、磁気ディスク305と、光ディスクドライブ306と、光ディスク307と、ディスプレイ308と、I/F(Interface)309と、キーボード310と、マウス311と、スキャナ312と、プリンタ313と、を備えている。また、各構成部はバス300によってそれぞれ接続されている。
ここで、CPU301は、設計支援装置の全体の制御を司る。ROM302は、ブートプログラムなどのプログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。磁気ディスクドライブ304は、CPU301の制御にしたがって磁気ディスク305に対するデータのリード/ライトを制御する。磁気ディスク305は、磁気ディスクドライブ304の制御で書き込まれたデータを記憶する。
光ディスクドライブ306は、CPU301の制御にしたがって光ディスク307に対するデータのリード/ライトを制御する。光ディスク307は、光ディスクドライブ306の制御で書き込まれたデータを記憶したり、光ディスク307に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ308は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。当該ディスプレイ308は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F309は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク314に接続され、このネットワーク314を介して他の装置に接続される。そして、I/F309は、ネットワーク314と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F309には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード310は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス311は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ312は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ312は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ313は、画像データや文書データを印刷する。プリンタ313には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(実施の形態1にかかる設計支援装置の機能的構成)
図4は、実施の形態1にかかる設計支援装置の機能的構成を示すブロック図である。設計支援装置400は、検出部401と、算出部402と、関連付け部403と、挿入部404と、接続部405、出力部406と、を含む構成である。各機能(検出部401〜出力部406)は、具体的には、たとえば、図3に示したROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F309により、各機能を実現する。
まず、検出部401は、複数の向きで配置されるマクロ内で用いられるセルのレイアウトデータから、セルの端子の配置位置を第1の配置位置として検出する機能を有する。ここでは、レイアウトデータにあらかじめ配置されているセルの端子を、第1の端子とし、あらたに挿入される端子を第2の端子と称する。検出部401は、図1にて示した<1>の機能である。具体的には、たとえば、検出部401が、レイアウトデータ200の中心位置を原点(0,0)として、INの第1の端子の配置位置である(−a,0)と、OUTの第1の端子の配置位置である(a,0)を検出する。
また、第1の端子の配置位置がセルの中心位置の場合、複数の向きで第1の端子を用いることができるため、あらたな端子が不要であるため、後述する算出部402〜接続部405による処理が不要である。
そして、算出部402は、複数の向きのうち、第1の端子が用いられる一の向きと異なる他の向きで用いられるセルの第2の端子の配置位置を、一の向きから他の向きへの変化量と検出部401により検出された第1の端子の配置位置に基づいて算出する機能を有する。算出部402は、図1にて示した<2>の機能である。
具体的には、たとえば、算出部402が、INの第1の端子の配置位置に基づいて、INの第2の端子の配置位置を算出する。本実施の形態では、マクロの向きが縦向きと横向きであるため、算出部402が、第1の端子の配置位置に基づいて、第1の端子の配置位置から原点を中心にして90度回転させた位置をINの第2の端子の配置位置として算出する。具体的には、算出部402が、下記式(1)に第1の端子の配置位置を代入することで第1の端子の配置位置から90度回転させた位置を算出する。
Figure 0005299198
よって、ベクトルPが第1の端子の配置位置であり、第1の端子の配置位置がP(x,y)の場合、第2の端子の配置位置は、P’(−y,x)である。図にて算出結果を示す。
図5は、検出結果と算出結果の一例を示す説明図である。図5では、レイアウトデータ200が簡略化され、各端子の配置位置のみが示されている。まず、検出結果では、INの第1の端子の配置位置としてP1(−a,0)が検出され、OUTの第1の端子位置として、P2(a,0)が検出されている。
つぎに、算出結果では、P1(−a,0)からセルの中心位置を中心にして90度回転させたP1’(0,−a)がINの第2の端子の配置位置として算出されている。そして、算出結果では、P2(a,0)から90度回転させた位置であるP2’(0,a)がOUTの第2の端子の配置位置として算出される。なお、算出結果は、一旦、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶される。
つぎに、関連付け部403は、算出部402により算出された第2の端子の配置位置と、第1の端子の配置位置と、レイアウトデータ200とを関連付ける機能を有する。関連付け部403は、図1にて示した<3>の機能である。具体的には、たとえば、関連付け部403が、レイアウトデータ200と、第1の端子の配置位置と、第2の端子の配置位置と、を有する表を生成する。表の一例は、図1にて示しているため、説明を省略する。
そして、出力部406は、関連付け部403により関連付けられた関連付け結果を出力する機能を有する。具体的には、たとえば、上述した表を出力する。出力形式としては、たとえば、ディスプレイ308への表示、プリンタ313への印刷出力、I/F309による外部装置への送信がある。また、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶することとしてもよい。
つぎに、挿入部404は、レイアウトデータ200と関連付け部403により関連付けられている第2の端子の配置位置ごとに、レイアウトデータ200内の第2の端子の配置位置へ端子を挿入する機能を有する。具体的には、たとえば、挿入部404が、第2の端子の配置位置ごとに、レイアウトデータ200内の第2の端子の配置位置へNC層のビアを挿入する。
そして、接続部405は、挿入部404により第2の端子が挿入された第2の端子の配置位置と、第2の端子の配置位置に関連付けられている第1の端子の配置位置に基づいて、第1の端子と第2の端子とを接続する機能を有する。具体的には、たとえば、接続部405が、INの第1の端子であるNC層のビアとINの第2の端子であるNC層のビアとを、LB層の配線と、NB層のビアと、LA層の配線を介して接続する。そして、OUTの第1の端子であるNC層のビアとOUTの第2の端子であるNC層のビアとを、LB層の配線と、NB層のビアと、LA層の配線を介して接続する。
なお、CPU301が実行可能な自動配置配線ツールへ関連付け結果を与え、CPU301が自動配置配線ツールを実行することで挿入部404と接続部405の処理を実現してもよい。
図6は、接続結果を示す説明図である。レイアウトデータ600では、第2の端子が挿入されて、それぞれの第1の端子と接続されている。矢印A方向からのレイアウトデータ600の3次元イメージ図では、NC層よりも下層の配線層であるLA層の配線を介して、INの第1の端子とINの第2の端子とが接続され、OUTの第1の端子とOUTの第2の端子が接続されている。
(設計支援装置400の設計支援処理手順)
図7は、設計支援装置400による設計支援処理手順の一例を示すフローチャートである。まず、複数の向きで配置されるマクロ内に配置されるセルのレイアウトデータを記憶装置から取得し(ステップS701)、検出部401により、セルの第1の端子の配置位置を検出する(ステップS702)。ここでは、レイアウトデータからセル内の端子ごとに、端子の配置位置が第1の端子の配置位置として検出される。
つぎに、未選択の第1の端子があるか否かを判断する(ステップS703)。未選択の第1の端子があると判断された場合(ステップS703:Yes)、未選択の第1の端子から1つの第1の端子を選択する(ステップS704)。
そして、第1の端子の配置位置が原点(セルの中心位置)か否かを判断する(ステップS705)。原点(セルの中心位置)であると判断された場合(ステップS705:Yes)、出力部406により、第1の端子と第2の端子が共通であることを出力し(ステップS706)、ステップS703へ戻る。第1の端子が原点(セルの中心位置)の場合、第1の端子と第2の端子の位置が同一となるため、算出部402〜接続部405による処理は不要である。
一方、原点(セルの中心位置)でないと判断された場合(ステップS705:No)、算出部402により、第1の端子の配置位置に基づいて第2の端子の配置位置を算出する(ステップS707)。そして、第2の端子の配置位置が他の端子の配置位置と重なるか否かを判断し(ステップS708)、重なると判断された場合(ステップS708:Yes)、他の端子と重なることを出力し(ステップS709)、ステップS703へ戻る。
一方、ステップS708において、重ならないと判断された場合(ステップS708:No)、関連付け部403により、第1の端子の配置位置と、第2の端子の配置位置と、レイアウトデータとを、関連付ける(ステップS710)。そして、挿入部404により、第2の端子の配置位置に端子を挿入する(ステップS711)。具体的には、所定ビア層のビアが挿入される。そして、第1の端子と第2の端子とを、指定された端子層より下層である配線層の配線を介して接続し(ステップS712)、ステップS703へ戻る。
一方、未選択の第1の端子がないと判断された場合(ステップS703:No)、出力部406により、出力処理を実行し(ステップS713)、一連の処理を終了する。
(実施の形態2)
つぎに、実施の形態2について説明する。実施の形態2では、第1の端子と第2の端子とを備えるセルが、マクロの向きに応じて何れか一方のビアを用いて設計されたマクロを、他の向きに変換させる。実施の形態2では、マクロを縦向きから横向きに自動で変換する。これにより、マクロ内に配置されているセルの向きが維持され、かつ配線の接続関係が維持される。なお、実施の形態2では、実施の形態1で示した構成と同一構成については同一符号を付し、説明を省略する。
(実施の形態2にかかる設計支援装置の機能的構成)
図8は、実施の形態2にかかる設計支援装置の機能的構成を示すブロック図である。設計支援装置800は、検出部801と、算出部802と、平行移動部803と、回転移動部804と、出力部805と、を含む構成である。各機能(検出部801〜出力部805)は、具体的には、たとえば、図3に示したROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F309により、実現する。まず、設計支援装置800の設計支援対象となるマクロのレイアウトデータの一例と検出部801について図9を用いて説明する。
図9は、第1のセル配置位置および第1の接続線配置位置が検出される具体例を示す説明図である。まず、設計支援装置800の設計支援対象であるマクロのレイアウトデータ900について説明する。レイアウトデータ900では、1目盛りがaである。レイアウトデータ900には、縦向きに配置されているマクロであり、縦向きで用いられる第1の端子と、横向きで用いられる第2の端子とを備える複数のセル1〜3が縦向きで配置されている。
各セルの外形(セル枠)は、一の向きの長さと他の向きの長さが同一の長さの形状である。たとえば、外形としては、正方形、円などが挙げられる。本実施の形態2では、セル1〜3のように正方形を用いて説明する。セルの境界を示すセル枠が正方形であり、すべて同一形状である。なお、本実施の形態2では、レイアウトデータ900の原点(0,0)は左下の位置である。
そして、各セル内に配置されているNC層の□が、第1の端子を示し、NC層の○が第2の端子を示している。対となる□(第1の端子)と○(第2の端子)は、NC層よりも下層の配線を介して接続されている。レイアウトデータ900では、□(第1の端子)と○(第2の端子)とのうち、□(第1の端子)を用いてセル間が接続されている。セル1とセル2とを接続線1が接続し、セル1とセル3とを接続線2が接続し、セル2とセル3とを接続線3が接続している。実際には、レイアウトデータ900は、物理情報であり、レイアウトデータ900内には、各セルの配置位置と、各接続線の配置位置が記述されている。接続線1を例に挙げると、接続線1はコの字型であるため、4つの端点の座標がレイアウトデータ900には記述されている。なお、レイアウトデータ900は、CPU301がアクセス可能な記憶装置に記憶されている。
検出部801は、レイアウトデータ900から、セルごとにセルの中心位置を第1のセル配置位置として検出する機能を有する。さらに、検出部801は、当該レイアウトデータ900から、セル間の接続線を第1の接続線配置位置として検出する機能を有する。
具体的には、たとえば、検出部801が、セル1の中心位置であるC1(2a,10a)をセル1の第1のセル配置位置として検出する。さらに、検出部801が、セル2の中心位置であるC2(2a,6a)をセル2の第1のセル配置位置として検出し、セル3の中心位置であるC3(2a,2a)をセル3の第1のセル配置位置として検出する。また、後述する平行移動部803の平行移動処理を実行するために、セル1の場合、セル1の中心位置と共にF1(0,12a)とF2(0,8a)とが検出される。なお、F1とF2に限らず、セルの中心位置とさらに他の少なくとも1つの位置が検出されればよい。
そして、たとえば、検出部801が、レイアウトデータ900から、セル間の接続線ごとに、接続線の配置位置を、第1の接続線配置位置として検出する。接続線1の第1の接続線配置位置が、L1(1a,11a)とL2(1a、7a)である。実際には、接続線1はコの字型であるため、上述したようにレイアウトデータ900には接続線1の情報として端点である4つの座標が記述されている。よって、接続線1の向きを変更するためには、4つの座標をすべて移動させる位置に変換させる必要があるが、後述する算出部802および回転移動部804の処理は、どの位置であっても同一であるため、L1とL2のみを例に挙げて説明する。
接続線2の第1の接続線配置位置が、L3(3a,9a)とL4(1a,3a)であり、接続線3の第1の接続線配置位置が、L5(3a,1a)とL6(3a,5a)である。接続線1と同様に、接続線2では、L3とL4、接続線3では、L5とL6のみでは接続線2と接続線3の向きを変更できないが、後述する算出部802および回転移動部804の処理は、同一であるため、その他の位置を省略して説明する。
図8の説明に戻って、算出部802は、セルごとに、縦向きから横向きへの変化量と検出部801により検出された第1のセル配置位置とに基づいて横向きのマクロでの第2のセル配置位置を算出する。たとえば、算出部802は、第1のセル配置位置に基づいて、セルの指定位置を中心にして第1のセル配置位置から90度回転させた位置を第2のセル配置位置として算出する。ここでは、指定位置が、マクロの原点である。具体的には、たとえば、算出部802が、下記式(2)に第1のセル配置位置を代入することで算出する。
Figure 0005299198
ベクトルCが第1のセル配置位置であり、第1のセル配置位置がC(x,y)の場合、式(2)を用いると第2のセル配置位置は、C’(−y,x)である。図10にて算出結果を示す。
図10は、セル1の第2のセル配置位置が算出される具体例を示す説明図である。図10では、理解の容易化のため、セル間を接続する配線を省略している。セル1の第1のセル配置位置であるC1(2a,10a)から原点を中心にして90度回転させたセル1の第2のセル配置位置は、C1’(−10a,2a)である。図示していないが、セル2の第2のセル配置位置は、C2’(−6a,2a)であり、セル3の第2のセル配置位置は、C3’(−2a,2a)である。
さらに、算出部802は、セルの中心位置を除く他の配置位置の横向きのマクロでの第2のセル配置位置を算出する機能を有する。F1を例に挙げると、具体的には、算出部802が、下記式(3)へセル1の第2のセル配置位置であるC1’と、F1と、C1とを代入することでF1の第2のセル配置位置であるF1’を算出する。
Figure 0005299198
F1とC1との差が、(−2a,2a)であるため、F1’が、(−12a,4a)である。算出部802がF1と同様にF2の第2のセル配置位置であるF2’を算出すると、F2’は、(12a,0)である。なお、セル2とセル3についても、算出部802の処理は同一であるため説明を省略する。
図8に戻って、つぎに、平行移動部803は、セルごとに第1のセル配置位置と算出部802により算出された第2のセル配置位置に基づいて、セルの平行移動処理を実行する機能を有する。図11を用いて平行移動部803の具体的な処理を説明する。
図11は、平行移動処理によりセル1が再配置される具体例を示す説明図である。具体的には、たとえば、平行移動部803が、セル1の第1のセル配置位置をセル1の第2のセル配置位置に変換する。セル1の中心位置が、C1(2a,10a)からC1’(−10a,2a)に変換されている。さらに、たとえば、平行移動部803が、セルの配置位置をF1からF1’に変換し、F2からF2’に変換する。これにより、セル1が、平行移動される。図示しないが、セル2およびセル3もセル1と同様に平行移動部803により平行移動される。
図8に戻って、つぎに、算出部802は、セル間の接続線ごとに、縦向きから横向きへの変化量と検出部801により検出された第1の接続線配置位置に基づいて、横向きでの第2の接続線配置位置を算出する。本実施の形態では、第2の接続線配置位置は、マクロの原点を中心にして第1の接続線配置位置から90度回転させた位置である。具体的には、たとえば、算出部802が、接続線ごとに下記式(4)へ第1の接続線配置位置を代入することで算出する。
Figure 0005299198
上記式(4)に記述されているベクトルLが第1の接続線配置位置であり、第1の接続線配置位置がL(x,y)の場合、第2の接続線配置位置は、L’(−y,x)である。図にて算出結果を示す。
図12は、接続線1の第2の接続線配置位置が算出される具体例を示す説明図である。接続線1の端点であるL1(1a,11a)に基づいて算出されるL1の第2の接続線配置位置が、L1’(−11a,1a)である。そして、接続線1の端点であるL2(1a,7a)に基づいて算出されるL2の第2の接続線配置位置が、L2’(−7a,1a)である。
図8に戻って、回転移動部804は、接続線ごとに第1の接続線配置位置から第2の接続線配置位置へ回転移動処理を実行する機能を有する。
図13は、回転移動処理により接続線1が再配置される具体例を示す説明図である。具体的には、たとえば、回転移動部804が、接続線1のL1をL1’に変換し、接続線のL2をL2’に変換する。図13では、接続線1が、マクロの原点を中心にして90度回転させた位置に再配置されている。なお、図示しないが、接続線1と同様に接続線2と接続線3もマクロの原点を中心にして90度回転させた位置に再配置される。
図14は、移動処理後のレイアウトデータの出力例を示す説明図である。移動処理後のレイアウトデータ1400は、横向きに配置されているマクロである。レイアウトデータ900では、第1の端子(□の端子)が用いられているが、移動処理後のレイアウトデータ1400では、第2の端子(○の端子)が用いられている。そして、レイアウトデータ900と、移動処理後のレイアウトデータ1400とは、配置されている各セルの向きが同一であり、セル間の各接続線の形状が同一である。これにより、マクロの向きが変換されてもセルの向きを維持することができ、かつセル間の接続線を維持することができ、マクロが配置される向きに応じて、利用者が再配線する手間を省くことができる。
図8に戻って、出力部805は、平行移動処理および回転移動処理後のレイアウトデータを出力する。具体的には、たとえば、出力部805が、移動処理後のレイアウトデータ1400を出力する。出力形式としては、たとえば、ディスプレイ308への表示、プリンタ313への印刷出力、I/F309による外部装置への送信がある。また、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶することとしてもよい。
さらに、利用者が、移動処理後のレイアウトデータ1400とマクロのネットリストを用いてLVS(Layout Vs Schematic)を実施することで、マクロ内の配線の接続関係が維持されているかを確認してもよい。
本実施の形態2では、マクロの向きが縦向きの場合、第1の端子を用い、横向きの場合、第2の端子を用いているが、これに限らず、マクロの向きが横向きの場合、第1の端子を用い、縦向きの場合、第2の端子を用いてもよい。本実施の形態では、マクロが縦向きの場合、マクロ内のセルが縦向きであり、マクロが横向きの場合、マクロ内のセルが横向きであるが、これに限らず、マクロ内のセルに用いられているトランジスタの向きが揃っていれば種々変更可能である。
(設計支援装置800による設計支援処理手順)
図15は、設計支援装置800による設計支援処理手順の一例を示すフローチャートである。まず、マクロのレイアウトデータから未選択のセルがあるか否かを判断し(ステップS1501)、未選択のセルがあると判断された場合(ステップS1501:Yes)、未選択のセルから1つのセルを選択する(ステップS1502)。
つぎに、検出部801により、セルの中心位置を第1のセル配置位置として検出し(ステップS1503)、算出部802により、第1のセル配置位置から90度回転させた第2のセル配置位置を算出する(ステップS1504)。そして、平行移動部803により、第1のセル配置位置と第2のセル配置位置に基づいてセルの平行移動処理を実行し(ステップS1505)、ステップS1501に戻る。
一方、ステップS1501において、未選択のセルがないと判断された場合(ステップS1501:No)、検出部801により、レイアウトデータから、未選択の接続線があるか否かを判断する(ステップS1506)。
ステップS1506において、未選択の接続線があると判断された場合(ステップS1506:Yes)、未選択の接続線の中から1つの接続線を選択する(ステップS1507)。そして、検出部801により、接続線の配置位置を第1の接続線配置位置として検出し(ステップS1508)、算出部802により、第1の接続線配置位置から90度回転させた第2の接続線配置位置を算出する(ステップS1509)。
つづいて、回転移動部804により、第1の接続線配置位置と第2の接続線配置位置に基づいて、回転移動処理を実行し(ステップS1510)、ステップS1506へ戻る。これにより、接続線が、第1の接続線配置位置からマクロの原点を中心にして90度回転させた第2の接続線配置位置に再配置される。
一方、ステップS1506において、未選択の接続線がないと判断された場合(ステップS1506:No)、出力処理を実行し(ステップS1511)、一連の処理を終了する。
(実施の形態3)
実施の形態3では、一の向きと他の向きで配置されるマクロ内で用いられる半導体素子であって、一の向きで用いられる第1の端子と他の向きで用いられる第2の端子とを備える半導体素子について説明する。実施の形態3では、インバータと、2入力のNANDと、Poly抵抗と、容量とを、例として図示する。
図16は、第1の端子と第2の端子を備えるインバータの例を示す説明図である。インバータは、入力端子としてINと、出力端子としてOUTを備えている。インバータは、拡散層の領域と、Poly層のゲートと、LA層の配線と、LB層の配線と、NA層のビアと、NB層のビアと、NC層のビアとにより形成されている。インバータの構成については、公知であるため詳細な説明を省略する。まず、インバータでは、INの第1の端子とINの第2の端子を備え、INの第1の端子とINの第2の端子とがLA層の配線を介して接続されている。そして、インバータでは、OUTの第1の端子とOUTの第2の端子を備え、INの第1の端子とINの第2の端子がLA層の配線を介して接続されている。
インバータでは、第1の端子または第2の端子うち、いずれか一方の端子が、外部の信号線に直接接続され、他方の端子が、一方の端子を介してのみ外部の信号線に電気的に接続される。図16では、外部の信号線を示していないが、外部の信号線とは、NC層のビアを介してLB層の配線と接続可能な配線層の配線であり、外部からINに入力される信号やOUTから外部へ出力される信号である。そして、第2の端子の配置位置は、第1の端子の配置位置から、インバータの中心位置を中心にして90度回転させた位置である。
図17は、第1の端子がインバータの中心位置に配置されている例を示す説明図である。図17で示すインバータでは、INの第1の端子の配置位置が、インバータの中心位置に配置されている。セルの中心位置に配置されている場合、INの第1の端子とINの第2の端子とは同一である。
図18は、第1の端子と第2の端子を備える2入力のNANDの例を示す説明図である。NANDは、入力端子としてIN1とIN2を、出力端子としてOUTを有し、IN1、IN2、OUTごとに第1の端子および第2の端子を有している。マクロの向きに基づいて、第1の端子と第2の端子のうち、いずれか一方の端子が、外部の信号線と直接接続される。なお、2入力のNANDの構成については、公知であるため詳細な説明を省略する。
図19は、第1の端子がNANDの中心位置に配置されている例を示す説明図である。図19で示すNANDでは、OUTの第1の端子が、NANDの中心位置に配置されている。第1の端子が中心位置に配置されているため、第1の端子と第2の端子とは、同一である。
図20は、第1の端子と第2の端子を備える抵抗素子の例を示す説明図である。図20に示す抵抗素子は、Poly抵抗素子であり、外部の信号線と接続されるAとBを有し、AおよびBごとに第1の端子および第2の端子を有している。マクロの向きに基づいて、第1の端子と第2の端子のうち、いずれか一方の端子が外部の信号線と直接接続される。なお、抵抗素子の構成については、公知であるため詳細な説明を省略する。
図21は、第1の端子と第2の端子を備える容量素子の例を示す説明図である。容量素子は、外部の信号線と接続されるAとBを有し、AおよびBごとに第1の端子および第2の端子を有している。マクロの向きに基づいて、第1の端子と第2の端子のうち、いずれか一方の端子が外部の信号線と直接接続される。なお、容量の構成については、公知であるため詳細な説明を省略する。
(実施の形態4)
最後に、実施の形態4では、縦向きのマクロと横向きのマクロについて説明する。
図22は、縦向きのマクロと横向きのマクロを示す説明図である。縦向きのマクロと横向きのマクロの2種類のマクロでは、いずれも素子1と素子2と素子3が配置され、素子1〜3が同一向きである。素子1,2,3では、第1の端子(□)と第2の端子(○)とを備えている。そして、縦向きのマクロでは、第1の端子が用いられ、横向きのマクロでは、第2の端子が用いられている。さらに、横向きのマクロと縦向きのマクロでは、素子間を接続する接続線が同一形状である。
以上実施の形態1で説明したように、設計支援プログラム、設計支援装置、および設計支援方法によれば、一の向きで用いるセルの端子の第1の配置位置と一の向きから他の向きへの変化量に基づいて他の向きで用いる端子の第2の配置位置を算出する。そして、第1の配置位置と第2の端子位置を関連付けることにより、マクロが配置される向きを一の向きから他の向きに変化させても、向きおよび接続関係が維持可能なセルを利用者の操作により容易に生成することができる。これにより、向きの異なるマクロの生成の容易化を図ることができる。
また、マクロが配置される向きを変化させても、向きおよび接続関係が維持可能なセルが自動で生成される。したがって、生成されたセルを用いて一の向きで配置されているマクロを利用者の操作により設計することで、他の向きで配置されるマクロを、容易に生成することができ、利用者が、再配線する手間を省くことができる。
また、第1の配置位置から、セルの中心位置を中心にして90度回転させた位置を第2の配置位置として自動で特定して、第1の端子と第2の端子を備えるセルが自動で生成される。したがって、利用者が、マクロの向きに応じてマクロ内のセルを再配線する手間を省くことができる。これにより、マクロが配置される向きが、縦向きから横向きへ、横向きから縦向きへ変更されても、セルの向きおよびセル間の接続関係を維持することができる。
以上実施の形態2で説明したように、設計支援プログラム、設計支援装置、および設計支援方法によれば、一の向きで配置されているマクロ内のセルを平行移動させ、セル間の接続線を回転移動させることで、他の向きで配置されるマクロを自動で生成する。これにより、マクロ内で用いられているセルおよびセル間の接続線が再配置される。したがって、利用者が、他の向きのマクロを再配線する手間を省くことができ、利用者が、横向きと縦向きの2種類のマクロを容易に得ることができる。
また、セルごとにセルの中心位置を、セルの中心位置から90度回転させた位置へ平行移動させ、セル間の接続線ごとに接続線の配置位置を、接続線の配置位置から90度回転させた位置へ回転移動させる。これにより、マクロが配置される向きが変化しても、マクロ内に配置されているセルの向きおよびセル間の接続線が維持される。したがって、向きの異なるマクロを容易に生成することができ、設計者が、向きに応じてマクロを再配線する手間を省くことができる。
また、セルの外形が、一の向きの長さと他の向きの長さが同一長さとなる形状である。これにより、各セルの面積が異なっていても、セルの平行移動およびセル間の接続線の回転移動を容易に実施することができる。
以上実施の形態3で説明した半導体素子では、複数の向きで配置されているマクロに用いられ、一の向きで用いられている半導体素子の第1の端子と、一の向きと異なる他の向きで用いられている半導体素子の第2の端子と、を備える。これにより、同一機能で、配置される向きのみが異なる2種類のマクロでは、半導体素子の向きが同一であり、半導体素子間の接続線が同一形状である。したがって、同一機能で向きが異なる2種類のマクロの特性の差を小さくすることができる。
また、第2の端子の配置位置が、第1の端子の配置位置から半導体素子の中心位置を中心にして90度回転させた位置である。たとえば、縦向きで配置されるマクロと横向きで配置されるマクロのうち、一方の向きのマクロでは、第1の端子を用い、他方の向きのマクロでは、第2の端子を用いる。これにより、2種類のマクロ内の半導体素子の向きを同一とし、かつ半導体素子間の接続線を同一形状とすることができる。
第1の端子の配置位置が半導体素子の中心位置の場合、第1の端子と第2の端子を同一にする。これにより、マクロの向きに関係なく、半導体素子の向きを揃えることができる。
以上実施の形態4で説明したマクロでは、一の向きで用いられる第1の端子と、一の向きと異なる他の向きで用いられる第2の端子とを備える複数のセルが一の向きで配置されている。これにより、向きの異なる2種類のマクロ内に配置されている半導体素子の向きが同一であり、かつ半導体素子間の各接続線が2種類のマクロにおいて同一形状であるため、2種類のマクロの特性の差を小さくすることができる。
なお、本実施の形態1,2で説明した設計支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータを、
複数の向きで配置されるマクロ内で用いられるセルのレイアウトデータから、前記セルの端子の配置位置を第1の配置位置として検出する検出手段、
前記複数の向きのうち、前記第1の配置位置で用いられる一の向きと異なる他の向きで用いられる前記端子の第2の配置位置を、前記一の向きから前記他の向きへの変化量と前記検出手段により検出された第1の配置位置に基づいて算出する算出手段、
前記算出手段により算出された第2の配置位置と、前記第1の配置位置と、前記レイアウトデータとを関連付ける関連付け手段、
前記関連付け手段により関連付けられた関連付け結果を出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
(付記2)前記コンピュータを、
前記関連付け手段により前記レイアウトデータと関連付けられた第2の配置位置ごとに、前記第2の配置位置へ前記端子を挿入する挿入手段、
前記挿入手段により前記第2の配置位置へ挿入された端子と前記第1の配置位置に配置されている端子とを接続する接続手段、として機能させ、
前記出力手段は、
前記接続手段により接続された接続後のセルのレイアウトデータを出力することを特徴とする付記1に記載の設計支援プログラム。
(付記3)前記算出手段は、
前記第1の配置位置から、前記セルの中心位置を中心にして90度回転させた位置を前記セルの第2の配置位置として算出し、
前記関連付け手段は、
前記算出手段により算出された第2の配置位置と、前記第1の配置位置と、前記レイアウトデータとを関連付けることを特徴とする付記1または2に記載の設計支援プログラム。
(付記4)複数の向きで配置されるマクロ内で用いられるセルのレイアウトデータから、前記セルの端子の配置位置を第1の配置位置として検出する検出手段と、
前記複数の向きのうち、前記第1の配置位置で用いられる一の向きと異なる他の向きで用いられる前記端子の第2の配置位置を、前記一の向きから前記他の向きへの変化量と前記検出手段により検出された第1の配置位置に基づいて算出する算出手段と、
前記算出手段により算出された第2の配置位置と、前記第1の配置位置と、前記レイアウトデータとを関連付ける関連付け手段と、
前記関連付け手段により関連付けられた関連付け結果を出力する出力手段と、
を備えることを特徴とする設計支援装置。
(付記5)コンピュータが、
複数の向きで配置されるマクロ内で用いられるセルのレイアウトデータから、前記セルの端子の配置位置を第1の配置位置として検出する検出工程と、
前記複数の向きのうち、前記第1の配置位置で用いられる一の向きと異なる他の向きで用いられる前記端子の第2の配置位置を、前記一の向きから前記他の向きへの変化量と前記検出工程により検出された第1の配置位置に基づいて算出する算出工程と、
前記算出工程により算出された第2の配置位置と、前記第1の配置位置と、前記レイアウトデータとを関連付ける関連付け工程と、
前記関連付け工程により関連付けられた関連付け結果を出力する出力工程と、
を実行することを特徴とする設計支援方法。
(付記6)一の向きで用いられる端子と、前記一の向きと異なる他の向きで用いられる端子とを備える複数のセルが前記一の向きで配置されているマクロのレイアウトデータを用いる設計を支援するコンピュータを、
前記レイアウトデータから、前記セルごとに、前記セルの中心位置を第1のセル配置位置として検出し、前記セル間の接続線ごとに、前記接続線の配置位置を第1の接続線配置位置として検出する検出手段、
前記セルごとに、前記一の向きから前記他の向きへの変化量と前記検出手段により検出された第1のセル配置位置とに基づいて前記他の向きでの第2のセル配置位置を算出し、前記接続線ごとに、前記変化量と前記検出手段により検出された第1の接続線配置位置に基づいて前記他の向きでの第2の接続線配置位置を算出する算出手段、
前記セルごとに、前記第1のセル配置位置と前記算出手段により算出された第2のセル配置位置に基づいて、前記セルの平行移動処理を実行する平行移動手段、
前記接続線ごとに、前記第1の接続線配置位置から前記算出手段により算出された第2の接続線配置位置への前記接続線の回転移動処理を実行する回転移動手段、
前記平行移動処理および前記回転移動処理後のレイアウトデータを出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
(付記7)前記算出手段は、
前記セルごとに、前記第1のセル配置位置から前記マクロの指定位置を中心にして90度回転させた位置を第2のセル配置位置として算出し、前記接続線ごとに、前記第1の接続線配置位置から前記マクロの原点を中心にして90度回転させた位置を第2の接続線配置位置として算出し、
前記平行移動手段は、
前記セルごとに、前記第1のセル配置位置と前記算出手段により算出された第2のセル配置位置に基づいて、前記セルの平行移動処理を実行し、
前記回転移動手段は、
前記接続線ごとに、前記第1の接続線配置位置から前記算出手段により算出された第2の接続線配置位置への前記接続線の回転移動処理を実行することを特徴とする付記6に記載の設計支援プログラム。
(付記8)前記セルの外形が、一の向きの長さと他の向きの長さが同一長さとなる形状であることを特徴とする付記6または7に記載の設計支援プログラム。
(付記9)一の向きで用いられる端子と、前記一の向きと異なる他の向きで用いられる端子とを備える複数のセルが前記一の向きで配置されているマクロのレイアウトデータを用いる設計を支援する設計支援装置であって、
前記レイアウトデータから、前記セルごとに、前記セルの中心位置を第1のセル配置位置として検出し、前記セル間の接続線ごとに、前記接続線の配置位置を第1の接続線配置位置として検出する検出手段と、
前記セルごとに、前記一の向きから前記他の向きへの変化量と前記検出手段により検出された第1のセル配置位置とに基づいて前記他の向きでの第2のセル配置位置を算出し、前記接続線ごとに、前記変化量と前記検出手段により検出された第1の接続線配置位置に基づいて前記他の向きでの第2の接続線配置位置を算出する算出手段と、
前記セルごとに、前記第1のセル配置位置と前記算出手段により算出された第2のセル配置位置に基づいて、前記セルの平行移動処理を実行する平行移動手段と、
前記接続線ごとに、前記第1の接続線配置位置から前記算出手段により算出された第2の接続線配置位置への前記接続線の回転移動処理を実行する回転移動手段と、
前記平行移動処理および前記回転移動処理後のレイアウトデータを出力する出力手段と、
を備えることを特徴とする設計支援装置。
(付記10)一の向きで用いられる端子と、前記一の向きと異なる他の向きで用いられる端子とを備える複数のセルが前記一の向きで配置されているマクロのレイアウトデータを用いる設計を支援するコンピュータが、
前記レイアウトデータから、前記セルごとに、前記セルの中心位置を第1のセル配置位置として検出し、前記セル間の接続線ごとに、前記接続線の配置位置を第1の接続線配置位置として検出する検出工程と、
前記セルごとに、前記一の向きから前記他の向きへの変化量と前記検出工程により検出された第1のセル配置位置とに基づいて前記他の向きでの第2のセル配置位置を算出し、前記接続線ごとに、前記変化量と前記検出工程により検出された第1の接続線配置位置に基づいて前記他の向きでの第2の接続線配置位置を算出する算出工程と、
前記セルごとに、前記第1のセル配置位置と前記算出工程により算出された第2のセル配置位置に基づいて、前記セルの平行移動処理を実行する平行移動工程と、
前記接続線ごとに、前記第1の接続線配置位置から前記算出工程により算出された第2の接続線配置位置への前記接続線の回転移動処理を実行する回転移動工程と、
前記平行移動処理および前記回転移動処理後のレイアウトデータを出力する出力工程と、
を実行することを特徴とする設計支援方法。
(付記11)一の向きで用いられている第1の端子と、
前記第1の端子と電気的に接続され、前記一の向きと異なる他の向きで用いられている第2の端子と、
を備えることを特徴とする半導体素子。
(付記12)前記第2の端子の配置位置が、前記第2の端子と電気的に接続されている前記第1の端子の配置位置から、前記半導体素子の中心位置を中心にして90度回転させた位置であることを特徴とする付記11に記載の半導体素子。
(付記13)複数の向きで用いられる端子が半導体素子の中心位置に配置されていることを特徴とする半導体素子。
(付記14)複数の向きで配置されるマクロであって、
前記複数の向きのうち、一の向きで用いられている第1の端子と、前記複数の向きのうち、前記一の向きと異なる他の向きで用いられ、前記第1の端子と電気的に接続されている第2の端子とを備える複数の半導体素子、を備え、
前記半導体素子が、前記マクロの向きに関わらず前記一の向きで配置されていることを特徴とするマクロ。
200 レイアウトデータ
400 設計支援装置
401 検出部
402 算出部
403 関連付け部
404 挿入部
405 接続部
406 出力部
800 設計支援装置
801 検出部
802 算出部
803 平行移動部
804 回転移動部
805 出力部
900 レイアウトデータ
1400 移動処理後のレイアウトデータ

Claims (9)

  1. コンピュータを、
    複数の向きで配置されるマクロ内で用いられるセルのレイアウトデータから、前記セルの端子の配置位置を第1の配置位置として検出する検出手段、
    前記複数の向きのうち、前記第1の配置位置で用いられる一の向きと異なる他の向きで用いられる前記端子の第2の配置位置を、前記一の向きから前記他の向きへの変化量と前記検出手段により検出された前記第1の配置位置に基づいて算出する算出手段、
    前記算出手段により算出された前記第2の配置位置と、前記第1の配置位置と、前記レイアウトデータとを関連付ける関連付け手段、
    前記関連付け手段により前記レイアウトデータと関連付けられた前記第2の配置位置ごとに、前記第2の配置位置へ前記端子を挿入する挿入手段、
    前記挿入手段により前記第2の配置位置へ挿入された端子と前記第1の配置位置に配置されている端子とを接続する接続手段、
    前記接続手段により接続された接続後のセルのレイアウトデータを出力する出力手段、
    として機能させることを特徴とする設計支援プログラム。
  2. 前記算出手段は、
    前記第1の配置位置から、前記セルの中心位置を中心にして90度回転させた位置を前記セルの第2の配置位置として算出し、
    前記関連付け手段は、
    前記算出手段により算出された前記第2の配置位置と、前記第1の配置位置と、前記レイアウトデータとを関連付けることを特徴とする請求項1に記載の設計支援プログラム。
  3. 複数の向きで配置されるマクロ内で用いられるセルのレイアウトデータから、前記セルの端子の配置位置を第1の配置位置として検出する検出手段と、
    前記複数の向きのうち、前記第1の配置位置で用いられる一の向きと異なる他の向きで用いられる前記端子の第2の配置位置を、前記一の向きから前記他の向きへの変化量と前記検出手段により検出された前記第1の配置位置に基づいて算出する算出手段と、
    前記算出手段により算出された前記第2の配置位置と、前記第1の配置位置と、前記レイアウトデータとを関連付ける関連付け手段と、
    前記関連付け手段により前記レイアウトデータと関連付けられた前記第2の配置位置ごとに、前記第2の配置位置へ前記端子を挿入する挿入手段と、
    前記挿入手段により前記第2の配置位置へ挿入された端子と前記第1の配置位置に配置されている端子とを接続する接続手段と、
    前記接続手段により接続された接続後のセルのレイアウトデータを出力する出力手段と、
    を備えることを特徴とする設計支援装置。
  4. 前記算出手段は、
    前記第1の配置位置から、前記セルの中心位置を中心にして90度回転させた位置を前記セルの第2の配置位置として算出し、
    前記関連付け手段は、
    前記算出手段により算出された前記第2の配置位置と、前記第1の配置位置と、前記レイアウトデータとを関連付けることを特徴とする請求項3に記載の設計支援装置。
  5. コンピュータが、
    複数の向きで配置されるマクロ内で用いられるセルのレイアウトデータから、前記セルの端子の配置位置を第1の配置位置として検出する検出工程と、
    前記複数の向きのうち、前記第1の配置位置で用いられる一の向きと異なる他の向きで用いられる前記端子の第2の配置位置を、前記一の向きから前記他の向きへの変化量と前記検出工程により検出された前記第1の配置位置に基づいて算出する算出工程と、
    前記算出工程により算出された前記第2の配置位置と、前記第1の配置位置と、前記レイアウトデータとを関連付ける関連付け工程と、
    前記関連付け工程により前記レイアウトデータと関連付けられた前記第2の配置位置ごとに、前記第2の配置位置へ前記端子を挿入する挿入工程と、
    前記挿入工程により前記第2の配置位置へ挿入された端子と前記第1の配置位置に配置されている端子とを接続する接続工程と、
    前記接続工程により接続された接続後のセルのレイアウトデータを出力する出力工程と、
    を実行することを特徴とする設計支援方法。
  6. 前記算出工程は、
    前記第1の配置位置から、前記セルの中心位置を中心にして90度回転させた位置を前記セルの第2の配置位置として算出し、
    前記関連付け工程は、
    前記算出工程により算出された前記第2の配置位置と、前記第1の配置位置と、前記レイアウトデータとを関連付けることを特徴とする請求項5に記載の設計支援方法。
  7. コンピュータを、
    一の向きで用いられる端子と、前記一の向きと異なる他の向きで用いられる端子とが接続された複数のセルが前記一の向きで配置されているマクロのレイアウトデータから、前記セルごとに、前記セルの中心位置を第1のセル配置位置として検出し、前記セル間の接続線ごとに、前記接続線の配置位置を第1の接続線配置位置として検出する検出手段、
    前記セルごとに、前記一の向きから前記他の向きへの変化量と前記検出手段により検出された前記第1のセル配置位置とに基づいて前記他の向きでの第2のセル配置位置を算出し、前記接続線ごとに、前記変化量と前記検出手段により検出された前記第1の接続線配置位置に基づいて前記他の向きでの第2の接続線配置位置を算出する算出手段、
    前記セルごとに、前記第1のセル配置位置と前記算出手段により算出された前記第2のセル配置位置に基づいて、前記セルの平行移動処理を実行する平行移動手段、
    前記接続線ごとに、前記第1の接続線配置位置から前記算出手段により算出された前記第2の接続線配置位置への前記接続線の回転移動処理を実行する回転移動手段、
    前記平行移動処理および前記回転移動処理後のレイアウトデータを出力する出力手段、
    として機能させることを特徴とする設計支援プログラム。
  8. 一の向きで用いられる端子と、前記一の向きと異なる他の向きで用いられる端子とが接続された複数のセルが前記一の向きで配置されているマクロのレイアウトデータを用いる設計を支援する設計支援装置であって、
    前記レイアウトデータから、前記セルごとに、前記セルの中心位置を第1のセル配置位置として検出し、前記セル間の接続線ごとに、前記接続線の配置位置を第1の接続線配置位置として検出する検出手段と、
    前記セルごとに、前記一の向きから前記他の向きへの変化量と前記検出手段により検出された前記第1のセル配置位置とに基づいて前記他の向きでの第2のセル配置位置を算出し、前記接続線ごとに、前記変化量と前記検出手段により検出された前記第1の接続線配置位置に基づいて前記他の向きでの第2の接続線配置位置を算出する算出手段と、
    前記セルごとに、前記第1のセル配置位置と前記算出手段により算出された前記第2のセル配置位置に基づいて、前記セルの平行移動処理を実行する平行移動手段と、
    前記接続線ごとに、前記第1の接続線配置位置から前記算出手段により算出された前記第2の接続線配置位置への前記接続線の回転移動処理を実行する回転移動手段と、
    前記平行移動処理および前記回転移動処理後のレイアウトデータを出力する出力手段と、
    を備えることを特徴とする設計支援装置。
  9. 一の向きで用いられる端子と、前記一の向きと異なる他の向きで用いられる端子とが接続された複数のセルが前記一の向きで配置されているマクロのレイアウトデータを用いる設計を支援するコンピュータが、
    前記レイアウトデータから、前記セルごとに、前記セルの中心位置を第1のセル配置位置として検出し、前記セル間の接続線ごとに、前記接続線の配置位置を第1の接続線配置位置として検出する検出工程と、
    前記セルごとに、前記一の向きから前記他の向きへの変化量と前記検出工程により検出された前記第1のセル配置位置とに基づいて前記他の向きでの第2のセル配置位置を算出し、前記接続線ごとに、前記変化量と前記検出工程により検出された前記第1の接続線配置位置に基づいて前記他の向きでの第2の接続線配置位置を算出する算出工程と、
    前記セルごとに、前記第1のセル配置位置と前記算出工程により算出された前記第2のセル配置位置に基づいて、前記セルの平行移動処理を実行する平行移動工程と、
    前記接続線ごとに、前記第1の接続線配置位置から前記算出工程により算出された前記第2の接続線配置位置への前記接続線の回転移動処理を実行する回転移動工程と、
    前記平行移動処理および前記回転移動処理後のレイアウトデータを出力する出力工程と、
    を実行することを特徴とする設計支援方法。
JP2009223871A 2009-09-29 2009-09-29 設計支援プログラム、設計支援装置、および設計支援方法 Expired - Fee Related JP5299198B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009223871A JP5299198B2 (ja) 2009-09-29 2009-09-29 設計支援プログラム、設計支援装置、および設計支援方法
US12/892,481 US8584069B2 (en) 2009-09-29 2010-09-28 Apparatus and method for design support using layout positions of first and second terminals

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009223871A JP5299198B2 (ja) 2009-09-29 2009-09-29 設計支援プログラム、設計支援装置、および設計支援方法

Publications (2)

Publication Number Publication Date
JP2011076154A JP2011076154A (ja) 2011-04-14
JP5299198B2 true JP5299198B2 (ja) 2013-09-25

Family

ID=43781733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009223871A Expired - Fee Related JP5299198B2 (ja) 2009-09-29 2009-09-29 設計支援プログラム、設計支援装置、および設計支援方法

Country Status (2)

Country Link
US (1) US8584069B2 (ja)
JP (1) JP5299198B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5136393B2 (ja) * 2008-12-25 2013-02-06 富士通セミコンダクター株式会社 設計支援方法および設計支援装置
US9985839B2 (en) 2015-07-08 2018-05-29 Fedex Corporate Services, Inc. Systems, apparatus, and methods of event monitoring for an event candidate within a wireless node network based upon sighting events, sporadic events, and benchmark checkpoint events
US20170053058A1 (en) * 2015-08-21 2017-02-23 Taiwan Semiconductor Manufacturing Company, Ltd. Model-based rule table generation

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58166742A (ja) 1982-03-29 1983-10-01 Nec Corp マスタ−スライス基板
JPS6239024A (ja) * 1985-08-14 1987-02-20 Fujitsu Ltd 理論線長によるデイレ−解析処理装置
JPH04163963A (ja) 1990-10-26 1992-06-09 Seiko Epson Corp 半導体装置
WO1993005537A1 (en) 1991-09-02 1993-03-18 Seiko Epson Corporation Semiconductor device
JPH05267454A (ja) * 1992-03-18 1993-10-15 Fujitsu Ltd ハードマクロのパターンデータ生成方法
JPH07311789A (ja) * 1994-05-19 1995-11-28 Dainippon Printing Co Ltd スタンダードセルを用いた集積回路設計方法
JPH0851159A (ja) * 1994-08-05 1996-02-20 Mitsubishi Electric Corp 半導体集積回路
JP4953526B2 (ja) * 2001-07-27 2012-06-13 富士通セミコンダクター株式会社 タイミング優先でセル配置するlsiのレイアウト方法及びその装置
JP4447210B2 (ja) * 2002-11-20 2010-04-07 富士通マイクロエレクトロニクス株式会社 電源端子パターン生成方法及び半導体装置
US6983431B2 (en) * 2003-05-09 2006-01-03 Synopsys, Inc. Simultaneous placement of large and small cells in an electronic circuit
US7055114B2 (en) * 2003-10-08 2006-05-30 Hewlett-Packard Development Company, L.P. Systems and processes for asymmetrically shrinking a VLSI layout
JP4602112B2 (ja) * 2005-02-17 2010-12-22 株式会社東芝 半導体集積回路の製造方法及び半導体集積回路
JP2006323643A (ja) * 2005-05-19 2006-11-30 Nec Electronics Corp 半導体集積回路のフロアプラン設計プログラム、フロアプラン設計装置、および設計方法
JP5365192B2 (ja) * 2006-07-06 2013-12-11 日本電気株式会社 半導体集積回路の階層設計方法および装置
JP5029070B2 (ja) * 2007-03-02 2012-09-19 日本電気株式会社 集積回路のレイアウト設計支援装置、方法、及びプログラム

Also Published As

Publication number Publication date
JP2011076154A (ja) 2011-04-14
US8584069B2 (en) 2013-11-12
US20110078646A1 (en) 2011-03-31

Similar Documents

Publication Publication Date Title
US8347253B2 (en) Designing supply wirings in semiconductor integrated circuit by detecting power supply wiring of specific wiring layer in projection area
JP4887552B2 (ja) Lsiチップのレイアウト設計方法
US7960836B2 (en) Redundant micro-loop structure for use in an integrated circuit physical design process and method of forming the same
JP5299198B2 (ja) 設計支援プログラム、設計支援装置、および設計支援方法
JP2007264993A (ja) 検証支援装置、検証支援方法、検証支援プログラム、および記録媒体
JP2009237953A (ja) 表示位置決定プログラム、該プログラムを記録した記録媒体、表示位置決定装置および表示位置決定方法
JP5167740B2 (ja) 設計支援プログラム、設計支援装置、および設計支援方法
JP5136371B2 (ja) 設計支援方法
JP4471794B2 (ja) タイミング解析装置、タイミング解析方法、タイミング解析プログラムおよび記録媒体
US7984394B2 (en) Design structure for a redundant micro-loop structure for use in an integrated circuit physical design process and method of forming the same
US8468481B2 (en) Support program, design support system, and design support method
JP2008009787A (ja) 階層設計レイアウト装置、および階層設計レイアウト方法、階層設計レイアウトプログラム、および該プログラムを記録した記録媒体
JP2009252169A (ja) 検証支援プログラム、検証支援装置、および検証支援方法
US8423937B2 (en) Support program, design support device, and design support method
JP4783712B2 (ja) レイアウト設計方法、レイアウト設計プログラムおよびレイアウト設計装置
JP4509703B2 (ja) 配線容量算出装置、配線容量算出方法および配線容量算出プログラム
JP4511996B2 (ja) 電源検証装置、電源検証方法、電源検証プログラム、および記録媒体
US7302665B2 (en) Method and apparatus for designing a layout, and computer product
JP2010211315A (ja) レイアウト検証方法、およびレイアウト検証装置
JP2007272686A (ja) 半導体集積回路装置の修正方法及び修正装置
JP2009193516A (ja) 設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法
JP2011076397A (ja) 設計支援プログラム、設計支援装置、および設計支援方法
JP2000195963A (ja) 設計支援装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130430

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: 20130521

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130603

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees