(57)【要約】【課題】スキャン回路を構成するスキャンフリップフロップのハードマクロライブラリを生成することなく、スキャン回路付きの論理回路を有する集積回路を設計する方法を提供する。【解決手段】ハードマクロだけの第３のネットリストＮＬ３をレイアウトし、レイアウト可能なスキャンチェーン用接続配線の順番データを一旦求め、その順番データを利用して生成した第４のネットリストＮＬ４から標準セルで構成される第５のネットリストＮＬ５に対して自動配置を行う。従って、スキャン機能付きの第２のフリップフロップのレイアウトライブラリを用いることなく、レイアウト可能な集積回路の設計を行うことができる。【選択図】図４
2004078759.tif 000002
【特許請求の範囲】
【請求項１】
論理回路を有する集積回路の設計方法において、
少なくとも第１のフリップフロップを含む複数の標準セルが接続された論理回路の接続データを有する第１のネットリストを、当該第１のフリップフロップをスキャン機能を有する第２のフリップフロップに変換し、当該第２のフリップフロップを接続するスキャンチェーン接続配線を追加して第２のネットリストに変換する第１の工程と、
前記第２のネットリスト内の第２のフリップフロップを、当該第２のフリップフロップを構成する複数の標準セルに置き換えて第３のネットリストを生成すると共に、スキャンチェーン接続配線データを生成する第２の工程と、
前記第３のネットリストに従って、それに含まれる標準セルとその接続配線とを配置し、前記スキャンチェーン接続配線データに基づいて、前記スキャンチェーン接続配線の順番を最適化してスキャンチェーン接続配線の順番データを生成する第３の工程と、
前記第２のフリップフロップと、前記スキャンチェーン接続配線の順番データに従うスキャンチェーン接続配線とを有する第４のネットリストから、前記第２のフリップフロップを、複数の標準セルに置き換えて第５のネットリストを生成し、前記第５のネットリストに従って、それに含まれる標準セルとその接続配線とを配置する第４の工程とを有することを特徴とする集積回路の設計方法。
【請求項２】
請求項１において、
更に、前記第４のネットリストにもとづいて、論理回路のテストパターンを生成する工程を有することを特徴とする集積回路の設計方法。
【請求項３】
請求項１において、
前記第４のネットリストは、前記第１のネットリストを、それに含まれる前記第１のフリップフロップを前記第２のフリップフロップに変換し、前記スキャンチェーン接続配線の順番データに従うスキャンチェーン接続配線を追加して形成されることを特徴とする集積回路の設計方法。
【請求項４】
請求項１において、
前記標準セルは、レイアウト情報を有するレイアウトライブラリに登録されたハードマクロであり、前記第４の工程では、当該レイアウトライブラリを参照して標準セルの配置が行われることを特徴とする集積回路の設計方法。
【請求項５】
請求項１において、
前記スキャン機能を有する第２のフリップフロップは、レイアウト情報を有するハードマクロとしてレイアウトライブラリに登録されていないことを特徴とする集積回路の設計方法。
【請求項６】
論理回路を有する集積回路の設計方法において、
少なくとも第１のフリップフロップを含む複数の標準セルが接続された論理回路の接続データを有する第１のネットリストを、当該第１のフリップフロップをスキャン機能を有する第２のフリップフロップに変換し、当該第２のフリップフロップを接続するスキャンチェーン接続配線を追加して第２のネットリストに変換する第１の工程と、
前記第２のネットリスト内の第２のフリップフロップを、当該第２のフリップフロップを構成する複数の標準セルに置き換えると共に、当該置き換えられた標準セルと周辺の標準セルとをより面積が小さい別の標準セルに置き換える最適化を行って第３のネットリストを生成する第２の工程と、
前記第３のネットリストに従って、それに含まれる標準セルとその接続配線とを配置する第３の工程とを有することを特徴とする集積回路の設計方法。
【請求項７】
請求項６において、
前記標準セルは、レイアウト情報を有するレイアウトライブラリに登録されたハードマクロであり、前記第２の工程において、前記レイアウトライブラリの面積情報を参照して、前記別の標準セルに置き換える最適化を行うことを特徴とする集積回路の設計方法。
【請求項８】
請求項６において、
前記標準セルは、レイアウト情報を有するレイアウトライブラリに登録されたハードマクロであり、前記第３の工程では、当該レイアウトライブラリを参照して標準セルの配置が行われることを特徴とする集積回路の設計方法。
【請求項９】
請求項６において、
前記スキャン機能を有する第２のフリップフロップは、レイアウト情報を有するハードマクロとしてレイアウトライブラリに登録されていないことを特徴とする集積回路の設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＬＳＩ（集積回路）の設計方法に関し、特にスキャン機能を有する集積回路の設計方法に関する。
【０００２】
【従来の技術】
ＬＳＩの設計工程は、所望の機能を実現するための論理回路を設計する論理設計工程と、論理設計工程で生成されたネットリストに基づいて、論理回路を構成する論理マクロや論理セル及びそれらを接続する接続配線をレイアウトする工程と、そのレイアウトされた論理回路のタイミング検証を行う検証工程などを有する。論理マクロや論理セルをレイアウトするためには、それらのレイアウトデータを有するレイアウトライブラリが参照される。また、タイミング検証に使用されるテストパターンは、論理マクロや論理セルの機能データを有する論理ライブラリが参照される。
【０００３】
なお、論理セルは、フリップフロップやＮＡＮＤ、ＮＯＲゲートなどの比較的小規模の回路単位であり、論理マクロはプロセッサなどの比較的大規模の回路単位であるが、両者とも所定の機能を有する回路単位であり、論理ライブラリ及びレイアウトライブラリに登録されているので、以下総称して、標準セルまたはセルと称する。
【０００４】
大規模化されたＬＳＩでは、検証用の回路としてスキャン回路を設けることが一般的に行われる。即ち、設計工程で、論理回路内の複数のフリップフロップをスキャン機能付きフリップフロップに置き換え、それらをスキャンチェーン接続配線で接続した回路構成にし、検証工程で、所定のテストデータをスキャンインにより複数のフリップフロップに入力し、論理回路を所定サイクル動作させた後に、それらのフリップフロップ内のデータをスキャンアウトにより出力し、出力されたデータが期待値と一致するか否かの検証を行う。上記のテストデータは、論理設計された論理回路にスキャン回路を追加した回路をもとに、コンピュータによる設計ツールにより自動生成される。また、テストデータの生成のためには、前述したとおり、論理回路を構成するセルの論理データを有する論理ライブラリが参照される。
【０００５】
図１は、従来のＬＳＩの設計工程を示すフローチャート図である。図１の工程Ｓ１〜Ｓ４は、全てＣＡＤ設計ツールが有する機能により行われる。まず、論理設計工程Ｓ１が終了した時点で、論理回路を構成するセル間の接続データを有するネットリストＮＬ１が生成される。この段階では、ネットリストＮＬ１内には、検証用のスキャン回路が含まれていない。つまり、テスト用データ（ＤＦＴ：Ｄｓｉｇｎ　Ｆｏｒ　Ｔｅｓｔ）が含まれていない。
【０００６】
そこで、テスト回路合成工程Ｓ２にて、論理回路内の遅延フリップフロップ（Ｄ−ＦＦ）を抽出して、その遅延フリップフロップをスキャン機能付きのスキャンフリップフロップに置き換えて、そのスキャンフリップフロップを任意の順番に接続してスキャンチェーンを形成する。その結果、ネットリストＮＬ２が生成される。このネットリストＮＬ２では、論理設計工程Ｓ１で生成されたネットリストＮＬ１に対して、遅延フリップフロップがスキャンフリップフロップに置き換えられ、ネットリストＮＬ１の接続データに加えて、スキャンチェーンを形成する接続データが含まれる。
【０００７】
このネットリストＮＬ２に含まれるスキャン回路付きの論理回路に対して、テストパターンが自動生成される（Ｓ３）。テストパターンの自動生成工程では、ネットリストＮＬ２に含まれるスキャン回路付きの論理回路のデータと、論理回路を構成するセル及び追加されたスキャンフリップフロップの論理データを有する論理ライブラリＦ１０とが参照されて、入力テストパターンと期待される出力テストパターンとが生成される。これらはテストパターンファイルＦ１２として登録され、後のタイミング検証工程（図示せず）で利用される。
【０００８】
更に、ネットリストＮＬ２をもとにして、自動配置配線工程Ｓ４が行われる。自動配置配線工程Ｓ４では、ネットリストＮＬ２内の、論理回路を構成するセルのレイアウト及びそれらを接続する接続配線のレイアウトが、レイアウトライブラリＦ１４を参照して行われる。その結果、ネットリストＮＬ２に対するレイアウトデータファイルＦ１６が生成される。このレイアウトデータファイルには、スキャンフリップフロップとそれを接続してスキャンチェーンを構成するスキャン接続配線のレイアウトデータも含まれる。そのため、自動配置配線工程Ｓ４では、論理回路を構成するセルのレイアウトライブラリに加えて、スキャンフリップフロップのレイアウトライブラリも参照される。
【０００９】
ここで、テスト用データＤＦＴは、スキャンフリップフロップとそれを接続する接続配線であるが、従来の方法では、ネットリストＮＬ２に含まれるテスト用データは、ハードマクロであるスキャンフリップフロップにより構成される。ハードマクロとは、レイアウトライブラリに登録されていて、ネットリストから直接レイアウト可能なセルをいう。従って、上記の例では、スキャンフリップフロップはレイアウトライブラリに登録済みであるので、ハードマクロである。一方、ソフトマクロとは、レイアウトライブラリには登録されておらず、従って、レイアウトするためには、ソフトマクロの機能を実現する複数のハードマクロ（標準セル）に展開し、その展開した標準セルについてレイアウトライブラリのレイアウト情報を利用する必要がある。
【００１０】
図１に戻り、更に、自動配置配線工程Ｓ４で生成されたレイアウトデータＦ１６について、全てのレイアウトされた接続配線が実現可能か否かがチェックされ、実現可能でない場合、論理回路を構成するセル及びそれらの接続配線を優先したときに、スキャン回路によるスキャンチェーン用の接続配線がレイアウト可能か否かがチェックされる。それが不可能な場合は、セルやその接続配線の配置は変更せずに、スキャンチェーン配線の順番のみを変更するリオーダー工程が行われる。スキャンチェーンの順番を変更することで、その接続配線が簡素化されて、レイアウトが可能になる可能性があるからである。もしリオーダ工程が行われると、スキャン回路が変更されることになるので、テストパターン自動生成工程Ｓ３が再度行われ、新たなスキャンチェーンを有する論理回路に対するテストパターンＦ１２が再度作成される。
【００１１】
【発明が解決しようとする課題】
しかしながら、ネットリストから自動配置配線工程によりレイアウトデータを生成するためには、上記のとおり、レイアウトライブラリに登録されている標準セルのレイアウト情報を有するハードマクロを参照する必要がある。そのため、論理設計工程Ｓ１で生成されたネットリストＮＬ１に含まれる標準セルのハードマクロに加えて、テスト回路合成工程Ｓ２で挿入されたスキャンフリップフロップのハードマクロも、レイアウトライブラリＦ１４に登録しておくことが必要になる。
【００１２】
従って、スキャン機能付きの論理回路を設計してレイアウトを行うためには、スキャン機能を実現するためのスキャンフリップフロップのレイアウトライブラリ（ハードマクロライブラリ）が必要になり、ライブラリ登録の工数が増加するという課題がある。
【００１３】
また、スキャンフリップフロップのレイアウトライブラリを使用しないでスキャン機能を実現するためにスキャン回路を挿入し、それを複数の標準セルに展開した場合には、回路規模が大きくなるという課題がある。
【００１４】
そこで、本発明の目的は、スキャン回路用のレイアウトライブラリを必要とせずに、標準セルのレイアウトライブラリだけでスキャン回路を有する論理回路の自動配置を可能にする集積回路の設計方法を提供することにある。
【００１５】
また、本発明の別の目的は、スキャン回路用のレイアウトライブラリを必要とせずに、標準セルのレイアウトライブラリだけでスキャン回路を有する論理回路の自動配置を可能にし、且つレイアウト時の面積を小さくした集積回路の設計方法を提供することにある。
【００１６】
更に、本発明の別の目的は、スキャン回路を挿入した論理回路のレイアウト時の面積を小さくした集積回路の設計方法を提供することにある。
【００１７】
【課題を解決するための手段】
上記の目的を達成するために、本発明の第１の側面は、論理回路を有する集積回路の設計方法において、少なくとも第１のフリップフロップを含む複数の標準セルが接続された論理回路の接続データを有する第１のネットリストを、当該第１のフリップフロップをスキャン機能を有する第２のフリップフロップに変換し、当該第２のフリップフロップを接続するスキャンチェーン接続配線を追加して第２のネットリストに変換する第１の工程と、第２のネットリスト内の第２のフリップフロップを、当該第２のフリップフロップを構成する複数の標準セルに置き換えて第３のネットリストを生成すると共に、前記スキャンチェーン接続配線データを生成する第２の工程と、第３のネットリストに従って、それに含まれる標準セルとその接続配線とを配置し、前記スキャンチェーン接続配線の順番を最適化してスキャンチェーン接続配線の順番データを生成する第３の工程と、第２のフリップフロップと、前記スキャンチェーン接続配線の順番データに従うスキャンチェーン用接続配線とを有する第４のネットリストから、前記第２のフリップフロップを、複数の標準セルに置き換えて第５のネットリストを生成し、第５のネットリストに従って、それに含まれる標準セルとその接続配線とを配置する第４の工程とを有することを特徴とする。
【００１８】
上記第１の発明の側面によれば、上記第３の工程でレイアウト可能なスキャンチェーン用接続配線の順番データを一旦求め、その順番データを利用して生成した第４のネットリストから標準セルで構成される第５のネットリストに対して自動配置を行うので、スキャン機能付きの第２のフリップフロップのレイアウトライブラリを用いることなく、集積回路の設計を行うことができる。
【００１９】
上記の目的を達成するために、本発明の第２の側面は、少なくとも第１のフリップフロップを含む複数の標準セルが接続された論理回路の接続データを有する第１のネットリストを、当該第１のフリップフロップをスキャン機能付きの第２のフリップフロップに変換し当該第２のフリップフロップを接続するスキャンチェーン用接続配線を追加して、第２のネットリストに変換する第１の工程と、第２のネットリスト内の第２のフリップフロップを、当該第２のフリップフロップを構成する複数の標準セルに置き換えると共に、当該置き換えられた標準セルと他の標準セルとを、より面積が小さい別の標準セルに置き換えて第３のネットリストを生成する第２の工程と、第３のネットリストに従ってそれに含まれる標準セルとその接続配線とを配置し、レイアウトデータを生成する第３の工程とを有する。
【００２０】
上記第２の発明の側面によれば、スキャン機能を有する第２のフリップフロップを、複数の標準セルに置き換え、更に、その置き換えられた標準セルと他の標準セルとを別の標準セルに置き換えることで、第２のフリップフロップを追加したことに伴う面積の拡大をより小さく抑えることができる。
【００２１】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、本発明の保護範囲は、以下の実施の形態例に限定されるものではなく、特許請求の範囲に記載された発明とその均等物にまで及ぶものである。
【００２２】
図２は、本実施の形態に対する比較例としての設計工程のフローチャート図である。本実施の形態を説明するまえに、図１の従来例を一部変更した図２の比較例について説明する。
【００２３】
この比較例では、論理設計工程Ｓ１で生成したネットリストＮＬ１を、テスト回路合成工程Ｓ２にて、スキャン機能付きフリップフロップをスキャンチェーン接続させた試験回路を有する論理回路のネットリストＮＬ２を生成する。この工程は、従来例と同じように、遅延フリップフロップをスキャンフリップフロップに置き換え、更にそれらスキャンフリップフロップを接続するスキャンチェーン接続配線を追加することで変換が行われる。但し、比較例では、レイアウトライブラリに試験回路用のスキャンフリップフロップのハードマクロを登録しない例であり、従って、ネットリストＮＬ２内のスキャンフリップフロップは、複数の標準セルに展開する必要があるソフトマクロである。
【００２４】
ネットリストＮＬ２で定義されている論理回路に対して、テストパターンが自動生成される（Ｓ３）。これも従来例と同じであり、論理ライブラリＦ１０に登録されているスキャンフリップフロップと標準セルの論理データを参照して、テストパターンＦ１２が生成される。この段階では、スキャンフリップフロップが存在するので、テストパターンの生成が可能である。
【００２５】
更に、比較例では、スキャンフリップフロップのハードマクロを利用せずに自動配置を行うために、ネットリストＮＬ２内のスキャンフリップフロップを、同じ機能を実現できる複数の標準セル（ハードマクロ）に展開する（Ｓ１０）。
【００２６】
図３は、ソフトマクロのスキャンフリップフロップをハードマクロである標準セルに展開した例を示す図である。図中、破線のブロックはソフトマクロを、実線のブロックはハードマクロをそれぞれ示す。テスト回路として利用されるスキャンフリップフロップは、セレクタＳＥＬと遅延フリップフロップＤ−ＦＦとＮＡＮＤゲートとで構成される。つまり、ソフトマクロのスキャンフリップフロップＳＦＦは、３つの標準セルに展開可能である。そして、これらの標準セルＳＥＬ、Ｄ−ＦＦ、ＮＡＮＤは、それぞれ論理ライブラリＦ１０に登録されていると共に、ハードマクロとしてレイアウトライブラリＦ１４にも登録されている。従って、ソフトマクロであるスキャンフリップフロップＳＦＦは、より下層の複数のハードマクロに展開されることで、ハードマクロのレイアウト情報を利用してレイアウト可能になる。
【００２７】
このスキャンフリップフロップは、本来の論理回路を構成するセルとしての機能と、テストパターンの入出力に利用されるスキャン回路としての機能とを有する。スキャンモード信号ＳＭがＨレベルの時に、スキャン回路として機能し、スキャン入力ＳＩを遅延フリップＤ−ＦＦのデータ入力Ｄに接続し、データ出力ＱをＮＡＮＤゲートを経由してスキャン出力端子ＳＯに出力する。また、スキャンモード信号ＳＭがＬレベルの時に、論理回路を構成する遅延フリップフロップＤ−ＦＦとして機能し、通常のデータ入力Ｄを遅延フリップフロップＤ−ＦＦのデータ入力に接続する。データ出力Ｑは、そのままデータ出力端子Ｑから出力される。
【００２８】
図２に戻り、ネットリストＮＬ３のテスト回路は、図３のように標準セルで構成される。従って、ネットリストＮＬ３を構成する全てのセルは、そのハードマクロとしてレイアウトライブラリＦ１４に登録済みの標準セルである。そこで、ネットリストＮＬ３について、レイアウトライブラリＦ１４を参照して、自動配置配線が行われ、レイアウトデータＦ１６が生成される（Ｓ４）。
【００２９】
以上のように、テスト回路として追加したスキャンフリップフロップをソフトマクロとして取り扱い、自動配置配線工程を行う時に、そのソフトマクロを同じ機能を実現する複数の標準セル（ハードマクロ）に展開することで、スキャンフリップフロップのハードマクロをあらかじめ登録する必要はなくなる。しかしながら、スキャンフリップフロップを一旦複数の標準セルに展開することにより、元のスキャンフリップフロップのデータが失われてしまう。つまり、ネットリストＮＬ３には、スキャンフリップフロップのデータが存在せず、それに伴いスキャンチェーン接続配線を区別することができない。その結果、自動配置配線工程時に、スキャンチェーン配線の順番を最適化することができない。従って、スキャンフリップフロップのハードマクロを利用する必要はないが、スキャンチェーンの接続配線を再配置する最適化ができないので、混雑度によっては配線のレイアウトができない場合がある。
【００３０】
図４は、本実施の形態における設計工程のフローチャート図である。この実施例では、ソフトマクロによるテスト回路を追加したあと、ハードマクロに展開するときに、スキャンチェーンを構成する接続データを生成しておき、ハードマクロに展開したネットリストから自動配置を行った時点で、スキャンチェーンの順番の最適化を行う。そして、この最適化で得られたスキャンチェーンの順番データを利用して、最適化されたスキャンチェーンの順番になるようにスキャンフリップフロップ（ソフトマクロ）を接続したネットリストを生成する。この生成されたネットリストからテストパターンを生成し、そのソフトマクロをハードマクロに展開してから自動配置配線工程を行ってレイアウトデータを生成する。自動配置配線工程では、すでにスキャンチェーン配線の最適化は行われているので、スキャンチェーン配線を再度最適化することなくレイアウト可能になる。
【００３１】
以下、図４にしたがって設計工程を詳述する。従来例や比較例と同様に、論理設計工程Ｓ１により、複数の標準セルを接続した論理回路のネットリストＮＬ１が生成される。このネットリストＮＬ１には、テスト回路は含まれていない。そこで、テスト回路合成工程Ｓ２にて、ネットリストＮＬ１内の遅延フリップフロップをスキャンフリップフロップに置き換えて、更に、任意の順番でスキャンフリップフロップを接続するスキャンチェーンの接続配線を追加して、ネットリストＮＬ２を生成する。この段階では、スキャンフリップフロップは、ソフトマクロである。
【００３２】
図５は、ネットリストＮＬ１の一例を示す図である。このネットリストの論理回路は、入力ＩＮと出力ＯＵＴ１，２とクロック端子ＣＬＫとを有し、更に論理回路群内に６個の遅延フリップフロップ▲１▼〜▲６▼が含まれている。この論理回路は、入力ＩＮが供給されて、クロックＣＬＫに同期して回路が動作し、出力ＯＵＴ１，２が出力される。その動作において、６個の遅延フリップフロップＤ−ＦＦにそれぞれのデータが保持される。従って、ネットリストＮＬ１は、論理回路群を構成する複数の標準セルとそれに含まれる遅延フリップフロップのデータと、それらを接続する接続配線データとを含む。
【００３３】
図６は、テスト回路合成工程Ｓ２により生成されたネットリストＮＬ２の一例を示す図である。図５の遅延フリップフロップＤ−ＦＦは、全てスキャンフリップフロップＳＦＦに置き換えられ、更に、スキャンフリップフロップのスキャン入力ＳＩとスキャン出力ＳＯとを接続するスキャンチェーン接続配線とスキャンデータ入力端子ＳＤＩとスキャンデータ出力端子ＳＤＯとが追加されている。また、スキャンモードと通常モードとの切換を行うスキャンモード信号ＳＭをスキャンフリップフロップＳＦＦに供給する配線も追加されている。このスキャンフリップフロップＳＦＦは、ソフトマクロであり、論理的な情報からなる論理ライブラリには登録されているが、レイアウト情報からなるレイアウトライブラリには登録されていない。
【００３４】
図６に示されたテスト回路付きの論理回路では、スキャンデータ入力端子ＳＤＩからテストパターン入力をスキャンインして、６個のスキャンフリップフロップにテストパターンを保持させる。その状態で、クロックＣＬＫを供給して論理回路に所定サイクル動作を行わせて、その後スキャンフリップフロップに保持されたデータをスキャンアウトによりスキャンデータ出力端子ＳＤＯから出力する。その出力されたデータと期待値であるテストパターンとを比較することで、論理回路の動作検証が行われる。
【００３５】
図４に戻り、テスト回路合成工程Ｓ２で生成されたネットリストＮＬ２では、テスト回路を構成するスキャンフリップフロップがソフトマクロで構成され、その接続順は任意の順番になっている。この時に、スキャンフリップフロップＳＦＦを接続するスキャンチェーン接続配線のデータが、スキャンチェーンデータＦ２０として抽出される。このデータには、どの配線がスキャンチェーン接続配線であるかを示すデータである。つまり、図６に示した、スキャンデータ入力ＳＤＩと初段のスキャン入力ＳＩとを接続する配線と、各スキャンフリップフロップ間のスキャン出力ＳＯとスキャン入力ＳＩとを接続する配線と、最終段のスキャン出力ＳＯとスキャンデータ出力ＳＤＯとを接続する配線とが、このスキャンチェーンデータＦ２０に含まれる。
【００３６】
そこで、スキャンフリップフロップ変換工程Ｓ１０にて、ネットリストＮＬ２内のソフトマクロからなるスキャンフリップフロップが、図４に示したように複数のハードマクロに展開されて、ネットリストＮＬ３が生成される。この時、スキャンチェーンデータＦ２０はそのまま維持される。従って、ソフトマクロからなるスキャンフリップフロップがハードマクロである複数の標準セルに展開されても、そのスキャンチェーン接続配線がどれであるかのデータは維持される。
【００３７】
ハードマクロに展開されたネットリストＮＬ３に基づいて、レイアウトライブラリＦ１４を参照することで、自動配置工程Ｓ４が行われる。ネットリストＮＬ３内のセルは全てレイアウトライブラリにハードマクロとして登録された標準セルであるので、自動配置を行うことができる。自動配置工程では、レイアウトライブラリのレイアウト情報にしたがって各セルの配置が決定され、更に、セル間を接続する接続配線のレイアウトも決定される。その自動配置のアルゴリズムは、一般的なものであり、ここでは詳述しない。
【００３８】
図７は、スキャンチェーンのリオーダ前のレイアウト状態の一例を示す図である。図７には、スキャンフリップフロップとそれを接続するスキャンチェーン接続配線のみが示され、論理回路を構成するセルは省略されている。図８に示されるとおり、ソフトマクロであるスキャンフリップフロップＳＦＦは、セレクタＳと遅延フリップフロップＤＦＦとＮＡＮＤゲートＮからなるハードマクロに展開されている。従って、セレクタＳと遅延フリップフロップＤＦＦとＮＡＮＤゲートＮとでスキャンフリップフロップ単位が構成され、スキャンフリップフロップ単位内の配線経路は破線で示される通りであり、スキャンフリップフロップ単位間のスキャンチェーン配線経路は実線で示される通りである。図８では、スキャンモード制御信号やクロックの配線、論理回路用の接続配線は省略されている。
【００３９】
図７には、６つのスキャンフリップフロップ単位がレイアウトされている。図８と同様に、スキャンフリップフロップ単位内配線は破線で、単位間のスキャンチェーン配線は実線で示されている。そのスキャンチェーン配線の順番は、図６に示されたとおりＳＤＩ−▲１▼−▲２▼−▲３▼−▲４▼−▲５▼−▲６▼−ＳＤＯである。自動配置工程Ｓ４では、各セルが所定のレイアウトアルゴリズムに従って最適化された位置にそれぞれ配置され、セル間の接続配線もレイアウトされる。
【００４０】
スキャン回路は、スキャンフリップフロップにテストパターンをスキャンインし、動作後のテストパターンをスキャンアウトできれば良い。従って、実線のスキャンチェーン配線の順番は変更可能である。しかし、各スキャンフリップフロップ単位は維持される必要があり、破線の配線は変更することはできない。
【００４１】
図４に戻り、前述のとおり、実線のスキャンチェーン配線は、スキャンチェーンデータＦ２０として抽出されている。従って、この配線の順番を変更するスキャンチェーンのリオーダが、自動配置工程Ｓ４にて行われる。
【００４２】
図９は、スキャンチェーンのリオーダ後のレイアウト状態の一例を示す図である。ハードマクロのレイアウトによれば、スキャンフリップフロップ単位▲１▼のＮＡＮＤと▲３▼のセレクタが、▲３▼のＮＡＮＤと▲５▼のセレクタが、▲２▼のＮＡＮＤと▲４▼のセレクタが、▲４▼のＮＡＮＤと▲５▼のセレクタが、それぞれ近接している。そこで、リオーダにより実線のスキャンチェーン配線の順番をＳＤＩ−▲１▼−▲３▼−▲５▼−▲２▼−▲４▼−▲６▼−ＳＤＯに変更した結果が、図９に示される。これ以外のリオーダも可能であるが、図７のリオーダ前に比較すると、実線のスキャンチェーン配線は簡単化され、レイアウト可能になっている。
【００４３】
そして、上記のスキャンチェーン配線の順番であるＳＤＩ−▲１▼−▲３▼−▲５▼−▲２▼−▲４▼−▲６▼−ＳＤＯはスキャンチェーンオーダファイルＦ２２として生成される。
【００４４】
図４に示されるとおり、一旦最適化されたスキャンチェーン配線の順番データＦ２２が生成されると、ネットリストＮＬ１に対して、再度テスト回路合成工程Ｓ１１によりテスト回路を有するネットリストＮＬ４が生成される。この時、テスト回路を構成するスキャンフリップフロップの接続順は、スキャンチェーンオーダファイルＦ２２の順番データに従って決められる。従って、生成されたネットリストＮＬ４は、図６のネットリストＮＬ２と、スキャンチェーン配線の順番がＳＤＩ−▲１▼−▲３▼−▲５▼−▲２▼−▲４▼−▲６▼−ＳＤＯになっていること以外は同じである。
【００４５】
ネットリストＮＬ４の生成は、図６に示したネットリストＮＬ２のスキャンチェーン配線の順番を、スキャンチェーンオーダファイルＦ２２の順番に変更することによっても可能である。
【００４６】
ネットリストＮＬ４は、テスト回路がソフトマクロであるスキャンフリップフロップにより構成されている。そこで、従来例と同様に、テストパターン自動生成工程Ｓ１２にて、ネットリストＮＬ４に対して、テストパターンＦ１２が生成される。この時、標準セルとスキャンフリップフロップの論理データを有する論理ライブラリＦ１０が参照される。このテストパターンには、前述の通り、入力用テストパターンと期待値用テストパターンとが含まれる。
【００４７】
次に、論理最適化工程Ｓ１３において、ネットリストＮＬ４内のソフトマクロが、ハードマクロに展開されてネットリストＮＬ５に変換される。この論理最適化工程Ｓ１３では、スキャンフリップフロップ変換工程Ｓ１０において行ったソフトマクロのスキャンフリップフロップをハードマクロの標準セルに展開することに加えて、新たに展開された標準セルと元々存在していた周辺の標準セルとを組み合わせて、論理圧縮を行い、同じ機能を実現できる別のセルに置き換えるセルの最適化が行われる。このように複数の標準セルの組合せを変えることで、回路規模が小さい集積回路にすることができる。
【００４８】
図１０は、論理最適化工程の一例を示す図である。図１０には、ネットリストＮＬ４（図中（Ａ））が論理最適化によりネットリストＮＬ５（図中（Ｃ））に変換された例が示される。ネットリストＮＬ４内のスキャンフリップフロップＳＦＦの前段にＮＡＮＤゲートＧ１が存在しているものとする。これのネットリストＮＬ４内のソフトマクロであるスキャンフリップフロップＳＦＦをハードマクロである標準セルＳＥＬ、ＳＦＦ、Ｇ０に展開したものが図中（Ｂ）に示される。この状態はネットリストＮＬ３と同じである。
【００４９】
ここで、図中右欄にＮＡＮＤゲートＧ１をＡＮＤゲートとインバータに、セレクタＳＥＬをＡＮＤゲートＧ２，Ｇ３とＯＲゲートＧ４とインバータＧ５にそれぞれ展開した論理回路を示す。ＡＮＤゲートＧ３とその前段の２つのインバータを合体するとＮＯＲゲートに変換できる。その結果、論理最適化により、ネットリストＮＬ５では、ＮＡＮＤゲートＧ１とセレクタＳＥＬとが、ＡＮＤ／ＮＯＲゲート（５）とＡＮＤ／ＯＲゲート（６）とに置き換えられる。
【００５０】
図１０（Ｄ）は、レイアウトライブラリの一例を示し、各ハードマクロ（１）〜（６）の面積比率が、ＮＡＮＤゲートの１．０を基準として示される。つまり、ＮＡＮＤゲートＧ１とセレクタＳＥＬとの面積比率の合計は、１．０＋２．２５＝３．２５である。それに対して、ＡＮＤ／ＮＯＲゲート（５）とＡＮＤ／ＯＲゲート（６）との面積比率の合計は、１．２５＋１．７５＝３．０であり、ＮＡＮＤゲートＧ１とセレクタＳＥＬで展開した時よりも面積を小さくすることができる。
【００５１】
上記のような論理最適化によりスキャンフリップフロップ単位を構成するセルと周辺のセルとの間で論理圧縮を行うことにより、論理回路内の遅延フリップフロップをスキャンフリップフロップに変換したことに伴う面積の増加と、ソフトマクロを複数のハードマクロに展開したことに伴う面積の増加とを、少しでも抑制することができる。
【００５２】
図４に戻り、論理最適化工程Ｓ１３により生成されたネットリストＮＬ５は、ハードマクロを有する標準セルを接続した論理回路である。従って、ネットリストＮＬ５に基づいて、レイアウトライブラリＦ１４を参照し、自動配置配線工程Ｓ１４が行われ、そのレイアウトデータＦ１６が生成される。この段階では、スキャンチェーン配線が最適化されそのレイアウトが可能であることが検証済みであるので、その順番のリオーダは行われない。また、既にスキャンチェーンオーダファイルの順番に基づいて形成されたネットリストＮＬ４について、テストパターンＦ１２が生成済みであるので、リオーダを行うことはできない。リオーダによりスキャン回路構成が変更されるからである。
【００５３】
この自動配置配線工程Ｓ１４では、レイアウトされた配線の遅延時間データが計算される。その時、各信号配線が仕様で決められたセットアップタイムとホールドタイムを満足できるか否かがチェックされる。通常、レイアウト工程ではホールドタイムを満足できるように信号配線が形成され、セットアップタイムを満足できない場合に、その信号配線内に遅延ゲートが挿入される。そのようにセットアップタイムやホールドタイムを満足させるための遅延ゲートを加えたネットリストＮＬ６も、自動配置配線工程Ｓ１４で生成される。また、その信号配線の遅延時間データＦ２４も生成される。
【００５４】
そして、その後のタイミング検証工程Ｓ１５にて、ネットリストＮＬ６と、遅延データＦ２４と、テストパターンＦ１２にしたがって、論理回路のタイミング検証が行われる。タイミング検証でエラーが検出される場合は、遅延ゲートを挿入したりしてエラーを回避するようにされる。
【００５５】
以上の実施の形態例によれば、論理回路のテスト回路を挿入する場合に、スキャン回路を構成するスキャンフリップフロップのレイアウトライブラリが必要でないので、ライブラリ開発期間を短縮することができる。また、スキャン回路を挿入しても、論理最適化により回路規模をある程度削減することができる。
【００５６】
図４のフローチャートにおいて、スキャンフリップフロップ変換工程Ｓ１０と論理最適化工程Ｓ１３とが異なることにともない、ネットリストＮＬ３とネットリストＮＬ５とでは、構成される標準セルがわずかに異なる。これをなくすためには、スキャンフリップフロップ変換工程Ｓ１０でも論理最適化を行うようにすれば良い。
【００５７】
以上、実施の形態例をまとめると以下の付記の通りである。
【００５８】
（付記１）論理回路を有する集積回路の設計方法において、
少なくとも第１のフリップフロップを含む複数の標準セルが接続された論理回路の接続データを有する第１のネットリストを、当該第１のフリップフロップをスキャン機能を有する第２のフリップフロップに変換し、当該第２のフリップフロップを接続するスキャンチェーン接続配線を追加して第２のネットリストに変換する第１の工程と、
前記第２のネットリスト内の第２のフリップフロップを、当該第２のフリップフロップを構成する複数の標準セルに置き換えて第３のネットリストを生成すると共に、スキャンチェーン接続配線データを生成する第２の工程と、
前記第３のネットリストに従って、それに含まれる標準セルとその接続配線とを配置し、前記スキャンチェーン接続配線データに基づいて、前記スキャンチェーン接続配線の順番を最適化してスキャンチェーン接続配線の順番データを生成する第３の工程と、
前記第２のフリップフロップと、前記スキャンチェーン接続配線の順番データに従うスキャンチェーン接続配線とを有する第４のネットリストから、前記第２のフリップフロップを、複数の標準セルに置き換えて第５のネットリストを生成し、前記第５のネットリストに従って、それに含まれる標準セルとその接続配線とを配置する第４の工程とを有することを特徴とする集積回路の設計方法。
【００５９】
（付記２）付記１において、
更に、前記第４のネットリストにもとづいて、論理回路のテストパターンを生成する工程を有することを特徴とする集積回路の設計方法。
【００６０】
（付記３）付記２において、
前記テストパターンは、前記論理回路内の第２のフリップフロップに入力する入力テストパターンと、所定サイクル動作後に当該第２のフリップフロップから出力する期待値テストパターンとを有することを特徴とする集積回路の設計方法。
【００６１】
（付記４）付記２において、
前記第４のネットリストに含まれた前記第２のフリップフロップと標準セルは、論理情報を有する論理ライブラリに登録されており、前記テストパターン生成工程では、前記論理ライブラリが参照されることを特徴とする集積回路の設計方法。
【００６２】
（付記５）付記１において、
前記第４のネットリストは、前記第１のネットリストを、それに含まれる前記第１のフリップフロップを前記第２のフリップフロップに変換し、前記スキャンチェーン接続配線の順番データに従うスキャンチェーン接続配線を追加して形成されることを特徴とする集積回路の設計方法。
【００６３】
（付記６）付記１において、
前記標準セルは、レイアウト情報を有するレイアウトライブラリに登録されたハードマクロであり、前記第４の工程では、当該レイアウトライブラリを参照して標準セルの配置が行われることを特徴とする集積回路の設計方法。
【００６４】
（付記７）付記１において、
前記スキャン機能を有する第２のフリップフロップは、レイアウト情報を有するハードマクロとしてレイアウトライブラリに登録されていないことを特徴とする集積回路の設計方法。
【００６５】
（付記８）論理回路を有する集積回路の設計方法において、
少なくとも第１のフリップフロップを含む複数の標準セルが接続された論理回路の接続データを有する第１のネットリストを、当該第１のフリップフロップをスキャン機能を有する第２のフリップフロップに変換し、当該第２のフリップフロップを接続するスキャンチェーン接続配線を追加して第２のネットリストに変換する第１の工程と、
前記第２のネットリスト内の第２のフリップフロップを、当該第２のフリップフロップを構成する複数の標準セルに置き換えると共に、当該置き換えられた標準セルと周辺の標準セルとをより面積が小さい別の標準セルに置き換える最適化を行って第３のネットリストを生成する第２の工程と、
前記第３のネットリストに従って、それに含まれる標準セルとその接続配線とを配置する第３の工程とを有することを特徴とする集積回路の設計方法。
【００６６】
（付記９）付記８において、
前記標準セルは、レイアウト情報を有するレイアウトライブラリに登録されたハードマクロであり、前記第２の工程において、前記レイアウトライブラリの面積情報を参照して、前記別の標準セルに置き換える最適化を行うことを特徴とする集積回路の設計方法。
【００６７】
（付記１０）付記８において、
前記標準セルは、レイアウト情報を有するレイアウトライブラリに登録されたハードマクロであり、前記第３の工程では、当該レイアウトライブラリを参照して標準セルの配置が行われることを特徴とする集積回路の設計方法。
【００６８】
（付記１１）付記８において、
前記スキャン機能を有する第２のフリップフロップは、レイアウト情報を有するハードマクロとしてレイアウトライブラリに登録されていないことを特徴とする集積回路の設計方法。
【００６９】
【発明の効果】
以上、本発明によれば、スキャン回路を構成するスキャンフリップフロップのハードマクロライブラリを生成することなく、スキャン回路付きの論理回路を有する集積回路を設計することができる。また、本発明によれば、スキャン回路を含む集積回路の回路規模を抑制することができる。
【図面の簡単な説明】
【図１】従来のＬＳＩの設計工程を示すフローチャート図である。
【図２】本実施の形態に対する比較例としての設計工程のフローチャート図である。
【図３】ソフトマクロのスキャンフリップフロップをハードマクロである標準セルに展開した例を示す図である。
【図４】本実施の形態における設計工程のフローチャート図である。
【図５】ネットリストＮＬ１の一例を示す図である。
【図６】ネットリストＮＬ２の一例を示す図である。
【図７】スキャンチェーンのリオーダ前のレイアウト状態の一例を示す図である。
【図８】ソフトマクロとハードマクロに展開したスキャンフリップフロップ単位の例を示す図である。
【図９】スキャンチェーンのリオーダ後のレイアウト状態の一例を示す図である。
【図１０】論理最適化工程の一例を示す図である。
【符号の説明】
ＮＬ１〜ＮＬ５　　　第１〜第５のネットリスト
Ｆ１０　　　　　　　論理ライブラリ
Ｆ１２　　　　　　　テストデータ
Ｆ１４　　　　　　　レイアウトライブラリ
Ｆ２０　　　　　　　スキャンチェーン接続データ
Ｆ２２　　　　　　　スキャンチェーン接続順番データ
Ｄ−ＦＦ　　　　　　遅延フリップフロップ
ＳＦＦ　　　　　　　スキャンフリップフロップ
【図１】
2004078759.tif 000003
【図２】
2004078759.tif 000004
【図３】
2004078759.tif 000005
【図４】
2004078759.tif 000006
【図５】
2004078759.tif 000007
【図６】
2004078759.tif 000008
【図７】
2004078759.tif 000009
【図８】
2004078759.tif 000010
【図９】
2004078759.tif 000011
【図１０】
2004078759.tif 000012