"リセット端子を有するタップコントローラと、前記タップコントローラにおける状態遷移を制御するステート制御信号と、クロック信号を受信し、前記ステート制御信号と前記クロック信号に応じて、前記リセット端子にリセット信号を供給する回路部と、を有することを特徴とする半導体集積回路。前記回路部は、前記ステート制御信号が第1の値のとき、前記クロック信号が所定サイクル数入力されると、前記リセット端子に前記リセット信号を供給することを特徴とする請求項1に記載の半導体集積回路。前記回路部は、前記ステート制御信号が第2の値のときに、前記リセット端子に、リセットを解除する旨の信号を供給することを特徴とする請求項2に記載の半導体集積回路。前記回路部は、前記ステート制御信号が1の状態で前記クロック信号が5サイクル入力されると、前記リセット信号を前記リセット端子に供給することを特徴とする請求項1乃至3の何れか一項に記載の半導体集積回路。論理設計後の半導体集積回路に対し、リセット端子を有するタップコントローラと、前記タップコントローラにおける状態遷移を制御するステート制御信号と、クロック信号に応じて、前記リセット端子にリセット信号を供給する回路部を含むテスト回路を付加し、前記テスト回路を用いて、前記半導体集積回路に対し、論理シミュレーションによる検証を行うことを特徴とする半導体集積回路の設計方法。タップコントローラ内のステートマシン回路は、ステートの値を保持するフリップフロップの出力信号と、TCK及びTMSの2つの端子からの信号をもとに、次のステートの値を出力する。このような回路では、TRSTを用いない場合、論理シミュレーションの際に、ステートの値を保持するフリップフロップの出力信号の初期値が不定状態であると、次のステートの値も不定状態となる。つまり、ステートが定まらず、論理シミュレーションを行うことができなくなるという問題があった。発明の一観点によれば、リセット端子を有するタップコントローラと、前記タップコントローラにおける状態遷移を制御するステート制御信号と、クロック信号を受信し、前記ステート制御信号と前記クロック信号に応じて、前記リセット端子にリセット信号を供給する回路部と、を備えた半導体集積回路が提供される。また、発明の一観点によれば、論理設計後の半導体集積回路に対し、リセット端子を有するタップコントローラと、前記タップコントローラにおける状態遷移を制御するステート制御信号と、クロック信号に応じて、前記リセット端子にリセット信号を供給する回路部を含むテスト回路を付加し、前記テスト回路を用いて、前記半導体集積回路に対し、論理シミュレーションによる検証を行う半導体集積回路の設計方法が提供される。開示の半導体集積回路及びその設計方法によれば、外部端子としてTRSTがなくても、論理シミュレーションの際に、タップコントローラのステートを確定することができる。以下、本発明の実施の形態を、図面を参照しつつ説明する。第1の実施の形態図1は、第1の実施の形態の半導体集積回路の一例を示す図である。半導体集積回路1は、タップコントローラ2と、回路部3を有している。端子TMS,TCK,TDI,TDOは、半導体集積回路1の外部端子である。タップコントローラ2は、端子p1,p2,p3,p4,p5を有している。端子p1は、端子TMSと接続されており、半導体集積回路1の外部からのステート制御信号を入力する。端子p2は、端子TCKと接続されており、外部からのクロック信号を入力する。端子p3は、端子TDIと接続されており、外部からのテストデータを受信する。端子p4は、リセット端子であり、回路部3に接続されており、回路部3からのリセット信号を入力する。端子p5は、端子TDOと接続されている。なお、タップコントローラ2の端子p1~p5は、TMS、TCK、TDI、TRST、TDOとも表せるが、半導体集積回路1の外部端子と区別するために、このような表記とした。タップコントローラ2は、端子TCK及び端子TMSの2つの端子から入力されるステート制御信号とクロック信号をもとに、16種のステートを作り出す、ステートマシンの機能を有する。図2は、タップコントローラのステートの遷移図である。ステートにはTest-LogicReset、Run-Test/Idleがある。また、Select-DR-Scan、Capture-DR、Shift-DR、Exit1-DR、Pause-DR、Exit2-DR、Update-DRがある。また、Select-IR-Scan、Capture-IR、Shift-IR、Exit1-IR、Pause-IR、Exit2-IR、Update-IRがある。これらのステートは、IEEE1149.1で規定されたものであり、各ステートの詳細な説明は省略する。ステート間の遷移は、端子TCKから入力されるクロック信号の立ち上がりに同期して行われる。また、図中の矢印についた数字は、たとえば、LSILargeScaleIntegratedcircuitテスタから端子TMSに入力される、または論理シミュレーション時に端子TMSに設定されるステート制御信号の値を示している。タップコントローラ2は、Test-LogicResetステートになることでリセットがかかるようになっている。図2のように、ステート制御信号が1の状態で、クロック信号が5サイクル入力すると、どのステートからもTest-LogicResetステートに遷移できる。回路部3は、端子TMSからのステート制御信号と、端子TCKからのクロック信号を入力し、これらの信号に応じて、タップコントローラ2の端子p4に、リセット信号を供給する。たとえば、回路部3は、ステート制御信号がある値のとき、クロック信号が所定のサイクル数、入力されると、端子p4にリセット信号を供給する。ステート制御信号が別の値に変化するとたとえば、1から0への変化、回路部3は、端子p4にリセットを解除する旨の信号を供給する。ここで、回路部3は、ステート制御信号が1のときに、クロック信号が5サイクル入力されると、端子p4にリセット信号を供給するようにすることで、図2に示したようなステート間の遷移の標準規格を満たすようになる。すなわち、ステート制御信号が1の状態で、クロック信号が5サイクル入力すると、どのステートからもTest-LogicResetステートに遷移できる、という規格を満たすことができる。以上のように、第1の実施の形態の半導体集積回路1では、外部端子としてTRSTを設けてリセット信号を入力しなくても、TMS端子とTCK端子からの信号に応じて、タップコントローラ2をリセットできる。これにより、タップコントローラ2のステートを確定することができつまり、Test-LogicResetとなる、論理シミュレーションによる検証を行えるようになる。上記のような半導体集積回路1は、設計装置コンピュータにより、以下のような流れで設計される。図3は、半導体集積回路の設計方法の一部の流れを示すフローチャートである。まず、設計装置により論理設計が行われ、半導体集積回路が具備する論理回路が設計されるステップS1。次に、設計装置は、論理設計により得られた設計データに対して、DFTDesignForTest合成を行うステップS2。これにより、図1に示したようなタップコントローラ2及び回路部3を含むテスト回路が、論理設計後の半導体集積回路に付加される。その後、設計装置は、テスト回路を用いて、半導体集積回路に対し、DFT合成後のDRCDesignRuleCheckをはじめとする各種検証を、論理シミュレーションにより実行するステップS3。ステップS2の処理において、図1に示したような回路部3を生成することで、ステップS3の論理シミュレーションの際に、TMS端子とTCK端子に設定する信号に応じて、タップコントローラ2をリセットできる。これにより、タップコントローラ2のステートを確定でき、論理シミュレーションによる検証を行うことができるようになる。第2の実施の形態図4は、第2の実施の形態の半導体集積回路の一例を示す図である。半導体集積回路10は、タップコントローラ11と回路部12を有している。半導体集積回路10は、図1に示した半導体集積回路1と同様に、外部端子として、端子TMS,TCK,TDI,TDOを有している。また、タップコントローラ11は、図1に示したタップコントローラ2と同様に、端子p1,p2,p3,p4,p5を有している。タップコントローラ11は、端子TCK及び端子TMSの2つの端子から入力されるステート制御信号とクロック信号をもとに、図2に示したような16種のステートを作り出す、ステートマシンの機能を有する。回路部12は、端子TMSからのステート制御信号と、端子TCKからのクロック信号を入力し、これらの信号に応じて、タップコントローラ11の端子p4に、リセット信号を供給する。回路部12は、フリップフロップ以下FFと略す21,22,23,24,25、NAND回路26、OR回路27を有している。FF21~25は、シフトレジスタとして機能し、初段のFF21のデータ入力端子は端子TMSに接続されている。また、FF22~25のデータ入力端子は前段のFF21~24のデータ出力端子に接続されている。FF21~25のクロック端子は端子TCKに接続されている。NAND回路26は、FF21~25のデータ出力端子を自身の入力端子に接続しており、FF21~25の出力信号のNAND論理を出力する。OR回路27の2つの入力端子のうち、一方は反転入力端子となっており、半導体集積回路10の端子TMSに接続されている。OR回路27の他方の入力端子は、NAND回路26の出力端子に接続されている。OR回路27の出力端子は、タップコントローラ11の端子p4に接続されている。図5は、タップコントローラの一例を示す図である。タップコントローラ11は、論理回路部31、FF32,33,34,35、論理回路部36を有している。論理回路部31は、タップコントローラ11の端子p1から、ステート制御信号を入力し、ステート制御信号に応じたステートを、FF32~35に保持させる。FF32~35は、データ入力端子Dから、論理回路部31で生成されたステートの値を入力し、クロック端子CKに入力される端子p2からのクロック信号に応じて、ステートの値を保持する。この4つのFF32~35により、図2に示した16種のステートの値が保持される。また、FF32~35はリセット端子RSTを有しており、リセット端子RSTは、回路部12からのリセット信号が入力される端子p4に接続されている。FF32~35に保持されているステートの値は、データ出力端子Qから出力される。論理回路部36は、図示を省略しているが、半導体集積回路10内のバウンダリスキャンレジスタに接続されており、FF32~35に保持されたステートの値と、端子p3から入力されるテストデータをもとにしたテストを実行する。また、論理回路部36は、端子p5に接続されている。以下、FF32にステートの値の一部を出力するステートマシンの一例を説明する。他のFF33~35にステートの値の一部を出力するステートマシンについても同様の論理回路となる。図6は、ステートマシンの一例を示す図である。図6に示されるステートマシンは、NAND回路41、NOR回路42、AND回路43、OR回路44を有している。これらの論理回路は、図5の論理回路部31に含まれる。NAND回路41の一方の入力端子は、ステート制御信号が入力される端子p1に接続されており、他方の入力端子はFF32のデータ出力端子Qに接続されている。NOR回路42の一方の入力端子は端子p1に接続されており、他方の入力端子はFF32のデータ出力端子Qに接続されている。AND回路43の一方の入力端子はNAND回路41の出力端子に接続されており、他方の入力端子は、FF32のデータ出力端子Qに接続されている。OR回路44の一方の入力端子は、NOR回路42の出力端子に接続されており、他方の入力端子は、AND回路43の出力端子に接続されている。また、OR回路44の出力端子は、FF32のデータ入力端子Dに接続されている。このようなステートマシンは、2つのステートステート1、ステート2をもつ。FF32の出力の論理値が0の場合をステート1、論理値が1の場合をステート2とすると、ステート1において、ステート制御信号が0となると、ステート2に遷移する。また、ステート2において、ステート制御信号が1となると、ステート1に遷移する。ステート1をリセットステートと仮定すると、端子p4から、リセット信号として0が入力され、リセット端子RSTに供給されると、ステートマシンのリセットが行われる。また、このようなステートマシンにおいて、実機の回路では電気的特性によって、電源投入時の値が0か1に定まる。そのため、ステート制御信号を1として、クロック端子CKにクロック信号が1サイクル以上入力されると、ステート1に遷移するため、このステートマシンのリセットが行われる。一方、論理シミュレーション時では、FF32の出力の初期値がXとなり、ステート制御信号が1となっても0になっても、AND回路43とOR回路44の出力は、Xのままとなり、ステートが確定せず、論理シミュレーションによる検証を行えない。なお、Xは0と1のどちらでもよいという意味の、ドントケアを表している。本実施の形態では、TMS端子とTCK端子に設定する信号に応じて、回路部12が、リセット信号を生成してFF32のリセット端子RSTに供給するので、FF32の出力を0に確定できる。これにより、半導体集積回路10の外部端子としてTRSTを設けて、FF32のリセット端子RSTにリセット信号を供給しなくても、ステートマシンをリセットでき、ステートを確定できるので、論理シミュレーションによる検証を行えるようになる。図7は、第2の実施の形態の半導体集積回路に対する論理シミュレーションの一例の様子を示すタイミングチャートである。上から、半導体集積回路10の端子TCK,TMSに設定される信号の値、回路部12のFF21~25に保持される値、タップコントローラ11のリセット端子端子p4に供給される信号の値、タップコントローラ11のステートが示されている。時刻t1~t2では、FF21~25の値は全てXとなる。また、タップコントローラ11のリセット端子に供給される信号の値及びタップコントローラ11のステートもXである。端子TMSに1が設定され、時刻2において、端子TCKに設定されるクロック信号が1に立ち上がると、FF21に1が保持される。その後、クロック信号の立ち上がりに同期して、時刻t3ではFF22に1が保持され、時刻t4ではFF23に1が保持され、時刻t5ではFF24に1が保持される。この間、端子TMSに設定される信号、すなわちステート制御信号の値は1のままである。そして、時刻t6で、FF25に1が保持されるようになると、NAND回路26の出力が0、OR回路27の出力も0となるので、タップコントローラ11のリセット端子に供給される信号の値も0となる。これにより、図5に示したFF32~35がリセットされ、タップコントローラ11のステートは、図2に示したTest-LogicResetとなる。たとえば、図7のように、時刻t6と時刻t7の間で、端子TMSに0が設定されると、OR回路27の出力が1となるので、タップコントローラ11のリセット端子に供給される信号も1となる。これにより、タップコントローラ11のFF32~35のリセット状態が解除される。以降は、図2に示したような遷移図にしたがって、タップコントローラ11のステートの遷移が行われる。すなわち、時刻t7では、ステート制御信号の値が0であるので、クロック信号の立ち上がりに同期して、Test-LogicResetから、Run-Test/Idleに遷移する。時刻t8では、ステート制御信号の値が1であるので、クロック信号の立ち上がりに同期して、Run-Test/Idleから、Select-DR-Scanに遷移する。なお、上記の例では、時刻t6と時刻t7の間でステート制御信号を0にして、時刻t7からタップコントローラ11のステートを、Test-LogicResetから、Run-Test/Idleに遷移させているが、これに限定されない。ステート制御信号を0にするタイミングは、時刻t6以降であれば、どの時刻でもよい。以上のように、本実施の形態の半導体集積回路10では、ステート制御信号が1の状態で、クロック信号が、5サイクル入力されるとクロック信号が5回、立ち上がると、ステートをTest-LogicResetとすることができる。これにより、図2に示したようなステート間の遷移の標準規格を満たすようになる。そのため、設計者は、内部回路12の存在を意識することなく、設計装置に、各種検証を実行させることができる。ところで、半導体集積回路の外部端子としてTRSTを用いず、論理シミュレーションを可能にする方法として、テストベンチで、タップコントローラのステートの初期状態を強制的に設定することが考えられる。このような設定は、Force設定と呼ばれることもある。実機の電源投入時におけるステートを保持するFFの値は1であったり、0であったりして不確定である。そのため、実機の動作保証を行うにあたって、Force設定では、ステートを保持するタップコントローラ内の4つのFFの初期状態を全て網羅するように、16種のステートに対応して、FFのデータ出力端子に、16通りの初期値を設定することが考えられる。そのため、16通りの初期値に対応して、16回、検証が実行されるので、検証時間が増加する。これに対して、本実施の形態の半導体集積回路10では、初期ステートによらず、ステート制御信号の値が1で、クロック信号が、5サイクル入力されると、ステートがTest-LogicResetに確定し、論理シミュレーションを行える。つまり、初期ステートとして、多数のステートを用意してそれぞれに対して検証を行う、というようなことをしなくてよい。これにより、検証時間が短くて済む。また、半導体集積回路の外部端子としてTRSTを用いず、論理シミュレーションを可能にする方法として、タップコントローラ内のステートを保持するFFのシミュレーション用ライブラリに、シミュレーションの初期値を設定する方法もある。このような設定は、Weak設定と呼ばれることもある。Weak設定でも、ステートを保持するタップコントローラ内の4つのFFの初期状態を全て網羅するように、16種のステートに対応して、FFに、16通りの初期値を設定することが考えられる。そのため、16通りの初期値に対応して、16回、検証が実行されるので、検証時間が増加する。また、FFが16通りの初期ステートを持つようにDFT合成後の設計データが用意されるので、検証データが増加する。また、Weak設定が可能なシミュレーションモデルを扱えるツールの導入が前提となる。これに対して、本実施の形態の半導体集積回路10を適用することで、Weak設定のように、ステートを保持するフリップフロップの初期値を設定した論理シミュレーション用のライブラリが不要であるため、検証データの増加を抑制できる。また、Weak設定が可能な専用のシミュレーションモデルの導入も不要となる。また、半導体集積回路の外部端子としてTRSTを用いず、論理シミュレーションを可能にする方法として、パワーオンマクロと呼ばれる回路を、タップコントローラのリセット端子に接続する方法が考えられる。パワーオンマクロは、電源投入時に、タップコントローラ内の4つのFFをリセットするものである。しかし、パワーオンマクロはAND回路やOR回路などの論理素子に比べて実装面積が大きく、パワーオンマクロを搭載することによって、半導体集積回路の実装面積が増大する。また、パワーオンマクロを使用するシミュレーションモデルを扱えるツールの導入が前提となる。これに対して、本実施の形態の半導体集積回路10の回路部12は、パワーオンマクロよりも小さい面積で実現でき、半導体集積回路10の実装面積の増大を抑えられる。また、パワーオンマクロの利用が可能な専用のシミュレーションモデルの導入も不要となる。第2の実施の形態の半導体集積回路10は、設計装置コンピュータにより、たとえば、以下のような流れで設計される。図8は、半導体集積回路の設計方法の一部の流れを示すフローチャートである。まず、設計装置により論理設計が行われ、半導体集積回路10の論理設計データD1が生成されるステップS10。次に、設計装置は、生成された論理設計データD1に対してDRCを行い、DFT合成するにあたっての制約違反がないか検証するステップS11。制約違反がない場合は、設計装置は、論理設計データD1に対して、DFT合成を行うステップS12。これにより、図4に示したようなタップコントローラ11及び回路部12などのテスト回路を含んだ、DFT合成後論理設計データD2が生成される。DFT合成後、設計装置は、DFT合成が正しくできたことを確認するために、DRCを行うステップS13。このとき、設計装置は、タップコントローラ11をテスト状態とするために設定する信号前述のステート制御信号やクロック信号などのシーケンスデータTAP設定シーケンスD3を用いて、論理シミュレーションを行う。DFT合成が正しくできていた場合には、設計装置は、等価検証を行うステップS14。ここでは、設計装置は、DFT合成によって、元の論理設計データD1が破壊されていないことを検証する。設計装置は、論理設計データD1とDFT合成後論理設計データD2をモデル化し、論理が同じになるか否かを検証する。ただし、等価検証の際には、タップコントローラ11をシステム状態とするために設定する信号のシーケンスデータTAP設定シーケンスD4を用いて、論理シミュレーションによる内部状態設定が行われるステップS14a。これにより、タップコントローラ11はシステム状態となる。なお、システム状態とは、テストを行う状態ではなく、通常動作を行う際のタップコントローラ11の状態を意味する。その後、設計装置は、LSIテスタで使うテストパターンD5を自動生成するステップS15。その際、DRCが実行されステップS15a、DFT回路の設計制約違反の検証が行われる。DRCの際、設計装置は、DFT合成後論理設計データD2の回路モデルに対して、論理シミュレーションを実行し、TAP設定シーケンスD3に基づいて、タップコントローラ11をテスト状態にする。その後、設計制約違反の検証が行われる。さらに、設計装置は、故障シミュレーションを行うステップS16。故障シミュレーションでは、設計装置は、LSIテスタで使うテストパターンD5の有効性を検証する。設計装置は、DFT合成後論理設計データD2に対して、故障の存在する回路故障回路と、故障の存在しない回路正常回路をモデル化し、両方を対象に検証対象のテストパターンD5を入力とした論理シミュレーションを実行する。この2つの回路モデルの出力パターンが異なれば、検証対象のテストパターンが有効と判定される。テストパターンの検証は、テストパターン生成の際や、DFT回路検証の際にも行ってよい。なお、故障シミュレーションの際には、回路モデルをテスト状態に設定しておくため、設計装置は、TAP設定シーケンスD3を用いた論理シミュレーションにより、内部状態設定を行うステップS16a。さらに、設計装置は、DFT回路の機能的な確からしさを検証するステップS17。DFT回路の検証の際には、設計装置は、回路モデルに、テストパターンD5を入力してDFT回路が期待通りの振る舞いをするか確認する。なお、DFT回路検証の際には、回路モデルをテスト状態に設定しておくため、設計装置は、TAP設定シーケンスD3を用いた論理シミュレーションにより、内部状態設定を行うステップS17a。なお、上記の各検証でエラーが発生した場合には、論理設計、DFT合成、またはテストパターン生成などが再度行われる。また、DFT合成後の各種検証は、図8の順序に限定されず、処理を行う順番を入れ替えてもよい。本実施の形態の半導体集積回路10に対して、上記のような論理シミュレーションを行う際、設計装置は、まず、ステート制御信号の値を1とした状態で、クロック信号を5サイクル入力する。これにより、ステートがTest-LogicResetに確定し、ステートの初期値の値がXであっても、論理シミュレーションを行えるようになり、上記のような各種検証を行うことが可能となる。図3や、図8に示したような半導体集積回路の設計方法は、たとえば、以下のようなコンピュータにて実現される。図9は、本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。コンピュータ100は、CPUCentralProcessingUnit101によって装置全体が制御されている。CPU101には、バス108を介してRAMRandomAccessMemory102と複数の周辺機器が接続されている。RAM102は、コンピュータ100の主記憶装置として使用される。RAM102には、CPU101に実行させるOSOperatingSystemのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に用いる各種データが格納される。たとえば、図8に示したような、各種データが格納される。バス108に接続されている周辺機器としては、ハードディスクドライブHDDHardDiskDrive103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、及び通信インタフェース107がある。HDD103は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。HDD103は、コンピュータ100の二次記憶装置として使用される。HDD103には、OSのプログラム、回路設計ツールや、論理シミュレーションツールなどのアプリケーションプログラム、及び各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。グラフィック処理装置104には、モニタ104aが接続されている。グラフィック処理装置104は、CPU101からの命令にしたがって、設計する半導体集積回路のレイアウトや、論理シミュレーション結果などの画像をモニタ104aの画面に表示させる。モニタ104aとしては、CRTCathodeRayTubeを用いた表示装置や液晶表示装置などがある。入力インタフェース105には、キーボード105aとマウス105bとが接続されている。入力インタフェース105は、キーボード105aやマウス105bから送られてくる信号をCPU101に送信する。なお、マウス105bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。光学ドライブ装置106は、レーザ光などを利用して、光ディスク106aに記録されたデータの読み取りを行う。光ディスク106aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク106aには、DVDDigitalVersatileDisc、DVD-RAM、CD-ROMCompactDiscReadOnlyMemory、CD-RRecordable/RWReWritableなどがある。通信インタフェース107は、ネットワーク107aに接続されている。通信インタフェース107は、ネットワーク107aを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。以上、実施の形態に基づき、本発明の半導体集積回路及びその設計方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。"