(57)【要約】【課題】大規模なゲート増加を伴うことなく、効率よく故障検出率を向上させることができるようにする。【解決手段】予め実施した故障シミュレーション（ステップ２０１〜２０５）によって故障検出率の低いモジュールを求め（ステップ２０６）、その情報をフィードバックし、該当するＲＴＬ記述に対して故障検出率を向上させ易い加工、修正を実施する（ステップ２０７，２１０，２１１）。また、故障シミュレーションの結果である残故障リストをフィードバックし（ステップ２０７，２１０）、論理合成後の組み合わせ回路段数を分割するように、ゲートレベルの論理回路を修正することで（ステップ２１１）、論理合成後の故障検出率を容易に向上させる（ステップ２０８〜２１２）。【選択図】図１
2005227843.tif 000002
【特許請求の範囲】
【請求項１】
レジスタ・トランジスタ・レベル設計方式で論理設計する半導体装置の設計方法において、
該半導体装置に対して故障シミュレーションを実施した後、該故障シミュレーションの結果リストをフィードバックし、
順序回路と他の順序回路間に接続された組み合わせ回路に含まれるランダムゲート回路の段数を２以上に分割し、
レジスタ・トランジスタ・レベル記述の修正を要求することにより、修正されたならば、修正された論理合成後の故障シミュレーションを実施することを特徴とする半導体装置の設計方法。
【請求項２】
レジスタ・トランジスタ・レベル設計方式で論理設計する半導体装置の設計方法において、
該半導体装置に対して故障シミュレーションを実施した後、該故障シミュレーションの結果リストをフィードバックし、
順序回路と他の順序回路間に２段以上接続された組み合わせ回路の段数を分割し、
該組み合わせ回路内の論理回路の修正を要求することにより、修正されたならば、修正された論理合成後の故障シミュレーションを実施することを特徴とする半導体装置の設計方法。
【請求項３】
レジスタ・トランスファー・レベル設計方式で論理設計する半導体装置設計システムにおいて、
順序回路と他の順序回路の間に配置された組み合わせ回路に対して、機能シミュレーションを行う手段と、該組み合わせ回路に対して論理合成する手段と、論理合成後に論理シミュレーションを行う手段と、該論理シミュレーション手段における結果リストを前段にフィードバックする手段と、ランダムゲート回路段数あるいは組み合わせ回路段数を分割する手段と、レジスタ・トランジスタ・レベル記述の修正あるいは組み合わせ回路内の論理回路の修正を要求する手段と、要求された修正が終了したならば、修正後の故障シミュレーションを実施する手段とを具備したことを特徴とする半導体装置設計システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、故障率検出率の向上を図ることが可能な半導体装置設計システムおよび設計方法に関し、特にＯＡ機器、ＡＶ機器、通信機器あるいはＰＣ関連機器などのレジスタ・トランスファー・レベルの設計手法、論理合成を用いることによる故障率検出率の向上につながる半導体装置の設計システムおよび設計方法に関する。
【背景技術】
【０００２】
従来、半導体装置のラッチ基本動作の診断を行う回路としては、例えば、特開平６−３２４１２０号公報に記載の『半導体集積回路』（特許文献１参照）がある。これは、第１のシングルラッチ回路、第２のシングルラッチ回路および内部信号生成回路から構成され、信号生成回路が４つの外部制御信号に基づいて６つの内部制御信号を生成するものである。その際に、４つの外部制御信号および６つの内部制御信号に基づいて、ＡＰＰＧ（ａｌｇｏｒｉｔｈｍ  ｔｅｓｔ  ｐａｔｔｅｒｎ  ｇｅｎｅｒａｔｉｏｎ）プログラムによりラッチ基本動作の診断を行うことが可能となる。
【０００３】
また、例えば、特開平１０−３３４０００号公報に記載の『内部バステスト容易回路およびバス構成回路の制御方法』（特許文献２参照）がある。これは、バスファイト（一方のスリーステート素子の入力に高レベル信号、別のスリーステート素子に低レベル信号がそれぞれ入力されたとき、バス線を介して一方のスリーステート素子から他方のステート素子に大電流が流れる状態）およびパスフロート（スリーステート素子の制御端子にイネーブル信号が供給されず、バス線が高レベル、低レベルのいずれでもない浮遊状態になる）を検出する判定回路と、それらが発生したと判定したときに、バスファイト防止回路により入力を防止し、バスフロート防止回路によりバス線に固定値を付与する。
【０００４】
また、例えば、特開平１１−１５８６９号公報に記載の『テスト容易化検証方法、装置、およびプログラムを記録した記録媒体』（特許文献３参照）がある。これは、検証対象の集積回路のＲＴＬ（レジスタ転送レベル）回路記述データを構文解析木に展開し、構文解析木から外部端子リストとチェックポイントリストを作成し、次に、テストパターンファイルを作成し、このファイルに基づいて集積回路のシミュレーションを行い、その結果に基づき所定のテスト容易化ルールを満足しているか否かを判定する。
【０００５】
【特許文献１】特開平６−３２４１２０号公報
【特許文献２】特開平１０−３３４０００号公報
【特許文献３】特開平１１−１５８６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このように、従来、レジスタ・トランスファー・レベル（ＲＴＬ）設計方式による論理回路の故障検出率を向上させるために、一般にスキャンパステスト法を採用している。予め存在する順序回路であるフリップフロップ回路を、スキャン方式のフリップフロップ回路に置換することにより実現している。
一般的な半導体装置の論理回路は、複数のモジュールの集まりで構成される。順序回路と順序回路との間には、一般に組み合わせ回路が存在するが、複雑な組み合わせ回路の場合、従来のスキャンパス方式では、十分な故障検出率を達成することが困難な場合がある。これは、ＲＴＬ記述においても同様であった。
【０００７】
（目的）
そこで、本発明の目的は、レジスタ・トランスファー・レベル（ＲＴＬ）の設計方式による論理回路の故障検出率を容易に向上させ易い加工、修正を実施することができ、かつ論理合成後の故障検出率も容易に向上させることが可能な半導体装置設計システムおよび設計方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明による半導体装置設計システムおよび設計方法は、予め実施した故障シミュレーションによって故障検出率の低いモジュールを求め、その情報をフィードバックし、該当するＲＴＬ記述に対して故障検出率を向上させ易い加工、修正を実施する。また、故障シミュレーションの結果である残故障リストをフィードバックし、論理合成後の組み合わせ回路段数を分割するように、ゲートレベルの論理回路を修正することで、論理合成後の故障検出率を容易に向上させる。
具体的には、レジスタ・トランスファー・レベル設計方式で論理設計する半導体装置の設計工程において、故障シミュレーションの結果リストをフィードバックし、ランダムゲート回路段数を分割するように、レジスタ・トランスファー・レベル記述を修正することにより、論理合成後の故障検出率を向上させる。
また、故障シミュレーションの結果リストをフィードバックし、組み合わせ回路段数を分割するように、論理回路を修正することにより、論理合成後の故障検出率を向上させる。
【発明の効果】
【０００９】
本発明によれば、故障シミュレーション結果を基に、ＲＴＬ修正を行うことで、大規模なゲート増加を伴うことなく、効率よく故障検出率を向上させることができる（請求項１）。
また、故障シミュレーション結果を基に、ネットリストを修正することで、検出率の低い回路に特化した加工が行え、効率よく故障検出率を向上させることができる（請求項２）。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態を、図面により詳細に説明する。
先ず、比較のために、従来からの一般的な方法でＲＴＬ設計による半導体装置を開発する場合の工程を説明する。
図９は、従来における開発工程のフローチャートである。
まず、ＲＴＬ機能設計、すなわち所定の仕様に基づいて、ＲＴＬ記述言語を用いて機能記述を作成する工程を実施する（ステップ１０１）。
次に、機能ＳＩＭ、すなわち作成されたＲＴＬソースファイルを用いて、機能動作確認をシミュレーションする工程を実施する（ステップ１０２）。
次に、論理合成、すなわち論理合成ツールにより、ＲＴＬソースファイルから論理ゲート回路へ変換する工程を実施する（ステップ１０３）。
【００１１】
次に、論理ＳＩＭ、すなわち、論理合成後のゲート回路（ネットリスト）を用い、ゲート遅延情報も含めてシミュレーションする工程を実施する（ステップ１０４）。
次に、故障ＳＩＭ、すなわち、擬似的に縮退故障を組み込んだシミュレーションにより、ゲート全体に対する故障検出率を算出する工程を実施する（ステップ１０５）。これにより、未検出回路を特定すると同時に、下位モジュール毎の故障検出率を求めることも可能である。
【００１２】
上記のように、従来より、半導体装置の論理回路は、複数のモジュールの集まりで構成され、順序回路と順序回路の間には組み合わせ回路が存在しているので、従来の開発フローでは、論理合成により生成されたネットリストに対して、一定数値以上を達成するために、故障を検出するためのテストパターンを、自動またはマニュアルで作成する作業を最後に実施していた。そのために、故障検出率を向上させるには、困難な場合が多かった。
【００１３】
本発明においては、ＲＴＬ設計方式で論理設計する半導体装置の設計工程において、一旦、論理合成後に故障検出率を求め、その検出率の低いモジュールに対して、ＲＴＬソースを加工、修正することで、回路全体の故障検出率を向上させることを特徴としている。
図１は、本発明の実施形態に係る半導体装置の開発フローチャートである。
図９の従来のフローに加えて、ＲＴＬ修正を行った後に、機能ＳＩＭ、論理合成、論理ＳＩＭを実施し、次にゲート修正を行った後に故障ＳＩＭを行う。
まず、図９の従来の工程を実施する（ステップ２０１〜２０５）。次に、モジュール解析を行い（ステップ２０６）、下位モジュール毎の故障検出率を算出し、その結果、検出率の低いモジュールに対し、縮退故障を検出し易くするためのＲＴＬソースファイル修正（ステップ２０７）、および、ネットリストのゲート回路の修正（ステップ２１１）を実施した後、二度目のフローを処理することになる。
【００１４】
すなわち、ＲＴＬ修正（ステップ２０７）の後、機能ＳＩＭ、すなわちゲート回路（ネットリスト）を用いてゲート遅延情報も含めてシミュレーションを実施する（ステップ２０８）。
次に、論理合成、すなわち論理合成ツールによりＲＴＬソースファイルから論理ゲート回路へ変換する工程を実施する（ステップ２０９）。
また、論理ＳＩＭ、すなわち論理合成後のゲート回路（ネットリスト）を用い、ゲート遅延情報も含めてシミュレーションを実施する（ステップ２１０）。
次に、ゲート修正（ステップ２１１）の後、故障ＳＩＭ、すなわち擬似的に縮退故障を組み込んだシミュレーションにより、ゲート全体に対する故障検出率を算出する（ステップ２１２）。
【００１５】
図２および図３は、本発明（請求項１）が適用可能な一般的な同期回路例を示す図である。
順序回路の構成要素であるフリップフロップ（Ｄ−ＦＦ）間に、組み合わせ回路が存在し、その回路構成が複雑な場合には、故障検出率を高くすることが困難となる。
図２において、１０，１１，１３はフリップフロップ回路であり、１２は組み合わせ回路である。この組み合わせ回路１２が複雑である場合には、故障検出率を高くすることは難かしい。
同じように、図３において、２０〜２３、２５はフリップフロップ回路であり、２４は比較あるいは演算回路であって、組み合わせ回路である。この比較あるいは演算回路２４が複雑な場合には、故障検出率を高くできない。
図２、図３の回路構成を有する装置に対しては、本発明の開発工程（請求項１）により半導体装置を構成する。例えば、図２の組み合わせ回路１２に対しては、故障シミュレーション結果リストをフィードバックし、回路１２内部のランダムゲート段数を分割できるときには分割し、ＲＴＬ記述を修正することにより、論理合成後の故障検出率を向上させる。
【００１６】
図４および図５は、本発明（請求項２）が適用可能な一般的な組み合わせ同期回路例を示す図である。
図４、図５の回路例は、図２，図３をさらに組み合わせて複雑にした組み合わせ回路である。
図４において、３１，３２，３４，３７はフリップフロップ回路、３５はセレクタ、３３，３６は組み合わせ回路である。
同じく、図５において、４１〜４４、４８，４９、５０はフリップフロップ回路、４５，４６，４７は比較あるいは演算回路である。
これらを対象にして開発工程を実施する場合には、故障検出率の低い組み合わせ回路を信号伝搬方向に分割し（この例では、２分割）、その中間信号を追加のＤ−ＦＦでサンプリングし、通常のＳＣＡＮチェーンから読み出し可能とすることで、内部信号の観測性を向上させ、それにより故障検出率を向上させる。また、追加したＤ−ＦＦ出力から、後段の組み合わせ回路に対して任意の信号レベルを与えられた構成にすることで、後段の組み合わせ回路の制御性を向上させ、故障検出率を向上させる。
【００１７】
図６は、本発明によるＲＴＬ修正例１を示す説明図である。
各条件式内に、ＡＴＰＧ（Ａｕｔｏｍａｔｉｃ  Ｔｅｓｔ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｏｒ）モードを示すモード信号（ＢＩＳＴＥＮ）と、各条件節を有効化させるビット（ｐｈａｓｅ）を追加させることで、ＳＣＡＮ  ＴＥＳＴにおける各代入式の実行回数（通過率）を均等にすることができ、各行に該当する組み合わせ回路の故障検出率を向上させることができる。
ＲＴＬ修正後においては、ｃｏｎｄｉｔｉｏｎＢ，Ｃ，Ｄに対してそれぞれＢＩＳＴＥＮとｐｈａｓｅ１、ＢＩＳＴＥＮとｐｈａｓｅ２、ＢＩＳＴＥＮとｐｈａｓｅ３を追加している。また、ｃｏｎｄｉｔｉｏｎＸ，Ｙ，Ｚに対しても、それぞれＢＩＳＴＥＮとｐｈａｓｅ１、ＢＩＳＴＥＮとｐｈａｓｅ２、ＢＩＳＴＥＮとｐｈａｓｅ３を追加している。
【００１８】
図７は、同じくＲＴＬ修正例１の他の例を示す説明図である。
ここでは、ＣＡＳＥ文の活性化率の偏りに補正を加えている。
補正前の条件節ＪＪＪに対して、補正後では、ＡＴＰＧモードを示すモード信号（ＢＩＳＴＥＮ）と、各条件節を有効化させるビット（ｐｈａｓｅ）を追加させることで、ＳＣＡＮ  ＴＥＳＴにおける各代入式の実行回数（通過率）を均等にでき、各行に該当する組み合わせ回路の故障検出率を向上させることが可能となる。
【００１９】
図８は、本発明によるＲＴＬ修正例２を示す説明図である。
多ビットの演算回路（この例では、大小比較器）を分割し、中間結果を観測することを可能にする修正により、内部信号の観測性が向上し、その部分の故障検出率を向上させることができる。
ここでは、修正前の比較演算におけるＡＡＡをＡ１，Ａ２，ＢＢＢをＢ１，Ｂ２，ＣＣＣをＣ１，Ｃ２の値にそれぞれ分割して仮定し、ｅｑ１をＡ１＝Ｂ１、ｅｑ２をＡ２＝Ｂ２と仮定して、中間結果を観測する式に置換し、その結果で全体の結果を見れるように分割式に修正している。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態に係る半導体装置設計システムの開発工程フローチャートである。
【図２】本発明（請求項１）が適用される同期回路例１を示す図である。
【図３】本発明（請求項１）が適用される同期回路例２を示す図である。
【図４】本発明（請求項２）が適用される同期回路例３を示す図である。
【図５】本発明（請求項２）が適用される同期回路例４を示す図である。
【図６】本発明の実施形態に係るＲＴＬ修正例１を示す説明図である。
【図７】同じくＲＴＬ修正例１の他の例を示す説明図である。
【図８】本発明の実施形態に係るＲＴＬ修正例２を示す説明図である。
【図９】従来における半導体装置開発工程のフローチャートである。
【符号の説明】
【００２１】
１０，１１，１３，２０〜２３，２５，３１，３２，３４，３７…フリップフロップ、
４１〜４４，４８，４９，５０…フリップフロップ、１２…組み合わせ回路、
２４…比較あるいは演算回路、３３，３６…組み合わせ回路、
４５，４６，４７…比較あるいは演算回路。
【図１】
2005227843.tif 000003
【図２】
2005227843.tif 000004
【図３】
2005227843.tif 000005
【図４】
2005227843.tif 000006
【図５】
2005227843.tif 000007
【図６】
2005227843.tif 000008
【図７】
2005227843.tif 000009
【図８】
2005227843.tif 000010
【図９】
2005227843.tif 000011