(57)【特許請求の範囲】
【請求項１】
半導体集積回路の設計装置を用いた論理設計において、
設計装置のテスト合成手段が、第１のスキャンチェーンを含む第１のネットリストを生成する工程と、
設計装置のリオーダー手段が、該第１のネットリストをリオーダーして第２のスキャンチェーンを含む第２のネットリストと、スキャン情報を生成する工程と、
設計装置の検証手段が、前記第１のネットリストと前記第２のネットリストの論理等価性検証を行う工程を含み、
前記論理等価性検証を行うとき、前記スキャン情報に基づいて前記第２のスキャンチェーンを構成するフリップフロップ回路の接続点に論理等価性検証における切断点を設け、該切断点での論理等価性は論理等価性検証の対象から外すことを特徴とする半導体集積回路の論理設計の方法。
【請求項２】
前記切断点を設けるとき、前記スキャン情報に基づいてリオーダーが禁止されたフリップフロップ回路間の接続点に該切断点を設けないことを特徴とする請求項１記載の半導体集積回路の論理設計の方法。
【請求項３】
前記リオーダーを行う工程において、前記第２のスキャンチェーンを構成し、相互に隣接するフリップフロップ回路の間に挿入されたラッチ回路を、前記論理等価性検証を行うときはバッファ回路に置き換える設定を含むことを特徴とする請求項１または２記載の半導体集積回路の論理設計の方法。
【請求項４】
設計装置のテスト合成手段が、第１のスキャンチェーンを含む第１のネットリストを生成する工程と、
設計装置のリオーダー手段が、該第１のネットリストをリオーダーして第２のスキャンチェーンを含む第２のネットリストとスキャン情報を生成する工程と、
設計装置の検証手段が、前記第１のネットリストと、前記第２のネットリストの論理等価性検証を行う工程を含み、
前記論理等価性検証を行うとき、前記スキャン情報に基づいて前記第２のスキャンチェーンを構成するフリップフロップ回路の接続点に論理等価性検証における切断点を設け、該切断点での論理等価性は論理等価性検証の対象から外すことを特徴とする論理回路の検証方法。
【請求項５】
第１のスキャンチェーンを含む第１のネットリストを生成するテスト合成手段と、
該第１のネットリストをリオーダーし第２のスキャンチェーンを含む第２のネットリストと、スキャン情報を生成するリオーダー手段と、
前記第１のネットリストと、前記第２のネットリストの論理等価性検証を行う論理等価性検証手段を備え、
前記論理等価性検証手段は、前記スキャン情報に基づいて前記第２のスキャンチェーンを構成するフリップフロップ回路の接続点に論理等価性検証における切断点を設け、該切断点での論理等価性を検証の対象から外して論理等価性検証を行うことを特徴とする半導体集積回路の設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体集積回路の設計において、スキャンチェーンのリオーダーを行う前と行った後の２つのネットリストについて論理等価性の検証を行う工程を備えた設計の方法および設計装置に関するものである。
【背景技術】
【０００２】
半導体集積回路の設計装置は、目的とする設計仕様を実現するための論理回路を設計し、ネットリストを作成する論理合成手段と、そのネットリストを元に論理回路を検証するテスト回路を生成しレイアウトを行うテスト合成手段と、さらにテスト回路のレイアウトをリオーダーするレイアウトリオーダー手段を有している。さらに、リオーダーされたネットリストに対して検証を行う検証手段を有している。本発明は該設計装置に含まれる該検証手段に関わるものである。
【０００３】
図７を用いて半導体集積回路の設計工程の手順を説明する。先ず、ステップＳ１において、論理合成手段に目的とする設計仕様が入力されて論理合成を行い、ネットリストＮＥＴ１を生成し記憶装置に保持する。
【０００４】
次にステップＳ２において、テスト合成手段はネットリストＮＥＴ１が入力されることでテスト回路とテストプログラムを作成し、さらにレイアウトを行って論理回路の配置と配線情報を含むネットリストＮＥＴ２を生成する。このときスキャンテストのためのスキャンチェーンが生成される。
【０００５】
スキャンテストは、大規模化する半導体集積回路におけるテスト方法の一つとして一般的に用いられている。すなわち、テストモードに設定すると、論理回路内に配置された複数のフリップフロップ回路（以下ＦＦ回路と表記する）を用いてスキャン機能を備えたスキャンＦＦ回路が構成され、このスキャンＦＦ回路を接続配線でチェーン状につなぎスキャンチェーンを形成する。そして、スキャンイン端子からスキャンチェーンを経由して指定された組み合わせ論理回路の入力端子にテストのための入力値を与え、その組み合わせ論理回路が処理して得られた出力値を再びスキャンチェーンを経由してスキャンアウト端子から出力する。出力された値とその組み合わせ論理回路の期待値とを比較することで組み合わせ論理回路の一つ一つを独立に検証することができる。
【０００６】
図８にテスト合成後に生成されたスキャンチェーンを示す
スキャンチェーンはスキャンＦＦ回路１０で構成され、それぞれの入力端子ＳＩと出力端子ＳＯが直列にチェーン状に接続されて形成されている。
【０００７】
モード設定回路２０は、テスト制御信号ＴＲＳＴ、ＴＤＩ、ＴＭＳ、ＴＣＫ等が入力されて、システムモード信号ＳＭを出力しスキャンＦＦ回路を制御する。システムモード信号ＳＭは、システムモード時には“０”が出力され、テストモード時には“１”が出力される。
【０００８】
図９は、スキャンＦＦ回路１０の回路構成の例を示している。スキャンＦＦ回路１０は、ＤＦＦ回路１１とセレクタ１２とＮＡＮＤゲート１３で構成されている。セレクタ１２は、システムモード信号ＳＭの信号によって入力端子Ｄまたはスキャンイン信号ＳＩのいずれか一方を選択してＤＦＦ回路１１の入力端子Ｉに接続する。ＤＦＦ回路１２の出力Ｏは、ＮＡＮＤゲート１３に入力され、システムモード信号ＳＭが“１”の時には、スキャンアウト端子ＳＯから出力される。クロック入力端子ＣＫＬはシステムクロックが供給される。
【０００９】
システムモードではシステムモード信号ＳＭは“０”に設定されているので、入力端子Ｄに与えられる入力信号はＤＦＦ１１の入力端子Ｉに与えられて、出力端子Ｏの信号が出力端子Ｑより出力される。このようにしてスキャンＦＦ回路１０は集積回路が目的とするシステムの動作を行うことができる。
【００１０】
スキャンモード時にはシステムモード信号ＳＭは“１”に設定され、スキャンイン端子ＳＩに与えられた信号がセレクタ１２で選択され、ＤＦＦの入力端子Ｉに加えられる。ＤＦＦ１１の出力信号ＯはＮＡＮＤ回路１３を経由してスキャンアウト端子ＳＯから出力される。
【００１１】
テスト合成においては、スキャンＦＦ回路は論理的なつながりを参照して選択されるため、レイアウト後のスキャンＦＦ回路の配置は必ずしも対象とする論理回路と近い位置にあるとは限らない。離れた位置にあると、接続のための配線が長くなって配線領域の面積増加し、配線による遅延時間が長くなるなど不都合が生じる。そのため、テスト回路合成後に形成されたスキャンチェーンのスキャンＦＦ回路の置き換えと再配線を行うリオーダーが行われる。
【００１２】
図７のステップＳ３においてリオーダー手段によって、スキャンＦＦ回路の置き換えが行われ、それに伴って再配置と再配線が行われ、ネットリストＮＥＴ３が生成される。
【００１３】
図１０はリオーダーによってスキャンＦＦ回路置き換えが実行された様子を示している。この例では、ＳＦＦ−Ａ−Ｂ−Ｃ−Ｄの順序で並んでいたスキャンＦＦ回路１０が、リオーダーの結果ＳＦＦ−Ｂ−Ｃ−Ａ−Ｄに変わっている。しかしこの変更はテストモード時に使用するスキャンチェーンを構成するＦＦ回路の交換が行われただけであって、システムモード時すなわちシステムモード信号ＳＭが“０”の時にはＦＦ回路はリオーダーされる前のままに接続されていなければならない。
【００１４】
このように、リオーダー工程ではスキャンＦＦ回路１０の置き換えが行われ、置き換えに伴う配線の変更が行われるため、変更後にもシステムが正しく動作するかどうかの検証を行わなければならない。さらに、テストモードにおいてテスト回路が正しく動作することも検証しておかなければならない。
【００１５】
リオーダー後のネットリストの論理検証は論理シュミュレータを用いて行うことが可能であるが、設計規模の増大に伴って検証に要する時間が増大し、設計工程の長期化とコストの増大を招いている。そこで、近年開発されてきた論理等価性検証の手法を利用するようになってきた。論理等価性検証は論理回路を式で表現し、２つの論理回路の式同士を比較して一致しているとき等価であると検証する方法で、非常に高速に検証を行うことが可能なところに特徴がある。
【００１６】
図７のステップＳ４は論理等価性検証を行うための設定を行う手順を示している。ステップＳ５で、この設定に基づいてリオーダーされる前のネットリストＮＥＴ２とリオーダー後のネットリストＮＥＴ３の論理等価性の検証を行う。
【００１７】
次に論理等価性検証について説明する。論理等価性検証を行うために、先ず半導体集積回路を構成する論理回路を式で表現する。そのために、集積回路を構成する論理回路の入力点あるいは出力点を起点にしてその起点の値を決定する回路群を論理コーンとして集積回路を分割し、この各論理コーンを式で表現する。
【００１８】
図１１を用いて論理等価性検証による検証方法について説明を行う。図１１（ａ）はテスト合成後のネットリストＮＥＴ２の中のスキャンＦＦ回路を含む論理回路を取り出したものである。スキャンＦＦ回路１０の回路には、信号入力Ａｉｎとシステムモード信号ＳＭ、および、論理回路Ｂ、Ｃの出力信号が入力され、出力Ｑを出力する。このように、図１１（ａ）に示す回路は出力端子をＱとする論理コーンを形成している。ここで、論理回路１７はスキャンＦＦ回路Ｃであるとする。
【００１９】
図１１（ａ）の回路で構成される論理コーンの出力Ｑａを式で表現すると、
Ｑａ＝Ｘ（Ａｉｎ，Ｂ，Ｃ，ＣＬＫ，ＳＭ）          （１）
と表すことができる。論理等価性検証を行うときは、全ての論理コーンについてこのように式で表現し、検証しようとする２つの回路の全ての式について比較を行う。リオーダーによって集積回路の論理に変更が生じなければ両者は完全に一致する。もし、誤った配置あるいは配線が行われた場合その箇所の式は不一致となりエラーを表示して知らせることができる。このように、式の比較を行うことで２つのネットリストの論理の等価性を検証することができるため、高速な検証を行うことができる。
【００２０】
ところで、図１１（ｂ）はリオーダーを行った後のネットリストＮＥＴ３における上記（ａ）の部分を示しているが、リオーダーによって論理回路１７ではスキャンＦＦ回路ＣがＤに置き換わっている。スキャンＦＦ回路ＣとＤの動作が同じであれば、スキャンチェーンの動作の観点ではどちらの接続であっても同等に動作する。しかし、図１１（ｂ）の回路の出力信号Ｑｂは、
Ｑｂ＝Ｘ（Ａｉｎ，Ｂ，Ｄ，ＣＬＫ，ＳＭ）          （２）
で表される。
【００２１】
論理等価性検証では、ＱａとＱｂの論理の等価性が比較される。システムモード時にはシステムモード信号ＳＭが“０”であって、このときはＦＦ回路ＣおよびＤは論理的には接続されていないため一致と判定される。
【００２２】
しかし、テストモード時にはシステムモード信号ＳＭが“１”となり、スキャンＦＦ回路ＣとＤが論理的に接続されるため式（１）と式（２）とは異なるものとなり不一致と判定される。このようにリオーダーによってスキャンＦＦ回路の置き換えが行われたとき、論理等価性検証では全てエラー表示されてしまう。そのため得られたネットリストをそのままで論理等価性検証を行うと大量のエラーが表示されてしまい、本来検出すべき誤配置、誤配線の箇所が埋もれてしまって、エラー原因の場所を確定することが困難になってしまう。
【００２３】
そこで従来は、このような大量のエラー表示の発生を避けるために、論理等価性検証を行うときはシステムモードの動作での検証のみを行うように設定し、テストモードでの検証を省略していた。従って、テスト回路が正常に動作するかどうかは実際に半導体集積回路を作成してテストを実行してみるまで確認することができなかった。
【特許文献１】特開２００４−７８７５９号公報
【特許文献２】特開平１１−７３４４８号公報
【発明の開示】
【発明が解決しようとする課題】
【００２４】
そこで、テストモード時においても検証を行うための方法が考案されている。テストモードの論理等価性検証を行う場合に、スキャンＦＦ回路が検証対象にならないように設定すれば、余分のエラー表示を防ぐことができる。
【００２５】
第１の方法は、テストモードにおいてスキャンＦＦ回路に入力されるシステムモード信号ＳＭ入力端子に直接システムモードの値“０”を設定する方法である。このようにすると、テストモードで論理等価性検証を行ったときも、スキャンＦＦ回路はシステムモードに設定されているためシステムモードに対応する接続が行われる。そのため、リオーダー前後のＦＦ回路の置き換えは式に反映されることがないので、エラー表示の発生を避けることができる。しかし、この方法ではモード設定回路２０のＳＭ出力からスキャンＦＦ回路１０のＳＭ入力までの論理等価性を検証することができない。
【００２６】
第２の方法は、テストモード時にモード設定回路２０の入力にスキャンＦＦ回路のシステムモード信号ＳＭ端子に直接システムモードの値“０”を設定する方法である。この方法によっても、第１の方法と同様の効果が得られる。この場合は第１の方法に加えて、モード設定回路２０の出力端子からスキャンＦＦ回路１０までの配線経路の検証を行うことも可能になる。
【００２７】
さらに第３の方法として、モード設定回路２０の入力信号ＴＲＳＴ、ＴＤＩ、ＴＳＭ、ＴＣＫ端子等に対して、システムモード信号ＳＭの出力が“０”になる条件に設定を行って論理等価性検証の検証を行う方法がある。この方法によっても方法１と同様の効果が得られる。さらに加えてモード設定回路２０の検証も行うことが可能になる。
【００２８】
しかし、第３の方法においてはシステムモード信号ＳＭが“０”固定されると同時にモード設定回路２０が出力する他の試験項目に関わる出力値も、特定の値に固定されてしまうため、接続される回路の試験を行うことができない。
【００２９】
このように、第１、第２、第３のいずれの方法においても、スキャンチェーンの論理等価性検証のほかに、システムモード、テストモード設定に付随する回路のリオーダー後の検証を充分に行うことができない。
【００３０】
さらに、上記の方法ではリオーダー工程でスキャンＦＦ回路の置き換えが禁止されている場所の検証を行うことが困難である。ＲＡＭ周辺のＦＦ回路はスキャンテストを行うときの順序が厳密に設定されている。そのため、リオーダーによってスキャンＦＦ回路の置き換えが行われると正しくテストが実行されなくなる可能性があり、リオーダーを行うことが禁止されている。従って、リオーダー処理を行った後に、リオーダーが禁止されているスキャンＦＦ回路が正しく規則を守っているかどうかを検証することが必要である。しかし、上記第１、第２のいずれの方法でも、スキャンＦＦ回路を検証の対象から外されてしまうため、確認することができない。
【００３１】
さらに、スキャンチェーンのリオーダー工程において、タイミングの調整などの目的でスキャンＦＦ回路の間にラッチ回路が挿入される場合がある。このようにラッチ回路が挿入されたときも、論理等価性検証においては不一致と判定されエラー表示されてしまう。
以上のように、論理等価性検証において本発明が解決すべき課題は下記である。
（１）テストモードにおけるスキャンチェーンを除く周辺の回路に対して、リオーダー工程の前後の論理等価性検証を簡便に行うこと。
（２）リオーダー工程において、置き換えられてならない箇所が変更されていないかどうかを検証する。
（３）論理に関わらないラッチ回路などが不一致判定とされることを避ける。
【課題を解決するための手段】
【００３２】
本発明は、上記課題を解決する手段を備えた半導体集積回路の設計方法および設計装置を提供するものである。
【００３３】
第１の発明によれば、設計装置のテスト合成手段が、第１のスキャンチェーンを含む第１のネットリストを生成する工程と、設計装置のリオーダー手段が、該第１のネットリストをリオーダーして第２のスキャンチェーンを含む第２のネットリストと、スキャン情報を生成する工程と、設計装置の検証手段が、前記第１のネットリストと前記第２のネットリストの論理等価性検証を行う工程を含み、前記論理等価性検証を行うときに、前記スキャン情報に基づいて前記第２のスキャンチェーンを構成するフリップフロップ回路の接続点に論理等価性検証における切断点を設け、該切断点での論理等価性は論理等価性検証の対象から外すことを特徴としている。
【００３４】
このように、スキャンＦＦ回路の接続点に予め論理等価性検証における切断点を設定し、この切断点での論理等価性は検証の対象から除外することで、仮に切断点に接続されたスキャンＦＦ回路がリオーダーによって置き換えられたとしても検証の対象とはならないため不一致の判定が避けられる。従って、論理等価性検証に対して不要な大量のエラー表示が発生することがなく、エラー表示されたものはリオーダーにおいて何らかのミス、あるいは誤動作の原因があるものとして対策を取ることができる。このようにして、スキャンチェーンを除く周辺の回路に対して検証を行うことが可能になる。切断点の設定はスキャン情報を利用することで容易に自動的に行うことができる。論理等価性検証は、この切断点での論理等価性を検証対象から外す指示が加わるだけである。従って検証作業を簡便に行うことができる。
【００３５】
さらに、第２の発明によれば、前記切断点を設けるとき、前記スキャン情報に基づいてリオーダーが禁止されたフリップフロップ回路間の接続点に該切断点を設けないことを特徴としている。
【００３６】
このようにすることで、リオーダーにおいて誤って変更されるようなことがなかったことを検証することが必要なフリップフロップ回路に対しては、切断点が設けられていないため論理等価性検証が行われる。従って、この場合はスキャンフリップフロップ回路であっても検証を行うことが可能になる。検証が可能な範囲が広くなることで誤配置、誤配線を見つける確率をより高めることが可能になる。
【００３７】
さらに、第３の発明によれば、前記リオーダーの工程において、相互に隣接する前記第２のスキャンチェーンを構成するフリップフロップ回路の間に挿入されたラッチ回路をバッファ回路に置き換える工程を含むことを特徴としている。
【００３８】
ラッチ回路が挿入されると論理等価性検証においてはリオーダー前と異なる論理と判定する。しかし、バッファ回路は、論理的には作用を及ぼすことがないため、論理等価性検証においては何もないことと同じである。従って、リオーダーで挿入されたラッチ回路をバッファ回路に置き換わるように設定すれば、論理等価性検証においてエラー表示されることを避けることがきる。
【発明を実施するための最良の形態】
【００３９】
図１は、本発明を用いた半導体集積回路の設計の手順を示している。基本的な手順は図７を用いて先に説明した従来の手順と同じである。ここでは、設計仕様ファイル３０は、半導体集積回路が要求される仕様を格納したファイルである。またネットリストファイル３１はそれぞれの設計ツールによって作成されたネットリストを格納したファイルである。スキャン情報ファイル３２はスキャンチェーンを構成するＦＦ回路に関する情報を格納したファイルである。ラッチ回路情報ファイル３３はスキャンチェーンを構成するスキャンＦＦ回路の間に挿入されたラッチ回路に関する情報を格納したファイルである。
【００４０】
ステップＳ１では設計仕様３０に従って論理合成を行い、ネットリストＮＥＴ１を生成する。次いで、ステップＳ２ではネットリストＮＥＴ１を参照してテスト合成とレイアウトを行ってスキャンチェーンを含むテスト回路とテストプログラムを生成し、レイアウトを行って、ネットリストＮＥＴ２（第１のネットリスト）を生成する。このとき、スキャンチェーンの構成や接続情報等を含むスキャン情報を作成しスキャン情報ファイルＳＣＦ１に格納する。
【００４１】
ステップＳ３では、ネットリストＮＥＴ２を用いてスキャンＦＦ回路の再配置と再配線を伴うリオーダーが行われ、ネットリストＮＥＴ３（第２のネットリスト）が生成される。リオーダーによって置き換えが行われたスキャンＦＦ回路に関する情報はネットリストＮＥＴ３に格納されている。さらにリオーダーに関連して、隣接するスキャンＦＦ回路の間に挿入されたラッチ回路に関する情報をラッチ情報ファイルＲＣＦ１に格納する。
【００４２】
ステップＳ４ではネットリストＮＥＴ２とＮＥＴ３の論理等価性を検証するため、検証に先立ち検証装置に対して後述する設定を行う。設定情報はスキャン情報ファイルＳＣＦ２と、ラッチ情報ファイルＲＣＦ２に格納するようにしておいても良い。
【００４３】
そして、ステップＳ５では、検証装置を用いてネットリストＮＥＴ２とＮＥＴ３の論理等価性を検証する。このときステップＳ４で設定しておいた設定条件を用いて検証を行う。あるいは、スキャン情報ファイルＳＣＦ２とラッチ情報ファイルＲＣＦ２を設定条件として参照して検証するように構成しても良い。この検証結果が基準を満たしていたとき設計が終了する。
【００４４】
次に、ステップＳ４で行う設定と、ステップＳ５で行う論理等価性検証の具体的な実行手順について、図２を用いて説明する。
【００４５】
ステップＳ１１では、ネットリストＮＥＴ３で作成されたスキャン情報を参照してスキャンテストで使用するスキャンＦＦ回路を抽出し、スキャンイン端子ＳＩを特定のポイントと定義して、ここに切断点を設ける。論理等価性検証を行うとき、この切断点を検証の対象から外すように条件を設定する。こうすることでリオーダーによってスキャンＦＦ回路の置き換えがあった場合も不一致によるエラー表示がなされることを避けることが可能になる。
【００４６】
ステップＳ１２では、リオーダーが禁止されているスキャンＦＦ回路の抽出を行う。リオーダーが禁止されているスキャンＦＦ回路の中で先頭のものには切断点を設定を行い、２番目以降のスキャンＦＦ回路には切断点を設けない。そのため、ステップＳ１２では抽出されたスキャンＦＦ回路の中から２番目以降についてはステップＳ１１で設定された切断点を除去する。このように設定することでリオーダーが禁止されているスキャンＦＦ回路が変更されるようなことがなかったかどうかを検証することができる。
【００４７】
ステップＳ１３では、リオーダーに伴って設定されたラッチ回路の抽出を行い、抽出されたラッチ回路をバッファ回路に置き換えを行う。
【００４８】
上記設定を行った後に、ステップＳ１４でネットリストＮＥＴ２とＮＥＴ３の論理等価性検証を行う。ステップＳ１１よりＳ１３までの設定を行うことで、スキャンＦＦ回路のリオーダーに伴って発生する論理等価性検証で不一致によるエラー表示を避けることが可能になる。
【００４９】
なお、図２に示された手順では、最初に全てのスキャンＦＦ回路に切断点を設け、次にリオーダーが禁止されたスキャンＦＦ回路の切断点を除去しているが、この順序を変更してリオーダー禁止のスキャンＦＦ回路には先頭のＦＦ回路だけに切断点を設け、残りのスキャンＦＦ回路には切断点を設けない処理を行ってから、他のスキャンＦＦ回路に切断点を設定するように変更してもかまわない。
【００５０】
また、ラッチ回路の場合も同様に、バッファ回路に置き換えるステップＳ１３をステップＳ１１、あるいはＳ１２の設定を行う前に実行しておいても、論理等価性検証を行ったとき同様の効果が得られる。
【００５１】
次に上記設定を行う手順について順番に説明を行う。図３はリオーダー後のスキャンチェーンを示している。この図は、先の図１０と基本的に同じで、同じ対象には同じ名前を与えてある。この中で、スキャンＦＦ回路１０のＳＦＦ−ＡからＳＦＦ−Ｃはリオーダーの対象であるが、ＳＦＦ−ＤからＳＦＦ−Ｆはリオーダー禁止とされている。従って、スキャンＦＦ回路ＳＦＦ−ＤからＳＦＦ−Ｆはリオーダー前から変更を加えられていない。
【００５２】
さらに図３には、スキャンＦＦ回路１０のＳＦＦ−ＦとＳＦＦ−Ｇの間にタイミングを調整するための新たにラッチ回路２１（ＲＣ）が挿入されている。図３に表されたスキャンチェーンに対して図１のステップＳ４における設定を行った結果を図４に示す。図４では、リオーダー対象となるスキャンＦＦ回路１０の入力ＳＩに切断点ＣＰが設定された状況を示している。
【００５３】
さらに、リオーダーが禁止されているスキャンＦＦ回路１０の先頭であるＳＦＦ−Ｄに切断点が設定されている。しかし、続くスキャンＦＦ回路１０には切断点が設定されていない。また、ラッチ回路２１は、バッファ回路２２に置き換えられている。以下に順を追って説明する。
【００５４】
［実施例１］
先ず、切断点の設定について図５を用いて説明する。図５（ａ）はスキャンチェーンの一部としてスキャンＦＦ回路ＳＦＦ−ＡとＳＦＦ−Ｂを切り取ったものである。スキャンＦＦ回路ＳＦＦ−Ｂのスキャンイン端子ＳＩはＳＦＦ−Ａのスキャンアウト端子ＳＯに接続されている。そこで、スキャンＦＦ回路ＳＦＦ−Ｂのスキャンイン端子ＳＩを論理コーンＬＣ−１の起点として表すと、図５（ｂ）のように表現することができる。
【００５５】
この場合、スキャンイン端子ＳＩにはスキャンＦＦ回路ＳＦＦ−Ａのスキャンアウト端子ＳＯが接続されている。従って、この論理コーンは式
ＳＩ＝Ａ，ＳＯ                    （３）
で表すことができる。
【００５６】
ここで、リオーダーでスキャンＦＦ回路ＳＦＦ−ＡがＳＦＦ−Ｃに置き換わったとき、先の論理コーンの式が
ＳＩ＝Ｃ，ＳＯ                    （４）
で表される。このように回路動作は同じであっても、式の上では異なるものに変化したと判断されて、不一致箇所として検出されエラー表示がなされるは前述のとおりである。そのため、本発明では、スキャンＦＦ回路の接続点を特定のポイントと定義し、ここに切断点ＣＰを新たに設けることとする。この切断点は、図５（ｃ）に示すように新たな論理コーンＬＣ−２が挿入されたと表現することができる。図５（ｃ）においてはスキャンＦＦ回路の接続関係を示す論理コーンは式
ＳＩ＝ＣＰ                        （５）
ＣＰ＝Ａ，ＳＯ                    （６）
と表すことができる。そして、スキャンＦＦ回路ＳＦＦ−ＡがＳＦＦ−Ｃに置き換わったときは、
ＳＩ＝ＣＰ                        （７）
ＣＰ＝Ｃ，ＳＯ                    （８）
と表すことができる。
【００５７】
従って、式（５）式（６）と式（７）式（８）を比較したとき、異なるのは新たに導入した切断点ＣＰであって、スキャンＦＦ回路ＳＦＦ−Ｂに属する論理コーンの式（５）から式（７）の間に変更がないことがわかる。従って、論理等価性検証を行うときに切断点ＣＰを論理等価性検証の対象から外すように条件設定しておけば、切断点ＣＰに対して検証が行われないために不一致の判定が出ず、エラー表示されることを避けることができる。切断点ＣＰの設定は、スキャン情報ファイルＳＣＦ１を参照することによって自動的に生成することができる。このようにして生成された切断点を含む設定条件はスキャン情報ファイルＳＣＦ２に格納しておくことができる。
【００５８】
このようにして設定をしておけば、論理等価性検証を行うとき、スキャン情報ファイルＳＣＦ２を参照して、切断点を検証の対象から外すように条件設定を行えば、テストモードに対して論理等価性検証を行っても余計なエラー表示を引き起こすことがない。従って、論理等価性検証で表示されるエラーは、リオーダー工程で生じたエラーと考えることができるので、原因を調査して誤りを訂正する処理が容易になる。
【００５９】
以上説明したように、本発明による論理等価性検証を行えば、テストモードに対しても検証を実行できるので、従来検証が行えなかったテストモードを設定するための回路や、テストモードが正しく設定されるか等のテスト回路関係に対する検証を行うことができるようになった。
【００６０】
［実施例２］
次に、リオーダーを禁止されたスキャンＦＦ回路の設定方法について説明する。メモリ回路などでスキャン試験を行う場合、メモリ回路全体を対象にしてテストパターンを入力する。ディスターブ試験のような記憶内容が入力信号のタイミングや周辺回路の動作の影響を大きく受ける回路の場合、スキャンＦＦ回路がリオーダーで置き換得ることが許されない。従って、図２のステップＳ１２における設定は、リオーダーでスキャンＦＦ回路が置き換えられていないことと、テストパターンの発生回路はじめ、メモリテスト回路がリオーダーで変わってないことを検証することを目的としている。
【００６１】
図３ではスキャンＦＦ回路１０のＳＦＦ−ＤからＳＦＦ−Ｆの置き換えが禁止されている。このときは、置き換え禁止対象のスキャンＦＦ回路に対し、先頭のスキャンＦＦ回路のみに切断点ＣＰを設け、２番目以降のＳＦＦ回路には切断点を設けないという条件を設定する。図４ではこの設定によって、スキャンＦＦ回路ＳＦＦ−Ｄのスキャンイン端子ＳＩにのみ切断点ＣＰが設定されている。２番目以降のスキャンＦＦ回路ＳＦＦ−ＦとＳＦＦ−Ｇでは、ステップＳ１１で設定された切断点が削除されている。
【００６２】
先頭のスキャンＦＦ回路のみに切断点を設定する理由について述べる。先頭のスキャンＦＦ回路１０に当たるＳＦＦ―Ｄのスキャンイン端子ＳＩに接続されるスキャンＦＦ回路は、異なる論理回路に属するスキャンＦＦ回路であるため、リオーダーによって置き換えが許されている。従って、先頭のスキャンＦＦ回路の入力に対しては論理等価性検証の対象から外しておく必要がある。リオーダーが禁止されたスキャンＦＦ回路ＳＦＦ−Ｄを先頭として続くスキャンＦＦ回路ＳＦＦ−Ｅ、ＳＦＦ−Ｆの順序はリオーダー後も変わってはならない。従ってスキャンＦＦ回路ＳＦＦ−Ｅ、ＳＦＦ−Ｆのスキャンイン端子ＳＩに切断点ＣＰを設けないように設定しておけば論理等価性検証の検証対象となる。そのため、誤って変更が加えられたときはエラー表示することができる。このようにして設定された結果はスキャン情報ファイルＳＣＦ２に格納される。
【００６３】
このように設定しておいて切断点ＣＰを検証の対象から外す論理等価性検証を行えば、リオーダーが禁止されたスキャンＦＦ回路に対しては検証が行われる。そのため、もし誤ってＳＦＦ回路が置き換えられたり結線ミスが生じたような場合は不一致が検出されてエラー表示がなされる。
【００６４】
このように、本実施例に示す設定を行うことによって、従来行っていた論理等価性検証方法では検出することができなかったメモリ周り等のスキャン回路の検証を行うことが可能になる。
【００６５】
［実施例３］
次に、ラッチ回路の取り扱いについて説明する。図３にはリオーダーによってスキャンＦＦ回路１０の間にＲＳと表記されたラッチ回路２１が挿入された例が示されている。本発明による設定が示された図４では、図３でスキャンＦＦ回路ＳＦＦ−ＦとＳＦＦ−Ｇの間に挿入されていたラッチ回路２１がＢＦと表記されるバッファ回路２２に置き換えられている。ラッチ回路２１はリオーダーを行った際に、スキャンチェーンに変更が加えられることによってタイミング調整が必要になったときなどに自動的に挿入されたり、必要と判断された箇所に手動で挿入される。このラッチ回路の情報はラッチ情報ファイルＲＣＦ１に格納されている。
【００６６】
ラッチ回路２は論理値を保持するという機能を持つため論理等価性検証の対象となる。そのためラッチ回路がスキャンＦＦ回路の間に挿入されたときは、スキャンＦＦ回路に切断点ＣＰを設定しただけではエラーとして検出される。
ラッチ回路を挿入したとき、論理コーンを表す式は、
ＳＩ＝ＣＰ                        （９）
ＣＰ＝ＲＴ                        （１０）
ＲＴ＝Ａ，ＳＯ                    （１１）
で表すことができる。スキャンチェーンの動作ではラッチ回路は論理の値を変更せずに伝えるため信号の処理においては結果に差は出ない。ところが、論理コーンを式で表す場合には式（１０）と式（１１）で表現される。論理等価性検証は式の上で等価性を比較するため、切断点ＣＰを表す式（１０）のみを検証対象から除いても、式（１１）がリオーダー前と異なるためエラー表示がなされる。
【００６７】
そこで本発明では、論理等価性検証を行う前に、スキャンチェーン間に接続されたラッチ回路を検出してこれをバッファ回路に置き換える処理を行う。バッファ回路は論理的にはなんら処理を行わない回路なので、式で表すときにはバッファ回路は何もないものとして処理さる。
【００６８】
従って、バッファ回路に置き換えた後に論理コーンを表す式は、
ＳＩ＝ＣＰ                        （１２）
ＣＰ＝Ａ，ＳＯ                    （１３）
となる。式（１０）と式（１３）は異なるが、切断点ＣＰは検証対象から外すように設定されて論理等価性検証が行われることによって不一致として検出されることがなく、ラッチ回路が原因でエラーが表示されることを防ぐことができる。
【００６９】
スキャンチェーンのリオーダーによってスキャンＦＦ回路の間に挿入したラッチ回路の情報はスキャン情報ファイルＳＣＦ１を参照してネットリストＮＥＴ３の中に格納されている。あるいは、リオーダーで挿入されたラッチ回路の情報を抜き出してラッチ情報ファイルＲＣＦ１に格納するようにしても良い。
【００７０】
このようにスキャンチェーンに挿入されたラッチ回路に対する設定を行った後に、実施例１、または実施例２で説明した条件で論理等価性検証を実行すれば、ラッチ回路はバッファに置き換えられているのでスキャンチェーンの検証の際にエラー表示がなされることを避けることができる。
【００７１】
［実施例４］
上記実施例１乃至３では、論理等価性検証を実行する前に予め切断点の設定と、ラッチ回路をバッファ回路への置き換えの設定作業を行っていた。しかし、このような設定を行う代わりに、論理等価性検証の実行中に判断を行いながら検証することによっても同様の効果を得ることができる。この場合は、スキャンＦＦ回路の入力を論理コーンとするように式で表しておき、論理等価性検証の途中でスキャンＦＦ回路に使用されているＦＦ回路かどうかを判定し、検証対象から外すように手順を組むことで実現することができる。
【００７２】
図６に、論理等価性検証の実行中に判断を行う手順を示す。ステップＳ２１ではシステムモード設定信号の設定条件の判断を行う。システムモードに設定されている場合、そのままステップＳ２５で従来どおりの論理等価性検証を行う。次いで、ステップＳ２６で検証対象が最終のものかどうかを判断し、最終でない場合はステップＳ２１にもどり、再び次の検証対象について検証を行う。
【００７３】
テストモードに設定されている場合であれば、ステップＳ２２で検証対象がスキャンＦＦ回路かどうかを判断する。スキャンＦＦ回路の場合はステップＳ２３でリオーダーが禁止されているスキャンＦＦ回路かどうかの判断を行う。リオーダーが禁止されていない場合は論理等価性検証の対象から外す必要があるので、ステップＳ２５は省略し、ステップＳ２６で検証対象が最終かどうかの判断を行う。
【００７４】
ステップＳ２３でリオーダー禁止のスキャンＦＦ回路であった場合はステップＳ２４でそのスキャンＦＦ回路がリオーダー禁止とされるスキャンＦＦ回路の中での順番が先頭かどうかを判断する。先頭であった場合は、その前のスキャンＦＦ回路がリオーダーによって、置き換えられている可能性があるので、ステップＳ２５は省略してステップＳ２６に移る。
【００７５】
ステップＳ２４で、もし検証対象のリオーダーで置き換え禁止のスキャンＦＦ回路の順番が禁止対象のＦＦ回路の２番目以降であった場合は、リオーダーにおいて誤って置き換えが行われていないかどうかを検証する必要がある。そこで、ステップ２５に移り論理等価性検証を実施する。
【００７６】
このように、スキャンＦＦ回路について検証を実行する段階で検証対象かどうかを判断し、検証の実行を省略する手順を取ることによって、不必要なエラーの発生を防ぐことができる。
【００７７】
ステップＳ２２で検証対象がスキャンＦＦ回路でない場合、ステップＳ２７でスキャンチェーン内に挿入されたラッチ回路かどうかの判断を行う。スキャンチェーン内にある場合は、ステップＳ２８で検証実行時にはラッチ回路の式をバッファ回路を表す式に置き換えて、ステップＳ２５で論理等価性検証を実行する。
【００７８】
このように、論理等価性検証を実行する各段階で判断を行いながら検証を行っても本発明を実施することができる。この場合には論理等価性検証を行う前に予め設定を用意する必要がない。その代わりに検証を実行する際に判断のためのステップが余計に必要となる。論理等価性検証を実行する処理装置に充分な能力があって、判断するステップに要する時間が負担とならない場合は、予め設定する手順が省略できる分有利になる。どちらの選択を行っても、本発明の実施という意味での差異はない。
【産業上の利用可能性】
【００７９】
本発明を利用することで、リオーダー後のネットリストの論理検証を、テスト合成時に論理検証がすでに行われているリオーダー前のネットリストを基準として論理等価性検証を行うことで高速に、簡便に行うことが可能になる。従って、半導体集積回路の論理設計に要する工数と時間を短くすることが可能になる。
【００８０】
本発明を利用することで、従来充分に検証を行うことが困難であったテストモードでの論理等価性検証が可能となり、テスト回路周辺の大部分の回路の検証を行うことが可能となる。従って、検証で見つからなかったエラーが原因で半導体集積回路が製作された後で不動作原因が見つかるという不都合を回避できるようになる。
【００８１】
本発明を利用することで、スキャンチェーンの中で、リオーダーによる置き換えを禁止されているフリップフロップ回路がリオーダーによって誤って変更された場合を検出することができるようになり、特にメモリ回路のテストがリオーダーミスが原因で実施できないような不都合を避けることが可能になる。
【００８２】
さらに、本発明を利用することで、スキャンチェーンのフリップフロップ回路の間に挿入されたラッチ回路を容易に検証対象から外すことが可能で、論理等価性検証の障害となることを避けることができる。
【００８３】
このようにして、本発明によって安価で、信頼性が高い半導体集積回路を製造することが可能になる。
【図面の簡単な説明】
【００８４】
【図１】本発明の半導体集積回路の設計の手順を示す図である。
【図２】本発明による論理等価性検証の手順を示す図である。
【図３】本発明を実施するリオーダー後のスキャンチェーンを示す図である。
【図４】本発明の設定を実施したスキャンチェーンを示す図である。
【図５】本発明による切断点の設定を説明する図である。
【図６】本発明の第４の実施例による論理等価性検証の手順を示す図である。
【図７】従来技術による半導体集積回路の設計の手順を示す図である。
【図８】従来技術によるテスト合成後のスキャンチェーンを示す図ある。
【図９】スキャンフリップフロップの構成を示す図である。
【図１０】従来技術によるリオーダー後のスキャンチェーンを示す図である。
【図１１】論理等価性検証手順を説明する図である。
【符号の説明】
【００８５】
１０  スキャンＦＦ回路
１１  ＤＦＦ回路
１２  セレクタ回路
１３  ＮＡＢＤゲート
１５、１６、１７  論理回路
２０  モード設定回路
２１  ラッチ回路
２２  バッファ回路
３０  設計仕様ファイル
３１  ネットリストファイル
３２  スキャン情報ファイル
３３  ラッチ情報ファイル
【図１】
0004500249.tif 000002
【図２】
0004500249.tif 000003
【図３】
0004500249.tif 000004
【図４】
0004500249.tif 000005
【図５】
0004500249.tif 000006
【図６】
0004500249.tif 000007
【図７】
0004500249.tif 000008
【図８】
0004500249.tif 000009
【図９】
0004500249.tif 000010
【図１０】
0004500249.tif 000011
【図１１】
0004500249.tif 000012