以下本実施形態の一例の構成について説明する。
半導体集積回路の実装設計を行う場合、論理データであるネットリストと物理データであるレイアウトデータとを同時に更新することを可能とするため、論理セルの実体であるインスタンスや論理セルの端子間の接続関係であるネットの名前をできるだけ変更しないで設計を行なうことが望ましい。
ここでネットリストとは論理回路における各論理セル(即ちインスタンス)間の論理的な接続関係(即ちネット)を示すデータ(論理接続情報)であり、レイアウトデータとは、半導体集積回路において実際に各セルの配置位置およびその間を接続する配線の物理的な位置関係を示すデータ(配置配線情報)である。半導体集積回路の製造はこのレイアウトデータに基づいて行われる。
図1に示すように、設計のスタート時点から、ネットリストとレイアウトデータとはそれぞれ並行して改善されて行く。
ここでレイアウトデータは更新後のネットリストとネット名とをキーとし、互いの一致を確認することによって論理のバックアノテート(論理の照合)がなされる。
また、ネットリスト上で新たに追加されたネットやインスタンスについては、追加的にレイアウトされることによりレイアウトデータに反映される。
そして当該半導体集積回路としてのプロセッサを製造するため製造部門にレイアウトデータを渡すテープアウトの例えば1ヶ月前には、後述するEC(Enginearing Change)バルクセル用のトランジスタセルを、既にレイアウトされたセル間の隙間に埋め込むことにより配置し、その後このようにして配置された論理セル及びECバルクセル用のトランジスタセルを固定(すなわちバルクフィックス)する。
バルクフィックスの後は後述する設計変更用論理セルのみ追加・削除・移動が可能となり、この設計変更用論理セルを使ってその後の動作タイミングの改善や論理設計ミスの修正等の設計改善を行う。
ここでECセルとは、バルクフィックスの際にバルク層に埋め込まれたECバルクセル用のセル(すなわちECバルクセルであって、「設計変更用ダミー論理セル」に対応する)上に設けるメタル配線のみを含む概念である。
このようにECバルクセル(実際には後述するECサイト)上にECセルを設けることで、ANDセル、ORセル等の論理セルを生成することが可能となり、配線層の変更のみで論理回路の論理の変更が行える。このようにECバルクセル(実際には後述するECサイト)上にECセルを設けることで生成される論理セルを以下「設計変更用論理セル」と称する。
なおECバルクセルはEC用フィラーセル、或いはECダミーセルとも称される。
本発明の実施例による半導体集積回路の実装設計支援装置および実装設計支援方法ならびに実装設計支援プログラムは、バルクフィックスの後、レイアウトデータにおいてバルク層の変更、すなわち論理回路を構成するトランジスタ素子の配置の変更を禁止するためのロック制御に関するものを含み、更に上記設計変更用論理セル以外のセルについてはバルク層の変更がなされないことを保証しながら一定の条件でセルの変更を許容する構成を有する。
ここで上記半導体集積回路の実装設計支援プログラムとは、CAD機能等を有し、コンピュータにインストールされることによって、設計者による半導体集積回路の実装設計を支援する機能を提供するツールとしてのソフトウェアプログラムである。
半導体集積回路の実装設計においては上記の如くネットリストの変更による論理変更とレイアウト変更とを同時に行なって行くため、ネットリスト上で変更された論理全体について対応するレイアウトデータを上書きし、論理変更がない部分については変更前の前回のレイアウトデータが維持される。このような手法はEC(Engineering Change)フローと称され、上記インクリメンタル設計の基本な処理の流れとなっている。
ここで設計変更用に追加された論理については、論理のみが変更された時点ではレイアウトデータ上、セルは未配置、ネットは未配線であるため、対応するレイアウトデータの上書きにより、レイアウトデータ上でこれら新たなセルおよびネットの配置・配線がなされる(図2中、「(3)ネットリスト変更」および「(4)レイアウト変更」参照)。
そしてテープアウトの時期に近づいたある時期にすべてのセルを固定するバルクフィックスの処理を行う。
このとき、既にネットリスト上で実現されている論理をレイアウトデータ上でも実現するためになされたセル配置の完成の後に余った配置領域に上記ECバルクセルを埋め込む。
このバルクフィックス後は、既にネットリスト上で実現されている論理をレイアウトデータ上でも実現するために配置された論理セルだけでなく、上記の如くその後に配置されたECバルクセルの移動が禁止される。
ここでECバルクセル(実際には後述するECサイト)とはトランジスタ素子のみを含み、その間の配線としてのネットを含まないセルである。ECバルクセル上にECセルとしてのメタル配線を設け、トランジスタ素子に対する配線を行うことで上記設計変更用論理セルを生成することが出来る。
ここで上記セルの移動の禁止は以下の如くに実現される。
すなわち、レイアウトデータ上にECバルクセルが既に配置されていることが検出されると、本実施形態の一例による半導体集積回路の実装支援プログラムの機能により、該当するすべてのセルの配置を固定するとともに移動を禁止するためにロック制御がなされる。
なお、このようにバルクフィックス後は原則としてすべてのセルの移動が禁止されるが、上記の如く、ECバルクセル上にECセルたるメタル配線のパターンを設けることで実現される設計変更用論理セルによる設計変更のみが例外的に許容される。
したがってバルクフィックス後は設計変更用論理セルを使って論理の変更を行うことが許容される。このECセルはECバルクセルの上にのみ重ねて配置できるよう、上記半導体集積回路の実装設計支援プログラムの機能によりコンピュータが制御される。
上記半導体集積回路の実装設計支援プログラムをコンピュータに実行させることで実現される、本実施例による半導体集積回路の実装設計支援方法には、以下の処理が含まれる。
1)本実施例による半導体集積回路の実装設計支援プログラムを実行するコンピュータに対しオペレータによりバルクフィックスする旨の指示が入力された場合、当該プログラムの機能により、まずバルクフィックスすることが可能な状態かどうかが判断される。この目的のため、本来配置すべきセルのうち未配置のセルが有るか否かにつき、実装設計支援プログラムを実行するコンピュータが判断を行う。
2)バルクフィックスする際、サイト上の空き領域にECバルクセルが埋め込まれることにより配置される。
3)このECバルクセルの配置が完了した後、オペレータが実装設計支援プログラムを実行するコンピュータに明示的に指示を入力することにより、上記ECバルクセルはECサイトへ、その名称が置き換えられる。
4)上記プログラムの機能によりサイトの中にこのECサイトが存在することが確認されると、以後バルクフィックス後の制御、すなわちバルク層の変更を禁止するための制御がなされる。
5)また上記プログラムの機能によるバルク層の変更を禁止する制御においては、設計変更用論理セル以外のセルの変更を禁止するように制御がなされる。但しこの点については後述(第8)項)する例外が設けられている。
6)ECセルはその配置が許容されるのはECサイトのみであり、またECサイト上にあるECセルの他のECサイト上への移動が許容されるような制御がなされる。
7)このようにECサイトではECセルの配置や移動が許容されるのであるが、該当する領域がオペレータに認識されやすくするため、当該領域の表示色が他の領域とは異なる色となるよう、画面の表示制御がなされる。
8)上記の例外として、交換しても移動先の論理セルのフリップ(flip)方向および回転方向が互いに同一である場合に限り、それらの論理セル同士の入れ替えが許容される。
ここで、フリップ方向とは、左右対称に形成された論理セル又は設計変更用論理セル等のセルを、裏返さずにそのまま配置するか、裏返して配置(フリップ配置)するか、いずれかの配置の向きを表す。
また、回転方向とは、論理セル又は設計変更用論理セル等のセルを、180度回転せずにそのまま配置するか、180度回転して配置するか、いずれかの配置の向きを表す。
移動先の論理セルのフリップ(flip)方向および回転方向が互いに同一である場合には、論理セルの移動がなされても移動先の論理セルにおいてバルク層の変更、すなわち当該論理セルを構成するトランジスタ素子の配置の変更は生じないからである。
この場合もオペレータに対し、このように互いに交換が許容される論理セルが認識され易くするため、ある論理セルが指定された場合、当該指定に係る論理セルと交換可能な他の論理セルの表示色を変化させるよう、画面の表示制御がなされる。
9)そして互いに交換が許容される論理セルの組につき、前記プログラムの一の機能としてのいわゆるセル配置エディタの機能により、当該論理セル間の入れ替えを許容する制御がなされる。又論理セル間の入れ替えがなされる場合、各位置において移動先の論理セルのフリップ方向および回転方向が維持されるように制御がなされる。
10)バルクフィックス後に論理セルの配置変更がなされた場合に、バルク層の変更、即ち論理セル又は設計変更用論理セルを構成するトランジスタ素子の配置の変更が発生していないかを確かめるため、バルクフィックスがなされたサイトの全領域につき、そこに配置されている各セルが設計変更用論理セルか否かを取得し、設計変更用論理セル以外の論理セルであれば、当該論理セルがバルクフィックスの時点以降変更されていないことを確認し、設計変更用論理セルであれば、これを構成するECバルクセルがバルクフィックスの時点以降変更されていないことを確認する処理がなされる。
このような本実施形態の一例による半導体集積回路の実装設計支援方法の構成によれば、バルクフィックス後のレイアウトデータを半導体集積回路の製造工場に渡した後、テープアウトまでの間の設計変更が可能であり、設計変更においてバルク、すなわちトランジスタ素子の配置の変更を禁止するようにロック制御がなされる。このため、設計者たるオペレータが誤操作等によりバルク層の変更、すなわちトランジスタ素子の配置の変更を行う事態が効果的に回避される。
また、バルクフィックス後も、設計変更用論理セルを使った設計変更が許容されるとともに、設計変更用論理セル以外の論理セルについても、交換しても互いに移動先のフリップおよび回転を維持可能なセル同士の入れ替えが許容されることにより設計改善の自由度が向上される。
以下図とともに本実施形態の一例について更に具体的に説明を行う。
図3は本実施形態の一例による半導体集積回路の実装設計支援方法を実施する対象となり得る半導体集積回路の構成例であって、周知の階層レイアウトを有する半導体集積回路の構成例を示す平面図である。
この半導体集積回路を構成する論理回路はその機能毎にブロック分割されており、各ブロックには該当する機能を実現するための論理回路が含まれており、各論理回路はこれを実現するための論理セル(即ち論理セルの実体であるインスタンス)および論理セル間の配線(即ち接続情報であるネット)で構成される。なお図3中「マクロ」(IOマクロ含む)とは、RAMマクロや演算器マクロ等、特定の機能を有する回路をブロックとして構成したカスタムマクロである。
図4(b)は、図3の構成中、同図(a)において円で囲まれた部分、すなわち半導体集積回路を構成する論理回路の1つのブロックを拡大して示す図である。
図4(b)に示すごとく、半導体集積回路の論理回路のブロックには当該論理回路を構成する各論理セルを配置するためのサイトが設けられており、上記半導体集積回路のレイアウト設計ではネットリストにて示された論理回路を実現するために必要な論理セルCgをサイト上に配置する。
この論理セルを配置するためのサイトは複数の列(図4(b)に示される論理回路のブロックの例の場合には5列)を構成しており、サイトを構成する各列は例えば図4(e)にECバルクセルの例として拡大して示すごとく、図中上下二段に分割された構成とされている。またその各段には図4(e)に示すごとく、各電源線VDDおよび接地線VSSが設けられている。
そして上記レイアウト設計では、このサイトの各列の上下各段に対し必要な論理セルを配置する。図4(e)に拡大して示されたECバルクセルCeの構成例では、図示の如く上下各段が8個の論理セルを収容可能な構成とされている。
上記レイアウト設計において、当該半導体集積回路のブロックに係るネットリスト上で実現されている論理セルCgの配置が全て完了した段階で上記バルクフィックスを行う。そしてこのバルクフィックスの時点におけるサイト上の上記空き領域に対し、図4(b)に示されるごとく、上記ECバルクセルCeを配置する。
図4(c),(d),(e)に示すごとく、このECバルクセルCeに対し、上記の如く、バルクフィックス後も、当該ECバルクセルCeを構成するトランジスタ素子間の配線としてのECセルを配置することが出来る。このようにしてバルクフィックス後も当該半導体集積回路の論理回路のブロック内に新たな論理セルとして使用する設計変更用論理セルを配置することが出来、もって一定の範囲で同論理回路のブロックにおける論理の変更も可能となる。
ここで図4(c)はECセルを配置することによって生成しようとする設計変更用論理セル(この場合はNAND回路を構成する論理セル)の回路記号を示し、同図(d)は当該設計変更用論理セルを生成するためのメタル配線としてのECセルを示す。また図4(e)は図4(b)に示されたECバルクセルCeの一部を抽出して拡大して示す図である。
図5は本実施例による半導体集積回路の実装設計支援方法をコンピュータに実行させるための半導体集積回路の実装設計支援プログラムの機能ブロック図である。
同プログラムはデータ入出力部1、バルクフィックスデータ作成部2,画面表示データ作成部4、選択データ取り出し部5および選択セル移動可否判定部6を有する。
データ入出力部1は、当該プログラムが搭載されているコンピュータ7の操作部(すなわちキーボード等)上で設計者たるオペレータが指示入力を行うことにより、同指示に従って上記半導体集積回路の実装設計に係るネットリスト或いはレイアウトデータを生成し、図5に示されるごとくLSI設計データとしてデータ格納部8に保存する機能を有する。
またデータ入出力部1は、このデータ格納部8に保存されたLSI設計データ、すなわち半導体集積回路の論理回路の実装設計に係るレイアウトデータ等を、画面表示データ作成部3および画面表示部4を介し、コンピュータ7の表示画面に表示するために出力する機能を有する。
バルクフィックスデータ作成部2は、オペレータにより入出力部1を介してバルクフィックスを行う旨の指示入力がなされた場合、バルクフィックスデータを作成する。
ここでバルクフィックスデータとは、半導体集積回路の論理回路のブロックにつき、バルクフィックスの時点における、当該半導体集積回路の論理回路のブロックのレイアウトデータとして実現されている、各サイトに関する配置情報である。具体的には、例えば図4(b)に示される論理回路のブロックの例では、上記5列のサイトの各々につき、そこに配置されたセル毎に、それがECバルクセルCeであるか或いは一般的な論理セルCgであるかの別を示す情報を含む。
画面表示データ作成部3は、データ入出力部1から供給されるレイアウトデータ、バルクフィックスデータ作成部2から供給されるバルクフィックスデータ等に基づき、コンピュータ7の表示画面に該当する情報を表示するための画面表示データを作成する。
画面表示部4は、画面表示データ作成部3から供給された画面表示データに基づき、コンピュータ7の表示画面上に該当する表示内容を有する画面を表示する。
選択データ取り出し部5は、コンピュータ7の操作部を介して入力されるオペレータの指示情報からオペレータが選択したセルを示す情報、そのセルの移動先を示す情報等を抽出し、選択セル移動可否判定部6に供給する。
選択セル移動可否判定部6は、選択データ取り出し部5から供給されるオペレータの指示に係る情報を受け、当該指示に係る設計変更が禁止されているものであるか否かを判定する。オペレータの指示に係る設計変更が禁止されているものか否かの判定の詳細については、図9,図13等とともに後述する。
図6は、図5とともに上述した本実施例に係る半導体集積回路の実装設計支援プログラムにおいて、オペレータによりバルクフィックスする旨の指示入力が前記コンピュータ7に対してなされた場合に、バルクフィックスデータ作成部2が実行する処理の流れを説明するための処理フローチャートである。
図6中、ステップS1で、サイトに配置すべき論理セルが全て配置済み、すなわち該当するネットリストに含まれる全てのインスタンスおよびネットがレイアウトデータに反映されているか否かを判定する。
この判定の結果未配置セルが存在する場合(ステップS2の「有」)、ステップS3にて、画面表示データ作成部3および画面表示部4を介し、未配置セルの存在によりバルクフィックスが出来ない旨をコンピュータ7の表示画面に表示する。
オペレータはこの表示を見て未配置セルの存在を認識し、該当する論理セルをサイトに配置するようコンピュータ7の操作部に対して指示入力を行うことで、論理セルの配置を完了させる。
未配置セルが無い場合(ステップS2の「無」)、以下に述べる図7の処理に移行する(ステップS4)。
図7の処理は図6の処理に引き続いてバルクフィックスデータ作成部2が実行する処理であり、サイトの未配置領域に上記ECバルクセルを配置する処理である。この処理は上記半導体集積回路の実装設計に係るレイアウトデータにおいて行われる。
図7(a)の左側の図は図4(b)の例に対応するものであり、上記図6の処理中、ステップS2の判断の結果、未配置セルが無い(「無」)状態を示す。同図では、各々が図中横方向に延在する5列のサイトに対し、ネットリストに含まれるセルCgが配置されるとともに、セルCgの間に配線wが設定されている様子が示されている。
図7(a)の右側の図は、上述した同左側の図の状態に対し、サイトにおいて論理セルCgが配置されていない隙間にECバルクセルCeが配置された状態が示されている。
このように、本実施例による半導体集積回路の実装設計支援プログラムのバルクフィックスデータ作成部2は、オペレータからバルクフィックスを行う旨の指示入力を受けると、図6の処理により未配置セルが無いことを確認後、サイトの隙間にECバルクセルCeを埋め込むことによる配置処理を行う。
次にバルクフィックスデータ作成部2は、図8とともに以下に述べる、レイアウトデータ上でECサイトSe(図7(b)参照)を発生する処理を行う。
図7(b)は後述する如く、図7(a)の右図の状態で各サイトの空き領域に配置されているECバルクセルCeに対しECサイトSeが発生され、これによってECバルクセルCeが置き換えられた状態を示す。
図8中、ステップS11で半導体集積回路の実装設計に係る論理回路のブロックのレイアウトデータに対し、上記の如くサイトに配置されたECバルクセルCeが検索される。
ステップS12ではステップS11で検索されたECバルクセルCeが連続する場合、その事実が認識される。例えば図7(a)の右図の例の場合、例えば最上列のサイト中、左から2〜4番目のECバルクセルCeが相互に連続しているが、このような場合、ECバルクセルCeが連続していると認識する。
ステップS13ではこのように連続するECバルクセルCeに対し、1つのECサイトSeを発生する。例えば上記図7(a)の右図の例の最上列のサイト中、上記左から2〜4番目の計3個のECバルクセルCeに対し、1つのECサイトSeが発生される。
他方、ECバルクセルCeが連続しておらず孤立して存在する場合に対しては、各々に対し1つのECサイトを発生する。図7(a)の右図の例の場合、例えば最上列のサイト中、左端のECバルクセルCeは孤立して存在し連続していないため、当該ECバルクセルCeに対し1つのECサイトSeが発生される。
このようにして全てのECバルクセルCeに対するECサイトSeの発生が完了した後、ECバルクセルCeの情報を全て削除する(ステップS14)。すなわち螺イアウトデータ中、ECバルクセルCeの情報がECサイトSeの情報で置き換えられる。
その後、図9の処理がなされる。図9の処理はバルクフィックスモードへの移行および、それに伴う上記ロック制御の処理である。
図9のステップS21でバルクフィックスデータ作成部2はデータ格納部8に格納された論理回路のブロックのLSI設計データに含まれるレイアウトデータを参照し、当該レイアウトデータ上、サイトにECサイトSeが設定されていることを確認した後、バルクフィックスを実施する(ステップS22)。すなわち、当該レイアウトデータに対しバルクフィックスがなされた状態となる。
このようにしてバルクフィックスがなされると、当該論理回路のブロックのレイアウトデータは半導体集積回路の製造部門に渡され、当該製造部門では半導体集積回路の半導体基板のバルク層について製造作業を開始する。
このようにバルクフィックスがなされた後、設計者たるオペレータは当該論理回路のブロックの動作タイミング(遅延量等)の改善又は論理ミスの修正等を図るべく、設計変更を行う。
なお上記の如く、バルクフィックスは半導体集積回路の実装設計において、該当する論理回路のブロックのネットリストによる論理回路を構成するための論理セルCgが全て配置された後に行われる。
図9の説明に戻り、ステップS23において、オペレータがバルクフィックス後の設計変更のため、その対象たるセルを選択する操作をコンピュータ7の操作部に対して行うと、図5に示される選択データ取り出し部5がその操作内容を抽出して選択セル移動可否判定部6に転送する。
選択セル移動可否判定部6はデータ格納部8に格納されているLSI設計データを参照することにより、当該選択に係るセルの種別を取得する(ステップS23)。ここでセルの種別を取得するとは、該当するセルが設計変更用論理セルか否かの判断を行うことを意味する。
ステップS23の結果該当するセルが設計変更用論理セルでない場合(ステップS24のNo),選択セル移動可否判定部6はステップS25にて、当該セルが設計変更用論理セルでないためその移動が禁止されている旨を、画面表示部4介してコンピュータ7の表示画面に表示する。
オペレータをこのようにコンピュータ7の表示画面に表示された内容を参照することにより、自己が選択したセルが設計変更用論理セルでなく、もってバルクフィックスにより既にその移動が禁止されたセルであることを認識し得る。その結果バルクフィックス後にオペレータが設計変更用論理セル以外の、配置が固定されたセルを移動する旨の設計変更を行う事態が効果的に回避され得る。
ここで設計変更用論理セル以外のセルとは、上記一般的な論理セルCg、およびその両者以外のセル、すなわちカスタムマクロブロックのセル等、そもそも設計変更の対象外とされているセルを意味する。
上記の如く設計変更用論理セル以外の一般的な論理セルCgはネットリストに含まれる論理回路を実現するために必要なものであり論理回路の基本的な性能に係るセルであるため、詳細な仕様まで最適化されている場合が多い。したがってバルクフィックス後の設計変更用論理セル以外のセルの移動は禁止されている。
又、設計変更用論理セルとは、ECセルが上記の如くECサイトSe上に配置されることで構成されるセルであり、原則としてバルクフィックス後は設計変更用論理セルに限り、移動による設計変更が許容されている。
図9の説明に戻り、ステップS25の処理後再びステップS23の処理に戻り、再びオペレータが設計変更対象のセルを選択する操作をコンピュータ7の操作部に対して行った場合、上記同様、図5に示される選択データ取り出し部5がその内容を抽出して選択セル移動可否判定部6に転送する。
その後再びステップS24の判断がなされ、判断の結果がNoであればステップS25に移行し上記の処理が繰り返される。
他方、ステップS24の判断の結果がYesの場合、すなわちオペレータにより選択されたセルが設計変更用論理セルであった場合、ステップS26に移行する。
ステップS26では、オペレータが該当するセルの移動先を指定する操作を行った際の当該移動先の位置の情報を、選択セル移動可否判定部6が選択データ取り出し部5を介して取得する。
次に選択セル移動可否判定部6はデータ格納部8に格納されたLSI設計データを参照することにより、当該移動先の位置が、LSI設計データに含まれるレイアウトデータ上、上記ECサイトSeに該当するか否かを判定する(ステップS27)。
判定の結果当該移動先の位置がECサイト上でなかった場合、ステップS28に移行し、当該移動先がECサイトでないためセルの配置が禁止されている旨を、画面表示部4介してコンピュータ7の表示画面に表示する。
オペレータはコンピュータ7の表示画面に表示された内容を参照することにより、セルの移動先がECサイトでなく、バルクフィックスにより既にそこへのセルの配置が禁止されていることを認識し得る。その結果バルクフィックス後にオペレータがECサイトSe以外の位置に対しセルを配置する設計変更を行う事態が効果的に回避され得る。
上記の如くバルクフィックス後は、原則として、ECセルのECサイトSeへの配置による設計変更用論理セルの配置、或いはECセルのECサイト間の移動による設計変更用論理セルの移動のみが許容される。
図9の説明に戻り、ステップS28の処理後再びステップS23の処理に戻り、再びオペレータがセルを指定するとともにその移動先を入力する操作をコンピュータ7の操作部に対して行うと、図5に示される選択データ取り出し部5がその内容を抽出して選択セル移動可否判定部6に転送する。
その後再びステップS24〜S26の処理がなされ、ステップS24,S26のいずれかの判断の結果が上記同様(No)であれば、該当するステップS25又はS28に移行し、その後は上記同様の処理が繰り返される。
他方、ステップS24の判断がYesであり且つステップS26の判断がYesの場合、すなわちオペレータにより選択されたセルが設計変更用論理セルであり且つその移動先がECサイトであった場合、ステップS29に移行する。
ステップS29で選択セル移動可否判定部6はオペレータの操作に係るセルの指定およびその移動先の情報をデータ入出力部1に転送し、データ入出力部1では当該操作に係るセルの指定およびその移動先の情報にしたがってデータ格納部8に格納されたLSI設計データに含まれるレイアウトデータに対して、設計変更の内容を反映させる。
このように、本実施例による半導体集積回路の実装設計方法によれば、バルクフィックス後は、原則としてECセルのECサイトへの配置による設計変更用論理セルの配置、或いはECセルのECサイト間の移動による設計変更用論理セルの移動のみが許容されており、それ以外の内容を有する設計変更は禁止される。
そして当該禁止された内容の設計変更に係る操作入力がなされた場合、「当該操作に係る設計変更は禁止されている」旨が表示画面に表示される。その結果オペレータはその旨を明確に認識することが出来、誤って禁止されている内容の設計変更を行ってしまうというような事態が効果的に回避され得る。
次に図10,図11とともに、レイアウトデータをコンピュータ7の表示画面に表示する際に上記ECサイトSeにつき、オペレータが認識しやすいように特別な色で表示する場合の処理について説明する。
ここで、「特別な色」とは、表示画面におけるECサイトSe以外の表示部分に対して、ECサイトSeの表示部分の輝度を高くする、又は、色相を反転する等の処理がなされた、人間の目に注意を引きやすい色をいう。
この処理は図5に示す構成中、バルクフィックスデータ作成部2,画面表示データ作成部3および画面表示部4が実行する処理である。
ここでは図10に示すごとく、同図(a)に示される上記ECサイトSeにつき、同図(b)中、記号cで示される場所に特別な色を付すことにより、オペレータが認識しやすくする。
図11中、データ入出力部1はデータ格納部8に格納されたLSI設計データのレイアウトデータに基づき、該当する全サイトからECサイトSeを検出する(ステップS41)。
又、ECサイトSe以外のサイトにつき、データ入出力部1は、そのサイトおよび当該サイト上に配置されているセルを表示しない制御を画面表示データ作成部3に対して行う(ステップS42のNo,ステップS43)。
この制御を受け、画面表示データ作成部3はレイアウトデータの表示データを生成する際、ECサイトSe以外のサイトについてはそのサイトおよびサイト上に配置されているセルを除いた表示データを生成する。
画面表示部4は当該表示データにしたがい、ECサイトSe以外のサイトおよびサイト上に配置されているセルを除いた状態でレイアウトデータをコンピュータ7の表示画面に表示する。
又、ECサイトSeにつき、データ入出力部1は、特別な色で表示するような制御を行う(ステップS42のYes,ステップS44)。
そして、画面表示データ作成部3はレイアウトデータの表示データを生成する際、当該制御にしたがってECサイトについて特別な色で表示するような表示データを生成する。
画面表示部4は当該表示データにしたがい、ECサイトSeを特別な色で表示する態様でレイアウトデータをコンピュータ7の表示画面に表示する。
図10(b)はこのようにして表示されたレイアウトデータの例を示す。同図に示されるごとく、同図中、記号cで示された場所、すなわちECサイトSeが特別な色で表示され、それ以外のサイトおよびサイト上に配置されているセルは表示されない。
上記の如くバルクフィックス後はレイアウトデータが半導体集積回路の製造部門に送られバルク層の製造が開始されるため、原則としてECサイト以外のサイトについての設計変更が禁止される。本発明の実施例による半導体集積回路の実装設計支援方法によれば、上記の如くECサイトSeのみが特別な色で表示されそれ以外のサイトおよびサイト上に配置されているセルが表示されない態様でレイアウトデータが表示される。その結果、設計者たるオペレータは設計変更が可能なECサイトSeを容易に判別可能となり、バルクフィックス後の設計変更作業の効率化が図れる。
次に図12,図13とともに、上記設計変更用論理セル以外の論理セルに係る設計変更が例外的に許容される場合について説明する。
バルクフィックス後は、原則としてECセルのECサイトへの配置による設計変更用論理セルの配置或いはECセルのECサイト間の移動による設計変更用論理セルの移動についてのみ設計変更が許容され、それ以外の態様の設計変更が原則的に禁止される。すなわち、設計変更用論理セル以外の論理セルの変更が原則的に禁止される。
これは上記で説明したように、1)バルクフィックス後は半導体集積回路の製造部門でバルク層の製造が開始されるため、バルク、すなわち各セルを構成するトランジスタ素子の配置が変更されても、一旦製造が開始された半導体基板のバルク層の変更は不可能であるため作業工程上問題が生ずる点、および2)設計変更用論理セル以外の一般的な論理セルは該当するネットリスト上で実現されている論理を実現するためのものであり詳細に最適化されている場合があることから設計変更を行うべきではないと考えられることによる。
しかしながら設計変更用論理セル以外のセルについての設計変更を一切認めないとした場合設計の自由度に欠ける上、論理ミスの修正等ができないこととなる。したがって本実施例による半導体集積回路の実装設計支援方法では一定の条件下で設計変更用論理セル以外の一般的な論理セルに係る設計変更を認めることで、設計の自由度を向上している。
具体的には、交換しても互いに移動先のセルのフリップ方向および回転方向が維持されるという条件を満たす場合に限り、該当するセル間の交換が許容されるようにした。
図14とともに後述するように、交換しても互いに移動先のセルのフリップ方向および回転方向が同一であるセル同士の交換がなされても、当該交換に係る両セルとも、そのセルを構成するトランジスタ素子の配置およびセル内のトランジスタ素子間の配線に変更が生ずることが無く、バルクフィックスした半導体基板のバルク層の変更が必要となる等の問題が生ずることが無いからである。
ここでは図12(a)に示される如く、オペレータ(即ち設計者)が設計変更に係るセルを指定する操作を行った場合、指定されたセルを選択データ取り出し部5を介して受け取った選択セル移動可否判定部6は、当該指定に係るセルと、当該セルと交換した場合に、交換してもお互いに移動先のセルのフリップ方向および回転方向が同一である他のセルを全て検索し、該当するセルにつき、図12(b)中、記号sで示される部分に、画面表示データ作成部3および画面表示部4を介し、特別な色を付して表示する。
その結果オペレータはバルクフィックス後に例外的に設計変更用論理セル以外の一般的な論理セルについて設計変更を行おうとする場合、交換可能なセルを容易に認識可能となり、設計変更の効率を向上させることが可能となる。更に、上記条件(交換しても互いに移動先のフリップ方向および回転方向が同一であるという条件)に合致せず設計変更の対象とされていないセルが誤ってオペレータの操作によって設計変更されてしまうような事態が効果的に回避され得る。
図13はその際の処理の流れを説明するための処理フローチャートである。
図13中、ステップS51で選択セル移動可否判定部6はコンピュータ7の操作部および選択データ取り出し部5を介し、オペレータにより入力された指示の内容を受け取り、オペレータにより選択されたセルの種別を取得する(ステップS51)。
ここで取得されたセルの種別が設計変更用論理セルであった場合(ステップS52のYes),図9のステップS26−S29の処理と同様の処理がなされる。すなわち設計変更用論理セルについてはバルクフィックス後も設計変更が許容されているため、上記例外的な処理ではなく、図9とともに上述した設計変更用論理セルに係る設計変更についての処理がなされる。
次にステップS54にて選択セル移動可否判定部6は当該選択に係るセルが一般的な論理セルであるか否かを判定する。
当該判定の結果がNoの場合、該当するセルは設計変更用論理セルでもなく、また設計変更用論理セル以外の一般的な論理セルでもないことになり、そもそも設計変更の対象外のセルが選択されたことになる。このようなそもそも設計変更の対象外のセルとしては、例えばカスタムマクロブロックに含まれるセル等が考えられる。
図13の説明に戻り、ステップS54の判定の結果がNoの場合、選択セル移動可否判定部6はステップS55にて、当該セルが設計変更用論理セルでもそれ以外の一般的な論理セルでもないセルであるためその移動が禁止されている旨を、画面表示部4介してコンピュータ7の表示画面に表示する。
オペレータはこのようにコンピュータ7の表示画面に表示された内容を参照することにより、選択に係るセルが設計変更用論理セルでも一般的な論理セルでもなく、移動が禁止されているセルであることを明確に認識し得る。その結果オペレータが誤って設計変更用論理セルでも一般的な論理セルでもない、そもそも設計変更対象外のセルを移動する設計変更を行うような事態が効果的に回避され得る。
図13の説明に戻り、ステップS55の処理後、再びステップS51の処理に戻る。そこで再びオペレータが設計変更等のためにセルの設計データの内容を変更しようとして該当するセルを選択する操作をコンピュータ7の操作部に対して行った場合、上記同様、選択データ取り出し部5がその内容を選択セル移動可否判定部6に転送する。
その後再び上記同様にしてステップS52,S54の判断がなされ、ステップS52の判定の結果がYesであれば上記同様図9のステップS26〜S29の処理がなされる。またステップS52の判定の結果がNoでありステップS54の結果がNoであれば、ステップS55に移行し上記同様の処理が繰り返される。
他方ステップS54の判断がYesの場合、すなわちオペレータにより選択されたセルが設計変更用論理セル以外の一般的な論理セルであった場合、ステップS56に移行する。
ステップS56で選択セル移動可否判定部6は、当該選択に係るセルと論理的且つ物理的に同一の構成を有するセルであって当該選択に係るセルと交換した場合に互いに移動先のセルのフリップ方向および回転方向を維持可能なセルを全て検索する(ステップS56)。そして画像表示部4を介し、図12(b)とともに上述の如く、コンピュータ7の表示画面上で該当するセルに特別な色を付して表示を行う(ステップS57)。
その後オペレータによる移動先のセルを指定する操作にしたがって、データ入出力部1が該当するセルの移動をデータ格納部8に格納されたLSI設計データのレイアウトデータに反映する(ステップS58)。
以下図14とともに、上記交換しても互いに移動先のフリップ方向および回転方向を維持可能なセル同士のセルの交換を行う例について説明する。
図14(a)は論理セルの一例としてのNAND回路を示し、同図(b)は当該NAND回路をレイアウトデータ上で論理セルとして配置した例を示す。
図14(b)中、'F'の文字を左右に裏返した形状の記号は、当該セルにおけるトランジスタ素子間の配線の形状の例を示しており、説明の便宜上を簡略化して示している。
図14(c)はこのNAND回路を使用した論理回路の例を示し、同図(d)は同論理回路をレイアウトデータ上で実現した例を示す。この例では図示の如く、NAND回路A、B,Cが、その順序で相互に直列に接続されている。
図14(e)は、図14(d)のレイアウトに対し、これらのNAND回路A,B,Cを構成するそれぞれのセルA,B,Cのうち、セルBとセルCとを交換した例を示す。
図14(d)のレイアウトではセルAからセルBに対し、図中右方向に配線wがなされ、更にセルBからセルCへの配線wは、セルAの方向、すなわち左方向に戻るようになされている。
これに対し図14(e)のレイアウトでは上記の如くセルBとセルCとが交換されたため、セルAからセルBに対し、図中右方向に配線wがなされ、更にセルBからセルCへの配線wは、セルAとは反対方向、すなわち更に右方向に向かってなされている。その結果図14(d)のレイアウトと対比すると、配線wの長さが効果的に短縮され、もって論理回路の性能向上が図れる。
このような設計変更の場合の変更前の図14(d)のレイアウトと変更後の図14(e)のレイアウトとを比較すると、図示の如く、変更前のセルCと変更後のセルBとの間で、トランジスタ素子間の配線の形状(図中、'F'の文字が上下に裏返された形状)は維持されている。
同様に変更前のセルBと変更後のセルCとの間で、トランジスタ素子間の配線の形状(図中、'F'の文字の形状)は維持されている。
このように配線の形状が維持されているということは、フリップ方向および回転方向が維持されていることを意味する。なおフリップとは、左右対称のセルをそのまま裏返すことを意味する。
したがってこのようにセルBとCとを交換しても、セルBの移動先である元のセルCは、これが設計変更によりセルBに入れ替わっても、そのフリップ方向および回転方向は元のセルCのものがそのまま維持されている。
同様にセルCの移動先である元のセルBは、これが設計変更によりセルCに入れ替わっても、そのフリップおよび回転は元のセルBのものがそのまま維持されている。よって交換しても互いに移動先のフリップ方向および回転方向が維持されている。
このように交換しても互いに移動先のフリップ方向および回転方向が維持される場合、それらの場所においてバルク、すなわちトランジスタ素子の配置が維持され、もってバルクフィックス後にこのような設計変更がなされても、半導体基板のバルク層の製造工程におい手戻りが生ずることがない。
図13のステップS56では、例えばオペレータにより図14(d)のセルCが選択された場合、上記の如くこれと交換しても互いに移動先のフリップおよび回転を維持可能なセル、すなわち同図中、セルBが検索で得られ、図12(b)とともに上述の如く、当該セルBに特別の色が付されて表示される。
次に図15とともに、上記バルクフィックス後の設計変更の終了後、レイアウトデータがテープアウトされる前になされるチェック処理につき、その処理の流れを説明する。
このチェック処理は図5中、バルクフィックスデータ作成部2が行うものであり、バルクフィックス後の設計変更として本来禁止されている処理がなされることによりバルクフィックスの時点以降製造部門で開始されているバルク層の製造工程に手戻りが生ずるようなことが無いよう、テープアウト前にチェックを行うものである。
図15のステップS61では、レイアウトデータに含まれる各セルの全てにつき、順次以下のステップS62〜S64の処理を実行する。
ステップS62では、各セルの種別、すなわち設計変更用論理セルか、設計変更用論理セル以外の一般的な論理セルか或いはそれらのいずれでもないセルであってそもそも設計変更の対象外のセルであるかが判定される。
ステップS63では、各セルが、それが配置されている場所のサイトとの関係で許容されるものであるかをチェックする。
すなわち、設計変更用論理セルは、ECセルを上記の如くECサイト上に配置することにより配置することができるものであるが、これに反してECセルがECサイト以外の場所に配置されていたような場合、当該セルは、配置されている場所のサイトとの関係で許容されるものはないと判定される(ステップS64のNo)。
ステップS64の判定結果画のNoである場合、バルクフィックスデータ作成部2は画面表示データ作成部3および画面表示部4を介し、コンピュータ7の表示画面に、そのセルが、それが配置されている場所のサイトとの関係で許容されるものでは無い旨を示すエラー表示を行う(ステップS65)。
オペレータはこのようなエラー表示を見ることにより、バルクフィックス後の設計変更において本来禁止されている処理を行ってしまったことを明確に認識することが出来、その結果適宜、更に設計変更を行うことで、各セルが、それが配置されている場所のサイトとの関係で許容されるものとなるようにすることができる。したがってバルクフィックス後の設計変更として本来禁止されている処理がなされることによってバルクフィックス以降製造部門で開始されているバルク層の製造工程に手戻りが生ずるような事態が効果的に回避され得る。
図16は上述の実施例における半導体集積回路の実装設計支援方法をコンピュータで実現する場合について説明するための、コンピュータの構成例を示すブロック図である。
図16に示すごとく、コンピュータ500は、与えられたプログラムに記載された命令を実行することによって種々の動作を実行するためのCPU501と、キーボード、マウス等よりなりユーザ(この場合設計者たるオペレータ、以下同様)が操作内容又はデータを入力するための操作部502と、ユーザに対しCPU501による処理経過、処理結果等を表示するCRT、液晶表示器等よりなる表示部503と、ROM、RAM等よりなりCPU504が実行するプログラム、データ等を記憶したり作業領域として使用されるメモリ504と,プログラム、データ等を格納するハードディスク装置505と、CD−ROM507を媒介として外部からプログラムをロードしたりデータをロードするためのCD−ROMドライブ506と、インターネット、LAN等の通信網509を介して外部サーバからプログラムをダウンロード等するためのモデム508とを有する。
コンピュータ500はCD−ROM507を媒介として、あるいは通信ネットワーク509を媒介として、上述の半導体集積回路の実装設計支援方法をCPU501に実行させるための命令よりなる半導体集積回路の実装設計支援プログラムをロードあるいはダウンロードする。そしてこれをハードディスク装置505にインストールし、適宜メモリ504にロードしてCPU501が実行する。その結果、同コンピュータ500により本発明の実施例による半導体集積回路の実装設計支援方法が実現される。
なお、図5中、選択データ取り出し部5が選択データ取り出し手段に対応し、バルクフィックスデータ作成部2がバルクフィックスデータ生成手段に対応し、選択セル移動可否判定部5が選択セル移動可否判定手段に対応し、画像表示部4が画像表示部に対応し、コンピュータ7の表示画面が半導体集積回路の設計支援装置に接続された表示装置に対応する。