JP4416469B2 - 半導体集積回路およびその設計方法 - Google Patents

半導体集積回路およびその設計方法 Download PDF

Info

Publication number
JP4416469B2
JP4416469B2 JP2003347703A JP2003347703A JP4416469B2 JP 4416469 B2 JP4416469 B2 JP 4416469B2 JP 2003347703 A JP2003347703 A JP 2003347703A JP 2003347703 A JP2003347703 A JP 2003347703A JP 4416469 B2 JP4416469 B2 JP 4416469B2
Authority
JP
Japan
Prior art keywords
scan
scan flip
flop
circuit
semiconductor integrated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003347703A
Other languages
English (en)
Other versions
JP2005115578A (ja
Inventor
貴志 石村
市川  修
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2003347703A priority Critical patent/JP4416469B2/ja
Publication of JP2005115578A publication Critical patent/JP2005115578A/ja
Application granted granted Critical
Publication of JP4416469B2 publication Critical patent/JP4416469B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、スキャンテスト回路を搭載した半導体集積回路およびその設計方法に関するものである。
従来、半導体集積回路内に含まれる論理回路部分のテストによく使われている方式として、スキャンテスト方式がある。この方式によりスキャンテストを行うためには、半導体集積回路内にスキャンテスト回路を形成する必要があり、このスキャンテスト回路は、半導体集積回路内のスキャンフリップフロップを用いて構成される。
ここで用いられるスキャンフリップフロップは、機能ブロック内の組合せ回路を伝搬してきたデータ信号をフリップフロップに取り込むための入力端子Dと、スキャンテスト用の信号をフリップフロップに取り込むための入力端子DTと、クロック信号を取り込むためのクロック端子CKと、入力端子Dからの信号または入力端子DTからの信号のうちどちらの信号をフリップフロップのデータとして取り込むかを切り替えるための信号が入力される入力端子NTと、データ信号を出力するための出力端子Q、/Q(/は、Qの反転を意味する)を持っている。
スキャンテスト回路には2つのモードが存在し、このモードはNT端子の値によって切り替えられる。NT端子の信号値が「1(ハイレベル)」の時、シフトモードと呼ばれ、DT信号がフリップフロップのデータとして取り込まれる。一方、NT端子の信号値が「0(ローレベル)」の時、キャプチャーモードと呼ばれ、D信号がフリップフロップのデータとして取り込まれる。
スキャンテスト回路は、複数のスキャンフリップフロップのDT端子とQ(もしくは/Q)端子を数珠つなぎに順次接続することで、スキャンテスト時のシフトモード(NT=1)のときに、シフトレジスタとして機能するように構成された回路である。またスキャンテスト信号の入力端子として機能する外部入力端子が、シフトレジスタの先頭に配置されるスキャンフリップフロップのDTに接続され、スキャンテスト信号の出力端子として機能する外部出力端子が、シフトレジスタの最終段に配置されるスキャンフリップフロップのQもしくは/Q端子に接続される。スキャンフリップフロップのCK端子およびNT端子は外部入力端子から直接制御される。
このように構成されたスキャンテスト回路は、スキャンフリップフロップがチェーン状に接続されていることからスキャンチェーンとも呼ばれる。スキャンチェーンは1つの半導体集積回路内に複数本あってもよい。
一般にスキャンテストでは、そのテストを開始する場合には、LSIテスタから半導体集積回路のスキャンテスト信号入力端子に対して、スキャンテスト信号を供給する。また、スキャンフリップフロップのCK端子に対するクロック信号とNT端子に対するスキャンイネーブル信号も、LSIテスタから半導体集積回路に対して直接供給する。NT端子にスキャンイネーブル信号として信号値「1」を供給している間に、スキャンチェーンの段数分のクロックを印加することにより、テスト対象のスキャンチェーンを構成する全スキャンフリップフロップに対して、スキャンテスト信号を供給することができる。
その後、NT端子に対するスキャンイネーブル信号を「0」に切り替え、さらにその後、1クロックを入力することで、機能ブロックからの信号をスキャンフリップフロップのD端子に取り込むことができる。その後、再びスキャンイネーブル信号を「1」に切り替えて、スキャンチェーンの段数分のクロックを印加することにより、スキャンチェーン内にキャプチャーされた値をLSIテスタに取り込むことができる。LSIテスタに取り込んだ後、予めLSIテスタに格納していた期待値と比較して、テスト対象のスキャンチェーンを構成する全スキャンフリップフロップの良否判定を行う。
また、近年では、前記した一般的なスキャンテストの代わりに、組み込み自己テスト(BIST)方式で、半導体集積回路の論理回路部分をテストするようになりつつある。論理回路部分を対象としたBIST(以下、ロジックBIST)のアーキテクチャーで最もよく用いられているものにSTUMPSがある。STUMPSはマルチスキャン設計をベースとしたBISTアーキテクチャーである。これは、スキャンテスト方式と同様に、回路内に形成されたスキャンチェーンを利用してテストを行う。
ロジックBISTとスキャンテストの間には、テスト信号発生手段と出力応答信号の比較手段に違いがある。スキャンテストにおけるテスト信号発生方法と出力応答信号の比較手段については前述しているとおりである。
このスキャンテストに対して、ロジックBISTでは、LSIテスタからBIST起動信号、クロック信号、その他いくつかの制御信号を印加することで、半導体集積回路の内部に組み込まれたパタン生成回路からテスト信号が発生され、テスト対象回路へ印加される。また、テスト対象回路からの出力応答信号は出力圧縮回路へ入力され、シグニチャーとよばれる圧縮データに変換される。最終的にシグニチャーをLSIテスタに読み出して、予めLSIテスタに格納しておいたシグニチャーの期待値と比較し、テスト対象回路の良否判定を行う。
近年の半導体集積回路は非常に大規模になってきている。一般的なスキャンテストにしてもロジックBISTにしても、このような半導体集積回路のテストを短時間で済ませるためには、できるだけ多くの回路ブロックを同時に動作させる必要がある。LSIテスタの稼動時のコストは非常に高いため、テスタ使用時間が長いと、最終的な半導体集積回路の製造コストに大きな影響を与えてしまうからである。
また一方で、近年の半導体集積回路の動作速度は非常に高速になってきていており、遅延故障が顕在化し始めている。このような遅延故障のテストを行うために、スキャンテスト、ロジックBIST時にも、半導体集積回路を高速に動作させる必要が生じてきている。また、スキャンテスト、ロジックBISTにおけるテスト時間の大部分は、スキャンチェーンのシフト動作の時間によって占められる。従って、テスト時間の短縮を図るためには、キャプチャー動作だけでなく、シフト動作も高速に行う必要がある。
しかしながら、スキャンテストもしくはロジックBISTで、大規模な半導体集積回路を高速に動作させると、テスト時の消費電力が極めて大きくなり、適切な検査が行えなくなってしまうという問題が生じてきている。
一般に、半導体集積回路の電源設計は、ファンクション動作時の消費電力を見込んで行われており、テスト時の消費電力は考慮されていない。ファンクション動作時には、半導体集積回路内で動作する部分は限定的であるため、消費電力はそれほど大きくないが、スキャンテスト、もしくはロジックBIST時には、対象となる回路部分の全てが同時に動作するため、ファンクション時にくらべて非常に多くの電力を消費する。
このように、電源設計がテスト時の消費電力を考慮せずに行われている場合には、スキャンテストもしくはロジックBIST時には半導体集積回路は正常に動作せず、適切な検査が行われないことになる。なお、回路内の消費電力は動作周波数に比例するため、動作速度が速くなるにつれて問題が大きくなる。
以上の問題に対して、従来技術(例えば、特許文献1を参照)では、スキャンフリップフロップから、機能ブロック(組合せ回路)へ伝搬する出力端子(Q端子)を固定した状態でシフト動作を行うことにより、動作周波数を下げることなく、スキャンテスト時の消費電力を削減し、上記の問題を解決しようと図っている。
図9は従来の半導体集積回路の構成を示す回路図である。この半導体集積回路の特徴は、フリップフロップ回路11(11A〜11F)に、組合せ回路10にデータ信号Dやスキャンテスト信号DTを伝達させるためのQ端子とは別に、スキャンテスト信号DTを次のフリップフロップ回路11に伝達するための端子としてSOを設け、このフリップフロップ回路11(11A〜11F)を、スキャンテストのシフトモードの間、Q端子の信号値を固定して、組合せ回路10内の状態がシフトモード中は変化しないように、構成している点である。
従来のスキャンテスト回路構成では、シフトモードの間、各スキャンフリップフロップに印加されるスキャンテスト信号に応じて、スキャンフリップフロップのQ端子の信号値が変化する。このとき、組合せ回路内の多くのトランジスタが同時にスイッチングし、瞬間的に非常に大きな電力を消費する。それに対して、図9の回路では、シフト中にQ端子の信号値を固定するため、組合せ回路10内の各ノードの値は固定され、シフト中の消費電力を抑制することができる。
以上のような半導体集積回路において、Q端子の出力値を固定するためのフリップフロップ回路11の具体的な構造を図10および図11に示す。
図10に示すフリップフロップ回路は、データ信号Dおよびスキャンテスト信号DTを受け、スキャンイネーブル信号NTの値によって、DまたDTのいずれを出力として選択するマルチプレクサ21と、クロック信号CLKの反転信号に応じてマルチプレクサ21の出力信号をラッチする第1のラッチ回路22と、クロックCLKに応じて第1のラッチ22の出力をラッチする第2のラッチ23と、クロック信号CLK及びHOLD信号の反転信号を受けて、両者のAND演算を行った結果を出力するAND回路24と、AND回路24の出力に応じて第1のラッチ回路22の出力をラッチする第3ラッチ回路25とを備えている。また、第2のラッチ回路23の出力はSO端子として機能し、第3のラッチ回路25の出力はQ出力端子として機能する。
この構成では、HOLD信号が「1」の時は、クロック信号CLKが「1」または「0」のいずれにも拘わらず、AND回路24の出力はかならず「0」になる。したがって、このとき第3のラッチ回路25の出力Qは、第1のラッチ回路22の出力値にかかわらず、前時刻に保持していた値(「0」または「1」)に固定される。なお、HOLD信号の代わりにスキャンイネーブル信号NTを、Qを固定するための信号として利用することも可能である。つまり、HOLD信号用端子と、NT端子とを共通化することができる。
また、図11は、従来のスキャンフリップフロップと同様の構成において、Q端子をSO端子として機能させるように構成されたフリップフロップ31とホールド信号の反転信号とフリップフロップ31の出力とを受け、両者のAND演算を行った結果を出力するAND回路32とを備えている。
この構成では、HOLD信号が「1」のときには、フリップフロップ31の出力が「1」または「0」のいずれにも拘わらず、AND回路の32の出力は必ず「0」になる。なおこの構造においても、HOLD信号に変えてNT信号を、Q端子を固定するための信号として利用することもできる。つまり、HOLD信号用とNT端子を共通化することができる。
特開2001−59856号公報
しかしながら上記のような従来の技術では、消費電力の抑制は行うことができるが、回路面積やファンクション動作速度に対するペナルティが発生する可能性が高い。図10のフリップフロップは、通常のスキャンフリップフロップに対して、ラッチ1つとANDゲート1つ分の面積オーバーヘッドがある。
また、図11のフリップフロップに関しては、通常のスキャンフリップフロップに対する面積オーバーヘッドがANDゲート1つ分であり、図10のフリップフロップと比較してラッチ1つ分小さいが、図10のフリップフロップと異なり、ANDゲート32がフリップフロップ31の後側に配置されているため、Qの信号伝搬速度がANDゲート一段分遅延する。
つまり、図10や図11に示される構成では、フリップフロップの使用数、使用箇所について言及していないため、消費電力を削減できる一方で、回路面積の増大および、動作速度低下の恐れがあるという問題点を有していた。
本発明は、上記従来の問題点を解決するもので、ファンクション動作速度に影響を与えず、また回路面積増を最低限に抑えつつ、スキャンテストおよびロジックBIST動作中のシフト動作中の消費電力を低減することができる半導体集積回路およびその設計方法を提供する。
上記の課題を解決するために、本発明の請求項1に記載の半導体集積回路は、複数のスキャンフリップフロップが直列に接続されたスキャンチェーンと、複数の基本ゲートを含む組合せ回路とを有し、スキャンテストのシフト動作時は、前記スキャンチェーン内をシリアルにデータ転送し、ファンクション動作時もしくはスキャンテストのキャプチャー動作時は、前記組合せ回路を介して、前記複数のスキャンフリップフロップ間でデータ転送を行うように構成された半導体集積回路であって、前記スキャンチェーンは前記組合せ回路へデータ信号を転送する第1のスキャンフリップフロップ及び前記組合せ回路へデータ信号を転送する第2のスキャンフリップフロップを具備し、前記複数の基本ゲートには、前記第1のスキャンフリップフロップが転送したデータ信号と、前記第2のスキャンフリップフロップが転送したデータ信号の双方が伝播しうる基本ゲートが含まれ、前記第1のスキャンフリップフロップの出力端子と前記組合せ回路との間に、前記スキャンテストのシフト動作中は前第1のスキャンフリップフロップから前記組合せ回路へのデータ信号を固定値に保持するための回路を備え、前記第2のスキャンフリップフロップの出力端子と前記組合せ回路との間に前記スキャンテストのシフト動作中は前記第2のスキャンフリップフロップから前記組合せ回路へのデータ信号を固定値に保持するための回路を備えないことを特徴とする半導体集積回路であって、スキャンテストのシフト動作中に、前記第1のスキャンフリップフロップから前記組合せ回路へのデータ信号が固定されることにより、前記第1のスキャンフリップフロップが転送したデータ信号と、前記第2のスキャンフリップフロップが転送したデータ信号とが伝播しうる前記基本ゲートの出力が固定されることを特徴とする。
また、本発明の請求項2に記載の半導体集積回路は、複数のスキャンフリップフロップが直列に接続されたスキャンチェーンと、複数の基本ゲートを含む組合せ回路とを有し、スキャンテストのシフト動作時は、前記スキャンチェーン内をシリアルにデータ転送し、ファンクション動作時もしくはスキャンテストのキャプチャー動作時は、前記組合せ回路を介して、前記複数のスキャンフリップフロップ間でデータ転送を行うように構成された半導体集積回路であって、前記スキャンチェーンは前記組合せ回路へデータ信号を転送する第1のスキャンフリップフロップ及び前記組合せ回路へデータ信号を転送する第2のスキャンフリップフロップを具備し、前記複数の基本ゲートには、前記第1のスキャンフリップフロップが転送したデータ信号と、前記第2のスキャンフリップフロップが転送したデータ信号の双方が伝播しうる基本ゲートが含まれ、前記第1のスキャンフリップフロップは、前記ファンクション動作時もしくはスキャンテストのキャプチャー動作時に、前記組合せ回路へデータ転送する第1の出力端子と、前記スキャンテストのシフト動作時に、前記スキャンチェーン内の次段のスキャンフリップフロップへデータ転送する第2の出力端子とを備え、前記第2のスキャンフリップフロップは、前記組合せ回路へデータ転送する出力端子を備え、スキャンテストのシフト動作中には、前記第1のスキャンフリップフロップの前記第1の出力端子の値は固定値に保持され、前記第2のスキャンフリップフロップの前記出力端子の値は固定値に保持されないことを特徴とする半導体集積回路であって、スキャンテストのシフト動作中に、前記第1のスキャンフリップフロップから前記組合せ回路へのデータ信号が固定されることにより、前記第1のスキャンフリップフロップが転送したデータ信号と、前記第2のスキャンフリップフロップが転送したデータ信号とが伝播しうる前記基本ゲートの出力が固定されることを特徴とする。
また、本発明の請求項3に記載の半導体集積回路は、請求項1又は2記載の半導体集積回路であって、前記第1のスキャンフリップフロップを始点とし、前記複数のスキャンフリップフロップに含まれる1つのスキャンフリップフロップを終点とする経路上の基本ゲート数が、前記第2のスキャンフリップフロップを始点とし、前記複数のスキャンフリップフロップに含まれる1つのスキャンフリップフロップを終点とする経路上の基本ゲート数よりも多いことを特徴とする。
また、本発明の請求項4に記載の半導体集積回路は、請求項1又は2記載の半導体集積回路であって、前記組合せ回路のうち、前記第1のスキャンフリップフロップが駆動する基本ゲート数が、前記第2のスキャンフリップフロップが駆動する基本ゲート数よりも多いことを特徴とする。
また、本発明の請求項5に記載の半導体集積回路は、請求項1又は2記載の半導体集積回路であって、前記組合せ回路のうち、前記第1のスキャンフリップフロップの出力データを固定した場合に出力データが固定される基本ゲート数が、前記第2のスキャンフリップフロップの出力データを固定した場合に出力データが固定される基本ゲート数よりも多いことを特徴とする。
また、本発明の請求項6に記載の半導体集積回路は、請求項1又は2記載の半導体集積回路であって、前記組合せ回路のうち、前記第1のスキャンフリップフロップが駆動する基本ゲートの消費電力が、前記第2のスキャンフリップフロップが駆動する基本ゲートの消費電力よりも多いことを特徴とする。
また、本発明の請求項7に記載の半導体集積回路は、請求項1から6のいずれか1項に記載の半導体集積回路であって、前記スキャンチェーンに対するテストパタンを供給するパタン発生回路を内蔵したことを特徴とする。
また、本発明の請求項8に記載の半導体集積回路は、請求項1から7のいずれか1項に記載の半導体集積回路であって、前記スキャンチェーンから出力されるデータを圧縮する圧縮回路を内蔵したことを特徴とする。
また、本発明の請求項9に記載の半導体集積回路の設計方法は、請求項1又は2記載の半導体集積回路の設計方法であって、前記半導体集積回路を構成している複数の基本ゲートを含む組合せ回路および複数のスキャンフリップフロップの接続情報を含む回路データを生成する工程1と、前記複数のスキャンフリップフロップの中から、1つ以上且つ前記複数のスキャンフリップフロップの総数未満の個数のスキャンフリップフロップを選択する工程2と、スキャンテストのシフト動作中に、前記工程2で選択されたスキャンフリップフロップから前記組合せ回路への出力値が固定されるように前記回路データを修正する工程3を有することを特徴とする。
また、本発明の請求項10に記載の半導体集積回路の設計方法は、請求項1又は2記載の半導体集積回路の設計方法であって、前記半導体集積回路を構成している複数の基本ゲートを含む組合せ回路および複数のスキャンフリップフロップの接続情報を含む回路データを生成する工程1と、前記複数のスキャンフリップフロップの中から、ファンアウトコーンに含まれる基本ゲートの消費電力の総和が大きい順に、1つ以上且つ前記複数のスキャンフリップフロップの総数未満の個数のスキャンフリップフロップを選択する工程2と、スキャンテストのシフト動作中に、前記工程2で選択されたスキャンフリップフロップから前記組合せ回路への出力値が固定されるように前記回路データを修正する工程3を有することを特徴とする。
また、本発明の請求項11に記載の半導体集積回路の設計方法は、請求項1又は2記載の半導体集積回路の設計方法であって、前記半導体集積回路を構成している複数の基本ゲートを含む組合せ回路および複数のスキャンフリップフロップの接続情報を含む回路データを生成する工程1と、前記複数のスキャンフリップフロップの中から、トグル率を用いた消費電力解析によって、消費電力に与える影響が高い順に、1つ以上且つ前記複数のスキャンフリップフロップの総数未満の個数のスキャンフリップフロップを選択する工程2と、スキャンテストのシフト動作中に、前記工程2で選択されたスキャンフリップフロップから前記組合せ回路への出力値が固定されるように前記回路データを修正する工程3を有することを特徴とする。
また、本発明の請求項12に記載の半導体集積回路の設計方法は、請求項1又は2記載の半導体集積回路の設計方法であって、前記半導体集積回路を構成している複数の基本ゲートを含む組合せ回路および複数のスキャンフリップフロップの接続情報を含む回路データを生成する工程1と、前記複数のスキャンフリップフロップの中から、当該スキャンフリップフロップの出力データを固定した場合に、出力データが固定される組合せ論理素子数が大きい順に、1つ以上且つ前記複数のスキャンフリップフロップの総数未満の個数のスキャンフリップフロップを選択する工程2と、スキャンテストのシフト動作中に、前記工程2で選択されたスキャンフリップフロップから前記組合せ回路への出力値が固定されるように前記回路データを修正する工程3を有することを特徴とする。
また、本発明の請求項13に記載の半導体集積回路の設計方法は、請求項9から12のいずれか1項に記載の半導体集積回路の設計方法であって、前記工程2は、前記半導体集積回路を構成する複数のスキャンフリップフロップ毎に消費電力への影響を見積もる工程2−1と、消費電力への影響が見積もられた全スキャンフリップフロップの中から、消費電力への影響が最も高いと判断されたスキャンフリップフロップを選択する工程2−2と、既に選択されたスキャンフリップフロップの出力を固定することにより、所望の消費電力値まで削減できたかを判定する工程2−3と、未だ選択されていないスキャンフリップフロップの中から、消費電力に対する影響が最も高いと判断されたスキャンフリップフロップを選択する工程2−4とからなり、前記工程2−3の判定結果がYesの場合、前記工程2を終了し、前記判定結果がNoの場合、前記工程2−4を行うことを特徴とする
以上により、スキャンテストでのシフト動作時に消費電力に大きく影響する素子として選択されたスキャンフリップフロップを、スキャンテストのシフト中は組合せ回路への出力値が固定されるように、修正することができる。
以上のように本発明によれば、スキャンテストでのシフト動作時に消費電力に大きく影響する素子として選択されたスキャンフリップフロップを、スキャンテストのシフト中は組合せ回路への出力値が固定されるように、修正することができる。
以上のため、ファンクション動作速度に影響を与えることなく、また回路面積の増大を最低限に抑えつつ、スキャンテストおよびロジックBIST動作中の消費電力を抑えることができる。
以下、本発明の実施の形態を示す半導体集積回路およびその設計方法について、図面を参照しながら具体的に説明する。
(実施の形態1)
本発明の実施の形態1の半導体集積回路およびその設計方法を説明する。
図1は本実施の形態1の半導体集積回路の構成を示す回路図である。図1において、102、103、104、105、106、107はスキャンフリップフロップである。スキャンフリップフロップ104、103、102、107、106、105には、それぞれ、スキャンテストのシフト動作中に入力信号を受けるための入力端子DTと、ファンクション動作中、もしくはスキャンテストのキャプチャー動作中に入力信号を受けるための入力端子Dと、スキャンイネーブル端子を受けるための入力端子NTと、クロック信号入力用の入力端子CKと、データ出力端子Qがある。
これらスキャンフリップフロップ104、103、102、107、106、105は、順次直列に接続されていてスキャンチェーンを構成している。このスキャンチェーンは、具体的には以下のように接続されて構成されている。スキャンフリップフロップ104、103、102、107、106のQ端子は、それぞれ、スキャンフリップフロップ103、102、107、106、105のDT端子と接続されている。また、スキャンフリップフロップ105のQ端子はスキャンチェーンのスキャンアウト端子に接続されている。また、スキャンフリップフロップ104のDT端子はスキャンチェーンのスキャンイン端子に接続されている。以上のようにスキャンフリップフロップ102、103、104、105、106、107が接続されることで、スキャンチェーンが構成される。
101は組合せ回路であり、a、b、cは組合せ回路101の入力で、d、e、fは組合せ回路101の出力である。108、109、110は2入力ANDゲートである。ANDゲート108、109、110は入力端子AおよびB、出力端子Yをもつ。111はインバータである。インバータ111は入力端子Aと出力端子Yをもつ。112、113はORゲートである。ORゲート112、113もまた、入力端子AおよびB、出力端子Yをもつ。この組合せ回路101は、ANDゲート108、109、110とインバータ111と、ORゲート112、113で構成されている。
これらの接続関係について、以下に説明する。
ANDゲート108の入力端子A、Bは、それぞれ、組合せ回路101の入力a、bに接続されている。ANDゲート108の出力端子YはANDゲート109の入力端子Aに接続されている。ANDゲート109の入力端子A、Bは、それぞれ、ANDゲート108の出力端子Y、ORゲート112の出力端子Yに接続されている。ANDゲート109の出力端子Yは、ANDゲート110の入力端子Aと組合せ回路101の出力dに接続されている。ANDゲート110の入力端子A、Bは、それぞれ、ANDゲート109の出力端子Y、ORゲート113の出力端子Yと接続されている。ANDゲート110の出力端子Yは、組合せ回路101の出力eと接続されている。インバータ111の入力端子Aは組合せ回路101の入力bと接続されている。インバータ111の出力端子YはORゲート112の入力端子Aと接続されている。ORゲート112の入力端子A、Bは、それぞれ、インバータ111の出力端子Y、組合せ回路101の入力cと接続されている。ORゲート112の出力端子Yは、ANDゲート109の入力BとORゲート113の入力端子Aに接続されている。ORゲート113の入力端子A、Bは、それぞれ、ORゲート112の出力端子Y、組合せ回路101の入力cと接続されている。ORゲート113の出力端子Yは、ANDゲート110の入力端子Bと組合せ回路101の出力fと接続されている。
114はANDゲートであり、入力端子A、Bと出力端子Yをもつ。スキャンフリップフロップ102、103、104のQ端子は、それぞれ、組合せ回路101の入力a、ANDゲート114の入力端子A、組合せ回路101の入力cと接続されている。スキャンフリップフロップ105、106、107のD端子は、それぞれ、組合せ回路の出力d、e、fと接続されている。ANDゲート114の入力端子Aは、スキャンフリップフロップ103の出力端子Qに接続されている。ANDゲート114の出力端子Yは、組合せ回路101の入力bに接続されている。ANDゲート114の入力端子Bは、スキャンイネーブル信号NT(シフト動作中=「1」、キャプチャー動作中=「0」)の反転信号/NT(シフト動作中=「0」、キャプチャー動作中=「1」)が接続される。
以上の構成からもわかるように、ANDゲート114は、スキャンフリップフロップ104の出力端子Qと組合せ回路101の間にあり、スキャンテストのシフト動作中、スキャンフリップフロップ104から組合せ回路101へ伝達されるデータを「0」に固定することができる。
半導体集積回路の単位時間あたりの消費電力は、その回路内部において、「0」から「1」、もしくは「1」から「0」に変化するノード数に比例する。回路の内部ノードをAND、OR、インバータなどの基本ゲートの出力端子と定義した場合、本実施の形態の回路構成をとることにより、スキャンテストのシフト動作中は、組合せ回路内部の全てのノードを固定することができ、消費電力を抑えることができる。
また、このような回路構成をとることにより、従来技術と同等の効果を、より少ない面積オーバーヘッドで実現することができる。
なお、本実施の形態1の半導体集積回路において、スキャンチェーンに対するテストパタン供給が、組込み自己テスト手法(いわゆるBIST手法)で用いられているように、半導体集積回路に内蔵されているパタン発生回路から行われていてもよい。
また、本実施の形態1の半導体集積回路において、スキャンチェーンから出力されるデータが、組込み自己テスト手法(いわゆるBIST手法)で用いられているように、半導体集積回路に内蔵されている出力圧縮回路に取り込まれ、圧縮されるような構成になっていてもよい。
次に、図1に示す本実施の形態1の半導体集積回路の設計手法を、図4を用いて説明する。
図4において、301は回路データ(ネットリスト)を生成する工程である。工程301で生成する回路データは、半導体集積回路を構成している複数の組合せ論理素子、および複数のフリップフロップの接続情報を含んでいる。302は、工程301で生成した回路データ内に含まれるフリップフロップを1つ以上選択する工程である。工程302で選択されるスキャンフリップフロップは、スキャンテストのシフト動作時において消費電力に与える影響が大きいものである。303は回路データ(ネットリスト)を修正する工程である。工程303では、工程302で選択されたフリップフロップに対して、スキャンテストのシフト動作中に組合せ回路への出力値が固定されるように回路データを修正する。
ここで説明する半導体集積回路の設計方法は、工程301、工程302、工程303で構成される。また、工程302は以下の工程に分割される。すなわち、回路中の各スキャンフリップフロップに消費電力に対する影響を評価する工程302aと、最も消費電力に対する影響が大きいスキャンフリップフロップを選択する工程302bと、選択されたスキャンフリップフロップの出力を固定することにより、所望の消費電力まで削減できるかを判定する工程302cと、未だ選択されていないスキャンフリップフロップの中から、最も消費電力に対する影響が大きいスキャンフリップフロップを選択する工程302dである。
これらの工程は以下の順番で実行される。まず、工程302a、302b、302cが順番に実行される。工程302cの判定結果がYesの場合、処理は終了し、判定結果がNoの場合、工程302dを実行し、その実行後、工程302cへ戻る。
ここで、図4に示す半導体集積回路の設計方法によって、図1に示す半導体集積回路を設計する流れを具体的に示す。図4において、工程301は、市販の論理合成ツールなどのEDAツールで容易に実行できるため、ここでの詳細な説明は省略する。図5は、工程301で生成された回路データ(ネットリスト)をスケマティック表現したものである。401は組合せ回路である。
a、b、cは組合せ回路401の入力であり、d、e、fは組合せ回路401の出力である。408、409、410は2入力ANDゲートである。ANDゲート408、409、410は入力端子AおよびB、出力端子Yをもつ。411はインバータである。インバータ411は入力端子Aと出力端子Yをもつ。412、413はORゲートである。ORゲート412、413も、また入力端子AおよびB、出力端子Yをもつ。組合せ回路401は、ANDゲート408、409、410とインバータ411と、ORゲート412、413で構成されている。
以下、これらの接続関係について説明する。
ANDゲート408の入力端子A、Bは、それぞれ、組合せ回路401の入力a、bに接続されている。ANDゲート408の出力端子YはANDゲート409の入力端子Aに接続されている。ANDゲート409の入力端子A、Bは、それぞれ、ANDゲート408の出力端子Y、ORゲート412の出力端子Yに接続されている。ANDゲート409の出力端子Yは、ANDゲート410の入力端子Aと組合せ回路401の出力dに接続されている。ANDゲート410の入力端子A、Bは、それぞれ、ANDゲート409の出力端子Y、ORゲート413の出力端子Yと接続されている。ANDゲート410の出力端子Yは、組合せ回路401の出力eと接続されている。インバータ411の入力端子Aは組合せ回路401の入力bと接続されている。インバータ411の出力端子YはORゲート412の入力端子Aと接続されている。ORゲート412の入力端子A、Bは、それぞれ、インバータ411の出力端子Y、組合せ回路401の入力cと接続されている。ORゲート412の出力端子Yは、ANDゲート409の入力端子BとORゲート413の入力端子Aに接続されている。ORゲート413の入力端子A、Bは、それぞれ、ORゲート412の出力端子Y、組合せ回路401の入力cと接続されている。ORゲート413の出力端子YはANDゲート410の入力端子Bと組合せ回路401の出力fと接続されている。
402、403、404、405、406、407はスキャンフリップフロップである。これらスキャンフリップフロップ404、403、402、407、406、405は直列に接続されていて、スキャンチェーンを構成している。
このスキャンチェーンは、具体的には以下のように接続されて構成されている。
スキャンフリップフロップ404、403、402、407、406のQ端子は、それぞれ、スキャンフリップフロップ403、402、407、406、405のDT端子と接続されている。また、スキャンフリップフロップ405のQ端子はスキャンチェーンのスキャンアウト端子に接続されている。また、スキャンフリップフロップ404のDT端子はスキャンチェーンのスキャンイン端子に接続されている。
以上のようにスキャンフリップフロップ402、403、404、405、406、407が接続されることで、スキャンチェーンが構成される。
また、スキャンフリップフロップ402、403、404のQ端子は、それぞれ、組合せ回路401の入力a、b、cと接続されている。図5では図示されていないが、フリップフロップ405、406、407のQ端子は、同一半導体集積回路内にある他の組合せ回路部分と接続されている。スキャンフリップフロップ405、406、407のD端子は、それぞれ、組合せ回路の出力d、e、fと接続されている。図5では図示されていないが、フリップフロップ402、403、404のD端子は、半導体集積回路内にある他の組合せ回路部分と接続されている。
図5に示す回路に対して、工程302を実行し、スキャンテストのシフト動作時において、消費電力に与える影響が大きいフリップフロップを1つ以上選択する。
まず、工程302aで回路中の各スキャンフリップフロップに対して、消費電力に対する影響を見積もる。一般的に、半導体集積回路の単位時間あたりの消費電力は、単位時間当りに、「0」から「1」もしくは「1」から「0」に変化する回路内部のノード数に比例する。ここで回路内部のノードをAND、OR、インバータなどの基本ゲートの出力端子と定義する。
図5において、回路中の各スキャンフリップフロップの出力値を固定した場合に消費電力に与える影響を評価する。スキャンフリップフロップ402の出力端子Qの値を「0」に固定した場合、ANDゲート408、ANDゲート409、ANDゲート410の出力端子、すなわち3つのノードの値を固定できる。また、スキャンフリップフロップ403の出力端子Qの値を「0」に固定した場合、ANDゲート408、409、410、インバータ411、ORゲート412、413の出力端子、すなわち6つのノードの値を固定することができる。スキャンフリップフロップ404の出力端子Qの値を「1」に固定した場合、ORゲート412、413の出力端子、すなわち2つのノードの値を固定することができる。スキャンフリップフロップ405、406、407の出力端子を固定しても、固定できるノードはない。
工程302bで、消費電力に対する影響が最も高いスキャンフリップフロップとして、スキャンフリップフロップ403を選択する。工程302cで目標の消費電力削減が達成できたと判断した場合には、工程302を終了する。
次に工程303で回路データの修正を行う。具体的には、選択されたフリップフロップ403のQ端子と組合せ回路401との間に、2入力ANDゲートを挿入することにより図1に示す回路に修正される。また、挿入されたANDゲートの第1の入力はスキャンフリップフロップ403のQ端子と接続され、第2の入力はスキャンイネーブル信号NTの反転信号/NTが接続される。
以上のような方法により図1に示す半導体集積回路は設計される。なお、図4の工程302において選択されるスキャンフリップフロップの数は複数であってもよい。このとき選択されるフリップフロップ数は、目標となる消費電力を達成できるまで選択される。またこのとき、選択されるスキャンフリップフロップの数は、許容できる面積の増分に制限されてあってもよい。
また、選択されたスキャンフリップフロップが、回路全体の動作速度を決定するフリップフロップ間経路の始点となるスキャンフリップフロップであった場合は、選択を取りやめることがあっても良い。
以上の方法により設計された半導体集積回路は、面積増大および動作速度低下を抑制しつつ、スキャンテストおよびロジックBISTでのスキャンシフト時の消費電力を低減することができる。
(実施の形態2)
本発明の実施の形態2の半導体集積回路およびその設計方法を説明する。
図2は本実施の形態2の半導体集積回路の構成を示す回路図である。図2において、202、203、204、205、206、207はスキャンフリップフロップである。スキャンフリップフロップ204、202、207、206、205は、それぞれ、スキャンテストのシフト動作中に入力信号を受けるための入力端子DTと、ファンクション動作中もしくはスキャンテストのキャプチャー動作中に入力信号を受けるための入力端子Dと、スキャンイネーブル信号を受けるための入力端子NTと、クロック信号入力用の入力端子CKと、データ出力端子Qとを備えるスキャンフリップフロップである。
スキャンフリップフロップ203は、スキャンテストのシフト動作中に入力信号を受けるための入力端子DTと、ファンクション動作中もしくはスキャンテストのキャプチャー動作中に入力信号を受けるための入力端子Dと、スキャンイネーブル信号を受けるための入力端子NTと、クロック信号入力用の入力端子CKと、スキャンテストのシフト動作中に信号値が固定される機能を備えるデータ出力端子Qと、スキャンデータ信号を出力するための出力端子SOとを備えるスキャンフリップフロップである。
スキャンフリップフロップ203の具体的な回路構成例を、図10または図11に示す。これらの回路についての詳細な説明は従来技術の説明で行ったため、ここでの説明は省略する。ただし、図2に示す本実施の形態2に用いる場合には、HOLD端子をNT端子と共通化して使用する必要がある。NT端子は、スキャンテストのシフトモードとキャプチャーモードを切り替えるためのスキャンイネーブル信号を受ける。この信号は、シフト動作中=1、キャプチャー動作中=0となる。
これらスキャンフリップフロップ204、203、202、207、206、205は直列に接続されていて、スキャンチェーンを構成している。このスキャンチェーンは具体的には、以下のように接続されて構成されている。
スキャンフリップフロップ204、202、207、206のQ端子は、それぞれ、スキャンフリップフロップ203、207、206、205のDT端子と接続されている。スキャンフリップフロップ203のSO端子はスキャンフリップフロップ202のDT端子と接続されている。また、スキャンフリップフロップ205のQ端子はスキャンチェーンのスキャンアウト端子に接続されている。また、スキャンフリップフロップ204のDT端子はスキャンチェーンのスキャンイン端子に接続されている。
以上のように、スキャンフリップフロップ202、203、204、205、206、207が接続されることで、スキャンチェーンが構成される。
201は組合せ回路である。a、b、cは組合せ回路201の入力であり、d、e、fは組合せ回路201の出力である。208、209、210は2入力ANDゲートである。ANDゲート208、209、210は入力端子AおよびB、出力端子Yをもつ。211はインバータである。インバータ211は入力端子Aと出力端子Yをもつ。212、213はORゲートである。ORゲート212、213もまた、入力端子AおよびB、出力端子Yをもつ。組合せ回路201は、ANDゲート208、209、210とインバータ211と、ORゲート212、213で構成されている。
これらの接続関係について以下に説明する。
ANDゲート208の入力端子A、Bは、それぞれ、組合せ回路201の入力a、bに接続されている。ANDゲート208の出力端子YはANDゲート209の入力端子Aに接続されている。ANDゲート209の入力端子A、Bは、それぞれ、ANDゲート208の出力端子Y、ORゲート212の出力端子Yに接続されている。ANDゲート209の出力端子Yは、ANDゲート210の入力端子Aと組合せ回路201の出力dに接続されている。ANDゲート210の入力端子A、Bは、それぞれ、ANDゲート209の出力端子Y、ORゲート213の出力端子Yと接続されている。ANDゲート210の出力端子Yは、組合せ回路201の出力eと接続されている。インバータ211の入力端子Aは組合せ回路201の入力bと接続されている。インバータ211の出力端子YはORゲート212の入力端子Aと接続されている。ORゲート212の入力端子A、Bは、それぞれ、インバータ211の出力端子Y、組合せ回路201の入力cと接続されている。ORゲート212の出力端子Yは、ANDゲート209の入力端子BとORゲート213の入力端子Aに接続されている。ORゲート213の入力端子A、Bは、それぞれ、ORゲート212の出力端子Y、組合せ回路201の入力cと接続されている。ORゲート213の出力端子YはANDゲート210の入力端子Bと組合せ回路201の出力fと接続されている。スキャンフリップフロップ202、203、204のQ端子は、それぞれ、組合せ回路201の入力a、b、cと接続される。スキャンフリップフロップ205、206、207のD端子は、それぞれ、組合せ回路201の出力d、e、fと接続されている。
スキャンフリップフロップ203には、前述したように、図10または図11に示されている回路(HOLD信号はNT信号と共通化されている)が使用されているので、そのQ出力端子の信号値は、入力端子NTに受けるスキャンイネーブル信号の値が1の時、すなわちスキャンテストのシフトモード時には0に固定される。
一般的に半導体集積回路の単位時間あたりの消費電力は、「0」から「1」もしくは「1」から「0」に変化する回路内部のノード数に比例する。回路の内部ノードをAND、OR、インバータなどの基本ゲートの出力端子と定義した場合、この回路構成をとることにより、スキャンテストのシフト動作中は、組合せ回路内部の全てのノードを固定することができ、消費電力を抑えることができる。
また、このような回路構成をとることにより、従来技術と同等の効果を、より少ない面積オーバーヘッドで実現することができる。
なお、本実施の形態2において、スキャンテストのシフト時に、組合せ回路へ伝達されるデータが固定されるように構成されたスキャンフリップフロップ203は、図3に示すように、組合せ回路へ伝達される第1の出力端子Q端子と、組合せ回路へQ端子の反転のデータを伝達する第2の出力端子/Q端子と、スキャンチェーン内の次段のスキャンフリップフロップへデータを伝達する第3の出力端子SOとを備えたスキャンフリップフロップであっても良い。
スキャンフリップフロップ203として、図3のQ端子と/Q端子を備えたスキャンフリップフロップを使用することにより、組合せ回路分の論理の圧縮を容易にすることができる。例えば、/Q端子がないスキャンフリップフロップを使用した場合において、Q端子の直後にインバータが接続されるような回路構成は、/Q端子のあるスキャンスリップフロップを使用することにより、インバータを削減することが可能となる。
また、本実施の形態2のスキャンフリップフロップ204が、図3に示すスキャンフリップフロップに置き換えられている場合においても、スキャンチェーンに対するテストパタン供給が、組込み自己テスト手法(いわゆるBIST手法)で用いられているように、半導体集積回路に内蔵されているパタン発生回路から行われていてもよい。
また、本実施の形態2のスキャンフリップフロップ203が、図3に示すスキャンフリップフロップに置き換えられている場合においても、スキャンチェーンから出力されるデータが、組込み自己テスト手法(いわゆるBIST手法)で用いられているように、半導体集積回路に内蔵されている出力圧縮回路に取り込まれ、圧縮されるような構成になっていてもよい。
図2に示す本実施の形態2の半導体集積回路の設計方法を図4に示す。なお、図4の各工程については、実施の形態1で既に説明したので、ここでの説明は省略する。ここで、図4に示す半導体集積回路の設計手法によって、図2に示す半導体集積回路を設計する流れを具体的に示す。工程301は、市販の論理合成ツールなどのEDAツールで容易に実行できるため、詳細な説明は省略する。
図5に示す回路に対して、工程302を実施し、スキャンテストのシフト動作時において消費電力に与える影響が大きいフリップフロップを1つ以上選択する。実施の形態1と同様の手順で、スキャンフリップフロップ403を選択する。
次に工程303で回路修正を行う。具体的には、スキャンフリップフロップ403を、図10または図11または図3に示すスキャンフリップフロップに置き換える。ただし、ここで使用されるスキャンフリップフロップは、HOLD端子への信号がNT端子への信号に共通化されている。
以上のような設計方法により、図2に示すような半導体集積回路が設計される。なお、図4の工程302において選択されるスキャンフリップフロップの数は複数であってもよい。このとき選択されるフリップフロップ数は、目標となる消費電力を達成できるまで選択される。またこのとき、選択されるスキャンフリップフロップの数は、許容できる面積の増分に制限されてもよい。
また、選択されたスキャンフリップフロップが、回路全体の動作速度を決定するフリップフロップ間経路の始点となるスキャンフリップフロップであった場合は、選択を取りやめることがあっても良い。
以上の手法により設計された半導体集積回路は、面積増大、速度低下を抑制しつつ、スキャンテストおよびロジックBIST時のスキャンシフト時の消費電力を低減することができる。
(実施の形態3)
本発明の実施の形態3の半導体集積回路およびその設計方法を説明する。
図6は本実施の形態3の半導体集積回路の構成を示す回路図である。図6において、502、503、504、505、506、507はスキャンフリップフロップである。スキャンフリップフロップ504、503、502、507、506、505は、それぞれ、スキャンテストのシフト動作中に入力信号を受けるための入力端子DTと、ファンクション動作中もしくはスキャンテストのキャプチャー動作中に入力信号を受けるための入力端子Dと、スキャンイネーブル信号を受けるための入力端子NTと、クロック信号入力用の入力端子CKと、データ出力端子Qとを備えている。
これらスキャンフリップフロップ504、503、502、507、506、505は直列に接続されていて、スキャンチェーンを構成している。このスキャンチェーンは具体的には以下のように接続されて構成されている。
スキャンフリップフロップ504、503、502、507、506のQ端子は、それぞれ、スキャンフリップフロップ503、502、507、506、505のDT端子と接続されている。また、スキャンフリップフロップ505のQ端子はスキャンチェーンのスキャンアウト端子に接続されている。また、スキャンフリップフロップ504のDT端子はスキャンチェーンのスキャンイン端子に接続されている。
以上のように、スキャンフリップフロップ502、503、504、505、506、507が接続されることで、スキャンチェーンが構成される。501は組合せ回路である。a、b、c、gは組合せ回路501の入力であり、d、e、fは組合せ回路501の出力である。508、509、510は2入力ANDゲートである。ANDゲート508、509、510は入力端子AおよびB、出力端子Yをもつ。511はNORゲートである。NORゲート511は入力端子AおよびB、出力端子Yをもつ。512、513はORゲートである。ORゲート512、513もまた、入力端子AおよびB、出力端子Yをもつ。組合せ回路501は、ANDゲート508、509、510とNORゲート511と、ORゲート512、513とで構成されている。
これらの接続関係について以下に説明する。
ANDゲート508の入力端子A、Bは、それぞれ、組合せ回路501の入力a、bに接続されている。ANDゲート508の出力端子YはANDゲート509の入力端子Aに接続されている。ANDゲート509の入力端子A、Bは、それぞれ、ANDゲート508の出力端子Y、ORゲート512の出力端子Yに接続されている。ANDゲート509の出力端子Yは、ANDゲート510の入力端子Aと組合せ回路501の出力dに接続されている。ANDゲート510の入力端子A、Bは、それぞれ、ANDゲート509の出力端子Y、ORゲート513の出力端子Yと接続されている。ANDゲート510の出力端子Yは、組合せ回路501の出力eと接続されている。NORゲート511の入力端子A、Bは組合せ回路501の入力b、gと接続されている。NORゲート511の出力端子YはORゲート512の入力端子Aと接続されている。ORゲート512の入力端子A、Bは、それぞれ、NORゲート511の出力端子Y、組合せ回路501の入力cと接続されている。ORゲート512の出力端子Yは、ANDゲート509の入力端子BとORゲート513の入力端子Aに接続されている。ORゲート513の入力端子A、Bは、それぞれ、ORゲート512の出力端子Y、組合せ回路501の入力cと接続されている。ORゲート513の出力端子YはANDゲート510の入力端子Bと組合せ回路501の出力fと接続されている。スキャンフリップフロップ502、503、504のQ端子は、それぞれ、組合せ回路501の入力a、b、cと接続されている。スキャンフリップフロップ505、506、507のD端子は、それぞれ、組合せ回路の出力d、e、fと接続されている。組合せ回路501の入力gは、スキャンフリップフロップ502、503、504、505、506、507の端子NTへのスキャンイネーブル信号(シフト動作中=1、キャプチャー動作中=0)が接続される。
以上の構成からもわかるように、スキャンテストのシフト動作中、すなわちスキャンイネーブル信号NT=1の時は、NORゲート511の出力端子の信号値は「0」に固定される。従って、組合せ回路501の内部ノードをAND、OR、NORなどの基本ゲートの出力端子と定義した場合、図6に示す半導体集積回路は、スキャンテストのシフト動作時に、内部の組合せ回路部分の、1つの特定の内部ノード信号を固定するための回路を備えている。
一般的に半導体集積回路の単位時間あたりの消費電力は、「0」から「1」もしくは「1」から「0」に変化する回路内部のノード数に比例するが、回路の内部ノードをAND、OR、NORなどの基本ゲートの出力端子と定義した場合、図6の回路構成をとることにより、スキャンテストのシフト動作中は、組合せ回路内部の特定のノード、すなわちNORゲート412の出力端子の信号値を固定することができ、消費電力を抑えることができる。
図6に示す本実施の形態3では、シフト動作中に固定できる内部ノード数が、実施の形態1または2で固定できる内部ノードに比べて少ないため、低減できる消費電力は、実施の形態1または実施の形態2で低減できる消費電力に比べて小さい。
しかしながら、スキャンフリップフリップ503を始点として、ANDゲート508、ANDゲート509を経由してスキャンフリップフリップ505を終点とする経路が回路の動作速度を決定している経路(いわゆるクリティカルパス)である場合においては、図1に示す実施の形態1、または実施の形態2では、回路の動作速度を低下させてしまうが、図6に示す本実施の形態3は、回路の動作速度を低下させることなく、消費電力を低減できる。
また、本実施の形態3において、スキャンチェーンに対するテストパタン供給が、組込み自己テスト手法(いわゆるBIST手法)で用いられているように、半導体集積回路に内蔵されているパタン発生回路から行われていてもよい。
また、本実施の形態3において、スキャンチェーンから出力されるデータが、組込み自己テスト手法(いわゆるBIST手法)で用いられているように、半導体集積回路に内蔵されている出力圧縮回路に取り込まれ、圧縮されるような構成になっていてもよい。
図6に示す本実施の形態3の半導体集積回路の設計方法を図7に示す。図7において、601は、回路データを生成する工程である。工程601で生成する回路データは、半導体集積回路を構成している複数の組合せ論理素子および複数のフリップフロップの接続を含んでいる。602は、601で生成した回路データ内に含まれる内部ノードを1つ以上選択する工程である。選択する内部ノードは、スキャンテストのシフト動作中に単位時間当たりの信号変化回数の大きい内部ノードである。603は回路データを修正する工程である。工程603では、工程602で選択された内部ノードがスキャンテストのシフト中に組合せ回路への出力値が固定されるように、回路データを修正する。
以上のように、ここで説明する半導体集積回路の設計方法は、工程601、工程602、工程603で構成される。
また、工程602は以下の工程に分割される。すなわち回路中の各ノードのトグル率を計算する工程602aと、最もトグル率の高いノードを選択する工程602bと、選択されたノードを固定することにより、所望の消費電力まで削減できるかを判定する工程602cと、未だ選択されていないノードの中から、最もトグル率の高いノードを選択する工程602dである。
これらの工程は以下の順番で実行される。まず602a、602b、602cが順番に実行される。602cの判定結果がYesの場合、処理は終了し、判定結果がNoの場合、602dを実行する。602dの実行後、602cへ戻る。
ここで、図7に示す半導体集積回路の設計方法によって、図6に示す半導体集積回路を設計する流れを具体的に示す。工程601は、市販の論理合成ツールなどのEDAツールで容易に実行できるため、ここでの詳細な説明は省略する。図5は、工程601で生成された回路データ(ネットリスト)をスケマティック表現したものである。図5の構成に関する説明は前述しているため省略する。
図5に示す回路に対して、工程602を実行し、スキャンテストのシフト動作時において、単位時間当たりの信号変化回数の大きい内部ノードを1つ選択する。まず、工程602aで各ノードのトグル率を求める。ここでスキャンテスト信号{011011}がスキャンテストのシフト動作中に、スキャンイン端子からシリアルに入力され、6クロックで、スキャンチェーンを構成する6つスキャンフリップフロップ404、403、402、407、406、405にセットされるとする。このときの各スキャンフリップフロップの値、および組合せ回路内の各ノードの値の遷移を図8に示す。
図8に示す表中の「変化回数」は、スキャンテスト信号{011011}を全スキャンフリップフロップに印加する間の、組合せ回路401内の各内部ノードの信号変化の回数である。従って、各内部ノードのトグル率は、ANDゲート408のY端子が0.5回/サイクル、ANDゲート409のY端子が0回/サイクル、ANDゲート410のY端子が0回/サイクル、インバータ411のY端子が0.67回/サイクル、ORゲート412のY端子が0.5回/サイクル、ORゲート413のY端子が0.5回/サイクルである。
工程602bで最もトグル率の高いノードとして、インバータ411の出力端子Yが選択される。工程602cで、インバータ411の出力端子Yを固定することで、目標の消費電力まで削減されると判定され、工程602を終了する。
次に工程603で、工程602で選択された内部ノードが、スキャンテストのシフト動作中に値が固定されるように回路修正を行う。具体的には、インバータ411を、入力端子A、Bと出力端子Yを持っている2入力NORゲートに置き換える。このとき、2入力NORゲートの1つの入力端子Aは組合せ回路401の入力bと接続され、他方の入力Bはスキャンイネーブル信号NTと接続され、インバータ411の出力端子YはORゲート412の入力端子Aに接続される。
以上のような方法により図6に示すような半導体集積回路は設計される。
なお、図7の工程602において選択される内部ノードの数は複数であってもよい。このとき選択される内部ノード数は、目標となる消費電力を達成できるまで選択される。またこのとき、選択される内部ノードの数は、許容できる面積の増分に制限されてもよい。また、選択された内部ノードが、回路全体の動作速度を決定するフリップフロップ間経路上にある場合、選択を取りやめることがあっても良い。
以上の手法により設計された半導体集積回路は、面積増大、速度低下を抑制しつつ、スキャンテストおよびロジックBIST時のスキャンシフト時の消費電力を低減することができる。
本発明の半導体集積回路およびその設計方法は、ファンクション動作速度に影響を与えることなく、また回路面積の増大を最低限に抑えつつ、スキャンテストおよびロジックBIST動作中の消費電力を抑えることができるものであり、テスト回路を搭載した半導体集積回路等の設計技術に適用できる。
本発明の実施の形態1の半導体集積回路を示す回路図 本発明の実施の形態2の半導体集積回路を示す回路図 同実施の形態2の半導体集積回路におけるスキャンフリップフロップの内部回路図 本発明の実施の形態1の半導体集積回路の設計方法を示すフロー図 同実施の形態1の半導体集積回路の設計方法で生成される回路データによる回路図 本発明の実施の形態3の半導体集積回路を示す回路図 同実施の形態3の半導体集積回路の設計方法を示すフロー図 同実施の形態3の半導体集積回路において図5に示す回路の対応説明図 従来の半導体集積回路を示す回路図 同従来例の半導体集積回路におけるフリップフロップ回路の構成例(1)を示す回路図 同従来例の半導体集積回路におけるフリップフロップ回路の構成例(2)を示す回路図
符号の説明
101、201、401、501、10 組合せ回路
102〜107、202〜207、402〜407、502〜507、11A〜11F スキャンフリップフロップ
108〜110、114、208〜210、408〜410、508〜510 ANDゲート
111、211、411 インバータ
112〜113、212〜213、412〜413、512〜513 ORゲート
301 (実施の形態1の)工程1
302 (実施の形態1の)工程2
303 (実施の形態1の)工程3
511 NORゲート
601 (実施の形態3の)工程1
602 (実施の形態3の)工程2
603 (実施の形態3の)工程3
21 MUX
22、23、25 ラッチ
24 ANDゲート
31 スキャンフリップフロップ
32 ANDゲート

Claims (13)

  1. 複数のスキャンフリップフロップが直列に接続されたスキャンチェーンと、
    複数の基本ゲートを含む組合せ回路とを有し、
    スキャンテストのシフト動作時は、前記スキャンチェーン内をシリアルにデータ転送し、ファンクション動作時もしくはスキャンテストのキャプチャー動作時は、前記組合せ回路を介して、前記複数のスキャンフリップフロップ間でデータ転送を行うように構成された半導体集積回路であって、
    前記スキャンチェーンは前記組合せ回路へデータ信号を転送する第1のスキャンフリップフロップ及び前記組合せ回路へデータ信号を転送する第2のスキャンフリップフロップを具備し、
    前記複数の基本ゲートには、前記第1のスキャンフリップフロップが転送したデータ信号と、前記第2のスキャンフリップフロップが転送したデータ信号の双方が伝播しうる基本ゲートが含まれ、
    前記第1のスキャンフリップフロップの出力端子と前記組合せ回路との間に、前記スキャンテストのシフト動作中は前第1のスキャンフリップフロップから前記組合せ回路へのデータ信号を固定値に保持するための回路を備え
    前記第2のスキャンフリップフロップの出力端子と前記組合せ回路との間に前記スキャンテストのシフト動作中は前記第2のスキャンフリップフロップから前記組合せ回路へのデータ信号を固定値に保持するための回路を備えないことを特徴とする半導体集積回路であって、
    スキャンテストのシフト動作中に、前記第1のスキャンフリップフロップから前記組合せ回路へのデータ信号が固定されることにより、前記第1のスキャンフリップフロップが転送したデータ信号と、前記第2のスキャンフリップフロップが転送したデータ信号とが伝播しうる前記基本ゲートの出力が固定されることを特徴とする半導体集積回路。
  2. 複数のスキャンフリップフロップが直列に接続されたスキャンチェーンと、
    複数の基本ゲートを含む組合せ回路とを有し、
    スキャンテストのシフト動作時は、前記スキャンチェーン内をシリアルにデータ転送し、ファンクション動作時もしくはスキャンテストのキャプチャー動作時は、前記組合せ回路を介して、前記複数のスキャンフリップフロップ間でデータ転送を行うように構成された半導体集積回路であって、
    前記スキャンチェーンは前記組合せ回路へデータ信号を転送する第1のスキャンフリップフロップ及び前記組合せ回路へデータ信号を転送する第2のスキャンフリップフロップを具備し、
    前記複数の基本ゲートには、前記第1のスキャンフリップフロップが転送したデータ信号と、前記第2のスキャンフリップフロップが転送したデータ信号の双方が伝播しうる基本ゲートが含まれ、
    前記第1のスキャンフリップフロップは、前記ファンクション動作時もしくはスキャンテストのキャプチャー動作時に、前記組合せ回路へデータ転送する第1の出力端子と、
    前記スキャンテストのシフト動作時に、前記スキャンチェーン内の次段のスキャンフリップフロップへデータ転送する第2の出力端子とを備え、
    前記第2のスキャンフリップフロップは、前記組合せ回路へデータ転送する出力端子を備え、
    スキャンテストのシフト動作中には、前記第1のスキャンフリップフロップの前記第1の出力端子の値は固定値に保持され、前記第2のスキャンフリップフロップの前記出力端子の値は固定値に保持されないことを特徴とする半導体集積回路であって、
    スキャンテストのシフト動作中に、前記第1のスキャンフリップフロップから前記組合せ回路へのデータ信号が固定されることにより、前記第1のスキャンフリップフロップが転送したデータ信号と、前記第2のスキャンフリップフロップが転送したデータ信号とが伝播しうる前記基本ゲートの出力が固定されることを特徴とする半導体集積回路。
  3. 請求項1又は2記載の半導体集積回路であって、
    前記第1のスキャンフリップフロップを始点とし、前記複数のスキャンフリップフロップに含まれる1つのスキャンフリップフロップを終点とする経路上の基本ゲート数が、前記第2のスキャンフリップフロップを始点とし、前記複数のスキャンフリップフロップに含まれる1つのスキャンフリップフロップを終点とする経路上の基本ゲート数よりも多いことを特徴とする半導体集積回路。
  4. 請求項1又は2記載の半導体集積回路であって、
    前記組合せ回路のうち、前記第1のスキャンフリップフロップが駆動する基本ゲート数が、前記第2のスキャンフリップフロップが駆動する基本ゲート数よりも多いことを特徴とする半導体集積回路。
  5. 請求項1又は2記載の半導体集積回路であって、
    前記組合せ回路のうち、前記第1のスキャンフリップフロップの出力データを固定した場合に出力データが固定される基本ゲート数が、前記第2のスキャンフリップフロップの出力データを固定した場合に出力データが固定される基本ゲート数よりも多いことを特徴とする半導体集積回路。
  6. 請求項1又は2記載の半導体集積回路であって、
    前記組合せ回路のうち、前記第1のスキャンフリップフロップが駆動する基本ゲートの消費電力が、前記第2のスキャンフリップフロップが駆動する基本ゲートの消費電力よりも多いことを特徴とする半導体集積回路。
  7. 請求項1から6のいずれか1項に記載の半導体集積回路であって、前記スキャンチェーンに対するテストパタンを供給するパタン発生回路を内蔵したことを特徴とする半導体集積回路。
  8. 請求項1から7のいずれか1項に記載の半導体集積回路であって、前記スキャンチェーンから出力されるデータを圧縮する圧縮回路を内蔵したことを特徴とする半導体集積回路。
  9. 請求項1又は2記載の半導体集積回路の設計方法であって、
    前記半導体集積回路を構成している複数の基本ゲートを含む組合せ回路および複数のスキャンフリップフロップの接続情報を含む回路データを生成する工程1と、
    前記複数のスキャンフリップフロップの中から、1つ以上且つ前記複数のスキャンフリップフロップの総数未満の個数のスキャンフリップフロップを選択する工程2と、
    スキャンテストのシフト動作中に、前記工程2で選択されたスキャンフリップフロップから前記組合せ回路への出力値が固定されるように前記回路データを修正する工程3を有することを特徴とする半導体集積回路の設計方法
  10. 請求項1又は2記載の半導体集積回路の設計方法であって、
    前記半導体集積回路を構成している複数の基本ゲートを含む組合せ回路および複数のスキャンフリップフロップの接続情報を含む回路データを生成する工程1と、
    前記複数のスキャンフリップフロップの中から、ファンアウトコーンに含まれる基本ゲートの消費電力の総和が大きい順に、1つ以上且つ前記複数のスキャンフリップフロップの総数未満の個数のスキャンフリップフロップを選択する工程2と、
    スキャンテストのシフト動作中に、前記工程2で選択されたスキャンフリップフロップから前記組合せ回路への出力値が固定されるように前記回路データを修正する工程3を有することを特徴とする半導体集積回路の設計方法
  11. 請求項1又は2記載の半導体集積回路の設計方法であって、
    前記半導体集積回路を構成している複数の基本ゲートを含む組合せ回路および複数のスキャンフリップフロップの接続情報を含む回路データを生成する工程1と、
    前記複数のスキャンフリップフロップの中から、トグル率を用いた消費電力解析によって、消費電力に与える影響が高い順に、1つ以上且つ前記複数のスキャンフリップフロップの総数未満の個数のスキャンフリップフロップを選択する工程2と
    キャンテストのシフト動作中に、前記工程2で選択されたスキャンフリップフロップから前記組合せ回路への出力値が固定されるように前記回路データを修正する工程3を有することを特徴とする半導体集積回路の設計方法。
  12. 請求項1又は2記載の半導体集積回路の設計方法であって、
    前記半導体集積回路を構成している複数の基本ゲートを含む組合せ回路および複数のスキャンフリップフロップの接続情報を含む回路データを生成する工程1と、
    前記複数のスキャンフリップフロップの中から、当該スキャンフリップフロップの出力データを固定した場合に、出力データが固定される組合せ論理素子数が大きい順に、1つ以上且つ前記複数のスキャンフリップフロップの総数未満の個数のスキャンフリップフロップを選択する工程2と
    キャンテストのシフト動作中に、前記工程2で選択されたスキャンフリップフロップから前記組合せ回路への出力値が固定されるように前記回路データを修正する工程3を有することを特徴とする半導体集積回路の設計方法。
  13. 請求項9から12のいずれか1項に記載の半導体集積回路の設計方法であって、
    前記工程2は、前記半導体集積回路を構成する複数のスキャンフリップフロップ毎に消費電力への影響を見積もる工程2−1と、
    消費電力への影響が見積もられた全スキャンフリップフロップの中から、消費電力への影響が最も高いと判断されたスキャンフリップフロップを選択する工程2−2と、
    既に選択されたスキャンフリップフロップの出力を固定することにより、所望の消費電力値まで削減できたかを判定する工程2−3と、
    未だ選択されていないスキャンフリップフロップの中から、消費電力に対する影響が最も高いと判断されたスキャンフリップフロップを選択する工程2−4とからなり、
    前記工程2−3の判定結果がYesの場合、前記工程2を終了し、前記判定結果がNoの場合、前記工程2−4を行うことを特徴とする半導体集積回路の設計方法。
JP2003347703A 2003-10-07 2003-10-07 半導体集積回路およびその設計方法 Expired - Fee Related JP4416469B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003347703A JP4416469B2 (ja) 2003-10-07 2003-10-07 半導体集積回路およびその設計方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003347703A JP4416469B2 (ja) 2003-10-07 2003-10-07 半導体集積回路およびその設計方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009107219A Division JP2009175154A (ja) 2009-04-27 2009-04-27 半導体集積回路およびその設計方法

Publications (2)

Publication Number Publication Date
JP2005115578A JP2005115578A (ja) 2005-04-28
JP4416469B2 true JP4416469B2 (ja) 2010-02-17

Family

ID=34540127

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003347703A Expired - Fee Related JP4416469B2 (ja) 2003-10-07 2003-10-07 半導体集積回路およびその設計方法

Country Status (1)

Country Link
JP (1) JP4416469B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007187458A (ja) * 2006-01-11 2007-07-26 Nec Electronics Corp スキャンフリップフロップ回路、及び、半導体集積回路装置
JP5401119B2 (ja) * 2009-02-23 2014-01-29 ルネサスエレクトロニクス株式会社 半導体集積回路の設計方法、設計プログラム、及び半導体集積回路
US8456193B2 (en) 2010-09-17 2013-06-04 Qualcomm Incorporated Integrated circuit leakage power reduction using enhanced gated-Q scan techniques

Also Published As

Publication number Publication date
JP2005115578A (ja) 2005-04-28

Similar Documents

Publication Publication Date Title
TWI428620B (zh) 用於積體電路測試之低功率及區域有效掃描單元
US7082559B2 (en) Semiconductor integrated circuit device and test method thereof
US8145964B2 (en) Scan test circuit and scan test control method
US20130254609A1 (en) Scan test circuit, test pattern generation control circuit, and scan test control method
US20130111286A1 (en) Scan enable timing control for testing of scan cells
US20050235184A1 (en) Semiconductor integrated circuit device and test method thereof
US20110175638A1 (en) Semiconductor integrated circuit and core test circuit
US7237164B1 (en) Area optimized edge-triggered flip-flop for high-speed memory dominated design
JP3785388B2 (ja) 故障検出方法
US7406639B2 (en) Scan chain partition for reducing power in shift mode
JP4416469B2 (ja) 半導体集積回路およびその設計方法
US6427218B2 (en) Method of generating test pattern for semiconductor integrated circuit and method of testing the same
US20100033189A1 (en) Semiconductor integrated circuit and test method using the same
JP2009175154A (ja) 半導体集積回路およびその設計方法
JP5806050B2 (ja) 出力制御スキャンフリップフロップ、それを備えた半導体集積回路及び半導体集積回路の設計方法
JP2003121497A (ja) 論理回路テスト用スキャンパス回路及びこれを備えた集積回路装置
US6381720B1 (en) Test circuit and method for system logic
JP2003202362A (ja) スキャンテスト回路及びスキャンテスト方法
US20080059853A1 (en) Semiconductor Integrated Circuit
JP4610919B2 (ja) 半導体集積回路装置
US20060248417A1 (en) Clock control circuit for test that facilitates an at speed structural test
JP5761819B2 (ja) スキャン非同期記憶素子およびそれを備えた半導体集積回路ならびにその設計方法およびテストパターン生成方法
JP2989586B2 (ja) 半導体集積回路及びその設計方法並びに半導体集積回路の設計プログラムを記録した記録媒体
JP2006058152A (ja) 半導体装置の試験方法及び半導体装置の試験回路
JP2001108727A (ja) クロック制御回路および方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060619

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080430

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080701

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081014

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081215

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090224

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091124

R151 Written notification of patent or utility model registration

Ref document number: 4416469

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121204

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121204

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131204

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees