(57)【特許請求の範囲】
【請求項１】
リセット端子を有するタップコントローラと、
前記タップコントローラにおける状態遷移を制御するステート制御信号と、クロック信号を受信し、前記ステート制御信号が第１の値のとき、所定の周期で論理レベルが遷移する前記クロック信号が、前記タップコントローラのステート遷移に関する規格に基づくサイクル数、入力されたときに、前記リセット端子にリセット信号を供給する回路部と、
を有することを特徴とする半導体集積回路。
【請求項２】
前記回路部は、前記ステート制御信号が第２の値のときに、前記リセット端子に、リセットを解除する旨の信号を供給することを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記回路部は、前記ステート制御信号が１の状態で前記クロック信号が５サイクル入力されると、前記リセット信号を前記リセット端子に供給することを特徴とする請求項１または２に記載の半導体集積回路。
【請求項４】
論理設計後の半導体集積回路に対し、リセット端子を有するタップコントローラと、前記タップコントローラにおける状態遷移を制御するステート制御信号が第１の値のとき、所定の周期で論理レベルが遷移するクロック信号が、前記タップコントローラのステート遷移に関する規格に基づくサイクル数、入力されたときに、前記リセット端子にリセット信号を供給する回路部を含むテスト回路を付加し、
前記テスト回路を用いて、前記半導体集積回路に対し、論理シミュレーションによる検証を行うことを特徴とする半導体集積回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路及びその設計方法に関する。
【背景技術】
【０００２】
ＴＡＰ（Test Access Port）と呼ばれる汎用ポートとタップ（ＴＡＰ）コントローラを備え、バウンダリスキャンによって、様々なテストを実現する半導体集積回路が知られている。
【０００３】
汎用ポートには、ＴＣＫ（Test ClocK input）、ＴＭＳ（Test Mode Select input）端子、ＴＤＩ（Test Data Input）、ＴＤＯ（Test Data Output）、ＴＲＳＴ（Test ReSeT input）の５つの端子がある。なお、ＴＲＳＴは、タップコントローラが作り出すステート（状態）を保持するフリップフロップを初期化するための、非同期リセット信号が入力される端子であり、オプションとなっている。
【０００４】
ＩＥＥＥ（the Institute of Electrical and Electronic Engineers）１１４９．１で規定されたバウンダリスキャン機能において、タップコントローラは、ＴＣＫ及びＴＭＳの２つの端子からの信号をもとに、１６種のステートを作り出す。
【０００５】
近年、半導体製品のコスト削減要求は高く、外部端子の削減が求められている。そのため、タップコントローラを搭載する半導体集積回路において、オプションとなっているＴＲＳＴ端子については、外部端子として実装しないことが望ましい。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１３２９９４号公報
【特許文献２】特開平１０−１０４３１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
タップコントローラ内のステートマシン回路は、ステートの値を保持するフリップフロップの出力信号と、ＴＣＫ及びＴＭＳの２つの端子からの信号をもとに、次のステートの値を出力する。このような回路では、ＴＲＳＴを用いない場合、論理シミュレーションの際に、ステートの値を保持するフリップフロップの出力信号の初期値が不定状態であると、次のステートの値も不定状態となる。つまり、ステートが定まらず、論理シミュレーションを行うことができなくなるという問題があった。
【課題を解決するための手段】
【０００８】
発明の一観点によれば、リセット端子を有するタップコントローラと、前記タップコントローラにおける状態遷移を制御するステート制御信号と、クロック信号を受信し、前記ステート制御信号と前記クロック信号に応じて、前記リセット端子にリセット信号を供給する回路部と、を備えた半導体集積回路が提供される。
【０００９】
また、発明の一観点によれば、論理設計後の半導体集積回路に対し、リセット端子を有するタップコントローラと、前記タップコントローラにおける状態遷移を制御するステート制御信号と、クロック信号に応じて、前記リセット端子にリセット信号を供給する回路部を含むテスト回路を付加し、前記テスト回路を用いて、前記半導体集積回路に対し、論理シミュレーションによる検証を行う半導体集積回路の設計方法が提供される。
【発明の効果】
【００１０】
開示の半導体集積回路及びその設計方法によれば、外部端子としてＴＲＳＴがなくても、論理シミュレーションの際に、タップコントローラのステートを確定することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態の半導体集積回路の一例を示す図である。
【図２】タップコントローラのステートの遷移図である。
【図３】半導体集積回路の設計方法の一部の流れを示すフローチャートである。
【図４】第２の実施の形態の半導体集積回路の一例を示す図である。
【図５】タップコントローラの一例を示す図である。
【図６】ステートマシンの一例を示す図である。
【図７】第２の実施の形態の半導体集積回路に対する論理シミュレーションの一例の様子を示すタイミングチャートである。
【図８】半導体集積回路の設計方法の一部の流れを示すフローチャートである。
【図９】本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、第１の実施の形態の半導体集積回路の一例を示す図である。
【００１３】
半導体集積回路１は、タップコントローラ２と、回路部３を有している。
端子ＴＭＳ，ＴＣＫ，ＴＤＩ，ＴＤＯは、半導体集積回路１の外部端子である。
タップコントローラ２は、端子ｐ１，ｐ２，ｐ３，ｐ４，ｐ５を有している。端子ｐ１は、端子ＴＭＳと接続されており、半導体集積回路１の外部からのステート制御信号を入力する。端子ｐ２は、端子ＴＣＫと接続されており、外部からのクロック信号を入力する。端子ｐ３は、端子ＴＤＩと接続されており、外部からのテストデータを受信する。端子ｐ４は、リセット端子であり、回路部３に接続されており、回路部３からのリセット信号を入力する。端子ｐ５は、端子ＴＤＯと接続されている。
【００１４】
なお、タップコントローラ２の端子ｐ１〜ｐ５は、ＴＭＳ、ＴＣＫ、ＴＤＩ、ＴＲＳＴ、ＴＤＯとも表せるが、半導体集積回路１の外部端子と区別するために、このような表記とした。
【００１５】
タップコントローラ２は、端子ＴＣＫ及び端子ＴＭＳの２つの端子から入力されるステート制御信号とクロック信号をもとに、１６種のステートを作り出す、ステートマシンの機能を有する。
【００１６】
図２は、タップコントローラのステートの遷移図である。
ステートには“Ｔｅｓｔ−Ｌｏｇｉｃ  Ｒｅｓｅｔ”、“Ｒｕｎ−Ｔｅｓｔ／Ｉｄｌｅ”がある。また、“Ｓｅｌｅｃｔ−ＤＲ−Ｓｃａｎ”、“Ｃａｐｔｕｒｅ−ＤＲ”、“Ｓｈｉｆｔ−ＤＲ”、“Ｅｘｉｔ１−ＤＲ”、“Ｐａｕｓｅ−ＤＲ”、“Ｅｘｉｔ２−ＤＲ”、“Ｕｐｄａｔｅ−ＤＲ”がある。また、“Ｓｅｌｅｃｔ−ＩＲ−Ｓｃａｎ”、“Ｃａｐｔｕｒｅ−ＩＲ”、“Ｓｈｉｆｔ−ＩＲ”、“Ｅｘｉｔ１−ＩＲ”、“Ｐａｕｓｅ−ＩＲ”、“Ｅｘｉｔ２−ＩＲ”、“Ｕｐｄａｔｅ−ＩＲ”がある。
【００１７】
これらのステートは、ＩＥＥＥ１１４９．１で規定されたものであり、各ステートの詳細な説明は省略する。ステート間の遷移は、端子ＴＣＫから入力されるクロック信号の立ち上がりに同期して行われる。また、図中の矢印についた数字は、たとえば、ＬＳＩ（Large Scale Integrated circuit）テスタから端子ＴＭＳに入力される、または論理シミュレーション時に端子ＴＭＳに設定されるステート制御信号の値を示している。
【００１８】
タップコントローラ２は、“Ｔｅｓｔ−Ｌｏｇｉｃ  Ｒｅｓｅｔ”ステートになることでリセットがかかるようになっている。図２のように、ステート制御信号が“１”の状態で、クロック信号が５サイクル入力すると、どのステートからも“Ｔｅｓｔ−Ｌｏｇｉｃ  Ｒｅｓｅｔ”ステートに遷移できる。
【００１９】
回路部３は、端子ＴＭＳからのステート制御信号と、端子ＴＣＫからのクロック信号を入力し、これらの信号に応じて、タップコントローラ２の端子ｐ４に、リセット信号を供給する。
【００２０】
たとえば、回路部３は、ステート制御信号がある値のとき、クロック信号が所定のサイクル数、入力されると、端子ｐ４にリセット信号を供給する。ステート制御信号が別の値に変化すると（たとえば、１から０への変化）、回路部３は、端子ｐ４にリセットを解除する旨の信号を供給する。
【００２１】
ここで、回路部３は、ステート制御信号が“１”のときに、クロック信号が５サイクル入力されると、端子ｐ４にリセット信号を供給するようにすることで、図２に示したようなステート間の遷移の標準規格を満たすようになる。すなわち、ステート制御信号が“１”の状態で、クロック信号が５サイクル入力すると、どのステートからも“Ｔｅｓｔ−Ｌｏｇｉｃ  Ｒｅｓｅｔ”ステートに遷移できる、という規格を満たすことができる。
【００２２】
以上のように、第１の実施の形態の半導体集積回路１では、外部端子としてＴＲＳＴを設けてリセット信号を入力しなくても、ＴＭＳ端子とＴＣＫ端子からの信号に応じて、タップコントローラ２をリセットできる。これにより、タップコントローラ２のステートを確定することができ（つまり、“Ｔｅｓｔ−Ｌｏｇｉｃ  Ｒｅｓｅｔ”となる）、論理シミュレーションによる検証を行えるようになる。
【００２３】
上記のような半導体集積回路１は、設計装置（コンピュータ）により、以下のような流れで設計される。
図３は、半導体集積回路の設計方法の一部の流れを示すフローチャートである。
【００２４】
まず、設計装置により論理設計が行われ、半導体集積回路が具備する論理回路が設計される（ステップＳ１）。
次に、設計装置は、論理設計により得られた設計データに対して、ＤＦＴ（Design For Test）合成を行う（ステップＳ２）。これにより、図１に示したようなタップコントローラ２及び回路部３を含むテスト回路が、論理設計後の半導体集積回路に付加される。
【００２５】
その後、設計装置は、テスト回路を用いて、半導体集積回路に対し、ＤＦＴ合成後のＤＲＣ（Design Rule Check）をはじめとする各種検証を、論理シミュレーションにより実行する（ステップＳ３）。
【００２６】
ステップＳ２の処理において、図１に示したような回路部３を生成することで、ステップＳ３の論理シミュレーションの際に、ＴＭＳ端子とＴＣＫ端子に設定する信号に応じて、タップコントローラ２をリセットできる。これにより、タップコントローラ２のステートを確定でき、論理シミュレーションによる検証を行うことができるようになる。
【００２７】
（第２の実施の形態）
図４は、第２の実施の形態の半導体集積回路の一例を示す図である。
半導体集積回路１０は、タップコントローラ１１と回路部１２を有している。
【００２８】
半導体集積回路１０は、図１に示した半導体集積回路１と同様に、外部端子として、端子ＴＭＳ，ＴＣＫ，ＴＤＩ，ＴＤＯを有している。また、タップコントローラ１１は、図１に示したタップコントローラ２と同様に、端子ｐ１，ｐ２，ｐ３，ｐ４，ｐ５を有している。
【００２９】
タップコントローラ１１は、端子ＴＣＫ及び端子ＴＭＳの２つの端子から入力されるステート制御信号とクロック信号をもとに、図２に示したような１６種のステートを作り出す、ステートマシンの機能を有する。
【００３０】
回路部１２は、端子ＴＭＳからのステート制御信号と、端子ＴＣＫからのクロック信号を入力し、これらの信号に応じて、タップコントローラ１１の端子ｐ４に、リセット信号を供給する。
【００３１】
回路部１２は、フリップフロップ（以下ＦＦと略す）２１，２２，２３，２４，２５、ＮＡＮＤ回路２６、ＯＲ回路２７を有している。
ＦＦ２１〜２５は、シフトレジスタとして機能し、初段のＦＦ２１のデータ入力端子は端子ＴＭＳに接続されている。また、ＦＦ２２〜２５のデータ入力端子は前段のＦＦ２１〜２４のデータ出力端子に接続されている。ＦＦ２１〜２５のクロック端子は端子ＴＣＫに接続されている。
【００３２】
ＮＡＮＤ回路２６は、ＦＦ２１〜２５のデータ出力端子を自身の入力端子に接続しており、ＦＦ２１〜２５の出力信号のＮＡＮＤ論理を出力する。
ＯＲ回路２７の２つの入力端子のうち、一方は反転入力端子となっており、半導体集積回路１０の端子ＴＭＳに接続されている。ＯＲ回路２７の他方の入力端子は、ＮＡＮＤ回路２６の出力端子に接続されている。ＯＲ回路２７の出力端子は、タップコントローラ１１の端子ｐ４に接続されている。
【００３３】
図５は、タップコントローラの一例を示す図である。
タップコントローラ１１は、論理回路部３１、ＦＦ３２，３３，３４，３５、論理回路部３６を有している。
【００３４】
論理回路部３１は、タップコントローラ１１の端子ｐ１から、ステート制御信号を入力し、ステート制御信号に応じたステートを、ＦＦ３２〜３５に保持させる。
ＦＦ３２〜３５は、データ入力端子Ｄから、論理回路部３１で生成されたステートの値を入力し、クロック端子ＣＫに入力される端子ｐ２からのクロック信号に応じて、ステートの値を保持する。この４つのＦＦ３２〜３５により、図２に示した１６種のステートの値が保持される。また、ＦＦ３２〜３５はリセット端子ＲＳＴを有しており、リセット端子ＲＳＴは、回路部１２からのリセット信号が入力される端子ｐ４に接続されている。ＦＦ３２〜３５に保持されているステートの値は、データ出力端子Ｑから出力される。
【００３５】
論理回路部３６は、図示を省略しているが、半導体集積回路１０内のバウンダリスキャンレジスタに接続されており、ＦＦ３２〜３５に保持されたステートの値と、端子ｐ３から入力されるテストデータをもとにしたテストを実行する。また、論理回路部３６は、端子ｐ５に接続されている。
【００３６】
以下、ＦＦ３２にステートの値の一部を出力するステートマシンの一例を説明する。他のＦＦ３３〜３５にステートの値の一部を出力するステートマシンについても同様の論理回路となる。
【００３７】
図６は、ステートマシンの一例を示す図である。
図６に示されるステートマシンは、ＮＡＮＤ回路４１、ＮＯＲ回路４２、ＡＮＤ回路４３、ＯＲ回路４４を有している。これらの論理回路は、図５の論理回路部３１に含まれる。
【００３８】
ＮＡＮＤ回路４１の一方の入力端子は、ステート制御信号が入力される端子ｐ１に接続されており、他方の入力端子はＦＦ３２のデータ出力端子Ｑに接続されている。ＮＯＲ回路４２の一方の入力端子は端子ｐ１に接続されており、他方の入力端子はＦＦ３２のデータ出力端子Ｑに接続されている。
【００３９】
ＡＮＤ回路４３の一方の入力端子はＮＡＮＤ回路４１の出力端子に接続されており、他方の入力端子は、ＦＦ３２のデータ出力端子Ｑに接続されている。ＯＲ回路４４の一方の入力端子は、ＮＯＲ回路４２の出力端子に接続されており、他方の入力端子は、ＡＮＤ回路４３の出力端子に接続されている。また、ＯＲ回路４４の出力端子は、ＦＦ３２のデータ入力端子Ｄに接続されている。
【００４０】
このようなステートマシンは、２つのステート（ステート１、ステート２）をもつ。ＦＦ３２の出力の論理値が“０”の場合をステート１、論理値が“１”の場合をステート２とすると、ステート１において、ステート制御信号が“０”となると、ステート２に遷移する。また、ステート２において、ステート制御信号が“１”となると、ステート１に遷移する。
【００４１】
ステート１をリセットステートと仮定すると、端子ｐ４から、リセット信号として“０”が入力され、リセット端子ＲＳＴに供給されると、ステートマシンのリセットが行われる。
【００４２】
また、このようなステートマシンにおいて、実機の回路では電気的特性によって、電源投入時の値が“０”か“１”に定まる。そのため、ステート制御信号を“１”として、クロック端子ＣＫにクロック信号が１サイクル以上入力されると、ステート１に遷移するため、このステートマシンのリセットが行われる。
【００４３】
一方、論理シミュレーション時では、ＦＦ３２の出力の初期値が“Ｘ”となり、ステート制御信号が“１”となっても“０”になっても、ＡＮＤ回路４３とＯＲ回路４４の出力は、“Ｘ”のままとなり、ステートが確定せず、論理シミュレーションによる検証を行えない。なお、“Ｘ”は“０”と“１”のどちらでもよいという意味の、ドントケアを表している。
【００４４】
本実施の形態では、ＴＭＳ端子とＴＣＫ端子に設定する信号に応じて、回路部１２が、リセット信号を生成してＦＦ３２のリセット端子ＲＳＴに供給するので、ＦＦ３２の出力を“０”に確定できる。これにより、半導体集積回路１０の外部端子としてＴＲＳＴを設けて、ＦＦ３２のリセット端子ＲＳＴにリセット信号を供給しなくても、ステートマシンをリセットでき、ステートを確定できるので、論理シミュレーションによる検証を行えるようになる。
【００４５】
図７は、第２の実施の形態の半導体集積回路に対する論理シミュレーションの一例の様子を示すタイミングチャートである。
上から、半導体集積回路１０の端子ＴＣＫ，ＴＭＳに設定される信号の値、回路部１２のＦＦ２１〜２５に保持される値、タップコントローラ１１のリセット端子（端子ｐ４）に供給される信号の値、タップコントローラ１１のステートが示されている。
【００４６】
時刻ｔ１〜ｔ２では、ＦＦ２１〜２５の値は全て“Ｘ”となる。また、タップコントローラ１１のリセット端子に供給される信号の値及びタップコントローラ１１のステートも“Ｘ”である。
【００４７】
端子ＴＭＳに“１”が設定され、時刻２において、端子ＴＣＫに設定されるクロック信号が“１”に立ち上がると、ＦＦ２１に“１”が保持される。その後、クロック信号の立ち上がりに同期して、時刻ｔ３ではＦＦ２２に“１”が保持され、時刻ｔ４ではＦＦ２３に“１”が保持され、時刻ｔ５ではＦＦ２４に“１”が保持される。この間、端子ＴＭＳに設定される信号、すなわちステート制御信号の値は“１”のままである。
【００４８】
そして、時刻ｔ６で、ＦＦ２５に“１”が保持されるようになると、ＮＡＮＤ回路２６の出力が“０”、ＯＲ回路２７の出力も“０”となるので、タップコントローラ１１のリセット端子に供給される信号の値も“０”となる。
【００４９】
これにより、図５に示したＦＦ３２〜３５がリセットされ、タップコントローラ１１のステートは、図２に示した“Ｔｅｓｔ−Ｌｏｇｉｃ  Ｒｅｓｅｔ”となる。
たとえば、図７のように、時刻ｔ６と時刻ｔ７の間で、端子ＴＭＳに“０”が設定されると、ＯＲ回路２７の出力が“１”となるので、タップコントローラ１１のリセット端子に供給される信号も“１”となる。これにより、タップコントローラ１１のＦＦ３２〜３５のリセット状態が解除される。
【００５０】
以降は、図２に示したような遷移図にしたがって、タップコントローラ１１のステートの遷移が行われる。
すなわち、時刻ｔ７では、ステート制御信号の値が“０”であるので、クロック信号の立ち上がりに同期して、“Ｔｅｓｔ−Ｌｏｇｉｃ  Ｒｅｓｅｔ”から、“Ｒｕｎ−Ｔｅｓｔ／Ｉｄｌｅ”に遷移する。時刻ｔ８では、ステート制御信号の値が“１”であるので、クロック信号の立ち上がりに同期して、“Ｒｕｎ−Ｔｅｓｔ／Ｉｄｌｅ”から、“Ｓｅｌｅｃｔ−ＤＲ−Ｓｃａｎ”に遷移する。
【００５１】
なお、上記の例では、時刻ｔ６と時刻ｔ７の間でステート制御信号を“０”にして、時刻ｔ７からタップコントローラ１１のステートを、“Ｔｅｓｔ−Ｌｏｇｉｃ  Ｒｅｓｅｔ”から、“Ｒｕｎ−Ｔｅｓｔ／Ｉｄｌｅ”に遷移させているが、これに限定されない。ステート制御信号を“０”にするタイミングは、時刻ｔ６以降であれば、どの時刻でもよい。
【００５２】
以上のように、本実施の形態の半導体集積回路１０では、ステート制御信号が“１”の状態で、クロック信号が、５サイクル入力されると（クロック信号が５回、立ち上がると）、ステートを“Ｔｅｓｔ−Ｌｏｇｉｃ  Ｒｅｓｅｔ”とすることができる。
【００５３】
これにより、図２に示したようなステート間の遷移の標準規格を満たすようになる。そのため、設計者は、内部回路１２の存在を意識することなく、設計装置に、各種検証を実行させることができる。
【００５４】
ところで、半導体集積回路の外部端子としてＴＲＳＴを用いず、論理シミュレーションを可能にする方法として、テストベンチで、タップコントローラのステートの初期状態を強制的に設定することが考えられる。このような設定は、Ｆｏｒｃｅ設定と呼ばれることもある。
【００５５】
実機の電源投入時におけるステートを保持するＦＦの値は“１”であったり、“０”であったりして不確定である。そのため、実機の動作保証を行うにあたって、Ｆｏｒｃｅ設定では、ステートを保持するタップコントローラ内の４つのＦＦの初期状態を全て網羅するように、１６種のステートに対応して、ＦＦのデータ出力端子に、１６通りの初期値を設定することが考えられる。そのため、１６通りの初期値に対応して、１６回、検証が実行されるので、検証時間が増加する。
【００５６】
これに対して、本実施の形態の半導体集積回路１０では、初期ステートによらず、ステート制御信号の値が“１”で、クロック信号が、５サイクル入力されると、ステートが“Ｔｅｓｔ−Ｌｏｇｉｃ  Ｒｅｓｅｔ”に確定し、論理シミュレーションを行える。つまり、初期ステートとして、多数のステートを用意してそれぞれに対して検証を行う、というようなことをしなくてよい。これにより、検証時間が短くて済む。
【００５７】
また、半導体集積回路の外部端子としてＴＲＳＴを用いず、論理シミュレーションを可能にする方法として、タップコントローラ内のステートを保持するＦＦのシミュレーション用ライブラリに、シミュレーションの初期値を設定する方法もある。このような設定は、Ｗｅａｋ設定と呼ばれることもある。
【００５８】
Ｗｅａｋ設定でも、ステートを保持するタップコントローラ内の４つのＦＦの初期状態を全て網羅するように、１６種のステートに対応して、ＦＦに、１６通りの初期値を設定することが考えられる。そのため、１６通りの初期値に対応して、１６回、検証が実行されるので、検証時間が増加する。また、ＦＦが１６通りの初期ステートを持つようにＤＦＴ合成後の設計データが用意されるので、検証データが増加する。また、Ｗｅａｋ設定が可能なシミュレーションモデルを扱えるツールの導入が前提となる。
【００５９】
これに対して、本実施の形態の半導体集積回路１０を適用することで、Ｗｅａｋ設定のように、ステートを保持するフリップフロップの初期値を設定した論理シミュレーション用のライブラリが不要であるため、検証データの増加を抑制できる。また、Ｗｅａｋ設定が可能な専用のシミュレーションモデルの導入も不要となる。
【００６０】
また、半導体集積回路の外部端子としてＴＲＳＴを用いず、論理シミュレーションを可能にする方法として、パワーオンマクロと呼ばれる回路を、タップコントローラのリセット端子に接続する方法が考えられる。パワーオンマクロは、電源投入時に、タップコントローラ内の４つのＦＦをリセットするものである。
【００６１】
しかし、パワーオンマクロはＡＮＤ回路やＯＲ回路などの論理素子に比べて実装面積が大きく、パワーオンマクロを搭載することによって、半導体集積回路の実装面積が増大する。また、パワーオンマクロを使用するシミュレーションモデルを扱えるツールの導入が前提となる。
【００６２】
これに対して、本実施の形態の半導体集積回路１０の回路部１２は、パワーオンマクロよりも小さい面積で実現でき、半導体集積回路１０の実装面積の増大を抑えられる。また、パワーオンマクロの利用が可能な専用のシミュレーションモデルの導入も不要となる。
【００６３】
第２の実施の形態の半導体集積回路１０は、設計装置（コンピュータ）により、たとえば、以下のような流れで設計される。
図８は、半導体集積回路の設計方法の一部の流れを示すフローチャートである。
【００６４】
まず、設計装置により論理設計が行われ、半導体集積回路１０の論理設計データＤ１が生成される（ステップＳ１０）。次に、設計装置は、生成された論理設計データＤ１に対してＤＲＣを行い、ＤＦＴ合成するにあたっての制約違反がないか検証する（ステップＳ１１）。
【００６５】
制約違反がない場合は、設計装置は、論理設計データＤ１に対して、ＤＦＴ合成を行う（ステップＳ１２）。これにより、図４に示したようなタップコントローラ１１及び回路部１２などのテスト回路を含んだ、ＤＦＴ合成後論理設計データＤ２が生成される。
【００６６】
ＤＦＴ合成後、設計装置は、ＤＦＴ合成が正しくできたことを確認するために、ＤＲＣを行う（ステップＳ１３）。このとき、設計装置は、タップコントローラ１１をテスト状態とするために設定する信号（前述のステート制御信号やクロック信号など）のシーケンスデータ（ＴＡＰ設定シーケンスＤ３）を用いて、論理シミュレーションを行う。
【００６７】
ＤＦＴ合成が正しくできていた場合には、設計装置は、等価検証を行う（ステップＳ１４）。ここでは、設計装置は、ＤＦＴ合成によって、元の論理設計データＤ１が破壊されていないことを検証する。設計装置は、論理設計データＤ１とＤＦＴ合成後論理設計データＤ２をモデル化し、論理が同じになるか否かを検証する。
【００６８】
ただし、等価検証の際には、タップコントローラ１１をシステム状態とするために設定する信号のシーケンスデータ（ＴＡＰ設定シーケンスＤ４）を用いて、論理シミュレーションによる内部状態設定が行われる（ステップＳ１４ａ）。これにより、タップコントローラ１１はシステム状態となる。
【００６９】
なお、システム状態とは、テストを行う状態ではなく、通常動作を行う際のタップコントローラ１１の状態を意味する。
その後、設計装置は、ＬＳＩテスタで使うテストパターンＤ５を自動生成する（ステップＳ１５）。その際、ＤＲＣが実行され（ステップＳ１５ａ）、ＤＦＴ回路の設計制約違反の検証が行われる。ＤＲＣの際、設計装置は、ＤＦＴ合成後論理設計データＤ２の回路モデルに対して、論理シミュレーションを実行し、ＴＡＰ設定シーケンスＤ３に基づいて、タップコントローラ１１をテスト状態にする。その後、設計制約違反の検証が行われる。
【００７０】
さらに、設計装置は、故障シミュレーションを行う（ステップＳ１６）。故障シミュレーションでは、設計装置は、ＬＳＩテスタで使うテストパターンＤ５の有効性を検証する。設計装置は、ＤＦＴ合成後論理設計データＤ２に対して、故障の存在する回路（故障回路）と、故障の存在しない回路（正常回路）をモデル化し、両方を対象に検証対象のテストパターンＤ５を入力とした論理シミュレーションを実行する。この２つの回路モデルの出力パターンが異なれば、検証対象のテストパターンが有効と判定される。テストパターンの検証は、テストパターン生成の際や、ＤＦＴ回路検証の際にも行ってよい。
【００７１】
なお、故障シミュレーションの際には、回路モデルをテスト状態に設定しておくため、設計装置は、ＴＡＰ設定シーケンスＤ３を用いた論理シミュレーションにより、内部状態設定を行う（ステップＳ１６ａ）。
【００７２】
さらに、設計装置は、ＤＦＴ回路の機能的な確からしさを検証する（ステップＳ１７）。ＤＦＴ回路の検証の際には、設計装置は、回路モデルに、テストパターンＤ５を入力してＤＦＴ回路が期待通りの振る舞いをするか確認する。
【００７３】
なお、ＤＦＴ回路検証の際には、回路モデルをテスト状態に設定しておくため、設計装置は、ＴＡＰ設定シーケンスＤ３を用いた論理シミュレーションにより、内部状態設定を行う（ステップＳ１７ａ）。
【００７４】
なお、上記の各検証でエラーが発生した場合には、論理設計、ＤＦＴ合成、またはテストパターン生成などが再度行われる。
また、ＤＦＴ合成後の各種検証は、図８の順序に限定されず、処理を行う順番を入れ替えてもよい。
【００７５】
本実施の形態の半導体集積回路１０に対して、上記のような論理シミュレーションを行う際、設計装置は、まず、ステート制御信号の値を“１”とした状態で、クロック信号を５サイクル入力する。これにより、ステートが“Ｔｅｓｔ−Ｌｏｇｉｃ  Ｒｅｓｅｔ”に確定し、ステートの初期値の値が“Ｘ”であっても、論理シミュレーションを行えるようになり、上記のような各種検証を行うことが可能となる。
【００７６】
図３や、図８に示したような半導体集積回路の設計方法は、たとえば、以下のようなコンピュータにて実現される。
図９は、本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。
【００７７】
コンピュータ１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。
【００７８】
ＲＡＭ１０２は、コンピュータ１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に用いる各種データが格納される。たとえば、図８に示したような、各種データが格納される。
【００７９】
バス１０８に接続されている周辺機器としては、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、及び通信インタフェース１０７がある。
【００８０】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。ＨＤＤ１０３は、コンピュータ１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、回路設計ツールや、論理シミュレーションツールなどのアプリケーションプログラム、及び各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００８１】
グラフィック処理装置１０４には、モニタ１０４ａが接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令にしたがって、設計する半導体集積回路のレイアウトや、論理シミュレーション結果などの画像をモニタ１０４ａの画面に表示させる。モニタ１０４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００８２】
入力インタフェース１０５には、キーボード１０５ａとマウス１０５ｂとが接続されている。入力インタフェース１０５は、キーボード１０５ａやマウス１０５ｂから送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１０５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００８３】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク１０６ａに記録されたデータの読み取りを行う。光ディスク１０６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１０６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００８４】
通信インタフェース１０７は、ネットワーク１０７ａに接続されている。通信インタフェース１０７は、ネットワーク１０７ａを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００８５】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
以上、実施の形態に基づき、本発明の半導体集積回路及びその設計方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【００８６】
１  半導体集積回路
２  タップコントローラ
３  回路部
ｐ１〜ｐ５，ＴＭＳ，ＴＣＫ，ＴＤＩ，ＴＤＯ  端子
【図１】
0005772326.tif 000002
【図２】
0005772326.tif 000003
【図３】
0005772326.tif 000004
【図４】
0005772326.tif 000005
【図５】
0005772326.tif 000006
【図６】
0005772326.tif 000007
【図７】
0005772326.tif 000008
【図８】
0005772326.tif 000009
【図９】
0005772326.tif 000010