(57)【要約】【課題】既存のライブラリを応用して論理合成方法および処理手順の見直しを行い設計効率化及びコスト低減が可能な半導体集積回路の設計方法の提供。【解決手段】パーシャルスキャン設計の場合には、スキャン化の際にスキャン機能付きフリップフロップに置き換わるスキャン機能なしフリップフロップと、スキャン化の際にスキャン機能付きフリップフロップに置き換わらないスキャンテスト機能なしのフリップフロップとを同時に使用し、フリップフロップ相互の接続条件に応じた回路合成を行い、論理回路を合成する（Ｓ２４）。【選択図】  図１
2004199268.tif 000002
【特許請求の範囲】
【請求項１】
機能記述設計されたソースプログラムについて論理合成ツールを用いて論理回路設計を行う半導体集積回路の設計方法であって、
合成時に使用するライブラリにおいてフリップフロップを複数用意し、
これらを１つはフリップフロップが合成時にデータ入力もしくは出力のどちらか一方の決められた端子、あるいはデータ入出力双方の端子が別のフリップフロップのデータ入出力端子のみにつながるフリップフロップであるという第１のグループと、もう１つはその他の論理ゲートもしくは外部ポートにもつながるフリップフロップである第２のグループに属するようにし、
前記用意された複数のフリップフロップを含むライブラリを使用して、少なくとも前記接続条件を満たすように回路合成を行うことを特徴とする半導体集積回路の設計方法。
【請求項２】
前記回路合成において、
フリップフロップが合成時にデータ入力もしくは出力のどちらか一方の決められた端子、あるいはデータ入出力端子の双方が別のフリップフロップのデータ入出力端子のみにつながるフリップフロップであるというグループをスキャン機能なしフリップフロップとし、
その他の論理ゲートもしくは外部ポートにもつながるフリップフロップをスキャン機能付きフリップフロップ置き換え後に相当するタイミング、面積、入出力ドライブ情報を設定したフリップフロップとする回路合成を行うことを特徴とする請求項１に記載の半導体集積回路の設計方法。
【請求項３】
前記スキャン機能なしフリップフロップと、前記スキャン機能付きフリップフロップに置き換え後を想定したタイミング情報を設定したフリップフロップとで構成された回路合成の結果を基にフロアプランを作成する場合に、フリップフロップに置き換えを想定した回路に対応するセルレイアウトの情報もスキャン機能付きフリップフロップ置き換え後に相当したレイアウトデータを用いてレイアウトツールによるフロアプラン設計を行うことを特徴とする請求項２に記載の半導体集積回路の設計方法。
【請求項４】
フリップフロップをスキャンテストのためスキャン機能付きフリップフロップに置き換えスキャンチェーン化する場合において、
前記回路合成の時点で異なるグループで設定されたデータ入力もしくは出力のどちらか一方の決められた端子、あるいはデータ入出力双方の端子が別のフリップフロップのデータ入出力端子のみにつながるフリップフロップを置き換え対象外とし、その他の論理ゲートもしくは外部ポートにもつながるフリップフロップを置き換え対象として置き換えを行うことを特徴とする請求項１に記載の半導体集積回路の設計方法。
【請求項５】
機能記述設計されたソースプログラムをもとに論理合成を行い、スキャンテスト機能を備えた論理回路を設計する半導体集積回路の設計方法において、
スキャン機能を有する第１のフリップフロップと、スキャン化の際にスキャン機能付きフリップフロップに置き換わりスキャン機能を有していない第２のフリップフロップと、スキャン化の際にスキャン機能付きフリップフロップに置き換わらずスキャン機能を有していない第３のフリップフロップと、を含むセルライブラリを準備する第１ステップと、
パーシャルスキャン設計の場合に、前記第２および前記第３のフリップフロップの両方を用いて前記ソースプログラムに基づいて論理合成を行って論理回路を作成する第２ステップと、
前記論理合成により作成された論理回路に基づいてフロアプラン処理を行う第３ステップと、
前記フロアプラン処理の結果に基づいて前記第２のフリップフロップを前記第１のフリップフロップに置き換え、スキャンチェーンを接続して前記論理回路のスキャン化を行う第４ステップと、
前記スキャンチェーンが接続された論理回路に対してテストパターン設計を行う第５ステップと、を有し、
前記第２ステップにおける前記パーシャルスキャン設計の際には、
任意のフリップフロップの通常データ入力端子の他のフリップフロップの通常データ出力端子に接続されている場合、任意のフリップフロップの通常データ出力端子が他のフリップフロップの通常データ入力端子に接続されている場合、または任意のフリップフロップの通常データ入出力端子が他の異なるフリップフロップの通常データ入出力端子に接続されている場合は、前記任意のフリップフロップは第３のフリップフロップを選択し、
任意のフリップフロップの接続が前記以外の場合は、前記任意のフリップフロップは前記第２のフリップフロップを選択することを特徴とする半導体集積回路の設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、機能記述設計されたソースプログラムをもとに論理合成を行い、スキャンテスト機能を有する論理回路を設計する半導体集積回路の設計方法に関するものである。
【０００２】
【従来の技術】
近年、半導体集積回路の大規模化および同期回路化に伴い、機能記述を用いた論理合成による回路設計、およびテストパターンを自動的に生成するための方法としてスキャン設計法が知られている。機能記述を用いた論理合成による回路設計では、機能記述言語を用いて論理動作を記述し、論理合成ツールによって自動的に論理回路を生成する。
【０００３】
一般的なスキャン設計法、およびこの一般的なスキャン設計法の設計効率化およびコスト低減が可能なテスト方法として改良したスキャン設計法が知られている（例えば、特許文献１参照）。
一般的なスキャン設計法について、図１２を参照して説明する。
まず、機能記述されたソースプログラムについて、スキャン機能を備えていないフリップフロップ回路を用いて論理合成を行う（ステップＳ１）。次に、スキャン機能を備えたフリップフロップ回路への置き換え作業（以下、スキャンインサーションという）を行う（ステップＳ２）。続いて、スキャンインサーションされた回路に対して、テストパターン自動生成（ＡＴＰＧ）を実行する（ステップＳ３）。最後に、フロアープラン（ステップＳ４）、および配置・配線（ステップＳ５）を行う。
【０００４】
次に、改良したスキャン設計法について、図１３を参照して説明する。
まず、ステップＳ１１では、図４に示すような論理合成専用のスキャン機能を備えた（ただし、スキャン切り替え信号とスキャン入力を固定したもの）フリップフロップ回路ライブラリを準備する。ステップＳ１２では、スキャン機能を備えたフリップフロップ回路のみで論理合成を行う。
【０００５】
ステップＳ１３では、レイアウトツールを用いて、配置・配線を行うとともに、クロックツリー合成を行い、フロアープランの検討を行う。この結果に基づき、ステップＳ１４では、スキャンチェーンを接続して論理回路を完成させる。ステップＳ１５では、ＡＴＰＧツールによるテストパターンの自動作成を行う。
ステップＳ１６では、フルスキャン設計するか否かが選択され、フルスキャン設計ではなくパーシャルスキャン設計の場合には、ステップＳ１７に進む。ステップＳ１７では、フルスキャン設計した回路に対して、通常動作モードにおいて本来スキャン機能付きフリップフロップ回路を使用する必要のないただのシーケンシャル接続のシフトレジスタとなる部分を、スキャン機能無しフリップフロップ回路に置き換える。そして、パーシャルスキャン設計化した回路に対してフルスキャン回路で設計したテストパターンを適用する。
【０００６】
【特許文献１】
特開２０００−２０５６０号公報
【０００７】
【発明が解決しようとする課題】
しかし、図１３に示す処理方法では、シフトレジスタ構成をパーシャルスキャン化したい場合でも、一度フルスキャン設計を行う必要性があり設計作業コストを増大させている。
また、ライブラリの回路図として、図４に示すような「論理合成専用のスキャン機能を備えたフリップフロップ回路」が別途必要となる。これは、実際の集積回路では使用されない中間的なゲートレベルの回路を専用に用意することになり、通常のフリップフロップ回路、スキャン機能付きフリップフロップ回路、およびスキャン機能を固定した専用の回路の３つが最低必要となり、ライブラリ作成時の作業やライブラリ管理が不便となる。
【０００８】
さらに、スキャンチェーン接続前から回路情報としてスキャン機能部の回路情報を持たなければならない。このため、シュミレータによってはスキャン機能部の情報を取り込むことになる場合もあり、この場合には計算速度に影響を及ぼす懸念や記憶装置の記憶容量の増大を招く場合があり得る。
また、設計者が当初意図していない配線情報が加えられるため、回路図を直接見る場合にわかりにくく設計能率が悪くなる。
【０００９】
一方、図１２に示すスキャン設計法では、スキャン機能無しフリップフロップ回路で合成されるため、スキャン機能付きフリップフロップ回路に置き換えた場合に大きなタイミング誤差が発生する。
これに対して、図１３に示す処理方法では、逆にフルスキャン設計回路からパーシャルスキャン化の場合、「通常動作モードにおいてシフトレジスタ構成となる回路部分を抽出し、この回路部分をスキャン機能を備えていないフリップフロップ回路に置き換える」という作業により、置き換え前後でデータ伝搬時間に差異を生ずる可能性が高い。
【００１０】
従って、いずれの場合も再び最適化作業が必要となるので、開発コストが増大する。
また、図１３に示す処理方法では、フロアープランの作成はパーシャルスキャン設計またはフルスキャン設計を選択する前でありフルスキャン回路のみに対するものである。このため、フリップフロップ回路の面積が占める部分が最終的な状態とは異なり、フロアープランとして面積・タイミング共に最適なものが得られない。これは、近年のサブミクロンプロセスのようなセル遅延が微小なプロセスでは、クロックツリー作成後にスキューエラーが発生するような大きな問題が生じる可能性がある。
【００１１】
特に、「パーシャルスキャン設計化した回路に対してフルスキャン回路で設計したテストパターンを適用する」という場合には、フルスキャン回路で生成したＡＴＰＧパターンがそのまま使用可能な状態になるのはあまりない。このため、あらかじめそうなるように意図的にチェーン生成を施さなければならない必要性がある。
【００１２】
フリップフロップ回路を置き換えるツールにてパーシャルスキャン設計の対象を指定する場合には、元の回路には対象を区別する情報を持たないため、対象を回路固有のインスタンス名などで全て列挙する必要があり、大きな記憶容量を必要とし、また指定時の漏れや間違いが発生する可能性も高くなる。
【００１３】
さらに、従来の手法では、ライブラリを作成する場合に、置き換え後にタイミング差などが出にくいようにするためには、スキャン機能の有る無しでフリップフロップ回路の遅延やドライブ能力に大きな差異が生じないようにする必要があり、トランジスタサイズを小さくできる場合でも同程度のサイズにしてライブラリを作成することが多い。このような手法面での制約は本来の面積・消費電力コストの最適化を阻害する制約となる場合がある。
そこで、本発明の目的は、上記の点に鑑み、既存のライブラリを応用して論理合成方法および処理手順の見直しを行うことにより、設計効率化およびコスト低減が可能な半導体集積回路の設計方法を提供することにある。
【００１４】
【課題を解決するための手段】
上記課題を解決して本発明の目的を達成するために、請求項１〜請求項５に記載の各発明は、以下のように構成した。
すなわち、請求項１に記載の発明は、機能記述設計されたソースプログラムについて論理合成ツールを用いて論理回路設計を行う半導体集積回路の設計方法であって、合成時に使用するライブラリにおいてフリップフロップを複数用意し、これらを１つはフリップフロップが合成時にデータ入力もしくは出力のどちらか一方の決められた端子、あるいはデータ入出力双方の端子が別のフリップフロップのデータ入出力端子のみにつながるフリップフロップであるという第１のグループと、もう１つはその他の論理ゲートもしくは外部ポートにもつながるフリップフロップである第２のグループに属するようにし、前記用意された複数のフリップフロップを含むライブラリを使用して、少なくとも前記接続条件を満たすように回路合成を行うことを特徴とするものである。
【００１５】
請求項２に記載の発明は、請求項１に記載の半導体集積回路の設計方法において、前記回路合成において、フリップフロップが合成時にデータ入力もしくは出力のどちらか一方の決められた端子、あるいはデータ入出力端子の双方が別のフリップフロップのデータ入出力端子のみにつながるフリップフロップであるというグループをスキャン機能なしフリップフロップとし、その他の論理ゲートもしくは外部ポートにもつながるフリップフロップをスキャン機能付きフリップフロップ置き換え後に相当するタイミング、面積、入出力ドライブ情報を設定したフリップフロップとする回路合成を行うことを特徴とするものである。
【００１６】
請求項３に記載の発明は、請求項２に記載の半導体集積回路の設計方法において、前記スキャン機能なしフリップフロップと、前記スキャン機能付きフリップフロップに置き換え後を想定したタイミング情報を設定したフリップフロップとで構成された回路合成の結果を基にフロアプランを作成する場合に、フリップフロップに置き換えを想定した回路に対応するセルレイアウトの情報もスキャン機能付きフリップフロップ置き換え後に相当したレイアウトデータを用いてレイアウトツールによるフロアプラン設計を行うことを特徴とするものである。
【００１７】
請求項４に記載の発明は、請求項１に記載の半導体集積回路の設計方法において、フリップフロップをスキャンテストのためスキャン機能付きフリップフロップに置き換えスキャンチェーン化する場合において、前記回路合成の時点で異なるグループで設定されたデータ入力もしくは出力のどちらか一方の決められた端子、あるいはデータ入出力双方の端子が別のフリップフロップのデータ入出力端子のみにつながるフリップフロップを置き換え対象外とし、その他の論理ゲートもしくは外部ポートにもつながるフリップフロップを置き換え対象として置き換えを行うことを特徴とするものである。
【００１８】
請求項５に記載の発明は、機能記述設計されたソースプログラムをもとに論理合成を行い、スキャンテスト機能を備えた論理回路を設計する半導体集積回路の設計方法において、スキャン機能を有する第１のフリップフロップと、スキャン化の際にスキャン機能付きフリップフロップに置き換わりスキャン機能を有していない第２のフリップフロップと、スキャン化の際にスキャン機能付きフリップフロップに置き換わらずスキャン機能を有していない第３のフリップフロップと、を含むセルライブラリを準備する第１ステップと、パーシャルスキャン設計の場合に、前記第２および前記第３のフリップフロップの両方を用いて前記ソースプログラムに基づいて論理合成を行って論理回路を作成する第２ステップと、前記論理合成により作成された論理回路に基づいてフロアプラン処理を行う第３ステップと、前記フロアプラン処理の結果に基づいて前記第２のフリップフロップを前記第１のフリップフロップに置き換え、スキャンチェーンを接続して前記論理回路のスキャン化を行う第４ステップと、前記スキャンチェーンが接続された論理回路に対してテストパターン設計を行う第５ステップと、を有し、前記第２ステップにおける前記パーシャルスキャン設計の際には、任意のフリップフロップの通常データ入力端子の他のフリップフロップの通常データ出力端子に接続されている場合、任意のフリップフロップの通常データ出力端子が他のフリップフロップの通常データ入力端子に接続されている場合、または任意のフリップフロップの通常データ入出力端子が他の異なるフリップフロップの通常データ入出力端子に接続されている場合は、前記任意のフリップフロップは第３のフリップフロップを選択し、任意のフリップフロップの接続が前記以外の場合は、前記任意のフリップフロップは前記第２のフリップフロップを選択することを特徴とするものである。
【００１９】
このような構成からなる本発明によれば、シフトレジスタの構成部にパーシャルスキャンテスト回路設計を行う場合に、接続条件に応じてグループ（名前）の異なるフリップフロップを配置することにより、フルスキャン設計というステップを踏まずに直接スキャン設計を行うことができる。このため、中間データであるフルスキャンデータ回路を持つ必要がなくなり、ライブラリ作成時の作業やライブラリ管理コストが軽減される。
【００２０】
また、中間データが無いということは、これを扱うシミュレータや記憶装置などに対する負荷や投資コストを抑えることが可能であると共に、合成回路図は余分な付加配線のない設計者が意図した回路であるため設計データが検証しやすく開発工程の短縮にもつながる。
また、本発明では、あかじめスキャン機能付きフリップフロップのパラメータを、スキャンチェーン対象セルとして指定するフリップフロップに対して設定することでパーシャルスキャン回路生成時に置き換えによるタイミングダメージを抑えているので、タイミング調整などの開発工程の繰り返しを削減できる。
【００２１】
【発明の実施の形態】
以下、本発明の半導体集積回路の設計方法の実施形態について、図面を参照して説明する。
図１は、この実施形態に係る半導体集積回路の設計方法の手順を示すフローチャートである。
【００２２】
図２は、この実施形態に係る半導体集積回路の設計方法で使用するスキャン機能なしフリップフロップ１のシンボルを示し、図３はそれに使用するスキャン機能付きフリップフロップ５のシンボルを示す。
スキャン機能付きフリップフロップ１は、データ入力端子２、データ出力端子３、およびクロック入力端子４を有し、合成用ライブラリではＡＳＩＣコンポーネントセルとして管理可能な名前や番号をセル名として付け、これを構成するゲート構造の回路図とともにライブラリ（以下、セルライブラリという）として使用する。
【００２３】
また、セルに対しては、ゲートレベルの回路図とは別に、このセルに対応するレイアウト面積、入出力タイミング特性、入出力ドライバ能力特性などのテクノロジを記述したライブラリ（以下、テクノロジライブラリ）を使用する。
スキャン機能付きフリップフロップ５は、図３に示すように、データ入力端子６、データ出力端子７、クロック入力端子８、スキャン入力用端子９、およびデータ入力端子６またはスキャン入力用端子９を選択するスキャン切り替え制御信号端子１０を有する。
【００２４】
次に、設計方法の手順について図１を参照して説明する。
まず、ステップＳ２１では、セルライブラリとして、複数のフリップフロップを用意する。すなわち、スキャン機能なしフリップフロップの他に、スキャン機能付きのフリップフロップに置き換えた時に相当する入出力タイミング特性などを設定したフリップフロップを準備する。
【００２５】
例えば、セル名として「ＦＦＡ」と名付けられたフリップフロップと、セル名として「ＦＦＢ」と名付けられたフリップフロップとを用意する。この例では、後述のステップＳ２６でスキャン化の際に、フリップフロップ名によりスキャン機能付きフリップフロップへの置き換え対象を一括指定する。このため、置き換え用に指定するフリップフロップは、あらかじめスキャン機能付きフリップフロップ置き換え後に相当する入出力タイミング特性、レイアウト面積、入出力ドライブ能力特性をテクノロジライブラリに設定したフリップフロップとする。
【００２６】
図６の例では、セル名「ＦＦＢ」のフリップフロップ３１、３２に対するテクノロジライブラリの値は、通常どおりのものである。セル名「ＦＦＡ」のフリップフロップには、図５のようにスキャン機能付きフリップフロップ１７の出力２０を自己のスキャン入力用端子に接続し、スキャンパスが切り替わらないように切り替え信号２１を固定した状態で特性を抽出し、レイアウト面積、入出力タイミング特性、入出力ドライバ能力特性のテクノロジライブラリパラメータで置き換えをしている。
【００２７】
なお、テクノロジライブラリだけを置き換えるのではなく、回路そのものを図５のようなスキャンテスト機能付きフリップフロップを使用しても良い。
ここで、ライブラリの最小の構成を考えた場合に、フリップフロップに関しては、セルライブラリは以下のものを用意する。
すなわち、セルライブラリとしては、セル名だけが異なるスキャンテスト機能なしフリップフロップ（図２参照）と、スキャン化の際に置き換わるスキャン機能付きフリップフロップ（図３参照）だけで良い。
【００２８】
これに設定するテクノロジライブラリとしては、通常のスキャン機能なしのフリップフロップ（図２参照）の状態で特性を抽出したパラメータと、スキャン機能付きフリップフロップに置き換え後に相当する状態で特性を抽出したパラメータ（レイアウト面積、入出力タイミング特性、入出力ドライバ能力特性）と、スキャン機能付きのフリップフロップ（図３参照）の状態で特性を抽出したパラメータとの３つを用意する。
【００２９】
ステップＳ２２では、フルスキャン設計またはパーシャルスキャン設計のいずれかが選択される。そして、ＡＴＰＧツールなどの都合によりフルスキャン設計が選択された場合にはステップＳ２３に進み、パーシャルスキャン設計が選択された場合にはステップＳ２４に進む。
ステップＳ２３では、フリップフロップとしては後述のスキャン化の際にスキャン機能付きフリップフロップに置き換わるフリップフロップのみを使用して、機能記述設計されたソースプログラムに基づいて、論路合成を行って論理回路を作成する。
【００３０】
この場合には、単に合成ライブラリから置き換えしない通常のフリップフロップを外すか使用禁止にするだけで良く、フリップフロップは置き換え後に相当するスキャン機能付きのフリップフロップの入出力タイミング特性などを設定したセルだけで論理合成される。
ステップＳ２４では、パーシャルスキャン設計を実現するために、機能記述設計されたソースプログラムに基づいて論理合成を行い、論理回路を作成する。
【００３１】
すなわち、機能記述設計されたソースプログラムに基づき、後述のスキャン化の際にスキャン機能付きフリップフロップに置き換わるスキャン機能なしフリップフロップと、スキャン化の際にスキャン機能付きフリップフロップに置き換わらないスキャンテスト機能なしのフリップフロップとを使用し、フリップフロップの接続条件の定義に応じた論理合成を行い、論理回路を作成する。
【００３２】
図６は、このように論理合成された回路のフリップフロップの接続状態の一例を示す。この例では、論理合成時に、シフトレジスタを構成する任意のフリップフロップのデータ入力端子が、他のフリップフロップのデータ入出力端子のみに接続されるかどうかで、適応させるフリップフロップを異なるものとしている。
すなわち、図６において、フリップフロップ３１はデータ入力端子がフリップフロップ以外の組み合わせ回路３０に接続されており、そのセル名を「ＦＦＡ」としている。また、フリップフロップ３２、３３は、各データ入力端子が他のフリップフロップのデータ入出力端子と接続されるため、論理合成時にはセル名が「ＦＦＡ」とは異なる「ＦＦＢ」が割り当てられている。
【００３３】
ここで、後述のように、テスト設計としてスキャン機能付きフリップフロップに置き換える場合に、レイアウト面積が増大しないように、シーケンシャルに接続された状態のフリップフロップを置き換え対象から外すことは設計効率化およびコスト低減化の上で非常に重要である。この例では、図７に示すように、セル名が「ＦＦＡ」であるフリップフロップをスキャン機能付きフリップフロップ、セル名が「ＦＦＢ」であるものを通常のスキャン機能なしのフリップフロップというように、単純にセル名またはグループ名で一括指定する。
【００３４】
また、ステップＳ２４の時点で、置き換え用に指定するセルは、あらかじめスキャン機能付きフリップフロップに置き換え後に相当するタイミング、レイアウト面積、入出力ドライブ特性をテクノロジライブラリに設定したフリップフロップとしている。このため、スキャン機能付きフリップフロップとスキャン機能なしフリップフロップとが混在している実際の回路遅延状態で、論理合成が実施される。
【００３５】
ステップＳ２５では、上記のように論理合成により生成された回路情報をもとに、レイアウトツールにてフロアープランを検討する。
ここで、スキャン機能付きフリップフロップの置き換えを想定したセルのレイアウト情報に基づいてフロアープランに必要なものを設定することで、レイアウト面積の最適化や配線の最適化、クロックツリーの設計も最終的な配置を想定して実施する。
【００３６】
ステップＳ２６では、フリップフロップのスキャン化対象をセル名（または対象セルの集合であるグループ名）で指定し、フロアプラン情報と併せてスキャン機能付きフリップフロップに置き換えてスキャンチェーンを接続する。
このような処理により、図６の回路図は、図７に示すような回路図に置き換わる。すなわち、図６に示すセル名が「ＦＦＡ」のセルは、図７に示すようにセル名が「ＦＦＡＳ」というスキャン機能付きフリップフロップ３５に置き換わり、かつ、スキャンチェーン３８とスキャン切り替え信号３７が配線される。
【００３７】
ステップＳ２７では、スキャンテストが可能となった最終回路に対し、自動テストパターン生成ツール（ＡＴＰＧ）でテストパターンを生成する。
ここで、フルスキャンしか扱えないＡＴＰＧの場合は、ステップＳ２３でフルスキャン用のライブラリのみにしているため、特に異なったフロー（手順）や調整も必要としない。
【００３８】
最後のステップＳ２８では、レイアウト配置・配線を完成し、レイアウトデザインを検証して半導体集積回路を完成させる。
以上説明したように、この実施形態によれば、シフトレジスタの構成部にパーシャルスキャンテスト回路設計を行う場合に、接続条件に応じてセル名の異なるフリップフロップを配置することにより、フルスキャン設計というステップを踏まずに直接スキャンチェーン設計を行うことができる。このため、中間データであるフルスキャンデータ回路を持つ必要がなくなり、ライブラリ作成時の作業やライブラリ管理コストが軽減される。
【００３９】
また、中間データが無いということは、これを扱うシミュレータや記憶装置などに対する負荷や投資コストを抑えることが可能であると共に、合成回路図は余分な付加配線のない設計者が意図した回路であるため設計データが検証しやすく開発工程の短縮にもつながる。
また、最終回路におけるスキャン機能なしフリップフロップとスキャン機能付きフリップフロップの両方とも、合成段階からテクノロジファイルとして最終形態である回路を想定したものを使用することで、従来のパーシャルスキャン回路生成時に置き換えによるタイミングダメージを抑えているので、タイミング調整などの開発工程の繰り返しを削減できる。
【００４０】
また、この実施形態では、フロアープランがフルスキャン回路でしか作成されなかった場合と異なり、あらかじめスキャン機能付き置き換え予定セルのレイアウト情報を用いてフロアープランを作成することで、スキャン機能付きフリップフロップとスキャン機能無しフリップフロップを混在した状態で実施される。このため、クロックツリーの精度やタイミングが正確で面積も小さく最適化されたフロアープランレイアウトが作成できる。
【００４１】
特に、この実施形態は、ＡＴＰＧで作成されたパターンは最終的なテスト回路を元に作成されたものであり、フルスキャン化した回路であっても、パーシャルスキャン化した回路であっても、パターンが適合しなくなるというような不都合は発生しないという利点がある。
また、この実施形態によれば、置き換えを行うツールにて対象を指定するような場合には、セル名（グループ名）により簡単な指定が可能となる。このため、対象回路の指定漏れや間違いが起こりにくく、品質回路の向上と開発期間の短縮に有効である。また、全ての対象回路（インスタント名など）を記憶する場合に比べて記憶装置への負担が殆どない。
【００４２】
さらに、この実施形態によれば、あらかじめ論理合成の段階でシフトレジスタ構成となるフリップフロップを予定できるため、サイズや消費電流の小さい専用のフリップフロップを準備して適応させることが可能となり、本来のレイアウト面積、消費電力コストを考えたライブラリの構築が可能となり、論理合成時の最適化やコスト削減に寄与し得る。
【００４３】
次に、この実施形態の他の２つの適用例について、図８〜図１１を参照して説明する。
図８は、論理合成の時に、置き換えの対象とならないフリップフロップは、そのデータ出力端子が、他のフリップフロップのデータ入力端子に接続される場合と定義したときに、論理合成により得られる回路の結果を示している。
【００４４】
この例では、フリップフロップ４０、４１の各データ出力端子が他のフリップフロップに接続されるのでセル名を「ＦＦＢ」とし、フリップフロップ４２はデータ出力端子がそのスキャン出力など外部への最終出力４４に接続されるため、セル名が「ＦＦＢ」とは異なる「ＦＦＡ」となるように論理合成している。
なお、フリップフロップ４０は、データ入力端子が組み合わせ回路４３に接続されているが、上記の定義によりフリップフロップのデータ出力端子を基準に接続条件を見ているので、フリップフロップ４１と同じグループのセルになっている。これをスキャン化した場合には、図８に示すセル名が「ＦＦＡ」のフリップフロップ４２は、図９に示すように、セル名が「ＦＦＡＳ」というスキャン機能付きフリップフロップ４５に置き換わり、かつ、スキャンチェーン４６とスキャン切り替え信号４７が配線されてスキャンテストが可能となる。
【００４５】
図１０は、論理合成の時に、置き換えの対象とならないフリップフロップは、そのデータ入出力端子の双方が、他のフリップフロップのデータ入出力端子に接続される場合と定義したときに論理合成により得られる回路の結果を示している。
この例では、フリップフロップ６１のデータ入力端子が他のロジック回路６０に接続されるのでセル名が「ＦＦＡ」、フリップフロップ６３はデータ出力端子が他のロジック回路６４に接続されるのでセル名が「ＦＦＡ」、フリップフロップ６２はデータ入出力端子の双方が他のフリップフロップに接続されるのでセル名が「ＦＦＢ」となるように論理合成している。
【００４６】
これをスキャン化した場合には、図１０に示すセル名が「ＦＦＡ」のフリップフロップ６１、６３は、図１１に示すように、セル名が「ＦＦＡＳ」というスキャン機能付きフリップフロップ６６、６７に置き換わり、スキャンテストが可能となる。
これは、ＡＴＰＧツールによっては組み合わせ回路に接続されるフリップフロップの全てがスキャン機能付きフリップフロップであるのが都合の良い場合の定義である。
【００４７】
【発明の効果】
以上説明したように、本発明によれば、シフトレジスタの構成部にパーシャルスキャンテスト回路設計を行う場合に、接続条件に応じてテクノロジィファイルの異なるフリップフロップを配置することにより、フルスキャン設計というステップを踏まずに直接スキャン設計を行うことができる。このため、中間データであるフルスキャンデータ回路を持つ必要がなくなり、ライブラリ作成時の作業やライブラリ管理コストが軽減される。
【００４８】
また、中間データが無いということは、これを扱うシミュレータや記憶装置などに対する負荷や投資コストを抑えることが可能であると共に、合成回路図は余分な付加配線のない設計者が意図した回路であるため、設計データが検証しやすく開発工程の短縮にもつながる。
さらに、本発明では、最終回路におけるスキャン機能なしフリップフロップとスキャン機能付きフリップフロップの両方とも、合成段階からテクノロジファイルとして最終形態である回路を想定したものを使用することで、従来のパーシャルスキャン回路生成時に置き換えによるタイミングダメージを抑えているので、タイミング調整などの開発工程の繰り返しを削減できる。
【図面の簡単な説明】
【図１】本発明の半導体集積回路の実施形態に係る設計方法の手順を示すフローチャートである。
【図２】この設計方法で使用するスキャン機能なしフリップフロップのシンボルを示す図である。
【図３】この設計方法で使用するスキャン機能付きフリップフロップのシンボルを示す図である。
【図４】従来の一般的なスキャン設計方法によって使用されるフリップフロップの接続図である。
【図５】スキャン機能付きフリップフロップをスキャン機能なしフリップフロップとして機能的に使用する場合の回路図である。
【図６】この設計方法によって論理合成された回路のフリップフロップの接続状態を示す図である。
【図７】図６の回路のフリップフロップを置き換えスキャンチェーン接続した状態の図である。
【図８】フリップフロップの接続条件の定義を変え、そのときに論理合成された回路のフリップフロップの接続状態を示す図である。
【図９】図８の回路のフリップフロップを置き換えスキャンチェーン接続した状態の図である。
【図１０】フリップフロップの接続条件の定義をさらに変え、そのときに論理合成された回路のフリップフロップの接続状態を示す図である。
【図１１】図１０の回路のフリップフロップを置き換えスキャンチェーン接続した状態の図である。
【図１２】従来の一般的なスキャン設計法の手順を示すフローチャートである。
【図１３】従来の一般的なスキャン設計法の設計効率化およびコスト低減が可能なテスト方法として改良したスキャン設計法の手順を示すフローチャートである。
【符号の説明】
１、３１、３２、３３  スキャン機能なしフリップフロップ
５、３５  スキャン機能付きフリップフロップ
２、６  通常データ入力端子
３、７  通常データ出力端子
４、８  クロック端子
９  スキャンデータ入力端子
１０  スキャンモード切り替え端子
３０  組み合わせ回路
【図１】
2004199268.tif 000003
【図２】
2004199268.tif 000004
【図３】
2004199268.tif 000005
【図４】
2004199268.tif 000006
【図５】
2004199268.tif 000007
【図６】
2004199268.tif 000008
【図７】
2004199268.tif 000009
【図８】
2004199268.tif 000010
【図９】
2004199268.tif 000011
【図１０】
2004199268.tif 000012
【図１１】
2004199268.tif 000013
【図１２】
2004199268.tif 000014
【図１３】
2004199268.tif 000015