(57)【要約】【課題】  伝送データのホールド時間違反の発生を防ぐ。【解決手段】  実施形態の集積回路は、複数のフリップフロップと、前記複数のフリップフロップをスキャンチェーンで接続し且つグループ分けした状態において各フリップフロップを所定のグループ順に時間差をもって入出力動作させる制御を繰り返し実施する制御回路と、を具備する。【選択図】図２
2019049517.tif 000002
【特許請求の範囲】
【請求項１】
複数のフリップフロップと、
前記複数のフリップフロップをスキャンチェーンで接続し且つグループ分けした状態において各フリップフロップを所定のグループ順に時間差をもって入出力動作させる制御を繰り返し実施する制御回路と、
を具備する集積回路。
【請求項２】
前記制御回路は、各グループへ矩形波の信号を所定のグループ順に時間差をもって供給する処理を繰り返し実施し、
各フリップフロップは、前記制御回路から供給される矩形波の第１のエッジに応じて順次入出力動作する、
請求項１に記載の集積回路。
【請求項３】
特定のグループ間で転送されるデータを一時的に保持するデータ保持回路をさらに具備する、請求項１又は２に記載の集積回路。
【請求項４】
前記制御回路は、各フリップフロップを所定のグループ順に時間差をもって順次入出力動作させた後にさらに時間差をもって前記データ保持回路を入力動作させる、請求項３に記載の集積回路。
【請求項５】
前記データ保持回路は、いずれのグループにも属さないように構成され、
前記制御回路は、各グループへ矩形波の信号を所定のグループ順に時間差をもって供給した後にさらに時間差をもって前記データ保持回路へ矩形波の信号を供給し、
前記データ保持回路は、前記制御回路から供給される矩形波の第１のエッジに応じて入力動作する、
請求項３又は４に記載の集積回路。
【請求項６】
前記データ保持回路は、特定のグループに属するように構成され、
前記データ保持回路は、前記制御回路から前記特定のグループに対して供給される矩形波の第１のエッジの後に続く第２のエッジに応じて入力動作する、
請求項３又は４に記載の集積回路。
【請求項７】
前記データ保持回路は、１ビットのデータの保持を行うラッチ回路で実現される、請求項３乃至６のいずれか１項に記載の集積回路。
【請求項８】
複数のフリップフロップをスキャンチェーンで直列に接続し且つグループ分けし、
制御回路により、各フリップフロップを所定のグループ順に時間差をもって入出力動作させる制御を繰り返し実施する、
ことを含むスキャンシフト制御方法。
【請求項９】
前記制御回路により、各グループへ矩形波の信号を所定のグループ順に時間差をもって供給する処理を繰り返し実施し、
各フリップフロップを、前記制御回路から供給される矩形波の第１のエッジに応じて順次入出力動作させる、
ことを含む、請求項８に記載のスキャンシフト制御方法。
【請求項１０】
データ保持回路により、特定のグループ間で転送されるデータを一時的に保持させることをさらに含む、請求項８又は９に記載のスキャンシフト制御方法。
【請求項１１】
前記制御回路により、各フリップフロップを所定のグループ順に時間差をもって順次入出力動作させた後にさらに時間差をもって前記データ保持回路を入力動作させることを含む、請求項１０に記載のスキャンシフト制御方法。
【請求項１２】
前記データ保持回路を、いずれのグループにも属さないように構成し、
前記制御回路により、各グループへ矩形波の信号を所定のグループ順に時間差をもって供給した後にさらに時間差をもって前記データ保持回路へ矩形波の信号を供給し、
前記データ保持回路を、前記制御回路から供給される矩形波の第１のエッジに応じて入力動作させる、
ことを含む、請求項１０又は１１に記載のスキャンシフト制御方法。
【請求項１３】
前記データ保持回路を、特定のグループに属するように構成し、
前記データ保持回路を、前記制御回路から前記特定のグループに対して供給される矩形波の第１のエッジの後に続く第２のエッジに応じて入力動作させる、
ことを含む、請求項１０又は１１に記載のスキャンシフト制御方法。
【請求項１４】
前記データ保持回路を、１ビットのデータの保持を行うラッチ回路で実現する、請求項１０乃至１３のいずれか１項に記載のスキャンシフト制御方法。
【請求項１５】
集積回路に含まれる複数のフリップフロップをスキャンチェーンで直列に接続する工程と、
前記複数のフリップフロップをグループ分けする工程と、
各フリップフロップを所定のグループ順に時間差をもって入出力動作させるための回路を構成する工程と、
を含む回路設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、集積回路、スキャンシフト制御方法、および回路設計方法に関する。
【背景技術】
【０００２】
ＬＳＩのテスト容易化設計（ＤＦＴ： Design for testability）技術の一つとして、スキャンテストがある。このスキャンテストは、ＬＳＩに含まれるシステム組合せ回路の不具合を検出する手法として知られている。
【０００３】
スキャンテストを行う際には、回路内の個々のフリップフロップがシリアルに接続され、ＬＳＩの外部Ｉ／Ｏ端子から当該フリップフロップを制御・観測できるようにする経路（スキャンチェーン）が形成される。このスキャンチェーンで繋がれた個々のフリップフロップは互いに直結していることから、データ伝送に際してデータのホールド時間違反が発生することがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３２１０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
伝送データのホールド時間違反の発生を防ぐことのできる集積回路、スキャンシフト制御方法、および回路設計方法を提供する。
【課題を解決するための手段】
【０００６】
実施形態の集積回路は、複数のフリップフロップと、前記複数のフリップフロップをスキャンチェーンで接続し且つグループ分けした状態において各フリップフロップを所定のグループ順に時間差をもって入出力動作させる制御を繰り返し実施する制御回路と、を具備する。
【図面の簡単な説明】
【０００７】
【図１】第1の実施形態に係る半導体集積回路のスキャンテストを行う際の概略構成の一例を示す模式図。
【図２】第1の実施形態に係る半導体集積回路のスキャンテストを行う際の回路構成およびクロック制御の一例を説明するための模式図。
【図３】第１の実施形態による制御回路の構成の一例を示す回路図。
【図４】第１の実施形態によるスキャンシフト動作の一例を説明するための模式図。
【図５】第１の実施形態によるスキャンシフト動作の一例を示すタイミングチャート。
【図６】第２の実施形態に係る半導体集積回路のスキャンテストを行う際の回路構成およびクロック制御の一例を説明するための模式図。
【図７】第２の実施形態による制御回路の構成の一例を示す回路図。
【図８】第２の実施形態によるスキャンシフト動作の一例を説明するための模式図。
【図９】第２の実施形態によるスキャンシフト動作の一例を示すタイミングチャート。
【図１０】第３の実施形態に係る半導体集積回路の設計手順を示すフローチャート。
【図１１】図１０に示される個々のステップの処理内容を示す模式図。
【発明を実施するための形態】
【０００８】
以下、図面を参照して実施の形態について説明する。
【０００９】
（第１の実施形態）
最初に、第１の実施形態について説明する。  
図1は、第1の実施形態に係る半導体集積回路のスキャンテストを行う際の概略構成の一例を示す模式図である。なお、この図１は、後述する第２の実施形態にも適用される。
【００１０】
図1に示されるように、当該半導体集積回路には、システム組合せ回路１００と複数のフリップフロップ（ＦＦ）とが設けられる。
【００１１】
システム組合せ回路１００と個々のフリップフロップとの間には、それぞれ、データを入出力するための経路が設けられる。通常の動作を行う通常動作モードにおいてはこの経路が使用される。
【００１２】
スキャンを実施するスキャンモードにおいては、個々のフリップフロップをシリアルに接続する経路（スキャンチェーン）が形成される。スキャンモード中は、テストパターンのデータが、当該半導体集積回路のスキャン入力端子から入力され、スキャンチェーンを通じて個々のフリップフロップを順次通過した後、当該半導体集積回路のスキャン出力端子から出力されていく。
【００１３】
図２は、第1の実施形態に係る半導体集積回路のスキャンテストを行う際の回路構成およびクロック制御の一例を説明するための模式図である。
【００１４】
図２（ａ）に示されるように、当該半導体集積回路に備えられる複数のフリップフロップは、例えばＡグループ、Ｂグループ、Ｃグループ、Ｄグループの４つにグループ分けされるものとする。
【００１５】
当該半導体集積回路には、伝送データのホールド時間違反を発生させないスキャンシフト制御を行う制御回路１が設けられる。
【００１６】
制御回路１は、複数のフリップフロップをスキャンチェーンでシリアルに接続し且つグループ分けした状態において、基準となるクロックを元に、個々のグループに対してそれぞれ動作タイミングの異なる矩形波の信号（例えばパルス状の信号）を作成して出力する処理を繰り返し実施することにより、各フリップフロップをグループ単位で所定のグループ順（本例では、Ａグループ、Ｂグループ、Ｃグループ、Ｄグループの順）に時間差（ホールド時間違反にならないことを保証する時間差）をもって入出力動作させる制御を繰り返し実施する機能を有する。
【００１７】
また、当該半導体集積回路には、複数のフリップフロップに加え、さらに、データ保持回路が備えられる。このデータ保持回路は、本実施形態では、１ビットのデータの保持を行うラッチ回路ＬＴで実現されるものとする。但し、これに限定されるものではない。代わりにフリップフロップを採用しても構わない。ラッチ回路ＬＴはフリップフロップよりも小さいため、設置するスペースが少なくて済む。
【００１８】
ラッチ回路ＬＴは、特定のグループ間で転送されるデータ（本例では、ＡグループからＤグループへ転送されるデータ）を一時的に保持する。
【００１９】
このように本実施形態では、複数のフリップフロップのほかにラッチ回路ＬＴが設けられることから、制御回路１は、各フリップフロップをグループ単位で所定のグループ順（本例では、Ａグループ、Ｂグループ、Ｃグループ、Ｄグループの順）に時間差をもって順次入出力動作させた後にさらに時間差をもってラッチ回路ＬＴを入力動作させる制御を繰り返し実施する。
【００２０】
第１の実施形態では、ラッチ回路ＬＴは、上述したＡグループ、Ｂグループ、Ｃグループ、Ｄグループのいずれのグループにも属さないように構成されるものとする。この場合、制御回路１は、Ａグループ、Ｂグループ、Ｃグループ、Ｄグループとは動作タイミングの異なる矩形波の信号をラッチ回路ＬＴへ供給する必要がある。そのため、制御回路１は、各グループへ矩形波の信号を所定のグループ順（本例では、Ａグループ、Ｂグループ、Ｃグループ、Ｄグループの順）に時間差をもって供給した後にさらに時間差をもってラッチ回路ＬＴへ矩形波の信号を供給する。
【００２１】
これにより、各フリップフロップは、それぞれ、制御回路１から供給される矩形波の第１のエッジ（本例では、立ち上がりエッジ）に応じて入出力動作する。また、ラッチ回路ＬＴは、制御回路１から供給される矩形波の第１のエッジ（本例では、立ち上がりエッジ）に応じて入力動作する。
【００２２】
より具体的には、制御回路１は、図２（ａ）に示されるように基準となるクロックをもとに、Ａグループ、Ｂグループ、Ｃグループ、Ｄグループ、およびラッチ回路ＬＴをそれぞれ制御すべく、図２（ｂ）に示されるように信号CLK_A，CLK_B，CLK_C，CLK_D，CLK_LTをこの順に時間差をもって生成して出力する処理を繰り返し実施する。
【００２３】
これにより、各フリップフロップは、それぞれ、信号CLK_A，CLK_B，CLK_C，CLK_Dの立ち上がりエッジに応じて入出力動作する。また、ラッチ回路ＬＴは、信号CLK_LTの立ち上がりエッジに応じて入力動作する。
【００２４】
なお、図２（ｂ）は１サイクル分を示したものである。制御回路１は、信号CLK_A，CLK_B，CLK_C，CLK_D，CLK_LTを順次出力するサイクルを繰り返し実施することになる。
【００２５】
図３は、第１の実施形態による制御回路１の構成の一例を示す回路図である。
【００２６】
制御回路１は、例えば、カウンタ１１、デコーダ１２、インパルス電流発生器（ＩＣＧ）１３Ａ，１３Ｂ，１３Ｃ，１３Ｄ，１３ＬＴ等から構成される。
【００２７】
カウンタ１１は、一定の時間間隔でカウント値を初期値から所定値まで順次増加または減少させる処理を繰り返し実施する。
【００２８】
デコーダ１２は、カウンタ１１のカウント値に従って、ワンホットな状態のデータ（例えば、１つのビットだけがＨｉｇｈ（値が１）のビット列データ）を、ＩＣＧ１３Ａ，１３Ｂ，１３Ｃ，１３Ｄ，１３ＬＴのそれぞれへ、順次、出力タイミングをずらして出力する。
【００２９】
ＩＣＧ１３Ａ，１３Ｂ，１３Ｃ，１３Ｄ，１３ＬＴは、基準となるクロック信号（上述したクロック信号CLK）を入力すると共にデコーダ１２からのデータを入力し、デコーダ１２からのデータに従って、当該クロック信号に同期する矩形波の信号（上述した信号CLK_A，CLK_B，CLK_C，CLK_D，CLK_LT）をそれぞれ出力する。
【００３０】
なお、制御回路１の回路構成は図３の例に限定されるものではない。同じ機能を実現するものであれば、別の回路構成であってもよい。例えば、カウンタ１１およびデコーダ１２を用いる代わりに、ビットシフタ（シフトレジスタ）などを用いて、ワンホットな状態のデータを順次出力するようにしてもよい。
【００３１】
次に、図４および図５を参照して、第１の実施形態によるスキャンシフト動作の一例を説明する。なお、ここでは１サイクル分の動作について説明する。
【００３２】
図４（ａ）は、Ａグループに属するフリップフロップA_L，A_R、Ｂグループに属するフリップフロップB_L，B_R、Ｃグループに属するフリップフロップC_L，C_R、Ｄグループに属するフリップフロップD_L，D_R、およびラッチ回路ＬＴが、ある状態１から次の状態２に遷移する様子を示している。
【００３３】
図４（ｂ）は、状態１から状態２に遷移するまでに、制御回路１から、Ａグループ、Ｂグループ、Ｃグループ、Ｄグループ、およびラッチ回路ＬＴに対して、信号CLK_A，CLK_B，CLK_C，CLK_D，CLK_LTがそれぞれ供給される様子を示している。
【００３４】
図５は、状態１から状態２に遷移するまでに、制御回路１から供給される信号CLK_A，CLK_B，CLK_C，CLK_D，CLK_LTに従って、フリップフロップA_L，A_R，B_L，B_R，C_L，C_R，D_L，D_R、およびラッチ回路ＬＴが保持するデータが変化する様子を示している。
【００３５】
状態１において、最初、信号CLK_Aの立ち上がりエッジに応じて、Ａグループに属するフリップフロップA_L，A_Rが入出力動作する。このとき、フリップフロップA_L，A_Rは、それぞれ、自身が保持する１，０を出力し、フリップフロップB_L，B_Rが保持する０，１を入力する。
【００３６】
次に、信号CLK_Bの立ち上がりエッジに応じて、Ｂグループに属するフリップフロップB_L，B_Rが入出力動作する。このとき、フリップフロップB_L，B_Rは、それぞれ、自身が保持する０，１を出力し、フリップフロップC_L，C_Rが保持する１，０を入力する。
【００３７】
次に、信号CLK_Cの立ち上がりエッジに応じて、Ｃグループに属するフリップフロップC_L，C_Rが入出力動作する。このとき、フリップフロップC_L，C_Rは、それぞれ、自身が保持する１，０を出力し、フリップフロップD_L，D_Rが保持する１，０を入力する。
【００３８】
次に、信号CLK_Dの立ち上がりエッジに応じて、Ｄグループに属するフリップフロップD_L，D_Rが入出力動作する。このとき、フリップフロップD_L，D_Rは、それぞれ、自身が保持する１，０を出力し、ラッチ回路ＬＴが保持する値０，スキャン入力端子側から供給される値１を入力する。
【００３９】
最後に、信号CLK_LTの立ち上がりエッジに応じて、ラッチ回路ＬＴが入力動作する。このとき、ラッチ回路ＬＴは、フリップフロップA_Rが保持する１を入力する。すなわち、ラッチ回路ＬＴは、次のサイクルでフリップフロップD_Lが入力すべきデータ（フリップフロップA_RからフリップフロップD_Lへ転送されるべきデータ）を保持する。
【００４０】
このような一連の動作により、前述した状態１から状態２へと遷移する。以降、このような動作が繰り返される。
【００４１】
第１の実施形態によれば、制御回路１が、シリアルに接続された個々のフリップフロップをグループ単位で所定のグループ順に時間差をもって順次入出力動作させた後にさらに時間差をもってラッチ回路ＬＴを入力動作させる制御を繰り返し実施するので、伝送データのホールド時間違反が発生することを防ぐことが可能となる。
【００４２】
（第２の実施形態）
次に、第２の実施形態について説明する。以下では、第１の実施形態と共通する部分の説明を省略し、異なる部分を中心に説明する。
【００４３】
第２の実施形態に係る半導体集積回路のスキャンテストを行う際の概略構成は、第１の実施形態の場合と同様であり、図1の通りとなる。
【００４４】
図６は、第２の実施形態に係る半導体集積回路のスキャンテストを行う際の回路構成およびクロック制御の一例を説明するための模式図である。
【００４５】
第２の実施形態では、図６（ａ）に示されるように、ラッチ回路ＬＴは、Ａグループ、Ｂグループ、Ｃグループ、Ｄグループのうちの特定のグループ（本例では、Ａグループ）に属するように構成されるものとする。この場合、制御回路１は、Ａグループ、Ｂグループ、Ｃグループ、Ｄグループと動作タイミングの異なる矩形波の信号をラッチ回路ＬＴのためだけに別途供給する必要はない。
【００４６】
制御回路１は、Ａグループ、Ｂグループ、Ｃグループ、Ｄグループに対して矩形波の信号を順次供給すればよい。但し、少なくともＡグループに対して出力する矩形波の信号の形態（例えば、立ち上がりエッジから立ち下がりのエッジまでの時間間隔）が第１の実施形態の場合とは異なる。
【００４７】
各フリップフロップが、それぞれ、制御回路１から供給される矩形波の第１のエッジ（本例では、立ち上がりエッジ）に応じて入出力動作するのに対し、ラッチ回路ＬＴは、制御回路１から供給される矩形波の第１のエッジの後に続く第２のエッジ（本例では、立ち下がりエッジ）に応じて入力動作する。
【００４８】
より具体的には、制御回路１は、図６（ａ）に示されるように基準となるクロックをもとに、Ａグループ、Ｂグループ、Ｃグループ、およびＤグループをそれぞれ制御すべく、図６（ｂ）に示されるように信号CLK_A，CLK_B，CLK_C，CLK_Dをこの順に時間差をもって生成して出力する処理を繰り返し実施する。
【００４９】
これにより、各フリップフロップは、それぞれ、信号CLK_A，CLK_B，CLK_C，CLK_Dの立ち上がりエッジに応じて入出力動作する。また、ラッチ回路ＬＴは、信号CLK_Aの立ち下がりエッジに応じて入力動作する。
【００５０】
なお、図６（ｂ）は１サイクル分を示したものである。制御回路１は、信号CLK_A，CLK_B，CLK_C，CLK_Dを順次出力するサイクルを繰り返し実施することになる。
【００５１】
図７は、第２の実施形態による制御回路１の構成の一例を示す回路図である。
【００５２】
制御回路１は、例えば、カウンタ２１、クロック制御信号作成部２２、フリップフロップ２３Ａ，２３Ｂ，２３Ｃ，２３Ｄ等から構成される。
【００５３】
カウンタ２１は、一定の時間間隔でカウント値を初期値から所定値まで順次増加または減少させる処理を繰り返し実施する。例えば、カウンタ２１は、カウント値を０から１５まで増加させる処理を繰り返し実施する。
【００５４】
クロック制御信号作成部２２は、カウンタ１１のカウント値に従って、例えば一定期間だけＨｉｇｈ（値が１）となるデータを、フリップフロップ２３Ａ，２３Ｂ，２３Ｃ，２３Ｄのそれぞれへ、順次、出力タイミングをずらして出力する。例えば、クロック制御信号作成部２２は、フリップフロップ２３Ａに対しては、カウント値が１から７までの間だけ１の値を出力し、フリップフロップ２３Ｂに対しては、カウント値が２から８までの間だけ１の値を出力し、フリップフロップ２３Ｃに対しては、カウント値が３から９までの間だけ１の値を出力し、フリップフロップ２３Ｄに対しては、カウント値が４から１０までの間だけ１の値を出力する。
【００５５】
フリップフロップ２３Ａ，２３Ｂ，２３Ｃ，２３Ｄは、基準となるクロック信号（上述したクロック信号CLK）を入力すると共にクロック制御信号作成部２２からのデータを入力し、クロック制御信号作成部２２からのデータに従って、当該クロック信号に同期する矩形波の信号（上述した信号CLK_A，CLK_B，CLK_C，CLK_D）をそれぞれ出力する。
【００５６】
なお、制御回路１の回路構成は図７の例に限定されるものではない。同じ機能を実現するものであれば、別の回路構成であってもよい。
【００５７】
次に、図８および図９を参照して、第２の実施形態によるスキャンシフト動作の一例を説明する。なお、ここでは１サイクル分の動作について説明する。
【００５８】
図８（ａ）は、Ａグループに属するフリップフロップA_L，A_Rおよびラッチ回路ＬＴ、Ｂグループに属するフリップフロップB_L，B_R、Ｃグループに属するフリップフロップC_L，C_R、Ｄグループに属するフリップフロップD_L，D_Rが、ある状態１から次の状態２に遷移する様子を示している。
【００５９】
図８（ｂ）は、状態１から状態２に遷移するまでに、制御回路１から、Ａグループ、Ｂグループ、Ｃグループ、Ｄグループに対して、信号CLK_A，CLK_B，CLK_C，CLK_Dがそれぞれ供給される様子を示している。
【００６０】
図９は、状態１から状態２に遷移するまでに、制御回路１から供給される信号CLK_A，CLK_B，CLK_C，CLK_Dに従って、フリップフロップA_L，A_R，B_L，B_R，C_L，C_R，D_L，D_R、およびラッチ回路ＬＴが保持するデータが変化する様子を示している。
【００６１】
状態１において、最初、信号CLK_Aの立ち上がりエッジに応じて、Ａグループに属するフリップフロップA_L，A_Rが入出力動作する。このとき、フリップフロップA_L，A_Rは、それぞれ、自身が保持する１，０を出力し、フリップフロップB_L，B_Rが保持する０，１を入力する。
【００６２】
次に、信号CLK_Bの立ち上がりエッジに応じて、Ｂグループに属するフリップフロップB_L，B_Rが入出力動作する。このとき、フリップフロップB_L，B_Rは、それぞれ、自身が保持する０，１を出力し、フリップフロップC_L，C_Rが保持する１，０を入力する。
【００６３】
次に、信号CLK_Cの立ち上がりエッジに応じて、Ｃグループに属するフリップフロップC_L，C_Rが入出力動作する。このとき、フリップフロップC_L，C_Rは、それぞれ、自身が保持する１，０を出力し、フリップフロップD_L，D_Rが保持する１，０を入力する。
【００６４】
次に、信号CLK_Dの立ち上がりエッジに応じて、Ｄグループに属するフリップフロップD_L，D_Rが入出力動作する。このとき、フリップフロップD_L，D_Rは、それぞれ、自身が保持する１，０を出力し、ラッチ回路ＬＴが保持する値０，スキャン入力端子側から供給される値１を入力する。
【００６５】
最後に、信号CLK_Aの立ち下がりエッジに応じて、ラッチ回路ＬＴが入力動作する。このとき、ラッチ回路ＬＴは、フリップフロップA_Rが保持する１を入力する。すなわち、ラッチ回路ＬＴは、次のサイクルでフリップフロップD_Lが入力すべきデータ（フリップフロップA_RからフリップフロップD_Lへ転送されるべきデータ）を保持する。
【００６６】
このような一連の動作により、前述した状態１から状態２へと遷移する。以降、このような動作が繰り返される。
【００６７】
第２の実施形態によれば、上述した第１の実施形態で得られる効果に加え、制御回路１がＡグループ、Ｂグループ、Ｃグループ、Ｄグループと動作タイミングの異なる矩形波の信号をラッチ回路ＬＴのためだけに別途供給する必要がなくなるのでそのための配線が不要になるという効果が得られる。
【００６８】
（第３の実施形態）
次に、第３の実施形態について説明する。以下では、上述した第１の実施形態や第２の実施形態と共通する部分の説明を省略し、異なる部分を中心に説明する。
【００６９】
第３の実施形態では、上述した第１の実施形態や第２の実施形態で説明した半導体集積回路の設計方法について説明する。
【００７０】
図１０は、第３の実施形態に係る半導体集積回路の設計手順を示すフローチャートである。また、図１１は、図１０に示される個々のステップの処理内容を示す模式図である。以下、図１０および図１１を参照して、半導体集積回路の設計手順の一例を説明する。
【００７１】
最初に、半導体集積回路に含まれる複数のフリップフロップについて、通常のスキャン化が実施される（図１０のＳ１）。ここでは、例えば図１１のＳ１に示されるように、個々のフリップフロップ（ＦＦ）が所定のルールに従ってスキャンチェーンでシリアルに接続される。
【００７２】
次に、スキャンチェーンで接続された複数のフリップフロップに対し、クロックツリーシンセシス（ＣＴＳ）クラスタリングが実施される（図１０のＳ２）。ここでは、例えば図１１のＳ２に示されるように、複数のフリップフロップがＣＴＳクラスタリングによってグループ分けされる。
【００７３】
次に、クロック制御回路（上述した第１の実施形態もしくは第２の実施形態における制御回路１に相当）の挿入が実施される（図１０のＳ３）。ここでは、例えば図１１のＳ３に示されるように、ＣＴＳクラスタリングによって形成された個々のグループを個別に制御するクロック制御回路が挿入される。
【００７４】
次に、グループ分けされた複数のフリップフロップについて、スキャンチェインリオーダ（scan chain reorder）が実施される（図１０のＳ４）。ここでは、例えば図１１のＳ４に示されるように、データが所定のグループ順に（本例では、グループＤ，Ｃ，Ｂ，Ａの順に）、複数回、巡回して伝送されるようにキャンチェーンが再構成される。
【００７５】
次に、ラッチの挿入が実施される（図１０のＳ５）。ここでは、例えば図１１のＳ５に示されるように、特定のグループ間で転送されるデータ（本例では、ＡグループからＤグループへ転送されるデータ）を一時的に保持するラッチ回路（上述した第１の実施形態もしくは第２の実施形態におけるラッチ回路ＬＴに相当）が挿入される。このときのラッチ回路は、図示のようにどのグループにも属さないように配置してもよいし、あるいは例えばＡグループに属するように配置してもよい。
【００７６】
最後に、ＣＴＳ配線が形成される（図１０のＳ６）。ここでは、例えば図１１のＳ６に示されるように、個々のグループ内の複数のフリップフロップ同士を繋ぐＣＴＳ配線が形成される。
【００７７】
このような設計を経て半導体集積回路が作製された後、当該半導体集積回路に対してスキャンテストが実施され、例えば上述した第１の実施形態もしくは第２の実施形態で示したような制御によりスキャンシフト動作が実現されることになる。
【００７８】
なお、半導体集積回路の設計手順は、図１０および図１１の例に限定されるものではない。支障が無ければいくつかのステップの処理順序を変えて実施しても構わない。例えば、Ｓ４とＳ５とを入れ換えて実施してもよい。
【００７９】
第３の実施形態によれば、伝送データのホールド時間違反の発生を心配せずに半導体集積回路の設計を進めることができるため、検討作業などにかける時間を低減でき、設計期間を短縮することができるという効果が得られる。
【００８０】
以上詳述したように実施形態によれば、伝送データのホールド時間違反の発生を防ぐことができる。
【００８１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８２】
１…制御回路、１１…カウンタ、１２…デコーダ、１３Ａ，１３Ｂ，１３Ｃ，１３Ｄ，１３ＬＴ…インパルス電流発生器（ＩＣＧ）、２１…カウンタ、２２…クロック制御信号作成部、２３Ａ，２３Ｂ，２３Ｃ，２３Ｄ…フリップフロップ、１００…システム組合せ回路、ＬＴ…ラッチ回路。
【図１】
2019049517.tif 000003
【図２】
2019049517.tif 000004
【図３】
2019049517.tif 000005
【図４】
2019049517.tif 000006
【図５】
2019049517.tif 000007
【図６】
2019049517.tif 000008
【図７】
2019049517.tif 000009
【図８】
2019049517.tif 000010
【図９】
2019049517.tif 000011
【図１０】
2019049517.tif 000012
【図１１】
2019049517.tif 000013