(57)【要約】  ＤＦＴ回路のレイアウト自動設計工程における故障検出率を向上するために、ＤＦＴ回路の信号線をＥＸＯＲ  ｔｒｅｅ回路の代わりにＡＮＤ  ｔｒｅｅ回路１またはＯＲ  ｔｒｅｅ回路で集約し、出力を観測用フリップフロップ２で受ける。各信号線を出力する部分回路が共有されていたりする場合や、その部分回路が同じ構造となっていたりする場合にＥＸＯＲ  ｔｒｅｅ回路を用いてＤＦＴ回路の故障検出処理を行うと、信号同士が打ち消しあって、元の部分回路の故障を検出できなくなってしまう場合があるが、ＥＸＯＲ  ｔｒｅｅ回路を用いる代わりにＡＮＤ  ｔｒｅｅ回路１またはＯＲ  ｔｒｅｅ回路をもちいることにより、そのような不具合を防ぐことができる。
2010073399.tif 000002
【特許請求の範囲】
【請求項１】
回路故障検出用の観測回路を含む半導体集積回路の設計方法であって、
（ａ）論理的グルーピングおよび確率的グルーピングに必要な初期情報群を読み込む工程、
（ｂ）前記論理的グルーピングを行い、論理階層的に近い信号線毎に複数のクラスタを形成する工程、
（ｃ）１つのＡＮＤ  ｔｒｅｅもしくは１つのＯＲ  ｔｒｅｅに電気的に接続される最大ファンイン数を決定し、前記最大ファンイン数を前記初期情報群に含める工程、
（ｄ）前記初期情報群を基に前記確率的グルーピングを行い、前記信号線のグルーピング情報を作成する工程、
（ｅ）前記グルーピング情報を基に、前記信号線の自動配置を行い、前記信号線のレイアウトを形成する工程、
（ｆ）前記（ｅ）工程後、前記グルーピング情報を基に前記信号線を前記ＡＮＤ  ｔｒｅｅもしくは前記ＯＲ  ｔｒｅｅでまとめる工程、
（ｇ）前記ＡＮＤ  ｔｒｅｅもしくは前記ＯＲ  ｔｒｅｅの終端に前記観測用回路を配置してスキャン接続する工程、
を含み、
前記初期情報群には、ｎｅｔｌｉｓｔ、クラスタ情報、トグル情報、タイミング制約、および前記レイアウトを形成する上での制約情報が含まれ、
前記（ｄ）工程は、
（ｄ１）前記複数のクラスタのうちの第１のクラスタ中にて、信号が１となる第１の確率が１／２以上の前記信号線を前記第１の確率が大きい順に前記最大ファンイン数以内の第１のファンイン数集め、１つ以上の前記ＡＮＤ  ｔｒｅｅの候補を形成する工程、
（ｄ２）前記第１クラスタ中にて、前記信号が０となる第２の確率が１／２以上の前記信号線を前記第２の確率が大きい順に前記第１のファンイン数集め、１つ以上の前記ＯＲ  ｔｒｅｅの候補を形成する工程、
を含むことを特徴とする半導体集積回路の設計方法。
【請求項２】
請求項１記載の半導体集積回路の設計方法において、
前記（ｄ１）工程にて、前記ＡＮＤ  ｔｒｅｅの前記候補に、前記第１の確率が１／２未満の前記信号線を含める場合には、前記第１の確率が１／２未満の前記信号線にインバータを付加し、
前記（ｄ２）工程にて、前記ＯＲ  ｔｒｅｅの前記候補に、前記第２の確率が１／２未満の前記信号線を含める場合には、前記第２の確率が１／２未満の前記信号線にインバータを付加することを特徴とする半導体集積回路の設計方法。
【請求項３】
請求項１記載の半導体集積回路の設計方法において、
前記（ｆ）工程では、前記ＡＮＤ  ｔｒｅｅおよび前記ＯＲ  ｔｒｅｅの少なくとも一方は等価回路で形成し、
前記ＡＮＤ  ｔｒｅｅの前記等価回路は、ＮＡＮＤ−ＮＯＲ  ｔｒｅｅであり、
前記ＯＲ  ｔｒｅｅの前記等価回路は、ＮＯＲ−ＮＡＮＤ  ｔｒｅｅであることを特徴とする半導体集積回路の設計方法。
【請求項４】
請求項１記載の半導体集積回路の設計方法において、
前記（ｅ）工程では、前記（ｆ）工程で前記ＡＮＤ  ｔｒｅｅもしくは前記ＯＲ  ｔｒｅｅにまとめられる前記信号線同士が近接するように、前記信号線の前記レイアウトを形成することを特徴とする半導体集積回路の設計方法。
【請求項５】
請求項１記載の半導体集積回路の設計方法において、
前記第１のファンイン数は、前記ＡＮＤ  ｔｒｅｅもしくは前記ＯＲ  ｔｒｅｅにまとめられる前記信号線同士が近接するように決定することを特徴とする半導体集積回路の設計方法。
【請求項６】
回路故障検出用の観測回路を含む半導体集積回路の設計方法であって、
（ａ）確率的グルーピングに必要な初期情報群を読み込む工程、
（ｂ）信号線の自動配置を行い、前記信号線のレイアウトを形成し、前記信号線から複数のクラスタを形成する工程、
（ｃ）１つのＡＮＤ  ｔｒｅｅもしくは１つのＯＲ  ｔｒｅｅに電気的に接続される最大ファンイン数を決定し、前記最大ファンイン数を前記初期情報群に含める工程、
（ｄ）前記初期情報群を基に前記確率的グルーピングを行い、前記信号線のグルーピング情報を作成する工程、
（ｅ）前記グルーピング情報を基に前記信号線を前記ＡＮＤ  ｔｒｅｅもしくは前記ＯＲ  ｔｒｅｅでまとめる工程、
（ｆ）前記ＡＮＤ  ｔｒｅｅもしくは前記ＯＲ  ｔｒｅｅの終端に前記観測用回路を配置してスキャン接続する工程、
を含み、
前記初期情報群には、ｎｅｔｌｉｓｔ、クラスタ情報、トグル情報、タイミング制約、および前記レイアウトを形成する上での制約情報が含まれ、
前記（ｄ）工程は、
（ｄ１）前記複数のクラスタのうちの第１のクラスタ中にて、信号が１となる第１の確率が１／２以上の前記信号線を前記第１の確率が大きい順に前記最大ファンイン数以内の第１のファンイン数集め、１つ以上の前記ＡＮＤ  ｔｒｅｅの候補を形成する工程、
（ｄ２）前記第１クラスタ中にて、前記信号が０となる第２の確率が１／２以上の前記信号線を前記第２の確率が大きい順に前記第１のファンイン数集め、１つ以上の前記ＯＲ  ｔｒｅｅの候補を形成する工程、
を含むことを特徴とする半導体集積回路の設計方法。
【請求項７】
回路故障検出用の観測回路を含む半導体集積回路を設計するソフトウエアであって、
（ａ）論理的グルーピングおよび確率的グルーピングに必要な初期情報群を読み込む工程、
（ｂ）前記論理的グルーピングを行い、論理階層的に近い信号線毎に複数のクラスタを形成する工程、
（ｃ）１つのＡＮＤ  ｔｒｅｅもしくは１つのＯＲ  ｔｒｅｅに電気的に接続される最大ファンイン数を決定し、前記最大ファンイン数を前記初期情報群に含める工程、
（ｄ）前記初期情報群を基に前記確率的グルーピングを行い、前記信号線のグルーピング情報を作成する工程、
（ｅ）前記グルーピング情報を基に、前記信号線の自動配置を行い、前記信号線のレイアウトを形成する工程、
（ｆ）前記（ｅ）工程後、前記グルーピング情報を基に前記信号線を前記ＡＮＤ  ｔｒｅｅもしくは前記ＯＲ  ｔｒｅｅでまとめる工程、
（ｆ）前記ＡＮＤ  ｔｒｅｅもしくは前記ＯＲ  ｔｒｅｅの終端に前記観測用回路を配置してスキャン接続する工程、
を含む工程によって前記半導体集積回路を設計し、
前記初期情報群には、ｎｅｔｌｉｓｔ、クラスタ情報、トグル情報、タイミング制約、および前記レイアウトを形成する上での制約情報が含まれ、
前記（ｄ）工程は、
（ｄ１）前記複数のクラスタのうちの第１のクラスタ中にて、信号が１となる第１の確率が１／２以上の前記信号線を前記第１の確率が大きい順に前記最大ファンイン数以内の第１のファンイン数集め、１つ以上の前記ＡＮＤ  ｔｒｅｅの候補を形成する工程、
（ｄ２）前記第１クラスタ中にて、前記信号が０となる第２の確率が１／２以上の前記信号線を前記第２の確率が大きい順に前記第１のファンイン数集め、１つ以上の前記ＯＲ  ｔｒｅｅの候補を形成する工程、
を含むことを特徴とするソフトウエア。
【請求項８】
請求項７記載のソフトウエアにおいて、
前記（ｄ１）工程にて、前記ＡＮＤ  ｔｒｅｅの前記候補に、前記第１の確率が１／２未満の前記信号線を含める場合には、前記第１の確率が１／２未満の前記信号線にインバータを付加し、
前記（ｄ２）工程にて、前記ＯＲ  ｔｒｅｅの前記候補に、前記第２の確率が１／２未満の前記信号線を含める場合には、前記第２の確率が１／２未満の前記信号線にインバータを付加することを特徴とするソフトウエア。
【請求項９】
請求項７記載のソフトウエアにおいて、
前記（ｆ）工程では、前記ＡＮＤ  ｔｒｅｅおよび前記ＯＲ  ｔｒｅｅの少なくとも一方は等価回路で形成し、
前記ＡＮＤ  ｔｒｅｅの前記等価回路は、ＮＡＮＤ−ＮＯＲ  ｔｒｅｅであり、
前記ＯＲ  ｔｒｅｅの前記等価回路は、ＮＯＲ−ＮＡＮＤ  ｔｒｅｅであることを特徴とするソフトウエア。
【請求項１０】
請求項７記載のソフトウエアにおいて、
前記（ｅ）工程では、前記（ｆ）工程で前記ＡＮＤ  ｔｒｅｅもしくは前記ＯＲ  ｔｒｅｅにまとめられる前記信号線同士が近接するように、前記信号線の前記レイアウトを形成することを特徴とするソフトウエア。
【請求項１１】
請求項７記載のソフトウエアにおいて、
前記第１のファンイン数は、前記ＡＮＤ  ｔｒｅｅもしくは前記ＯＲ  ｔｒｅｅにまとめられる前記信号線同士が近接するように決定することを特徴とするソフトウエア。
【請求項１２】
回路故障検出用の観測回路を含む半導体集積回路を設計するソフトウエアであって、
（ａ）確率的グルーピングに必要な初期情報群を読み込む工程、
（ｂ）信号線の自動配置を行い、前記信号線のレイアウトを形成し、前記信号線から複数のクラスタを形成する工程、
（ｃ）１つのＡＮＤ  ｔｒｅｅもしくは１つのＯＲ  ｔｒｅｅに電気的に接続される最大ファンイン数を決定し、前記最大ファンイン数を前記初期情報群に含める工程、
（ｄ）前記初期情報群を基に前記確率的グルーピングを行い、前記信号線のグルーピング情報を作成する工程、
（ｅ）前記グルーピング情報を基に前記信号線を前記ＡＮＤ  ｔｒｅｅもしくは前記ＯＲ  ｔｒｅｅでまとめる工程、
（ｆ）前記ＡＮＤ  ｔｒｅｅもしくは前記ＯＲ  ｔｒｅｅの終端に前記観測用回路を配置してスキャン接続する工程、
を含む工程によって前記半導体集積回路を設計し、
前記初期情報群には、ｎｅｔｌｉｓｔ、クラスタ情報、トグル情報、タイミング制約、および前記レイアウトを形成する上での制約情報が含まれ、
前記（ｄ）工程は、
（ｄ１）前記複数のクラスタのうちの第１のクラスタ中にて、信号が１となる第１の確率が１／２以上の前記信号線を前記第１の確率が大きい順に前記最大ファンイン数以内の第１のファンイン数集め、１つ以上の前記ＡＮＤ  ｔｒｅｅの候補を形成する工程、
（ｄ２）前記第１クラスタ中にて、前記信号が０となる第２の確率が１／２以上の前記信号線を前記第２の確率が大きい順に前記第１のファンイン数集め、１つ以上の前記ＯＲ  ｔｒｅｅの候補を形成する工程、
を含むことを特徴とするソフトウエア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計技術およびソフトウエアに関し、特に、ＤＦＴ（Design For Testability）回路のレイアウト設計工程に適用して有効な技術に関するものである。
【背景技術】
【０００２】
特開２００５−２２３１７１号公報（特許文献１）は、複数のスキャンチェーングループが構成された半導体集積回路にて、グループ間を接続して全体のスキャンチェーンを構成する時の配線混雑を防止する技術を開示している。すなわち、個別のスキャンチェーングループの間を接続して全体のスキャンチェーンを構成する際に、スキャンチェーングループのそれぞれに含まれるすべてのフリップフロップ配置座標の重心座標の相互距離が近い順にスキャンチェーングループ間の接続順序を決定するものである。あるいは、スキャンチェーングループのクロック系に存在するゲーテットセルの位置座標の相互距離が近い順、あるいは予め任意指定された目印セルの相互距離が近い順、あるいはスキャンチェーングループ間の相互距離が最短であるフリップフロップの組で相互距離が近い順に、スキャンチェーングループ間の接続順序を決定するものである。【０００３】
特開２００３−１４８１８号公報（特許文献２）は、スキャンテスト回路によるスキャンテストの適用範囲を、従来の静的な論理故障検出から、実動作周波数でのタイミング故障検出にまで拡大する技術を開示している。すなわち、スキャンフリップフロップに任意のテストパターンが設定でき、静的な論理故障検出では高い故障検出率を確保することができるものであっても、フリップフロップの前段後段関係のために、スキャンテスト時にこれらフリップフロップから同時に同じ論理値を出力することは不可能であることから、経路遅延故障を検出するテストパターンを設定するのが困難であり、実動作周波数におけるタイミング故障検出率を高めることができなくなっている。そこで、前述のスキャンチェーンの１入力端に所定の論理信号を入力して上記スキャンチェーンの出力端から順次論理結果を得るスキャンテスト回路において、同一の論理回路に入力値を与え、上記スキャンチェーンによって接続されている複数個のフリップフロップを、スキャンチェーン上で隣り合わないように配置している。【０００４】
特開２００５−２７４５００号公報（特許文献３）は、スキャンアウト信号線の配線長を短くすべく圧縮器を介在して、外部出力ピン数をスキャンアウト信号線数より削減している構成において、複数のスキャンアウト信号線で同時に故障が発生しても、それらの故障の応答を見逃さない技術を開示している。すなわち、スキャンアウト信号線と外部出力ピンとの間に圧縮器を介在し、その圧縮器が、前記スキャンアウト信号線から同時に複数の故障応答が入力された場合の応答として、すべて正常の場合の応答と異なる応答を行うように構成したものである。具体的には、外部出力ピンの個数分のＥＸＯＲゲートまたはＥＸＮＯＲゲートである圧縮ゲートで構成し、すべてのスキャンアウト信号線が、圧縮ゲート群に対する入力接続のパターンを互いにすべて異にする状態で圧縮ゲート群に接続したものである。【０００５】
特開２０００−５５９８６号公報（特許文献４）は、クロックスキュー等による誤動作を防止し、かつスキャンチェーンを短く接続して小レイアウト面積を実現する技術を開示している。すなわち、クロックツリー構成に基づいてスキャンレジスタを階層的にグループ化し、クロック入力端子から各クロックツリーバッファまでのクロック信号伝播時間とクロック入力端子から各スキャンレジスタまでのクロック信号伝播時間を求め、さらにスキャンレジスタグループ毎にクロックスキューを求め、クロックスキュー情報に基づいてスキャンレジスタグループ毎に配線長最短か誤動作防止かの属性を設定する。そして、誤動作防止属性が設定されたスキャンレジスタグループに対して誤動作防止を目的としてスキャンチェーンを接続し、配線長最短の属性が設定されたスキャンレジスタグループに対して配置情報を用いて配線長最短でスキャンチェーンを接続するものである。
【特許文献１】特開２００５−２２３１７１号公報
【特許文献２】特開２００３−１４８１８号公報
【特許文献３】特開２００５−２７４５００号公報
【特許文献４】特開２０００−５５９８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＤＦＴ回路のレイアウト設計工程において、ＤＦＴ回路の故障を検出する際に、ＤＦＴ回路の信号線をＥＸＯＲ（exclusive OR circuit；排他的論理和）  ｔｒｅｅ回路で集約し、そのＥＸＯＲ  ｔｒｅｅ回路からの信号を観測フリップフロップ回路で受けることで故障検出を行う手法がある。【０００７】
このＥＸＯＲ  ｔｒｅｅ回路を用いた故障検出方法は、少ないテストベクトル数で検査が可能であり、低コストとなることから広く用いられている。【０００８】
実際のＤＦＴ回路においては、各信号線を出力する部分回路が共有されていたりする場合や、その部分回路が同じ構造となっていたりする場合がある。このような状況下でＥＸＯＲ  ｔｒｅｅ回路を用いてＤＦＴ回路の故障検出処理を行うと、信号同士が打ち消しあって、元の部分回路の故障を検出できなくなってしまう場合がある。【０００９】
図２５は、イネーブル信号の観測例を示す説明図である。この図２５に示すように、クロックツリーを構成する際に、観測端子付きのクロックゲーティングセル１０１を用いる場合には、イネーブル生成論理回路１０２によって生成されたクロックイネーブルＣＥＮを出力する観測端子ＯＢＳが存在する。このようなクロックゲーティングセル１０１が複数配置されると、これら複数のクロックゲーティングセル１０１の観測端子ＯＢＳの出力は、ＥＸＯＲ  ｔｒｅｅ１０３で集約され、観測用フリップフロップ１０４と電気的に接続される。前述のように、ＥＸＯＲ  ｔｒｅｅ１０３は、同信号を集約してしまうと、信号同士が打ち消しあって、観測用フリップフロップ１０４による故障検出率が減少してしまうことから、ＥＸＯＲ  ｔｒｅｅ１０３で集約可能なクロックイネーブルＣＥＮは、異信号のみとなる。たとえば、観測回路を自動挿入するパワーコンパイラでは、イネーブル信号が同じか異なるかを判別していないため、故障検出率が大きくなっていることが懸念される。【００１０】
ＥＸＯＲ  ｔｒｅｅ１０３に異なる信号が入力された場合には、観測用フリップフロップ１０４によって元の部分回路の故障を検出することができるが（図２６参照）、ＥＸＯＲ  ｔｒｅｅ１０３に同じ信号が入力された場合には、前述のように信号同士が打ち消しあってしまうことから、観測用フリップフロップ１０４によって元の部分回路の故障を検出することができなくなる（図２７参照）。そこで、同じ信号となる場合には、別のＥＸＯＲ  ｔｒｅｅ１０３およびその別のＥＸＯＲ  ｔｒｅｅ１０３と電気的に接続する観測用フリップフロップ１０４を生成し、１つのＥＸＯＲ  ｔｒｅｅ１０３に同じ信号が入力されないようにすることで、故障検出率を下げないようにすることはできる。しかしながら、観測用フリップフロップ１０４が増えたことによって、観測用フリップフロップ１０４自体のリソースが多く必要になってしまうという課題を含んでいる。【００１１】
本発明の目的は、ＤＦＴ回路のレイアウト自動設計工程における故障検出率を向上できる技術を提供することにある。【００１２】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。【００１４】
本発明による半導体集積回路の設計方法は、回路故障検出用の観測回路を含む半導体集積回路の設計方法であって、
（ａ）論理的グルーピングを行い、論理階層的に近い信号線毎に複数のクラスタを形成する工程、
（ｂ）確率的グルーピングに必要な初期情報群を読み込む工程、
（ｃ）１つのＡＮＤ  ｔｒｅｅもしくは１つのＯＲ  ｔｒｅｅに電気的に接続される最大ファンイン数を決定し、前記最大ファンイン数を前記初期情報群に含める工程、
（ｄ）前記初期情報群を基に前記確率的グルーピングを行い、前記信号線のグルーピング情報を作成する工程、
（ｅ）前記グルーピング情報を基に、前記信号線の自動配置を行い、前記信号線のレイアウトを形成する工程、
（ｆ）前記（ｅ）工程後、前記グルーピング情報を基に前記信号線を前記ＡＮＤ  ｔｒｅｅもしくは前記ＯＲ  ｔｒｅｅでまとめる工程、
（ｇ）前記ＡＮＤ  ｔｒｅｅもしくは前記ＯＲ  ｔｒｅｅの終端に前記観測用回路を配置してスキャン接続する工程、
を含み、
前記初期情報群には、ｎｅｔｌｉｓｔ、クラスタ情報、トグル情報、タイミング制約、および前記レイアウトを形成する上での制約情報が含まれ、
前記（ｄ）工程は、
（ｄ１）前記複数のクラスタのうちの第１のクラスタ中にて、信号が１となる第１の確率が１／２以上の前記信号線を前記第１の確率が大きい順に前記最大ファンイン数以内の第１のファンイン数集め、１つ以上の前記ＡＮＤ  ｔｒｅｅの候補を形成する工程、
（ｄ２）前記第１クラスタ中にて、前記信号が０となる第２の確率が１／２以上の前記信号線を前記第２の確率が大きい順に前記第１のファンイン数集め、１つ以上の前記ＯＲ  ｔｒｅｅの候補を形成する工程、
を含むものである。【００１５】
また、本発明によるソフトウエアは、回路故障検出用の観測回路を含む半導体集積回路を設計するソフトウエアであって、
（ａ）論理的グルーピングを行い、論理階層的に近い信号線毎に複数のクラスタを形成する工程、
（ｂ）確率的グルーピングに必要な初期情報群を読み込む工程、
（ｃ）１つのＡＮＤ  ｔｒｅｅもしくは１つのＯＲ  ｔｒｅｅに電気的に接続される最大ファンイン数を決定し、前記最大ファンイン数を前記初期情報群に含める工程、
（ｄ）前記初期情報群を基に前記確率的グルーピングを行い、前記信号線のグルーピング情報を作成する工程、
（ｅ）前記グルーピング情報を基に、前記信号線の自動配置を行い、前記信号線のレイアウトを形成する工程、
（ｆ）前記（ｅ）工程後、前記グルーピング情報を基に前記信号線を前記ＡＮＤ  ｔｒｅｅもしくは前記ＯＲ  ｔｒｅｅでまとめる工程、
（ｇ）前記ＡＮＤ  ｔｒｅｅもしくは前記ＯＲ  ｔｒｅｅの終端に前記観測用回路を配置してスキャン接続する工程、
を含む工程によって前記半導体集積回路を設計し、
前記初期情報群には、ｎｅｔｌｉｓｔ、クラスタ情報、トグル情報、タイミング制約、および前記レイアウトを形成する上での制約情報が含まれ、
前記（ｄ）工程は、
（ｄ１）前記複数のクラスタのうちの第１のクラスタ中にて、信号が１となる第１の確率が１／２以上の前記信号線を前記第１の確率が大きい順に前記最大ファンイン数以内の第１のファンイン数集め、１つ以上の前記ＡＮＤ  ｔｒｅｅの候補を形成する工程、
（ｄ２）前記第１クラスタ中にて、前記信号が０となる第２の確率が１／２以上の前記信号線を前記第２の確率が大きい順に前記第１のファンイン数集め、１つ以上の前記ＯＲ  ｔｒｅｅの候補を形成する工程、
を含むものである。
【発明の効果】
【００１６】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。【００１７】
ＤＦＴ回路のレイアウト自動設計工程における故障検出率を向上できる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施の形態であるＤＦＴ回路のレイアウト設計工程における、ＡＮＤ  ｔｒｅｅ回路によるＤＦＴ回路の信号線の集約条件を示す説明図である。
【図２】本発明の一実施の形態であるＤＦＴ回路のレイアウト設計工程における、ＯＲ  ｔｒｅｅ回路によるＤＦＴ回路の信号線の集約条件を示す説明図である。
【図３】ＥＸＯＲ  ｔｒｅｅ回路によってＤＦＴ回路の信号線を集約した場合の課題を示す説明図である。
【図４】ｔｒｅｅ回路構成を示す説明図である。
【図５】図４に示したｔｒｅｅ回路をＥＸＯＲ  ｔｒｅｅ回路で構成した場合の説明図である。
【図６】図４に示したｔｒｅｅ回路をＡＮＤ  ｔｒｅｅ回路で構成した場合の説明図である。
【図７】本発明の一実施の形態であるＤＦＴ回路の信号線をＡＮＤ  ｔｒｅｅ回路に集約する条件を示す説明図である。
【図８】本発明の一実施の形態であるＤＦＴ回路の信号線をＯＲ  ｔｒｅｅ回路に集約する条件を示す説明図である。
【図９】本発明の一実施の形態であるＤＦＴ回路の信号線をＡＮＤ  ｔｒｅｅ回路に集約する条件を示す説明図である。
【図１０】本発明の一実施の形態であるＤＦＴ回路の信号線をＯＲ  ｔｒｅｅ回路に集約する条件を示す説明図である。
【図１１】本発明の一実施の形態であるＤＦＴ回路におけるイネーブル論理生成回路から出力される信号の確率計算をし、ｔｒｅｅ構造を構成する信号線を集める例について示す説明図である。
【図１２】図１１で集められた信号線を集約し、ＡＮＤ  ｔｒｅｅ回路を構成する例について示す説明図である。
【図１３】図１１で集められた信号線を集約し、ＯＲ  ｔｒｅｅ回路を構成する例について示す説明図である。
【図１４】１つの信号線にインバータを挿入した後にＡＮＤ  ｔｒｅｅ回路１で各信号線を集約した場合について示す説明図である。
【図１５】ＡＮＤ  ｔｒｅｅ回路の等価回路であるＮＡＮＤ−ＮＯＲ回路を示す説明図である。
【図１６】ＯＲ  ｔｒｅｅ回路の等価回路であるＮＯＲ−ＮＡＮＤ回路を示す説明図である。
【図１７】ＣＰＵおよびグラフィック演算部を有するチップの論理木構造を示す説明図である。
【図１８】ＣＰＵおよびグラフィック演算部を有するチップの回路セルレイアウトを示す説明図である。
【図１９】本発明の一実施の形態であるＤＦＴ回路の信号線をｔｒｅｅ回路にまとめる方法を示すフローチャートである。
【図２０】信号線の論理的グルーピングについて示す説明図である。
【図２１】回路セルレイアウト形成後における、ｔｒｅｅ構造の再構成について示す説明図である。
【図２２】本発明の一実施の形態であるＤＦＴ回路の信号線をｔｒｅｅ回路にまとめる方法を示すフローチャートである。
【図２３】本発明の一実施の形態である半導体集積回路の設計工程および製造工程を説明するフローチャートである。
【図２４】図２３にしめすフローチャートにおけるＤＦＴ回路のレイアウト設計工程の詳細を説明するフローチャートである。
【図２５】イネーブル信号の観測例を示す説明図である。
【図２６】ＥＸＯＲ  ｔｒｅｅの特性を示す説明図である。
【図２７】ＥＸＯＲ  ｔｒｅｅの特性を示す説明図である。
【発明を実施するための最良の形態】
【００１９】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。【００２０】
また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。【００２１】
さらに、以下の実施の形態において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。また、実施例等において構成要素等について、「Ａからなる」、「Ａよりなる」と言うときは、特にその要素のみである旨明示した場合等を除き、それ以外の要素を排除するものでないことは言うまでもない。【００２２】
同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。【００２３】
また、本実施の形態を説明するための全図において同一機能を有するものは原則として同一の符号を付し、その繰り返しの説明は省略する。【００２４】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。【００２５】
本実施の形態は、ソフトウエアを用いたＤＦＴ回路（観測回路）のレイアウト自動設計工程（たとえば、ＥＤＡ（Electronic Design Automation））において、イネーブル信号を観測することによる故障検出処理に係るものである。【００２６】
ＤＦＴ回路のレイアウト設計工程において、ＤＦＴ回路の故障を検出する際に、ＤＦＴ回路の信号線をＥＸＯＲ  ｔｒｅｅ回路で集約し、そのＥＸＯＲ  ｔｒｅｅ回路からの信号を観測フリップフロップ回路で受けることで故障検出を行う手法がある。しかしながら、実際のＤＦＴ回路においては、ＥＸＯＲ  ｔｒｅｅ回路を用いてＤＦＴ回路の故障検出処理を行うと、信号同士が打ち消しあって、元の部分回路の故障を検出できなくなってしまう場合がある。【００２７】
そこで、本実施の形態では、上記ＥＸＯＲ  ｔｒｅｅ回路で集約していたＤＦＴ回路の信号線を、ＥＸＯＲ  ｔｒｅｅ回路の代わりにＡＮＤ  ｔｒｅｅ回路またはＯＲ  ｔｒｅｅ回路で集約し、故障検出率の低下を防ぐ。以下、本実施の形態におけるＡＮＤ  ｔｒｅｅ回路またはＯＲ  ｔｒｅｅ回路の構成方法について説明する。【００２８】
まず、ｔｒｅｅ回路の初段入力において“１”となる確率を１／２として、ｔｒｅｅ回路の各段で“０”が発生する確率ｃ０と、ｔｒｅｅ回路の各段で“１”が発生する確率ｃ１とを算出する。その算出結果より、最終段での“０”が発生する確率ｃ０と、最終段での“１”が発生する確率ｃ１とを比較し、最終段での“１”が発生する確率ｃ１が大きい場合にはＡＮＤ  ｔｒｅｅ回路１を構成してＡＮＤ  ｔｒｅｅ回路１からの出力を観測用フリップフロップ２で受け（図１参照）、最終段での“０”が発生する確率ｃ０が大きい場合にはＯＲ  ｔｒｅｅ回路３を構成してＯＲ  ｔｒｅｅ回路３からの出力を観測用フリップフロップ２で受ける（図２参照）。【００２９】
上記のようなＡＮＤ  ｔｒｅｅ回路１もしくはＯＲ  ｔｒｅｅ回路３を用いた場合には、ＥＸＯＲ  ｔｒｅｅ回路を用いた場合に比べて故障検出率を向上することができる。図３に示すように、イネーブル論理生成回路４の種類に関わらず、ＥＸＯＲ  ｔｒｅｅ回路５で信号をまとめた場合には、信号がＥＸＯＲ  ｔｒｅｅ回路５に信号がマスクされて観測用フリップフロップ２による故障検出ができなくなる。たとえば、単純に１つのイネーブル信号（故障）がすべての観測用フリップフロップ２に偶数個でまとめられた場合には、イネーブル論理生成回路４の故障検出率は０となる。一方、ＡＮＤ  ｔｒｅｅ回路１もしくはＯＲ  ｔｒｅｅ回路３を用いた場合には、故障がマスクされることはないので、故障検出率は１００％とすることができる。【００３０】
また、ＡＮＤ  ｔｒｅｅ回路１もしくはＯＲ  ｔｒｅｅ回路３を用いた場合には、ＥＸＯＲ  ｔｒｅｅ回路５を用いた場合に比べて、ｔｒｅｅ回路を構成するゲート数を大幅に低減することができ、チップサイズを小型化することができる。これを図４〜図６を用いて説明する。【００３１】
図４に示すように、ｔｒｅｅ回路６によりイネーブル論理回路４Ａ、４Ｂ、４Ｃの３つからの信号がまとめられる場合を例にとって説明する。図５に示すように、イネーブル論理を辿って元の論理が異なるようにＥＸＯＲ  ｔｒｅｅ回路５を適宜用いてまとめる必要があり、必要に応じて観測用フリップフロップ２も追加しなければならない。そのため、図４に示したｔｒｅｅ回路６がＥＸＯＲ  ｔｒｅｅ回路５から形成されているとすると、ＥＸＯＲ  ｔｒｅｅ回路５は２つ必要となり、それぞれのＥＸＯＲ  ｔｒｅｅ回路５に観測用フリップフロップ２も接続される構造となる。１つのＥＸＯＲ  ｔｒｅｅ回路５および１つの観測用フリップフロップ２では、それぞれゲート数が１１および２３となるので、図５に示した回路構造全体のゲート数は６８となる。なお、ＥＸＯＲ  ｔｒｅｅ回路５および観測用フリップフロップ２に付記してある数字は、それぞれのゲート数である。ＥＸＯＲ  ｔｒｅｅ回路５を用いた場合のｔｒｅｅ構造は、イネーブル論理が増加するほど複雑になり、追加される観測用フリップフロップ２もそれに比例して増加することになる。【００３２】
一方、図６に示すように、図４に示したｔｒｅｅ回路６がＡＮＤ  ｔｒｅｅ回路１から形成されているとすると、１つのＡＮＤ  ｔｒｅｅ回路１でイネーブル論理回路４Ａ、４Ｂ、４Ｃの３つからの信号をまとめることができ、観測用フリップフロップ２についても１つで済ませることができる。ゲート数については、１つのＡＮＤ  ｔｒｅｅ回路１および１つの観測用フリップフロップ２では、それぞれ８および２３となるので、図６に示した回路構造全体のゲート数は３１となる。なお、ＡＮＤ  ｔｒｅｅ回路１に付記してある数字は、ＡＮＤ  ｔｒｅｅ回路１のゲート数である。すなわち、ＡＮＤ  ｔｒｅｅ回路１からｔｒｅｅ回路６を形成することにより、ＥＸＯＲ  ｔｒｅｅ回路５からｔｒｅｅ回路６を形成する場合に比べて大幅にゲート数を削減することができる。その結果、チップ内では配線数を削減することができるので、チップを小型化することが可能となる。【００３３】
ここで、本実施の形態におけるＡＮＤ  ｔｒｅｅ回路１もしくはＯＲ  ｔｒｅｅ回路３の構成条件について、図７〜図１４を用いて説明する。【００３４】
一般に、ＡＮＤ回路もしくはＯＲ回路でｔｒｅｅ構造を構築すると、ＥＸＯＲ回路でｔｒｅｅ構造を構築した場合よりテスト長が長くなることがある。これには、イネーブル信号の組み合わせを入れ替えることで対応することができる。すなわち、ｔｒｅｅ構造の各段における“０”が発生する確率ｃ０と、ｔｒｅｅ回路の各段で“１”が発生する確率ｃ１とを考慮して、確率ｃ１が１／２より大きい信号はＡＮＤ  ｔｒｅｅ回路１に集約し（図７参照）、確率ｃ０が１／２より大きい信号はＯＲ  ｔｒｅｅ回路３に集約することにより（図８参照）、ｔｒｅｅ構造を構成しやすくなる。【００３５】
また、確率ｃ１が１／２より大きい信号と小さい信号とをＡＮＤ  ｔｒｅｅ回路１に集約する必要がある場合には、確率ｃ１が１／２より小さい信号にインバータを付加してＡＮＤ  ｔｒｅｅ回路１に集約してもよく（図９参照）、確率ｃ０が１／２より大きい信号と小さい信号とをＯＲ  ｔｒｅｅ回路３に集約する必要がある場合には、確率ｃ０が１／２より小さい信号にインバータを付加してＯＲ  ｔｒｅｅ回路３に集約してもよい（図１０参照）。【００３６】
次に、４入力のｔｒｅｅ構造の構成例について説明する。まず、各イネーブル論理生成回路４から出力される信号の確率計算をし、ｔｒｅｅ構造を構成する信号線を集める。なお、図１１では、ＡＮＤ  ｔｒｅｅ回路１に集約される信号を集める場合について図示している。【００３７】
次いで、集めた各信号線を集約し、ＡＮＤ  ｔｒｅｅ回路１（図１２参照）もしくはＯＲ  ｔｒｅｅ回路３（図１３参照）を構成した後に、コスト計算を行う。この時の集約条件は、図７〜図１０を用いて前述したように、確率ｃ１が１／２より大きい信号線はＡＮＤ  ｔｒｅｅ回路１に集約し、確率ｃ０が１／２より大きい信号線はＯＲ  ｔｒｅｅ回路３に集約するものであり、確率ｃ１、ｃ０が１／２より小さい信号線もＡＮＤ  ｔｒｅｅ回路１もしくは集約ＯＲ  ｔｒｅｅ回路３に集約しなければならない場合には、インバータを付加して集約するものである。【００３８】
次いで、各ｔｒｅｅ回路（ＡＮＤ  ｔｒｅｅ回路１およびＯＲ  ｔｒｅｅ回路３）から確率ｃ１、ｃ０の最も高いものを選択する。それにより、ｔｒｅｅ構造のパターン長を減少できるので、製造コストを低減することができる。この時、信号線にインバータを挿入することで、そのｔｒｅｅ回路で最も確率（故障検出率）ｃ１、ｃ０を高くできる場合には、その信号にインバータを挿入した後にそのｔｒｅｅ回路を選択する（図１４参照）。なお、図１４は、１つの信号線にインバータを挿入した後にＡＮＤ  ｔｒｅｅ回路１で各信号線を集約した場合について図示している。【００３９】
上記図７〜図１０では、ＡＮＤ  ｔｒｅｅ回路１およびＯＲ  ｔｒｅｅ回路３の構造について説明したが、実際の回路では、ＡＮＤ  ｔｒｅｅ回路１およびＯＲ  ｔｒｅｅ回路３のそれぞれの等価回路であるＮＡＮＤ−ＮＯＲ回路７（図１５参照）およびＮＯＲ−ＮＡＮＤ回路８（図１６参照）として構成してもよい。【００４０】
次に、イネーブル論理生成回路での確率計算について説明する。【００４１】
まず、各イネーブル論理の確率計算を行う際の、“０”が発生する確率ｃ０および“１”が発生する確率ｃ１の初期値の与え方については、以下の（１）〜（３）を例示できる。
（１）ｔｒｅｅ構造の初段の各入力およびフリップフロップの出力における確率ｃ０、ｃ１をそれぞれ１／２とし、伝播させる。
（２）ｔｒｅｅ構造の各ゲートの入力にトグル情報を入力する。ｔｒｅｅ構造の一部の入力にのみトグル情報を与えて、それ以外では伝播させてもよい。
（３）ｔｒｅｅ構造の各ゲートの入力にランダム（乱数）にて与える。ｔｒｅｅ構造の一部の入力にのみランダム（乱数）にて与えて、それ以外では伝播させてもよい。【００４２】
以上のように、確率ｃ０、ｃ１の初期値が与えられたイネーブル信号をＡＮＤ  ｔｒｅｅ回路１もしくはＯＲ  ｔｒｅｅ回路３でまとめていく。ＡＮＤ  ｔｒｅｅ回路１もしくはＯＲ  ｔｒｅｅ回路３でまとめていくことにより、どのようなイネーブル信号もまとめられるようになる一方で、イネーブル信号をＡＮＤ  ｔｒｅｅ回路１もしくはＯＲ  ｔｒｅｅ回路３でまとめるに当たって、次の（ａ）、（ｂ）の点で注意を払う。
（ａ）チップ面積およびフリップフロップの個数といった物理的リソースを効率よく使用する。
（ｂ）確率的に故障を検出しやすいように、テスト長を短縮するようにｔｒｅｅ構造にまとめる。【００４３】
ここで、上記（ａ）に記載した「物理的リソースを効率よく使用」について図１７および図１８を用いて説明する。図１７および図１８は、ＣＰＵ（Central Processing Unit）１１およびグラフィックス演算部１２を有するチップのそれぞれ論理木構造および回路セルレイアウトを示したものである。【００４４】
回路セルレイアウトを作成する前であれば、まず、論理階層的に近いところで観測信号のグルーピングを行い、回路セルの配置も論理階層的近さを考慮して行う。すなわち、論理的には、コア回路１３およびキャッシュメモリ回路１４がＣＰＵ１１でまとめられ、ＶＰＵ（Visual Processing Unit）１５および乗算器１６がグラフィックス演算部１２でまとめられる。さらに、ＣＰＵ１１およびグラフィックス演算部１２が論理的に１つのチップにまとめられる。【００４５】
回路セルレイアウトの作成中であれば、その回路セルレイアウトを作成するための回路セル配置情報を基にして、分布領域が小さくなるように観測信号線を選択し、観測信号線の本数およびファンアウト数を指定する。【００４６】
次に、上記（ｂ）に記載した「確率的に故障を検出しやすいように、テスト長を短縮するようにｔｒｅｅ構造にまとめる」について説明する。【００４７】
回路セルレイアウトを作成する前であれば、まず、故障を検出する確率が最も高くなるように観測信号線のグルーピングを行う。すなわち、グルーピングおよびｔｒｅｅ構成は、たとえば次の（ｂ１）〜（ｂ３）の手順を経る。
（ｂ１）１つの観測用フリップフロップ２にまとめる観測信号線のしきい値（１つのｔｒｅｅにまとめるファンイン数の最大値）を決定する。
（ｂ２）上記（ｂ１）で決定した１つの観測用フリップフロップ２にまとめる観測信号線のしきい値内のファンイン数で、互いに近傍にある観測信号線をまとめる。この時、前述したように、“１”が発生する確率ｃ１が１／２以上となる観測信号線を集めると、ＡＮＤ  ｔｒｅｅ回路１の候補となり、“０”が発生する確率ｃ０が１／２以上となる観測信号線を集めると、ＯＲ  ｔｒｅｅ回路３の候補となる。
（ｂ３）ＡＮＤ  ｔｒｅｅ回路１の候補にまとめられた観測信号線中に、“１”が発生する確率ｃ１が１／２未満となる観測信号線があった場合には、その観測信号線はインバータを介してＡＮＤ  ｔｒｅｅ回路１に接続する。また、ＯＲ  ｔｒｅｅ回路３の候補にまとめられた観測信号線中に、“０”が発生する確率ｃ０が１／２未満となる観測信号線があった場合には、その観測信号線はインバータを介してＯＲ  ｔｒｅｅ回路３に接続する。【００４８】
上記（ｂ１）〜（ｂ３）に沿って観測信号線のグルーピングおよびｔｒｅｅ構成を行った後に、回路セルレイアウトを作成する。回路セルレイアウトを作成した後に、近傍に配置されている回路セル間に限定して、上記（ｂ１）〜（ｂ３）に沿って観測信号線の再グルーピングおよび再ｔｒｅｅ構成を行う。回路セルレイアウトの作成前に上記（ｂ１）〜（ｂ３）が考慮されていない場合には、回路セルレイアウトの作成後の各回路セルの配置状態から、近傍に配置されている回路セル同士でクラスタリングし、“１”が発生する確率ｃ１もしくは“０”が発生する確率ｃ０が高くなるように観測信号線のグルーピングを行い、観測信号線をＡＮＤ  ｔｒｅｅ回路１もしくはＯＲ  ｔｒｅｅ回路３にまとめる。【００４９】
以下、ここまで説明してきたｔｒｅｅの構成方法を、ＤＦＴ回路のレイアウト設計工程中における位置付けと併せて図１９に示すフローチャートを用いてまとめる。【００５０】
まず、論理的グルーピングおよび確率的グルーピングに必要な初期情報群を読み込む（工程Ｓ１）。本実施の形態において、その初期情報群に含まれるものとしては、ｎｅｔｌｉｓｔ、クラスタ情報、トグル情報、タイミング制約、および回路セルレイアウトを形成する上での制約情報等を例示できる。ここで、ｎｅｔｌｉｓｔは、プリミティブな論理素子（ＡＮＤおよびＯＲ等）と信号ネットの接続とで、チップの機能を記述した情報（もしくはファイル）のことを指す。ｎｅｔｌｉｓｔに記述された情報を基に、機能毎にクラスタリングし、論理（機能）のかたまりとしてまとめ、その接続を考慮したものが論理ｔｒｅｅ構造となることから、ｎｅｔｌｉｓｔに比べて論理ｔｒｅｅ構造の方がより抽象度は高くなる。【００５１】
次いで、論理的グルーピングを行い、論理階層的に近い観測信号線毎に複数のクラスタを形成する（工程Ｓ２）。ここでは、論理ｔｒｅｅ構造を作成し、論理階層的に近い信号線毎にクラスタリングし、複数のクラスタを形成する。これを図２０に示す論理ｔｒｅｅ構造を用いてさらに詳細に説明する。まず、任意のイネーブル信号ｅを選択し、そのイネーブル信号ｅと同じ階層にある論理結合レベルを０とする。その階層から直接接続されている階層にあるイネーブル信号の結合レベルを１とし、そこからさらに移動して接続している階層にあるイネーブル信号の結合レベルを２とするように、論理的に離れた関係にある階層のイネーブル信号ほど結合レベルの値が大きくなる。たとえば、結合レベルが２のところにイネーブル信号ｆがある場合には、Ｌ［ｅ］［ｆ］＝２のように表すことができる（“Ｌ”は、ｅとｆの論理的結合度、論理階層の距離を示す）。論理的グルーピングでは、論理的に結合の近いイネーブル信号、すなわち結合レベルの小さいイネーブル信号を集めるので、任意のイネーブル信号ｅｉ、ｅｊの間で、Ｌ［ｅｉ］［ｅｊ］の総和であるΣＬ［ｅｉ］［ｅｊ］を最小にするようにイネーブル信号のクラスタを形成するものである。【００５２】
次いで、１つの観測用フリップフロップ２に接続する観測信号線の最大数、すなわち最大ファンイン数を決定、前述の初期情報群に含める（工程Ｓ３）。この場合の最大ファンイン数はテストコストに影響し、最大ファンイン数が大きい場合は、テストコストは高くなるがゲート数は減少し、最大ファンイン数が小さい場合には、テストコストは低くなるがゲート数は増加する。すなわち最大ファンイン数は回路の集積率とテストコストとのトレードオフとなるため、チップの用途によって回路の集積率とテストコストの何れを重視するかによって選択される。【００５３】
次いで、前述の初期情報群を基に確率的グルーピングを行う（工程Ｓ４）。ここでは、論理的グルーピングで形成した各クラスタ中で、さらに最大ファンイン数以下のまとまり（ファンイン数（第１のファンイン数））となるようにクラスタ中の観測信号線を確率的に分割してグルーピングし、グルーピング情報を作成する。この時のファンイン数については、一般的に４，８，１６…等といった２の階乗となる数値が取られる。ファンイン数が少ないと、少ないテスト長で故障を検出可能となるが、その一方で多くの回路リソースが必要となり、ファンイン数およびテスト長と、対応する回路リソースとは、トレードオフの関係となる。そのため、ファンイン数については、回路リソースを考慮した上で、ユーザーが適宜決定することになる。各クラスタ（第１のクラスタ）中での確率的グルーピングは、前述したように、ｔｒｅｅ回路の最終段で、“１”が発生する確率（第１の確率）ｃ１が１／２より大きい場合にはＡＮＤ  ｔｒｅｅ回路１でまとめ、“０”が発生する確率（第２の確率）ｃ０が１／２より大きい場合にはＯＲ  ｔｒｅｅ回路３でまとめる。また、クラスタ中の観測信号線を確率的にグルーピングする際には、“１”が発生する確率ｃ１もしくは“０”が発生する確率ｃ０が大きい順に集めてグルーピングしていく。【００５４】
次いで、前述の初期情報群に含まれている回路セルレイアウトを形成する上での制約情報に基づいて、ＡＮＤ  ｔｒｅｅ回路１およびＯＲ  ｔｒｅｅ回路３を自動配置していき、各信号線のレイアウト、すなわち回路セルレイアウトを形成する（工程Ｓ５）。【００５５】
上記回路セルレイアウトの形成後、工程Ｓ４でまとめられたＡＮＤ  ｔｒｅｅ回路１およびＯＲ  ｔｒｅｅ回路３のｔｒｅｅ構造の再構成を行い、改めてＡＮＤ  ｔｒｅｅ回路１およびＯＲ  ｔｒｅｅ回路３でまとめてもよい（工程Ｓ６）。すなわち、回路セルレイアウトを形成し、各信号線を配置した後では、タイミング動作の最適化等が実行されることもあり、そのような場合には、信号線の物理的配置位置も変更されることがある。その際に、イネーブル信号のまとまりを再構成することによって、配線リソースの低減やトランジション対策ができる場合もある。つまり、あるイネーブル信号からＡＮＤもしくはＯＲまでの配線の和である総配線長について考慮し、他のＡＮＤ  ｔｒｅｅ回路１もしくはＯＲ  ｔｒｅｅ回路３とスワップすることで、両方のＡＮＤ  ｔｒｅｅ回路１もしくはＯＲ  ｔｒｅｅ回路３の総配線長が短くなる場合には、工程Ｓ４でまとめられたＡＮＤ  ｔｒｅｅ回路１およびＯＲ  ｔｒｅｅ回路３のｔｒｅｅ構造の再構成を行うものである（図２１参照）。【００５６】
次いで、ＡＮＤ  ｔｒｅｅ回路１およびＯＲ  ｔｒｅｅ回路３の終端に観測用フリップフロップ２を配置し、これらをスキャン接続する（工程Ｓ７）。【００５７】
ところで、前述のように、回路セルレイアウトを先に形成した後でｔｒｅｅ構成する場合も考えられる。この場合について、図２２に示すフローチャートを用いてまとめる。【００５８】
まず、確率的グルーピングに必要な初期情報群を読み込む（工程Ｓ１１）。ここで読み込む初期情報群は、図１９における工程Ｓ１で読み込んだ初期情報群とほぼ同様の情報を含む。【００５９】
次いで、工程Ｓ１１で読み込んだ初期情報群に含まれている回路セルレイアウトを形成する上での制約情報に基づいて回路セルを配置していき、各信号線のレイアウト、すなわち回路セルレイアウトを形成する（工程Ｓ１２）。【００６０】
次いで、１つの観測用フリップフロップ２に接続する観測信号線の最大数、すなわち最大ファンイン数を決定、前述の初期情報群に含める（工程Ｓ１３）。【００６１】
次いで、回路セルレイアウトの作成後の各回路セルの配置状態から、近傍に配置されている回路セル同士でクラスタリングし、“１”が発生する確率ｃ１もしくは“０”が発生する確率ｃ０が高くなるように観測信号線のグルーピングを行い、観測信号線をＡＮＤ  ｔｒｅｅ回路１もしくはＯＲ  ｔｒｅｅ回路３にまとめる（工程Ｓ１４）。ここでは、前述の初期情報群に含まれている最大ファンイン数以下のまとまり（ファンイン数）となるように観測信号線を確率的に分割し、グルーピングする。ここでも、確率的グルーピングは、ｔｒｅｅ回路の最終段で、“１”が発生する確率ｃ１が１／２より大きい場合にはＡＮＤ  ｔｒｅｅ回路１でまとめ、“０”が発生する確率ｃ０が１／２より大きい場合にはＯＲ  ｔｒｅｅ回路３でまとめ、いずれの場合も“１”が発生する確率ｃ１もしくは“０”が発生する確率ｃ０が大きい順に集めてグルーピングしていくのは同様である。【００６２】
次いで、ＡＮＤ  ｔｒｅｅ回路１およびＯＲ  ｔｒｅｅ回路３の終端に観測用フリップフロップ２を配置し、これらをスキャン接続する（工程Ｓ１５）。【００６３】
次に、半導体集積回路の設計工程および製造工程中における、本実施の形態のＤＦＴ回路のレイアウト設計工程の位置付けについて、図２３および図２４を用いて説明する。【００６４】
まず、チップ全体としての機能の設計を行う（工程Ｓ２１）。次いで、工程Ｓ２１で設計したチップ全体の機能に合わせて論理設計を行い（工程Ｓ２２）、さらに論理回路に合成する（工程Ｓ２３）。次いで、工程Ｓ２３で合成された論理回路にテスト回路を挿入する（工程Ｓ２４）。次いで、回路セルレイアウトを作成する（工程Ｓ２５）。この工程Ｓ２５には、図１９および図２２でまとめたＤＦＴ回路のレイアウト設計工程も含まれるものであり、工程Ｓ２５はさらに図２４に示すフローチャートのように工程が細分化される。【００６５】
工程Ｓ２５では、まずチップにおけるフロアプラン設計が行われる（工程Ｓ２５Ａ）。このフロアプラン設計により、回路セルレイアウトを形成する上での制約情報が作成され、前述の初期情報群にその制約情報を含めることができる。【００６６】
次いで、チップフロア内に回路セルを配置する前に、回路セルの最適化を行う（工程Ｓ２５Ｂ）。この回路セルの最適化は、図１９を用いてまとめた工程Ｓ２（論理的グルーピング）、工程Ｓ３（最大ファンイン数決定）および工程Ｓ４（確率的グルーピング）が相当する。【００６７】
次いで、最適化が成された回路セルをチップフロア内に配置していく（工程Ｓ２５Ｃ）。この回路セルの配置工程は、図１９を用いてまとめた工程Ｓ５、および図２２を用いてまとめた工程Ｓ１２が相当する。【００６８】
回路セルをチップフロア内に配置後には、必要に応じて回路セルの最適化を行う（工程Ｓ２５Ｄ）。この回路セルの最適化は、図１９を用いてまとめた工程Ｓ６（ｔｒｅｅ構造の再構成）、工程Ｓ７（観測用フリップフロップ２の配置およびスキャン接続）、図２２を用いてまとめた工程Ｓ１３（最大ファンイン数決定）、工程Ｓ１４（確率的グルーピング）、および工程Ｓ１５（観測用フリップフロップ２の配置およびスキャン接続）が相当する。【００６９】
次いで、クロックツリー合成（ＣＴＳ（Clock Tree Synthesis））が行われる（工程Ｓ２５Ｅ）。回路の同期を取るクロック信号をチップ全体に分配する際には、数千〜数万あるフリップフロップにできるだけ同じ遅延値で到達させることが必要となる。そのため、１つのクロック信号を全フリップフロップに分配するのに効率的なｔｒｅｅ構造を生成する。このｔｒｅｅ構造の生成をＣＴＳと言う。このＣＴＳ後には、必要に応じて回路セルの最適化を行う（工程Ｓ２５Ｆ）。【００７０】
次いで、チップフロア内での最適化が完了した回路セルに対応する配線をレイアウト上に配置していく（工程Ｓ２５Ｇ）。配線の配置後、必要に応じて配置した配線および回路セルの最適化（工程Ｓ２５Ｈ）を行うことで、工程２５の回路セルレイアウト作成が行われる。【００７１】
次に、上記工程２５で作成された回路セルレイアウトを基に、半導体ウエハへ回路パターンを転写するためのマスク製造が行われる（工程Ｓ２６）。その後、そのマスクを用いたウエハ処理およびパッケージング処理（工程Ｓ２７）を経て、本実施の形態の半導体集積回路を製造する。【００７２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００７３】
本発明の半導体集積回路の設計方法およびソフトウエアは、ＳｏＣ（System on Chip）およびマイコン等のロジック（論理）回路を有するチップの製造における、ＤＦＴ回路のレイアウト自動設計工程に適用できる。
【図１】
2010073399.tif 000003
【図２】
2010073399.tif 000004
【図３】
2010073399.tif 000005
【図４】
2010073399.tif 000006
【図５】
2010073399.tif 000007
【図６】
2010073399.tif 000008
【図７】
2010073399.tif 000009
【図８】
2010073399.tif 000010
【図９】
2010073399.tif 000011
【図１０】
2010073399.tif 000012
【図１１】
2010073399.tif 000013
【図１２】
2010073399.tif 000014
【図１３】
2010073399.tif 000015
【図１４】
2010073399.tif 000016
【図１５】
2010073399.tif 000017
【図１６】
2010073399.tif 000018
【図１７】
2010073399.tif 000019
【図１８】
2010073399.tif 000020
【図１９】
2010073399.tif 000021
【図２０】
2010073399.tif 000022
【図２１】
2010073399.tif 000023
【図２２】
2010073399.tif 000024
【図２３】
2010073399.tif 000025
【図２４】
2010073399.tif 000026
【図２５】
2010073399.tif 000027
【図２６】
2010073399.tif 000028
【図２７】
2010073399.tif 000029
【国際調査報告】
2010073399.tif 000030
2010073399.tif 000031