特許第5772326号(P5772326)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通セミコンダクター株式会社の特許一覧

<>
  • 特許5772326-半導体集積回路及びその設計方法 図000002
  • 特許5772326-半導体集積回路及びその設計方法 図000003
  • 特許5772326-半導体集積回路及びその設計方法 図000004
  • 特許5772326-半導体集積回路及びその設計方法 図000005
  • 特許5772326-半導体集積回路及びその設計方法 図000006
  • 特許5772326-半導体集積回路及びその設計方法 図000007
  • 特許5772326-半導体集積回路及びその設計方法 図000008
  • 特許5772326-半導体集積回路及びその設計方法 図000009
  • 特許5772326-半導体集積回路及びその設計方法 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5772326
(24)【登録日】2015年7月10日
(45)【発行日】2015年9月2日
(54)【発明の名称】半導体集積回路及びその設計方法
(51)【国際特許分類】
   H01L 21/822 20060101AFI20150813BHJP
   H01L 27/04 20060101ALI20150813BHJP
   G01R 31/28 20060101ALI20150813BHJP
   G06F 17/50 20060101ALI20150813BHJP
【FI】
   H01L27/04 T
   G01R31/28 G
   G06F17/50 664D
【請求項の数】4
【全頁数】14
(21)【出願番号】特願2011-157088(P2011-157088)
(22)【出願日】2011年7月15日
(65)【公開番号】特開2013-26287(P2013-26287A)
(43)【公開日】2013年2月4日
【審査請求日】2014年3月27日
(73)【特許権者】
【識別番号】308014341
【氏名又は名称】富士通セミコンダクター株式会社
(74)【代理人】
【識別番号】100092152
【弁理士】
【氏名又は名称】服部 毅巖
(72)【発明者】
【氏名】大森 悠翔
【審査官】 宇多川 勉
(56)【参考文献】
【文献】 特開2009−128109(JP,A)
【文献】 特表2005−527918(JP,A)
【文献】 特開2005−284893(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H01L 21/822
G01R 31/28
G06F 17/50
H01L 27/04
(57)【特許請求の範囲】
【請求項1】
リセット端子を有するタップコントローラと、
前記タップコントローラにおける状態遷移を制御するステート制御信号と、クロック信号を受信し、前記ステート制御信号が第1の値のとき、所定の周期で論理レベルが遷移する前記クロック信号が、前記タップコントローラのステート遷移に関する規格に基づくサイクル数、入力されたときに、前記リセット端子にリセット信号を供給する回路部と、
を有することを特徴とする半導体集積回路。
【請求項2】
前記回路部は、前記ステート制御信号が第2の値のときに、前記リセット端子に、リセットを解除する旨の信号を供給することを特徴とする請求項に記載の半導体集積回路。
【請求項3】
前記回路部は、前記ステート制御信号が1の状態で前記クロック信号が5サイクル入力されると、前記リセット信号を前記リセット端子に供給することを特徴とする請求項1または2に記載の半導体集積回路。
【請求項4】
論理設計後の半導体集積回路に対し、リセット端子を有するタップコントローラと、前記タップコントローラにおける状態遷移を制御するステート制御信号が第1の値のとき、所定の周期で論理レベルが遷移するクロック信号が、前記タップコントローラのステート遷移に関する規格に基づくサイクル数、入力されたときに、前記リセット端子にリセット信号を供給する回路部を含むテスト回路を付加し、
前記テスト回路を用いて、前記半導体集積回路に対し、論理シミュレーションによる検証を行うことを特徴とする半導体集積回路の設計方法。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路及びその設計方法に関する。
【背景技術】
【0002】
TAP(Test Access Port)と呼ばれる汎用ポートとタップ(TAP)コントローラを備え、バウンダリスキャンによって、様々なテストを実現する半導体集積回路が知られている。
【0003】
汎用ポートには、TCK(Test ClocK input)、TMS(Test Mode Select input)端子、TDI(Test Data Input)、TDO(Test Data Output)、TRST(Test ReSeT input)の5つの端子がある。なお、TRSTは、タップコントローラが作り出すステート(状態)を保持するフリップフロップを初期化するための、非同期リセット信号が入力される端子であり、オプションとなっている。
【0004】
IEEE(the Institute of Electrical and Electronic Engineers)1149.1で規定されたバウンダリスキャン機能において、タップコントローラは、TCK及びTMSの2つの端子からの信号をもとに、16種のステートを作り出す。
【0005】
近年、半導体製品のコスト削減要求は高く、外部端子の削減が求められている。そのため、タップコントローラを搭載する半導体集積回路において、オプションとなっているTRST端子については、外部端子として実装しないことが望ましい。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−132994号公報
【特許文献2】特開平10−104317号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
タップコントローラ内のステートマシン回路は、ステートの値を保持するフリップフロップの出力信号と、TCK及びTMSの2つの端子からの信号をもとに、次のステートの値を出力する。このような回路では、TRSTを用いない場合、論理シミュレーションの際に、ステートの値を保持するフリップフロップの出力信号の初期値が不定状態であると、次のステートの値も不定状態となる。つまり、ステートが定まらず、論理シミュレーションを行うことができなくなるという問題があった。
【課題を解決するための手段】
【0008】
発明の一観点によれば、リセット端子を有するタップコントローラと、前記タップコントローラにおける状態遷移を制御するステート制御信号と、クロック信号を受信し、前記ステート制御信号と前記クロック信号に応じて、前記リセット端子にリセット信号を供給する回路部と、を備えた半導体集積回路が提供される。
【0009】
また、発明の一観点によれば、論理設計後の半導体集積回路に対し、リセット端子を有するタップコントローラと、前記タップコントローラにおける状態遷移を制御するステート制御信号と、クロック信号に応じて、前記リセット端子にリセット信号を供給する回路部を含むテスト回路を付加し、前記テスト回路を用いて、前記半導体集積回路に対し、論理シミュレーションによる検証を行う半導体集積回路の設計方法が提供される。
【発明の効果】
【0010】
開示の半導体集積回路及びその設計方法によれば、外部端子としてTRSTがなくても、論理シミュレーションの際に、タップコントローラのステートを確定することができる。
【図面の簡単な説明】
【0011】
図1】第1の実施の形態の半導体集積回路の一例を示す図である。
図2】タップコントローラのステートの遷移図である。
図3】半導体集積回路の設計方法の一部の流れを示すフローチャートである。
図4】第2の実施の形態の半導体集積回路の一例を示す図である。
図5】タップコントローラの一例を示す図である。
図6】ステートマシンの一例を示す図である。
図7】第2の実施の形態の半導体集積回路に対する論理シミュレーションの一例の様子を示すタイミングチャートである。
図8】半導体集積回路の設計方法の一部の流れを示すフローチャートである。
図9】本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の半導体集積回路の一例を示す図である。
【0013】
半導体集積回路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と接続されている。
【0014】
なお、タップコントローラ2の端子p1〜p5は、TMS、TCK、TDI、TRST、TDOとも表せるが、半導体集積回路1の外部端子と区別するために、このような表記とした。
【0015】
タップコントローラ2は、端子TCK及び端子TMSの2つの端子から入力されるステート制御信号とクロック信号をもとに、16種のステートを作り出す、ステートマシンの機能を有する。
【0016】
図2は、タップコントローラのステートの遷移図である。
ステートには“Test−Logic Reset”、“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”がある。
【0017】
これらのステートは、IEEE1149.1で規定されたものであり、各ステートの詳細な説明は省略する。ステート間の遷移は、端子TCKから入力されるクロック信号の立ち上がりに同期して行われる。また、図中の矢印についた数字は、たとえば、LSI(Large Scale Integrated circuit)テスタから端子TMSに入力される、または論理シミュレーション時に端子TMSに設定されるステート制御信号の値を示している。
【0018】
タップコントローラ2は、“Test−Logic Reset”ステートになることでリセットがかかるようになっている。図2のように、ステート制御信号が“1”の状態で、クロック信号が5サイクル入力すると、どのステートからも“Test−Logic Reset”ステートに遷移できる。
【0019】
回路部3は、端子TMSからのステート制御信号と、端子TCKからのクロック信号を入力し、これらの信号に応じて、タップコントローラ2の端子p4に、リセット信号を供給する。
【0020】
たとえば、回路部3は、ステート制御信号がある値のとき、クロック信号が所定のサイクル数、入力されると、端子p4にリセット信号を供給する。ステート制御信号が別の値に変化すると(たとえば、1から0への変化)、回路部3は、端子p4にリセットを解除する旨の信号を供給する。
【0021】
ここで、回路部3は、ステート制御信号が“1”のときに、クロック信号が5サイクル入力されると、端子p4にリセット信号を供給するようにすることで、図2に示したようなステート間の遷移の標準規格を満たすようになる。すなわち、ステート制御信号が“1”の状態で、クロック信号が5サイクル入力すると、どのステートからも“Test−Logic Reset”ステートに遷移できる、という規格を満たすことができる。
【0022】
以上のように、第1の実施の形態の半導体集積回路1では、外部端子としてTRSTを設けてリセット信号を入力しなくても、TMS端子とTCK端子からの信号に応じて、タップコントローラ2をリセットできる。これにより、タップコントローラ2のステートを確定することができ(つまり、“Test−Logic Reset”となる)、論理シミュレーションによる検証を行えるようになる。
【0023】
上記のような半導体集積回路1は、設計装置(コンピュータ)により、以下のような流れで設計される。
図3は、半導体集積回路の設計方法の一部の流れを示すフローチャートである。
【0024】
まず、設計装置により論理設計が行われ、半導体集積回路が具備する論理回路が設計される(ステップS1)。
次に、設計装置は、論理設計により得られた設計データに対して、DFT(Design For Test)合成を行う(ステップS2)。これにより、図1に示したようなタップコントローラ2及び回路部3を含むテスト回路が、論理設計後の半導体集積回路に付加される。
【0025】
その後、設計装置は、テスト回路を用いて、半導体集積回路に対し、DFT合成後のDRC(Design Rule Check)をはじめとする各種検証を、論理シミュレーションにより実行する(ステップS3)。
【0026】
ステップS2の処理において、図1に示したような回路部3を生成することで、ステップS3の論理シミュレーションの際に、TMS端子とTCK端子に設定する信号に応じて、タップコントローラ2をリセットできる。これにより、タップコントローラ2のステートを確定でき、論理シミュレーションによる検証を行うことができるようになる。
【0027】
(第2の実施の形態)
図4は、第2の実施の形態の半導体集積回路の一例を示す図である。
半導体集積回路10は、タップコントローラ11と回路部12を有している。
【0028】
半導体集積回路10は、図1に示した半導体集積回路1と同様に、外部端子として、端子TMS,TCK,TDI,TDOを有している。また、タップコントローラ11は、図1に示したタップコントローラ2と同様に、端子p1,p2,p3,p4,p5を有している。
【0029】
タップコントローラ11は、端子TCK及び端子TMSの2つの端子から入力されるステート制御信号とクロック信号をもとに、図2に示したような16種のステートを作り出す、ステートマシンの機能を有する。
【0030】
回路部12は、端子TMSからのステート制御信号と、端子TCKからのクロック信号を入力し、これらの信号に応じて、タップコントローラ11の端子p4に、リセット信号を供給する。
【0031】
回路部12は、フリップフロップ(以下FFと略す)21,22,23,24,25、NAND回路26、OR回路27を有している。
FF21〜25は、シフトレジスタとして機能し、初段のFF21のデータ入力端子は端子TMSに接続されている。また、FF22〜25のデータ入力端子は前段のFF21〜24のデータ出力端子に接続されている。FF21〜25のクロック端子は端子TCKに接続されている。
【0032】
NAND回路26は、FF21〜25のデータ出力端子を自身の入力端子に接続しており、FF21〜25の出力信号のNAND論理を出力する。
OR回路27の2つの入力端子のうち、一方は反転入力端子となっており、半導体集積回路10の端子TMSに接続されている。OR回路27の他方の入力端子は、NAND回路26の出力端子に接続されている。OR回路27の出力端子は、タップコントローラ11の端子p4に接続されている。
【0033】
図5は、タップコントローラの一例を示す図である。
タップコントローラ11は、論理回路部31、FF32,33,34,35、論理回路部36を有している。
【0034】
論理回路部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から出力される。
【0035】
論理回路部36は、図示を省略しているが、半導体集積回路10内のバウンダリスキャンレジスタに接続されており、FF32〜35に保持されたステートの値と、端子p3から入力されるテストデータをもとにしたテストを実行する。また、論理回路部36は、端子p5に接続されている。
【0036】
以下、FF32にステートの値の一部を出力するステートマシンの一例を説明する。他のFF33〜35にステートの値の一部を出力するステートマシンについても同様の論理回路となる。
【0037】
図6は、ステートマシンの一例を示す図である。
図6に示されるステートマシンは、NAND回路41、NOR回路42、AND回路43、OR回路44を有している。これらの論理回路は、図5の論理回路部31に含まれる。
【0038】
NAND回路41の一方の入力端子は、ステート制御信号が入力される端子p1に接続されており、他方の入力端子はFF32のデータ出力端子Qに接続されている。NOR回路42の一方の入力端子は端子p1に接続されており、他方の入力端子はFF32のデータ出力端子Qに接続されている。
【0039】
AND回路43の一方の入力端子はNAND回路41の出力端子に接続されており、他方の入力端子は、FF32のデータ出力端子Qに接続されている。OR回路44の一方の入力端子は、NOR回路42の出力端子に接続されており、他方の入力端子は、AND回路43の出力端子に接続されている。また、OR回路44の出力端子は、FF32のデータ入力端子Dに接続されている。
【0040】
このようなステートマシンは、2つのステート(ステート1、ステート2)をもつ。FF32の出力の論理値が“0”の場合をステート1、論理値が“1”の場合をステート2とすると、ステート1において、ステート制御信号が“0”となると、ステート2に遷移する。また、ステート2において、ステート制御信号が“1”となると、ステート1に遷移する。
【0041】
ステート1をリセットステートと仮定すると、端子p4から、リセット信号として“0”が入力され、リセット端子RSTに供給されると、ステートマシンのリセットが行われる。
【0042】
また、このようなステートマシンにおいて、実機の回路では電気的特性によって、電源投入時の値が“0”か“1”に定まる。そのため、ステート制御信号を“1”として、クロック端子CKにクロック信号が1サイクル以上入力されると、ステート1に遷移するため、このステートマシンのリセットが行われる。
【0043】
一方、論理シミュレーション時では、FF32の出力の初期値が“X”となり、ステート制御信号が“1”となっても“0”になっても、AND回路43とOR回路44の出力は、“X”のままとなり、ステートが確定せず、論理シミュレーションによる検証を行えない。なお、“X”は“0”と“1”のどちらでもよいという意味の、ドントケアを表している。
【0044】
本実施の形態では、TMS端子とTCK端子に設定する信号に応じて、回路部12が、リセット信号を生成してFF32のリセット端子RSTに供給するので、FF32の出力を“0”に確定できる。これにより、半導体集積回路10の外部端子としてTRSTを設けて、FF32のリセット端子RSTにリセット信号を供給しなくても、ステートマシンをリセットでき、ステートを確定できるので、論理シミュレーションによる検証を行えるようになる。
【0045】
図7は、第2の実施の形態の半導体集積回路に対する論理シミュレーションの一例の様子を示すタイミングチャートである。
上から、半導体集積回路10の端子TCK,TMSに設定される信号の値、回路部12のFF21〜25に保持される値、タップコントローラ11のリセット端子(端子p4)に供給される信号の値、タップコントローラ11のステートが示されている。
【0046】
時刻t1〜t2では、FF21〜25の値は全て“X”となる。また、タップコントローラ11のリセット端子に供給される信号の値及びタップコントローラ11のステートも“X”である。
【0047】
端子TMSに“1”が設定され、時刻2において、端子TCKに設定されるクロック信号が“1”に立ち上がると、FF21に“1”が保持される。その後、クロック信号の立ち上がりに同期して、時刻t3ではFF22に“1”が保持され、時刻t4ではFF23に“1”が保持され、時刻t5ではFF24に“1”が保持される。この間、端子TMSに設定される信号、すなわちステート制御信号の値は“1”のままである。
【0048】
そして、時刻t6で、FF25に“1”が保持されるようになると、NAND回路26の出力が“0”、OR回路27の出力も“0”となるので、タップコントローラ11のリセット端子に供給される信号の値も“0”となる。
【0049】
これにより、図5に示したFF32〜35がリセットされ、タップコントローラ11のステートは、図2に示した“Test−Logic Reset”となる。
たとえば、図7のように、時刻t6と時刻t7の間で、端子TMSに“0”が設定されると、OR回路27の出力が“1”となるので、タップコントローラ11のリセット端子に供給される信号も“1”となる。これにより、タップコントローラ11のFF32〜35のリセット状態が解除される。
【0050】
以降は、図2に示したような遷移図にしたがって、タップコントローラ11のステートの遷移が行われる。
すなわち、時刻t7では、ステート制御信号の値が“0”であるので、クロック信号の立ち上がりに同期して、“Test−Logic Reset”から、“Run−Test/Idle”に遷移する。時刻t8では、ステート制御信号の値が“1”であるので、クロック信号の立ち上がりに同期して、“Run−Test/Idle”から、“Select−DR−Scan”に遷移する。
【0051】
なお、上記の例では、時刻t6と時刻t7の間でステート制御信号を“0”にして、時刻t7からタップコントローラ11のステートを、“Test−Logic Reset”から、“Run−Test/Idle”に遷移させているが、これに限定されない。ステート制御信号を“0”にするタイミングは、時刻t6以降であれば、どの時刻でもよい。
【0052】
以上のように、本実施の形態の半導体集積回路10では、ステート制御信号が“1”の状態で、クロック信号が、5サイクル入力されると(クロック信号が5回、立ち上がると)、ステートを“Test−Logic Reset”とすることができる。
【0053】
これにより、図2に示したようなステート間の遷移の標準規格を満たすようになる。そのため、設計者は、内部回路12の存在を意識することなく、設計装置に、各種検証を実行させることができる。
【0054】
ところで、半導体集積回路の外部端子としてTRSTを用いず、論理シミュレーションを可能にする方法として、テストベンチで、タップコントローラのステートの初期状態を強制的に設定することが考えられる。このような設定は、Force設定と呼ばれることもある。
【0055】
実機の電源投入時におけるステートを保持するFFの値は“1”であったり、“0”であったりして不確定である。そのため、実機の動作保証を行うにあたって、Force設定では、ステートを保持するタップコントローラ内の4つのFFの初期状態を全て網羅するように、16種のステートに対応して、FFのデータ出力端子に、16通りの初期値を設定することが考えられる。そのため、16通りの初期値に対応して、16回、検証が実行されるので、検証時間が増加する。
【0056】
これに対して、本実施の形態の半導体集積回路10では、初期ステートによらず、ステート制御信号の値が“1”で、クロック信号が、5サイクル入力されると、ステートが“Test−Logic Reset”に確定し、論理シミュレーションを行える。つまり、初期ステートとして、多数のステートを用意してそれぞれに対して検証を行う、というようなことをしなくてよい。これにより、検証時間が短くて済む。
【0057】
また、半導体集積回路の外部端子としてTRSTを用いず、論理シミュレーションを可能にする方法として、タップコントローラ内のステートを保持するFFのシミュレーション用ライブラリに、シミュレーションの初期値を設定する方法もある。このような設定は、Weak設定と呼ばれることもある。
【0058】
Weak設定でも、ステートを保持するタップコントローラ内の4つのFFの初期状態を全て網羅するように、16種のステートに対応して、FFに、16通りの初期値を設定することが考えられる。そのため、16通りの初期値に対応して、16回、検証が実行されるので、検証時間が増加する。また、FFが16通りの初期ステートを持つようにDFT合成後の設計データが用意されるので、検証データが増加する。また、Weak設定が可能なシミュレーションモデルを扱えるツールの導入が前提となる。
【0059】
これに対して、本実施の形態の半導体集積回路10を適用することで、Weak設定のように、ステートを保持するフリップフロップの初期値を設定した論理シミュレーション用のライブラリが不要であるため、検証データの増加を抑制できる。また、Weak設定が可能な専用のシミュレーションモデルの導入も不要となる。
【0060】
また、半導体集積回路の外部端子としてTRSTを用いず、論理シミュレーションを可能にする方法として、パワーオンマクロと呼ばれる回路を、タップコントローラのリセット端子に接続する方法が考えられる。パワーオンマクロは、電源投入時に、タップコントローラ内の4つのFFをリセットするものである。
【0061】
しかし、パワーオンマクロはAND回路やOR回路などの論理素子に比べて実装面積が大きく、パワーオンマクロを搭載することによって、半導体集積回路の実装面積が増大する。また、パワーオンマクロを使用するシミュレーションモデルを扱えるツールの導入が前提となる。
【0062】
これに対して、本実施の形態の半導体集積回路10の回路部12は、パワーオンマクロよりも小さい面積で実現でき、半導体集積回路10の実装面積の増大を抑えられる。また、パワーオンマクロの利用が可能な専用のシミュレーションモデルの導入も不要となる。
【0063】
第2の実施の形態の半導体集積回路10は、設計装置(コンピュータ)により、たとえば、以下のような流れで設計される。
図8は、半導体集積回路の設計方法の一部の流れを示すフローチャートである。
【0064】
まず、設計装置により論理設計が行われ、半導体集積回路10の論理設計データD1が生成される(ステップS10)。次に、設計装置は、生成された論理設計データD1に対してDRCを行い、DFT合成するにあたっての制約違反がないか検証する(ステップS11)。
【0065】
制約違反がない場合は、設計装置は、論理設計データD1に対して、DFT合成を行う(ステップS12)。これにより、図4に示したようなタップコントローラ11及び回路部12などのテスト回路を含んだ、DFT合成後論理設計データD2が生成される。
【0066】
DFT合成後、設計装置は、DFT合成が正しくできたことを確認するために、DRCを行う(ステップS13)。このとき、設計装置は、タップコントローラ11をテスト状態とするために設定する信号(前述のステート制御信号やクロック信号など)のシーケンスデータ(TAP設定シーケンスD3)を用いて、論理シミュレーションを行う。
【0067】
DFT合成が正しくできていた場合には、設計装置は、等価検証を行う(ステップS14)。ここでは、設計装置は、DFT合成によって、元の論理設計データD1が破壊されていないことを検証する。設計装置は、論理設計データD1とDFT合成後論理設計データD2をモデル化し、論理が同じになるか否かを検証する。
【0068】
ただし、等価検証の際には、タップコントローラ11をシステム状態とするために設定する信号のシーケンスデータ(TAP設定シーケンスD4)を用いて、論理シミュレーションによる内部状態設定が行われる(ステップS14a)。これにより、タップコントローラ11はシステム状態となる。
【0069】
なお、システム状態とは、テストを行う状態ではなく、通常動作を行う際のタップコントローラ11の状態を意味する。
その後、設計装置は、LSIテスタで使うテストパターンD5を自動生成する(ステップS15)。その際、DRCが実行され(ステップS15a)、DFT回路の設計制約違反の検証が行われる。DRCの際、設計装置は、DFT合成後論理設計データD2の回路モデルに対して、論理シミュレーションを実行し、TAP設定シーケンスD3に基づいて、タップコントローラ11をテスト状態にする。その後、設計制約違反の検証が行われる。
【0070】
さらに、設計装置は、故障シミュレーションを行う(ステップS16)。故障シミュレーションでは、設計装置は、LSIテスタで使うテストパターンD5の有効性を検証する。設計装置は、DFT合成後論理設計データD2に対して、故障の存在する回路(故障回路)と、故障の存在しない回路(正常回路)をモデル化し、両方を対象に検証対象のテストパターンD5を入力とした論理シミュレーションを実行する。この2つの回路モデルの出力パターンが異なれば、検証対象のテストパターンが有効と判定される。テストパターンの検証は、テストパターン生成の際や、DFT回路検証の際にも行ってよい。
【0071】
なお、故障シミュレーションの際には、回路モデルをテスト状態に設定しておくため、設計装置は、TAP設定シーケンスD3を用いた論理シミュレーションにより、内部状態設定を行う(ステップS16a)。
【0072】
さらに、設計装置は、DFT回路の機能的な確からしさを検証する(ステップS17)。DFT回路の検証の際には、設計装置は、回路モデルに、テストパターンD5を入力してDFT回路が期待通りの振る舞いをするか確認する。
【0073】
なお、DFT回路検証の際には、回路モデルをテスト状態に設定しておくため、設計装置は、TAP設定シーケンスD3を用いた論理シミュレーションにより、内部状態設定を行う(ステップS17a)。
【0074】
なお、上記の各検証でエラーが発生した場合には、論理設計、DFT合成、またはテストパターン生成などが再度行われる。
また、DFT合成後の各種検証は、図8の順序に限定されず、処理を行う順番を入れ替えてもよい。
【0075】
本実施の形態の半導体集積回路10に対して、上記のような論理シミュレーションを行う際、設計装置は、まず、ステート制御信号の値を“1”とした状態で、クロック信号を5サイクル入力する。これにより、ステートが“Test−Logic Reset”に確定し、ステートの初期値の値が“X”であっても、論理シミュレーションを行えるようになり、上記のような各種検証を行うことが可能となる。
【0076】
図3や、図8に示したような半導体集積回路の設計方法は、たとえば、以下のようなコンピュータにて実現される。
図9は、本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。
【0077】
コンピュータ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。
【0078】
RAM102は、コンピュータ100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に用いる各種データが格納される。たとえば、図8に示したような、各種データが格納される。
【0079】
バス108に接続されている周辺機器としては、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、及び通信インタフェース107がある。
【0080】
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。HDD103は、コンピュータ100の二次記憶装置として使用される。HDD103には、OSのプログラム、回路設計ツールや、論理シミュレーションツールなどのアプリケーションプログラム、及び各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【0081】
グラフィック処理装置104には、モニタ104aが接続されている。グラフィック処理装置104は、CPU101からの命令にしたがって、設計する半導体集積回路のレイアウトや、論理シミュレーション結果などの画像をモニタ104aの画面に表示させる。モニタ104aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
【0082】
入力インタフェース105には、キーボード105aとマウス105bとが接続されている。入力インタフェース105は、キーボード105aやマウス105bから送られてくる信号をCPU101に送信する。なお、マウス105bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0083】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク106aに記録されたデータの読み取りを行う。光ディスク106aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク106aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
【0084】
通信インタフェース107は、ネットワーク107aに接続されている。通信インタフェース107は、ネットワーク107aを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0085】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
以上、実施の形態に基づき、本発明の半導体集積回路及びその設計方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【0086】
1 半導体集積回路
2 タップコントローラ
3 回路部
p1〜p5,TMS,TCK,TDI,TDO 端子
図1
図2
図3
図4
図5
図6
図7
図8
図9